Commit Graph

1394 Commits

Author SHA1 Message Date
Zhenhong Zhao
a171e6c5e4
[frrcfgd] introduce frrcfgd to manage frr config when frr_mgmt_framework_config is true (#5142)
- Support for non-template based FRR configurations (BGP, route-map, OSPF, static route..etc) using config DB schema.
- Support for save & restore - Jinja template based config-DB data read and apply to FRR during startup

**- How I did it**

- add frrcfgd service
- when frr_mgmg_framework_config is set, frrcfgd starts in bgp container
- when user changed the BGP or other related table entries in config DB, frrcfgd will run corresponding VTYSH commands to program on FRR.
- add jinja template to generate FRR config file to be used by FRR daemons while bgp container restarted

**- How to verify it**
1. Add/delete data on config DB and then run VTYSH "show running-config" command to check if FRR configuration changed.
1. Restart bgp container and check if generated FRR config file is correct and run VTYSH "show running-config" command to check if FRR configuration is consistent with attributes in config DB

Co-authored-by: Zhenhong Zhao <zhenhong.zhao@dell.com>
2021-01-24 17:57:03 -08:00
Dmytro Shevchuk
dd0e1100a5
[sonic-cfggen] parse optional fec and autoneg fields from hwsku.json (#6155)
**- Why I did it**

For now `hwsku.json` and `platform.json` dont support optional fields. For example no way to add `fec` or `autoneg` field using `platform.json` and `hwsku.json`.

**- How I did it**
Added parsing of optional fields from hwsku.json.

**- How to verify it**
Add optional field to `hwsku.json`. After first boot will be generated new `config_db.json` or you can generate it using `sonic-cfggen` command. In this file must be optional field from `hwsku.json` or check using command `redis-cli hgetall PORT_TABLE:Ethernet0`
Example of `hwsku.json`, that must be parsed:
```
{
    "interfaces": {
        "Ethernet0": {
            "default_brkout_mode": "1x100G[40G]",
            "fec": "rs",
            "autoneg": "0"
        },
...
}
```
Example of generated `config_db.json`:
```
    "PORT": {
        "Ethernet0": {
            "alias": "Ethernet0",
            "lanes": "0,1,2,3",
            "speed": "100000",
            "index": "1",
            "admin_status": "up",
            "fec": "rs",
            "autoneg": "0",
            "mtu": "9100"
        },
```
So, we can see this entries in redis db:
```
admin@sonic:~$ redis-cli hgetall PORT_TABLE:Ethernet0

 1) "alias"
 2) "Ethernet0"
 3) "lanes"
 4) "0,1,2,3"
 5) "speed"
 6) "100000"
 7) "index"
 8) "1"
 9) "admin_status"
10) "up"
11) "fec"
12) "rs"
13) "autoneg"
14) "0"
15) "mtu"
16) "9100"
17) "description"
18) ""
19) "oper_status"
20) "up"
```

Also its way to fix `show interface status`, `FEC` field but also need add `FEC` field to `hwsku.json`.
Before:
```
admin@sonic:~$ show interfaces status
  Interface            Lanes    Speed    MTU    FEC        Alias    Vlan    Oper    Admin             Type    Asym PFC
-----------  ---------------  -------  -----  -----  -----------  ------  ------  -------  ---------------  ----------
  Ethernet0          0,1,2,3     100G   9100     N/A    Ethernet0  routed      up       up  QSFP28 or later         N/A
```
After:
```
admin@sonic:~$ show interfaces status
  Interface            Lanes    Speed    MTU    FEC        Alias    Vlan    Oper    Admin             Type    Asym PFC
-----------  ---------------  -------  -----  -----  -----------  ------  ------  -------  ---------------  ----------
  Ethernet0          0,1,2,3     100G   9100     rs    Ethernet0  routed      up       up  QSFP28 or later         N/A
```
2021-01-24 17:46:33 -08:00
Praveen Chaudhary
24df482e0e
[yang_model_test]: Tests for default value of docker_routing_config_mode and Empty ACL ports. (#6470)
Tests for default value of docker_routing_config_mode and Empty ACL ports.

Signed-off-by: Praveen Chaudhary <pchaudhary@linkedin.com>
2021-01-24 17:33:12 -08:00
judyjoseph
46b3bd5503
[teamd]: Increase wait timeout for teamd docker stop to clean Port channels. (#6537)
The Portchannels were not getting cleaned up as the cleanup activity was taking more than 10 secs which is default docker timeout after which a SIGKILL will be send.
Fixes #6199
To check if it works out for this issue in 201911 ? #6503

This issue is significantly seen in master branch compared to 201911 because the Portchannel cleanup takes more time in master. Test on a DUT with 8 Port Channels.

master

    admin@str-s6000-acs-8:~$ time sudo systemctl stop teamd
    real    0m15.599s
    user    0m0.061s
    sys     0m0.038s
Sonic 201911.v58

    admin@str-s6000-acs-8:~$ time sudo systemctl stop teamd
    real    0m5.541s
    user    0m0.020s
    sys     0m0.028s
2021-01-23 20:57:52 -08:00
Joe LeVeque
238803d6bf
[sonic-host-services] Report unit test coverage (#6533)
To view unit test coverage of sonic-host-services package upon build
2021-01-23 00:32:06 -08:00
Joe LeVeque
d4cde6d310
[process-reboot-cause] Make process-reboot-cause executable (#6534)
process-reboot-cause script should be executable.
2021-01-23 00:29:13 -08:00
Joe LeVeque
4a8e513460
[sonic-platform-daemons] Update submodule (#6535)
Submodule changes to be committed:

* src/sonic-platform-daemons 81318f7...e72f6cd (3):
  > [ledd] Minor refactor; add unit tests (#143)
  > [thermalctld] Report unit test coverage (#141)
  > [psud] Increase unit test coverage (#140)
2021-01-23 00:28:04 -08:00
Guohan Lu
104367838d Revert "[files/build/versions]: support reproduceable build for git (#5774)"
This reverts commit d75c290f00.
2021-01-22 10:28:44 -08:00
Prince Sunny
07200ee4f3
Submodule update swss-common (#6525) 2021-01-22 09:31:53 -08:00
abdosi
5f39926646
Updated BBR to use peer group name as prefix. (#6515)
To make BBR configured for peer-group if it's name starts with (prefixed) with the string define in constants.yml instead of exact string match.
2021-01-22 08:29:27 -08:00
Lawrence Lee
8729fdc9ed
[minigraph.py]: Force /128 prefix for server IPv6 loopbacks (#6524)
Meet the requirement for the MUX_CABLE table that IPv6 loopbacks have a /128 prefix

Note that this change only affects the MUX_CABLE table, all other tables continue to use the loopback address provided in minigraph.

Signed-off-by: Lawrence Lee <lawlee@microsoft.com>
2021-01-21 15:05:35 -08:00
yozhao101
be3c036794
[supervisord] Monitoring the critical processes with supervisord. (#6242)
- Why I did it
Initially, we used Monit to monitor critical processes in each container. If one of critical processes was not running
or crashed due to some reasons, then Monit will write an alerting message into syslog periodically. If we add a new process
in a container, the corresponding Monti configuration file will also need to update. It is a little hard for maintenance.

Currently we employed event listener of Supervisod to do this monitoring. Since processes in each container are managed by
Supervisord, we can only focus on the logic of monitoring.

- How I did it
We borrowed the event listener of Supervisord to monitor critical processes in containers. The event listener will take
following steps if it was notified one of critical processes exited unexpectedly:

The event listener will first check whether the auto-restart mechanism was enabled for this container or not. If auto-restart mechanism was enabled, event listener will kill the Supervisord process, which should cause the container to exit and subsequently get restarted.

If auto-restart mechanism was not enabled for this contianer, the event listener will enter a loop which will first sleep 1 minute and then check whether the process is running. If yes, the event listener exits. If no, an alerting message will be written into syslog.

- How to verify it
First, we need checked whether the auto-restart mechanism of a container was enabled or not by running the command show feature status. If enabled, one critical process should be selected and killed manually, then we need check whether the container will be restarted or not.

Second, we can disable the auto-restart mechanism if it was enabled at step 1 by running the commnad sudo config feature autorestart <container_name> disabled. Then one critical process should be selected and killed. After that, we will see the alerting message which will appear in the syslog every 1 minute.

- Which release branch to backport (provide reason below if selected)

 201811
 201911
[x ] 202006
2021-01-21 12:57:49 -08:00
Tamer Ahmed
5c31f6d8cc
[sonic-swss-common]: Update Submodule (#6508)
Update in this change:
640a218 [packaging]: Add Support For Libboost v1.71.0 (#449)

signed-off-by: Tamer Ahmed <tamer.ahmed@microsoft.com>
2021-01-21 12:11:04 -08:00
Qi Luo
21c3573607
[sonic-swss] Update submodule (#6336)
Including below commits:

36f7332 2021-01-14 | modified ERR log to NOTICE log for FDB notification failure after VLAN delete (#1595) [madhanmellanox]
c21c883 2021-01-12 | [ci]: download artifacts from master branch build (#1597) [lguohan]
a1d03a4 2021-01-12 | [fgnhgorch] Match mode changes for Fine Grained ECMP (#1565) [anish-n]
1b65f3d 2021-01-12 | [ci]: use sonicbld pool (#1594) [lguohan]
48ae866 2021-01-12 | [pfcwd] Update PFC storm detection logic for Mellanox platforms (#1586) [Volodymyr Samotiy]
850001f 2021-01-12 | [FPMSYNCD] Evpn/Vxlan related changes to support FRR7.5(#1585) [KISHORE KUNAL]
64ca9bb 2021-01-12 | [ci]: only copy artifacts when build is successful (#1590) [lguohan]
17d0dae 2021-01-11 | [Fdborch] Fix for arm compilation (#1592) [Prince Sunny]
693a02c 2021-01-08 | [gearbox] Add support for "hwinfo" field (#1547) [Baptiste Covolato]
7e3b2c6 2021-01-09 | [Evpn Warmreboot] Added Dependancy check logic in VrfMgr (#1466) [nkelapur]
a960e2e 2021-01-09 | [Orchagent]: FdbOrch changes for EVPN VXLAN (#1275) [Pankaj Jain]
097cfda 2021-01-08 | [swss test] update setup guide for swss tests (#1582) [Ying Xie]
b42253a 2021-01-05 | Fix for armhf build (#1580) [Qi Luo]
d8c1465 2021-01-05 | [dvs] Update/disable DVS tests with new FRR 7.5 behavior (#1579) [Danny Allen]
f6c7422 2021-01-05 | ASIC internal temperature sensors support (#1517) [Santhosh Kumar T]
0aa9ef2 2021-01-01 | Simply by auto iterator type, because we will tune the return types of library functions (#1577) [Qi Luo]
773238b 2020-12-31 | [build]: Fix format string for size_t (#1576) [Qi Luo]
7ba4e43 2020-12-30 | [fgnhgorch] add warm reboot support for fgnhg (#1538) [weixchen1215]
4cf6617 2020-12-30 | [ci]: add build for arm64 and armhf (#1572) [lguohan]
6ebc0ed 2020-12-29 | [ci]: add azure-pipeline for amd64 (#1571) [lguohan]
e32b9d0 2020-12-29 | [FDBSYNCD] Added pytest for fdbsyncd (#1560) [KISHORE KUNAL]
a43f6be 2020-12-30 | [crm] Add support for snat, dnat and ipmc crm resources (#1511) [Prabhu Sreenivasan]
7fc3888 2020-12-29 | PY Test script for EVPN L3 VxLAN (#1330) [Tapash Das]
6eb36d9 2020-12-27 | vlanmgr changes related to EVPN VxLan warmboot (#1460) [anilkpan]

Signed-off-by: Guohan Lu <lguohan@gmail.com>
2021-01-21 11:14:15 -08:00
Tamer Ahmed
df297731f6
[submodule]: Update SONiC Utilities Submodule (#6507)
Changes in this update:
37695c8 [show]: Use TCP Connection For Muxcable Commands (#1371)
8119ba2 Validations checks while creating and deleting a Portchannel (#1326)
3df267e [config] Fix Breakout mode option and BREAKOUT_CFG table check method (#1270)
9bd709b [show] Fix show arp in case with FDB entries, linked to default VLAN (#1357)
bc2d27e [generate_dump]: fix syntax error

signed-of-by: Tamer Ahmed <tamer.ahmed@microsoft.com>
2021-01-21 00:25:08 -08:00
liushilongbuaa
d75c290f00
[files/build/versions]: support reproduceable build for git (#5774)
* support reproduceable build for git clone

Signed-off-by: shilongliu <shilongliu@microsoft.com>

* fix

Co-authored-by: shilongliu <shilongliu@microsoft.com>
2021-01-21 14:16:02 +08:00
KISHORE KUNAL
cad2025ad0
[frr]: ADD L3 VNI EVPN Support for SONiC, Send RMAC and VLAN along with prefix to fpmsyncd. (#4806)
Currently FRR is send Prefix with VNI information to FPMSYNCD. This PR allows FRR to send RMAC with EVPN Type5 prefix to fpmsyncd. This is a temp fix. This patch will be removed once neighorch is ready to handle the Prefix and ARP (containing RMAC) separately.
2021-01-20 15:00:29 -08:00
Qi Luo
3c16f80382
sonic-config-engine uses libswsscommon instead of swsssdk (#6406)
**- Why I did it**
swsssdk will be deprecated. Migrate sonic-config-engine to use libswsscommon library instead

**- How to verify it**
Unit test
2021-01-20 12:06:08 -08:00
shlomibitton
abb01394cd
[submodule]: update sonic-utilities (#6485)
- [route_check.py] - update includes checks on subscriptions (https://github.com/Azure/sonic-utilities/pull/1344)
- Validations checks while adding a member to PortChannel and removing a member from a Portchannel (https://github.com/Azure/sonic-utilities/pull/1328)
- [show] Add subcommand to show midplane status for modular chassis (https://github.com/Azure/sonic-utilities/pull/1267)
- [pytest][qos][config] Added pytests for "config qos reload" commands" (https://github.com/Azure/sonic-utilities/pull/1346)
- Drop explict 3 seconds pause between two object updates/deletes. (https://github.com/Azure/sonic-utilities/pull/1359)
- [show]fix for show muxcable status by replacing "hostname" to "peer_switch" for deriving tor ipv4_address (https://github.com/Azure/sonic-utilities/pull/1360)
- [PFCWD] Fix 'start' pfcwd command (https://github.com/Azure/sonic-utilities/pull/1345)

Signed-off-by: Shlomi Bitton <shlomibi@nvidia.com>
2021-01-20 09:10:35 -08:00
Danny Allen
3a942fb544
[submodule] Update sonic-sairedis submodule pointer (#6496)
[ci]: download artifacts from master branch (#768)
Do not create fabric port if mapping is not available (#769)
[syncd] Comparison logic log also current attr value on set operation (#763)
Add fabric port test to vslib (#737)
[ci]: use sonicbld pool (#766)
[tests] Remove exit command blocking all tests to run (#765)
[vslib]: adapt macsec sai 1.7.1 (#755)
Add support for SAI_SWITCH_ATTR_AVAILABLE_IPMC_ENTRY needed by CRM (#756)

Signed-off-by: Danny Allen <daall@microsoft.com>
2021-01-19 15:57:42 -08:00
lguohan
6d13d0fa9b
[submodule]: update sonic-wpa-supplicant (#6492)
* 3b330db4a 2021-01-18 | [build]: Fix build error when compiling for armhf (32-bit) (#30) (HEAD, origin/master, origin/HEAD, master) [dflynn-Nokia]
* 56aaa225b 2021-01-16 | [ci]: add pipeline for armhf and arm64 (#29) [lguohan]
* 90da6141c 2021-01-12 | [ci]: propagate the correct error code the next step (#27) [lguohan]

Signed-off-by: Guohan Lu <lguohan@gmail.com>
2021-01-19 13:57:43 -08:00
Vadym Hlushko
1ea5fd7c70
[DPB][YANG-models] extended regex pattern according to Mellanox systems speeds requirements (#6279)
[DPB][MLNX][YANG] fixed range of max speed

- Why I did it
All Mellanox platforms require DPB modes with a specific set of speeds example

- How I did it
Extended regex pattern inside YANG model.
Supported platforms: SN2010, SN2100, SN2410, SN2700, SN3420, SN3700, SN3700C, SN3800, SN4600C, SN4410, SN4700

- How to verify it
Manually tested DPB CLI on all platform with all modes

Signed-off-by: Vadym Hlushko <vadymh@nvidia.com>
2021-01-17 10:39:40 +02:00
Lawrence Lee
063e11cce1
[minigraph.py]: Don't create mux table entries for servers w/o loopbacks (#6457)
Avoid sonic-cfggen crashing when a server does not have a configured loopback address in the minigraph

Signed-off-by: Lawrence Lee <lawlee@microsoft.com>
2021-01-17 00:23:11 -08:00
Lawrence Lee
ffcef27eb1
[minigraph.py]: Check for empty cluster tag before parsing (#6440)
Some non-production minigraphs will have an empty ClusterName tag

Signed-off-by: Lawrence Lee <lawlee@microsoft.com>
2021-01-15 08:03:47 -08:00
Partha Dutta
58a13b4c11
Export libyang API "lyd_check_mandatory_tree" for Management framework (CVL) (#5714)
- Why I did it
Management framework (CVL) needs to call lyd_check_mandatory_tree() for validation and hence exported lyd_check_mandatory_tree() as an API.

- How I did it
Added "API" keyword before lyd_check_mandatory_tree() definition.

- How to verify it
There is no functionality code change here and no specific steps to verify it. Management framework (CVL) should be able to call this function and no patching and compilation error should be seen.

- Description for the changelog
Added "API" keyword before export lyd_check_mandatory_tree() function definition.
2021-01-14 16:47:57 -08:00
Joe LeVeque
c141bb90e9
Remove things needed for building Python 3 from source (#6441)
**- Why I did it**

Prior to SONiC using Debian Buster, we needed to build Python 3.5 or newer from source for installation in the SNMP container, becuase it wasn't available from the Debian repository for Jessie or Stretch. Now that all containers are based on Buster, we simply install Python 3.7 from the Debian repository in the host as well as all containers. We are no longer building Python 3 from source, so the Makefile is unused and we no longer need to install build dependencies in the slave containers.

**- How I did it**

- Remove Python 3 makefile
- No longer install Python 3 build dependencies in the slave containers.
2021-01-14 10:25:40 -08:00
Stepan Blyshchak
9a1b42ff6b
[snmpagent] update submodule (#6169)
Includes below sonic-snmpagent commits
```
dfde06e 2021-01-13 | Revert "[rfc1213] Interface MIB add l3 vlan interfaces & aggregate rif counters (#169)" (#191) [Stepan Blyshchak]
45edd7e 2021-01-04 | [snmpagent] Fix hardcoded qsfp lane count by reading sensor status from DB (#184) [Junchao-Mellanox]
3b72a6f 2021-01-02 | Fix: handle empty LOC_CHASSIS_TABLE (#190) [Qi Luo]
4aad821 2020-12-29 | [sysName]: Implement sysName OID (#185) [SuvarnaMeenakshi]
8efb4bb 2020-12-29 | [rfc1213] fix counter value type (#189) [Stepan Blyshchak]
025483a 2020-12-23 | [RouteUpdater]: Fix multi_asic mock function implementation and multi_asic variable name (#186) [SuvarnaMeenakshi]
381ae47 2020-12-10 | [mibs] b'VLAN_TABLE:' -> 'VLAN_TABLE' (#181) [Stepan Blyshchak]
e54036c 2020-12-09 | [rfc1213] Interface MIB add l3 vlan interfaces & aggregate rif counters (#169) [Stepan Blyshchak]
fd1eae7 2020-11-24 | Set swsscommon logging level (#178) [Qi Luo]
706d504 2020-11-23 | Improve MockRedis _encode(): so it will work on all types of value (#179) [Qi Luo]
64c93a1 2020-11-16 | [RFC4292][Namespace]: Fix implementation of RouteUpdater for multi-asic platform (#176) [SuvarnaMeenakshi]
b8f19ee 2020-11-12 | [sonic-snmpagent] SONiC physical entity mib extension (#168) [Junchao-Mellanox]
6b94ec3 2020-11-05 | Replace swsssdk.SonicV2Connector with swsscommon.SonicV2Connector (SWIG wrapper of C++ implementation) in production code (#162) [Qi Luo]
```

Signed-off-by: Stepan Blyshchak <stepanb@nvidia.com>
Co-authored-by: Qi Luo <qiluo-msft@users.noreply.github.com>
2021-01-14 00:34:34 -08:00
Kebo Liu
86553342eb
[sonic-linux-kernel]: Update sonic-linux-kernel submodule (#6433)
Update sonic-linux-kernel pointer to pick up new commits:

- Backport patches to increase critical threshold for ASIC and validate transceiver temperature a7c1af7c44edde90dff49d672071139043bcdb65  548e8e0be4
- [ci]: Set up CI with Azure Pipelines   548e8e0be49692050ea4071d5e9945816bc5aacc a7c1af7c44

Signed-off-by: Kebo Liu <kebol@nvidia.com>
2021-01-13 15:18:05 -08:00
Vaibhav Hemant Dixit
8b4b146760
[sonic-swss-common] Advance swss-common head to include General Protection error fix (#6436)
To include Kernel GP fault seen in *syncd processes:
Azure/sonic-swss-common#444
2021-01-13 10:18:17 -08:00
xumia
1dcab4d1e3
Fix py3 version changed even version control enabled issue (#6422)
* Fix py3 version changed even version control enabled issue

* Add some comments and simplify the script

* Add the comment to explain how to get the not hooked command
2021-01-13 18:40:39 +08:00
Lawrence Lee
6e63ecfa1d
[minigraph.py]: Force /32 prefix for mux cable server IPv4 loopbacks (#6418)
Server IPv4 loopbacks do not always arrive with /32 prefix, which is a requirement for the MUX_CABLE table in config DB

Signed-off-by: Lawrence Lee <lawlee@microsoft.com>
2021-01-12 06:04:48 -08:00
lguohan
ab2ae41212
[build]: fix dpkg admindir corruption issue in parallel build (#6408)
Fix #119

when parallel build is enable, multiple dpkg-buildpackage
instances are running at the same time. /var/lib/dpkg is shared
by all instances and the /var/lib/dpkg/updates could be corrupted
and cause the build failure.

the fix is to use overlay fs to mount separate /var/lib/dpkg
for each dpkg-buildpackage instance so that they are not affecting
each other.

Signed-off-by: Guohan Lu <lguohan@gmail.com>
2021-01-12 06:03:12 -08:00
xumia
4ef3f1376f
[arista]: Fix web package md5 hash not correct issue (#6411)
Need to add the follow redirection option -L when downloading the package with redirection.
2021-01-11 10:33:08 -08:00
Lawrence Lee
3dd993e019
[minigraph.py]: Add peer switch hostname to device metadata (#6405)
To make the peer switch hostname easily accessible from config DB. Add peer_switch field to DEVICE_METADATA table

Signed-off-by: Lawrence Lee <lawlee@microsoft.com>
2021-01-11 10:18:39 -08:00
Ying Xie
281651510c
[utilities] advance utilities submodule head (#6402)
- (HEAD, github/master) [storyteller] adding a grep wrapper with predefined scenarios (#1349)
- Adding global-timeout, individual command timeout, log files collection (#1249)
- Add FW dump with new SAI implementation (#1338)
- [unit test][pfcwd] Fix tests that require sudo access (#1340)

Signed-off-by: Ying Xie <ying.xie@microsoft.com>
2021-01-11 08:13:04 -08:00
Ze Gan
c22575218a
[docker-macsec]: MACsec container and wpa_supplicant component (#5700)
The HLD about MACsec feature is at :

https://github.com/Azure/SONiC/blob/master/doc/macsec/MACsec_hld.md

- How to verify it
This PR doesn't set MACsec container automatically start, You should manually start the container by docker run docker-macsec
wpa_supplicant binary can be found at MACsec container.
This PR depends on the PR, WPA_SUPPLICANT, and The MACsec container will be set as automatically start by later PR.

Signed-off-by: zegan <zegan@microsoft.com>
2021-01-10 10:39:59 -08:00
dependabot[bot]
72b635083d
Bump lxml from 4.6.1 to 4.6.2 in /src/sonic-config-engine (#6385)
Bumps [lxml](https://github.com/lxml/lxml) from 4.6.1 to 4.6.2.
- [Release notes](https://github.com/lxml/lxml/releases)
- [Changelog](https://github.com/lxml/lxml/blob/master/CHANGES.txt)
- [Commits](https://github.com/lxml/lxml/compare/lxml-4.6.1...lxml-4.6.2)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-08 15:47:29 -08:00
Qi Luo
5b7f88abf3
[sonic-swss-common] Update submodule (#6382)
Includes sonic-swss-common commits:
```
71dc350 2021-01-07 | Lower the log level for outdated key for SubscriberStateTable notification (#441) [Qi Luo]
7e40582 2021-01-08 | Add boost dependencies (#442) [Ze Gan]
30a8ddf 2021-01-05 | Change DBConnector::hgetall return type from map to unordered_map (#440) [Qi Luo]
021108d 2021-01-02 | MCLAG Enhancements per HLD https://github.com/Azure/SONiC/pull/596 (#405) [Praveen-Brcm]
54996fc 2021-01-02 | Implement ConfigDBConnector and ConfigDBPipeConnector in C++ (#437) [Qi Luo]
8286525 2020-12-27 | Simply refactor DBConnector hgetall() [Qi Luo]
6d1d33b 2020-12-27 | Fix RedisTransactioner: handle empty deque [Qi Luo]
624e0b8 2020-12-26 | Move complex class constructor as explicit, and fix several mistaken copy constructor usage [Qi Luo]
3b983f9 2020-12-30 | [ci]: add timeout to 180 minutes for arm build (#439) [lguohan]
f2e4210 2020-12-29 | Add utility for string and redis (#434) [Ze Gan]
7a885fd 2020-12-29 | [build]: add build check for arm64 and armhf (#436) [lguohan]
47bccc4 2020-12-24 | Add missed vector header to rediscommand.h (#435) [Ze Gan]
```
2021-01-08 14:13:25 -08:00
pavel-shirshov
83715cfc49
[bgpcfgd]: Support default action for "Allow prefix" feature (#6370)
* Use 20 and 30 route-map entries instead of 2 and 3 for TSA

* Added support for dynamic "Allow list" default action.

Co-authored-by: Pavel Shirshov <pavel.contrib@gmail.com>
2021-01-08 14:03:26 -08:00
Joe LeVeque
2d77a36658
[system-health] Make run_command() Python 3-compliant (#6371)
Pass universal_newlines=True parameter to subprocess.Popen(); no longer use .encode('utf-8') on resulting stdout.
This was missed in #5886

Note: I would prefer to use text=True instead of universal_newlines=True, as the former is an alias only available in Python 3 and is more understandable than the latter. However, Even though the setup.py file for this package only specifies Python 3, the LGTM tool finds other Python 2 code in the repo and validates the code as Python 2 code and alerts that text=True is an invalid parameter. Will stick with universal_newlines=True for now. Once all Python code in the repo has been converted to Python 3, I will change all universal_newlines=True to text=True.
2021-01-07 05:48:13 -08:00
Joe LeVeque
a013b8c247
[sonic-platform-common][sonic-platform-daemons] Update submodules (#6352)
src/sonic-platform-common 9935fca...8664efc (2):

Make sonic_sfp Python2 and Python3 compatible (#157)
[sffbase.py] Fix to make Python 3-compatible (#156)

src/sonic-platform-daemons e6c786b...81318f7 (1):

[psud] Fix issue where PSU Fan info is not updated in State DB (#137)

Fixes #6341
2021-01-06 14:47:30 -08:00
Ying Xie
78dae94e5e
[sairedis] advance sairedis submodule head (#6365)
To incldue following changes:

- [ci]: add build for arm64 and armhf (#757)
- Use template hgetall, because we will tune the return types of library functions (#759)
- [syncd] Fix bulk multi attrs for same key db update (#761)

Signed-off-by: Ying Xie <ying.xie@microsoft.com>
2021-01-06 06:14:25 -08:00
Vaibhav Hemant Dixit
6fd78b6e3d
[determine-reboot-cause] Ignore non-hardware reboot cause (#6349)
- Why I did it - Reboot cause prints "Non-Hardware (N/A)" instead of showing the software reboot cause.
The issue is mishandling of hardware reboot cause in determine-reboot-cause script.

- How I did it
Fixed the handling for Non Hardware reboot cause. Ignore if Non-Hardware is present in the hardware_reboot_cause output. Added some code refactoring for simplicity.

- How to verify it - With fix, the hardware reboot cause is ignored (if it is non hw):
2021-01-05 10:47:42 -08:00
sudhanshukumar22
7fc2d381a9
[lldp] lldp upstream patches (#6118)
The details are as follows:

    1. 0010-Ported-fix-for-length-exceeded-from-lldp-community.patch

    Patch taken from 78243478dc

    lib: remove limit on system description length

    The limit was introduced in 9c49ced while fixing a memory leak.
    The state data is used to ensure we don't interleave operations. We
    need to handle the case where the value is truncated because it is
    larger than the allocated size.

    Fix issue https://github.com/lldpd/lldpd/issues/408

    2. 0011-fix-med-location-len.patch
    
    Patch taken from 5c3479463a

    lib: fix LLDP-MED location parsing in liblldpctl

    Some bounds were not checked correctly when parsing LLDP-MED civic
    location fields. This triggers out-of-bound reads (no write) in
    lldpcli, ultimately leading to a crash.

    Fix https://github.com/lldpd/lldpd/pull/420

Signed-off-by: sudhanshukumar22 <sudhanshu.kumar@broadcom.com>
2021-01-04 23:19:50 -08:00
Sabareesh-Kumar-Anandan
d6b92da643
[libyang1] Adding LFS support for arm32 (#6346)
In the emulated armhf environment, the function readdir()returns NULL on a ext4 file system directory. When running the libyang1 test cases, it will require to load the plugins from the files (such as metadata.so), because the readdir() is failing, the plugins can’t be loaded in the emulated armhf environment, so it causes libyang1 test error. This error is a combination of the following reasons.
• Emulation of a 32-bit target from a 64-bit host –> qemu from x86_64 to armhf
• Glibc version > 2.27 – Debian buster is using glibc 2.28

- How I did it
Enabled large file support by setting _FILE_OFFSET_BITS=64 for libyang1.

Signed-off-by: Sabareesh Kumar Anandan <sanandan@marvell.com>
2021-01-04 12:28:32 -08:00
Mahesh Maddikayala
c6253f6334
[sonic-py-common] Added an API to get file path containing SONiC version (#6309)
* [sonic-py-common] add an API to get file path containing SONiC version so that the API can be mocked for unit tests.
2021-01-03 08:10:28 -08:00
Tony Titus
70ba59109d
[sonic-swss-common] Update submodule (#6317)
Including commits in sonic-swss-common repo:

b423b9c Add support for hexists call (#432) [Tony Titus]
0982996 Remove extension of tableNameSeparatorMap (#430) [Qi Luo]
d16cc76 [build]: add azure pipeline build badge (#429) [lguohan]
f2aaf55 Set up CI with Azure Pipelines (#428) [lguohan]
2020-12-31 17:43:09 -08:00
Vaibhav Hemant Dixit
40f69f0aac
[determine-reboot-cause] Skip invoking platform code for unit tests for hardware_reboot_cause (#6325)
What: Modify unit test to not call any platform dependent api in test_find_hardware_reboot_cause.

- Why I did it
MELLANOX build is failing for the recent PRs. The errors are due to platform library being invoked in a unit test for determine-reboot-cause script.

Verified by running unit tests and a successful Mellanox build.

Co-authored-by: Vaibhav Hemant Dixit <vadixit@microsoft.com>
2020-12-30 17:48:56 -08:00
kktheballer
ba92a081ce
Minigraph ECMP parsing support (cleaner format) (#4985)
Why I did it
To support FG_ECMP  scenarios
- How I did it
Modified minigraph parser to parse ECMP fields in the case they are present in minigraph
- How to verify it
Loaded ensuing config_db file on a DUT to verify the fields are parsed and configure device correctly
2020-12-30 15:18:21 -08:00
Joe LeVeque
566ea4f601
[system-health] Convert to Python 3 (#5886)
- Convert system-health scripts to Python 3
- Build and install system-health as a Python 3 wheel
- Also convert newlines from DOS to UNIX
2020-12-29 14:04:09 -08:00