[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:
parent
99ffce6b57
commit
110f7b7817
@ -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
|
||||
|
@ -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))"
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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) \
|
||||
|
6
slave.mk
6
slave.mk
@ -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))"
|
||||
|
@ -1,4 +1,3 @@
|
||||
#!/usr/bin/env python
|
||||
import os
|
||||
import sys
|
||||
from natsort import natsorted
|
||||
|
@ -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:
|
||||
|
@ -1,4 +1,3 @@
|
||||
#!/usr/bin/env python
|
||||
try:
|
||||
import os
|
||||
import sys
|
||||
|
@ -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'
|
||||
)
|
||||
|
||||
|
@ -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):
|
||||
|
@ -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" """
|
||||
|
23
src/sonic-config-engine/tests/multi_npu_data/py3/ipinip.json
Normal file
23
src/sonic-config-engine/tests/multi_npu_data/py3/ipinip.json
Normal 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"
|
||||
}
|
||||
]
|
@ -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
|
||||
!
|
100
src/sonic-config-engine/tests/sample_output/py3/bgpd_quagga.conf
Normal file
100
src/sonic-config-engine/tests/sample_output/py3/bgpd_quagga.conf
Normal 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
|
||||
!
|
@ -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]"
|
||||
}
|
||||
}
|
||||
}
|
@ -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
|
||||
|
||||
|
||||
|
87
src/sonic-config-engine/tests/sample_output/py3/frr.conf
Normal file
87
src/sonic-config-engine/tests/sample_output/py3/frr.conf
Normal 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
|
||||
!!
|
46
src/sonic-config-engine/tests/sample_output/py3/interfaces
Normal file
46
src/sonic-config-engine/tests/sample_output/py3/interfaces
Normal 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/*
|
||||
#
|
||||
|
23
src/sonic-config-engine/tests/sample_output/py3/ipinip.json
Normal file
23
src/sonic-config-engine/tests/sample_output/py3/ipinip.json
Normal 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"
|
||||
}
|
||||
]
|
268
src/sonic-config-engine/tests/sample_output/py3/l2switch.json
Normal file
268
src/sonic-config-engine/tests/sample_output/py3/l2switch.json
Normal 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"
|
||||
}
|
||||
}
|
||||
}
|
@ -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
|
@ -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/*
|
||||
#
|
||||
|
30
src/sonic-config-engine/tests/sample_output/py3/ports.json
Normal file
30
src/sonic-config-engine/tests/sample_output/py3/ports.json
Normal 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"
|
||||
}
|
||||
]
|
@ -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]"
|
||||
}
|
||||
}
|
||||
}
|
1457
src/sonic-config-engine/tests/sample_output/py3/qos-dell6100.json
Normal file
1457
src/sonic-config-engine/tests/sample_output/py3/qos-dell6100.json
Normal file
File diff suppressed because it is too large
Load Diff
@ -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
|
||||
!!
|
@ -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
|
||||
!
|
@ -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
|
||||
!
|
||||
!!
|
@ -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
|
||||
!
|
||||
!!
|
@ -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
|
||||
|
@ -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
|
||||
!
|
||||
!!
|
@ -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
|
||||
!
|
||||
|
@ -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())
|
||||
|
@ -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"
|
||||
|
@ -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())
|
||||
|
@ -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())
|
||||
|
@ -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())
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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())
|
||||
|
@ -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())
|
||||
|
Loading…
Reference in New Issue
Block a user