From 6335f610c84ce7b7a71dcf638c57f86767aeb506 Mon Sep 17 00:00:00 2001 From: "Marty Y. Lok" <76118573+mlok-nokia@users.noreply.github.com> Date: Thu, 27 Apr 2023 11:53:16 -0400 Subject: [PATCH] [Nokia][device-data] Modify the Nokia-7250IXRE platform specific reboot script (#14568) Why I did it When reboot the chassis by issuing "sudo reboot" on Supervisor card. The internal midplane communication xe0 should be shutdown to avoid double reboot on the linecard. Added a udev link rule to disable the autoneg on AMD xgbe port Xe0 and Xe1 and make the setting in sync with the peer Broadcom greyhound ports. How I did it Modify the Nokia-7250IXRE specific reboot script on the Supervisor card to shutdown the internal interface xe0. Also move reboot linecard code to the top of the script to make sure the notification has been send to Linecard before shutdown the xe0 interface. Introduced a new rule 80-net-by-driver.link to disable the autoneg on the AMD size. This change requires the latest NDK which contains the change to set the autoneg on the xe0 and xe1 port on the Greyhound. Signed-off-by: mlok --- .../platform_reboot | 2 +- .../89-net-by-driver.link | 19 +++++++++++++++++++ .../platform_reboot | 10 ++++++---- 3 files changed, 26 insertions(+), 5 deletions(-) create mode 100644 device/nokia/x86_64-nokia_ixr7250e_sup-r0/89-net-by-driver.link diff --git a/device/nokia/x86_64-nokia_ixr7250e_36x400g-r0/platform_reboot b/device/nokia/x86_64-nokia_ixr7250e_36x400g-r0/platform_reboot index b086d09bdd..180db164df 100755 --- a/device/nokia/x86_64-nokia_ixr7250e_36x400g-r0/platform_reboot +++ b/device/nokia/x86_64-nokia_ixr7250e_36x400g-r0/platform_reboot @@ -28,4 +28,4 @@ rm -f /sys/firmware/efi/efivars/dump-* touch /etc/opt/srlinux/devmgr_reboot_cause.done rm -f /etc/opt/srlinux/reboot-cause.txt sync -/sbin/reboot +exec /sbin/reboot $@ diff --git a/device/nokia/x86_64-nokia_ixr7250e_sup-r0/89-net-by-driver.link b/device/nokia/x86_64-nokia_ixr7250e_sup-r0/89-net-by-driver.link new file mode 100644 index 0000000000..fa0bcb1b40 --- /dev/null +++ b/device/nokia/x86_64-nokia_ixr7250e_sup-r0/89-net-by-driver.link @@ -0,0 +1,19 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later +# +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Match] +Driver=amd-xgbe + +[Link] +NamePolicy=keep kernel database onboard slot path +AlternativeNamesPolicy=database onboard slot path +MACAddressPolicy=persistent +AutoNegotiation=no +BitsPerSecond=10G +Duplex=full diff --git a/device/nokia/x86_64-nokia_ixr7250e_sup-r0/platform_reboot b/device/nokia/x86_64-nokia_ixr7250e_sup-r0/platform_reboot index ba47829674..00ae76c9de 100755 --- a/device/nokia/x86_64-nokia_ixr7250e_sup-r0/platform_reboot +++ b/device/nokia/x86_64-nokia_ixr7250e_sup-r0/platform_reboot @@ -1,5 +1,7 @@ #!/bin/bash - +echo "Rebooting all Linecards" +python3 -c 'import sonic_platform.platform; platform_chassis = sonic_platform.platform.Platform().get_chassis(); platform_chassis.reboot_imms()' +sleep 3 systemctl stop nokia-watchdog.service sleep 2 echo "w" > /dev/watchdog @@ -8,7 +10,7 @@ echo "last watchdog kick $kick_date" > /var/log/nokia-watchdog-last.log rm -f /sys/firmware/efi/efivars/dump-* touch /etc/opt/srlinux/devmgr_reboot_cause.done rm -f /etc/opt/srlinux/reboot-cause.txt +echo "Shutdown midplane" +ifconfig xe0 down sync -echo "Rebooting all Linecards" -python3 -c 'import sonic_platform.platform; platform_chassis = sonic_platform.platform.Platform().get_chassis(); platform_chassis.reboot_imms()' -/sbin/reboot +exec /sbin/reboot $@