Skip to content

[Manual Sync] From sonic-net/sonic-utilities 202205 to Azure/sonic-utitities.msft repo#5

Merged
gechiang merged 7 commits intoAzure:202205from
gechiang:202205
May 25, 2023
Merged

[Manual Sync] From sonic-net/sonic-utilities 202205 to Azure/sonic-utitities.msft repo#5
gechiang merged 7 commits intoAzure:202205from
gechiang:202205

Conversation

@gechiang
Copy link
Contributor

What I did

This Repo is for new Chassis developments that involved submodule sonic-utilities changes that could not go to public sonic-net/sonic-utilities 202205 branch.

There will be a new pipeline setup to perform what I am doing in this PR soon.
But before that pipeline is ready, there is a need to sync manually to pick up everything on public sonic-net/sonic-utilities 202205 branch so that the community members who are working on the chassis project from /Azure/sonic-buildimage-msft repo will be able to have successful build again.

How I did it

Manually fetch and merge all changes from sonic-net/sonic-utilitites 202205 branch to this repo 202205 branch.

How to verify it

checked git log to confirm all are merged.

Previous command output (if the output of a command-line utility has changed)

New command output (if the output of a command-line utility has changed)

theasianpianist and others added 7 commits May 11, 2023 20:18
- When enabling proxy_arp for a VLAN, configure and start the ndppd service if it isn't already running
- When removing the last VLAN, stop the ndppd service

Signed-off-by: Lawrence Lee <lawlee@microsoft.com>
* Update TRANSCEIVER_INFO table after CDB FW upgrade

Signed-off-by: Mihir Patel <patelmi@microsoft.com>

* Added testcases to improve code coverage

---------

Signed-off-by: Mihir Patel <patelmi@microsoft.com>
…#2806)

A new mechanism is added here to to reduce LAG flap issue during hitless upgrades.

Problem being solved:
During warm upgrades T0 goes down and with that wait time for LACP session starts.
If the waittime to refresh LACP session is > 90s then T1 initiates LAG teardown, and as a result dataplane impact is seen.
This script makes sure that LACPDUs are sent in the going down path continuously.

How time is saved w/ this mechanism:

The lacpsession wait period earlier used to start from when teamd container goes down.
New lacpsession wait period starts when kexec in current kernel is issued, and new kernel boots up.

Implementation:
When warm-reboot starts, capture LACPDUs sent from all LAG member ports.
For this allow 60s of prep + collection time.
Start sending LACPDUs w/ ~1s interval.
The last LACPDU is sent after all containers are down and kexec is issued.

Results:
Tested this on different platforms and images. Some results for time saved:

BRCM: 201811 -> 202012 --- 18s
BRCM: 202012 -> 202012 --- 20s
MLNX: 201911 -> 202205 --- 10s
MLNX: 202205 -> 202205 --- 10s
What I did
if substring.isdigit() and re.match(r'^\d{8}$', substring): In this version check, it only applies to this pattern: 20220531.XXX. It will fail the master and other build check. For example, master.261851-010dc3957 is a master build_version string. It will fail version validation and return failure.

My thought to remove the check is that GCU is only supported in 202205 and later. Either branch_version >= "20201200" or branch_version >= "20181100" is already satisfied.

How I did it
Remove redundant check in GCU RDMA validator

How to verify it
Unit test
cisco sonic router will hit below error message from route_check
str3-8101-02 ERR monit[519]: 'routeCheck' status failed (255) –
Failure results: #12 "Unaccounted_ROUTE_ENTRY_TABLE_entries": #12 "fddd:a150:a0::a66:1/128",#12 "fddd:a150:a0::a67:1/128",#12 "fddd:a150:a0::a71:1/128",#12 "fddd:a150:a0::a78:1/128",#12 "fddd:a150:a0::a80:1/128"#12
#12#012Failed. Look at reported mismatches above#012add: []#012del: []

the parser will only cut the chars before : regardless it is the IPv6 format.
For instance,
route_check: "fddd:a150:a0::a21:1/128
Will be parsed as “fddd" ONLY
Vnet_v6_in_v4-0: : a150:a0::a21:1/128"
solution:
fix the parsing scheme on route check when APPL_DB refers IPv6 format.
What I did
Reproduce the issue:

/home/admin# sonic-installer set-fips
Command: /usr/bin/fw_setenv linuxargs net.ifnames=0 loopfstype=squashfs loop=image-20220531.27/fs.squashfs systemd.unified_cgroup_hierarchy=0 varlog_size=4096 loglevel=4 sonic_fips=1
Error: illegal character '=' in variable name "loopfstype=squashfs"

Work item tracking
Microsoft ADO (number only): 22333116
How I did it
Add the double quotation marks when calling the command.

How to verify it
It works fine when calling the following command:
/usr/bin/fw_setenv linuxargs "net.ifnames=0 loopfstype=squashfs loop=image-20220531.27/fs.squashfs systemd.unified_cgroup_hierarchy=0 varlog_size=4096 loglevel=4 sonic_fips=1"
@gechiang gechiang requested a review from xumia May 25, 2023 17:19
@abdosi
Copy link
Contributor

abdosi commented May 25, 2023

Please make sure we don;t losse commit history. Squash and merge i beleive will compress all commit into one.

@xumia @gechiang

@gechiang gechiang merged commit 3dabc06 into Azure:202205 May 25, 2023
@gechiang gechiang deleted the 202205 branch May 25, 2023 22:30
mssonicbld pushed a commit to mssonicbld/sonic-utilities.msft that referenced this pull request Nov 24, 2023
…aidump_by_route_size (#2972)

* * [saidump]
•	Saidump for DNX-SAI sonic-net/sonic-buildimage#13561

Solution and modification:
To use the redis-db SAVE option to save the snapshot of DB each time and recover later, instead of looping through each entry in the table and saving it.

(1) Updated sonic-buildimage/build_debian.sh, to install Python library rdbtools into the host.
(2) Updated sonic-buildimage/src/sonic-sairedis/saidump/saidump.cpp, add a new option -r, which updates the rdbtools's output-JSON files' format.
(3) Add a new script file: files/scripts/saidump.sh, to do the below steps
  For each ASIC0, such as ASIC0,

  Azure#1. Save the Redis data.
  sudo sonic-db-cli -n asic$1 SAVE > /dev/null

  Azure#2. Move dump files to /var/run/redisX/
  docker exec database$1 sh -c "mv /var/lib/redis/dump.rdb /var/run/redis$1/"

  Azure#3. Run rdb command to convert the dump files into JSON files
  sudo python /usr/local/bin/rdb --command json  /var/run/redis$1/dump.rdb | sudo tee /var/run/redis$1/dump.json > /dev/null

  Azure#4. Run saidump -r to update the JSON files' format as same as the saidump before. Then we can get the saidump result in standard output.
  docker exec syncd$1 sh -c "saidump -r /var/run/redis$1/dump.json"

  Azure#5. clear
  sudo rm -f /var/run/redis$1/dump.rdb
  sudo rm -f /var/run/redis$1/dump.json

(4) Update sonic-buildimage/src/sonic-utilities/scripts/generate_dump, replace saidump with saidump.sh
* * [saidump]
•	Saidump for DNX-SAI sonic-net/sonic-buildimage#13561
mssonicbld pushed a commit to mssonicbld/sonic-utilities.msft that referenced this pull request Nov 24, 2023
**What I did**

Fix the Mem Leak by moving the raw pointers in type_maps to use smart pointers

**Why I did it**

```
Indirect leak of 83776 byte(s) in 476 object(s) allocated from:
    #0 0x7f0a2a414647 in operator new(unsigned long) ../../../../src/libsanitizer/asan/asan_new_delete.cpp:99
    Azure#1 0x5555590cc923 in __gnu_cxx::new_allocator, std::allocator > const, referenced_object> > >::allocate(unsigned long, void const*) /usr/include/c++/10/ext/new_allocator.h:115
    Azure#2 0x5555590cc923 in std::allocator_traits, std::allocator > const, referenced_object> > > >::allocate(std::allocator, std::allocator > const, referenced_object> > >&, unsigned long) /usr/include/c++/10/bits/alloc_traits.h:460
    Azure#3 0x5555590cc923 in std::_Rb_tree, std::allocator >, std::pair, std::allocator > const, referenced_object>, std::_Select1st, std::allocator > const, referenced_object> >, std::less, std::allocator > >, std::allocator, std::allocator > const, referenced_object> > >::_M_get_node() /usr/include/c++/10/bits/stl_tree.h:584
    Azure#4 0x5555590cc923 in std::_Rb_tree_node, std::allocator > const, referenced_object> >* std::_Rb_tree, std::allocator >, std::pair, std::allocator > const, referenced_object>, std::_Select1st, std::allocator > const, referenced_object> >, std::less, std::allocator > >, std::allocator, std::allocator > const, referenced_object> > >::_M_create_node, std::allocator > const&>, std::tuple<> >(std::piecewise_construct_t const&, std::tuple, std::allocator > const&>&&, std::tuple<>&&) /usr/include/c++/10/bits/stl_tree.h:634
    Azure#5 0x5555590cc923 in std::_Rb_tree_iterator, std::allocator > const, referenced_object> > std::_Rb_tree, std::allocator >, std::pair, std::allocator > const, referenced_object>, std::_Select1st, std::allocator > const, referenced_object> >, std::less, std::allocator > >, std::allocator, std::allocator > const, referenced_object> > >::_M_emplace_hint_unique, std::allocator > const&>, std::tuple<> >(std::_Rb_tree_const_iterator, std::allocator > const, referenced_object> >, std::piecewise_construct_t const&, std::tuple, std::allocator > const&>&&, std::tuple<>&&) /usr/include/c++/10/bits/stl_tree.h:2461
    Azure#6 0x5555590e8757 in std::map, std::allocator >, referenced_object, std::less, std::allocator > >, std::allocator, std::allocator > const, referenced_object> > >::operator[](std::__cxx11::basic_string, std::allocator > const&) /usr/include/c++/10/bits/stl_map.h:501
    Azure#7 0x5555590d48b0 in Orch::setObjectReference(std::map, std::allocator >, std::map, std::allocator >, referenced_object, std::less, std::allocator > >, std::allocator, std::allocator > const, referenced_object> > >*, std::less, std::allocator > >, std::allocator, std::allocator > const, std::map, std::allocator >, referenced_object, std::less, std::allocator > >, std::allocator, std::allocator > const, referenced_object> > >*> > >&, std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator > const&) orchagent/orch.cpp:450
    Azure#8 0x5555594ff66b in QosOrch::handleQueueTable(Consumer&, std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector, std::allocator >, std::__cxx11::basic_string, std::allocator > >, std::allocator, std::allocator >, std::__cxx11::basic_string, std::allocator > > > > >&) orchagent/qosorch.cpp:1763
    Azure#9 0x5555594edbd6 in QosOrch::doTask(Consumer&) orchagent/qosorch.cpp:2179
    Azure#10 0x5555590c8743 in Consumer::drain() orchagent/orch.cpp:241
    Azure#11 0x5555590c8743 in Consumer::drain() orchagent/orch.cpp:238
    Azure#12 0x5555590c8743 in Consumer::execute() orchagent/orch.cpp:235
    Azure#13 0x555559090dad in OrchDaemon::start() orchagent/orchdaemon.cpp:755
    Azure#14 0x555558e9be25 in main orchagent/main.cpp:766
    Azure#15 0x7f0a299b6d09 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x23d09)
```
r12f pushed a commit that referenced this pull request Dec 18, 2024
…aidump_by_route_size (#2972)

* * [saidump]
•	Saidump for DNX-SAI sonic-net/sonic-buildimage#13561

Solution and modification:
To use the redis-db SAVE option to save the snapshot of DB each time and recover later, instead of looping through each entry in the table and saving it.

(1) Updated sonic-buildimage/build_debian.sh, to install Python library rdbtools into the host.
(2) Updated sonic-buildimage/src/sonic-sairedis/saidump/saidump.cpp, add a new option -r, which updates the rdbtools's output-JSON files' format.
(3) Add a new script file: files/scripts/saidump.sh, to do the below steps
  For each ASIC0, such as ASIC0,

  #1. Save the Redis data.
  sudo sonic-db-cli -n asic$1 SAVE > /dev/null

  #2. Move dump files to /var/run/redisX/
  docker exec database$1 sh -c "mv /var/lib/redis/dump.rdb /var/run/redis$1/"

  #3. Run rdb command to convert the dump files into JSON files
  sudo python /usr/local/bin/rdb --command json  /var/run/redis$1/dump.rdb | sudo tee /var/run/redis$1/dump.json > /dev/null

  #4. Run saidump -r to update the JSON files' format as same as the saidump before. Then we can get the saidump result in standard output.
  docker exec syncd$1 sh -c "saidump -r /var/run/redis$1/dump.json"

  #5. clear
  sudo rm -f /var/run/redis$1/dump.rdb
  sudo rm -f /var/run/redis$1/dump.json

(4) Update sonic-buildimage/src/sonic-utilities/scripts/generate_dump, replace saidump with saidump.sh
* * [saidump]
•	Saidump for DNX-SAI sonic-net/sonic-buildimage#13561
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants