Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[pull] master from sonic-net:master #1

Merged
merged 103 commits into from
Jan 24, 2024
Merged

Conversation

pull[bot]
Copy link

@pull pull bot commented Aug 15, 2023

See Commits and Changes for more details.


Created by pull[bot]

Can you help keep this open source service alive? 💖 Please sponsor : )

developfast and others added 25 commits July 4, 2023 13:37
Signed-off-by: vadymhlushko-mlnx <vadymh@nvidia.com>

What I did
Set the correct value for the db_migrator class variable CURRENT_VERSION, because if the new DB version was introduced the CURRENT_VERSION variable should have the newest version value.

How I did it
Edit the db_migrator.py.

How to verify it
Extend existing UT.
HLD sonic-net/SONiC#1101

- What I did
Implemented CLI for Generic Hash feature

- How I did it
Integrated Generic Hash interface into config and show CLI root

- How to verify it
Run Generic Hash CLI UTs

Signed-off-by: Nazarii Hnydyn <nazariig@nvidia.com>
…om minigraph parser (#2890)

MSFT ADO: 24419953

This is to fix a bug where warm upgrade from old image (eg. 20181130) to new image (eg. 202012) does not update docker_routing_config_mode to the new config expected the target OS.

For eg., in 201811 DEVICE_METADATA.localhost.docker_routing_config_mode is set to unified.
After upgrade to 202012 the value is not changed. However, the expectation in newer images is that the value is separated.

The move from unified to separated was done as part of an old change: sonic-net/sonic-buildimage#2961

However, migration logic was not updated since then. Because of this miss, cross-branch warm-upgrade from 201811 to 2020212 to 202305 to latest will always keep the setting as unified.

How I did it
Added a common migration logic: update docker_routing_config_mode to the value from minigraph parser.

How to verify it
Added a new unit test. Updated old unit tests.
What I did
Skip soc_ipv6 when comparing appl_db and asic_db route entries on active-active dualtor. Because it's creating false alarms when tunnel route is added for soc ips. The route is meant to be programmed in asic only.

sign-off: Jing Zhang zhangjing@microsoft.com

How I did it
How to verify it
Run the updated script on active-active dualtor devices.
What I did
sonic-net/sonic-buildimage#14549
This PR has introduced DNS configuration to CONFIG_DB, we need to migrate original CONFIG_DB to support DNS configuration during upgrading SONiC.

How I did it
If there's no DNS_NAMESERVER table in CONFIG_DB, read DNS_NAMESERVER table from minigraph and update CONFIG_DB.

How to verify it
Run unit test for db migrator.
What I did
As the subject.
This PR is to leave the vlan neighbor route checking to dualtor_neighbor_check.py script: #2840

Signed-off-by: Longxiang Lyu lolv@microsoft.com

How I did it
If any misses are found on dualtor, ignore those vlan neighbor misses.

How to verify it
UT and verify on testbed.
…well (#2909)

Update `show mux config` to print soc_ipv6 as well if it exists. 

sign-off: Jing Zhang zhangjing@microsoft.com
…2840)

#### What I did
Add script `dualtor_neighbor_check.py` to verify the neighbor consistency
based on the mux state. It will have the following output:
```
NEIGHBOR       MAC                PORT        MUX_STATE    IN_MUX_TOGGLE    NEIGHBOR_IN_ASIC    TUNNERL_IN_ASIC    HWSTATUS
-------------  -----------------  ----------  -----------  ---------------  ------------------  -----------------  ----------
192.168.0.2    ee:86:d8:46:7d:01  Ethernet4   standby      False            no                  yes                consistent
192.168.0.3    86:73:c2:22:bf:02  Ethernet8   standby      False            no                  yes                consistent
192.168.0.24   56:a6:bf:c5:dd:17  Ethernet92  active       False            yes                 no                 consistent
192.168.0.25   3a:18:56:f5:02:18  Ethernet96  active       False            yes                 no                 consistent
192.168.0.100  00:00:00:00:00:00  N/A         N/A          N/A              no                  yes                consistent
```

Signed-off-by: Longxiang Lyu <lolv@microsoft.com>

#### How I did it
the workflow of this scripts:
1. for non-zero-mac neighbors in `APPL_DB` `NEIGH_TABLE`, use the `ASIC_DB` fdb entries to find the mux port that it belongs to.
2. check if the neighbor is consistent with mux state:
    * if mux state is `active`, the neighbor is consistent only if the neighbor is present in `ASIC_DB` but no tunnel route.
    * if mux state is `standby`, the neighbor is consistent only if the tunnel route is present in `ASIC_DB`1 but no neighbor.
3. if there are any inconsistent neighbors and the mux port is currently in-toggle, the script will have a non-zero negative return, and will write error messages to logs.


#### How to verify it
UT and verify on testbed.

#### 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)
…lure (#2897)

#### What I did

When a second techsupport instance starts while one is running, the message thrown before exiting is not very user friendly. Thus updating the message for it to make more sense.
* Flush RESTAPI db in fast-reboot shutdown path
…2919)

What I did
MSFT ADO: 24598790

Why:
RESTAPI table has certs generated from minigraph parser.
The values in RESTAPI table (cert and key names) are dependent on how they are hardcoded in minigraph parser.
Current solution works on public repo, but breaks the internal build (different naming).

What:
Do not match values for RESTAPI attributes. The test still ensures that missing table and keys are migrated.

How I did it
How to verify it
…to version 4_0_1 (#2912)

#### What I did

In PR #2893 the db_migrator "migrate_dns_nameserver" was misplaced in the latest version being version 4_0_4 instead of being placed in version 4_0_3. 

Additionally, the log info for version 4_0_1 was missing as well
Handle corner case for multi-asics:
1. when golden config file is empty for multi-asic case
2. when config format is incorrect for multi-asics, e.g. localhost or namespace is missing in golden config db
* Update DB entry table ref syntax.

Allow non-lossless queues to be queried and updated.

Remove entire wred_profile entry to activate a change to the SAI layer.

If wred_profile was the only value and was removed, delete entire key entry.

Check that a port is available before attempting an index access.

* Update mock DB syntax, fix UT.

Update mock DB syntax for wred_profile entries.

Add UT support for expecting no wred profile to exist.

Fix UT expectations.

* Add new lossy queue tests.

* rm comment.

* rm another comment.

---------

Co-authored-by: Kevin Wang <65380078+kevinskwang@users.noreply.github.com>
…2928)

* [build] Fix dependency issue between responses and urllib3 package.
#### What I did
Add [YANG "refine"](https://www.rfc-editor.org/rfc/rfc7950.html#section-7.13.2) support for the `sonic_cli_gen` utility.
YANG refine is used to override the `description` and `mandatory` statements for YANG `grouping`.

#### How I did it
Modify the `sonic_cli_gen/yang_parser.py`

#### How to verify it
Modify the `sonic_cli_gen` UT
Revert test case due to frequent failure in azp introduced in PR #2849
Signed-off-by: Mai Bui <maibui@microsoft.com>
#### What I did
Added input check for argument "-t" in generate_dump script
#### How I did it
Made sure only integer values can be received for this argument
#### How to verify it
Call generate_dump -t with non-integer values
Microsoft ADO 24703217

What I did
In this PR the following enhancements are done

Add support for user to pass username
Add support to login to all linecards before executing any commands
How I did it
How to verify it
UT and chassis
…ers (#2878)

Fix a bug where the CLI command sonic-clear queuecounters would not clear the VOQ counters.

fixes sonic-net/sonic-buildimage#15198

How I did it
Added the command to clear the VOQ counters.

How to verify it
Start traffic on an interface on a specific queue.
Use show queue counters and show queue counters --voq to verify that the counters are non-zero.
Stop traffic on the interface.
Run sonic-clear queuecounters.
Repeat the show commands and ensure that the counters have been reset.
### What I did
Simplify the API used to get the current active image name.

#### How I did it
Instead of relying on the output of the "sonic-installer list" command, use the API  get_current_image() from the sonic_installer.bootloader py library.

#### How to verify it
config reload
config kdump disable
config kdump enable
config kdump memory 768M
### What I did
Add 'show p4-table' command to the CLI. This is a new command to display P4RT tables used by PINS (P4 Integrated Network Stack).

#### How I did it
Add the command in show/p4_table.py to output the P4RT table entries in the Redis application database.

#### How to verify it
Run unit tests, manually test

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

#### New command output (if the output of a command-line utility has changed)
See command reference
@pull pull bot added the ⤵️ pull label Aug 15, 2023
isabelmsft and others added 4 commits August 16, 2023 15:27
What I did
Fixes sonic-net/sonic-buildimage#16012
The show acl table command currently get the ports from host config_db on multi asic platforms.
This host config_db will not the phyiscal ports in the binding ports because the host doesnt have any front panel ports on the host. This causes the show acl table not to display the phyiscal ports in the output on multi asic devices/linecards.

The test iface_namingmode/test_iface_namingmode.py::test_show_acl_table fails because of this issue.
…_config_db (#2946)

#### What I did
Fixes sonic-net/sonic-buildimage#16164

#### How I did it
In the multi-asic devices for eg: supervisor card of a chassis, the asics are not of its own -- it is the asic present in the fabric cards in the chassis. On then -- all the fabric cards need not be present in the chassis everytime.

In that case golden_config_db.json file generated by NDM ( based on the Subdevices in the minigraph ) will not have all ASICs -- it will be for the fabric cards present in the chassis  

With the current logic, if there is an asic namespace missing -- config load_minigraph will exit with error as in the Issue #sonic-net/sonic-buildimage#16164 and not restart dockers.

Add logic to check and continue if the "asic" namespace is not present in the golden_config_db.json for multi-asic platforms.

#### How to verify it
Verified on a SUP

```
admin@str2-xxxx-sup-1:~$ sudo config load_minigraph -y --override_config 
Disabling container monitoring ...
Stopping SONiC target ...
Running command: /usr/local/bin/sonic-cfggen -H -m -j /etc/sonic/init_cfg.json   --write-to-db
Running command: /usr/local/bin/sonic-cfggen -H -m -j /etc/sonic/init_cfg.json  -n asic0 --write-to-db
Running command: /usr/local/bin/sonic-cfggen -H -m -j /etc/sonic/init_cfg.json  -n asic1 --write-to-db
Running command: /usr/local/bin/sonic-cfggen -H -m -j /etc/sonic/init_cfg.json  -n asic2 --write-to-db
Running command: /usr/local/bin/sonic-cfggen -H -m -j /etc/sonic/init_cfg.json  -n asic3 --write-to-db
Running command: /usr/local/bin/sonic-cfggen -H -m -j /etc/sonic/init_cfg.json  -n asic4 --write-to-db
Running command: /usr/local/bin/sonic-cfggen -H -m -j /etc/sonic/init_cfg.json  -n asic5 --write-to-db
Running command: /usr/local/bin/sonic-cfggen -H -m -j /etc/sonic/init_cfg.json  -n asic6 --write-to-db
Running command: /usr/local/bin/sonic-cfggen -H -m -j /etc/sonic/init_cfg.json  -n asic7 --write-to-db
Running command: /usr/local/bin/sonic-cfggen -H -m -j /etc/sonic/init_cfg.json  -n asic8 --write-to-db
Running command: /usr/local/bin/sonic-cfggen -H -m -j /etc/sonic/init_cfg.json  -n asic9 --write-to-db
Running command: /usr/local/bin/sonic-cfggen -H -m -j /etc/sonic/init_cfg.json  -n asic10 --write-to-db
Running command: /usr/local/bin/sonic-cfggen -H -m -j /etc/sonic/init_cfg.json  -n asic11 --write-to-db
Running command: /usr/local/bin/sonic-cfggen -H -m -j /etc/sonic/init_cfg.json  -n asic12 --write-to-db
Running command: /usr/local/bin/sonic-cfggen -H -m -j /etc/sonic/init_cfg.json  -n asic13 --write-to-db
Running command: /usr/local/bin/sonic-cfggen -H -m -j /etc/sonic/init_cfg.json  -n asic14 --write-to-db
Running command: /usr/local/bin/sonic-cfggen -H -m -j /etc/sonic/init_cfg.json  -n asic15 --write-to-db
Running command: /usr/local/bin/sonic-cfggen -d -y /etc/sonic/sonic_version.yml -t /usr/share/sonic/templates/sonic-environment.j2,/etc/sonic/sonic-environment
Running command: config qos reload --no-dynamic-buffer --no-delay
Buffer definition template not found at /usr/share/sonic/device/x86_64-nokia_ixrxxxxe_sup-r0/Nokia-IXRxxxxE-SUP-10/0/buffers.json.j2
Buffer definition template not found at /usr/share/sonic/device/x86_64-nokia_ixrxxxxe_sup-r0/Nokia-IXRxxxxE-SUP-10/1/buffers.json.j2
Buffer definition template not found at /usr/share/sonic/device/x86_64-nokia_ixrxxxxe_sup-r0/Nokia-IXRxxxxE-SUP-10/2/buffers.json.j2
Buffer definition template not found at /usr/share/sonic/device/x86_64-nokia_ixrxxxxe_sup-r0/Nokia-IXRxxxxE-SUP-10/3/buffers.json.j2
Buffer definition template not found at /usr/share/sonic/device/x86_64-nokia_ixrxxxxe_sup-r0/Nokia-IXRxxxxE-SUP-10/4/buffers.json.j2
Buffer definition template not found at /usr/share/sonic/device/x86_64-nokia_ixrxxxxe_sup-r0/Nokia-IXRxxxxE-SUP-10/5/buffers.json.j2
Buffer definition template not found at /usr/share/sonic/device/x86_64-nokia_ixrxxxxe_sup-r0/Nokia-IXRxxxxE-SUP-10/6/buffers.json.j2
Buffer definition template not found at /usr/share/sonic/device/x86_64-nokia_ixrxxxxe_sup-r0/Nokia-IXRxxxxE-SUP-10/7/buffers.json.j2
Buffer definition template not found at /usr/share/sonic/device/x86_64-nokia_ixrxxxxe_sup-r0/Nokia-IXRxxxxE-SUP-10/8/buffers.json.j2
Buffer definition template not found at /usr/share/sonic/device/x86_64-nokia_ixrxxxxe_sup-r0/Nokia-IXRxxxxE-SUP-10/9/buffers.json.j2
Buffer definition template not found at /usr/share/sonic/device/x86_64-nokia_ixrxxxxe_sup-r0/Nokia-IXRxxxxE-SUP-10/10/buffers.json.j2
Buffer definition template not found at /usr/share/sonic/device/x86_64-nokia_ixrxxxxe_sup-r0/Nokia-IXRxxxxE-SUP-10/11/buffers.json.j2
Buffer definition template not found at /usr/share/sonic/device/x86_64-nokia_ixrxxxxe_sup-r0/Nokia-IXRxxxxE-SUP-10/12/buffers.json.j2
Buffer definition template not found at /usr/share/sonic/device/x86_64-nokia_ixrxxxxe_sup-r0/Nokia-IXRxxxxE-SUP-10/13/buffers.json.j2
Buffer definition template not found at /usr/share/sonic/device/x86_64-nokia_ixrxxxxe_sup-r0/Nokia-IXRxxxxE-SUP-10/14/buffers.json.j2
Buffer definition template not found at /usr/share/sonic/device/x86_64-nokia_ixrxxxxe_sup-r0/Nokia-IXRxxxxE-SUP-10/15/buffers.json.j2
Running command: pfcwd start_default
Running command: config override-config-table /etc/sonic/golden_config_db.json
Removing configDB overriden table first ...
Overriding input config to configDB ...
Overriding completed. No service is restarted.
Removing configDB overriden table first ...
Overriding input config to configDB ...
Overriding completed. No service is restarted.
Override config not present for asic1                                   <<<<<<<<<<<<<<<<<<<<<
Removing configDB overriden table first ...
Overriding input config to configDB ...
Overriding completed. No service is restarted.
Removing configDB overriden table first ...
Overriding input config to configDB ...
Overriding completed. No service is restarted.
Removing configDB overriden table first ...
Overriding input config to configDB ...
Overriding completed. No service is restarted.
Removing configDB overriden table first ...
Overriding input config to configDB ...
Overriding completed. No service is restarted.
Removing configDB overriden table first ...
Overriding input config to configDB ...
Overriding completed. No service is restarted.
Removing configDB overriden table first ...
Overriding input config to configDB ...
Overriding completed. No service is restarted.
Removing configDB overriden table first ...
Overriding input config to configDB ...
Overriding completed. No service is restarted.
Removing configDB overriden table first ...
Overriding input config to configDB ...
Overriding completed. No service is restarted.
Removing configDB overriden table first ...
Overriding input config to configDB ...
Overriding completed. No service is restarted.
Removing configDB overriden table first ...
Overriding input config to configDB ...
Overriding completed. No service is restarted.
Removing configDB overriden table first ...
Overriding input config to configDB ...
Overriding completed. No service is restarted.
Removing configDB overriden table first ...
Overriding input config to configDB ...
Overriding completed. No service is restarted.
Override config not present for asic14                          <<<<<<<<<<<<<<<<<<<<<
Override config not present for asic15                          <<<<<<<<<<<<<<<<<<<<<
Restarting SONiC target ...
Enabling container monitoring ...
Reloading Monit configuration ...
Reinitializing monit daemon

```
What I did
This PR is a clone of #2789.

Added two clear commands for fabric counters queue and fabric counters port.

sonic-clear fabriccountersport
sonic-clear fabriccountersqueue
Fabric counters are cleared and saved with these two commands. For example,

# show fabric counters port
  ASIC    PORT    STATE    IN_CELL    IN_OCTET    OUT_CELL    OUT_OCTET    CRC    FEC_CORRECTABLE    FEC_UNCORRECTABLE    SYMBOL_ERR
------  ------  -------  ---------  ----------  ----------  -----------  -----  -----------------  -------------------  ----------
...
     0      49       up          1         244           0            0       0                  2        2,372,752,496               0
     0      50       up          2         315           1          135       0                  4        2,522,457,120               4
...
# sonic-clear fabriccountersport
Clear and update saved counters port
# show fabric counters port
  ASIC    PORT    STATE    IN_CELL    IN_OCTET    OUT_CELL    OUT_OCTET    CRC    FEC_CORRECTABLE    FEC_UNCORRECTABLE    SYMBOL_ERR
------  ------  -------  ---------  ----------  ----------  -----------  -----  -----------------  -------------------  ------------
...
    0      49       up          0           0           0            0      0                  0                    0             0
    0      50       up          0           0           0            0      0                  0                    0      

Co-authored-by: Qi Luo <qiluo-msft@users.noreply.github.com>
Co-authored-by: Jie Feng <jfeng@arista.com>
stepanblyschak and others added 29 commits November 20, 2023 08:59
…eature has constraints in YANG model on FEATURE table (#2933)

* [sonic-package-manager] Fix YANG validation failure on upgrade when feature has constraints in YANG model on FEATURE table


Signed-off-by: Stepan Blyschak <stepanb@nvidia.com>
Signed-off-by: Nazarii Hnydyn <nazariig@nvidia.com>
What is the motivation for this PR?
Implement wol command-line utility based on Wake-on-LAN-HLD.md.

How did you verify/test it?
Add unittest to verify code.

Signed-off-by: Zhijian Li <zhijianli@microsoft.com>
Update tabulate to 0.9.0, deepdiff to 6.2.2, newer cryptography, and
six.

Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
Co-authored-by: Vivek Reddy Karri <vkarri@nvidia.com>
Newer versions of pip/setuptools don't support test_requires, and the
current standard is to specify any extra dependencies (such as those
required for testing) under extra_requires.

Therefore, specify the testing dependencies under extra_requires. These
can be installed via pip using `pip install '.[testing]'`.

Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
* Fix test execution on Bookworm

Running tests with `python3 -m pytest` instead of `python setup.py test`
causes some breakages on Bookworm. Some of this has to do with what
module searc paths get added, while others appear to be related to
changes in the `mock` module between Python 3.9 and Python 3.11.

Fix this and make sure it works on both Bullseye and Bookworm.

* Fix mclag_test.py having different results for some test cases

The test_mclag_add_mclag_member_to_nonexisting_domain test case passes
when run on Bullseye, but fails on Bookworm. This is because some test
cases modify the value of `mclag.ADHOC_VALIDATION`, but this value may
persist for other test cases as well, and if test cases happen to run in
a different order, then it may unexpectedly fail.

For now, fix `test_mclag_add_mclag_member_to_nonexisting_domain` by
setting the value there.

* Add check_output parameter to the setup function due to the patch

Since there is a patched function specified as an attribute, newer
versions of mock expect that the object can be passed in as a parameter
to the function. However, the `setup` functions didn't accept it as a
parameter.

Modify the `setup` functions to accept a parameter for this object.

Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>

---------

Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
Newer versions of Python error out on mutable default fields in a
dataclass, and the fix for that appears to be using the
`default_factory` attribute in `field`. This appears to at least pass
the tests.

Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
Contents of this has been moved to /sys/kernel/debug/sched/debug. If
needed, code can be added later to collect information from
/sys/kernel/debug.

Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
* [sflow][db_migrator] Egress Sflow support
Why I did it
Fix issue: sonic-net/sonic-buildimage#15047 of after deleting vlan member and vlan, the counters for for vlan / vlan member are still seen.

How I did it
Delete related counter entry in state_db when deleting vlan and vlan members.

How to verify it
All UTs passed
Manually test

Signed-off-by: Yaqiang Zhu <yaqiangzhu@microsoft.com>
**HLD:** sonic-net/SONiC#1501

#### What I did
* Implemented CLI for Generic Hash feature

#### How I did it
* Integrated Generic Hash interface into `config` and `show` CLI root

#### How to verify it
* Run Generic Hash CLI UTs

#### Previous command output (if the output of a command-line utility has changed)
```
root@sonic:/home/admin# show switch-hash global
ECMP HASH          LAG HASH
-----------------  -----------------
DST_MAC            DST_MAC
SRC_MAC            SRC_MAC
ETHERTYPE          ETHERTYPE
IP_PROTOCOL        IP_PROTOCOL
DST_IP             DST_IP
SRC_IP             SRC_IP
L4_DST_PORT        L4_DST_PORT
L4_SRC_PORT        L4_SRC_PORT
INNER_DST_MAC      INNER_DST_MAC
INNER_SRC_MAC      INNER_SRC_MAC
INNER_ETHERTYPE    INNER_ETHERTYPE
INNER_IP_PROTOCOL  INNER_IP_PROTOCOL
INNER_DST_IP       INNER_DST_IP
INNER_SRC_IP       INNER_SRC_IP
INNER_L4_DST_PORT  INNER_L4_DST_PORT
INNER_L4_SRC_PORT  INNER_L4_SRC_PORT
```

#### New command output (if the output of a command-line utility has changed)
```
root@sonic:/home/admin# show switch-hash global
+--------+-------------------------------------+
| Hash   | Configuration                       |
+========+=====================================+
| ECMP   | +-------------------+-------------+ |
|        | | Hash Field        | Algorithm   | |
|        | |-------------------+-------------| |
|        | | DST_MAC           | CRC         | |
|        | | SRC_MAC           |             | |
|        | | ETHERTYPE         |             | |
|        | | IP_PROTOCOL       |             | |
|        | | DST_IP            |             | |
|        | | SRC_IP            |             | |
|        | | L4_DST_PORT       |             | |
|        | | L4_SRC_PORT       |             | |
|        | | INNER_DST_MAC     |             | |
|        | | INNER_SRC_MAC     |             | |
|        | | INNER_ETHERTYPE   |             | |
|        | | INNER_IP_PROTOCOL |             | |
|        | | INNER_DST_IP      |             | |
|        | | INNER_SRC_IP      |             | |
|        | | INNER_L4_DST_PORT |             | |
|        | | INNER_L4_SRC_PORT |             | |
|        | +-------------------+-------------+ |
+--------+-------------------------------------+
| LAG    | +-------------------+-------------+ |
|        | | Hash Field        | Algorithm   | |
|        | |-------------------+-------------| |
|        | | DST_MAC           | CRC         | |
|        | | SRC_MAC           |             | |
|        | | ETHERTYPE         |             | |
|        | | IP_PROTOCOL       |             | |
|        | | DST_IP            |             | |
|        | | SRC_IP            |             | |
|        | | L4_DST_PORT       |             | |
|        | | L4_SRC_PORT       |             | |
|        | | INNER_DST_MAC     |             | |
|        | | INNER_SRC_MAC     |             | |
|        | | INNER_ETHERTYPE   |             | |
|        | | INNER_IP_PROTOCOL |             | |
|        | | INNER_DST_IP      |             | |
|        | | INNER_SRC_IP      |             | |
|        | | INNER_L4_DST_PORT |             | |
|        | | INNER_L4_SRC_PORT |             | |
|        | +-------------------+-------------+ |
+--------+-------------------------------------+
```
* Support reading/writing module EEPROM data by page and offset

* Fix unit test issue

* Fix unit test issue

* Fix review comment

* Update command ref

* Fix format

* Update main.py

* Fix review comments

* Fix review comment

* Remove un-intended change

* Update Command-Reference.md

* Update Command-Reference.md

* Fix review comments

* Fix review comments

* User click.IntRange to avoid duplicate validation

* Fix review comments

* Update sfputil_test.py
Add the core files to the tarball while they are been processed, this ensures that
only one core file at a time will be consuming flash space inside the tarpath and the
tarball.
…tus (#3069)

For each BGP status, if the `admin_status` field is not present, then
whether the BGP session is admin up or admin down depends on the default
BGP status (in the `default_bgp_status` field coming from
`init_cfg.json`), which is specified during image build. If the default
BGP status is up, then `admin_status` will be created only when the BGP
session is brought down; similarly, if the default BGP status is down,
then `admin_status` will be created when the BGP session is brought up.

Because of that, modify the script to use the default BGP status as the
initial value.

Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
Fix sonic-net/sonic-buildimage#17322
Remove the route migration operation from db_migrator. The route migration operation takes a lot of time as indicated in the below issue. This is not necessary since the hardcoded assert in the fpmsyncd on new fields is removed in sonic-net/sonic-swss#2981
Otherwise it fills up the pipe and print() will block. When this happens, `route_check.py` will timeout and eventually killed by `monit` after several minutes.

#### What I did
Add an option in `print_message()` to skip printing.

#### How I did it
Add an option `write_to_stdout=True`, in `mitigate_installed_not_offloaded_frr_routes()` call `print_message()` with `write_to_stdout=False`.

#### How to verify it
Manually run route_check.py, verify that the messages were shown in syslog but not in stdout.

#### 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)
* Enhanced route_check.py for multi_asic platforms
* skip eth1 routes for packet-chassis, pytest enhancements
* Collect module EEPROM data in dump
What I did
Need to support golden config in db migrator.

How I did it
If there's golden config json, read from golden config instead of minigraph.
And db migrator will use golden config data to generate new configuration.

How to verify it
Run unit test.
* Execute Route check script only when feature bgp is enabled

If bgp is not enabled, get_frr_routes() gets empty list and route check fails and throws a traceback. Adding check to to skip route checks bgp feature is disabled. On the Chassis supervisor, bgp may be disabled.

Signed-off-by: Anand Mehra anamehra@cisco.com
Depends on PR sonic-net/sonic-buildimage#17458

What I did
Add CLIs to enable/disable containercfgd to optimize warm/fast boot path

How I did it
Add CLIs to enable/disable containercfgd

How to verify it
unit test
manual test
What I did
db_migrator failed to initialize SonicDBConfig, and I fix this issue.

How I did it
If SonicDBConfig is already initialized, do not invoke initialize() again.

How to verify it
Run unit test, and verified on DUT.
…no external neighbors are configured on chassis LC (#3099)

Support show ip bgp summary to display without error when no external neighbors are configured on chassis LC
…atforms (#3115)

Disabling key validation feature in grub file as its not yet supported for Cisco platforms

What I did
Check if the platform we are installing the image on is a Cisco platform
Return success if it is so we are on Cisco platform. This way, we do not perform signature verification as this feature is not yet supported on our platforms.
How I did it
Modified sonic-installer grub.py code
@developfast developfast merged commit b6b61ab into developfast:master Jan 24, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.