diff --git a/.gitmodules b/.gitmodules
index 915b19cb1372..7076a352e506 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,15 +1,18 @@
[submodule "sonic-swss-common"]
path = src/sonic-swss-common
url = https://github.com/Azure/sonic-swss-common
+ branch = 201811
[submodule "sonic-linux-kernel"]
path = src/sonic-linux-kernel
url = https://github.com/Azure/sonic-linux-kernel
[submodule "sonic-sairedis"]
path = src/sonic-sairedis
url = https://github.com/Azure/sonic-sairedis
+ branch = 201811
[submodule "sonic-swss"]
path = src/sonic-swss
url = https://github.com/Azure/sonic-swss
+ branch = 201811
[submodule "src/p4c-bm/p4c-bm"]
path = platform/p4/p4c-bm/p4c-bm
url = https://github.com/krambn/p4c-bm
diff --git a/build_debian.sh b/build_debian.sh
index 45b2502a94ce..b8514e78d7a1 100755
--- a/build_debian.sh
+++ b/build_debian.sh
@@ -341,6 +341,7 @@ set /files/etc/sysctl.conf/net.ipv6.conf.all.keep_addr_on_down 1
set /files/etc/sysctl.conf/net.ipv6.conf.eth0.keep_addr_on_down 1
set /files/etc/sysctl.conf/net.ipv6.conf.eth0.accept_ra_defrtr 0
+set /files/etc/sysctl.conf/net.ipv6.conf.eth0.accept_ra 0
set /files/etc/sysctl.conf/net.core.rmem_max 2097152
set /files/etc/sysctl.conf/net.core.wmem_max 2097152
diff --git a/device/arista/x86_64-arista_7050_qx32/Arista-7050-QX32/buffers_defaults_t0.j2 b/device/arista/x86_64-arista_7050_qx32/Arista-7050-QX32/buffers_defaults_t0.j2
index 40d32ef316da..38e34eb571e8 100644
--- a/device/arista/x86_64-arista_7050_qx32/Arista-7050-QX32/buffers_defaults_t0.j2
+++ b/device/arista/x86_64-arista_7050_qx32/Arista-7050-QX32/buffers_defaults_t0.j2
@@ -20,7 +20,7 @@
"mode": "static"
},
"egress_lossy_pool": {
- "size": "7582515",
+ "size": "7326924",
"type": "egress",
"mode": "dynamic"
}
diff --git a/device/arista/x86_64-arista_7050_qx32/Arista-7050-QX32/buffers_defaults_t1.j2 b/device/arista/x86_64-arista_7050_qx32/Arista-7050-QX32/buffers_defaults_t1.j2
index 40d32ef316da..38e34eb571e8 100644
--- a/device/arista/x86_64-arista_7050_qx32/Arista-7050-QX32/buffers_defaults_t1.j2
+++ b/device/arista/x86_64-arista_7050_qx32/Arista-7050-QX32/buffers_defaults_t1.j2
@@ -20,7 +20,7 @@
"mode": "static"
},
"egress_lossy_pool": {
- "size": "7582515",
+ "size": "7326924",
"type": "egress",
"mode": "dynamic"
}
diff --git a/device/arista/x86_64-arista_7050_qx32/Arista-7050-QX32/pg_profile_lookup.ini b/device/arista/x86_64-arista_7050_qx32/Arista-7050-QX32/pg_profile_lookup.ini
index 135a598465ba..0588079e6840 100644
--- a/device/arista/x86_64-arista_7050_qx32/Arista-7050-QX32/pg_profile_lookup.ini
+++ b/device/arista/x86_64-arista_7050_qx32/Arista-7050-QX32/pg_profile_lookup.ini
@@ -1,11 +1,11 @@
# PG lossless profiles.
# speed cable size xon xoff threshold xon_offset
- 40000 5m 41808 18432 40560 -3 2496
- 50000 5m 41808 18432 40560 -3 2496
- 100000 5m 41808 18432 40560 -3 2496
- 40000 40m 51376 18432 50128 -3 2496
- 50000 40m 51376 18432 50128 -3 2496
- 100000 40m 51376 18432 50128 -3 2496
- 40000 300m 51376 18432 50128 -3 2496
- 50000 300m 51376 18432 50128 -3 2496
- 100000 300m 51376 18432 50128 -3 2496
+ 40000 5m 56368 18432 55120 -3 2496
+ 50000 5m 56368 18432 55120 -3 2496
+ 100000 5m 56368 18432 55120 -3 2496
+ 40000 40m 56368 18432 55120 -3 2496
+ 50000 40m 56368 18432 55120 -3 2496
+ 100000 40m 56368 18432 55120 -3 2496
+ 40000 300m 56368 18432 55120 -3 2496
+ 50000 300m 56368 18432 55120 -3 2496
+ 100000 300m 56368 18432 55120 -3 2496
diff --git a/device/arista/x86_64-arista_7050_qx32s/Arista-7050-QX-32S/buffers_defaults_t0.j2 b/device/arista/x86_64-arista_7050_qx32s/Arista-7050-QX-32S/buffers_defaults_t0.j2
index 40d32ef316da..38e34eb571e8 100644
--- a/device/arista/x86_64-arista_7050_qx32s/Arista-7050-QX-32S/buffers_defaults_t0.j2
+++ b/device/arista/x86_64-arista_7050_qx32s/Arista-7050-QX-32S/buffers_defaults_t0.j2
@@ -20,7 +20,7 @@
"mode": "static"
},
"egress_lossy_pool": {
- "size": "7582515",
+ "size": "7326924",
"type": "egress",
"mode": "dynamic"
}
diff --git a/device/arista/x86_64-arista_7050_qx32s/Arista-7050-QX-32S/buffers_defaults_t1.j2 b/device/arista/x86_64-arista_7050_qx32s/Arista-7050-QX-32S/buffers_defaults_t1.j2
index 40d32ef316da..38e34eb571e8 100644
--- a/device/arista/x86_64-arista_7050_qx32s/Arista-7050-QX-32S/buffers_defaults_t1.j2
+++ b/device/arista/x86_64-arista_7050_qx32s/Arista-7050-QX-32S/buffers_defaults_t1.j2
@@ -20,7 +20,7 @@
"mode": "static"
},
"egress_lossy_pool": {
- "size": "7582515",
+ "size": "7326924",
"type": "egress",
"mode": "dynamic"
}
diff --git a/device/arista/x86_64-arista_7050_qx32s/Arista-7050-QX-32S/pg_profile_lookup.ini b/device/arista/x86_64-arista_7050_qx32s/Arista-7050-QX-32S/pg_profile_lookup.ini
index 135a598465ba..0588079e6840 100644
--- a/device/arista/x86_64-arista_7050_qx32s/Arista-7050-QX-32S/pg_profile_lookup.ini
+++ b/device/arista/x86_64-arista_7050_qx32s/Arista-7050-QX-32S/pg_profile_lookup.ini
@@ -1,11 +1,11 @@
# PG lossless profiles.
# speed cable size xon xoff threshold xon_offset
- 40000 5m 41808 18432 40560 -3 2496
- 50000 5m 41808 18432 40560 -3 2496
- 100000 5m 41808 18432 40560 -3 2496
- 40000 40m 51376 18432 50128 -3 2496
- 50000 40m 51376 18432 50128 -3 2496
- 100000 40m 51376 18432 50128 -3 2496
- 40000 300m 51376 18432 50128 -3 2496
- 50000 300m 51376 18432 50128 -3 2496
- 100000 300m 51376 18432 50128 -3 2496
+ 40000 5m 56368 18432 55120 -3 2496
+ 50000 5m 56368 18432 55120 -3 2496
+ 100000 5m 56368 18432 55120 -3 2496
+ 40000 40m 56368 18432 55120 -3 2496
+ 50000 40m 56368 18432 55120 -3 2496
+ 100000 40m 56368 18432 55120 -3 2496
+ 40000 300m 56368 18432 55120 -3 2496
+ 50000 300m 56368 18432 55120 -3 2496
+ 100000 300m 56368 18432 55120 -3 2496
diff --git a/device/arista/x86_64-arista_7060_cx32s/Arista-7060CX-32S-C32/buffers_defaults_t0.j2 b/device/arista/x86_64-arista_7060_cx32s/Arista-7060CX-32S-C32/buffers_defaults_t0.j2
index 3e39d411e8bf..cb74cb75281b 100644
--- a/device/arista/x86_64-arista_7060_cx32s/Arista-7060CX-32S-C32/buffers_defaults_t0.j2
+++ b/device/arista/x86_64-arista_7060_cx32s/Arista-7060CX-32S-C32/buffers_defaults_t0.j2
@@ -11,13 +11,13 @@
{%- macro generate_buffer_pool_and_profiles() %}
"BUFFER_POOL": {
"ingress_lossless_pool": {
- "size": "11213696",
+ "size": "10875072",
"type": "ingress",
"mode": "dynamic",
- "xoff": "3855488"
+ "xoff": "4194112"
},
"egress_lossy_pool": {
- "size": "9532224",
+ "size": "9243812",
"type": "egress",
"mode": "dynamic"
},
diff --git a/device/arista/x86_64-arista_7060_cx32s/Arista-7060CX-32S-C32/buffers_defaults_t1.j2 b/device/arista/x86_64-arista_7060_cx32s/Arista-7060CX-32S-C32/buffers_defaults_t1.j2
index d9f562f95624..0699433bffb4 100644
--- a/device/arista/x86_64-arista_7060_cx32s/Arista-7060CX-32S-C32/buffers_defaults_t1.j2
+++ b/device/arista/x86_64-arista_7060_cx32s/Arista-7060CX-32S-C32/buffers_defaults_t1.j2
@@ -11,13 +11,13 @@
{%- macro generate_buffer_pool_and_profiles() %}
"BUFFER_POOL": {
"ingress_lossless_pool": {
- "size": "10443264",
+ "size": "10875072",
"type": "ingress",
"mode": "dynamic",
- "xoff": "4625920"
+ "xoff": "4194112"
},
"egress_lossy_pool": {
- "size": "8877440",
+ "size": "9243812",
"type": "egress",
"mode": "dynamic"
},
diff --git a/device/arista/x86_64-arista_7060_cx32s/Arista-7060CX-32S-D48C8/buffers_defaults_t0.j2 b/device/arista/x86_64-arista_7060_cx32s/Arista-7060CX-32S-D48C8/buffers_defaults_t0.j2
index 7463e20afabe..5d6e0cd61a7e 100644
--- a/device/arista/x86_64-arista_7060_cx32s/Arista-7060CX-32S-D48C8/buffers_defaults_t0.j2
+++ b/device/arista/x86_64-arista_7060_cx32s/Arista-7060CX-32S-D48C8/buffers_defaults_t0.j2
@@ -25,13 +25,13 @@
{%- macro generate_buffer_pool_and_profiles() %}
"BUFFER_POOL": {
"ingress_lossless_pool": {
- "size": "11213696",
+ "size": "10875072",
"type": "ingress",
"mode": "dynamic",
- "xoff": "3855488"
+ "xoff": "4194112"
},
"egress_lossy_pool": {
- "size": "9532224",
+ "size": "9243812",
"type": "egress",
"mode": "dynamic"
},
diff --git a/device/arista/x86_64-arista_7060_cx32s/Arista-7060CX-32S-D48C8/pg_profile_lookup.ini b/device/arista/x86_64-arista_7060_cx32s/Arista-7060CX-32S-D48C8/pg_profile_lookup.ini
index 570454c8d5b2..dc05d0a100a3 100644
--- a/device/arista/x86_64-arista_7060_cx32s/Arista-7060CX-32S-D48C8/pg_profile_lookup.ini
+++ b/device/arista/x86_64-arista_7060_cx32s/Arista-7060CX-32S-D48C8/pg_profile_lookup.ini
@@ -13,5 +13,5 @@
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 131456 -3 2288
+ 50000 300m 1248 2288 141856 -3 2288
100000 300m 1248 2288 268736 -3 2288
diff --git a/device/arista/x86_64-arista_7060_cx32s/Arista-7060CX-32S-Q32/buffers_defaults_t0.j2 b/device/arista/x86_64-arista_7060_cx32s/Arista-7060CX-32S-Q32/buffers_defaults_t0.j2
index 3e39d411e8bf..cb74cb75281b 100644
--- a/device/arista/x86_64-arista_7060_cx32s/Arista-7060CX-32S-Q32/buffers_defaults_t0.j2
+++ b/device/arista/x86_64-arista_7060_cx32s/Arista-7060CX-32S-Q32/buffers_defaults_t0.j2
@@ -11,13 +11,13 @@
{%- macro generate_buffer_pool_and_profiles() %}
"BUFFER_POOL": {
"ingress_lossless_pool": {
- "size": "11213696",
+ "size": "10875072",
"type": "ingress",
"mode": "dynamic",
- "xoff": "3855488"
+ "xoff": "4194112"
},
"egress_lossy_pool": {
- "size": "9532224",
+ "size": "9243812",
"type": "egress",
"mode": "dynamic"
},
diff --git a/device/arista/x86_64-arista_7060_cx32s/Arista-7060CX-32S-Q32/buffers_defaults_t1.j2 b/device/arista/x86_64-arista_7060_cx32s/Arista-7060CX-32S-Q32/buffers_defaults_t1.j2
index d9f562f95624..0699433bffb4 100644
--- a/device/arista/x86_64-arista_7060_cx32s/Arista-7060CX-32S-Q32/buffers_defaults_t1.j2
+++ b/device/arista/x86_64-arista_7060_cx32s/Arista-7060CX-32S-Q32/buffers_defaults_t1.j2
@@ -11,13 +11,13 @@
{%- macro generate_buffer_pool_and_profiles() %}
"BUFFER_POOL": {
"ingress_lossless_pool": {
- "size": "10443264",
+ "size": "10875072",
"type": "ingress",
"mode": "dynamic",
- "xoff": "4625920"
+ "xoff": "4194112"
},
"egress_lossy_pool": {
- "size": "8877440",
+ "size": "9243812",
"type": "egress",
"mode": "dynamic"
},
diff --git a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-D108C8/buffers_defaults_t0.j2 b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-D108C8/buffers_defaults_t0.j2
index b3b8e6b13c45..a5951e156b26 100644
--- a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-D108C8/buffers_defaults_t0.j2
+++ b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-D108C8/buffers_defaults_t0.j2
@@ -18,13 +18,13 @@
{%- macro generate_buffer_pool_and_profiles() %}
"BUFFER_POOL": {
"ingress_lossless_pool": {
- "size": "32799936",
+ "size": "33329088",
"type": "ingress",
"mode": "dynamic",
- "xoff": "8356608"
+ "xoff": "7827456"
},
"egress_lossy_pool": {
- "size": "26240448",
+ "size": "26663272",
"type": "egress",
"mode": "dynamic"
},
diff --git a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-Q44 b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-Q44
new file mode 120000
index 000000000000..a5c923950dc8
--- /dev/null
+++ b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-Q44
@@ -0,0 +1 @@
+Arista-7260CX3-Q64
\ No newline at end of file
diff --git a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-Q64/buffers.json.j2 b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-Q64/buffers.json.j2
new file mode 100644
index 000000000000..e6e9e844469b
--- /dev/null
+++ b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-Q64/buffers.json.j2
@@ -0,0 +1,3 @@
+{%- set default_topo = 't0' %}
+{%- include 'buffers_config.j2' %}
+
diff --git a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-Q64/buffers_defaults_t0.j2 b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-Q64/buffers_defaults_t0.j2
new file mode 100644
index 000000000000..62a6bac1c25f
--- /dev/null
+++ b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-Q64/buffers_defaults_t0.j2
@@ -0,0 +1,46 @@
+{%- set default_cable = '5m' %}
+
+{%- macro generate_port_lists(PORT_ALL) %}
+ {# Generate list of ports #}
+ {%- for port_idx in range(0,64) %}
+ {%- if PORT_ALL.append("Ethernet%d" % (port_idx * 4)) %}{%- endif %}
+ {%- endfor %}
+{%- endmacro %}
+
+{%- macro generate_buffer_pool_and_profiles() %}
+ "BUFFER_POOL": {
+ "ingress_lossless_pool": {
+ "size": "33329088",
+ "type": "ingress",
+ "mode": "dynamic",
+ "xoff": "7827456"
+ },
+ "egress_lossy_pool": {
+ "size": "26663272",
+ "type": "egress",
+ "mode": "dynamic"
+ },
+ "egress_lossless_pool": {
+ "size": "42349632",
+ "type": "egress",
+ "mode": "static"
+ }
+ },
+ "BUFFER_PROFILE": {
+ "ingress_lossy_profile": {
+ "pool":"[BUFFER_POOL|ingress_lossless_pool]",
+ "size":"0",
+ "static_th":"11075584"
+ },
+ "egress_lossless_profile": {
+ "pool":"[BUFFER_POOL|egress_lossless_pool]",
+ "size":"0",
+ "static_th":"10587408"
+ },
+ "egress_lossy_profile": {
+ "pool":"[BUFFER_POOL|egress_lossy_pool]",
+ "size":"1664",
+ "dynamic_th":"-1"
+ }
+ },
+{%- endmacro %}
diff --git a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-Q64/pg_profile_lookup.ini b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-Q64/pg_profile_lookup.ini
new file mode 100644
index 000000000000..34ac8b2ca700
--- /dev/null
+++ b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-Q64/pg_profile_lookup.ini
@@ -0,0 +1,11 @@
+# PG lossless profiles.
+# speed cable size xon xoff threshold xon_offset
+ 40000 5m 1248 1248 56160 -3 2496
+ 50000 5m 1248 1248 56160 -3 2496
+ 100000 5m 1248 1248 96928 -3 2496
+ 40000 40m 1248 1248 56160 -3 2496
+ 50000 40m 1248 1248 56160 -3 2496
+ 100000 40m 1248 1248 96928 -3 2496
+ 40000 300m 1248 1248 56160 -3 2496
+ 50000 300m 1248 1248 56160 -3 2496
+ 100000 300m 1248 1248 96928 -3 2496
diff --git a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-Q64/port_config.ini b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-Q64/port_config.ini
new file mode 100644
index 000000000000..de49cb6971a3
--- /dev/null
+++ b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-Q64/port_config.ini
@@ -0,0 +1,67 @@
+# name lanes alias index speed
+Ethernet0 77,78,79,80 Ethernet1/1 1 40000
+Ethernet4 65,66,67,68 Ethernet2/1 2 40000
+Ethernet8 85,86,87,88 Ethernet3/1 3 40000
+Ethernet12 89,90,91,92 Ethernet4/1 4 40000
+Ethernet16 109,110,111,112 Ethernet5/1 5 40000
+Ethernet20 97,98,99,100 Ethernet6/1 6 40000
+Ethernet24 5,6,7,8 Ethernet7/1 7 40000
+Ethernet28 13,14,15,16 Ethernet8/1 8 40000
+Ethernet32 25,26,27,28 Ethernet9/1 9 40000
+Ethernet36 21,22,23,24 Ethernet10/1 10 40000
+Ethernet40 37,38,39,40 Ethernet11/1 11 40000
+Ethernet44 45,46,47,48 Ethernet12/1 12 40000
+Ethernet48 57,58,59,60 Ethernet13/1 13 40000
+Ethernet52 53,54,55,56 Ethernet14/1 14 40000
+Ethernet56 117,118,119,120 Ethernet15/1 15 40000
+Ethernet60 121,122,123,124 Ethernet16/1 16 40000
+Ethernet64 141,142,143,144 Ethernet17/1 17 40000
+Ethernet68 133,134,135,136 Ethernet18/1 18 40000
+Ethernet72 197,198,199,200 Ethernet19/1 19 40000
+Ethernet76 205,206,207,208 Ethernet20/1 20 40000
+Ethernet80 217,218,219,220 Ethernet21/1 21 40000
+Ethernet84 213,214,215,216 Ethernet22/1 22 40000
+Ethernet88 229,230,231,232 Ethernet23/1 23 40000
+Ethernet92 237,238,239,240 Ethernet24/1 24 40000
+Ethernet96 249,250,251,252 Ethernet25/1 25 40000
+Ethernet100 245,246,247,248 Ethernet26/1 26 40000
+Ethernet104 149,150,151,152 Ethernet27/1 27 40000
+Ethernet108 153,154,155,156 Ethernet28/1 28 40000
+Ethernet112 173,174,175,176 Ethernet29/1 29 40000
+Ethernet116 161,162,163,164 Ethernet30/1 30 40000
+Ethernet120 181,182,183,184 Ethernet31/1 31 40000
+Ethernet124 185,186,187,188 Ethernet32/1 32 40000
+Ethernet128 69,70,71,72 Ethernet33/1 33 40000
+Ethernet132 73,74,75,76 Ethernet34/1 34 40000
+Ethernet136 93,94,95,96 Ethernet35/1 35 40000
+Ethernet140 81,82,83,84 Ethernet36/1 36 40000
+Ethernet144 101,102,103,104 Ethernet37/1 37 40000
+Ethernet148 105,106,107,108 Ethernet38/1 38 40000
+Ethernet152 9,10,11,12 Ethernet39/1 39 40000
+Ethernet156 1,2,3,4 Ethernet40/1 40 40000
+Ethernet160 17,18,19,20 Ethernet41/1 41 40000
+Ethernet164 29,30,31,32 Ethernet42/1 42 40000
+Ethernet168 41,42,43,44 Ethernet43/1 43 40000
+Ethernet172 33,34,35,36 Ethernet44/1 44 40000
+Ethernet176 49,50,51,52 Ethernet45/1 45 40000
+Ethernet180 61,62,63,64 Ethernet46/1 46 40000
+Ethernet184 125,126,127,128 Ethernet47/1 47 40000
+Ethernet188 113,114,115,116 Ethernet48/1 48 40000
+Ethernet192 129,130,131,132 Ethernet49/1 49 40000
+Ethernet196 137,138,139,140 Ethernet50/1 50 40000
+Ethernet200 201,202,203,204 Ethernet51/1 51 40000
+Ethernet204 193,194,195,196 Ethernet52/1 52 40000
+Ethernet208 209,210,211,212 Ethernet53/1 53 40000
+Ethernet212 221,222,223,224 Ethernet54/1 54 40000
+Ethernet216 233,234,235,236 Ethernet55/1 55 40000
+Ethernet220 225,226,227,228 Ethernet56/1 56 40000
+Ethernet224 241,242,243,244 Ethernet57/1 57 40000
+Ethernet228 253,254,255,256 Ethernet58/1 58 40000
+Ethernet232 157,158,159,160 Ethernet59/1 59 40000
+Ethernet236 145,146,147,148 Ethernet60/1 60 40000
+Ethernet240 165,166,167,168 Ethernet61/1 61 40000
+Ethernet244 169,170,171,172 Ethernet62/1 62 40000
+Ethernet248 189,190,191,192 Ethernet63/1 63 40000
+Ethernet252 177,178,179,180 Ethernet64/1 64 40000
+Ethernet256 257 Ethernet65 65 10000
+Ethernet260 259 Ethernet66 66 10000
diff --git a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-Q64/qos.json.j2 b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-Q64/qos.json.j2
new file mode 100644
index 000000000000..3e548325ea30
--- /dev/null
+++ b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-Q64/qos.json.j2
@@ -0,0 +1 @@
+{%- include 'qos_config.j2' %}
diff --git a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-Q64/sai.profile b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-Q64/sai.profile
new file mode 100644
index 000000000000..db64a26b47da
--- /dev/null
+++ b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-Q64/sai.profile
@@ -0,0 +1 @@
+SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/th2-a7260cx3-64-64x40G.config.bcm
diff --git a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-Q64/th2-a7260cx3-64-64x40G.config.bcm b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-Q64/th2-a7260cx3-64-64x40G.config.bcm
new file mode 100644
index 000000000000..8a6c1a28e54f
--- /dev/null
+++ b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-Q64/th2-a7260cx3-64-64x40G.config.bcm
@@ -0,0 +1,1014 @@
+PHY_AN_ALLOW_PLL_CHANGE=1
+arl_clean_timeout_usec=15000000
+asf_mem_profile=2
+bcm_num_cos=8
+bcm_stat_flags=1
+bcm_stat_jumbo=9236
+cdma_timeout_usec=15000000
+core_clock_frequency=1700
+dma_desc_timeout_usec=15000000
+dpp_clock_ratio=2:3
+higig2_hdr_mode=1
+ipv6_lpm_128b_enable=1
+l3_alpm_enable=2
+lpm_scaling_enable=0
+l2xmsg_mode=1
+max_vp_lags=0
+mem_scan_enable=1
+miim_intr_enable=0
+module_64ports=1
+os=unix
+oversubscribe_mode=1
+pbmp_xport_xe=0x40003ffff0000ffffc0003fffe0001fffe
+phy_an_allow_pll_change_hg=0
+phy_an_c73_100=1
+phy_an_c73_102=1
+phy_an_c73_103=1
+phy_an_c73_104=1
+phy_an_c73_105=1
+phy_an_c73_106=1
+phy_an_c73_107=1
+phy_an_c73_108=1
+phy_an_c73_109=1
+phy_an_c73_10=1
+phy_an_c73_110=1
+phy_an_c73_111=1
+phy_an_c73_112=1
+phy_an_c73_113=1
+phy_an_c73_114=1
+phy_an_c73_115=1
+phy_an_c73_116=1
+phy_an_c73_117=1
+phy_an_c73_11=1
+phy_an_c73_12=1
+phy_an_c73_13=1
+phy_an_c73_14=1
+phy_an_c73_15=1
+phy_an_c73_16=1
+phy_an_c73_1=1
+phy_an_c73_2=1
+phy_an_c73_34=1
+phy_an_c73_35=1
+phy_an_c73_36=1
+phy_an_c73_37=1
+phy_an_c73_38=1
+phy_an_c73_39=1
+phy_an_c73_3=1
+phy_an_c73_40=1
+phy_an_c73_41=1
+phy_an_c73_42=1
+phy_an_c73_43=1
+phy_an_c73_44=1
+phy_an_c73_45=1
+phy_an_c73_46=1
+phy_an_c73_47=1
+phy_an_c73_48=1
+phy_an_c73_49=1
+phy_an_c73_4=1
+phy_an_c73_5=1
+phy_an_c73_66=1
+phy_an_c73_68=1
+phy_an_c73_69=1
+phy_an_c73_6=1
+phy_an_c73_70=1
+phy_an_c73_71=1
+phy_an_c73_72=1
+phy_an_c73_73=1
+phy_an_c73_74=1
+phy_an_c73_75=1
+phy_an_c73_76=1
+phy_an_c73_77=1
+phy_an_c73_78=1
+phy_an_c73_79=1
+phy_an_c73_7=1
+phy_an_c73_80=1
+phy_an_c73_81=1
+phy_an_c73_82=1
+phy_an_c73_83=1
+phy_an_c73_8=1
+phy_an_c73_9=1
+phy_chain_rx_lane_map_physical{1.0}=0x3210
+phy_chain_rx_lane_map_physical{101.0}=0x0123
+phy_chain_rx_lane_map_physical{105.0}=0x0123
+phy_chain_rx_lane_map_physical{109.0}=0x0123
+phy_chain_rx_lane_map_physical{113.0}=0x2301
+phy_chain_rx_lane_map_physical{117.0}=0x3210
+phy_chain_rx_lane_map_physical{121.0}=0x3210
+phy_chain_rx_lane_map_physical{125.0}=0x1203
+phy_chain_rx_lane_map_physical{129.0}=0x3210
+phy_chain_rx_lane_map_physical{13.0}=0x0321
+phy_chain_rx_lane_map_physical{133.0}=0x1032
+phy_chain_rx_lane_map_physical{137.0}=0x3210
+phy_chain_rx_lane_map_physical{141.0}=0x0123
+phy_chain_rx_lane_map_physical{145.0}=0x3210
+phy_chain_rx_lane_map_physical{149.0}=0x2310
+phy_chain_rx_lane_map_physical{153.0}=0x0132
+phy_chain_rx_lane_map_physical{157.0}=0x1302
+phy_chain_rx_lane_map_physical{161.0}=0x3021
+phy_chain_rx_lane_map_physical{165.0}=0x2031
+phy_chain_rx_lane_map_physical{169.0}=0x2031
+phy_chain_rx_lane_map_physical{17.0}=0x3210
+phy_chain_rx_lane_map_physical{173.0}=0x1302
+phy_chain_rx_lane_map_physical{177.0}=0x2031
+phy_chain_rx_lane_map_physical{181.0}=0x0213
+phy_chain_rx_lane_map_physical{185.0}=0x0213
+phy_chain_rx_lane_map_physical{189.0}=0x1302
+phy_chain_rx_lane_map_physical{193.0}=0x3120
+phy_chain_rx_lane_map_physical{197.0}=0x0231
+phy_chain_rx_lane_map_physical{201.0}=0x2031
+phy_chain_rx_lane_map_physical{205.0}=0x0213
+phy_chain_rx_lane_map_physical{209.0}=0x2013
+phy_chain_rx_lane_map_physical{21.0}=0x3021
+phy_chain_rx_lane_map_physical{213.0}=0x3021
+phy_chain_rx_lane_map_physical{217.0}=0x0231
+phy_chain_rx_lane_map_physical{221.0}=0x2031
+phy_chain_rx_lane_map_physical{225.0}=0x1203
+phy_chain_rx_lane_map_physical{229.0}=0x1230
+phy_chain_rx_lane_map_physical{233.0}=0x3021
+phy_chain_rx_lane_map_physical{237.0}=0x1032
+phy_chain_rx_lane_map_physical{241.0}=0x2301
+phy_chain_rx_lane_map_physical{245.0}=0x0321
+phy_chain_rx_lane_map_physical{249.0}=0x2301
+phy_chain_rx_lane_map_physical{25.0}=0x2301
+phy_chain_rx_lane_map_physical{253.0}=0x2301
+phy_chain_rx_lane_map_physical{257.0}=0x3210
+phy_chain_rx_lane_map_physical{29.0}=0x3021
+phy_chain_rx_lane_map_physical{33.0}=0x1302
+phy_chain_rx_lane_map_physical{37.0}=0x2031
+phy_chain_rx_lane_map_physical{41.0}=0x3021
+phy_chain_rx_lane_map_physical{45.0}=0x1023
+phy_chain_rx_lane_map_physical{49.0}=0x0213
+phy_chain_rx_lane_map_physical{5.0}=0x3201
+phy_chain_rx_lane_map_physical{53.0}=0x3201
+phy_chain_rx_lane_map_physical{57.0}=0x2013
+phy_chain_rx_lane_map_physical{61.0}=0x0213
+phy_chain_rx_lane_map_physical{65.0}=0x1203
+phy_chain_rx_lane_map_physical{69.0}=0x0213
+phy_chain_rx_lane_map_physical{73.0}=0x0213
+phy_chain_rx_lane_map_physical{77.0}=0x3120
+phy_chain_rx_lane_map_physical{81.0}=0x0213
+phy_chain_rx_lane_map_physical{85.0}=0x2031
+phy_chain_rx_lane_map_physical{89.0}=0x2031
+phy_chain_rx_lane_map_physical{9.0}=0x0321
+phy_chain_rx_lane_map_physical{93.0}=0x3120
+phy_chain_rx_lane_map_physical{97.0}=0x1203
+phy_chain_rx_polarity_flip_physical{1.0}=0x1
+phy_chain_rx_polarity_flip_physical{10.0}=0x0
+phy_chain_rx_polarity_flip_physical{100.0}=0x1
+phy_chain_rx_polarity_flip_physical{101.0}=0x1
+phy_chain_rx_polarity_flip_physical{102.0}=0x0
+phy_chain_rx_polarity_flip_physical{103.0}=0x1
+phy_chain_rx_polarity_flip_physical{104.0}=0x0
+phy_chain_rx_polarity_flip_physical{105.0}=0x1
+phy_chain_rx_polarity_flip_physical{106.0}=0x0
+phy_chain_rx_polarity_flip_physical{107.0}=0x1
+phy_chain_rx_polarity_flip_physical{108.0}=0x0
+phy_chain_rx_polarity_flip_physical{109.0}=0x0
+phy_chain_rx_polarity_flip_physical{11.0}=0x1
+phy_chain_rx_polarity_flip_physical{110.0}=0x1
+phy_chain_rx_polarity_flip_physical{111.0}=0x0
+phy_chain_rx_polarity_flip_physical{112.0}=0x1
+phy_chain_rx_polarity_flip_physical{113.0}=0x1
+phy_chain_rx_polarity_flip_physical{114.0}=0x0
+phy_chain_rx_polarity_flip_physical{115.0}=0x1
+phy_chain_rx_polarity_flip_physical{116.0}=0x0
+phy_chain_rx_polarity_flip_physical{117.0}=0x0
+phy_chain_rx_polarity_flip_physical{118.0}=0x0
+phy_chain_rx_polarity_flip_physical{119.0}=0x1
+phy_chain_rx_polarity_flip_physical{12.0}=0x1
+phy_chain_rx_polarity_flip_physical{120.0}=0x0
+phy_chain_rx_polarity_flip_physical{121.0}=0x1
+phy_chain_rx_polarity_flip_physical{122.0}=0x0
+phy_chain_rx_polarity_flip_physical{123.0}=0x1
+phy_chain_rx_polarity_flip_physical{124.0}=0x0
+phy_chain_rx_polarity_flip_physical{125.0}=0x0
+phy_chain_rx_polarity_flip_physical{126.0}=0x1
+phy_chain_rx_polarity_flip_physical{127.0}=0x1
+phy_chain_rx_polarity_flip_physical{128.0}=0x1
+phy_chain_rx_polarity_flip_physical{129.0}=0x0
+phy_chain_rx_polarity_flip_physical{13.0}=0x1
+phy_chain_rx_polarity_flip_physical{130.0}=0x1
+phy_chain_rx_polarity_flip_physical{131.0}=0x1
+phy_chain_rx_polarity_flip_physical{132.0}=0x0
+phy_chain_rx_polarity_flip_physical{133.0}=0x1
+phy_chain_rx_polarity_flip_physical{134.0}=0x1
+phy_chain_rx_polarity_flip_physical{135.0}=0x1
+phy_chain_rx_polarity_flip_physical{136.0}=0x0
+phy_chain_rx_polarity_flip_physical{137.0}=0x0
+phy_chain_rx_polarity_flip_physical{138.0}=0x0
+phy_chain_rx_polarity_flip_physical{139.0}=0x1
+phy_chain_rx_polarity_flip_physical{14.0}=0x0
+phy_chain_rx_polarity_flip_physical{140.0}=0x0
+phy_chain_rx_polarity_flip_physical{141.0}=0x1
+phy_chain_rx_polarity_flip_physical{142.0}=0x0
+phy_chain_rx_polarity_flip_physical{143.0}=0x1
+phy_chain_rx_polarity_flip_physical{144.0}=0x0
+phy_chain_rx_polarity_flip_physical{145.0}=0x1
+phy_chain_rx_polarity_flip_physical{146.0}=0x0
+phy_chain_rx_polarity_flip_physical{147.0}=0x1
+phy_chain_rx_polarity_flip_physical{148.0}=0x0
+phy_chain_rx_polarity_flip_physical{149.0}=0x0
+phy_chain_rx_polarity_flip_physical{15.0}=0x1
+phy_chain_rx_polarity_flip_physical{150.0}=0x1
+phy_chain_rx_polarity_flip_physical{151.0}=0x1
+phy_chain_rx_polarity_flip_physical{152.0}=0x0
+phy_chain_rx_polarity_flip_physical{153.0}=0x0
+phy_chain_rx_polarity_flip_physical{154.0}=0x1
+phy_chain_rx_polarity_flip_physical{155.0}=0x1
+phy_chain_rx_polarity_flip_physical{156.0}=0x0
+phy_chain_rx_polarity_flip_physical{157.0}=0x0
+phy_chain_rx_polarity_flip_physical{158.0}=0x0
+phy_chain_rx_polarity_flip_physical{159.0}=0x1
+phy_chain_rx_polarity_flip_physical{16.0}=0x0
+phy_chain_rx_polarity_flip_physical{160.0}=0x0
+phy_chain_rx_polarity_flip_physical{161.0}=0x1
+phy_chain_rx_polarity_flip_physical{162.0}=0x1
+phy_chain_rx_polarity_flip_physical{163.0}=0x0
+phy_chain_rx_polarity_flip_physical{164.0}=0x1
+phy_chain_rx_polarity_flip_physical{165.0}=0x0
+phy_chain_rx_polarity_flip_physical{166.0}=0x0
+phy_chain_rx_polarity_flip_physical{167.0}=0x1
+phy_chain_rx_polarity_flip_physical{168.0}=0x1
+phy_chain_rx_polarity_flip_physical{169.0}=0x1
+phy_chain_rx_polarity_flip_physical{17.0}=0x1
+phy_chain_rx_polarity_flip_physical{170.0}=0x1
+phy_chain_rx_polarity_flip_physical{171.0}=0x0
+phy_chain_rx_polarity_flip_physical{172.0}=0x0
+phy_chain_rx_polarity_flip_physical{173.0}=0x0
+phy_chain_rx_polarity_flip_physical{174.0}=0x0
+phy_chain_rx_polarity_flip_physical{175.0}=0x1
+phy_chain_rx_polarity_flip_physical{176.0}=0x1
+phy_chain_rx_polarity_flip_physical{177.0}=0x1
+phy_chain_rx_polarity_flip_physical{178.0}=0x1
+phy_chain_rx_polarity_flip_physical{179.0}=0x0
+phy_chain_rx_polarity_flip_physical{18.0}=0x0
+phy_chain_rx_polarity_flip_physical{180.0}=0x0
+phy_chain_rx_polarity_flip_physical{181.0}=0x1
+phy_chain_rx_polarity_flip_physical{182.0}=0x1
+phy_chain_rx_polarity_flip_physical{183.0}=0x0
+phy_chain_rx_polarity_flip_physical{184.0}=0x0
+phy_chain_rx_polarity_flip_physical{185.0}=0x0
+phy_chain_rx_polarity_flip_physical{186.0}=0x0
+phy_chain_rx_polarity_flip_physical{187.0}=0x1
+phy_chain_rx_polarity_flip_physical{188.0}=0x1
+phy_chain_rx_polarity_flip_physical{189.0}=0x0
+phy_chain_rx_polarity_flip_physical{19.0}=0x1
+phy_chain_rx_polarity_flip_physical{190.0}=0x0
+phy_chain_rx_polarity_flip_physical{191.0}=0x1
+phy_chain_rx_polarity_flip_physical{192.0}=0x0
+phy_chain_rx_polarity_flip_physical{193.0}=0x0
+phy_chain_rx_polarity_flip_physical{194.0}=0x0
+phy_chain_rx_polarity_flip_physical{195.0}=0x1
+phy_chain_rx_polarity_flip_physical{196.0}=0x1
+phy_chain_rx_polarity_flip_physical{197.0}=0x1
+phy_chain_rx_polarity_flip_physical{198.0}=0x1
+phy_chain_rx_polarity_flip_physical{199.0}=0x0
+phy_chain_rx_polarity_flip_physical{2.0}=0x0
+phy_chain_rx_polarity_flip_physical{20.0}=0x0
+phy_chain_rx_polarity_flip_physical{200.0}=0x0
+phy_chain_rx_polarity_flip_physical{201.0}=0x0
+phy_chain_rx_polarity_flip_physical{202.0}=0x0
+phy_chain_rx_polarity_flip_physical{203.0}=0x1
+phy_chain_rx_polarity_flip_physical{204.0}=0x0
+phy_chain_rx_polarity_flip_physical{205.0}=0x1
+phy_chain_rx_polarity_flip_physical{206.0}=0x1
+phy_chain_rx_polarity_flip_physical{207.0}=0x0
+phy_chain_rx_polarity_flip_physical{208.0}=0x0
+phy_chain_rx_polarity_flip_physical{209.0}=0x1
+phy_chain_rx_polarity_flip_physical{21.0}=0x0
+phy_chain_rx_polarity_flip_physical{210.0}=0x1
+phy_chain_rx_polarity_flip_physical{211.0}=0x0
+phy_chain_rx_polarity_flip_physical{212.0}=0x0
+phy_chain_rx_polarity_flip_physical{213.0}=0x0
+phy_chain_rx_polarity_flip_physical{214.0}=0x0
+phy_chain_rx_polarity_flip_physical{215.0}=0x1
+phy_chain_rx_polarity_flip_physical{216.0}=0x0
+phy_chain_rx_polarity_flip_physical{217.0}=0x0
+phy_chain_rx_polarity_flip_physical{218.0}=0x0
+phy_chain_rx_polarity_flip_physical{219.0}=0x1
+phy_chain_rx_polarity_flip_physical{22.0}=0x0
+phy_chain_rx_polarity_flip_physical{220.0}=0x1
+phy_chain_rx_polarity_flip_physical{221.0}=0x0
+phy_chain_rx_polarity_flip_physical{222.0}=0x0
+phy_chain_rx_polarity_flip_physical{223.0}=0x1
+phy_chain_rx_polarity_flip_physical{224.0}=0x1
+phy_chain_rx_polarity_flip_physical{225.0}=0x1
+phy_chain_rx_polarity_flip_physical{226.0}=0x0
+phy_chain_rx_polarity_flip_physical{227.0}=0x0
+phy_chain_rx_polarity_flip_physical{228.0}=0x1
+phy_chain_rx_polarity_flip_physical{229.0}=0x0
+phy_chain_rx_polarity_flip_physical{23.0}=0x1
+phy_chain_rx_polarity_flip_physical{230.0}=0x0
+phy_chain_rx_polarity_flip_physical{231.0}=0x1
+phy_chain_rx_polarity_flip_physical{232.0}=0x1
+phy_chain_rx_polarity_flip_physical{233.0}=0x1
+phy_chain_rx_polarity_flip_physical{234.0}=0x0
+phy_chain_rx_polarity_flip_physical{235.0}=0x0
+phy_chain_rx_polarity_flip_physical{236.0}=0x0
+phy_chain_rx_polarity_flip_physical{237.0}=0x1
+phy_chain_rx_polarity_flip_physical{238.0}=0x0
+phy_chain_rx_polarity_flip_physical{239.0}=0x1
+phy_chain_rx_polarity_flip_physical{24.0}=0x0
+phy_chain_rx_polarity_flip_physical{240.0}=0x0
+phy_chain_rx_polarity_flip_physical{241.0}=0x1
+phy_chain_rx_polarity_flip_physical{242.0}=0x0
+phy_chain_rx_polarity_flip_physical{243.0}=0x1
+phy_chain_rx_polarity_flip_physical{244.0}=0x0
+phy_chain_rx_polarity_flip_physical{245.0}=0x1
+phy_chain_rx_polarity_flip_physical{246.0}=0x1
+phy_chain_rx_polarity_flip_physical{247.0}=0x1
+phy_chain_rx_polarity_flip_physical{248.0}=0x0
+phy_chain_rx_polarity_flip_physical{249.0}=0x0
+phy_chain_rx_polarity_flip_physical{25.0}=0x1
+phy_chain_rx_polarity_flip_physical{250.0}=0x1
+phy_chain_rx_polarity_flip_physical{251.0}=0x0
+phy_chain_rx_polarity_flip_physical{252.0}=0x1
+phy_chain_rx_polarity_flip_physical{253.0}=0x1
+phy_chain_rx_polarity_flip_physical{254.0}=0x0
+phy_chain_rx_polarity_flip_physical{255.0}=0x1
+phy_chain_rx_polarity_flip_physical{256.0}=0x0
+phy_chain_rx_polarity_flip_physical{257.0}=0x0
+phy_chain_rx_polarity_flip_physical{259.0}=0x0
+phy_chain_rx_polarity_flip_physical{26.0}=0x0
+phy_chain_rx_polarity_flip_physical{27.0}=0x1
+phy_chain_rx_polarity_flip_physical{28.0}=0x0
+phy_chain_rx_polarity_flip_physical{29.0}=0x0
+phy_chain_rx_polarity_flip_physical{3.0}=0x1
+phy_chain_rx_polarity_flip_physical{30.0}=0x0
+phy_chain_rx_polarity_flip_physical{31.0}=0x0
+phy_chain_rx_polarity_flip_physical{32.0}=0x1
+phy_chain_rx_polarity_flip_physical{33.0}=0x0
+phy_chain_rx_polarity_flip_physical{34.0}=0x0
+phy_chain_rx_polarity_flip_physical{35.0}=0x1
+phy_chain_rx_polarity_flip_physical{36.0}=0x1
+phy_chain_rx_polarity_flip_physical{37.0}=0x1
+phy_chain_rx_polarity_flip_physical{38.0}=0x1
+phy_chain_rx_polarity_flip_physical{39.0}=0x0
+phy_chain_rx_polarity_flip_physical{4.0}=0x0
+phy_chain_rx_polarity_flip_physical{40.0}=0x0
+phy_chain_rx_polarity_flip_physical{41.0}=0x0
+phy_chain_rx_polarity_flip_physical{42.0}=0x1
+phy_chain_rx_polarity_flip_physical{43.0}=0x1
+phy_chain_rx_polarity_flip_physical{44.0}=0x1
+phy_chain_rx_polarity_flip_physical{45.0}=0x1
+phy_chain_rx_polarity_flip_physical{46.0}=0x0
+phy_chain_rx_polarity_flip_physical{47.0}=0x0
+phy_chain_rx_polarity_flip_physical{48.0}=0x1
+phy_chain_rx_polarity_flip_physical{49.0}=0x1
+phy_chain_rx_polarity_flip_physical{5.0}=0x1
+phy_chain_rx_polarity_flip_physical{50.0}=0x1
+phy_chain_rx_polarity_flip_physical{51.0}=0x0
+phy_chain_rx_polarity_flip_physical{52.0}=0x0
+phy_chain_rx_polarity_flip_physical{53.0}=0x0
+phy_chain_rx_polarity_flip_physical{54.0}=0x0
+phy_chain_rx_polarity_flip_physical{55.0}=0x1
+phy_chain_rx_polarity_flip_physical{56.0}=0x0
+phy_chain_rx_polarity_flip_physical{57.0}=0x0
+phy_chain_rx_polarity_flip_physical{58.0}=0x0
+phy_chain_rx_polarity_flip_physical{59.0}=0x1
+phy_chain_rx_polarity_flip_physical{6.0}=0x0
+phy_chain_rx_polarity_flip_physical{60.0}=0x1
+phy_chain_rx_polarity_flip_physical{61.0}=0x0
+phy_chain_rx_polarity_flip_physical{62.0}=0x0
+phy_chain_rx_polarity_flip_physical{63.0}=0x1
+phy_chain_rx_polarity_flip_physical{64.0}=0x1
+phy_chain_rx_polarity_flip_physical{65.0}=0x1
+phy_chain_rx_polarity_flip_physical{66.0}=0x1
+phy_chain_rx_polarity_flip_physical{67.0}=0x0
+phy_chain_rx_polarity_flip_physical{68.0}=0x1
+phy_chain_rx_polarity_flip_physical{69.0}=0x0
+phy_chain_rx_polarity_flip_physical{7.0}=0x0
+phy_chain_rx_polarity_flip_physical{70.0}=0x0
+phy_chain_rx_polarity_flip_physical{71.0}=0x1
+phy_chain_rx_polarity_flip_physical{72.0}=0x1
+phy_chain_rx_polarity_flip_physical{73.0}=0x1
+phy_chain_rx_polarity_flip_physical{74.0}=0x1
+phy_chain_rx_polarity_flip_physical{75.0}=0x0
+phy_chain_rx_polarity_flip_physical{76.0}=0x0
+phy_chain_rx_polarity_flip_physical{77.0}=0x0
+phy_chain_rx_polarity_flip_physical{78.0}=0x0
+phy_chain_rx_polarity_flip_physical{79.0}=0x1
+phy_chain_rx_polarity_flip_physical{8.0}=0x1
+phy_chain_rx_polarity_flip_physical{80.0}=0x1
+phy_chain_rx_polarity_flip_physical{81.0}=0x1
+phy_chain_rx_polarity_flip_physical{82.0}=0x1
+phy_chain_rx_polarity_flip_physical{83.0}=0x0
+phy_chain_rx_polarity_flip_physical{84.0}=0x0
+phy_chain_rx_polarity_flip_physical{85.0}=0x1
+phy_chain_rx_polarity_flip_physical{86.0}=0x1
+phy_chain_rx_polarity_flip_physical{87.0}=0x0
+phy_chain_rx_polarity_flip_physical{88.0}=0x0
+phy_chain_rx_polarity_flip_physical{89.0}=0x0
+phy_chain_rx_polarity_flip_physical{9.0}=0x1
+phy_chain_rx_polarity_flip_physical{90.0}=0x0
+phy_chain_rx_polarity_flip_physical{91.0}=0x1
+phy_chain_rx_polarity_flip_physical{92.0}=0x1
+phy_chain_rx_polarity_flip_physical{93.0}=0x0
+phy_chain_rx_polarity_flip_physical{94.0}=0x0
+phy_chain_rx_polarity_flip_physical{95.0}=0x1
+phy_chain_rx_polarity_flip_physical{96.0}=0x0
+phy_chain_rx_polarity_flip_physical{97.0}=0x1
+phy_chain_rx_polarity_flip_physical{98.0}=0x1
+phy_chain_rx_polarity_flip_physical{99.0}=0x0
+phy_chain_tx_lane_map_physical{1.0}=0x2031
+phy_chain_tx_lane_map_physical{101.0}=0x1023
+phy_chain_tx_lane_map_physical{105.0}=0x1302
+phy_chain_tx_lane_map_physical{109.0}=0x0321
+phy_chain_tx_lane_map_physical{113.0}=0x2301
+phy_chain_tx_lane_map_physical{117.0}=0x3120
+phy_chain_tx_lane_map_physical{121.0}=0x3102
+phy_chain_tx_lane_map_physical{125.0}=0x3210
+phy_chain_tx_lane_map_physical{129.0}=0x1023
+phy_chain_tx_lane_map_physical{13.0}=0x3021
+phy_chain_tx_lane_map_physical{133.0}=0x3210
+phy_chain_tx_lane_map_physical{137.0}=0x2031
+phy_chain_tx_lane_map_physical{141.0}=0x1302
+phy_chain_tx_lane_map_physical{145.0}=0x3210
+phy_chain_tx_lane_map_physical{149.0}=0x0213
+phy_chain_tx_lane_map_physical{153.0}=0x3210
+phy_chain_tx_lane_map_physical{157.0}=0x1320
+phy_chain_tx_lane_map_physical{161.0}=0x3210
+phy_chain_tx_lane_map_physical{165.0}=0x0231
+phy_chain_tx_lane_map_physical{169.0}=0x3120
+phy_chain_tx_lane_map_physical{17.0}=0x1032
+phy_chain_tx_lane_map_physical{173.0}=0x0312
+phy_chain_tx_lane_map_physical{177.0}=0x0231
+phy_chain_tx_lane_map_physical{181.0}=0x3210
+phy_chain_tx_lane_map_physical{185.0}=0x3210
+phy_chain_tx_lane_map_physical{189.0}=0x1320
+phy_chain_tx_lane_map_physical{193.0}=0x0321
+phy_chain_tx_lane_map_physical{197.0}=0x3120
+phy_chain_tx_lane_map_physical{201.0}=0x3120
+phy_chain_tx_lane_map_physical{205.0}=0x0123
+phy_chain_tx_lane_map_physical{209.0}=0x3120
+phy_chain_tx_lane_map_physical{21.0}=0x0213
+phy_chain_tx_lane_map_physical{213.0}=0x3021
+phy_chain_tx_lane_map_physical{217.0}=0x0312
+phy_chain_tx_lane_map_physical{221.0}=0x2301
+phy_chain_tx_lane_map_physical{225.0}=0x0123
+phy_chain_tx_lane_map_physical{229.0}=0x2031
+phy_chain_tx_lane_map_physical{233.0}=0x0231
+phy_chain_tx_lane_map_physical{237.0}=0x0213
+phy_chain_tx_lane_map_physical{241.0}=0x1320
+phy_chain_tx_lane_map_physical{245.0}=0x2031
+phy_chain_tx_lane_map_physical{249.0}=0x3120
+phy_chain_tx_lane_map_physical{25.0}=0x0231
+phy_chain_tx_lane_map_physical{253.0}=0x0321
+phy_chain_tx_lane_map_physical{257.0}=0x3210
+phy_chain_tx_lane_map_physical{29.0}=0x1230
+phy_chain_tx_lane_map_physical{33.0}=0x1032
+phy_chain_tx_lane_map_physical{37.0}=0x0123
+phy_chain_tx_lane_map_physical{41.0}=0x0213
+phy_chain_tx_lane_map_physical{45.0}=0x0132
+phy_chain_tx_lane_map_physical{49.0}=0x2031
+phy_chain_tx_lane_map_physical{5.0}=0x2301
+phy_chain_tx_lane_map_physical{53.0}=0x2301
+phy_chain_tx_lane_map_physical{57.0}=0x2031
+phy_chain_tx_lane_map_physical{61.0}=0x2031
+phy_chain_tx_lane_map_physical{65.0}=0x1230
+phy_chain_tx_lane_map_physical{69.0}=0x2013
+phy_chain_tx_lane_map_physical{73.0}=0x0213
+phy_chain_tx_lane_map_physical{77.0}=0x2310
+phy_chain_tx_lane_map_physical{81.0}=0x0321
+phy_chain_tx_lane_map_physical{85.0}=0x2013
+phy_chain_tx_lane_map_physical{89.0}=0x0213
+phy_chain_tx_lane_map_physical{9.0}=0x3012
+phy_chain_tx_lane_map_physical{93.0}=0x3102
+phy_chain_tx_lane_map_physical{97.0}=0x3210
+phy_chain_tx_polarity_flip_physical{1.0}=0x0
+phy_chain_tx_polarity_flip_physical{10.0}=0x1
+phy_chain_tx_polarity_flip_physical{100.0}=0x0
+phy_chain_tx_polarity_flip_physical{101.0}=0x0
+phy_chain_tx_polarity_flip_physical{102.0}=0x1
+phy_chain_tx_polarity_flip_physical{103.0}=0x0
+phy_chain_tx_polarity_flip_physical{104.0}=0x0
+phy_chain_tx_polarity_flip_physical{105.0}=0x0
+phy_chain_tx_polarity_flip_physical{106.0}=0x1
+phy_chain_tx_polarity_flip_physical{107.0}=0x1
+phy_chain_tx_polarity_flip_physical{108.0}=0x1
+phy_chain_tx_polarity_flip_physical{109.0}=0x0
+phy_chain_tx_polarity_flip_physical{11.0}=0x1
+phy_chain_tx_polarity_flip_physical{110.0}=0x0
+phy_chain_tx_polarity_flip_physical{111.0}=0x0
+phy_chain_tx_polarity_flip_physical{112.0}=0x1
+phy_chain_tx_polarity_flip_physical{113.0}=0x1
+phy_chain_tx_polarity_flip_physical{114.0}=0x1
+phy_chain_tx_polarity_flip_physical{115.0}=0x1
+phy_chain_tx_polarity_flip_physical{116.0}=0x0
+phy_chain_tx_polarity_flip_physical{117.0}=0x1
+phy_chain_tx_polarity_flip_physical{118.0}=0x0
+phy_chain_tx_polarity_flip_physical{119.0}=0x0
+phy_chain_tx_polarity_flip_physical{12.0}=0x0
+phy_chain_tx_polarity_flip_physical{120.0}=0x0
+phy_chain_tx_polarity_flip_physical{121.0}=0x0
+phy_chain_tx_polarity_flip_physical{122.0}=0x0
+phy_chain_tx_polarity_flip_physical{123.0}=0x0
+phy_chain_tx_polarity_flip_physical{124.0}=0x1
+phy_chain_tx_polarity_flip_physical{125.0}=0x0
+phy_chain_tx_polarity_flip_physical{126.0}=0x1
+phy_chain_tx_polarity_flip_physical{127.0}=0x1
+phy_chain_tx_polarity_flip_physical{128.0}=0x1
+phy_chain_tx_polarity_flip_physical{129.0}=0x1
+phy_chain_tx_polarity_flip_physical{13.0}=0x0
+phy_chain_tx_polarity_flip_physical{130.0}=0x0
+phy_chain_tx_polarity_flip_physical{131.0}=0x1
+phy_chain_tx_polarity_flip_physical{132.0}=0x0
+phy_chain_tx_polarity_flip_physical{133.0}=0x1
+phy_chain_tx_polarity_flip_physical{134.0}=0x1
+phy_chain_tx_polarity_flip_physical{135.0}=0x1
+phy_chain_tx_polarity_flip_physical{136.0}=0x1
+phy_chain_tx_polarity_flip_physical{137.0}=0x1
+phy_chain_tx_polarity_flip_physical{138.0}=0x1
+phy_chain_tx_polarity_flip_physical{139.0}=0x1
+phy_chain_tx_polarity_flip_physical{14.0}=0x1
+phy_chain_tx_polarity_flip_physical{140.0}=0x1
+phy_chain_tx_polarity_flip_physical{141.0}=0x0
+phy_chain_tx_polarity_flip_physical{142.0}=0x1
+phy_chain_tx_polarity_flip_physical{143.0}=0x1
+phy_chain_tx_polarity_flip_physical{144.0}=0x1
+phy_chain_tx_polarity_flip_physical{145.0}=0x1
+phy_chain_tx_polarity_flip_physical{146.0}=0x1
+phy_chain_tx_polarity_flip_physical{147.0}=0x1
+phy_chain_tx_polarity_flip_physical{148.0}=0x0
+phy_chain_tx_polarity_flip_physical{149.0}=0x1
+phy_chain_tx_polarity_flip_physical{15.0}=0x0
+phy_chain_tx_polarity_flip_physical{150.0}=0x0
+phy_chain_tx_polarity_flip_physical{151.0}=0x0
+phy_chain_tx_polarity_flip_physical{152.0}=0x0
+phy_chain_tx_polarity_flip_physical{153.0}=0x1
+phy_chain_tx_polarity_flip_physical{154.0}=0x0
+phy_chain_tx_polarity_flip_physical{155.0}=0x0
+phy_chain_tx_polarity_flip_physical{156.0}=0x0
+phy_chain_tx_polarity_flip_physical{157.0}=0x0
+phy_chain_tx_polarity_flip_physical{158.0}=0x0
+phy_chain_tx_polarity_flip_physical{159.0}=0x0
+phy_chain_tx_polarity_flip_physical{16.0}=0x0
+phy_chain_tx_polarity_flip_physical{160.0}=0x0
+phy_chain_tx_polarity_flip_physical{161.0}=0x0
+phy_chain_tx_polarity_flip_physical{162.0}=0x1
+phy_chain_tx_polarity_flip_physical{163.0}=0x1
+phy_chain_tx_polarity_flip_physical{164.0}=0x0
+phy_chain_tx_polarity_flip_physical{165.0}=0x1
+phy_chain_tx_polarity_flip_physical{166.0}=0x1
+phy_chain_tx_polarity_flip_physical{167.0}=0x1
+phy_chain_tx_polarity_flip_physical{168.0}=0x0
+phy_chain_tx_polarity_flip_physical{169.0}=0x0
+phy_chain_tx_polarity_flip_physical{17.0}=0x0
+phy_chain_tx_polarity_flip_physical{170.0}=0x1
+phy_chain_tx_polarity_flip_physical{171.0}=0x1
+phy_chain_tx_polarity_flip_physical{172.0}=0x1
+phy_chain_tx_polarity_flip_physical{173.0}=0x0
+phy_chain_tx_polarity_flip_physical{174.0}=0x0
+phy_chain_tx_polarity_flip_physical{175.0}=0x1
+phy_chain_tx_polarity_flip_physical{176.0}=0x0
+phy_chain_tx_polarity_flip_physical{177.0}=0x1
+phy_chain_tx_polarity_flip_physical{178.0}=0x0
+phy_chain_tx_polarity_flip_physical{179.0}=0x0
+phy_chain_tx_polarity_flip_physical{18.0}=0x1
+phy_chain_tx_polarity_flip_physical{180.0}=0x0
+phy_chain_tx_polarity_flip_physical{181.0}=0x0
+phy_chain_tx_polarity_flip_physical{182.0}=0x0
+phy_chain_tx_polarity_flip_physical{183.0}=0x0
+phy_chain_tx_polarity_flip_physical{184.0}=0x1
+phy_chain_tx_polarity_flip_physical{185.0}=0x0
+phy_chain_tx_polarity_flip_physical{186.0}=0x1
+phy_chain_tx_polarity_flip_physical{187.0}=0x1
+phy_chain_tx_polarity_flip_physical{188.0}=0x1
+phy_chain_tx_polarity_flip_physical{189.0}=0x0
+phy_chain_tx_polarity_flip_physical{19.0}=0x1
+phy_chain_tx_polarity_flip_physical{190.0}=0x0
+phy_chain_tx_polarity_flip_physical{191.0}=0x0
+phy_chain_tx_polarity_flip_physical{192.0}=0x0
+phy_chain_tx_polarity_flip_physical{193.0}=0x1
+phy_chain_tx_polarity_flip_physical{194.0}=0x1
+phy_chain_tx_polarity_flip_physical{195.0}=0x1
+phy_chain_tx_polarity_flip_physical{196.0}=0x0
+phy_chain_tx_polarity_flip_physical{197.0}=0x0
+phy_chain_tx_polarity_flip_physical{198.0}=0x1
+phy_chain_tx_polarity_flip_physical{199.0}=0x1
+phy_chain_tx_polarity_flip_physical{2.0}=0x1
+phy_chain_tx_polarity_flip_physical{20.0}=0x1
+phy_chain_tx_polarity_flip_physical{200.0}=0x1
+phy_chain_tx_polarity_flip_physical{201.0}=0x1
+phy_chain_tx_polarity_flip_physical{202.0}=0x1
+phy_chain_tx_polarity_flip_physical{203.0}=0x1
+phy_chain_tx_polarity_flip_physical{204.0}=0x1
+phy_chain_tx_polarity_flip_physical{205.0}=0x0
+phy_chain_tx_polarity_flip_physical{206.0}=0x1
+phy_chain_tx_polarity_flip_physical{207.0}=0x1
+phy_chain_tx_polarity_flip_physical{208.0}=0x1
+phy_chain_tx_polarity_flip_physical{209.0}=0x1
+phy_chain_tx_polarity_flip_physical{21.0}=0x0
+phy_chain_tx_polarity_flip_physical{210.0}=0x1
+phy_chain_tx_polarity_flip_physical{211.0}=0x1
+phy_chain_tx_polarity_flip_physical{212.0}=0x0
+phy_chain_tx_polarity_flip_physical{213.0}=0x0
+phy_chain_tx_polarity_flip_physical{214.0}=0x1
+phy_chain_tx_polarity_flip_physical{215.0}=0x0
+phy_chain_tx_polarity_flip_physical{216.0}=0x1
+phy_chain_tx_polarity_flip_physical{217.0}=0x1
+phy_chain_tx_polarity_flip_physical{218.0}=0x1
+phy_chain_tx_polarity_flip_physical{219.0}=0x0
+phy_chain_tx_polarity_flip_physical{22.0}=0x0
+phy_chain_tx_polarity_flip_physical{220.0}=0x1
+phy_chain_tx_polarity_flip_physical{221.0}=0x0
+phy_chain_tx_polarity_flip_physical{222.0}=0x0
+phy_chain_tx_polarity_flip_physical{223.0}=0x0
+phy_chain_tx_polarity_flip_physical{224.0}=0x1
+phy_chain_tx_polarity_flip_physical{225.0}=0x1
+phy_chain_tx_polarity_flip_physical{226.0}=0x1
+phy_chain_tx_polarity_flip_physical{227.0}=0x1
+phy_chain_tx_polarity_flip_physical{228.0}=0x0
+phy_chain_tx_polarity_flip_physical{229.0}=0x0
+phy_chain_tx_polarity_flip_physical{23.0}=0x0
+phy_chain_tx_polarity_flip_physical{230.0}=0x1
+phy_chain_tx_polarity_flip_physical{231.0}=0x1
+phy_chain_tx_polarity_flip_physical{232.0}=0x1
+phy_chain_tx_polarity_flip_physical{233.0}=0x0
+phy_chain_tx_polarity_flip_physical{234.0}=0x0
+phy_chain_tx_polarity_flip_physical{235.0}=0x0
+phy_chain_tx_polarity_flip_physical{236.0}=0x0
+phy_chain_tx_polarity_flip_physical{237.0}=0x1
+phy_chain_tx_polarity_flip_physical{238.0}=0x1
+phy_chain_tx_polarity_flip_physical{239.0}=0x1
+phy_chain_tx_polarity_flip_physical{24.0}=0x0
+phy_chain_tx_polarity_flip_physical{240.0}=0x0
+phy_chain_tx_polarity_flip_physical{241.0}=0x1
+phy_chain_tx_polarity_flip_physical{242.0}=0x1
+phy_chain_tx_polarity_flip_physical{243.0}=0x1
+phy_chain_tx_polarity_flip_physical{244.0}=0x0
+phy_chain_tx_polarity_flip_physical{245.0}=0x1
+phy_chain_tx_polarity_flip_physical{246.0}=0x1
+phy_chain_tx_polarity_flip_physical{247.0}=0x1
+phy_chain_tx_polarity_flip_physical{248.0}=0x1
+phy_chain_tx_polarity_flip_physical{249.0}=0x1
+phy_chain_tx_polarity_flip_physical{25.0}=0x1
+phy_chain_tx_polarity_flip_physical{250.0}=0x0
+phy_chain_tx_polarity_flip_physical{251.0}=0x0
+phy_chain_tx_polarity_flip_physical{252.0}=0x0
+phy_chain_tx_polarity_flip_physical{253.0}=0x1
+phy_chain_tx_polarity_flip_physical{254.0}=0x1
+phy_chain_tx_polarity_flip_physical{255.0}=0x1
+phy_chain_tx_polarity_flip_physical{256.0}=0x0
+phy_chain_tx_polarity_flip_physical{257.0}=0x0
+phy_chain_tx_polarity_flip_physical{259.0}=0x0
+phy_chain_tx_polarity_flip_physical{26.0}=0x0
+phy_chain_tx_polarity_flip_physical{27.0}=0x0
+phy_chain_tx_polarity_flip_physical{28.0}=0x0
+phy_chain_tx_polarity_flip_physical{29.0}=0x1
+phy_chain_tx_polarity_flip_physical{3.0}=0x1
+phy_chain_tx_polarity_flip_physical{30.0}=0x1
+phy_chain_tx_polarity_flip_physical{31.0}=0x1
+phy_chain_tx_polarity_flip_physical{32.0}=0x0
+phy_chain_tx_polarity_flip_physical{33.0}=0x0
+phy_chain_tx_polarity_flip_physical{34.0}=0x0
+phy_chain_tx_polarity_flip_physical{35.0}=0x0
+phy_chain_tx_polarity_flip_physical{36.0}=0x1
+phy_chain_tx_polarity_flip_physical{37.0}=0x1
+phy_chain_tx_polarity_flip_physical{38.0}=0x1
+phy_chain_tx_polarity_flip_physical{39.0}=0x1
+phy_chain_tx_polarity_flip_physical{4.0}=0x1
+phy_chain_tx_polarity_flip_physical{40.0}=0x0
+phy_chain_tx_polarity_flip_physical{41.0}=0x0
+phy_chain_tx_polarity_flip_physical{42.0}=0x0
+phy_chain_tx_polarity_flip_physical{43.0}=0x0
+phy_chain_tx_polarity_flip_physical{44.0}=0x0
+phy_chain_tx_polarity_flip_physical{45.0}=0x1
+phy_chain_tx_polarity_flip_physical{46.0}=0x0
+phy_chain_tx_polarity_flip_physical{47.0}=0x1
+phy_chain_tx_polarity_flip_physical{48.0}=0x1
+phy_chain_tx_polarity_flip_physical{49.0}=0x0
+phy_chain_tx_polarity_flip_physical{5.0}=0x1
+phy_chain_tx_polarity_flip_physical{50.0}=0x0
+phy_chain_tx_polarity_flip_physical{51.0}=0x0
+phy_chain_tx_polarity_flip_physical{52.0}=0x1
+phy_chain_tx_polarity_flip_physical{53.0}=0x0
+phy_chain_tx_polarity_flip_physical{54.0}=0x1
+phy_chain_tx_polarity_flip_physical{55.0}=0x1
+phy_chain_tx_polarity_flip_physical{56.0}=0x0
+phy_chain_tx_polarity_flip_physical{57.0}=0x0
+phy_chain_tx_polarity_flip_physical{58.0}=0x1
+phy_chain_tx_polarity_flip_physical{59.0}=0x1
+phy_chain_tx_polarity_flip_physical{6.0}=0x1
+phy_chain_tx_polarity_flip_physical{60.0}=0x1
+phy_chain_tx_polarity_flip_physical{61.0}=0x0
+phy_chain_tx_polarity_flip_physical{62.0}=0x1
+phy_chain_tx_polarity_flip_physical{63.0}=0x1
+phy_chain_tx_polarity_flip_physical{64.0}=0x1
+phy_chain_tx_polarity_flip_physical{65.0}=0x0
+phy_chain_tx_polarity_flip_physical{66.0}=0x1
+phy_chain_tx_polarity_flip_physical{67.0}=0x1
+phy_chain_tx_polarity_flip_physical{68.0}=0x0
+phy_chain_tx_polarity_flip_physical{69.0}=0x1
+phy_chain_tx_polarity_flip_physical{7.0}=0x1
+phy_chain_tx_polarity_flip_physical{70.0}=0x1
+phy_chain_tx_polarity_flip_physical{71.0}=0x1
+phy_chain_tx_polarity_flip_physical{72.0}=0x0
+phy_chain_tx_polarity_flip_physical{73.0}=0x1
+phy_chain_tx_polarity_flip_physical{74.0}=0x0
+phy_chain_tx_polarity_flip_physical{75.0}=0x0
+phy_chain_tx_polarity_flip_physical{76.0}=0x0
+phy_chain_tx_polarity_flip_physical{77.0}=0x0
+phy_chain_tx_polarity_flip_physical{78.0}=0x0
+phy_chain_tx_polarity_flip_physical{79.0}=0x1
+phy_chain_tx_polarity_flip_physical{8.0}=0x0
+phy_chain_tx_polarity_flip_physical{80.0}=0x0
+phy_chain_tx_polarity_flip_physical{81.0}=0x1
+phy_chain_tx_polarity_flip_physical{82.0}=0x1
+phy_chain_tx_polarity_flip_physical{83.0}=0x1
+phy_chain_tx_polarity_flip_physical{84.0}=0x0
+phy_chain_tx_polarity_flip_physical{85.0}=0x1
+phy_chain_tx_polarity_flip_physical{86.0}=0x0
+phy_chain_tx_polarity_flip_physical{87.0}=0x0
+phy_chain_tx_polarity_flip_physical{88.0}=0x0
+phy_chain_tx_polarity_flip_physical{89.0}=0x1
+phy_chain_tx_polarity_flip_physical{9.0}=0x0
+phy_chain_tx_polarity_flip_physical{90.0}=0x1
+phy_chain_tx_polarity_flip_physical{91.0}=0x1
+phy_chain_tx_polarity_flip_physical{92.0}=0x0
+phy_chain_tx_polarity_flip_physical{93.0}=0x0
+phy_chain_tx_polarity_flip_physical{94.0}=0x0
+phy_chain_tx_polarity_flip_physical{95.0}=0x0
+phy_chain_tx_polarity_flip_physical{96.0}=0x0
+phy_chain_tx_polarity_flip_physical{97.0}=0x0
+phy_chain_tx_polarity_flip_physical{98.0}=0x1
+phy_chain_tx_polarity_flip_physical{99.0}=0x1
+port_init_autoneg_100=0
+port_init_autoneg_102=0
+port_init_autoneg_103=0
+port_init_autoneg_104=0
+port_init_autoneg_105=0
+port_init_autoneg_106=0
+port_init_autoneg_107=0
+port_init_autoneg_108=0
+port_init_autoneg_109=0
+port_init_autoneg_10=0
+port_init_autoneg_110=0
+port_init_autoneg_111=0
+port_init_autoneg_112=0
+port_init_autoneg_113=0
+port_init_autoneg_114=0
+port_init_autoneg_115=0
+port_init_autoneg_116=0
+port_init_autoneg_117=0
+port_init_autoneg_11=0
+port_init_autoneg_12=0
+port_init_autoneg_13=0
+port_init_autoneg_14=0
+port_init_autoneg_15=0
+port_init_autoneg_16=0
+port_init_autoneg_1=0
+port_init_autoneg_2=0
+port_init_autoneg_34=0
+port_init_autoneg_35=0
+port_init_autoneg_36=0
+port_init_autoneg_37=0
+port_init_autoneg_38=0
+port_init_autoneg_39=0
+port_init_autoneg_3=0
+port_init_autoneg_40=0
+port_init_autoneg_41=0
+port_init_autoneg_42=0
+port_init_autoneg_43=0
+port_init_autoneg_44=0
+port_init_autoneg_45=0
+port_init_autoneg_46=0
+port_init_autoneg_47=0
+port_init_autoneg_48=0
+port_init_autoneg_49=0
+port_init_autoneg_4=0
+port_init_autoneg_5=0
+port_init_autoneg_66=0
+port_init_autoneg_68=0
+port_init_autoneg_69=0
+port_init_autoneg_6=0
+port_init_autoneg_70=0
+port_init_autoneg_71=0
+port_init_autoneg_72=0
+port_init_autoneg_73=0
+port_init_autoneg_74=0
+port_init_autoneg_75=0
+port_init_autoneg_76=0
+port_init_autoneg_77=0
+port_init_autoneg_78=0
+port_init_autoneg_79=0
+port_init_autoneg_7=0
+port_init_autoneg_80=0
+port_init_autoneg_81=0
+port_init_autoneg_82=0
+port_init_autoneg_83=0
+port_init_autoneg_8=0
+port_init_autoneg_9=0
+port_init_cl72_hg=1
+port_phy_addr_100=0xff
+port_phy_addr_102=0xff
+port_phy_addr_103=0xff
+port_phy_addr_104=0xff
+port_phy_addr_105=0xff
+port_phy_addr_106=0xff
+port_phy_addr_107=0xff
+port_phy_addr_108=0xff
+port_phy_addr_109=0xff
+port_phy_addr_10=0xff
+port_phy_addr_110=0xff
+port_phy_addr_111=0xff
+port_phy_addr_112=0xff
+port_phy_addr_113=0xff
+port_phy_addr_114=0xff
+port_phy_addr_115=0xff
+port_phy_addr_116=0xff
+port_phy_addr_117=0xff
+port_phy_addr_11=0xff
+port_phy_addr_12=0xff
+port_phy_addr_13=0xff
+port_phy_addr_14=0xff
+port_phy_addr_15=0xff
+port_phy_addr_16=0xff
+port_phy_addr_1=0xff
+port_phy_addr_2=0xff
+port_phy_addr_34=0xff
+port_phy_addr_35=0xff
+port_phy_addr_36=0xff
+port_phy_addr_37=0xff
+port_phy_addr_38=0xff
+port_phy_addr_39=0xff
+port_phy_addr_3=0xff
+port_phy_addr_40=0xff
+port_phy_addr_41=0xff
+port_phy_addr_42=0xff
+port_phy_addr_43=0xff
+port_phy_addr_44=0xff
+port_phy_addr_45=0xff
+port_phy_addr_46=0xff
+port_phy_addr_47=0xff
+port_phy_addr_48=0xff
+port_phy_addr_49=0xff
+port_phy_addr_4=0xff
+port_phy_addr_5=0xff
+port_phy_addr_66=0xff
+port_phy_addr_68=0xff
+port_phy_addr_69=0xff
+port_phy_addr_6=0xff
+port_phy_addr_70=0xff
+port_phy_addr_71=0xff
+port_phy_addr_72=0xff
+port_phy_addr_73=0xff
+port_phy_addr_74=0xff
+port_phy_addr_75=0xff
+port_phy_addr_76=0xff
+port_phy_addr_77=0xff
+port_phy_addr_78=0xff
+port_phy_addr_79=0xff
+port_phy_addr_7=0xff
+port_phy_addr_80=0xff
+port_phy_addr_81=0xff
+port_phy_addr_82=0xff
+port_phy_addr_83=0xff
+port_phy_addr_8=0xff
+port_phy_addr_9=0xff
+portmap_100=259:10
+portmap_101=262:10
+portmap_102=217:40
+portmap_103=213:40
+portmap_104=229:40
+portmap_105=237:40
+portmap_106=249:40
+portmap_107=245:40
+portmap_108=209:40
+portmap_109=221:40
+portmap_10=29:40
+portmap_110=233:40
+portmap_111=225:40
+portmap_112=241:40
+portmap_113=253:40
+portmap_114=197:40
+portmap_115=205:40
+portmap_116=201:40
+portmap_117=193:40
+portmap_11=41:40
+portmap_12=33:40
+portmap_134=263:10
+portmap_13=57:40
+portmap_14=53:40
+portmap_15=49:40
+portmap_16=61:40
+portmap_1=5:40
+portmap_2=13:40
+portmap_33=260:10
+portmap_34=77:40
+portmap_35=65:40
+portmap_36=85:40
+portmap_37=89:40
+portmap_38=109:40
+portmap_39=97:40
+portmap_3=25:40
+portmap_40=69:40
+portmap_41=73:40
+portmap_42=93:40
+portmap_43=81:40
+portmap_44=101:40
+portmap_45=105:40
+portmap_46=117:40
+portmap_47=121:40
+portmap_48=125:40
+portmap_49=113:40
+portmap_4=21:40
+portmap_5=37:40
+portmap_66=257:10
+portmap_67=261:10
+portmap_68=149:40
+portmap_69=153:40
+portmap_6=45:40
+portmap_70=173:40
+portmap_71=161:40
+portmap_72=181:40
+portmap_73=185:40
+portmap_74=157:40
+portmap_75=145:40
+portmap_76=165:40
+portmap_77=169:40
+portmap_78=189:40
+portmap_79=177:40
+portmap_7=9:40
+portmap_80=141:40
+portmap_81=133:40
+portmap_82=129:40
+portmap_83=137:40
+portmap_8=1:40
+portmap_9=17:40
+robust_hash_disable_egress_vlan=1
+robust_hash_disable_mpls=1
+robust_hash_disable_vlan=1
+sram_scan_enable=0
+stable_size=0x5500000
+stable_size=0x5500000
+tdma_timeout_usec=15000000
+tslam_timeout_usec=15000000
+
+# tuning parameters
+serdes_preemphasis_1=0x105004
+serdes_preemphasis_2=0x105004
+serdes_preemphasis_3=0x105004
+serdes_preemphasis_4=0x105004
+serdes_preemphasis_5=0x105004
+serdes_preemphasis_6=0x105004
+serdes_preemphasis_7=0x105004
+serdes_preemphasis_8=0x105004
+serdes_preemphasis_9=0x105004
+serdes_preemphasis_10=0x105004
+serdes_preemphasis_11=0x105004
+serdes_preemphasis_12=0x105004
+serdes_preemphasis_13=0x71f01
+serdes_preemphasis_14=0x72101
+serdes_preemphasis_15=0x105004
+serdes_preemphasis_16=0x105004
+serdes_preemphasis_34=0x105004
+serdes_preemphasis_35=0x105004
+serdes_preemphasis_36=0x105004
+serdes_preemphasis_37=0x105004
+serdes_preemphasis_38=0x105004
+serdes_preemphasis_39=0x105004
+serdes_preemphasis_40=0x105004
+serdes_preemphasis_41=0x105004
+serdes_preemphasis_42=0x105004
+serdes_preemphasis_43=0x105004
+serdes_preemphasis_44=0x105004
+serdes_preemphasis_45=0x105004
+serdes_preemphasis_46=0x61d01
+serdes_preemphasis_47=0x51a01
+serdes_preemphasis_48=0x105004
+serdes_preemphasis_49=0x105004
+serdes_preemphasis_66=0x62f01
+serdes_preemphasis_68=0x105004
+serdes_preemphasis_69=0x105004
+serdes_preemphasis_70=0x105004
+serdes_preemphasis_71=0x105004
+serdes_preemphasis_72=0x105004
+serdes_preemphasis_73=0x105004
+serdes_preemphasis_74=0x105004
+serdes_preemphasis_75=0x105004
+serdes_preemphasis_76=0x105004
+serdes_preemphasis_77=0x105004
+serdes_preemphasis_78=0x105004
+serdes_preemphasis_79=0x105004
+serdes_preemphasis_80=0x61d01
+serdes_preemphasis_81=0x51b01
+serdes_preemphasis_82=0x105004
+serdes_preemphasis_83=0x105004
+serdes_preemphasis_100=0x62f01
+serdes_preemphasis_102=0x105004
+serdes_preemphasis_103=0x105004
+serdes_preemphasis_104=0x105004
+serdes_preemphasis_105=0x105004
+serdes_preemphasis_106=0x105004
+serdes_preemphasis_107=0x105004
+serdes_preemphasis_108=0x105004
+serdes_preemphasis_109=0x105004
+serdes_preemphasis_110=0x105004
+serdes_preemphasis_111=0x105004
+serdes_preemphasis_112=0x105004
+serdes_preemphasis_113=0x105004
+serdes_preemphasis_114=0x61c01
+serdes_preemphasis_115=0x61c01
+serdes_preemphasis_116=0x105004
+serdes_preemphasis_117=0x105004
diff --git a/device/dell/x86_64-dell_s6000_s1220-r0/Force10-S6000/buffers_defaults_t0.j2 b/device/dell/x86_64-dell_s6000_s1220-r0/Force10-S6000/buffers_defaults_t0.j2
index 40d32ef316da..38e34eb571e8 100644
--- a/device/dell/x86_64-dell_s6000_s1220-r0/Force10-S6000/buffers_defaults_t0.j2
+++ b/device/dell/x86_64-dell_s6000_s1220-r0/Force10-S6000/buffers_defaults_t0.j2
@@ -20,7 +20,7 @@
"mode": "static"
},
"egress_lossy_pool": {
- "size": "7582515",
+ "size": "7326924",
"type": "egress",
"mode": "dynamic"
}
diff --git a/device/dell/x86_64-dell_s6000_s1220-r0/Force10-S6000/buffers_defaults_t1.j2 b/device/dell/x86_64-dell_s6000_s1220-r0/Force10-S6000/buffers_defaults_t1.j2
index 40d32ef316da..38e34eb571e8 100644
--- a/device/dell/x86_64-dell_s6000_s1220-r0/Force10-S6000/buffers_defaults_t1.j2
+++ b/device/dell/x86_64-dell_s6000_s1220-r0/Force10-S6000/buffers_defaults_t1.j2
@@ -20,7 +20,7 @@
"mode": "static"
},
"egress_lossy_pool": {
- "size": "7582515",
+ "size": "7326924",
"type": "egress",
"mode": "dynamic"
}
diff --git a/device/dell/x86_64-dell_s6000_s1220-r0/Force10-S6000/pg_profile_lookup.ini b/device/dell/x86_64-dell_s6000_s1220-r0/Force10-S6000/pg_profile_lookup.ini
index 135a598465ba..9f2eacb6fc42 100644
--- a/device/dell/x86_64-dell_s6000_s1220-r0/Force10-S6000/pg_profile_lookup.ini
+++ b/device/dell/x86_64-dell_s6000_s1220-r0/Force10-S6000/pg_profile_lookup.ini
@@ -1,11 +1,17 @@
# PG lossless profiles.
# speed cable size xon xoff threshold xon_offset
- 40000 5m 41808 18432 40560 -3 2496
- 50000 5m 41808 18432 40560 -3 2496
- 100000 5m 41808 18432 40560 -3 2496
- 40000 40m 51376 18432 50128 -3 2496
- 50000 40m 51376 18432 50128 -3 2496
- 100000 40m 51376 18432 50128 -3 2496
- 40000 300m 51376 18432 50128 -3 2496
- 50000 300m 51376 18432 50128 -3 2496
- 100000 300m 51376 18432 50128 -3 2496
+ 10000 5m 56368 18432 55120 -3 2496
+ 25000 5m 56368 18432 55120 -3 2496
+ 40000 5m 56368 18432 55120 -3 2496
+ 50000 5m 56368 18432 55120 -3 2496
+ 100000 5m 56368 18432 55120 -3 2496
+ 10000 40m 56368 18432 55120 -3 2496
+ 25000 40m 56368 18432 55120 -3 2496
+ 40000 40m 56368 18432 55120 -3 2496
+ 50000 40m 56368 18432 55120 -3 2496
+ 100000 40m 56368 18432 55120 -3 2496
+ 10000 300m 56368 18432 55120 -3 2496
+ 25000 300m 56368 18432 55120 -3 2496
+ 40000 300m 56368 18432 55120 -3 2496
+ 50000 300m 56368 18432 55120 -3 2496
+ 100000 300m 56368 18432 55120 -3 2496
diff --git a/device/dell/x86_64-dell_s6100_c2538-r0/Force10-S6100/buffers_defaults_t0.j2 b/device/dell/x86_64-dell_s6100_c2538-r0/Force10-S6100/buffers_defaults_t0.j2
index e337f676b650..f949a31eab7b 100644
--- a/device/dell/x86_64-dell_s6100_c2538-r0/Force10-S6100/buffers_defaults_t0.j2
+++ b/device/dell/x86_64-dell_s6100_c2538-r0/Force10-S6100/buffers_defaults_t0.j2
@@ -11,13 +11,13 @@
{%- macro generate_buffer_pool_and_profiles() %}
"BUFFER_POOL": {
"ingress_lossless_pool": {
- "size": "11213696",
+ "size": "10875072",
"type": "ingress",
"mode": "dynamic",
- "xoff": "3855488"
+ "xoff": "4194112"
},
"egress_lossy_pool": {
- "size": "9532224",
+ "size": "9243812",
"type": "egress",
"mode": "dynamic"
},
diff --git a/device/dell/x86_64-dell_s6100_c2538-r0/Force10-S6100/buffers_defaults_t1.j2 b/device/dell/x86_64-dell_s6100_c2538-r0/Force10-S6100/buffers_defaults_t1.j2
index c7c98bfe4299..e56bbb65845f 100644
--- a/device/dell/x86_64-dell_s6100_c2538-r0/Force10-S6100/buffers_defaults_t1.j2
+++ b/device/dell/x86_64-dell_s6100_c2538-r0/Force10-S6100/buffers_defaults_t1.j2
@@ -11,13 +11,13 @@
{%- macro generate_buffer_pool_and_profiles() %}
"BUFFER_POOL": {
"ingress_lossless_pool": {
- "size": "10443264",
+ "size": "10875072",
"type": "ingress",
"mode": "dynamic",
- "xoff": "4625920"
+ "xoff": "4194112"
},
"egress_lossy_pool": {
- "size": "8877440",
+ "size": "9243812",
"type": "egress",
"mode": "dynamic"
},
diff --git a/device/dell/x86_64-dell_s6100_c2538-r0/Force10-S6100/pg_profile_lookup.ini b/device/dell/x86_64-dell_s6100_c2538-r0/Force10-S6100/pg_profile_lookup.ini
index 570454c8d5b2..dc05d0a100a3 100644
--- a/device/dell/x86_64-dell_s6100_c2538-r0/Force10-S6100/pg_profile_lookup.ini
+++ b/device/dell/x86_64-dell_s6100_c2538-r0/Force10-S6100/pg_profile_lookup.ini
@@ -13,5 +13,5 @@
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 131456 -3 2288
+ 50000 300m 1248 2288 141856 -3 2288
100000 300m 1248 2288 268736 -3 2288
diff --git a/device/dell/x86_64-dell_z9100_c2538-r0/Force10-Z9100-C32/buffers_defaults_t1.j2 b/device/dell/x86_64-dell_z9100_c2538-r0/Force10-Z9100-C32/buffers_defaults_t1.j2
index 5c654ab9e8a1..e127362c091a 100644
--- a/device/dell/x86_64-dell_z9100_c2538-r0/Force10-Z9100-C32/buffers_defaults_t1.j2
+++ b/device/dell/x86_64-dell_z9100_c2538-r0/Force10-Z9100-C32/buffers_defaults_t1.j2
@@ -11,13 +11,13 @@
{%- macro generate_buffer_pool_and_profiles() %}
"BUFFER_POOL": {
"ingress_lossless_pool": {
- "size": "10443264",
+ "size": "10875072",
"type": "ingress",
"mode": "dynamic",
- "xoff": "4625920"
+ "xoff": "4194112"
},
"egress_lossy_pool": {
- "size": "8877440",
+ "size": "9243812",
"type": "egress",
"mode": "dynamic"
},
diff --git a/device/dell/x86_64-dell_z9100_c2538-r0/Force10-Z9100-C8D48/buffers_defaults_t0.j2 b/device/dell/x86_64-dell_z9100_c2538-r0/Force10-Z9100-C8D48/buffers_defaults_t0.j2
index 4bd35b354c8a..f200b85b2027 100644
--- a/device/dell/x86_64-dell_z9100_c2538-r0/Force10-Z9100-C8D48/buffers_defaults_t0.j2
+++ b/device/dell/x86_64-dell_z9100_c2538-r0/Force10-Z9100-C8D48/buffers_defaults_t0.j2
@@ -25,13 +25,13 @@
{%- macro generate_buffer_pool_and_profiles() %}
"BUFFER_POOL": {
"ingress_lossless_pool": {
- "size": "11213696",
+ "size": "10875072",
"type": "ingress",
"mode": "dynamic",
- "xoff": "3855488"
+ "xoff": "4194112"
},
"egress_lossy_pool": {
- "size": "9532224",
+ "size": "9243812",
"type": "egress",
"mode": "dynamic"
},
diff --git a/device/mellanox/x86_64-mlnx_msn2010-r0/ACS-MSN2010/sai.profile b/device/mellanox/x86_64-mlnx_msn2010-r0/ACS-MSN2010/sai.profile
index 32994eb9a823..c13ca373750d 100644
--- a/device/mellanox/x86_64-mlnx_msn2010-r0/ACS-MSN2010/sai.profile
+++ b/device/mellanox/x86_64-mlnx_msn2010-r0/ACS-MSN2010/sai.profile
@@ -1 +1 @@
-SAI_INIT_CONFIG_FILE=/usr/share/sai_2010.xml
+SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/sai_2010.xml
diff --git a/device/mellanox/x86_64-mlnx_msn2010-r0/ACS-MSN2010/sai_2010.xml b/device/mellanox/x86_64-mlnx_msn2010-r0/ACS-MSN2010/sai_2010.xml
index 8f4af640ddde..34151a434a23 100644
--- a/device/mellanox/x86_64-mlnx_msn2010-r0/ACS-MSN2010/sai_2010.xml
+++ b/device/mellanox/x86_64-mlnx_msn2010-r0/ACS-MSN2010/sai_2010.xml
@@ -5,15 +5,18 @@
00:02:03:04:05:00
+
+ 1
+
- 32
+ 22
1
- 32
1
+ 14
0
@@ -23,220 +26,150 @@
2
- 33
1
+ 15
0
939524096
3
- 34
1
+ 16
0
939524096
4
- 35
1
+ 17
0
939524096
5
- 36
- 1
- 0
- 4096
-
-
- 6
- 37
- 1
- 0
- 4096
-
-
- 7
- 38
- 1
- 0
- 4096
-
-
- 8
- 39
- 1
- 0
- 4096
+ 4
+ 19
+ 3
+ 11534336
9
- 40
- 1
- 0
- 4096
-
-
- 10
- 41
- 1
- 0
- 4096
-
-
- 11
- 42
- 1
- 0
- 4096
-
-
- 12
- 43
- 1
- 0
- 4096
+ 4
+ 18
+ 3
+ 11534336
13
- 44
- 1
- 0
- 4096
-
-
- 14
- 45
- 1
- 0
- 4096
-
-
- 15
- 46
- 1
- 0
- 4096
-
-
- 16
- 47
- 1
- 0
- 4096
+ 4
+ 21
+ 3
+ 11534336
17
- 48
- 1
- 0
- 4096
+ 4
+ 20
+ 3
+ 11534336
- 18
- 49
+ 33
1
+ 10
0
- 4096
+ 939524096
- 19
+ 34
1
- 3
+ 11
0
- 4096
+ 939524096
- 20
+ 35
1
- 4
+ 12
0
- 4096
+ 939524096
- 21
+ 36
1
- 5
+ 13
0
- 4096
+ 939524096
- 22
+ 37
1
6
0
- 4096
+ 939524096
- 23
+ 38
1
7
0
- 4096
+ 939524096
- 24
+ 39
1
8
0
- 4096
+ 939524096
- 25
+ 40
1
9
0
- 4096
-
-
- 26
- 1
- 10
- 0
- 4096
+ 939524096
- 27
+ 41
1
- 11
+ 2
0
- 4096
+ 939524096
- 28
+ 42
1
- 12
+ 3
0
- 4096
+ 939524096
- 29
+ 43
1
- 13
+ 4
0
- 4096
+ 939524096
- 30
+ 44
1
- 14
+ 5
0
- 4096
+ 939524096
- 31
+ 45
1
- 15
+ 0
0
- 4096
+ 939524096
- 32
+ 46
1
- 16
+ 1
0
- 4096
+ 939524096
diff --git a/dockers/docker-lldp-sv2/lldpd.conf.j2 b/dockers/docker-lldp-sv2/lldpd.conf.j2
index fd8a4d4c5458..d5b6dba8700c 100644
--- a/dockers/docker-lldp-sv2/lldpd.conf.j2
+++ b/dockers/docker-lldp-sv2/lldpd.conf.j2
@@ -1,9 +1,12 @@
{% if MGMT_INTERFACE %}
{# If MGMT port alias is available, use it for port ID subtype, otherwise use port name #}
{% set mgmt_port_name = MGMT_INTERFACE.keys()[0][0] %}
+{% set ipv4 = MGMT_INTERFACE.keys()[0][1].split('/')[0] %}
{% if MGMT_PORT and MGMT_PORT[mgmt_port_name] and MGMT_PORT[mgmt_port_name].alias %}
configure ports eth0 lldp portidsubtype local {{ MGMT_PORT[mgmt_port_name].alias }}
{% else %}
configure ports eth0 lldp portidsubtype local {{ mgmt_port_name }}
{% endif %}
+configure system ip management pattern {{ ipv4 }}
{% endif %}
+configure system hostname {{ DEVICE_METADATA['localhost']['hostname'] }}
diff --git a/dockers/docker-lldp-sv2/lldpmgrd b/dockers/docker-lldp-sv2/lldpmgrd
index a044d5ed9d77..7d2528a9d3a6 100755
--- a/dockers/docker-lldp-sv2/lldpmgrd
+++ b/dockers/docker-lldp-sv2/lldpmgrd
@@ -73,17 +73,12 @@ def signal_handler(sig, frame):
# ========================== Helpers ==================================
-def is_port_up(port_name):
- filename = "/sys/class/net/%s/operstate" % port_name
+def is_port_exist(port_name):
+ filename = "/sys/class/net/%s/ifindex" % port_name
if not os.path.exists(filename):
return False
- with open(filename) as fp:
- state = fp.read()
- if 'up' in state:
- return True
- else:
- return False
+ return True
# ============================== Classes ==============================
@@ -119,9 +114,8 @@ class LldpManager(object):
def generate_pending_lldp_config_cmd_for_port(self, port_name):
"""
- For port `port_name`, look up the neighboring device's hostname and
- corresponding port alias in the Config database, then form the
- appropriate lldpcli configuration command and run it.
+ For port `port_name`, look up the description and alias in the Config database,
+ then form the appropriate lldpcli configuration command and run it.
"""
# Retrieve all entires for this port from the Port table
port_table = swsscommon.Table(self.config_db, swsscommon.CFG_PORT_TABLE_NAME)
@@ -135,34 +129,21 @@ class LldpManager(object):
if not port_alias:
log_info("Unable to retrieve port alias for port '{}'. Using port name instead.".format(port_name))
port_alias = port_name
+
+ # Get the port description. If None or empty string, we'll skip this configuration
+ port_desc = port_table_dict.get("description")
+
else:
log_error("Port '{}' not found in {} table in Config DB. Using port name instead of port alias.".format(port_name, swsscommon.CFG_PORT_TABLE_NAME))
port_alias = port_name
lldpcli_cmd = "lldpcli configure ports {0} lldp portidsubtype local {1}".format(port_name, port_alias)
- # Retrieve all entires for this port from the Device Neighbor table
- device_neighbor_table = swsscommon.Table(self.config_db, swsscommon.CFG_DEVICE_NEIGHBOR_TABLE_NAME)
- (status, fvp) = device_neighbor_table.get(port_name)
- if status:
- # Convert list of tuples to a dictionary
- device_neighbor_table_dict = dict(fvp)
-
- # Get neighbor host name and port name
- neighbor_hostname = device_neighbor_table_dict.get("name")
- neighbor_portname = device_neighbor_table_dict.get("port")
-
- # If we sucessfully obtained the neighbor's host name and port name, append a port description to the command
- if neighbor_hostname and neighbor_portname:
- lldpcli_cmd += " description {0}:{1}".format(neighbor_hostname, neighbor_portname)
- else:
- if not neighbor_hostname:
- log_info("Failed to retrieve neighbor host name for port '{}'. Not adding port description.".format(port_name))
-
- if not neighbor_portname:
- log_info("Failed to retrieve neighbor port name for port '{}'. Not adding port description.".format(port_name))
+ # if there is a description available, also configure that
+ if port_desc:
+ lldpcli_cmd += " description {}".format(port_desc)
else:
- log_info("Unable to retrieve neighbor information for port '{}'. Not adding port description.".format(port_name))
+ log_info("Unable to retrieve description for port '{}'. Not adding port description".format(port_name))
# Add the command to our dictionary of pending commands, overwriting any
# previous pending command for this port
@@ -173,8 +154,8 @@ class LldpManager(object):
to_delete = []
for (port_name, cmd) in self.pending_cmds.iteritems():
- if not is_port_up(port_name):
- # it doesn't make any sense to configure lldpd if the target port is unavailable
+ if not is_port_exist(port_name):
+ # it doesn't make any sense to configure lldpd if the target port does not exist
# let's postpone the command for the next iteration
continue
@@ -200,9 +181,11 @@ class LldpManager(object):
def run(self):
"""
- Infinite loop. Subscribes to notifications of changes in the PORT table
- of the Redis State database. When we are notified of the creation of an
- interface, update LLDP configuration accordingly.
+ Subscribes to notifications of changes in the PORT table
+ of the Redis State database.
+ Subscribe to STATE_DB - get notified of the creation of an interface
+ Subscribe to CONFIG_DB - get notified of port config changes
+ Update LLDP configuration accordingly.
"""
# Set select timeout to 10 seconds
SELECT_TIMEOUT_MS = 1000 * 10
@@ -211,8 +194,10 @@ class LldpManager(object):
sel = swsscommon.Select()
sst = swsscommon.SubscriberStateTable(self.state_db, swsscommon.STATE_PORT_TABLE_NAME)
sel.addSelectable(sst)
+ sst = swsscommon.SubscriberStateTable(self.config_db, swsscommon.CFG_PORT_TABLE_NAME)
+ sel.addSelectable(sst)
- # Listen indefinitely for changes to the PORT table in the State DB
+ # Listen for changes to the PORT table in the STATE_DB and CONFIG_DB
while True:
(state, c) = sel.select(SELECT_TIMEOUT_MS)
@@ -221,9 +206,14 @@ class LldpManager(object):
fvp_dict = dict(fvp)
+ # handle creation
if op == "SET" and fvp_dict.get("state") == "ok":
self.generate_pending_lldp_config_cmd_for_port(key)
+ # handle config change
+ if op in ["SET", "DEL"] and (fvp_dict.get("alias") or fvp_dict.get("description")) :
+ self.generate_pending_lldp_config_cmd_for_port(key)
+
# Process all pending commands
self.process_pending_cmds()
diff --git a/dockers/docker-lldp-sv2/start.sh b/dockers/docker-lldp-sv2/start.sh
index adc322979813..76666e77aca2 100755
--- a/dockers/docker-lldp-sv2/start.sh
+++ b/dockers/docker-lldp-sv2/start.sh
@@ -10,8 +10,6 @@ rm -f /var/run/lldpd.socket
supervisorctl start rsyslogd
supervisorctl start lldpd
-supervisorctl start lldp-syncd
-supervisorctl start lldpmgrd
# Current lldpd version has a bug.
# When lldpd starts it is in the pause state by default
@@ -35,3 +33,6 @@ do
lldpcli -u /var/run/lldpd.socket -c /etc/lldpd.conf -c /etc/lldpd.d resume > /dev/null && break
sleep 1
done
+
+supervisorctl start lldp-syncd
+supervisorctl start lldpmgrd
diff --git a/dockers/docker-orchagent/start.sh b/dockers/docker-orchagent/start.sh
index d9e9bcad0b91..4b4b6731a6ed 100755
--- a/dockers/docker-orchagent/start.sh
+++ b/dockers/docker-orchagent/start.sh
@@ -29,6 +29,8 @@ supervisorctl start neighsyncd
supervisorctl start swssconfig
+supervisorctl start vrfmgrd
+
supervisorctl start vlanmgrd
supervisorctl start intfmgrd
@@ -39,8 +41,6 @@ supervisorctl start buffermgrd
supervisorctl start enable_counters
-supervisorctl start vrfmgrd
-
supervisorctl start nbrmgrd
# Start arp_update when VLAN exists
diff --git a/dockers/docker-orchagent/swssconfig.sh b/dockers/docker-orchagent/swssconfig.sh
index c6915f0597a1..c521fadf0a49 100755
--- a/dockers/docker-orchagent/swssconfig.sh
+++ b/dockers/docker-orchagent/swssconfig.sh
@@ -43,8 +43,8 @@ HWSKU=`sonic-cfggen -d -v "DEVICE_METADATA['localhost']['hwsku']"`
# Don't load json config if system warm start or
# swss docker warm start is enabled, the data already exists in appDB.
-SYSTEM_WARM_START=`redis-cli -n 4 hget "WARM_RESTART|system" enable`
-SWSS_WARM_START=`redis-cli -n 4 hget "WARM_RESTART|swss" enable`
+SYSTEM_WARM_START=`redis-cli -n 6 hget "WARM_RESTART_ENABLE_TABLE|system" enable`
+SWSS_WARM_START=`redis-cli -n 6 hget "WARM_RESTART_ENABLE_TABLE|swss" enable`
if [[ "$SYSTEM_WARM_START" == "true" ]] || [[ "$SWSS_WARM_START" == "true" ]]; then
# We have to make sure db data has not been flushed.
RESTORE_COUNT=`redis-cli -n 6 hget "WARM_RESTART_TABLE|orchagent" restore_count`
diff --git a/dockers/docker-snmp-sv2/Dockerfile.j2 b/dockers/docker-snmp-sv2/Dockerfile.j2
index f8deee49d37c..ec50a4c8c2a2 100644
--- a/dockers/docker-snmp-sv2/Dockerfile.j2
+++ b/dockers/docker-snmp-sv2/Dockerfile.j2
@@ -35,6 +35,9 @@ RUN dpkg_apt() { [ -f $1 ] && { dpkg -i $1 || apt-get -y install -f; } || return
RUN curl https://bootstrap.pypa.io/get-pip.py | python3.6
RUN python3.6 -m pip install --no-cache-dir hiredis
+# Install pyyaml dependency for use by some plugins
+RUN python3.6 -m pip install --no-cache-dir pyyaml
+
{% if docker_snmp_sv2_whls.strip() -%}
# Copy locally-built Python wheel dependencies
{%- for whl in docker_snmp_sv2_whls.split(' ') %}
diff --git a/files/build_templates/buffers_config.j2 b/files/build_templates/buffers_config.j2
index 7c9b22de1954..9a26a8b1492c 100644
--- a/files/build_templates/buffers_config.j2
+++ b/files/build_templates/buffers_config.j2
@@ -127,10 +127,10 @@ def
{{ defs.generate_pg_profils(port_names_active) }}
{% else %}
"BUFFER_PG": {
- "{{ port_names_active }}|0-1": {
+ "{{ port_names_active }}|0-2": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
- "{{ port_names_active }}|5": {
+ "{{ port_names_active }}|5-6": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
}
},
@@ -143,10 +143,10 @@ def
"{{ port_names_active }}|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
- "{{ port_names_active }}|0-1": {
+ "{{ port_names_active }}|0-2": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
- "{{ port_names_active }}|5": {
+ "{{ port_names_active }}|5-6": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
}
}
diff --git a/files/build_templates/ntp-config.timer b/files/build_templates/ntp-config.timer
new file mode 100644
index 000000000000..ab2d2e755ab2
--- /dev/null
+++ b/files/build_templates/ntp-config.timer
@@ -0,0 +1,9 @@
+[Unit]
+Description=Delays NTP configuration service until SONiC has started
+
+[Timer]
+OnBootSec=5min
+Unit=ntp-config.service
+
+[Install]
+WantedBy=timers.target
diff --git a/files/build_templates/qos_config.j2 b/files/build_templates/qos_config.j2
index a76a64e3fb35..18d12d473941 100644
--- a/files/build_templates/qos_config.j2
+++ b/files/build_templates/qos_config.j2
@@ -74,76 +74,80 @@
},
"DSCP_TO_TC_MAP": {
"AZURE": {
- "0" : "0",
- "1" : "0",
- "2" : "0",
+ "0" : "1",
+ "1" : "1",
+ "2" : "1",
"3" : "3",
"4" : "4",
- "5" : "0",
- "6" : "0",
- "7" : "0",
- "8" : "1",
- "9" : "0",
- "10": "0",
- "11": "0",
- "12": "0",
- "13": "0",
- "14": "0",
- "15": "0",
- "16": "0",
- "17": "0",
- "18": "0",
- "19": "0",
- "20": "0",
- "21": "0",
- "22": "0",
- "23": "0",
- "24": "0",
- "25": "0",
- "26": "0",
- "27": "0",
- "28": "0",
- "29": "0",
- "30": "0",
- "31": "0",
- "32": "0",
- "33": "0",
- "34": "0",
- "35": "0",
- "36": "0",
- "37": "0",
- "38": "0",
- "39": "0",
- "40": "0",
- "41": "0",
- "42": "0",
- "43": "0",
- "44": "0",
- "45": "0",
+ "5" : "2",
+ "6" : "1",
+ "7" : "1",
+ "8" : "0",
+ "9" : "1",
+ "10": "1",
+ "11": "1",
+ "12": "1",
+ "13": "1",
+ "14": "1",
+ "15": "1",
+ "16": "1",
+ "17": "1",
+ "18": "1",
+ "19": "1",
+ "20": "1",
+ "21": "1",
+ "22": "1",
+ "23": "1",
+ "24": "1",
+ "25": "1",
+ "26": "1",
+ "27": "1",
+ "28": "1",
+ "29": "1",
+ "30": "1",
+ "31": "1",
+ "32": "1",
+ "33": "1",
+ "34": "1",
+ "35": "1",
+ "36": "1",
+ "37": "1",
+ "38": "1",
+ "39": "1",
+ "40": "1",
+ "41": "1",
+ "42": "1",
+ "43": "1",
+ "44": "1",
+ "45": "1",
"46": "5",
- "47": "0",
- "48": "0",
- "49": "0",
- "50": "0",
- "51": "0",
- "52": "0",
- "53": "0",
- "54": "0",
- "55": "0",
- "56": "0",
- "57": "0",
- "58": "0",
- "59": "0",
- "60": "0",
- "61": "0",
- "62": "0",
- "63": "0"
+ "47": "1",
+ "48": "6",
+ "49": "1",
+ "50": "1",
+ "51": "1",
+ "52": "1",
+ "53": "1",
+ "54": "1",
+ "55": "1",
+ "56": "1",
+ "57": "1",
+ "58": "1",
+ "59": "1",
+ "60": "1",
+ "61": "1",
+ "62": "1",
+ "63": "1"
}
},
"SCHEDULER": {
"scheduler.0": {
"type" : "DWRR",
- "weight": "20"
+ "weight": "14"
+ },
+ "scheduler.1": {
+ "type" : "DWRR",
+ "weight": "15"
}
},
{% if asic_type in pfc_to_pg_map_supported_asics %}
@@ -186,13 +190,13 @@
"QUEUE": {
{% for port in PORT_ACTIVE %}
"{{ port }}|3": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
{% endfor %}
{% for port in PORT_ACTIVE %}
"{{ port }}|4": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
{% endfor %}
@@ -206,9 +210,19 @@
"scheduler": "[SCHEDULER|scheduler.0]"
},
{% endfor %}
+{% for port in PORT_ACTIVE %}
+ "{{ port }}|2": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+{% endfor %}
{% for port in PORT_ACTIVE %}
"{{ port }}|5": {
"scheduler": "[SCHEDULER|scheduler.0]"
+ },
+{% endfor %}
+{% for port in PORT_ACTIVE %}
+ "{{ port }}|6": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
}{% if not loop.last %},{% endif %}
{% endfor %}
diff --git a/files/build_templates/sonic_debian_extension.j2 b/files/build_templates/sonic_debian_extension.j2
index 4ef014a30e4b..8064b2d71b04 100644
--- a/files/build_templates/sonic_debian_extension.j2
+++ b/files/build_templates/sonic_debian_extension.j2
@@ -302,7 +302,9 @@ sudo LANG=C cp $SCRIPTS_DIR/syncd.sh $FILESYSTEM_ROOT/usr/local/bin/syncd.sh
# Copy systemd timer configuration
# It implements delayed start of services
sudo cp $BUILD_TEMPLATES/snmp.timer $FILESYSTEM_ROOT/etc/systemd/system/
+sudo cp $BUILD_TEMPLATES/ntp-config.timer $FILESYSTEM_ROOT/etc/systemd/system/
sudo LANG=C chroot $FILESYSTEM_ROOT systemctl enable snmp.timer
+sudo LANG=C chroot $FILESYSTEM_ROOT systemctl enable ntp-config.timer
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get remove -y python-dev
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get clean -y
diff --git a/files/image_config/platform/rc.local b/files/image_config/platform/rc.local
index acac42e326e1..3596eb18419c 100755
--- a/files/image_config/platform/rc.local
+++ b/files/image_config/platform/rc.local
@@ -106,24 +106,31 @@ value_extract() {
done
}
-# Set up previous and next reboot cause files
+# Set up previous and next reboot cause files accordingly
process_reboot_cause() {
- REBOOT_CAUSE_FILE="/var/cache/sonic/reboot-cause.txt"
- PREVIOUS_REBOOT_CAUSE_FILE="/var/cache/sonic/previous-reboot-cause.txt"
-
- # Set the previous reboot cause accordingly
- # If this is the first boot after an image install, state that as the
- # cause. Otherwise, move REBOOT_CAUSE_FILE to PREVIOUS_REBOOT_CAUSE_FILE.
- # REBOOT_CAUSE_FILE should always exist, but we add the else case
- # to ensure we always generate PREVIOUS_REBOOT_CAUSE_FILE here
+ REBOOT_CAUSE_DIR="/host/reboot-cause"
+ REBOOT_CAUSE_FILE="${REBOOT_CAUSE_DIR}/reboot-cause.txt"
+ PREVIOUS_REBOOT_CAUSE_FILE="${REBOOT_CAUSE_DIR}/previous-reboot-cause.txt"
+
+ mkdir -p $REBOOT_CAUSE_DIR
+
+ # If this is the first boot after an image install, store that as the
+ # previous reboot cause.
if [ -f $FIRST_BOOT_FILE ]; then
echo "SONiC image installation" > $PREVIOUS_REBOOT_CAUSE_FILE
- elif [ -f $REBOOT_CAUSE_FILE ]; then
+ fi
+
+ # If there is an existing REBOOT_CAUSE_FILE, copy that file to
+ # PREVIOUS_REBOOT_CAUSE_FILE.
+ if [ -f $REBOOT_CAUSE_FILE ]; then
mv -f $REBOOT_CAUSE_FILE $PREVIOUS_REBOOT_CAUSE_FILE
else
echo "Unknown reboot cause" > $PREVIOUS_REBOOT_CAUSE_FILE
fi
+ # Log the previous reboot cause to the syslog
+ logger "Previous reboot cause: $(cat $PREVIOUS_REBOOT_CAUSE_FILE)"
+
# Set the default cause for the next reboot
echo "Unexpected reboot" > $REBOOT_CAUSE_FILE
}
diff --git a/files/image_config/updategraph/updategraph b/files/image_config/updategraph/updategraph
index 63f788afc465..686108727b27 100755
--- a/files/image_config/updategraph/updategraph
+++ b/files/image_config/updategraph/updategraph
@@ -18,21 +18,21 @@ reload_minigraph()
pfcwd start_default
}
-function copy_config_files()
+function copy_config_files_and_directories()
{
- for file in $@; do
- if [ -f /etc/sonic/old_config/${file} ]; then
- logger "Copying SONiC configuration ${file} ..."
- cp /etc/sonic/old_config/${file} /etc/sonic/
+ for file_dir in $@; do
+ if [ -f /etc/sonic/old_config/${file_dir} ] || [ -d /etc/sonic/old_config/${file_dir} ]; then
+ logger "Copying SONiC configuration ${file_dir} ..."
+ cp -ar /etc/sonic/old_config/${file_dir} /etc/sonic/
else
- logger "Missing SONiC configuration ${file} ..."
+ logger "Missing SONiC configuration ${file_dir} ..."
fi
done
}
function check_system_warm_boot()
{
- SYSTEM_WARM_START=`/usr/bin/redis-cli -n 4 hget "WARM_RESTART|system" enable`
+ SYSTEM_WARM_START=`/usr/bin/redis-cli -n 6 hget "WARM_RESTART_ENABLE_TABLE|system" enable`
# SYSTEM_WARM_START could be empty, always make WARM_BOOT meaningful.
if [[ x"$SYSTEM_WARM_START" == x"true" ]]; then
WARM_BOOT="true"
@@ -50,9 +50,9 @@ fi
. /etc/sonic/updategraph.conf
check_system_warm_boot
-
+copy_list="minigraph.xml snmp.yml acl.json config_db.json frr"
if [ -f /tmp/pending_config_migration ]; then
- copy_config_files minigraph.xml snmp.yml acl.json config_db.json
+ copy_config_files_and_directories $copy_list
if [ x"${WARM_BOOT}" == x"true" ]; then
echo "Warm reboot detected..."
elif [ "$enabled" = "true" ]; then
@@ -71,7 +71,7 @@ fi
if [ -f /tmp/pending_config_initialization ]; then
rm -f /tmp/pending_config_initialization
- if [ "$enabled" != "true" ]; then
+ if [ "$enabled" != "true" ]; then
PLATFORM=`sonic-cfggen -H -v DEVICE_METADATA.localhost.platform`
PRESET=(`head -n 1 /usr/share/sonic/device/$PLATFORM/default_sku`)
sonic-cfggen -H -k ${PRESET[0]} --preset ${PRESET[1]} > /etc/sonic/config_db.json
diff --git a/files/scripts/swss.sh b/files/scripts/swss.sh
index 70b81383fa44..d3e789d53afc 100755
--- a/files/scripts/swss.sh
+++ b/files/scripts/swss.sh
@@ -7,6 +7,7 @@ LOCKFILE="/tmp/swss-syncd-lock"
function debug()
{
+ /usr/bin/logger $1
/bin/echo `date` "- $1" >> ${DEBUGLOG}
}
@@ -29,8 +30,8 @@ function unlock_service_state_change()
function check_warm_boot()
{
- SYSTEM_WARM_START=`/usr/bin/redis-cli -n 4 hget "WARM_RESTART|system" enable`
- SERVICE_WARM_START=`/usr/bin/redis-cli -n 4 hget "WARM_RESTART|${SERVICE}" enable`
+ SYSTEM_WARM_START=`/usr/bin/redis-cli -n 6 hget "WARM_RESTART_ENABLE_TABLE|system" enable`
+ SERVICE_WARM_START=`/usr/bin/redis-cli -n 6 hget "WARM_RESTART_ENABLE_TABLE|${SERVICE}" enable`
if [[ x"$SYSTEM_WARM_START" == x"true" ]] || [[ x"$SERVICE_WARM_START" == x"true" ]]; then
WARM_BOOT="true"
else
@@ -90,10 +91,11 @@ start() {
# Don't flush DB during warm boot
if [[ x"$WARM_BOOT" != x"true" ]]; then
+ debug "Flushing databases ..."
/usr/bin/docker exec database redis-cli -n 0 FLUSHDB
/usr/bin/docker exec database redis-cli -n 2 FLUSHDB
/usr/bin/docker exec database redis-cli -n 5 FLUSHDB
- clean_up_tables 6 "'PORT_TABLE*', 'MGMT_PORT_TABLE*', 'VLAN_TABLE*', 'VLAN_MEMBER_TABLE*', 'INTERFACE_TABLE*', 'MIRROR_SESSION*'"
+ clean_up_tables 6 "'PORT_TABLE*', 'MGMT_PORT_TABLE*', 'VLAN_TABLE*', 'VLAN_MEMBER_TABLE*', 'INTERFACE_TABLE*', 'MIRROR_SESSION*', 'VRF_TABLE*'"
fi
# start service docker
diff --git a/files/scripts/syncd.sh b/files/scripts/syncd.sh
index bef8ff11558c..0247c7cd0583 100755
--- a/files/scripts/syncd.sh
+++ b/files/scripts/syncd.sh
@@ -7,6 +7,7 @@ LOCKFILE="/tmp/swss-syncd-lock"
function debug()
{
+ /usr/bin/logger $1
/bin/echo `date` "- $1" >> ${DEBUGLOG}
}
@@ -29,8 +30,8 @@ function unlock_service_state_change()
function check_warm_boot()
{
- SYSTEM_WARM_START=`/usr/bin/redis-cli -n 4 hget "WARM_RESTART|system" enable`
- SERVICE_WARM_START=`/usr/bin/redis-cli -n 4 hget "WARM_RESTART|${SERVICE}" enable`
+ SYSTEM_WARM_START=`/usr/bin/redis-cli -n 6 hget "WARM_RESTART_ENABLE_TABLE|system" enable`
+ SERVICE_WARM_START=`/usr/bin/redis-cli -n 6 hget "WARM_RESTART_ENABLE_TABLE|${SERVICE}" enable`
# SYSTEM_WARM_START could be empty, always make WARM_BOOT meaningful.
if [[ x"$SYSTEM_WARM_START" == x"true" ]] || [[ x"$SERVICE_WARM_START" == x"true" ]]; then
WARM_BOOT="true"
@@ -88,7 +89,8 @@ start() {
else
rm -f /host/warmboot/warm-starting
- # Flush DB during non-warm start
+ # Flush ASIC DB during non-warm start
+ debug "Flushing ASIC database ..."
/usr/bin/docker exec database redis-cli -n 1 FLUSHDB
fi
diff --git a/platform/broadcom/sai.mk b/platform/broadcom/sai.mk
index 850756642341..61fcc34549b8 100644
--- a/platform/broadcom/sai.mk
+++ b/platform/broadcom/sai.mk
@@ -1,9 +1,9 @@
-BRCM_SAI = libsaibcm_3.3.4.3-1_amd64.deb
-$(BRCM_SAI)_URL = "https://sonicstorage.blob.core.windows.net/packages/bcmsai/3.3/libsaibcm_3.3.4.3-1_amd64.deb?sv=2015-04-05&sr=b&sig=eqQ%2BzMqpkcr8mnztwUPfUsmaWL%2Fvj0Cr2hCvALNXLtQ%3D&se=2032-09-26T21%3A45%3A32Z&sp=r"
+BRCM_SAI = libsaibcm_3.3.4.3-2_amd64.deb
+$(BRCM_SAI)_URL = "https://sonicstorage.blob.core.windows.net/packages/bcmsai/3.3/libsaibcm_3.3.4.3-2_amd64.deb?sv=2015-04-05&sr=b&sig=GO2B4zoVJi0j0%2FZKbf8yhRL0oQ3clJEZFiy2AC14xSc%3D&se=2032-10-20T20%3A38%3A13Z&sp=r"
-BRCM_SAI_DEV = libsaibcm-dev_3.3.4.3-1_amd64.deb
+BRCM_SAI_DEV = libsaibcm-dev_3.3.4.3-2_amd64.deb
$(eval $(call add_derived_package,$(BRCM_SAI),$(BRCM_SAI_DEV)))
-$(BRCM_SAI_DEV)_URL = "https://sonicstorage.blob.core.windows.net/packages/bcmsai/3.3/libsaibcm-dev_3.3.4.3-1_amd64.deb?sv=2015-04-05&sr=b&sig=v7XeVaxL8H1BDsHUDtyvFIfaWrW9LILA2IEo3YypZSA%3D&se=2032-09-26T21%3A45%3A09Z&sp=r"
+$(BRCM_SAI_DEV)_URL = "https://sonicstorage.blob.core.windows.net/packages/bcmsai/3.3/libsaibcm-dev_3.3.4.3-2_amd64.deb?sv=2015-04-05&sr=b&sig=aYEpjYMEIqfMnAiraXr9K%2FspEb8d2qGdwcIBxO3%2BjjY%3D&se=2032-10-20T20%3A37%3A51Z&sp=r"
SONIC_ONLINE_DEBS += $(BRCM_SAI)
$(BRCM_SAI_DEV)_DEPENDS += $(BRCM_SAI)
diff --git a/platform/vs/docker-sonic-vs/start.sh b/platform/vs/docker-sonic-vs/start.sh
index 3871dc375ff5..b13f5febff3a 100755
--- a/platform/vs/docker-sonic-vs/start.sh
+++ b/platform/vs/docker-sonic-vs/start.sh
@@ -50,6 +50,8 @@ supervisorctl start fpmsyncd
supervisorctl start teammgrd
+supervisorctl start vrfmgrd
+
supervisorctl start portmgrd
supervisorctl start intfmgrd
@@ -60,8 +62,6 @@ supervisorctl start zebra
supervisorctl start buffermgrd
-supervisorctl start vrfmgrd
-
supervisorctl start nbrmgrd
# Start arp_update when VLAN exists
diff --git a/sonic-slave/Dockerfile b/sonic-slave/Dockerfile
index 291a2fefb771..dc37d7947a1f 100644
--- a/sonic-slave/Dockerfile
+++ b/sonic-slave/Dockerfile
@@ -265,7 +265,7 @@ RUN pip install --force-reinstall --upgrade jinja2>=2.10
RUN pip install j2cli
# For sonic utilities testing
-RUN pip install click-default-group click natsort tabulate netifaces==0.10.7
+RUN pip install click-default-group click natsort tabulate netifaces==0.10.7 fastentrypoints
# For supervisor build
RUN pip install meld3 mock
diff --git a/src/sonic-config-engine/minigraph.py b/src/sonic-config-engine/minigraph.py
index 138a61a00a66..461b76acac03 100644
--- a/src/sonic-config-engine/minigraph.py
+++ b/src/sonic-config-engine/minigraph.py
@@ -530,6 +530,7 @@ def parse_xml(filename, platform=None, port_config_file=None):
if port.get('speed') == '100000':
port['fec'] = 'rs'
+ # set port description if parsed from deviceinfo
for port_name in port_descriptions:
# ignore port not in port_config.ini
if not ports.has_key(port_name):
@@ -537,6 +538,15 @@ def parse_xml(filename, platform=None, port_config_file=None):
ports.setdefault(port_name, {})['description'] = port_descriptions[port_name]
+ for port_name, port in ports.items():
+ if not port.get('description'):
+ if neighbors.has_key(port_name):
+ # for the ports w/o description set it to neighbor name:port
+ port['description'] = "%s:%s" % (neighbors[port_name]['name'], neighbors[port_name]['port'])
+ else:
+ # for the ports w/o neighbor info, set it to port alias
+ port['description'] = port.get('alias', port_name)
+
# set default port MTU as 9100
for port in ports.itervalues():
port['mtu'] = '9100'
diff --git a/src/sonic-config-engine/tests/sample_output/buffers-dell6100.json b/src/sonic-config-engine/tests/sample_output/buffers-dell6100.json
index 6552f6225737..269c155d68f3 100644
--- a/src/sonic-config-engine/tests/sample_output/buffers-dell6100.json
+++ b/src/sonic-config-engine/tests/sample_output/buffers-dell6100.json
@@ -71,13 +71,13 @@
"BUFFER_POOL": {
"ingress_lossless_pool": {
- "size": "11213696",
+ "size": "10875072",
"type": "ingress",
"mode": "dynamic",
- "xoff": "3855488"
+ "xoff": "4194112"
},
"egress_lossy_pool": {
- "size": "9532224",
+ "size": "9243812",
"type": "egress",
"mode": "dynamic"
},
@@ -105,10 +105,10 @@
}
},
"BUFFER_PG": {
- "Ethernet0,Ethernet1,Ethernet4,Ethernet5,Ethernet6,Ethernet7,Ethernet8,Ethernet9,Ethernet10,Ethernet11,Ethernet12,Ethernet13,Ethernet14,Ethernet15,Ethernet16,Ethernet17,Ethernet20,Ethernet21,Ethernet22,Ethernet23,Ethernet24,Ethernet25,Ethernet26,Ethernet27,Ethernet28,Ethernet29,Ethernet30,Ethernet31,Ethernet32,Ethernet36,Ethernet37,Ethernet38,Ethernet39,Ethernet40,Ethernet41,Ethernet42,Ethernet48,Ethernet52,Ethernet53,Ethernet54,Ethernet55,Ethernet56,Ethernet57,Ethernet58|0-1": {
+ "Ethernet0,Ethernet1,Ethernet4,Ethernet5,Ethernet6,Ethernet7,Ethernet8,Ethernet9,Ethernet10,Ethernet11,Ethernet12,Ethernet13,Ethernet14,Ethernet15,Ethernet16,Ethernet17,Ethernet20,Ethernet21,Ethernet22,Ethernet23,Ethernet24,Ethernet25,Ethernet26,Ethernet27,Ethernet28,Ethernet29,Ethernet30,Ethernet31,Ethernet32,Ethernet36,Ethernet37,Ethernet38,Ethernet39,Ethernet40,Ethernet41,Ethernet42,Ethernet48,Ethernet52,Ethernet53,Ethernet54,Ethernet55,Ethernet56,Ethernet57,Ethernet58|0-2": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
- "Ethernet0,Ethernet1,Ethernet4,Ethernet5,Ethernet6,Ethernet7,Ethernet8,Ethernet9,Ethernet10,Ethernet11,Ethernet12,Ethernet13,Ethernet14,Ethernet15,Ethernet16,Ethernet17,Ethernet20,Ethernet21,Ethernet22,Ethernet23,Ethernet24,Ethernet25,Ethernet26,Ethernet27,Ethernet28,Ethernet29,Ethernet30,Ethernet31,Ethernet32,Ethernet36,Ethernet37,Ethernet38,Ethernet39,Ethernet40,Ethernet41,Ethernet42,Ethernet48,Ethernet52,Ethernet53,Ethernet54,Ethernet55,Ethernet56,Ethernet57,Ethernet58|5": {
+ "Ethernet0,Ethernet1,Ethernet4,Ethernet5,Ethernet6,Ethernet7,Ethernet8,Ethernet9,Ethernet10,Ethernet11,Ethernet12,Ethernet13,Ethernet14,Ethernet15,Ethernet16,Ethernet17,Ethernet20,Ethernet21,Ethernet22,Ethernet23,Ethernet24,Ethernet25,Ethernet26,Ethernet27,Ethernet28,Ethernet29,Ethernet30,Ethernet31,Ethernet32,Ethernet36,Ethernet37,Ethernet38,Ethernet39,Ethernet40,Ethernet41,Ethernet42,Ethernet48,Ethernet52,Ethernet53,Ethernet54,Ethernet55,Ethernet56,Ethernet57,Ethernet58|5-6": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
}
},
@@ -117,10 +117,10 @@
"Ethernet0,Ethernet1,Ethernet4,Ethernet5,Ethernet6,Ethernet7,Ethernet8,Ethernet9,Ethernet10,Ethernet11,Ethernet12,Ethernet13,Ethernet14,Ethernet15,Ethernet16,Ethernet17,Ethernet20,Ethernet21,Ethernet22,Ethernet23,Ethernet24,Ethernet25,Ethernet26,Ethernet27,Ethernet28,Ethernet29,Ethernet30,Ethernet31,Ethernet32,Ethernet36,Ethernet37,Ethernet38,Ethernet39,Ethernet40,Ethernet41,Ethernet42,Ethernet48,Ethernet52,Ethernet53,Ethernet54,Ethernet55,Ethernet56,Ethernet57,Ethernet58|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
- "Ethernet0,Ethernet1,Ethernet4,Ethernet5,Ethernet6,Ethernet7,Ethernet8,Ethernet9,Ethernet10,Ethernet11,Ethernet12,Ethernet13,Ethernet14,Ethernet15,Ethernet16,Ethernet17,Ethernet20,Ethernet21,Ethernet22,Ethernet23,Ethernet24,Ethernet25,Ethernet26,Ethernet27,Ethernet28,Ethernet29,Ethernet30,Ethernet31,Ethernet32,Ethernet36,Ethernet37,Ethernet38,Ethernet39,Ethernet40,Ethernet41,Ethernet42,Ethernet48,Ethernet52,Ethernet53,Ethernet54,Ethernet55,Ethernet56,Ethernet57,Ethernet58|0-1": {
+ "Ethernet0,Ethernet1,Ethernet4,Ethernet5,Ethernet6,Ethernet7,Ethernet8,Ethernet9,Ethernet10,Ethernet11,Ethernet12,Ethernet13,Ethernet14,Ethernet15,Ethernet16,Ethernet17,Ethernet20,Ethernet21,Ethernet22,Ethernet23,Ethernet24,Ethernet25,Ethernet26,Ethernet27,Ethernet28,Ethernet29,Ethernet30,Ethernet31,Ethernet32,Ethernet36,Ethernet37,Ethernet38,Ethernet39,Ethernet40,Ethernet41,Ethernet42,Ethernet48,Ethernet52,Ethernet53,Ethernet54,Ethernet55,Ethernet56,Ethernet57,Ethernet58|0-2": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
- "Ethernet0,Ethernet1,Ethernet4,Ethernet5,Ethernet6,Ethernet7,Ethernet8,Ethernet9,Ethernet10,Ethernet11,Ethernet12,Ethernet13,Ethernet14,Ethernet15,Ethernet16,Ethernet17,Ethernet20,Ethernet21,Ethernet22,Ethernet23,Ethernet24,Ethernet25,Ethernet26,Ethernet27,Ethernet28,Ethernet29,Ethernet30,Ethernet31,Ethernet32,Ethernet36,Ethernet37,Ethernet38,Ethernet39,Ethernet40,Ethernet41,Ethernet42,Ethernet48,Ethernet52,Ethernet53,Ethernet54,Ethernet55,Ethernet56,Ethernet57,Ethernet58|5": {
+ "Ethernet0,Ethernet1,Ethernet4,Ethernet5,Ethernet6,Ethernet7,Ethernet8,Ethernet9,Ethernet10,Ethernet11,Ethernet12,Ethernet13,Ethernet14,Ethernet15,Ethernet16,Ethernet17,Ethernet20,Ethernet21,Ethernet22,Ethernet23,Ethernet24,Ethernet25,Ethernet26,Ethernet27,Ethernet28,Ethernet29,Ethernet30,Ethernet31,Ethernet32,Ethernet36,Ethernet37,Ethernet38,Ethernet39,Ethernet40,Ethernet41,Ethernet42,Ethernet48,Ethernet52,Ethernet53,Ethernet54,Ethernet55,Ethernet56,Ethernet57,Ethernet58|5-6": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
}
}
diff --git a/src/sonic-config-engine/tests/sample_output/lldpd.conf b/src/sonic-config-engine/tests/sample_output/lldpd.conf
index 29739cb890d0..d28ec8418362 100644
--- a/src/sonic-config-engine/tests/sample_output/lldpd.conf
+++ b/src/sonic-config-engine/tests/sample_output/lldpd.conf
@@ -1,2 +1,3 @@
configure ports eth0 lldp portidsubtype local eth0
-
+configure system ip management pattern 10.0.0.100
+configure system hostname switch-t0
diff --git a/src/sonic-config-engine/tests/sample_output/ports.json b/src/sonic-config-engine/tests/sample_output/ports.json
index 62fe4bbb5ccd..36f5ad117c39 100644
--- a/src/sonic-config-engine/tests/sample_output/ports.json
+++ b/src/sonic-config-engine/tests/sample_output/ports.json
@@ -2,14 +2,14 @@
{
"PORT_TABLE:Ethernet0": {
"speed": "10000",
- "description": ""
+ "description": "fortyGigE0/0"
},
"OP": "SET"
},
{
"PORT_TABLE:Ethernet4": {
"speed": "25000",
- "description": ""
+ "description": "fortyGigE0/4"
},
"OP": "SET"
},
diff --git a/src/sonic-config-engine/tests/sample_output/qos-dell6100.json b/src/sonic-config-engine/tests/sample_output/qos-dell6100.json
index 2d442ca2525e..d1eced032f0d 100644
--- a/src/sonic-config-engine/tests/sample_output/qos-dell6100.json
+++ b/src/sonic-config-engine/tests/sample_output/qos-dell6100.json
@@ -37,76 +37,80 @@
},
"DSCP_TO_TC_MAP": {
"AZURE": {
- "0" : "0",
- "1" : "0",
- "2" : "0",
+ "0" : "1",
+ "1" : "1",
+ "2" : "1",
"3" : "3",
"4" : "4",
- "5" : "0",
- "6" : "0",
- "7" : "0",
- "8" : "1",
- "9" : "0",
- "10": "0",
- "11": "0",
- "12": "0",
- "13": "0",
- "14": "0",
- "15": "0",
- "16": "0",
- "17": "0",
- "18": "0",
- "19": "0",
- "20": "0",
- "21": "0",
- "22": "0",
- "23": "0",
- "24": "0",
- "25": "0",
- "26": "0",
- "27": "0",
- "28": "0",
- "29": "0",
- "30": "0",
- "31": "0",
- "32": "0",
- "33": "0",
- "34": "0",
- "35": "0",
- "36": "0",
- "37": "0",
- "38": "0",
- "39": "0",
- "40": "0",
- "41": "0",
- "42": "0",
- "43": "0",
- "44": "0",
- "45": "0",
+ "5" : "2",
+ "6" : "1",
+ "7" : "1",
+ "8" : "0",
+ "9" : "1",
+ "10": "1",
+ "11": "1",
+ "12": "1",
+ "13": "1",
+ "14": "1",
+ "15": "1",
+ "16": "1",
+ "17": "1",
+ "18": "1",
+ "19": "1",
+ "20": "1",
+ "21": "1",
+ "22": "1",
+ "23": "1",
+ "24": "1",
+ "25": "1",
+ "26": "1",
+ "27": "1",
+ "28": "1",
+ "29": "1",
+ "30": "1",
+ "31": "1",
+ "32": "1",
+ "33": "1",
+ "34": "1",
+ "35": "1",
+ "36": "1",
+ "37": "1",
+ "38": "1",
+ "39": "1",
+ "40": "1",
+ "41": "1",
+ "42": "1",
+ "43": "1",
+ "44": "1",
+ "45": "1",
"46": "5",
- "47": "0",
- "48": "0",
- "49": "0",
- "50": "0",
- "51": "0",
- "52": "0",
- "53": "0",
- "54": "0",
- "55": "0",
- "56": "0",
- "57": "0",
- "58": "0",
- "59": "0",
- "60": "0",
- "61": "0",
- "62": "0",
- "63": "0"
+ "47": "1",
+ "48": "6",
+ "49": "1",
+ "50": "1",
+ "51": "1",
+ "52": "1",
+ "53": "1",
+ "54": "1",
+ "55": "1",
+ "56": "1",
+ "57": "1",
+ "58": "1",
+ "59": "1",
+ "60": "1",
+ "61": "1",
+ "62": "1",
+ "63": "1"
}
},
"SCHEDULER": {
"scheduler.0": {
"type" : "DWRR",
- "weight": "20"
+ "weight": "14"
+ },
+ "scheduler.1": {
+ "type" : "DWRR",
+ "weight": "15"
}
},
"PORT_QOS_MAP": {
@@ -137,355 +141,355 @@
},
"QUEUE": {
"Ethernet0|3": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet1|3": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet4|3": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet5|3": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet6|3": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet7|3": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet8|3": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet9|3": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet10|3": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet11|3": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet12|3": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet13|3": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet14|3": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet15|3": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet16|3": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet17|3": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet20|3": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet21|3": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet22|3": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet23|3": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet24|3": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet25|3": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet26|3": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet27|3": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet28|3": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet29|3": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet30|3": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet31|3": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet32|3": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet36|3": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet37|3": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet38|3": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet39|3": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet40|3": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet41|3": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet42|3": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet48|3": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet52|3": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet53|3": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet54|3": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet55|3": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet56|3": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet57|3": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet58|3": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet0|4": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet1|4": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet4|4": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet5|4": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet6|4": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet7|4": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet8|4": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet9|4": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet10|4": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet11|4": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet12|4": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet13|4": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet14|4": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet15|4": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet16|4": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet17|4": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet20|4": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet21|4": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet22|4": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet23|4": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet24|4": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet25|4": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet26|4": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet27|4": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet28|4": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet29|4": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet30|4": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet31|4": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet32|4": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet36|4": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet37|4": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet38|4": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet39|4": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet40|4": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet41|4": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet42|4": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet48|4": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet52|4": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet53|4": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet54|4": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet55|4": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet56|4": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet57|4": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet58|4": {
- "scheduler" : "[SCHEDULER|scheduler.0]",
+ "scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet0|0": {
@@ -752,6 +756,138 @@
"Ethernet58|1": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
+ "Ethernet0|2": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet1|2": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet4|2": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet5|2": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet6|2": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet7|2": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet8|2": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet9|2": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet10|2": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet11|2": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet12|2": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet13|2": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet14|2": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet15|2": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet16|2": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet17|2": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet20|2": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet21|2": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet22|2": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet23|2": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet24|2": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet25|2": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet26|2": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet27|2": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet28|2": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet29|2": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet30|2": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet31|2": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet32|2": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet36|2": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet37|2": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet38|2": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet39|2": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet40|2": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet41|2": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet42|2": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet48|2": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet52|2": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet53|2": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet54|2": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet55|2": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet56|2": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet57|2": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet58|2": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
"Ethernet0|5": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
@@ -883,6 +1019,138 @@
},
"Ethernet58|5": {
"scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet0|6": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet1|6": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet4|6": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet5|6": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet6|6": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet7|6": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet8|6": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet9|6": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet10|6": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet11|6": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet12|6": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet13|6": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet14|6": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet15|6": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet16|6": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet17|6": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet20|6": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet21|6": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet22|6": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet23|6": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet24|6": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet25|6": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet26|6": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet27|6": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet28|6": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet29|6": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet30|6": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet31|6": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet32|6": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet36|6": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet37|6": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet38|6": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet39|6": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet40|6": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet41|6": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet42|6": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet48|6": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet52|6": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet53|6": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet54|6": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet55|6": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet56|6": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet57|6": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
+ },
+ "Ethernet58|6": {
+ "scheduler": "[SCHEDULER|scheduler.0]"
}
}
}
diff --git a/src/sonic-config-engine/tests/test_cfggen.py b/src/sonic-config-engine/tests/test_cfggen.py
index f4ac56807ec5..1141419392c1 100644
--- a/src/sonic-config-engine/tests/test_cfggen.py
+++ b/src/sonic-config-engine/tests/test_cfggen.py
@@ -151,6 +151,11 @@ def test_minigraph_extra_neighbors(self):
"'Ethernet112': {'name': 'ARISTA01T1', 'port': 'Ethernet1/1'}, "
"'Ethernet120': {'name': 'ARISTA03T1', 'port': 'Ethernet1/1'}}")
+ 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(), "{'alias': 'fortyGigE0/124', 'admin_status': 'up', 'lanes': '101,102,103,104', 'description': 'ARISTA04T1:Ethernet1/1', 'mtu': '9100'}")
+
def test_minigraph_bgp(self):
argument = '-m "' + self.sample_graph_bgp_speaker + '" -p "' + self.port_config + '" -v "BGP_NEIGHBOR[\'10.0.0.59\']"'
output = self.run_script(argument)
@@ -177,39 +182,40 @@ def test_minigraph_ethernet_interfaces(self):
def test_minigraph_extra_ethernet_interfaces(self):
argument = '-m "' + self.sample_graph_simple + '" -p "' + self.port_config + '" -v "PORT"'
output = self.run_script(argument)
+
self.assertEqual(output.strip(), \
- "{'Ethernet8': {'lanes': '37,38,39,40', 'description': 'Interface description', 'mtu': '9100', 'alias': 'fortyGigE0/8', 'admin_status': 'up', 'speed': '1000'}, "
- "'Ethernet0': {'alias': 'fortyGigE0/0', 'admin_status': 'up', 'lanes': '29,30,31,32', 'speed': '10000', 'mtu': '9100'}, "
- "'Ethernet4': {'alias': 'fortyGigE0/4', 'admin_status': 'up', 'lanes': '25,26,27,28', 'speed': '25000', 'mtu': '9100'}, "
- "'Ethernet108': {'alias': 'fortyGigE0/108', 'lanes': '81,82,83,84', 'mtu': '9100'}, "
- "'Ethernet100': {'alias': 'fortyGigE0/100', 'lanes': '125,126,127,128', 'mtu': '9100'}, "
- "'Ethernet104': {'alias': 'fortyGigE0/104', 'lanes': '85,86,87,88', 'mtu': '9100'}, "
- "'Ethernet68': {'alias': 'fortyGigE0/68', 'lanes': '69,70,71,72', 'mtu': '9100'}, "
- "'Ethernet96': {'alias': 'fortyGigE0/96', 'lanes': '121,122,123,124', 'mtu': '9100'}, "
- "'Ethernet124': {'alias': 'fortyGigE0/124', 'lanes': '101,102,103,104', 'mtu': '9100'}, "
- "'Ethernet92': {'alias': 'fortyGigE0/92', 'lanes': '113,114,115,116', 'mtu': '9100'}, "
- "'Ethernet120': {'alias': 'fortyGigE0/120', 'lanes': '97,98,99,100', 'mtu': '9100'}, "
- "'Ethernet52': {'alias': 'fortyGigE0/52', 'lanes': '53,54,55,56', 'mtu': '9100'}, "
- "'Ethernet56': {'alias': 'fortyGigE0/56', 'lanes': '61,62,63,64', 'mtu': '9100'}, "
- "'Ethernet76': {'alias': 'fortyGigE0/76', 'lanes': '73,74,75,76', 'mtu': '9100'}, "
- "'Ethernet72': {'alias': 'fortyGigE0/72', 'lanes': '77,78,79,80', 'mtu': '9100'}, "
- "'Ethernet64': {'alias': 'fortyGigE0/64', 'lanes': '65,66,67,68', 'mtu': '9100'}, "
- "'Ethernet32': {'alias': 'fortyGigE0/32', 'lanes': '9,10,11,12', 'mtu': '9100'}, "
- "'Ethernet16': {'alias': 'fortyGigE0/16', 'lanes': '41,42,43,44', 'mtu': '9100'}, "
- "'Ethernet36': {'alias': 'fortyGigE0/36', 'lanes': '13,14,15,16', 'mtu': '9100'}, "
- "'Ethernet12': {'lanes': '33,34,35,36', 'description': 'Interface description', 'mtu': '9100', 'alias': 'fortyGigE0/12', 'speed': '100000', 'fec': 'rs'}, "
- "'Ethernet88': {'alias': 'fortyGigE0/88', 'lanes': '117,118,119,120', 'mtu': '9100'}, "
- "'Ethernet116': {'alias': 'fortyGigE0/116', 'lanes': '93,94,95,96', 'mtu': '9100'}, "
- "'Ethernet80': {'alias': 'fortyGigE0/80', 'lanes': '105,106,107,108', 'mtu': '9100'}, "
- "'Ethernet112': {'alias': 'fortyGigE0/112', 'lanes': '89,90,91,92', 'mtu': '9100'}, "
- "'Ethernet84': {'alias': 'fortyGigE0/84', 'lanes': '109,110,111,112', 'mtu': '9100'}, "
- "'Ethernet48': {'alias': 'fortyGigE0/48', 'lanes': '49,50,51,52', 'mtu': '9100'}, "
- "'Ethernet44': {'alias': 'fortyGigE0/44', 'lanes': '17,18,19,20', 'mtu': '9100'}, "
- "'Ethernet40': {'alias': 'fortyGigE0/40', 'lanes': '21,22,23,24', 'mtu': '9100'}, "
- "'Ethernet28': {'alias': 'fortyGigE0/28', 'lanes': '1,2,3,4', 'mtu': '9100'}, "
- "'Ethernet60': {'alias': 'fortyGigE0/60', 'lanes': '57,58,59,60', 'mtu': '9100'}, "
- "'Ethernet20': {'alias': 'fortyGigE0/20', 'lanes': '45,46,47,48', 'mtu': '9100'}, "
- "'Ethernet24': {'alias': 'fortyGigE0/24', 'lanes': '5,6,7,8', 'mtu': '9100'}}")
+ "{'Ethernet8': {'lanes': '37,38,39,40', 'description': 'Interface description', 'mtu': '9100', 'alias': 'fortyGigE0/8', 'admin_status': 'up', 'speed': '1000'}, "
+ "'Ethernet0': {'lanes': '29,30,31,32', 'description': 'fortyGigE0/0', 'mtu': '9100', 'alias': 'fortyGigE0/0', 'admin_status': 'up', 'speed': '10000'}, "
+ "'Ethernet4': {'lanes': '25,26,27,28', 'description': 'fortyGigE0/4', 'mtu': '9100', 'alias': 'fortyGigE0/4', 'admin_status': 'up', 'speed': '25000'}, "
+ "'Ethernet108': {'alias': 'fortyGigE0/108', 'lanes': '81,82,83,84', 'description': 'fortyGigE0/108', 'mtu': '9100'}, "
+ "'Ethernet100': {'alias': 'fortyGigE0/100', 'lanes': '125,126,127,128', 'description': 'fortyGigE0/100', 'mtu': '9100'}, "
+ "'Ethernet104': {'alias': 'fortyGigE0/104', 'lanes': '85,86,87,88', 'description': 'fortyGigE0/104', 'mtu': '9100'}, "
+ "'Ethernet68': {'alias': 'fortyGigE0/68', 'lanes': '69,70,71,72', 'description': 'fortyGigE0/68', 'mtu': '9100'}, "
+ "'Ethernet96': {'alias': 'fortyGigE0/96', 'lanes': '121,122,123,124', 'description': 'fortyGigE0/96', 'mtu': '9100'}, "
+ "'Ethernet124': {'alias': 'fortyGigE0/124', 'lanes': '101,102,103,104', 'description': 'fortyGigE0/124', 'mtu': '9100'}, "
+ "'Ethernet92': {'alias': 'fortyGigE0/92', 'lanes': '113,114,115,116', 'description': 'fortyGigE0/92', 'mtu': '9100'}, "
+ "'Ethernet120': {'alias': 'fortyGigE0/120', 'lanes': '97,98,99,100', 'description': 'fortyGigE0/120', 'mtu': '9100'}, "
+ "'Ethernet52': {'alias': 'fortyGigE0/52', 'lanes': '53,54,55,56', 'description': 'fortyGigE0/52', 'mtu': '9100'}, "
+ "'Ethernet56': {'alias': 'fortyGigE0/56', 'lanes': '61,62,63,64', 'description': 'fortyGigE0/56', 'mtu': '9100'}, "
+ "'Ethernet76': {'alias': 'fortyGigE0/76', 'lanes': '73,74,75,76', 'description': 'fortyGigE0/76', 'mtu': '9100'}, "
+ "'Ethernet72': {'alias': 'fortyGigE0/72', 'lanes': '77,78,79,80', 'description': 'fortyGigE0/72', 'mtu': '9100'}, "
+ "'Ethernet64': {'alias': 'fortyGigE0/64', 'lanes': '65,66,67,68', 'description': 'fortyGigE0/64', 'mtu': '9100'}, "
+ "'Ethernet32': {'alias': 'fortyGigE0/32', 'lanes': '9,10,11,12', 'description': 'fortyGigE0/32', 'mtu': '9100'}, "
+ "'Ethernet16': {'alias': 'fortyGigE0/16', 'lanes': '41,42,43,44', 'description': 'fortyGigE0/16', 'mtu': '9100'}, "
+ "'Ethernet36': {'alias': 'fortyGigE0/36', 'lanes': '13,14,15,16', 'description': 'fortyGigE0/36', 'mtu': '9100'}, "
+ "'Ethernet12': {'lanes': '33,34,35,36', 'description': 'Interface description', 'mtu': '9100', 'alias': 'fortyGigE0/12', 'speed': '100000', 'fec': 'rs'}, "
+ "'Ethernet88': {'alias': 'fortyGigE0/88', 'lanes': '117,118,119,120', 'description': 'fortyGigE0/88', 'mtu': '9100'}, "
+ "'Ethernet116': {'alias': 'fortyGigE0/116', 'lanes': '93,94,95,96', 'description': 'fortyGigE0/116', 'mtu': '9100'}, "
+ "'Ethernet80': {'alias': 'fortyGigE0/80', 'lanes': '105,106,107,108', 'description': 'fortyGigE0/80', 'mtu': '9100'}, "
+ "'Ethernet112': {'alias': 'fortyGigE0/112', 'lanes': '89,90,91,92', 'description': 'fortyGigE0/112', 'mtu': '9100'}, "
+ "'Ethernet84': {'alias': 'fortyGigE0/84', 'lanes': '109,110,111,112', 'description': 'fortyGigE0/84', 'mtu': '9100'}, "
+ "'Ethernet48': {'alias': 'fortyGigE0/48', 'lanes': '49,50,51,52', 'description': 'fortyGigE0/48', 'mtu': '9100'}, "
+ "'Ethernet44': {'alias': 'fortyGigE0/44', 'lanes': '17,18,19,20', 'description': 'fortyGigE0/44', 'mtu': '9100'}, "
+ "'Ethernet40': {'alias': 'fortyGigE0/40', 'lanes': '21,22,23,24', 'description': 'fortyGigE0/40', 'mtu': '9100'}, "
+ "'Ethernet28': {'alias': 'fortyGigE0/28', 'lanes': '1,2,3,4', 'description': 'fortyGigE0/28', 'mtu': '9100'}, "
+ "'Ethernet60': {'alias': 'fortyGigE0/60', 'lanes': '57,58,59,60', 'description': 'fortyGigE0/60', 'mtu': '9100'}, "
+ "'Ethernet20': {'alias': 'fortyGigE0/20', 'lanes': '45,46,47,48', 'description': 'fortyGigE0/20', 'mtu': '9100'}, "
+ "'Ethernet24': {'alias': 'fortyGigE0/24', 'lanes': '5,6,7,8', 'description': 'fortyGigE0/24', 'mtu': '9100'}}")
def test_metadata_everflow(self):
argument = '-m "' + self.sample_graph_metadata + '" -p "' + self.port_config + '" -v "MIRROR_SESSION"'
diff --git a/src/sonic-dbsyncd b/src/sonic-dbsyncd
index 1cdcffc08f6e..fe60afa7e24a 160000
--- a/src/sonic-dbsyncd
+++ b/src/sonic-dbsyncd
@@ -1 +1 @@
-Subproject commit 1cdcffc08f6ea1c3fc53f7aeeef5b5632124496f
+Subproject commit fe60afa7e24a7053a7bd9d7084268c1bbd203208
diff --git a/src/sonic-sairedis b/src/sonic-sairedis
index 60f97c33ccb5..d57222a9879b 160000
--- a/src/sonic-sairedis
+++ b/src/sonic-sairedis
@@ -1 +1 @@
-Subproject commit 60f97c33ccb5b218c68b8c3fe94a48719ed09435
+Subproject commit d57222a9879b9ee28738d05b769b7e0ca5d50cd1
diff --git a/src/sonic-snmpagent b/src/sonic-snmpagent
index dd9a8ea1406e..0f2bbd772704 160000
--- a/src/sonic-snmpagent
+++ b/src/sonic-snmpagent
@@ -1 +1 @@
-Subproject commit dd9a8ea1406e37531bd92dd08223d2813560a6f6
+Subproject commit 0f2bbd77270404e829815f95bf20b7d29af67930
diff --git a/src/sonic-swss b/src/sonic-swss
index 85f63223a252..584490c319be 160000
--- a/src/sonic-swss
+++ b/src/sonic-swss
@@ -1 +1 @@
-Subproject commit 85f63223a252f011c0240dc405bf25c8259dd136
+Subproject commit 584490c319be8e74444504538156e30ffadb8c4d
diff --git a/src/sonic-swss-common b/src/sonic-swss-common
index e8caaead527d..286ef34f18ed 160000
--- a/src/sonic-swss-common
+++ b/src/sonic-swss-common
@@ -1 +1 @@
-Subproject commit e8caaead527d46d42e41e99b884f41c57f70018b
+Subproject commit 286ef34f18ed105532c6b5e0d5fcbc7e1bbd9073
diff --git a/src/sonic-utilities b/src/sonic-utilities
index 3ce8952ca43c..b44b462a14b9 160000
--- a/src/sonic-utilities
+++ b/src/sonic-utilities
@@ -1 +1 @@
-Subproject commit 3ce8952ca43c2d5015ae90b13aa8a4644bab4c19
+Subproject commit b44b462a14b9a4b7c2d6091b5355c046acd9dac8