Commit Graph

1274 Commits

Author SHA1 Message Date
Abhishek Dosi
adbf78816f [submodule update] sonic-sairedis
e98a7af95a9767093904d9e8fd320067163d5f87 (HEAD -> 201911, origin/201911) [syncd] Translate removed RIDs in fdb notification (#729)
3ceeae5371eee5b69064fa1af88f51e27caa2d36 [syncd] Process all cases fdb flush notification (#726)
115ba0783edf85658fd0329eb23796d758c309f5 fix compile error when compiling with g++-4.8.4 (#718)
a67f94d3d91325516069ef8c0d99bdec30bafbce Fix typo at SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_UINT32 (#662)

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-12-14 22:46:24 -08:00
Abhishek Dosi
02004411b3 [submodule update] sonic-swss
7f50b9815e14d90c02d9dce63fd08d90e25cee3f (HEAD -> 201911, origin/201911) handled update() function of fdb orchagent for FDB FLUSH event (#1534)
17adc13b6ca21846fe27c94d6a16f9909c712d77 Add a check for warm-restart, and do a clear only when warm-restart is enable. (#1498)
d097260a5aa7bd611babd5062e220056374e23d8 Fixed compilation failure with debug option (#1518)

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-12-14 22:43:35 -08:00
Abhishek Dosi
371f82881b [Submoudle update] sonic-utilities
ccb52454a11e6906bb074d888740d279e4a3c8e3 (HEAD -> 201911, origin/201911) [fast-reboot] Fix fast-reboot when NDP entries are present (#1295)
d09667b86abb7d3cd31b92bedf6e4d4bdac4937f Multi-ASIC support for show ip(v6) route (201911 branch) (#1283)
28399bfcad2a40f1a85095bc679540531c4e673c [201911-Mellanox] SKU creator Tool (#1163) (#1250)

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-12-09 17:46:53 -08:00
Junchao-Mellanox
fd05c2581d
Update submodule for PR [thermalctld][201911] Set led status after updating all other fan status (#6055)
Update submodule pointer for PR Azure/sonic-platform-daemons#126
2020-12-04 13:49:41 -08:00
abdosi
3a24e7f31f [multi-asic] Enhancing monit process checker for multi-asic. (#6100)
Added Support of process checker for work on multi-asic platforms.
2020-12-04 13:17:35 -08:00
Xin Wang
bf0ce16ebd [bgp]: Fix bgp crash after BGP allow list configuration is added (#6088)
The issue was a typo introduced in #6006. In that change, the BGP allow list
configuration manager was updated to use a method of common ConfigMgr
for restarting peer groups. However, the method name 'restart_peers' was
used instead of the correct 'restart_peer_groups'.

This change updated the managers_allow_list.py to use correct method
'restart_peer_groups' for restarting peer groups.

Signed-off-by: Xin Wang <xiwang5@microsoft.com>
2020-12-03 10:44:31 -08:00
Ying Xie
9345fffe8a [FRR] remove the whole block of outchannel properly (#6045)
- Why I did it
Fix issue #6043

- How I did it
We are disabling in container frr log. The log entries are sent to base image and are logged in /var/log/quagga/bgpd.log.

However, we need to remove the whole outchannel config block to avoid an error message raised by rsyslogd.

- How to verify it
Without the change, test_autorestart bgp container will fail on loganalyer errors. With the change, restarting bgp container is no longer generating error message and the test will pass.

The log generated by frr continued appearing in /var/log/quagga/bgpd.log
2020-11-26 17:04:22 -08:00
pavel-shirshov
9e0ea83cd9
[bgpcfgd]: Use peer commands for BBR, not peer-group (#6048)
* templates: Move 'allowas-in' command from peer-group to instance configuration

* Use peer itself, don't rely on peer-groups
2020-11-26 09:55:24 -08:00
Abhishek Dosi
be0f82e09e [submodule update] sonic-utilities
49cd91dd0eb6d4b4d5fff388035a955feb8d242a (HEAD -> 201911, origin/201911) Feature table cli command update (#1271)
167d67a57a68c2499ef26e74f94cfb5b1c4eff73 [201911]  CRM show/config commands changes for multi-asic (#1127) (#1236)

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-11-25 17:47:28 -08:00
Abhishek Dosi
854642a1e0 Fix the build error
Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-11-25 15:22:01 -08:00
Abhishek Dosi
37a1b05b79 Fix Merge Conflict
Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-11-25 15:15:17 -08:00
pavel-shirshov
619256f446 [bgpcfg]: Batch bgp updates (#6006)
* [bgpcfgd]: Batch bgp updates.

vtysh -f command is slow. It is sometimes takes about 3 seconds.
When we need to run many vtysh -f commands that slows down the system.
Batch vtysh -f updates.

* Use correct file to import run_command
2020-11-25 15:11:28 -08:00
Abhishek Dosi
ac5117f20b [submodule update] sonic-mgmt-framework
cc4c4db14439a2b91690df0189b62e011ec41f4c (HEAD -> 201911, origin/201911) Merge pull request #74 from project-arlo/fix_otel_dep_error
44df06e0d44bdf7ce49d4eb05ced34f06eb65133 Make sure redis library is checkout with correct commit ID
7ab88143fa4b89d2d7b8030c9ac7b5e6dba16251 Remove unsupported commands (#62)

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-11-23 23:49:29 -08:00
Ying Xie
628cc2c11b [frr] remove frr rsyslog file outchannel (#5962)
- Why I did it
frr is creating /var/log/frr/frr.log inside the frr docker and letting it grow. It will eventually exhaust hard drive space.

To fixe issue #5965

- How I did it
Remove rsyslog file outchannel so that frr won't generate /var/log/frr/frr.log inside the docker.

- How to verify it
Manually removed the outchannel and restart BGP docker, making sure that /var/log/frr/frr.log is no longer created inside the docker.

While restarting bgp docker, observed that base image /var/log/quagga/bgpd.log continued to grow and captured all FRR logs.
2020-11-21 09:49:48 -08:00
Prince Sunny
1c2c30fccd Set preference for forced mgmt routes (#5844)
When forced mgmt routes are present, the issue fixed as part of #5754 is not complete.
Added a preference(priority) field to forced mgmt route ip rules
2020-11-21 09:27:09 -08:00
Abhishek Dosi
fd73c84805 submodule update [sonic-swss]
756dd9c8123cd06dc581d9b2eb236334deee1850 (HEAD -> 201911, origin/201911)
[201911 sonic-swss] Flushing FDB entries before removing BridgePort (#1516)
e3f22ea6685104a819440ecc0efe89c4bd3a0003 [201911/portsorch] Add
correct stat list for port buffer drop counters (#1509)

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-11-21 09:00:52 -08:00
Abhishek Dosi
7045d4a5ef [submodule update] sonic-snmpagent
[RFC4292][Namespace][201911]: Fix implementation of RouteUpdater for
 multi-asic platform (#177)

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-11-19 10:42:42 -08:00
pavel-shirshov
5f5ec04dda [bgpcfgd]: Fixes for BBR (#5956)
* Add explicit default state into the constants.yml
* Enable/disable only peer-groups, available in the config
* Retrieve updates from frr before using configuration

Co-authored-by: Pavel Shirshov <pavel.contrib@gmail.com>
2020-11-19 10:42:42 -08:00
Abhishek Dosi
8efe97498c [submodule update] sonic-utilities
c0df6355deb8bc3685395f727983a5e9f3b06f61 (HEAD -> 201911, origin/201911) Updates to bgp config and show commands with BGP_INTERNAL_NEIGHBOR table (#1224) (#1237)
d683bb48604220942b9f6bdea90c0ea4ff4f72ef [CLI][show][platform] Added ASIC count in the output. (#1185) (#1227)
4585be10aa8e761ce1091ac4a20e562c2550970c [show] Fix 'show int neigh expected' (#1189)
29e4469d5e6c5058fe20c1ce71790f69b7193e7e [201911][fwutil]: Use logger from sonic-py-common (#1190)

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-11-14 08:42:39 -08:00
Lawrence Lee
cb32b362f5 Make backend device checking more robust (#5730)
Treat devices that are ToRRouters (ToRRouters and BackEndToRRouters) the same when rendering templates
 Except for BackEndToRRouters belonging to a storage cluster, since these devices have extra sub-interfaces created
Treat devices that are LeafRouters (LeafRouters and BackEndLeafRouters) the same when rendering templates

Signed-off-by: Lawrence Lee <lawlee@microsoft.com>
2020-11-14 08:39:08 -08:00
pavel-shirshov
e9ff96d90e [bgp]: Update TSA functionality (#5906)
Fixed TSA bugs:
1. TSA didn't advertise Loopback ipv6 address
2. TSA and TSB changed BGP dynamic and BGP monitors sessions

**- How to verify it**
Build an image and run on your DUT.
```
admin@str-s6100-acs-1:~$ TSA
System Mode: Normal -> Maintenance
admin@str-s6100-acs-1:~$ vtysh -c 'show bgp ipv4 neighbors 10.0.0.1 advertised-routes'
BGP table version is 6, local router ID is 10.1.0.32, vrf id 0
Default local pref 100, local AS 64601
Status codes:  s suppressed, d damped, h history, * valid, > best, = multipath,
               i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes:  i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
*> 10.1.0.32/32     0.0.0.0                  0         32768 i

Total number of prefixes 1
admin@str-s6100-acs-1:~$ vtysh -c 'show bgp ipv6 neighbors fc00::a advertised-routes'
BGP table version is 6, local router ID is 10.1.0.32, vrf id 0
Default local pref 100, local AS 64601
Status codes:  s suppressed, d damped, h history, * valid, > best, = multipath,
               i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes:  i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
*> fc00:1::/64      ::                       0         32768 i

Total number of prefixes 1
admin@str-s6100-acs-1:~$ TSB
System Mode: Maintenance -> Normal
```

Co-authored-by: Pavel Shirshov <pavel.contrib@gmail.com>
2020-11-14 08:35:13 -08:00
Abhishek Dosi
c1feae8a80 [submodule update]
Schema update for BGP internal neighbor table (#389)

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-11-12 08:10:54 -08:00
Abhishek Dosi
1223775af9 [submodule update] sonic-platform-daemons
Semove log errors in single ASIC platforms with init Global config
(#108)
2020-11-11 17:33:54 -08:00
judyjoseph
005702ba0e [multi-ASIC] util changes with the BGP_INTERNAL_NEIGHBOR table. (#5760)
- Why I did it
Update the routine is_bgp_session_internal() by checking the BGP_INTERNAL_NEIGHBOR table.
Additionally to address the review comment #5520 (comment)
Add timer settings as will in the internal session templates and keep it minimal as these sessions which will always be up.
Updates to the internal tests data + add all of it to template tests.

- How I did it
Updated the APIs and the template files.

- How to verify it
Verified the internal BGP sessions are displayed correctly with show commands with this API is_bgp_session_internal()
2020-11-10 12:53:49 -08:00
judyjoseph
ce86621399 [multi-ASIC] BGP internal neighbor table support (#5520)
* Initial commit for BGP internal neighbor table support.
  > Add new template named "internal" for the internal BGP sessions
  > Add a new table in database "BGP_INTERNAL_NEIGHBOR"
  > The internal BGP sessions will be stored in this new table "BGP_INTERNAL_NEIGHBOR"

* Changes in template generation tests with the introduction of internal neighbor template files.
2020-11-10 12:52:58 -08:00
Junchao-Mellanox
c3ea7b4d91
[201911][sonic-platform-daemons] Update submodule pointer (#5802)
e030133 [thermalctld] Print exception using repr(e) to get more information (#103) (#109)
2020-11-06 12:47:12 -08:00
liat-grozovik
d72517d78e
[submodule] update sonic-swss submodule (#5824)
Including the following changes:
[bitmap_vnet] Remove BMTOR implementation (#1496)
[intfsorch] Init proxy_arp variable while adding router interface. (#1473)
[drop counters] Clarify log messages for initial counter setup (#1445)

Signed-off-by: Liat Grozovik <liatg@nvidia.com>
2020-11-05 18:32:32 -08:00
lguohan
339d2aa6c8 [mgmt ip]: mvrf ip rule priority change to 32765 (#5754)
Fix Azure/SONiC#551

When eth0 IP address is configured, an ip rule is getting added for eth0 IP address through the interfaces.j2 template.

This eth0 ip rule creates an issue when VRF (data VRF or management VRF) is also created in the system.
When any VRF (data VRF or management VRF) is created, a new rule is getting added automatically by kernel as "1000: from all lookup [l3mdev-table]".
This l3mdev IP rule is never getting deleted even if VRF is deleted.

Once if this l3mdev IP rule is added, if user configures IP address for the eth0 interface, interfaces.j2 adds an eth0 IP rule as "1000:from 100.104.47.74 lookup default ". Priority 1000 is automatically chosen by kernel and hence this rule gets higher priority than the already existing rule "1001:from all lookup local ".

This results in an issue "ping from console to eth0 IP does not work once if VRF is created" as explained in Issue 551.
More details and possible solutions are explained as comments in the Issue551.

This PR is to resolve the issue by always fixing the low priority 32765 for the IP rule that is created for the eth0 IP address.
Tested with various combinations of VRF creation, deletion and IP address configuration along with ping from console to eth0 IP address.

Co-authored-by: Kannan KVS <kannan_kvs@dell.com>
2020-11-01 10:41:44 -08:00
Abhishek Dosi
65cb10714c Revert "[mgmt ip]: mvrf ip rule priority change to 32765 (#5754)"
This reverts commit 28366cd0ce.
2020-11-01 10:37:16 -08:00
gechiang
55be531dd1 Added new method get_back_end_interface_set() to speed up back-end in… (#5731)
Added new MultiASIC util method "get_back_end_interface_set()" to speed up back-end interface check by allowing caller to cache the back-end intf into a set. This way the caller can use this set for all subsequent back-end interface check requests  instead of each time need to read from redis DB which become a scaling issue for cases such as checking for thousands of nexthop routes for filtering purpose.
2020-11-01 10:27:10 -08:00
abdosi
0fad6bdc7f [monit] Adding patch to enhance syslog error message generation for monit alert action when status is failed. (#5720)
Why/How I did:

Make sure first error syslog is triggered based on FAULT TOLERANCE condition.

Added support of repeat clause with alert action. This is used as trigger
for generation of periodic syslog error messages if error is persistent

Updated the monit conf files with repeat every x cycles for the alert action
2020-11-01 10:27:10 -08:00
lguohan
28366cd0ce [mgmt ip]: mvrf ip rule priority change to 32765 (#5754)
Fix Azure/SONiC#551

When eth0 IP address is configured, an ip rule is getting added for eth0 IP address through the interfaces.j2 template.

This eth0 ip rule creates an issue when VRF (data VRF or management VRF) is also created in the system.
When any VRF (data VRF or management VRF) is created, a new rule is getting added automatically by kernel as "1000: from all lookup [l3mdev-table]".
This l3mdev IP rule is never getting deleted even if VRF is deleted.

Once if this l3mdev IP rule is added, if user configures IP address for the eth0 interface, interfaces.j2 adds an eth0 IP rule as "1000:from 100.104.47.74 lookup default ". Priority 1000 is automatically chosen by kernel and hence this rule gets higher priority than the already existing rule "1001:from all lookup local ".

This results in an issue "ping from console to eth0 IP does not work once if VRF is created" as explained in Issue 551.
More details and possible solutions are explained as comments in the Issue551.

This PR is to resolve the issue by always fixing the low priority 32765 for the IP rule that is created for the eth0 IP address.
Tested with various combinations of VRF creation, deletion and IP address configuration along with ping from console to eth0 IP address.

Co-authored-by: Kannan KVS <kannan_kvs@dell.com>
2020-11-01 10:27:10 -08:00
Abhishek Dosi
483d51c305 [Submodule update] sonic-utilities
ce0bebe83de3deac8e238ab63c4a34715cfa1336 (HEAD -> 201911, origin/201911) Fix `show queue watermark` command fail (#1147)
a55de1b0853c525098ac252408c6aa934d24ed0c Show sflow interface to display all interfaces enabled for sflow (#1143)

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-10-30 09:45:54 -07:00
Abhishek Dosi
0ae82f1564 Submodule update [sonic-swss]
d03c6ccc90b92d9319c500a8adcf727a9fa5609b (HEAD -> 201911, origin/201911) [intfsorch] Init proxy_arp variable while adding router interface. (#1473)
9e7c0bc8e3f2c7c5422f2f8a2c6498f659dcdf84 [drop counters] Clarify log messages for initial counter setup (#1445)
da8ac754fa1c36f9bb7ba1210017f915f339cfe0 Create vnet tunnel map only if it doesn't exist (#1482)

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-10-30 09:17:25 -07:00
shlomibitton
97f2cafe0b [LLDP] Fix for LLDP advertisements being sent with wrong information. (#5493)
* Fix for LLDP advertisments being sent with wrong information.
Since lldpd is starting before lldpmgr, some advertisment packets might sent with default value, mac address as Port ID.
This fix hold the packets from being sent by the lldpd until all interfaces are well configured by the lldpmgrd.

Signed-off-by: Shlomi Bitton <shlomibi@nvidia.com>

* Fix comments

* Fix unit-test output caused a failure during build

* Add 'run_cmd' function and use it

* Resume lldpd even if port init timeout reached
2020-10-30 09:06:23 -07:00
pavel-shirshov
2eec3b3254 [bgpcfgd]: Dynamic BBR support (#5626)
**- Why I did it**
To introduce dynamic support of BBR functionality into bgpcfgd.
BBR is adding  `neighbor PEER_GROUP allowas-in 1' for all BGP peer-groups which points to T0
Now we can add and remove this configuration based on CONFIG_DB entry 

**- How I did it**
I introduced a new CONFIG_DB entry:
 - table name: "BGP_BBR"
 - key value: "all". Currently only "all" is supported, which means that all peer-groups which points to T0s will be updated
 - data value: a dictionary: {"status": "status_value"}, where status_value could be either "enabled" or "disabled"

Initially, when bgpcfgd starts, it reads initial BBR status values from the [constants.yml](https://github.com/Azure/sonic-buildimage/pull/5626/files#diff-e6f2fe13a6c276dc2f3b27a5bef79886f9c103194be4fcb28ce57375edf2c23cR34). Then you can control BBR status by changing "BGP_BBR" table in the CONFIG_DB (see examples below).

bgpcfgd knows what peer-groups to change fron [constants.yml](https://github.com/Azure/sonic-buildimage/pull/5626/files#diff-e6f2fe13a6c276dc2f3b27a5bef79886f9c103194be4fcb28ce57375edf2c23cR39). The dictionary contains peer-group names as keys, and a list of address-families as values. So when bgpcfgd got a request to change the BBR state, it changes the state only for peer-groups listed in the constants.yml dictionary (and only for address families from the peer-group value).

**- How to verify it**
Initially, when we start SONiC FRR has BBR enabled for PEER_V4 and PEER_V6:
```
admin@str-s6100-acs-1:~$ vtysh -c 'show run' | egrep 'PEER_V.? allowas'
  neighbor PEER_V4 allowas-in 1
  neighbor PEER_V6 allowas-in 1
```

Then we apply following configuration to the db:
```
admin@str-s6100-acs-1:~$ cat disable.json                
{
        "BGP_BBR": {
            "all": {
                "status": "disabled"
            }
        }
}


admin@str-s6100-acs-1:~$ sonic-cfggen -j disable.json -w 
```
The log output are:
```
Oct 14 18:40:22.450322 str-s6100-acs-1 DEBUG bgp#bgpcfgd: Received message : '('all', 'SET', (('status', 'disabled'),))'
Oct 14 18:40:22.450620 str-s6100-acs-1 DEBUG bgp#bgpcfgd: execute command '['vtysh', '-f', '/tmp/tmpmWTiuq']'.
Oct 14 18:40:22.681084 str-s6100-acs-1 DEBUG bgp#bgpcfgd: execute command '['vtysh', '-c', 'clear bgp peer-group PEER_V4 soft in']'.
Oct 14 18:40:22.904626 str-s6100-acs-1 DEBUG bgp#bgpcfgd: execute command '['vtysh', '-c', 'clear bgp peer-group PEER_V6 soft in']'.
```

Check FRR configuraiton and see that no allowas parameters are there:
```
admin@str-s6100-acs-1:~$ vtysh -c 'show run' | egrep 'PEER_V.? allowas' 
admin@str-s6100-acs-1:~$
```

Then we apply enabling configuration back:
```
admin@str-s6100-acs-1:~$ cat enable.json 
{
        "BGP_BBR": {
            "all": {
                "status": "enabled"
            }
        }
}

admin@str-s6100-acs-1:~$ sonic-cfggen -j enable.json -w 
```
The log output:
```
Oct 14 18:40:41.074720 str-s6100-acs-1 DEBUG bgp#bgpcfgd: Received message : '('all', 'SET', (('status', 'enabled'),))'
Oct 14 18:40:41.074720 str-s6100-acs-1 DEBUG bgp#bgpcfgd: execute command '['vtysh', '-f', '/tmp/tmpDD6SKv']'.
Oct 14 18:40:41.587257 str-s6100-acs-1 DEBUG bgp#bgpcfgd: execute command '['vtysh', '-c', 'clear bgp peer-group PEER_V4 soft in']'.
Oct 14 18:40:42.042967 str-s6100-acs-1 DEBUG bgp#bgpcfgd: execute command '['vtysh', '-c', 'clear bgp peer-group PEER_V6 soft in']'.
```


Check FRR configuraiton and see that the BBR configuration is back:
```
admin@str-s6100-acs-1:~$ vtysh -c 'show run' | egrep 'PEER_V.? allowas'
  neighbor PEER_V4 allowas-in 1
  neighbor PEER_V6 allowas-in 1
```

*** The test coverage ***
Below is the test coverage
```
---------- coverage: platform linux2, python 2.7.12-final-0 ----------
Name                             Stmts   Miss  Cover
----------------------------------------------------
bgpcfgd/__init__.py                  0      0   100%
bgpcfgd/__main__.py                  3      3     0%
bgpcfgd/config.py                   78     41    47%
bgpcfgd/directory.py                63     34    46%
bgpcfgd/log.py                      15      3    80%
bgpcfgd/main.py                     51     51     0%
bgpcfgd/manager.py                  41     23    44%
bgpcfgd/managers_allow_list.py     385     21    95%
bgpcfgd/managers_bbr.py             76      0   100%
bgpcfgd/managers_bgp.py            193    193     0%
bgpcfgd/managers_db.py               9      9     0%
bgpcfgd/managers_intf.py            33     33     0%
bgpcfgd/managers_setsrc.py          45     45     0%
bgpcfgd/runner.py                   39     39     0%
bgpcfgd/template.py                 64     11    83%
bgpcfgd/utils.py                    32     24    25%
bgpcfgd/vars.py                      1      0   100%
----------------------------------------------------
TOTAL                             1128    530    53%
```

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

- [ ] 201811
- [x] 201911
- [x] 202006
2020-10-30 08:58:27 -07:00
pavel-shirshov
bee6c87f90 [bgpcfgd]: Change prefix-list generation for "Allow prefix" feature (#5639)
**- Why I did it**
I was asked to change "Allow list" prefix-list generation rule.
Previously we generated the rules using following method:
``` 
For each {prefix}/{masklen} we would generate the prefix-rule
permit {prefix}/{masklen} ge {masklen}+1
Example:
Prefix 1.2.3.4/24 would have following prefix-list entry generated
permit 1.2.3.4/24 ge 23
```
But we discovered the old rule doesn't work for all cases we have.

So we introduced the new rule:
```
For ipv4 entry,  
For mask  < 32 , we will add ‘le 32’ to cover all  prefix masks to be sent by T0  
For mask =32 , we will not add any ‘le mask’ 
For ipv6 entry, we will add le 128 to cover all the prefix mask to be sent by T0  
For mask < 128 , we will add ‘le 128’ to cover all prefix masks to be sent by T0 
For mask = 128 , we will not add any ‘le mask’ 
```    

**- How I did it**
I change prefix-list entry generation function. Also I introduced a test for the changed function.

**- How to verify it**
1. Build an image and put it on your dut.

2. Create a file test_schema.conf with the test configuration
```
{
    "BGP_ALLOWED_PREFIXES": {
        "DEPLOYMENT_ID|0|1010:1010": {
            "prefixes_v4": [
                "10.20.0.0/16",
                "10.50.1.0/29"
            ],
            "prefixes_v6": [
                "fc01:10::/64",
                "fc02:20::/64"
            ]
        },
        "DEPLOYMENT_ID|0": {
            "prefixes_v4": [
                "10.20.0.0/16",
                "10.50.1.0/29"
            ],
            "prefixes_v6": [
                "fc01:10::/64",
                "fc02:20::/64"
            ]
        }
    }
}
```

3. Apply the configuration by command 
```
sonic-cfggen -j test_schema.conf --write-to-db
```

4. Check that your bgp configuration has following prefix-list entries:
```
admin@str-s6100-acs-1:~$ show runningconfiguration bgp | grep PL_ALLOW
ip prefix-list PL_ALLOW_LIST_DEPLOYMENT_ID_0_COMMUNITY_1010:1010_V4 seq 10 deny 0.0.0.0/0 le 17
ip prefix-list PL_ALLOW_LIST_DEPLOYMENT_ID_0_COMMUNITY_1010:1010_V4 seq 20 permit 127.0.0.1/32
ip prefix-list PL_ALLOW_LIST_DEPLOYMENT_ID_0_COMMUNITY_1010:1010_V4 seq 30 permit 10.20.0.0/16 le 32
ip prefix-list PL_ALLOW_LIST_DEPLOYMENT_ID_0_COMMUNITY_1010:1010_V4 seq 40 permit 10.50.1.0/29 le 32
ip prefix-list PL_ALLOW_LIST_DEPLOYMENT_ID_0_COMMUNITY_empty_V4 seq 10 deny 0.0.0.0/0 le 17
ip prefix-list PL_ALLOW_LIST_DEPLOYMENT_ID_0_COMMUNITY_empty_V4 seq 20 permit 127.0.0.1/32
ip prefix-list PL_ALLOW_LIST_DEPLOYMENT_ID_0_COMMUNITY_empty_V4 seq 30 permit 10.20.0.0/16 le 32
ip prefix-list PL_ALLOW_LIST_DEPLOYMENT_ID_0_COMMUNITY_empty_V4 seq 40 permit 10.50.1.0/29 le 32
ipv6 prefix-list PL_ALLOW_LIST_DEPLOYMENT_ID_0_COMMUNITY_1010:1010_V6 seq 10 deny ::/0 le 59
ipv6 prefix-list PL_ALLOW_LIST_DEPLOYMENT_ID_0_COMMUNITY_1010:1010_V6 seq 20 deny ::/0 ge 65
ipv6 prefix-list PL_ALLOW_LIST_DEPLOYMENT_ID_0_COMMUNITY_1010:1010_V6 seq 30 permit fc01:10::/64 le 128
ipv6 prefix-list PL_ALLOW_LIST_DEPLOYMENT_ID_0_COMMUNITY_1010:1010_V6 seq 40 permit fc02:20::/64 le 128
ipv6 prefix-list PL_ALLOW_LIST_DEPLOYMENT_ID_0_COMMUNITY_empty_V6 seq 10 deny ::/0 le 59
ipv6 prefix-list PL_ALLOW_LIST_DEPLOYMENT_ID_0_COMMUNITY_empty_V6 seq 20 deny ::/0 ge 65
ipv6 prefix-list PL_ALLOW_LIST_DEPLOYMENT_ID_0_COMMUNITY_empty_V6 seq 30 permit fc01:10::/64 le 128
ipv6 prefix-list PL_ALLOW_LIST_DEPLOYMENT_ID_0_COMMUNITY_empty_V6 seq 40 permit fc02:20::/64 le 128

``` 

Co-authored-by: Pavel Shirshov <pavel.contrib@gmail.com>
2020-10-30 08:56:52 -07:00
Nazarii Hnydyn
2a608b9b88
[201911][sonic-py-common]: Fix syslog implicit min priority override (#5710)
* [sonic-py-common]: Fix syslog implicit min priority override

Signed-off-by: Nazarii Hnydyn <nazariig@nvidia.com>

* Fix review comments.

Signed-off-by: Nazarii Hnydyn <nazariig@nvidia.com>
2020-10-25 19:42:47 +02:00
judyjoseph
963bd7fdc4 [docker-teamd]: Add teamd as a depedent service to swss (#5628)
**- Why I did it**
On teamd docker restart, the swss and syncd needs to be restarted as there are dependent resources present.

**- How I did it**
Add the teamd as a dependent service for swss
Updated the docker-wait script to handle service and dependent services separately.
Handle the case of warm-restart for the dependent service

**- How to verify it**

Verified the following scenario's with the following testbed
VM1 ----------------------------[DUT 6100] -----------------------VM2,  ping traffic continuous between VMs

1. Stop teamd docker alone
      >  swss, syncd dockers seen going away
      >  The LAG reference count error messages seen for a while till swss docker stops.
      >  Dockers back up.

2. Enable WR mode for teamd. Stop teamd docker alone
      >  swss, syncd dockers not removed.
      >  The LAG reference count error messages not seen
      >  Repeated stop teamd docker test - same result, no effect on swss/syncd.

3. Stop swss docker.
      >  swss, teamd, syncd goes off - dockers comes back correctly, interfaces up

4. Enable WR mode for swss . Stop swss docker
      >  swss goes off not affecting syncd/teamd dockers.

5. Config reload
      > no reference counter error seen, dockers comes back correctly, with interfaces up

6. Warm reboot, observations below
	 > swss docker goes off first
	 > teamd + syncd goes off to the end of WR process.
 	 > dockers comes back up fine.
	 > ping traffic between VM's was NOT HIT

7. Fast reboot, observations below
	 > teamd goes off first ( **confirmed swss don't exit here** )
	 > swss goes off next
	 > syncd goes away at the end of the FR process
	 > dockers comes back up fine.
	 > there is a traffic HIT as per fast-reboot

8. Verified in multi-asic platform, the tests above other than WR/FB scenarios
2020-10-23 15:49:23 -07:00
Prince Sunny
3d669f77f1 [Submodule] sonic-restapi (#5679)
37a7c61 - 2020-10-16 : Add to local route DB if ifname present in route add API (#51) [Sumukha Tumkur Vani]
2b4b6d7 - 2020-10-01 : Fix typo (#50) [Sumukha Tumkur Vani]
f0a527b - 2020-09-24 : Use RESTAPI_DB, cache reset_status (#49) [Prince Sunny]
2020-10-23 15:45:46 -07:00
abdosi
bad98213c3 Everflow and Dataacl were getting binded to Backplane port-channels. (#5691)
Issue was because we were relying on port_alias_asic_map dictionary
but that dictionary can't be used as alias name format has changed.

Fix the port alias mapping as what is needed.

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-10-22 10:52:39 -07:00
Abhishek Dosi
f39c4d8213 [Submodule update] sonic-utilities
Fixes the issue with show interface counters and for pfc and queue
counters. (#1180)

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-10-21 08:25:18 -07:00
Abhishek Dosi
0e1b9a571c [submodule update] sonic-swss
[portsorch]: Set proper initial forwarding state for LAG member
  (#1448)

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-10-21 08:19:28 -07:00
Abhishek Dosi
c081bf44c9 [Submodule update] sonic-platform-daemons
[thermalctld] Fix issue: thermalctld should be auto restarted when
 being killed (#94)

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-10-21 08:16:12 -07:00
Abhishek Dosi
36ea042cb9 [Submodule update] sonic-util
Updated sonic-util
to fix error done by cherry-pick of PR
[config] Reload Monit configuration after potential hostname changes
(#1132)

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-10-15 08:07:03 -07:00
judyjoseph
44abb50fed
Rellocating the yaml module import to reduce the memory usage in processes which (#5619)
With python 2.7, import yaml module was resulting in huge memory allocation in the heap per process. As an interim fix, moving the import yaml to the function which actually uses this module. This helps reduce the memory footprint of pmon docker, as it don't use the API's which need yaml processing. 

This issue not seen with importing yaml with python3, Need to be further analyzed, hence putting this fix in 201911 where we continue to use python2.7.
2020-10-14 12:33:48 -07:00
pavel-shirshov
84405ab953 [bgp]: Enable next-hop-tracking through default (#5600)
**- Why I did it**
FRR introduced [next hop tracking](http://docs.frrouting.org/projects/dev-guide/en/latest/next-hop-tracking.html) functionality.
That functionality requires resolving BGP neighbors before setting BGP connection (or explicit ebgp-multihop command). Sometimes (BGP MONITORS) our neighbors are not directly connected and sessions are IBGP. In this case current configuration prevents FRR to establish BGP connections.  Reason would be "waiting for NHT". To fix that we need either add static routes for each not-directly connected ibgp neighbor, or enable command `ip nht resolve-via-default`

**- How I did it**
Put `ip nht resolve-via-default` into the config

**- How to verify it**
Build an image. Enable BGP_MONITOR entry and check that entry is Established or Connecting in FRR

Co-authored-by: Pavel Shirshov <pavel.contrib@gmail.com>

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-10-13 22:42:29 -07:00
Mahesh Maddikayala
f354a20d94 [ECMP][Multi-ASIC] Have different ECMP seed value on each ASIC (#5357)
* Calculate ECMP hash seed based on ASIC ID on multi ASIC platform. Each ASIC will have a unique ECMP hash seed value.

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-10-13 09:48:57 -07:00
Abhishek Dosi
a7ed68319b [Submodule update] sonic-utilities
[pfcstat] Create new copies of Rx and Tx dictionaries (#1150)
[config] Reload Monit configuration after potential hostname
changes (#1132)

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-10-13 09:09:51 -07:00
Sachin Holla
be1710846a
[submodule]: update sonic-mgmt-framework (#5586)
Fixes sonic-mgmt-framework build break in 201911 branch.
2020-10-11 11:13:17 -07:00
Abhishek Dosi
c6c0c75625 [Submodule update] sonic-platform-common
[EEPROM] Add new function part_number_str to TlvInfoDecoder (#121)

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-10-06 11:24:05 -07:00
pavel-shirshov
969f77cf3e [bgpcfgd]: Extract classes into their own files. Run bgpcfgd as a module (#5535)
1. Rename app module to bgpcfgd
2. Extract classes from one file to the module
2020-10-06 11:21:00 -07:00
pavel-shirshov
b01dfa174c [bgpcfgd]: Don't use neighbor metadata in bgpmon sessions (#5506)
**- Why I did it**
BGP_MONITORS sessions don't have corresponding DEVICE_NEIGHBOR_METADATA CONFIG_DB entries in the minigraphs. Prevent bgpcfgd to wait on such entries for BGP_MONITORS sessions.

**- How I did it**
Set constructor argument to False that means - don't wait for device neighbors metadata info for BGP_MONITORS

**- How to verify it**
Build an image, write on your device, use a minigraph with BGP_MONITORS sessions. Check that sessions are populated in the config.
2020-10-06 11:20:16 -07:00
pavel-shirshov
437ad95646 [bgp] Add 'allow list' manager feature (#5513)
implements a new feature: "BGP Allow list."

This feature allows us to control which IP prefixes are going to be advertised via ebgp from the routes received from EBGP neighbors.
2020-10-06 11:15:19 -07:00
Abhishek Dosi
6192682c99 [Submodule update] sonic-platform-daemons
[thermalctld] Fix fan status issue in 201911 (#96)

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-10-04 19:37:12 +00:00
Qi Luo
e9be0864cd
Fix generate_l2_config: don't override hostname or device role (ToRRouter) (#5511)
* Fix generate_l2_config: don't override hostname because sonic-cfggen may not read
from Redis. Fix test_l2switch_template test case to test preset l2
feature
* Improve test script: compare json files with sort_keys
* Revert changes on sample_output
* Remove members field in VLAN section. Fix test assertTrue statement.
2020-10-01 09:16:55 -07:00
Abhishek Dosi
40676a062d Cherry-pick of Master PR
Fix sonic-util command failure on Multi-asic platforms. #5503

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-09-30 06:00:06 +00:00
Abhishek Dosi
97bbd83b69 [Submodule update] sonic-utilities
[cli][bgp]use vtysh in the show ip bgp summary command (#1137)

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-09-29 19:43:57 +00:00
Abhishek Dosi
1a0a9937d6 [Submodule Update] sonic-utilities
Fix bad cherry-pick in sonic-util.

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-09-29 18:20:53 +00:00
Abhishek Dosi
04725bc030 Revert "[bgp] Add 'allow list' manager feature (#5309)"
This reverts commit b5d33b39de.
2020-09-29 15:39:04 +00:00
Abhishek Dosi
a03578308e [submodule update] sonic-swss
When teamd feature state is disabled the Netdevice created by teamd
 were not cleaned up. (#1450

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-09-28 21:09:25 +00:00
Abhishek Dosi
0618319fa7 [Submodule update] sonic-utilities
Fix load minigraph on 201911 branch. (#1124)
 Fixed config load_minigrpah not working for Multi-asic platfroms.
     (#1123)

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-09-28 16:40:22 +00:00
Abhishek Dosi
f16b06c2b0 [Submodule uupdate] sonic-snmpagent
[Namespace]: Fix SAI_ID key used in cpfcIfTable and
csqIfQosGroupStatsTable implementation (#138)
Implementation changes for CiscoBgp4MIB (#158)
[ciscoSwitchQosMIB]: Remove invocation of update_data function
 during (#161)

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-09-28 16:27:57 +00:00
pavel-shirshov
b5d33b39de [bgp] Add 'allow list' manager feature (#5309)
implements a new feature: "BGP Allow list."

This feature allows us to control which IP prefixes are going to be advertised via ebgp from the routes received from EBGP neighbors.
2020-09-28 16:20:27 +00:00
Sumukha Tumkur Vani
d6856aa424 Update conf DB with CA cert & rename ca_crt field (#5448) 2020-09-28 16:19:27 +00:00
bingwang-ms
5167bdaf11 [sonic_py_common] Fix exception in daemon_base.py (#5472)
There is a syntax error (self is missing for log_info and log_warning) in signal_handler in daemon_base.py, which causes an exception
2020-09-28 16:17:31 +00:00
Mahesh Maddikayala
05b2a9601e [CLI][Multi ASIC] update get_all_namespace to return current namespace (#5446) 2020-09-28 16:14:46 +00:00
Joe LeVeque
b70c6f72b2 [dockers][supervisor] Increase event buffer size for dependent-startup (#5247)
When stopping the swss, pmon or bgp containers, log messages like the following can be seen:

```
Aug 23 22:50:43.789760 sonic-dut INFO swss#supervisord 2020-08-23 22:50:10,061 ERRO pool dependent-startup event buffer overflowed, discarding event 34
Aug 23 22:50:43.789760 sonic-dut INFO swss#supervisord 2020-08-23 22:50:10,063 ERRO pool dependent-startup event buffer overflowed, discarding event 35
Aug 23 22:50:43.789760 sonic-dut INFO swss#supervisord 2020-08-23 22:50:10,064 ERRO pool dependent-startup event buffer overflowed, discarding event 36
Aug 23 22:50:43.789760 sonic-dut INFO swss#supervisord 2020-08-23 22:50:10,066 ERRO pool dependent-startup event buffer overflowed, discarding event 37
```

This is due to the number of programs in the container managed by supervisor, all generating events at the same time. The default event queue buffer size in supervisor is 10. This patch increases that value in all containers in order to eliminate these errors. As more programs are added to the containers, we may need to further adjust these values. I increased all buffer sizes to 25 except for containers with more programs or templated supervisor.conf files which allow for a variable number of programs. In these cases I increased the buffer size to 50. One final exception is the swss container, where the buffer fills up to ~50, so I increased this buffer to 100.

Resolves https://github.com/Azure/sonic-buildimage/issues/5241
2020-09-28 16:12:53 +00:00
gechiang
6ae77f87cc
Renamed sonic-bgpcfgd/bgpmon_proj directory to sonic-bfgcfgd/bgpmon so it is in sync with master branch naming change. Also made bgpmon auto restart enabled (#5453)
synch up the changes from master branch where bgpmon_proj is renamed to bgpmon.
Added bgpmon to be autorestart enabled by supervisord
2020-09-24 08:57:55 -07:00
gechiang
7168fc8c07
Add bgpmon under sonic-bgpcfgd to be started as a new daemon under BGP docker (#5426)
This is to port the same set of changes from master branch to 201911 branch for the bgpmon daemon running under bgp docker.
2020-09-22 12:13:37 -07:00
Abhishek Dosi
bb41312055 [Submodule update] sonic-utilities
Revert "Revert " [201911]show interface counters for multi ASIC devices
(#1104)""
 Revert "Revert "Pfcstat (#1097)""
  [show] Fix 'show int neighbor expected' (#1106)
   Update argument for docker exec it->i (#1118)
     Update to make config load/reload backward compatible. (#1115)
     Handling deletion of Port Channel before deletion of its members
     (#1062)
    Skip default route present in ASIC-DB but not in APP-DB. (#1107)
     [CLI][PFCWD][Multi-ASIC] Added multi ASIC support to 'pfcwd' CLI
     (#1102)
       [201911]  Multi asic platform config interface portchannel, show
       transceiver  (#1087)
       [drop counters] Fix configuration for counters with lowercase
       names (#1103)

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-09-19 16:12:30 -07:00
Abhishek Dosi
883351e07f [Submodule update] sonic-platform-daemons
[xcvrd] Don't log unnecessary messages upon empty transceiver change
event (#53)
    [thermalctld] Optimize the thermal policy loop to make it execute
    every 60 seconds (#77)
     [thermalctld] Fix issue: fan status should not be True when fan is
     absent (#92)

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-09-19 15:44:42 -07:00
Abhishek Dosi
baab02e5f6 [Submodule update] sonic-platform-common
Remove the use of constant PORT_CONFIG_INI in 201911 in sonic_sfp
[sff8472.py] Make hex keys all lowercase (#115)
2020-09-19 15:38:43 -07:00
Abhishek Dosi
f930f391d6 [Submodule update] sonic-swss
Avoid adding loopback interface (ip link add) when setting nat zone on
loopback interface (#1434)
    [acl] Remove Ethertype from L3V6 qualifiers (#1433)
    Sflow fixes during DEL processing (#1427)
    Fix #3971 by skipping create-only SAI attributes when modifying
    buffer pools or profiles in orchagent (#1430)
    Fix issue: bufferorch only pass the first attribute to sai when
    setting attribute (#1442)

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-09-19 15:32:41 -07:00
Abhishek Dosi
51018846c0 [Submodule update] sonic-swss-common
Fix SubscriberStateTable::hasCachedData formula for a timing risk
   (#379)
     Add restapi DB (#386)
     Fix swss::exec return value (#368)

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-09-19 15:28:12 -07:00
Tamer Ahmed
56cab18501 [dhcpmon] Print Both Snapshot And Current Counters (#5374)
Printing both snapshot and current counter sets will make it easier to pinpoint
which message type(s) is/are not being relayed. This PR prints both counter sets.
Also, this PR defines gnu11 as a C standard to compile with in order to avoid
making changes when porting to 201811 branch.

singed-off-by: Tamer Ahmed <tamer.ahmed@microsoft.com>
2020-09-19 14:06:25 -07:00
Tamer Ahmed
b27ba0630c [dhcpmon] Monitor Mgmt Interface For DHCP Packets (#5317)
When BGP routes are missing, DHCP packets get relayed over mgmt
interface. This results in dhcpmon alerting that DHCP packets are
not being relayed. This is PR include mgmt interface as uplink
device, and so, if DHCP packet gets relayed over mgmt interface,
regular dhcpmon alert will not be issues. Instead, dhcpmon will
check the mgmt interface counts and issue a separate alert regarding
packets travelling through mgmt network.

In addition, this PR includes the following enhancements:
1. Add SIGUSR1 handler that prints out current packet counts
2. Increase alert grace window to 3 minutes from currently 2 minutes
3. Time is now computed more accurately
4. Print vlan name before counters

signed-off-by: Tamer Ahmed <tamer.ahmed@microsoft.com>
2020-09-19 14:05:49 -07:00
Abhishek Dosi
6545a586b9 [Submodule update] sonic-utilities
update the environment variable in the teardown (#1101)
Fix for show interface portchannel now working on 201911 (#1105)
Revert "Pfcstat (#1097)"
Revert " [201911]show interface counters for multi ASIC devices
      (#1104)"

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-09-11 02:08:52 +00:00
Abhishek Dosi
a130a0afe3 [Submodule update] sonic-swss
[teamsyncd]: Fix LAG add: write MTU configuration. (#1423)

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-09-11 02:07:42 +00:00
Abhishek Dosi
c893b77c57 [Submodule update] sonic-utilities
update the environment variable in the teardown (#1101)
 Fix for show interface portchannel now working on 201911 (#1105)
 [201911]show interface counters for multi ASIC devices (#1104)

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-09-10 15:10:47 +00:00
Abhishek Dosi
81edd66835 [Submodule update] sonic-platform-daemons
Fix the xcvrd theowing error on sfprecover function
     on getKeys() not valid.

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-09-08 17:14:23 +00:00
Abhishek Dosi
434b0da258 [Submodule update] sonic-snmpagnet
Parse quagga output without knowledge about hostname, so robust
against hostname changes or mismatch (#124)

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-09-08 17:13:02 +00:00
judyjoseph
c06a9e4718 Platform monitor changes in daemon_base for multi_asic (#4932)
Adding namespace support for db connect API.
2020-09-06 15:28:17 +00:00
Abhishek Dosi
89d22b57b1 [Submoudle update] sonic-utilities
Add ip_prefix len based on proxy_arp status (#1096)
[sonic-cfggen][QoS][multi ASIC] Multi ASIC QoS and Buffer config
generation support, merge from master (#1095)

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-09-06 15:16:50 +00:00
Abhishek Dosi
64756964c0 [Submodule update] sonic-snmpagent
Update transceiver info DB key names (#146)
[Multiasic]: Provide namespace support for ipNetToMediaPhysAddress (#129)
[LLDP]: Modify OID index of LLDPRemTableUpdater MIB (#155)
[Namespace]: Simplify sync_d functions to use higher order (#154)
[Namespace]: Fix interface counters in RFC 1213 (#145)

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-09-05 14:28:57 +00:00
Abhishek Dosi
5b6c2f77ae [Submodule update] sonic-platform-common
Multi-Asic changes PR #100 , commit into 201911

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-09-05 14:18:07 +00:00
Abhishek Dosi
942c86f7e2 [submodule update] sonic-platform-daemons
[MultiDB] shoule use multiDB API (#57)
 [Thermal] Fix for 'show platform fan' command (#71)
  [xcvrd] Return non-zero error code on SFP error (#67)
Multi-asic changes commit (PR #64 ) into 201911
  [ledd][multi-ASIC] Update to ledd based on sonic-swss-common updates (#87)

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-09-05 14:15:59 +00:00
Abhishek Dosi
11b423384a [submoule update] sonic-swss
[teamsyncd][teammgrd] Graceful exit after receiving SIGTERM (#1407)

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-09-04 21:24:28 +00:00
Renuka Manavalan
61d5ac0fbd [sonic-py-common] Add function to get hostname (#5265)
Added a function to get hostname. It get it from DEVICE_METADATA|localhost: hostname.
2020-09-04 21:17:33 +00:00
judyjoseph
cbc6de8878 [sonic-py-common] Relocate some functions from sonic-utilities (#5269)
* Relocate interface related common functions to py-common
* Add unit tests for interface API's.
2020-09-04 20:37:34 +00:00
judyjoseph
f8c4b8372b Add common functions applicable to single/multi asic platforms (#5224)
* Add common functions applicable to single/multi asic platforms
* Raise exception if invalid namespace is given as input.
2020-09-04 20:35:24 +00:00
judyjoseph
a518fe2e3b [sonic-py-common] Add interface utilities (#5113)
* Add sonic_interface.py in sonic-py-common for sonic interface utilities to keep this SONIC PREFIX naming convention in one place in py-common and all modules/applications use the functions defined here.
2020-09-04 20:34:18 +00:00
Abhishek Dosi
1beeea210c Updaed PR#5191 point (b) as we have moved to use
name in DB Connector.

sonic-platform-daemons is updated accordingly.

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-09-04 20:32:06 +00:00
Mahesh Maddikayala
389c5fe5ea [sonic-py-common][multi ASIC] API to get a list of frontend ports (#5221)
* [sonic-py-common][multi ASIC] utility to get a list of frontend ports from a given list of ports
2020-09-04 20:17:28 +00:00
Ubuntu
649b430faa [Submodule update] sonic-util
[201911] support show ip(v6) bgp summary for multi asic platform (#1083)
Fix Bad-Cherry pick  and compilation error.

Signed-off-by: Ubuntu <abdosi@abdosi-ubuntu-vm0.nwp1qucpfg5ejooejenqshkj3e.cx.internal.cloudapp.net>
2020-09-04 18:48:34 +00:00
Abhishek Dosi
c480db1251 [submodule update] sonic-util
Fix error when running 'show lldp table' or 'show lldp neighbor'
through SSH command. (#1067)
[201911]: Multi asic show interface support (#1070)
[counterpoll] Add new FC group for port buffer drop counters
(#1024)
[201911] show interface portchannel support for Multi ASIC
(#1071)
Fix a typo in mellanox_buffer_migrator (#1090)
Fix pfcwd stats crash with invalid queue name (#1077)
[PFCWD] Fix issue with "pfcwd show stats" command during SONiC init
(#1018)
enable watchdog before running platform specific reboot plugin
(#1037)
Add namespace of the process in the coredump filename. (#1091)
2020-09-03 16:40:21 -07:00
Abhishek Dosi
fbc4d58cfe [Submodule update] sonic-swss
[portsorch] add buffer drop FC group 
[bitmap_vnet] Fix VNET route priority issue (#1421)
[vnet] Maintain the reference count of the nexthop when creating a
vn… (#1414)
[intfsorch] Retrieve Port object before setting NAT zone on router
interfaces. (#1372)
2020-09-03 16:38:29 -07:00
Abhishek Dosi
9bef74d095 [submoulde update] sonic-swss
Removed DB specific get api's from Selectable class (#378)
2020-09-03 16:35:56 -07:00
Abhishek Dosi
877b5c9f6f [submoule update] sonic-sairedis
Update the meta code to support DNAT Pool changes (#616)
[syncd] Fix notification on shutdown request (#637)
Advance the submodule head of SAI (#641)
Add new line in sai_meta_log_syncd fprintf call (#649)
Fix Warmboot Issue when upgraded Image SAI return Switch Internal
OID not accounted in previous image. (#654)
2020-09-03 16:34:23 -07:00
Sumukha Tumkur Vani
fffc5833a9 Update restapi (#5267)
* Add available routes data to heartbeat API
* Accept subnet routes via tunnel, skip self loopback nexthop
2020-09-03 15:51:31 -07:00
Prince Sunny
b1acfb60a7 Skip vnet-vxlan interfaces from generating networks (#5251)
* Skip Vnet interface from generating networks
2020-09-03 15:49:59 -07:00
arlakshm
15a2195236 [Multi-ASIC]:Update the template to add ipinip entry for Loopback4096 (#5235)
Signed-off-by: Arvindsrinivasan Lakshmi Narasimhan <arlakshm@microsoft.com>
The following changes are done. 
- Multi asic platform have 2 Loopback interfaces, Loopback0 and Loopback4096. IPinIP decap entries need to be added for both of them. Update the ipinip.json.j2 template to add decap entries for Loopback4096.
- Add corressponding unit test
2020-09-03 15:48:39 -07:00
Abhishek Dosi
a3521f02e1 [submodule update] sonic-swss
Revert PR#1393
2020-08-24 23:21:35 -07:00
Joe LeVeque
9048d7ae4d
[201911] Remove sonic-daemon-base package (#5181)
sonic-daemon-base package has been deprecated in favor of the sonic-py-common package. All related functionality has been moved there.

This is a backport of https://github.com/Azure/sonic-buildimage/pull/5131 and parts of https://github.com/Azure/sonic-buildimage/pull/5168 to the 201911 branch
2020-08-22 17:55:27 -07:00
Joe LeVeque
0b64588696
[201911][sonic-config-engine] Remove sonic_device_util.py file (#5180)
sonic_device_util.py has been deprecated in favor of the sonic-py-common package. All related functionality has been moved there.

This is a backport of https://github.com/Azure/sonic-buildimage/pull/5130 to the 201911 branch
2020-08-22 17:55:08 -07:00
Abhishek Dosi
19aaa635bb [Submodule update] sonic-utilities
Add watchdogutil to control the hw watchdog (#945)
[db_migrator] Support migrating database regarding buffer
configuration for all Mellanox switches (#1053)

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-08-22 09:32:35 -07:00
abdosi
427382b54b
[201911] Multiasic cleanup of get_npu_device_id() (#5229)
* [201911] skip_thermalctld for VS platform as it is
not supported

root@vlab-01:/# supervisorctl status
dependent-startup                EXITED    Aug 18 06:22 AM
rsyslogd                         RUNNING   pid 18, uptime 0:12:26
start                            EXITED    Aug 18 06:22 AM
supervisor-proc-exit-listener    RUNNING   pid 13, uptime 0:12:27

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>

* [201911] after PR #https://github.com/Azure/sonic-buildimage/pull/5204
this function is no more needed so cleaning up.

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-08-20 17:47:04 -07:00
Abhishek Dosi
c079b0d644 [submodule update] sonic-swss
Fix for compile error
2020-08-20 09:35:32 -07:00
Mahesh Maddikayala
42ab5d43fa + Modified buffer config template to include internal ASIC with 5m ca… (#4959)
+ Modified buffer config template to include internal ASIC with 5m cable length
+ added unit test to verify the changes.
2020-08-19 15:07:44 -07:00
SuvarnaMeenakshi
5b90f69238 [systemd-generator]: Remove creation of NUM_ASIC environment (#5122)
NUM_ASIC environment variable was added so that it could be used by other utilities.
This is not being used by any other utility or docker, hence removing the addition of NUM_ASIC environment variable.
Also, the environment variable was added by adding the variable value to /etc/environ file.
Upon each reboot, this file gets updated with the NUM_ASIC value but the existing value was not removed.
This causes multiple lines getting appended in /etc/environ file upon each reboot.

Signed-off-by: SuvarnaMeenakshi <sumeenak@microsoft.com>
2020-08-19 15:06:04 -07:00
arlakshm
fe8ee92f83 Fix to prevent classification all portchannels is External (#5202)
Signed-off-by: Arvindsrinivasan Lakshmi Narasimhan <arlakshm@microsoft.com>
Fix the checks in the API is_port_channel_internal
2020-08-19 15:04:14 -07:00
Abhishek Dosi
b105b5a0fc [submodule update] sonic-swss-common
Dbconnector namespace support (#376)

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-08-19 14:58:52 -07:00
Abhishek Dosi
87f975bf42 [Submodule update sonic-swss
[sonic-swsss] Fix the issue of field "next_hop_ip" not getting updated
 in state DB in ERSPAN Mirror (#1375)
[vlanmgr] Support Jumbo Frame By Default (#1393)
[fec] added logic that put port down before applying fec
onfiguration (#1399)
 [fec] Get FEC mode when port is already admin down (#1403)
 Refine getDbId() calling to fix build after swss-common change
 (#1245)
2020-08-19 14:57:35 -07:00
judyjoseph
91c61e31ad
Updates to move the function get_asic_device_id() into the sonic-py-common. (#5204)
Update the name from get_npu_device_id() -to get_asic_device_id() and move from device_info.py, to the new file multi_asic.py in sonic-py-common so that it references to the correct valid constants.
2020-08-18 10:18:07 -07:00
Abhishek Dosi
87fa88052b [submodule update] sonic-utilities
Common functions for show CLI support on multi ASIC (#999)
2020-08-16 08:27:33 -07:00
Guohan Lu
b378b4d249 [docker-dhcp-relay]: use service dependency in supervisord to start services 2020-08-15 22:25:52 -07:00
arlakshm
7ca24c3580
[201911] Common functions for Multi ASIC CLIs (#5193)
* Port Multi Asic common changes to 201911

Signed-off-by: Arvindsrinivasan Lakshmi Narasimhan <arlakshm@microsoft.com>

* fix compilation issue

Signed-off-by: Arvindsrinivasan Lakshmi Narasimhan <arlakshm@microsoft.com>

* fix compilation issue

Signed-off-by: Arvindsrinivasan Lakshmi Narasimhan <arlakshm@microsoft.com>
2020-08-15 07:16:58 -07:00
Abhishek Dosi
203e854184 [submodule update] sonic-utilities
[201911] fix show version #1055
2020-08-14 18:31:58 -07:00
abdosi
ef4d85855f
Two fixes: (#5191)
a) we should use get_platform() with new sonic_py-common package
b) In 201911 DB Connector is still using db id based constructor
as following PR https://github.com/Azure/sonic-buildimage/pull/4549
is not cherry-picked yet. So revert the change to use db is insatead of
db_name for now.

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-08-14 18:10:20 -07:00
Sumukha Tumkur Vani
f1e402194e Bring up all neighbor ports in DeviceInterfaceLinks (#5071)
* Bring up FPGA ports and test it

* Bring up those ports in neighbors dict

* Revert delete of a line

* Add test

* change code comment

* Change test name

* Revert submodule update
2020-08-14 09:29:10 -07:00
Prince Sunny
9ad1971c78 Enable restapi, update sonic-restapi (#5169)
* Enable restapi if included in image
* [Submodule update] sonic-restapi
2020-08-14 09:22:09 -07:00
Abhishek Dosi
6793743fb5 [submodule update] sonic-swss
Ignore IPv6 link-local and multicast entries as Vnet routes (#1401)
[201911]Handled both REDIRECT and REDIRECT_ACTION ACL rules in ACL (#1397)

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-08-14 09:21:11 -07:00
Abhishek Dosi
09248d9647 [submodule update] sonic-utilities
[201911][Python] Migrate applications/scripts to import sonic-py-common
 package (#1040)

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-08-13 23:04:41 -07:00
Abhishek Dosi
9869eb8277 [submodule update] sonic-platform-daemons
[201911] Migrate from sonic-daemon-base package to sonic-py-common
  package (#83)
2020-08-13 19:13:43 -07:00
Joe LeVeque
309a098b21
[201911][Python] Migrate applications/scripts to import sonic-py-common package (#5132)
As part of consolidating all common Python-based functionality into the new sonic-py-common package, this pull request:
1. Redirects all Python applications/scripts in sonic-buildimage repo which previously imported sonic_device_util or sonic_daemon_base to instead import sonic-py-common, which was added to the 201911 branch in https://github.com/Azure/sonic-buildimage/pull/5063
2. Replaces all calls to `sonic_device_util.get_platform_info()` to instead call `sonic_py_common.get_platform()` and removes any calls to `sonic_device_util.get_machine_info()` which are no longer necessary (i.e., those which were only used to pass the results to `sonic_device_util.get_platform_info()`.
3. Removes unused imports to the now-deprecated sonic-daemon-base package and sonic_device_util.py module

This is a step toward resolving https://github.com/Azure/sonic-buildimage/issues/4999
2020-08-13 16:35:53 -07:00
Abhishek Dosi
ef88181cd3 [sunmodule update] sonic-platform-common
Parse 'Extended Specification compliance' as independent field (#112)
2020-08-11 11:19:59 -07:00
Abhishek Dosi
13386c1a3c [submodule update] sonic-util
Bad-cherry-pick as part of PR#1015 causing build failure

 This commit fixes build failure.
2020-08-09 16:43:57 -07:00
Abhishek Dosi
db631745e0 [submoulde update] sonic-platform-common
[Cables] Add support for 'Extended Specification Compliance' for QSFP
 cables (#108)

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-08-09 12:05:07 -07:00
Abhishek Dosi
6e02a67c6b [submodule] update sonic-py-swsssdk
Allowing TCP connections with namespace as well. (#81)
2020-08-09 12:04:07 -07:00
Abhishek Dosi
db270edb25 [Submodule update] sonic-swss
Added Max Nexthopgroup/ECMP Count supported by device into State DB.
(#1383)
2020-08-09 12:02:59 -07:00
Abhishek Dosi
597794a49b [submodule update] sonic-utilities
As part of this commit and previous commit ff6cb6c402
sonic-utilities submodule for 201911 has been updated to take following
changes:

 Add support for QSFP-DD cables on 'show' command (#989)
 [show] Fix for 'trunk' PortChannel reported as 'routed' port (#1002)
Enable HW watchdog before fast-reboot (#977)
 [filter-fdb] Check VLAN Presence When Filter FDB (#957) (#975)
[filter-fdb] Fix For Vlan Defined With No CIDR (#976)
 [show/config]: combine feature and container feature cli (#1015)
2020-08-09 11:41:43 -07:00
Sujin Kang
ff6cb6c402 Add disabling HW watchdog during boot for fast-reboot and warm-reboot (#4927)
* Add disabling HW watchdog during boot for fast-reboot and warm-reboot case

* typo
2020-08-09 11:25:31 -07:00
Joe LeVeque
890e1f38cc [sonic-py-common] get_platform(): Refactor method of retrieving platform identifier (#5094)
Applications running in the host OS can read the platform identifier from /host/machine.conf. When loading configuration, sonic-config-engine *needs* to read the platform identifier from machine.conf, as it it responsible for populating the value in Config DB.

When an application is running inside a Docker container, the machine.conf file is not accessible, as the /host directory is not mounted. So we need to retrieve the platform identifier from Config DB if get_platform() is called from inside a Docker 
container. However, we can't simply check that we're running in a Docker container because the host OS of the SONiC virtual switch is running inside a Docker container. So I refactored `get_platform()` to:
    1. Read from the `PLATFORM` environment variable if it exists (which is defined in a virtual switch Docker container)
    2. Read from machine.conf if possible (works in the host OS of a standard SONiC image, critical for sonic-config-engine at boot)
    3. Read the value from Config DB (needed for Docker containers running in SONiC, as machine.conf is not accessible to them)

- Also fix typo in daemon_base.py
- Also changes to align `get_hwsku()` with `get_platform()`
2020-08-09 10:40:20 -07:00
pavel-shirshov
a15d79b6f1 [bgpcfgd]: Clarify error messages on reset Loopback0 ip address (#5062)
To clarify error messages in case the ip address for Loopback is already set. It doesn't make sense to call correct ip address as ambiguous in this case
2020-08-09 10:39:28 -07:00
Guohan Lu
544aa236c4 [submodule]: update sonic-utilities
ef0b1fa 2020-07-21 | [config] Restart telemetry service upon config (re)load (#992)

Signed-off-by: Guohan Lu <lguohan@gmail.com>
2020-08-05 17:30:35 -07:00
Joe LeVeque
6556c40040
[201911] Introduce sonic-py-common package (#5063)
Consolidate common SONiC Python-language functionality into one shared package (sonic-py-common) and eliminate duplicate code.

The package currently includes four modules:
- daemon_base
- device_info
- logger
- task_base

NOTE: This is a combination of all changes from https://github.com/Azure/sonic-buildimage/pull/5003, https://github.com/Azure/sonic-buildimage/pull/5049 and some changes from https://github.com/Azure/sonic-buildimage/pull/5043 backported to align with the 201911 branch. As part of the 201911 port, I am not installing the Python 3 package in the base image or in the VS container, because we do not have pip3 installed, and we do not intend to migrate to Python 3 in 201911.
2020-08-03 11:50:06 -07:00
Abhishek Dosi
3c224e7ce3 [submodule update] sonic-swss
Revert "Refine getDbId() calling to fix build after swss-common change (#1245)"

 This shoudl fix VS build.

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-08-01 17:41:30 -07:00
Abhishek Dosi
35ff8b3e12 [submodule update] sonic-platform-daemons
[xcvrd] Fix bailing out on platforms that do not support QSFP-DD (#78)

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-08-01 14:24:13 -07:00
Abhishek Dosi
ae65de6cac [submodule update] sonic-swss
Remove 00-copp.config.json from swss debian package. (#1366)
2020-07-31 17:30:09 -07:00
pavel-shirshov
f757a5d6eb Fix for ipv6 local-addr problem (#4876)
Co-authored-by: Pavel Shirshov <pavel.contrib@gmail.com>
2020-07-31 17:26:07 -07:00
Abhishek Dosi
a4d399c1a9 [submodule update] sonic-platform-common
Fix import issue for python3 whl building (#105)
2020-07-31 10:24:53 -07:00
Abhishek Dosi
b576443af9 [submodule update] sonic-platform-daemons
[xcvrd] Add support for QSFP-DD cables (#66)
2020-07-30 12:12:03 -07:00
Abhishek Dosi
a2aa5c4d8c [submodule update] sonic-platform-common
[Transceiver] Add parser for QSFP-DD cable type and dictionaries for
 QSFP-DD codes (#101)
2020-07-30 12:10:20 -07:00
Kebo Liu
b4f010f042
[kernel]: Update sonic-linux-kernel to pick up new fix (#5044)
Azure/sonic-linux-kernel#154 patch psample to safely unload the module
2020-07-28 15:06:51 -07:00
Abhishek Dosi
a163583d93 [submodule update] sonic-swss-common
This is fix for compilation error also on 201911.
[schema]: Add a new table "NAT_DNAT_POOL_TABLE" to hold the DNAT Pool
entries.

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-07-27 08:58:42 -07:00
Stephen Sun
33a3cc8861
[submodule]: update submodule head for sonic-sairedis on 201911 (#5041)
Update the meta code to support DNAT Pool changes (#616)
[syncd] Fix notification on shutdown request (#637)
Advance the submodule head of SAI (#641)

Signed-off-by: Stephen Sun <stephens@mellanox.com>
2020-07-26 13:43:01 -07:00
Abhishek Dosi
940e5c0db0 [submodule update] sonic-utilities
[config] Add 'config interface mtu' command #793
add fec configuration 'config interface fec [OPTIONS] <interface_name>
<interface_fec>' #764
2020-07-26 11:29:10 -07:00
Abhishek Dosi
6216d32db0 [submodule update] sonic-swss
[201911] Update nat entries to use nat_type to support DNAT Pool
  changes. (#1297)
    [201911] Update nat entries to use nat_type to support DNAT Pool
    changes. (#1297)
2020-07-26 11:22:41 -07:00
anish-n
733f7091ac [bgpcfgd]: Add Vlan prefix list to the FRR templates (#5005)
add the Vlan prefix list to the FRR templates
2020-07-26 11:17:29 -07:00
vdahiya12
2b86e51026 [daemon_base] fix to not reregister signal handler (#4998)
* [daemon_base] fix to not reregister signal handler

-src/sonic-daemon-base/sonic_daemon_base/daemon_base.py
Problem:
Currently all daemons inherit from daemon_base class, and for
signal handling functionality they register the signal_handler() by
overriding the siganl_handler() in daemon_base by their own
implmentation.
But some sonic_platform instances also can invoke the daemon_base
constructor while trying to instantiate the common utilities
for example
platform_chassis = sonic_platform.platform.Platform().get_chassis()
This will cause the re registration of signal_handler which will
cause base class signal_handler() to be invoked when the daemon
gets a signal, whereas their own signal_handler should have been
invoked.

Fix:
We only register the siganl_handler once, and if signal_handler has
been registered, not re register it.

Signed-off-by: vaibhav-dahiya <vdahiya@microsoft.com>

* [daemon_base] fix to not reregister signal handler

Signed-off-by: vaibhav-dahiya <vdahiya@microsoft.com>
2020-07-26 11:14:17 -07:00