Commit Graph

1408 Commits

Author SHA1 Message Date
Shi Su
5ee5c13f32
Enable synchronous mode by default and add in minigraph parser (#5735) 2020-10-29 09:15:12 -07:00
Dong Zhang
d95e1969c8
[swsssdk] update submodule for adding new MultiDB API (#5737) 2020-10-28 21:47:01 -07:00
judyjoseph
6088bd59de
[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-10-28 16:41:27 -07:00
Shi Su
09d5a62fad
[sonic-sairedis] Update submodule (#5728)
Update the sonic-sairedis submodule. The following are the commits in the submodule.

[syncd_init_common.sh] Use template file to retrieve vars (#683)
0bf336a3e895167357d5d2e5a988471e115522e8

[syncd/FlexCounter]:Fix last remove bug (#679)
4d21a264d5956501bf69ad3a89ea2ebccd369654
2020-10-27 20:42:57 -07:00
Lawrence Lee
a639021af2
[minigraph.py]: Parse VLAN MAC address from minigraph when present (#5726) 2020-10-27 17:20:55 -07:00
Danny Allen
e0b09d0998
[swss] Update swss submodule (#5719)
Signed-off-by: Danny Allen <daall@microsoft.com>
2020-10-27 14:38:43 -07:00
vdahiya12
dfe005545a
[sonic-platform-common] update submodule (#5721)
a659219 [SONIC_SFP] adding abstract methods for reading and writing the eeprom address space within platform api (#126)
848f4a6 Add third-party licenses (#138)
c2ecd9a Add license file (#137)
403747a [sonic-platform-common] Add new platform API for SONiC Physical MIB Extension feature (#134)
19b8545 [sonic_y_cable] fix the unpacking (#135)

Signed-off-by: vaibhav-dahiya <vdahiya@microsoft.com>
2020-10-27 09:36:26 -07:00
Joe LeVeque
9e34003136
[sonic-config-engine] Clean up dependencies, pin versions; install Python 3 package in Buster container (#5656)
To clean up the image build procedure, and let setuptools/pip[3] implicitly install Python dependencies. Also use ipaddress package instead of ipaddr.
2020-10-26 13:48:50 -07:00
shlomibitton
e66d49a57c
[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-26 19:38:09 +02:00
judyjoseph
c14b41dc30
[submodule]: Advance sonic-swss-common and sonic-sairedis module (#5703)
Advance sonic-swss-common submodule by adding the following  commits 

3ec30ef Deprecate RedisClient and remove unused header file (#399)
165a679 Schema update for BGP internal neighbor table (#389)
262e330 Fix SonicV2Connector interfaces (#396)

Advance sonic-sairedis submodule by adding the following  commits 

bc3e044  [Sai]: Change Sai::set log to level INFO (#680)
b16bc8b Clean code: remove unused header file (#678)
40439b4 [syncd] Remove depreacated dependency on swss::RedisClient (#681)
1b6fc2e [syncd] Add supports of bulk api in syncd (#656)
a9f69c1 [syncd] Add to handle FDB MOVE notification (#670)
c7ef5e9 [gbsyncd] exit with zero when platform has no gearbox (#676)
57228fd [gbsyncd]: add missing python dependency (#675)
02a57a6 [vs] Add CRM SAI attributes to virtual switch interface (#673)
609445a fix boot type for fast boot (#674)
1325cdf Add support for saiplayer bulk API and add performance timers (#666)
1d84b90 Add ZeroMQ communication channel between sairedis and syncd (#659)
017056a Support System ports config (#657)
0f3668f Enable fabric counter for syncd's FlexCounter (#669)
2020-10-26 09:19:16 -07:00
Lawrence Lee
c4f9bec562
[minigraph.py]: Add support for parsing mux cable (#5676)
Find LogicalLinks in minigraph and parse the port information. A new field called `mux_cable` is added to each port's entry in the Port table in config DB:

```
PORT|Ethernet0: {
	"alias": "Ethernet4/1"
	...
	"mux_cable": "true"
}
```

If a mux cable is present on a port, the value for `mux_cable` will be `"true"`. If no mux cable is present, the attribute will either be omitted (default behavior) or set to `"false"`.
2020-10-26 08:52:20 -07:00
Nazarii Hnydyn
ba6f012cc6
[sonic-py-common]: Fix syslog implicit min priority override (#5707)
Current implementation of logger class is based on standard python syslog library.  
Thus, logger class can be instantiated in different places and share the same context across the entire process.  
This means that reducing log severity level will affect other modules which use logging facility.

**- Why I did it**
* To fix syslog implicit min priority override

**- How I did it**
* Added per instance log severity check

**- How to verify it**
1. Run code snippet
```
from sonic_py_common import logger

log1 = logger.Logger(log_identifier='myApp1')
log1.set_min_log_priority_debug()
log1.log_error("=> this is error")
log1.log_warning("=> this is warning")
log1.log_notice("=> this is notice")
log1.log_info("=> this is info")
log1.log_debug("=> this is debug")

log2 = logger.Logger(
    log_identifier='myApp2',
    log_facility=logger.Logger.LOG_FACILITY_DAEMON,
    log_option=(logger.Logger.LOG_OPTION_NDELAY | logger.Logger.LOG_OPTION_PID)
)
log2.log_error("=> this is error")
log2.log_warning("=> this is warning")
log2.log_notice("=> this is notice")
log2.log_info("=> this is info")
log2.log_debug("=> this is debug")
```
2. Sample output:
```
Oct 23 15:08:30.447301 sonic ERR myApp1: => this is error
Oct 23 15:08:30.447908 sonic WARNING myApp1: => this is warning
Oct 23 15:08:30.448305 sonic NOTICE myApp1: => this is notice
Oct 23 15:08:30.448696 sonic INFO myApp1: => this is info
Oct 23 15:08:30.449063 sonic DEBUG myApp1: => this is debug

Oct 23 15:08:30.449442 sonic ERR myApp2[19178]: => this is error
Oct 23 15:08:30.449819 sonic WARNING myApp2[19178]: => this is warning
Oct 23 15:08:30.450183 sonic NOTICE myApp2[19178]: => this is notice
```

Signed-off-by: Nazarii Hnydyn <nazariig@nvidia.com>
2020-10-24 12:36:22 -07:00
Joe LeVeque
3a4435eb53
Add sonic-host-services and sonic-host-services-data packages (#5694)
**- Why I did it**

Install all host services and their data files in package format rather than file-by-file

**- How I did it**

- Create sonic-host-services Python wheel package, currently including procdockerstatsd
  - Also add the framework for unit tests by adding one simple procdockerstatsd test case
- Create sonic-host-services-data Debian package which is responsible for installing the related systemd unit files to control the services in the Python wheel. This package will also be responsible for installing any Jinja2 templates and other data files needed by the host services.
2020-10-23 09:52:29 -07:00
judyjoseph
ace7f24cba
[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 00:41:16 -07:00
Joe LeVeque
73825e4d4d
[system-health] Update .gitignore file (#5688)
Touch up .gitignore file to properly ignore all files generated when building a Python wheel package
2020-10-22 11:58:27 -07:00
pavel-shirshov
c94f93f046
[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-22 11:04:21 -07:00
abdosi
ef8a48a728
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:29:46 -07:00
Prince Sunny
63d40865ab
[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-22 08:28:02 -07:00
pavel-shirshov
d19d1dd569
[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-20 00:38:09 -07:00
Danny Allen
cdb82b9fc2
[swss] Update swss and swss-common submodule pointers (#5630)
[swss]
[acl] Replace IP_PROTOCOL with NEXT_HEADER for IPv6 ACL tables (#1458)
[acl] Refactor port OID retrieval into aclorch (#1462)
Fix issue #5157 by identifying the dependency among objects and avoiding releasing an object still being referenced (#1440)
[mock tests] Update MockDBConnector to match new swsscommon interface (#1465)

[swss-common]
netlink: Setting nl_socket buffer size to 3M from 2M (#391)
Added support in Swig file to cast Selectable object to Subscriber Table object (#394)
[warm reboot] Warm Reboot Support for EVPN VXLAN (#350)
Implement DBInterface/SonicV2Connector in C++ (#387)
Fix memory leak if a RedisCommand object were to be reused (#392)

Signed-off-by: Danny Allen <daall@microsoft.com>
2020-10-16 14:28:55 -07:00
Stepan Blyshchak
8df0e2b6ce
[sonic-cfggen] store jinja2 cache in log level db. (#5646)
This PR makes two changes:
    - Store Jinja2 cache in LOGLEVEL DB instead of STATE DB
    - Store bytecode cache encoded in base64

Tested with the following command: "redis-dump -d 3 -k JINJA2_CACHE"

Signed-off-by: Stepan Blyschak <stepanb@nvidia.com>
2020-10-16 12:00:57 -07:00
Joe LeVeque
d8363a99dc
[sonic-platform-common] Update submodule (#5625)
Includes the following commits:

* src/sonic-platform-common 111dcf7...b316f8d (5):
  > [sonic_platform_base] fix an indentation in fan_drawer_base.py (#133)
  > [SONIC_Y_CABLE] Adding new Y cable Package for accessing  Y cable QSFP's eeprom and configuring Y cable's mux through eeprom (#128)
  > Merge pull request #132 from vdahiya12/adding_changes_for_base_api
  > [ChassisBase][ModuleBase] Remove redundant 'get_serial_number()' method (#130)
  > Merge pull request #125 from vdahiya12/changes_for_mux_driver
2020-10-16 11:17:13 -07:00
Qi Luo
a5adb577f3
[sonic-snmpagent]: Advance submodule (#5614)
6e4a796 2020-10-12 | Fix: correctly handle that lldp_loc_man_addr contains only IPv6 address without IPv4 address (#164) [Qi Luo]
0f772ce 2020-09-28 | [ciscoSwitchQosMIB]: Remove invocation of update_data function during (#161) [SuvarnaMeenakshi]
2020-10-14 10:54:24 -07:00
Joe LeVeque
88c1d66c27
[python-click] No longer build our own package, let pip/setuptools install vanilla (#5549)
We were building our own python-click package because we needed features/bug fixes available as of version 7.0.0, but the most recent version available from Debian was in the 6.x range.

"Click" is needed for building/testing and installing sonic-utilities. Now that we are building sonic-utilities as a wheel, with Click specified as a dependency in the setup.py file, setuptools will install a more recent version of Click in the sonic-slave-buster container when building the package, and pip will install a more recent version of Click in the host OS of SONiC when installing the sonic-utilities package. Also, we don't need to worry about installing the Python 2 or 3 version of the package, as the proper one will be installed as necessary.
2020-10-14 10:16:35 -07:00
Nazarii Hnydyn
0155a15813
[submodule]: Advance swss submodule. (#5611)
- [portsorch]: Set proper initial forwarding state for LAG member #1448

Signed-off-by: Nazarii Hnydyn <nazariig@nvidia.com>
2020-10-14 08:58:50 -07:00
pavel-shirshov
812e1a3489
[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>
2020-10-13 22:21:28 -07:00
vdahiya12
3cd1d8e923
[sonic-py-common] Add platform.json to port_config files candidates only if interfaces are present within platform.json (#5538)
* [sonic-py-common] add platform.json to port_config

Signed-off-by: vaibhav-dahiya <vdahiya@microsoft.com>
2020-10-13 16:58:06 -07:00
lguohan
4a390e93cf
[submodule]: sonic-utilities (#5606)
* b6af9f4 2020-10-12 | Fix expected neighbor when multiple ports connect to same neighbor (#1162) [lguohan]
* a71c72b 2020-10-12 | [show] Add 'show' CLI for system-health feature (#971) [shlomibitton]
* 561d133 2020-10-10 | [README.md] Add instructions for setting up a build/test environment (#1161) [Joe LeVeque]

Signed-off-by: Guohan Lu <lguohan@gmail.com>
2020-10-13 15:25:45 -07:00
Junchao-Mellanox
1c97a03b81
[system-health] Add support for monitoring system health (#4835)
* system health first commit

* system health daemon first commit

* Finish healthd

* Changes due to lower layer logic change

* Get ASIC temperature from TEMPERATURE_INFO table

* Add system health make rule and service files

* fix bugs found during manual test

* Change make file to install system-health library to host

* Set system LED to blink on bootup time

* Caught exceptions in system health checker to make it more robust

* fix issue that fan/psu presence will always be true

* fix issue for external checker

* move system-health service to right after rc-local service

* Set system-health service start after database service

* Get system up time via /proc/uptime

* Provide more information in stat for CLI to use

* fix typo

* Set default category to External for external checker

* If external checker reported OK, save it to stat too

* Trim string for external checker output

* fix issue: PSU voltage check always return OK

* Add unit test cases for system health library

* Fix LGTM warnings

* fix demo comments: 1. get boot up timeout from monit configuration file; 2. set system led in library instead of daemon

* Remove boot_timeout configuration because it will get from monit config file

* Fix argument miss

* fix unit test failure

* fix issue: summary status is not correct

* Fix format issues found in code review

* rename th to threshold to make it clearer

* Fix review comment: 1. add a .dep file for system health; 2. deprecated daemon_base and uses sonic-py-common instead

* Fix unit test failure

* Fix LGTM alert

* Fix LGTM alert

* Fix review comments

* Fix review comment

* 1. Add relevant comments for system health; 2. rename external_checker to user_define_checker

* Ignore check for unknown service type

* Fix unit test issue

* Rename user define checker to user defined checker

* Rename user_define_checkers to user_defined_checkers for configuration file

* Renmae file user_define_checker.py -> user_defined_checker.py

* Fix typo

* Adjust import order for config.py

Co-authored-by: Joe LeVeque <jleveque@users.noreply.github.com>

* Adjust import order for src/system-health/health_checker/hardware_checker.py

Co-authored-by: Joe LeVeque <jleveque@users.noreply.github.com>

* Adjust import order for src/system-health/scripts/healthd

Co-authored-by: Joe LeVeque <jleveque@users.noreply.github.com>

* Adjust import orders in src/system-health/tests/test_system_health.py

* Fix typo

* Add new line after import

* If system health configuration file not exist, healthd should exit

* Fix indent and enable pytest coverage

* Fix typo

* Fix typo

* Remove global logger and use log functions inherited from super class

* Change info level logger to notice level

Co-authored-by: Joe LeVeque <jleveque@users.noreply.github.com>
2020-10-12 11:12:49 +03:00
Joe LeVeque
5e97574e5d
[sonic-utilities] Update submodule (#5578)
* src/sonic-utilities 6e58dff...e1244a5 (5):
  > [setup.py] Pin external runtime dependencies at known working versions (#1151)
  > [config] Reload Monit configuration after potential hostname changes (#1132)
  > [NAT]:Updated natshow script to support DNAT Pool changes (#1001)
  > [pfcstat] Create new copies of Rx and Tx dictionaries (#1150)
  > [master]Fix show ip interface neighbor info not correct when add second ip (#1134)
2020-10-10 14:14:58 -07:00
Shi Su
c1add9a9c5
[sonic-sairedis] Update submodule (#5568)
Signed-off-by: shi-su <ssu@microsoft.com>
2020-10-08 23:37:36 -07:00
anish-n
42d9a44e05
Minigraph resource type changes (#5198)
* Parse sub_role from minigraph into DEVICE_METADATA
* Change minigraph sub_role to resource_type
2020-10-08 15:45:21 -07:00
Mahesh Maddikayala
744612d269
[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.
2020-10-08 09:05:37 -07:00
Petro Bratash
895f4e0bf7
[sonic-utilities] Submodule update (#5558)
- Fix show queue watermark command fail
     Azure/sonic-utilities@6e58dff

Signed-off-by: Petro Bratash <petrox.bratash@intel.com>
2020-10-07 11:32:38 -07:00
zzhiyuan
3da996bbf8
[arista]: Add disable_pcie_firmware_check soc property (#5543)
This is to fix pcie firmware check assert in Broadcom SDK once the SAI changes merges. This will be in the future but adding the soc property in the broadcom config now.

Co-authored-by: Zhi Yuan Carl Zhao <zyzhao@arista.com>
2020-10-06 18:35:15 -07:00
pavel-shirshov
63c1afbc68
[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 08:37:49 -07:00
Danny Allen
90d84143e8
[submodule update] Update sonic-utilities submodule pointer (#5545)
- [acl-loader] Revert fix for IP protocol == 0 (#1142)
- Show sflow interface to display all interfaces enabled for sflow (#1143)
- [sflow_test.py]: tests for config sflow commands. (#1112)
- [config/console] Support add/del console port setting commands (#1136)
- [cli][bgp]use vtysh in the show ip bgp summary command (#1137)
- [README.md] Describe new package creation schema (#1131)
- [consutil] Remove actual baud and refactor lib for future change (#1130)

Signed-off-by: Danny Allen <daall@microsoft.com>
2020-10-05 19:54:21 -07:00
Lawrence Lee
8c344095a8
[docker-orchagent]: Add NDP Proxy Daemon (#5517)
* Install ndppd during image build, and copy config files to image
* Configure proxy settings based on config DB at container start
* Pipe ndppd output to logger inside container to log output in syslog
2020-10-05 08:48:13 -07:00
Dong Zhang
6b0690adbb
[sonic-py-swsssdk] update submodule for using correct connect parameter number (#5524)
* [MultiDB] fix wrong parameter number in interface.py (#88)

Signed-off-by: Dong Zhang d.zhang@alibaba-inc.com
2020-10-03 23:03:13 -07:00
Mahesh Maddikayala
32a517f583
[sonic-swss] Update sonic-swss submodule (#5533) 2020-10-03 09:47:51 -07:00
pavel-shirshov
ffae82f8be
[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-02 10:06:04 -07:00
abdosi
c0bbb7b63d
Fix python expception of missing subprocess (#5503)
Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-10-02 09:09:38 -07:00
abdosi
dda98023e3
[Submodule update] sonic swss (#5489)
be51ebc533cbe92a885c584b4611ffc92d10ea36 Add IPv6 key item support to request parser (#1449)
76e22516bffe45d577ab9cce4f5d96687140fe75 When teamd feature state is disabled the Netdevice created by teamd were (#1450)
6aa97ce7982b78a26803908c0ce12302e51df793 Use .clear() after std::move() (#1444)
d5757db5d896aa2405f6cbf9f4c150f46b27aa4e Add libzmq to README dependencies (#1447)
c7b262ee61973a48943603810c8246a2471d1862 Add libzmq to Makefiles (#1443)
0b2e59ab6b909e5ea06013da03215f0d1af1e618 [drop counters] Clarify log messages for initial counter setup (#1445)
003cf24353c845ef708d192b7da8d571537671e1 [dvs] Refactor and add buffer pool wm test (#1446)
2f5d2d99dfae506333bddda9de2f289f92bb889b [acl] Remove Ethertype from L3V6 qualifiers (#1433)
f7b974f7fc6474a6493a7b6d0676e17caffa6165 Fix issue: bufferorch only pass the first attribute to sai when setting attribute (#1442)

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-10-02 09:06:30 -07:00
Qi Luo
30f5557d36
Fix generate_l2_config: don't override hostname or device role (ToRRouter) (#5510)
* 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 23:24:35 -07:00
pavel-shirshov
1f0f751d4d
[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-09-30 22:35:52 -07:00
Dong Zhang
b01879b44b
[sonic-py-swsssdk] update submodule for changing redis_client index from db_id to db_name (#5512) 2020-09-30 13:42:20 -07:00
Tamer Ahmed
57a584997a [cfggen] Iterative Version Of Deep Update
Avoiding recursive update of maps as it consumes stack frames. This
PR introduces iterative version of deep_update method.

signed-off-by: Tamer Ahmed <tamer.ahmed@microsoft.com>
2020-09-30 07:07:43 -07:00
Tamer Ahmed
110f7b7817 [cfggen] Build Python 2 And Python 3 Wheel Packages
This builds Python 2&3 wheel packages for sonic-cfggen script.

singed-off-by: Tamer Ahmed <tamer.ahmed@microsoft.com>
2020-09-30 07:07:43 -07:00
Tamer Ahmed
99ffce6b57 [cfggen] Move Python 2 Test Data to Py2 Folder
Rendering templates show different orders when rendered using Python
2 vs Python 3. This PR prepare for Python 3 packaging by creating
new dir 'py2' for Python 2 rendered test cases.

singed-off-by: Tamer Ahmed <tamer.ahmed@microsoft.com>
2020-09-30 07:07:43 -07:00
Tamer Ahmed
6754635010 [cfggen] Make Jinja2 Template Python 3 Compatible
Jinja2 templates rendered using Python 3 interpreter, are required
to conform with Python 3 new semantics.

singed-off-by: Tamer Ahmed <tamer.ahmed@microsoft.com>
2020-09-30 07:07:43 -07:00
Tamer Ahmed
9122d16dd2 [cfggen] Remove NatSorted
Natural sorting of SONiC config gen output consumes lot of CPU cycles.
The sole use of natsorted was to make test comparison easier and so,
the natsorting logic is now relocated to the test suite. As a result
sonic-cfggen gained nearly 1 sec per call since we no longer import
natsorted module!

singed-off-by: Tamer Ahmed <tamer.ahmed@microsoft.com>
2020-09-30 07:07:43 -07:00
Guohan Lu
e412338743 Revert "[bgp] Add 'allow list' manager feature (#5309)"
This reverts commit 6eed0820c8.
2020-09-28 22:00:29 -07:00
bingwang-ms
e3f8159606
[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-27 11:31:45 -07:00
pavel-shirshov
6eed0820c8
[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-27 10:47:43 -07:00
Joe LeVeque
dd02437d7f
[sonic-platform-common] Update submodule (#5470)
* src/sonic-platform-common 7255d3a...111dcf7 (2):
  > [EEPROM] Add new function part_number_str to TlvInfoDecoder (#121)
  > Fix fp_port_index error to get correct index type (#111)
2020-09-25 19:18:05 -07:00
Sangita Maity
ccc3d75535
[portconfig] Fallback to port_config.ini if hwsku.json is not available (#5434)
**- Why I did it**
As discussed, This PR covers the below points.
1. Give precedence to platform.json only if both platform.json and  hwsku.json file exist.  In case only platform.json exists, we don’t allow breakout for that HWSKU and fallback to port_config.ini.
 
**- How I did it**
check for `hwsku.json` file presence under get_path_to_port_config_file function.

Signed-off-by: Sangita Maity <sangitamaity0211@gmail.com>
2020-09-25 12:47:45 -07:00
Sumukha Tumkur Vani
b5bcfef013
Update conf DB with CA cert & rename ca_crt field (#5448) 2020-09-25 09:20:09 -07:00
Syd Logan
0311a4a037
Add gearbox phy device files and a new physyncd docker to support VS gearbox phy feature (#4851)
* buildimage: Add gearbox phy device files and a new physyncd docker to support VS gearbox phy feature

* scripts and configuration needed to support a second syncd docker (physyncd)
* physyncd supports gearbox device and phy SAI APIs and runs multiple instances of syncd, one per phy in the device
* support for VS target (sonic-sairedis vslib has been extended to support a virtual BCM81724 gearbox PHY).

HLD is located at b817a12fd8/doc/gearbox/gearbox_mgr_design.md

**- Why I did it**

This work is part of the gearbox phy joint effort between Microsoft and Broadcom, and is based
on multi-switch support in sonic-sairedis.

**- How I did it**

Overall feature was implemented across several projects. The collective pull requests (some in late stages of review at this point):

https://github.com/Azure/sonic-utilities/pull/931 - CLI (merged)
https://github.com/Azure/sonic-swss-common/pull/347 - Minor changes (merged)
https://github.com/Azure/sonic-swss/pull/1321 - gearsyncd, config parsers, changes to orchargent to create gearbox phy on supported systems
https://github.com/Azure/sonic-sairedis/pull/624 - physyncd, virtual BCM81724 gearbox phy added to vslib

**- How to verify it**

In a vslib build:

root@sonic:/home/admin# show gearbox interfaces status
  PHY Id    Interface        MAC Lanes    MAC Lane Speed        PHY Lanes    PHY Lane Speed    Line Lanes    Line Lane Speed    Oper    Admin
--------  -----------  ---------------  ----------------  ---------------  ----------------  ------------  -----------------  ------  -------
       1   Ethernet48  121,122,123,124               25G  200,201,202,203               25G       204,205                50G    down     down
       1   Ethernet49  125,126,127,128               25G  206,207,208,209               25G       210,211                50G    down     down
       1   Ethernet50      69,70,71,72               25G  212,213,214,215               25G           216               100G    down     down

In addition, docker ps | grep phy should show a physyncd docker running.

  Signed-off-by: syd.logan@broadcom.com
2020-09-25 08:32:44 -07:00
Mahesh Maddikayala
224cc3953f
[CLI][Multi ASIC] update get_all_namespace to return current namespace (#5446) 2020-09-24 11:32:16 -07:00
SuvarnaMeenakshi
8c8773bee6
[sonic-snmpagent]: Advance submodule (#5454)
- Implementation changes for CiscoBgp4MIB (#158)

Signed-off-by: SuvarnaMeenakshi <sumeenak@microsoft.com>
2020-09-24 11:12:23 -07:00
Syd Logan
623d5c08c1
[submodule]: update sonic-swss-common/sonic-sairedis (#5449)
Update to pick up changes needed for VS gearbox

- sonic-sairedis
  -  meta/saiserialize.cpp - Fix typo at SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_UINT32 (#662)
  -  syncd/scripts/gbsyncd_start.sh - Rename physyncd_startup.sh/physyncd_startup.py to gbsyncd_startup.sh/gbsyncd_startup.py (#661)
  - syncd/scripts/gbsyncd_startup.py - Rename physyncd_startup.sh/physyncd_startup.py to gbsyncd_startup.sh/gbsyncd_startup.py (#661)

- sonic-swss-common
  - common/database_config.json -  Add restapi DB (#386)
  - common/redispipeline.h -  Throw proper exceptions when talking with Redis (#384)
  - common/redisreply.cpp -  Throw proper exceptions when talking with Redis (#384)
  - common/redisreply.h -  Throw proper exceptions when talking with Redis (#384)
  -  common/schema.h -  Add restapi DB (#386)
  - common/table.cpp - Add restapi DB (#386)

Signed-off-by Syd Logan syd.logan@broadcom.com
2020-09-24 01:08:55 -07:00
Joe LeVeque
ec9281be76
[sonic-platform-common][sonic-platform-daemons][sonic-snmpagent][sonic-utilities] Update submodules (#5435)
Update Python-based submodules to include updated dependencies in setup.py files.

* src/sonic-platform-common 14c6e53...7255d3a (2):
  > [setup.py] Update dependenices (#120)
  > [sfputilbase|sfputilhelper] fix value unpack error due to port_alias_asic_map in portconfig.py file (#116)

* src/sonic-platform-daemons e1842b2...1aaffcc (2):
  > Add 'wheel' package to 'setup_requires' list (#95)
  > [thermalctld] Fix issue: thermalctld should be auto restarted when being killed (#94)

* src/sonic-snmpagent 1a2b62a...5957460 (1):
  > [setup.py] Add 'wheel' to 'setup_requires' (#160)

* src/sonic-utilities 2244d7b...2f79ac1 (4):
  > [show] Add missing import to fix `show ip interfaces` (#1126)
  > Fixed config load_minigrpah not working for Multi-asic platfroms. (#1123)
  > Add CLI for configuring synchronous mode (#1094)
  > [setup.py] Update dependencies (#1125)
2020-09-23 19:24:59 -07:00
gechiang
04c709d27f
Fix bgpmon.py packaging issue for console_scripts entry point (#5436)
* Fix bgpmon.py packaging issue for console_scripts entry point

* renamed directory from bgpmon_proj to bgpmon
2020-09-23 09:40:49 -07:00
Qi Luo
03f82a0107
[submodule]: update sonic-swss-common/sonic-sairedis/sonic-swss (#5406) 2020-09-21 14:49:56 -07:00
Joe LeVeque
3987cbd80a
[sonic-utilities] Build and install as a Python wheel package (#5409)
We are moving toward building all Python packages for SONiC as wheel packages rather than Debian packages. This will also allow us to more easily transition to Python 3.

Python files are now packaged in "sonic-utilities" Pyhton wheel. Data files are now packaged in "sonic-utilities-data" Debian package.

**- How I did it**
- Build and install sonic-utilities as a Python package
- Remove explicit installation of wheel dependencies, as these will now get installed implicitly by pip when installing sonic-utilities as a wheel
- Build and install new sonic-utilities-data package to install data files required by sonic-utilities applications
- Update all references to sonic-utilities scripts/entrypoints to either reference the new /usr/local/bin/ location or remove absolute path entirely where applicable

Submodule updates:

* src/sonic-utilities aa27dd9...2244d7b (5):
  > Support building sonic-utilities as a Python wheel package instead of a Debian package (#1122)
  > [consutil] Display remote device name in show command (#1120)
  > [vrf] fix check state_db error when vrf moving (#1119)
  > [consutil] Fix issue where the ConfigDBConnector's reference is missing (#1117)
  > Update to make config load/reload backward compatible. (#1115)

* src/sonic-ztp dd025bc...911d622 (1):
  > Update paths to reflect new sonic-utilities install location, /usr/local/bin/ (#19)
2020-09-20 20:16:42 -07:00
gechiang
128def6969
Add bgpmon to be started as a new daemon under BGP docker (#5329)
* Add bgpmon under sonic-bgpcfgd to be started as a new daemon under BGP docker

* Added bgpmon to be monitored by Monit so that if it crashed, it gets alerted

* use console_scripts entry point to package bgpmon
2020-09-20 14:32:09 -07:00
Junchao-Mellanox
35de31b741
[sonic-platform-daemons] Update submodule (#5386)
e1842b2 Change STATE_DB key (PCIE_STATUS|PCIE_DEVICES -> PCIE_DEVICES) (#93)
a6c0071 [thermalctld] Fix issue: fan status should not be True when fan is absent (#92)
2020-09-16 10:36:40 -07:00
madhanmellanox
1b25b98f43
[submodule]: updating sonic-utilities changes (#5383)
Updating submodule for sonic-utilities to get the changes to Azure master. The following were the commits that were part of this submodule.

Handling deletion of Portchannel before deletion of its members 219d78bda596cf78b71e5f6930545fb43f9c6c8b

removed a extra space in the condifitional statement 828719ed89112f317f9e78fff8264416176736f0

added Note about portchannel deletion in Command-Reference guide b36079f1d3f4086e42cfdca2090ebc76d811ad10

removed ctx.fail() and replaced it with click.echo() to display the error. Also, references of portchannel is replaced with port channel in the command reference guide b716b97e1aaf890ba9ef4ed0bb2931f4c2c030d2

Co-authored-by: Madhan Babu <madhan@arc-build-server.mtr.labs.mlnx>
2020-09-16 09:12:13 -07:00
Samuel Angebault
9bf4b0a93e
[baseimage]: Change the loopback mask from /8 to /16 (#5353)
As per the VOQ HLDs, internal networking between the linecards and supervisor is required within a chassis.
Allocating 127.X/16 subnets for private communication within a chassis is a good candidate.
It doesn't require any external IP allocation as well as ensure that the traffic will not leave the chassis.

References:
https://github.com/Azure/SONiC/pull/622
https://github.com/Azure/SONiC/pull/639

**- How I did it**

Changed the `interfaces.j2` file to add `127.0.0.1/16` as the `lo` ip address.
Then once the interface is up, the post-up command removes the `127.0.0.1/8` ip address.
The order in which the netmask change is made matters for `127.0.0.1` to be reachable at all times.

**- How to verify it**

```
root@sonic:~# ip address show dev lo
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/16 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
```

Co-authored-by: Baptiste Covolato <baptiste@arista.com>
2020-09-15 15:29:48 -07:00
Tamer Ahmed
15f5d47338
[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-15 15:27:36 -07:00
Qi Luo
17c923c15b
[submodule]: update sonic-swss-common (#5362)
cc2f80b 2020-09-11 | Fix SubscriberStateTable::hasCachedData formula for a timing risk
2020-09-12 00:17:23 -07:00
Petro Bratash
c44279a365
[sonic-platform-daemons] Update submodule (#5355)
- 1893c40495
  - Fix the xcvrd theowing error on sfprecover function on getKeys() not valid.
- 65fa4430fe
  - Merge pull request #90 from abdosi/multiasic-fix
- 7f812c93b1
  - [xcvrd] Don't log unnecessary messages upon empty transceiver change event (#53)
- 096920273b
  - Fix pcied daemon failure (#91)

Signed-off-by: Petro Bratash <petrox.bratash@intel.com>
2020-09-11 13:03:53 -07:00
Tamer Ahmed
1bf6fdc6d2
[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-09 18:37:01 -07:00
Renuka Manavalan
e9918bac07
[sonic-utilities] Update submodule (#5337)
Update to current head in master. Latest: commit 96cb3594a6afc64edcef7351623258287099118d
2020-09-09 09:04:21 -07:00
Joe LeVeque
5b3b4804ad
[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-08 23:36:38 -07:00
judyjoseph
1558c04fa8
Update sonic-swss submodule (#5322)
65f63c1 Sflow fixes during DEL processing (#1427)
e54948a [teamsyncd][teammgrd] Graceful exit after receiving SIGTERM (#1407)
2020-09-06 08:16:20 -07:00
vdahiya12
679d8df36f
[sonic-utilities][sonic-py-common] Move logic to get port config file path to sonic-py-common and update sonic-utilities to comply (#5264)
* [sonic-utilities]update submodule with fix

This PR addresses fixes in sonic-py-common to imitate the behavior inside
sonic-cfggen. Essentially this is a fix for accessing the port-config file.
First check if there is a platform.json file for config generation
and then for legacy port_config.ini.
Also updating the sub-module sonic-utilities.

Fix pfcwd stats crash with invalid queue name (#1077)
[show][bgp]Display the Total number of neighbors in the show ip bgp(v6) summary. (#1079)
[config] Update SONiC Environment Vars When Loading Minigraph (#1073)
Multi asic platform changes for interface, portchannel commands (#878)
Update Command-Reference.md (#1075)
[filter-fdb] Fix Filter FDB With IPv6 Present in Config DB (#1059)
[config] Remove _get_breakout_cfg_file_name helper function (#1069)
[SHOW][BGP] support show ip(v6) bgp summary for multi asic platform (#1064)
[fanshow] Display other fan status, such as Updating (#1014)
Add ip_prefix len based on proxy_arp status (#1046)
Enable the platform specific ssd firmware upgrade during reboot (#954)
[show][cli[show interface portchannel support for Multi ASIC (#1005)
support show interface commands for multi ASIC platforms (#1006)

Signed-off-by: vaibhav-dahiya <vdahiya@microsoft.com>
2020-09-04 10:19:12 -07:00
judyjoseph
200d49eabb
sonic-platform-daemons submodule update (#5311)
[ledd][multi-ASIC] Update to ledd based on sonic-swss-common updates (#87)
remove sonic-utilities dependency from pcied (#88)
2020-09-04 08:58:20 -07:00
Danny Allen
fe01f0c285
[submodule] Update swsssdk submodule (#5295)
Signed-off-by: Danny Allen <daall@microsoft.com>
2020-09-03 00:21:25 -07:00
abdosi
dd908c2ee2
[sonic-swsscommon] submodule update with commit's (#5300)
[schema] Make schema header support C project (#373)
Removed DB specific get api's from Selectable class (#378)

With the change as part of #378 caclmgrd need to be updated
to use new client side Get API to access namespace.

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-09-02 18:09:03 -07:00
Joe LeVeque
fb8f09a116
[radvd] No longer build from source; Install vanilla Debian package once again (#5242)
Remove radvd Makefile and patch, change docker-router-advertiser Dockerfile template to simply install the vanilla radvd package using apt-get.

- In PR https://github.com/Azure/sonic-buildimage/pull/2795, we started building radvd from source and patching it to prevent it from erroring out when advertising an MTU of 9100 which was greater than the MTU size configured on the bridge interface (1500), which was due to a limitation in the 4.9 Linux kernel.
- Master branch is now using Linux kernel 4.19. As of 4.18, the kernel supports setting a bridge MTU to a value > 1500.
- PR https://github.com/Azure/sonic-swss/pull/1393 modified vlanmgrd to take advantage of this and now configures the MTU of bridge interfaces in SONiC to the proper size of 9100. Therefore, we no longer need to patch radvd. Since we no longer need to patch radvd, we no longer need to build it from source, so we can save build time by going back to simply installing the vanilla radvd Debian package in the router-advertiser container.
2020-09-01 13:53:36 -07:00
sdddean
426b6aaf5b
[iccpd] Fix the bug of iccp cmd show. (#5214)
The cmd "mclagdctl dump state" would goes wrong when there are two or more mclag_groups configured. The field "MCLAG Interface" can not be displayed in some group.

Signed-off-by: Sun Dandan <sundandan@asterfusion.com>
2020-09-01 13:07:13 -07:00
arlakshm
17e78715ae
[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-08-31 17:35:48 -07:00
Sumukha Tumkur Vani
3d6ef3e790
Update restapi (#5267)
* Add available routes data to heartbeat API
* Accept subnet routes via tunnel, skip self loopback nexthop
2020-08-31 10:43:32 -07:00
judyjoseph
ca3e71da0a
[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-08-30 08:24:29 -07:00
shi-su
f973d90c76
[sonic-sairedis] Update submodule (#5243)
Signed-off-by: shi-su <ssu@microsoft.com>
2020-08-29 18:03:52 -07:00
judyjoseph
c3dbffa847
[sonic-platform-daemons] Update submodule (#5262)
Update the patform daemons with new commits 

commit e9628b6b5a4683c7366fc99ee19ce727546fbabb
    Merge pull request #64 from judyjoseph/multi_asic_ledd_xcvr
    * platform daemon (Xcvrd, Ledd) changes for multi asic platform
      * Updates in ledd daemon to use namespaces and get the namespace from selector object.
      * Updates to xcvrd daemon to use the asic_id in talking to the right DB.
      * Updated based on new sonic-py-common API's
      * Invoke initializeGlobalConfig() in the SfpUpdate/DomInfoUpdate processes as well.

commit 415b8c457625c514aff0f8ecbdbbb655414d8067
    [thermalctld] Optimize the thermal policy loop to make it execute every 60 seconds (#77)
    
commit 3d1f3196fd9c9942134e4926de7d248743e9589d
    Update FAN_INFO in psud to avoid inconsistant output of show platform psud and show platform fan (#81)
2020-08-29 10:25:46 -07:00
judyjoseph
123a5640bd
Update platform-common submodule (#5261)
Updating platform-common submodule with these commits

commit 14c6e53ecb861e124e2b45a7b65875ffac1b949e 
    [sff8472.py] Make hex keys all lowercase (#115)
    Alpha chars in hex-based keys should be lowercase

commit b60f46cd1fb0ced1ffbff382e0125517f8c74b9e
    Sfputil base and helper class changes for multi-ASIC (#100)
    * Sfputil base and helper class changes for multi-ASIC
          > adding the logical interface to asic id mapping
    * Updated based on new sonic-py-common API's.
2020-08-29 10:25:06 -07:00
Renuka Manavalan
5a166cc60c
[sonic-py-common] Add function to get hostname (#5265)
Added a function to get hostname. It get it from DEVICE_METADATA|localhost: hostname.
2020-08-28 13:47:44 -07:00
Prince Sunny
4338d8293f
Skip vnet-vxlan interfaces from generating networks (#5251)
* Skip Vnet interface from generating networks
2020-08-27 14:14:04 -07:00
Tamer Ahmed
a8016a6987
[cfggen] Use Redis Pipeline (#5250)
This PR enables cfggen to readr/write from Redis DB using pipelines.
Pipelines enables batch read/write from/to Redis DB.

signed-off-by: Tamer Ahmed <tamer.ahmed@microsoft.com>
2020-08-26 15:05:54 -07:00
Tamer Ahmed
a38105237c
[py-swsssdk] Submodule Update (#5249)
Change:
  c25d492 Merge pull request #83 from tahmed-dev/taahme/add-redis-pipeline-operation
  198d143 review comments - part of [configdb] Add Ability to Query/Update Redis Using Pipelines
  994851c review comments - part of [configdb] Add Ability to Query/Update Redis Using Pipelines
  2d2b7e1 making lgtm happy - part of [configdb] Add Ability to Query/Update Redis Using Pipelines
  fa9093c [configdb] Add Ability to Query/Update Redis Using Pipelines

signed-off-by: Tamer Ahmed <tamer.ahmed@microsoft.com>
2020-08-26 09:09:43 -07:00
judyjoseph
394aa5f75f
Platform monitor changes in daemon_base for multi_asic (#4932)
Adding namespace support for db connect API.
2020-08-25 09:33:43 -07:00
Joe LeVeque
58db2d53e3
[sonic-py-common] Add unit test framework (#5238)
**- Why I did it**

To install the framework for adding unit tests to the sonic-py-common package and report coverage.

** How I did it **

- Incorporate pytest and pytest-cov into sonic-py-common package build
- Updgrade version of 'mock' installed to version 3.0.5, the last version which supports Python 2. This fixes a bug where the file object returned from `mock_open()` was not iterable (see https://bugs.python.org/issue32933)
- Add support for Python 3 setuptools and pytest in sonic-slave-buster environment
- Add tests for `device_info.get_machine_info()` and `device_info.get_platform()` functions
- Also add a .gitignore in the root of the sonic-py-common directory, move all related ignores from main .gitignore file, and add ignores for files and dirs generated by pytest-cov
2020-08-24 10:35:22 -07:00
Joe LeVeque
87713aaa1b
[sonic-swss] Update submodule (#5231)
* src/sonic-swss d2bab10...c4949a2 (34):
  > [dvs] Add new common issues and TOC to DVS README (#1405)
  > Avoid adding loopback interface (ip link add) when setting nat zone on loopback interface (#1411)
  > [portsorch] add buffer drop FC group (#1368)
  > [dvs/chassis] Bring up SONiC interfaces in virtual chassis (#1410)
  > [chassis/dvs] Add support for virtual chassis to DVS testbed (#1345)
  > [sonic-swsss] Fix the issue of field "next_hop_ip" not getting updated in state DB in ERSPAN Mirror (#1375)
  > [intfmgr] Fix OA crash issue due to link local configurations (#1195)
  > Fix the issue when persistent DVS is used to run pytest which has number of front-panel ports < 32 (#1373)
  > [dvs] Refactor AsicDbValidator (#1402)
  > [fec] Get FEC mode when port is already admin down (#1403)
  > [fec] added logic that put port down before applying fec onfiguration (#1399)
  > [dvs] Add performance test for adding and deleting routes (#1392)
  > Ignore IPv6 link-local and multicast entries as Vnet routes (#1401)
  > [vlanmgr] Support Jumbo Frame By Default (#1393)
  > Fix log/syslog not being correct when last test fails for given module (#1395)
  > Get initial speed from ASIC DB  (#1390)
  > [dvs] Add options to limit CPU usage (#1394)
  > [intfsorch] Retrieve Port object before setting NAT zone on router interfaces. (#1372)
  > [.gitignore] Ignore gearsyncd binary (#1381)
  > Added Max Nexthopgroup/ECMP Count supported by device into State DB. (#1383)
  > [dvs] Upload logs even if failure occurs during startup (#1389)
  > [rates] fix issue with rates init (#1387)
  > [dvs] Validate that SWSS is ready to receive input before starting tests (#1385)
  > [dvs] Convert sflow and speed tests to use dvslib (#1382)
  > [dvs_acl] Refactor and document dvs_acl library (#1378)
  > [dvs] Fix install instructions in README (#1379)
  > [dvs] Update README with new flags, options, and known issues (#1380)
  > swss: gearsyncd should return 0 on exit (#1376)
  > Remove 00-copp.config.json from swss debian package. (#1366)
  > fix undefined var in rates lua scripts (#1365)
  > [fdborch] Fixed Orchagent crash in FDB flush on port disable. (#1369)
  > [tlm_teamd]: Try to add LAG again, when teamd is not ready first time (#1347)
  > [vs] Incorporate python3 best practices into DVSLib (#1357)
  > [dvs] Mark unstable tests as xfail (#1356)
2020-08-22 18:41:32 -07:00
judyjoseph
cbb46e426b
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-08-22 16:24:44 -07:00
nirenjan
bb57ccecd4
[sonic-host-service]: Add SONiC Host Services infrastructure (#4840)
- Why I did it

When SONiC is configured with the management framework and/or telemetry services, the applications running inside those containers need to access some functionality on the host system. The following is a non-exhaustive list of such functionality:

Image management
Configuration save and load
ZTP enable/disable and status
Show tech support
- How I did it

The host service is a Python process that listens for requests via D-Bus. It will then service those requests and send a response back to the requestor.

This PR only introduces the host service infrastructure. Applications that need access to the host services must add applets that will register on D-Bus endpoints to service the appropriate functionality.

- How to verify it

- Description for the changelog

Add SONiC Host Service for container to execute select commands in host

Signed-off-by: Nirenjan Krishnan <Nirenjan.Krishnan@dell.com>
2020-08-21 15:34:14 -07:00
Joe LeVeque
a1335aa1f4
[sonic-utilities] Update submodule (#5233)
* src/sonic-utilities d5fdd74...17fb378 (7):
  > [sonic-installer] Import re module (#1061)
  > [fast-reboot]: Fix fail to execute fast-reboot problem (#1047)
  > [config] Reduce Calls to SONiC Cfggen (#1052)
  > [filter-fdb] Call Filter FDB Main From Within Test Code (#1051)
  > [sflow_test.py]: Fix show sflow display. (#1054)
  > Change fast-reboot script to use swss and radv service script (#1036)
  > Common functions for show CLI support on multi ASIC (#999)
2020-08-21 13:58:46 -07:00
Kelly Chen
570dbf52f6
[iccpd] Fix uninitialized variable. (#5112)
To declare *tb[] but do not initialize it, it might be very risky. We get iccpd exception during processing arp/nd event. Initialize it to {0};
2020-08-21 00:27:04 -07:00
judyjoseph
ba3f5ca094
Advance swss-common submodule. (#5222)
9a7c9d Dbconnector namespace support (#376)
c32f0b5 add state db entry for fgnhg route entry (#374)
2020-08-20 15:10:19 -07:00
Joe LeVeque
ce2c0781ab
[sonic-config-engine] Update .gitignore (#5223)
- Ignore directories generated by building Python wheel package
- Move all sonic-config-engine ignores from the root .gitignore to src/sonic-config-engine/.gitignore
2020-08-20 11:09:10 -07:00
Mahesh Maddikayala
fdea6fb439
[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-08-20 09:14:00 -07:00
Joe LeVeque
da69d57a8d
[redis-dump-load] Update submodule (#5215)
* src/redis-dump-load 832a645...7585497 (2):
  > Merge pull request #63 from jleveque/update_gitignore
  > Merge pull request #59 from breser/redis-load-empty
2020-08-19 11:23:42 -07:00
Tamer Ahmed
ec11308a66
[cfggen] Conform With Python 3 Syntax (#5154)
Preparing sonic-cfggen for migration to Python 3.

signed-off-by: Tamer Ahmed <tamer.ahmed@microsoft.com>
2020-08-19 09:29:40 -07:00
SuvarnaMeenakshi
f5746f3189
[submodule]: Advance sonic-snmpagent. (#5213)
Update sonic-snmpagent submodule to include below commits:
1a2b62a [Namespace]: Fix SAI_ID key used in cpfcIfTable and csqIfQosGroupStatsTable implementation (#138)
d06f00c [pytest/coverage]: add coverage support (#156)
90e9f2e [Namespace]: Simplify sync_d functions to use higher order (#154)
b5815d9 [LLDP]: Modify OID index of LLDPRemTableUpdater MIB (#155)
d5f2b92 [Multiasic]: Provide namespace support for ipNetToMediaPhysAddress (#129)
166c221 [Namespace]: Fix interface counters in RFC 1213 (#145)

Signed-off-by: SuvarnaMeenakshi <sumeenak@microsoft.com>
2020-08-19 04:27:09 -07:00
Tamer Ahmed
f840013ed9
[cfggen] Allow Write To Redis DB With Template/Batch Mode (#5203)
Argument to write to config-db is not allowed when using template.
This PR allows cfggen to write to redis db when using template
mode.

signed-off-by: Tamer Ahmed <tamer.ahmed@microsoft.com>
2020-08-18 18:24:36 -07:00
judyjoseph
52fe7ae365
[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-08-18 10:20:26 -07:00
arlakshm
4487abdfcb
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-17 17:22:30 -07:00
Joe LeVeque
fa4af0d372
[sonic-config-engine] Ensure all test output files are ignored (#5197)
Also align the naming and cleanup of generated output files in test_cfggen.py with the rest of the tests.
2020-08-15 23:09:11 -07:00
Praveen Chaudhary
32539a1bda
[sonic-vlan.yang]: Correct Pattern for VLAN. (#5165)
Changes:
-- Correct Pattern for VLAN.
-- Add Special Test support.
-- Add first special test to load VLAN 1-4094.
-- Add lanes in ports.
-- Make Sure None test gets no output from libyang while config load.

[yangModelTesting.py]: INCORRECT VLAN_NAME FIELD IN VLAN TABLE test.

Signed-off-by: Praveen Chaudhary pchaudhary@linkedin.com
2020-08-15 12:38:15 -07:00
Joe LeVeque
df11f17843
[sonic-platform-daemons] Update submodule (#5190)
src/sonic-platform-daemons 0231b49...80661c7 (1):
Update .gitignore file (#86)
2020-08-15 12:34:43 -07:00
Stephen Sun
5c02078118
[submodule] Advance submodule head for sonic-utilities (#5184)
[db_migrator] Support migrating database regarding buffer configuration for all Mellanox switches (#993)
    [show/vlan]: fix show vlan config (#1050)
    [PFCWD] Fix issue with "pfcwd show stats" command during SONiC init (#1018)
    [config] Eliminate port breakout-related globals (#1045)
    [teamshow]: refactor teamshow to use state db information (#1049)
    [watermarkstat] Import print_function from __future__ (#1048)
    [show]: split show interfaces commands into separate file (#1044)
    Python 3 compliance (#1043)
    Update all references to new 'sonic-installer' file name (#1033)
    [config/show]: split vlan into separate file (#1038)
    [pytest/coverage]: add coverage for all scripts (#1041)
    enable watchdog before running platform specific reboot plugin (#1037)
    [tests]:add coverage for config/main/utilities_common module (#1039)
    [cli/feature]: split feature command into a separate file (#1034)

Signed-off-by: Stephen Sun <stephens@nvidia.com>

Co-authored-by: Stephen Sun <stephens@mellanox.com>
2020-08-14 11:14:35 -07:00
arlakshm
6c895513ac
Common functions for Multi ASIC (#4973)
Signed-off-by: Arvindsrinivasan Lakshmi Narasimhan arlakshm@microsoft.com

The following common APIs are added for multi ASIC
- an  API to check if a given port is a internal or external port
- an  API to check if a given port-channel is internal or external
- an API to check if a bgp-session is internal or external
- an  API to connect to the config and other dbs in the a given namespace
- added common APIs to the sonic_py_common library.
- update the sample port-config.ini with role column and add corresponding test to verify the ports configuration is - generated properly.
2020-08-14 07:36:00 -07:00
Joe LeVeque
893d0d8638
[sonic-platform-common] Update submodule (#5173)
* src/sonic-platform-common f3f3573...433dd1a (1):
  > Parse 'Extended Specification compliance' as independent field (#112)
2020-08-13 19:15:40 -07:00
Prince Sunny
3fee094760
Enable restapi, update sonic-restapi (#5169)
* Enable restapi if included in image
* [Submodule update] sonic-restapi
2020-08-13 11:29:49 -07:00
shi-su
a974611fbb
[sonic-sairedis] Update submodule (#5156) 2020-08-12 19:49:10 -07:00
Tamer Ahmed
f9edf6e5cc
[cfggen] Extend Template Argument to Support Batch Mode (#4941)
Calls to cfggen take considerable time. With batch mode, we will have the ability
to reduce number of calls from services.

Example of the batch mode command:
sonic-cfggen -t template-1.j2 -t template-2.j2,config-db -t template-3.j2,config-db -t template-4.j2,file1 -t template-5.j2,file2 --write-to-db.

template-1.j2 will be rendered to stdout since it is missing the dest part. stdout is default
config-db is a special keyword that will inject the rendered template into internal data structure. The internal data structure gets written to redis-db with --write-to-db switch. In the case the user would like to write to a file named config-db, it could be given as /config-db or ./config-db

signed-off-by: Tamer Ahmed <tamer.ahmed@microsoft.com>
2020-08-12 15:13:06 -07:00
Petro Bratash
9f7a8d59a1
[sonic-platform-daemons] Update submodule (#5159)
- [pcied] Fix path to pcie.yaml in pcied daemon (#84) 
>  0231b49ae84cf18c3a8d0c855215c467f28d48d3

Signed-off-by: Petro Bratash <petrox.bratash@intel.com>
2020-08-12 12:01:35 -07:00
Joe LeVeque
47a866ecbd
[sonic-platform-daemons] Update submodule (#5152)
* src/sonic-platform-daemons da3dfbb...7a30ae0 (1):
  > Python 3 compliance (#85)
2020-08-11 14:57:40 -07:00
SuvarnaMeenakshi
3d7b6faf91
[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-11 13:58:20 -07:00
Sumukha Tumkur Vani
9c364fbf93
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-11 07:29:33 -07:00
Joe LeVeque
2b5e418e2e
Remove sonic-daemon-base package (#5131)
sonic-daemon-base package has been deprecated in favor of the sonic-py-common package. All related functionality has been moved there.
2020-08-09 21:27:36 -07:00
Joe LeVeque
966ac85e24
[sonic-config-engine] Remove sonic_device_util.py (#5130)
sonic_device_util.py has been deprecated in favor of the sonic-py-common package. All related functionality has been moved there.
2020-08-09 21:26:54 -07:00
Joe LeVeque
78baecef80
[sonic-utilities] Update submodule (#5129)
* src/sonic-utilities 9700e45...621aad0 (9):
  > [Python] Migrate applications/scripts to import sonic-py-common package (#1008)
  > [config qos] QoS and Buffer config genration for multi ASIC platforms (#978)
  > [cli]: pass db connector as click context (#1029)
  > [PDDF] Make utilities compatible to platform API 2.0, in accordance with pddf_2.0 (#940)
  > [tests] Add unit tests for 'show platform ...' commands (#1021)
  > Add secure fast/warm-reboot support for Aboot (#994)
  > [sonic-installer] Create Envvars File for Incoming Image (#1011)
  > [config load]: do not stop/reset/reload service if it is disabled (#1028)
  > [tests]: move feature_test.py into tests folder (#1027)
2020-08-08 18:21:12 -07:00
Joe LeVeque
5e62d8d324
[sonic-platform-daemons] Update submodule (#5128)
* src/sonic-platform-daemons 8e0704e...da3dfbb (1):
  > [xcvrd][thermalctld] Add logger instances for helper functions and classes (#82)
2020-08-08 11:33:14 -07:00
Joe LeVeque
567da44a85
[sonic-swss-common] Update submodule (#5126)
* src/sonic-swss-common ed9c497...00bcd1d (6):
  > [warmboot] add disable warmstart timer value (#370)
  > Update .gitignore (#372)
  > Fix swss::exec return value (#368)
  > Revert "DBConnector classes to understand the namespace. (#364)" (#369)
  > DBConnector classes to understand the namespace. (#364)
  > Added new table in APPL_Db for DNAT Pool changes (#367)
2020-08-08 01:14:24 -07:00
Joe LeVeque
6b72dee3d3
[sonic-ztp] Update submodule (#5120)
* src/sonic-ztp c959371...dd025bc (2):
  > Update all references to new 'sonic-installer' file name (#18)
  > Filter out non-printable characters read from syseeprom (#17)
2020-08-07 14:37:46 -07:00
Joe LeVeque
d272802511
[sonic-platform-common][sonic-platform-daemons] Update submodules (#5103)
* src/sonic-platform-common be1cc24...f3f3573 (3):
  > Remove sonic-config-engine dependency from setup.py (#109)
  > Migrate from sonic-daemon-base package to sonic-py-common package (#103)
  > [Cables] Add support for 'Extended Specification Compliance' for QSFP cables (#108)
  > [sfputilbase.py] Add application_advertisement NA field to transceiver_info_dict for platform api 1.0 (#104)

* src/sonic-platform-daemons 49d145c...8e0704e (1):
  > Proper fix for thermalctld using sonic-py-common (#80)
  > Fix thermalctld tests which were broken by the transition to sonic-py-common (#79)
  > Migrate from sonic-daemon-base package to sonic-py-common package (#74)
2020-08-06 16:11:13 -07:00
lguohan
082c26a27d
[build]: combine feature and container feature table (#5081)
1. remove container feature table
2. do not generate feature entry if the feature is not included
   in the image
3. rename ENABLE_* to INCLUDE_* for better clarity
4. rename feature status to feature state
5. [submodule]: update sonic-utilities

* 9700e45 2020-08-03 | [show/config]: combine feature and container feature cli (#1015) (HEAD, origin/master, origin/HEAD) [lguohan]
* c9d3550 2020-08-03 | [tests]: fix drops_group_test failure on second run (#1023) [lguohan]
* dfaae69 2020-08-03 | [lldpshow]: Fix input device is not a TTY error (#1016) [Arun Saravanan Balachandran]
* 216688e 2020-08-02 | [tests]: rename sonic-utilitie-tests to tests (#1022) [lguohan]

Signed-off-by: Guohan Lu <lguohan@gmail.com>
2020-08-05 13:23:12 -07:00
Joe LeVeque
172354d36a
[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-04 23:51:35 -07:00
Sangita Maity
0a409ff65e
DPB Breakout Cli Test with proper setup (#3910)
- Created the VS setup to test DPB functionality
- Created "platform.json" for VS docker
- Added test case for Breakout CLI

Signed-off-by: Sangita Maity <sangitamaity0211@gmail.com>
2020-08-04 12:07:44 -07:00
Volodymyr Boiko
804b246cbb
[submodule][sonic-platform-daemons] Update submodule (#5091)
[xcvrd] Fix bailing out on platforms that do not support QSFP-DD (#78)
Fix psud and test_thermalctld (#75)
[Thermal] Fix for 'show platform fan' command (#71)

Signed-off-by: Volodymyr Boyko <volodymyrx.boiko@intel.com>
2020-08-04 09:55:02 -07:00
Joe LeVeque
3b89e5d467
[Python] Migrate applications/scripts to import sonic-py-common package (#5043)
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 in https://github.com/Azure/sonic-buildimage/pull/5003
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 the next step toward resolving https://github.com/Azure/sonic-buildimage/issues/4999

Also reverted my previous change in which device_info.get_platform() would first try obtaining the platform ID string from Config DB and fall back to gathering it from machine.conf upon failure because this function is called by sonic-cfggen before the data is in the DB, in which case, the db_connect() call will hang indefinitely, which was not the behavior I expected. As of now, the function will always reference machine.conf.
2020-08-03 11:43:12 -07:00
Tamer Ahmed
7872b4e196
[platform] Add Support For Environment Variable File (#5010)
* [platform] Add Support For Environment Variable

This PR adds the ability to read environment file from /etc/sonic.
the file contains immutable SONiC config attributes such as platform,
hwsku, version, device_type. The aim is to minimize calls being made
into sonic-cfggen during boot time.

singed-off-by: Tamer Ahmed <tamer.ahmed@microsoft.com>
2020-07-31 17:59:09 -07:00
pavel-shirshov
03d3aa4fc5
Fix for ipv6 local-addr problem (#4876)
Co-authored-by: Pavel Shirshov <pavel.contrib@gmail.com>
2020-07-31 10:40:38 -07:00
pavel-shirshov
e22de3a659
[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-07-30 02:46:19 -07:00
Joe LeVeque
97f15576fb
[sonic-py-common] Add task_base.py (#5049)
Add new task_base.py module from sonic-daemon-base into sonic-py-common package
2020-07-28 15:07:36 -07:00
gechiang
cdc652148c
[sonic-sairedis] Update Submodule (#5052)
Advanced Submodule head of Sonic-Sairedis and picked up the following changes:

Workaround getSwitchType failure due to NPU SAI not yet supporting it (#647)
https://github.com/Azure/sonic-sairedis/pull/647

Adding support for new SAI API sai_query_attribute_capability() (#645)
https://github.com/Azure/sonic-sairedis/pull/645

[syncd] ARM32 bit fixes, for 64bit printf format specifier. (#643)  
Signed-off-by: Rajkumar Pennadam Ramamoorthy <rpennadamram@marvell.com>
https://github.com/Azure/sonic-sairedis/pull/643

[syncd] Add support for synchronous bulk api (#640)
https://github.com/Azure/sonic-sairedis/pull/640
2020-07-28 14:57:16 -07:00
Mahesh Maddikayala
ee4197e9f8
+ 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-07-27 10:57:07 -07:00
Joe LeVeque
c0d1616f89
Introduce sonic-py-common package (#5003)
Consolidate common SONiC Python-language functionality into one shared package (sonic-py-common) and eliminate duplicate code.

The package currently includes three modules:

- daemon_base
- device_info
- logger
2020-07-26 23:15:41 -07:00
Nazarii Hnydyn
a0ba0436fd
[submodule]: Advance platform common/daemons submodules. (#5033)
**sonic-platform-common:**

Commits on Jul 07, 2020
Changes in fan and psu base classes (1.0 platform API) related to pdd… 17292e4
Commits on Jul 10, 2020
update get_pcie_check() to use sysfs instead of lspci output (#95) d4eb804
Commits on Jul 11, 2020
[eeprom] Fix UnboundLocalError (#93) 7c8bed1
Commits on Jul 14, 2020
[Transceiver] Add parser for QSFP-DD cable type and dictionaries for … be1cc24 

**sonic-platform-daemons:**

Commits on Jul 06, 2020
[psud] Store PSU temperature and voltage information to database (#61) ef9716a
Commits on Jul 14, 2020
[xcvrd] Add support for QSFP-DD cables (#66) c530587
Commits on Jul 18, 2020
Initial version of pcied (#60) e665ee8
[xcvrd] Return non-zero error code on SFP error (#67) 4f42a79
Commits on Jul 19, 2020
[README.md] Add LTGM badges (#69) 23757a3
Remove unused imports (#70) 029d5a5 

Signed-off-by: Nazarii Hnydyn <nazariig@mellanox.com>
2020-07-24 19:24:19 -07:00
Joe LeVeque
639ad1895d
[sonic-utilities] Update submodule (#5023)
* src/sonic-utilities 82dfe50...995cf39 (1):
  > [config] Restart telemetry service upon config (re)load (#992)
2020-07-23 00:42:23 -07:00
shi-su
adacf1addd
[sonic-swss-common] Update submodule (#5020)
Update the sonic-swss-common submodule. The following are the commits in the submodule.

Fix sai api loglevel
ed9c497316e73bc5d4a6dfbe9f3507d5e92c15f3

Add support for attribute capability query in lua script
f58ea1e7a692eadd8695b4dcf89290c5e9018aae

Copp changes
4e50be7728d1e68582ac4dc369323ec5ab7b81dd

fix pytest for python3
c76d3b3a6dacae7fde14622c41e41b717876924a

use sysconfig instead of distutils.sysconfig
1772581f9b9f25e5ab2b790d7d517ea2b2010a78

CONFIG_DB table name for BUM Storm-control feature
c39c958bea445e650353651fcbae5c228114f86d

Fine Grained ECMP schema changes
1974d2e1547464a3b0279b5d63fc40eda94fa780
2020-07-22 22:00:20 -07:00
Joe LeVeque
2890670de2
[sonic-telemetry][sonic-mgmt-common] Update submodules (#4986)
* src/sonic-telemetry fa8d498...3bd7ca3 (4):
  > Update gnmi deps (#40)
  > [testdata] Update SFP keys to align with new standard (#39)
  > Fixed the parameters for subscribe APIs (#38)
  > Azure ro mode (#34)

* src/sonic-mgmt-common 444aa9a...cc01ce4 (4):
  > Make gnmi dep version the same as in telemetry repo (#17)
  > Cleanup translib and cvl go test cases (#13)
  > Package update and enhancements/fixes in YGOT, and Request Binder (#12)
  > Translib phase I changes (#11)

Note: sonic-telemetry submodule update is dependent upon sonic-mgmt-common submodule update, thus updating both in this patch
2020-07-22 11:51:15 -07:00
anish-n
da017f4ec9
[bgpcfgd]: Add Vlan prefix list to the FRR templates (#5005)
add the Vlan prefix list to the FRR templates
2020-07-21 19:26:19 -07:00
anish-n
07d559103f
[bgpcfgd]: Add fix to bgpcfgd to ignore NEIGHBOR_METADATA entries for dynamic peers (#5008)
This fix removes the requirement to have a NEIGHBOR_METADATA for dynamic peers. The change is made since it is not necessary for NEIGHBOR_METADATA entries be present for the dynamic neighbors
2020-07-21 02:55:42 -07:00
Joe LeVeque
6ef199ffdd
[sonic-utilities] Update submodule (#5004)
* src/sonic-utilities a23479e...82dfe50 (3):
  > [sonic-installer] Update group name for 'verify-next-image' subcommand (#/995)
  > [acl_loader] Fix bugs in acl_loader (#991)
  > [show] Add support for QSFP-DD cables on 'show' command (#989)

This submodule update resolves https://github.com/Azure/sonic-utilities/issues/997 by including PR https://github.com/Azure/sonic-utilities/pull/995
2020-07-20 11:21:24 -07:00
lguohan
c6027ab46f
[submodule]: update sonic-swss (#5002)
* d2bab10 2020-07-19 | [vstest]: use BytesIO for file operations [lguohan]
* 982c9a3 2020-07-18 | [vstest]: fix vstest for python3 (#1354) [lguohan]
* ffa0dc3 2020-07-16 | [vstest]: clean up processes in server namespace at start (#1353) [lguohan]
* b16368c 2020-07-15 | [aclorch.cpp] Handle all the ACL redirect requests in AclRuleL3::validateAddAction()  (#1278) [madhanmellanox]
* 310e0aa 2020-07-15 | [portsorch,intfsorch] add port, rif rates FC groups (#1201) [Mykola F]
* 5ddea37 2020-07-09 |  [NAT]: Update NAT conntrack entries from natmgr instead of natorch (#1274) [Akhilesh Samineni]
* 94c622f 2020-07-07 | [aclorch] Use IPv6 Next Header internally for protocol number on MLNX platform (#1343) [Danny Allen]
*   82d36c4 2020-07-07 | support swss vstest in python3 [lguohan]
|\
| * ff04e6d 2020-06-27 | [doc]: update instruction to run vstest under python3 [Guohan Lu]
| * c90b281 2020-07-05 | [vstest]: reuse dvs setReadOnlyAttr in test_crm.py [Guohan Lu]
| * 8807b40 2020-07-05 | [vstest]: fix string format compatibility issue for python2 and swig [Guohan Lu]
| * 26efbcf 2020-07-04 | [vstest]: change float division to integer division [Guohan Lu]
| * 6adaf2e 2020-07-04 | [vstest]: change time.clock() to time.time() [Guohan Lu]
| * 9c71203 2020-07-04 | [vstest]: let redis decodes the response to be string instead of bytes [Guohan Lu]
| * c7c63ee 2020-06-27 | [vstest]: change from platform to distro [Guohan Lu]
| * d7ff1ad 2020-06-27 | [vstest]: upgrade swss vs tests to python3 [Guohan Lu]
* | 2ebd44e 2020-07-03 | [sonic-swss] ARMHF warning fixes (#1325) [arheneus@marvell.com]
* | 10ad70c 2020-07-02 | [swss] Add support for gearbox phys (#1321) [Syd Logan]

Signed-off-by: Guohan Lu <lguohan@gmail.com>
2020-07-20 02:59:55 -07:00
vdahiya12
c9983df062
[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-19 20:58:52 -07:00
Stepan Blyshchak
16a37d8c17
[dockers] update mellanox syncd and pmon to buster (#4818)
Upgrade to libsensors5

Updated sonic-sairedis pointer:
    d54bfb4 [SAI] update pointer (#636)
    1885a8c [syncd] Fix notification on shutdown request (#635)
    9e57ba2 Fixing hostif For Genetlink host interfaces (#633)
    449a092 sonic-sairedis: Add support to sonic-sairedis for gearbox phys (#632)

Signed-off-by: Stepan Blyschak <stepanb@mellanox.com>
2020-07-18 03:46:15 -07:00
Joe LeVeque
04615ca98c
[sonic-snmpagent][sonic-py-swsssdk] Update submodules (#4968)
* src/sonic-snmpagent 89b7b2c...c702a57 (7):
  > Revert "[rfc1213] Interface MIB add l3 vlan interfaces & aggregate rif counters (#133)" (#151)
  > Update transceiver info DB key names (#146)
  > Fix LGTM reported alert of PR#141 (#142)
  > [Namespace] Fix interfaces counters in InterfacesMIB RFC 2863 (#141)
  > [Namespace]: Fix SNMP AgentX  socket connection timeout when using Namespace.get_all()  (#140)
  > [rfc1213] Interface MIB add l3 vlan interfaces & aggregate rif counters (#133)
  > Fix undefined variable and warning message (#134)

* src/sonic-py-swsssdk a83366e...2df4f40 (3):
  > Allowing TCP connections with namespace as well. (#81)
  > [port_util] add get_rif_port_map, get_vlan_interface_oid_map (#78)
  > Updates to the namespace API's for test_moduleLoad.py (#77)

Note that sonic-snmpagent submodule update is dependent upon sonic-py-swsssdk update, so updating both submodules in this PR.
2020-07-17 11:20:39 -07:00
joyas-joseph
18bfa6df08
[docker-nat]: upgrade docker-nat to buster (#4943)
move iptables to 1.8.2-4 (version in buster)

Signed-off-by: Joyas Joseph <joyas_joseph@dell.com>
2020-07-15 22:48:09 -07:00
Joe LeVeque
f929b00eaa
[sonic-utilities] Update submodule (#4963)
* src/sonic-utilities 9715244...a23479e (7):
  > [sonic-installer] Hyphens instead of underscores in command and subcommands (#983)
  >  Fix the None Type Exception when Interface Table does not exist (cold boot) as part of db migration (#986)
  > Support to verify reboot for secure boot (#979)
  > [filter-fdb] Fix For Vlan Defined With No CIDR (#976)
  > Intf table migration for APP_DB entries during warmboot (#980)
  > Enable HW watchdog before fast-reboot (#977)
  > [Multi NPU] Time Improvements to the config reload/load_minigraph commands  (#917)
2020-07-14 11:56:54 -07:00
Prince Sunny
a0236f7cbb [bgpcfgd] - Fix a key error during delete (#4946) 2020-07-12 18:08:52 +00:00
lguohan
5a0a466768 [submodule]: update sonic-linux-kernel (#4940)
d155c1e 2020-07-10 | use kstrtol_from_user in dni_dps460 driver (#151)

Signed-off-by: Guohan Lu <lguohan@gmail.com>
2020-07-12 18:08:52 +00:00
Sujin Kang
b4452edb8a 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-07-12 18:08:52 +00:00
Venkatesan Mahalingam
7d003c3518 [TACACS+]: Add support to specify source address for TACACS+ (#4610)
This pull request was cherry picked from "#1238" to resolve the conflicts.

- Why I did it
Add support to specify source address for TACACS+
- How I did it
Add patches for libpam-tacplus and libnss-tacplus. The patches parse the new option 'src_ip' and store the converted addrinfo. Then the addrinfo is used for TACACS+ connection.
Add a attribute 'src_ip' for table "TACPLUS|global" in configDB
Add some code to adapt to the attribute 'src_ip'.
- How to verify it
Config command for source address PR in sonic-utilities
config tacacs src_ip <ip_address>

- Description for the changelog
Add patches to specify source address for the TACACS+ outgoing packets.

- A picture of a cute animal (not mandatory but encouraged)

**UT logs: **

UT_tacacs_source_intf.txt
2020-07-12 18:08:51 +00:00
lguohan
1dcf8ec04f [kernel]: upgrade linux kernel to 4.9.118 (#4897)
upgrade kernel to latest maintenance version 4.9.118

Signed-off-by: Guohan Lu <lguohan@gmail.com>
2020-07-12 18:08:51 +00:00
arlakshm
97fa2c087b "[config]: Multi ASIC loopback changes (#4895)
Resubmitting the changes for (#4825) with fixes for sonic-bgpcdgd test failures
Signed-off-by: Arvindsrinivasan Lakshmi Narasimhan <arlakshm@microsoft.com>
2020-07-12 18:08:51 +00:00
lguohan
e2e57d32d6 [docker-orchagent]: upgrade docker-orchagent to buster (#4889)
also update submodule

* 01f810f 2020-07-02 | fix compiling issue for gcc8.3 (#1339) [lguohan]
* 9b13120 2020-07-03 | Fix in script to avoid orchagent crash when port down followed by fdb delete (#1340) [rupesh-k]
* 9b01844 2020-07-01 | [qosorch] Update QoS scheduler params for shaping features (#1296) [Michael Li]
* 86b5e99 2020-07-02 | [mirrororch] Port Mirroring implementation (#1314) [rupesh-k]
* c05601c 2020-06-24 | [portsyncd]: add debug message if a port cannot be found in port able (#1328) [lguohan]
* a0b6412 2020-06-23 | COPP_DEL_fix: DEL for one trap group from SONIC is resetting all the trap IDs (#1273) [SinghMinu]

Signed-off-by: Guohan Lu <lguohan@gmail.com>
2020-07-12 18:08:51 +00:00
Joe LeVeque
856f117fd3 [sonic-platform-daemons] Update submodule (#4887)
* src/sonic-platform-daemons abe115e...9b8bfa1 (1):
  > [xcvrd] Update key names in 'get_media_settings_value()' (#63)
2020-07-12 18:08:51 +00:00
lguohan
58632e6e83 [docker-orchagent]: make build depends only on sairedis package (#4880)
make swss build depends only on libsairedis instead of syncd. This allows to build swss without depending
on vendor sai library.

Currently, libsairedis build also buils syncd which requires vendor SAI lib. This makes difficult to build
swss docker in buster while still keeping syncd docker in stretch, as swss requires libsairedis which also
build syncd and requires vendor to provide SAI for buster. As swss docker does not really contain syncd
binary, so it is not necessary to build syncd for swss docker.

* [submodule]: update sonic-sairedis

* ccbb3bc 2020-06-28 | add option to build without syncd (HEAD, origin/master, origin/HEAD) [Guohan Lu]
* 4247481 2020-06-28 | install saidiscovery into syncd package [Guohan Lu]
* 61b8e8e 2020-06-26 | Revert "sonic-sairedis: Add support to sonic-sairedis for gearbox phys (#624)" (#630) [Danny Allen]
* 85e543c 2020-06-26 | add a README to tests directory to describe how to run 'make check' (#629) [Syd Logan]
* 2772f15 2020-06-26 | sonic-sairedis: Add support to sonic-sairedis for gearbox phys (#624) [Syd Logan]

Signed-off-by: Guohan Lu <lguohan@gmail.com>
2020-07-12 18:08:51 +00:00
Guohan Lu
f8da3e4c69 Revert "[config]: Loopback Interface changes for multi ASIC devices (#4825)"
This reverts commit cae65a451c.
2020-07-12 18:08:51 +00:00
arlakshm
002335a3d5 [config]: Loopback Interface changes for multi ASIC devices (#4825)
* Loopback IP changes for multi ASIC devices
multi ASIC will have 2 Loopback Interfaces

- Loopback0 has globally unique IP address, which is advertised by the multi ASIC device to its peers.
This way all the external devices will see this device as a single device.
- Loopback4096 is assigned an IP address which has a scope is within the device. Each ASIC has a different ip address for Loopback4096. This ip address will be used as Router-Id by the bgp instance on multi ASIC devices.

This PR implements this change for multi ASIC devices

Signed-off-by: Arvindsrinivasan Lakshmi Narasimhan <arlakshm@microsoft.com>
2020-07-12 18:08:51 +00:00
pavel-shirshov
2b137fb540 Tests of FRR templates which rendered by sonic-cfggen (#4875)
* Tests of FRR templates which rendered by sonic-cfggen
2020-07-12 18:08:51 +00:00
pavel-shirshov
7d0ea7383d [pfx_filter]: Add a prefix mask by default in pfx_filter, when there is no one (#4860)
If some table with a list of tuples (interface name, ip prefix) has ip prefixes without a mask length, it will cause issues in SONiC. For example quagga and frr will treat ipv4 address without a mask, so "10.20.30.40" address will be treated as "10.0.0.0/8", which is dangerous.

The fix here is that when pfx_filter get a tuple (interface name, ip prefix), where the ip prefix doesn't have prefix mask length, add a mask by default: "/32 for ipv4 addresses, /128 for ipv6 addresses".

Co-authored-by: Pavel Shirshov <pavel.contrib@gmail.com>
2020-07-12 18:08:51 +00:00
Akhilesh Samineni
eed16e9618 [docker-nat]: Updated the NAT iptables patch for 4.19 buster (#4843)
Updated the NAT iptables patch for 4.19 buster

Depends on PR : Azure/sonic-linux-kernel#147

1 Known issue:

With both NAT patch files for 4.19 buster kernel, seeing 1 display issue in iptables like explained below

On Docker NAT, iptables supported version is 1.6.0 and on base OS it’s 1.8.2. So seeing an display issue of which fullcone option is not showing in version 1.8.2 iptables output and no issues in functionality.

Display issue – For example of comparsion:

NAT Docker:
root@sonic:/home/admin# docker exec -it nat bash
root@sonic:/# iptables -t nat -nvL
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 DNAT all -- * * 0.0.0.0/0 0.0.0.0/0 to:1.1.1.1 fullcone

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination

Chain OUTPUT (policy ACCEPT 30 packets, 2749 bytes)
pkts bytes target prot opt in out source destination

Chain POSTROUTING (policy ACCEPT 30 packets, 2749 bytes)
pkts bytes target prot opt in out source destination
root@sonic:/#

Base OS:
root@sonic:/home/admin# iptables-legacy -t nat -nvL
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
1 36 DNAT all -- * * 0.0.0.0/0 0.0.0.0/0 to:1.1.1.1

Chain INPUT (policy ACCEPT 1 packets, 36 bytes)
pkts bytes target prot opt in out source destination

Chain OUTPUT (policy ACCEPT 41 packets, 3572 bytes)
pkts bytes target prot opt in out source destination

Chain POSTROUTING (policy ACCEPT 41 packets, 3572 bytes)
pkts bytes target prot opt in out source destination
root@sonic:/home/admin#

To fix this issue, iptables need to update from 1.6.0 to 1.8.2 version and have to update the NAT docker from stretch to buster. Will raise a new PR with this.

Signed-off-by: Akhilesh Samineni akhilesh.samineni@broadcom.com

Signed-off-by: Akhilesh Samineni <akhilesh.samineni@broadcom.com>
2020-07-12 18:08:51 +00:00
Mahesh Maddikayala
74389cb402 [sonic-sairedis] sonic-sairedis submodule update (#4847)
* sonic-sairedis submodule update
* Update BRCM SAI to 3.7.5.1
2020-07-12 18:08:51 +00:00
Volodymyr Boiko
77a1bc25de [sonic-platform-common] Update submodule (#4871)
* src/sonic-platform-common 82bbeab...42781ff (1):
  > [SfpBase] Fix key name typo in docstring (#99)

Signed-off-by: Volodymyr Boyko <volodymyrx.boiko@intel.com>
2020-07-12 18:08:51 +00:00
SuvarnaMeenakshi
ab2177b4a9
[systemd-generator]: Fix dependency update for multi-asic platform (#4820)
* [systemd-generator]: Fix the code to make sure that dependencies
of host services are generated correctly for multi-asic platforms.
Add code to make sure that systemd timer files are also modified
to add the correct service dependency for multi-asic platforms.

Signed-off-by: SuvarnaMeenakshi <sumeenak@microsoft.com>

* [systemd-generator]: Minor fix, remove debug code and
remove unused variable.
2020-06-29 09:39:23 -07:00
Joe LeVeque
ced0f7ba3d
[sonic-platform-common][sonic-platform-daemons][sonic-utilities] Update submodules (#4852)
* src/sonic-platform-common 75698a8...82bbeab (9):
  > [sfputil] Make SfpUtilHelper.get_physical_to_logical noexcept as in SfpUtilBase (#96)
  > [sfp_base] Update return value documentation of channel-specific methods (#98)
  > [sfp] Tweak key names of some transceiver info fields (#97)
  > fix typo:  portconfig.ini to port_config.ini (#94)
  > [chassis_base] Add platform API support for system LED (#91)
  > Add PCIe check commad  (#64)
  > [sfputilbase.py] Don't try to print EEPROM sysfs file name if we failed to read from it (#81)                                                                                    
  > [sfputilbase | sfputilhelper] Add support of platform.json (#72)
  > [eeprom] Add try-except to catch the IOError (#85)

* src/sonic-platform-daemons 0f4fd83...abe115e (2):
  > [xcvrd] Tweak some transceiver info key names (#62)
  > [psud][thermalctld] Always get fan/PSU LED status from platform API to avoid status inconsistencies (#59)                                                                        

* src/sonic-utilities fd7781b...16a33f2 (9):
  > [config] Fix syntax error (#966)
  > [config] Fix indentation level in _get_disabled_services_list() (#965)
  > a4e64d1 [sonic_installer] Refactor sonic_installer code (#953)
  > 90efd62 [Show | Command Reference] Add Port breakout Show Command (#859)
  > [sfpshow][mock_state_db] Tweak key names of some transceiver info fields (#958)
  > [show] Add missing verbose option to "show line" (#961)
  > [filter-fdb] Check VLAN Presence When Filter FDB (#957)
  > [master]fix #4716 show ipv6 interfaces neighbor_ip is N/A issue (#948)
  > Fix for command. show interface transceiver eeprom -d Ethernet (#955)

Note: sonic-utilities update fixes #4716
2020-06-27 22:57:26 -07:00
pavel-shirshov
1eb3dfe541
[docker-teamd]: Introducing tlm_teamd: telemetry for teamd (#4824)
**- What I did**
1. Updated submodule sonic-swss to bring tlm_teamd to the buildimage.
2. Updated supervisord for the teamd
3. Updated critical process list (not sure that tlm_teamd is critical for now)

**- How to verify it**
Build an image and run. Check that tlm_teamd is running and STATE_DB has information in the LAG_INTERFACE, and :LAG_MEMBER_INTERFACE
```
admin@sonic:~$ redis-cli -n 6 hgetall 'LAG_TABLE|PortChannel16'
 1) "state"
 2) "ok"
 3) "team_device.ifinfo.dev_addr"
 4) "4c:76:25:f5:48:80"
 5) "setup.kernel_team_mode_name"
 6) "loadbalance"
 7) "team_device.ifinfo.ifindex"
 8) "6"
 9) "runner.fast_rate"
10) "false"
11) "runner.active"
12) "true"
13) "setup.pid"
14) "35"
15) "runner.fallback"
16) "false"
```

```
admin@sonic:~$ redis-cli -n 6 hgetall 'LAG_MEMBER_TABLE|PortChannel16|Ethernet16'
 1) "runner.selected"
 2) "true"
 3) "runner.aggregator.selected"
 4) "true"
 5) "runner.aggregator.id"
 6) "26"
 7) "runner.actor_lacpdu_info.state"
 8) "61"
 9) "runner.state"
10) "current"
11) "runner.actor_lacpdu_info.system"
12) "4c:76:25:f5:48:80"
13) "runner.partner_lacpdu_info.state"
14) "61"
15) "link.up"
16) "true"
17) "ifinfo.dev_addr"
18) "4c:76:25:f5:48:80"
19) "ifinfo.ifindex"
20) "26"
21) "link_watches.list.link_watch_0.up"
22) "true"
23) "runner.actor_lacpdu_info.port"
24) "17"
25) "runner.partner_lacpdu_info.port"
26) "1"
27) "runner.partner_lacpdu_info.system"
28) "52:54:00:ff:34:1b"
```
2020-06-27 01:22:23 -07:00
Qi Luo
6849a0351c
[redis] Install vanilla redis packages for Buster and Stretch; upgrade Buster to 6.0.5 (#4732)
upgrade redis server to 5:6.0.5-1~bpo10+1
2020-06-27 01:17:20 -07:00
lguohan
c79783003d
[submodule]: update sonic-linux-kernel (#4856)
* c60b1f4 2020-06-26 | e1000: Do not perform reset in reset_task if we are already down (#148) (HEAD -> master, origin/master, origin/HEAD) [lguohan]
* c6aeedd 2020-06-25 | Updated NAT kernel patch for 4.19 buster (#147) [Akhilesh Samineni]

Signed-off-by: Guohan Lu <lguohan@gmail.com>
2020-06-26 23:59:22 -07:00
pavel-shirshov
d592e9b0f8
Tests for bgpcfgd templates (#4841)
* Tests for bgpcfgd templates
2020-06-25 14:54:02 -07:00
kktheballer
8339d5f4b1
[minigraph.py]: Add Tagged Vlan support in Minigraph (#4731)
To enable tagged vlan support by minigraph parser. This enables us to generate a config_db file that will enable SONiC device to operate using tagged and untagged vlan.
2020-06-23 16:36:47 -07:00
lguohan
1e81e1da8e
[submodule]: update sonic-swss-common (#4826)
* 77d3417 2020-06-22 | [sonic-swss-common] ARMHF warning fixes (#352) (HEAD -> master, origin/master, origin/HEAD) [arheneus@marvell.com]
* da8e264 2020-06-21 | [python3]: build python3-swsscommon for python3 support (#355) [lguohan]
* 292b08a 2020-06-16 | Changes to support SONiC Gearbox Manager (#347) [Syd Logan]
* 58ca4d9 2020-06-10 | Add missed BGP tables into the schema (#351) [pavel-shirshov]
* cddfc4e 2020-06-09 | [loglevel] Avoid accessing null ptr in swssloglevel (#349) [Stephen Sun]
* 8fce898 2020-06-08 | [schema] update schema with rates and utilization table names (#330) [Mykola F]

Signed-off-by: Guohan Lu <lguohan@gmail.com>
2020-06-22 19:46:52 -07:00
Sachin Holla
0d809d0d59
Mgmt reorg -- submodule and build rules for sonic-mgmt-common (#4765)
- Why I did it
New repo sonic-mgmt-common is introduced for the common translib related code. This commit adds build rules for this new repo.

- How I did it

Added sonic-mgmt-common submodule
Added build rules for the new sonic-mgmt-common repo. It creates two deb packages -- sonic-mgmt-common_1.0.0_{arch}.deb and sonic-mgmt-common-codegen_1.0.0_{arch}.deb. Package cache is enabled.
Added dependency on sonic-mgmt-common for mgmt-framework and telemetry debs and dockers.
- How to verify it
Full build and incremental builds
Basic ACL and interface opreations through REST, KLISH CLI and gNMI

- Description for the changelog
Git submodule and build rules for the new sonic-mgmt-common repo.
2020-06-22 16:01:55 -07:00
joyas-joseph
b48d274f69
[docker-dhcp-relay]: convert dhcp-relay docker to buster (#4671)
Upgrade isc-dhcp to 4.4.1-2 (buster version)
Update libevent dependency for dhcpmon to 2.1-6

Signed-off-by: Joyas Joseph <joyas_joseph@dell.com>
2020-06-22 15:34:21 -07:00
Samuel Angebault
67987e9c0e
[secureboot] Add secureboot support for Arista devices (#4741)
* Add secureboot support in boot0
* Initramfs changes for secureboot on Aboot devices
* Do not compress squashfs and gz in fs.zip
It doesn't make much sense to do so since these files are already
compressed.
Also not compressing the squashfs has the advantage of making it
mountable via a loop device.
* Add loopoffset parameter to initramfs-tools
2020-06-22 09:30:31 -07:00
Olivier Singla
68576bc2f9
[kerne]: kernel update from 4.19.0-6 to 4.19.0-6-2 (#4711) 2020-06-21 06:41:23 -07:00
Nazarii Hnydyn
697193543f
[submodule]: Advance sonic-utilities submodule. (#4785)
Signed-off-by: Nazarii Hnydyn <nazariig@mellanox.com>
2020-06-21 15:51:29 +03:00
pavel-shirshov
0d863c39ac
[bgpcfgd]: make a package for bgpcfgd (#4813) 2020-06-20 21:01:24 -07:00
abdosi
531d1ad89a
[Submodule update] sonic-dbsyncd (#4801)
lldp: For multi-npu platforms make sure to add Backplane Interface also
as Interface Match List.
2020-06-19 11:03:02 -07:00
Sangita Maity
7f9523887d
[buildImage] Add support of platform.json parsing to portconfig.py file (#3909)
**- What I did**
Add support of **platform.json** parsing to **portconfig.py** file which is being used by **_sonic-cfggen_** and ***minigraph.py*** file under ***src/sonic-config-engine*** folder to get port config via get_port_config  function.

**- How I did it**

1.  **portconfig.py** file will first check whether the **platform.json** file is there or not. if not then whether port_config.ini file is there or not. Modified **get_port_config_file_name** for this purpose.
2. Added two separate functions i.e. **parse_platform_json_file**  to get port attributes from **platform.json** and **gen_port_config** to generate port attributes.
3. Added another two functions i.e  get_breakout_mode parse_breakout_mode to get breakout mode and parse breakout mode from platform.json respectively.

**- How to verify it**

rebuilt "sonic_config_engine-1.0" wheel package with all the test cases.All the below-mentioned test cases passed.

```
# Check whether all interfaces present or not as per platform.json
def test_platform_json_interfaces_keys(self):
       
# Check specific Interface with it's proper configuration as per platform.json
def test_platform_json_specific_ethernet_interfaces(self):

# Check all Interface with it's proper configuration as per platform.json
def test_platform_json_all_ethernet_interfaces(self):
```

Signed-off-by: Sangita Maity <sangitamaity0211@gmail.com>
2020-06-18 16:26:09 -07:00
Qi Luo
edf3160224
Fix bug: check port alias even when port_config_file parameter is not provided (#4787) 2020-06-17 12:12:07 -07:00
Kebo Liu
91a1f131a1
[Mellanox] Update hw-mgmt package to V.7.0010.1000 for master (#4687)
* [Mellanox] Update hw-mgmt package to V.7.0010.1000

* update sonic-linux-kernel pointer to pick up new patch
2020-06-16 21:01:41 +03:00
Prince Sunny
734b1c6969
Submodule update - sonic-restapi (#4749) 2020-06-15 15:08:22 -07:00
Joe LeVeque
0a750a6b54
[sonic-utilities] Update submodule (#4770)
* src/sonic-utilities 5765570...a21e01a (13):
  > [config] Don't attempt to restart disabled services (#944)
  > [crm] Use swsssdk API instead of redis-cli for getting keys from redis DB (#943)
  > Fixed fast-reboot for BFN platform (#871)
  > [sfputil] Add support of platform.json (#767)
  > [show] Add support for SONiC Gearbox Manager via new gearboxutil utility (#931)
  > [warm-reboot]: added pre-check for ISSU file (#915)
  > Add_intf_range (#913)
  > add fec config/show option (#764)
  > Make sure db_migrator is run after all config are loaded during (#926)
  > Changes to make lldp show command for multi-npu platforms. (#914)
  > [showtech]: add knet dump information in show tech (#925)
  > Vnet alias mapping (#924)
  > Revert the change to kdump reboot (#916)
2020-06-13 13:32:13 -07:00
Dong Zhang
ddd60bfec1
[MultiDB] Add REDIS_TIMEOUT_MSECS back which is removed by mistake (#4757) 2020-06-11 12:51:42 -07:00
Danny Allen
814cbe0066
[submodule] Update swss submodule (#4737)
Signed-off-by: Danny Allen <daall@microsoft.com>
2020-06-10 16:39:06 -07:00
Joe LeVeque
c6365e7abe
Reorganize .gitignore files (#4707)
- Add .gitignore files in each subdirectory of src/, so as to reduce the size of the .gitignore file in the project root, and also make it easier to maintain (i.e., if a directory in src/ is removed, there will not be outdated entries in the root .gitignore file.

- Also add missing .gitignore entries and remove outdated entries and duplicates.
2020-06-09 21:04:55 -07:00
Joe LeVeque
9b27efdcc2
[dockers] Rename 'docker-lldp-sv2' to 'docker-lldp' (#4700)
The -sv2 suffix was used to differentiate SNMP Dockers when we transitioned from "SONiCv1" to "SONiCv2", about four years ago. The old Docker materials were removed long ago; there is no need to keep this suffix. Removing it aligns the name with all the other Dockers.
2020-06-09 09:09:56 -07:00
SuvarnaMeenakshi
95d51bd4a0
[submodule update]: Advance sonic-snmpagent and sonic-py-swsssdk (#4713)
Update sonic-snmpagent submodule with PRs:
89b7b2c  [Multi-asic]: Namespace support for LLDP and Sensor tables (#131)
fcb8955 Simplify test code (#132)
a677876 [Multi-asic]: Support multi-asic platform (#126)

update sonic-py-swsssdk submodule with PRs:
132f8d5  [MultiDB]: use python class composition to avoid confusion in base class (#74)

Signed-off-by: SuvarnaMeenakshi <sumeenak@microsoft.com>
2020-06-09 09:09:14 -07:00
Dong Zhang
7525fea666
[MultiDB] daemon base should use multiDB DBConnector (#4549)
* [MultiDB] daemon base should use multiDB DBConnector
* [sonic-platform-daemon] update submodule for multiDB changes
2020-06-08 13:36:56 -07:00
Mahesh Maddikayala
d491c02294
[submodule]: update submodules sonic-sairedis, sonic-swss-common (#4722)
[sonic-sairedis]
* 322dd01 2020-06-05 | Fix debian/rules makefile: use shell commands instead of dollar replacements (#621) (HEAD -> master, origin/master, origin/HEAD) [Qi Luo]
* 6d55a75 2020-06-04 | Update SAI pointer to 1.6.1 (#620) [Mahesh Maddikayala]
* d6c40e5 2020-06-01 | [MultiDB] use get API to obtain dbid instead of hardcode value (#618) [Dong Zhang]
* bd132ec 2020-06-01 | Add synchronous mode to sairedis library (#617) [Kamil Cudnik]
* 0a77a09 2020-06-01 | [meta] Fix tests to be backward compatible (#619) [Kamil Cudnik]

[sonic-swss-common]
* 35bc01a 2020-06-05 | EVPN VXLAN DB support (#339) (HEAD -> master, origin/master, origin/HEAD) [Rajesh Sankaran]
* 2c7354b 2020-05-30 | Add modifyRedis flag to consumer table object (#344) [Kamil Cudnik]
* 5a32636 2020-05-27 | Fix memory leak in pyext when Selectable is returned to Python (#343) [pavel-shirshov]
2020-06-08 09:48:10 -07:00
Sangita Maity
65fa874ec5
[test] Adding platform.json configuration file unit test (#3911)
- What I did
In order to allow the SONiC community to check in platform capability file i.e. platform.json
file directly under device folder. We need to add this test to make sure the contents of the this file is compliant with platform capability design specified in DPB HLD doc

- How I did it
Added platformJson_checker.py file in Test folder.

Signed-off-by: Sangita Maity <sangitamaity0211@gmail.com>
2020-06-04 16:11:15 -07:00
Sumukha Tumkur Vani
3e110fb0c1
Update sonic-restapi (#4692)
Auto restart restapi server after cert rollover
2020-06-02 15:35:26 -07:00
Mahesh Maddikayala
fb6916f88b
Update packages and pointers to use SAI1.6 headers. (#4597)
* Update sonic-sairedis (sairedis with SAI 1.6 headers)

* Update SAIBCM to 3.7.4.2, which is built upon SAI1.6 headers

* missed updating BRCM_SAI variable, fixed it

* Update SAIBCM to 3.7.4.2, updated link to libsaibcm

* [Mellanox] Update SAI (release:v1.16.3; API:v1.6)

Signed-off-by: Volodymyr Samotiy <volodymyrs@mellanox.com>

* Update sonic-sairedis pointer to include SAI1.6 headers

* [Mellanox] Update SDK to 4.4.0914 and FW to xx.2007.1112 to match SAI 1.16.3 (API:v1.6)

Signed-off-by: Volodymyr Samotiy <volodymyrs@mellanox.com>

* ensure the veth link is up in docker VS container

* ensure the veth link is up in docker VS container

* [Mellanox] Update SAI (release:v1.16.3.2; API:v1.6)

Signed-off-by: Volodymyr Samotiy <volodymyrs@mellanox.com>

* use 'config interface startup' instead of using ifconfig command, also undid the previous change'

Co-authored-by: Volodymyr Samotiy <volodymyrs@mellanox.com>
2020-05-30 14:23:34 -07:00
Joe LeVeque
1e369b0998
[systemd] Relocate all SONiC unit files to /usr/lib/systemd/system (#4673)
This will allow us to disable services and have it persist across reboots by using the `systemctl mask` operation
2020-05-30 13:46:44 -07:00
Qi Luo
65e7a84509
[baseimage]: Build and install redis-dump-load Python 3 package in host image (#4661)
Fix #4656
2020-05-30 05:52:27 -07:00
shlomibitton
8cfb3a0a22
[submodule update] sonic-utilities (#4648)
Add 'hw-management-generate-dump.sh' to 'show techsupport' command (#923)
Add common PCIe diag tool (#771)
Multi-asic changes for config bgp commands and utilities. (#910)
Loopback interface configuration CLIs (#879)

Signed-off-by: Shlomi Bitton <shlomibi@mellanox.com>
2020-05-28 22:23:21 -07:00
Praveen Chaudhary
87201929d3
[sonic-yang-mgmt/setup.py]: Removing the part where build dependencies are installed in setup.py. (#4657)
Changes:
-- Removing the part where build dependencies are installed in setup.py.
-- Adding build dependencies in corresponsing rules\..*.mk file.

Signed-off-by: Praveen Chaudhary pchaudhary@linkedin.com
2020-05-28 12:16:25 -07:00
Dong Zhang
d7df56872b
[sonic-quagga] update submodule with multiDB Changes (#4557) 2020-05-27 11:12:33 -07:00
zoe-kuan
fa809c86dc
[platform/delta]: Add a new supported platform, Delta-agc032 (#4602)
* [platform]: Add a new supported platform, Delta-agc032

Switch Vendor: Delta
Switch SKU: Delta-agc032
CPU: BROADWELL-DE
ASIC Vendor: Broadcom
Switch ASIC: Tomahawk3, BCM56980
Port Configuration: 32x400G + 2x10G

- What I did
Add a new Delta platform Delta-agc032.

- How I did it
Add files by following SONiC Porting Guide.

- How to verify it
1. decode-syseeprom
2. sensors
3. psuutil
4. sfputil
5. show interface status
6. bcmcmd

Signed-off-by: zoe-kuan <ZOE.KUAN@deltaww.com>
2020-05-27 09:33:02 -07:00
rajendra-dendukuri
a406fdb57c
[sonic-py-swsssdk] Advance submodule (#4636)
**- Why I did it**
Advance sonic-py-swsssdk submodule to fix #4632

**- How I did it**
In py3, the response from redis connector is encoded as byte array. They
need to be decoded before accessing them as strings.

Use following commands to test

sonic-db-cli CONFIG_DB "keys *"
sonic-db-cli CONFIG_DB "hget PORT|Ethernet0 admin_status"

**- How to verify it**

sonic-db-cli CONFIG_DB "keys *"
sonic-db-cli CONFIG_DB "hget PORT|Ethernet0 admin_status"

Signed-off-by: Rajendra Dendukuri <rajendra.dendukuri@broadcom.com>
2020-05-27 03:15:43 -07:00
Sabareesh-Kumar-Anandan
17904969b6 [sonic-config-engine][marvell] read mac address fix (#4649)
Signed-off-by: Sabareesh Kumar Anandan <sanandan@marvell.com>
2020-05-27 02:02:19 -07:00
Junchao-Mellanox
bf54f48df3
[thermalctld] Update submodule pointer for sonic-platform-daemons (#4637) 2020-05-26 11:04:21 -07:00
Sumukha Tumkur Vani
40481f01af
Read cloudtype info from minigraph (#4642) 2020-05-26 10:59:56 -07:00
Guohan Lu
2e42a4ba0f [docker-dhcp-relay]: use service dependency in supervisord to start services 2020-05-22 11:01:28 -07:00
Sumukha Tumkur Vani
2f7924b196
Update submodule [sonic-restapi] (#4630) 2020-05-22 09:42:46 -07:00
Praveen Chaudhary
0ccdd70671
[sonic-yang-mgmt]: sonic-yang-mgmt package for configuration validation. (#3861)
**- What I did**

#### wheel package Makefiles

- wheel package Makefiles for sonic-yang-mgmt package.

#### libyang Python APIs:
- python APIs based on libyang
- functions to load/merge yang models and Yang data files
- function to validate data trees based on Yang models
- functions to merge yang data files/trees
- add/set/delete node in schema and data trees
- find data/schema nodes from xpath from the Yang data/schema tree in memory
- find dependencies
- dump the data tree in json/xml

#### Extension of libyang Python APIs:
-- Cropping input config based on Yang Model.
-- Translate input config based on Yang Model.
-- rev Translate input config based on Yang Model.
-- Find xpath of port, portleaf and a yang list.
-- Find if node is key of a list while deletion if yes, then delete the parent.

Signed-off-by: Praveen Chaudhary pchaudhary@linkedin.com
Signed-off-by: Ping Mao pmao@linkedin.com
2020-05-21 16:27:57 -07:00
Tyler Li
2398992d52
[iccpd] build iccpd deb by auto tools (#4540)
* [iccpd] build iccpd deb by auto tools
2020-05-21 09:12:51 -07:00
arlakshm
eb97dccb88
[config]: Fix the device type and internal bgp session status for multi NPU platforms (#4600)
* The following changes for multi-npu platforms are done
- Set the type in device_metadata for asic configuration to be same as host
- Set the admin-status of internal bgp sessions as up
Signed-off-by: Arvindsrinivasan Lakshmi Narasimhan <arlakshm@microsoft.com>
2020-05-20 18:10:05 -07:00
abdosi
6d1545dc79
[submodule update] sonic-utilities with PR (#4622)
Changes to commands  config reload/load-minigraph (#919)
2020-05-20 14:53:08 -07:00
abdosi
cb5221a452
[Submodule update] sonic-utilities (#4601)
Fix is_mgmt_vrf_enabled when MGMT_VRF_CONFIG is not present the config (#885)
Changes to support acl-loader command for multi-npu platforms. (#908)
Stop/Start restapi server upon config reload (#911)
[fanshow] Add column drawer name and led status to output of show
platform(#991)
[MultiDB] use sonic-db-cli instead of redis-cli in new added codes
(#907)
[show] Add `ntpstat` output to `show ntp` (#861)
[config] Log invocation of config commands to syslog (#259)
Remove dependency on click-default-group package (#903)
[config] Add 'interface transceiver' subgroup with 'lpmode' and 'rese…'
(#904)
[show] Add 'errors' and 'rates' subcommands to 'show interfaces
count…(#900)
[config] Support load_minigraph command for multi NPU platform (#896)
[Vnet] Fix NameError for 'swsssdk' and align output (#902)
2020-05-18 09:55:41 -07:00
joyas-joseph
9dea816532
Convert docker-snmp-sv2 to buster (#4529)
* Fix libsnmp-base compilation failure
* Convert docker-snmp-sv2 to buster
* Define install_python3_wheels
* Address review comments
* Address review comments
* Advance snmpagent submodule
* Bump net-snmp to the Buster version
* Revert "Fix libsnmp-base compilation failure"
* use azure storage url
2020-05-14 10:23:37 -07:00
abdosi
0542afb619
Moved utility functions for multi-npu platforms from sonic-utilities to sonic_device_util.py (#4559)
* Moved utility functions for multi-npu platforms from
sonic-utilities config/main.py to here so that they can be used
any module

* Fix the issue with test run during compilation with acl-uploader
PR#908 of sonic-utilities.

* Fix get_num_npu as it was retuning string and not int

* Address Review Comments

* Address Review Comments
2020-05-13 10:24:16 -07:00
Junchao-Mellanox
5e6c20481d
[Mellanox] Enhancement for fan led management (#4437) 2020-05-13 10:01:32 -07:00
judyjoseph
60a0471aa5
Advance sonic-py-swsssdk pointer (#4496) 2020-05-12 17:27:56 -07:00
abdosi
e3be45f2da
[sonic-buildimage] updated minigraph for ACL Table data and ACL Interface Binding for Multi-NPU platforms (#4491)
* [sonic-buildimage] updated minigraph for ACL Table data and ACL Interface
binding update for multu-npu platform based on subrole as "Frontend" or
"Backend". For backend npu no ACL table is associated. For frontend npu
only front-panel interface are associated.

Updated with test case and fix typo in sample-mingraph for npu

Address Review comments

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

* Fixed the logic as per preview comment. Interface Filter logic
only applies to Everflow/Mirror tables.

* Address Review Comments.
2020-05-12 14:49:15 -07:00
abdosi
a96f9ecee9
Changes for LLDP docker to support multi-npu platforms (#4530)
* Changes for LLDP for Multi NPU Platoforms:-
a) Enable LLDP for Host namespace for Management Port
b) Make sure Management IP is avaliable in per asic namespace
   needed for LLDP Chassis configuration
c) Make sure chassis mac-address is correct in per asic namespace
d) Do not run lldp on eth0 of per asic namespace and avoid chassis
   configuration for same
e) Use Linux hostname instead from Device Metadata for lldp chassis
   configuration since in multi-npu platforms device metadata hostname
   will be differnt

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

* Address Review Comment with following changes:
a) Use Device Metadata hostname even in per namespace conatiner.
   updated minigraph parsing for same to have hostname as system
   hostname and add new key for asic name

b) Minigraph changes to have MGMT_INTERFACE Key in per asic/namespace
   config also as needed for LLDP for setting chassis management IP.

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

* Address Review Comments
2020-05-11 11:05:44 -07:00
Neetha John
286aa35ac6
[qos]: Alpha and ECN settings change for Th (#4564)
Dynamic threshold setting changed to 0 and WRED profile green min threshold set to 250000 for Tomahawk devices

Changed the dynamic threshold settings in pg_profile_lookup.ini
Added a macro for WRED profiles in qos.json.j2 for Tomahawk devices
Necessary changes made in qos.config.j2 to use the macro if present

Signed-off-by: Neetha John <nejo@microsoft.com>
2020-05-09 11:21:18 -07:00
judyjoseph
acf465b43b
Multi DB with namespace support, Introducing the database_global.json… (#4477)
* Multi DB with namespace support, Introducing the database_global.json file
for supporting accessing DB's in other namespaces for service running in
linux host

* Updates based on comments

* Adding the j2 templates for database_config and database_global files.

* Updating to retrieve the redis DIR's to be mounted from database_global.json file.

* Additional check to see if asic.conf file exists before sourcing it.

* Updates based on PR comments discussion.

* Review comments update

* Updates to the argument "-n" for namespace used in both context of parsing minigraph and multi DB access.

* Update with the attribute "persistence_for_warm_boot" that was added to database_config.json file earlier.

* Removing the database_config.json file to avioid confusion in future.
We use the database_config.json.j2 file to generate database_config.json files dynamically.

* Update the comments for sudo usage in docker_image_ctrl.j2

* Update with the new logic in PING PONG tests using sonic-db-cli. With this we wait till the
PONG response is received when redis server is up.

* Similar changes in swss and syncd scripts for the PING tests with sonic-db-cli

* Updated with a missing , in the database_config.json.j2 file, Do pip install of j2cli in docker-base-buster.
2020-05-08 21:24:05 -07:00
Qi Luo
d0099ed43e
[minigraph] Support FECDisabled in minigraph parser (#4556)
Signed-off-by: Qi Luo <qiluo-msft@users.noreply.github.com>
2020-05-08 19:47:05 -07:00
SuvarnaMeenakshi
7f14acbf03
[minigraph.py]: Fix undefined variable error. (#4555)
Signed-off-by: SuvarnaMeenakshi <sumeenak@microsoft.com>
2020-05-07 23:17:22 -07:00
Danny Allen
3ae5945cfc
[minigraph] Add tags for egress mirror tables (#4526)
Signed-off-by: Danny Allen <daall@microsoft.com>
2020-05-06 15:43:29 -07:00
SuvarnaMeenakshi
8ac1c60b2a
[config engine] Parser changes to support parsing of multi-asic device minigraph (#4222)
- Changes to minigraph.py to parse minigraph.xml of a multi asic platform 
- Changes to portconfig.py to parse additional column "asic_port_name" in
port_config.ini
- Add a new option -n to sonic-cfggen for multi asic platforms
- Add unit tests for config generation for multi asic platforms

Signed-off-by: SuvarnaMeenakshi <sumeenak@microsoft.com>
Signed-off-by: Arvindsrinivasan Lakshmi Narasimhan <arlakshm@microsoft.com>
2020-05-04 16:15:15 -07:00
judyjoseph
e8748ebf1b
[submodule]: advance sonic-utilities submodule (#4523)
c2facd8 [show] Fix abbreviations for 'show ip bgp ...' commands (#901)
cb68e7d Add support for multi-ASIC devices (#877)
44ed6e9 Improved route_check tool and adopt to 20191130 image. (#898)
6fba8db [psushow] Add a column to display LED color to show platform psustatus output (#886)
e747456 ssd_mitigation_changes (#829)
2020-05-04 09:34:35 -07:00
shlomibitton
30bbbbf24f
hw-mgmt_V.7.0000.3034 integration (#4519)
Signed-off-by: Shlomi Bitton <shlomibi@mellanox.com>
2020-05-02 20:37:14 +03:00
Joe LeVeque
46161ca0e0
[sonic-utilities][sonic-ztp] Update submodules (#4501)
* src/sonic-utilities 7ce5b62...3471926 (4):
  > Make `config` command support abbreviation. (#893)
  > [fwutil]: Fix firmware update command. (#895)
  > [doc]: ZTP configuration and show commands (#866)
  > Allow show ztp to display non-sensitive information visible to
  > non-root user (#872)

* src/sonic-ztp 374c9e8...c959371 (2):
  > Fix ztp profile unit test (#14)
  > Create a shadow ZTP data json file accessible to non-root user (#13)
2020-04-30 15:48:42 -07:00
Sabareesh-Kumar-Anandan
81f4c81f0c
[build]: changing debian names based on Architecture (#4508)
Replacing "amd64" with $PLATFORM_ARCH variable
Fix for compiling marvell-armhf arch

Signed-off-by: Sabareesh Kumar Anandan <sanandan@marvell.com>
2020-04-30 15:47:03 -07:00
Dong Zhang
aca5bec842
[sonic-py-swsssdk/snmpagent] update submodule for sonic-py-swsssdk / snmpagent (#4421)
* [sonic-py-swsssdk] update submodule for sonic-py-swsssdk
* update snmpagent submodule
* [sonic-py-swsssdk] update submodule for namespace changes
2020-04-30 13:09:24 -07:00
Nazarii Hnydyn
2153caef59
[submodule]: Advance sonic-platform-common. (#4513)
Commits on Mar 20, 2020
SFP(sff8472 attributes) transciever eeprom attribute support. (#74) 9b1dea5

Commits on Mar 22, 2020
Detect an SFP adapter in a QSFP port, and instantiate an SFP object i… 116eeec

Commits on Apr 13, 2020
[component]: Introduce new firmware management API. 2632a59

Commits on Apr 16, 2020
[Chassis base] Add sfp error event definition (#80) f1f00ec

Commits on Apr 24, 2020
[component]: Update firmware management API. 777901f
[component]: Extend docstrings for firmware management API. b066ec7

Commits on Apr 30, 2020
[component]: Fix review comments. d96344e
Merge pull request #82 from nazariig/master-component-firmware-api 28c39c5 

Signed-off-by: Nazarii Hnydyn <nazariig@mellanox.com>
2020-04-30 12:45:12 -07:00
Sumukha Tumkur Vani
e1ba5b0f5f
[docker-restapi]: add restapi config to config Db (#4495) 2020-04-30 00:25:49 -07:00
jianjundong
4c55adfd6e
[iccpd]: ICCPD support IPv6 ND (#4422)
accomplish it according MCLAG HLD document, the principle is similar to IPv4 ARP.
2020-04-29 11:10:35 -07:00
Joe LeVeque
0895033ee6
[sonic-utilities] Update submodule (#4492)
* src/sonic-utilities 798ce2f...7ce5b62 (19):
  > [utility] Filter FDB entries (#890)
  > [fast reboot] set a fast-reboot DB flag (#887)
  > [show] Add 'ip/ipv6 bgp network' commands (#888)
  > [Vxlan] : adding show vnet/vxlan cmds (#880)
  > [show][bgp] Use only 'show ip bgp' as the base and use bgp_frr_v4 file for FRR routing stack (#884)
  > Revert "[config] Implement a process level lock (#857)" (#882)
  > [generate_dump] Dump systemd specific information (#602)
  > [config] Implement a process level lock (#857)
  > [fwutil]: Update Command-Reference.md. (#876)
  > Add platform options to 'show techsupport' command (#865)
  > [doc]: add ltgm and jenkins badge (#875)
  > Fix even more Python warnings (#873)
  > [showtech]: dump docker stats (#864)
  > Fix more Python warnings (#869)
  > Fix Python warnings (#867)
  > Fixes bug for PFCWD feature parameters (#838)
  > Explicitly specify command names with underscores (continued) (#852)
  > [watermarkstat] Fix issue of fields overwritten before display (#862)
  > [pfc] Add command line to enable/disable/show PFC (#796)
2020-04-29 00:19:29 -07:00
judyjoseph
93ade1d96b
[Multi-ASIC] To pass the asic instance ID to orchagent, Advance the swss, swss-common submodules. (#4465)
* Multi-ASIC platforms will have the ID field in the DEVICE_METADATA, which will be pulled and
will be used when starting the orchagent process with the new option [-i INST_ID]
This is currently added only for Broadcom ASIC based platforms

* Making the asic instance ID passing global across asics/platforms.
Also changed the config DB id field to asic_id

* Minor updates

* Advance sonic-swss submodule

* Advance swss_common submodule as well due to dependencies
2020-04-28 20:32:22 -07:00
Tamer Ahmed
a60a203b75
[dhcpmon] Filter DHCP O/A Messages of Neighboring Vlans (#4469)
* [dhcpmon] Filter DHCP O/A Messages of Neighboring Vlans

This code fixes a bug where two or more vlans exist. Cross contamination
happens for DHCP packets Offer/Ack when received on shared northbound links.
The code filters out those packet based on dst IP equal Vlan loopback IP.

signed-off-by: Tamer Ahmed <tamer.ahmed@microsoft.com>
2020-04-28 00:57:59 -07:00
Sumukha Tumkur Vani
72af555645
Parse Device region field in Minigraph (#4486) 2020-04-27 21:48:09 -07:00
pavel-shirshov
057ced0391
[bgpcfgd]: Split one bgp mega-template to chunks. (#4143)
The one big bgp configuration template was splitted into chunks.

Currently we have three types of bgp neighbor peers:

general bgp peers. They are represented by CONFIG_DB::BGP_NEIGHBOR table entries
dynamic bgp peers. They are represented by CONFIG_DB::BGP_PEER_RANGE table entries
monitors bgp peers. They are represented by CONFIG_DB::BGP_MONITORS table entries
This PR introduces three templates for each peer type:

bgp policies: represent policieas that will be applied to the bgp peer-group (ip prefix-lists, route-maps, etc)
bgp peer-group: represent bgp peer group which has common configuration for the bgp peer type and uses bgp routing policy from the previous item
bgp peer-group instance: represent bgp configuration, which will be used to instatiate a bgp peer-group for the bgp peer-type. Usually this one is simple, consist of the referral to the bgp peer-group, bgp peer description and bgp peer ip address.
This PR redefined constant.yml file. Now this file has a setting for to use or don't use bgp_neighbor metadata. This file has more parameters for now, which are not used. They will be used in the next iteration of bgpcfgd.

Currently all tests have been disabled. I'm going to create next PR with the tests right after this PR is merged.

I'm going to introduce better bgpcfgd in a short time. It will include support of dynamic changes for the templates.

FIX:: #4231
2020-04-23 09:42:22 -07:00
lguohan
46fad0e0c6
Merge pull request #4405 from lguohan/buster
[baseimage]: upgrade base image to debian buster

bring up the base image to debian buster 4.19 kernel.

using the merge commits to preserve the individual commits to better track the history.
2020-04-20 15:32:17 -07:00
taochengyi
744d33d502
[devices]: Centec x86 goldengate platforms and devices update (#4248)
* Centec x86 goldengate update (#8)
2020-04-17 00:38:48 -07:00
bsun-sudo
2a237c57e6 [mgmt-vrf]: mgmt vrf related change for Buster (#53)
Co-authored-by: Bing Sun <Bing_Sun@dell.com>
2020-04-17 04:51:51 +00:00
Guohan Lu
124ce22b8c [initramfs]: porting loopback file system support patch to v0.133
explicitly install dependency linux-base

Signed-off-by: Guohan Lu <lguohan@gmail.com>
2020-04-17 04:51:51 +00:00
Guohan Lu
9d6760c336 [kernel]: build linux kernel 4.19.0-6
Signed-off-by: Guohan Lu <lguohan@gmail.com>
2020-04-16 10:26:18 +00:00
Guohan Lu
01cb7934b0 [build]: add buster docker as the last step of the build proces
- build SONIC_STRETCH_DOCKERS in sonic-slave-stretch docker
- build image related module in sonic-slave-buster docker.
  This includes all kernels modules and some packages

Signed-off-by: Guohan Lu <lguohan@gmail.com>
2020-04-16 10:26:18 +00:00
Praveen Chaudhary
df7acdb664
[sonic-yang-models/setup.py]: Making path of pre-installed pacakges relative. (#4430)
Signed-off-by: Praveen Chaudhary pchaudhary@linkedin.com
2020-04-15 20:27:04 -07:00
Kebo Liu
89fb1059fa
[Mellanox] Update hw-mgmt package to V.7.0000.3020 (#4362)
* update hw-mgmt package to V.7.0000.3020
* update sonic-linux-kernel repo to pick up new patches
2020-04-15 03:04:11 -07:00
Sumukha Tumkur Vani
12400a447c
[docker-restapi]: Fix authentication in restapi (#4383)
- enabling http/https endpoint and mounting the certificates directory
- updating the sonic-restapi submodule
2020-04-15 02:08:45 -07:00