Skip to content

Commit 4d4b1d4

Browse files
authored
[Nokia][chassis] modify Nokia-IXR7250E-36x400G platform specified reboot to allow SUP to log expected/unepected midplane/module connectivity msg (#18805)
Why I did it For Linecard expected and unexpected reboot, Supervisor needs to log a expected and unexpected lost connectivity message. After the new mechanism has been introduced by PRs. For Nokia-IXR7250E-36x600G linecard, it requires to handle missing heartbeat reboot is unexpected reboot for SUP. Issue #18540 Work item tracking Microsoft ADO (number only): How I did it On Nokia-IXR7250E-36x400G platform, missing heartbeat reboot also call the "sudo reboot" which creates a CHASSIS_MODULE_REBOOT_INFO_TABLE entry expected reboot on SUP. Since heartbeat reboot is unexpected reboot, it requires to modify the platform_reboot check if it is missing heart reboot, then remove the CHASSIS_MODULE_REBOOT_INFO_TABLE entry on the SUP. So that, SUP can log the unexpected log. How to verify it Simulated the missing heartbeat reboot on the linecard, then, verify the log message on SUP as below Apr 25 19:50:19.286081 ixre-cpm-chassis7 WARNING pmon#chassisd: Module LINE-CARD0 went off-line! Apr 25 19:50:22.549416 ixre-cpm-chassis7 WARNING pmon#chassisd: Unexpected: Module LINE-CARD0 lost midplane connectivity. Signed-off-by: mlok <[email protected]>
1 parent 3d47ac1 commit 4d4b1d4

File tree

1 file changed

+19
-4
lines changed

1 file changed

+19
-4
lines changed

device/nokia/x86_64-nokia_ixr7250e_36x400g-r0/platform_reboot

+19-4
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,27 @@
11
#!/bin/bash
22

3+
DEVICE_MGR_REBOOT_FILE=/tmp/device_mgr_reboot
4+
REBOOT_CAUSE_FILE=/host/reboot-cause/reboot-cause.txt
5+
DEVICE_REBOOT_CAUSE_FILE=/etc/opt/srlinux/reboot-cause.txt
6+
kHeartbeatLostRebootCause="Heartbeat with the Supervisor card lost"
7+
DEVICE_DETAILS_FILE="/etc/opt/srlinux/devices/hw_details.json"
8+
9+
ungraceful_reboot_handle()
10+
{
11+
str=$(grep "$kHeartbeatLostRebootCause" $DEVICE_REBOOT_CAUSE_FILE 2> /dev/null)
12+
status=$?
13+
if [ $status -eq 0 ]; then
14+
slot_num=$(jq -r '.slot_num' $DEVICE_DETAILS_FILE 2>/dev/null)
15+
slot_num=$((slot_num - 1))
16+
sonic-db-cli CHASSIS_STATE_DB del "CHASSIS_MODULE_REBOOT_INFO_TABLE|LINE-CARD${slot_num}"
17+
fi
18+
}
319
update_reboot_cause()
420
{
5-
DEVICE_MGR_REBOOT_FILE=/tmp/device_mgr_reboot
6-
REBOOT_CAUSE_FILE=/host/reboot-cause/reboot-cause.txt
7-
DEVICE_REBOOT_CAUSE_FILE=/etc/opt/srlinux/reboot-cause.txt
821
if [ -e $DEVICE_MGR_REBOOT_FILE ]; then
922
if [ -e $DEVICE_REBOOT_CAUSE_FILE ]; then
23+
# reomve the REBOOT_INFO_TABLE entry for unpexected reboot
24+
ungraceful_reboot_handle
1025
cp -f $DEVICE_REBOOT_CAUSE_FILE $REBOOT_CAUSE_FILE
1126
fi
1227
rm -f $DEVICE_MGR_REBOOT_FILE
@@ -18,7 +33,7 @@ update_reboot_cause()
1833
}
1934

2035
echo "Disable all SFPs"
21-
python3 -c 'import sonic_platform.platform; platform_chassis = sonic_platform.platform.Platform().get_chassis(); platform_chassis.tx_disable_all_sfps()'
36+
python3 -c 'import sonic_platform.platform; platform_chassis = sonic_platform.platform.Platform().get_chassis(); platform_chassis.tx_disable_all_sfps()' &
2237
sleep 3
2338

2439
# update the reboot_cuase file when reboot is trigger by device-mgr

0 commit comments

Comments
 (0)