diff --git a/build_debian.sh b/build_debian.sh index f63edfe9a134..fac25f18de6b 100755 --- a/build_debian.sh +++ b/build_debian.sh @@ -200,7 +200,7 @@ sudo LANG=C chroot $FILESYSTEM_ROOT rm /tmp/docker.gpg sudo LANG=C chroot $FILESYSTEM_ROOT add-apt-repository \ "deb [arch=$CONFIGURED_ARCH] https://download.docker.com/linux/debian stretch stable" sudo LANG=C chroot $FILESYSTEM_ROOT apt-get update -sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install docker-ce=${DOCKER_VERSION} docker-ce-cli=${DOCKER_VERSION} +sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install docker-ce=${DOCKER_VERSION} sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y remove software-properties-common gnupg2 if [ "$INSTALL_KUBERNETES" == "y" ] diff --git a/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C32/td3-a7050cx3-32s-32x100G.config.bcm b/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C32/td3-a7050cx3-32s-32x100G.config.bcm index e66e2e98416e..217d15b4e579 100644 --- a/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C32/td3-a7050cx3-32s-32x100G.config.bcm +++ b/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C32/td3-a7050cx3-32s-32x100G.config.bcm @@ -35,6 +35,7 @@ port_phy_addr=0xff robust_hash_disable_egress_vlan=1 robust_hash_disable_mpls=1 robust_hash_disable_vlan=1 +sram_scan_enable=0 stable_size=0x5500000 tdma_timeout_usec=15000000 tslam_timeout_usec=15000000 diff --git a/device/arista/x86_64-arista_7060px4_32/Arista-7060PX4-C64/th3-a7060px4-32-64x100G.config.bcm b/device/arista/x86_64-arista_7060px4_32/Arista-7060PX4-C64/th3-a7060px4-32-64x100G.config.bcm index f4450ebac53f..5002d29045ab 100644 --- a/device/arista/x86_64-arista_7060px4_32/Arista-7060PX4-C64/th3-a7060px4-32-64x100G.config.bcm +++ b/device/arista/x86_64-arista_7060px4_32/Arista-7060PX4-C64/th3-a7060px4-32-64x100G.config.bcm @@ -872,6 +872,7 @@ port_phy_addr_147.0=0xff robust_hash_disable_egress_vlan.0=1 robust_hash_disable_mpls.0=1 robust_hash_disable_vlan.0=1 +sram_scan_enable.0=0 tdma_timeout_usec.0=15000000 tslam_timeout_usec.0=15000000 diff --git a/device/arista/x86_64-arista_7060px4_32/Arista-7060PX4-O32/th3-a7060px4-o32-32x400G.config.bcm b/device/arista/x86_64-arista_7060px4_32/Arista-7060PX4-O32/th3-a7060px4-o32-32x400G.config.bcm index cdbc4f4430b4..d3a66dee635f 100644 --- a/device/arista/x86_64-arista_7060px4_32/Arista-7060PX4-O32/th3-a7060px4-o32-32x400G.config.bcm +++ b/device/arista/x86_64-arista_7060px4_32/Arista-7060PX4-O32/th3-a7060px4-o32-32x400G.config.bcm @@ -744,6 +744,7 @@ port_phy_addr_143.0=0xff robust_hash_disable_egress_vlan.0=1 robust_hash_disable_mpls.0=1 robust_hash_disable_vlan.0=1 +sram_scan_enable.0=0 tdma_timeout_usec.0=15000000 tslam_timeout_usec.0=15000000 diff --git a/device/barefoot/x86_64-accton_wedge100bf_32x-r0/pmon_daemon_control.json b/device/barefoot/x86_64-accton_wedge100bf_32x-r0/pmon_daemon_control.json index ea20aeb1f83b..3a76f2fdd0e4 100644 --- a/device/barefoot/x86_64-accton_wedge100bf_32x-r0/pmon_daemon_control.json +++ b/device/barefoot/x86_64-accton_wedge100bf_32x-r0/pmon_daemon_control.json @@ -1,7 +1,6 @@ { - "skip_fancontrol": true, "skip_ledd": true, "skip_xcvrd": false, "skip_psud": false, - "skip_syseepromd": false + "skip_syseepromd": false } diff --git a/device/barefoot/x86_64-accton_wedge100bf_65x-r0/pmon_daemon_control.json b/device/barefoot/x86_64-accton_wedge100bf_65x-r0/pmon_daemon_control.json index ea20aeb1f83b..3a76f2fdd0e4 100644 --- a/device/barefoot/x86_64-accton_wedge100bf_65x-r0/pmon_daemon_control.json +++ b/device/barefoot/x86_64-accton_wedge100bf_65x-r0/pmon_daemon_control.json @@ -1,7 +1,6 @@ { - "skip_fancontrol": true, "skip_ledd": true, "skip_xcvrd": false, "skip_psud": false, - "skip_syseepromd": false + "skip_syseepromd": false } diff --git a/device/dell/x86_64-dell_s6000_s1220-r0/sensors.conf b/device/dell/x86_64-dell_s6000_s1220-r0/sensors.conf index f74a2b3d40ac..c87af11afacc 100644 --- a/device/dell/x86_64-dell_s6000_s1220-r0/sensors.conf +++ b/device/dell/x86_64-dell_s6000_s1220-r0/sensors.conf @@ -7,8 +7,8 @@ # tmp75-i2c-11-4e is an ambient temperature sensor. chip "tmp75-*" - set temp1_max 80 - set temp1_max_hyst 70 + set temp1_max 50 + set temp1_max_hyst 25 # emc1403-i2c-10-4d has following temperature sensors: # temp1: CPU0 external Temp Sensor @@ -32,5 +32,5 @@ chip "jc42-*" set temp1_crit 85 chip "dni_dps460-*" - set temp1_max 80 - set temp2_max 80 + set temp1_max 50 + set temp2_max 50 diff --git a/device/dell/x86_64-dellemc_s5232f_c3538-r0/DellEMC-S5232f-C8D48/buffers.json.j2 b/device/dell/x86_64-dellemc_s5232f_c3538-r0/DellEMC-S5232f-C8D48/buffers.json.j2 deleted file mode 100644 index 0b1cb2c541b6..000000000000 --- a/device/dell/x86_64-dellemc_s5232f_c3538-r0/DellEMC-S5232f-C8D48/buffers.json.j2 +++ /dev/null @@ -1,2 +0,0 @@ -{%- set default_topo = 't1' %} -{%- include 'buffers_config.j2' %} diff --git a/device/dell/x86_64-dellemc_s5232f_c3538-r0/DellEMC-S5232f-C8D48/buffers_defaults_t0.j2 b/device/dell/x86_64-dellemc_s5232f_c3538-r0/DellEMC-S5232f-C8D48/buffers_defaults_t0.j2 deleted file mode 100644 index 98ec91a9b694..000000000000 --- a/device/dell/x86_64-dellemc_s5232f_c3538-r0/DellEMC-S5232f-C8D48/buffers_defaults_t0.j2 +++ /dev/null @@ -1,37 +0,0 @@ - -{%- set default_cable = '40m' %} - -{%- macro generate_buffer_pool_and_profiles() %} - "BUFFER_POOL": { - "ingress_lossless_pool": { - "size": "28550336", - "type": "ingress", - "mode": "dynamic", - "xoff": "4194112" - }, - "egress_pool": { - "size": "28550336", - "type": "egress", - "mode": "static" - } - }, - "BUFFER_PROFILE": { - "ingress_lossy_profile": { - "pool":"[BUFFER_POOL|ingress_lossless_pool]", - "size":"0", - "dynamic_th":"3" - }, - "egress_lossless_profile": { - "pool":"[BUFFER_POOL|egress_pool]", - "size":"0", - "mode": "static", - "static_th":"32744448" - }, - "egress_lossy_profile": { - "pool":"[BUFFER_POOL|egress_pool]", - "size":"0", - "mode": "dynamic", - "dynamic_th":"3" - } - }, -{%- endmacro %} diff --git a/device/dell/x86_64-dellemc_s5232f_c3538-r0/DellEMC-S5232f-C8D48/buffers_defaults_t1.j2 b/device/dell/x86_64-dellemc_s5232f_c3538-r0/DellEMC-S5232f-C8D48/buffers_defaults_t1.j2 deleted file mode 100644 index 98ec91a9b694..000000000000 --- a/device/dell/x86_64-dellemc_s5232f_c3538-r0/DellEMC-S5232f-C8D48/buffers_defaults_t1.j2 +++ /dev/null @@ -1,37 +0,0 @@ - -{%- set default_cable = '40m' %} - -{%- macro generate_buffer_pool_and_profiles() %} - "BUFFER_POOL": { - "ingress_lossless_pool": { - "size": "28550336", - "type": "ingress", - "mode": "dynamic", - "xoff": "4194112" - }, - "egress_pool": { - "size": "28550336", - "type": "egress", - "mode": "static" - } - }, - "BUFFER_PROFILE": { - "ingress_lossy_profile": { - "pool":"[BUFFER_POOL|ingress_lossless_pool]", - "size":"0", - "dynamic_th":"3" - }, - "egress_lossless_profile": { - "pool":"[BUFFER_POOL|egress_pool]", - "size":"0", - "mode": "static", - "static_th":"32744448" - }, - "egress_lossy_profile": { - "pool":"[BUFFER_POOL|egress_pool]", - "size":"0", - "mode": "dynamic", - "dynamic_th":"3" - } - }, -{%- endmacro %} diff --git a/device/dell/x86_64-dellemc_s5232f_c3538-r0/DellEMC-S5232f-C8D48/custom_led.bin b/device/dell/x86_64-dellemc_s5232f_c3538-r0/DellEMC-S5232f-C8D48/custom_led.bin deleted file mode 100755 index 49e559cd9813..000000000000 Binary files a/device/dell/x86_64-dellemc_s5232f_c3538-r0/DellEMC-S5232f-C8D48/custom_led.bin and /dev/null differ diff --git a/device/dell/x86_64-dellemc_s5232f_c3538-r0/DellEMC-S5232f-C8D48/linkscan_led_fw.bin b/device/dell/x86_64-dellemc_s5232f_c3538-r0/DellEMC-S5232f-C8D48/linkscan_led_fw.bin deleted file mode 100755 index c2fa94a2d8cb..000000000000 Binary files a/device/dell/x86_64-dellemc_s5232f_c3538-r0/DellEMC-S5232f-C8D48/linkscan_led_fw.bin and /dev/null differ diff --git a/device/dell/x86_64-dellemc_s5232f_c3538-r0/DellEMC-S5232f-C8D48/pg_profile_lookup.ini b/device/dell/x86_64-dellemc_s5232f_c3538-r0/DellEMC-S5232f-C8D48/pg_profile_lookup.ini deleted file mode 100644 index aedda37a8878..000000000000 --- a/device/dell/x86_64-dellemc_s5232f_c3538-r0/DellEMC-S5232f-C8D48/pg_profile_lookup.ini +++ /dev/null @@ -1,17 +0,0 @@ -# PG lossless profiles. -# speed cable size xon xoff threshold xon_offset - 10000 5m 1248 2288 35776 -3 2288 - 25000 5m 1248 2288 53248 -3 2288 - 40000 5m 1248 2288 66560 -3 2288 - 50000 5m 1248 2288 90272 -3 2288 - 100000 5m 1248 2288 165568 -3 2288 - 10000 40m 1248 2288 37024 -3 2288 - 25000 40m 1248 2288 53248 -3 2288 - 40000 40m 1248 2288 71552 -3 2288 - 50000 40m 1248 2288 96096 -3 2288 - 100000 40m 1248 2288 177632 -3 2288 - 10000 300m 1248 2288 46176 -3 2288 - 25000 300m 1248 2288 79040 -3 2288 - 40000 300m 1248 2288 108160 -3 2288 - 50000 300m 1248 2288 141856 -3 2288 - 100000 300m 1248 2288 268736 -3 2288 diff --git a/device/dell/x86_64-dellemc_s5232f_c3538-r0/DellEMC-S5232f-C8D48/port_config.ini b/device/dell/x86_64-dellemc_s5232f_c3538-r0/DellEMC-S5232f-C8D48/port_config.ini deleted file mode 100644 index b7a336827ffe..000000000000 --- a/device/dell/x86_64-dellemc_s5232f_c3538-r0/DellEMC-S5232f-C8D48/port_config.ini +++ /dev/null @@ -1,59 +0,0 @@ -# name lanes alias index speed -Ethernet0 1,2 fiftyGigE1/1/1 1 50000 -Ethernet2 3,4 fiftyGigE1/1/2 1 50000 -Ethernet4 5,6 fiftyGigE1/2/1 2 50000 -Ethernet6 7,8 fiftyGigE1/2/2 2 50000 -Ethernet8 9,10 fiftyGigE1/3/1 3 50000 -Ethernet10 11,12 fiftyGigE1/3/2 3 50000 -Ethernet12 13,14 fiftyGigE1/4/1 4 50000 -Ethernet14 15,16 fiftyGigE1/4/2 4 50000 -Ethernet16 17,18 fiftyGigE1/5/1 5 50000 -Ethernet18 19,20 fiftyGigE1/5/2 5 50000 -Ethernet20 21,22 fiftyGigE1/6/1 6 50000 -Ethernet22 23,24 fiftyGigE1/6/2 6 50000 -Ethernet24 25,26,27,28 hundredGigE1/7 7 100000 -Ethernet28 29,30,31,32 hundredGigE1/8 8 100000 -Ethernet32 33,34,35,36 hundredGigE1/9 9 100000 -Ethernet36 37,38,39,40 hundredGigE1/10 10 100000 -Ethernet40 41,42 fiftyGigE1/11/1 11 50000 -Ethernet42 43,44 fiftyGigE1/11/2 11 50000 -Ethernet44 45,46 fiftyGigE1/12/1 12 50000 -Ethernet46 47,48 fiftyGigE1/12/2 12 50000 -Ethernet48 49,50 fiftyGigE1/13/1 13 50000 -Ethernet50 51,52 fiftyGigE1/13/2 13 50000 -Ethernet52 53,54 fiftyGigE1/14/1 14 50000 -Ethernet54 55,56 fiftyGigE1/14/2 14 50000 -Ethernet56 57,58 fiftyGigE1/15/1 15 50000 -Ethernet58 59,60 fiftyGigE1/15/2 15 50000 -Ethernet60 61,62 fiftyGigE1/16/1 16 50000 -Ethernet62 63,64 fiftyGigE1/16/2 16 50000 -Ethernet64 65,66 fiftyGigE1/17/1 17 50000 -Ethernet66 67,68 fiftyGigE1/17/2 17 50000 -Ethernet68 69,70 fiftyGigE1/18/1 18 50000 -Ethernet70 71,72 fiftyGigE1/18/2 18 50000 -Ethernet72 73,74 fiftyGigE1/19/1 19 50000 -Ethernet74 75,76 fiftyGigE1/19/2 19 50000 -Ethernet76 77,78 fiftyGigE1/20/1 20 50000 -Ethernet78 79,80 fiftyGigE1/20/2 20 50000 -Ethernet80 81,82 fiftyGigE1/21/1 21 50000 -Ethernet82 83,84 fiftyGigE1/21/2 21 50000 -Ethernet84 85,86 fiftyGigE1/22/1 22 50000 -Ethernet86 87,88 fiftyGigE1/22/2 22 50000 -Ethernet88 89,90 fiftyGigE1/23/1 23 50000 -Ethernet90 91,92 fiftyGigE1/23/2 23 50000 -Ethernet92 93,94 fiftyGigE1/24/1 24 50000 -Ethernet94 95,96 fiftyGigE1/24/2 24 50000 -Ethernet96 97,98 fiftyGigE1/25/1 25 50000 -Ethernet98 99,100 fiftyGigE1/25/2 25 50000 -Ethernet100 101,102 fiftyGigE1/26/1 26 50000 -Ethernet102 103,104 fiftyGigE1/26/2 26 50000 -Ethernet104 105,106,107,108 hundredGigE1/27 27 100000 -Ethernet108 109,110,111,112 hundredGigE1/28 28 100000 -Ethernet112 113,114,115,116 hundredGigE1/29 29 100000 -Ethernet116 117,118,119,120 hundredGigE1/30 30 100000 -Ethernet120 121,122 fiftyGigE1/31/1 31 50000 -Ethernet122 123,124 fiftyGigE1/31/2 31 50000 -Ethernet124 125,126 fiftyGigE1/32/1 32 50000 -Ethernet126 127,128 fiftyGigE1/32/2 32 50000 -Ethernet128 129 tenGigE1/33 33 10000 -Ethernet129 128 tenGigE1/34 34 10000 diff --git a/device/dell/x86_64-dellemc_s5232f_c3538-r0/DellEMC-S5232f-C8D48/qos.json.j2 b/device/dell/x86_64-dellemc_s5232f_c3538-r0/DellEMC-S5232f-C8D48/qos.json.j2 deleted file mode 100644 index 3e548325ea30..000000000000 --- a/device/dell/x86_64-dellemc_s5232f_c3538-r0/DellEMC-S5232f-C8D48/qos.json.j2 +++ /dev/null @@ -1 +0,0 @@ -{%- include 'qos_config.j2' %} diff --git a/device/dell/x86_64-dellemc_s5232f_c3538-r0/DellEMC-S5232f-C8D48/sai.profile b/device/dell/x86_64-dellemc_s5232f_c3538-r0/DellEMC-S5232f-C8D48/sai.profile deleted file mode 100644 index 0daed30c3bc2..000000000000 --- a/device/dell/x86_64-dellemc_s5232f_c3538-r0/DellEMC-S5232f-C8D48/sai.profile +++ /dev/null @@ -1 +0,0 @@ -SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/td3-s5232f-8x100G+48x50G.config.bcm diff --git a/device/dell/x86_64-dellemc_s5232f_c3538-r0/DellEMC-S5232f-C8D48/sai_preinit_cmd.soc b/device/dell/x86_64-dellemc_s5232f_c3538-r0/DellEMC-S5232f-C8D48/sai_preinit_cmd.soc deleted file mode 100644 index 4d62900f898f..000000000000 --- a/device/dell/x86_64-dellemc_s5232f_c3538-r0/DellEMC-S5232f-C8D48/sai_preinit_cmd.soc +++ /dev/null @@ -1,2 +0,0 @@ -m0 load 0 0x0 /usr/share/sonic/hwsku/linkscan_led_fw.bin -m0 load 0 0x3800 /usr/share/sonic/hwsku/custom_led.bin diff --git a/device/dell/x86_64-dellemc_s5232f_c3538-r0/DellEMC-S5232f-C8D48/td3-s5232f-8x100G+48x50G.config.bcm b/device/dell/x86_64-dellemc_s5232f_c3538-r0/DellEMC-S5232f-C8D48/td3-s5232f-8x100G+48x50G.config.bcm deleted file mode 100644 index cf0bfd043ee0..000000000000 --- a/device/dell/x86_64-dellemc_s5232f_c3538-r0/DellEMC-S5232f-C8D48/td3-s5232f-8x100G+48x50G.config.bcm +++ /dev/null @@ -1,572 +0,0 @@ -os=unix - -core_clock_frequency=1525 -dpp_clock_ratio=2:3 - -parity_enable=1 -parity_correction=1 -tdma_intr_enable=1 -schan_intr_enable=0 -tdma_intr_enable=1 -miim_intr_enable=1 -stat_if_parity_enable=1 - -port_flex_enable=1 -port_flex_enable_66=0 -port_flex_enable_130=0 -phy_an_c73=3 -phy_an_c73_66=0 -phy_an_c73_130=0 - -module_64ports=0 -table_dma_enable=1 -tdma_timeout_usec=5000000 -mmu_lossless=0 -pdma_descriptor_prefetch_enable=1 -pktdma_poll_mode_channel_bitmap=1 - -l2xmsg_mode=1 -l2xmsg_hostbuf_size=8192 -ipv6_lpm_128b_enable=1 -max_vp_lags=0 - -l3_alpm_enable=2 -l2_mem_entries=32768 -l3_mem_entries=16384 -l3_max_ecmp_mode=1 - -bcm_tunnel_term_compatible_mode=1 -ifp_inports_support_enable=1 - -stable_size=0x5500000 - -oversubscribe_mode=1 -pbmp_oversubscribe=0x6fffffffffffffffdfffffffffffffffe -pbmp_xport_xe=0x6fffffffffffffffdfffffffffffffffe - - -portmap_1.0=1:50:2 -portmap_3.0=3:50:2 -portmap_5.0=5:50:2 -portmap_7.0=7:50:2 -portmap_9.0=9:50:2 -portmap_11.0=11:50:2 -portmap_13.0=13:50:2 -portmap_15.0=15:50:2 -portmap_17.0=17:50:2 -portmap_19.0=19:50:2 -portmap_21.0=21:50:2 -portmap_23.0=23:50:2 -portmap_25.0=25:100 -portmap_29.0=29:100 -portmap_33.0=33:100 -portmap_37.0=37:100 -portmap_41.0=41:50:2 -portmap_43.0=43:50:2 -portmap_45.0=45:50:2 -portmap_47.0=47:50:2 -portmap_49.0=49:50:2 -portmap_51.0=51:50:2 -portmap_53.0=53:50:2 -portmap_55.0=55:50:2 -portmap_57.0=57:50:2 -portmap_59.0=59:50:2 -portmap_61.0=61:50:2 -portmap_63.0=63:50:2 -portmap_67.0=65:50:2 -portmap_69.0=67:50:2 -portmap_71.0=69:50:2 -portmap_73.0=71:50:2 -portmap_75.0=73:50:2 -portmap_77.0=75:50:2 -portmap_79.0=77:50:2 -portmap_81.0=79:50:2 -portmap_83.0=81:50:2 -portmap_85.0=83:50:2 -portmap_87.0=85:50:2 -portmap_89.0=87:50:2 -portmap_91.0=89:50:2 -portmap_93.0=91:50:2 -portmap_95.0=93:50:2 -portmap_97.0=95:50:2 -portmap_99.0=97:50:2 -portmap_101.0=99:50:2 -portmap_103.0=101:50:2 -portmap_105.0=103:50:2 -portmap_107.0=105:100 -portmap_111.0=109:100 -portmap_115.0=113:100 -portmap_119.0=117:100 -portmap_123.0=121:50:2 -portmap_125.0=123:50:2 -portmap_127.0=125:50:2 -portmap_129.0=127:50:2 -portmap_130.0=128:10:m -portmap_66.0=129:10:m - - -phy_chain_tx_lane_map_physical{1.0}=0x0132 -phy_chain_rx_lane_map_physical{1.0}=0x3210 -phy_chain_tx_lane_map_physical{5.0}=0x2301 -phy_chain_rx_lane_map_physical{5.0}=0x2031 -phy_chain_tx_lane_map_physical{9.0}=0x0132 -phy_chain_rx_lane_map_physical{9.0}=0x3210 -phy_chain_tx_lane_map_physical{13.0}=0x3201 -phy_chain_rx_lane_map_physical{13.0}=0x2031 -phy_chain_tx_lane_map_physical{17.0}=0x0123 -phy_chain_rx_lane_map_physical{17.0}=0x3210 -phy_chain_tx_lane_map_physical{21.0}=0x2301 -phy_chain_rx_lane_map_physical{21.0}=0x2031 -phy_chain_tx_lane_map_physical{25.0}=0x0123 -phy_chain_rx_lane_map_physical{25.0}=0x3210 -phy_chain_tx_lane_map_physical{29.0}=0x3201 -phy_chain_rx_lane_map_physical{29.0}=0x2031 -phy_chain_tx_lane_map_physical{33.0}=0x0213 -phy_chain_rx_lane_map_physical{33.0}=0x1302 -phy_chain_tx_lane_map_physical{37.0}=0x1302 -phy_chain_rx_lane_map_physical{37.0}=0x2031 -phy_chain_tx_lane_map_physical{41.0}=0x0231 -phy_chain_rx_lane_map_physical{41.0}=0x3120 -phy_chain_tx_lane_map_physical{45.0}=0x1302 -phy_chain_rx_lane_map_physical{45.0}=0x2031 -phy_chain_tx_lane_map_physical{49.0}=0x2103 -phy_chain_rx_lane_map_physical{49.0}=0x3120 -phy_chain_tx_lane_map_physical{53.0}=0x2301 -phy_chain_rx_lane_map_physical{53.0}=0x2031 -phy_chain_tx_lane_map_physical{57.0}=0x0123 -phy_chain_rx_lane_map_physical{57.0}=0x2301 -phy_chain_tx_lane_map_physical{61.0}=0x3210 -phy_chain_rx_lane_map_physical{61.0}=0x1032 -phy_chain_tx_lane_map_physical{65.0}=0x3210 -phy_chain_rx_lane_map_physical{65.0}=0x1023 -phy_chain_tx_lane_map_physical{69.0}=0x0123 -phy_chain_rx_lane_map_physical{69.0}=0x1302 -phy_chain_tx_lane_map_physical{73.0}=0x2301 -phy_chain_rx_lane_map_physical{73.0}=0x1032 -phy_chain_tx_lane_map_physical{77.0}=0x2013 -phy_chain_rx_lane_map_physical{77.0}=0x3120 -phy_chain_tx_lane_map_physical{81.0}=0x1302 -phy_chain_rx_lane_map_physical{81.0}=0x2031 -phy_chain_tx_lane_map_physical{85.0}=0x0123 -phy_chain_rx_lane_map_physical{85.0}=0x2130 -phy_chain_tx_lane_map_physical{89.0}=0x2301 -phy_chain_rx_lane_map_physical{89.0}=0x2031 -phy_chain_tx_lane_map_physical{93.0}=0x0312 -phy_chain_rx_lane_map_physical{93.0}=0x2310 -phy_chain_tx_lane_map_physical{97.0}=0x2301 -phy_chain_rx_lane_map_physical{97.0}=0x1032 -phy_chain_tx_lane_map_physical{101.0}=0x0123 -phy_chain_rx_lane_map_physical{101.0}=0x3210 -phy_chain_tx_lane_map_physical{105.0}=0x2301 -phy_chain_rx_lane_map_physical{105.0}=0x1032 -phy_chain_tx_lane_map_physical{109.0}=0x0123 -phy_chain_rx_lane_map_physical{109.0}=0x3210 -phy_chain_tx_lane_map_physical{113.0}=0x2301 -phy_chain_rx_lane_map_physical{113.0}=0x2031 -phy_chain_tx_lane_map_physical{117.0}=0x0123 -phy_chain_rx_lane_map_physical{117.0}=0x3210 -phy_chain_tx_lane_map_physical{121.0}=0x2301 -phy_chain_rx_lane_map_physical{121.0}=0x1032 -phy_chain_tx_lane_map_physical{125.0}=0x0123 -phy_chain_rx_lane_map_physical{125.0}=0x3210 -phy_chain_tx_lane_map_physical{129.0}=0x3210 -phy_chain_rx_lane_map_physical{129.0}=0x0231 -phy_chain_tx_lane_map_physical{128.0}=0x3210 -phy_chain_rx_lane_map_physical{128.0}=0x0231 -phy_chain_tx_polarity_flip_physical{1.0}=0x0 -phy_chain_rx_polarity_flip_physical{1.0}=0x0 -phy_chain_tx_polarity_flip_physical{2.0}=0x0 -phy_chain_rx_polarity_flip_physical{2.0}=0x1 -phy_chain_tx_polarity_flip_physical{3.0}=0x0 -phy_chain_rx_polarity_flip_physical{3.0}=0x0 -phy_chain_tx_polarity_flip_physical{4.0}=0x1 -phy_chain_rx_polarity_flip_physical{4.0}=0x1 -phy_chain_tx_polarity_flip_physical{5.0}=0x0 -phy_chain_rx_polarity_flip_physical{5.0}=0x0 -phy_chain_tx_polarity_flip_physical{6.0}=0x1 -phy_chain_rx_polarity_flip_physical{6.0}=0x1 -phy_chain_tx_polarity_flip_physical{7.0}=0x0 -phy_chain_rx_polarity_flip_physical{7.0}=0x1 -phy_chain_tx_polarity_flip_physical{8.0}=0x1 -phy_chain_rx_polarity_flip_physical{8.0}=0x1 -phy_chain_tx_polarity_flip_physical{9.0}=0x0 -phy_chain_rx_polarity_flip_physical{9.0}=0x0 -phy_chain_tx_polarity_flip_physical{10.0}=0x0 -phy_chain_rx_polarity_flip_physical{10.0}=0x1 -phy_chain_tx_polarity_flip_physical{11.0}=0x0 -phy_chain_rx_polarity_flip_physical{11.0}=0x0 -phy_chain_tx_polarity_flip_physical{12.0}=0x1 -phy_chain_rx_polarity_flip_physical{12.0}=0x1 -phy_chain_tx_polarity_flip_physical{13.0}=0x0 -phy_chain_rx_polarity_flip_physical{13.0}=0x0 -phy_chain_tx_polarity_flip_physical{14.0}=0x1 -phy_chain_rx_polarity_flip_physical{14.0}=0x1 -phy_chain_tx_polarity_flip_physical{15.0}=0x0 -phy_chain_rx_polarity_flip_physical{15.0}=0x1 -phy_chain_tx_polarity_flip_physical{16.0}=0x0 -phy_chain_rx_polarity_flip_physical{16.0}=0x1 -phy_chain_tx_polarity_flip_physical{17.0}=0x0 -phy_chain_rx_polarity_flip_physical{17.0}=0x0 -phy_chain_tx_polarity_flip_physical{18.0}=0x1 -phy_chain_rx_polarity_flip_physical{18.0}=0x1 -phy_chain_tx_polarity_flip_physical{19.0}=0x0 -phy_chain_rx_polarity_flip_physical{19.0}=0x0 -phy_chain_tx_polarity_flip_physical{20.0}=0x1 -phy_chain_rx_polarity_flip_physical{20.0}=0x1 -phy_chain_tx_polarity_flip_physical{21.0}=0x0 -phy_chain_rx_polarity_flip_physical{21.0}=0x0 -phy_chain_tx_polarity_flip_physical{22.0}=0x1 -phy_chain_rx_polarity_flip_physical{22.0}=0x1 -phy_chain_tx_polarity_flip_physical{23.0}=0x0 -phy_chain_rx_polarity_flip_physical{23.0}=0x1 -phy_chain_tx_polarity_flip_physical{24.0}=0x1 -phy_chain_rx_polarity_flip_physical{24.0}=0x1 -phy_chain_tx_polarity_flip_physical{25.0}=0x0 -phy_chain_rx_polarity_flip_physical{25.0}=0x1 -phy_chain_tx_polarity_flip_physical{26.0}=0x1 -phy_chain_rx_polarity_flip_physical{26.0}=0x0 -phy_chain_tx_polarity_flip_physical{27.0}=0x0 -phy_chain_rx_polarity_flip_physical{27.0}=0x1 -phy_chain_tx_polarity_flip_physical{28.0}=0x1 -phy_chain_rx_polarity_flip_physical{28.0}=0x0 -phy_chain_tx_polarity_flip_physical{29.0}=0x1 -phy_chain_rx_polarity_flip_physical{29.0}=0x1 -phy_chain_tx_polarity_flip_physical{30.0}=0x1 -phy_chain_rx_polarity_flip_physical{30.0}=0x0 -phy_chain_tx_polarity_flip_physical{31.0}=0x0 -phy_chain_rx_polarity_flip_physical{31.0}=0x0 -phy_chain_tx_polarity_flip_physical{32.0}=0x0 -phy_chain_rx_polarity_flip_physical{32.0}=0x0 -phy_chain_tx_polarity_flip_physical{33.0}=0x1 -phy_chain_rx_polarity_flip_physical{33.0}=0x1 -phy_chain_tx_polarity_flip_physical{34.0}=0x0 -phy_chain_rx_polarity_flip_physical{34.0}=0x0 -phy_chain_tx_polarity_flip_physical{35.0}=0x0 -phy_chain_rx_polarity_flip_physical{35.0}=0x0 -phy_chain_tx_polarity_flip_physical{36.0}=0x1 -phy_chain_rx_polarity_flip_physical{36.0}=0x0 -phy_chain_tx_polarity_flip_physical{37.0}=0x1 -phy_chain_rx_polarity_flip_physical{37.0}=0x1 -phy_chain_tx_polarity_flip_physical{38.0}=0x1 -phy_chain_rx_polarity_flip_physical{38.0}=0x0 -phy_chain_tx_polarity_flip_physical{39.0}=0x1 -phy_chain_rx_polarity_flip_physical{39.0}=0x0 -phy_chain_tx_polarity_flip_physical{40.0}=0x0 -phy_chain_rx_polarity_flip_physical{40.0}=0x1 -phy_chain_tx_polarity_flip_physical{41.0}=0x1 -phy_chain_rx_polarity_flip_physical{41.0}=0x1 -phy_chain_tx_polarity_flip_physical{42.0}=0x0 -phy_chain_rx_polarity_flip_physical{42.0}=0x1 -phy_chain_tx_polarity_flip_physical{43.0}=0x1 -phy_chain_rx_polarity_flip_physical{43.0}=0x0 -phy_chain_tx_polarity_flip_physical{44.0}=0x1 -phy_chain_rx_polarity_flip_physical{44.0}=0x1 -phy_chain_tx_polarity_flip_physical{45.0}=0x1 -phy_chain_rx_polarity_flip_physical{45.0}=0x0 -phy_chain_tx_polarity_flip_physical{46.0}=0x1 -phy_chain_rx_polarity_flip_physical{46.0}=0x0 -phy_chain_tx_polarity_flip_physical{47.0}=0x1 -phy_chain_rx_polarity_flip_physical{47.0}=0x1 -phy_chain_tx_polarity_flip_physical{48.0}=0x0 -phy_chain_rx_polarity_flip_physical{48.0}=0x1 -phy_chain_tx_polarity_flip_physical{49.0}=0x1 -phy_chain_rx_polarity_flip_physical{49.0}=0x0 -phy_chain_tx_polarity_flip_physical{50.0}=0x1 -phy_chain_rx_polarity_flip_physical{50.0}=0x0 -phy_chain_tx_polarity_flip_physical{51.0}=0x0 -phy_chain_rx_polarity_flip_physical{51.0}=0x1 -phy_chain_tx_polarity_flip_physical{52.0}=0x1 -phy_chain_rx_polarity_flip_physical{52.0}=0x1 -phy_chain_tx_polarity_flip_physical{53.0}=0x0 -phy_chain_rx_polarity_flip_physical{53.0}=0x0 -phy_chain_tx_polarity_flip_physical{54.0}=0x1 -phy_chain_rx_polarity_flip_physical{54.0}=0x1 -phy_chain_tx_polarity_flip_physical{55.0}=0x0 -phy_chain_rx_polarity_flip_physical{55.0}=0x1 -phy_chain_tx_polarity_flip_physical{56.0}=0x1 -phy_chain_rx_polarity_flip_physical{56.0}=0x1 -phy_chain_tx_polarity_flip_physical{57.0}=0x1 -phy_chain_rx_polarity_flip_physical{57.0}=0x0 -phy_chain_tx_polarity_flip_physical{58.0}=0x1 -phy_chain_rx_polarity_flip_physical{58.0}=0x1 -phy_chain_tx_polarity_flip_physical{59.0}=0x0 -phy_chain_rx_polarity_flip_physical{59.0}=0x0 -phy_chain_tx_polarity_flip_physical{60.0}=0x1 -phy_chain_rx_polarity_flip_physical{60.0}=0x1 -phy_chain_tx_polarity_flip_physical{61.0}=0x0 -phy_chain_rx_polarity_flip_physical{61.0}=0x1 -phy_chain_tx_polarity_flip_physical{62.0}=0x1 -phy_chain_rx_polarity_flip_physical{62.0}=0x0 -phy_chain_tx_polarity_flip_physical{63.0}=0x0 -phy_chain_rx_polarity_flip_physical{63.0}=0x1 -phy_chain_tx_polarity_flip_physical{64.0}=0x0 -phy_chain_rx_polarity_flip_physical{64.0}=0x0 -phy_chain_tx_polarity_flip_physical{65.0}=0x1 -phy_chain_rx_polarity_flip_physical{65.0}=0x0 -phy_chain_tx_polarity_flip_physical{66.0}=0x0 -phy_chain_rx_polarity_flip_physical{66.0}=0x0 -phy_chain_tx_polarity_flip_physical{67.0}=0x1 -phy_chain_rx_polarity_flip_physical{67.0}=0x1 -phy_chain_tx_polarity_flip_physical{68.0}=0x0 -phy_chain_rx_polarity_flip_physical{68.0}=0x0 -phy_chain_tx_polarity_flip_physical{69.0}=0x1 -phy_chain_rx_polarity_flip_physical{69.0}=0x1 -phy_chain_tx_polarity_flip_physical{70.0}=0x0 -phy_chain_rx_polarity_flip_physical{70.0}=0x0 -phy_chain_tx_polarity_flip_physical{71.0}=0x1 -phy_chain_rx_polarity_flip_physical{71.0}=0x0 -phy_chain_tx_polarity_flip_physical{72.0}=0x0 -phy_chain_rx_polarity_flip_physical{72.0}=0x0 -phy_chain_tx_polarity_flip_physical{73.0}=0x0 -phy_chain_rx_polarity_flip_physical{73.0}=0x1 -phy_chain_tx_polarity_flip_physical{74.0}=0x1 -phy_chain_rx_polarity_flip_physical{74.0}=0x0 -phy_chain_tx_polarity_flip_physical{75.0}=0x0 -phy_chain_rx_polarity_flip_physical{75.0}=0x1 -phy_chain_tx_polarity_flip_physical{76.0}=0x1 -phy_chain_rx_polarity_flip_physical{76.0}=0x0 -phy_chain_tx_polarity_flip_physical{77.0}=0x0 -phy_chain_rx_polarity_flip_physical{77.0}=0x0 -phy_chain_tx_polarity_flip_physical{78.0}=0x0 -phy_chain_rx_polarity_flip_physical{78.0}=0x0 -phy_chain_tx_polarity_flip_physical{79.0}=0x1 -phy_chain_rx_polarity_flip_physical{79.0}=0x1 -phy_chain_tx_polarity_flip_physical{80.0}=0x1 -phy_chain_rx_polarity_flip_physical{80.0}=0x1 -phy_chain_tx_polarity_flip_physical{81.0}=0x0 -phy_chain_rx_polarity_flip_physical{81.0}=0x0 -phy_chain_tx_polarity_flip_physical{82.0}=0x0 -phy_chain_rx_polarity_flip_physical{82.0}=0x0 -phy_chain_tx_polarity_flip_physical{83.0}=0x1 -phy_chain_rx_polarity_flip_physical{83.0}=0x1 -phy_chain_tx_polarity_flip_physical{84.0}=0x1 -phy_chain_rx_polarity_flip_physical{84.0}=0x0 -phy_chain_tx_polarity_flip_physical{85.0}=0x1 -phy_chain_rx_polarity_flip_physical{85.0}=0x1 -phy_chain_tx_polarity_flip_physical{86.0}=0x0 -phy_chain_rx_polarity_flip_physical{86.0}=0x1 -phy_chain_tx_polarity_flip_physical{87.0}=0x1 -phy_chain_rx_polarity_flip_physical{87.0}=0x0 -phy_chain_tx_polarity_flip_physical{88.0}=0x0 -phy_chain_rx_polarity_flip_physical{88.0}=0x0 -phy_chain_tx_polarity_flip_physical{89.0}=0x1 -phy_chain_rx_polarity_flip_physical{89.0}=0x0 -phy_chain_tx_polarity_flip_physical{90.0}=0x0 -phy_chain_rx_polarity_flip_physical{90.0}=0x0 -phy_chain_tx_polarity_flip_physical{91.0}=0x1 -phy_chain_rx_polarity_flip_physical{91.0}=0x1 -phy_chain_tx_polarity_flip_physical{92.0}=0x0 -phy_chain_rx_polarity_flip_physical{92.0}=0x1 -phy_chain_tx_polarity_flip_physical{93.0}=0x1 -phy_chain_rx_polarity_flip_physical{93.0}=0x1 -phy_chain_tx_polarity_flip_physical{94.0}=0x1 -phy_chain_rx_polarity_flip_physical{94.0}=0x1 -phy_chain_tx_polarity_flip_physical{95.0}=0x0 -phy_chain_rx_polarity_flip_physical{95.0}=0x0 -phy_chain_tx_polarity_flip_physical{96.0}=0x0 -phy_chain_rx_polarity_flip_physical{96.0}=0x1 -phy_chain_tx_polarity_flip_physical{97.0}=0x1 -phy_chain_rx_polarity_flip_physical{97.0}=0x1 -phy_chain_tx_polarity_flip_physical{98.0}=0x0 -phy_chain_rx_polarity_flip_physical{98.0}=0x0 -phy_chain_tx_polarity_flip_physical{99.0}=0x1 -phy_chain_rx_polarity_flip_physical{99.0}=0x1 -phy_chain_tx_polarity_flip_physical{100.0}=0x0 -phy_chain_rx_polarity_flip_physical{100.0}=0x0 -phy_chain_tx_polarity_flip_physical{101.0}=0x1 -phy_chain_rx_polarity_flip_physical{101.0}=0x0 -phy_chain_tx_polarity_flip_physical{102.0}=0x0 -phy_chain_rx_polarity_flip_physical{102.0}=0x1 -phy_chain_tx_polarity_flip_physical{103.0}=0x1 -phy_chain_rx_polarity_flip_physical{103.0}=0x0 -phy_chain_tx_polarity_flip_physical{104.0}=0x0 -phy_chain_rx_polarity_flip_physical{104.0}=0x0 -phy_chain_tx_polarity_flip_physical{105.0}=0x1 -phy_chain_rx_polarity_flip_physical{105.0}=0x0 -phy_chain_tx_polarity_flip_physical{106.0}=0x0 -phy_chain_rx_polarity_flip_physical{106.0}=0x1 -phy_chain_tx_polarity_flip_physical{107.0}=0x1 -phy_chain_rx_polarity_flip_physical{107.0}=0x0 -phy_chain_tx_polarity_flip_physical{108.0}=0x0 -phy_chain_rx_polarity_flip_physical{108.0}=0x1 -phy_chain_tx_polarity_flip_physical{109.0}=0x1 -phy_chain_rx_polarity_flip_physical{109.0}=0x1 -phy_chain_tx_polarity_flip_physical{110.0}=0x0 -phy_chain_rx_polarity_flip_physical{110.0}=0x0 -phy_chain_tx_polarity_flip_physical{111.0}=0x1 -phy_chain_rx_polarity_flip_physical{111.0}=0x1 -phy_chain_tx_polarity_flip_physical{112.0}=0x0 -phy_chain_rx_polarity_flip_physical{112.0}=0x0 -phy_chain_tx_polarity_flip_physical{113.0}=0x1 -phy_chain_rx_polarity_flip_physical{113.0}=0x1 -phy_chain_tx_polarity_flip_physical{114.0}=0x0 -phy_chain_rx_polarity_flip_physical{114.0}=0x0 -phy_chain_tx_polarity_flip_physical{115.0}=0x1 -phy_chain_rx_polarity_flip_physical{115.0}=0x0 -phy_chain_tx_polarity_flip_physical{116.0}=0x0 -phy_chain_rx_polarity_flip_physical{116.0}=0x0 -phy_chain_tx_polarity_flip_physical{117.0}=0x1 -phy_chain_rx_polarity_flip_physical{117.0}=0x1 -phy_chain_tx_polarity_flip_physical{118.0}=0x0 -phy_chain_rx_polarity_flip_physical{118.0}=0x0 -phy_chain_tx_polarity_flip_physical{119.0}=0x1 -phy_chain_rx_polarity_flip_physical{119.0}=0x1 -phy_chain_tx_polarity_flip_physical{120.0}=0x0 -phy_chain_rx_polarity_flip_physical{120.0}=0x0 -phy_chain_tx_polarity_flip_physical{121.0}=0x1 -phy_chain_rx_polarity_flip_physical{121.0}=0x0 -phy_chain_tx_polarity_flip_physical{122.0}=0x0 -phy_chain_rx_polarity_flip_physical{122.0}=0x1 -phy_chain_tx_polarity_flip_physical{123.0}=0x1 -phy_chain_rx_polarity_flip_physical{123.0}=0x0 -phy_chain_tx_polarity_flip_physical{124.0}=0x0 -phy_chain_rx_polarity_flip_physical{124.0}=0x1 -phy_chain_tx_polarity_flip_physical{125.0}=0x1 -phy_chain_rx_polarity_flip_physical{125.0}=0x1 -phy_chain_tx_polarity_flip_physical{126.0}=0x0 -phy_chain_rx_polarity_flip_physical{126.0}=0x0 -phy_chain_tx_polarity_flip_physical{127.0}=0x1 -phy_chain_rx_polarity_flip_physical{127.0}=0x1 -phy_chain_tx_polarity_flip_physical{128.0}=0x0 -phy_chain_rx_polarity_flip_physical{128.0}=0x0 -phy_chain_tx_polarity_flip_physical{129.0}=0x1 -phy_chain_rx_polarity_flip_physical{129.0}=0x0 -phy_chain_tx_polarity_flip_physical{130.0}=0x0 -phy_chain_rx_polarity_flip_physical{130.0}=0x0 -phy_chain_tx_polarity_flip_physical{131.0}=0x1 -phy_chain_rx_polarity_flip_physical{131.0}=0x1 -phy_chain_tx_polarity_flip_physical{132.0}=0x0 -phy_chain_rx_polarity_flip_physical{132.0}=0x1 -dport_map_enable=1 -dport_map_port_1=1 -dport_map_port_2=2 -dport_map_port_3=3 -dport_map_port_4=4 -dport_map_port_5=5 -dport_map_port_6=6 -dport_map_port_7=7 -dport_map_port_8=8 -dport_map_port_9=9 -dport_map_port_10=10 -dport_map_port_11=11 -dport_map_port_12=12 -dport_map_port_13=13 -dport_map_port_14=14 -dport_map_port_15=15 -dport_map_port_16=16 -dport_map_port_17=17 -dport_map_port_18=18 -dport_map_port_19=19 -dport_map_port_20=20 -dport_map_port_21=21 -dport_map_port_22=22 -dport_map_port_23=23 -dport_map_port_24=24 -dport_map_port_25=25 -dport_map_port_26=26 -dport_map_port_27=27 -dport_map_port_28=28 -dport_map_port_29=29 -dport_map_port_30=30 -dport_map_port_31=31 -dport_map_port_32=32 -dport_map_port_33=33 -dport_map_port_34=34 -dport_map_port_35=35 -dport_map_port_36=36 -dport_map_port_37=37 -dport_map_port_38=38 -dport_map_port_39=39 -dport_map_port_40=40 -dport_map_port_41=41 -dport_map_port_42=42 -dport_map_port_43=43 -dport_map_port_44=44 -dport_map_port_45=45 -dport_map_port_46=46 -dport_map_port_47=47 -dport_map_port_48=48 -dport_map_port_49=49 -dport_map_port_50=50 -dport_map_port_51=51 -dport_map_port_52=52 -dport_map_port_53=53 -dport_map_port_54=54 -dport_map_port_55=55 -dport_map_port_56=56 -dport_map_port_57=57 -dport_map_port_58=58 -dport_map_port_59=59 -dport_map_port_60=60 -dport_map_port_61=61 -dport_map_port_62=62 -dport_map_port_63=63 -dport_map_port_64=64 -dport_map_port_67=65 -dport_map_port_68=66 -dport_map_port_69=67 -dport_map_port_70=68 -dport_map_port_71=69 -dport_map_port_72=70 -dport_map_port_73=71 -dport_map_port_74=72 -dport_map_port_75=73 -dport_map_port_76=74 -dport_map_port_77=75 -dport_map_port_78=76 -dport_map_port_79=77 -dport_map_port_80=78 -dport_map_port_81=79 -dport_map_port_82=80 -dport_map_port_83=81 -dport_map_port_84=82 -dport_map_port_85=83 -dport_map_port_86=84 -dport_map_port_87=85 -dport_map_port_88=86 -dport_map_port_89=87 -dport_map_port_90=88 -dport_map_port_91=89 -dport_map_port_92=90 -dport_map_port_93=91 -dport_map_port_94=92 -dport_map_port_95=93 -dport_map_port_96=94 -dport_map_port_97=95 -dport_map_port_98=96 -dport_map_port_99=97 -dport_map_port_100=98 -dport_map_port_101=99 -dport_map_port_102=100 -dport_map_port_103=101 -dport_map_port_104=102 -dport_map_port_105=103 -dport_map_port_106=104 -dport_map_port_107=105 -dport_map_port_108=106 -dport_map_port_109=107 -dport_map_port_110=108 -dport_map_port_111=109 -dport_map_port_112=110 -dport_map_port_113=111 -dport_map_port_114=112 -dport_map_port_115=113 -dport_map_port_116=114 -dport_map_port_117=115 -dport_map_port_118=116 -dport_map_port_119=117 -dport_map_port_120=118 -dport_map_port_121=119 -dport_map_port_122=120 -dport_map_port_123=121 -dport_map_port_124=122 -dport_map_port_125=123 -dport_map_port_126=124 -dport_map_port_127=125 -dport_map_port_129=126 -dport_map_port_66=127 -dport_map_port_130=128 - -mmu_init_config="TD3-DEFAULT-LOSSLESS-P3P4" -sai_preinit_cmd_file=/usr/share/sonic/hwsku/sai_preinit_cmd.soc - diff --git a/dockers/docker-fpm-frr/frr/bgpd/bgpd.main.conf.j2 b/dockers/docker-fpm-frr/frr/bgpd/bgpd.main.conf.j2 index 503c37e9be14..a29569191651 100644 --- a/dockers/docker-fpm-frr/frr/bgpd/bgpd.main.conf.j2 +++ b/dockers/docker-fpm-frr/frr/bgpd/bgpd.main.conf.j2 @@ -62,7 +62,7 @@ router bgp {{ DEVICE_METADATA['localhost']['bgp_asn'] }} {% endblock vlan_advertisement %} ! ! -{% if DEVICE_METADATA['localhost']['sub_role'] == 'FrontEnd' %} +{% if DEVICE_METADATA['localhost']['sub_role'] == 'BackEnd' %} redistribute connected route-map HIDE_INTERNAL {% endif %} ! diff --git a/dockers/docker-fpm-frr/frr/bgpd/templates/general/instance.conf.j2 b/dockers/docker-fpm-frr/frr/bgpd/templates/general/instance.conf.j2 index aed32d291c76..148cfa390e01 100644 --- a/dockers/docker-fpm-frr/frr/bgpd/templates/general/instance.conf.j2 +++ b/dockers/docker-fpm-frr/frr/bgpd/templates/general/instance.conf.j2 @@ -15,21 +15,13 @@ ! {% if neighbor_addr | ipv4 %} address-family ipv4 -{% if 'ASIC' in bgp_session['name'] %} - neighbor {{ neighbor_addr }} peer-group PEER_V4_INT -{% else %} neighbor {{ neighbor_addr }} peer-group PEER_V4 -{% endif %} {% if CONFIG_DB__DEVICE_METADATA['localhost']['sub_role'] == 'BackEnd' %} neighbor {{ neighbor_addr }} route-map FROM_BGP_PEER_V4_INT in {% endif %} {% elif neighbor_addr | ipv6 %} address-family ipv6 -{% if 'ASIC' in bgp_session['name'] %} - neighbor {{ neighbor_addr }} peer-group PEER_V6_INT -{% else %} neighbor {{ neighbor_addr }} peer-group PEER_V6 -{% endif %} {% if CONFIG_DB__DEVICE_METADATA['localhost']['sub_role'] == 'BackEnd' %} neighbor {{ neighbor_addr }} route-map FROM_BGP_PEER_V6_INT in {% endif %} diff --git a/dockers/docker-fpm-frr/frr/bgpd/templates/general/peer-group.conf.j2 b/dockers/docker-fpm-frr/frr/bgpd/templates/general/peer-group.conf.j2 index b0acd1b2a460..8c02eeacbdb4 100644 --- a/dockers/docker-fpm-frr/frr/bgpd/templates/general/peer-group.conf.j2 +++ b/dockers/docker-fpm-frr/frr/bgpd/templates/general/peer-group.conf.j2 @@ -2,38 +2,28 @@ ! template: bgpd/templates/general/peer-group.conf.j2 ! neighbor PEER_V4 peer-group - neighbor PEER_V4_INT peer-group neighbor PEER_V6 peer-group - neighbor PEER_V6_INT peer-group address-family ipv4 {% if CONFIG_DB__DEVICE_METADATA['localhost']['type'] == 'ToRRouter' %} neighbor PEER_V4 allowas-in 1 - neighbor PEER_V4_INT allowas-in 1 {% endif %} {% if CONFIG_DB__DEVICE_METADATA['localhost']['sub_role'] == 'BackEnd' %} - neighbor PEER_V4_INT route-reflector-client + neighbor PEER_V4 route-reflector-client {% endif %} neighbor PEER_V4 soft-reconfiguration inbound neighbor PEER_V4 route-map FROM_BGP_PEER_V4 in neighbor PEER_V4 route-map TO_BGP_PEER_V4 out - neighbor PEER_V4_INT soft-reconfiguration inbound - neighbor PEER_V4_INT route-map FROM_BGP_PEER_V4 in - neighbor PEER_V4_INT route-map TO_BGP_PEER_V4 out exit-address-family address-family ipv6 {% if CONFIG_DB__DEVICE_METADATA['localhost']['type'] == 'ToRRouter' %} neighbor PEER_V6 allowas-in 1 - neighbor PEER_V6_INT allowas-in 1 {% endif %} {% if CONFIG_DB__DEVICE_METADATA['localhost']['sub_role'] == 'BackEnd' %} - neighbor PEER_V6_INT route-reflector-client + neighbor PEER_V6 route-reflector-client {% endif %} neighbor PEER_V6 soft-reconfiguration inbound neighbor PEER_V6 route-map FROM_BGP_PEER_V6 in neighbor PEER_V6 route-map TO_BGP_PEER_V6 out - neighbor PEER_V6_INT soft-reconfiguration inbound - neighbor PEER_V6_INT route-map FROM_BGP_PEER_V6 in - neighbor PEER_V6_INT route-map TO_BGP_PEER_V6 out exit-address-family ! ! end of template: bgpd/templates/general/peer-group.conf.j2 diff --git a/dockers/docker-lldp-sv2/Dockerfile.j2 b/dockers/docker-lldp-sv2/Dockerfile.j2 index af2b0373c373..6a720514ef9b 100644 --- a/dockers/docker-lldp-sv2/Dockerfile.j2 +++ b/dockers/docker-lldp-sv2/Dockerfile.j2 @@ -35,13 +35,12 @@ RUN apt-get purge -y python-pip && \ /python-wheels \ ~/.cache -COPY ["docker-lldp-init.sh", "/usr/bin/"] COPY ["start.sh", "/usr/bin/"] -COPY ["supervisord.conf.j2", "/usr/share/sonic/templates/"] +COPY ["supervisord.conf", "/etc/supervisor/conf.d/"] COPY ["lldpd.conf.j2", "/usr/share/sonic/templates/"] COPY ["lldpd", "/etc/default/"] COPY ["lldpmgrd", "/usr/bin/"] COPY ["files/supervisor-proc-exit-listener", "/usr/bin"] COPY ["critical_processes", "/etc/supervisor"] -ENTRYPOINT ["/usr/bin/docker-lldp-init.sh"] +ENTRYPOINT ["/usr/bin/supervisord"] diff --git a/dockers/docker-lldp-sv2/docker-lldp-init.sh b/dockers/docker-lldp-sv2/docker-lldp-init.sh deleted file mode 100755 index ae507e8f506a..000000000000 --- a/dockers/docker-lldp-sv2/docker-lldp-init.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env bash -#Generate supervisord.conf based on device metadata -mkdir -p /etc/supervisor/conf.d/ -sonic-cfggen -d -t /usr/share/sonic/templates/supervisord.conf.j2 > /etc/supervisor/conf.d/supervisord.conf -exec /usr/bin/supervisord diff --git a/dockers/docker-lldp-sv2/supervisord.conf.j2 b/dockers/docker-lldp-sv2/supervisord.conf similarity index 87% rename from dockers/docker-lldp-sv2/supervisord.conf.j2 rename to dockers/docker-lldp-sv2/supervisord.conf index beae3aa9425e..73ff52f4420e 100644 --- a/dockers/docker-lldp-sv2/supervisord.conf.j2 +++ b/dockers/docker-lldp-sv2/supervisord.conf @@ -31,11 +31,7 @@ stderr_logfile=syslog # - `-dd` means to stay in foreground, log warnings to console # - `-ddd` means to stay in foreground, log warnings and info to console # - `-dddd` means to stay in foreground, log all to console -{% if DEVICE_METADATA['localhost']['sub_role'] is defined and DEVICE_METADATA['localhost']['sub_role']|length %} -command=/usr/sbin/lldpd -d -I Ethernet* -C Ethernet* -{% else %} command=/usr/sbin/lldpd -d -I Ethernet*,eth0 -C eth0 -{% endif %} priority=3 autostart=false autorestart=false diff --git a/files/build_templates/lldp.service.j2 b/files/build_templates/lldp.service.j2 deleted file mode 120000 index 1adb318b9154..000000000000 --- a/files/build_templates/lldp.service.j2 +++ /dev/null @@ -1 +0,0 @@ -per_namespace/lldp.service.j2 \ No newline at end of file diff --git a/files/image_config/config-setup/config-setup b/files/image_config/config-setup/config-setup index 1f95a10bb053..afff97806518 100755 --- a/files/image_config/config-setup/config-setup +++ b/files/image_config/config-setup/config-setup @@ -26,11 +26,7 @@ # Initialize constants UPDATEGRAPH_CONF=/etc/sonic/updategraph.conf -INIT_CFG_JSON=/etc/sonic/init_cfg.json CONFIG_DB_JSON=/etc/sonic/config_db.json -CONFIG_DB_PATH=/etc/sonic/ -CONFIG_DB_PREFIX=config_db -CONFIG_DB_SUFFIX=.json MINGRAPH_FILE=/etc/sonic/minigraph.xml TMP_ZTP_CONFIG_DB_JSON=/tmp/ztp_config_db.json FACTORY_DEFAULT_HOOKS=/etc/config-setup/factory-default-hooks.d @@ -107,16 +103,24 @@ run_hookdir() { reload_minigraph() { echo "Reloading minigraph..." - config load_minigraph -y -n - config save -y -} + if [ ! -f /etc/sonic/init_cfg.json ]; then + echo "{}" > /etc/sonic/init_cfg.json + fi + sonic-db-cli CONFIG_DB FLUSHDB + sonic-cfggen -H -m -j /etc/sonic/init_cfg.json --write-to-db + sonic-db-cli CONFIG_DB SET "CONFIG_DB_INITIALIZED" "1" + if [ -f /etc/sonic/acl.json ]; then + acl-loader update full /etc/sonic/acl.json + fi + config qos reload + pfcwd start_default -# Reload exisitng config db file on disk -reload_configdb() -{ - echo "Reloading existing config db..." - config reload -y -n + if [[ -x /usr/bin/db_migrator.py ]]; then + # Set latest version number + /usr/bin/db_migrator.py -o set_version + fi } + # Restore SONiC configuration from a backup copy function copy_config_files_and_directories() { @@ -277,49 +281,15 @@ copy_post_migration_hooks() fi } -# Get the list of config db for both -# single and multi-npu platforms -get_config_db_file_list() -{ - config_db_file_list=${CONFIG_DB_PREFIX}${CONFIG_DB_SUFFIX} - asic_num=0 - while [[ ($asic_num -lt $NUM_ASIC) && ($NUM_ASIC -gt 1) ]]; do - config_db_file_list+=' '${CONFIG_DB_PREFIX}$asic_num${CONFIG_DB_SUFFIX} - ((asic_num = asic_num + 1)) - done - - echo $config_db_file_list -} -# Check if all needed config db are prsesnt for both -# single and multi-npu platforms -check_all_config_db_present() -{ - if [[ ! -r ${CONFIG_DB_JSON} ]]; then - return 1 - fi - asic_num=0 - while [[ ($asic_num -lt $NUM_ASIC) && ($NUM_ASIC -gt 1) ]]; do - if [[ ! -r ${CONFIG_DB_PATH}${CONFIG_DB_PREFIX}$asic_num${CONFIG_DB_SUFFIX} ]]; then - return 1 - fi - ((asic_num = asic_num + 1)) - done - - return 0 -} - # Perform configuration migration from backup copy. # - This step is performed when a new image is installed and SONiC switch boots into it do_config_migration() { # Identify list of files to migrate - copy_list="minigraph.xml snmp.yml acl.json frr" + copy_list="minigraph.xml snmp.yml acl.json config_db.json frr" # Migrate all configuration files from old to new copy_config_files_and_directories $copy_list - - # Migrate all config_db from old to new - copy_config_files_and_directories $(get_config_db_file_list) # Migrate post-migration hooks copy_post_migration_hooks @@ -332,14 +302,19 @@ do_config_migration() disable_updategraph rm -f /tmp/pending_config_migration exit 0 - elif check_all_config_db_present; then + elif [ -r ${CONFIG_DB_JSON} ]; then echo "Use config_db.json from old system..." - reload_configdb - # Disable updategraph - disable_updategraph + sonic-cfggen -j ${CONFIG_DB_JSON} --write-to-db + + if [[ -x /usr/bin/db_migrator.py ]]; then + # Migrate the DB to the latest schema version if needed + /usr/bin/db_migrator.py -o migrate + fi elif [ -r ${MINGRAPH_FILE} ]; then echo "Use minigraph.xml from old system..." reload_minigraph + sonic-cfggen -d --print-data > ${CONFIG_DB_JSON} + # Disable updategraph disable_updategraph else @@ -374,14 +349,6 @@ boot_config() do_config_migration fi - # For multi-npu platfrom we don't support config initlaiztion. Assumption - # is there should be existing minigraph or config_db from previous image - # file system to trigger. pending_config_initialization will remain set - # for multi-npu platforms if we reach this case. - if [[ ($NUM_ASIC -gt 1) ]]; then - return 0 - fi - if [ -e /tmp/pending_config_initialization ] || [ -e ${CONFIG_SETUP_INITIALIZATION_FLAG} ]; then do_config_initialization fi @@ -404,13 +371,6 @@ boot_config() } ### Execution starts here ### -PLATFORM=`sonic-cfggen -H -v DEVICE_METADATA.localhost.platform` -# Parse the device specific asic conf file, if it exists -ASIC_CONF=/usr/share/sonic/device/$PLATFORM/asic.conf -if [[ -f "$ASIC_CONF" ]]; then - source $ASIC_CONF -fi - CMD=$1 # Default command is boot diff --git a/files/image_config/ntp/ntp-config.sh b/files/image_config/ntp/ntp-config.sh index 7ab84174dcaa..601b7bd421f0 100755 --- a/files/image_config/ntp/ntp-config.sh +++ b/files/image_config/ntp/ntp-config.sh @@ -1,37 +1,5 @@ #!/bin/bash -ntp_default_file='/etc/default/ntp' -ntp_temp_file='/tmp/ntp.orig' - -reboot_type='cold' - -function get_database_reboot_type() -{ - SYSTEM_WARM_START=`sonic-db-cli STATE_DB hget "WARM_RESTART_ENABLE_TABLE|system" enable` - SYSTEM_FAST_START=`sonic-db-cli STATE_DB get "FAST_REBOOT|system"` - - if [[ x"${SYSTEM_WARM_START}" == x"true" ]]; then - reboot_type='warm' - elif [[ x"${SYSTEM_FAST_START}" == x"1" ]]; then - reboot_type='fast' - fi -} - -function modify_ntp_default -{ - cp ${ntp_default_file} ${ntp_temp_file} - sed -e "$1" ${ntp_temp_file} >${ntp_default_file} -} - sonic-cfggen -d -t /usr/share/sonic/templates/ntp.conf.j2 >/etc/ntp.conf -get_database_reboot_type -if [[ x"${reboot_type}" == x"cold" ]]; then - echo "Enabling NTP long jump for reboot type ${reboot_type} ..." - modify_ntp_default "s/NTPD_OPTS='-x'/NTPD_OPTS='-g'/" -else - echo "Disabling NTP long jump for reboot type ${reboot_type} ..." - modify_ntp_default "s/NTPD_OPTS='-g'/NTPD_OPTS='-x'/" -fi - systemctl restart ntp diff --git a/files/image_config/updategraph/updategraph b/files/image_config/updategraph/updategraph index 86ee8a800ae1..a24d452b1ad2 100755 --- a/files/image_config/updategraph/updategraph +++ b/files/image_config/updategraph/updategraph @@ -3,8 +3,25 @@ reload_minigraph() { echo "Reloading minigraph..." - config load_minigraph -y -n - config save -y + if [ ! -f /etc/sonic/init_cfg.json ]; then + echo "{}" > /etc/sonic/init_cfg.json + fi + sonic-db-cli CONFIG_DB FLUSHDB + sonic-cfggen -H -m -j /etc/sonic/init_cfg.json --write-to-db + sonic-db-cli CONFIG_DB SET "CONFIG_DB_INITIALIZED" "1" + if [ -f /etc/sonic/acl.json ]; then + acl-loader update full /etc/sonic/acl.json + fi + config qos reload + DEVICE_TYPE=`sonic-cfggen -m -v DEVICE_METADATA.localhost.type` + if [ "${DEVICE_TYPE}" != "MgmtToRRouter" ]; then + pfcwd start_default + fi + + if [[ -x /usr/bin/db_migrator.py ]]; then + # Set latest version number + /usr/bin/db_migrator.py -o set_version + fi } if [ ! -f /etc/sonic/updategraph.conf ]; then @@ -124,6 +141,7 @@ else fi reload_minigraph +sonic-cfggen -d --print-data > /etc/sonic/config_db.json # Mark as disabled after graph is successfully downloaded sed -i "/enabled=/d" /etc/sonic/updategraph.conf diff --git a/platform/barefoot/bfn-platform.mk b/platform/barefoot/bfn-platform.mk index d2bc97d1496c..1abbedffd6c6 100644 --- a/platform/barefoot/bfn-platform.mk +++ b/platform/barefoot/bfn-platform.mk @@ -1,4 +1,4 @@ -BFN_PLATFORM = bfnplatform_20200507_deb9.deb +BFN_PLATFORM = bfnplatform_20200407_deb9.deb $(BFN_PLATFORM)_URL = "https://github.com/barefootnetworks/sonic-release-pkgs/raw/dev/$(BFN_PLATFORM)" SONIC_ONLINE_DEBS += $(BFN_PLATFORM) diff --git a/platform/barefoot/bfn-sai.mk b/platform/barefoot/bfn-sai.mk index d899779025df..b58cce6fcf47 100644 --- a/platform/barefoot/bfn-sai.mk +++ b/platform/barefoot/bfn-sai.mk @@ -1,4 +1,4 @@ -BFN_SAI = bfnsdk_20200507_deb9.deb +BFN_SAI = bfnsdk_20200407_deb9.deb $(BFN_SAI)_URL = "https://github.com/barefootnetworks/sonic-release-pkgs/raw/dev/$(BFN_SAI)" $(BFN_SAI)_DEPENDS += $(LIBNL_GENL3_DEV) diff --git a/platform/broadcom/sonic-platform-modules-dell/s6000/scripts/s6000_platform.sh b/platform/broadcom/sonic-platform-modules-dell/s6000/scripts/s6000_platform.sh index 98fb13b1522f..bf6c730425e7 100755 --- a/platform/broadcom/sonic-platform-modules-dell/s6000/scripts/s6000_platform.sh +++ b/platform/broadcom/sonic-platform-modules-dell/s6000/scripts/s6000_platform.sh @@ -60,20 +60,6 @@ remove_i2c_devices() { done } -# Enable/Disable low power mode on all QSFP ports -switch_board_qsfp_lpmode() { - case $1 in - "enable") value=0xffff - ;; - "disable") value=0x0 - ;; - *) echo "s6000_platform: switch_board_qsfp_lpmode: invalid command $1!" - return - ;; - esac - echo $value > /sys/bus/platform/devices/dell-s6000-cpld.0/qsfp_lpmode -} - install_python_api_package() { device="/usr/share/sonic/device" platform=$(/usr/local/bin/sonic-cfggen -H -v DEVICE_METADATA.localhost.platform) @@ -100,7 +86,6 @@ if [[ "$1" == "init" ]]; then add_i2c_devices /usr/local/bin/set-fan-speed 15000 - switch_board_qsfp_lpmode "disable" /usr/local/bin/reset-qsfp elif [[ "$1" == "deinit" ]]; then remove_i2c_devices diff --git a/rules/frr.mk b/rules/frr.mk index df924c8af711..6dc25b30dfff 100644 --- a/rules/frr.mk +++ b/rules/frr.mk @@ -3,8 +3,8 @@ FRR_VERSION = 7.2.1 FRR_SUBVERSION = 0 FRR_BRANCH = frr/7.2 -FRR_TAG = frr-7.2.1-s3 -export FRR_VERSION FRR_SUBVERSION FRR_BRANCH FRR_TAG +FRR_TAG = frr-7.2.1-s2 +export FRR_VERSION FRR_SUBVERSION FRR_BRANCH FRR = frr_$(FRR_VERSION)-sonic-$(FRR_SUBVERSION)_$(CONFIGURED_ARCH).deb diff --git a/sonic-slave-jessie/Dockerfile.j2 b/sonic-slave-jessie/Dockerfile.j2 index 23186d175620..dce30193420c 100644 --- a/sonic-slave-jessie/Dockerfile.j2 +++ b/sonic-slave-jessie/Dockerfile.j2 @@ -276,7 +276,7 @@ RUN apt-get update && apt-get install -y \ RUN apt-get -y build-dep linux # For gobgp and telemetry build -RUN export VERSION=1.14.2 \ +RUN export VERSION=1.11.5 \ {%- if CONFIGURED_ARCH == "armhf" %} && wget https://storage.googleapis.com/golang/go$VERSION.linux-armv6l.tar.gz \ && tar -C /usr/local -xzf go$VERSION.linux-armv6l.tar.gz \ diff --git a/sonic-slave-stretch/Dockerfile.j2 b/sonic-slave-stretch/Dockerfile.j2 index a3936539bc77..f9e96791464d 100644 --- a/sonic-slave-stretch/Dockerfile.j2 +++ b/sonic-slave-stretch/Dockerfile.j2 @@ -315,7 +315,7 @@ RUN apt-get -t stretch-backports install -y debhelper RUN apt-get -y build-dep linux # For gobgp and telemetry build -RUN export VERSION=1.14.2 \ +RUN export VERSION=1.11.5 \ {%- if CONFIGURED_ARCH == "armhf" %} && wget https://storage.googleapis.com/golang/go$VERSION.linux-armv6l.tar.gz \ && tar -C /usr/local -xzf go$VERSION.linux-armv6l.tar.gz \ @@ -420,8 +420,8 @@ RUN add-apt-repository \ stable" RUN apt-get update {%- if CONFIGURED_ARCH == "amd64" %} -RUN apt-get install -y docker-ce=5:18.09.5~3-0~debian-stretch docker-ce-cli=5:18.09.5~3-0~debian-stretch +RUN apt-get install -y docker-ce=5:18.09.5~3-0~debian-stretch {%- else %} -RUN apt-get install -y docker-ce=18.06.3~ce~3-0~debian docker-ce-cli=18.06.3~ce~3-0~debian +RUN apt-get install -y docker-ce=18.06.3~ce~3-0~debian {%- endif %} RUN echo "DOCKER_OPTS=\"--experimental --storage-driver=vfs\"" >> /etc/default/docker diff --git a/src/sonic-config-engine/minigraph.py b/src/sonic-config-engine/minigraph.py index 94ac39dbabde..c81258bee531 100644 --- a/src/sonic-config-engine/minigraph.py +++ b/src/sonic-config-engine/minigraph.py @@ -35,11 +35,7 @@ VLAN_SUB_INTERFACE_SEPARATOR = '.' VLAN_SUB_INTERFACE_VLAN_ID = '10' -FRONTEND_ASIC_SUB_ROLE = 'FrontEnd' -BACKEND_ASIC_SUB_ROLE = 'BackEnd' -BACKEND_ASIC_INTERFACE_NAME_PREFIX = 'Ethernet-BP' - -# Default Virtual Network Index (VNI) +# Default Virtual Network Index (VNI) vni_default = 8000 ############################################################################### @@ -252,24 +248,14 @@ def parse_asic_png(png, asic_name, hostname): return (neighbors, devices, port_speeds) def parse_dpg(dpg, hname): - aclintfs = None - mgmtintfs = None for child in dpg: - """ - In Multi-NPU platforms the acl intfs are defined only for the host not for individual asic. + """In Multi-NPU platforms the acl intfs are defined only for the host not for individual asic. There is just one aclintf node in the minigraph - Get the aclintfs node first. + Get the aclintfs node first. """ - if aclintfs is None and child.find(str(QName(ns, "AclInterfaces"))) is not None: + if child.find(str(QName(ns, "AclInterfaces"))) is not None: aclintfs = child.find(str(QName(ns, "AclInterfaces"))) - """ - In Multi-NPU platforms the mgmt intfs are defined only for the host not for individual asic - There is just one mgmtintf node in the minigraph - Get the mgmtintfs node first. We need mgmt intf to get mgmt ip in per asic dockers. - """ - if mgmtintfs is None and child.find(str(QName(ns, "ManagementIPInterfaces"))) is not None: - mgmtintfs = child.find(str(QName(ns, "ManagementIPInterfaces"))) - + hostname = child.find(str(QName(ns, "Hostname"))) if hostname.text.lower() != hname.lower(): continue @@ -305,6 +291,7 @@ def parse_dpg(dpg, hname): mvrf_en_flag = mv.find(str(QName(ns, "mgmtVrfEnabled"))).text mvrf["vrf_global"] = {"mgmtVrfEnabled": mvrf_en_flag} + mgmtintfs = child.find(str(QName(ns, "ManagementIPInterfaces"))) mgmt_intf = {} for mgmtintf in mgmtintfs.findall(str(QName(ns1, "ManagementIPInterface"))): intfname = mgmtintf.find(str(QName(ns, "AttachTo"))).text @@ -393,8 +380,8 @@ def parse_dpg(dpg, hname): # Give a warning if trying to attach ACL to a LAG member interface, correct way is to attach ACL to the LAG interface if port_alias_map[member] in intfs_inpc: print >> sys.stderr, "Warning: ACL " + aclname + " is attached to a LAG member interface " + port_alias_map[member] + ", instead of LAG interface" - elif member.lower().startswith('erspan') or member.lower().startswith('egress_erspan'): - if member.lower().startswith('erspanv6') or member.lower().startswith('egress_erspanv6'): + elif member.lower().startswith('erspan'): + if member.lower().startswith('erspanv6'): is_mirror_v6 = True else: is_mirror = True @@ -405,9 +392,7 @@ def parse_dpg(dpg, hname): # later after the rest of the minigraph has been parsed. acl_intfs = pc_intfs[:] for panel_port in port_alias_map.values(): - # because of port_alias_asic_map we can have duplicate in port_alias_map - # so check if already present do not add - if panel_port not in intfs_inpc and panel_port not in acl_intfs: + if panel_port not in intfs_inpc: acl_intfs.append(panel_port) break if acl_intfs: @@ -554,39 +539,6 @@ def parse_meta(meta, hname): region = value return syslog_servers, dhcp_servers, ntp_servers, tacacs_servers, mgmt_routes, erspan_dst, deployment_id, region - -def parse_linkmeta(meta, hname): - link = meta.find(str(QName(ns, "Link"))) - linkmetas = {} - for linkmeta in link.findall(str(QName(ns1, "LinkMetadata"))): - port = None - fec_disabled = None - - # Sample: ARISTA05T1:Ethernet1/33;switch-t0:fortyGigE0/4 - key = linkmeta.find(str(QName(ns1, "Key"))).text - endpoints = key.split(';') - for endpoint in endpoints: - t = endpoint.split(':') - if len(t) == 2 and t[0].lower() == hname.lower(): - port = t[1] - break - else: - # Cannot find a matching hname, something went wrong - continue - - properties = linkmeta.find(str(QName(ns1, "Properties"))) - for device_property in properties.findall(str(QName(ns1, "DeviceProperty"))): - name = device_property.find(str(QName(ns1, "Name"))).text - value = device_property.find(str(QName(ns1, "Value"))).text - if name == "FECDisabled": - fec_disabled = value - - linkmetas[port] = {} - if fec_disabled: - linkmetas[port]["FECDisabled"] = fec_disabled - return linkmetas - - def parse_asic_meta(meta, hname): sub_role = None device_metas = meta.find(str(QName(ns, "Devices"))) @@ -693,76 +645,27 @@ def parse_spine_chassis_fe(results, vni, lo_intfs, phyport_intfs, pc_intfs, pc_m # ############################################################################### -def filter_acl_table_bindings(acls, neighbors, port_channels, sub_role): - filter_acls = {} - - # If the asic role is BackEnd no ACL Table (Ctrl/Data/Everflow) is binded. - # This will be applicable in Multi-NPU Platforms. - - if sub_role == BACKEND_ASIC_SUB_ROLE: - return filter_acls - - front_port_channel_intf = [] - - # Get the front panel port channel. It will use port_alias_asic_map - # which will get populated from port_config.ini for Multi-NPU - # architecture - for port_channel_intf in port_channels: - backend_port_channel = any(lag_member in port_alias_asic_map \ - and lag_member.startswith(BACKEND_ASIC_INTERFACE_NAME_PREFIX) \ - for lag_member in port_channels[port_channel_intf]['members']) - if not backend_port_channel: - front_port_channel_intf.append(port_channel_intf) +def filter_acl_mirror_table_bindings(acls, neighbors, port_channels): + """ + Filters out inactive front-panel ports from the binding list for mirror + ACL tables. We define an "active" port as one that is a member of a + port channel or one that is connected to a neighboring device. + """ for acl_table, group_params in acls.iteritems(): group_type = group_params.get('type', None) - filter_acls[acl_table] = acls[acl_table] - # For Control Plane and Data ACL no filtering is needed - # Control Plane ACL has no Interface associated and - # Data Plane ACL Interface are attached via minigraph - # AclInterface. if group_type != 'MIRROR' and group_type != 'MIRRORV6': continue - # Filters out back-panel ports from the binding list for Everflow (Mirror) - # ACL tables. We define an "back-panel" port as one that is a member of a - # port channel connected to back asic or directly connected to back asic. - # This will be applicable in Multi-NPU Platforms. - front_panel_ports = [] - for port in group_params.get('ports', []): - if port in port_alias_asic_map and port.startswith(BACKEND_ASIC_INTERFACE_NAME_PREFIX): - continue - if port in port_channels and port not in front_port_channel_intf: - continue - front_panel_ports.append(port) - - # Filters out inactive front-panel ports from the binding list for mirror - # ACL tables. We define an "active" port as one that is a member of a - # front pannel port channel or one that is connected to a neighboring device via front panel port. - active_ports = [port for port in front_panel_ports if port in neighbors.keys() or port in front_port_channel_intf] - + active_ports = [ port for port in group_params.get('ports', []) if port in neighbors.keys() or port in port_channels ] + if not active_ports: print >> sys.stderr, 'Warning: mirror table {} in ACL_TABLE does not have any ports bound to it'.format(acl_table) - filter_acls[acl_table]['ports'] = active_ports + acls[acl_table]['ports'] = active_ports - return filter_acls - -def enable_internal_bgp_session(bgp_sessions, filename, asic_name): - ''' - In Multi-NPU session the internal sessions will always be up. - So adding the admin-status 'up' configuration to bgp sessions - BGP session between FrontEnd and BackEnd Asics are internal bgp sessions - ''' - local_sub_role = parse_asic_sub_role(filename, asic_name) - - for peer_ip in bgp_sessions.keys(): - peer_name = bgp_sessions[peer_ip]['name'] - peer_sub_role = parse_asic_sub_role(filename, peer_name) - if ((local_sub_role == FRONTEND_ASIC_SUB_ROLE and peer_sub_role == BACKEND_ASIC_SUB_ROLE) or - (local_sub_role == BACKEND_ASIC_SUB_ROLE and peer_sub_role == FRONTEND_ASIC_SUB_ROLE)): - bgp_sessions[peer_ip].update({'admin_status': 'up'}) + return acls ############################################################################### # @@ -780,6 +683,7 @@ def parse_xml(filename, platform=None, port_config_file=None, asic_name=None): generate asic specific configuration. """ root = ET.parse(filename).getroot() + mini_graph_path = filename u_neighbors = None u_devices = None @@ -813,9 +717,8 @@ def parse_xml(filename, platform=None, port_config_file=None, asic_name=None): deployment_id = None region = None hostname = None - linkmetas = {} - # hostname is the asic_name, get the asic_id from the asic_name + #hostname is the asic_name, get the asic_id from the asic_name if asic_name is not None: asic_id = get_npu_id_from_name(asic_name) else: @@ -848,8 +751,6 @@ def parse_xml(filename, platform=None, port_config_file=None, asic_name=None): (u_neighbors, u_devices, _, _, _, _, _, _) = parse_png(child, hostname) elif child.tag == str(QName(ns, "MetadataDeclaration")): (syslog_servers, dhcp_servers, ntp_servers, tacacs_servers, mgmt_routes, erspan_dst, deployment_id, region) = parse_meta(child, hostname) - elif child.tag == str(QName(ns, "LinkMetadataDeclaration")): - linkmetas = parse_linkmeta(child, hostname) elif child.tag == str(QName(ns, "DeviceInfos")): (port_speeds_default, port_descriptions) = parse_deviceinfo(child, hwsku) else: @@ -857,22 +758,19 @@ def parse_xml(filename, platform=None, port_config_file=None, asic_name=None): (intfs, lo_intfs, mvrf, mgmt_intf, vlans, vlan_members, pcs, pc_members, acls, vni) = parse_dpg(child, asic_name) elif child.tag == str(QName(ns, "CpgDec")): (bgp_sessions, bgp_asn, bgp_peers_with_range, bgp_monitors) = parse_cpg(child, asic_name) - enable_internal_bgp_session(bgp_sessions, filename, asic_name) elif child.tag == str(QName(ns, "PngDec")): (neighbors, devices, port_speed_png) = parse_asic_png(child, asic_name, hostname) elif child.tag == str(QName(ns, "MetadataDeclaration")): (sub_role) = parse_asic_meta(child, asic_name) - elif child.tag == str(QName(ns, "LinkMetadataDeclaration")): - linkmetas = parse_linkmeta(child, hostname) elif child.tag == str(QName(ns, "DeviceInfos")): (port_speeds_default, port_descriptions) = parse_deviceinfo(child, hwsku) - # set the host device type in asic metadata also - device_type = [devices[key]['type'] for key in devices if key.lower() == hostname.lower()][0] if asic_name is None: current_device = [devices[key] for key in devices if key.lower() == hostname.lower()][0] + name = hostname else: current_device = [devices[key] for key in devices if key.lower() == asic_name.lower()][0] + name = asic_name results = {} results['DEVICE_METADATA'] = {'localhost': { @@ -880,9 +778,9 @@ def parse_xml(filename, platform=None, port_config_file=None, asic_name=None): 'deployment_id': deployment_id, 'region': region, 'docker_routing_config_mode': docker_routing_config_mode, - 'hostname': hostname, + 'hostname': name, 'hwsku': hwsku, - 'type': device_type + 'type': current_device['type'] } } # for this hostname, if sub_role is defined, add sub_role in @@ -890,7 +788,6 @@ def parse_xml(filename, platform=None, port_config_file=None, asic_name=None): if sub_role is not None: current_device['sub_role'] = sub_role results['DEVICE_METADATA']['localhost']['sub_role'] = sub_role - results['DEVICE_METADATA']['localhost']['asic_name'] = asic_name results['BGP_NEIGHBOR'] = bgp_sessions results['BGP_MONITORS'] = bgp_monitors results['BGP_PEER_RANGE'] = bgp_peers_with_range @@ -951,7 +848,7 @@ def parse_xml(filename, platform=None, port_config_file=None, asic_name=None): for port_name in port_speed_png: # not consider port not in port_config.ini - # If no port_config_file is found ports is empty so ignore this error + #If no port_config_file is found ports is empty so ignore this error if port_config_file is not None: if port_name not in ports: print >> sys.stderr, "Warning: ignore interface '%s' as it is not in the port_config.ini" % port_name @@ -960,14 +857,7 @@ def parse_xml(filename, platform=None, port_config_file=None, asic_name=None): ports.setdefault(port_name, {})['speed'] = port_speed_png[port_name] for port_name, port in ports.items(): - # get port alias from port_config.ini - if port_config_file: - alias = port.get('alias') - else: - alias = port_name - # generate default 100G FEC - # Note: FECDisabled only be effective on 100G port right now - if port.get('speed') == '100000' and linkmetas.get(alias, {}).get('FECDisabled', '').lower() != 'true': + if port.get('speed') == '100000': port['fec'] = 'rs' # set port description if parsed from deviceinfo @@ -1078,7 +968,7 @@ def parse_xml(filename, platform=None, port_config_file=None, asic_name=None): results['DHCP_SERVER'] = dict((item, {}) for item in dhcp_servers) results['NTP_SERVER'] = dict((item, {}) for item in ntp_servers) results['TACPLUS_SERVER'] = dict((item, {'priority': '1', 'tcp_port': '49'}) for item in tacacs_servers) - results['ACL_TABLE'] = filter_acl_table_bindings(acls, neighbors, pcs, sub_role) + results['ACL_TABLE'] = filter_acl_mirror_table_bindings(acls, neighbors, pcs) results['FEATURE'] = { 'telemetry': { 'status': 'enabled' diff --git a/src/sonic-config-engine/sonic_device_util.py b/src/sonic-config-engine/sonic_device_util.py index cf1edfd59bfb..994eeb8ae395 100644 --- a/src/sonic-config-engine/sonic_device_util.py +++ b/src/sonic-config-engine/sonic_device_util.py @@ -5,8 +5,6 @@ import re from natsort import natsorted import glob -from swsssdk import ConfigDBConnector, SonicDBConfig - DOCUMENTATION = ''' --- module: sonic_device_util @@ -23,9 +21,6 @@ SONIC_DEVICE_PATH = '/usr/share/sonic/device' NPU_NAME_PREFIX = 'asic' NAMESPACE_PATH_GLOB = '/run/netns/*' -ASIC_CONF_FILENAME = 'asic.conf' -FRONTEND_ASIC_SUB_ROLE = 'FrontEnd' -BACKEND_ASIC_SUB_ROLE = 'BackEnd' def get_machine_info(): if not os.path.isfile('/host/machine.conf'): return None @@ -46,9 +41,7 @@ def get_npu_id_from_name(npu_name): def get_num_npus(): platform = get_platform_info(get_machine_info()) - if not platform: - return 1 - asic_conf_file_path = os.path.join(SONIC_DEVICE_PATH, platform, ASIC_CONF_FILENAME) + asic_conf_file_path = os.path.join(SONIC_DEVICE_PATH, platform, 'asic.conf') if not os.path.isfile(asic_conf_file_path): return 1 with open(asic_conf_file_path) as asic_conf_file: @@ -58,7 +51,7 @@ def get_num_npus(): continue if tokens[0].lower() == 'num_asic': num_npus = tokens[1].strip() - return int(num_npus) + return num_npus def get_namespaces(): """ @@ -71,52 +64,6 @@ def get_namespaces(): ns_list.append(ns) return natsorted(ns_list) -def get_hwsku(): - config_db = ConfigDBConnector() - config_db.connect() - metadata = config_db.get_table('DEVICE_METADATA') - return metadata['localhost']['hwsku'] - -def get_platform(): - if not os.path.isfile('/host/machine.conf'): - return '' - - with open('/host/machine.conf') as machine_conf: - for line in machine_conf: - tokens = line.split('=') - if tokens[0].strip() == 'onie_platform' or tokens[0].strip() == 'aboot_platform': - return tokens[1].strip() - return '' - -def is_multi_npu(): - num_npus = get_num_npus() - return (num_npus > 1) - -def get_all_namespaces(): - """ - In case of Multi-Asic platform, Each ASIC will have a linux network namespace created. - So we loop through the databases in different namespaces and depending on the sub_role - decide whether this is a front end ASIC/namespace or a back end one. - """ - front_ns = [] - back_ns = [] - num_npus = get_num_npus() - SonicDBConfig.load_sonic_global_db_config() - - if is_multi_npu(): - for npu in range(num_npus): - namespace = "{}{}".format(NPU_NAME_PREFIX, npu) - config_db = ConfigDBConnector(use_unix_socket_path=True, namespace=namespace) - config_db.connect() - - metadata = config_db.get_table('DEVICE_METADATA') - if metadata['localhost']['sub_role'] == FRONTEND_ASIC_SUB_ROLE: - front_ns.append(namespace) - elif metadata['localhost']['sub_role'] == BACKEND_ASIC_SUB_ROLE: - back_ns.append(namespace) - - return {'front_ns':front_ns, 'back_ns':back_ns} - def get_platform_info(machine_info): if machine_info != None: if machine_info.has_key('onie_platform'): diff --git a/src/sonic-config-engine/tests/multi_npu_data/sample-minigraph.xml b/src/sonic-config-engine/tests/multi_npu_data/sample-minigraph.xml index 8ca17925c6ec..118202d9b52e 100644 --- a/src/sonic-config-engine/tests/multi_npu_data/sample-minigraph.xml +++ b/src/sonic-config-engine/tests/multi_npu_data/sample-minigraph.xml @@ -650,14 +650,14 @@ 05T2 Ethernet1 multi_npu_platform_01 - Ethernet1/5 + Ethernet1/8 DeviceInterfaceLink 05T2 Ethernet2 multi_npu_platform_01 - Ethernet1/6 + Ethernet1/9 DeviceInterfaceLink diff --git a/src/sonic-config-engine/tests/t0-sample-graph.xml b/src/sonic-config-engine/tests/t0-sample-graph.xml index 5e4a68db0e87..47985f870e50 100644 --- a/src/sonic-config-engine/tests/t0-sample-graph.xml +++ b/src/sonic-config-engine/tests/t0-sample-graph.xml @@ -303,11 +303,6 @@ everflowV6 Everflow - - EGRESS_ERSPAN - everflow_egress - Everflow - PortChannel01;PortChannel02;PortChannel03;PortChannel04 DataAclIngress @@ -381,14 +376,13 @@ Ethernet1/1 switch-t0 fortyGigE0/124 - 100000 DeviceInterfaceLink true - 100000 + 10000 switch-t0 - fortyGigE0/4 + fortyGigE0/2 true ARISTA05T1 Ethernet1/33 @@ -440,32 +434,6 @@ - - - - - - - FECDisabled - - True - - - ARISTA05T1:Ethernet1/33;switch-t0:fortyGigE0/4 - - - - - - FECDisabled - - True - - - ARISTA06T1:Ethernet1/34;switch-t0:fortyGigE0/8 - - - switch-t0 Force10-S6000 diff --git a/src/sonic-config-engine/tests/test_cfggen.py b/src/sonic-config-engine/tests/test_cfggen.py index 816575f84171..07769e0bf613 100644 --- a/src/sonic-config-engine/tests/test_cfggen.py +++ b/src/sonic-config-engine/tests/test_cfggen.py @@ -107,9 +107,10 @@ def test_minigraph_acl(self): argument = '-m "' + self.sample_graph_t0 + '" -p "' + self.port_config + '" -v ACL_TABLE' output = self.run_script(argument, True) self.assertEqual(output.strip(), "Warning: Ignoring Control Plane ACL NTP_ACL without type\n" + "Warning: ignore interface 'fortyGigE0/2' as it is not in the port_config.ini\n" + "Warning: ignore interface 'fortyGigE0/2' in DEVICE_NEIGHBOR as it is not in the port_config.ini\n" "{'NTP_ACL': {'services': ['NTP'], 'type': 'CTRLPLANE', 'policy_desc': 'NTP_ACL', 'stage': 'ingress'}, " "'EVERFLOW': {'stage': 'ingress', 'type': 'MIRROR', 'ports': ['PortChannel01', 'PortChannel02', 'PortChannel03', 'PortChannel04', 'Ethernet4'], 'policy_desc': 'EVERFLOW'}, " - "'EVERFLOW_EGRESS': {'stage': 'egress', 'type': 'MIRROR', 'ports': ['PortChannel01', 'PortChannel02', 'PortChannel03', 'PortChannel04', 'Ethernet4'], 'policy_desc': 'EVERFLOW_EGRESS'}, " "'ROUTER_PROTECT': {'services': ['SSH', 'SNMP'], 'type': 'CTRLPLANE', 'policy_desc': 'ROUTER_PROTECT', 'stage': 'ingress'}, " "'DATAACLINGRESS': {'stage': 'ingress', 'type': 'L3', 'ports': ['PortChannel01', 'PortChannel02', 'PortChannel03', 'PortChannel04'], 'policy_desc': 'DATAACLINGRESS'}, " "'SNMP_ACL': {'services': ['SNMP'], 'type': 'CTRLPLANE', 'policy_desc': 'SNMP_ACL', 'stage': 'ingress'}, " @@ -189,18 +190,7 @@ def test_minigraph_extra_neighbors(self): def test_minigraph_port_description(self): argument = '-m "' + self.sample_graph_t0 + '" -p "' + self.port_config + '" -v "PORT[\'Ethernet124\']"' output = self.run_script(argument) - self.assertEqual(output.strip(), "{'lanes': '101,102,103,104', 'fec': 'rs', 'pfc_asym': 'off', 'mtu': '9100', 'alias': 'fortyGigE0/124', 'admin_status': 'up', 'speed': '100000', 'description': 'ARISTA04T1:Ethernet1/1'}") - - def test_minigraph_port_fec_disabled(self): - # Test for FECDisabled - argument = '-m "' + self.sample_graph_t0 + '" -p "' + self.port_config + '" -v "PORT[\'Ethernet4\']"' - output = self.run_script(argument) - self.assertEqual(output.strip(), "{'lanes': '25,26,27,28', 'description': 'Servers0:eth0', 'pfc_asym': 'off', 'mtu': '9100', 'alias': 'fortyGigE0/4', 'admin_status': 'up', 'speed': '100000'}") - - def test_minigraph_port_rs(self): - argument = '-m "' + self.sample_graph_t0 + '" -p "' + self.port_config + '" -v "PORT[\'Ethernet124\']"' - output = self.run_script(argument) - self.assertEqual(output.strip(), "{'lanes': '101,102,103,104', 'fec': 'rs', 'pfc_asym': 'off', 'mtu': '9100', 'alias': 'fortyGigE0/124', 'admin_status': 'up', 'speed': '100000', 'description': 'ARISTA04T1:Ethernet1/1'}") + self.assertEqual(output.strip(), "{'lanes': '101,102,103,104', 'description': 'ARISTA04T1:Ethernet1/1', 'pfc_asym': 'off', 'mtu': '9100', 'alias': 'fortyGigE0/124', 'admin_status': 'up'}") def test_minigraph_bgp(self): argument = '-m "' + self.sample_graph_bgp_speaker + '" -p "' + self.port_config + '" -v "BGP_NEIGHBOR[\'10.0.0.59\']"' diff --git a/src/sonic-config-engine/tests/test_multinpu_cfggen.py b/src/sonic-config-engine/tests/test_multinpu_cfggen.py index c3307b482b79..6facae0451db 100644 --- a/src/sonic-config-engine/tests/test_multinpu_cfggen.py +++ b/src/sonic-config-engine/tests/test_multinpu_cfggen.py @@ -9,7 +9,7 @@ ASIC_SKU = 'multi-npu-asic' NUM_ASIC = 4 HOSTNAME = 'multi_npu_platform_01' -DEVICE_TYPE = 'LeafRouter' + class TestMultiNpuCfgGen(TestCase): @@ -116,7 +116,7 @@ def test_mgmt_port(self): self.assertDictEqual(output, {'eth0': {'alias': 'eth0', 'admin_status': 'up'}}) for asic in range(NUM_ASIC): output = json.loads(self.run_script_for_asic(argument, asic, self.port_config[asic])) - self.assertDictEqual(output, {'eth0': {'alias': 'eth0', 'admin_status': 'up'}}) + self.assertDictEqual(output, {}) def test_frontend_asic_portchannels(self): argument = "-m {} -p {} -n asic0 --var-json \"PORTCHANNEL\"".format(self.sample_graph, self.port_config[0]) @@ -197,51 +197,25 @@ def test_frontend_bgp_neighbor(self): output = json.loads(self.run_script(argument)) self.assertDictEqual(output, \ {'10.0.0.1': {'rrclient': 0, 'name': '01T2', 'local_addr': '10.0.0.0', 'nhopself': 0, 'holdtime': '10', 'asn': '65200', 'keepalive': '3'}, - '10.1.0.0': {'rrclient': 0, 'name': 'ASIC2', 'local_addr': '10.1.0.1', 'nhopself': 0, 'holdtime': '0', 'asn': '65100', 'keepalive': '0', 'admin_status': 'up'}, + '10.1.0.0': {'rrclient': 0, 'name': 'ASIC2', 'local_addr': '10.1.0.1', 'nhopself': 0, 'holdtime': '0', 'asn': '65100', 'keepalive': '0'}, 'fc00::2': {'rrclient': 0, 'name': '01T2', 'local_addr': 'fc00::1', 'nhopself': 0, 'holdtime': '10', 'asn': '65200', 'keepalive': '3'}, - '10.1.0.2': {'rrclient': 0, 'name': 'ASIC3', 'local_addr': '10.1.0.3', 'nhopself': 0, 'holdtime': '0', 'asn': '65100', 'keepalive': '0', 'admin_status': 'up'}}) + '10.1.0.2': {'rrclient': 0, 'name': 'ASIC3', 'local_addr': '10.1.0.3', 'nhopself': 0, 'holdtime': '0', 'asn': '65100', 'keepalive': '0'}}) def test_backend_asic_bgp_neighbor(self): argument = "-m {} -p {} -n asic3 --var-json \"BGP_NEIGHBOR\"".format(self.sample_graph, self.port_config[3]) output = json.loads(self.run_script(argument)) self.assertDictEqual(output, \ - {'10.1.0.7': {'rrclient': 0, 'name': 'ASIC1', 'local_addr': '10.1.0.6', 'nhopself': 0, 'holdtime': '0', 'asn': '65100', 'keepalive': '0', 'admin_status': 'up'}, - '10.1.0.3': {'rrclient': 0, 'name': 'ASIC0', 'local_addr': '10.1.0.2', 'nhopself': 0, 'holdtime': '0', 'asn': '65100', 'keepalive': '0', 'admin_status': 'up'}}) + {'10.1.0.7': {'rrclient': 0, 'name': 'ASIC1', 'local_addr': '10.1.0.6', 'nhopself': 0, 'holdtime': '0', 'asn': '65100', 'keepalive': '0'}, + '10.1.0.3': {'rrclient': 0, 'name': 'ASIC0', 'local_addr': '10.1.0.2', 'nhopself': 0, 'holdtime': '0', 'asn': '65100', 'keepalive': '0'}}) def test_device_asic_metadata(self): argument = "-m {} --var-json DEVICE_METADATA".format(self.sample_graph) for asic in range(NUM_ASIC): output = json.loads(self.run_script_for_asic(argument, asic,self.port_config[asic])) asic_name = "asic{}".format(asic) - self.assertEqual(output['localhost']['hostname'], 'multi_npu_platform_01') - self.assertEqual(output['localhost']['asic_name'], asic_name) - self.assertEqual(output['localhost']['type'], DEVICE_TYPE) + self.assertEqual(output['localhost']['hostname'], asic_name) + self.assertEqual(output['localhost']['type'], 'Asic') if asic == 0 or asic == 1: self.assertEqual(output['localhost']['sub_role'], 'FrontEnd') else: self.assertEqual(output['localhost']['sub_role'], 'BackEnd') - - def test_global_asic_acl(self): - argument = "-m {} --var-json \"ACL_TABLE\"".format(self.sample_graph) - output = json.loads(self.run_script(argument)) - self.assertDictEqual(output, {\ - 'DATAACL': {'policy_desc': 'DATAACL', 'ports': ['PortChannel0002','PortChannel0008'], 'stage': 'ingress', 'type': 'L3'}, - 'EVERFLOW': {'policy_desc': 'EVERFLOW', 'ports': ['PortChannel0002','PortChannel0008'], 'stage': 'ingress', 'type': 'MIRROR'}, - 'EVERFLOWV6':{'policy_desc': 'EVERFLOWV6', 'ports': ['PortChannel0002','PortChannel0008'], 'stage': 'ingress', 'type': 'MIRRORV6'}, - 'SNMP_ACL': {'policy_desc': 'SNMP_ACL', 'services': ['SNMP'], 'stage': 'ingress', 'type': 'CTRLPLANE'}, - 'SSH_ONLY': {'policy_desc': 'SSH_ONLY', 'services': ['SSH'], 'stage': 'ingress', 'type': 'CTRLPLANE'}}) - - def test_front_end_asic_acl(self): - argument = "-m {} -p {} -n asic0 --var-json \"ACL_TABLE\"".format(self.sample_graph, self.port_config[0]) - output = json.loads(self.run_script(argument)) - self.assertDictEqual(output, {\ - 'DATAACL': {'policy_desc': 'DATAACL', 'ports': ['PortChannel0002'], 'stage': 'ingress', 'type': 'L3'}, - 'EVERFLOW': {'policy_desc': 'EVERFLOW', 'ports': ['PortChannel0002'], 'stage': 'ingress', 'type': 'MIRROR'}, - 'EVERFLOWV6':{'policy_desc': 'EVERFLOWV6', 'ports': ['PortChannel0002'], 'stage': 'ingress', 'type': 'MIRRORV6'}, - 'SNMP_ACL': {'policy_desc': 'SNMP_ACL', 'services': ['SNMP'], 'stage': 'ingress', 'type': 'CTRLPLANE'}, - 'SSH_ONLY': {'policy_desc': 'SSH_ONLY', 'services': ['SSH'], 'stage': 'ingress', 'type': 'CTRLPLANE'}}) - - def test_back_end_asic_acl(self): - argument = "-m {} -p {} -n asic3 --var-json \"ACL_TABLE\"".format(self.sample_graph, self.port_config[3]) - output = json.loads(self.run_script(argument)) - self.assertDictEqual(output, {}) diff --git a/src/sonic-frr/frr b/src/sonic-frr/frr index 2f3f691f44ea..e1b0c939960c 160000 --- a/src/sonic-frr/frr +++ b/src/sonic-frr/frr @@ -1 +1 @@ -Subproject commit 2f3f691f44ea0194a145aed59606fdd0f33ecdb4 +Subproject commit e1b0c939960c49eba05e972a68d50ca32dd09303 diff --git a/src/sonic-restapi b/src/sonic-restapi index 95e6bf8dcbf9..c219e3da28fb 160000 --- a/src/sonic-restapi +++ b/src/sonic-restapi @@ -1 +1 @@ -Subproject commit 95e6bf8dcbf9a3052c01cb8264f0a750eda91625 +Subproject commit c219e3da28fb20b63b065ceb1828125593d73f14 diff --git a/src/sonic-swss b/src/sonic-swss index 62d4af4f1e0b..2218ed4cc50a 160000 --- a/src/sonic-swss +++ b/src/sonic-swss @@ -1 +1 @@ -Subproject commit 62d4af4f1e0bd4115ba139a215847294c9f3a90a +Subproject commit 2218ed4cc50aebba681b42f300869c84c90be613 diff --git a/src/sonic-utilities b/src/sonic-utilities index 3d77d5a9c49d..42e4fdc623ad 160000 --- a/src/sonic-utilities +++ b/src/sonic-utilities @@ -1 +1 @@ -Subproject commit 3d77d5a9c49d764f9d7c479ec8446a2b8aec4925 +Subproject commit 42e4fdc623adb4be5b1ed6eaa6e8d7763951fbb1