IF_STATE_MASK fix for SM_FAILOVER_HEARTBEAT_ALIVE

The SM_FAILOVER_IF_STATE_MASK change from 0xF to 0x3F

mask was clearing the HEARTBEAT ALIVE flag.
SM_FAILOVER_HEARTBEAT_ALIVE = (0x1 << 4), // 16

This change restores previous system behavior. Tester performs a
cable pull on the oam ports. The expected behavior is an alarm
being raised. Instead the standby controller ended up getting rebooted.

oam interface testing was simulated by bringing the ip link down for 1
second.

For example:

sudo ip link set <oam> down; sleep 1 ; sudo ip link set <oam> up

-----------------
Before change
-----------------
- Heartbeat loss on oam interface resulted in standby controller reboot

-----------------
After change:
-----------------

- Heartbeat loss on oam interface resulted in alarm raised
- Logs indicate the health score of controller-1 drops by 1 point

Test plan:

PASS - AIO-SX: iso install

PASS - AIO-DX: iso install
               drop oam interface on standby
               verify standby controller-1 is not rebooted
               by active controller-0
               restore oam interface

PASS - AIO-DX: system host-swact . swact back and forth

Closes-Bug: 2037579

Change-Id: I4f1ffc1169d4df090f71377e5aa8247e1cd17fc3
Signed-off-by: Kyale, Eliud <Eliud.Kyale@windriver.com>
This commit is contained in:
Kyale, Eliud 2023-09-27 13:45:14 -04:00
parent fd75850f12
commit efe4a7a370
1 changed files with 1 additions and 1 deletions

View File

@ -734,7 +734,7 @@ typedef enum
* - failover state is normal
*/
#define SM_FAILOVER_STATE_MASK 0x00000F00 // 4 bits in use for failover states
#define SM_FAILOVER_IF_STATE_MASK 0x0000000F // 4 bits in use for interface states
#define SM_FAILOVER_IF_STATE_MASK 0x0000003F // 6 bits in use for interface states
#define SM_FAILOVER_NODE_INFO_MASK (SM_FAILOVER_STATE_MASK | SM_FAILOVER_IF_STATE_MASK)
/* Extract the failover state from the node info flags */