Commit Graph

156 Commits

Author SHA1 Message Date
Kebo Liu
d7cd056ff4 [minigraph parser] Fix minigraph parser issue when handling LAG related ACL table configuration (#1609)
*   Fix minigraph parser issue when handling LAG related ACL table configuration

  Changes to be committed:
	modified:   src/sonic-config-engine/minigraph.py
	modified:   src/sonic-config-engine/tests/test_cfggen.py

  signed-off-by kebol@mellanox.com
2018-05-10 11:22:03 +03:00
Taoyu Li
3ed4513d65
[minigraph.py] Fix an issue that mirror table might be considered ctrlplane table (#1656) 2018-04-30 11:06:47 -07:00
Taoyu Li
5ebefeb841 [sonic-cfggen] Be case insensitive to hostname in minigraph (#1614) 2018-04-18 18:26:09 -07:00
Qi Luo
f12ab9473e [minigraph] Fix parser on PNG DeviceInterfaceLink Bandwidth (#1592)
* [minigraph] Fix parser on PNG DeviceInterfaceLink Bandwidth

Signed-off-by: Qi Luo <qiluo-msft@users.noreply.github.com>
2018-04-12 15:44:57 -07:00
lguohan
2d54d43a0f
[minigraph]: ignore minigraph ports which are not in port_config.ini (#1593)
Signed-off-by: Guohan Lu <gulv@microsoft.com>
2018-04-12 04:04:32 -07:00
Joe LeVeque
c626dc921f
Allow one Service ACL to bind to multiple services (#1576)
* [caclmgrd] Also ignore IP protocol if found in rule; we will only use our predefined protocols
2018-04-10 18:14:12 -07:00
lguohan
af0013e939
[cfggen]: ignore acl when its type is not defined (#1568)
Signed-off-by: Guohan Lu <gulv@microsoft.com>
2018-04-09 16:41:51 -07:00
Taoyu Li
a04401f68f [minigraph.py] Add support to parse tacacs server information (#1549)
* [minigraph.py] Add support to parse tacacs server information
2018-04-02 09:17:47 -07:00
Taoyu Li
f250fe745a
[minigraph.py] Convert ipv6 addresses into lower case parsing cpg (#1460)
* [minigraph.py] Convert ipv6 addresses into lower case parsing cpg
2018-03-06 12:19:16 -08:00
Prince Sunny
a145f2c08a
Set FEC to reed-solomon if the port speed is 100G (#1383)
* Set FEC to reed-solomon if the port speed is 100G
2018-02-08 21:26:19 -08:00
Taoyu Li
4925d48b1a Fix VLAN_INTERFACE attach issue upon vlan id-name mismatch (#1367) 2018-02-07 22:06:41 +08:00
Joe LeVeque
da10ff5aa9 [minigraph.py] Only add 'service' field to control plane ACLs, not dataplane ACLs (#1341)
* [minigraph.py] Only add 'service' field to control plane ACLs, not dataplane ACLs

* Modify unit test accordingly
2018-01-26 20:29:20 -08:00
Joe LeVeque
0fffa6c63b
Add caclmgrd and related files to translate and install control plane ACL rules (#1240) 2018-01-09 17:55:10 -08:00
Haiyang Zheng
2abdf8dc58 [libteam] Add fallback support for single-member-port LAG (#1118)
* [libteam] Add fallback support for single-member-port LAG

* Allow the port to be selected if the LAG is configured
with fallback and port is in defaulted state due to missing
LACP PDUs from remote end
* Only enable port if LAG is admin up and the member port
is link up

* [team] Add lacp fallback config to teamd.j2 template

* [teamd] Resolve config conflict between fallback and minlink

* Remove min_link config if fallback is configured
* Add support for fallback config in minigraph

* [teamd] Only enable fallback if it is single-member-port LAG

Signed-off-by: Haiyang Zheng <haiyang.z@alibaba-inc.com>

* [teamd] Removing the admin status check in lacp_port_link_update

Will submit another pull request to fix this issue.

Signed-off-by: Haiyang Zheng <haiyang.z@alibaba-inc.com>
2017-12-16 11:28:18 -08:00
Shuotian Cheng
e5898940a5 [config-engine]: Change minigraph.py permission from 0755 to 0644 (#1219) 2017-12-08 09:06:48 -08:00
Rodny Molina
4213b2dcc7 [sonic-utilities]: Final code-drop for interface-description and interface-status enhancements (#1207)
* Final code-drop for interface-description and interface-status enhancements.

Here i'm adding minor extensions to support "show interface description" command. Please refer to PR#158 for more details: https://github.com/Azure/sonic-utilities/pull/158

* Add interface-description UT and adjust logic to have 'description' field being optional

RB=
G=lnos-reviewers
R=ntrianta,rjonnadu,rmolina,sfardeen,zxu
A=

* Updating reference to sonic-utilities to collect latest changes
2017-12-06 21:45:45 -08:00
JipanYanga
7406d3709b [configdb]: Add support for vlanconfd and intfconfd (#1063)
* Add support for vlanconfd and intfconfd

Signed-off-by: Jipan Yang <jipan.yang@alibaba-inc.com>

* Change name to vlanmgrd and intfmgrd

Signed-off-by: Jipan Yang <jipan.yang@alibaba-inc.com>

* Add missing vlan_members for parse_dpg result

Signed-off-by: Jipan Yang <jipan.yang@alibaba-inc.com>

* Remove cfgmgr debug CLI from image

Signed-off-by: Jipan Yang <jipan.yang@alibaba-inc.com>

* Update swss and swss-common submodules for VLAN trunk support

Signed-off-by: Jipan Yang <jipan.yang@alibaba-inc.com>
2017-11-05 22:37:16 -08:00
Oleksandr Ivantsiv
29f67ebe58 [acl-loader]: acl-loader integration. (#1000)
* [acl-loader]: acl-loader integration.

acl-loader was inplemented based on translate_acl source code. acl-loader
can't be tested with unittest. Same testcases will be covered with testbed tests.

- Remove translate_acl utility and tests.
- Remove mirror template.
- Do not run ACL rules and mirror configuration generators.
- Adopt minigraph parser to work with acl-loader.

* Update sonic-swss-common and sonic-swss submodules.

Enable ACL dynamic config feature.

* Update sonic-utilities submodule.

Include fix for acl-loader incremental update command.

* [sonic-cfggen]: Add test for everflow cfggen configuration.
2017-11-02 15:09:27 -07:00
Taoyu Li
8b8b8a130f [cfg engine] Separate portconfig.py as individual module for port_config.ini parsing (#1072)
Move port_config.ini related parsing code out of minigraph.py and create an independent portconfig.py.
Add support to multiple optional fields according to Porting Guide
2017-10-24 10:56:09 -07:00
Taoyu Li
8bc6b55331 [bgpd.conf] Fix template issue with multiple lo addresses (#1060) 2017-10-20 07:15:11 -07:00
Shuotian Cheng
2a56479187 [sonic-cfggen]: Add DEVICE_NEIGHBOR_METADATA field and move msn27xx template (#1025)
This field contains all neighbor devices information using the device
hostname as the key and having lo_addr, mgmt_addr, hwsku, type as the
attributes.

Move the file msn27xx.32ports.buffers.json.j2 from sonic-swss repository to
this repository so that we could add unit test for this file.

Unit test is added for platform ACS-MSN2700.

Signed-off-by: Shu0T1an ChenG <shuche@microsoft.com>
2017-10-19 00:38:25 -07:00
nikos-li
51ebdf43ac [frr]: Support for nhopself, keepalive and holdtime timers, prefer global ebgp nexthop (#1024)
* RR client support in minigraph for FRR
* Fix python warning from previous rrclient commit and move config handling to a more relevant place for this cmd
* Add config support for nhopself, keepalive and holdtime timers.
* Add route-map to prefer global nexthops for ebgp learned prefixes.
2017-10-11 15:31:38 -07:00
Joe LeVeque
1d16a37d48 [DHCP Relay]: Support Multiple VLANs (Separate DHCP Relay Agents, One Per VLAN) (#999)
* [DHCP Relay]: Support new <DhcpRelays> minigraph tag; support multiple VLANs

* Don't start dhcrelay in quiet mode so as to get startup output in syslog

* Update sonic-cfggen tests to support new '<DhcpRelays>' tag

* <DhcpRelays> tag is only present for VLANs which require a DHCP relay agent -- only parse if present

* Don't attempt to configure a DHCP relay agent for VLANs without specified DHCP servers

* Modify to work with Taoyu's minigraph/DB changes (#942)

* Reduce number of DHCP servers in sonic-cfggen unit tests from 4 to 2

* Remove isc-dhcp-relay sample output file from sonic-cfggen test, as we no longer generate that file

* Update Option 82 isc-dhcp-relay patch to load all interface name-alias maps into memory once at start instead of calling sonic-cfggen on each packet we relay

* Remove executable permission from Jinja2 template

* Set max hop count to 1 so that DHCP relay will only relay packets with a hop count of zero

* Replace tabs with spaces

* Modify overlooked sonic-cfggen call, use Config DB instead of minigraph

* Also ensure > 1 VLAN requires a DHCP relay agent before outputting to template

* Generate port name-alias map file using sonic-cfggen and parse that in lieu of parsing port_config.ini directly

* No longer drop packets with hop count > 0; Instead, drop packets which already contain agent info
2017-10-04 23:35:43 -07:00
Shuotian Cheng
72e947621c [config-engine]: Fix bug multiple ports connecting to same neighbor (#1005)
The current DEVICE_NEIGHBOR format doesn't support multiple different
ports connecting with same neighbor. Thus the lldpd.conf file is not
generated correctly, causing missing information for LAG members.

This fix reverts the data structure in the previous version of
minigraph parser - using local port as the key and remote port/device
as the value of the map. Sample format is:

DEVICE_NEIGHBOR['Ethernet124'] = {
    'name': 'ARISTA04T1',
    'port': 'Ethernet1/1'
}

The corresponding unit test in test_cfggen is updated.
Add one more unit test for lldpd.conf.j2 verification.

Signed-off-by: Shu0T1an ChenG <shuche@microsoft.com>
2017-10-03 16:23:19 -07:00
Andriy Moroz
9efcc9c333 [swss]: Update swss/common submodules (#988)
* Update swss submodule reference
* Update swss-common submodule reference

This pull request introduces changes including
1. Use unified buffer configurations fro all Mellanox 27xx platforms
2. Refactor TableConsumable and optimize popping empty logics
3. Add SwitchOrch to deal with switch attributes changes
4. Refactor doAclTableTask and doAclRuleTask
5. Add PFC watchdog tables and runRedisScript function in common library

Signed-off-by: Andriy Moroz <c_andriym@mellanox.com>
2017-09-29 14:44:55 -07:00
Taoyu Li
2e3975d6ed [config] Fix an issue that bgp asn data type is not consistent (#953)
* Fix an issue that bgp asn data type is not consistent from minigraph parser and DB

* Fix test typo
2017-09-13 21:23:06 -07:00
nikos-li
686e227dcc [frr]: RR client support in minigraph for FRR (#923) 2017-09-12 15:48:38 -07:00
Taoyu Li
c9cc7aea41 [configdb] Migrate minigraph configurations to DB (#942)
Modify minigraph parser output format so it fit DB schema
Modify configuration templates to fit new schema
Systemd services dependencies are modified so database starts before any configuration consumer
2017-09-12 14:13:27 -07:00
Taoyu Li
e4502527d0 Revert "Migrate DEVICE_METADATA to db (#919)" (#928)
This reverts commit 44502b217b.
2017-08-29 17:03:31 -07:00
Taoyu Li
44502b217b Migrate DEVICE_METADATA to db (#919) 2017-08-29 10:47:25 -07:00
Andriy Moroz
48b0beb7ff Port speed (#879)
* Add port speed configuration

* Add DeviceInfos support in minigraph parser

* Add cfggen test 'test_minigraph_ethernet_interfaces'

* Fixed PR comments

* Update sonic-swss submodule reference
2017-08-23 19:41:14 -07:00
Taoyu Li
a2fe0212be [ConfigDB] Move all BGP configuration into DB (#861)
- BGP data read from minigraph.py now match DB schema
- BGP templates are updated
- bgpcfgd can now deal with runtime neighbor create/delete
2017-08-08 16:23:58 -07:00
Shuotian Cheng
4d5420b865 [minigraph]: Ignore eth0 IPv6 addresses (#841)
- IPv6 is not supported on management interface
- Add unit test
2017-07-25 07:09:23 -07:00
sihuihan88
1176508858 [bgpd]: support multiple peer range in single peer group (#807) 2017-07-13 15:03:10 -07:00
Taoyu Li
90f21d403c [cfg engine] Add support to read device description xml (#775)
[cfg engine] Add support to read device description xml
2017-07-06 15:28:23 -07:00
Shuotian Cheng
5c852704fe [sonic-cfggen]: Fix minigraph.py when port_alias_map absent (#738) 2017-06-22 14:34:15 -07:00
sihuihan88
3268946de5 [BGPD]: add bgp dynamic neighbor configuration (#708)
* add bgp dynamic neighbor configuration

* [bgpd]: update as comments

* update as comment

* update to deployment_id_asn_map

* minor change
2017-06-21 18:52:50 -07:00
pavel-shirshov
b616a33ff3 [sonic-cfg]: Use vlanid to generate sonic vlan name (#695)
* Use Vlan{{vlanid}} schema name of sonic vlans
2017-06-13 11:37:43 -07:00
Oleksandr Ivantsiv
c7ea3470ed [swss]: Generate config files for Everflow and IPinIP from minigraph (#507)
[swss]: Generate config files for Everflow and IPinIP from minigraph
 - Add Everflow DST IP to minigraph file
 - Extend minigraph.py to support Everflow
 - Add templates file for Everflow and IPinIP configuration
 - Add config.sh for swss docker to generate config files
2017-04-21 14:28:29 -07:00
sihuihan88
ec73735d21 [sonic-cfggen]: Move get_machine_info function to sonic_platform.py (#489)
* Move get_machine_info to lib
* Add get platform info API
* Create sonic_platform.py

Signed-off-by: Sihui Han <sihan@microsoft.com>
2017-04-11 13:04:21 -07:00
Taoyu Li
3bd3549818 [cfggen] Fix a bug when portchannel has >2 members (#493) 2017-04-10 22:08:54 -07:00
Taoyu Li
ebed2d0182 [config/acl] Support everflow config translation (#468) 2017-04-07 01:10:05 -07:00
Shuotian Cheng
84a8b0d1f7 [minigraph]: Fix a bug of minigraph_neighbors (#485)
Signed-off-by: Shuotian Cheng <shuche@microsoft.com>
2017-04-06 14:59:30 -07:00
Shuotian Cheng
f4bc4a68b8 [sonic-cfggen]: Remove extra Nones when return (#481)
Signed-off-by: Shuotian Cheng <shuche@microsoft.com>
2017-04-05 14:25:59 -07:00
Taoyu Li
fed908fc6b [config-engine] minigraph.py refactoring (#448)
* Refactor minigraph.py
See description in https://github.com/Azure/sonic-buildimage/pull/448 for detail
2017-03-30 15:25:31 -07:00
Taoyu Li
a8fdd1f42d [oneimage] Enable forcing mgmt route through minigraph (#424) 2017-03-22 20:13:55 -07:00
Taoyu Li
bd77f9a38a [sonic-cfggen]: Read ACL interfaces information from minigrap (#419)
* Enable translate_acl to read acl attaching from minigraph
* Add AclInterfaces into test t0 graph
* Expose minigraph_ports according
2017-03-21 21:42:07 -07:00
Shuotian Cheng
7b7a61693a [sonic-cfggen]: Add -p option and add teamd.j2 test (#414)
- Add -p --port-config option to feed sonic-cfggen with port_config.ini
  file when necessary.
- Update minigraph.py file to accept the -p option
- Add test_j2files.py test to test config.sh and all .j2 templates
  * Currently test_teamd is added to test both the config.sh and teamd.j2
    file works well with the t0 sample minigraph and sample port config
    file
  * The sample output is added to the folder sample_output for comparison

Signed-off-by: Shuotian Cheng <shuche@microsoft.com>
2017-03-17 21:38:20 -07:00
Shuotian Cheng
783be14a5d [minigraph]: Add portchannels/vlans dictionary and update teamd templates (#408)
- minigraph_portchannel_interfaces and minigraph_vlan_interfaces are lists
  of interfaces and the name could duplicate due to multiple IPs
- Add minigraph_portchannels and minigraph_vlans dictionaries to support
  querying port channels and vlans via the name
- Update teamd.j2 template and config.sh file in docker-teamd
- Update zebra.conf.j2 template to add port channel interfaces

Signed-off-by: Shuotian Cheng <shuche@microsoft.com>
2017-03-17 16:48:13 -07:00
Shuotian Cheng
05e6b3611d [interfaces]: Combine vlan_interfaces and lag_interfaces file and add allow-hotplug (#381)
* [files]: Add allow-hotplug stanza to interfaces files

- start interface <interface_name> when the kernel detects
a hotplug event from the interface

ref: https://www.debian.org/doc/manuals/debian-reference/ch05.en.html

* [interfaces]: Combine vlan_interfaces and lag_interfaces file and add allow-hotplug

1. Remove vlan_interfaces and lag_interfaces file and members in teamd.j2
2. Add all interfaces to /etc/network/interfaces file
3. Add allow-hotplug stanza
4. Add up <command> to automatically add interfaces to VLAN and LAG
5. Add unique_name filter to minigraph.py to remove duplicate interface names
6. Add brctl to base image
7. Update sonic-swss submodule

Signed-off-by: Shuotian Cheng <shuche@microsoft.com>
2017-03-16 11:22:40 -07:00
Taoyu Li
bd6bf1ff9a [config] [oneimage & dhcp relay docker] Move ntp, rsyslog, and dhcp server information into minigraph (#374)
Move DHCP, rsyslog, and NTP server information into minigraph


* Fix dhcp relay template according to CR
2017-03-06 12:41:26 -08:00
Joe LeVeque
2a551d3c60 Consolidate device-specific files; install as a Debian package (#316)
( All device-specific files now reside under /device directory in a <vendor-name>/<platform-string>/<hardware-SKU> directory structure in repo.

* Device-specific files are now packaged into a Debian package (sonic-device-data) and are now installed to /usr/share/sonic/device/<platform-string>/<hardware-SKU>/ directory on switch.
2017-02-27 00:13:36 -08:00
Taoyu Li
08734229b6 [cfggen] Allow sku with no alias mapping and minigraph with no png (#335)
* [cfggen] Allow sku with no alias mapping and minigraph with no png

* Add alias mapping for minigraph_neighbor keys
2017-02-25 11:13:23 -08:00
Taoyu Li
2d0b41a340 Combine alias_map.json with port_config.ini (#304)
* Combine alias_map.json with port_config.ini
2017-02-17 13:03:42 -08:00
Taoyu Li
4fe1bdcf87 sonic-cfggen with sonicv2 dockers (#190)
Add a sonic-config-engine to help generate config file based on minigraph and other data on runtime. Modify fpm, teamd, lldp, snmp, and platform-monitor docker to use sonic-config-engine to generate config in docker upon load.
2017-01-19 20:56:26 -08:00
Taoyu Li
ed9c8fbe8e add sonic config render engine (#178)
add sonic config render engine
2017-01-06 18:19:42 -08:00