[cfggen] Build Python 2 And Python 3 Wheel Packages

This builds Python 2&3 wheel packages for sonic-cfggen script.

singed-off-by: Tamer Ahmed <tamer.ahmed@microsoft.com>
This commit is contained in:
Tamer Ahmed 2020-09-28 22:34:39 -07:00 committed by Tamer Ahmed
parent 99ffce6b57
commit 110f7b7817
46 changed files with 4286 additions and 77 deletions

View File

@ -147,10 +147,10 @@ sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip3 install $SONIC
sudo rm -rf $FILESYSTEM_ROOT/$SONIC_PY_COMMON_PY3_WHEEL_NAME
# Install SONiC config engine Python package
CONFIG_ENGINE_WHEEL_NAME=$(basename {{config_engine_wheel_path}})
sudo cp {{config_engine_wheel_path}} $FILESYSTEM_ROOT/$CONFIG_ENGINE_WHEEL_NAME
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip install $CONFIG_ENGINE_WHEEL_NAME
sudo rm -rf $FILESYSTEM_ROOT/$CONFIG_ENGINE_WHEEL_NAME
CONFIG_ENGINE_PY2_WHEEL_NAME=$(basename {{config_engine_py2_wheel_path}})
sudo cp {{config_engine_py2_wheel_path}} $FILESYSTEM_ROOT/$CONFIG_ENGINE_PY2_WHEEL_NAME
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip install $CONFIG_ENGINE_PY2_WHEEL_NAME
sudo rm -rf $FILESYSTEM_ROOT/$CONFIG_ENGINE_PY2_WHEEL_NAME
# Install sonic-yang-models py3 package, install dependencies
sudo dpkg --root=$FILESYSTEM_ROOT -i $debs_path/libyang_*.deb

View File

@ -3,7 +3,7 @@
SONIC_PLATFORM_API_PY2 = mlnx_platform_api-1.0-py2-none-any.whl
$(SONIC_PLATFORM_API_PY2)_SRC_PATH = $(PLATFORM_PATH)/mlnx-platform-api
$(SONIC_PLATFORM_API_PY2)_PYTHON_VERSION = 2
$(SONIC_PLATFORM_API_PY2)_DEPENDS = $(SONIC_PY_COMMON_PY2) $(SONIC_PLATFORM_COMMON_PY2) $(SONIC_CONFIG_ENGINE)
$(SONIC_PLATFORM_API_PY2)_DEPENDS = $(SONIC_PY_COMMON_PY2) $(SONIC_PLATFORM_COMMON_PY2) $(SONIC_CONFIG_ENGINE_PY2)
SONIC_PYTHON_WHEELS += $(SONIC_PLATFORM_API_PY2)
export mlnx_platform_api_py2_wheel_path="$(addprefix $(PYTHON_WHEELS_PATH)/,$(SONIC_PLATFORM_API_PY2))"

View File

@ -5,7 +5,7 @@ $(DOCKER_CONFIG_ENGINE_BUSTER)_PATH = $(DOCKERS_PATH)/docker-config-engine-buste
$(DOCKER_CONFIG_ENGINE_BUSTER)_PYTHON_WHEELS += $(SWSSSDK_PY2)
$(DOCKER_CONFIG_ENGINE_BUSTER)_PYTHON_WHEELS += $(SONIC_PY_COMMON_PY2)
$(DOCKER_CONFIG_ENGINE_BUSTER)_PYTHON_WHEELS += $(SONIC_CONFIG_ENGINE)
$(DOCKER_CONFIG_ENGINE_BUSTER)_PYTHON_WHEELS += $(SONIC_CONFIG_ENGINE_PY2)
$(DOCKER_CONFIG_ENGINE_BUSTER)_LOAD_DOCKERS += $(DOCKER_BASE_BUSTER)
$(DOCKER_CONFIG_ENGINE_BUSTER)_DBG_DEPENDS = $($(DOCKER_BASE_BUSTER)_DBG_DEPENDS)

View File

@ -4,7 +4,7 @@ DOCKER_CONFIG_ENGINE_STRETCH = docker-config-engine-stretch.gz
$(DOCKER_CONFIG_ENGINE_STRETCH)_PATH = $(DOCKERS_PATH)/docker-config-engine-stretch
$(DOCKER_CONFIG_ENGINE_STRETCH)_PYTHON_WHEELS += $(SWSSSDK_PY2)
$(DOCKER_CONFIG_ENGINE_STRETCH)_PYTHON_WHEELS += $(SONIC_PY_COMMON_PY2)
$(DOCKER_CONFIG_ENGINE_STRETCH)_PYTHON_WHEELS += $(SONIC_CONFIG_ENGINE)
$(DOCKER_CONFIG_ENGINE_STRETCH)_PYTHON_WHEELS += $(SONIC_CONFIG_ENGINE_PY2)
$(DOCKER_CONFIG_ENGINE_STRETCH)_LOAD_DOCKERS += $(DOCKER_BASE_STRETCH)
$(DOCKER_CONFIG_ENGINE_STRETCH)_DBG_DEPENDS = $($(DOCKER_BASE_STRETCH)_DBG_DEPENDS)

View File

@ -4,6 +4,6 @@ DOCKER_CONFIG_ENGINE = docker-config-engine.gz
$(DOCKER_CONFIG_ENGINE)_PATH = $(DOCKERS_PATH)/docker-config-engine
$(DOCKER_CONFIG_ENGINE)_PYTHON_WHEELS += $(SWSSSDK_PY2)
$(DOCKER_CONFIG_ENGINE)_PYTHON_WHEELS += $(SONIC_PY_COMMON_PY2)
$(DOCKER_CONFIG_ENGINE)_PYTHON_WHEELS += $(SONIC_CONFIG_ENGINE)
$(DOCKER_CONFIG_ENGINE)_PYTHON_WHEELS += $(SONIC_CONFIG_ENGINE_PY2)
$(DOCKER_CONFIG_ENGINE)_LOAD_DOCKERS += $(DOCKER_BASE)
SONIC_DOCKER_IMAGES += $(DOCKER_CONFIG_ENGINE)

View File

@ -1,10 +1,20 @@
# SONIC_CONFIG_ENGINE_PY2 package
SPATH := $($(SONIC_CONFIG_ENGINE)_SRC_PATH)
SPATH := $($(SONIC_CONFIG_ENGINE_PY2)_SRC_PATH)
DEP_FILES := $(SONIC_COMMON_FILES_LIST) rules/sonic-config.mk rules/sonic-config.dep
DEP_FILES += $(SONIC_COMMON_BASE_FILES_LIST)
DEP_FILES += $(shell git ls-files $(SPATH))
$(SONIC_CONFIG_ENGINE)_CACHE_MODE := GIT_CONTENT_SHA
$(SONIC_CONFIG_ENGINE)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST)
$(SONIC_CONFIG_ENGINE)_DEP_FILES := $(DEP_FILES)
$(SONIC_CONFIG_ENGINE_PY2)_CACHE_MODE := GIT_CONTENT_SHA
$(SONIC_CONFIG_ENGINE_PY2)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST)
$(SONIC_CONFIG_ENGINE_PY2)_DEP_FILES := $(DEP_FILES)
# SONIC_CONFIG_ENGINE_PY3 package
SPATH := $($(SONIC_CONFIG_ENGINE_PY3)_SRC_PATH)
DEP_FILES += $(shell git ls-files $(SPATH))
$(SONIC_CONFIG_ENGINE_PY3)_CACHE_MODE := GIT_CONTENT_SHA
$(SONIC_CONFIG_ENGINE_PY3)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST)
$(SONIC_CONFIG_ENGINE_PY3)_DEP_FILES := $(DEP_FILES)

View File

@ -1,7 +1,16 @@
# sonic-config-engine package
# SONIC_CONFIG_ENGINE_PY2 package
SONIC_CONFIG_ENGINE = sonic_config_engine-1.0-py2-none-any.whl
$(SONIC_CONFIG_ENGINE)_SRC_PATH = $(SRC_PATH)/sonic-config-engine
$(SONIC_CONFIG_ENGINE)_DEPENDS += $(SWSSSDK_PY2) $(SONIC_PY_COMMON_PY2)
$(SONIC_CONFIG_ENGINE)_PYTHON_VERSION = 2
SONIC_PYTHON_WHEELS += $(SONIC_CONFIG_ENGINE)
SONIC_CONFIG_ENGINE_PY2 = sonic_config_engine-1.0-py2-none-any.whl
$(SONIC_CONFIG_ENGINE_PY2)_SRC_PATH = $(SRC_PATH)/sonic-config-engine
$(SONIC_CONFIG_ENGINE_PY2)_DEPENDS += $(SWSSSDK_PY2) $(SONIC_PY_COMMON_PY2)
$(SONIC_CONFIG_ENGINE_PY2)_PYTHON_VERSION = 2
SONIC_PYTHON_WHEELS += $(SONIC_CONFIG_ENGINE_PY2)
# SONIC_CONFIG_ENGINE_PY3 package
SONIC_CONFIG_ENGINE_PY3 = sonic_config_engine-1.0-py3-none-any.whl
$(SONIC_CONFIG_ENGINE_PY3)_SRC_PATH = $(SRC_PATH)/sonic-config-engine
$(SONIC_CONFIG_ENGINE_PY3)_DEPENDS += $(SWSSSDK_PY3) $(SONIC_PY_COMMON_PY3)
$(SONIC_CONFIG_ENGINE_PY3)_PYTHON_VERSION = 3
SONIC_PYTHON_WHEELS += $(SONIC_CONFIG_ENGINE_PY3)

View File

@ -3,7 +3,7 @@
SONIC_PLATFORM_COMMON_PY2 = sonic_platform_common-1.0-py2-none-any.whl
$(SONIC_PLATFORM_COMMON_PY2)_SRC_PATH = $(SRC_PATH)/sonic-platform-common
$(SONIC_PLATFORM_COMMON_PY2)_PYTHON_VERSION = 2
$(SONIC_PLATFORM_COMMON_PY2)_DEPENDS += $(SONIC_PY_COMMON_PY2) $(SONIC_CONFIG_ENGINE)
$(SONIC_PLATFORM_COMMON_PY2)_DEPENDS += $(SONIC_PY_COMMON_PY2) $(SONIC_CONFIG_ENGINE_PY2)
SONIC_PYTHON_WHEELS += $(SONIC_PLATFORM_COMMON_PY2)
# Als build sonic-platform-common into python3 wheel, so we can use PSU code in SNMP docker

View File

@ -12,8 +12,8 @@ $(SONIC_UTILITIES_PY2)_SRC_PATH = $(SRC_PATH)/sonic-utilities
$(SONIC_UTILITIES_PY2)_PYTHON_VERSION = 2
$(SONIC_UTILITIES_PY2)_DEPENDS += $(SONIC_PY_COMMON_PY2) \
$(SONIC_PY_COMMON_PY3) \
$(SWSSSDK_PY2) \
$(SONIC_CONFIG_ENGINE) \
$(SWSSSDK_PY2) \
$(SONIC_CONFIG_ENGINE_PY2) \
$(SONIC_YANG_MGMT_PY) \
$(SONIC_YANG_MODELS_PY3)
$(SONIC_UTILITIES_PY2)_DEBS_DEPENDS = $(LIBYANG) \

View File

@ -811,7 +811,8 @@ $(addprefix $(TARGET_PATH)/, $(SONIC_INSTALLERS)) : $(TARGET_PATH)/% : \
$(addprefix $(PYTHON_WHEELS_PATH)/,$(SONIC_UTILITIES_PY2)) \
$(addprefix $(PYTHON_WHEELS_PATH)/,$(SONIC_PY_COMMON_PY2)) \
$(addprefix $(PYTHON_WHEELS_PATH)/,$(SONIC_PY_COMMON_PY3)) \
$(addprefix $(PYTHON_WHEELS_PATH)/,$(SONIC_CONFIG_ENGINE)) \
$(addprefix $(PYTHON_WHEELS_PATH)/,$(SONIC_CONFIG_ENGINE_PY2)) \
$(addprefix $(PYTHON_WHEELS_PATH)/,$(SONIC_CONFIG_ENGINE_PY3)) \
$(addprefix $(PYTHON_WHEELS_PATH)/,$(SONIC_PLATFORM_COMMON_PY2)) \
$(addprefix $(PYTHON_WHEELS_PATH)/,$(SONIC_PLATFORM_COMMON_PY3)) \
$(addprefix $(PYTHON_WHEELS_PATH)/,$(REDIS_DUMP_LOAD_PY2)) \
@ -848,7 +849,8 @@ $(addprefix $(TARGET_PATH)/, $(SONIC_INSTALLERS)) : $(TARGET_PATH)/% : \
export installer_images="$(addprefix $(TARGET_PATH)/,$($*_DOCKERS))"
export sonic_py_common_py2_wheel_path="$(addprefix $(PYTHON_WHEELS_PATH)/,$(SONIC_PY_COMMON_PY2))"
export sonic_py_common_py3_wheel_path="$(addprefix $(PYTHON_WHEELS_PATH)/,$(SONIC_PY_COMMON_PY3))"
export config_engine_wheel_path="$(addprefix $(PYTHON_WHEELS_PATH)/,$(SONIC_CONFIG_ENGINE))"
export config_engine_py2_wheel_path="$(addprefix $(PYTHON_WHEELS_PATH)/,$(SONIC_CONFIG_ENGINE_PY2))"
export config_engine_py3_wheel_path="$(addprefix $(PYTHON_WHEELS_PATH)/,$(SONIC_CONFIG_ENGINE_PY3))"
export swsssdk_py2_wheel_path="$(addprefix $(PYTHON_WHEELS_PATH)/,$(SWSSSDK_PY2))"
export swsssdk_py3_wheel_path="$(addprefix $(PYTHON_WHEELS_PATH)/,$(SWSSSDK_PY3))"
export platform_common_py2_wheel_path="$(addprefix $(PYTHON_WHEELS_PATH)/,$(SONIC_PLATFORM_COMMON_PY2))"

View File

@ -1,4 +1,3 @@
#!/usr/bin/env python
import os
import sys
from natsort import natsorted

View File

@ -1,5 +1,5 @@
#!/usr/bin/env python
from __future__ import print_function
import calendar
import math
import os
@ -922,7 +922,7 @@ def parse_xml(filename, platform=None, port_config_file=None, asic_name=None, hw
results['BGP_PEER_RANGE'] = bgp_peers_with_range
if mgmt_routes:
# TODO: differentiate v4 and v6
iter(mgmt_intf.values()).next()['forced_mgmt_routes'] = mgmt_routes
next(iter(mgmt_intf.values()))['forced_mgmt_routes'] = mgmt_routes
results['MGMT_PORT'] = {}
results['MGMT_INTERFACE'] = {}
mgmt_intf_count = 0
@ -1044,7 +1044,7 @@ def parse_xml(filename, platform=None, port_config_file=None, asic_name=None, hw
if port_config_file:
port_set = set(ports.keys())
for (pc_name, mbr_map) in pcs.items():
for (pc_name, mbr_map) in list(pcs.items()):
# remove portchannels that contain ports not existing in port_config.ini
# when port_config.ini exists
if not set(mbr_map['members']).issubset(port_set):
@ -1059,7 +1059,7 @@ def parse_xml(filename, platform=None, port_config_file=None, asic_name=None, hw
results['PORTCHANNEL'] = pcs
results['PORTCHANNEL_MEMBER'] = pc_members
for pc_intf in pc_intfs.keys():
for pc_intf in list(pc_intfs.keys()):
# remove portchannels not in PORTCHANNEL dictionary
if isinstance(pc_intf, tuple) and pc_intf[0] not in pcs:
print("Warning: ignore '%s' interface '%s' as '%s' is not in the valid PortChannel list" % (pc_intf[0], pc_intf[1], pc_intf[0]), file=sys.stderr)
@ -1097,7 +1097,7 @@ def parse_xml(filename, platform=None, port_config_file=None, asic_name=None, hw
results['VLAN'] = vlans
results['VLAN_MEMBER'] = vlan_members
for nghbr in neighbors.keys():
for nghbr in list(neighbors.keys()):
# remove port not in port_config.ini
if nghbr not in ports:
if port_config_file is not None:

View File

@ -1,4 +1,3 @@
#!/usr/bin/env python
try:
import os
import sys

View File

@ -1,52 +1,65 @@
#!/usr/bin/env python
from setuptools import setup
import os.path
import unittest
import glob
def get_test_suite():
test_loader = unittest.TestLoader()
test_suite = test_loader.discover('tests', pattern='*.py')
return test_suite
from setuptools import setup
from tests.common_utils import PY3x
dependencies = [
# Python 2 or 3 dependencies
'future',
'ipaddr',
'lxml',
'netaddr',
'pyyaml',
'sonic-py-common',
] + ([
# Python 3 dependencies
# pyangbind v0.8.1 pull down enum43 which causes 're' package to malfunction.
# Python3 has enum module and so pyangbind should be installed outside
# dependencies section of setuptools followed by uninstall of enum43
# 'pyangbind==0.8.1',
'Jinja2>=2.10',
] if PY3x
else [
# Python 2 dependencies
# Jinja2 v3.0.0+ dropped support for Python 2.7 and causes setuptools to
# malfunction on stretch slave docker.
'Jinja2<3.0.0',
'pyangbind==0.6.0',
])
setup(
name = 'sonic-config-engine',
version = '1.0',
description = 'Utilities for generating SONiC configuration files',
author='Taoyu Li',
author_email='taoyl@microsoft.com',
author = 'Taoyu Li',
author_email = 'taoyl@microsoft.com',
url = 'https://github.com/Azure/sonic-buildimage',
py_modules = [
'portconfig',
'config_samples',
'lazy_re',
'minigraph',
'openconfig_acl',
'config_samples',
'portconfig',
'redis_bcc',
'lazy_re',
],
scripts = [
'sonic-cfggen',
],
install_requires = [
'future',
'ipaddr',
'jinja2>=2.10',
'lxml',
'netaddr',
'pyyaml',
'pyangbind==0.6.0',
'sonic-py-common',
],
test_suite = 'setup.get_test_suite',
install_requires = dependencies,
data_files = [
('/usr/share/sonic/templates', glob.glob('data/*')),
],
python_requires='>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*',
classifiers=[
setup_requires= [
'pytest-runner',
],
tests_require=[
'pytest',
],
classifiers = [
'Intended Audience :: Developers',
'Natural Language :: English',
"Programming Language :: Python :: 2",
'Programming Language :: Python :: 2',
'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.5',
@ -54,5 +67,6 @@ setup(
'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8',
],
keywords = 'SONiC sonic-cfggen config-engine PYTHON python'
)

View File

@ -45,9 +45,17 @@ from sonic_py_common.multi_asic import get_asic_id_from_name, is_multi_asic
from sonic_py_common import device_info
from swsssdk import SonicV2Connector, ConfigDBConnector, SonicDBConfig, ConfigDBPipeConnector
#TODO: Remove STR_TYPE once SONiC moves to Python 3.x
PY3x = sys.version_info >= (3, 0)
STR_TYPE = str if PY3x else unicode
#TODO: Remove STR_TYPE, FILE_TYPE once SONiC moves to Python 3.x
if PY3x:
from io import IOBase
STR_TYPE = str
FILE_TYPE = IOBase
else:
STR_TYPE = unicode
FILE_TYPE = file
def sort_by_port_index(value):
if not value:
@ -168,7 +176,8 @@ TODO(taoyl): Current version of config db only supports BGP admin states.
break
return newData
for key in data.keys():
current_keys = list(data.keys())
for key in current_keys:
new_key = ConfigDBConnector.serialize_key(key)
if new_key != key:
data[new_key] = data.pop(key)
@ -179,7 +188,8 @@ TODO(taoyl): Current version of config db only supports BGP admin states.
def to_deserialized(data):
for table in data:
if type(data[table]) is dict:
for key in data[table].keys():
current_keys = list(data[table].keys())
for key in current_keys:
new_key = ConfigDBConnector.deserialize_key(key)
if new_key != key:
data[table][new_key] = data[table].pop(key)
@ -195,6 +205,7 @@ def deep_update(dst, src):
dst[key] = value
return dst
# sort_data is required as it is being imported by config/config_mgmt module in sonic_utilities
def sort_data(data):
for table in data:
if type(data[table]) is dict:
@ -206,11 +217,11 @@ def smart_open(filename=None, mode=None):
"""
Provide contextual file descriptor of filename if it is not a file descriptor
"""
smart_file = open(filename, mode) if not isinstance(filename, file) else filename
smart_file = open(filename, mode) if not isinstance(filename, FILE_TYPE) else filename
try:
yield smart_file
finally:
if not isinstance(filename, file):
if not isinstance(filename, FILE_TYPE):
smart_file.close()
def _process_json(args, data):

View File

@ -4,6 +4,7 @@ import sys
PY3x = sys.version_info >= (3, 0)
PYvX_DIR = "py3" if PY3x else "py2"
PYTHON_INTERPRETTER = "python3" if PY3x else "python2"
def tuple_to_str(tuplestr):
""" Convert Python tuple '('elem1', 'elem2')' representation into string on the for "elem1|elem2" """

View File

@ -0,0 +1,23 @@
[
{
"TUNNEL_DECAP_TABLE:IPINIP_TUNNEL" : {
"tunnel_type":"IPINIP",
"dst_ip":"8.0.0.0,10.1.0.32,10.1.0.1,10.1.0.3,10.0.0.0",
"dscp_mode":"pipe",
"ecn_mode":"copy_from_outer",
"ttl_mode":"pipe"
},
"OP": "SET"
}
,
{
"TUNNEL_DECAP_TABLE:IPINIP_V6_TUNNEL" : {
"tunnel_type":"IPINIP",
"dst_ip":"fd00:1::32,fc00:1::32,fc00::1",
"dscp_mode":"pipe",
"ecn_mode":"copy_from_outer",
"ttl_mode":"pipe"
},
"OP": "SET"
}
]

View File

@ -0,0 +1,73 @@
!
! template: bgpd/bgpd.conf.j2
!
!
! =========== Managed by sonic-cfggen DO NOT edit manually! ====================
! generated by templates/quagga/bgpd.conf.j2 with config DB data
! file: bgpd.conf
!
!
! template: common/daemons.common.conf.j2
!
hostname switch-t0
password zebra
enable password zebra
!
log syslog informational
log facility local4
!
! end of template: common/daemons.common.conf.j2!
agentx
!
!
!
! template: bgpd/bgpd.main.conf.j2
!
! bgp multiple-instance
!
! BGP configuration
!
! TSA configuration
!
ip prefix-list PL_LoopbackV4 permit 10.1.0.32/32
!
ipv6 prefix-list PL_LoopbackV6 permit fc00:1::/64
!
ip prefix-list LOCAL_VLAN_IPV4_PREFIX seq 5 permit 192.168.0.1/27
!
!
!
router bgp 65100
!
bgp log-neighbor-changes
no bgp default ipv4-unicast
!
bgp bestpath as-path multipath-relax
!
bgp graceful-restart restart-time 240
bgp graceful-restart
bgp graceful-restart preserve-fw-state
!
bgp router-id 10.1.0.32
!
network 10.1.0.32/32
!
address-family ipv6
network fc00:1::32/64
exit-address-family
!
network 192.168.0.1/27
!
!
!
address-family ipv4
maximum-paths 64
exit-address-family
address-family ipv6
maximum-paths 64
exit-address-family
!
! end of template: bgpd/bgpd.main.conf.j2
!!
! end of template: bgpd/bgpd.conf.j2
!

View File

@ -0,0 +1,100 @@
!
! =========== Managed by sonic-cfggen DO NOT edit manually! ====================
! generated by templates/quagga/bgpd.conf.j2 with config DB data
! file: bgpd.conf
!
!
hostname switch-t0
password zebra
log syslog informational
log facility local4
! enable password !
!
! bgp multiple-instance
!
route-map FROM_BGP_SPEAKER_V4 permit 10
!
route-map TO_BGP_SPEAKER_V4 deny 10
!
router bgp 65100
bgp log-neighbor-changes
bgp bestpath as-path multipath-relax
no bgp default ipv4-unicast
bgp graceful-restart restart-time 240
bgp graceful-restart
bgp router-id 10.1.0.32
network 10.1.0.32/32
address-family ipv6
network fc00:1::32/64
exit-address-family
network 192.168.0.1/27
neighbor 10.0.0.57 remote-as 64600
neighbor 10.0.0.57 description ARISTA01T1
address-family ipv4
neighbor 10.0.0.57 allowas-in 1
neighbor 10.0.0.57 activate
neighbor 10.0.0.57 soft-reconfiguration inbound
maximum-paths 64
exit-address-family
neighbor fc00::72 remote-as 64600
neighbor fc00::72 description ARISTA01T1
address-family ipv6
neighbor fc00::72 allowas-in 1
neighbor fc00::72 activate
neighbor fc00::72 soft-reconfiguration inbound
maximum-paths 64
exit-address-family
neighbor 10.0.0.59 remote-as 64600
neighbor 10.0.0.59 description ARISTA02T1
address-family ipv4
neighbor 10.0.0.59 allowas-in 1
neighbor 10.0.0.59 activate
neighbor 10.0.0.59 soft-reconfiguration inbound
maximum-paths 64
exit-address-family
neighbor fc00::76 remote-as 64600
neighbor fc00::76 description ARISTA02T1
address-family ipv6
neighbor fc00::76 allowas-in 1
neighbor fc00::76 activate
neighbor fc00::76 soft-reconfiguration inbound
maximum-paths 64
exit-address-family
neighbor 10.0.0.61 remote-as 64600
neighbor 10.0.0.61 description ARISTA03T1
address-family ipv4
neighbor 10.0.0.61 allowas-in 1
neighbor 10.0.0.61 activate
neighbor 10.0.0.61 soft-reconfiguration inbound
maximum-paths 64
exit-address-family
neighbor fc00::7a remote-as 64600
neighbor fc00::7a description ARISTA03T1
address-family ipv6
neighbor fc00::7a allowas-in 1
neighbor fc00::7a activate
neighbor fc00::7a soft-reconfiguration inbound
maximum-paths 64
exit-address-family
neighbor 10.0.0.63 remote-as 64600
neighbor 10.0.0.63 description ARISTA04T1
address-family ipv4
neighbor 10.0.0.63 allowas-in 1
neighbor 10.0.0.63 activate
neighbor 10.0.0.63 soft-reconfiguration inbound
maximum-paths 64
exit-address-family
neighbor fc00::7e remote-as 64600
neighbor fc00::7e description ARISTA04T1
address-family ipv6
neighbor fc00::7e allowas-in 1
neighbor fc00::7e activate
neighbor fc00::7e soft-reconfiguration inbound
maximum-paths 64
exit-address-family
!
maximum-paths 64
!
route-map ISOLATE permit 10
set as-path prepend 65100
!

View File

@ -0,0 +1,640 @@
{
"CABLE_LENGTH": {
"AZURE": {
"Ethernet0": "5m",
"Ethernet1": "5m",
"Ethernet2": "5m",
"Ethernet3": "5m",
"Ethernet4": "5m",
"Ethernet5": "5m",
"Ethernet6": "5m",
"Ethernet7": "5m",
"Ethernet8": "5m",
"Ethernet9": "5m",
"Ethernet10": "5m",
"Ethernet11": "5m",
"Ethernet12": "5m",
"Ethernet13": "5m",
"Ethernet14": "5m",
"Ethernet15": "5m",
"Ethernet16": "5m",
"Ethernet17": "5m",
"Ethernet18": "5m",
"Ethernet19": "5m",
"Ethernet20": "5m",
"Ethernet21": "5m",
"Ethernet22": "5m",
"Ethernet23": "5m",
"Ethernet24": "5m",
"Ethernet25": "5m",
"Ethernet26": "5m",
"Ethernet27": "5m",
"Ethernet28": "5m",
"Ethernet29": "5m",
"Ethernet30": "5m",
"Ethernet31": "5m",
"Ethernet32": "5m",
"Ethernet33": "5m",
"Ethernet34": "5m",
"Ethernet35": "5m",
"Ethernet36": "5m",
"Ethernet37": "5m",
"Ethernet38": "5m",
"Ethernet39": "5m",
"Ethernet40": "5m",
"Ethernet41": "5m",
"Ethernet42": "5m",
"Ethernet43": "5m",
"Ethernet44": "5m",
"Ethernet45": "5m",
"Ethernet46": "5m",
"Ethernet47": "5m",
"Ethernet48": "5m",
"Ethernet49": "5m",
"Ethernet50": "5m",
"Ethernet51": "5m",
"Ethernet52": "5m",
"Ethernet53": "5m",
"Ethernet54": "5m",
"Ethernet55": "5m",
"Ethernet56": "5m",
"Ethernet57": "5m",
"Ethernet58": "5m",
"Ethernet59": "5m",
"Ethernet60": "5m",
"Ethernet61": "5m",
"Ethernet62": "5m",
"Ethernet63": "5m"
}
},
"BUFFER_POOL": {
"ingress_lossless_pool": {
"size": "10875072",
"type": "ingress",
"mode": "dynamic",
"xoff": "4194112"
},
"egress_lossy_pool": {
"size": "9243812",
"type": "egress",
"mode": "dynamic"
},
"egress_lossless_pool": {
"size": "15982720",
"type": "egress",
"mode": "static"
}
},
"BUFFER_PROFILE": {
"ingress_lossy_profile": {
"pool":"[BUFFER_POOL|ingress_lossless_pool]",
"size":"0",
"dynamic_th":"3"
},
"egress_lossless_profile": {
"pool":"[BUFFER_POOL|egress_lossless_pool]",
"size":"1518",
"static_th":"15982720"
},
"egress_lossy_profile": {
"pool":"[BUFFER_POOL|egress_lossy_pool]",
"size":"1518",
"dynamic_th":"3"
}
},
"BUFFER_PG": {
"Ethernet0|0": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
"Ethernet1|0": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
"Ethernet4|0": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
"Ethernet5|0": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
"Ethernet16|0": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
"Ethernet17|0": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
"Ethernet20|0": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
"Ethernet21|0": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
"Ethernet6|0": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
"Ethernet7|0": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
"Ethernet8|0": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
"Ethernet9|0": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
"Ethernet10|0": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
"Ethernet11|0": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
"Ethernet12|0": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
"Ethernet13|0": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
"Ethernet14|0": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
"Ethernet15|0": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
"Ethernet32|0": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
"Ethernet36|0": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
"Ethernet37|0": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
"Ethernet38|0": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
"Ethernet39|0": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
"Ethernet40|0": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
"Ethernet41|0": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
"Ethernet42|0": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
"Ethernet22|0": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
"Ethernet23|0": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
"Ethernet24|0": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
"Ethernet25|0": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
"Ethernet26|0": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
"Ethernet27|0": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
"Ethernet28|0": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
"Ethernet29|0": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
"Ethernet30|0": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
"Ethernet31|0": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
"Ethernet48|0": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
"Ethernet52|0": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
"Ethernet53|0": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
"Ethernet54|0": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
"Ethernet55|0": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
"Ethernet56|0": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
"Ethernet57|0": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
"Ethernet58|0": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
}
},
"BUFFER_QUEUE": {
"Ethernet0|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
"Ethernet1|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
"Ethernet4|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
"Ethernet5|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
"Ethernet16|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
"Ethernet17|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
"Ethernet20|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
"Ethernet21|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
"Ethernet6|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
"Ethernet7|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
"Ethernet8|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
"Ethernet9|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
"Ethernet10|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
"Ethernet11|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
"Ethernet12|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
"Ethernet13|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
"Ethernet14|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
"Ethernet15|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
"Ethernet32|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
"Ethernet36|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
"Ethernet37|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
"Ethernet38|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
"Ethernet39|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
"Ethernet40|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
"Ethernet41|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
"Ethernet42|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
"Ethernet22|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
"Ethernet23|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
"Ethernet24|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
"Ethernet25|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
"Ethernet26|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
"Ethernet27|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
"Ethernet28|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
"Ethernet29|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
"Ethernet30|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
"Ethernet31|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
"Ethernet48|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
"Ethernet52|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
"Ethernet53|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
"Ethernet54|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
"Ethernet55|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
"Ethernet56|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
"Ethernet57|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
"Ethernet58|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
"Ethernet0|0-2": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet1|0-2": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet4|0-2": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet5|0-2": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet16|0-2": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet17|0-2": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet20|0-2": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet21|0-2": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet6|0-2": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet7|0-2": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet8|0-2": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet9|0-2": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet10|0-2": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet11|0-2": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet12|0-2": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet13|0-2": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet14|0-2": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet15|0-2": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet32|0-2": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet36|0-2": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet37|0-2": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet38|0-2": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet39|0-2": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet40|0-2": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet41|0-2": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet42|0-2": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet22|0-2": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet23|0-2": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet24|0-2": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet25|0-2": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet26|0-2": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet27|0-2": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet28|0-2": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet29|0-2": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet30|0-2": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet31|0-2": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet48|0-2": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet52|0-2": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet53|0-2": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet54|0-2": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet55|0-2": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet56|0-2": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet57|0-2": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet58|0-2": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet0|5-6": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet1|5-6": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet4|5-6": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet5|5-6": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet16|5-6": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet17|5-6": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet20|5-6": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet21|5-6": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet6|5-6": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet7|5-6": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet8|5-6": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet9|5-6": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet10|5-6": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet11|5-6": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet12|5-6": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet13|5-6": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet14|5-6": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet15|5-6": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet32|5-6": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet36|5-6": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet37|5-6": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet38|5-6": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet39|5-6": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet40|5-6": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet41|5-6": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet42|5-6": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet22|5-6": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet23|5-6": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet24|5-6": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet25|5-6": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet26|5-6": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet27|5-6": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet28|5-6": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet29|5-6": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet30|5-6": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet31|5-6": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet48|5-6": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet52|5-6": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet53|5-6": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet54|5-6": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet55|5-6": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet56|5-6": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet57|5-6": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"Ethernet58|5-6": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
}
}
}

View File

@ -0,0 +1,69 @@
[supervisord]
logfile_maxbytes=1MB
logfile_backups=2
nodaemon=true
[eventlistener:dependent-startup]
command=python -m supervisord_dependent_startup
autostart=true
autorestart=unexpected
startretries=0
exitcodes=0,3
events=PROCESS_STATE
buffer_size=50
[eventlistener:supervisor-proc-exit-listener]
command=/usr/bin/supervisor-proc-exit-listener --container-name dhcp_relay
events=PROCESS_STATE_EXITED
autostart=true
autorestart=unexpected
[program:rsyslogd]
command=/usr/sbin/rsyslogd -n -iNONE
priority=1
autostart=false
autorestart=false
stdout_logfile=syslog
stderr_logfile=syslog
dependent_startup=true
[program:start]
command=/usr/bin/start.sh
priority=2
autostart=false
autorestart=false
startsecs=0
stdout_logfile=syslog
stderr_logfile=syslog
dependent_startup=true
dependent_startup_wait_for=rsyslogd:running
[group:isc-dhcp-relay]
programs=isc-dhcp-relay-Vlan1000
[program:isc-dhcp-relay-Vlan1000]
command=/usr/sbin/dhcrelay -d -m discard -a %%h:%%p %%P --name-alias-map-file /tmp/port-name-alias-map.txt -id Vlan1000 -iu PortChannel01 -iu PortChannel02 -iu PortChannel03 -iu PortChannel04 192.0.0.1 192.0.0.2
priority=3
autostart=false
autorestart=false
stdout_logfile=syslog
stderr_logfile=syslog
dependent_startup=true
dependent_startup_wait_for=start:exited
[group:dhcpmon]
programs=dhcpmon-Vlan1000
[program:dhcpmon-Vlan1000]
command=/usr/sbin/dhcpmon -id Vlan1000 -iu PortChannel01 -iu PortChannel02 -iu PortChannel03 -iu PortChannel04 -im eth0
priority=4
autostart=false
autorestart=false
stdout_logfile=syslog
stderr_logfile=syslog
dependent_startup=true
dependent_startup_wait_for=isc-dhcp-relay-Vlan1000:running

View File

@ -0,0 +1,87 @@
!
! =========== Managed by sonic-cfggen DO NOT edit manually! ====================
! generated by templates/frr.conf.j2 with config DB data
! file: frr.conf
!
!
! template: common/daemons.common.conf.j2
!
hostname switch-t0
password zebra
enable password zebra
!
log syslog informational
log facility local4
!
! end of template: common/daemons.common.conf.j2!
agentx
!
!
!
! Enable link-detect (default disabled)
interface PortChannel01
link-detect
!
interface PortChannel02
link-detect
!
interface PortChannel03
link-detect
!
interface PortChannel04
link-detect
!
!!
!
! set static default route to mgmt gateway as a backup to learned default
ip route 0.0.0.0/0 10.0.0.1 200
!!
!
! template: bgpd/bgpd.main.conf.j2
!
! bgp multiple-instance
!
! BGP configuration
!
! TSA configuration
!
ip prefix-list PL_LoopbackV4 permit 10.1.0.32/32
!
ipv6 prefix-list PL_LoopbackV6 permit fc00:1::/64
!
ip prefix-list LOCAL_VLAN_IPV4_PREFIX seq 5 permit 192.168.0.1/27
!
!
!
router bgp 65100
!
bgp log-neighbor-changes
no bgp default ipv4-unicast
!
bgp bestpath as-path multipath-relax
!
bgp graceful-restart restart-time 240
bgp graceful-restart
bgp graceful-restart preserve-fw-state
!
bgp router-id 10.1.0.32
!
network 10.1.0.32/32
!
address-family ipv6
network fc00:1::32/64
exit-address-family
!
network 192.168.0.1/27
!
!
!
address-family ipv4
maximum-paths 64
exit-address-family
address-family ipv6
maximum-paths 64
exit-address-family
!
! end of template: bgpd/bgpd.main.conf.j2
!!

View File

@ -0,0 +1,46 @@
#
# =============== Managed by SONiC Config Engine DO NOT EDIT! ===============
# generated from /usr/share/sonic/templates/interfaces.j2 using sonic-cfggen
# file: /etc/network/interfaces
#
# The loopback network interface
auto lo
iface lo inet loopback
address 127.0.0.1
netmask 255.255.0.0
post-up ip addr del 127.0.0.1/8 dev lo
# The management network interface
auto eth0
iface eth0 inet static
address 10.0.0.100
netmask 255.255.255.0
network 10.0.0.0
broadcast 10.0.0.255
########## management network policy routing rules
# management port up rules
up ip -4 route add default via 10.0.0.1 dev eth0 table default metric 201
up ip -4 route add 10.0.0.0/24 dev eth0 table default
up ip -4 rule add from 10.0.0.100/32 table default
# management port down rules
pre-down ip -4 route delete default via 10.0.0.1 dev eth0 table default
pre-down ip -4 route delete 10.0.0.0/24 dev eth0 table default
pre-down ip -4 rule delete from 10.0.0.100/32 table default
iface eth0 inet6 static
address 2603:10e2:0:2902::8
netmask 64
network 2603:10e2:0:2902::
broadcast 2603:10e2:0:2902:ffff:ffff:ffff:ffff
########## management network policy routing rules
# management port up rules
up ip -6 route add default via 2603:10e2:0:2902::1 dev eth0 table default metric 201
up ip -6 route add 2603:10e2:0:2902::/64 dev eth0 table default
up ip -6 rule add from 2603:10e2:0:2902::8/128 table default
# management port down rules
pre-down ip -6 route delete default via 2603:10e2:0:2902::1 dev eth0 table default
pre-down ip -6 route delete 2603:10e2:0:2902::/64 dev eth0 table default
pre-down ip -6 rule delete from 2603:10e2:0:2902::8/128 table default
#
source /etc/network/interfaces.d/*
#

View File

@ -0,0 +1,23 @@
[
{
"TUNNEL_DECAP_TABLE:IPINIP_TUNNEL" : {
"tunnel_type":"IPINIP",
"dst_ip":"10.1.0.32,10.0.0.56,10.0.0.58,10.0.0.60,10.0.0.62,192.168.0.1",
"dscp_mode":"pipe",
"ecn_mode":"copy_from_outer",
"ttl_mode":"pipe"
},
"OP": "SET"
}
,
{
"TUNNEL_DECAP_TABLE:IPINIP_V6_TUNNEL" : {
"tunnel_type":"IPINIP",
"dst_ip":"fc00:1::32,fc00::71,fc00::75,fc00::79,fc00::7d",
"dscp_mode":"pipe",
"ecn_mode":"copy_from_outer",
"ttl_mode":"pipe"
},
"OP": "SET"
}
]

View File

@ -0,0 +1,268 @@
{
"DEVICE_METADATA": {"localhost": {"hwsku": "Mellanox-SN2700"}},
"PORT": {
"Ethernet0": {
"alias": "fortyGigE0/0",
"lanes": "29,30,31,32",
"admin_status": "up"
},
"Ethernet4": {
"alias": "fortyGigE0/4",
"lanes": "25,26,27,28",
"admin_status": "up"
},
"Ethernet8": {
"alias": "fortyGigE0/8",
"lanes": "37,38,39,40",
"admin_status": "up"
},
"Ethernet12": {
"alias": "fortyGigE0/12",
"lanes": "33,34,35,36",
"admin_status": "up"
},
"Ethernet16": {
"alias": "fortyGigE0/16",
"lanes": "41,42,43,44",
"admin_status": "up"
},
"Ethernet20": {
"alias": "fortyGigE0/20",
"lanes": "45,46,47,48",
"admin_status": "up"
},
"Ethernet24": {
"alias": "fortyGigE0/24",
"lanes": "5,6,7,8",
"admin_status": "up"
},
"Ethernet28": {
"alias": "fortyGigE0/28",
"lanes": "1,2,3,4",
"admin_status": "up"
},
"Ethernet32": {
"alias": "fortyGigE0/32",
"lanes": "9,10,11,12",
"admin_status": "up"
},
"Ethernet36": {
"alias": "fortyGigE0/36",
"lanes": "13,14,15,16",
"admin_status": "up"
},
"Ethernet40": {
"alias": "fortyGigE0/40",
"lanes": "21,22,23,24",
"admin_status": "up"
},
"Ethernet44": {
"alias": "fortyGigE0/44",
"lanes": "17,18,19,20",
"admin_status": "up"
},
"Ethernet48": {
"alias": "fortyGigE0/48",
"lanes": "49,50,51,52",
"admin_status": "up"
},
"Ethernet52": {
"alias": "fortyGigE0/52",
"lanes": "53,54,55,56",
"admin_status": "up"
},
"Ethernet56": {
"alias": "fortyGigE0/56",
"lanes": "61,62,63,64",
"admin_status": "up"
},
"Ethernet60": {
"alias": "fortyGigE0/60",
"lanes": "57,58,59,60",
"admin_status": "up"
},
"Ethernet64": {
"alias": "fortyGigE0/64",
"lanes": "65,66,67,68",
"admin_status": "up"
},
"Ethernet68": {
"alias": "fortyGigE0/68",
"lanes": "69,70,71,72",
"admin_status": "up"
},
"Ethernet72": {
"alias": "fortyGigE0/72",
"lanes": "77,78,79,80",
"admin_status": "up"
},
"Ethernet76": {
"alias": "fortyGigE0/76",
"lanes": "73,74,75,76",
"admin_status": "up"
},
"Ethernet80": {
"alias": "fortyGigE0/80",
"lanes": "105,106,107,108",
"admin_status": "up"
},
"Ethernet84": {
"alias": "fortyGigE0/84",
"lanes": "109,110,111,112",
"admin_status": "up"
},
"Ethernet88": {
"alias": "fortyGigE0/88",
"lanes": "117,118,119,120",
"admin_status": "up"
},
"Ethernet92": {
"alias": "fortyGigE0/92",
"lanes": "113,114,115,116",
"admin_status": "up"
},
"Ethernet96": {
"alias": "fortyGigE0/96",
"lanes": "121,122,123,124",
"admin_status": "up"
},
"Ethernet100": {
"alias": "fortyGigE0/100",
"lanes": "125,126,127,128",
"admin_status": "up"
},
"Ethernet104": {
"alias": "fortyGigE0/104",
"lanes": "85,86,87,88",
"admin_status": "up"
},
"Ethernet108": {
"alias": "fortyGigE0/108",
"lanes": "81,82,83,84",
"admin_status": "up"
},
"Ethernet112": {
"alias": "fortyGigE0/112",
"lanes": "89,90,91,92",
"admin_status": "up"
},
"Ethernet116": {
"alias": "fortyGigE0/116",
"lanes": "93,94,95,96",
"admin_status": "up"
},
"Ethernet120": {
"alias": "fortyGigE0/120",
"lanes": "97,98,99,100",
"admin_status": "up"
},
"Ethernet124": {
"alias": "fortyGigE0/124",
"lanes": "101,102,103,104",
"admin_status": "up"
}
},
"VLAN": {
"Vlan1000": {
"vlanid": "1000"
}
},
"VLAN_MEMBER": {
"Vlan1000|Ethernet0": {
"tagging_mode": "untagged"
},
"Vlan1000|Ethernet4": {
"tagging_mode": "untagged"
},
"Vlan1000|Ethernet8": {
"tagging_mode": "untagged"
},
"Vlan1000|Ethernet12": {
"tagging_mode": "untagged"
},
"Vlan1000|Ethernet16": {
"tagging_mode": "untagged"
},
"Vlan1000|Ethernet20": {
"tagging_mode": "untagged"
},
"Vlan1000|Ethernet24": {
"tagging_mode": "untagged"
},
"Vlan1000|Ethernet28": {
"tagging_mode": "untagged"
},
"Vlan1000|Ethernet32": {
"tagging_mode": "untagged"
},
"Vlan1000|Ethernet36": {
"tagging_mode": "untagged"
},
"Vlan1000|Ethernet40": {
"tagging_mode": "untagged"
},
"Vlan1000|Ethernet44": {
"tagging_mode": "untagged"
},
"Vlan1000|Ethernet48": {
"tagging_mode": "untagged"
},
"Vlan1000|Ethernet52": {
"tagging_mode": "untagged"
},
"Vlan1000|Ethernet56": {
"tagging_mode": "untagged"
},
"Vlan1000|Ethernet60": {
"tagging_mode": "untagged"
},
"Vlan1000|Ethernet64": {
"tagging_mode": "untagged"
},
"Vlan1000|Ethernet68": {
"tagging_mode": "untagged"
},
"Vlan1000|Ethernet72": {
"tagging_mode": "untagged"
},
"Vlan1000|Ethernet76": {
"tagging_mode": "untagged"
},
"Vlan1000|Ethernet80": {
"tagging_mode": "untagged"
},
"Vlan1000|Ethernet84": {
"tagging_mode": "untagged"
},
"Vlan1000|Ethernet88": {
"tagging_mode": "untagged"
},
"Vlan1000|Ethernet92": {
"tagging_mode": "untagged"
},
"Vlan1000|Ethernet96": {
"tagging_mode": "untagged"
},
"Vlan1000|Ethernet100": {
"tagging_mode": "untagged"
},
"Vlan1000|Ethernet104": {
"tagging_mode": "untagged"
},
"Vlan1000|Ethernet108": {
"tagging_mode": "untagged"
},
"Vlan1000|Ethernet112": {
"tagging_mode": "untagged"
},
"Vlan1000|Ethernet116": {
"tagging_mode": "untagged"
},
"Vlan1000|Ethernet120": {
"tagging_mode": "untagged"
},
"Vlan1000|Ethernet124": {
"tagging_mode": "untagged"
}
}
}

View File

@ -0,0 +1,3 @@
configure ports eth0 lldp portidsubtype local eth0
configure system ip management pattern 10.0.0.100
configure system hostname switch-t0

View File

@ -0,0 +1,57 @@
#
# =============== Managed by SONiC Config Engine DO NOT EDIT! ===============
# generated from /usr/share/sonic/templates/interfaces.j2 using sonic-cfggen
# file: /etc/network/interfaces
#
auto mgmt
iface mgmt
vrf-table 5000
# The loopback network interface for mgmt VRF that is required for applications like NTP
up ip link add lo-m type dummy
up ip link set dev lo-m master mgmt
up ip addr add 127.0.0.1/16 dev lo-m
up ip link set lo-m up
down ip link delete dev lo-m
# The loopback network interface
auto lo
iface lo inet loopback
address 127.0.0.1
netmask 255.255.0.0
post-up ip addr del 127.0.0.1/8 dev lo
# The management network interface
auto eth0
iface eth0 inet static
address 10.0.0.100
netmask 255.255.255.0
network 10.0.0.0
broadcast 10.0.0.255
vrf mgmt
########## management network policy routing rules
# management port up rules
up ip -4 route add default via 10.0.0.1 dev eth0 table 5000 metric 201
up ip -4 route add 10.0.0.0/24 dev eth0 table 5000
up ip -4 rule add from 10.0.0.100/32 table 5000
# management port down rules
pre-down ip -4 route delete default via 10.0.0.1 dev eth0 table 5000
pre-down ip -4 route delete 10.0.0.0/24 dev eth0 table 5000
pre-down ip -4 rule delete from 10.0.0.100/32 table 5000
iface eth0 inet6 static
address 2603:10e2:0:2902::8
netmask 64
network 2603:10e2:0:2902::
broadcast 2603:10e2:0:2902:ffff:ffff:ffff:ffff
vrf mgmt
########## management network policy routing rules
# management port up rules
up ip -6 route add default via 2603:10e2:0:2902::1 dev eth0 table 5000 metric 201
up ip -6 route add 2603:10e2:0:2902::/64 dev eth0 table 5000
up ip -6 rule add from 2603:10e2:0:2902::8/128 table 5000
# management port down rules
pre-down ip -6 route delete default via 2603:10e2:0:2902::1 dev eth0 table 5000
pre-down ip -6 route delete 2603:10e2:0:2902::/64 dev eth0 table 5000
pre-down ip -6 rule delete from 2603:10e2:0:2902::8/128 table 5000
#
source /etc/network/interfaces.d/*
#

View File

@ -0,0 +1,30 @@
[
{
"PORT_TABLE:Ethernet0": {
"speed": "10000",
"description": "fortyGigE0/0"
},
"OP": "SET"
},
{
"PORT_TABLE:Ethernet4": {
"speed": "25000",
"description": "fortyGigE0/4"
},
"OP": "SET"
},
{
"PORT_TABLE:Ethernet8": {
"speed": "1000",
"description": "Interface description"
},
"OP": "SET"
},
{
"PORT_TABLE:Ethernet12": {
"speed": "100000",
"description": "Interface description"
},
"OP": "SET"
}
]

View File

@ -0,0 +1,977 @@
{
"TC_TO_PRIORITY_GROUP_MAP": {
"AZURE": {
"0": "0",
"1": "0",
"2": "0",
"3": "3",
"4": "4",
"5": "0",
"6": "0",
"7": "7"
}
},
"MAP_PFC_PRIORITY_TO_QUEUE": {
"AZURE": {
"0": "0",
"1": "1",
"2": "2",
"3": "3",
"4": "4",
"5": "5",
"6": "6",
"7": "7"
}
},
"TC_TO_QUEUE_MAP": {
"AZURE": {
"0": "0",
"1": "1",
"2": "2",
"3": "3",
"4": "4",
"5": "5",
"6": "6",
"7": "7"
}
},
"DSCP_TO_TC_MAP": {
"AZURE": {
"0" : "1",
"1" : "1",
"2" : "1",
"3" : "3",
"4" : "4",
"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": "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": "14"
},
"scheduler.1": {
"type" : "DWRR",
"weight": "15"
}
},
"PORT_QOS_MAP": {
"Ethernet4": {
"dscp_to_tc_map" : "[DSCP_TO_TC_MAP|AZURE]",
"tc_to_queue_map" : "[TC_TO_QUEUE_MAP|AZURE]",
"tc_to_pg_map" : "[TC_TO_PRIORITY_GROUP_MAP|AZURE]",
"pfc_to_queue_map": "[MAP_PFC_PRIORITY_TO_QUEUE|AZURE]",
"pfc_enable" : "3,4"
},
"Ethernet8": {
"dscp_to_tc_map" : "[DSCP_TO_TC_MAP|AZURE]",
"tc_to_queue_map" : "[TC_TO_QUEUE_MAP|AZURE]",
"tc_to_pg_map" : "[TC_TO_PRIORITY_GROUP_MAP|AZURE]",
"pfc_to_queue_map": "[MAP_PFC_PRIORITY_TO_QUEUE|AZURE]",
"pfc_enable" : "3,4"
},
"Ethernet12": {
"dscp_to_tc_map" : "[DSCP_TO_TC_MAP|AZURE]",
"tc_to_queue_map" : "[TC_TO_QUEUE_MAP|AZURE]",
"tc_to_pg_map" : "[TC_TO_PRIORITY_GROUP_MAP|AZURE]",
"pfc_to_queue_map": "[MAP_PFC_PRIORITY_TO_QUEUE|AZURE]",
"pfc_enable" : "3,4"
},
"Ethernet16": {
"dscp_to_tc_map" : "[DSCP_TO_TC_MAP|AZURE]",
"tc_to_queue_map" : "[TC_TO_QUEUE_MAP|AZURE]",
"tc_to_pg_map" : "[TC_TO_PRIORITY_GROUP_MAP|AZURE]",
"pfc_to_queue_map": "[MAP_PFC_PRIORITY_TO_QUEUE|AZURE]",
"pfc_enable" : "3,4"
},
"Ethernet20": {
"dscp_to_tc_map" : "[DSCP_TO_TC_MAP|AZURE]",
"tc_to_queue_map" : "[TC_TO_QUEUE_MAP|AZURE]",
"tc_to_pg_map" : "[TC_TO_PRIORITY_GROUP_MAP|AZURE]",
"pfc_to_queue_map": "[MAP_PFC_PRIORITY_TO_QUEUE|AZURE]",
"pfc_enable" : "3,4"
},
"Ethernet24": {
"dscp_to_tc_map" : "[DSCP_TO_TC_MAP|AZURE]",
"tc_to_queue_map" : "[TC_TO_QUEUE_MAP|AZURE]",
"tc_to_pg_map" : "[TC_TO_PRIORITY_GROUP_MAP|AZURE]",
"pfc_to_queue_map": "[MAP_PFC_PRIORITY_TO_QUEUE|AZURE]",
"pfc_enable" : "3,4"
},
"Ethernet28": {
"dscp_to_tc_map" : "[DSCP_TO_TC_MAP|AZURE]",
"tc_to_queue_map" : "[TC_TO_QUEUE_MAP|AZURE]",
"tc_to_pg_map" : "[TC_TO_PRIORITY_GROUP_MAP|AZURE]",
"pfc_to_queue_map": "[MAP_PFC_PRIORITY_TO_QUEUE|AZURE]",
"pfc_enable" : "3,4"
},
"Ethernet32": {
"dscp_to_tc_map" : "[DSCP_TO_TC_MAP|AZURE]",
"tc_to_queue_map" : "[TC_TO_QUEUE_MAP|AZURE]",
"tc_to_pg_map" : "[TC_TO_PRIORITY_GROUP_MAP|AZURE]",
"pfc_to_queue_map": "[MAP_PFC_PRIORITY_TO_QUEUE|AZURE]",
"pfc_enable" : "3,4"
},
"Ethernet36": {
"dscp_to_tc_map" : "[DSCP_TO_TC_MAP|AZURE]",
"tc_to_queue_map" : "[TC_TO_QUEUE_MAP|AZURE]",
"tc_to_pg_map" : "[TC_TO_PRIORITY_GROUP_MAP|AZURE]",
"pfc_to_queue_map": "[MAP_PFC_PRIORITY_TO_QUEUE|AZURE]",
"pfc_enable" : "3,4"
},
"Ethernet40": {
"dscp_to_tc_map" : "[DSCP_TO_TC_MAP|AZURE]",
"tc_to_queue_map" : "[TC_TO_QUEUE_MAP|AZURE]",
"tc_to_pg_map" : "[TC_TO_PRIORITY_GROUP_MAP|AZURE]",
"pfc_to_queue_map": "[MAP_PFC_PRIORITY_TO_QUEUE|AZURE]",
"pfc_enable" : "3,4"
},
"Ethernet44": {
"dscp_to_tc_map" : "[DSCP_TO_TC_MAP|AZURE]",
"tc_to_queue_map" : "[TC_TO_QUEUE_MAP|AZURE]",
"tc_to_pg_map" : "[TC_TO_PRIORITY_GROUP_MAP|AZURE]",
"pfc_to_queue_map": "[MAP_PFC_PRIORITY_TO_QUEUE|AZURE]",
"pfc_enable" : "3,4"
},
"Ethernet48": {
"dscp_to_tc_map" : "[DSCP_TO_TC_MAP|AZURE]",
"tc_to_queue_map" : "[TC_TO_QUEUE_MAP|AZURE]",
"tc_to_pg_map" : "[TC_TO_PRIORITY_GROUP_MAP|AZURE]",
"pfc_to_queue_map": "[MAP_PFC_PRIORITY_TO_QUEUE|AZURE]",
"pfc_enable" : "3,4"
},
"Ethernet52": {
"dscp_to_tc_map" : "[DSCP_TO_TC_MAP|AZURE]",
"tc_to_queue_map" : "[TC_TO_QUEUE_MAP|AZURE]",
"tc_to_pg_map" : "[TC_TO_PRIORITY_GROUP_MAP|AZURE]",
"pfc_to_queue_map": "[MAP_PFC_PRIORITY_TO_QUEUE|AZURE]",
"pfc_enable" : "3,4"
},
"Ethernet56": {
"dscp_to_tc_map" : "[DSCP_TO_TC_MAP|AZURE]",
"tc_to_queue_map" : "[TC_TO_QUEUE_MAP|AZURE]",
"tc_to_pg_map" : "[TC_TO_PRIORITY_GROUP_MAP|AZURE]",
"pfc_to_queue_map": "[MAP_PFC_PRIORITY_TO_QUEUE|AZURE]",
"pfc_enable" : "3,4"
},
"Ethernet60": {
"dscp_to_tc_map" : "[DSCP_TO_TC_MAP|AZURE]",
"tc_to_queue_map" : "[TC_TO_QUEUE_MAP|AZURE]",
"tc_to_pg_map" : "[TC_TO_PRIORITY_GROUP_MAP|AZURE]",
"pfc_to_queue_map": "[MAP_PFC_PRIORITY_TO_QUEUE|AZURE]",
"pfc_enable" : "3,4"
},
"Ethernet64": {
"dscp_to_tc_map" : "[DSCP_TO_TC_MAP|AZURE]",
"tc_to_queue_map" : "[TC_TO_QUEUE_MAP|AZURE]",
"tc_to_pg_map" : "[TC_TO_PRIORITY_GROUP_MAP|AZURE]",
"pfc_to_queue_map": "[MAP_PFC_PRIORITY_TO_QUEUE|AZURE]",
"pfc_enable" : "3,4"
},
"Ethernet68": {
"dscp_to_tc_map" : "[DSCP_TO_TC_MAP|AZURE]",
"tc_to_queue_map" : "[TC_TO_QUEUE_MAP|AZURE]",
"tc_to_pg_map" : "[TC_TO_PRIORITY_GROUP_MAP|AZURE]",
"pfc_to_queue_map": "[MAP_PFC_PRIORITY_TO_QUEUE|AZURE]",
"pfc_enable" : "3,4"
},
"Ethernet72": {
"dscp_to_tc_map" : "[DSCP_TO_TC_MAP|AZURE]",
"tc_to_queue_map" : "[TC_TO_QUEUE_MAP|AZURE]",
"tc_to_pg_map" : "[TC_TO_PRIORITY_GROUP_MAP|AZURE]",
"pfc_to_queue_map": "[MAP_PFC_PRIORITY_TO_QUEUE|AZURE]",
"pfc_enable" : "3,4"
},
"Ethernet76": {
"dscp_to_tc_map" : "[DSCP_TO_TC_MAP|AZURE]",
"tc_to_queue_map" : "[TC_TO_QUEUE_MAP|AZURE]",
"tc_to_pg_map" : "[TC_TO_PRIORITY_GROUP_MAP|AZURE]",
"pfc_to_queue_map": "[MAP_PFC_PRIORITY_TO_QUEUE|AZURE]",
"pfc_enable" : "3,4"
},
"Ethernet80": {
"dscp_to_tc_map" : "[DSCP_TO_TC_MAP|AZURE]",
"tc_to_queue_map" : "[TC_TO_QUEUE_MAP|AZURE]",
"tc_to_pg_map" : "[TC_TO_PRIORITY_GROUP_MAP|AZURE]",
"pfc_to_queue_map": "[MAP_PFC_PRIORITY_TO_QUEUE|AZURE]",
"pfc_enable" : "3,4"
},
"Ethernet84": {
"dscp_to_tc_map" : "[DSCP_TO_TC_MAP|AZURE]",
"tc_to_queue_map" : "[TC_TO_QUEUE_MAP|AZURE]",
"tc_to_pg_map" : "[TC_TO_PRIORITY_GROUP_MAP|AZURE]",
"pfc_to_queue_map": "[MAP_PFC_PRIORITY_TO_QUEUE|AZURE]",
"pfc_enable" : "3,4"
},
"Ethernet88": {
"dscp_to_tc_map" : "[DSCP_TO_TC_MAP|AZURE]",
"tc_to_queue_map" : "[TC_TO_QUEUE_MAP|AZURE]",
"tc_to_pg_map" : "[TC_TO_PRIORITY_GROUP_MAP|AZURE]",
"pfc_to_queue_map": "[MAP_PFC_PRIORITY_TO_QUEUE|AZURE]",
"pfc_enable" : "3,4"
},
"Ethernet92": {
"dscp_to_tc_map" : "[DSCP_TO_TC_MAP|AZURE]",
"tc_to_queue_map" : "[TC_TO_QUEUE_MAP|AZURE]",
"tc_to_pg_map" : "[TC_TO_PRIORITY_GROUP_MAP|AZURE]",
"pfc_to_queue_map": "[MAP_PFC_PRIORITY_TO_QUEUE|AZURE]",
"pfc_enable" : "3,4"
},
"Ethernet96": {
"dscp_to_tc_map" : "[DSCP_TO_TC_MAP|AZURE]",
"tc_to_queue_map" : "[TC_TO_QUEUE_MAP|AZURE]",
"tc_to_pg_map" : "[TC_TO_PRIORITY_GROUP_MAP|AZURE]",
"pfc_to_queue_map": "[MAP_PFC_PRIORITY_TO_QUEUE|AZURE]",
"pfc_enable" : "3,4"
},
"Ethernet112": {
"dscp_to_tc_map" : "[DSCP_TO_TC_MAP|AZURE]",
"tc_to_queue_map" : "[TC_TO_QUEUE_MAP|AZURE]",
"tc_to_pg_map" : "[TC_TO_PRIORITY_GROUP_MAP|AZURE]",
"pfc_to_queue_map": "[MAP_PFC_PRIORITY_TO_QUEUE|AZURE]",
"pfc_enable" : "3,4"
},
"Ethernet116": {
"dscp_to_tc_map" : "[DSCP_TO_TC_MAP|AZURE]",
"tc_to_queue_map" : "[TC_TO_QUEUE_MAP|AZURE]",
"tc_to_pg_map" : "[TC_TO_PRIORITY_GROUP_MAP|AZURE]",
"pfc_to_queue_map": "[MAP_PFC_PRIORITY_TO_QUEUE|AZURE]",
"pfc_enable" : "3,4"
},
"Ethernet120": {
"dscp_to_tc_map" : "[DSCP_TO_TC_MAP|AZURE]",
"tc_to_queue_map" : "[TC_TO_QUEUE_MAP|AZURE]",
"tc_to_pg_map" : "[TC_TO_PRIORITY_GROUP_MAP|AZURE]",
"pfc_to_queue_map": "[MAP_PFC_PRIORITY_TO_QUEUE|AZURE]",
"pfc_enable" : "3,4"
},
"Ethernet124": {
"dscp_to_tc_map" : "[DSCP_TO_TC_MAP|AZURE]",
"tc_to_queue_map" : "[TC_TO_QUEUE_MAP|AZURE]",
"tc_to_pg_map" : "[TC_TO_PRIORITY_GROUP_MAP|AZURE]",
"pfc_to_queue_map": "[MAP_PFC_PRIORITY_TO_QUEUE|AZURE]",
"pfc_enable" : "3,4"
}
},
"WRED_PROFILE": {
"AZURE_LOSSLESS" : {
"wred_green_enable" : "true",
"wred_yellow_enable" : "true",
"wred_red_enable" : "true",
"ecn" : "ecn_all",
"green_max_threshold" : "2097152",
"green_min_threshold" : "1048576",
"yellow_max_threshold" : "2097152",
"yellow_min_threshold" : "1048576",
"red_max_threshold" : "2097152",
"red_min_threshold" : "1048576",
"green_drop_probability" : "5",
"yellow_drop_probability": "5",
"red_drop_probability" : "5"
}
},
"QUEUE": {
"Ethernet4|3": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet8|3": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet12|3": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet16|3": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet20|3": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet24|3": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet28|3": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet32|3": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet36|3": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet40|3": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet44|3": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet48|3": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet52|3": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet56|3": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet60|3": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet64|3": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet68|3": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet72|3": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet76|3": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet80|3": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet84|3": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet88|3": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet92|3": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet96|3": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet112|3": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet116|3": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet120|3": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet124|3": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet4|4": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet8|4": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet12|4": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet16|4": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet20|4": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet24|4": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet28|4": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet32|4": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet36|4": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet40|4": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet44|4": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet48|4": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet52|4": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet56|4": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet60|4": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet64|4": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet68|4": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet72|4": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet76|4": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet80|4": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet84|4": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet88|4": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet92|4": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet96|4": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet112|4": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet116|4": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet120|4": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet124|4": {
"scheduler" : "[SCHEDULER|scheduler.1]",
"wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]"
},
"Ethernet4|0": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet8|0": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet12|0": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet16|0": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet20|0": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet24|0": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet28|0": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet32|0": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet36|0": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet40|0": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet44|0": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet48|0": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet52|0": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet56|0": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet60|0": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet64|0": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet68|0": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet72|0": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet76|0": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet80|0": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet84|0": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet88|0": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet92|0": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet96|0": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet112|0": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet116|0": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet120|0": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet124|0": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet4|1": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet8|1": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet12|1": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet16|1": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet20|1": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet24|1": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet28|1": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet32|1": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet36|1": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet40|1": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet44|1": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet48|1": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet52|1": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet56|1": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet60|1": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet64|1": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet68|1": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet72|1": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet76|1": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet80|1": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet84|1": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet88|1": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet92|1": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet96|1": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet112|1": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet116|1": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet120|1": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet124|1": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet4|2": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet8|2": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet12|2": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet16|2": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet20|2": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet24|2": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet28|2": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet32|2": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet36|2": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet40|2": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet44|2": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet48|2": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet52|2": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet56|2": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet60|2": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet64|2": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet68|2": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet72|2": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet76|2": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet80|2": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet84|2": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet88|2": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet92|2": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet96|2": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet112|2": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet116|2": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet120|2": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet124|2": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet4|5": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet8|5": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet12|5": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet16|5": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet20|5": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet24|5": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet28|5": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet32|5": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet36|5": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet40|5": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet44|5": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet48|5": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet52|5": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet56|5": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet60|5": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet64|5": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet68|5": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet72|5": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet76|5": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet80|5": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet84|5": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet88|5": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet92|5": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet96|5": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet112|5": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet116|5": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet120|5": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet124|5": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet4|6": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet8|6": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet12|6": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet16|6": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet20|6": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet24|6": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet28|6": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet32|6": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet36|6": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet40|6": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet44|6": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet48|6": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet52|6": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet56|6": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet60|6": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet64|6": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet68|6": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet72|6": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet76|6": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet80|6": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet84|6": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet88|6": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet92|6": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet96|6": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet112|6": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet116|6": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet120|6": {
"scheduler": "[SCHEDULER|scheduler.0]"
},
"Ethernet124|6": {
"scheduler": "[SCHEDULER|scheduler.0]"
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,20 @@
!
! =========== Managed by sonic-cfggen DO NOT edit manually! ====================
! generated by templates/frr/staticd.conf.j2 using config DB data
! file: staticd.conf
!
!
! template: common/daemons.common.conf.j2
!
hostname switch-t0
password zebra
enable password zebra
!
log syslog informational
log facility local4
!
! end of template: common/daemons.common.conf.j2!
!
! set static default route to mgmt gateway as a backup to learned default
ip route 0.0.0.0/0 10.0.0.1 200
!!

View File

@ -0,0 +1,87 @@
!
! template: bgpd/bgpd.conf.j2
!
!
! =========== Managed by sonic-cfggen DO NOT edit manually! ====================
! generated by templates/quagga/bgpd.conf.j2 with config DB data
! file: bgpd.conf
!
!
! template: common/daemons.common.conf.j2
!
hostname SpineFront01
password zebra
enable password zebra
!
log syslog informational
log facility local4
!
! end of template: common/daemons.common.conf.j2!
agentx
!
!
! Vnet BGP instance
router bgp 4000 vrf VnetFE
no bgp default ipv4-unicast
bgp log-neighbor-changes
bgp bestpath as-path multipath-relax
no bgp default ipv4-unicast
bgp graceful-restart restart-time 240
bgp graceful-restart
bgp router-id 4.0.0.0
neighbor 192.168.0.1 remote-as 3000
neighbor 192.168.0.1 description Leaf01
neighbor 192.168.0.1 timers 3 10
address-family ipv4 unicast
neighbor 192.168.0.1 activate
neighbor 192.168.0.1 soft-reconfiguration inbound
maximum-paths 64
exit-address-family
address-family l2vpn evpn
advertise ipv4 unicast
exit-address-family
!!
!
! template: bgpd/bgpd.main.conf.j2
!
! bgp multiple-instance
!
! BGP configuration
!
! TSA configuration
!
ip prefix-list PL_LoopbackV4 permit 4.0.0.0/32
!
!
!
!
router bgp 4000
!
bgp log-neighbor-changes
no bgp default ipv4-unicast
!
bgp bestpath as-path multipath-relax
!
bgp graceful-restart restart-time 240
bgp graceful-restart
bgp graceful-restart preserve-fw-state
!
bgp router-id 4.0.0.0
!
network 4.0.0.0/32
!
!
!
!
!
address-family ipv4
maximum-paths 64
exit-address-family
address-family ipv6
maximum-paths 64
exit-address-family
!
! end of template: bgpd/bgpd.main.conf.j2
!!
! end of template: bgpd/bgpd.conf.j2
!

View File

@ -0,0 +1,32 @@
!
! =========== Managed by sonic-cfggen DO NOT edit manually! ====================
! generated by templates/zebra/zebra.conf.j2 using config DB data
! file: zebra.conf
!
!
! template: common/daemons.common.conf.j2
!
hostname SpineFront01
password zebra
enable password zebra
!
log syslog informational
log facility local4
!
! end of template: common/daemons.common.conf.j2!
!
vrf VnetFE
vni 9000
!
!
! Enable link-detect (default disabled)
interface Ethernet0
link-detect
!
interface Ethernet4
link-detect
!
interface Ethernet8
link-detect
!
!!

View File

@ -0,0 +1,32 @@
!
! =========== Managed by sonic-cfggen DO NOT edit manually! ====================
! generated by templates/zebra/zebra.conf.j2 using config DB data
! file: zebra.conf
!
!
! template: common/daemons.common.conf.j2
!
hostname SpineFront01
password zebra
enable password zebra
!
log syslog informational
log facility local4
!
! end of template: common/daemons.common.conf.j2!
!
vrf VnetFE
vni 8000
!
!
! Enable link-detect (default disabled)
interface Ethernet0
link-detect
!
interface Ethernet4
link-detect
!
interface Ethernet8
link-detect
!
!!

View File

@ -0,0 +1,31 @@
#!/usr/bin/env bash
function wait_until_iface_ready
{
IFACE_NAME=$1
IFACE_CIDR=$2
echo "Waiting until interface ${IFACE_NAME} is ready..."
# Wait for the interface to come up
# (i.e., interface is present in STATE_DB and state is "ok")
while true; do
RESULT=$(sonic-db-cli STATE_DB HGET "INTERFACE_TABLE|${IFACE_NAME}|${IFACE_CIDR}" "state" 2> /dev/null)
if [ x"$RESULT" == x"ok" ]; then
break
fi
sleep 1
done
echo "Interface ${IFACE_NAME} is ready!"
}
# Wait for all interfaces with IPv4 addresses to be up and ready
wait_until_iface_ready Vlan1000 192.168.0.1/27
wait_until_iface_ready PortChannel01 10.0.0.56/31
wait_until_iface_ready PortChannel02 10.0.0.58/31
wait_until_iface_ready PortChannel03 10.0.0.60/31
wait_until_iface_ready PortChannel04 10.0.0.62/31

View File

@ -0,0 +1,32 @@
!
! =========== Managed by sonic-cfggen DO NOT edit manually! ====================
! generated by templates/zebra/zebra.conf.j2 using config DB data
! file: zebra.conf
!
!
! template: common/daemons.common.conf.j2
!
hostname switch-t0
password zebra
enable password zebra
!
log syslog informational
log facility local4
!
! end of template: common/daemons.common.conf.j2!
!
!
! Enable link-detect (default disabled)
interface PortChannel01
link-detect
!
interface PortChannel02
link-detect
!
interface PortChannel03
link-detect
!
interface PortChannel04
link-detect
!
!!

View File

@ -0,0 +1,44 @@
!
! =========== Managed by sonic-cfggen DO NOT edit manually! ====================
! generated by templates/quagga/zebra.conf.j2 using config DB data
! file: zebra.conf
!
!
hostname switch-t0
password zebra
enable password zebra
!
! Enable link-detect (default disabled)
interface PortChannel01
link-detect
!
interface PortChannel02
link-detect
!
interface PortChannel03
link-detect
!
interface PortChannel04
link-detect
!
!
! set static default route to mgmt gateway as a backup to learned default
ip route 0.0.0.0/0 10.0.0.1 200
!
! Set ip source to loopback for bgp learned routes
route-map RM_SET_SRC permit 10
set src 10.1.0.32
!
route-map RM_SET_SRC6 permit 10
set src fc00:1::32
!
ip protocol bgp route-map RM_SET_SRC
!
ipv6 protocol bgp route-map RM_SET_SRC6
!
!
log syslog informational
log facility local4
!

View File

@ -13,7 +13,7 @@ class TestCfgGen(TestCase):
def setUp(self):
self.test_dir = os.path.dirname(os.path.realpath(__file__))
self.script_file = os.path.join(self.test_dir, '..', 'sonic-cfggen')
self.script_file = utils.PYTHON_INTERPRETTER + ' ' + os.path.join(self.test_dir, '..', 'sonic-cfggen')
self.sample_graph = os.path.join(self.test_dir, 'sample_graph.xml')
self.sample_graph_t0 = os.path.join(self.test_dir, 't0-sample-graph.xml')
self.sample_graph_simple = os.path.join(self.test_dir, 'simple-sample-graph.xml')
@ -40,6 +40,9 @@ class TestCfgGen(TestCase):
else:
output = subprocess.check_output(self.script_file + ' ' + argument, shell=True)
if utils.PY3x:
output = output.decode()
linecount = output.strip().count('\n')
if linecount <= 0:
print(' Output: ' + output.strip())

View File

@ -1,11 +1,17 @@
from unittest import TestCase
import subprocess
import tests.common_utils as utils
from unittest import TestCase
class TestPfxFilter(TestCase):
def test_comprehensive(self):
# Generate output
data_dir = "tests/data/pfx_filter"
cmd = "./sonic-cfggen -j %s/param_1.json -t %s/tmpl_1.txt.j2 > /tmp/result_1.txt" % (data_dir, data_dir)
cmd = "{} ./sonic-cfggen -j {}/param_1.json -t {}/tmpl_1.txt.j2 > /tmp/result_1.txt".format(
utils.PYTHON_INTERPRETTER, data_dir, data_dir
)
subprocess.check_output(cmd, shell=True)
# Compare outputs
cmd = "diff -u tests/data/pfx_filter/result_1.txt /tmp/result_1.txt"

View File

@ -15,7 +15,7 @@ class TestCfgGenPlatformJson(TestCase):
def setUp(self):
self.test_dir = os.path.dirname(os.path.realpath(__file__))
self.script_file = os.path.join(self.test_dir, '..', 'sonic-cfggen')
self.script_file = utils.PYTHON_INTERPRETTER + ' ' + os.path.join(self.test_dir, '..', 'sonic-cfggen')
self.sample_graph_simple = os.path.join(self.test_dir, 'simple-sample-graph.xml')
self.platform_json = os.path.join(self.test_dir, 'sample_platform.json')
self.hwsku_json = os.path.join(self.test_dir, 'sample_hwsku.json')
@ -27,6 +27,9 @@ class TestCfgGenPlatformJson(TestCase):
else:
output = subprocess.check_output(self.script_file + ' ' + argument, shell=True)
if utils.PY3x:
output = output.decode()
linecount = output.strip().count('\n')
if linecount <= 0:
print(' Output: ' + output.strip())

View File

@ -10,7 +10,7 @@ class TestCfgGenT2ChassisFe(TestCase):
def setUp(self):
self.test_dir = os.path.dirname(os.path.realpath(__file__))
self.script_file = os.path.join(self.test_dir, '..', 'sonic-cfggen')
self.script_file = utils.PYTHON_INTERPRETTER + ' ' + os.path.join(self.test_dir, '..', 'sonic-cfggen')
self.sample_graph_t2_chassis_fe = os.path.join(self.test_dir, 't2-chassis-fe-graph.xml')
self.sample_graph_t2_chassis_fe_vni = os.path.join(self.test_dir, 't2-chassis-fe-graph-vni.xml')
self.sample_graph_t2_chassis_fe_pc = os.path.join(self.test_dir, 't2-chassis-fe-graph-pc.xml')
@ -23,6 +23,9 @@ class TestCfgGenT2ChassisFe(TestCase):
else:
output = subprocess.check_output(self.script_file + ' ' + argument, shell=True)
if utils.PY3x:
output = output.decode()
linecount = output.strip().count('\n')
if linecount <= 0:
print(' Output: ' + output.strip())

View File

@ -1,7 +1,6 @@
import filecmp
import os
import subprocess
import sys
import tests.common_utils as utils
@ -10,7 +9,7 @@ from unittest import TestCase
class TestCfgGen(TestCase):
def setUp(self):
self.test_dir = os.path.dirname(os.path.realpath(__file__))
self.script_file = os.path.join(self.test_dir, '..', 'sonic-cfggen')
self.script_file = utils.PYTHON_INTERPRETTER + ' ' + os.path.join(self.test_dir, '..', 'sonic-cfggen')
self.t0_minigraph = os.path.join(self.test_dir, 't0-sample-graph.xml')
self.t0_port_config = os.path.join(self.test_dir, 't0-sample-port-config.ini')
self.output_file = os.path.join(self.test_dir, 'output')
@ -29,6 +28,9 @@ class TestCfgGen(TestCase):
else:
output = subprocess.check_output(self.script_file + ' ' + argument, shell=True)
if utils.PY3x:
output = output.decode()
linecount = output.strip().count('\n')
if linecount <= 0:
print(' Output: ' + output.strip())

View File

@ -11,7 +11,7 @@ import tests.common_utils as utils
class TestJ2Files(TestCase):
def setUp(self):
self.test_dir = os.path.dirname(os.path.realpath(__file__))
self.script_file = os.path.join(self.test_dir, '..', 'sonic-cfggen')
self.script_file = utils.PYTHON_INTERPRETTER + ' ' + os.path.join(self.test_dir, '..', 'sonic-cfggen')
self.simple_minigraph = os.path.join(self.test_dir, 'simple-sample-graph.xml')
self.t0_minigraph = os.path.join(self.test_dir, 't0-sample-graph.xml')
self.t0_mvrf_minigraph = os.path.join(self.test_dir, 't0-sample-graph-mvrf.xml')
@ -27,7 +27,12 @@ class TestJ2Files(TestCase):
def run_script(self, argument):
print('CMD: sonic-cfggen ' + argument)
return subprocess.check_output(self.script_file + ' ' + argument, shell=True)
output = subprocess.check_output(self.script_file + ' ' + argument, shell=True)
if utils.PY3x:
output = output.decode()
return output
def run_diff(self, file1, file2):
return subprocess.check_output('diff -u {} {} || true'.format(file1, file2), shell=True)

View File

@ -11,7 +11,7 @@ import tests.common_utils as utils
class TestJ2FilesT2ChassisFe(TestCase):
def setUp(self):
self.test_dir = os.path.dirname(os.path.realpath(__file__))
self.script_file = os.path.join(self.test_dir, '..', 'sonic-cfggen')
self.script_file = utils.PYTHON_INTERPRETTER + ' ' + os.path.join(self.test_dir, '..', 'sonic-cfggen')
self.t2_chassis_fe_minigraph = os.path.join(self.test_dir, 't2-chassis-fe-graph.xml')
self.t2_chassis_fe_vni_minigraph = os.path.join(self.test_dir, 't2-chassis-fe-graph-vni.xml')
self.t2_chassis_fe_pc_minigraph = os.path.join(self.test_dir, 't2-chassis-fe-graph-pc.xml')
@ -26,7 +26,12 @@ class TestJ2FilesT2ChassisFe(TestCase):
def run_script(self, argument):
print('CMD: sonic-cfggen ' + argument)
return subprocess.check_output(self.script_file + ' ' + argument, shell=True)
output = subprocess.check_output(self.script_file + ' ' + argument, shell=True)
if utils.PY3x:
output = output.decode()
return output
def run_diff(self, file1, file2):
return subprocess.check_output('diff -u {} {} || true'.format(file1, file2), shell=True)

View File

@ -10,7 +10,7 @@ class TestCfgGenCaseInsensitive(TestCase):
def setUp(self):
self.test_dir = os.path.dirname(os.path.realpath(__file__))
self.script_file = os.path.join(self.test_dir, '..', 'sonic-cfggen')
self.script_file = utils.PYTHON_INTERPRETTER + ' ' + os.path.join(self.test_dir, '..', 'sonic-cfggen')
self.sample_graph = os.path.join(self.test_dir, 'simple-sample-graph-case.xml')
self.port_config = os.path.join(self.test_dir, 't0-sample-port-config.ini')
@ -21,6 +21,9 @@ class TestCfgGenCaseInsensitive(TestCase):
else:
output = subprocess.check_output(self.script_file + ' ' + argument, shell=True)
if utils.PY3x:
output = output.decode()
linecount = output.strip().count('\n')
if linecount <= 0:
print(' Output: ' + output.strip())

View File

@ -21,7 +21,7 @@ class TestMultiNpuCfgGen(TestCase):
def setUp(self):
self.test_dir = os.path.dirname(os.path.realpath(__file__))
self.test_data_dir = os.path.join(self.test_dir, 'multi_npu_data')
self.script_file = os.path.join(self.test_dir, '..', 'sonic-cfggen')
self.script_file = utils.PYTHON_INTERPRETTER + ' ' + os.path.join(self.test_dir, '..', 'sonic-cfggen')
self.sample_graph = os.path.join(self.test_data_dir, 'sample-minigraph.xml')
self.port_config = []
for asic in range(NUM_ASIC):
@ -34,6 +34,9 @@ class TestMultiNpuCfgGen(TestCase):
else:
output = subprocess.check_output(self.script_file + ' ' + argument, shell=True)
if utils.PY3x:
output = output.decode()
linecount = output.strip().count('\n')
if linecount <= 0:
print(' Output: ' + output.strip())