Commit Graph

2252 Commits

Author SHA1 Message Date
Michel Moriniaux
18544530d3 [FRR] Enable SNMP support (#2981)
This is a follow-up of sonic-snmpagent PR 92
Now that licensing issues have been solved FRR is distributed with SNMP
support compiled-in. This PR adds the last bits of configuration to get
the frr-snmp debian packages added to the docker container and the
config bits to enable the snmp module in FRR

This PR brings the functionality of being able to poll bgpd for routes
and peer status.

Signed-off-by: Michel Moriniaux <m.moriniaux@criteo.com>
2019-06-19 01:24:42 -07:00
Greg Paussa
c67c29f7ae [build]: Add missing 'rm -rf' to component Makefiles for clean rebuild (#3028)
* src/iproute2/Makefile
* src/python3/Makefile

These Makefiles do not properly clean out the src build subdirectory
prior to downloading the source code contents. This causes an error
during a rebuild following a 'make clean'.

Signed-off-by: Greg Paussa <greg.paussa@broadcom.com>
2019-06-19 00:18:12 -07:00
neethajohn
2e121f3329 [submodule]: Update submodule sonic-quagga (#3030)
Reduce the retry time for IPV6 connections to avoid reprogramming IPv6 routes after warm-reboot (#37)
2019-06-19 00:17:06 -07:00
Joe LeVeque
319d854e46 [baseimage]: Increase TMOUT for serial port connections to 15 minutes (#3032)
Increase TMOUT value in order to close inactive serial console connections after 900 seconds (15 minutes) of inactivity
2019-06-19 00:16:01 -07:00
lguohan
4bfc9eff41
[sonic-slave]: install openjdk-8 for jenkins slave (#3037)
Signed-off-by: Guohan Lu <gulv@microsoft.com>
2019-06-19 00:13:39 -07:00
Kebo Liu
8a08595006 [Pmon] Add new daemon "syseepromd" to pmon docker (#2866) 2019-06-18 11:02:24 -07:00
Qi Luo
e7b1988638
[submodule] update sonic-linux-kernel (#2985)
* [submodule] update sonic-linux-kernel
* update linux kernel version
* Fix many version strings
* update mellanox components (built with new kernel)
* [mlnx] add make files for SDK WJH libs
* Update arista driver submodule (#8)
Make the debian packaging point to a newer kernel version.
2019-06-18 10:00:16 -07:00
zhenggen-xu
d67c6d4bf7 Set the default mac ageing time to 600 seconds (#2365)
* Set the default mac ageing time to 300 seconds

The current mac ageing was disabled, this could lead the mac address
table to increase over time and lead to resource and performance issues.

Signed-off-by: Zhenggen Xu <zxu@linkedin.com>

* Update the default HW ageing timer to be 600 seconds.

This is to be on the safer side where ARP update interval
is 300 seconds and SONiC does not flood when ARP is aged out.

Signed-off-by: Zhenggen Xu <zxu@linkedin.com>
2019-06-15 15:57:10 -07:00
Kebo Liu
c927517355 [Mellanox] Inject SDK libs dependency to pmon on Mellanox platform (#3000)
* inject sdk libs to pmon
* fix wrong code
2019-06-14 17:38:24 -07:00
pavel-shirshov
466334a8c9
[libteam]: Reimplement Warm-Reboot procedure (#3016)
* Update sonic-quagga submodule

* [libteam]: Reimplement Warm-Reboot procedure
2019-06-14 17:26:58 -07:00
Shuotian Cheng
a5aa3bb0a5
[Broadcom]: Update SAI version to 3.5.2.3 (#3014)
--Create/remove port fix
--Support SAI_PORT_ATTR_SERDES_IPREDRIVER
--Egress ACL fix for PFC storm restoration
--Memory corruption during warm reboot
--SAI_OBJECT_TYPE_TUNNEL_MAP_ENTRY removal fix
--Segfault/memory corruption fix during switch shutdown
--Directed boardcast fix
--Pre-emphasis value for Dell 6100

Signed-off-by: Shu0T1an ChenG <shuche@microsoft.com>
2019-06-14 15:47:11 -07:00
Shuotian Cheng
f8a4efc3e1
[swss]: Update swss submodules change (#2995)
sonic-swss:
[vnet]: Extend Bitmap VNET test with "remove" flows (#900)
[vxlanorch] Ambiguous return code for removeNextHopTunnel (#880)
Address review comment: remove data member m_entriesCreated, which is introduced for dependancy resolution purpose. (#839)
Set LAG mtu value based on kernel netlink msg (#922)
[orchagent]: Remove try/catch for correct coredump file (#790)
[aclorch] unittest by gtest (#924)
[orchagent]: Added support of PFC WD for BFN platform (#823)
[vnetorch]: Fix tunnel route removal flow for bitmap VNET (#912)
pkill -9 zebra for frr warm restart VS test fix (#927)
swss-orchagent: add new orch for vnet routes/tunnel routes tables in CONFIG_DB  (#907)
[debian]: Do not build test when building with real SAI (#932)

sonic-swss-common:
Add schema for dot1p to tc mapping config table (#274)
Fix MIRROR_SESSION table macro name (#264)
[schema] Add VNET Route tables in config_db (#279)
[debian] increment debian compatibility to 10 to enable parallel package build (#280)
White-list clear_stats op from orchagent to syncd (#281)
Correct comment (#282)

sonic-sairedis:
[debian]: Change build order in target binary (#452)
[debian] increment debian compatibility to 10 to enable parallel package build (#461)
Full sleep wait flex counter polling thread when POLL_COUNTER_STATUS is disable (#462)
add support for SAI_ATTR_VALUE_TYPE_ACL_CAPABILITY (#460)
Check if port VID exists in db on flex counter query (#464)
Full sleep wait change for PFC watchdog (#465)
Add synchronous clear_stats operation path (#463)
Modify sai_create_port to breakout a port for virtual switch (#454)
Fix typo  (#467)

Signed-off-by: Shu0T1an ChenG <shuche@microsoft.com>
2019-06-14 10:21:28 -07:00
lguohan
8f6ae90cba
[docker]: get hostname from config db instead of minigraph (#3004)
minigraph may not be always available on the some system configuration.
Should use config db as the source of truth.
2019-06-13 22:24:09 -07:00
Stepan Blyshchak
383fc0fa4b [FRR] fix pfx_filter to fix bgpd.conf.j2 rendering when no vlan interfaces (#2994) 2019-06-13 19:04:45 -07:00
Joe LeVeque
f5f7fb38b8
[gitignore] Ignore .DS_Store files (#2997) 2019-06-13 16:00:30 -07:00
Jipan Yang
ab5afad6a6 [FRR]: enable bgp graceful-restart preserve-fw-state for FRR warm reboot support on T0 (#2998)
Signed-off-by: Jipan Yang <jipan.yang@alibaba-inc.com>
2019-06-12 22:51:27 -07:00
Stephen Sun
95452b7385 [docker-pmon] install dmidecode tool to pmon (#2990) 2019-06-12 12:10:43 +03:00
brandonchuang
4ce3cc864a [devices]: Add lpmode in sfputil.py for Accton AS7816 (#2989)
Signed-off-by: brandon_chuang <brandon_chuang@edge-core.com>
2019-06-12 01:37:29 -07:00
Renuka Manavalan
cdca062693 [build]: Build sonic-broadcom.bin using debug dockers for all stretch based dockers (#2833)
* Updated Makefile infrastructure to build debug images.
As a sample, platform/broadcom/docker-orchagent-brcm.mk is updated to add a docker-orchagent-brcm-dbg.gz target.

Now "BLDENV=stretch make target/docker-orchagent-brcm-dbg.gz" will build the debug image.

NOTE: If you don't specify NOSTRETcH=1, it implicitly calls "make stretch", which builds all stretch targets and that would include debug dockers too.

This debug image can be used in any linux box to inspect core file. If your module's external dependency can be suitably mocked, you my even manually run it inside.

"docker run -it --entrypoint=/bin/bash e47a8fb8ed38"

You may map the core file path to this docker run.

* Dropped the regular binary using DBG_PACKAGES and a small name change to help readability.

* Tweaked the changes to retain the existing behavior w.r.t INSTALL_DEBUG_TOOLS=y.

When this change ('building debug docker image transparently') is extended to all dockers, this flag would become redundant. Yet, there can be some test based use cases that rely on this flag.

Until after all the dockers gets their debug images by default and we switch all use cases of this flag to use the newly built debug images, we need to maintain the existing behavior.

* 1) slave.mk - Dropped unused Docker build args
2) Debug template builder: renamed build_dbg_j2.sh to build_debug_docker_j2.sh
3) Dropped insignifcant statement CMD from debug Docker file, as base docker has Entrypoint.

* Reverted some changes, per review comments.
"User, uid, guid, frr-uid & frr-guid" are required for all docker images, with exception of debug images.

* Get in sync with the new update that filters out dockers to be built (SONIC_STRETCH_DOCKERS_FOR_INSTALLERS) and build debug-dockers only for those to be built and debug target is available.

* Mkae a template for each target that can be shared by all platforms.
Where needed a platform entry can override the template.
This avoids duplication, hence easier to maintain.

* A small change, that can fit better with other targets too.
Just take the platform code and do the rest in template.

* Extended debug to all stretch based docker images

* 1) Combined all orchagent makefiles into one platform independent make under rules/docker-orchagent.mk
2) Extened debug image to all stretch dockers

* Changes per review comments:
1) Dropped LIBSAIREDIS_DBG from database, teamd, router-advertiser, telemetry, and platform-monitor docker*.mk files from _DBG_DEPENDS list
2) W.r.t docker make for syncd, moved DEPENDS from template to specific makefile and let the template has stuff that is applicable to all.

* 1) Corrected a copy/paste mistake

* Fixed a copy/paste bug

* The base syncd dockers follow a template, which defines the base docker as DOCKER_SYNCD_BASE instead of DOCKER_SYNCD_<platform code>. Fix the docker-syncd-<mlnx, bfn>.mk to use the new one.

[Yet to be tested locally]

* Fixed spelling mistake

* Enable build of dbg-sonic-broadcom.bin, which uses dbg-dockers in place of regular dockers, for dockers that build debug version. For dockers that do not build debug version, it uses the regular docker.

This debug bin is installable and usable in a DUT, just like a regular bin.

* Per review comments:
  1) Share a single rule for final image for normal & debug flavors (e.g. sonic-broadcom.bin & sonic-broadcom-dbg.bin)
  2) Put dbg as suffix in final image name.
  3) Compared target/sonic-broadcom.bin.logs with & w/o fix to verify integrity of sonic-broadcom.bin
  4) Compared target/sonic-broadcom.bin.logs with sonic-broadcom-dbg.bin.log for verification

This fix takes care of ONIE image only. The next PR will cover the rest.
The next PR, will also make debug image conditional with flag.

* Updated per comments.
Now that debug dockers are available, do not need a way to install debug symbols in regular dockers.

With this commit, when INSTALL_DEBUG_TOOLS=y is set, it builds debug dockers (for dockers that enable debug build) and the final image uses debug dockers. For dockers that do not enable debug build, regular dockers get used in the final image.

Note:
The debug dockers are explicitly named as <docker name>-dbg.gz. But there is no "-dbg" suffix for image.
Hence if you make two runs with and w/o INSTALL_DEBUG_TOOLS=y, you have complete set of regular dockers + debug dockers. But the image gets overwritten.
Hence if both regular & debug images are needed, make two runs, as one with INSTALL_DEBUG_TOOLS=y and one w/o. Make sure to copy/rename the final image, before making the second run.
2019-06-12 01:36:21 -07:00
Stepan Blyshchak
44bc083cde [mlnx] change egress pool size from 40M to 37M (#2992)
new FW/SDK limits pool size to 37M

Signed-off-by: Stepan Blyschak <stepanb@mellanox.com>
2019-06-12 01:23:54 -07:00
Nazarii Hnydyn
ee7b4a20e5 [FRR]: Aligned configs for unified/separated modes. (#2987)
* [FRR]: Aligned configs for unified/separated modes.
* Fixed IPv6 neighbors issue: #2986

Signed-off-by: Nazarii Hnydyn <nazariig@mellanox.com>
2019-06-12 01:09:31 -07:00
SuvarnaMeenakshi
0f665bdd06 [baseimage] kernel oom-killer to panic when the system is truly out of memory (#2988)
- What I did
Currently when the system is under memory pressure, the OOM killer kicks in and kills a rogue process. Killing a rogue process can cause the device to be un-healthy leading to blackholing of the traffic.

To avoid this, configure the OOM to do a kernel panic which will cause the device to reboot and come back up healthy.

- How I did it
Added the sysctl variable panic_on_oom and set the value to 2.
Setting it to 2 will ensure OOM killer to always do a kernel panic.
2019-06-11 16:19:49 -07:00
Prince Sunny
231d309b69
Generate interface table to have an entry designated to default VRF. (#2848)
* Generate default VRF table for router interfaces

* Updated jinja2 template to have prefix filter
2019-06-10 14:02:55 -07:00
Olivier Singla
708999ad61 [devices]: Add Broadcom XLR/GTS (BCM9COMX2XMC) support for Tomahawk switch (BCM956960K) (#2682)
These patches add support for the Broadcom XMC card (XLR/GTS). At this moment
only Tomahawk switch (BCM956960K) is supported. Add
device/broadcom/x86_64-bcm_xlr-r0 and
platform/broadcom/sonic-platform-modules-brcm-xlr-gts files
2019-06-09 12:09:31 -07:00
Sudharsan D.G
3d2955a184 [xrcvd]: add media settings checker and settings for z9100 (#2713)
Modifying media settings file according to latest design
2019-06-08 21:29:27 -07:00
lguohan
fa3ea537e7
[docker-saiserver]: upgrade docker saiserver to stretch for brcm/mlnx (#2983) 2019-06-08 16:27:19 -07:00
pavel-shirshov
900f93e149 [submodule]: Update sonic-quagga submodule (#2984) 2019-06-08 15:29:18 -07:00
Sudharsan D.G
9dc1cc76fd [submodule]: Updating submodule pointers for pre-emphasis feature (#2978)
Advancing sub module pointers to dynamic transceiver support feature commit.

- src/sonic-swss
f437f9f..d616764

[policerorch]: Add PolicerOrch to bundle with mirror session (889)
Fix MIRROR_SESSION table macro name (802)
Ignore neighbor entry with BCAST MAC, check SAI status exists (914)
[vstest]: Update the mirror session state table name (917)
[test]: Skip tests under investigation (919)
[debian] increment debian compatibility to 10 to enable parallel package build (911)
[aclorch]: Add MIRROR_DSCP table type (906)
[test]: Mark some VLAN tests as Stretch only (903)
[warm restart assist] assume vector values could be reordered (921)
Suppress storm detect counter increment for ongoing pfc storm case during a warm reboot (869)
Fix vlan incremental config and add vs test cases (799)
Remove *_LEFT fields to allow PFC watchdog to enter fresh into the (897)
add dynamic transceiver tuning support (821)

- src/sonic-platform-common
92b54b1..7f95a2a

Enhance new platform API (19)
Add .gitignore file (28)
[sonic_platform_base] Add sonic_sfp and sonic_eeprom to sonic_platform_base (27)
Added type abbrev name to be used in media_settings.json for Dynamictransceiver tuning (32)

- src/sonic-platform-daemons
c8931f3..366ac0e

Fixed xcvrd shutdown flow. (23)
Add .gitignore file (27)
Dynamic transceiver tuning support (26)
2019-06-07 16:46:25 -07:00
Samuel Angebault
df063bd78d [device/Arista] Add initial support for platform API (#2964)
* Congregate plugin scripts for Arista platforms

* Update arista driver submodules

Pulls new platform API related changes
2019-06-07 09:01:09 -07:00
brandonchuang
4073e8fa64 [device][platform] add platform as5835-54x, accton. (#2977)
Signed-off-by: brandon_chuang <brandon_chuang@edge-core.com>
2019-06-07 09:00:12 -07:00
Karthik Gengan
f7774bec6b [device]: DellEmc-S6000 : Back-end work for last reboot reason (#2974)
* DellEmc-S6000 Backend work for lastreboot reason
2019-06-07 08:59:54 -07:00
Stephen
bf2c9cd099 [Mellanox]Remove the dependency on sysfs for sfputil (#2967)
* [sfputil]Remove the dependency on sysfs for sfputil, mainly get_presence and port_to_eeprom_mapping
Remove the dependency on sysfs, including:
1. rewrite get_presence by using ethtool;
2. remove interface port_to_eeprom_mapping which is no longer referenced;
3. remove code that references port_to_eeprom_mapping and _port_to_eeprom_mapping;
4. remove private member qsfp_sysfs_path which is no longer referenced.

* [sfputil.py]
minor adjustment: move the presence=False to the beginning of get_presence.
2019-06-07 06:21:03 -07:00
Samuel Angebault
d84aa49d38 [device/Arista] Add HwSku profiles for the 7060PX-32 (#2973)
* Add port configuration for HWSKU Arista-7060PX4-O32

* Add 64x100G configuration for 7060PX4-32
2019-06-06 15:38:11 -07:00
Myron Sosyak
3ec95e17c8 [build_templates] [hostcfgd] Keep containers hostname up to date (#2924)
* Add updateHostName function to docker_image_ctl.j2
* Add hostname specification on container creating step
* Add listener for hostname changes in hostcfgd

Signed-off-by: Myron Sosyak <msosyak@barefootnetworks.com>
2019-06-06 00:41:30 -07:00
Roy Lee
4f85c7cd5f [devices/accton]:bugfix: potential i2c fault from IC IR3570a (#2966)
Disabling i2c function of ir3507a which may failed i2c tranfer to others.
Signed-off-by: roy_lee <roy_lee@accton.com>
2019-06-05 12:47:22 -07:00
Kebo Liu
bd519322cb [Mellanox] Expose SDK share buffer and unix socket from syncd (#2951)
* expose SDK share buffer and unix socket from syncd
* fix PR comments
* fix community comments and add TODO
2019-06-05 11:19:56 -07:00
Joe LeVeque
42591718b5 [slave.mk] Fix typo for STRETCH_DEBS_PATH for linux-kernel (#2971) 2019-06-05 09:31:29 -07:00
Wenda Ni
2e4b95867e
Advance sonic-sairedis reference pointer (#2969)
Signed-off-by: Wenda Ni <wenni@microsoft.com>
2019-06-04 16:57:05 -07:00
yorke
6dbae0e3cd [libteam] Upgrade libteam to 1.28-1 and reorganize patches (#2956)
Signed-off-by: yorke <yorke.yuan@asterfusion.com>
2019-06-04 12:55:26 -07:00
Joe LeVeque
552684fc08
[dhcp_relay] Add support for DHCP client(s) on one VLAN and DHCP server(s) on another (#2946) 2019-06-03 14:26:45 -07:00
Sumukha Tumkur Vani
2e9b18db10 [sonic-cfggen]: Fix for management port speed issue (#2945) 2019-06-01 12:31:14 -07:00
lguohan
f40795a5be [docker-frr]: Fix frr separated and unified configuration mode (#2962) 2019-06-01 09:33:52 -07:00
Karthik Gengan
91b1948b17 [devices]: DellEmc: Z9264f Pre-emphasis and Led settings (#2959) 2019-05-31 08:23:27 -07:00
Stephen
cfa14ce1a6 [Mellanox]Fix issue #2720 Not able to read out values of voltage/temp/power on some cables (#2957)
* [device/mellanox/x86_64-mlnx_msn2700-r0/plugins/sfputil.py]
purpose and restrictions
1. reading eeprom via ethtool.
2. avoid changing common codes shared by all the manufacture (sonic-platform-common), contrain all the modifications with Mellanox-specific code.
current implementation
A new class based on SfpUtilBase and a new method _read_eeprom_specific_bytes_via_ethtool have been introduced in order to change the way the eprom DOM data is read. Typically the best practice to do this kind of thing is to contrain the modification within the function which execute reading operations only and keep other stuffs (especially the interface) untouched. However, this can hardly be achieved since the original reading function takes the file object as input parameter to represent the port. It is done by having the file object to point to /var/run/hwmanagement files, which will not be maintained in the future. As a result, a new interface has to be introduced with a port number/name as input parameter in order to get rid of the dependency on the those files:
_read_eeprom_specific_bytes_via_ethtool
Since the interface changed, all methods that call the interface should also be overwritten in order to call the new interface, including:
_read_eeprom_devid
get_transceiver_info_dict
get_transceiver_dom_info_dict
Only interface used to read eeprom DOM has been replaced and the main logic has not been changed except the following mentioned.
1. reading DOM data for sfp port, which is implementioned in get_transceiver_dom_info_dict. In this case a "calibration" should be firstly read from eeprom before other values like temperature, voltage, rx/tx power, can be parsed. However, this has been ignored in the original code, resulting in that the data cann't be parsed.
2. In the original implemention the data area containing the data are read from DOM separatedly in order to avoid read uncessary data and achieve a better performance. Having used ethtool to read DOM data, the performance gap between reading all the area and reading the spot data separatedly has been narrowed to almost zero. To make the code neat and readable, we change the way to read this data.

* [sfputil] Returns dict with all data set to N/A for ports without dom support
Currently, the way in which dom data is read has been changed from using sysfs to using ethtool.
The ethtool returns None for ports without dom support, resulting in None being returned. However, this fails xcvrd to add the TRANSCEIVER_DOM_SENSOR table entry of associated port to CONFIG_DB and then causes SNMP fail.
To address this issue a default dict is initialized with all data set to 'N/A' and is returned is the above case.
BTW, in the original implementation which sysfs is used to read dom data, even though non-None data is returned for ports without dom support, it does not contain valid data. This can result in wrong data in TRANSCEIVER_DOM_SENSOR table.

* [sfputil]
removing unnecessary empty lines
removing redundent code
replacing hardcoding strings/numbers with predefined const variables
2019-05-31 08:22:47 -07:00
lguohan
2a5bfe2bd7
[docker-frr]: change default routing mode to separated and fix a bug in separated mode (#2961)
In separated mode, frr requires to run vtysh_b to load individual configuration

Signed-off-by: Guohan Lu <gulv@microsoft.com>
2019-05-31 07:39:40 -07:00
pavel-shirshov
3f4de49e3d
[libteam] Send updates as soon as we need to update the LACP partner about changes (#2955) 2019-05-30 13:26:32 -07:00
lguohan
6ca35b55d6
[docker-ptf]: move docker-ptf to stretch (#2954) 2019-05-29 18:26:52 -07:00
Shuotian Cheng
c0eb90b96c
[docker-vs]: Start staticd by default (#2929)
Signed-off-by: Shu0T1an ChenG <shuche@microsoft.com>
2019-05-29 16:14:48 -07:00
Nazarii Hnydyn
e041b15d10 [mellanox]: Fixed config reload race. (#2930)
Signed-off-by: Nazarii Hnydyn <nazariig@mellanox.com>
2019-05-29 09:57:29 +03:00
Kebo Liu
89ee636b99 [Mellanox] SFP new platform API implementation (#2944)
* add sfp new api

* fix get presence
2019-05-29 09:46:20 +03:00