Conversation
|
@stepanblyschak please review |
stepanblyschak
left a comment
There was a problem hiding this comment.
I wonder what is the real world use case for the end user. We know that we must have FW version and SDK version aligned. Without a mechanism to upgrade SDK and/or a mechanism to ensure user provided FW is guarateed to work with installed SDK version we create a possibility break the system easily.
If the intent is to allow user have a fix in new FW without waiting for the new SONiC image we can tell the user to replace the FW file under /etc and perform reboot to achive it.
I am also not sure why do we need to control "auto_update". We must upgrade FW prior to cold/fast/warm upgrade. If the user configuration disables it we should clearly let user know that these flows will be broken.
It will allow users to control ASIC firmware and install their own images.
We can but it is not a good user experience. In that case, the user will remove the old FW and won't be able to get it back (iow: it is not straightforward). That feature allows user to choose which FW to use.
That requirement came from another Nvidia OS which allows doing so. |
* Add YANG model for new ConfigDB table * Covered with tests Signed-off-by: Yevhen Fastiuk <[email protected]>
* Add an ability to enable/disable FW auto-update. * Add an ability to set firmware source like: image, user. User defined fw image location should be the next: /host/mlnx/asic/fw.mfa Signed-off-by: Yevhen Fastiuk <[email protected]>
a923919 to
9f767a7
Compare
|
|
||
| if [ "${IMAGE_UPGRADE}" != "${YES_PARAM}" ]; then | ||
| UpgradeFW | ||
| DEFAULT_SOURCE="$(sonic-cfggen -d -v FIRMWARE[\'asic\'][\'default\'])" |
There was a problem hiding this comment.
Also please make sure that we are able to perform reboot when database service is down or config db is not initialized
@fastiuk I suggest to contact @nazariig and understand how this effort relates to FW util and ask to review as he's the code owner for fw upgrade script. I would also suggest to give a confirmation promt/warning to the user when he does warm/fast reboot when "auto_update" is disabled. |
… URL support "not to use cac (sonic-net#12394) he" (sonic-net#45) * 4f45e3a Update gnmi_cli (#5) (sonic-net#44)
Added below commits: 9b30690 jcaiMR Fri Dec 16 fix handleSwssNotification crash in dhcp6relay (sonic-net#28) 047afb7 jcaiMR Wed Dec 14 14:08:58 2022 +0800 Fix multiple vlan issue (sonic-net#27) ff6bec3 Vivek Thu Dec 8 09:44:15 2022 -0800 Made the Error log informative (sonic-net#22) 2fbe729 jcaiMR Wed Nov 30 14:41:53 2022 +0800 disable cfg dynamic change (sonic-net#25) 13d0805 Liu Shilong Wed Nov 30 10:54:11 2022 +0800 Use github code scanning instead of LGTM (sonic-net#26) 1e846f6 kellyyeh Wed Nov 23 14:36:02 2022 -0800 Fix packet range check for relay-reply packets (sonic-net#21) 4d19e13 kellyyeh Thu Nov 17 10:04:53 2022 -0800 Add unittest infrastructure (#5) 7f4fdab jcaiMR Fri Nov 11 14:47:51 2022 +0800 fix packet range check issue (sonic-net#20) 257ecdf kellyyeh Thu Nov 3 11:34:11 2022 -0700 Add client packet UDP header length check (sonic-net#19)
…et#21095) Adding the below fix from FRR FRRouting/frr#17297 This is to fix the following crash which is a statistical issue [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". Core was generated by `/usr/lib/frr/zebra -A 127.0.0.1 -s 90000000 -M dplane_fpm_nl -M snmp'. Program terminated with signal SIGABRT, Aborted. #0 0x00007fccd7351e2c in ?? () from /lib/x86_64-linux-gnu/libc.so.6 [Current thread is 1 (Thread 0x7fccd6faf7c0 (LWP 36))] (gdb) bt #0 0x00007fccd7351e2c in ?? () from /lib/x86_64-linux-gnu/libc.so.6 #1 0x00007fccd7302fb2 in raise () from /lib/x86_64-linux-gnu/libc.so.6 #2 0x00007fccd72ed472 in abort () from /lib/x86_64-linux-gnu/libc.so.6 #3 0x00007fccd75bb3a9 in _zlog_assert_failed (xref=xref@entry=0x7fccd7652380 <_xref.16>, extra=extra@entry=0x0) at ../lib/zlog.c:678 #4 0x00007fccd759b2fe in route_node_delete (node=<optimized out>) at ../lib/table.c:352 #5 0x00007fccd759b445 in route_unlock_node (node=0x0) at ../lib/table.h:258 #6 route_next (node=<optimized out>) at ../lib/table.c:436 #7 route_next (node=node@entry=0x56029d89e560) at ../lib/table.c:410 #8 0x000056029b6b6b7a in if_lookup_by_name_per_ns (ns=ns@entry=0x56029d873d90, ifname=ifname@entry=0x7fccc0029340 "PortChannel1020") at ../zebra/interface.c:312 #9 0x000056029b6b8b36 in zebra_if_dplane_ifp_handling (ctx=0x7fccc0029310) at ../zebra/interface.c:1867 #10 zebra_if_dplane_result (ctx=0x7fccc0029310) at ../zebra/interface.c:2221 #11 0x000056029b7137a9 in rib_process_dplane_results (thread=<optimized out>) at ../zebra/zebra_rib.c:4810 #12 0x00007fccd75a0e0d in thread_call (thread=thread@entry=0x7ffe8e553cc0) at ../lib/thread.c:1990 #13 0x00007fccd7559368 in frr_run (master=0x56029d65a040) at ../lib/libfrr.c:1198 sonic-net#14 0x000056029b6ac317 in main (argc=9, argv=0x7ffe8e5540d8) at ../zebra/main.c:478
This PR depends on fastiuk/sonic-swss-common#3
Why I did it
How to verify it
Build SONiC
or
When SONiC was already built:
Login into the switch.
Disable FW auto-update:
See the results:

Enable auto-update, change source to user-defined and copy FW image in place:
Which release branch to backport (provide reason below if selected)
Description for the changelog
Link to config_db schema for YANG module changes
sonic-firmware.yang
Submodules PR's :
A picture of a cute animal