diff --git a/.gitignore b/.gitignore index 98ef4909954..b75083ce4d5 100644 --- a/.gitignore +++ b/.gitignore @@ -23,6 +23,9 @@ src/libnl3/* !src/libnl3/Makefile src/libteam/* !src/libteam/Makefile +src/lldpd/* +!src/lldpd/Makefile +!src/lldpd/patch/ src/mpdecimal/* !src/mpdecimal/Makefile src/python3/* diff --git a/.gitmodules b/.gitmodules index e18af8dc912..ea791fe0206 100755 --- a/.gitmodules +++ b/.gitmodules @@ -3,7 +3,8 @@ url = https://github.com/Azure/sonic-swss-common [submodule "sonic-linux-kernel"] path = src/sonic-linux-kernel - url = https://github.com/Azure/sonic-linux-kernel + url = https://github.com/lguohan/sonic-linux-kernel + branch = stretch [submodule "sonic-sairedis"] path = src/sonic-sairedis url = https://github.com/Azure/sonic-sairedis @@ -26,9 +27,6 @@ [submodule "src/sonic-py-swsssdk"] path = src/sonic-py-swsssdk url = https://github.com/Azure/sonic-py-swsssdk.git -[submodule "src/lldpd"] - path = src/lldpd - url = https://github.com/vincentbernat/lldpd.git [submodule "src/sonic-snmpagent"] path = src/sonic-snmpagent url = https://github.com/Azure/sonic-snmpagent @@ -40,13 +38,15 @@ url = https://github.com/Azure/sonic-utilities [submodule "platform/broadcom/sonic-platform-modules-s6000"] path = platform/broadcom/sonic-platform-modules-s6000 - url = https://github.com/Azure/sonic-platform-modules-s6000 + url = https://github.com/lguohan/sonic-platform-modules-s6000 + branch = stretch [submodule "platform/broadcom/sonic-platform-modules-arista"] path = platform/broadcom/sonic-platform-modules-arista url = https://github.com/aristanetworks/sonic [submodule "platform/broadcom/sonic-platform-modules-dell"] path = platform/broadcom/sonic-platform-modules-dell - url = https://github.com/Azure/sonic-platform-modules-dell + url = https://github.com/lguohan/sonic-platform-modules-dell + branch = stretch [submodule "platform/broadcom/sonic-platform-modules-ingrasys"] path = platform/broadcom/sonic-platform-modules-ingrasys url = https://github.com/Ingrasys-sonic/sonic-platform-modules-ingrasys @@ -59,9 +59,6 @@ [submodule "platform/broadcom/sonic-platform-modules-accton"] path = platform/broadcom/sonic-platform-modules-accton url = https://github.com/edge-core/sonic-platform-modules-accton.git -[submodule "platform/broadcom/sonic-platform-modules-cel"] - path = platform/broadcom/sonic-platform-modules-cel - url = https://github.com/celestica-Inc/sonic-platform-modules-cel.git [submodule "src/sonic-frr/frr"] path = src/sonic-frr/frr url = https://github.com/FRRouting/frr.git @@ -77,4 +74,9 @@ [submodule "platform/broadcom/sonic-platform-modules-quanta"] path = platform/broadcom/sonic-platform-modules-quanta url = https://github.com/QuantaSwitchONIE/sonic-platform-modules-quanta.git - +[submodule "platform/broadcom/sonic-platform-modules-mitac"] + path = platform/broadcom/sonic-platform-modules-mitac + url = https://github.com/MiTAC-EBU/sonic-platform-modules-mitac.git +[submodule "platform/mellanox/hw-management"] + path = platform/mellanox/hw-management + url = https://github.com/Mellanox/hw-mgmt/ diff --git a/Makefile b/Makefile index aa3492561cb..6b611cefc62 100644 --- a/Makefile +++ b/Makefile @@ -8,6 +8,8 @@ # * ENABLE_DHCP_GRAPH_SERVICE: Enables get-graph service to fetch minigraph files # through http. # * SHUTDOWN_BGP_ON_START: Sets admin-down state for all bgp peerings after restart. +# * ENABLE_PFCWD_ON_START: Enable PFC Watchdog (PFCWD) on server-facing ports +# * by default for TOR switch. # * SONIC_ENABLE_SYNCD_RPC: Enables rpc-based syncd builds. # * USERNAME: Desired username -- default at rules/config # * PASSWORD: Desired password -- default at rules/config @@ -27,11 +29,21 @@ $(shell rm -f .screen) MAKEFLAGS += -B +ifeq ($(BLDENV), stretch) +SLAVE_BASE_TAG = $(shell sha1sum sonic-slave-stretch/Dockerfile | awk '{print substr($$1,0,11);}') +SLAVE_TAG = $(shell cat sonic-slave-stretch/Dockerfile.user sonic-slave-stretch/Dockerfile | sha1sum | awk '{print substr($$1,0,11);}') +SLAVE_BASE_IMAGE = sonic-slave-stretch-base +SLAVE_IMAGE = sonic-slave-stretch-$(USER) +SLAVE_DIR = sonic-slave-stretch +else SLAVE_BASE_TAG = $(shell sha1sum sonic-slave/Dockerfile | awk '{print substr($$1,0,11);}') SLAVE_TAG = $(shell cat sonic-slave/Dockerfile.user sonic-slave/Dockerfile | sha1sum | awk '{print substr($$1,0,11);}') SLAVE_BASE_IMAGE = sonic-slave-base SLAVE_IMAGE = sonic-slave-$(USER) +SLAVE_DIR = sonic-slave +endif +INSMOD_OVERLAY := sudo modprobe overlay DOCKER_RUN := docker run --rm=true --privileged \ -v $(PWD):/sonic \ -w /sonic \ @@ -43,7 +55,7 @@ DOCKER_BASE_BUILD = docker build --no-cache \ -t $(SLAVE_BASE_IMAGE) \ --build-arg http_proxy=$(http_proxy) \ --build-arg https_proxy=$(https_proxy) \ - sonic-slave && \ + $(SLAVE_DIR) && \ docker tag $(SLAVE_BASE_IMAGE):latest $(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG) DOCKER_BUILD = docker build --no-cache \ @@ -52,8 +64,8 @@ DOCKER_BUILD = docker build --no-cache \ --build-arg guid=$(shell id -g) \ --build-arg hostname=$(shell echo $$HOSTNAME) \ -t $(SLAVE_IMAGE) \ - -f sonic-slave/Dockerfile.user \ - sonic-slave && \ + -f $(SLAVE_DIR)/Dockerfile.user \ + $(SLAVE_DIR) && \ docker tag $(SLAVE_IMAGE):latest $(SLAVE_IMAGE):$(SLAVE_TAG) SONIC_BUILD_INSTRUCTION := make \ @@ -62,6 +74,7 @@ SONIC_BUILD_INSTRUCTION := make \ BUILD_NUMBER=$(BUILD_NUMBER) \ ENABLE_DHCP_GRAPH_SERVICE=$(ENABLE_DHCP_GRAPH_SERVICE) \ SHUTDOWN_BGP_ON_START=$(SHUTDOWN_BGP_ON_START) \ + SONIC_ENABLE_PFCWD_ON_START=$(ENABLE_PFCWD_ON_START) \ ENABLE_SYNCD_RPC=$(ENABLE_SYNCD_RPC) \ PASSWORD=$(PASSWORD) \ USERNAME=$(USERNAME) \ @@ -80,6 +93,7 @@ SONIC_BUILD_INSTRUCTION := make \ @docker inspect --type image $(SLAVE_IMAGE):$(SLAVE_TAG) &> /dev/null || \ { echo Image $(SLAVE_IMAGE):$(SLAVE_TAG) not found. Building... ; \ $(DOCKER_BUILD) ; } + @$(INSMOD_OVERLAY) ifeq "$(KEEP_SLAVE_ON)" "yes" ifdef SOURCE_FOLDER @$(DOCKER_RUN) -v $(SOURCE_FOLDER):/var/src $(SLAVE_IMAGE):$(SLAVE_TAG) bash -c "$(SONIC_BUILD_INSTRUCTION) $@; /bin/bash" @@ -101,6 +115,7 @@ sonic-slave-bash : @docker inspect --type image $(SLAVE_IMAGE):$(SLAVE_TAG) &> /dev/null || \ { echo Image $(SLAVE_IMAGE):$(SLAVE_TAG) not found. Building... ; \ $(DOCKER_BUILD) ; } + @$(INSMOD_OVERLAY) @$(DOCKER_RUN) -t $(SLAVE_IMAGE):$(SLAVE_TAG) bash init : diff --git a/README.buildsystem.md b/README.buildsystem.md index d68e190e1f1..6735e1ce896 100644 --- a/README.buildsystem.md +++ b/README.buildsystem.md @@ -60,13 +60,13 @@ and directories with more complcated components, that provide their own Makefile Every **platform/[VENDOR]/** directory is a derived part of buildimage frontend, that defines rules and targets for a concrete vendor. ### Build output -**target/** is basically a build output. You can find all biuld artifacts there. +**target/** is basically a build output. You can find all build artifacts there. ## Recipes and target groups Now let's go over a definition of recipes and target groups. **Recipe** is a small makefile that defines a target and set of variables for building it. If you want to add a new target to buildimage (.deb package or docker image), you have to create a recipe for this target. -**Target group** is a set of targets that are built according to the same rulels. +**Target group** is a set of targets that are built according to the same rules. Every recipe sets a target group to which this target belongs. ### Recipe example @@ -119,7 +119,7 @@ SONIC_PYTHON_STDEB_DEBS += $(SOME_NEW_DEB) # add package to this target group **SONIC_MAKE_DEBS** This is a bit more flexible case. -If you have to do some specific type of build or apply pathes prior to build, just define your owm Makefile and add it to buildomage. +If you have to do some specific type of build or apply pathes prior to build, just define your own Makefile and add it to buildimage. Define: ```make SOME_NEW_DEB = some_new_deb.deb # name of your package @@ -194,7 +194,7 @@ Although every target is built inside a sonic-slave container, which exits at th ``` $ make sonic-slave-bash ``` -It is very useful for debugging when you add a new target and facing some trubles. +It is very useful for debugging when you add a new target and facing some troubles. sonic-slave environment is built only once, but if sonic-slave/Dockerfile was updated, you can rebuild it with this command: ``` diff --git a/README.md b/README.md index e368b60291b..71f57f8c88e 100644 --- a/README.md +++ b/README.md @@ -4,12 +4,20 @@ Nephos: [![Nephos](https://sonic-jenkins.westus2.cloudapp.azure.com/job/nephos/j P4: [![P4](https://sonic-jenkins.westus2.cloudapp.azure.com/job/p4/job/buildimage-p4-all/badge/icon)](https://sonic-jenkins.westus2.cloudapp.azure.com/job/p4/job/buildimage-p4-all) VS: [![VS](https://sonic-jenkins.westus2.cloudapp.azure.com/job/vs/job/buildimage-vs-all/badge/icon)](https://sonic-jenkins.westus2.cloudapp.azure.com/job/vs/job/buildimage-vs-all) +*201712*: +Broadcom: [![Broadcom](https://sonic-jenkins.westus2.cloudapp.azure.com/job/broadcom/job/buildimage-brcm-201712/badge/icon)](https://sonic-jenkins.westus2.cloudapp.azure.com/job/broadcom/job/buildimage-brcm-201712/) +Barefoot: [![Mellanox](https://sonic-jenkins.westus2.cloudapp.azure.com/job/barefoot/job/buildimage-bf-201712/badge/icon)](https://sonic-jenkins.westus2.cloudapp.azure.com/job/barefoot/job/buildimage-bf-201712/) +Centec: [![Centec](https://sonic-jenkins.westus2.cloudapp.azure.com/job/centec/job/buildimage-centec-201712/badge/icon)](https://sonic-jenkins.westus2.cloudapp.azure.com/job/centec/job/buildimage-centec-201712/) +Nephos: [![Nephos](https://sonic-jenkins.westus2.cloudapp.azure.com/job/nephos/job/buildimage-nephos-201712/badge/icon)](https://sonic-jenkins.westus2.cloudapp.azure.com/job/nephos/job/buildimage-nephos-201712/) +Marvell: [![Marvell](https://sonic-jenkins.westus2.cloudapp.azure.com/job/marvell/job/buildimage-mrvl-201712/badge/icon)](https://sonic-jenkins.westus2.cloudapp.azure.com/job/marvell/job/buildimage-mrvl-201712/) +Mellanox: [![Mellanox](https://sonic-jenkins.westus2.cloudapp.azure.com/job/mellanox/job/buildimage-mlnx-201712/badge/icon)](https://sonic-jenkins.westus2.cloudapp.azure.com/job/mellanox/job/buildimage-mlnx-201712/) + *201709*: Broadcom: [![Broadcom](https://sonic-jenkins.westus2.cloudapp.azure.com/job/broadcom/job/buildimage-brcm-201709/badge/icon)](https://sonic-jenkins.westus2.cloudapp.azure.com/job/broadcom/job/buildimage-brcm-201709/) -Cavium: [![Cavium](https://sonic-jenkins.westus2.cloudapp.azure.com/job/cavium/job/buildimage-cavm-all/badge/icon)](https://sonic-jenkins.westus2.cloudapp.azure.com/job/cavium/job/buildimage-cavm-all/) -Centec: [![Centec](https://sonic-jenkins.westus2.cloudapp.azure.com/job/centec/job/buildimage-centec-all/badge/icon)](https://sonic-jenkins.westus2.cloudapp.azure.com/job/centec/job/buildimage-centec-all/) +Cavium: [![Cavium](https://sonic-jenkins.westus2.cloudapp.azure.com/job/cavium/job/buildimage-cavm-201709/badge/icon)](https://sonic-jenkins.westus2.cloudapp.azure.com/job/cavium/job/buildimage-cavm-201709/) +Centec: [![Centec](https://sonic-jenkins.westus2.cloudapp.azure.com/job/centec/job/buildimage-centec-201709/badge/icon)](https://sonic-jenkins.westus2.cloudapp.azure.com/job/centec/job/buildimage-centec-201709/) Nephos: [![Nephos](https://sonic-jenkins.westus2.cloudapp.azure.com/job/nephos/job/buildimage-nephos-201709/badge/icon)](https://sonic-jenkins.westus2.cloudapp.azure.com/job/nephos/job/buildimage-nephos-201709/) -Marvell: [![Marvell](https://sonic-jenkins.westus2.cloudapp.azure.com/job/marvell/job/buildimage-mrvl-all/badge/icon)](https://sonic-jenkins.westus2.cloudapp.azure.com/job/marvell/job/buildimage-mrvl-all/) +Marvell: [![Marvell](https://sonic-jenkins.westus2.cloudapp.azure.com/job/marvell/job/buildimage-mrvl-201709/badge/icon)](https://sonic-jenkins.westus2.cloudapp.azure.com/job/marvell/job/buildimage-mrvl-201709/) Mellanox: [![Mellanox](https://sonic-jenkins.westus2.cloudapp.azure.com/job/mellanox/job/buildimage-mlnx-201709/badge/icon)](https://sonic-jenkins.westus2.cloudapp.azure.com/job/mellanox/job/buildimage-mlnx-201709/) # sonic-buildimage @@ -52,8 +60,9 @@ To build SONiC installer image and docker images, run the following commands: **NOTE**: -- We recommend reserving 50G free space to build one platform. -- Use ```http_proxy=[your_proxy] https_proxy=[your_proxy] make``` to enable http(s) proxy in the build process. +- Recommend reserving 50G free space to build one platform. +- Use `http_proxy=[your_proxy] https_proxy=[your_proxy] make` to enable http(s) proxy in the build process. +- Add your user account to `docker` group and use your user account to make. `root` or `sudo` are not supported. The SONiC installer contains all docker images needed. SONiC uses one image for all devices of a same ASIC vendor. The supported ASIC vendors are: @@ -69,10 +78,9 @@ The SONiC installer contains all docker images needed. SONiC uses one image for For Broadcom ASIC, we build ONIE and EOS image. EOS image is used for Arista devices, ONIE image is used for all other Broadcom ASIC based devices. make configure PLATFORM=broadcom + BLDENV=stretch make stretch # build ONIE image make target/sonic-broadcom.bin - # build EOS image - make target/sonic-aboot-broadcom.swi You may find the rules/config file useful. It contains configuration options for the build process, like adding more verbosity or showing dependencies, username and password for base image etc. diff --git a/build_debian.sh b/build_debian.sh index 033ac6ff270..8a6f95a9b60 100755 --- a/build_debian.sh +++ b/build_debian.sh @@ -33,7 +33,8 @@ PASSWORD_ENCRYPTED=$2 set -x -e ## docker engine version (with platform) -DOCKER_VERSION=1.11.1-0~jessie_amd64 +DOCKER_VERSION=1.11.1-0~stretch_amd64 +LINUX_KERNEL_VERSION=4.9.0-5 ## Working directory to prepare the file system FILESYSTEM_ROOT=./fsroot @@ -68,7 +69,7 @@ touch $FILESYSTEM_ROOT/$PLATFORM_DIR/firsttime ## Build a basic Debian system by debootstrap echo '[INFO] Debootstrap...' -sudo http_proxy=$http_proxy debootstrap --variant=minbase --arch amd64 jessie $FILESYSTEM_ROOT http://debian-archive.trafficmanager.net/debian +sudo http_proxy=$http_proxy debootstrap --variant=minbase --arch amd64 stretch $FILESYSTEM_ROOT http://debian-archive.trafficmanager.net/debian ## Config hostname and hosts, otherwise 'sudo ...' will complain 'sudo: unable to resolve host ...' sudo LANG=C chroot $FILESYSTEM_ROOT /bin/bash -c "echo '$HOSTNAME' > /etc/hostname" @@ -98,7 +99,7 @@ sudo LANG=C chroot $FILESYSTEM_ROOT bash -c 'apt-mark auto `apt-mark showmanual` sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y update sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y upgrade echo '[INFO] Install packages for building image' -sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install makedev psmisc +sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install makedev psmisc systemd-sysv ## Create device files echo '[INFO] MAKEDEV' @@ -112,12 +113,15 @@ sudo LANG=C chroot $FILESYSTEM_ROOT /bin/bash -c 'cd /dev && MAKEDEV generic' sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install busybox echo '[INFO] Install SONiC linux kernel image' ## Note: duplicate apt-get command to ensure every line return zero +sudo dpkg --root=$FILESYSTEM_ROOT -i target/debs/initramfs-tools-core_*.deb || \ + sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install -f sudo dpkg --root=$FILESYSTEM_ROOT -i target/debs/initramfs-tools_*.deb || \ sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install -f -sudo dpkg --root=$FILESYSTEM_ROOT -i target/debs/linux-image-3.16.0-5-amd64_*.deb || \ +sudo dpkg --root=$FILESYSTEM_ROOT -i target/debs/linux-image-${LINUX_KERNEL_VERSION}-amd64_*.deb || \ sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install -f +sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install acl -## Update initramfs for booting with squashfs+aufs +## Update initramfs for booting with squashfs+overlay cat files/initramfs-tools/modules | sudo tee -a $FILESYSTEM_ROOT/etc/initramfs-tools/modules > /dev/null ## Hook into initramfs: change fs type from vfat to ext4 on arista switches @@ -144,15 +148,15 @@ sudo cp files/initramfs-tools/union-mount $FILESYSTEM_ROOT/etc/initramfs-tools/s sudo chmod +x $FILESYSTEM_ROOT/etc/initramfs-tools/scripts/init-bottom/union-mount sudo cp files/initramfs-tools/varlog $FILESYSTEM_ROOT/etc/initramfs-tools/scripts/init-bottom/varlog sudo chmod +x $FILESYSTEM_ROOT/etc/initramfs-tools/scripts/init-bottom/varlog +# Management interface (eth0) dhcp can be optionally turned off (during a migration from another NOS to SONiC) +sudo cp files/initramfs-tools/mgmt-intf-dhcp $FILESYSTEM_ROOT/etc/initramfs-tools/scripts/init-bottom/mgmt-intf-dhcp +sudo chmod +x $FILESYSTEM_ROOT/etc/initramfs-tools/scripts/init-bottom/mgmt-intf-dhcp sudo cp files/initramfs-tools/union-fsck $FILESYSTEM_ROOT/etc/initramfs-tools/hooks/union-fsck sudo chmod +x $FILESYSTEM_ROOT/etc/initramfs-tools/hooks/union-fsck -sudo chroot $FILESYSTEM_ROOT update-initramfs -u - -## Install latest intel igb driver -sudo cp target/debs/igb.ko $FILESYSTEM_ROOT/lib/modules/3.16.0-5-amd64/kernel/drivers/net/ethernet/intel/igb/igb.ko +pushd $FILESYSTEM_ROOT/usr/share/initramfs-tools/scripts/init-bottom && sudo patch -p1 < $OLDPWD/files/initramfs-tools/udev.patch; popd ## Install latest intel ixgbe driver -sudo cp target/debs/ixgbe.ko $FILESYSTEM_ROOT/lib/modules/3.16.0-5-amd64/kernel/drivers/net/ethernet/intel/ixgbe/ixgbe.ko +sudo cp target/debs/ixgbe.ko $FILESYSTEM_ROOT/lib/modules/${LINUX_KERNEL_VERSION}-amd64/kernel/drivers/net/ethernet/intel/ixgbe/ixgbe.ko ## Install docker echo '[INFO] Install docker' @@ -221,7 +225,8 @@ sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y in unzip \ gdisk \ sysfsutils \ - grub2-common + grub2-common \ + ethtool sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y download \ grub-pc-bin @@ -243,6 +248,9 @@ sudo augtool --autosave "set /files/etc/ssh/sshd_config/UseDNS no" -r $FILESYSTE sudo sed -i 's/^ListenAddress ::/#ListenAddress ::/' $FILESYSTEM_ROOT/etc/ssh/sshd_config sudo sed -i 's/^#ListenAddress 0.0.0.0/ListenAddress 0.0.0.0/' $FILESYSTEM_ROOT/etc/ssh/sshd_config +## Copy fstrim service +sudo cp $FILESYSTEM_ROOT/usr/share/doc/util-linux/examples/fstrim.{service,timer} $FILESYSTEM_ROOT/etc/systemd/system + ## Config monit sudo sed -i ' s/^# set logfile syslog/set logfile syslog/; @@ -256,7 +264,7 @@ sudo sed -i ' ' $FILESYSTEM_ROOT/etc/monit/monitrc sudo tee -a $FILESYSTEM_ROOT/etc/monit/monitrc > /dev/null <<'EOF' -check filesystem root-aufs with path / +check filesystem root-overlay with path / if space usage > 90% for 5 times within 10 cycles then alert check system $HOST if memory usage > 90% for 5 times within 10 cycles then alert @@ -300,6 +308,7 @@ set /files/etc/sysctl.conf/net.ipv6.conf.all.accept_dad 0 set /files/etc/sysctl.conf/net.ipv6.conf.eth0.accept_ra_defrtr 0 set /files/etc/sysctl.conf/net.core.rmem_max 2097152 +set /files/etc/sysctl.conf/net.core.wmem_max 2097152 " -r $FILESYSTEM_ROOT ## docker-py is needed by Ansible docker module @@ -327,11 +336,11 @@ sudo cp files/dhcp/dhclient.conf $FILESYSTEM_ROOT/etc/dhcp/ ## Version file sudo mkdir -p $FILESYSTEM_ROOT/etc/sonic sudo tee $FILESYSTEM_ROOT/etc/sonic/sonic_version.yml > /dev/null < + + + + + ARISTA01T0 + 10.0.0.33 + switch1 + 10.0.0.32 + 1 + 180 + 60 + + + switch1 + 10.0.0.0 + ARISTA01T2 + 10.0.0.1 + 1 + 180 + 60 + + + ARISTA02T0 + 10.0.0.35 + switch1 + 10.0.0.34 + 1 + 180 + 60 + + + switch1 + 10.0.0.2 + ARISTA02T2 + 10.0.0.3 + 1 + 180 + 60 + + + ARISTA03T0 + 10.0.0.37 + switch1 + 10.0.0.36 + 1 + 180 + 60 + + + switch1 + 10.0.0.4 + ARISTA03T2 + 10.0.0.5 + 1 + 180 + 60 + + + ARISTA04T0 + 10.0.0.39 + switch1 + 10.0.0.38 + 1 + 180 + 60 + + + switch1 + 10.0.0.6 + ARISTA04T2 + 10.0.0.7 + 1 + 180 + 60 + + + ARISTA05T0 + 10.0.0.41 + switch1 + 10.0.0.40 + 1 + 180 + 60 + + + switch1 + 10.0.0.8 + ARISTA05T2 + 10.0.0.9 + 1 + 180 + 60 + + + ARISTA06T0 + 10.0.0.43 + switch1 + 10.0.0.42 + 1 + 180 + 60 + + + switch1 + 10.0.0.10 + ARISTA06T2 + 10.0.0.11 + 1 + 180 + 60 + + + ARISTA07T0 + 10.0.0.45 + switch1 + 10.0.0.44 + 1 + 180 + 60 + + + switch1 + 10.0.0.12 + ARISTA07T2 + 10.0.0.13 + 1 + 180 + 60 + + + ARISTA08T0 + 10.0.0.47 + switch1 + 10.0.0.46 + 1 + 180 + 60 + + + switch1 + 10.0.0.14 + ARISTA08T2 + 10.0.0.15 + 1 + 180 + 60 + + + ARISTA09T0 + 10.0.0.49 + switch1 + 10.0.0.48 + 1 + 180 + 60 + + + switch1 + 10.0.0.16 + ARISTA09T2 + 10.0.0.17 + 1 + 180 + 60 + + + ARISTA10T0 + 10.0.0.51 + switch1 + 10.0.0.50 + 1 + 180 + 60 + + + switch1 + 10.0.0.18 + ARISTA10T2 + 10.0.0.19 + 1 + 180 + 60 + + + ARISTA11T0 + 10.0.0.53 + switch1 + 10.0.0.52 + 1 + 180 + 60 + + + switch1 + 10.0.0.20 + ARISTA11T2 + 10.0.0.21 + 1 + 180 + 60 + + + ARISTA12T0 + 10.0.0.55 + switch1 + 10.0.0.54 + 1 + 180 + 60 + + + switch1 + 10.0.0.22 + ARISTA12T2 + 10.0.0.23 + 1 + 180 + 60 + + + ARISTA13T0 + 10.0.0.57 + switch1 + 10.0.0.56 + 1 + 180 + 60 + + + switch1 + 10.0.0.24 + ARISTA13T2 + 10.0.0.25 + 1 + 180 + 60 + + + ARISTA14T0 + 10.0.0.59 + switch1 + 10.0.0.58 + 1 + 180 + 60 + + + switch1 + 10.0.0.26 + ARISTA14T2 + 10.0.0.27 + 1 + 180 + 60 + + + ARISTA15T0 + 10.0.0.61 + switch1 + 10.0.0.60 + 1 + 180 + 60 + + + switch1 + 10.0.0.28 + ARISTA15T2 + 10.0.0.29 + 1 + 180 + 60 + + + ARISTA16T0 + 10.0.0.63 + switch1 + 10.0.0.62 + 1 + 180 + 60 + + + switch1 + 10.0.0.30 + ARISTA16T2 + 10.0.0.31 + 1 + 180 + 60 + + + + + 65100 + switch1 + + +
10.0.0.33
+ + +
+ +
10.0.0.1
+ + +
+ +
10.0.0.35
+ + +
+ +
10.0.0.3
+ + +
+ +
10.0.0.37
+ + +
+ +
10.0.0.5
+ + +
+ +
10.0.0.39
+ + +
+ +
10.0.0.7
+ + +
+ +
10.0.0.41
+ + +
+ +
10.0.0.9
+ + +
+ +
10.0.0.43
+ + +
+ +
10.0.0.11
+ + +
+ +
10.0.0.45
+ + +
+ +
10.0.0.13
+ + +
+ +
10.0.0.47
+ + +
+ +
10.0.0.15
+ + +
+ +
10.0.0.49
+ + +
+ +
10.0.0.17
+ + +
+ +
10.0.0.51
+ + +
+ +
10.0.0.19
+ + +
+ +
10.0.0.53
+ + +
+ +
10.0.0.21
+ + +
+ +
10.0.0.55
+ + +
+ +
10.0.0.23
+ + +
+ +
10.0.0.57
+ + +
+ +
10.0.0.25
+ + +
+ +
10.0.0.59
+ + +
+ +
10.0.0.27
+ + +
+ +
10.0.0.61
+ + +
+ +
10.0.0.29
+ + +
+ +
10.0.0.63
+ + +
+ +
10.0.0.31
+ + +
+
+ +
+ + 64001 + ARISTA01T0 + + + + 65200 + ARISTA01T2 + + + + 64002 + ARISTA02T0 + + + + 65200 + ARISTA02T2 + + + + 64003 + ARISTA03T0 + + + + 65200 + ARISTA03T2 + + + + 64004 + ARISTA04T0 + + + + 65200 + ARISTA04T2 + + + + 64005 + ARISTA05T0 + + + + 65200 + ARISTA05T2 + + + + 64006 + ARISTA06T0 + + + + 65200 + ARISTA06T2 + + + + 64007 + ARISTA07T0 + + + + 65200 + ARISTA07T2 + + + + 64008 + ARISTA08T0 + + + + 65200 + ARISTA08T2 + + + + 64009 + ARISTA09T0 + + + + 65200 + ARISTA09T2 + + + + 64010 + ARISTA10T0 + + + + 65200 + ARISTA10T2 + + + + 64011 + ARISTA11T0 + + + + 65200 + ARISTA11T2 + + + + 64012 + ARISTA12T0 + + + + 65200 + ARISTA12T2 + + + + 64013 + ARISTA13T0 + + + + 65200 + ARISTA13T2 + + + + 64014 + ARISTA14T0 + + + + 65200 + ARISTA14T2 + + + + 64015 + ARISTA15T0 + + + + 65200 + ARISTA15T2 + + + + 64016 + ARISTA16T0 + + + + 65200 + ARISTA16T2 + + +
+
+ + + + + + HostIP + Loopback0 + + 10.1.0.32/32 + + 10.1.0.32/32 + + + + + + + + switch1 + + + + + + Ethernet0 + 10.0.0.0/31 + + + + Ethernet4 + 10.0.0.2/31 + + + + Ethernet8 + 10.0.0.4/31 + + + + Ethernet12 + 10.0.0.6/31 + + + + Ethernet16 + 10.0.0.8/31 + + + + Ethernet20 + 10.0.0.10/31 + + + + Ethernet24 + 10.0.0.12/31 + + + + Ethernet28 + 10.0.0.14/31 + + + + Ethernet32 + 10.0.0.16/31 + + + + Ethernet36 + 10.0.0.18/31 + + + + Ethernet40 + 10.0.0.20/31 + + + + Ethernet44 + 10.0.0.22/31 + + + + Ethernet48 + 10.0.0.24/31 + + + + Ethernet52 + 10.0.0.26/31 + + + + Ethernet56 + 10.0.0.28/31 + + + + Ethernet60 + 10.0.0.30/31 + + + + Ethernet64 + 10.0.0.32/31 + + + + Ethernet68 + 10.0.0.34/31 + + + + Ethernet72 + 10.0.0.36/31 + + + + Ethernet76 + 10.0.0.38/31 + + + + Ethernet80 + 10.0.0.40/31 + + + + Ethernet84 + 10.0.0.42/31 + + + + Ethernet88 + 10.0.0.44/31 + + + + Ethernet92 + 10.0.0.46/31 + + + + Ethernet96 + 10.0.0.48/31 + + + + Ethernet100 + 10.0.0.50/31 + + + + Ethernet104 + 10.0.0.52/31 + + + + Ethernet108 + 10.0.0.54/31 + + + + Ethernet112 + 10.0.0.56/31 + + + + Ethernet116 + 10.0.0.58/31 + + + + Ethernet120 + 10.0.0.60/31 + + + + Ethernet124 + 10.0.0.62/31 + + + + + + + + + + + + DeviceInterfaceLink + switch1 + Ethernet0 + ARISTA01T2 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet4 + ARISTA02T2 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet8 + ARISTA03T2 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet12 + ARISTA04T2 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet16 + ARISTA05T2 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet20 + ARISTA06T2 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet24 + ARISTA07T2 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet28 + ARISTA08T2 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet32 + ARISTA09T2 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet36 + ARISTA10T2 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet40 + ARISTA11T2 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet44 + ARISTA12T2 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet48 + ARISTA13T2 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet52 + ARISTA14T2 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet56 + ARISTA15T2 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet60 + ARISTA16T2 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet64 + ARISTA01T0 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet68 + ARISTA02T0 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet72 + ARISTA03T0 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet76 + ARISTA04T0 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet80 + ARISTA05T0 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet84 + ARISTA06T0 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet88 + ARISTA07T0 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet92 + ARISTA08T0 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet96 + ARISTA09T0 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet100 + ARISTA10T0 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet104 + ARISTA11T0 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet108 + ARISTA12T0 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet112 + ARISTA13T0 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet116 + ARISTA14T0 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet120 + ARISTA15T0 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet124 + ARISTA16T0 + Ethernet1 + + + + + switch1 + AS7212-54x + + + + + + + switch1 + + + DhcpResources + + + + + NtpResources + + 0.debian.pool.ntp.org;1.debian.pool.ntp.org;2.debian.pool.ntp.org;3.debian.pool.ntp.org + + + SyslogResources + + + + + + + + + switch1 + AS7212-54x + diff --git a/device/accton/x86_64-accton_as7212_54x-r0/plugins/eeprom.py b/device/accton/x86_64-accton_as7212_54x-r0/plugins/eeprom.py new file mode 100755 index 00000000000..7681caafeef --- /dev/null +++ b/device/accton/x86_64-accton_as7212_54x-r0/plugins/eeprom.py @@ -0,0 +1,24 @@ +#!/usr/bin/env python + +try: + import exceptions + import binascii + import time + import optparse + import warnings + import os + import sys + from sonic_eeprom import eeprom_base + from sonic_eeprom import eeprom_tlvinfo + import subprocess +except ImportError, e: + raise ImportError (str(e) + "- required module not found") + +class board(eeprom_tlvinfo.TlvInfoDecoder): + _TLV_INFO_MAX_LEN = 256 + def __init__(self, name, path, cpld_root, ro): + self.eeprom_path = "/sys/bus/i2c/devices/1-0057/eeprom" + #Two i2c buses might get flipped order, check them both. + if not os.path.exists(self.eeprom_path): + self.eeprom_path = "/sys/bus/i2c/devices/0-0057/eeprom" + super(board, self).__init__(self.eeprom_path, 0, '', True) diff --git a/device/accton/x86_64-accton_as7212_54x-r0/plugins/sfputil.py b/device/accton/x86_64-accton_as7212_54x-r0/plugins/sfputil.py new file mode 100755 index 00000000000..925c6cb0d73 --- /dev/null +++ b/device/accton/x86_64-accton_as7212_54x-r0/plugins/sfputil.py @@ -0,0 +1,127 @@ +#!/usr/bin/env python + +try: + import time + from sonic_sfp.sfputilbase import SfpUtilBase +except ImportError, e: + raise ImportError (str(e) + "- required module not found") + + +class sfputil(SfpUtilBase): + """Platform specific sfputil class""" + + port_start = 0 + port_end = 31 + ports_in_block = 32 + + port_to_eeprom_mapping = {} + port_to_i2c_mapping = { + 9 : 18, + 10 : 19, + 11 : 20, + 12 : 21, + 1 : 22, + 2 : 23, + 3 : 24, + 4 : 25, + 6 : 26, + 5 : 27, + 8 : 28, + 7 : 29, + 13 : 30, + 14 : 31, + 15 : 32, + 16 : 33, + 17 : 34, + 18 : 35, + 19 : 36, + 20 : 37, + 25 : 38, + 26 : 39, + 27 : 40, + 28 : 41, + 29 : 42, + 30 : 43, + 31 : 44, + 32 : 45, + 21 : 46, + 22 : 47, + 23 : 48, + 24 : 49, + } + + _qsfp_ports = range(0, ports_in_block + 1) + + def __init__(self): + # Override port_to_eeprom_mapping for class initialization + eeprom_path = '/sys/bus/i2c/devices/{0}-0050/sfp_eeprom' + for x in range(self.port_start, self.port_end + 1): + port_eeprom_path = eeprom_path.format(self.port_to_i2c_mapping[x+1]) + self.port_to_eeprom_mapping[x] = port_eeprom_path + SfpUtilBase.__init__(self) + + def reset(self, port_num): + # Check for invalid port_num + if port_num < self._port_start or port_num > self._port_end: + return False + + path = "/sys/bus/i2c/devices/{0}-0050/sfp_port_reset" + port_ps = path.format(self.port_to_i2c_mapping[port_num+1]) + + try: + reg_file = open(port_ps, 'w') + except IOError as e: + print "Error: unable to open file: %s" % str(e) + return False + + #toggle reset + reg_file.seek(0) + reg_file.write('1') + time.sleep(1) + reg_file.seek(0) + reg_file.write('0') + reg_file.close() + return True + + def set_low_power_mode(self, port_nuM, lpmode): + raise NotImplementedErro + + def get_low_power_mode(self, port_num): + raise NotImplementedErro + + def get_presence(self, port_num): + # Check for invalid port_num + if port_num < self._port_start or port_num > self._port_end: + return False + + path = "/sys/bus/i2c/devices/{0}-0050/sfp_is_present" + port_ps = path.format(self.port_to_i2c_mapping[port_num+1]) + + + try: + reg_file = open(port_ps) + except IOError as e: + print "Error: unable to open file: %s" % str(e) + return False + + reg_value = reg_file.readline().rstrip() + if reg_value == '1': + return True + + return False + + @property + def port_start(self): + return self._port_start + + @property + def port_end(self): + return self._port_end + + @property + def qsfp_ports(self): + return range(0, self.ports_in_block + 1) + + @property + def port_to_eeprom_mapping(self): + return self._port_to_eeprom_mapping diff --git a/device/accton/x86_64-accton_as7312_54x-r0/Accton-AS7312-54X/port_config.ini b/device/accton/x86_64-accton_as7312_54x-r0/Accton-AS7312-54X/port_config.ini index 8eeb6a993cb..2c4d0c02377 100644 --- a/device/accton/x86_64-accton_as7312_54x-r0/Accton-AS7312-54X/port_config.ini +++ b/device/accton/x86_64-accton_as7312_54x-r0/Accton-AS7312-54X/port_config.ini @@ -1,55 +1,55 @@ -# name lanes alias -Ethernet0 41 twentyfiveGigE1 -Ethernet1 42 twentyfiveGigE2 -Ethernet2 43 twentyfiveGigE3 -Ethernet3 44 twentyfiveGigE4 -Ethernet4 49 twentyfiveGigE5 -Ethernet5 50 twentyfiveGigE6 -Ethernet6 51 twentyfiveGigE7 -Ethernet7 52 twentyfiveGigE8 -Ethernet8 53 twentyfiveGigE9 -Ethernet9 54 twentyfiveGigE10 -Ethernet10 55 twentyfiveGigE11 -Ethernet11 56 twentyfiveGigE12 -Ethernet12 65 twentyfiveGigE13 -Ethernet13 66 twentyfiveGigE14 -Ethernet14 67 twentyfiveGigE15 -Ethernet15 68 twentyfiveGigE16 -Ethernet16 33 twentyfiveGigE17 -Ethernet17 34 twentyfiveGigE18 -Ethernet18 35 twentyfiveGigE19 -Ethernet19 36 twentyfiveGigE20 -Ethernet20 37 twentyfiveGigE21 -Ethernet21 38 twentyfiveGigE22 -Ethernet22 39 twentyfiveGigE23 -Ethernet23 40 twentyfiveGigE24 -Ethernet24 69 twentyfiveGigE25 -Ethernet25 70 twentyfiveGigE26 -Ethernet26 71 twentyfiveGigE27 -Ethernet27 72 twentyfiveGigE28 -Ethernet28 81 twentyfiveGigE29 -Ethernet29 82 twentyfiveGigE30 -Ethernet30 83 twentyfiveGigE31 -Ethernet31 84 twentyfiveGigE32 -Ethernet32 85 twentyfiveGigE33 -Ethernet33 86 twentyfiveGigE34 -Ethernet34 87 twentyfiveGigE35 -Ethernet35 88 twentyfiveGigE36 -Ethernet36 97 twentyfiveGigE37 -Ethernet37 98 twentyfiveGigE38 -Ethernet38 99 twentyfiveGigE39 -Ethernet39 100 twentyfiveGigE40 -Ethernet40 101 twentyfiveGigE41 -Ethernet41 102 twentyfiveGigE42 -Ethernet42 103 twentyfiveGigE43 -Ethernet43 104 twentyfiveGigE44 -Ethernet44 105 twentyfiveGigE45 -Ethernet45 106 twentyfiveGigE46 -Ethernet46 107 twentyfiveGigE47 -Ethernet47 108 twentyfiveGigE48 -Ethernet48 5,6,7,8 hundredGigE49 -Ethernet52 1,2,3,4 hundredGigE50 -Ethernet56 109,110,111,112 hundredGigE51 -Ethernet60 21,22,23,24 hundredGigE52 -Ethernet64 9,10,11,12 hundredGigE53 -Ethernet68 117,118,119,120 hundredGigE54 +# name lanes alias index +Ethernet0 41 twentyfiveGigE1 0 +Ethernet1 42 twentyfiveGigE2 1 +Ethernet2 43 twentyfiveGigE3 2 +Ethernet3 44 twentyfiveGigE4 3 +Ethernet4 49 twentyfiveGigE5 4 +Ethernet5 50 twentyfiveGigE6 5 +Ethernet6 51 twentyfiveGigE7 6 +Ethernet7 52 twentyfiveGigE8 7 +Ethernet8 53 twentyfiveGigE9 8 +Ethernet9 54 twentyfiveGigE10 9 +Ethernet10 55 twentyfiveGigE11 10 +Ethernet11 56 twentyfiveGigE12 11 +Ethernet12 65 twentyfiveGigE13 12 +Ethernet13 66 twentyfiveGigE14 13 +Ethernet14 67 twentyfiveGigE15 14 +Ethernet15 68 twentyfiveGigE16 15 +Ethernet16 33 twentyfiveGigE17 16 +Ethernet17 34 twentyfiveGigE18 17 +Ethernet18 35 twentyfiveGigE19 18 +Ethernet19 36 twentyfiveGigE20 19 +Ethernet20 37 twentyfiveGigE21 20 +Ethernet21 38 twentyfiveGigE22 21 +Ethernet22 39 twentyfiveGigE23 22 +Ethernet23 40 twentyfiveGigE24 23 +Ethernet24 69 twentyfiveGigE25 24 +Ethernet25 70 twentyfiveGigE26 25 +Ethernet26 71 twentyfiveGigE27 26 +Ethernet27 72 twentyfiveGigE28 27 +Ethernet28 81 twentyfiveGigE29 28 +Ethernet29 82 twentyfiveGigE30 29 +Ethernet30 83 twentyfiveGigE31 30 +Ethernet31 84 twentyfiveGigE32 31 +Ethernet32 85 twentyfiveGigE33 32 +Ethernet33 86 twentyfiveGigE34 33 +Ethernet34 87 twentyfiveGigE35 34 +Ethernet35 88 twentyfiveGigE36 35 +Ethernet36 97 twentyfiveGigE37 36 +Ethernet37 98 twentyfiveGigE38 37 +Ethernet38 99 twentyfiveGigE39 38 +Ethernet39 100 twentyfiveGigE40 39 +Ethernet40 101 twentyfiveGigE41 40 +Ethernet41 102 twentyfiveGigE42 41 +Ethernet42 103 twentyfiveGigE43 42 +Ethernet43 104 twentyfiveGigE44 43 +Ethernet44 105 twentyfiveGigE45 44 +Ethernet45 106 twentyfiveGigE46 45 +Ethernet46 107 twentyfiveGigE47 46 +Ethernet47 108 twentyfiveGigE48 47 +Ethernet48 5,6,7,8 hundredGigE49 48 +Ethernet52 1,2,3,4 hundredGigE50 52 +Ethernet56 109,110,111,112 hundredGigE51 56 +Ethernet60 21,22,23,24 hundredGigE52 60 +Ethernet64 9,10,11,12 hundredGigE53 64 +Ethernet68 117,118,119,120 hundredGigE54 68 diff --git a/device/accton/x86_64-accton_as7312_54x-r0/plugins/eeprom.py b/device/accton/x86_64-accton_as7312_54x-r0/plugins/eeprom.py new file mode 100644 index 00000000000..7681caafeef --- /dev/null +++ b/device/accton/x86_64-accton_as7312_54x-r0/plugins/eeprom.py @@ -0,0 +1,24 @@ +#!/usr/bin/env python + +try: + import exceptions + import binascii + import time + import optparse + import warnings + import os + import sys + from sonic_eeprom import eeprom_base + from sonic_eeprom import eeprom_tlvinfo + import subprocess +except ImportError, e: + raise ImportError (str(e) + "- required module not found") + +class board(eeprom_tlvinfo.TlvInfoDecoder): + _TLV_INFO_MAX_LEN = 256 + def __init__(self, name, path, cpld_root, ro): + self.eeprom_path = "/sys/bus/i2c/devices/1-0057/eeprom" + #Two i2c buses might get flipped order, check them both. + if not os.path.exists(self.eeprom_path): + self.eeprom_path = "/sys/bus/i2c/devices/0-0057/eeprom" + super(board, self).__init__(self.eeprom_path, 0, '', True) diff --git a/device/accton/x86_64-accton_as7312_54x-r0/plugins/psuutil.py b/device/accton/x86_64-accton_as7312_54x-r0/plugins/psuutil.py new file mode 100644 index 00000000000..d73e65bf798 --- /dev/null +++ b/device/accton/x86_64-accton_as7312_54x-r0/plugins/psuutil.py @@ -0,0 +1,61 @@ +#!/usr/bin/env python + +############################################################################# +# Accton +# +# Module contains an implementation of SONiC PSU Base API and +# provides the PSUs status which are available in the platform +# +############################################################################# + +import os.path + +try: + from sonic_psu.psu_base import PsuBase +except ImportError as e: + raise ImportError (str(e) + "- required module not found") + +class PsuUtil(PsuBase): + """Platform-specific PSUutil class""" + + def __init__(self): + PsuBase.__init__(self) + + self.psu_path = "/sys/bus/i2c/devices/" + self.psu_presence = "/psu_present" + self.psu_oper_status = "/psu_power_good" + self.psu_mapping = { + 2: "11-0053", + 1: "10-0050", + } + + def get_num_psus(self): + return len(self.psu_mapping) + + def get_psu_status(self, index): + if index is None: + return False + + status = 0 + node = self.psu_path + self.psu_mapping[index]+self.psu_oper_status + try: + with open(node, 'r') as power_status: + status = int(power_status.read()) + except IOError: + return False + + return status == 1 + + def get_psu_presence(self, index): + if index is None: + return False + + status = 0 + node = self.psu_path + self.psu_mapping[index] + self.psu_presence + try: + with open(node, 'r') as presence_status: + status = int(presence_status.read()) + except IOError: + return False + + return status == 1 diff --git a/device/accton/x86_64-accton_as7312_54x-r0/plugins/sfputil.py b/device/accton/x86_64-accton_as7312_54x-r0/plugins/sfputil.py new file mode 100644 index 00000000000..956b6b352f9 --- /dev/null +++ b/device/accton/x86_64-accton_as7312_54x-r0/plugins/sfputil.py @@ -0,0 +1,215 @@ +# sfputil.py +# +# Platform-specific SFP transceiver interface for SONiC +# + +try: + import time + from sonic_sfp.sfputilbase import SfpUtilBase +except ImportError as e: + raise ImportError("%s - required module not found" % str(e)) + + +class SfpUtil(SfpUtilBase): + """Platform-specific SfpUtil class""" + + PORT_START = 0 + PORT_END = 71 + PORTS_IN_BLOCK = 72 + QSFP_PORT_START = 48 + QSFP_PORT_END = 72 + + BASE_VAL_PATH = "/sys/class/i2c-adapter/i2c-{0}/{1}-0050/" + + _port_to_is_present = {} + _port_to_lp_mode = {} + + _port_to_eeprom_mapping = {} + _cpld_mapping = { + 0: "4-0060", + 1: "5-0062", + 2: "6-0064", + } + _port_to_i2c_mapping = { + 0: 18, + 1: 19, + 2: 20, + 3: 21, + 4: 22, + 5: 23, + 6: 24, + 7: 25, + 8: 26, + 9: 27, + 10: 28, + 11: 29, + 12: 30, + 13: 31, + 14: 32, + 15: 33, + 16: 34, + 17: 35, + 18: 36, + 19: 37, + 20: 38, + 21: 39, + 22: 40, + 23: 41, + 24: 42, + 25: 43, + 26: 44, + 27: 45, + 28: 46, + 29: 47, + 30: 48, + 31: 49, + 32: 50, + 33: 51, + 34: 52, + 35: 53, + 36: 54, + 37: 55, + 38: 56, + 39: 57, + 40: 58, + 41: 59, + 42: 60, + 43: 61, + 44: 62, + 45: 63, + 46: 64, + 47: 65, + 48: 66, #QSFP49 + 49: 66, + 50: 66, + 51: 66, + 52: 67, #QSFP50 + 53: 67, + 54: 67, + 55: 67, + 56: 68, #QSFP51 + 57: 68, + 58: 68, + 59: 68, + 60: 69, #QSFP52 + 61: 69, + 62: 69, + 63: 69, + 64: 70, #QSFP53 + 65: 70, + 66: 70, + 67: 70, + 68: 71, #QSFP54 + 69: 71, + 70: 71, + 71: 71, + } + + @property + def port_start(self): + return self.PORT_START + + @property + def port_end(self): + return self.PORT_END + + @property + def qsfp_port_start(self): + return self.QSFP_PORT_START + + @property + def qsfp_port_end(self): + return self.QSFP_PORT_END + + @property + def qsfp_ports(self): + return range(self.QSFP_PORT_START, self.PORTS_IN_BLOCK + 1) + + @property + def port_to_eeprom_mapping(self): + return self._port_to_eeprom_mapping + + def __init__(self): + eeprom_path = '/sys/bus/i2c/devices/{0}-0050/eeprom' + for x in range(0, self.port_end+1): + self.port_to_eeprom_mapping[x] = eeprom_path.format( + self._port_to_i2c_mapping[x]) + + SfpUtilBase.__init__(self) + + + # For port 48~51 are QSFP, here presumed they're all split to 4 lanes. + def get_cage_num(self, port_num): + cage_num = port_num + if (port_num >= self.QSFP_PORT_START): + cage_num = (port_num - self.QSFP_PORT_START)/4 + cage_num = cage_num + self.QSFP_PORT_START + + return cage_num + + # For cage 0~23 and 48~51 are at cpld2, others are at cpld3. + def get_cpld_num(self, port_num): + cpld_i = 1 + cage_num = self.get_cage_num(port_num) + if (port_num > 23 and port_num < self.QSFP_PORT_START): + cpld_i = 2 + + if (cage_num >= 52): + cpld_i = 2 + + return cpld_i + + def get_presence(self, port_num): + # Check for invalid port_num + if port_num < self.port_start or port_num > self.port_end: + return False + + cage_num = self.get_cage_num(port_num) + cpld_i = self.get_cpld_num(port_num) + + cpld_ps = self._cpld_mapping[cpld_i] + path = "/sys/bus/i2c/devices/{0}/module_present_{1}" + port_ps = path.format(cpld_ps, cage_num+1) + + try: + val_file = open(port_ps) + except IOError as e: + print "Error: unable to open file: %s" % str(e) + return False + + content = val_file.readline().rstrip() + val_file.close() + + # content is a string, either "0" or "1" + if content == "1": + return True + + return False + + def get_low_power_mode(self, port_num): + raise NotImplementedError + + def set_low_power_mode(self, port_num, lpmode): + raise NotImplementedError + + def reset(self, port_num): + if port_num < self.qsfp_port_start or port_num > self.qsfp_port_end: + return False + + cage_num = self.get_cage_num(port_num) + cpld_i = self.get_cpld_num(port_num) + cpld_ps = self._cpld_mapping[cpld_i] + path = "/sys/bus/i2c/devices/{0}/module_reset_{1}" + port_ps = path.format(cpld_ps, cage_num+1) + try: + reg_file = open(port_ps, 'w') + except IOError as e: + print "Error: unable to open file: %s" % str(e) + return False + + reg_value = '0' + + reg_file.write(reg_value) + reg_file.close() + + return True diff --git a/device/accton/x86_64-accton_as7512_32x-r0/plugins/sfputil.py b/device/accton/x86_64-accton_as7512_32x-r0/plugins/sfputil.py index 378a18c6b8b..f2e59d40334 100644 --- a/device/accton/x86_64-accton_as7512_32x-r0/plugins/sfputil.py +++ b/device/accton/x86_64-accton_as7512_32x-r0/plugins/sfputil.py @@ -1,25 +1,72 @@ #! /usr/bin/python try: - from sonic_sfp.sfputilbase import sfputilbase + from sonic_sfp.sfputilbase import SfpUtilBase except ImportError, e: raise ImportError (str(e) + "- required module not found") -class sfputil(sfputilbase): +class SfpUtil(SfpUtilBase): """Platform specific sfputil class""" - port_start = 0 - port_end = 31 + _port_start = 0 + _port_end = 31 ports_in_block = 32 - port_to_eeprom_mapping = {} + _port_to_eeprom_mapping = {} + _qsfp_ports = range(0, ports_in_block + 1) - def __init__(self, port_num): + def __init__(self): # Override port_to_eeprom_mapping for class initialization eeprom_path = '/sys/bus/i2c/devices/{0}-0050/sfp_eeprom' for x in range(self.port_start, self.port_end + 1): - self.port_to_eeprom_mapping[x] = eeprom_path.format(x + 18) - sfputilbase.__init__(self, port_num) + self._port_to_eeprom_mapping[x] = eeprom_path.format(x + 18) + SfpUtilBase.__init__(self) + + def reset(self, port_num): + raise NotImplementedErro + + def set_low_power_mode(self, port_nuM, lpmode): + raise NotImplementedErro + + def get_low_power_mode(self, port_num): + raise NotImplementedErro + + def get_presence(self, port_num): + # Check for invalid port_num + if port_num < self._port_start or port_num > self._port_end: + return False + + path = "/sys/bus/i2c/devices/{0}-0050/sfp_is_present" + port_ps = path.format(port_num+18) + + + try: + reg_file = open(port_ps) + except IOError as e: + print "Error: unable to open file: %s" % str(e) + return False + + reg_value = reg_file.readline().rstrip() + if reg_value == '1': + return True + + return False + + @property + def port_start(self): + return self._port_start + + @property + def port_end(self): + return self._port_end + + @property + def qsfp_ports(self): + return range(0, self.ports_in_block + 1) + + @property + def port_to_eeprom_mapping(self): + return self._port_to_eeprom_mapping diff --git a/device/accton/x86_64-accton_as7712_32x-r0/plugins/sfputil.py b/device/accton/x86_64-accton_as7712_32x-r0/plugins/sfputil.py index 2e636292bfa..fd117ee3886 100644 --- a/device/accton/x86_64-accton_as7712_32x-r0/plugins/sfputil.py +++ b/device/accton/x86_64-accton_as7712_32x-r0/plugins/sfputil.py @@ -53,7 +53,7 @@ class SfpUtil(SfpUtilBase): _qsfp_ports = range(0, ports_in_block + 1) def __init__(self): - eeprom_path = '/sys/bus/i2c/devices/{0}-0050/sfp_eeprom' + eeprom_path = '/sys/bus/i2c/devices/{0}-0050/eeprom' for x in range(0, self._port_end + 1): port_eeprom_path = eeprom_path.format(self.port_to_i2c_mapping[x+1]) self._port_to_eeprom_mapping[x] = port_eeprom_path @@ -64,9 +64,9 @@ def reset(self, port_num): if port_num < self._port_start or port_num > self._port_end: return False - path = "/sys/bus/i2c/devices/{0}-0050/sfp_port_reset" - port_ps = path.format(self.port_to_i2c_mapping[port_num+1]) - + path = "/sys/bus/i2c/devices/4-0060/module_reset_{0}" + port_ps = path.format(port_num+1) + try: reg_file = open(port_ps, 'w') except IOError as e: @@ -93,8 +93,8 @@ def get_presence(self, port_num): if port_num < self._port_start or port_num > self._port_end: return False - path = "/sys/bus/i2c/devices/{0}-0050/sfp_is_present" - port_ps = path.format(self.port_to_i2c_mapping[port_num+1]) + path = "/sys/bus/i2c/devices/4-0060/module_present_{0}" + port_ps = path.format(port_num+1) try: diff --git a/device/accton/x86_64-accton_as7716_32xb-r0/Accton-AS7716-32XB/port_config.ini b/device/accton/x86_64-accton_as7716_32xb-r0/Accton-AS7716-32XB/port_config.ini new file mode 100755 index 00000000000..1fa6d21d960 --- /dev/null +++ b/device/accton/x86_64-accton_as7716_32xb-r0/Accton-AS7716-32XB/port_config.ini @@ -0,0 +1,33 @@ +# name lanes alias +Ethernet0 49,50,51,52 hundredGigE1 +Ethernet4 53,54,55,56 hundredGigE2 +Ethernet8 57,58,59,60 hundredGigE3 +Ethernet12 61,62,63,64 hundredGigE4 +Ethernet16 65,66,67,68 hundredGigE5 +Ethernet20 69,70,71,72 hundredGigE6 +Ethernet24 73,74,75,76 hundredGigE7 +Ethernet28 77,78,79,80 hundredGigE8 +Ethernet32 33,34,35,36 hundredGigE9 +Ethernet36 37,38,39,40 hundredGigE10 +Ethernet40 41,42,43,44 hundredGigE11 +Ethernet44 45,46,47,48 hundredGigE12 +Ethernet48 81,82,83,84 hundredGigE13 +Ethernet52 85,86,87,88 hundredGigE14 +Ethernet56 89,90,91,92 hundredGigE15 +Ethernet60 93,94,95,96 hundredGigE16 +Ethernet64 97,98,99,100 hundredGigE17 +Ethernet68 101,102,103,104 hundredGigE18 +Ethernet72 105,106,107,108 hundredGigE19 +Ethernet76 109,110,111,112 hundredGigE20 +Ethernet80 17,18,19,20 hundredGigE21 +Ethernet84 21,22,23,24 hundredGigE22 +Ethernet88 25,26,27,28 hundredGigE23 +Ethernet92 29,30,31,32 hundredGigE24 +Ethernet96 113,114,115,116 hundredGigE25 +Ethernet100 117,118,119,120 hundredGigE26 +Ethernet104 121,122,123,124 hundredGigE27 +Ethernet108 125,126,127,128 hundredGigE28 +Ethernet112 1,2,3,4 hundredGigE29 +Ethernet116 5,6,7,8 hundredGigE30 +Ethernet120 9,10,11,12 hundredGigE31 +Ethernet124 13,14,15,16 hundredGigE32 diff --git a/device/accton/x86_64-accton_as7716_32xb-r0/Accton-AS7716-32XB/sai.profile b/device/accton/x86_64-accton_as7716_32xb-r0/Accton-AS7716-32XB/sai.profile new file mode 100755 index 00000000000..de1e16b4954 --- /dev/null +++ b/device/accton/x86_64-accton_as7716_32xb-r0/Accton-AS7716-32XB/sai.profile @@ -0,0 +1 @@ +SAI_INIT_CONFIG_FILE=/etc/bcm/th-as7716-32x100G.config.bcm diff --git a/device/accton/x86_64-accton_as7716_32xb-r0/installer.conf b/device/accton/x86_64-accton_as7716_32xb-r0/installer.conf new file mode 100755 index 00000000000..925a32fc0c3 --- /dev/null +++ b/device/accton/x86_64-accton_as7716_32xb-r0/installer.conf @@ -0,0 +1,3 @@ +CONSOLE_PORT=0x3f8 +CONSOLE_DEV=0 +CONSOLE_SPEED=115200 diff --git a/device/accton/x86_64-accton_as7716_32xb-r0/led_proc_init.soc b/device/accton/x86_64-accton_as7716_32xb-r0/led_proc_init.soc new file mode 100755 index 00000000000..719cb777719 --- /dev/null +++ b/device/accton/x86_64-accton_as7716_32xb-r0/led_proc_init.soc @@ -0,0 +1,41 @@ +m CMIC_LEDUP0_PORT_ORDER_REMAP_0_3 REMAP_PORT_0=31 REMAP_PORT_1=30 REMAP_PORT_2=29 REMAP_PORT_3=28 +m CMIC_LEDUP0_PORT_ORDER_REMAP_4_7 REMAP_PORT_4=27 REMAP_PORT_5=26 REMAP_PORT_6=25 REMAP_PORT_7=24 +m CMIC_LEDUP0_PORT_ORDER_REMAP_8_11 REMAP_PORT_8=23 REMAP_PORT_9=22 REMAP_PORT_10=21 REMAP_PORT_11=20 +m CMIC_LEDUP0_PORT_ORDER_REMAP_12_15 REMAP_PORT_12=19 REMAP_PORT_13=18 REMAP_PORT_14=17 REMAP_PORT_15=16 +m CMIC_LEDUP0_PORT_ORDER_REMAP_16_19 REMAP_PORT_16=63 REMAP_PORT_17=62 REMAP_PORT_18=61 REMAP_PORT_19=60 +m CMIC_LEDUP0_PORT_ORDER_REMAP_20_23 REMAP_PORT_20=59 REMAP_PORT_21=58 REMAP_PORT_22=57 REMAP_PORT_23=56 +m CMIC_LEDUP0_PORT_ORDER_REMAP_24_27 REMAP_PORT_24=55 REMAP_PORT_25=54 REMAP_PORT_26=53 REMAP_PORT_27=52 +m CMIC_LEDUP0_PORT_ORDER_REMAP_28_31 REMAP_PORT_28=51 REMAP_PORT_29=50 REMAP_PORT_30=49 REMAP_PORT_31=48 +m CMIC_LEDUP0_PORT_ORDER_REMAP_32_35 REMAP_PORT_32=47 REMAP_PORT_33=46 REMAP_PORT_34=45 REMAP_PORT_35=44 +m CMIC_LEDUP0_PORT_ORDER_REMAP_36_39 REMAP_PORT_36=43 REMAP_PORT_37=42 REMAP_PORT_38=41 REMAP_PORT_39=40 +m CMIC_LEDUP0_PORT_ORDER_REMAP_40_43 REMAP_PORT_40=39 REMAP_PORT_41=38 REMAP_PORT_42=37 REMAP_PORT_43=36 +m CMIC_LEDUP0_PORT_ORDER_REMAP_44_47 REMAP_PORT_44=35 REMAP_PORT_45=34 REMAP_PORT_46=33 REMAP_PORT_47=32 +m CMIC_LEDUP0_PORT_ORDER_REMAP_48_51 REMAP_PORT_48=15 REMAP_PORT_49=14 REMAP_PORT_50=13 REMAP_PORT_51=12 +m CMIC_LEDUP0_PORT_ORDER_REMAP_52_55 REMAP_PORT_52=11 REMAP_PORT_53=10 REMAP_PORT_54=9 REMAP_PORT_55=8 +m CMIC_LEDUP0_PORT_ORDER_REMAP_56_59 REMAP_PORT_56=7 REMAP_PORT_57=6 REMAP_PORT_58=5 REMAP_PORT_59=4 +m CMIC_LEDUP0_PORT_ORDER_REMAP_60_63 REMAP_PORT_60=3 REMAP_PORT_61=2 REMAP_PORT_62=1 REMAP_PORT_63=0 + +m CMIC_LEDUP1_PORT_ORDER_REMAP_0_3 REMAP_PORT_0=35 REMAP_PORT_1=34 REMAP_PORT_2=33 REMAP_PORT_3=32 +m CMIC_LEDUP1_PORT_ORDER_REMAP_4_7 REMAP_PORT_4=39 REMAP_PORT_5=38 REMAP_PORT_6=37 REMAP_PORT_7=36 +m CMIC_LEDUP1_PORT_ORDER_REMAP_8_11 REMAP_PORT_8=43 REMAP_PORT_9=42 REMAP_PORT_10=41 REMAP_PORT_11=40 +m CMIC_LEDUP1_PORT_ORDER_REMAP_12_15 REMAP_PORT_12=47 REMAP_PORT_13=46 REMAP_PORT_14=45 REMAP_PORT_15=44 +m CMIC_LEDUP1_PORT_ORDER_REMAP_16_19 REMAP_PORT_16=3 REMAP_PORT_17=2 REMAP_PORT_18=1 REMAP_PORT_19=0 +m CMIC_LEDUP1_PORT_ORDER_REMAP_20_23 REMAP_PORT_20=7 REMAP_PORT_21=6 REMAP_PORT_22=5 REMAP_PORT_23=4 +m CMIC_LEDUP1_PORT_ORDER_REMAP_24_27 REMAP_PORT_24=11 REMAP_PORT_25=10 REMAP_PORT_26=9 REMAP_PORT_27=8 +m CMIC_LEDUP1_PORT_ORDER_REMAP_28_31 REMAP_PORT_28=15 REMAP_PORT_29=14 REMAP_PORT_30=13 REMAP_PORT_31=12 +m CMIC_LEDUP1_PORT_ORDER_REMAP_32_35 REMAP_PORT_32=19 REMAP_PORT_33=18 REMAP_PORT_34=17 REMAP_PORT_35=16 +m CMIC_LEDUP1_PORT_ORDER_REMAP_36_39 REMAP_PORT_36=23 REMAP_PORT_37=22 REMAP_PORT_38=21 REMAP_PORT_39=20 +m CMIC_LEDUP1_PORT_ORDER_REMAP_40_43 REMAP_PORT_40=27 REMAP_PORT_41=26 REMAP_PORT_42=25 REMAP_PORT_43=24 +m CMIC_LEDUP1_PORT_ORDER_REMAP_44_47 REMAP_PORT_44=31 REMAP_PORT_45=30 REMAP_PORT_46=29 REMAP_PORT_47=28 +m CMIC_LEDUP1_PORT_ORDER_REMAP_48_51 REMAP_PORT_48=51 REMAP_PORT_49=50 REMAP_PORT_50=49 REMAP_PORT_51=48 +m CMIC_LEDUP1_PORT_ORDER_REMAP_52_55 REMAP_PORT_52=55 REMAP_PORT_53=54 REMAP_PORT_54=53 REMAP_PORT_55=52 +m CMIC_LEDUP1_PORT_ORDER_REMAP_56_59 REMAP_PORT_56=59 REMAP_PORT_57=58 REMAP_PORT_58=57 REMAP_PORT_59=56 +m CMIC_LEDUP1_PORT_ORDER_REMAP_60_63 REMAP_PORT_60=63 REMAP_PORT_61=62 REMAP_PORT_62=61 REMAP_PORT_63=60 + +led 0 prog 02 FD 42 80 02 FF 42 00 02 FE 42 00 02 FA 42 E0 02 FB 42 40 06 F9 D2 00 74 1E 02 F9 42 03 67 AC 67 C3 67 52 86 FE 67 C3 67 52 86 FE 67 C3 67 52 86 FE 67 C3 67 52 86 FE 06 FB D6 FE 74 1E 86 FC 3E FA 06 FE 88 4A 03 71 4C 67 84 57 67 84 57 67 98 57 06 FE 88 80 4A 00 27 97 75 4F 90 4A 00 27 4A 01 27 B7 97 71 69 77 42 06 F9 D6 FC 74 7C 02 F9 4A 07 37 4E 07 02 FC 42 00 4E 07 06 F9 0A 07 71 4F 77 42 16 FF 06 FD 17 4D DA 07 74 95 12 FF 52 00 86 FD 57 86 FF 57 16 FF 06 FD 07 4D DA 07 74 A9 12 FF 52 00 86 FD 57 86 FF 57 06 FE C2 FC 98 98 12 F4 50 C2 FC 98 98 F2 F0 14 06 F4 C2 03 88 77 D1 06 FE C2 FC 98 98 F2 E0 14 06 FE C2 03 88 18 71 E2 80 18 71 DD 67 98 67 98 57 67 84 67 98 57 80 18 71 EB 67 98 67 84 57 67 84 67 84 57 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +led 0 start + +led 1 prog 02 FD 42 80 02 FF 42 00 02 FE 42 00 02 FA 42 E0 02 FB 42 40 06 F9 D2 00 74 1E 02 F9 42 03 67 AC 67 C3 67 52 86 FE 67 C3 67 52 86 FE 67 C3 67 52 86 FE 67 C3 67 52 86 FE 06 FB D6 FE 74 1E 86 FC 3E FA 06 FE 88 4A 03 71 4C 67 84 57 67 84 57 67 98 57 06 FE 88 80 4A 00 27 97 75 4F 90 4A 00 27 4A 01 27 B7 97 71 69 77 42 06 F9 D6 FC 74 7C 02 F9 4A 07 37 4E 07 02 FC 42 00 4E 07 06 F9 0A 07 71 4F 77 42 16 FF 06 FD 17 4D DA 07 74 95 12 FF 52 00 86 FD 57 86 FF 57 16 FF 06 FD 07 4D DA 07 74 A9 12 FF 52 00 86 FD 57 86 FF 57 06 FE C2 FC 98 98 12 F4 50 C2 FC 98 98 F2 F0 14 06 F4 C2 03 88 77 D1 06 FE C2 FC 98 98 F2 E0 14 06 FE C2 03 88 18 71 E2 80 18 71 DD 67 98 67 98 57 67 84 67 98 57 80 18 71 EB 67 98 67 84 57 67 84 67 84 57 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +led 1 start + +led auto on \ No newline at end of file diff --git a/device/accton/x86_64-accton_as7716_32xb-r0/minigraph.xml b/device/accton/x86_64-accton_as7716_32xb-r0/minigraph.xml new file mode 100755 index 00000000000..5cefa847181 --- /dev/null +++ b/device/accton/x86_64-accton_as7716_32xb-r0/minigraph.xml @@ -0,0 +1,1074 @@ + + + + + + ARISTA01T0 + 10.0.0.33 + sonic + 10.0.0.32 + 1 + 180 + 60 + + + sonic + 10.0.0.0 + ARISTA01T2 + 10.0.0.1 + 1 + 180 + 60 + + + ARISTA02T0 + 10.0.0.35 + sonic + 10.0.0.34 + 1 + 180 + 60 + + + sonic + 10.0.0.2 + ARISTA02T2 + 10.0.0.3 + 1 + 180 + 60 + + + ARISTA03T0 + 10.0.0.37 + sonic + 10.0.0.36 + 1 + 180 + 60 + + + sonic + 10.0.0.4 + ARISTA03T2 + 10.0.0.5 + 1 + 180 + 60 + + + ARISTA04T0 + 10.0.0.39 + sonic + 10.0.0.38 + 1 + 180 + 60 + + + sonic + 10.0.0.6 + ARISTA04T2 + 10.0.0.7 + 1 + 180 + 60 + + + ARISTA05T0 + 10.0.0.41 + sonic + 10.0.0.40 + 1 + 180 + 60 + + + sonic + 10.0.0.8 + ARISTA05T2 + 10.0.0.9 + 1 + 180 + 60 + + + ARISTA06T0 + 10.0.0.43 + sonic + 10.0.0.42 + 1 + 180 + 60 + + + sonic + 10.0.0.10 + ARISTA06T2 + 10.0.0.11 + 1 + 180 + 60 + + + ARISTA07T0 + 10.0.0.45 + sonic + 10.0.0.44 + 1 + 180 + 60 + + + sonic + 10.0.0.12 + ARISTA07T2 + 10.0.0.13 + 1 + 180 + 60 + + + ARISTA08T0 + 10.0.0.47 + sonic + 10.0.0.46 + 1 + 180 + 60 + + + sonic + 10.0.0.14 + ARISTA08T2 + 10.0.0.15 + 1 + 180 + 60 + + + ARISTA09T0 + 10.0.0.49 + sonic + 10.0.0.48 + 1 + 180 + 60 + + + sonic + 10.0.0.16 + ARISTA09T2 + 10.0.0.17 + 1 + 180 + 60 + + + ARISTA10T0 + 10.0.0.51 + sonic + 10.0.0.50 + 1 + 180 + 60 + + + sonic + 10.0.0.18 + ARISTA10T2 + 10.0.0.19 + 1 + 180 + 60 + + + ARISTA11T0 + 10.0.0.53 + sonic + 10.0.0.52 + 1 + 180 + 60 + + + sonic + 10.0.0.20 + ARISTA11T2 + 10.0.0.21 + 1 + 180 + 60 + + + ARISTA12T0 + 10.0.0.55 + sonic + 10.0.0.54 + 1 + 180 + 60 + + + sonic + 10.0.0.22 + ARISTA12T2 + 10.0.0.23 + 1 + 180 + 60 + + + ARISTA13T0 + 10.0.0.57 + sonic + 10.0.0.56 + 1 + 180 + 60 + + + sonic + 10.0.0.24 + ARISTA13T2 + 10.0.0.25 + 1 + 180 + 60 + + + ARISTA14T0 + 10.0.0.59 + sonic + 10.0.0.58 + 1 + 180 + 60 + + + sonic + 10.0.0.26 + ARISTA14T2 + 10.0.0.27 + 1 + 180 + 60 + + + ARISTA15T0 + 10.0.0.61 + sonic + 10.0.0.60 + 1 + 180 + 60 + + + sonic + 10.0.0.28 + ARISTA15T2 + 10.0.0.29 + 1 + 180 + 60 + + + ARISTA16T0 + 10.0.0.63 + sonic + 10.0.0.62 + 1 + 180 + 60 + + + sonic + 10.0.0.30 + ARISTA16T2 + 10.0.0.31 + 1 + 180 + 60 + + + + + 65100 + sonic + + +
10.0.0.33
+ + +
+ +
10.0.0.1
+ + +
+ +
10.0.0.35
+ + +
+ +
10.0.0.3
+ + +
+ +
10.0.0.37
+ + +
+ +
10.0.0.5
+ + +
+ +
10.0.0.39
+ + +
+ +
10.0.0.7
+ + +
+ +
10.0.0.41
+ + +
+ +
10.0.0.9
+ + +
+ +
10.0.0.43
+ + +
+ +
10.0.0.11
+ + +
+ +
10.0.0.45
+ + +
+ +
10.0.0.13
+ + +
+ +
10.0.0.47
+ + +
+ +
10.0.0.15
+ + +
+ +
10.0.0.49
+ + +
+ +
10.0.0.17
+ + +
+ +
10.0.0.51
+ + +
+ +
10.0.0.19
+ + +
+ +
10.0.0.53
+ + +
+ +
10.0.0.21
+ + +
+ +
10.0.0.55
+ + +
+ +
10.0.0.23
+ + +
+ +
10.0.0.57
+ + +
+ +
10.0.0.25
+ + +
+ +
10.0.0.59
+ + +
+ +
10.0.0.27
+ + +
+ +
10.0.0.61
+ + +
+ +
10.0.0.29
+ + +
+ +
10.0.0.63
+ + +
+ +
10.0.0.31
+ + +
+
+ +
+ + 64001 + ARISTA01T0 + + + + 65200 + ARISTA01T2 + + + + 64002 + ARISTA02T0 + + + + 65200 + ARISTA02T2 + + + + 64003 + ARISTA03T0 + + + + 65200 + ARISTA03T2 + + + + 64004 + ARISTA04T0 + + + + 65200 + ARISTA04T2 + + + + 64005 + ARISTA05T0 + + + + 65200 + ARISTA05T2 + + + + 64006 + ARISTA06T0 + + + + 65200 + ARISTA06T2 + + + + 64007 + ARISTA07T0 + + + + 65200 + ARISTA07T2 + + + + 64008 + ARISTA08T0 + + + + 65200 + ARISTA08T2 + + + + 64009 + ARISTA09T0 + + + + 65200 + ARISTA09T2 + + + + 64010 + ARISTA10T0 + + + + 65200 + ARISTA10T2 + + + + 64011 + ARISTA11T0 + + + + 65200 + ARISTA11T2 + + + + 64012 + ARISTA12T0 + + + + 65200 + ARISTA12T2 + + + + 64013 + ARISTA13T0 + + + + 65200 + ARISTA13T2 + + + + 64014 + ARISTA14T0 + + + + 65200 + ARISTA14T2 + + + + 64015 + ARISTA15T0 + + + + 65200 + ARISTA15T2 + + + + 64016 + ARISTA16T0 + + + + 65200 + ARISTA16T2 + + +
+
+ + + + + + HostIP + Loopback0 + + 10.1.0.32/32 + + 10.1.0.32/32 + + + + + + + + sonic + + + + + + Ethernet0 + 10.0.0.0/31 + + + + Ethernet4 + 10.0.0.2/31 + + + + Ethernet8 + 10.0.0.4/31 + + + + Ethernet12 + 10.0.0.6/31 + + + + Ethernet16 + 10.0.0.8/31 + + + + Ethernet20 + 10.0.0.10/31 + + + + Ethernet24 + 10.0.0.12/31 + + + + Ethernet28 + 10.0.0.14/31 + + + + Ethernet32 + 10.0.0.16/31 + + + + Ethernet36 + 10.0.0.18/31 + + + + Ethernet40 + 10.0.0.20/31 + + + + Ethernet44 + 10.0.0.22/31 + + + + Ethernet48 + 10.0.0.24/31 + + + + Ethernet52 + 10.0.0.26/31 + + + + Ethernet56 + 10.0.0.28/31 + + + + Ethernet60 + 10.0.0.30/31 + + + + Ethernet64 + 10.0.0.32/31 + + + + Ethernet68 + 10.0.0.34/31 + + + + Ethernet72 + 10.0.0.36/31 + + + + Ethernet76 + 10.0.0.38/31 + + + + Ethernet80 + 10.0.0.40/31 + + + + Ethernet84 + 10.0.0.42/31 + + + + Ethernet88 + 10.0.0.44/31 + + + + Ethernet92 + 10.0.0.46/31 + + + + Ethernet96 + 10.0.0.48/31 + + + + Ethernet100 + 10.0.0.50/31 + + + + Ethernet104 + 10.0.0.52/31 + + + + Ethernet108 + 10.0.0.54/31 + + + + Ethernet112 + 10.0.0.56/31 + + + + Ethernet116 + 10.0.0.58/31 + + + + Ethernet120 + 10.0.0.60/31 + + + + Ethernet124 + 10.0.0.62/31 + + + + + + + + + + + + DeviceInterfaceLink + sonic + Ethernet0 + ARISTA01T2 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet4 + ARISTA02T2 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet8 + ARISTA03T2 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet12 + ARISTA04T2 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet16 + ARISTA05T2 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet20 + ARISTA06T2 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet24 + ARISTA07T2 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet28 + ARISTA08T2 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet32 + ARISTA09T2 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet36 + ARISTA10T2 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet40 + ARISTA11T2 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet44 + ARISTA12T2 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet48 + ARISTA13T2 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet52 + ARISTA14T2 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet56 + ARISTA15T2 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet60 + ARISTA16T2 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet64 + ARISTA01T0 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet68 + ARISTA02T0 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet72 + ARISTA03T0 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet76 + ARISTA04T0 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet80 + ARISTA05T0 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet84 + ARISTA06T0 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet88 + ARISTA07T0 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet92 + ARISTA08T0 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet96 + ARISTA09T0 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet100 + ARISTA10T0 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet104 + ARISTA11T0 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet108 + ARISTA12T0 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet112 + ARISTA13T0 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet116 + ARISTA14T0 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet120 + ARISTA15T0 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet124 + ARISTA16T0 + Ethernet1 + + + + + sonic + Accton-AS7716-32XB + + + + + + + sonic + + + DhcpResources + + + + + NtpResources + + 0.debian.pool.ntp.org;1.debian.pool.ntp.org;2.debian.pool.ntp.org;3.debian.pool.ntp.org + + + SyslogResources + + + + + + + + + sonic + Accton-AS7716-32XB +
diff --git a/device/accton/x86_64-accton_as7716_32xb-r0/plugins/eeprom.py b/device/accton/x86_64-accton_as7716_32xb-r0/plugins/eeprom.py new file mode 100755 index 00000000000..6fa5719afba --- /dev/null +++ b/device/accton/x86_64-accton_as7716_32xb-r0/plugins/eeprom.py @@ -0,0 +1,24 @@ +#!/usr/bin/env python + +try: + import exceptions + import binascii + import time + import optparse + import warnings + import os + import sys + from sonic_eeprom import eeprom_base + from sonic_eeprom import eeprom_tlvinfo + import subprocess +except ImportError, e: + raise ImportError (str(e) + "- required module not found") + +class board(eeprom_tlvinfo.TlvInfoDecoder): + _TLV_INFO_MAX_LEN = 256 + def __init__(self, name, path, cpld_root, ro): + self.eeprom_path = "/sys/bus/i2c/devices/0-0056/eeprom" + #Two i2c buses might get flipped order, check them both. + if not os.path.exists(self.eeprom_path): + self.eeprom_path = "/sys/bus/i2c/devices/0-0056/eeprom" + super(board, self).__init__(self.eeprom_path, 0, '', True) diff --git a/device/accton/x86_64-accton_as7716_32xb-r0/plugins/psuutil.py b/device/accton/x86_64-accton_as7716_32xb-r0/plugins/psuutil.py new file mode 100755 index 00000000000..5a4b0fe83d8 --- /dev/null +++ b/device/accton/x86_64-accton_as7716_32xb-r0/plugins/psuutil.py @@ -0,0 +1,61 @@ +#!/usr/bin/env python + +############################################################################# +# Accton +# +# Module contains an implementation of SONiC PSU Base API and +# provides the PSUs status which are available in the platform +# +############################################################################# + +import os.path + +try: + from sonic_psu.psu_base import PsuBase +except ImportError as e: + raise ImportError (str(e) + "- required module not found") + +class PsuUtil(PsuBase): + """Platform-specific PSUutil class""" + + def __init__(self): + PsuBase.__init__(self) + + self.psu_path = "/sys/bus/i2c/devices/" + self.psu_presence = "/psu_present" + self.psu_oper_status = "/psu_power_good" + self.psu_mapping = { + 1: "0-0053", + 2: "0-0050", + } + + def get_num_psus(self): + return len(self.psu_mapping) + + def get_psu_status(self, index): + if index is None: + return False + + status = 0 + node = self.psu_path + self.psu_mapping[index]+self.psu_oper_status + try: + with open(node, 'r') as power_status: + status = int(power_status.read()) + except IOError: + return False + + return status == 1 + + def get_psu_presence(self, index): + if index is None: + return False + + status = 0 + node = self.psu_path + self.psu_mapping[index] + self.psu_presence + try: + with open(node, 'r') as presence_status: + status = int(presence_status.read()) + except IOError: + return False + + return status == 1 diff --git a/device/accton/x86_64-accton_as7716_32xb-r0/plugins/sfputil.py b/device/accton/x86_64-accton_as7716_32xb-r0/plugins/sfputil.py new file mode 100755 index 00000000000..d57f10e016d --- /dev/null +++ b/device/accton/x86_64-accton_as7716_32xb-r0/plugins/sfputil.py @@ -0,0 +1,138 @@ +# sfputil.py +# +# Platform-specific SFP transceiver interface for SONiC +# + +try: + import time + import os + import sys, getopt + import commands + from sonic_sfp.sfputilbase import SfpUtilBase +except ImportError as e: + raise ImportError("%s - required module not found" % str(e)) + + +class SfpUtil(SfpUtilBase): + """Platform-specific SfpUtil class""" + + PORT_START = 0 + PORT_END = 31 + PORTS_IN_BLOCK = 32 + + BASE_OOM_PATH = "/sys/bus/i2c/devices/{0}-0050/" + BASE_CPLD_PATH = "/sys/bus/i2c/devices/0-0060/" + BASE_I2C_PATH = "/sys/bus/i2c/devices/" + + _port_to_is_present = {} + _port_to_lp_mode = {} + + _port_to_eeprom_mapping = {} + _port_to_i2c_mapping = { + 0: [1, 29], + 1: [2, 30], + 2: [3, 31], + 3: [4, 32], + 4: [5, 34], + 5: [6, 33], + 6: [7, 36], + 7: [8, 35], + 8: [9, 25], + 9: [10, 26], + 10: [11, 27], + 11: [12, 28], + 12: [14, 37], + 13: [15, 38], + 14: [16, 39], + 15: [17, 40], + 16: [18, 41], + 17: [19, 42], + 18: [20, 43], + 19: [21, 44], + 20: [22, 53], + 21: [23, 54], + 22: [24, 55], + 23: [25, 56], + 24: [26, 45], + 25: [27, 46], + 26: [28, 47], + 27: [29, 48], + 28: [30, 49], + 29: [31, 50], + 30: [32, 51], + 31: [33, 52], + } + + @property + def port_start(self): + return self.PORT_START + + @property + def port_end(self): + return self.PORT_END + + @property + def qsfp_ports(self): + return range(self.PORT_START, self.PORTS_IN_BLOCK + 1) + + @property + def port_to_eeprom_mapping(self): + return self._port_to_eeprom_mapping + + def get_presence(self, port_num): + # Check for invalid port_num + if port_num < self.port_start or port_num > self.port_end: + return False + + present_path = self.BASE_CPLD_PATH + "module_present_" + str(port_num+1) + self.__port_to_is_present = present_path + + try: + val_file = open(self.__port_to_is_present) + except IOError as e: + print "Error: unable to open file: %s" % str(e) + return False + + content = val_file.readline().rstrip() + val_file.close() + + # content is a string, either "0" or "1" + if content == "1": + return True + + return False + + def __init__(self): + eeprom_path = self.BASE_I2C_PATH + + for x in range(0, self.port_end+1): + self.port_to_eeprom_mapping[x] = eeprom_path.format( + self._port_to_i2c_mapping[x][1] + ) + if(x < 9): + if(self.get_presence(x)==1): + self.port_to_eeprom_mapping[x] = self.BASE_I2C_PATH + "0-000" +str(x+1) + "/eeprom" + + else: + if(self.get_presence(x)==1): + self.port_to_eeprom_mapping[x] = self.BASE_I2C_PATH + "0-00" +str(x+1)+ "/eeprom" + + SfpUtilBase.__init__(self) + + + + def get_low_power_mode(self, port_num): + raise NotImplementedError + + def set_low_power_mode(self, port_num, lpmode): + raise NotImplementedError + + def reset(self, port_num): + if port_num < self.port_start or port_num > self.port_end: + return False + + mod_rst_cmd = "ipmitool raw 0x34 0x11 " + str(port_num+1) + " 0x11 0x1" + (status, output) = commands.getstatusoutput (mod_rst_cmd) + return True + + \ No newline at end of file diff --git a/device/accton/x86_64-accton_as7816_64x-r0/Accton-AS7816-64X/port_config.ini b/device/accton/x86_64-accton_as7816_64x-r0/Accton-AS7816-64X/port_config.ini index f6c7b0c4a87..20d1b84edce 100644 --- a/device/accton/x86_64-accton_as7816_64x-r0/Accton-AS7816-64X/port_config.ini +++ b/device/accton/x86_64-accton_as7816_64x-r0/Accton-AS7816-64X/port_config.ini @@ -1 +1,65 @@ # name lanes alias +Ethernet0 73,74,75,76 hundredGigE1 +Ethernet4 65,66,67,68 hundredGigE2 +Ethernet8 81,82,83,84 hundredGigE3 +Ethernet12 89,90,91,92 hundredGigE4 +Ethernet16 105,106,107,108 hundredGigE5 +Ethernet20 97,98,99,100 hundredGigE6 +Ethernet24 113,114,115,116 hundredGigE7 +Ethernet28 121,122,123,124 hundredGigE8 +Ethernet32 41,42,43,44 hundredGigE9 +Ethernet36 33,34,35,36 hundredGigE10 +Ethernet40 49,50,51,52 hundredGigE11 +Ethernet44 57,58,59,60 hundredGigE12 +Ethernet48 137,138,139,140 hundredGigE13 +Ethernet52 129,130,131,132 hundredGigE14 +Ethernet56 145,146,147,148 hundredGigE15 +Ethernet60 153,154,155,156 hundredGigE16 +Ethernet64 173,174,175,176 hundredGigE17 +Ethernet68 165,166,167,168 hundredGigE18 +Ethernet72 181,182,183,184 hundredGigE19 +Ethernet76 189,190,191,192 hundredGigE20 +Ethernet80 13,14,15,16 hundredGigE21 +Ethernet84 5,6,7,8 hundredGigE22 +Ethernet88 29,30,31,32 hundredGigE23 +Ethernet92 21,22,23,24 hundredGigE24 +Ethernet96 205,206,207,208 hundredGigE25 +Ethernet100 197,198,199,200 hundredGigE26 +Ethernet104 213,214,215,216 hundredGigE27 +Ethernet108 221,222,223,224 hundredGigE28 +Ethernet112 229,230,231,232 hundredGigE29 +Ethernet116 237,238,239,240 hundredGigE30 +Ethernet120 245,246,247,248 hundredGigE31 +Ethernet124 253,254,255,256 hundredGigE32 +Ethernet128 69,70,71,72 hundredGigE33 +Ethernet132 77,78,79,80 hundredGigE34 +Ethernet136 93,94,95,96 hundredGigE35 +Ethernet140 85,86,87,88 hundredGigE36 +Ethernet144 101,102,103,104 hundredGigE37 +Ethernet148 109,110,111,112 hundredGigE38 +Ethernet152 125,126,127,128 hundredGigE39 +Ethernet156 117,118,119,120 hundredGigE40 +Ethernet160 37,38,39,40 hundredGigE41 +Ethernet164 45,46,47,48 hundredGigE42 +Ethernet168 61,62,63,64 hundredGigE43 +Ethernet172 53,54,55,56 hundredGigE44 +Ethernet176 133,134,135,136 hundredGigE45 +Ethernet180 141,142,143,144 hundredGigE46 +Ethernet184 157,158,159,160 hundredGigE47 +Ethernet188 149,150,151,152 hundredGigE48 +Ethernet192 161,162,163,164 hundredGigE49 +Ethernet196 169,170,171,172 hundredGigE50 +Ethernet200 185,186,187,188 hundredGigE51 +Ethernet204 177,178,179,180 hundredGigE52 +Ethernet208 1,2,3,4 hundredGigE53 +Ethernet212 9,10,11,12 hundredGigE54 +Ethernet216 25,26,27,28 hundredGigE55 +Ethernet220 17,18,19,20 hundredGigE56 +Ethernet224 193,194,195,196 hundredGigE57 +Ethernet228 201,202,203,204 hundredGigE58 +Ethernet232 217,218,219,220 hundredGigE59 +Ethernet236 209,210,211,212 hundredGigE60 +Ethernet240 225,226,227,228 hundredGigE61 +Ethernet244 233,234,235,236 hundredGigE62 +Ethernet248 249,250,251,252 hundredGigE63 +Ethernet252 241,242,243,244 hundredGigE64 diff --git a/device/accton/x86_64-accton_as7816_64x-r0/Accton-AS7816-64X/sai.profile b/device/accton/x86_64-accton_as7816_64x-r0/Accton-AS7816-64X/sai.profile index e69de29bb2d..f2d9aa96821 100644 --- a/device/accton/x86_64-accton_as7816_64x-r0/Accton-AS7816-64X/sai.profile +++ b/device/accton/x86_64-accton_as7816_64x-r0/Accton-AS7816-64X/sai.profile @@ -0,0 +1 @@ +SAI_INIT_CONFIG_FILE=/etc/bcm/th2-as7816-64x100G.config.bcm diff --git a/device/accton/x86_64-accton_as7816_64x-r0/led_proc_init.soc b/device/accton/x86_64-accton_as7816_64x-r0/led_proc_init.soc index e69de29bb2d..75a36c6f9c6 100755 --- a/device/accton/x86_64-accton_as7816_64x-r0/led_proc_init.soc +++ b/device/accton/x86_64-accton_as7816_64x-r0/led_proc_init.soc @@ -0,0 +1,155 @@ +m CMIC_LEDUP0_CLK_PARAMS REFRESH_CYCLE_PERIOD=0xc00000 +m CMIC_LEDUP1_CLK_PARAMS REFRESH_CYCLE_PERIOD=0xc00000 +m CMIC_LEDUP2_CLK_PARAMS REFRESH_CYCLE_PERIOD=0xc00000 +m CMIC_LEDUP3_CLK_PARAMS REFRESH_CYCLE_PERIOD=0xc00000 + +m CMIC_LEDUP0_PORT_ORDER_REMAP_0_3 REMAP_PORT_0=63 REMAP_PORT_1=62 REMAP_PORT_2=61 REMAP_PORT_3=60 +m CMIC_LEDUP0_PORT_ORDER_REMAP_4_7 REMAP_PORT_4=59 REMAP_PORT_5=58 REMAP_PORT_6=57 REMAP_PORT_7=56 +m CMIC_LEDUP0_PORT_ORDER_REMAP_8_11 REMAP_PORT_8=55 REMAP_PORT_9=54 REMAP_PORT_10=53 REMAP_PORT_11=52 +m CMIC_LEDUP0_PORT_ORDER_REMAP_12_15 REMAP_PORT_12=51 REMAP_PORT_13=50 REMAP_PORT_14=49 REMAP_PORT_15=48 +m CMIC_LEDUP0_PORT_ORDER_REMAP_16_19 REMAP_PORT_16=47 REMAP_PORT_17=46 REMAP_PORT_18=45 REMAP_PORT_19=44 +m CMIC_LEDUP0_PORT_ORDER_REMAP_20_23 REMAP_PORT_20=43 REMAP_PORT_21=42 REMAP_PORT_22=41 REMAP_PORT_23=40 +m CMIC_LEDUP0_PORT_ORDER_REMAP_24_27 REMAP_PORT_24=39 REMAP_PORT_25=38 REMAP_PORT_26=37 REMAP_PORT_27=36 +m CMIC_LEDUP0_PORT_ORDER_REMAP_28_31 REMAP_PORT_28=35 REMAP_PORT_29=34 REMAP_PORT_30=33 REMAP_PORT_31=32 +m CMIC_LEDUP0_PORT_ORDER_REMAP_32_35 REMAP_PORT_32=31 REMAP_PORT_33=30 REMAP_PORT_34=29 REMAP_PORT_35=28 +m CMIC_LEDUP0_PORT_ORDER_REMAP_36_39 REMAP_PORT_36=27 REMAP_PORT_37=26 REMAP_PORT_38=25 REMAP_PORT_39=24 +m CMIC_LEDUP0_PORT_ORDER_REMAP_40_43 REMAP_PORT_40=23 REMAP_PORT_41=22 REMAP_PORT_42=21 REMAP_PORT_43=20 +m CMIC_LEDUP0_PORT_ORDER_REMAP_44_47 REMAP_PORT_44=19 REMAP_PORT_45=18 REMAP_PORT_46=17 REMAP_PORT_47=16 +m CMIC_LEDUP0_PORT_ORDER_REMAP_48_51 REMAP_PORT_48=15 REMAP_PORT_49=14 REMAP_PORT_50=13 REMAP_PORT_51=12 +m CMIC_LEDUP0_PORT_ORDER_REMAP_52_55 REMAP_PORT_52=11 REMAP_PORT_53=10 REMAP_PORT_54=9 REMAP_PORT_55=8 +m CMIC_LEDUP0_PORT_ORDER_REMAP_56_59 REMAP_PORT_56=7 REMAP_PORT_57=6 REMAP_PORT_58=5 REMAP_PORT_59=4 +m CMIC_LEDUP0_PORT_ORDER_REMAP_60_63 REMAP_PORT_60=3 REMAP_PORT_61=2 REMAP_PORT_62=1 REMAP_PORT_63=0 + +m CMIC_LEDUP1_PORT_ORDER_REMAP_0_3 REMAP_PORT_0=3 REMAP_PORT_1=2 REMAP_PORT_2=1 REMAP_PORT_3=0 +m CMIC_LEDUP1_PORT_ORDER_REMAP_4_7 REMAP_PORT_4=7 REMAP_PORT_5=6 REMAP_PORT_6=5 REMAP_PORT_7=4 +m CMIC_LEDUP1_PORT_ORDER_REMAP_8_11 REMAP_PORT_8=11 REMAP_PORT_9=10 REMAP_PORT_10=9 REMAP_PORT_11=8 +m CMIC_LEDUP1_PORT_ORDER_REMAP_12_15 REMAP_PORT_12=15 REMAP_PORT_13=14 REMAP_PORT_14=13 REMAP_PORT_15=12 +m CMIC_LEDUP1_PORT_ORDER_REMAP_16_19 REMAP_PORT_16=19 REMAP_PORT_17=18 REMAP_PORT_18=17 REMAP_PORT_19=16 +m CMIC_LEDUP1_PORT_ORDER_REMAP_20_23 REMAP_PORT_20=23 REMAP_PORT_21=22 REMAP_PORT_22=21 REMAP_PORT_23=20 +m CMIC_LEDUP1_PORT_ORDER_REMAP_24_27 REMAP_PORT_24=27 REMAP_PORT_25=26 REMAP_PORT_26=25 REMAP_PORT_27=24 +m CMIC_LEDUP1_PORT_ORDER_REMAP_28_31 REMAP_PORT_28=31 REMAP_PORT_29=30 REMAP_PORT_30=29 REMAP_PORT_31=28 +m CMIC_LEDUP1_PORT_ORDER_REMAP_32_35 REMAP_PORT_32=35 REMAP_PORT_33=34 REMAP_PORT_34=33 REMAP_PORT_35=32 +m CMIC_LEDUP1_PORT_ORDER_REMAP_36_39 REMAP_PORT_36=39 REMAP_PORT_37=38 REMAP_PORT_38=37 REMAP_PORT_39=36 +m CMIC_LEDUP1_PORT_ORDER_REMAP_40_43 REMAP_PORT_40=43 REMAP_PORT_41=42 REMAP_PORT_42=41 REMAP_PORT_43=40 +m CMIC_LEDUP1_PORT_ORDER_REMAP_44_47 REMAP_PORT_44=47 REMAP_PORT_45=46 REMAP_PORT_46=45 REMAP_PORT_47=44 +m CMIC_LEDUP1_PORT_ORDER_REMAP_48_51 REMAP_PORT_48=51 REMAP_PORT_49=50 REMAP_PORT_50=49 REMAP_PORT_51=48 +m CMIC_LEDUP1_PORT_ORDER_REMAP_52_55 REMAP_PORT_52=55 REMAP_PORT_53=54 REMAP_PORT_54=53 REMAP_PORT_55=52 +m CMIC_LEDUP1_PORT_ORDER_REMAP_56_59 REMAP_PORT_56=59 REMAP_PORT_57=58 REMAP_PORT_58=57 REMAP_PORT_59=56 +m CMIC_LEDUP1_PORT_ORDER_REMAP_60_63 REMAP_PORT_60=63 REMAP_PORT_61=62 REMAP_PORT_62=61 REMAP_PORT_63=60 + +m CMIC_LEDUP2_PORT_ORDER_REMAP_0_3 REMAP_PORT_0=63 REMAP_PORT_1=62 REMAP_PORT_2=61 REMAP_PORT_3=60 +m CMIC_LEDUP2_PORT_ORDER_REMAP_4_7 REMAP_PORT_4=59 REMAP_PORT_5=58 REMAP_PORT_6=57 REMAP_PORT_7=56 +m CMIC_LEDUP2_PORT_ORDER_REMAP_8_11 REMAP_PORT_8=55 REMAP_PORT_9=54 REMAP_PORT_10=53 REMAP_PORT_11=52 +m CMIC_LEDUP2_PORT_ORDER_REMAP_12_15 REMAP_PORT_12=51 REMAP_PORT_13=50 REMAP_PORT_14=49 REMAP_PORT_15=48 +m CMIC_LEDUP2_PORT_ORDER_REMAP_16_19 REMAP_PORT_16=47 REMAP_PORT_17=46 REMAP_PORT_18=45 REMAP_PORT_19=44 +m CMIC_LEDUP2_PORT_ORDER_REMAP_20_23 REMAP_PORT_20=43 REMAP_PORT_21=42 REMAP_PORT_22=41 REMAP_PORT_23=40 +m CMIC_LEDUP2_PORT_ORDER_REMAP_24_27 REMAP_PORT_24=39 REMAP_PORT_25=38 REMAP_PORT_26=37 REMAP_PORT_27=36 +m CMIC_LEDUP2_PORT_ORDER_REMAP_28_31 REMAP_PORT_28=35 REMAP_PORT_29=34 REMAP_PORT_30=33 REMAP_PORT_31=32 +m CMIC_LEDUP2_PORT_ORDER_REMAP_32_35 REMAP_PORT_32=31 REMAP_PORT_33=30 REMAP_PORT_34=29 REMAP_PORT_35=28 +m CMIC_LEDUP2_PORT_ORDER_REMAP_36_39 REMAP_PORT_36=27 REMAP_PORT_37=26 REMAP_PORT_38=25 REMAP_PORT_39=24 +m CMIC_LEDUP2_PORT_ORDER_REMAP_40_43 REMAP_PORT_40=23 REMAP_PORT_41=22 REMAP_PORT_42=21 REMAP_PORT_43=20 +m CMIC_LEDUP2_PORT_ORDER_REMAP_44_47 REMAP_PORT_44=19 REMAP_PORT_45=18 REMAP_PORT_46=17 REMAP_PORT_47=16 +m CMIC_LEDUP2_PORT_ORDER_REMAP_48_51 REMAP_PORT_48=15 REMAP_PORT_49=14 REMAP_PORT_50=13 REMAP_PORT_51=12 +m CMIC_LEDUP2_PORT_ORDER_REMAP_52_55 REMAP_PORT_52=11 REMAP_PORT_53=10 REMAP_PORT_54=9 REMAP_PORT_55=8 +m CMIC_LEDUP2_PORT_ORDER_REMAP_56_59 REMAP_PORT_56=7 REMAP_PORT_57=6 REMAP_PORT_58=5 REMAP_PORT_59=4 +m CMIC_LEDUP2_PORT_ORDER_REMAP_60_63 REMAP_PORT_60=3 REMAP_PORT_61=2 REMAP_PORT_62=1 REMAP_PORT_63=0 + +m CMIC_LEDUP3_PORT_ORDER_REMAP_0_3 REMAP_PORT_0=3 REMAP_PORT_1=2 REMAP_PORT_2=1 REMAP_PORT_3=0 +m CMIC_LEDUP3_PORT_ORDER_REMAP_4_7 REMAP_PORT_4=7 REMAP_PORT_5=6 REMAP_PORT_6=5 REMAP_PORT_7=4 +m CMIC_LEDUP3_PORT_ORDER_REMAP_8_11 REMAP_PORT_8=11 REMAP_PORT_9=10 REMAP_PORT_10=9 REMAP_PORT_11=8 +m CMIC_LEDUP3_PORT_ORDER_REMAP_12_15 REMAP_PORT_12=15 REMAP_PORT_13=14 REMAP_PORT_14=13 REMAP_PORT_15=12 +m CMIC_LEDUP3_PORT_ORDER_REMAP_16_19 REMAP_PORT_16=19 REMAP_PORT_17=18 REMAP_PORT_18=17 REMAP_PORT_19=16 +m CMIC_LEDUP3_PORT_ORDER_REMAP_20_23 REMAP_PORT_20=23 REMAP_PORT_21=22 REMAP_PORT_22=21 REMAP_PORT_23=20 +m CMIC_LEDUP3_PORT_ORDER_REMAP_24_27 REMAP_PORT_24=27 REMAP_PORT_25=26 REMAP_PORT_26=25 REMAP_PORT_27=24 +m CMIC_LEDUP3_PORT_ORDER_REMAP_28_31 REMAP_PORT_28=31 REMAP_PORT_29=30 REMAP_PORT_30=29 REMAP_PORT_31=28 +m CMIC_LEDUP3_PORT_ORDER_REMAP_32_35 REMAP_PORT_32=35 REMAP_PORT_33=34 REMAP_PORT_34=33 REMAP_PORT_35=32 +m CMIC_LEDUP3_PORT_ORDER_REMAP_36_39 REMAP_PORT_36=39 REMAP_PORT_37=38 REMAP_PORT_38=37 REMAP_PORT_39=36 +m CMIC_LEDUP3_PORT_ORDER_REMAP_40_43 REMAP_PORT_40=43 REMAP_PORT_41=42 REMAP_PORT_42=41 REMAP_PORT_43=40 +m CMIC_LEDUP3_PORT_ORDER_REMAP_44_47 REMAP_PORT_44=47 REMAP_PORT_45=46 REMAP_PORT_46=45 REMAP_PORT_47=44 +m CMIC_LEDUP3_PORT_ORDER_REMAP_48_51 REMAP_PORT_48=51 REMAP_PORT_49=50 REMAP_PORT_50=49 REMAP_PORT_51=48 +m CMIC_LEDUP3_PORT_ORDER_REMAP_52_55 REMAP_PORT_52=55 REMAP_PORT_53=54 REMAP_PORT_54=53 REMAP_PORT_55=52 +m CMIC_LEDUP3_PORT_ORDER_REMAP_56_59 REMAP_PORT_56=59 REMAP_PORT_57=58 REMAP_PORT_58=57 REMAP_PORT_59=56 +m CMIC_LEDUP3_PORT_ORDER_REMAP_60_63 REMAP_PORT_60=63 REMAP_PORT_61=62 REMAP_PORT_62=61 REMAP_PORT_63=60 + +led 0 stop +led 0 prog \ + 02 FD 42 80 02 FF 42 00 02 FE 42 00 02 FA 42 E0 \ + 02 FB 42 40 06 F9 D2 00 74 1E 02 F9 42 03 67 AC \ + 67 C3 67 52 86 FE 67 C3 67 52 86 FE 67 C3 67 52 \ + 86 FE 67 C3 67 52 86 FE 06 FB D6 FE 74 1E 86 FC \ + 3E FA 06 FE 88 4A 03 71 4C 67 84 57 67 84 57 67 \ + 98 57 06 FE 88 80 4A 00 27 97 75 4F 90 4A 00 27 \ + 4A 01 27 B7 97 71 69 77 42 06 F9 D6 FC 74 7C 02 \ + F9 4A 07 37 4E 07 02 FC 42 00 4E 07 06 F9 0A 07 \ + 71 4F 77 42 16 FF 06 FD 17 4D DA 07 74 95 12 FF \ + 52 00 86 FD 57 86 FF 57 16 FF 06 FD 07 4D DA 07 \ + 74 A9 12 FF 52 00 86 FD 57 86 FF 57 06 FE C2 FC \ + 98 98 12 F4 50 C2 FC 98 98 F2 F0 14 06 F4 C2 03 \ + 88 77 D1 06 FE C2 FC 98 98 F2 E0 14 06 FE C2 03 \ + 88 18 71 E2 80 18 71 DD 67 98 67 98 57 67 98 67 \ + 84 57 80 18 71 EB 67 84 67 98 57 67 84 67 84 57 \ + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + + +led 1 stop +led 1 prog \ + 02 FD 42 80 02 FF 42 00 02 FE 42 00 02 FA 42 E0 \ + 02 FB 42 40 06 F9 D2 00 74 1E 02 F9 42 03 67 AC \ + 67 C3 67 52 86 FE 67 C3 67 52 86 FE 67 C3 67 52 \ + 86 FE 67 C3 67 52 86 FE 06 FB D6 FE 74 1E 86 FC \ + 3E FA 06 FE 88 4A 03 71 4C 67 84 57 67 84 57 67 \ + 98 57 06 FE 88 80 4A 00 27 97 75 4F 90 4A 00 27 \ + 4A 01 27 B7 97 71 69 77 42 06 F9 D6 FC 74 7C 02 \ + F9 4A 07 37 4E 07 02 FC 42 00 4E 07 06 F9 0A 07 \ + 71 4F 77 42 16 FF 06 FD 17 4D DA 07 74 95 12 FF \ + 52 00 86 FD 57 86 FF 57 16 FF 06 FD 07 4D DA 07 \ + 74 A9 12 FF 52 00 86 FD 57 86 FF 57 06 FE C2 FC \ + 98 98 12 F4 50 C2 FC 98 98 F2 F0 14 06 F4 C2 03 \ + 88 77 D1 06 FE C2 FC 98 98 F2 E0 14 06 FE C2 03 \ + 88 18 71 E2 80 18 71 DD 67 98 67 98 57 67 98 67 \ + 84 57 80 18 71 EB 67 84 67 98 57 67 84 67 84 57 \ + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + +led 2 stop +led 2 prog \ + 02 FD 42 80 02 FF 42 00 02 FE 42 00 02 FA 42 E0 \ + 02 FB 42 40 06 F9 D2 00 74 1E 02 F9 42 03 67 AC \ + 67 C3 67 52 86 FE 67 C3 67 52 86 FE 67 C3 67 52 \ + 86 FE 67 C3 67 52 86 FE 06 FB D6 FE 74 1E 86 FC \ + 3E FA 06 FE 88 4A 03 71 4C 67 84 57 67 84 57 67 \ + 98 57 06 FE 88 80 4A 00 27 97 75 4F 90 4A 00 27 \ + 4A 01 27 B7 97 71 69 77 42 06 F9 D6 FC 74 7C 02 \ + F9 4A 07 37 4E 07 02 FC 42 00 4E 07 06 F9 0A 07 \ + 71 4F 77 42 16 FF 06 FD 17 4D DA 07 74 95 12 FF \ + 52 00 86 FD 57 86 FF 57 16 FF 06 FD 07 4D DA 07 \ + 74 A9 12 FF 52 00 86 FD 57 86 FF 57 06 FE C2 FC \ + 98 98 12 F4 50 C2 FC 98 98 F2 F0 14 06 F4 C2 03 \ + 88 77 D1 06 FE C2 FC 98 98 F2 E0 14 06 FE C2 03 \ + 88 18 71 E2 80 18 71 DD 67 98 67 98 57 67 98 67 \ + 84 57 80 18 71 EB 67 84 67 98 57 67 84 67 84 57 \ + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + +led 3 stop +led 3 prog \ + 02 FD 42 80 02 FF 42 00 02 FE 42 00 02 FA 42 E0 \ + 02 FB 42 40 06 F9 D2 00 74 1E 02 F9 42 03 67 AC \ + 67 C3 67 52 86 FE 67 C3 67 52 86 FE 67 C3 67 52 \ + 86 FE 67 C3 67 52 86 FE 06 FB D6 FE 74 1E 86 FC \ + 3E FA 06 FE 88 4A 03 71 4C 67 84 57 67 84 57 67 \ + 98 57 06 FE 88 80 4A 00 27 97 75 4F 90 4A 00 27 \ + 4A 01 27 B7 97 71 69 77 42 06 F9 D6 FC 74 7C 02 \ + F9 4A 07 37 4E 07 02 FC 42 00 4E 07 06 F9 0A 07 \ + 71 4F 77 42 16 FF 06 FD 17 4D DA 07 74 95 12 FF \ + 52 00 86 FD 57 86 FF 57 16 FF 06 FD 07 4D DA 07 \ + 74 A9 12 FF 52 00 86 FD 57 86 FF 57 06 FE C2 FC \ + 98 98 12 F4 50 C2 FC 98 98 F2 F0 14 06 F4 C2 03 \ + 88 77 D1 06 FE C2 FC 98 98 F2 E0 14 06 FE C2 03 \ + 88 18 71 E2 80 18 71 DD 67 98 67 98 57 67 98 67 \ + 84 57 80 18 71 EB 67 84 67 98 57 67 84 67 84 57 \ + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + +led auto on +led 0 start +led 1 start +led 2 start +led 3 start diff --git a/device/accton/x86_64-accton_as7816_64x-r0/minigraph.xml b/device/accton/x86_64-accton_as7816_64x-r0/minigraph.xml index d252de01ca8..b561c2f7b8f 100644 --- a/device/accton/x86_64-accton_as7816_64x-r0/minigraph.xml +++ b/device/accton/x86_64-accton_as7816_64x-r0/minigraph.xml @@ -2,623 +2,8 @@ - - ARISTA01T0 - 10.0.0.33 - sonic - 10.0.0.32 - 1 - 180 - 60 - - - sonic - 10.0.0.0 - ARISTA01T2 - 10.0.0.1 - 1 - 180 - 60 - - - ARISTA02T0 - 10.0.0.35 - sonic - 10.0.0.34 - 1 - 180 - 60 - - - sonic - 10.0.0.2 - ARISTA02T2 - 10.0.0.3 - 1 - 180 - 60 - - - ARISTA03T0 - 10.0.0.37 - sonic - 10.0.0.36 - 1 - 180 - 60 - - - sonic - 10.0.0.4 - ARISTA03T2 - 10.0.0.5 - 1 - 180 - 60 - - - ARISTA04T0 - 10.0.0.39 - sonic - 10.0.0.38 - 1 - 180 - 60 - - - sonic - 10.0.0.6 - ARISTA04T2 - 10.0.0.7 - 1 - 180 - 60 - - - ARISTA05T0 - 10.0.0.41 - sonic - 10.0.0.40 - 1 - 180 - 60 - - - sonic - 10.0.0.8 - ARISTA05T2 - 10.0.0.9 - 1 - 180 - 60 - - - ARISTA06T0 - 10.0.0.43 - sonic - 10.0.0.42 - 1 - 180 - 60 - - - sonic - 10.0.0.10 - ARISTA06T2 - 10.0.0.11 - 1 - 180 - 60 - - - ARISTA07T0 - 10.0.0.45 - sonic - 10.0.0.44 - 1 - 180 - 60 - - - sonic - 10.0.0.12 - ARISTA07T2 - 10.0.0.13 - 1 - 180 - 60 - - - ARISTA08T0 - 10.0.0.47 - sonic - 10.0.0.46 - 1 - 180 - 60 - - - sonic - 10.0.0.14 - ARISTA08T2 - 10.0.0.15 - 1 - 180 - 60 - - - ARISTA09T0 - 10.0.0.49 - sonic - 10.0.0.48 - 1 - 180 - 60 - - - sonic - 10.0.0.16 - ARISTA09T2 - 10.0.0.17 - 1 - 180 - 60 - - - ARISTA10T0 - 10.0.0.51 - sonic - 10.0.0.50 - 1 - 180 - 60 - - - sonic - 10.0.0.18 - ARISTA10T2 - 10.0.0.19 - 1 - 180 - 60 - - - ARISTA11T0 - 10.0.0.53 - sonic - 10.0.0.52 - 1 - 180 - 60 - - - sonic - 10.0.0.20 - ARISTA11T2 - 10.0.0.21 - 1 - 180 - 60 - - - ARISTA12T0 - 10.0.0.55 - sonic - 10.0.0.54 - 1 - 180 - 60 - - - sonic - 10.0.0.22 - ARISTA12T2 - 10.0.0.23 - 1 - 180 - 60 - - - ARISTA13T0 - 10.0.0.57 - sonic - 10.0.0.56 - 1 - 180 - 60 - - - sonic - 10.0.0.24 - ARISTA13T2 - 10.0.0.25 - 1 - 180 - 60 - - - ARISTA14T0 - 10.0.0.59 - sonic - 10.0.0.58 - 1 - 180 - 60 - - - sonic - 10.0.0.26 - ARISTA14T2 - 10.0.0.27 - 1 - 180 - 60 - - - ARISTA15T0 - 10.0.0.61 - sonic - 10.0.0.60 - 1 - 180 - 60 - - - sonic - 10.0.0.28 - ARISTA15T2 - 10.0.0.29 - 1 - 180 - 60 - - - ARISTA16T0 - 10.0.0.63 - sonic - 10.0.0.62 - 1 - 180 - 60 - - - sonic - 10.0.0.30 - ARISTA16T2 - 10.0.0.31 - 1 - 180 - 60 - - - 65100 - sonic - - -
10.0.0.33
- - -
- -
10.0.0.1
- - -
- -
10.0.0.35
- - -
- -
10.0.0.3
- - -
- -
10.0.0.37
- - -
- -
10.0.0.5
- - -
- -
10.0.0.39
- - -
- -
10.0.0.7
- - -
- -
10.0.0.41
- - -
- -
10.0.0.9
- - -
- -
10.0.0.43
- - -
- -
10.0.0.11
- - -
- -
10.0.0.45
- - -
- -
10.0.0.13
- - -
- -
10.0.0.47
- - -
- -
10.0.0.15
- - -
- -
10.0.0.49
- - -
- -
10.0.0.17
- - -
- -
10.0.0.51
- - -
- -
10.0.0.19
- - -
- -
10.0.0.53
- - -
- -
10.0.0.21
- - -
- -
10.0.0.55
- - -
- -
10.0.0.23
- - -
- -
10.0.0.57
- - -
- -
10.0.0.25
- - -
- -
10.0.0.59
- - -
- -
10.0.0.27
- - -
- -
10.0.0.61
- - -
- -
10.0.0.29
- - -
- -
10.0.0.63
- - -
- -
10.0.0.31
- - -
-
- -
- - 64001 - ARISTA01T0 - - - - 65200 - ARISTA01T2 - - - - 64002 - ARISTA02T0 - - - - 65200 - ARISTA02T2 - - - - 64003 - ARISTA03T0 - - - - 65200 - ARISTA03T2 - - - - 64004 - ARISTA04T0 - - - - 65200 - ARISTA04T2 - - - - 64005 - ARISTA05T0 - - - - 65200 - ARISTA05T2 - - - - 64006 - ARISTA06T0 - - - - 65200 - ARISTA06T2 - - - - 64007 - ARISTA07T0 - - - - 65200 - ARISTA07T2 - - - - 64008 - ARISTA08T0 - - - - 65200 - ARISTA08T2 - - - - 64009 - ARISTA09T0 - - - - 65200 - ARISTA09T2 - - - - 64010 - ARISTA10T0 - - - - 65200 - ARISTA10T2 - - - - 64011 - ARISTA11T0 - - - - 65200 - ARISTA11T2 - - - - 64012 - ARISTA12T0 - - - - 65200 - ARISTA12T2 - - - - 64013 - ARISTA13T0 - - - - 65200 - ARISTA13T2 - - - - 64014 - ARISTA14T0 - - - - 65200 - ARISTA14T2 - - - - 64015 - ARISTA15T0 - - - - 65200 - ARISTA15T2 - - - - 64016 - ARISTA16T0 - - - - 65200 - ARISTA16T2 - -
@@ -645,164 +30,324 @@ - Ethernet0 + hundredGigE1 10.0.0.0/31 - Ethernet4 + hundredGigE2 10.0.0.2/31 - Ethernet8 + hundredGigE3 10.0.0.4/31 - Ethernet12 + hundredGigE4 10.0.0.6/31 - Ethernet16 + hundredGigE5 10.0.0.8/31 - Ethernet20 + hundredGigE6 10.0.0.10/31 - Ethernet24 + hundredGigE7 10.0.0.12/31 - Ethernet28 + hundredGigE8 10.0.0.14/31 - Ethernet32 + hundredGigE9 10.0.0.16/31 - Ethernet36 + hundredGigE10 10.0.0.18/31 - Ethernet40 + hundredGigE11 10.0.0.20/31 - Ethernet44 + hundredGigE12 10.0.0.22/31 - Ethernet48 + hundredGigE13 10.0.0.24/31 - Ethernet52 + hundredGigE14 10.0.0.26/31 - Ethernet56 + hundredGigE15 10.0.0.28/31 - Ethernet60 + hundredGigE16 10.0.0.30/31 - Ethernet64 + hundredGigE17 10.0.0.32/31 - Ethernet68 + hundredGigE18 10.0.0.34/31 - Ethernet72 + hundredGigE19 10.0.0.36/31 - Ethernet76 + hundredGigE20 10.0.0.38/31 - Ethernet80 + hundredGigE21 10.0.0.40/31 - Ethernet84 + hundredGigE22 10.0.0.42/31 - Ethernet88 + hundredGigE23 10.0.0.44/31 - Ethernet92 + hundredGigE24 10.0.0.46/31 - Ethernet96 + hundredGigE25 10.0.0.48/31 - Ethernet100 + hundredGigE26 10.0.0.50/31 - Ethernet104 + hundredGigE27 10.0.0.52/31 - Ethernet108 + hundredGigE28 10.0.0.54/31 - Ethernet112 + hundredGigE29 10.0.0.56/31 - Ethernet116 + hundredGigE30 10.0.0.58/31 - Ethernet120 + hundredGigE31 10.0.0.60/31 - Ethernet124 + hundredGigE32 10.0.0.62/31 + + + hundredGigE33 + 10.0.0.64/31 + + + + hundredGigE34 + 10.0.0.66/31 + + + + hundredGigE35 + 10.0.0.68/31 + + + + hundredGigE36 + 10.0.0.70/31 + + + + hundredGigE37 + 10.0.0.72/31 + + + + hundredGigE38 + 10.0.0.74/31 + + + + hundredGigE39 + 10.0.0.76/31 + + + + hundredGigE40 + 10.0.0.78/31 + + + + hundredGigE41 + 10.0.0.80/31 + + + + hundredGigE42 + 10.0.0.82/31 + + + + hundredGigE43 + 10.0.0.84/31 + + + + hundredGigE44 + 10.0.0.86/31 + + + + hundredGigE45 + 10.0.0.88/31 + + + + hundredGigE46 + 10.0.0.90/31 + + + + hundredGigE47 + 10.0.0.92/31 + + + + hundredGigE48 + 10.0.0.94/31 + + + + hundredGigE49 + 10.0.0.96/31 + + + + hundredGigE50 + 10.0.0.98/31 + + + + hundredGigE51 + 10.0.0.100/31 + + + + hundredGigE52 + 10.0.0.102/31 + + + + hundredGigE53 + 10.0.0.104/31 + + + + hundredGigE54 + 10.0.0.106/31 + + + + hundredGigE55 + 10.0.0.108/31 + + + + hundredGigE56 + 10.0.0.110/31 + + + + hundredGigE57 + 10.0.0.112/31 + + + + hundredGigE58 + 10.0.0.114/31 + + + + hundredGigE59 + 10.0.0.116/31 + + + + hundredGigE60 + 10.0.0.118/31 + + + + hundredGigE61 + 10.0.0.120/31 + + + + hundredGigE62 + 10.0.0.122/31 + + + + hundredGigE63 + 10.0.0.124/31 + + + + hundredGigE64 + 10.0.0.126/31 + @@ -814,233 +359,457 @@ DeviceInterfaceLink - sonic - Ethernet0 - ARISTA01T2 - Ethernet1 + sonic-target + hundredGigE1 + sonic + hundredGigE1 DeviceInterfaceLink - sonic - Ethernet4 - ARISTA02T2 - Ethernet1 + sonic-target + hundredGigE2 + sonic + hundredGigE2 DeviceInterfaceLink - sonic - Ethernet8 - ARISTA03T2 - Ethernet1 + sonic-target + hundredGigE3 + sonic + hundredGigE3 DeviceInterfaceLink - sonic - Ethernet12 - ARISTA04T2 - Ethernet1 + sonic-target + hundredGigE4 + sonic + hundredGigE4 DeviceInterfaceLink - sonic - Ethernet16 - ARISTA05T2 - Ethernet1 + sonic-target + hundredGigE5 + sonic + hundredGigE5 DeviceInterfaceLink - sonic - Ethernet20 - ARISTA06T2 - Ethernet1 + sonic-target + hundredGigE6 + sonic + hundredGigE6 DeviceInterfaceLink - sonic - Ethernet24 - ARISTA07T2 - Ethernet1 + sonic-target + hundredGigE7 + sonic + hundredGigE7 DeviceInterfaceLink - sonic - Ethernet28 - ARISTA08T2 - Ethernet1 + sonic-target + hundredGigE8 + sonic + hundredGigE8 DeviceInterfaceLink - sonic - Ethernet32 - ARISTA09T2 - Ethernet1 + sonic-target + hundredGigE9 + sonic + hundredGigE9 DeviceInterfaceLink - sonic - Ethernet36 - ARISTA10T2 - Ethernet1 + sonic-target + hundredGigE10 + sonic + hundredGigE10 DeviceInterfaceLink - sonic - Ethernet40 - ARISTA11T2 - Ethernet1 + sonic-target + hundredGigE11 + sonic + hundredGigE11 DeviceInterfaceLink - sonic - Ethernet44 - ARISTA12T2 - Ethernet1 + sonic-target + hundredGigE12 + sonic + hundredGigE12 DeviceInterfaceLink - sonic - Ethernet48 - ARISTA13T2 - Ethernet1 + sonic-target + hundredGigE13 + sonic + hundredGigE13 DeviceInterfaceLink - sonic - Ethernet52 - ARISTA14T2 - Ethernet1 + sonic-target + hundredGigE14 + sonic + hundredGigE14 DeviceInterfaceLink - sonic - Ethernet56 - ARISTA15T2 - Ethernet1 + sonic-target + hundredGigE15 + sonic + hundredGigE15 DeviceInterfaceLink - sonic - Ethernet60 - ARISTA16T2 - Ethernet1 + sonic-target + hundredGigE16 + sonic + hundredGigE16 DeviceInterfaceLink - sonic - Ethernet64 - ARISTA01T0 - Ethernet1 + sonic-target + hundredGigE17 + sonic + hundredGigE17 DeviceInterfaceLink - sonic - Ethernet68 - ARISTA02T0 - Ethernet1 + sonic-target + hundredGigE18 + sonic + hundredGigE18 DeviceInterfaceLink - sonic - Ethernet72 - ARISTA03T0 - Ethernet1 + sonic-target + hundredGigE19 + sonic + hundredGigE19 DeviceInterfaceLink - sonic - Ethernet76 - ARISTA04T0 - Ethernet1 + sonic-target + hundredGigE20 + sonic + hundredGigE20 DeviceInterfaceLink - sonic - Ethernet80 - ARISTA05T0 - Ethernet1 + sonic-target + hundredGigE21 + sonic + hundredGigE21 DeviceInterfaceLink - sonic - Ethernet84 - ARISTA06T0 - Ethernet1 + sonic-target + hundredGigE22 + sonic + hundredGigE22 DeviceInterfaceLink - sonic - Ethernet88 - ARISTA07T0 - Ethernet1 + sonic-target + hundredGigE23 + sonic + hundredGigE23 DeviceInterfaceLink - sonic - Ethernet92 - ARISTA08T0 - Ethernet1 + sonic-target + hundredGigE24 + sonic + hundredGigE24 DeviceInterfaceLink - sonic - Ethernet96 - ARISTA09T0 - Ethernet1 + sonic-target + hundredGigE25 + sonic + hundredGigE25 DeviceInterfaceLink - sonic - Ethernet100 - ARISTA10T0 - Ethernet1 + sonic-target + hundredGigE26 + sonic + hundredGigE26 DeviceInterfaceLink - sonic - Ethernet104 - ARISTA11T0 - Ethernet1 + sonic-target + hundredGigE27 + sonic + hundredGigE27 DeviceInterfaceLink - sonic - Ethernet108 - ARISTA12T0 - Ethernet1 + sonic-target + hundredGigE28 + sonic + hundredGigE28 DeviceInterfaceLink - sonic - Ethernet112 - ARISTA13T0 - Ethernet1 + sonic-target + hundredGigE29 + sonic + hundredGigE29 DeviceInterfaceLink - sonic - Ethernet116 - ARISTA14T0 - Ethernet1 + sonic-target + hundredGigE30 + sonic + hundredGigE30 DeviceInterfaceLink - sonic - Ethernet120 - ARISTA15T0 - Ethernet1 + sonic-target + hundredGigE31 + sonic + hundredGigE31 DeviceInterfaceLink - sonic - Ethernet124 - ARISTA16T0 - Ethernet1 + sonic-target + hundredGigE32 + sonic + hundredGigE32 + + + DeviceInterfaceLink + sonic-target + hundredGigE33 + sonic + hundredGigE33 + + + DeviceInterfaceLink + sonic-target + hundredGigE34 + sonic + hundredGigE34 + + + DeviceInterfaceLink + sonic-target + hundredGigE35 + sonic + hundredGigE35 + + + DeviceInterfaceLink + sonic-target + hundredGigE36 + sonic + hundredGigE36 + + + DeviceInterfaceLink + sonic-target + hundredGigE37 + sonic + hundredGigE37 + + + DeviceInterfaceLink + sonic-target + hundredGigE38 + sonic + hundredGigE38 + + + DeviceInterfaceLink + sonic-target + hundredGigE39 + sonic + hundredGigE39 + + + DeviceInterfaceLink + sonic-target + hundredGigE40 + sonic + hundredGigE40 + + + DeviceInterfaceLink + sonic-target + hundredGigE41 + sonic + hundredGigE41 + + + DeviceInterfaceLink + sonic-target + hundredGigE42 + sonic + hundredGigE42 + + + DeviceInterfaceLink + sonic-target + hundredGigE43 + sonic + hundredGigE43 + + + DeviceInterfaceLink + sonic-target + hundredGigE44 + sonic + hundredGigE44 + + + DeviceInterfaceLink + sonic-target + hundredGigE45 + sonic + hundredGigE45 + + + DeviceInterfaceLink + sonic-target + hundredGigE46 + sonic + hundredGigE46 + + + DeviceInterfaceLink + sonic-target + hundredGigE47 + sonic + hundredGigE47 + + + DeviceInterfaceLink + sonic-target + hundredGigE48 + sonic + hundredGigE48 + + + DeviceInterfaceLink + sonic-target + hundredGigE49 + sonic + hundredGigE49 + + + DeviceInterfaceLink + sonic-target + hundredGigE50 + sonic + hundredGigE50 + + + DeviceInterfaceLink + sonic-target + hundredGigE51 + sonic + hundredGigE51 + + + DeviceInterfaceLink + sonic-target + hundredGigE52 + sonic + hundredGigE52 + + + DeviceInterfaceLink + sonic-target + hundredGigE53 + sonic + hundredGigE53 + + + DeviceInterfaceLink + sonic-target + hundredGigE54 + sonic + hundredGigE54 + + + DeviceInterfaceLink + sonic-target + hundredGigE55 + sonic + hundredGigE55 + + + DeviceInterfaceLink + sonic-target + hundredGigE56 + sonic + hundredGigE56 + + + DeviceInterfaceLink + sonic-target + hundredGigE57 + sonic + hundredGigE57 + + + DeviceInterfaceLink + sonic-target + hundredGigE58 + sonic + hundredGigE58 + + + DeviceInterfaceLink + sonic-target + hundredGigE59 + sonic + hundredGigE59 + + + DeviceInterfaceLink + sonic-target + hundredGigE60 + sonic + hundredGigE60 + + + DeviceInterfaceLink + sonic-target + hundredGigE61 + sonic + hundredGigE61 + + + DeviceInterfaceLink + sonic-target + hundredGigE62 + sonic + hundredGigE62 + + + DeviceInterfaceLink + sonic-target + hundredGigE63 + sonic + hundredGigE63 + + + DeviceInterfaceLink + sonic-target + hundredGigE64 + sonic + hundredGigE64 sonic - Accton-AS7712-32X + Accton-AS7816-64X @@ -1064,11 +833,16 @@ + + ErspanDestinationIpv4 + + 2.2.2.2 + sonic - Accton-AS7712-32X + Accton-AS7816-64X diff --git a/device/accton/x86_64-accton_as7816_64x-r0/plugins/psuutil.py b/device/accton/x86_64-accton_as7816_64x-r0/plugins/psuutil.py new file mode 100755 index 00000000000..707c7c897c8 --- /dev/null +++ b/device/accton/x86_64-accton_as7816_64x-r0/plugins/psuutil.py @@ -0,0 +1,61 @@ +#!/usr/bin/env python + +############################################################################# +# Accton +# +# Module contains an implementation of SONiC PSU Base API and +# provides the PSUs status which are available in the platform +# +############################################################################# + +import os.path + +try: + from sonic_psu.psu_base import PsuBase +except ImportError as e: + raise ImportError (str(e) + "- required module not found") + +class PsuUtil(PsuBase): + """Platform-specific PSUutil class""" + + def __init__(self): + PsuBase.__init__(self) + + self.psu_path = "/sys/bus/i2c/devices/" + self.psu_presence = "/psu_present" + self.psu_oper_status = "/psu_power_good" + self.psu_mapping = { + 1: "10-0053", + 2: "9-0050", + } + + def get_num_psus(self): + return len(self.psu_mapping) + + def get_psu_status(self, index): + if index is None: + return False + + status = 0 + node = self.psu_path + self.psu_mapping[index]+self.psu_oper_status + try: + with open(node, 'r') as power_status: + status = int(power_status.read()) + except IOError: + return False + + return status == 1 + + def get_psu_presence(self, index): + if index is None: + return False + + status = 0 + node = self.psu_path + self.psu_mapping[index] + self.psu_presence + try: + with open(node, 'r') as presence_status: + status = int(presence_status.read()) + except IOError: + return False + + return status == 1 diff --git a/device/accton/x86_64-accton_as7816_64x-r0/plugins/sfputil.py b/device/accton/x86_64-accton_as7816_64x-r0/plugins/sfputil.py index 7c82583c26b..26c2b37c672 100644 --- a/device/accton/x86_64-accton_as7816_64x-r0/plugins/sfputil.py +++ b/device/accton/x86_64-accton_as7816_64x-r0/plugins/sfputil.py @@ -94,9 +94,8 @@ def reset(self, port_num): # Check for invalid port_num if port_num < self._port_start or port_num > self._port_end: return False - - path = "/sys/bus/i2c/devices/{0}-0050/sfp_port_reset" - port_ps = path.format(self.port_to_i2c_mapping[port_num+1]) + path = "/sys/bus/i2c/devices/19-0060/module_reset_{0}" + port_ps = path.format(port_num+1) try: reg_file = open(port_ps, 'w') @@ -104,20 +103,17 @@ def reset(self, port_num): print "Error: unable to open file: %s" % str(e) return False - #toggle reset + #HW will clear reset after set. reg_file.seek(0) reg_file.write('1') - time.sleep(1) - reg_file.seek(0) - reg_file.write('0') reg_file.close() return True def set_low_power_mode(self, port_nuM, lpmode): - raise NotImplementedErro + raise NotImplementedError def get_low_power_mode(self, port_num): - raise NotImplementedErro + raise NotImplementedError def get_presence(self, port_num): # Check for invalid port_num diff --git a/device/arista/x86_64-arista_7050_qx32/Arista-7050-QX32/buffers.json.j2 b/device/arista/x86_64-arista_7050_qx32/Arista-7050-QX32/buffers.json.j2 index 560cae5dd1b..10f9da575a1 100644 --- a/device/arista/x86_64-arista_7050_qx32/Arista-7050-QX32/buffers.json.j2 +++ b/device/arista/x86_64-arista_7050_qx32/Arista-7050-QX32/buffers.json.j2 @@ -71,20 +71,15 @@ "ingress_lossless_pool": { "size": "7274496", "type": "ingress", - "mode": "static" + "mode": "dynamic" }, "ingress_lossy_pool": { "size": "5491712", "type": "ingress", "mode": "dynamic" }, - "egress_lossless_pool0": { - "size": "3637248", - "type": "egress", - "mode": "static" - }, - "egress_lossless_pool1": { - "size": "3637248", + "egress_lossless_pool": { + "size": "7274496", "type": "egress", "mode": "static" }, @@ -95,20 +90,23 @@ } }, "BUFFER_PROFILE": { + "ingress_lossless_profile": { + "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "xon":"18432", + "xoff":"40560", + "size":"41808", + "dynamic_th":"-3", + "xon_offset":"2496" + }, "ingress_lossy_profile": { "pool":"[BUFFER_POOL|ingress_lossy_pool]", "size":"1518", "dynamic_th":"3" }, - "egress_lossless_profile0": { - "pool":"[BUFFER_POOL|egress_lossless_pool0]", - "size":"1518", - "static_th":"3637248" - }, - "egress_lossless_profile1": { - "pool":"[BUFFER_POOL|egress_lossless_pool1]", - "size":"1518", - "static_th":"3637248" + "egress_lossless_profile": { + "pool":"[BUFFER_POOL|egress_lossless_pool]", + "size":"0", + "static_th":"7274496" }, "egress_lossy_profile": { "pool":"[BUFFER_POOL|egress_lossy_pool]", @@ -117,16 +115,16 @@ } }, "BUFFER_PG": { + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + }, "{{ port_names }}|0-1": { "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" } }, "BUFFER_QUEUE": { - "{{ port_names }}|3": { - "profile" : "[BUFFER_PROFILE|egress_lossless_profile0]" - }, - "{{ port_names }}|4": { - "profile" : "[BUFFER_PROFILE|egress_lossless_profile1]" + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" }, "{{ port_names }}|0-1": { "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" diff --git a/device/arista/x86_64-arista_7050_qx32/Arista-7050-QX32/pg_profile_lookup.ini b/device/arista/x86_64-arista_7050_qx32/Arista-7050-QX32/pg_profile_lookup.ini deleted file mode 100644 index f3a0840558a..00000000000 --- a/device/arista/x86_64-arista_7050_qx32/Arista-7050-QX32/pg_profile_lookup.ini +++ /dev/null @@ -1,17 +0,0 @@ -# PG lossless profiles. -# speed cable size xon xoff threshold - 10000 5m 113664 18432 76800 0 - 25000 5m 113664 18432 76800 0 - 40000 5m 113664 18432 76800 0 - 50000 5m 113664 18432 76800 0 - 100000 5m 113664 18432 76800 0 - 10000 40m 113664 18432 76800 0 - 25000 40m 113664 18432 76800 0 - 40000 40m 113664 18432 76800 0 - 50000 40m 113664 18432 76800 0 - 100000 40m 113664 18432 76800 0 - 10000 300m 113664 18432 76800 0 - 25000 300m 113664 18432 76800 0 - 40000 300m 113664 18432 76800 0 - 50000 300m 113664 18432 76800 0 - 100000 300m 113664 18432 76800 0 diff --git a/device/arista/x86_64-arista_7050_qx32/Arista-7050-QX32/qos.json b/device/arista/x86_64-arista_7050_qx32/Arista-7050-QX32/qos.json new file mode 100644 index 00000000000..926911ab59d --- /dev/null +++ b/device/arista/x86_64-arista_7050_qx32/Arista-7050-QX32/qos.json @@ -0,0 +1,143 @@ +{ + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "0": "0", + "1": "1", + "3": "3", + "4": "4" + } + }, + "MAP_PFC_PRIORITY_TO_QUEUE": { + "AZURE": { + "0": "0", + "1": "1", + "3": "3", + "4": "4" + } + }, + "TC_TO_QUEUE_MAP": { + "AZURE": { + "0": "0", + "1": "1", + "3": "3", + "4": "4" + } + }, + "DSCP_TO_TC_MAP": { + "AZURE": { + "0":"0", + "1":"0", + "2":"0", + "3":"3", + "4":"4", + "5":"0", + "6":"0", + "7":"0", + "8":"1", + "9":"0", + "10":"0", + "11":"0", + "12":"0", + "13":"0", + "14":"0", + "15":"0", + "16":"0", + "17":"0", + "18":"0", + "19":"0", + "20":"0", + "21":"0", + "22":"0", + "23":"0", + "24":"0", + "25":"0", + "26":"0", + "27":"0", + "28":"0", + "29":"0", + "30":"0", + "31":"0", + "32":"0", + "33":"0", + "34":"0", + "35":"0", + "36":"0", + "37":"0", + "38":"0", + "39":"0", + "40":"0", + "41":"0", + "42":"0", + "43":"0", + "44":"0", + "45":"0", + "46":"0", + "47":"0", + "48":"0", + "49":"0", + "50":"0", + "51":"0", + "52":"0", + "53":"0", + "54":"0", + "55":"0", + "56":"0", + "57":"0", + "58":"0", + "59":"0", + "60":"0", + "61":"0", + "62":"0", + "63":"0" + } + }, + "SCHEDULER": { + "scheduler.0" : { + "type":"DWRR", + "weight": "25" + }, + "scheduler.1" : { + "type":"DWRR", + "weight": "30" + }, + "scheduler.2" : { + "type":"DWRR", + "weight": "20" + } + }, + "PORT_QOS_MAP": { + "Ethernet0,Ethernet4,Ethernet8,Ethernet12,Ethernet16,Ethernet20,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet44,Ethernet48,Ethernet52,Ethernet56,Ethernet60,Ethernet64,Ethernet68,Ethernet72,Ethernet76,Ethernet80,Ethernet84,Ethernet88,Ethernet92,Ethernet96,Ethernet100,Ethernet104,Ethernet108,Ethernet112,Ethernet116,Ethernet120,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", + "red_max_threshold":"312000", + "red_min_threshold":"104000", + "yellow_max_threshold":"312000", + "yellow_min_threshold":"104000", + "green_max_threshold":"312000", + "green_min_threshold":"104000" + } + }, + "QUEUE": { + "Ethernet0,Ethernet4,Ethernet8,Ethernet12,Ethernet16,Ethernet20,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet44,Ethernet48,Ethernet52,Ethernet56,Ethernet60,Ethernet64,Ethernet68,Ethernet72,Ethernet76,Ethernet80,Ethernet84,Ethernet88,Ethernet92,Ethernet96,Ethernet100,Ethernet104,Ethernet108,Ethernet112,Ethernet116,Ethernet120,Ethernet124|3-4" : { + "scheduler" : "[SCHEDULER|scheduler.0]", + "wred_profile" : "[WRED_PROFILE|AZURE_LOSSLESS]" + }, + "Ethernet0,Ethernet4,Ethernet8,Ethernet12,Ethernet16,Ethernet20,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet44,Ethernet48,Ethernet52,Ethernet56,Ethernet60,Ethernet64,Ethernet68,Ethernet72,Ethernet76,Ethernet80,Ethernet84,Ethernet88,Ethernet92,Ethernet96,Ethernet100,Ethernet104,Ethernet108,Ethernet112,Ethernet116,Ethernet120,Ethernet124|0" : { + "scheduler" : "[SCHEDULER|scheduler.1]" + }, + "Ethernet0,Ethernet4,Ethernet8,Ethernet12,Ethernet16,Ethernet20,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet44,Ethernet48,Ethernet52,Ethernet56,Ethernet60,Ethernet64,Ethernet68,Ethernet72,Ethernet76,Ethernet80,Ethernet84,Ethernet88,Ethernet92,Ethernet96,Ethernet100,Ethernet104,Ethernet108,Ethernet112,Ethernet116,Ethernet120,Ethernet124|1" : { + "scheduler" : "[SCHEDULER|scheduler.2]" + } + } +} diff --git a/device/arista/x86_64-arista_7050_qx32s/Arista-7050-QX-32S/buffers.json.j2 b/device/arista/x86_64-arista_7050_qx32s/Arista-7050-QX-32S/buffers.json.j2 new file mode 100644 index 00000000000..10f9da575a1 --- /dev/null +++ b/device/arista/x86_64-arista_7050_qx32s/Arista-7050-QX-32S/buffers.json.j2 @@ -0,0 +1,133 @@ +{# Default values which will be used if no actual configura available #} +{% set default_cable = '300m' %} +{% set default_speed = '100G' %} +{% set default_ports_num = 32 -%} + +{# Port configuration to cable length look-up table #} +{# Each record describes mapping of DUT (DUT port) role and neighbor role to cable length #} +{# Roles described in the minigraph #} +{% set ports2cable = { + 'torrouter_server' : '5m', + 'leafrouter_torrouter' : '40m', + 'spinerouter_leafrouter' : '300m' + } +%} + +{%- macro cable_length(port_name) -%} + {%- set cable_len = [] -%} + {%- for local_port in DEVICE_NEIGHBOR -%} + {%- if local_port == port_name -%} + {%- if DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] -%} + {%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] -%} + {%- set neighbor_role = neighbor.type -%} + {%- set roles1 = switch_role + '_' + neighbor_role %} + {%- set roles2 = neighbor_role + '_' + switch_role -%} + {%- set roles1 = roles1 | lower -%} + {%- set roles2 = roles2 | lower -%} + {%- if roles1 in ports2cable -%} + {%- if cable_len.append(ports2cable[roles1]) -%}{%- endif -%} + {%- elif roles2 in ports2cable -%} + {%- if cable_len.append(ports2cable[roles2]) -%}{%- endif -%} + {%- endif -%} + {%- endif -%} + {%- endif -%} + {%- endfor -%} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else -%} + {{ default_cable }} + {%- endif -%} +{% endmacro %} + +{%- if DEVICE_METADATA is defined %} +{%- set switch_role = DEVICE_METADATA['localhost']['type'] %} +{%- endif -%} + +{# Generate list of ports if not defined #} +{% if PORT is not defined %} + {% set PORT = [] %} + {% for port_idx in range(0,default_ports_num) %} + {% if PORT.append("Ethernet%d" % (port_idx*4)) %}{% endif %} + {% endfor %} +{% endif -%} + +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + +{ + "CABLE_LENGTH": { + "AZURE": { + {% for port in PORT %} + {% set cable = cable_length(port) -%} + "{{ port }}": "{{ cable }}"{%- if not loop.last -%},{% endif %} + + {% endfor %} + } + }, + "BUFFER_POOL": { + "ingress_lossless_pool": { + "size": "7274496", + "type": "ingress", + "mode": "dynamic" + }, + "ingress_lossy_pool": { + "size": "5491712", + "type": "ingress", + "mode": "dynamic" + }, + "egress_lossless_pool": { + "size": "7274496", + "type": "egress", + "mode": "static" + }, + "egress_lossy_pool": { + "size": "5491712", + "type": "egress", + "mode": "dynamic" + } + }, + "BUFFER_PROFILE": { + "ingress_lossless_profile": { + "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "xon":"18432", + "xoff":"40560", + "size":"41808", + "dynamic_th":"-3", + "xon_offset":"2496" + }, + "ingress_lossy_profile": { + "pool":"[BUFFER_POOL|ingress_lossy_pool]", + "size":"1518", + "dynamic_th":"3" + }, + "egress_lossless_profile": { + "pool":"[BUFFER_POOL|egress_lossless_pool]", + "size":"0", + "static_th":"7274496" + }, + "egress_lossy_profile": { + "pool":"[BUFFER_POOL|egress_lossy_pool]", + "size":"1518", + "dynamic_th":"3" + } + }, + "BUFFER_PG": { + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + }, + "{{ port_names }}|0-1": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + } + }, + "BUFFER_QUEUE": { + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" + }, + "{{ port_names }}|0-1": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + } + } +} diff --git a/device/arista/x86_64-arista_7050_qx32s/Arista-7050-QX-32S/qos.json b/device/arista/x86_64-arista_7050_qx32s/Arista-7050-QX-32S/qos.json new file mode 100644 index 00000000000..926911ab59d --- /dev/null +++ b/device/arista/x86_64-arista_7050_qx32s/Arista-7050-QX-32S/qos.json @@ -0,0 +1,143 @@ +{ + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "0": "0", + "1": "1", + "3": "3", + "4": "4" + } + }, + "MAP_PFC_PRIORITY_TO_QUEUE": { + "AZURE": { + "0": "0", + "1": "1", + "3": "3", + "4": "4" + } + }, + "TC_TO_QUEUE_MAP": { + "AZURE": { + "0": "0", + "1": "1", + "3": "3", + "4": "4" + } + }, + "DSCP_TO_TC_MAP": { + "AZURE": { + "0":"0", + "1":"0", + "2":"0", + "3":"3", + "4":"4", + "5":"0", + "6":"0", + "7":"0", + "8":"1", + "9":"0", + "10":"0", + "11":"0", + "12":"0", + "13":"0", + "14":"0", + "15":"0", + "16":"0", + "17":"0", + "18":"0", + "19":"0", + "20":"0", + "21":"0", + "22":"0", + "23":"0", + "24":"0", + "25":"0", + "26":"0", + "27":"0", + "28":"0", + "29":"0", + "30":"0", + "31":"0", + "32":"0", + "33":"0", + "34":"0", + "35":"0", + "36":"0", + "37":"0", + "38":"0", + "39":"0", + "40":"0", + "41":"0", + "42":"0", + "43":"0", + "44":"0", + "45":"0", + "46":"0", + "47":"0", + "48":"0", + "49":"0", + "50":"0", + "51":"0", + "52":"0", + "53":"0", + "54":"0", + "55":"0", + "56":"0", + "57":"0", + "58":"0", + "59":"0", + "60":"0", + "61":"0", + "62":"0", + "63":"0" + } + }, + "SCHEDULER": { + "scheduler.0" : { + "type":"DWRR", + "weight": "25" + }, + "scheduler.1" : { + "type":"DWRR", + "weight": "30" + }, + "scheduler.2" : { + "type":"DWRR", + "weight": "20" + } + }, + "PORT_QOS_MAP": { + "Ethernet0,Ethernet4,Ethernet8,Ethernet12,Ethernet16,Ethernet20,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet44,Ethernet48,Ethernet52,Ethernet56,Ethernet60,Ethernet64,Ethernet68,Ethernet72,Ethernet76,Ethernet80,Ethernet84,Ethernet88,Ethernet92,Ethernet96,Ethernet100,Ethernet104,Ethernet108,Ethernet112,Ethernet116,Ethernet120,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", + "red_max_threshold":"312000", + "red_min_threshold":"104000", + "yellow_max_threshold":"312000", + "yellow_min_threshold":"104000", + "green_max_threshold":"312000", + "green_min_threshold":"104000" + } + }, + "QUEUE": { + "Ethernet0,Ethernet4,Ethernet8,Ethernet12,Ethernet16,Ethernet20,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet44,Ethernet48,Ethernet52,Ethernet56,Ethernet60,Ethernet64,Ethernet68,Ethernet72,Ethernet76,Ethernet80,Ethernet84,Ethernet88,Ethernet92,Ethernet96,Ethernet100,Ethernet104,Ethernet108,Ethernet112,Ethernet116,Ethernet120,Ethernet124|3-4" : { + "scheduler" : "[SCHEDULER|scheduler.0]", + "wred_profile" : "[WRED_PROFILE|AZURE_LOSSLESS]" + }, + "Ethernet0,Ethernet4,Ethernet8,Ethernet12,Ethernet16,Ethernet20,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet44,Ethernet48,Ethernet52,Ethernet56,Ethernet60,Ethernet64,Ethernet68,Ethernet72,Ethernet76,Ethernet80,Ethernet84,Ethernet88,Ethernet92,Ethernet96,Ethernet100,Ethernet104,Ethernet108,Ethernet112,Ethernet116,Ethernet120,Ethernet124|0" : { + "scheduler" : "[SCHEDULER|scheduler.1]" + }, + "Ethernet0,Ethernet4,Ethernet8,Ethernet12,Ethernet16,Ethernet20,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet44,Ethernet48,Ethernet52,Ethernet56,Ethernet60,Ethernet64,Ethernet68,Ethernet72,Ethernet76,Ethernet80,Ethernet84,Ethernet88,Ethernet92,Ethernet96,Ethernet100,Ethernet104,Ethernet108,Ethernet112,Ethernet116,Ethernet120,Ethernet124|1" : { + "scheduler" : "[SCHEDULER|scheduler.2]" + } + } +} diff --git a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/port_config.ini b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/port_config.ini index 1119dfd231c..3940948a354 100644 --- a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/port_config.ini +++ b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/port_config.ini @@ -1,67 +1,67 @@ -# name lanes alias index -Ethernet0 77,78,79,80 Ethernet1/1 1 -Ethernet4 65,66,67,68 Ethernet2/1 2 -Ethernet8 85,86,87,88 Ethernet3/1 3 -Ethernet12 89,90,91,92 Ethernet4/1 4 -Ethernet16 109,110,111,112 Ethernet5/1 5 -Ethernet20 97,98,99,100 Ethernet6/1 6 -Ethernet24 5,6,7,8 Ethernet7/1 7 -Ethernet28 13,14,15,16 Ethernet8/1 8 -Ethernet32 25,26,27,28 Ethernet9/1 9 -Ethernet36 21,22,23,24 Ethernet10/1 10 -Ethernet40 37,38,39,40 Ethernet11/1 11 -Ethernet44 45,46,47,48 Ethernet12/1 12 -Ethernet48 57,58,59,60 Ethernet13/1 13 -Ethernet52 53,54,55,56 Ethernet14/1 14 -Ethernet56 117,118,119,120 Ethernet15/1 15 -Ethernet60 121,122,123,124 Ethernet16/1 16 -Ethernet64 141,142,143,144 Ethernet17/1 17 -Ethernet68 133,134,135,136 Ethernet18/1 18 -Ethernet72 197,198,199,200 Ethernet19/1 19 -Ethernet76 205,206,207,208 Ethernet20/1 20 -Ethernet80 217,218,219,220 Ethernet21/1 21 -Ethernet84 213,214,215,216 Ethernet22/1 22 -Ethernet88 229,230,231,232 Ethernet23/1 23 -Ethernet92 237,238,239,240 Ethernet24/1 24 -Ethernet96 249,250,251,252 Ethernet25/1 25 -Ethernet100 245,246,247,248 Ethernet26/1 26 -Ethernet104 149,150,151,152 Ethernet27/1 27 -Ethernet108 153,154,155,156 Ethernet28/1 28 -Ethernet112 173,174,175,176 Ethernet29/1 29 -Ethernet116 161,162,163,164 Ethernet30/1 30 -Ethernet120 181,182,183,184 Ethernet31/1 31 -Ethernet124 185,186,187,188 Ethernet32/1 32 -Ethernet128 69,70,71,72 Ethernet33/1 33 -Ethernet132 73,74,75,76 Ethernet34/1 34 -Ethernet136 93,94,95,96 Ethernet35/1 35 -Ethernet140 81,82,83,84 Ethernet36/1 36 -Ethernet144 101,102,103,104 Ethernet37/1 37 -Ethernet148 105,106,107,108 Ethernet38/1 38 -Ethernet152 9,10,11,12 Ethernet39/1 39 -Ethernet156 1,2,3,4 Ethernet40/1 40 -Ethernet160 17,18,19,20 Ethernet41/1 41 -Ethernet164 29,30,31,32 Ethernet42/1 42 -Ethernet168 41,42,43,44 Ethernet43/1 43 -Ethernet172 33,34,35,36 Ethernet44/1 44 -Ethernet176 49,50,51,52 Ethernet45/1 45 -Ethernet180 61,62,63,64 Ethernet46/1 46 -Ethernet184 125,126,127,128 Ethernet47/1 47 -Ethernet188 113,114,115,116 Ethernet48/1 48 -Ethernet192 129,130,131,132 Ethernet49/1 49 -Ethernet196 137,138,139,140 Ethernet50/1 50 -Ethernet200 201,202,203,204 Ethernet51/1 51 -Ethernet204 193,194,195,196 Ethernet52/1 52 -Ethernet208 209,210,211,212 Ethernet53/1 53 -Ethernet212 221,222,223,224 Ethernet54/1 54 -Ethernet216 233,234,235,236 Ethernet55/1 55 -Ethernet220 225,226,227,228 Ethernet56/1 56 -Ethernet224 241,242,243,244 Ethernet57/1 57 -Ethernet228 253,254,255,256 Ethernet58/1 58 -Ethernet232 157,158,159,160 Ethernet59/1 59 -Ethernet236 145,146,147,148 Ethernet60/1 60 -Ethernet240 165,166,167,168 Ethernet61/1 61 -Ethernet244 169,170,171,172 Ethernet62/1 62 -Ethernet248 189,190,191,192 Ethernet63/1 63 -Ethernet252 177,178,179,180 Ethernet64/1 64 -Ethernet256 257 Ethernet65 65 -Ethernet260 259 Ethernet66 66 +# name lanes alias index speed +Ethernet0 77,78,79,80 Ethernet1/1 1 100000 +Ethernet4 65,66,67,68 Ethernet2/1 2 100000 +Ethernet8 85,86,87,88 Ethernet3/1 3 100000 +Ethernet12 89,90,91,92 Ethernet4/1 4 100000 +Ethernet16 109,110,111,112 Ethernet5/1 5 100000 +Ethernet20 97,98,99,100 Ethernet6/1 6 100000 +Ethernet24 5,6,7,8 Ethernet7/1 7 100000 +Ethernet28 13,14,15,16 Ethernet8/1 8 100000 +Ethernet32 25,26,27,28 Ethernet9/1 9 100000 +Ethernet36 21,22,23,24 Ethernet10/1 10 100000 +Ethernet40 37,38,39,40 Ethernet11/1 11 100000 +Ethernet44 45,46,47,48 Ethernet12/1 12 100000 +Ethernet48 57,58,59,60 Ethernet13/1 13 100000 +Ethernet52 53,54,55,56 Ethernet14/1 14 100000 +Ethernet56 117,118,119,120 Ethernet15/1 15 100000 +Ethernet60 121,122,123,124 Ethernet16/1 16 100000 +Ethernet64 141,142,143,144 Ethernet17/1 17 100000 +Ethernet68 133,134,135,136 Ethernet18/1 18 100000 +Ethernet72 197,198,199,200 Ethernet19/1 19 100000 +Ethernet76 205,206,207,208 Ethernet20/1 20 100000 +Ethernet80 217,218,219,220 Ethernet21/1 21 100000 +Ethernet84 213,214,215,216 Ethernet22/1 22 100000 +Ethernet88 229,230,231,232 Ethernet23/1 23 100000 +Ethernet92 237,238,239,240 Ethernet24/1 24 100000 +Ethernet96 249,250,251,252 Ethernet25/1 25 100000 +Ethernet100 245,246,247,248 Ethernet26/1 26 100000 +Ethernet104 149,150,151,152 Ethernet27/1 27 100000 +Ethernet108 153,154,155,156 Ethernet28/1 28 100000 +Ethernet112 173,174,175,176 Ethernet29/1 29 100000 +Ethernet116 161,162,163,164 Ethernet30/1 30 100000 +Ethernet120 181,182,183,184 Ethernet31/1 31 100000 +Ethernet124 185,186,187,188 Ethernet32/1 32 100000 +Ethernet128 69,70,71,72 Ethernet33/1 33 100000 +Ethernet132 73,74,75,76 Ethernet34/1 34 100000 +Ethernet136 93,94,95,96 Ethernet35/1 35 100000 +Ethernet140 81,82,83,84 Ethernet36/1 36 100000 +Ethernet144 101,102,103,104 Ethernet37/1 37 100000 +Ethernet148 105,106,107,108 Ethernet38/1 38 100000 +Ethernet152 9,10,11,12 Ethernet39/1 39 100000 +Ethernet156 1,2,3,4 Ethernet40/1 40 100000 +Ethernet160 17,18,19,20 Ethernet41/1 41 100000 +Ethernet164 29,30,31,32 Ethernet42/1 42 100000 +Ethernet168 41,42,43,44 Ethernet43/1 43 100000 +Ethernet172 33,34,35,36 Ethernet44/1 44 100000 +Ethernet176 49,50,51,52 Ethernet45/1 45 100000 +Ethernet180 61,62,63,64 Ethernet46/1 46 100000 +Ethernet184 125,126,127,128 Ethernet47/1 47 100000 +Ethernet188 113,114,115,116 Ethernet48/1 48 100000 +Ethernet192 129,130,131,132 Ethernet49/1 49 100000 +Ethernet196 137,138,139,140 Ethernet50/1 50 100000 +Ethernet200 201,202,203,204 Ethernet51/1 51 100000 +Ethernet204 193,194,195,196 Ethernet52/1 52 100000 +Ethernet208 209,210,211,212 Ethernet53/1 53 100000 +Ethernet212 221,222,223,224 Ethernet54/1 54 100000 +Ethernet216 233,234,235,236 Ethernet55/1 55 100000 +Ethernet220 225,226,227,228 Ethernet56/1 56 100000 +Ethernet224 241,242,243,244 Ethernet57/1 57 100000 +Ethernet228 253,254,255,256 Ethernet58/1 58 100000 +Ethernet232 157,158,159,160 Ethernet59/1 59 100000 +Ethernet236 145,146,147,148 Ethernet60/1 60 100000 +Ethernet240 165,166,167,168 Ethernet61/1 61 100000 +Ethernet244 169,170,171,172 Ethernet62/1 62 100000 +Ethernet248 189,190,191,192 Ethernet63/1 63 100000 +Ethernet252 177,178,179,180 Ethernet64/1 64 100000 +Ethernet256 257 Ethernet65 65 10000 +Ethernet260 259 Ethernet66 66 10000 diff --git a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-D108C8/buffers.json.j2 b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-D108C8/buffers.json.j2 new file mode 100644 index 00000000000..e6e9e844469 --- /dev/null +++ b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-D108C8/buffers.json.j2 @@ -0,0 +1,3 @@ +{%- set default_topo = 't0' %} +{%- include 'buffers_config.j2' %} + diff --git a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-D108C8/buffers_defaults_t0.j2 b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-D108C8/buffers_defaults_t0.j2 new file mode 100644 index 00000000000..b3b8e6b13c4 --- /dev/null +++ b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-D108C8/buffers_defaults_t0.j2 @@ -0,0 +1,54 @@ +{%- set default_cable = '5m' %} + +{%- macro generate_port_lists(PORT_ALL) %} + {# Generate list of ports #} + {%- for port_idx in range(0,12) %} + {%- if PORT_ALL.append("Ethernet%d" % (port_idx * 4)) %}{%- endif %} + {%- if PORT_ALL.append("Ethernet%d" % (port_idx * 4 + 2)) %}{%- endif %} + {%- endfor %} + {%- for port_idx in range(20,64) %} + {%- if PORT_ALL.append("Ethernet%d" % (port_idx * 4)) %}{%- endif %} + {%- if PORT_ALL.append("Ethernet%d" % (port_idx * 4 + 2)) %}{%- endif %} + {%- endfor %} + {%- for port_idx in range(12,20) %} + {%- if PORT_ALL.append("Ethernet%d" % (port_idx * 4)) %}{%- endif %} + {%- endfor %} +{%- endmacro %} + +{%- macro generate_buffer_pool_and_profiles() %} + "BUFFER_POOL": { + "ingress_lossless_pool": { + "size": "32799936", + "type": "ingress", + "mode": "dynamic", + "xoff": "8356608" + }, + "egress_lossy_pool": { + "size": "26240448", + "type": "egress", + "mode": "dynamic" + }, + "egress_lossless_pool": { + "size": "42349632", + "type": "egress", + "mode": "static" + } + }, + "BUFFER_PROFILE": { + "ingress_lossy_profile": { + "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "size":"0", + "static_th":"11075584" + }, + "egress_lossless_profile": { + "pool":"[BUFFER_POOL|egress_lossless_pool]", + "size":"0", + "static_th":"10587408" + }, + "egress_lossy_profile": { + "pool":"[BUFFER_POOL|egress_lossy_pool]", + "size":"1664", + "dynamic_th":"-1" + } + }, +{%- endmacro %} diff --git a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-D108C8/pg_profile_lookup.ini b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-D108C8/pg_profile_lookup.ini new file mode 100644 index 00000000000..c2bf04950b8 --- /dev/null +++ b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-D108C8/pg_profile_lookup.ini @@ -0,0 +1,8 @@ +# PG lossless profiles. +# speed cable size xon xoff threshold xon_offset + 50000 5m 1248 1248 56160 -3 2496 + 100000 5m 1248 1248 96928 -3 2496 + 50000 40m 1248 1248 56160 -3 2496 + 100000 40m 1248 1248 96928 -3 2496 + 50000 300m 1248 1248 56160 -3 2496 + 100000 300m 1248 1248 96928 -3 2496 diff --git a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-D108C8/port_config.ini b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-D108C8/port_config.ini index d67a4f1bc01..c06fdd581ec 100644 --- a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-D108C8/port_config.ini +++ b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-D108C8/port_config.ini @@ -1,123 +1,123 @@ -# name lanes alias index -Ethernet0 77,78 Ethernet1/1 1 -Ethernet2 79,80 Ethernet1/3 1 -Ethernet4 65,66 Ethernet2/1 2 -Ethernet6 67,68 Ethernet2/3 2 -Ethernet8 85,86 Ethernet3/1 3 -Ethernet10 87,88 Ethernet3/3 3 -Ethernet12 89,90 Ethernet4/1 4 -Ethernet14 91,92 Ethernet4/3 4 -Ethernet16 109,110 Ethernet5/1 5 -Ethernet18 111,112 Ethernet5/3 5 -Ethernet20 97,98 Ethernet6/1 6 -Ethernet22 99,100 Ethernet6/3 6 -Ethernet24 5,6 Ethernet7/1 7 -Ethernet26 7,8 Ethernet7/3 7 -Ethernet28 13,14 Ethernet8/1 8 -Ethernet30 15,16 Ethernet8/3 8 -Ethernet32 25,26 Ethernet9/1 9 -Ethernet34 27,28 Ethernet9/3 9 -Ethernet36 21,22 Ethernet10/1 10 -Ethernet38 23,24 Ethernet10/3 10 -Ethernet40 37,38 Ethernet11/1 11 -Ethernet42 39,40 Ethernet11/3 11 -Ethernet44 45,46 Ethernet12/1 12 -Ethernet46 47,48 Ethernet12/3 12 -Ethernet48 57,58 Ethernet13/1 13 -Ethernet50 59,60 Ethernet13/3 13 -Ethernet52 53,54 Ethernet14/1 14 -Ethernet54 55,56 Ethernet14/3 14 -Ethernet56 117,118 Ethernet15/1 15 -Ethernet58 119,120 Ethernet15/3 15 -Ethernet60 121,122 Ethernet16/1 16 -Ethernet62 123,124 Ethernet16/3 16 -Ethernet64 141,142 Ethernet17/1 17 -Ethernet66 143,144 Ethernet17/3 17 -Ethernet68 133,134 Ethernet18/1 18 -Ethernet70 135,136 Ethernet18/3 18 -Ethernet72 197,198 Ethernet19/1 19 -Ethernet74 199,200 Ethernet19/3 19 -Ethernet76 205,206 Ethernet20/1 20 -Ethernet78 207,208 Ethernet20/3 20 -Ethernet80 217,218 Ethernet21/1 21 -Ethernet82 219,220 Ethernet21/3 21 -Ethernet84 213,214 Ethernet22/1 22 -Ethernet86 215,216 Ethernet22/3 22 -Ethernet88 229,230 Ethernet23/1 23 -Ethernet90 231,232 Ethernet23/3 23 -Ethernet92 237,238 Ethernet24/1 24 -Ethernet94 239,240 Ethernet24/3 24 -Ethernet96 249,250 Ethernet25/1 25 -Ethernet98 251,252 Ethernet25/3 25 -Ethernet100 245,246 Ethernet26/1 26 -Ethernet102 247,248 Ethernet26/3 26 -Ethernet104 149,150 Ethernet27/1 27 -Ethernet106 151,152 Ethernet27/3 27 -Ethernet108 153,154 Ethernet28/1 28 -Ethernet110 155,156 Ethernet28/3 28 -Ethernet112 173,174 Ethernet29/1 29 -Ethernet114 175,176 Ethernet29/3 29 -Ethernet116 161,162 Ethernet30/1 30 -Ethernet118 163,164 Ethernet30/3 30 -Ethernet120 181,182 Ethernet31/1 31 -Ethernet122 183,184 Ethernet31/3 31 -Ethernet124 185,186 Ethernet32/1 32 -Ethernet126 187,188 Ethernet32/3 32 -Ethernet128 69,70 Ethernet33/1 33 -Ethernet130 71,72 Ethernet33/3 33 -Ethernet132 73,74 Ethernet34/1 34 -Ethernet134 75,76 Ethernet34/3 34 -Ethernet136 93,94 Ethernet35/1 35 -Ethernet138 95,96 Ethernet35/3 35 -Ethernet140 81,82 Ethernet36/1 36 -Ethernet142 83,84 Ethernet36/3 36 -Ethernet144 101,102 Ethernet37/1 37 -Ethernet146 103,104 Ethernet37/3 37 -Ethernet148 105,106 Ethernet38/1 38 -Ethernet150 107,108 Ethernet38/3 38 -Ethernet152 9,10 Ethernet39/1 39 -Ethernet154 11,12 Ethernet39/3 39 -Ethernet156 1,2 Ethernet40/1 40 -Ethernet158 3,4 Ethernet40/3 40 -Ethernet160 17,18 Ethernet41/1 41 -Ethernet162 19,20 Ethernet41/3 41 -Ethernet164 29,30 Ethernet42/1 42 -Ethernet166 31,32 Ethernet42/3 42 -Ethernet168 41,42 Ethernet43/1 43 -Ethernet170 43,44 Ethernet43/3 43 -Ethernet172 33,34 Ethernet44/1 44 -Ethernet174 35,36 Ethernet44/3 44 -Ethernet176 49,50,51,52 Ethernet45/1 45 -Ethernet180 61,62,63,64 Ethernet46/1 46 -Ethernet184 125,126,127,128 Ethernet47/1 47 -Ethernet188 113,114,115,116 Ethernet48/1 48 -Ethernet192 129,130,131,132 Ethernet49/1 49 -Ethernet196 137,138,139,140 Ethernet50/1 50 -Ethernet200 201,202,203,204 Ethernet51/1 51 -Ethernet204 193,194,195,196 Ethernet52/1 52 -Ethernet208 209,210 Ethernet53/1 53 -Ethernet210 211,212 Ethernet53/3 53 -Ethernet212 221,222 Ethernet54/1 54 -Ethernet214 223,224 Ethernet54/3 54 -Ethernet216 233,234 Ethernet55/1 55 -Ethernet218 235,236 Ethernet55/3 55 -Ethernet220 225,226 Ethernet56/1 56 -Ethernet222 227,228 Ethernet56/3 56 -Ethernet224 241,242 Ethernet57/1 57 -Ethernet226 243,244 Ethernet57/3 57 -Ethernet228 253,254 Ethernet58/1 58 -Ethernet230 255,256 Ethernet58/3 58 -Ethernet232 157,158 Ethernet59/1 59 -Ethernet234 159,160 Ethernet59/3 59 -Ethernet236 145,146 Ethernet60/1 60 -Ethernet238 147,148 Ethernet60/3 60 -Ethernet240 165,166 Ethernet61/1 61 -Ethernet242 167,168 Ethernet61/3 61 -Ethernet244 169,170 Ethernet62/1 62 -Ethernet246 171,172 Ethernet62/3 62 -Ethernet248 189,190 Ethernet63/1 63 -Ethernet250 191,192 Ethernet63/3 63 -Ethernet252 177,178 Ethernet64/1 64 -Ethernet254 179,180 Ethernet64/3 64 -Ethernet256 257 Ethernet65 65 -Ethernet260 259 Ethernet66 66 +# name lanes alias index speed +Ethernet0 77,78 Ethernet1/1 1 50000 +Ethernet2 79,80 Ethernet1/3 1 50000 +Ethernet4 65,66 Ethernet2/1 2 50000 +Ethernet6 67,68 Ethernet2/3 2 50000 +Ethernet8 85,86 Ethernet3/1 3 50000 +Ethernet10 87,88 Ethernet3/3 3 50000 +Ethernet12 89,90 Ethernet4/1 4 50000 +Ethernet14 91,92 Ethernet4/3 4 50000 +Ethernet16 109,110 Ethernet5/1 5 50000 +Ethernet18 111,112 Ethernet5/3 5 50000 +Ethernet20 97,98 Ethernet6/1 6 50000 +Ethernet22 99,100 Ethernet6/3 6 50000 +Ethernet24 5,6 Ethernet7/1 7 50000 +Ethernet26 7,8 Ethernet7/3 7 50000 +Ethernet28 13,14 Ethernet8/1 8 50000 +Ethernet30 15,16 Ethernet8/3 8 50000 +Ethernet32 25,26 Ethernet9/1 9 50000 +Ethernet34 27,28 Ethernet9/3 9 50000 +Ethernet36 21,22 Ethernet10/1 10 50000 +Ethernet38 23,24 Ethernet10/3 10 50000 +Ethernet40 37,38 Ethernet11/1 11 50000 +Ethernet42 39,40 Ethernet11/3 11 50000 +Ethernet44 45,46 Ethernet12/1 12 50000 +Ethernet46 47,48 Ethernet12/3 12 50000 +Ethernet48 57,58,59,60 Ethernet13/1 13 100000 +Ethernet52 53,54,55,56 Ethernet14/1 14 100000 +Ethernet56 117,118,119,120 Ethernet15/1 15 100000 +Ethernet60 121,122,123,124 Ethernet16/1 16 100000 +Ethernet64 141,142,143,144 Ethernet17/1 17 100000 +Ethernet68 133,134,135,136 Ethernet18/1 18 100000 +Ethernet72 197,198,199,200 Ethernet19/1 19 100000 +Ethernet76 205,206,207,208 Ethernet20/1 20 100000 +Ethernet80 217,218 Ethernet21/1 21 50000 +Ethernet82 219,220 Ethernet21/3 21 50000 +Ethernet84 213,214 Ethernet22/1 22 50000 +Ethernet86 215,216 Ethernet22/3 22 50000 +Ethernet88 229,230 Ethernet23/1 23 50000 +Ethernet90 231,232 Ethernet23/3 23 50000 +Ethernet92 237,238 Ethernet24/1 24 50000 +Ethernet94 239,240 Ethernet24/3 24 50000 +Ethernet96 249,250 Ethernet25/1 25 50000 +Ethernet98 251,252 Ethernet25/3 25 50000 +Ethernet100 245,246 Ethernet26/1 26 50000 +Ethernet102 247,248 Ethernet26/3 26 50000 +Ethernet104 149,150 Ethernet27/1 27 50000 +Ethernet106 151,152 Ethernet27/3 27 50000 +Ethernet108 153,154 Ethernet28/1 28 50000 +Ethernet110 155,156 Ethernet28/3 28 50000 +Ethernet112 173,174 Ethernet29/1 29 50000 +Ethernet114 175,176 Ethernet29/3 29 50000 +Ethernet116 161,162 Ethernet30/1 30 50000 +Ethernet118 163,164 Ethernet30/3 30 50000 +Ethernet120 181,182 Ethernet31/1 31 50000 +Ethernet122 183,184 Ethernet31/3 31 50000 +Ethernet124 185,186 Ethernet32/1 32 50000 +Ethernet126 187,188 Ethernet32/3 32 50000 +Ethernet128 69,70 Ethernet33/1 33 50000 +Ethernet130 71,72 Ethernet33/3 33 50000 +Ethernet132 73,74 Ethernet34/1 34 50000 +Ethernet134 75,76 Ethernet34/3 34 50000 +Ethernet136 93,94 Ethernet35/1 35 50000 +Ethernet138 95,96 Ethernet35/3 35 50000 +Ethernet140 81,82 Ethernet36/1 36 50000 +Ethernet142 83,84 Ethernet36/3 36 50000 +Ethernet144 101,102 Ethernet37/1 37 50000 +Ethernet146 103,104 Ethernet37/3 37 50000 +Ethernet148 105,106 Ethernet38/1 38 50000 +Ethernet150 107,108 Ethernet38/3 38 50000 +Ethernet152 9,10 Ethernet39/1 39 50000 +Ethernet154 11,12 Ethernet39/3 39 50000 +Ethernet156 1,2 Ethernet40/1 40 50000 +Ethernet158 3,4 Ethernet40/3 40 50000 +Ethernet160 17,18 Ethernet41/1 41 50000 +Ethernet162 19,20 Ethernet41/3 41 50000 +Ethernet164 29,30 Ethernet42/1 42 50000 +Ethernet166 31,32 Ethernet42/3 42 50000 +Ethernet168 41,42 Ethernet43/1 43 50000 +Ethernet170 43,44 Ethernet43/3 43 50000 +Ethernet172 33,34 Ethernet44/1 44 50000 +Ethernet174 35,36 Ethernet44/3 44 50000 +Ethernet176 49,50 Ethernet45/1 45 50000 +Ethernet178 51,52 Ethernet45/3 45 50000 +Ethernet180 61,62 Ethernet46/1 46 50000 +Ethernet182 63,64 Ethernet46/3 46 50000 +Ethernet184 125,126 Ethernet47/1 47 50000 +Ethernet186 127,128 Ethernet47/3 47 50000 +Ethernet188 113,114 Ethernet48/1 48 50000 +Ethernet190 115,116 Ethernet48/3 48 50000 +Ethernet192 129,130 Ethernet49/1 49 50000 +Ethernet194 131,132 Ethernet49/3 49 50000 +Ethernet196 137,138 Ethernet50/1 50 50000 +Ethernet198 139,140 Ethernet50/3 50 50000 +Ethernet200 201,202 Ethernet51/1 51 50000 +Ethernet202 203,204 Ethernet51/3 51 50000 +Ethernet204 193,194 Ethernet52/1 52 50000 +Ethernet206 195,196 Ethernet52/3 52 50000 +Ethernet208 209,210 Ethernet53/1 53 50000 +Ethernet210 211,212 Ethernet53/3 53 50000 +Ethernet212 221,222 Ethernet54/1 54 50000 +Ethernet214 223,224 Ethernet54/3 54 50000 +Ethernet216 233,234 Ethernet55/1 55 50000 +Ethernet218 235,236 Ethernet55/3 55 50000 +Ethernet220 225,226 Ethernet56/1 56 50000 +Ethernet222 227,228 Ethernet56/3 56 50000 +Ethernet224 241,242 Ethernet57/1 57 50000 +Ethernet226 243,244 Ethernet57/3 57 50000 +Ethernet228 253,254 Ethernet58/1 58 50000 +Ethernet230 255,256 Ethernet58/3 58 50000 +Ethernet232 157,158 Ethernet59/1 59 50000 +Ethernet234 159,160 Ethernet59/3 59 50000 +Ethernet236 145,146 Ethernet60/1 60 50000 +Ethernet238 147,148 Ethernet60/3 60 50000 +Ethernet240 165,166 Ethernet61/1 61 50000 +Ethernet242 167,168 Ethernet61/3 61 50000 +Ethernet244 169,170 Ethernet62/1 62 50000 +Ethernet246 171,172 Ethernet62/3 62 50000 +Ethernet248 189,190 Ethernet63/1 63 50000 +Ethernet250 191,192 Ethernet63/3 63 50000 +Ethernet252 177,178 Ethernet64/1 64 50000 +Ethernet254 179,180 Ethernet64/3 64 50000 +Ethernet256 257 Ethernet65 65 10000 +Ethernet260 259 Ethernet66 66 10000 diff --git a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-D108C8/qos.json b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-D108C8/qos.json new file mode 100644 index 00000000000..2aa5a902448 --- /dev/null +++ b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-D108C8/qos.json @@ -0,0 +1,167 @@ +{ + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "0": "0", + "1": "1", + "2": "2", + "3": "3", + "4": "4", + "5": "5", + "6": "6", + "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":"0", + "1":"0", + "2":"0", + "3":"3", + "4":"4", + "5":"0", + "6":"0", + "7":"0", + "8":"1", + "9":"0", + "10":"0", + "11":"0", + "12":"0", + "13":"0", + "14":"0", + "15":"0", + "16":"0", + "17":"0", + "18":"0", + "19":"0", + "20":"0", + "21":"0", + "22":"0", + "23":"0", + "24":"0", + "25":"0", + "26":"0", + "27":"0", + "28":"0", + "29":"0", + "30":"0", + "31":"0", + "32":"0", + "33":"0", + "34":"0", + "35":"0", + "36":"0", + "37":"0", + "38":"0", + "39":"0", + "40":"0", + "41":"0", + "42":"0", + "43":"0", + "44":"0", + "45":"0", + "46":"0", + "47":"0", + "48":"0", + "49":"0", + "50":"0", + "51":"0", + "52":"0", + "53":"0", + "54":"0", + "55":"0", + "56":"0", + "57":"0", + "58":"0", + "59":"0", + "60":"0", + "61":"0", + "62":"0", + "63":"0" + } + }, + "SCHEDULER": { + "scheduler.0" : { + "type":"DWRR", + "weight": "25" + }, + "scheduler.1" : { + "type":"DWRR", + "weight": "30" + }, + "scheduler.2" : { + "type":"DWRR", + "weight": "20" + } + }, + "PORT_QOS_MAP": { + "Ethernet0,Ethernet2,Ethernet4,Ethernet6,Ethernet8,Ethernet10,Ethernet12,Ethernet14,Ethernet16,Ethernet18,Ethernet20,Ethernet22,Ethernet24,Ethernet26,Ethernet28,Ethernet30,Ethernet32,Ethernet34,Ethernet36,Ethernet38,Ethernet40,Ethernet42,Ethernet44,Ethernet46,Ethernet48,Ethernet52,Ethernet56,Ethernet60,Ethernet64,Ethernet68,Ethernet72,Ethernet76,Ethernet80,Ethernet82,Ethernet84,Ethernet86,Ethernet88,Ethernet90,Ethernet92,Ethernet94,Ethernet96,Ethernet98,Ethernet100,Ethernet102,Ethernet104,Ethernet106,Ethernet108,Ethernet110,Ethernet112,Ethernet114,Ethernet116,Ethernet118,Ethernet120,Ethernet122,Ethernet124,Ethernet126,Ethernet128,Ethernet130,Ethernet132,Ethernet134,Ethernet136,Ethernet138,Ethernet140,Ethernet142,Ethernet144,Ethernet146,Ethernet148,Ethernet150,Ethernet152,Ethernet154,Ethernet156,Ethernet158,Ethernet160,Ethernet162,Ethernet164,Ethernet166,Ethernet168,Ethernet170,Ethernet172,Ethernet174,Ethernet176,Ethernet178,Ethernet180,Ethernet182,Ethernet184,Ethernet186,Ethernet188,Ethernet190,Ethernet192,Ethernet194,Ethernet196,Ethernet198,Ethernet200,Ethernet202,Ethernet204,Ethernet206,Ethernet208,Ethernet210,Ethernet212,Ethernet214,Ethernet216,Ethernet218,Ethernet220,Ethernet222,Ethernet224,Ethernet226,Ethernet228,Ethernet230,Ethernet232,Ethernet234,Ethernet236,Ethernet238,Ethernet240,Ethernet242,Ethernet244,Ethernet246,Ethernet248,Ethernet250,Ethernet252,Ethernet254": { + "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_LOSSY" : { + "wred_green_enable":"true", + "wred_yellow_enable":"true", + "ecn":"ecn_all", + "red_max_threshold":"512000", + "red_min_threshold":"512000", + "yellow_max_threshold":"512000", + "yellow_min_threshold":"512000", + "green_max_threshold": "184320", + "green_min_threshold": "184320" + }, + "AZURE_LOSSLESS" : { + "wred_green_enable":"true", + "wred_yellow_enable":"true", + "ecn":"ecn_all", + "red_max_threshold":"512000", + "red_min_threshold":"512000", + "yellow_max_threshold":"512000", + "yellow_min_threshold":"512000", + "green_max_threshold": "184320", + "green_min_threshold": "184320" + } + }, + "QUEUE": { + "Ethernet0,Ethernet2,Ethernet4,Ethernet6,Ethernet8,Ethernet10,Ethernet12,Ethernet14,Ethernet16,Ethernet18,Ethernet20,Ethernet22,Ethernet24,Ethernet26,Ethernet28,Ethernet30,Ethernet32,Ethernet34,Ethernet36,Ethernet38,Ethernet40,Ethernet42,Ethernet44,Ethernet46,Ethernet48,Ethernet52,Ethernet56,Ethernet60,Ethernet64,Ethernet68,Ethernet72,Ethernet76,Ethernet80,Ethernet82,Ethernet84,Ethernet86,Ethernet88,Ethernet90,Ethernet92,Ethernet94,Ethernet96,Ethernet98,Ethernet100,Ethernet102,Ethernet104,Ethernet106,Ethernet108,Ethernet110,Ethernet112,Ethernet114,Ethernet116,Ethernet118,Ethernet120,Ethernet122,Ethernet124,Ethernet126,Ethernet128,Ethernet130,Ethernet132,Ethernet134,Ethernet136,Ethernet138,Ethernet140,Ethernet142,Ethernet144,Ethernet146,Ethernet148,Ethernet150,Ethernet152,Ethernet154,Ethernet156,Ethernet158,Ethernet160,Ethernet162,Ethernet164,Ethernet166,Ethernet168,Ethernet170,Ethernet172,Ethernet174,Ethernet176,Ethernet178,Ethernet180,Ethernet182,Ethernet184,Ethernet186,Ethernet188,Ethernet190,Ethernet192,Ethernet194,Ethernet196,Ethernet198,Ethernet200,Ethernet202,Ethernet204,Ethernet206,Ethernet208,Ethernet210,Ethernet212,Ethernet214,Ethernet216,Ethernet218,Ethernet220,Ethernet222,Ethernet224,Ethernet226,Ethernet228,Ethernet230,Ethernet232,Ethernet234,Ethernet236,Ethernet238,Ethernet240,Ethernet242,Ethernet244,Ethernet246,Ethernet248,Ethernet250,Ethernet252,Ethernet254|0-1" : { + "wred_profile" : "[WRED_PROFILE|AZURE_LOSSY]" + }, + "Ethernet0,Ethernet2,Ethernet4,Ethernet6,Ethernet8,Ethernet10,Ethernet12,Ethernet14,Ethernet16,Ethernet18,Ethernet20,Ethernet22,Ethernet24,Ethernet26,Ethernet28,Ethernet30,Ethernet32,Ethernet34,Ethernet36,Ethernet38,Ethernet40,Ethernet42,Ethernet44,Ethernet46,Ethernet48,Ethernet52,Ethernet56,Ethernet60,Ethernet64,Ethernet68,Ethernet72,Ethernet76,Ethernet80,Ethernet82,Ethernet84,Ethernet86,Ethernet88,Ethernet90,Ethernet92,Ethernet94,Ethernet96,Ethernet98,Ethernet100,Ethernet102,Ethernet104,Ethernet106,Ethernet108,Ethernet110,Ethernet112,Ethernet114,Ethernet116,Ethernet118,Ethernet120,Ethernet122,Ethernet124,Ethernet126,Ethernet128,Ethernet130,Ethernet132,Ethernet134,Ethernet136,Ethernet138,Ethernet140,Ethernet142,Ethernet144,Ethernet146,Ethernet148,Ethernet150,Ethernet152,Ethernet154,Ethernet156,Ethernet158,Ethernet160,Ethernet162,Ethernet164,Ethernet166,Ethernet168,Ethernet170,Ethernet172,Ethernet174,Ethernet176,Ethernet178,Ethernet180,Ethernet182,Ethernet184,Ethernet186,Ethernet188,Ethernet190,Ethernet192,Ethernet194,Ethernet196,Ethernet198,Ethernet200,Ethernet202,Ethernet204,Ethernet206,Ethernet208,Ethernet210,Ethernet212,Ethernet214,Ethernet216,Ethernet218,Ethernet220,Ethernet222,Ethernet224,Ethernet226,Ethernet228,Ethernet230,Ethernet232,Ethernet234,Ethernet236,Ethernet238,Ethernet240,Ethernet242,Ethernet244,Ethernet246,Ethernet248,Ethernet250,Ethernet252,Ethernet254|3-4" : { + "scheduler" : "[SCHEDULER|scheduler.0]" + }, + "Ethernet0,Ethernet2,Ethernet4,Ethernet6,Ethernet8,Ethernet10,Ethernet12,Ethernet14,Ethernet16,Ethernet18,Ethernet20,Ethernet22,Ethernet24,Ethernet26,Ethernet28,Ethernet30,Ethernet32,Ethernet34,Ethernet36,Ethernet38,Ethernet40,Ethernet42,Ethernet44,Ethernet46,Ethernet48,Ethernet52,Ethernet56,Ethernet60,Ethernet64,Ethernet68,Ethernet72,Ethernet76,Ethernet80,Ethernet82,Ethernet84,Ethernet86,Ethernet88,Ethernet90,Ethernet92,Ethernet94,Ethernet96,Ethernet98,Ethernet100,Ethernet102,Ethernet104,Ethernet106,Ethernet108,Ethernet110,Ethernet112,Ethernet114,Ethernet116,Ethernet118,Ethernet120,Ethernet122,Ethernet124,Ethernet126,Ethernet128,Ethernet130,Ethernet132,Ethernet134,Ethernet136,Ethernet138,Ethernet140,Ethernet142,Ethernet144,Ethernet146,Ethernet148,Ethernet150,Ethernet152,Ethernet154,Ethernet156,Ethernet158,Ethernet160,Ethernet162,Ethernet164,Ethernet166,Ethernet168,Ethernet170,Ethernet172,Ethernet174,Ethernet176,Ethernet178,Ethernet180,Ethernet182,Ethernet184,Ethernet186,Ethernet188,Ethernet190,Ethernet192,Ethernet194,Ethernet196,Ethernet198,Ethernet200,Ethernet202,Ethernet204,Ethernet206,Ethernet208,Ethernet210,Ethernet212,Ethernet214,Ethernet216,Ethernet218,Ethernet220,Ethernet222,Ethernet224,Ethernet226,Ethernet228,Ethernet230,Ethernet232,Ethernet234,Ethernet236,Ethernet238,Ethernet240,Ethernet242,Ethernet244,Ethernet246,Ethernet248,Ethernet250,Ethernet252,Ethernet254|0" : { + "scheduler" : "[SCHEDULER|scheduler.1]" + }, + "Ethernet0,Ethernet2,Ethernet4,Ethernet6,Ethernet8,Ethernet10,Ethernet12,Ethernet14,Ethernet16,Ethernet18,Ethernet20,Ethernet22,Ethernet24,Ethernet26,Ethernet28,Ethernet30,Ethernet32,Ethernet34,Ethernet36,Ethernet38,Ethernet40,Ethernet42,Ethernet44,Ethernet46,Ethernet48,Ethernet52,Ethernet56,Ethernet60,Ethernet64,Ethernet68,Ethernet72,Ethernet76,Ethernet80,Ethernet82,Ethernet84,Ethernet86,Ethernet88,Ethernet90,Ethernet92,Ethernet94,Ethernet96,Ethernet98,Ethernet100,Ethernet102,Ethernet104,Ethernet106,Ethernet108,Ethernet110,Ethernet112,Ethernet114,Ethernet116,Ethernet118,Ethernet120,Ethernet122,Ethernet124,Ethernet126,Ethernet128,Ethernet130,Ethernet132,Ethernet134,Ethernet136,Ethernet138,Ethernet140,Ethernet142,Ethernet144,Ethernet146,Ethernet148,Ethernet150,Ethernet152,Ethernet154,Ethernet156,Ethernet158,Ethernet160,Ethernet162,Ethernet164,Ethernet166,Ethernet168,Ethernet170,Ethernet172,Ethernet174,Ethernet176,Ethernet178,Ethernet180,Ethernet182,Ethernet184,Ethernet186,Ethernet188,Ethernet190,Ethernet192,Ethernet194,Ethernet196,Ethernet198,Ethernet200,Ethernet202,Ethernet204,Ethernet206,Ethernet208,Ethernet210,Ethernet212,Ethernet214,Ethernet216,Ethernet218,Ethernet220,Ethernet222,Ethernet224,Ethernet226,Ethernet228,Ethernet230,Ethernet232,Ethernet234,Ethernet236,Ethernet238,Ethernet240,Ethernet242,Ethernet244,Ethernet246,Ethernet248,Ethernet250,Ethernet252,Ethernet254|1" : { + "scheduler" : "[SCHEDULER|scheduler.2]" + } + } +} diff --git a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-D108C8/sai.profile b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-D108C8/sai.profile index 030527daf9c..9ceb20f96a4 100644 --- a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-D108C8/sai.profile +++ b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-D108C8/sai.profile @@ -1 +1 @@ -SAI_INIT_CONFIG_FILE=/etc/bcm/th2-a7260cx3-64-108x50G+10x100G.config.bcm +SAI_INIT_CONFIG_FILE=/etc/bcm/th2-a7260cx3-64-112x50G+8x100G.config.bcm diff --git a/device/celestica/x86_64-cel_seastone-r0/Seastone-DX010-10-50/minigraph.xml b/device/celestica/x86_64-cel_seastone-r0/Seastone-DX010-10-50/minigraph.xml index 624403c913b..2590e4f50c2 100644 --- a/device/celestica/x86_64-cel_seastone-r0/Seastone-DX010-10-50/minigraph.xml +++ b/device/celestica/x86_64-cel_seastone-r0/Seastone-DX010-10-50/minigraph.xml @@ -645,562 +645,562 @@ - tenGigE1/1 + Eth1/1 10.0.0.0/31 - tenGigE1/2 + Eth1/2 10.0.0.2/31 - tenGigE1/3 + Eth1/3 10.0.0.4/31 - tenGigE1/4 + Eth1/4 10.0.0.6/31 - tenGigE1/5 + Eth2/1 10.0.0.8/31 - tenGigE1/6 + Eth2/2 10.0.0.10/31 - tenGigE1/7 + Eth2/3 10.0.0.12/31 - tenGigE1/8 + Eth2/4 10.0.0.14/31 - tenGigE1/9 + Eth3/1 10.0.0.16/31 - tenGigE1/10 + Eth3/2 10.0.0.18/31 - tenGigE1/11 + Eth3/3 10.0.0.20/31 - tenGigE1/12 + Eth3/4 10.0.0.22/31 - tenGigE1/13 + Eth4/1 10.0.0.24/31 - tenGigE1/14 + Eth4/2 10.0.0.26/31 - tenGigE1/15 + Eth4/3 10.0.0.28/31 - tenGigE1/16 + Eth4/4 10.0.0.30/31 - tenGigE1/17 + Eth5/1 10.0.0.32/31 - tenGigE1/18 + Eth5/2 10.0.0.34/31 - tenGigE1/19 + Eth5/3 10.0.0.36/31 - tenGigE1/20 + Eth5/4 10.0.0.38/31 - tenGigE1/21 + Eth6/1 10.0.0.40/31 - tenGigE1/22 + Eth6/2 10.0.0.42/31 - tenGigE1/23 + Eth6/3 10.0.0.44/31 - tenGigE1/24 + Eth6/4 10.0.0.46/31 - tenGigE1/25 + Eth7/1 10.0.0.48/31 - tenGigE1/26 + Eth7/2 10.0.0.50/31 - tenGigE1/27 + Eth7/3 10.0.0.52/31 - tenGigE1/28 + Eth7/4 10.0.0.54/31 - tenGigE1/29 + Eth8/1 10.0.0.56/31 - tenGigE1/30 + Eth8/2 10.0.0.58/31 - tenGigE1/31 + Eth8/3 10.0.0.60/31 - tenGigE1/32 + Eth8/4 10.0.0.62/31 - tenGigE1/33 + Eth9/1 10.0.0.64/31 - tenGigE1/34 + Eth9/2 10.0.0.66/31 - tenGigE1/35 + Eth9/3 10.0.0.68/31 - tenGigE1/36 + Eth9/4 10.0.0.70/31 - tenGigE1/37 + Eth10/1 10.0.0.72/31 - tenGigE1/38 + Eth10/2 10.0.0.74/31 - tenGigE1/39 + Eth10/3 10.0.0.76/31 - tenGigE1/40 + Eth10/4 10.0.0.78/31 - tenGigE1/41 + Eth11/1 10.0.0.80/31 - tenGigE1/42 + Eth11/2 10.0.0.82/31 - tenGigE1/43 + Eth11/3 10.0.0.84/31 - tenGigE1/44 + Eth11/4 10.0.0.86/31 - tenGigE1/45 + Eth12/1 10.0.0.88/31 - tenGigE1/46 + Eth12/2 10.0.0.90/31 - tenGigE1/47 + Eth12/3 10.0.0.92/31 - tenGigE1/48 + Eth12/4 10.0.0.94/31 - tenGigE1/49 + Eth13/1 10.0.0.96/31 - tenGigE1/50 + Eth13/2 10.0.0.98/31 - tenGigE1/51 + Eth13/3 10.0.0.100/31 - tenGigE1/52 + Eth13/4 10.0.0.102/31 - tenGigE1/53 + Eth14/1 10.0.0.104/31 - tenGigE1/54 + Eth14/2 10.0.0.106/31 - tenGigE1/55 + Eth14/3 10.0.0.108/31 - tenGigE1/56 + Eth14/4 10.0.0.110/31 - tenGigE1/57 + Eth15/1 10.0.0.112/31 - tenGigE1/58 + Eth15/2 10.0.0.114/31 - tenGigE1/59 + Eth15/3 10.0.0.116/31 - tenGigE1/60 + Eth15/4 10.0.0.118/31 - tenGigE1/61 + Eth16/1 10.0.0.120/31 - tenGigE1/62 + Eth16/2 10.0.0.122/31 - tenGigE1/63 + Eth16/3 10.0.0.124/31 - tenGigE1/64 + Eth16/4 10.0.0.126/31 - tenGigE1/65 + Eth17/1 10.0.0.128/31 - tenGigE1/66 + Eth17/2 10.0.0.130/31 - tenGigE1/67 + Eth17/3 10.0.0.132/31 - tenGigE1/68 + Eth17/4 10.0.0.134/31 - tenGigE1/69 + Eth18/1 10.0.0.136/31 - tenGigE1/70 + Eth18/2 10.0.0.138/31 - tenGigE1/71 + Eth18/3 10.0.0.140/31 - tenGigE1/72 + Eth18/4 10.0.0.142/31 - tenGigE1/73 + Eth19/1 10.0.0.144/31 - tenGigE1/74 + Eth19/2 10.0.0.146/31 - tenGigE1/75 + Eth19/3 10.0.0.148/31 - tenGigE1/76 + Eth19/4 10.0.0.150/31 - tenGigE1/77 + Eth20/1 10.0.0.152/31 - tenGigE1/78 + Eth20/2 10.0.0.154/31 - tenGigE1/79 + Eth20/3 10.0.0.156/31 - tenGigE1/80 + Eth20/4 10.0.0.158/31 - tenGigE1/81 + Eth21/1 10.0.0.160/31 - tenGigE1/82 + Eth21/2 10.0.0.162/31 - tenGigE1/83 + Eth21/3 10.0.0.164/31 - tenGigE1/84 + Eth21/4 10.0.0.166/31 - tenGigE1/85 + Eth22/1 10.0.0.168/31 - tenGigE1/86 + Eth22/2 10.0.0.170/31 - tenGigE1/87 + Eth22/3 10.0.0.172/31 - tenGigE1/88 + Eth22/4 10.0.0.174/31 - tenGigE1/89 + Eth23/1 10.0.0.176/31 - tenGigE1/90 + Eth23/2 10.0.0.178/31 - tenGigE1/91 + Eth23/3 10.0.0.180/31 - tenGigE1/92 + Eth23/4 10.0.0.182/31 - tenGigE1/93 + Eth24/1 10.0.0.184/31 - tenGigE1/94 + Eth24/2 10.0.0.186/31 - tenGigE1/95 + Eth24/3 10.0.0.188/31 - tenGigE1/96 + Eth24/4 10.0.0.190/31 - fiftyGigE1/1 + Eth25/1 10.0.1.0/31 - fiftyGigE1/2 + Eth25/2 10.0.1.2/31 - fiftyGigE1/3 + Eth26/1 10.0.1.4/31 - fiftyGigE1/4 + Eth26/2 10.0.1.6/31 - fiftyGigE1/5 + Eth27/1 10.0.1.8/31 - fiftyGigE1/6 + Eth27/2 10.0.1.10/31 - fiftyGigE1/7 + Eth28/1 10.0.1.12/31 - fiftyGigE1/8 + Eth28/2 10.0.1.14/31 - fiftyGigE1/9 + Eth29/1 10.0.1.16/31 - fiftyGigE1/10 + Eth29/2 10.0.1.18/31 - fiftyGigE1/11 + Eth30/1 10.0.1.20/31 - fiftyGigE1/12 + Eth30/2 10.0.1.22/31 - fiftyGigE1/13 + Eth31/1 10.0.1.24/31 - fiftyGigE1/14 + Eth31/2 10.0.1.26/31 - fiftyGigE1/15 + Eth32/1 10.0.1.28/31 - fiftyGigE1/16 + Eth32/2 10.0.1.30/31 @@ -1211,232 +1211,6 @@ - - - DeviceInterfaceLink - sonic - tenGigE1/1 - ARISTA01T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - tenGigE1/2 - ARISTA02T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - tenGigE1/3 - ARISTA03T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - tenGigE1/4 - ARISTA04T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - tenGigE1/5 - ARISTA05T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - tenGigE1/6 - ARISTA06T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - tenGigE1/7 - ARISTA07T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - tenGigE1/8 - ARISTA08T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - tenGigE1/9 - ARISTA09T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - tenGigE1/10 - ARISTA10T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - tenGigE1/11 - ARISTA11T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - tenGigE1/12 - ARISTA12T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - tenGigE1/13 - ARISTA13T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - tenGigE1/14 - ARISTA14T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - tenGigE1/15 - ARISTA15T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - tenGigE1/16 - ARISTA16T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - tenGigE1/17 - ARISTA01T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - tenGigE1/18 - ARISTA02T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - tenGigE1/19 - ARISTA03T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - tenGigE1/20 - ARISTA04T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - tenGigE1/21 - ARISTA05T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - tenGigE1/22 - ARISTA06T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - tenGigE1/23 - ARISTA07T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - tenGigE1/24 - ARISTA08T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - tenGigE1/25 - ARISTA09T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - tenGigE1/26 - ARISTA10T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - tenGigE1/27 - ARISTA11T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - tenGigE1/28 - ARISTA12T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - tenGigE1/29 - ARISTA13T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - tenGigE1/30 - ARISTA14T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - tenGigE1/31 - ARISTA15T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - tenGigE1/32 - ARISTA16T0 - Ethernet1 - - sonic diff --git a/device/celestica/x86_64-cel_seastone-r0/Seastone-DX010-10-50/port_config.ini b/device/celestica/x86_64-cel_seastone-r0/Seastone-DX010-10-50/port_config.ini index 8ffb58f2aef..16b89088aab 100644 --- a/device/celestica/x86_64-cel_seastone-r0/Seastone-DX010-10-50/port_config.ini +++ b/device/celestica/x86_64-cel_seastone-r0/Seastone-DX010-10-50/port_config.ini @@ -1,113 +1,113 @@ # name lanes alias -Ethernet0 65 tenGigE1/1 -Ethernet1 66 tenGigE1/2 -Ethernet2 67 tenGigE1/3 -Ethernet3 68 tenGigE1/4 -Ethernet4 69 tenGigE1/5 -Ethernet5 70 tenGigE1/6 -Ethernet6 71 tenGigE1/7 -Ethernet7 72 tenGigE1/8 -Ethernet8 73 tenGigE1/9 -Ethernet9 74 tenGigE1/10 -Ethernet10 75 tenGigE1/11 -Ethernet11 76 tenGigE1/12 -Ethernet12 77 tenGigE1/13 -Ethernet13 78 tenGigE1/14 -Ethernet14 79 tenGigE1/15 -Ethernet15 80 tenGigE1/16 -Ethernet16 33 tenGigE1/17 -Ethernet17 34 tenGigE1/18 -Ethernet18 35 tenGigE1/19 -Ethernet19 36 tenGigE1/20 -Ethernet20 37 tenGigE1/21 -Ethernet21 38 tenGigE1/22 -Ethernet22 39 tenGigE1/23 -Ethernet23 40 tenGigE1/24 -Ethernet24 41 tenGigE1/25 -Ethernet25 42 tenGigE1/26 -Ethernet26 43 tenGigE1/27 -Ethernet27 44 tenGigE1/28 -Ethernet28 45 tenGigE1/29 -Ethernet29 46 tenGigE1/30 -Ethernet30 47 tenGigE1/31 -Ethernet31 48 tenGigE1/32 -Ethernet32 49 tenGigE1/33 -Ethernet33 50 tenGigE1/34 -Ethernet34 51 tenGigE1/35 -Ethernet35 52 tenGigE1/36 -Ethernet36 53 tenGigE1/37 -Ethernet37 54 tenGigE1/38 -Ethernet38 55 tenGigE1/39 -Ethernet39 56 tenGigE1/40 -Ethernet40 57 tenGigE1/41 -Ethernet41 58 tenGigE1/42 -Ethernet42 59 tenGigE1/43 -Ethernet43 60 tenGigE1/44 -Ethernet44 61 tenGigE1/45 -Ethernet45 62 tenGigE1/46 -Ethernet46 63 tenGigE1/47 -Ethernet47 64 tenGigE1/48 -Ethernet48 81 tenGigE1/49 -Ethernet49 82 tenGigE1/50 -Ethernet50 83 tenGigE1/51 -Ethernet51 84 tenGigE1/52 -Ethernet52 85 tenGigE1/53 -Ethernet53 86 tenGigE1/54 -Ethernet54 87 tenGigE1/55 -Ethernet55 88 tenGigE1/56 -Ethernet56 89 tenGigE1/57 -Ethernet57 90 tenGigE1/58 -Ethernet58 91 tenGigE1/59 -Ethernet59 92 tenGigE1/60 -Ethernet60 93 tenGigE1/61 -Ethernet61 94 tenGigE1/62 -Ethernet62 95 tenGigE1/63 -Ethernet63 96 tenGigE1/64 -Ethernet64 97 tenGigE1/65 -Ethernet65 98 tenGigE1/66 -Ethernet66 99 tenGigE1/67 -Ethernet67 100 tenGigE1/68 -Ethernet68 101 tenGigE1/69 -Ethernet69 102 tenGigE1/70 -Ethernet70 103 tenGigE1/71 -Ethernet71 104 tenGigE1/72 -Ethernet72 105 tenGigE1/73 -Ethernet73 106 tenGigE1/74 -Ethernet74 107 tenGigE1/75 -Ethernet75 108 tenGigE1/76 -Ethernet76 109 tenGigE1/77 -Ethernet77 110 tenGigE1/78 -Ethernet78 111 tenGigE1/79 -Ethernet79 112 tenGigE1/80 -Ethernet80 1 tenGigE1/81 -Ethernet81 2 tenGigE1/82 -Ethernet82 3 tenGigE1/83 -Ethernet83 4 tenGigE1/84 -Ethernet84 5 tenGigE1/85 -Ethernet85 6 tenGigE1/86 -Ethernet86 7 tenGigE1/87 -Ethernet87 8 tenGigE1/88 -Ethernet88 9 tenGigE1/89 -Ethernet89 10 tenGigE1/90 -Ethernet90 11 tenGigE1/91 -Ethernet91 12 tenGigE1/92 -Ethernet92 13 tenGigE1/93 -Ethernet93 14 tenGigE1/94 -Ethernet94 15 tenGigE1/95 -Ethernet95 16 tenGigE1/96 -Ethernet96 17,18 fiftyGigE1/1 -Ethernet98 19,20 fiftyGigE1/2 -Ethernet100 21,22 fiftyGigE1/3 -Ethernet102 23,24 fiftyGigE1/4 -Ethernet104 25,26 fiftyGigE1/5 -Ethernet106 27,28 fiftyGigE1/6 -Ethernet108 29,30 fiftyGigE1/7 -Ethernet110 31,32 fiftyGigE1/8 -Ethernet112 113,114 fiftyGigE1/9 -Ethernet114 115,116 fiftyGigE1/10 -Ethernet116 117,118 fiftyGigE1/11 -Ethernet118 119,120 fiftyGigE1/12 -Ethernet120 121,122 fiftyGigE1/13 -Ethernet122 123,124 fiftyGigE1/14 -Ethernet124 125,126 fiftyGigE1/15 -Ethernet126 127,128 fiftyGigE1/16 +Ethernet0 65 Eth1/1 +Ethernet1 66 Eth1/2 +Ethernet2 67 Eth1/3 +Ethernet3 68 Eth1/4 +Ethernet4 69 Eth2/1 +Ethernet5 70 Eth2/2 +Ethernet6 71 Eth2/3 +Ethernet7 72 Eth2/4 +Ethernet8 73 Eth3/1 +Ethernet9 74 Eth3/2 +Ethernet10 75 Eth3/3 +Ethernet11 76 Eth3/4 +Ethernet12 77 Eth4/1 +Ethernet13 78 Eth4/2 +Ethernet14 79 Eth4/3 +Ethernet15 80 Eth4/4 +Ethernet16 33 Eth5/1 +Ethernet17 34 Eth5/2 +Ethernet18 35 Eth5/3 +Ethernet19 36 Eth5/4 +Ethernet20 37 Eth6/1 +Ethernet21 38 Eth6/2 +Ethernet22 39 Eth6/3 +Ethernet23 40 Eth6/4 +Ethernet24 41 Eth7/1 +Ethernet25 42 Eth7/2 +Ethernet26 43 Eth7/3 +Ethernet27 44 Eth7/4 +Ethernet28 45 Eth8/1 +Ethernet29 46 Eth8/2 +Ethernet30 47 Eth8/3 +Ethernet31 48 Eth8/4 +Ethernet32 49 Eth9/1 +Ethernet33 50 Eth9/2 +Ethernet34 51 Eth9/3 +Ethernet35 52 Eth9/4 +Ethernet36 53 Eth10/1 +Ethernet37 54 Eth10/2 +Ethernet38 55 Eth10/3 +Ethernet39 56 Eth10/4 +Ethernet40 57 Eth11/1 +Ethernet41 58 Eth11/2 +Ethernet42 59 Eth11/3 +Ethernet43 60 Eth11/4 +Ethernet44 61 Eth12/1 +Ethernet45 62 Eth12/2 +Ethernet46 63 Eth12/3 +Ethernet47 64 Eth12/4 +Ethernet48 81 Eth13/1 +Ethernet49 82 Eth13/2 +Ethernet50 83 Eth13/3 +Ethernet51 84 Eth13/4 +Ethernet52 85 Eth14/1 +Ethernet53 86 Eth14/2 +Ethernet54 87 Eth14/3 +Ethernet55 88 Eth14/4 +Ethernet56 89 Eth15/1 +Ethernet57 90 Eth15/2 +Ethernet58 91 Eth15/3 +Ethernet59 92 Eth15/4 +Ethernet60 93 Eth16/1 +Ethernet61 94 Eth16/2 +Ethernet62 95 Eth16/3 +Ethernet63 96 Eth16/4 +Ethernet64 97 Eth17/1 +Ethernet65 98 Eth17/2 +Ethernet66 99 Eth17/3 +Ethernet67 100 Eth17/4 +Ethernet68 101 Eth18/1 +Ethernet69 102 Eth18/2 +Ethernet70 103 Eth18/3 +Ethernet71 104 Eth18/4 +Ethernet72 105 Eth19/1 +Ethernet73 106 Eth19/2 +Ethernet74 107 Eth19/3 +Ethernet75 108 Eth19/4 +Ethernet76 109 Eth20/1 +Ethernet77 110 Eth20/2 +Ethernet78 111 Eth20/3 +Ethernet79 112 Eth20/4 +Ethernet80 1 Eth21/1 +Ethernet81 2 Eth21/2 +Ethernet82 3 Eth21/3 +Ethernet83 4 Eth21/4 +Ethernet84 5 Eth22/1 +Ethernet85 6 Eth22/2 +Ethernet86 7 Eth22/3 +Ethernet87 8 Eth22/4 +Ethernet88 9 Eth23/1 +Ethernet89 10 Eth23/2 +Ethernet90 11 Eth23/3 +Ethernet91 12 Eth23/4 +Ethernet92 13 Eth24/1 +Ethernet93 14 Eth24/2 +Ethernet94 15 Eth24/3 +Ethernet95 16 Eth24/4 +Ethernet96 17,18 Eth25/1 +Ethernet98 19,20 Eth25/2 +Ethernet100 21,22 Eth26/1 +Ethernet102 23,24 Eth26/2 +Ethernet104 25,26 Eth27/1 +Ethernet106 27,28 Eth27/2 +Ethernet108 29,30 Eth28/1 +Ethernet110 31,32 Eth28/2 +Ethernet112 113,114 Eth29/1 +Ethernet114 115,116 Eth29/2 +Ethernet116 117,118 Eth30/1 +Ethernet118 119,120 Eth30/2 +Ethernet120 121,122 Eth31/1 +Ethernet122 123,124 Eth31/2 +Ethernet124 125,126 Eth32/1 +Ethernet126 127,128 Eth32/2 diff --git a/device/celestica/x86_64-cel_seastone-r0/Seastone-DX010-50/minigraph.xml b/device/celestica/x86_64-cel_seastone-r0/Seastone-DX010-50/minigraph.xml index d2259d4b206..e009fa8d61e 100644 --- a/device/celestica/x86_64-cel_seastone-r0/Seastone-DX010-50/minigraph.xml +++ b/device/celestica/x86_64-cel_seastone-r0/Seastone-DX010-50/minigraph.xml @@ -645,322 +645,322 @@ - fiftyGigE1/1 + Eth1/1 10.0.0.0/31 - fiftyGigE1/2 + Eth1/2 10.0.0.2/31 - fiftyGigE1/3 + Eth2/1 10.0.0.4/31 - fiftyGigE1/4 + Eth2/2 10.0.0.6/31 - fiftyGigE1/5 + Eth3/1 10.0.0.8/31 - fiftyGigE1/6 + Eth3/2 10.0.0.10/31 - fiftyGigE1/7 + Eth4/1 10.0.0.12/31 - fiftyGigE1/8 + Eth4/2 10.0.0.14/31 - fiftyGigE1/9 + Eth5/1 10.0.0.16/31 - fiftyGigE1/10 + Eth5/2 10.0.0.18/31 - fiftyGigE1/11 + Eth6/1 10.0.0.20/31 - fiftyGigE1/12 + Eth6/2 10.0.0.22/31 - fiftyGigE1/13 + Eth7/1 10.0.0.24/31 - fiftyGigE1/14 + Eth7/2 10.0.0.26/31 - fiftyGigE1/15 + Eth8/1 10.0.0.28/31 - fiftyGigE1/16 + Eth8/2 10.0.0.30/31 - fiftyGigE1/17 + Eth9/1 10.0.0.32/31 - fiftyGigE1/18 + Eth9/2 10.0.0.34/31 - fiftyGigE1/19 + Eth10/1 10.0.0.36/31 - fiftyGigE1/20 + Eth10/2 10.0.0.38/31 - fiftyGigE1/21 + Eth11/1 10.0.0.40/31 - fiftyGigE1/22 + Eth11/2 10.0.0.42/31 - fiftyGigE1/23 + Eth12/1 10.0.0.44/31 - fiftyGigE1/24 + Eth12/2 10.0.0.46/31 - fiftyGigE1/25 + Eth13/1 10.0.0.48/31 - fiftyGigE1/26 + Eth13/2 10.0.0.50/31 - fiftyGigE1/27 + Eth14/1 10.0.0.52/31 - fiftyGigE1/28 + Eth14/2 10.0.0.54/31 - fiftyGigE1/29 + Eth15/1 10.0.0.56/31 - fiftyGigE1/30 + Eth15/2 10.0.0.58/31 - fiftyGigE1/31 + Eth16/1 10.0.0.60/31 - fiftyGigE1/32 + Eth16/2 10.0.0.62/31 - fiftyGigE1/33 + Eth17/1 10.0.0.64/31 - fiftyGigE1/34 + Eth17/2 10.0.0.66/31 - fiftyGigE1/35 + Eth18/1 10.0.0.68/31 - fiftyGigE1/36 + Eth18/2 10.0.0.70/31 - fiftyGigE1/37 + Eth19/1 10.0.0.72/31 - fiftyGigE1/38 + Eth19/2 10.0.0.74/31 - fiftyGigE1/39 + Eth20/1 10.0.0.76/31 - fiftyGigE1/40 + Eth20/2 10.0.0.78/31 - fiftyGigE1/41 + Eth21/1 10.0.0.80/31 - fiftyGigE1/42 + Eth21/2 10.0.0.82/31 - fiftyGigE1/43 + Eth22/1 10.0.0.84/31 - fiftyGigE1/44 + Eth22/2 10.0.0.86/31 - fiftyGigE1/45 + Eth23/1 10.0.0.88/31 - fiftyGigE1/46 + Eth23/2 10.0.0.90/31 - fiftyGigE1/47 + Eth24/1 10.0.0.92/31 - fiftyGigE1/48 + Eth24/2 10.0.0.94/31 - fiftyGigE1/49 + Eth25/1 10.0.0.96/31 - fiftyGigE1/50 + Eth25/2 10.0.0.98/31 - fiftyGigE1/51 + Eth26/1 10.0.0.100/31 - fiftyGigE1/52 + Eth26/2 10.0.0.102/31 - fiftyGigE1/53 + Eth27/1 10.0.0.104/31 - fiftyGigE1/54 + Eth27/2 10.0.0.106/31 - fiftyGigE1/55 + Eth28/1 10.0.0.108/31 - fiftyGigE1/56 + Eth28/2 10.0.0.110/31 - fiftyGigE1/57 + Eth29/1 10.0.0.112/31 - fiftyGigE1/58 + Eth29/2 10.0.0.114/31 - fiftyGigE1/59 + Eth30/1 10.0.0.116/31 - fiftyGigE1/60 + Eth30/2 10.0.0.118/31 - fiftyGigE1/61 + Eth31/1 10.0.0.120/31 - fiftyGigE1/62 + Eth31/2 10.0.0.122/31 - fiftyGigE1/63 + Eth32/1 10.0.0.124/31 - fiftyGigE1/64 + Eth32/2 10.0.0.126/31 @@ -971,232 +971,6 @@ - - - DeviceInterfaceLink - sonic - fiftyGigE1/1 - ARISTA01T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - fiftyGigE1/2 - ARISTA02T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - fiftyGigE1/3 - ARISTA03T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - fiftyGigE1/4 - ARISTA04T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - fiftyGigE1/5 - ARISTA05T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - fiftyGigE1/6 - ARISTA06T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - fiftyGigE1/7 - ARISTA07T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - fiftyGigE1/8 - ARISTA08T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - fiftyGigE1/9 - ARISTA09T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - fiftyGigE1/10 - ARISTA10T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - fiftyGigE1/11 - ARISTA11T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - fiftyGigE1/12 - ARISTA12T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - fiftyGigE1/13 - ARISTA13T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - fiftyGigE1/14 - ARISTA14T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - fiftyGigE1/15 - ARISTA15T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - fiftyGigE1/16 - ARISTA16T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - fiftyGigE1/17 - ARISTA01T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - fiftyGigE1/18 - ARISTA02T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - fiftyGigE1/19 - ARISTA03T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - fiftyGigE1/20 - ARISTA04T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - fiftyGigE1/21 - ARISTA05T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - fiftyGigE1/22 - ARISTA06T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - fiftyGigE1/23 - ARISTA07T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - fiftyGigE1/24 - ARISTA08T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - fiftyGigE1/25 - ARISTA09T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - fiftyGigE1/26 - ARISTA10T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - fiftyGigE1/27 - ARISTA11T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - fiftyGigE1/28 - ARISTA12T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - fiftyGigE1/29 - ARISTA13T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - fiftyGigE1/30 - ARISTA14T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - fiftyGigE1/31 - ARISTA15T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - fiftyGigE1/32 - ARISTA16T0 - Ethernet1 - - sonic diff --git a/device/celestica/x86_64-cel_seastone-r0/Seastone-DX010-50/port_config.ini b/device/celestica/x86_64-cel_seastone-r0/Seastone-DX010-50/port_config.ini index 10ed3a14827..70553360da2 100644 --- a/device/celestica/x86_64-cel_seastone-r0/Seastone-DX010-50/port_config.ini +++ b/device/celestica/x86_64-cel_seastone-r0/Seastone-DX010-50/port_config.ini @@ -1,65 +1,65 @@ # name lanes alias -Ethernet0 65,66 fiftyGigE1/1 -Ethernet2 67,68 fiftyGigE1/2 -Ethernet4 69,70 fiftyGigE1/3 -Ethernet6 71,72 fiftyGigE1/4 -Ethernet8 73,74 fiftyGigE1/5 -Ethernet10 75,76 fiftyGigE1/6 -Ethernet12 77,78 fiftyGigE1/7 -Ethernet14 79,80 fiftyGigE1/8 -Ethernet16 33,34 fiftyGigE1/9 -Ethernet18 35,36 fiftyGigE1/10 -Ethernet20 37,38 fiftyGigE1/11 -Ethernet22 39,40 fiftyGigE1/12 -Ethernet24 41,42 fiftyGigE1/13 -Ethernet26 43,44 fiftyGigE1/14 -Ethernet28 45,46 fiftyGigE1/15 -Ethernet30 47,48 fiftyGigE1/16 -Ethernet32 49,50 fiftyGigE1/17 -Ethernet34 51,52 fiftyGigE1/18 -Ethernet36 53,54 fiftyGigE1/19 -Ethernet38 55,56 fiftyGigE1/20 -Ethernet40 57,58 fiftyGigE1/21 -Ethernet42 59,60 fiftyGigE1/22 -Ethernet44 61,62 fiftyGigE1/23 -Ethernet46 63,64 fiftyGigE1/24 -Ethernet48 81,82 fiftyGigE1/25 -Ethernet50 83,84 fiftyGigE1/26 -Ethernet52 85,86 fiftyGigE1/27 -Ethernet54 87,88 fiftyGigE1/28 -Ethernet56 89,90 fiftyGigE1/29 -Ethernet58 91,92 fiftyGigE1/30 -Ethernet60 93,94 fiftyGigE1/31 -Ethernet62 95,96 fiftyGigE1/32 -Ethernet64 97,98 fiftyGigE1/33 -Ethernet66 99,100 fiftyGigE1/34 -Ethernet68 101,102 fiftyGigE1/35 -Ethernet70 103,104 fiftyGigE1/36 -Ethernet72 105,106 fiftyGigE1/37 -Ethernet74 107,108 fiftyGigE1/38 -Ethernet76 109,110 fiftyGigE1/39 -Ethernet78 111,112 fiftyGigE1/40 -Ethernet80 1,2 fiftyGigE1/41 -Ethernet82 3,4 fiftyGigE1/42 -Ethernet84 5,6 fiftyGigE1/43 -Ethernet86 7,8 fiftyGigE1/44 -Ethernet88 9,10 fiftyGigE1/45 -Ethernet90 11,12 fiftyGigE1/46 -Ethernet92 13,14 fiftyGigE1/47 -Ethernet94 15,16 fiftyGigE1/48 -Ethernet96 17,18 fiftyGigE1/49 -Ethernet98 19,20 fiftyGigE1/50 -Ethernet100 21,22 fiftyGigE1/51 -Ethernet102 23,24 fiftyGigE1/52 -Ethernet104 25,26 fiftyGigE1/53 -Ethernet106 27,28 fiftyGigE1/54 -Ethernet108 29,30 fiftyGigE1/55 -Ethernet110 31,32 fiftyGigE1/56 -Ethernet112 113,114 fiftyGigE1/57 -Ethernet114 115,116 fiftyGigE1/58 -Ethernet116 117,118 fiftyGigE1/59 -Ethernet118 119,120 fiftyGigE1/60 -Ethernet120 121,122 fiftyGigE1/61 -Ethernet122 123,124 fiftyGigE1/62 -Ethernet124 125,126 fiftyGigE1/63 -Ethernet126 127,128 fiftyGigE1/64 +Ethernet0 65,66 Eth1/1 +Ethernet2 67,68 Eth1/2 +Ethernet4 69,70 Eth2/1 +Ethernet6 71,72 Eth2/2 +Ethernet8 73,74 Eth3/1 +Ethernet10 75,76 Eth3/2 +Ethernet12 77,78 Eth4/1 +Ethernet14 79,80 Eth4/2 +Ethernet16 33,34 Eth5/1 +Ethernet18 35,36 Eth5/2 +Ethernet20 37,38 Eth6/1 +Ethernet22 39,40 Eth6/2 +Ethernet24 41,42 Eth7/1 +Ethernet26 43,44 Eth7/2 +Ethernet28 45,46 Eth8/1 +Ethernet30 47,48 Eth8/2 +Ethernet32 49,50 Eth9/1 +Ethernet34 51,52 Eth9/2 +Ethernet36 53,54 Eth10/1 +Ethernet38 55,56 Eth10/2 +Ethernet40 57,58 Eth11/1 +Ethernet42 59,60 Eth11/2 +Ethernet44 61,62 Eth12/1 +Ethernet46 63,64 Eth12/2 +Ethernet48 81,82 Eth13/1 +Ethernet50 83,84 Eth13/2 +Ethernet52 85,86 Eth14/1 +Ethernet54 87,88 Eth14/2 +Ethernet56 89,90 Eth15/1 +Ethernet58 91,92 Eth15/2 +Ethernet60 93,94 Eth16/1 +Ethernet62 95,96 Eth16/2 +Ethernet64 97,98 Eth17/1 +Ethernet66 99,100 Eth17/2 +Ethernet68 101,102 Eth18/1 +Ethernet70 103,104 Eth18/2 +Ethernet72 105,106 Eth19/1 +Ethernet74 107,108 Eth19/2 +Ethernet76 109,110 Eth20/1 +Ethernet78 111,112 Eth20/2 +Ethernet80 1,2 Eth21/1 +Ethernet82 3,4 Eth21/2 +Ethernet84 5,6 Eth22/1 +Ethernet86 7,8 Eth22/2 +Ethernet88 9,10 Eth23/1 +Ethernet90 11,12 Eth23/2 +Ethernet92 13,14 Eth24/1 +Ethernet94 15,16 Eth24/2 +Ethernet96 17,18 Eth25/1 +Ethernet98 19,20 Eth25/2 +Ethernet100 21,22 Eth26/1 +Ethernet102 23,24 Eth26/2 +Ethernet104 25,26 Eth27/1 +Ethernet106 27,28 Eth27/2 +Ethernet108 29,30 Eth28/1 +Ethernet110 31,32 Eth28/2 +Ethernet112 113,114 Eth29/1 +Ethernet114 115,116 Eth29/2 +Ethernet116 117,118 Eth30/1 +Ethernet118 119,120 Eth30/2 +Ethernet120 121,122 Eth31/1 +Ethernet122 123,124 Eth31/2 +Ethernet124 125,126 Eth32/1 +Ethernet126 127,128 Eth32/2 diff --git a/device/celestica/x86_64-cel_seastone-r0/Seastone-DX010/minigraph.xml b/device/celestica/x86_64-cel_seastone-r0/Seastone-DX010/minigraph.xml index c32f9e47513..0b7698bb925 100644 --- a/device/celestica/x86_64-cel_seastone-r0/Seastone-DX010/minigraph.xml +++ b/device/celestica/x86_64-cel_seastone-r0/Seastone-DX010/minigraph.xml @@ -645,162 +645,162 @@ - hundredGigE1/1 + Eth1 10.0.0.0/31 - hundredGigE1/2 + Eth2 10.0.0.2/31 - hundredGigE1/3 + Eth3 10.0.0.4/31 - hundredGigE1/4 + Eth4 10.0.0.6/31 - hundredGigE1/5 + Eth5 10.0.0.8/31 - hundredGigE1/6 + Eth6 10.0.0.10/31 - hundredGigE1/7 + Eth7 10.0.0.12/31 - hundredGigE1/8 + Eth8 10.0.0.14/31 - hundredGigE1/9 + Eth9 10.0.0.16/31 - hundredGigE1/10 + Eth10 10.0.0.18/31 - hundredGigE1/11 + Eth11 10.0.0.20/31 - hundredGigE1/12 + Eth12 10.0.0.22/31 - hundredGigE1/13 + Eth13 10.0.0.24/31 - hundredGigE1/14 + Eth14 10.0.0.26/31 - hundredGigE1/15 + Eth15 10.0.0.28/31 - hundredGigE1/16 + Eth16 10.0.0.30/31 - hundredGigE1/17 + Eth17 10.0.0.32/31 - hundredGigE1/18 + Eth18 10.0.0.34/31 - hundredGigE1/19 + Eth19 10.0.0.36/31 - hundredGigE1/20 + Eth20 10.0.0.38/31 - hundredGigE1/21 + Eth21 10.0.0.40/31 - hundredGigE1/22 + Eth22 10.0.0.42/31 - hundredGigE1/23 + Eth23 10.0.0.44/31 - hundredGigE1/24 + Eth24 10.0.0.46/31 - hundredGigE1/25 + Eth25 10.0.0.48/31 - hundredGigE1/26 + Eth26 10.0.0.50/31 - hundredGigE1/27 + Eth27 10.0.0.52/31 - hundredGigE1/28 + Eth28 10.0.0.54/31 - hundredGigE1/29 + Eth29 10.0.0.56/31 - hundredGigE1/30 + Eth30 10.0.0.58/31 - hundredGigE1/31 + Eth31 10.0.0.60/31 - hundredGigE1/32 + Eth32 10.0.0.62/31 @@ -811,232 +811,6 @@ - - - DeviceInterfaceLink - sonic - hundredGigE1/1 - ARISTA01T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/2 - ARISTA02T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/3 - ARISTA03T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/4 - ARISTA04T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/5 - ARISTA05T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/6 - ARISTA06T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/7 - ARISTA07T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/8 - ARISTA08T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/9 - ARISTA09T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/10 - ARISTA10T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/11 - ARISTA11T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/12 - ARISTA12T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/13 - ARISTA13T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/14 - ARISTA14T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/15 - ARISTA15T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/16 - ARISTA16T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/17 - ARISTA01T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/18 - ARISTA02T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/19 - ARISTA03T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/20 - ARISTA04T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/21 - ARISTA05T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/22 - ARISTA06T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/23 - ARISTA07T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/24 - ARISTA08T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/25 - ARISTA09T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/26 - ARISTA10T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/27 - ARISTA11T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/28 - ARISTA12T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/29 - ARISTA13T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/30 - ARISTA14T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/31 - ARISTA15T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/32 - ARISTA16T0 - Ethernet1 - - sonic diff --git a/device/celestica/x86_64-cel_seastone-r0/Seastone-DX010/port_config.ini b/device/celestica/x86_64-cel_seastone-r0/Seastone-DX010/port_config.ini index 5336dbdb550..9f039e00348 100644 --- a/device/celestica/x86_64-cel_seastone-r0/Seastone-DX010/port_config.ini +++ b/device/celestica/x86_64-cel_seastone-r0/Seastone-DX010/port_config.ini @@ -1,33 +1,33 @@ # name lanes alias -Ethernet0 65,66,67,68 hundredGigE1/1 -Ethernet4 69,70,71,72 hundredGigE1/2 -Ethernet8 73,74,75,76 hundredGigE1/3 -Ethernet12 77,78,79,80 hundredGigE1/4 -Ethernet16 33,34,35,36 hundredGigE1/5 -Ethernet20 37,38,39,40 hundredGigE1/6 -Ethernet24 41,42,43,44 hundredGigE1/7 -Ethernet28 45,46,47,48 hundredGigE1/8 -Ethernet32 49,50,51,52 hundredGigE1/9 -Ethernet36 53,54,55,56 hundredGigE1/10 -Ethernet40 57,58,59,60 hundredGigE1/11 -Ethernet44 61,62,63,64 hundredGigE1/12 -Ethernet48 81,82,83,84 hundredGigE1/13 -Ethernet52 85,86,87,88 hundredGigE1/14 -Ethernet56 89,90,91,92 hundredGigE1/15 -Ethernet60 93,94,95,96 hundredGigE1/16 -Ethernet64 97,98,99,100 hundredGigE1/17 -Ethernet68 101,102,103,104 hundredGigE1/18 -Ethernet72 105,106,107,108 hundredGigE1/19 -Ethernet76 109,110,111,112 hundredGigE1/20 -Ethernet80 1,2,3,4 hundredGigE1/21 -Ethernet84 5,6,7,8 hundredGigE1/22 -Ethernet88 9,10,11,12 hundredGigE1/23 -Ethernet92 13,14,15,16 hundredGigE1/24 -Ethernet96 17,18,19,20 hundredGigE1/25 -Ethernet100 21,22,23,24 hundredGigE1/26 -Ethernet104 25,26,27,28 hundredGigE1/27 -Ethernet108 29,30,31,32 hundredGigE1/28 -Ethernet112 113,114,115,116 hundredGigE1/29 -Ethernet116 117,118,119,120 hundredGigE1/30 -Ethernet120 121,122,123,124 hundredGigE1/31 -Ethernet124 125,126,127,128 hundredGigE1/32 +Ethernet0 65,66,67,68 Eth1 +Ethernet4 69,70,71,72 Eth2 +Ethernet8 73,74,75,76 Eth3 +Ethernet12 77,78,79,80 Eth4 +Ethernet16 33,34,35,36 Eth5 +Ethernet20 37,38,39,40 Eth6 +Ethernet24 41,42,43,44 Eth7 +Ethernet28 45,46,47,48 Eth8 +Ethernet32 49,50,51,52 Eth9 +Ethernet36 53,54,55,56 Eth10 +Ethernet40 57,58,59,60 Eth11 +Ethernet44 61,62,63,64 Eth12 +Ethernet48 81,82,83,84 Eth13 +Ethernet52 85,86,87,88 Eth14 +Ethernet56 89,90,91,92 Eth15 +Ethernet60 93,94,95,96 Eth16 +Ethernet64 97,98,99,100 Eth17 +Ethernet68 101,102,103,104 Eth18 +Ethernet72 105,106,107,108 Eth19 +Ethernet76 109,110,111,112 Eth20 +Ethernet80 1,2,3,4 Eth21 +Ethernet84 5,6,7,8 Eth22 +Ethernet88 9,10,11,12 Eth23 +Ethernet92 13,14,15,16 Eth24 +Ethernet96 17,18,19,20 Eth25 +Ethernet100 21,22,23,24 Eth26 +Ethernet104 25,26,27,28 Eth27 +Ethernet108 29,30,31,32 Eth28 +Ethernet112 113,114,115,116 Eth29 +Ethernet116 117,118,119,120 Eth30 +Ethernet120 121,122,123,124 Eth31 +Ethernet124 125,126,127,128 Eth32 diff --git a/device/celestica/x86_64-cel_seastone-r0/minigraph.xml b/device/celestica/x86_64-cel_seastone-r0/minigraph.xml index c32f9e47513..2590e4f50c2 100644 --- a/device/celestica/x86_64-cel_seastone-r0/minigraph.xml +++ b/device/celestica/x86_64-cel_seastone-r0/minigraph.xml @@ -645,164 +645,564 @@ - hundredGigE1/1 + Eth1/1 10.0.0.0/31 - hundredGigE1/2 + Eth1/2 10.0.0.2/31 - hundredGigE1/3 + Eth1/3 10.0.0.4/31 - hundredGigE1/4 + Eth1/4 10.0.0.6/31 - hundredGigE1/5 + Eth2/1 10.0.0.8/31 - hundredGigE1/6 + Eth2/2 10.0.0.10/31 - hundredGigE1/7 + Eth2/3 10.0.0.12/31 - hundredGigE1/8 + Eth2/4 10.0.0.14/31 - hundredGigE1/9 + Eth3/1 10.0.0.16/31 - hundredGigE1/10 + Eth3/2 10.0.0.18/31 - hundredGigE1/11 + Eth3/3 10.0.0.20/31 - hundredGigE1/12 + Eth3/4 10.0.0.22/31 - hundredGigE1/13 + Eth4/1 10.0.0.24/31 - hundredGigE1/14 + Eth4/2 10.0.0.26/31 - hundredGigE1/15 + Eth4/3 10.0.0.28/31 - hundredGigE1/16 + Eth4/4 10.0.0.30/31 - hundredGigE1/17 + Eth5/1 10.0.0.32/31 - hundredGigE1/18 + Eth5/2 10.0.0.34/31 - hundredGigE1/19 + Eth5/3 10.0.0.36/31 - hundredGigE1/20 + Eth5/4 10.0.0.38/31 - hundredGigE1/21 + Eth6/1 10.0.0.40/31 - hundredGigE1/22 + Eth6/2 10.0.0.42/31 - hundredGigE1/23 + Eth6/3 10.0.0.44/31 - hundredGigE1/24 + Eth6/4 10.0.0.46/31 - hundredGigE1/25 + Eth7/1 10.0.0.48/31 - hundredGigE1/26 + Eth7/2 10.0.0.50/31 - hundredGigE1/27 + Eth7/3 10.0.0.52/31 - hundredGigE1/28 + Eth7/4 10.0.0.54/31 - hundredGigE1/29 + Eth8/1 10.0.0.56/31 - hundredGigE1/30 + Eth8/2 10.0.0.58/31 - hundredGigE1/31 + Eth8/3 10.0.0.60/31 - hundredGigE1/32 + Eth8/4 10.0.0.62/31 + + + Eth9/1 + 10.0.0.64/31 + + + + Eth9/2 + 10.0.0.66/31 + + + + Eth9/3 + 10.0.0.68/31 + + + + Eth9/4 + 10.0.0.70/31 + + + + Eth10/1 + 10.0.0.72/31 + + + + Eth10/2 + 10.0.0.74/31 + + + + Eth10/3 + 10.0.0.76/31 + + + + Eth10/4 + 10.0.0.78/31 + + + + Eth11/1 + 10.0.0.80/31 + + + + Eth11/2 + 10.0.0.82/31 + + + + Eth11/3 + 10.0.0.84/31 + + + + Eth11/4 + 10.0.0.86/31 + + + + Eth12/1 + 10.0.0.88/31 + + + + Eth12/2 + 10.0.0.90/31 + + + + Eth12/3 + 10.0.0.92/31 + + + + Eth12/4 + 10.0.0.94/31 + + + + Eth13/1 + 10.0.0.96/31 + + + + Eth13/2 + 10.0.0.98/31 + + + + Eth13/3 + 10.0.0.100/31 + + + + Eth13/4 + 10.0.0.102/31 + + + + Eth14/1 + 10.0.0.104/31 + + + + Eth14/2 + 10.0.0.106/31 + + + + Eth14/3 + 10.0.0.108/31 + + + + Eth14/4 + 10.0.0.110/31 + + + + Eth15/1 + 10.0.0.112/31 + + + + Eth15/2 + 10.0.0.114/31 + + + + Eth15/3 + 10.0.0.116/31 + + + + Eth15/4 + 10.0.0.118/31 + + + + Eth16/1 + 10.0.0.120/31 + + + + Eth16/2 + 10.0.0.122/31 + + + + Eth16/3 + 10.0.0.124/31 + + + + Eth16/4 + 10.0.0.126/31 + + + + Eth17/1 + 10.0.0.128/31 + + + + Eth17/2 + 10.0.0.130/31 + + + + Eth17/3 + 10.0.0.132/31 + + + + Eth17/4 + 10.0.0.134/31 + + + + Eth18/1 + 10.0.0.136/31 + + + + Eth18/2 + 10.0.0.138/31 + + + + Eth18/3 + 10.0.0.140/31 + + + + Eth18/4 + 10.0.0.142/31 + + + + Eth19/1 + 10.0.0.144/31 + + + + Eth19/2 + 10.0.0.146/31 + + + + Eth19/3 + 10.0.0.148/31 + + + + Eth19/4 + 10.0.0.150/31 + + + + Eth20/1 + 10.0.0.152/31 + + + + Eth20/2 + 10.0.0.154/31 + + + + Eth20/3 + 10.0.0.156/31 + + + + Eth20/4 + 10.0.0.158/31 + + + + Eth21/1 + 10.0.0.160/31 + + + + Eth21/2 + 10.0.0.162/31 + + + + Eth21/3 + 10.0.0.164/31 + + + + Eth21/4 + 10.0.0.166/31 + + + + Eth22/1 + 10.0.0.168/31 + + + + Eth22/2 + 10.0.0.170/31 + + + + Eth22/3 + 10.0.0.172/31 + + + + Eth22/4 + 10.0.0.174/31 + + + + Eth23/1 + 10.0.0.176/31 + + + + Eth23/2 + 10.0.0.178/31 + + + + Eth23/3 + 10.0.0.180/31 + + + + Eth23/4 + 10.0.0.182/31 + + + + Eth24/1 + 10.0.0.184/31 + + + + Eth24/2 + 10.0.0.186/31 + + + + Eth24/3 + 10.0.0.188/31 + + + + Eth24/4 + 10.0.0.190/31 + + + + Eth25/1 + 10.0.1.0/31 + + + + Eth25/2 + 10.0.1.2/31 + + + + Eth26/1 + 10.0.1.4/31 + + + + Eth26/2 + 10.0.1.6/31 + + + + Eth27/1 + 10.0.1.8/31 + + + + Eth27/2 + 10.0.1.10/31 + + + + Eth28/1 + 10.0.1.12/31 + + + + Eth28/2 + 10.0.1.14/31 + + + + Eth29/1 + 10.0.1.16/31 + + + + Eth29/2 + 10.0.1.18/31 + + + + Eth30/1 + 10.0.1.20/31 + + + + Eth30/2 + 10.0.1.22/31 + + + + Eth31/1 + 10.0.1.24/31 + + + + Eth31/2 + 10.0.1.26/31 + + + + Eth32/1 + 10.0.1.28/31 + + + + Eth32/2 + 10.0.1.30/31 + @@ -811,236 +1211,10 @@ - - - DeviceInterfaceLink - sonic - hundredGigE1/1 - ARISTA01T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/2 - ARISTA02T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/3 - ARISTA03T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/4 - ARISTA04T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/5 - ARISTA05T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/6 - ARISTA06T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/7 - ARISTA07T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/8 - ARISTA08T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/9 - ARISTA09T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/10 - ARISTA10T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/11 - ARISTA11T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/12 - ARISTA12T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/13 - ARISTA13T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/14 - ARISTA14T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/15 - ARISTA15T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/16 - ARISTA16T2 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/17 - ARISTA01T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/18 - ARISTA02T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/19 - ARISTA03T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/20 - ARISTA04T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/21 - ARISTA05T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/22 - ARISTA06T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/23 - ARISTA07T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/24 - ARISTA08T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/25 - ARISTA09T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/26 - ARISTA10T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/27 - ARISTA11T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/28 - ARISTA12T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/29 - ARISTA13T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/30 - ARISTA14T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/31 - ARISTA15T0 - Ethernet1 - - - DeviceInterfaceLink - sonic - hundredGigE1/32 - ARISTA16T0 - Ethernet1 - - sonic - Seastone-DX010 + Seastone-DX010-10-50 @@ -1075,5 +1249,5 @@ sonic - Seastone-DX010 + Seastone-DX010-10-50 diff --git a/device/celestica/x86_64-cel_seastone-r0/sensors.conf b/device/celestica/x86_64-cel_seastone-r0/sensors.conf index 93a0fd6db76..fc607b3dfae 100644 --- a/device/celestica/x86_64-cel_seastone-r0/sensors.conf +++ b/device/celestica/x86_64-cel_seastone-r0/sensors.conf @@ -17,28 +17,28 @@ chip "dps460-i2c-*-5b" ignore fan3 # These sensors located on Main Switch Board. -chip "dx010_lm75b-i2c-*-48" +chip "lm75b-i2c-*-48" label temp1 "Front-panel temp sensor 1" set temp1_max 43 set temp1_max_hyst 28 -chip "dx010_lm75b-i2c-*-49" +chip "lm75b-i2c-*-49" label temp1 "Front-panel temp sensor 2" set temp1_max 43 set temp1_max_hyst 28 -chip "dx010_lm75b-i2c-*-4a" +chip "lm75b-i2c-*-4a" label temp1 "ASIC temp sensor" set temp1_max 43 set temp1_max_hyst 28 # These sensors located on CPU Board. -chip "dx010_lm75b-i2c-*-48" +chip "lm75b-i2c-*-48" label temp1 "Rear-panel temp sensor 1" set temp1_max 43 set temp1_max_hyst 28 -chip "dx010_lm75b-i2c-*-4e" +chip "lm75b-i2c-*-4e" label temp1 "Rear-panel temp sensor 2" set temp1_max 43 - set temp1_max_hyst 28 \ No newline at end of file + set temp1_max_hyst 28 diff --git a/device/dell/x86_64-dell_s6000_s1220-r0/Force10-S6000/buffers.json.j2 b/device/dell/x86_64-dell_s6000_s1220-r0/Force10-S6000/buffers.json.j2 index 560cae5dd1b..10f9da575a1 100644 --- a/device/dell/x86_64-dell_s6000_s1220-r0/Force10-S6000/buffers.json.j2 +++ b/device/dell/x86_64-dell_s6000_s1220-r0/Force10-S6000/buffers.json.j2 @@ -71,20 +71,15 @@ "ingress_lossless_pool": { "size": "7274496", "type": "ingress", - "mode": "static" + "mode": "dynamic" }, "ingress_lossy_pool": { "size": "5491712", "type": "ingress", "mode": "dynamic" }, - "egress_lossless_pool0": { - "size": "3637248", - "type": "egress", - "mode": "static" - }, - "egress_lossless_pool1": { - "size": "3637248", + "egress_lossless_pool": { + "size": "7274496", "type": "egress", "mode": "static" }, @@ -95,20 +90,23 @@ } }, "BUFFER_PROFILE": { + "ingress_lossless_profile": { + "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "xon":"18432", + "xoff":"40560", + "size":"41808", + "dynamic_th":"-3", + "xon_offset":"2496" + }, "ingress_lossy_profile": { "pool":"[BUFFER_POOL|ingress_lossy_pool]", "size":"1518", "dynamic_th":"3" }, - "egress_lossless_profile0": { - "pool":"[BUFFER_POOL|egress_lossless_pool0]", - "size":"1518", - "static_th":"3637248" - }, - "egress_lossless_profile1": { - "pool":"[BUFFER_POOL|egress_lossless_pool1]", - "size":"1518", - "static_th":"3637248" + "egress_lossless_profile": { + "pool":"[BUFFER_POOL|egress_lossless_pool]", + "size":"0", + "static_th":"7274496" }, "egress_lossy_profile": { "pool":"[BUFFER_POOL|egress_lossy_pool]", @@ -117,16 +115,16 @@ } }, "BUFFER_PG": { + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + }, "{{ port_names }}|0-1": { "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" } }, "BUFFER_QUEUE": { - "{{ port_names }}|3": { - "profile" : "[BUFFER_PROFILE|egress_lossless_profile0]" - }, - "{{ port_names }}|4": { - "profile" : "[BUFFER_PROFILE|egress_lossless_profile1]" + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" }, "{{ port_names }}|0-1": { "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" diff --git a/device/dell/x86_64-dell_s6000_s1220-r0/Force10-S6000/pg_profile_lookup.ini b/device/dell/x86_64-dell_s6000_s1220-r0/Force10-S6000/pg_profile_lookup.ini deleted file mode 100644 index f3a0840558a..00000000000 --- a/device/dell/x86_64-dell_s6000_s1220-r0/Force10-S6000/pg_profile_lookup.ini +++ /dev/null @@ -1,17 +0,0 @@ -# PG lossless profiles. -# speed cable size xon xoff threshold - 10000 5m 113664 18432 76800 0 - 25000 5m 113664 18432 76800 0 - 40000 5m 113664 18432 76800 0 - 50000 5m 113664 18432 76800 0 - 100000 5m 113664 18432 76800 0 - 10000 40m 113664 18432 76800 0 - 25000 40m 113664 18432 76800 0 - 40000 40m 113664 18432 76800 0 - 50000 40m 113664 18432 76800 0 - 100000 40m 113664 18432 76800 0 - 10000 300m 113664 18432 76800 0 - 25000 300m 113664 18432 76800 0 - 40000 300m 113664 18432 76800 0 - 50000 300m 113664 18432 76800 0 - 100000 300m 113664 18432 76800 0 diff --git a/device/dell/x86_64-dell_s6000_s1220-r0/Force10-S6000/qos.json b/device/dell/x86_64-dell_s6000_s1220-r0/Force10-S6000/qos.json new file mode 100644 index 00000000000..926911ab59d --- /dev/null +++ b/device/dell/x86_64-dell_s6000_s1220-r0/Force10-S6000/qos.json @@ -0,0 +1,143 @@ +{ + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "0": "0", + "1": "1", + "3": "3", + "4": "4" + } + }, + "MAP_PFC_PRIORITY_TO_QUEUE": { + "AZURE": { + "0": "0", + "1": "1", + "3": "3", + "4": "4" + } + }, + "TC_TO_QUEUE_MAP": { + "AZURE": { + "0": "0", + "1": "1", + "3": "3", + "4": "4" + } + }, + "DSCP_TO_TC_MAP": { + "AZURE": { + "0":"0", + "1":"0", + "2":"0", + "3":"3", + "4":"4", + "5":"0", + "6":"0", + "7":"0", + "8":"1", + "9":"0", + "10":"0", + "11":"0", + "12":"0", + "13":"0", + "14":"0", + "15":"0", + "16":"0", + "17":"0", + "18":"0", + "19":"0", + "20":"0", + "21":"0", + "22":"0", + "23":"0", + "24":"0", + "25":"0", + "26":"0", + "27":"0", + "28":"0", + "29":"0", + "30":"0", + "31":"0", + "32":"0", + "33":"0", + "34":"0", + "35":"0", + "36":"0", + "37":"0", + "38":"0", + "39":"0", + "40":"0", + "41":"0", + "42":"0", + "43":"0", + "44":"0", + "45":"0", + "46":"0", + "47":"0", + "48":"0", + "49":"0", + "50":"0", + "51":"0", + "52":"0", + "53":"0", + "54":"0", + "55":"0", + "56":"0", + "57":"0", + "58":"0", + "59":"0", + "60":"0", + "61":"0", + "62":"0", + "63":"0" + } + }, + "SCHEDULER": { + "scheduler.0" : { + "type":"DWRR", + "weight": "25" + }, + "scheduler.1" : { + "type":"DWRR", + "weight": "30" + }, + "scheduler.2" : { + "type":"DWRR", + "weight": "20" + } + }, + "PORT_QOS_MAP": { + "Ethernet0,Ethernet4,Ethernet8,Ethernet12,Ethernet16,Ethernet20,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet44,Ethernet48,Ethernet52,Ethernet56,Ethernet60,Ethernet64,Ethernet68,Ethernet72,Ethernet76,Ethernet80,Ethernet84,Ethernet88,Ethernet92,Ethernet96,Ethernet100,Ethernet104,Ethernet108,Ethernet112,Ethernet116,Ethernet120,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", + "red_max_threshold":"312000", + "red_min_threshold":"104000", + "yellow_max_threshold":"312000", + "yellow_min_threshold":"104000", + "green_max_threshold":"312000", + "green_min_threshold":"104000" + } + }, + "QUEUE": { + "Ethernet0,Ethernet4,Ethernet8,Ethernet12,Ethernet16,Ethernet20,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet44,Ethernet48,Ethernet52,Ethernet56,Ethernet60,Ethernet64,Ethernet68,Ethernet72,Ethernet76,Ethernet80,Ethernet84,Ethernet88,Ethernet92,Ethernet96,Ethernet100,Ethernet104,Ethernet108,Ethernet112,Ethernet116,Ethernet120,Ethernet124|3-4" : { + "scheduler" : "[SCHEDULER|scheduler.0]", + "wred_profile" : "[WRED_PROFILE|AZURE_LOSSLESS]" + }, + "Ethernet0,Ethernet4,Ethernet8,Ethernet12,Ethernet16,Ethernet20,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet44,Ethernet48,Ethernet52,Ethernet56,Ethernet60,Ethernet64,Ethernet68,Ethernet72,Ethernet76,Ethernet80,Ethernet84,Ethernet88,Ethernet92,Ethernet96,Ethernet100,Ethernet104,Ethernet108,Ethernet112,Ethernet116,Ethernet120,Ethernet124|0" : { + "scheduler" : "[SCHEDULER|scheduler.1]" + }, + "Ethernet0,Ethernet4,Ethernet8,Ethernet12,Ethernet16,Ethernet20,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet44,Ethernet48,Ethernet52,Ethernet56,Ethernet60,Ethernet64,Ethernet68,Ethernet72,Ethernet76,Ethernet80,Ethernet84,Ethernet88,Ethernet92,Ethernet96,Ethernet100,Ethernet104,Ethernet108,Ethernet112,Ethernet116,Ethernet120,Ethernet124|1" : { + "scheduler" : "[SCHEDULER|scheduler.2]" + } + } +} diff --git a/device/dell/x86_64-dell_s6000_s1220-r0/platform_reboot b/device/dell/x86_64-dell_s6000_s1220-r0/platform_reboot new file mode 100755 index 00000000000..875a5278775 --- /dev/null +++ b/device/dell/x86_64-dell_s6000_s1220-r0/platform_reboot @@ -0,0 +1,3 @@ +#!/bin/sh + +echo 1 > /sys/devices/platform/dell-s6000-cpld.0/power_reset diff --git a/device/dell/x86_64-dell_s6100_c2538-r0/Force10-S6100/buffers.json.j2 b/device/dell/x86_64-dell_s6100_c2538-r0/Force10-S6100/buffers.json.j2 index 153e487f2f0..1083a6210fc 100644 --- a/device/dell/x86_64-dell_s6100_c2538-r0/Force10-S6100/buffers.json.j2 +++ b/device/dell/x86_64-dell_s6100_c2538-r0/Force10-S6100/buffers.json.j2 @@ -1,128 +1,2 @@ -{# Default values which will be used if no actual configura available #} -{% set default_cable = '300m' %} -{% set default_speed = '100G' %} -{% set default_ports_num = 64 -%} - -{# Port configuration to cable length look-up table #} -{# Each record describes mapping of DUT (DUT port) role and neighbor role to cable length #} -{# Roles described in the minigraph #} -{% set ports2cable = { - 'torrouter_server' : '5m', - 'leafrouter_torrouter' : '40m', - 'spinerouter_leafrouter' : '300m' - } -%} - -{%- macro cable_length(port_name) -%} - {%- set cable_len = [] -%} - {%- for local_port in DEVICE_NEIGHBOR -%} - {%- if local_port == port_name -%} - {%- if DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] -%} - {%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] -%} - {%- set neighbor_role = neighbor.type -%} - {%- set roles1 = switch_role + '_' + neighbor_role %} - {%- set roles2 = neighbor_role + '_' + switch_role -%} - {%- set roles1 = roles1 | lower -%} - {%- set roles2 = roles2 | lower -%} - {%- if roles1 in ports2cable -%} - {%- if cable_len.append(ports2cable[roles1]) -%}{%- endif -%} - {%- elif roles2 in ports2cable -%} - {%- if cable_len.append(ports2cable[roles2]) -%}{%- endif -%} - {%- endif -%} - {%- endif -%} - {%- endif -%} - {%- endfor -%} - {%- if cable_len -%} - {{ cable_len.0 }} - {%- else -%} - {{ default_cable }} - {%- endif -%} -{% endmacro %} - -{%- if DEVICE_METADATA is defined %} -{%- set switch_role = DEVICE_METADATA['localhost']['type'] %} -{%- endif -%} - -{# Generate list of ports if not defined #} -{% if PORT is not defined %} - {% set PORT = [] %} - {% for port_idx in range(0,default_ports_num) %} - {% if PORT.append("Ethernet%d" % port_idx) %}{% endif %} - {% endfor %} -{% endif -%} - -{% set port_names_list = [] %} -{% for port in PORT %} - {%- if port_names_list.append(port) %}{% endif %} -{% endfor %} -{% set port_names = port_names_list | join(',') -%} - -{ - "CABLE_LENGTH": { - "AZURE": { - {% for port in PORT %} - {% set cable = cable_length(port) -%} - "{{ port }}": "{{ cable }}"{%- if not loop.last -%},{% endif %} - - {% endfor %} - } - }, - "BUFFER_POOL": { - "ingress_lossless_pool": { - "size": "10443264", - "type": "ingress", - "mode": "dynamic", - "xoff": "4625920" - }, - "egress_lossy_pool": { - "size": "8877440", - "type": "egress", - "mode": "dynamic" - }, - "egress_lossless_pool": { - "size": "15982592", - "type": "egress", - "mode": "static" - } - }, - "BUFFER_PROFILE": { - "ingress_lossless_profile": { - "pool": "[BUFFER_POOL|ingress_lossless_pool]", - "xon": "4096", - "xoff": "58448", - "size": "1248", - "dynamic_th": "-4" - }, - "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":"3995648" - }, - "egress_lossy_profile": { - "pool":"[BUFFER_POOL|egress_lossy_pool]", - "size":"1518", - "dynamic_th":"3" - } - }, - "BUFFER_PG": { - "{{ port_names }}|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" - }, - "{{ port_names }}|0-1": { - "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" - } - }, - "BUFFER_QUEUE": { - "{{ port_names }}|3-4": { - "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" - }, - "{{ port_names }}|0-1": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" - } - } -} +{%- set default_topo = 't0' %} +{%- include 'buffers_config.j2' %} diff --git a/device/dell/x86_64-dell_s6100_c2538-r0/Force10-S6100/buffers_defaults_t0.j2 b/device/dell/x86_64-dell_s6100_c2538-r0/Force10-S6100/buffers_defaults_t0.j2 new file mode 100644 index 00000000000..7464d31b8e6 --- /dev/null +++ b/device/dell/x86_64-dell_s6100_c2538-r0/Force10-S6100/buffers_defaults_t0.j2 @@ -0,0 +1,47 @@ + +{%- set default_cable = '5m' %} + +{%- macro generate_port_lists(PORT_ALL) %} + {# Generate list of ports #} + {%- for port_idx in range(0,63) %} + {%- if PORT_ALL.append("Ethernet%d" % (port_idx)) %}{%- endif %} + {%- endfor %} +{%- endmacro %} + +{%- macro generate_buffer_pool_and_profiles() %} + "BUFFER_POOL": { + "ingress_lossless_pool": { + "size": "11213696", + "type": "ingress", + "mode": "dynamic", + "xoff": "3855488" + }, + "egress_lossy_pool": { + "size": "9532224", + "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":"3995680" + }, + "egress_lossy_profile": { + "pool":"[BUFFER_POOL|egress_lossy_pool]", + "size":"1518", + "dynamic_th":"3" + } + }, +{%- endmacro %} diff --git a/device/dell/x86_64-dell_s6100_c2538-r0/Force10-S6100/buffers_defaults_t1.j2 b/device/dell/x86_64-dell_s6100_c2538-r0/Force10-S6100/buffers_defaults_t1.j2 new file mode 100644 index 00000000000..d367dba3f74 --- /dev/null +++ b/device/dell/x86_64-dell_s6100_c2538-r0/Force10-S6100/buffers_defaults_t1.j2 @@ -0,0 +1,47 @@ + +{%- set default_cable = '40m' %} + +{%- macro generate_port_lists(PORT_ALL) %} + {# Generate list of ports #} + {%- for port_idx in range(0,63) %} + {%- if PORT_ALL.append("Ethernet%d" % (port_idx)) %}{%- endif %} + {%- endfor %} +{%- endmacro %} + +{%- macro generate_buffer_pool_and_profiles() %} + "BUFFER_POOL": { + "ingress_lossless_pool": { + "size": "10443264", + "type": "ingress", + "mode": "dynamic", + "xoff": "4625920" + }, + "egress_lossy_pool": { + "size": "8877440", + "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":"3995680" + }, + "egress_lossy_profile": { + "pool":"[BUFFER_POOL|egress_lossy_pool]", + "size":"1518", + "dynamic_th":"3" + } + }, +{%- endmacro %} diff --git a/device/dell/x86_64-dell_s6100_c2538-r0/Force10-S6100/pg_profile_lookup.ini b/device/dell/x86_64-dell_s6100_c2538-r0/Force10-S6100/pg_profile_lookup.ini index c2375046870..3b2a417cebc 100644 --- a/device/dell/x86_64-dell_s6100_c2538-r0/Force10-S6100/pg_profile_lookup.ini +++ b/device/dell/x86_64-dell_s6100_c2538-r0/Force10-S6100/pg_profile_lookup.ini @@ -1,17 +1,17 @@ # PG lossless profiles. -# speed cable size xon xoff threshold - 10000 5m 1248 2288 35776 -4 - 25000 5m 1248 2288 53248 -4 - 40000 5m 1248 2288 66560 -4 - 50000 5m 1248 2288 90272 -4 - 100000 5m 1248 2288 165568 -4 - 10000 40m 1248 2288 37024 -4 - 25000 40m 1248 2288 53248 -4 - 40000 40m 1248 2288 71552 -4 - 50000 40m 1248 2288 96096 -4 - 100000 40m 1248 2288 177632 -4 - 10000 300m 1248 2288 46176 -4 - 25000 300m 1248 2288 79040 -4 - 40000 300m 1248 2288 108160 -4 - 50000 300m 1248 2288 141856 -4 - 100000 300m 1248 2288 268736 -4 +# speed cable size xon xoff threshold xon_offset + 10000 5m 1248 2288 35776 -4 2288 + 25000 5m 1248 2288 53248 -4 2288 + 40000 5m 1248 2288 66560 -4 2288 + 50000 5m 1248 2288 90272 -4 2288 + 100000 5m 1248 2288 165568 -4 2288 + 10000 40m 1248 2288 37024 -4 2288 + 25000 40m 1248 2288 53248 -4 2288 + 40000 40m 1248 2288 71552 -4 2288 + 50000 40m 1248 2288 96096 -4 2288 + 100000 40m 1248 2288 177632 -4 2288 + 10000 300m 1248 2288 46176 -4 2288 + 25000 300m 1248 2288 79040 -4 2288 + 40000 300m 1248 2288 108160 -4 2288 + 50000 300m 1248 2288 141856 -4 2288 + 100000 300m 1248 2288 268736 -4 2288 diff --git a/device/dell/x86_64-dell_s6100_c2538-r0/Force10-S6100/qos.json b/device/dell/x86_64-dell_s6100_c2538-r0/Force10-S6100/qos.json new file mode 100644 index 00000000000..d63cbfb8c55 --- /dev/null +++ b/device/dell/x86_64-dell_s6100_c2538-r0/Force10-S6100/qos.json @@ -0,0 +1,167 @@ +{ + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "0": "0", + "1": "1", + "2": "2", + "3": "3", + "4": "4", + "5": "5", + "6": "6", + "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":"0", + "1":"0", + "2":"0", + "3":"3", + "4":"4", + "5":"0", + "6":"0", + "7":"0", + "8":"1", + "9":"0", + "10":"0", + "11":"0", + "12":"0", + "13":"0", + "14":"0", + "15":"0", + "16":"0", + "17":"0", + "18":"0", + "19":"0", + "20":"0", + "21":"0", + "22":"0", + "23":"0", + "24":"0", + "25":"0", + "26":"0", + "27":"0", + "28":"0", + "29":"0", + "30":"0", + "31":"0", + "32":"0", + "33":"0", + "34":"0", + "35":"0", + "36":"0", + "37":"0", + "38":"0", + "39":"0", + "40":"0", + "41":"0", + "42":"0", + "43":"0", + "44":"0", + "45":"0", + "46":"0", + "47":"0", + "48":"0", + "49":"0", + "50":"0", + "51":"0", + "52":"0", + "53":"0", + "54":"0", + "55":"0", + "56":"0", + "57":"0", + "58":"0", + "59":"0", + "60":"0", + "61":"0", + "62":"0", + "63":"0" + } + }, + "SCHEDULER": { + "scheduler.0" : { + "type":"DWRR", + "weight": "25" + }, + "scheduler.1" : { + "type":"DWRR", + "weight": "30" + }, + "scheduler.2" : { + "type":"DWRR", + "weight": "20" + } + }, + "PORT_QOS_MAP": { + "Ethernet0,Ethernet1,Ethernet2,Ethernet3,Ethernet4,Ethernet5,Ethernet6,Ethernet7,Ethernet8,Ethernet9,Ethernet10,Ethernet11,Ethernet12,Ethernet13,Ethernet14,Ethernet15,Ethernet16,Ethernet17,Ethernet18,Ethernet19,Ethernet20,Ethernet21,Ethernet22,Ethernet23,Ethernet24,Ethernet25,Ethernet26,Ethernet27,Ethernet28,Ethernet29,Ethernet30,Ethernet31,Ethernet32,Ethernet33,Ethernet34,Ethernet35,Ethernet36,Ethernet37,Ethernet38,Ethernet39,Ethernet40,Ethernet41,Ethernet42,Ethernet43,Ethernet44,Ethernet45,Ethernet46,Ethernet47,Ethernet48,Ethernet49,Ethernet50,Ethernet51,Ethernet52,Ethernet53,Ethernet54,Ethernet55,Ethernet56,Ethernet57,Ethernet58,Ethernet59,Ethernet60,Ethernet61,Ethernet62,Ethernet63": { + "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_LOSSY" : { + "wred_green_enable":"true", + "wred_yellow_enable":"true", + "ecn":"ecn_all", + "red_max_threshold":"512000", + "red_min_threshold":"512000", + "yellow_max_threshold":"512000", + "yellow_min_threshold":"512000", + "green_max_threshold": "184320", + "green_min_threshold": "184320" + }, + "AZURE_LOSSLESS" : { + "wred_green_enable":"true", + "wred_yellow_enable":"true", + "ecn":"ecn_all", + "red_max_threshold":"512000", + "red_min_threshold":"512000", + "yellow_max_threshold":"512000", + "yellow_min_threshold":"512000", + "green_max_threshold": "184320", + "green_min_threshold": "184320" + } + }, + "QUEUE": { + "Ethernet0,Ethernet1,Ethernet2,Ethernet3,Ethernet4,Ethernet5,Ethernet6,Ethernet7,Ethernet8,Ethernet9,Ethernet10,Ethernet11,Ethernet12,Ethernet13,Ethernet14,Ethernet15,Ethernet16,Ethernet17,Ethernet18,Ethernet19,Ethernet20,Ethernet21,Ethernet22,Ethernet23,Ethernet24,Ethernet25,Ethernet26,Ethernet27,Ethernet28,Ethernet29,Ethernet30,Ethernet31,Ethernet32,Ethernet33,Ethernet34,Ethernet35,Ethernet36,Ethernet37,Ethernet38,Ethernet39,Ethernet40,Ethernet41,Ethernet42,Ethernet43,Ethernet44,Ethernet45,Ethernet46,Ethernet47,Ethernet48,Ethernet49,Ethernet50,Ethernet51,Ethernet52,Ethernet53,Ethernet54,Ethernet55,Ethernet56,Ethernet57,Ethernet58,Ethernet59,Ethernet60,Ethernet61,Ethernet62,Ethernet63|0-1" : { + "wred_profile" : "[WRED_PROFILE|AZURE_LOSSY]" + }, + "Ethernet0,Ethernet1,Ethernet2,Ethernet3,Ethernet4,Ethernet5,Ethernet6,Ethernet7,Ethernet8,Ethernet9,Ethernet10,Ethernet11,Ethernet12,Ethernet13,Ethernet14,Ethernet15,Ethernet16,Ethernet17,Ethernet18,Ethernet19,Ethernet20,Ethernet21,Ethernet22,Ethernet23,Ethernet24,Ethernet25,Ethernet26,Ethernet27,Ethernet28,Ethernet29,Ethernet30,Ethernet31,Ethernet32,Ethernet33,Ethernet34,Ethernet35,Ethernet36,Ethernet37,Ethernet38,Ethernet39,Ethernet40,Ethernet41,Ethernet42,Ethernet43,Ethernet44,Ethernet45,Ethernet46,Ethernet47,Ethernet48,Ethernet49,Ethernet50,Ethernet51,Ethernet52,Ethernet53,Ethernet54,Ethernet55,Ethernet56,Ethernet57,Ethernet58,Ethernet59,Ethernet60,Ethernet61,Ethernet62,Ethernet63!3-4" : { + "scheduler" : "[SCHEDULER|scheduler.0]" + }, + "Ethernet0,Ethernet1,Ethernet2,Ethernet3,Ethernet4,Ethernet5,Ethernet6,Ethernet7,Ethernet8,Ethernet9,Ethernet10,Ethernet11,Ethernet12,Ethernet13,Ethernet14,Ethernet15,Ethernet16,Ethernet17,Ethernet18,Ethernet19,Ethernet20,Ethernet21,Ethernet22,Ethernet23,Ethernet24,Ethernet25,Ethernet26,Ethernet27,Ethernet28,Ethernet29,Ethernet30,Ethernet31,Ethernet32,Ethernet33,Ethernet34,Ethernet35,Ethernet36,Ethernet37,Ethernet38,Ethernet39,Ethernet40,Ethernet41,Ethernet42,Ethernet43,Ethernet44,Ethernet45,Ethernet46,Ethernet47,Ethernet48,Ethernet49,Ethernet50,Ethernet51,Ethernet52,Ethernet53,Ethernet54,Ethernet55,Ethernet56,Ethernet57,Ethernet58,Ethernet59,Ethernet60,Ethernet61,Ethernet62,Ethernet63!0" : { + "scheduler" : "[SCHEDULER|scheduler.1]" + }, + "Ethernet0,Ethernet1,Ethernet2,Ethernet3,Ethernet4,Ethernet5,Ethernet6,Ethernet7,Ethernet8,Ethernet9,Ethernet10,Ethernet11,Ethernet12,Ethernet13,Ethernet14,Ethernet15,Ethernet16,Ethernet17,Ethernet18,Ethernet19,Ethernet20,Ethernet21,Ethernet22,Ethernet23,Ethernet24,Ethernet25,Ethernet26,Ethernet27,Ethernet28,Ethernet29,Ethernet30,Ethernet31,Ethernet32,Ethernet33,Ethernet34,Ethernet35,Ethernet36,Ethernet37,Ethernet38,Ethernet39,Ethernet40,Ethernet41,Ethernet42,Ethernet43,Ethernet44,Ethernet45,Ethernet46,Ethernet47,Ethernet48,Ethernet49,Ethernet50,Ethernet51,Ethernet52,Ethernet53,Ethernet54,Ethernet55,Ethernet56,Ethernet57,Ethernet58,Ethernet59,Ethernet60,Ethernet61,Ethernet62,Ethernet63!1" : { + "scheduler" : "[SCHEDULER|scheduler.2]" + } + } +} diff --git a/device/dell/x86_64-dell_s6100_c2538-r0/Force10-S6100/sai.profile b/device/dell/x86_64-dell_s6100_c2538-r0/Force10-S6100/sai.profile index ee286905f90..78b0dec06d5 100644 --- a/device/dell/x86_64-dell_s6100_c2538-r0/Force10-S6100/sai.profile +++ b/device/dell/x86_64-dell_s6100_c2538-r0/Force10-S6100/sai.profile @@ -1 +1 @@ -SAI_INIT_CONFIG_FILE=/etc/bcm/th-s6100-64x40G.config.bcm +SAI_INIT_CONFIG_FILE=/etc/bcm/th-s6100-64x40G-t0.config.bcm diff --git a/device/delta/x86_64-delta_ag9032v1-r0/plugins/sfputil.py b/device/delta/x86_64-delta_ag9032v1-r0/plugins/sfputil.py index 54d69446b1d..dc5f8037f26 100644 --- a/device/delta/x86_64-delta_ag9032v1-r0/plugins/sfputil.py +++ b/device/delta/x86_64-delta_ag9032v1-r0/plugins/sfputil.py @@ -51,7 +51,7 @@ def get_presence(self, port_num): return False try: - reg_file = open("/sys/devices/platform/delta-ag9032v1-cpld.0/sfp_present") + reg_file = open("/sys/devices/platform/delta-ag9032v1-swpld.0/sfp_present") except IOError as e: print "Error: unable to open file: %s" % str(e) return False @@ -76,7 +76,7 @@ def get_low_power_mode(self, port_num): return False try: - reg_file = open("/sys/devices/platform/delta-ag9032v1-cpld.0/sfp_lpmode") + reg_file = open("/sys/devices/platform/delta-ag9032v1-swpld.0/sfp_lpmode") except IOError as e: print "Error: unable to open file: %s" % str(e) @@ -100,7 +100,7 @@ def set_low_power_mode(self, port_num, lpmode): return False try: - reg_file = open("/sys/devices/platform/delta-ag9032v1-cpld.0/sfp_lpmode", "r+") + reg_file = open("/sys/devices/platform/delta-ag9032v1-swpld.0/sfp_lpmode", "r+") except IOError as e: print "Error: unable to open file: %s" % str(e) return False @@ -129,7 +129,7 @@ def set_low_power_mode(self, port_num, lpmode): return True def reset(self, port_num): - QSFP_RESET_REGISTER_DEVICE_FILE = "/sys/devices/platform/delta-ag9032v1-cpld.0/sfp_reset" + QSFP_RESET_REGISTER_DEVICE_FILE = "/sys/devices/platform/delta-ag9032v1-swpld.0/sfp_reset" # Check for invalid port_num if port_num < self.port_start or port_num > self.port_end: @@ -172,4 +172,4 @@ def reset(self, port_num): reg_file.write(hex(reg_value)) reg_file.close() - return True \ No newline at end of file + return True diff --git a/device/delta/x86_64-delta_ag9064-r0/Delta-ag9064/port_config.ini b/device/delta/x86_64-delta_ag9064-r0/Delta-ag9064/port_config.ini new file mode 100644 index 00000000000..be43857f82b --- /dev/null +++ b/device/delta/x86_64-delta_ag9064-r0/Delta-ag9064/port_config.ini @@ -0,0 +1,65 @@ +# name lanes alias +Ethernet0 49,50,51,52 Ethernet1/1 +Ethernet4 53,54,55,56 Ethernet2/1 +Ethernet8 65,66,67,68 Ethernet3/1 +Ethernet12 69,70,71,72 Ethernet4/1 +Ethernet16 81,82,83,84 Ethernet5/1 +Ethernet20 85,86,87,88 Ethernet6/1 +Ethernet24 1,2,3,4 Ethernet7/1 +Ethernet28 101,102,103,104 Ethernet8/1 +Ethernet32 5,6,7,8 Ethernet9/1 +Ethernet36 17,18,19,20 Ethernet10/1 +Ethernet40 21,22,23,24 Ethernet11/1 +Ethernet44 33,34,35,36 Ethernet12/1 +Ethernet48 37,38,39,40 Ethernet13/1 +Ethernet52 97,98,99,100 Ethernet14/1 +Ethernet56 113,114,115,116 Ethernet15/1 +Ethernet60 117,118,119,120 Ethernet16/1 +Ethernet64 129,130,131,132 Ethernet17/1 +Ethernet68 133,134,135,136 Ethernet18/1 +Ethernet72 145,146,147,148 Ethernet19/1 +Ethernet76 209,210,211,212 Ethernet20/1 +Ethernet80 213,214,215,216 Ethernet21/1 +Ethernet84 225,226,227,228 Ethernet22/1 +Ethernet88 229,230,231,232 Ethernet23/1 +Ethernet92 241,242,243,244 Ethernet24/1 +Ethernet96 245,246,247,248 Ethernet25/1 +Ethernet100 157,158,159,160 Ethernet26/1 +Ethernet104 161,162,163,164 Ethernet27/1 +Ethernet108 165,166,167,168 Ethernet28/1 +Ethernet112 177,178,179,180 Ethernet29/1 +Ethernet116 181,182,183,184 Ethernet30/1 +Ethernet120 193,194,195,196 Ethernet31/1 +Ethernet124 197,198,199,200 Ethernet32/1 +Ethernet128 61,62,63,64 Ethernet33/1 +Ethernet132 57,58,59,60 Ethernet34/1 +Ethernet136 77,78,79,80 Ethernet35/1 +Ethernet140 73,74,75,76 Ethernet36/1 +Ethernet144 93,94,95,96 Ethernet37/1 +Ethernet148 89,90,91,92 Ethernet38/1 +Ethernet152 105,106,107,108 Ethernet39/1 +Ethernet156 9,10,11,12 Ethernet40/1 +Ethernet160 25,26,27,28 Ethernet41/1 +Ethernet164 13,14,15,16 Ethernet42/1 +Ethernet168 41,42,43,44 Ethernet43/1 +Ethernet172 29,30,31,32 Ethernet44/1 +Ethernet176 45,46,47,48 Ethernet45/1 +Ethernet180 109,110,111,112 Ethernet46/1 +Ethernet184 125,126,127,128 Ethernet47/1 +Ethernet188 121,122,123,124 Ethernet48/1 +Ethernet192 141,142,143,144 Ethernet49/1 +Ethernet196 137,138,139,140 Ethernet50/1 +Ethernet200 217,218,219,220 Ethernet51/1 +Ethernet204 149,150,151,152 Ethernet52/1 +Ethernet208 233,234,235,236 Ethernet53/1 +Ethernet212 221,222,223,224 Ethernet54/1 +Ethernet216 249,250,251,252 Ethernet55/1 +Ethernet220 237,238,239,240 Ethernet56/1 +Ethernet224 153,154,155,156 Ethernet57/1 +Ethernet228 253,254,255,256 Ethernet58/1 +Ethernet232 173,174,175,176 Ethernet59/1 +Ethernet236 169,170,171,172 Ethernet60/1 +Ethernet240 189,190,191,192 Ethernet61/1 +Ethernet244 185,186,187,188 Ethernet62/1 +Ethernet248 205,206,207,208 Ethernet63/1 +Ethernet252 201,202,203,204 Ethernet64/1 diff --git a/device/delta/x86_64-delta_ag9064-r0/Delta-ag9064/sai.profile b/device/delta/x86_64-delta_ag9064-r0/Delta-ag9064/sai.profile new file mode 100644 index 00000000000..b2ecd7a6da4 --- /dev/null +++ b/device/delta/x86_64-delta_ag9064-r0/Delta-ag9064/sai.profile @@ -0,0 +1 @@ +SAI_INIT_CONFIG_FILE=/etc/bcm/th2-ag9064-64x100G.config.bcm diff --git a/device/delta/x86_64-delta_ag9064-r0/installer.conf b/device/delta/x86_64-delta_ag9064-r0/installer.conf new file mode 100644 index 00000000000..fa2af8b7a00 --- /dev/null +++ b/device/delta/x86_64-delta_ag9064-r0/installer.conf @@ -0,0 +1,2 @@ +CONSOLE_PORT=0x3f8 +CONSOLE_SPEED=115200 diff --git a/device/delta/x86_64-delta_ag9064-r0/led_proc_init.soc b/device/delta/x86_64-delta_ag9064-r0/led_proc_init.soc new file mode 100644 index 00000000000..2e6f394b121 --- /dev/null +++ b/device/delta/x86_64-delta_ag9064-r0/led_proc_init.soc @@ -0,0 +1,63 @@ +led 0 stop +led 0 prog \ + 02 00 60 E0 02 A0 60 E2 86 ED 02 00 60 E1 2E E0 \ + 32 08 97 02 00 0E 05 60 E3 2E E0 32 00 32 01 B7 \ + 97 02 00 0E 00 12 E7 FE E1 50 86 E0 86 E1 06 E1 \ + D2 04 74 19 16 E7 61 EB 06 E3 12 05 67 92 06 E3 \ + 12 04 67 92 06 E3 12 03 67 92 16 E9 61 EB 06 E5 \ + 12 03 67 92 02 02 60 EC 02 00 60 E1 77 66 02 01 \ + 60 EC 02 00 60 E1 12 E7 FE E1 05 60 EB 12 E3 FE \ + E1 05 16 EC 67 92 86 E1 06 E1 D2 04 74 66 06 EC \ + D2 02 70 5E 06 E2 F2 04 60 E2 06 E0 D2 40 74 0A \ + 3A C0 09 75 A9 06 EB D2 00 70 A5 16 ED 99 99 1A \ + 00 71 A5 77 A9 32 0F 87 57 32 0E 87 57 00 00 00 +led 0 auto on +led 0 start + +led 1 stop +led 1 prog \ + 02 00 60 E0 02 A0 60 E2 86 ED 02 00 60 E1 2E E0 \ + 32 08 97 02 00 0E 05 60 E3 2E E0 32 00 32 01 B7 \ + 97 02 00 0E 00 12 E7 FE E1 50 86 E0 86 E1 06 E1 \ + D2 04 74 19 16 E7 61 EB 06 E3 12 05 67 92 06 E3 \ + 12 04 67 92 06 E3 12 03 67 92 16 E9 61 EB 06 E5 \ + 12 03 67 92 02 02 60 EC 02 00 60 E1 77 66 02 01 \ + 60 EC 02 00 60 E1 12 E7 FE E1 05 60 EB 12 E3 FE \ + E1 05 16 EC 67 92 86 E1 06 E1 D2 04 74 66 06 EC \ + D2 02 70 5E 06 E2 F2 04 60 E2 06 E0 D2 40 74 0A \ + 3A C0 09 75 A9 06 EB D2 00 70 A5 16 ED 99 99 1A \ + 00 71 A5 77 A9 32 0F 87 57 32 0E 87 57 00 00 00 +led 1 auto on +led 1 start + +led 2 stop +led 2 prog \ + 02 00 60 E0 02 A0 60 E2 86 ED 02 00 60 E1 2E E0 \ + 32 08 97 02 00 0E 05 60 E3 2E E0 32 00 32 01 B7 \ + 97 02 00 0E 00 12 E7 FE E1 50 86 E0 86 E1 06 E1 \ + D2 04 74 19 16 E7 61 EB 06 E3 12 05 67 92 06 E3 \ + 12 04 67 92 06 E3 12 03 67 92 16 E9 61 EB 06 E5 \ + 12 03 67 92 02 02 60 EC 02 00 60 E1 77 66 02 01 \ + 60 EC 02 00 60 E1 12 E7 FE E1 05 60 EB 12 E3 FE \ + E1 05 16 EC 67 92 86 E1 06 E1 D2 04 74 66 06 EC \ + D2 02 70 5E 06 E2 F2 04 60 E2 06 E0 D2 40 74 0A \ + 3A C0 09 75 A9 06 EB D2 00 70 A5 16 ED 99 99 1A \ + 00 71 A5 77 A9 32 0F 87 57 32 0E 87 57 00 00 00 +led 2 auto on +led 2 start + +led 3 stop +led 3 prog \ + 02 00 60 E0 02 A0 60 E2 86 ED 02 00 60 E1 2E E0 \ + 32 08 97 02 00 0E 05 60 E3 2E E0 32 00 32 01 B7 \ + 97 02 00 0E 00 12 E7 FE E1 50 86 E0 86 E1 06 E1 \ + D2 04 74 19 16 E7 61 EB 06 E3 12 05 67 92 06 E3 \ + 12 04 67 92 06 E3 12 03 67 92 16 E9 61 EB 06 E5 \ + 12 03 67 92 02 02 60 EC 02 00 60 E1 77 66 02 01 \ + 60 EC 02 00 60 E1 12 E7 FE E1 05 60 EB 12 E3 FE \ + E1 05 16 EC 67 92 86 E1 06 E1 D2 04 74 66 06 EC \ + D2 02 70 5E 06 E2 F2 04 60 E2 06 E0 D2 40 74 0A \ + 3A C0 09 75 A9 06 EB D2 00 70 A5 16 ED 99 99 1A \ + 00 71 A5 77 A9 32 0F 87 57 32 0E 87 57 00 00 00 +led 3 auto on +led 3 start diff --git a/device/delta/x86_64-delta_ag9064-r0/minigraph.xml b/device/delta/x86_64-delta_ag9064-r0/minigraph.xml new file mode 100644 index 00000000000..7a2ece42228 --- /dev/null +++ b/device/delta/x86_64-delta_ag9064-r0/minigraph.xml @@ -0,0 +1,848 @@ + + + + + + + + + + + + + + HostIP + Loopback0 + + 10.1.0.32/32 + + 10.1.0.32/32 + + + + + + + + sonic + + + + + + Ethernet1/1 + 10.0.0.0/31 + + + + Ethernet2/1 + 10.0.0.2/31 + + + + Ethernet3/1 + 10.0.0.4/31 + + + + Ethernet4/1 + 10.0.0.6/31 + + + + Ethernet5/1 + 10.0.0.8/31 + + + + Ethernet6/1 + 10.0.0.10/31 + + + + Ethernet7/1 + 10.0.0.12/31 + + + + Ethernet8/1 + 10.0.0.14/31 + + + + Ethernet9/1 + 10.0.0.16/31 + + + + Ethernet10/1 + 10.0.0.18/31 + + + + Ethernet11/1 + 10.0.0.20/31 + + + + Ethernet12/1 + 10.0.0.22/31 + + + + Ethernet13/1 + 10.0.0.24/31 + + + + Ethernet14/1 + 10.0.0.26/31 + + + + Ethernet15/1 + 10.0.0.28/31 + + + + Ethernet16/1 + 10.0.0.30/31 + + + + Ethernet17/1 + 10.0.0.32/31 + + + + Ethernet18/1 + 10.0.0.34/31 + + + + Ethernet19/1 + 10.0.0.36/31 + + + + Ethernet20/1 + 10.0.0.38/31 + + + + Ethernet21/1 + 10.0.0.40/31 + + + + Ethernet22/1 + 10.0.0.42/31 + + + + Ethernet23/1 + 10.0.0.44/31 + + + + Ethernet24/1 + 10.0.0.46/31 + + + + Ethernet25/1 + 10.0.0.48/31 + + + + Ethernet26/1 + 10.0.0.50/31 + + + + Ethernet27/1 + 10.0.0.52/31 + + + + Ethernet28/1 + 10.0.0.54/31 + + + + Ethernet29/1 + 10.0.0.56/31 + + + + Ethernet30/1 + 10.0.0.58/31 + + + + Ethernet31/1 + 10.0.0.60/31 + + + + Ethernet32/1 + 10.0.0.62/31 + + + + Ethernet33/1 + 10.0.0.64/31 + + + + Ethernet34/1 + 10.0.0.66/31 + + + + Ethernet35/1 + 10.0.0.68/31 + + + + Ethernet36/1 + 10.0.0.70/31 + + + + Ethernet37/1 + 10.0.0.72/31 + + + + Ethernet38/1 + 10.0.0.74/31 + + + + Ethernet39/1 + 10.0.0.76/31 + + + + Ethernet40/1 + 10.0.0.78/31 + + + + Ethernet41/1 + 10.0.0.80/31 + + + + Ethernet42/1 + 10.0.0.82/31 + + + + Ethernet43/1 + 10.0.0.84/31 + + + + Ethernet44/1 + 10.0.0.86/31 + + + + Ethernet45/1 + 10.0.0.88/31 + + + + Ethernet46/1 + 10.0.0.90/31 + + + + Ethernet47/1 + 10.0.0.92/31 + + + + Ethernet48/1 + 10.0.0.94/31 + + + + Ethernet49/1 + 10.0.0.96/31 + + + + Ethernet50/1 + 10.0.0.98/31 + + + + Ethernet51/1 + 10.0.0.100/31 + + + + Ethernet52/1 + 10.0.0.102/31 + + + + Ethernet53/1 + 10.0.0.104/31 + + + + Ethernet54/1 + 10.0.0.106/31 + + + + Ethernet55/1 + 10.0.0.108/31 + + + + Ethernet56/1 + 10.0.0.110/31 + + + + Ethernet57/1 + 10.0.0.112/31 + + + + Ethernet58/1 + 10.0.0.114/31 + + + + Ethernet59/1 + 10.0.0.116/31 + + + + Ethernet60/1 + 10.0.0.118/31 + + + + Ethernet61/1 + 10.0.0.120/31 + + + + Ethernet62/1 + 10.0.0.122/31 + + + + Ethernet63/1 + 10.0.0.124/31 + + + + Ethernet64/1 + 10.0.0.126/31 + + + + + + + + + + + + DeviceInterfaceLink + sonic-target + Ethernet1/1 + sonic + Ethernet1/1 + + + DeviceInterfaceLink + sonic-target + Ethernet2/1 + sonic + Ethernet2/1 + + + DeviceInterfaceLink + sonic-target + Ethernet3/1 + sonic + Ethernet3/1 + + + DeviceInterfaceLink + sonic-target + Ethernet4/1 + sonic + Ethernet4/1 + + + DeviceInterfaceLink + sonic-target + Ethernet5/1 + sonic + Ethernet5/1 + + + DeviceInterfaceLink + sonic-target + Ethernet6/1 + sonic + Ethernet6/1 + + + DeviceInterfaceLink + sonic-target + Ethernet7/1 + sonic + Ethernet7/1 + + + DeviceInterfaceLink + sonic-target + Ethernet8/1 + sonic + Ethernet8/1 + + + DeviceInterfaceLink + sonic-target + Ethernet9/1 + sonic + Ethernet9/1 + + + DeviceInterfaceLink + sonic-target + Ethernet10/1 + sonic + Ethernet10/1 + + + DeviceInterfaceLink + sonic-target + Ethernet11/1 + sonic + Ethernet11/1 + + + DeviceInterfaceLink + sonic-target + Ethernet12/1 + sonic + Ethernet12/1 + + + DeviceInterfaceLink + sonic-target + Ethernet13/1 + sonic + Ethernet13/1 + + + DeviceInterfaceLink + sonic-target + Ethernet14/1 + sonic + Ethernet14/1 + + + DeviceInterfaceLink + sonic-target + Ethernet15/1 + sonic + Ethernet15/1 + + + DeviceInterfaceLink + sonic-target + Ethernet16/1 + sonic + Ethernet16/1 + + + DeviceInterfaceLink + sonic-target + Ethernet17/1 + sonic + Ethernet17/1 + + + DeviceInterfaceLink + sonic-target + Ethernet18/1 + sonic + Ethernet18/1 + + + DeviceInterfaceLink + sonic-target + Ethernet19/1 + sonic + Ethernet19/1 + + + DeviceInterfaceLink + sonic-target + Ethernet20/1 + sonic + Ethernet20/1 + + + DeviceInterfaceLink + sonic-target + Ethernet21/1 + sonic + Ethernet21/1 + + + DeviceInterfaceLink + sonic-target + Ethernet22/1 + sonic + Ethernet22/1 + + + DeviceInterfaceLink + sonic-target + Ethernet23/1 + sonic + Ethernet23/1 + + + DeviceInterfaceLink + sonic-target + Ethernet24/1 + sonic + Ethernet24/1 + + + DeviceInterfaceLink + sonic-target + Ethernet25/1 + sonic + Ethernet25/1 + + + DeviceInterfaceLink + sonic-target + Ethernet26/1 + sonic + Ethernet26/1 + + + DeviceInterfaceLink + sonic-target + Ethernet27/1 + sonic + Ethernet27/1 + + + DeviceInterfaceLink + sonic-target + Ethernet28/1 + sonic + Ethernet28/1 + + + DeviceInterfaceLink + sonic-target + Ethernet29/1 + sonic + Ethernet29/1 + + + DeviceInterfaceLink + sonic-target + Ethernet30/1 + sonic + Ethernet30/1 + + + DeviceInterfaceLink + sonic-target + Ethernet31/1 + sonic + Ethernet31/1 + + + DeviceInterfaceLink + sonic-target + Ethernet32/1 + sonic + Ethernet32/1 + + + DeviceInterfaceLink + sonic-target + Ethernet33/1 + sonic + Ethernet33/1 + + + DeviceInterfaceLink + sonic-target + Ethernet34/1 + sonic + Ethernet34/1 + + + DeviceInterfaceLink + sonic-target + Ethernet35/1 + sonic + Ethernet35/1 + + + DeviceInterfaceLink + sonic-target + Ethernet36/1 + sonic + Ethernet36/1 + + + DeviceInterfaceLink + sonic-target + Ethernet37/1 + sonic + Ethernet37/1 + + + DeviceInterfaceLink + sonic-target + Ethernet38/1 + sonic + Ethernet38/1 + + + DeviceInterfaceLink + sonic-target + Ethernet39/1 + sonic + Ethernet39/1 + + + DeviceInterfaceLink + sonic-target + Ethernet40/1 + sonic + Ethernet40/1 + + + DeviceInterfaceLink + sonic-target + Ethernet41/1 + sonic + Ethernet41/1 + + + DeviceInterfaceLink + sonic-target + Ethernet42/1 + sonic + Ethernet42/1 + + + DeviceInterfaceLink + sonic-target + Ethernet43/1 + sonic + Ethernet43/1 + + + DeviceInterfaceLink + sonic-target + Ethernet44/1 + sonic + Ethernet44/1 + + + DeviceInterfaceLink + sonic-target + Ethernet45/1 + sonic + Ethernet45/1 + + + DeviceInterfaceLink + sonic-target + Ethernet46/1 + sonic + Ethernet46/1 + + + DeviceInterfaceLink + sonic-target + Ethernet47/1 + sonic + Ethernet47/1 + + + DeviceInterfaceLink + sonic-target + Ethernet48/1 + sonic + Ethernet48/1 + + + DeviceInterfaceLink + sonic-target + Ethernet49/1 + sonic + Ethernet49/1 + + + DeviceInterfaceLink + sonic-target + Ethernet50/1 + sonic + Ethernet50/1 + + + DeviceInterfaceLink + sonic-target + Ethernet51/1 + sonic + Ethernet51/1 + + + DeviceInterfaceLink + sonic-target + Ethernet52/1 + sonic + Ethernet52/1 + + + DeviceInterfaceLink + sonic-target + Ethernet53/1 + sonic + Ethernet53/1 + + + DeviceInterfaceLink + sonic-target + Ethernet54/1 + sonic + Ethernet54/1 + + + DeviceInterfaceLink + sonic-target + Ethernet55/1 + sonic + Ethernet55/1 + + + DeviceInterfaceLink + sonic-target + Ethernet56/1 + sonic + Ethernet56/1 + + + DeviceInterfaceLink + sonic-target + Ethernet57/1 + sonic + Ethernet57/1 + + + DeviceInterfaceLink + sonic-target + Ethernet58/1 + sonic + Ethernet58/1 + + + DeviceInterfaceLink + sonic-target + Ethernet59/1 + sonic + Ethernet59/1 + + + DeviceInterfaceLink + sonic-target + Ethernet60/1 + sonic + Ethernet60/1 + + + DeviceInterfaceLink + sonic-target + Ethernet61/1 + sonic + Ethernet61/1 + + + DeviceInterfaceLink + sonic-target + Ethernet62/1 + sonic + Ethernet62/1 + + + DeviceInterfaceLink + sonic-target + Ethernet63/1 + sonic + Ethernet63/1 + + + DeviceInterfaceLink + sonic-target + Ethernet64/1 + sonic + Ethernet64/1 + + + + + sonic + Delta-ag9064 + + + + + + + sonic + + + DhcpResources + + + + + NtpResources + + 0.debian.pool.ntp.org;1.debian.pool.ntp.org;2.debian.pool.ntp.org;3.debian.pool.ntp.org + + + SyslogResources + + + + + ErspanDestinationIpv4 + + 2.2.2.2 + + + + + + + sonic + Delta-ag9064 + diff --git a/device/delta/x86_64-delta_ag9064-r0/plugins/eeprom.py b/device/delta/x86_64-delta_ag9064-r0/plugins/eeprom.py new file mode 100644 index 00000000000..e4048ed302d --- /dev/null +++ b/device/delta/x86_64-delta_ag9064-r0/plugins/eeprom.py @@ -0,0 +1,32 @@ +#!/usr/bin/env python + +############################################################################# +# Mellanox +# +# Platform and model specific eeprom subclass, inherits from the base class, +# and provides the followings: +# - the eeprom format definition +# - specific encoder/decoder if there is special need +############################################################################# + +try: + import exceptions + import binascii + import time + import optparse + import warnings + import os + import sys + from sonic_eeprom import eeprom_base + from sonic_eeprom import eeprom_tlvinfo + import subprocess +except ImportError, e: + raise ImportError (str(e) + "- required module not found") + +class board(eeprom_tlvinfo.TlvInfoDecoder): + + _TLV_INFO_MAX_LEN = 256 + + def __init__(self, name, path, cpld_root, ro): + self.eeprom_path = "/sys/devices/pci0000:00/0000:00:1f.3/i2c-0/0-0056/eeprom" + super(board, self).__init__(self.eeprom_path, 0, '', True) diff --git a/device/delta/x86_64-delta_ag9064-r0/plugins/sfputil.py b/device/delta/x86_64-delta_ag9064-r0/plugins/sfputil.py new file mode 100644 index 00000000000..d7eadb58036 --- /dev/null +++ b/device/delta/x86_64-delta_ag9064-r0/plugins/sfputil.py @@ -0,0 +1,175 @@ +# sfputil.py +# +# Platform-specific SFP transceiver interface for SONiC +# + +try: + import time + from sonic_sfp.sfputilbase import SfpUtilBase +except ImportError as e: + raise ImportError("%s - required module not found" % str(e)) + + +class SfpUtil(SfpUtilBase): + """Platform-specific SfpUtil class""" + + PORT_START = 0 + PORT_END = 63 + PORTS_IN_BLOCK = 64 + + EEPROM_OFFSET = 20 + + _port_to_eeprom_mapping = {} + + @property + def port_start(self): + return self.PORT_START + + @property + def port_end(self): + return self.PORT_END + + @property + def qsfp_ports(self): + return range(0, self.PORTS_IN_BLOCK + 1) + + @property + def port_to_eeprom_mapping(self): + return self._port_to_eeprom_mapping + + def __init__(self): + eeprom_path = "/sys/class/i2c-adapter/i2c-{0}/{0}-0050/eeprom" + + for x in range(0, self.port_end + 1): + self._port_to_eeprom_mapping[x] = eeprom_path.format(x + self.EEPROM_OFFSET) + + SfpUtilBase.__init__(self) + + def get_presence(self, port_num): + # Check for invalid port_num + if port_num < self.port_start or port_num > self.port_end: + return False + + try: + reg_file = open("/sys/devices/platform/delta-ag9064-cpld.0/qsfp_present") + except IOError as e: + print "Error: unable to open file: %s" % str(e) + return False + + content = reg_file.readline().rstrip() + + # content is a string containing the hex representation of the register + reg_value = int(content, 16) + + # Mask off the bit corresponding to our port + mask = (1 << port_num) + + # ModPrsL is active low + if reg_value & mask == 0: + return True + + return False + + def get_low_power_mode(self, port_num): + # Check for invalid port_num + if port_num < self.port_start or port_num > self.port_end: + return False + + try: + reg_file = open("/sys/devices/platform/delta-ag9064-cpld.0/qsfp_lpmode") + except IOError as e: + print "Error: unable to open file: %s" % str(e) + + content = reg_file.readline().rstrip() + + # content is a string containing the hex representation of the register + reg_value = int(content, 16) + + # Mask off the bit corresponding to our port + mask = (1 << port_num) + + # LPMode is active high + if reg_value & mask == 0: + return False + + return True + + def set_low_power_mode(self, port_num, lpmode): + # Check for invalid port_num + if port_num < self.port_start or port_num > self.port_end: + return False + + try: + reg_file = open("/sys/devices/platform/delta-ag9064-cpld.0/qsfp_lpmode", "r+") + except IOError as e: + print "Error: unable to open file: %s" % str(e) + return False + + content = reg_file.readline().rstrip() + + # content is a string containing the hex representation of the register + reg_value = int(content, 16) + + # Mask off the bit corresponding to our port + mask = (1 << port_num) + + # LPMode is active high; set or clear the bit accordingly + if lpmode is True: + reg_value = reg_value | mask + else: + reg_value = reg_value & ~mask + + # Convert our register value back to a hex string and write back + content = hex(reg_value) + + reg_file.seek(0) + reg_file.write(content) + reg_file.close() + + return True + + def reset(self, port_num): + QSFP_RESET_REGISTER_DEVICE_FILE = "/sys/devices/platform/delta-ag9064-cpld.0/qsfp_reset" + + # Check for invalid port_num + if port_num < self.port_start or port_num > self.port_end: + return False + + try: + reg_file = open(QSFP_RESET_REGISTER_DEVICE_FILE, "r+") + except IOError as e: + print "Error: unable to open file: %s" % str(e) + return False + + content = reg_file.readline().rstrip() + + # File content is a string containing the hex representation of the register + reg_value = int(content, 16) + + # Mask off the bit corresponding to our port + mask = (1 << port_num) + + # ResetL is active low + reg_value = reg_value & ~mask + + # Convert our register value back to a hex string and write back + reg_file.seek(0) + reg_file.write(hex(reg_value)) + reg_file.close() + + # Sleep 1 second to allow it to settle + time.sleep(1) + + # Flip the bit back high and write back to the register to take port out of reset + try: + reg_file = open(QSFP_RESET_REGISTER_DEVICE_FILE, "w") + except IOError as e: + print "Error: unable to open file: %s" % str(e) + return False + + reg_value = reg_value | mask + reg_file.seek(0) + reg_file.write(hex(reg_value)) + reg_file.close() + + return True diff --git a/device/delta/x86_64-delta_ag9064-r0/sensors.conf b/device/delta/x86_64-delta_ag9064-r0/sensors.conf new file mode 100644 index 00000000000..1d8489248a5 --- /dev/null +++ b/device/delta/x86_64-delta_ag9064-r0/sensors.conf @@ -0,0 +1,14 @@ +# libsensors configuration file for DCS-7060CX-32S +# ------------------------------------------------ +# + +bus "i2c-1" "i2c-1-mux (chan_id 1)" + + +# tmp75-i2c-1-4d CPU below side thermal sensor. + +chip "tmp75-i2c-1-4d" + label temp1 "CPU below side thermal sensor" + set temp1_max 60 + set temp1_max_hyst 55 + diff --git a/device/ingrasys/x86_64-ingrasys_s8900_54xc-r0/plugins/psuutil.py b/device/ingrasys/x86_64-ingrasys_s8900_54xc-r0/plugins/psuutil.py new file mode 100644 index 00000000000..4f226c69fff --- /dev/null +++ b/device/ingrasys/x86_64-ingrasys_s8900_54xc-r0/plugins/psuutil.py @@ -0,0 +1,92 @@ +# +# psuutil.py +# Platform-specific PSU status interface for SONiC +# + + +import os.path + +try: + from sonic_psu.psu_base import PsuBase +except ImportError as e: + raise ImportError(str(e) + "- required module not found") + + +class PsuUtil(PsuBase): + """Platform-specific PSUutil class""" + + PSU_CPLD_DIR = "/sys/bus/i2c/devices/0-0033" + + def __init__(self): + PsuBase.__init__(self) + + + # Get sysfs attribute + def get_attr_value(self, attr_path): + + retval = 'ERR' + if (not os.path.isfile(attr_path)): + return retval + + try: + with open(attr_path, 'r') as fd: + retval = fd.read() + except Exception as error: + logging.error("Unable to open ", attr_path, " file !") + + retval = retval.rstrip('\r\n') + return retval + + def get_num_psus(self): + """ + Retrieves the number of PSUs available on the device + :return: An integer, the number of PSUs available on the device + """ + MAX_PSUS = 2 + return MAX_PSUS + + def get_psu_status(self, index): + """ + Retrieves the oprational status of power supply unit (PSU) defined + by index + :param index: An integer, index of the PSU of which to query status + :return: Boolean, True if PSU is operating properly, False if PSU is\ + faulty + """ + status = 0 + mask = [ 0x08, 0x10 ] + attr_file = 'cpld_pw_good' + attr_path = self.PSU_CPLD_DIR +'/'+ attr_file + + attr_value = self.get_attr_value(attr_path) + + if (attr_value != 'ERR'): + attr_value = int(attr_value, 16) + # Check for PSU status + if (attr_value & mask[index-1]): + status = 1 + + return status + + def get_psu_presence(self, index): + """ + Retrieves the presence status of power supply unit (PSU) defined + by index + :param index: An integer, index of the PSU of which to query status + :return: Boolean, True if PSU is plugged, False if not + """ + status = 0 + mask = [ 0x01, 0x02 ] + attr_file ='cpld_pw_abs' + attr_path = self.PSU_CPLD_DIR +'/'+ attr_file + + attr_value = self.get_attr_value(attr_path) + + if (attr_value != 'ERR'): + attr_value = int(attr_value, 16) + # Check for PSU presence + if (~attr_value & mask[index-1]): + status = 1 + + return status + diff --git a/device/ingrasys/x86_64-ingrasys_s8900_64xc-r0/plugins/psuutil.py b/device/ingrasys/x86_64-ingrasys_s8900_64xc-r0/plugins/psuutil.py new file mode 100644 index 00000000000..3af5423daeb --- /dev/null +++ b/device/ingrasys/x86_64-ingrasys_s8900_64xc-r0/plugins/psuutil.py @@ -0,0 +1,92 @@ +# +# psuutil.py +# Platform-specific PSU status interface for SONiC +# + + +import os.path + +try: + from sonic_psu.psu_base import PsuBase +except ImportError as e: + raise ImportError(str(e) + "- required module not found") + + +class PsuUtil(PsuBase): + """Platform-specific PSUutil class""" + + PSU_CPLD_DIR = "/sys/bus/i2c/devices/0-0033" + + def __init__(self): + PsuBase.__init__(self) + + + # Get sysfs attribute + def get_attr_value(self, attr_path): + + retval = 'ERR' + if (not os.path.isfile(attr_path)): + return retval + + try: + with open(attr_path, 'r') as fd: + retval = fd.read() + except Exception as error: + logging.error("Unable to open ", attr_path, " file !") + + retval = retval.rstrip('\r\n') + return retval + + def get_num_psus(self): + """ + Retrieves the number of PSUs available on the device + :return: An integer, the number of PSUs available on the device + """ + MAX_PSUS = 2 + return MAX_PSUS + + def get_psu_status(self, index): + """ + Retrieves the oprational status of power supply unit (PSU) defined + by index + :param index: An integer, index of the PSU of which to query status + :return: Boolean, True if PSU is operating properly, False if PSU is\ + faulty + """ + status = 0 + mask = [ 0x04, 0x08 ] + attr_file = 'cpld_pw_good' + attr_path = self.PSU_CPLD_DIR +'/'+ attr_file + + attr_value = self.get_attr_value(attr_path) + + if (attr_value != 'ERR'): + attr_value = int(attr_value, 16) + # Check for PSU status + if (attr_value & mask[index-1]): + status = 1 + + return status + + def get_psu_presence(self, index): + """ + Retrieves the presence status of power supply unit (PSU) defined + by index + :param index: An integer, index of the PSU of which to query status + :return: Boolean, True if PSU is plugged, False if not + """ + status = 0 + mask = [ 0x01, 0x02 ] + attr_file ='cpld_pw_abs' + attr_path = self.PSU_CPLD_DIR +'/'+ attr_file + + attr_value = self.get_attr_value(attr_path) + + if (attr_value != 'ERR'): + attr_value = int(attr_value, 16) + # Check for PSU presence + if (~attr_value & mask[index-1]): + status = 1 + + return status + diff --git a/device/ingrasys/x86_64-ingrasys_s9130_32x-r0/INGRASYS-S9130-32X/port_config.nps b/device/ingrasys/x86_64-ingrasys_s9130_32x-r0/INGRASYS-S9130-32X/port_config.nps index dbc9a010a22..f9e5396d0cf 100644 --- a/device/ingrasys/x86_64-ingrasys_s9130_32x-r0/INGRASYS-S9130-32X/port_config.nps +++ b/device/ingrasys/x86_64-ingrasys_s9130_32x-r0/INGRASYS-S9130-32X/port_config.nps @@ -1,318 +1,318 @@ -init start stage low-level -init set port-map port=0 eth-macro=0 lane=0 max-speed=100g active=true -init set port-map port=1 eth-macro=1 lane=0 max-speed=100g active=true -init set port-map port=2 eth-macro=2 lane=0 max-speed=100g active=true -init set port-map port=3 eth-macro=3 lane=0 max-speed=100g active=true -init set port-map port=4 eth-macro=4 lane=0 max-speed=100g active=true -init set port-map port=5 eth-macro=5 lane=0 max-speed=100g active=true -init set port-map port=6 eth-macro=6 lane=0 max-speed=100g active=true -init set port-map port=7 eth-macro=7 lane=0 max-speed=100g active=true -init set port-map port=8 eth-macro=8 lane=0 max-speed=100g active=true -init set port-map port=9 eth-macro=9 lane=0 max-speed=100g active=true -init set port-map port=10 eth-macro=10 lane=0 max-speed=100g active=true -init set port-map port=11 eth-macro=11 lane=0 max-speed=100g active=true -init set port-map port=12 eth-macro=12 lane=0 max-speed=100g active=true -init set port-map port=13 eth-macro=13 lane=0 max-speed=100g active=true -init set port-map port=14 eth-macro=14 lane=0 max-speed=100g active=true -init set port-map port=15 eth-macro=15 lane=0 max-speed=100g active=true -init set port-map port=16 eth-macro=16 lane=0 max-speed=100g active=true -init set port-map port=17 eth-macro=17 lane=0 max-speed=100g active=true -init set port-map port=18 eth-macro=18 lane=0 max-speed=100g active=true -init set port-map port=19 eth-macro=19 lane=0 max-speed=100g active=true -init set port-map port=20 eth-macro=20 lane=0 max-speed=100g active=true -init set port-map port=21 eth-macro=21 lane=0 max-speed=100g active=true -init set port-map port=22 eth-macro=22 lane=0 max-speed=100g active=true -init set port-map port=23 eth-macro=23 lane=0 max-speed=100g active=true -init set port-map port=24 eth-macro=24 lane=0 max-speed=100g active=true -init set port-map port=25 eth-macro=25 lane=0 max-speed=100g active=true -init set port-map port=26 eth-macro=26 lane=0 max-speed=100g active=true -init set port-map port=27 eth-macro=27 lane=0 max-speed=100g active=true -init set port-map port=28 eth-macro=28 lane=0 max-speed=100g active=true -init set port-map port=29 eth-macro=29 lane=0 max-speed=100g active=true -init set port-map port=30 eth-macro=30 lane=0 max-speed=100g active=true -init set port-map port=31 eth-macro=31 lane=0 max-speed=100g active=true -init set port-map port=129 eth-macro=0 lane=1 max-speed=10g active=true guarantee=true cpi=true -init set port-map port=130 eth-macro=0 lane=0 max-speed=10g active=true guarantee=true cpi=true init-done=true -init start stage task-rsrc -init start stage module -init start stage task -phy set lane-swap portlist=0 lane-num=4 property=tx data=0x03.02.01.00 -phy set lane-swap portlist=1 lane-num=4 property=tx data=0x03.02.01.00 -phy set lane-swap portlist=2 lane-num=4 property=tx data=0x03.02.01.00 -phy set lane-swap portlist=3 lane-num=4 property=tx data=0x03.02.01.00 -phy set lane-swap portlist=4 lane-num=4 property=tx data=0x03.02.01.00 -phy set lane-swap portlist=5 lane-num=4 property=tx data=0x03.02.01.00 -phy set lane-swap portlist=6 lane-num=4 property=tx data=0x03.02.01.00 -phy set lane-swap portlist=7 lane-num=4 property=tx data=0x03.02.01.00 -phy set lane-swap portlist=8 lane-num=4 property=tx data=0x03.02.01.00 -phy set lane-swap portlist=9 lane-num=4 property=tx data=0x03.02.01.00 -phy set lane-swap portlist=10 lane-num=4 property=tx data=0x03.02.01.00 -phy set lane-swap portlist=11 lane-num=4 property=tx data=0x03.02.01.00 -phy set lane-swap portlist=12 lane-num=4 property=tx data=0x03.02.01.00 -phy set lane-swap portlist=13 lane-num=4 property=tx data=0x03.02.01.00 -phy set lane-swap portlist=14 lane-num=4 property=tx data=0x03.02.01.00 -phy set lane-swap portlist=15 lane-num=4 property=tx data=0x03.02.01.00 -phy set lane-swap portlist=16 lane-num=4 property=tx data=0x03.02.01.00 -phy set lane-swap portlist=17 lane-num=4 property=tx data=0x03.02.01.00 -phy set lane-swap portlist=18 lane-num=4 property=tx data=0x03.02.01.00 -phy set lane-swap portlist=19 lane-num=4 property=tx data=0x03.02.01.00 -phy set lane-swap portlist=20 lane-num=4 property=tx data=0x03.02.01.00 -phy set lane-swap portlist=21 lane-num=4 property=tx data=0x03.02.01.00 -phy set lane-swap portlist=22 lane-num=4 property=tx data=0x03.02.01.00 -phy set lane-swap portlist=23 lane-num=4 property=tx data=0x03.02.01.00 -phy set lane-swap portlist=24 lane-num=4 property=tx data=0x03.02.01.00 -phy set lane-swap portlist=25 lane-num=4 property=tx data=0x03.02.01.00 -phy set lane-swap portlist=26 lane-num=4 property=tx data=0x03.02.01.00 -phy set lane-swap portlist=27 lane-num=4 property=tx data=0x03.02.01.00 -phy set lane-swap portlist=28 lane-num=4 property=tx data=0x03.02.01.00 -phy set lane-swap portlist=29 lane-num=4 property=tx data=0x03.02.01.00 -phy set lane-swap portlist=30 lane-num=4 property=tx data=0x03.02.01.00 -phy set lane-swap portlist=31 lane-num=4 property=tx data=0x03.02.01.00 -phy set lane-swap portlist=129 lane-num=1 property=tx data=0x1 -phy set lane-swap portlist=130 lane-num=1 property=tx data=0x0 -phy set lane-swap portlist=0 lane-num=4 property=rx data=0x03.02.01.00 -phy set lane-swap portlist=1 lane-num=4 property=rx data=0x03.02.01.00 -phy set lane-swap portlist=2 lane-num=4 property=rx data=0x03.02.01.00 -phy set lane-swap portlist=3 lane-num=4 property=rx data=0x03.02.01.00 -phy set lane-swap portlist=4 lane-num=4 property=rx data=0x03.02.01.00 -phy set lane-swap portlist=5 lane-num=4 property=rx data=0x03.02.01.00 -phy set lane-swap portlist=6 lane-num=4 property=rx data=0x03.02.01.00 -phy set lane-swap portlist=7 lane-num=4 property=rx data=0x03.02.01.00 -phy set lane-swap portlist=8 lane-num=4 property=rx data=0x03.02.01.00 -phy set lane-swap portlist=9 lane-num=4 property=rx data=0x03.02.01.00 -phy set lane-swap portlist=10 lane-num=4 property=rx data=0x03.02.01.00 -phy set lane-swap portlist=11 lane-num=4 property=rx data=0x03.02.01.00 -phy set lane-swap portlist=12 lane-num=4 property=rx data=0x03.02.01.00 -phy set lane-swap portlist=13 lane-num=4 property=rx data=0x03.02.01.00 -phy set lane-swap portlist=14 lane-num=4 property=rx data=0x03.02.01.00 -phy set lane-swap portlist=15 lane-num=4 property=rx data=0x03.02.01.00 -phy set lane-swap portlist=16 lane-num=4 property=rx data=0x03.02.01.00 -phy set lane-swap portlist=17 lane-num=4 property=rx data=0x03.02.01.00 -phy set lane-swap portlist=18 lane-num=4 property=rx data=0x03.02.01.00 -phy set lane-swap portlist=19 lane-num=4 property=rx data=0x03.02.01.00 -phy set lane-swap portlist=20 lane-num=4 property=rx data=0x03.02.01.00 -phy set lane-swap portlist=21 lane-num=4 property=rx data=0x03.02.01.00 -phy set lane-swap portlist=22 lane-num=4 property=rx data=0x03.02.01.00 -phy set lane-swap portlist=23 lane-num=4 property=rx data=0x03.02.01.00 -phy set lane-swap portlist=24 lane-num=4 property=rx data=0x03.02.01.00 -phy set lane-swap portlist=25 lane-num=4 property=rx data=0x03.02.01.00 -phy set lane-swap portlist=26 lane-num=4 property=rx data=0x03.02.01.00 -phy set lane-swap portlist=27 lane-num=4 property=rx data=0x03.02.01.00 -phy set lane-swap portlist=28 lane-num=4 property=rx data=0x03.02.01.00 -phy set lane-swap portlist=29 lane-num=4 property=rx data=0x03.02.01.00 -phy set lane-swap portlist=30 lane-num=4 property=rx data=0x03.02.01.00 -phy set lane-swap portlist=31 lane-num=4 property=rx data=0x03.02.01.00 -phy set lane-swap portlist=129 lane-num=1 property=rx data=0x1 -phy set lane-swap portlist=130 lane-num=1 property=rx data=0x0 -phy set polarity-rev portlist=0 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev portlist=1 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev portlist=2 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev portlist=3 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev portlist=4 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev portlist=5 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev portlist=6 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev portlist=7 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev portlist=8 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev portlist=9 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev portlist=10 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev portlist=11 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev portlist=12 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev portlist=13 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev portlist=14 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev portlist=15 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev portlist=16 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev portlist=17 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev portlist=18 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev portlist=19 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev portlist=20 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev portlist=21 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev portlist=22 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev portlist=23 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev portlist=24 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev portlist=25 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev portlist=26 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev portlist=27 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev portlist=28 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev portlist=29 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev portlist=30 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev portlist=31 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev portlist=129 lane-num=1 property=tx data=0x0 -phy set polarity-rev portlist=130 lane-num=1 property=tx data=0x0 -phy set polarity-rev portlist=0 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev portlist=1 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev portlist=2 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev portlist=3 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev portlist=4 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev portlist=5 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev portlist=6 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev portlist=7 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev portlist=8 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev portlist=9 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev portlist=10 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev portlist=11 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev portlist=12 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev portlist=13 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev portlist=14 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev portlist=15 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev portlist=16 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev portlist=17 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev portlist=18 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev portlist=19 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev portlist=20 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev portlist=21 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev portlist=22 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev portlist=23 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev portlist=24 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev portlist=25 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev portlist=26 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev portlist=27 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev portlist=28 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev portlist=29 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev portlist=30 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev portlist=31 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev portlist=129 lane-num=1 property=rx data=0x0 -phy set polarity-rev portlist=130 lane-num=1 property=rx data=0x0 -phy set pre-emphasis portlist=0 lane-num=4 property=c2 data=0x02.02.02.02 -phy set pre-emphasis portlist=0 lane-num=4 property=cn1 data=0x01.01.01.01 -phy set pre-emphasis portlist=0 lane-num=4 property=c0 data=0x1A.1A.1A.1A -phy set pre-emphasis portlist=0 lane-num=4 property=c1 data=0x07.07.07.07 -phy set pre-emphasis portlist=1 lane-num=4 property=c2 data=0x02.02.02.02 -phy set pre-emphasis portlist=1 lane-num=4 property=cn1 data=0x00.00.00.00 -phy set pre-emphasis portlist=1 lane-num=4 property=c0 data=0x1A.1A.1A.1A -phy set pre-emphasis portlist=1 lane-num=4 property=c1 data=0x07.07.07.07 -phy set pre-emphasis portlist=2 lane-num=4 property=c2 data=0x02.02.02.02 -phy set pre-emphasis portlist=2 lane-num=4 property=cn1 data=0x01.01.01.01 -phy set pre-emphasis portlist=2 lane-num=4 property=c0 data=0x1B.1B.1B.1B -phy set pre-emphasis portlist=2 lane-num=4 property=c1 data=0x07.07.07.07 -phy set pre-emphasis portlist=3 lane-num=4 property=c2 data=0x02.02.02.02 -phy set pre-emphasis portlist=3 lane-num=4 property=cn1 data=0x00.00.00.00 -phy set pre-emphasis portlist=3 lane-num=4 property=c0 data=0x1B.1B.1B.1B -phy set pre-emphasis portlist=3 lane-num=4 property=c1 data=0x07.07.07.07 -phy set pre-emphasis portlist=4 lane-num=4 property=c2 data=0x02.02.02.02 -phy set pre-emphasis portlist=4 lane-num=4 property=cn1 data=0x00.00.00.00 -phy set pre-emphasis portlist=4 lane-num=4 property=c0 data=0x1B.1B.1B.1B -phy set pre-emphasis portlist=4 lane-num=4 property=c1 data=0x06.06.06.06 -phy set pre-emphasis portlist=5 lane-num=4 property=c2 data=0x02.02.02.02 -phy set pre-emphasis portlist=5 lane-num=4 property=cn1 data=0x00.00.00.00 -phy set pre-emphasis portlist=5 lane-num=4 property=c0 data=0x1B.1B.1B.1B -phy set pre-emphasis portlist=5 lane-num=4 property=c1 data=0x07.07.07.07 -phy set pre-emphasis portlist=6 lane-num=4 property=c2 data=0x03.03.03.03 -phy set pre-emphasis portlist=6 lane-num=4 property=cn1 data=0x00.00.00.00 -phy set pre-emphasis portlist=6 lane-num=4 property=c0 data=0x1C.1C.1C.1C -phy set pre-emphasis portlist=6 lane-num=4 property=c1 data=0x05.05.05.05 -phy set pre-emphasis portlist=7 lane-num=4 property=c2 data=0x02.02.02.02 -phy set pre-emphasis portlist=7 lane-num=4 property=cn1 data=0x00.00.00.00 -phy set pre-emphasis portlist=7 lane-num=4 property=c0 data=0x1C.1C.1C.1C -phy set pre-emphasis portlist=7 lane-num=4 property=c1 data=0x06.06.06.06 -phy set pre-emphasis portlist=8 lane-num=4 property=c2 data=0x02.02.02.02 -phy set pre-emphasis portlist=8 lane-num=4 property=cn1 data=0x00.00.00.00 -phy set pre-emphasis portlist=8 lane-num=4 property=c0 data=0x1C.1C.1C.1C -phy set pre-emphasis portlist=8 lane-num=4 property=c1 data=0x06.06.06.06 -phy set pre-emphasis portlist=9 lane-num=4 property=c2 data=0x02.02.02.02 -phy set pre-emphasis portlist=9 lane-num=4 property=cn1 data=0x00.00.00.00 -phy set pre-emphasis portlist=9 lane-num=4 property=c0 data=0x1C.1C.1C.1C -phy set pre-emphasis portlist=9 lane-num=4 property=c1 data=0x06.06.06.06 -phy set pre-emphasis portlist=10 lane-num=4 property=c2 data=0x02.02.02.02 -phy set pre-emphasis portlist=10 lane-num=4 property=cn1 data=0x00.00.00.00 -phy set pre-emphasis portlist=10 lane-num=4 property=c0 data=0x1C.1C.1C.1C -phy set pre-emphasis portlist=10 lane-num=4 property=c1 data=0x06.06.06.06 -phy set pre-emphasis portlist=11 lane-num=4 property=c2 data=0x02.02.02.02 -phy set pre-emphasis portlist=11 lane-num=4 property=cn1 data=0x01.01.01.01 -phy set pre-emphasis portlist=11 lane-num=4 property=c0 data=0x1C.1C.1C.1C -phy set pre-emphasis portlist=11 lane-num=4 property=c1 data=0x06.06.06.06 -phy set pre-emphasis portlist=12 lane-num=4 property=c2 data=0x02.02.02.02 -phy set pre-emphasis portlist=12 lane-num=4 property=cn1 data=0x00.00.00.00 -phy set pre-emphasis portlist=12 lane-num=4 property=c0 data=0x1C.1C.1C.1C -phy set pre-emphasis portlist=12 lane-num=4 property=c1 data=0x06.06.06.06 -phy set pre-emphasis portlist=13 lane-num=4 property=c2 data=0x02.02.02.02 -phy set pre-emphasis portlist=13 lane-num=4 property=cn1 data=0x00.00.00.00 -phy set pre-emphasis portlist=13 lane-num=4 property=c0 data=0x1C.1C.1C.1C -phy set pre-emphasis portlist=13 lane-num=4 property=c1 data=0x06.06.06.06 -phy set pre-emphasis portlist=14 lane-num=4 property=c2 data=0x02.02.02.02 -phy set pre-emphasis portlist=14 lane-num=4 property=cn1 data=0x00.00.00.00 -phy set pre-emphasis portlist=14 lane-num=4 property=c0 data=0x1D.1D.1D.1D -phy set pre-emphasis portlist=14 lane-num=4 property=c1 data=0x05.05.05.05 -phy set pre-emphasis portlist=15 lane-num=4 property=c2 data=0x02.02.02.02 -phy set pre-emphasis portlist=15 lane-num=4 property=cn1 data=0x00.00.00.00 -phy set pre-emphasis portlist=15 lane-num=4 property=c0 data=0x1C.1C.1C.1C -phy set pre-emphasis portlist=15 lane-num=4 property=c1 data=0x06.06.06.06 -phy set pre-emphasis portlist=16 lane-num=4 property=c2 data=0x02.02.02.02 -phy set pre-emphasis portlist=16 lane-num=4 property=cn1 data=0x00.00.00.00 -phy set pre-emphasis portlist=16 lane-num=4 property=c0 data=0x1C.1C.1C.1C -phy set pre-emphasis portlist=16 lane-num=4 property=c1 data=0x05.05.05.05 -phy set pre-emphasis portlist=17 lane-num=4 property=c2 data=0x02.02.02.02 -phy set pre-emphasis portlist=17 lane-num=4 property=cn1 data=0x00.00.00.00 -phy set pre-emphasis portlist=17 lane-num=4 property=c0 data=0x1C.1C.1C.1C -phy set pre-emphasis portlist=17 lane-num=4 property=c1 data=0x06.06.06.06 -phy set pre-emphasis portlist=18 lane-num=4 property=c2 data=0x02.02.02.02 -phy set pre-emphasis portlist=18 lane-num=4 property=cn1 data=0x00.00.00.00 -phy set pre-emphasis portlist=18 lane-num=4 property=c0 data=0x1C.1C.1C.1C -phy set pre-emphasis portlist=18 lane-num=4 property=c1 data=0x06.06.06.06 -phy set pre-emphasis portlist=19 lane-num=4 property=c2 data=0x02.02.02.02 -phy set pre-emphasis portlist=19 lane-num=4 property=cn1 data=0x00.00.00.00 -phy set pre-emphasis portlist=19 lane-num=4 property=c0 data=0x1C.1C.1C.1C -phy set pre-emphasis portlist=19 lane-num=4 property=c1 data=0x06.06.06.06 -phy set pre-emphasis portlist=20 lane-num=4 property=c2 data=0x02.02.02.02 -phy set pre-emphasis portlist=20 lane-num=4 property=cn1 data=0x00.00.00.00 -phy set pre-emphasis portlist=20 lane-num=4 property=c0 data=0x1C.1C.1C.1C -phy set pre-emphasis portlist=20 lane-num=4 property=c1 data=0x06.06.06.06 -phy set pre-emphasis portlist=21 lane-num=4 property=c2 data=0x02.02.02.02 -phy set pre-emphasis portlist=21 lane-num=4 property=cn1 data=0x00.00.00.00 -phy set pre-emphasis portlist=21 lane-num=4 property=c0 data=0x1B.1B.1B.1B -phy set pre-emphasis portlist=21 lane-num=4 property=c1 data=0x06.06.06.06 -phy set pre-emphasis portlist=22 lane-num=4 property=c2 data=0x02.02.02.02 -phy set pre-emphasis portlist=22 lane-num=4 property=cn1 data=0x00.00.00.00 -phy set pre-emphasis portlist=22 lane-num=4 property=c0 data=0x1C.1C.1C.1C -phy set pre-emphasis portlist=22 lane-num=4 property=c1 data=0x06.06.06.06 -phy set pre-emphasis portlist=23 lane-num=4 property=c2 data=0x02.02.02.02 -phy set pre-emphasis portlist=23 lane-num=4 property=cn1 data=0x00.00.00.00 -phy set pre-emphasis portlist=23 lane-num=4 property=c0 data=0x1C.1C.1C.1C -phy set pre-emphasis portlist=23 lane-num=4 property=c1 data=0x06.06.06.06 -phy set pre-emphasis portlist=24 lane-num=4 property=c2 data=0x02.02.02.02 -phy set pre-emphasis portlist=24 lane-num=4 property=cn1 data=0x00.00.00.00 -phy set pre-emphasis portlist=24 lane-num=4 property=c0 data=0x1C.1C.1C.1C -phy set pre-emphasis portlist=24 lane-num=4 property=c1 data=0x06.06.06.06 -phy set pre-emphasis portlist=25 lane-num=4 property=c2 data=0x02.02.02.02 -phy set pre-emphasis portlist=25 lane-num=4 property=cn1 data=0x00.00.00.00 -phy set pre-emphasis portlist=25 lane-num=4 property=c0 data=0x1C.1C.1C.1C -phy set pre-emphasis portlist=25 lane-num=4 property=c1 data=0x06.06.06.06 -phy set pre-emphasis portlist=26 lane-num=4 property=c2 data=0x02.02.02.02 -phy set pre-emphasis portlist=26 lane-num=4 property=cn1 data=0x00.00.00.00 -phy set pre-emphasis portlist=26 lane-num=4 property=c0 data=0x1B.1B.1B.1B -phy set pre-emphasis portlist=26 lane-num=4 property=c1 data=0x06.06.06.06 -phy set pre-emphasis portlist=27 lane-num=4 property=c2 data=0x02.02.02.02 -phy set pre-emphasis portlist=27 lane-num=4 property=cn1 data=0x00.00.00.00 -phy set pre-emphasis portlist=27 lane-num=4 property=c0 data=0x1B.1B.1B.1B -phy set pre-emphasis portlist=27 lane-num=4 property=c1 data=0x06.06.06.06 -phy set pre-emphasis portlist=28 lane-num=4 property=c2 data=0x02.02.02.02 -phy set pre-emphasis portlist=28 lane-num=4 property=cn1 data=0x00.00.00.00 -phy set pre-emphasis portlist=28 lane-num=4 property=c0 data=0x1B.1B.1B.1B -phy set pre-emphasis portlist=28 lane-num=4 property=c1 data=0x07.07.07.07 -phy set pre-emphasis portlist=29 lane-num=4 property=c2 data=0x02.02.02.02 -phy set pre-emphasis portlist=29 lane-num=4 property=cn1 data=0x00.00.00.00 -phy set pre-emphasis portlist=29 lane-num=4 property=c0 data=0x1A.1A.1A.1A -phy set pre-emphasis portlist=29 lane-num=4 property=c1 data=0x07.07.07.07 -phy set pre-emphasis portlist=30 lane-num=4 property=c2 data=0x02.02.02.02 -phy set pre-emphasis portlist=30 lane-num=4 property=cn1 data=0x01.01.01.01 -phy set pre-emphasis portlist=30 lane-num=4 property=c0 data=0x1A.1A.1A.1A -phy set pre-emphasis portlist=30 lane-num=4 property=c1 data=0x07.07.07.07 -phy set pre-emphasis portlist=31 lane-num=4 property=c2 data=0x01.01.01.01 -phy set pre-emphasis portlist=31 lane-num=4 property=cn1 data=0x03.03.03.03 -phy set pre-emphasis portlist=31 lane-num=4 property=c0 data=0x17.17.17.17 -phy set pre-emphasis portlist=31 lane-num=4 property=c1 data=0x09.09.09.09 -phy set pre-emphasis portlist=129 lane-num=1 property=c2 data=0x01 -phy set pre-emphasis portlist=129 lane-num=1 property=cn1 data=0x01 -phy set pre-emphasis portlist=129 lane-num=1 property=c0 data=0x02 -phy set pre-emphasis portlist=129 lane-num=1 property=c1 data=0x03 -phy set pre-emphasis portlist=130 lane-num=1 property=c2 data=0x01 -phy set pre-emphasis portlist=130 lane-num=1 property=cn1 data=0x01 -phy set pre-emphasis portlist=130 lane-num=1 property=c0 data=0x02 -phy set pre-emphasis portlist=130 lane-num=1 property=c1 data=0x03 -port set portlist=0-31 speed=100g -port set portlist=129-130 speed=10g -port set portlist=0-31 medium-type=sr4 -port set portlist=129-130 medium-type=kr -port set portlist=0-31 fec=disable -port advertise portlist=129-130 speed-10g-kr -port set portlist=129-130 an=enable -port set portlist=0-31,129-130 admin=enable +init start stage unit=0 low-level +init set port-map unit=0 port=0 eth-macro=0 lane=0 max-speed=100g active=true +init set port-map unit=0 port=1 eth-macro=1 lane=0 max-speed=100g active=true +init set port-map unit=0 port=2 eth-macro=2 lane=0 max-speed=100g active=true +init set port-map unit=0 port=3 eth-macro=3 lane=0 max-speed=100g active=true +init set port-map unit=0 port=4 eth-macro=4 lane=0 max-speed=100g active=true +init set port-map unit=0 port=5 eth-macro=5 lane=0 max-speed=100g active=true +init set port-map unit=0 port=6 eth-macro=6 lane=0 max-speed=100g active=true +init set port-map unit=0 port=7 eth-macro=7 lane=0 max-speed=100g active=true +init set port-map unit=0 port=8 eth-macro=8 lane=0 max-speed=100g active=true +init set port-map unit=0 port=9 eth-macro=9 lane=0 max-speed=100g active=true +init set port-map unit=0 port=10 eth-macro=10 lane=0 max-speed=100g active=true +init set port-map unit=0 port=11 eth-macro=11 lane=0 max-speed=100g active=true +init set port-map unit=0 port=12 eth-macro=12 lane=0 max-speed=100g active=true +init set port-map unit=0 port=13 eth-macro=13 lane=0 max-speed=100g active=true +init set port-map unit=0 port=14 eth-macro=14 lane=0 max-speed=100g active=true +init set port-map unit=0 port=15 eth-macro=15 lane=0 max-speed=100g active=true +init set port-map unit=0 port=16 eth-macro=16 lane=0 max-speed=100g active=true +init set port-map unit=0 port=17 eth-macro=17 lane=0 max-speed=100g active=true +init set port-map unit=0 port=18 eth-macro=18 lane=0 max-speed=100g active=true +init set port-map unit=0 port=19 eth-macro=19 lane=0 max-speed=100g active=true +init set port-map unit=0 port=20 eth-macro=20 lane=0 max-speed=100g active=true +init set port-map unit=0 port=21 eth-macro=21 lane=0 max-speed=100g active=true +init set port-map unit=0 port=22 eth-macro=22 lane=0 max-speed=100g active=true +init set port-map unit=0 port=23 eth-macro=23 lane=0 max-speed=100g active=true +init set port-map unit=0 port=24 eth-macro=24 lane=0 max-speed=100g active=true +init set port-map unit=0 port=25 eth-macro=25 lane=0 max-speed=100g active=true +init set port-map unit=0 port=26 eth-macro=26 lane=0 max-speed=100g active=true +init set port-map unit=0 port=27 eth-macro=27 lane=0 max-speed=100g active=true +init set port-map unit=0 port=28 eth-macro=28 lane=0 max-speed=100g active=true +init set port-map unit=0 port=29 eth-macro=29 lane=0 max-speed=100g active=true +init set port-map unit=0 port=30 eth-macro=30 lane=0 max-speed=100g active=true +init set port-map unit=0 port=31 eth-macro=31 lane=0 max-speed=100g active=true +init set port-map unit=0 port=129 eth-macro=0 lane=1 max-speed=10g active=true guarantee=true cpi=true +init set port-map unit=0 port=130 eth-macro=0 lane=0 max-speed=10g active=true guarantee=true cpi=true init-done=true +init start stage unit=0 task-rsrc +init start stage unit=0 module +init start stage unit=0 task +phy set lane-swap unit=0 portlist=0 lane-cnt=4 property=tx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=1 lane-cnt=4 property=tx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=2 lane-cnt=4 property=tx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=3 lane-cnt=4 property=tx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=4 lane-cnt=4 property=tx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=5 lane-cnt=4 property=tx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=6 lane-cnt=4 property=tx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=7 lane-cnt=4 property=tx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=8 lane-cnt=4 property=tx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=9 lane-cnt=4 property=tx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=10 lane-cnt=4 property=tx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=11 lane-cnt=4 property=tx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=12 lane-cnt=4 property=tx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=13 lane-cnt=4 property=tx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=14 lane-cnt=4 property=tx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=15 lane-cnt=4 property=tx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=16 lane-cnt=4 property=tx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=17 lane-cnt=4 property=tx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=18 lane-cnt=4 property=tx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=19 lane-cnt=4 property=tx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=20 lane-cnt=4 property=tx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=21 lane-cnt=4 property=tx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=22 lane-cnt=4 property=tx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=23 lane-cnt=4 property=tx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=24 lane-cnt=4 property=tx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=25 lane-cnt=4 property=tx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=26 lane-cnt=4 property=tx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=27 lane-cnt=4 property=tx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=28 lane-cnt=4 property=tx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=29 lane-cnt=4 property=tx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=30 lane-cnt=4 property=tx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=31 lane-cnt=4 property=tx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=129 lane-cnt=1 property=tx data=0x1 +phy set lane-swap unit=0 portlist=130 lane-cnt=1 property=tx data=0x0 +phy set lane-swap unit=0 portlist=0 lane-cnt=4 property=rx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=1 lane-cnt=4 property=rx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=2 lane-cnt=4 property=rx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=3 lane-cnt=4 property=rx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=4 lane-cnt=4 property=rx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=5 lane-cnt=4 property=rx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=6 lane-cnt=4 property=rx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=7 lane-cnt=4 property=rx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=8 lane-cnt=4 property=rx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=9 lane-cnt=4 property=rx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=10 lane-cnt=4 property=rx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=11 lane-cnt=4 property=rx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=12 lane-cnt=4 property=rx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=13 lane-cnt=4 property=rx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=14 lane-cnt=4 property=rx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=15 lane-cnt=4 property=rx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=16 lane-cnt=4 property=rx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=17 lane-cnt=4 property=rx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=18 lane-cnt=4 property=rx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=19 lane-cnt=4 property=rx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=20 lane-cnt=4 property=rx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=21 lane-cnt=4 property=rx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=22 lane-cnt=4 property=rx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=23 lane-cnt=4 property=rx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=24 lane-cnt=4 property=rx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=25 lane-cnt=4 property=rx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=26 lane-cnt=4 property=rx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=27 lane-cnt=4 property=rx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=28 lane-cnt=4 property=rx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=29 lane-cnt=4 property=rx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=30 lane-cnt=4 property=rx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=31 lane-cnt=4 property=rx data=0x03.02.01.00 +phy set lane-swap unit=0 portlist=129 lane-cnt=1 property=rx data=0x1 +phy set lane-swap unit=0 portlist=130 lane-cnt=1 property=rx data=0x0 +phy set polarity-rev unit=0 portlist=0 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=1 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=2 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=3 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=4 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=5 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=6 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=7 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=8 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=9 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=10 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=11 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=12 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=13 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=14 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=15 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=16 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=17 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=18 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=19 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=20 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=21 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=22 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=23 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=24 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=25 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=26 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=27 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=28 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=29 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=30 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=31 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=129 lane-cnt=1 property=tx data=0x0 +phy set polarity-rev unit=0 portlist=130 lane-cnt=1 property=tx data=0x0 +phy set polarity-rev unit=0 portlist=0 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=1 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=2 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=3 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=4 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=5 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=6 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=7 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=8 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=9 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=10 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=11 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=12 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=13 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=14 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=15 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=16 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=17 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=18 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=19 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=20 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=21 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=22 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=23 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=24 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=25 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=26 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=27 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=28 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=29 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=30 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=31 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=129 lane-cnt=1 property=rx data=0x0 +phy set polarity-rev unit=0 portlist=130 lane-cnt=1 property=rx data=0x0 +phy set pre-emphasis unit=0 portlist=0 lane-cnt=4 property=c2 data=0x02.02.02.02 +phy set pre-emphasis unit=0 portlist=0 lane-cnt=4 property=cn1 data=0x01.01.01.01 +phy set pre-emphasis unit=0 portlist=0 lane-cnt=4 property=c0 data=0x1A.1A.1A.1A +phy set pre-emphasis unit=0 portlist=0 lane-cnt=4 property=c1 data=0x07.07.07.07 +phy set pre-emphasis unit=0 portlist=1 lane-cnt=4 property=c2 data=0x02.02.02.02 +phy set pre-emphasis unit=0 portlist=1 lane-cnt=4 property=cn1 data=0x00.00.00.00 +phy set pre-emphasis unit=0 portlist=1 lane-cnt=4 property=c0 data=0x1A.1A.1A.1A +phy set pre-emphasis unit=0 portlist=1 lane-cnt=4 property=c1 data=0x07.07.07.07 +phy set pre-emphasis unit=0 portlist=2 lane-cnt=4 property=c2 data=0x02.02.02.02 +phy set pre-emphasis unit=0 portlist=2 lane-cnt=4 property=cn1 data=0x01.01.01.01 +phy set pre-emphasis unit=0 portlist=2 lane-cnt=4 property=c0 data=0x1B.1B.1B.1B +phy set pre-emphasis unit=0 portlist=2 lane-cnt=4 property=c1 data=0x07.07.07.07 +phy set pre-emphasis unit=0 portlist=3 lane-cnt=4 property=c2 data=0x02.02.02.02 +phy set pre-emphasis unit=0 portlist=3 lane-cnt=4 property=cn1 data=0x00.00.00.00 +phy set pre-emphasis unit=0 portlist=3 lane-cnt=4 property=c0 data=0x1B.1B.1B.1B +phy set pre-emphasis unit=0 portlist=3 lane-cnt=4 property=c1 data=0x07.07.07.07 +phy set pre-emphasis unit=0 portlist=4 lane-cnt=4 property=c2 data=0x02.02.02.02 +phy set pre-emphasis unit=0 portlist=4 lane-cnt=4 property=cn1 data=0x00.00.00.00 +phy set pre-emphasis unit=0 portlist=4 lane-cnt=4 property=c0 data=0x1B.1B.1B.1B +phy set pre-emphasis unit=0 portlist=4 lane-cnt=4 property=c1 data=0x06.06.06.06 +phy set pre-emphasis unit=0 portlist=5 lane-cnt=4 property=c2 data=0x02.02.02.02 +phy set pre-emphasis unit=0 portlist=5 lane-cnt=4 property=cn1 data=0x00.00.00.00 +phy set pre-emphasis unit=0 portlist=5 lane-cnt=4 property=c0 data=0x1B.1B.1B.1B +phy set pre-emphasis unit=0 portlist=5 lane-cnt=4 property=c1 data=0x07.07.07.07 +phy set pre-emphasis unit=0 portlist=6 lane-cnt=4 property=c2 data=0x03.03.03.03 +phy set pre-emphasis unit=0 portlist=6 lane-cnt=4 property=cn1 data=0x00.00.00.00 +phy set pre-emphasis unit=0 portlist=6 lane-cnt=4 property=c0 data=0x1C.1C.1C.1C +phy set pre-emphasis unit=0 portlist=6 lane-cnt=4 property=c1 data=0x05.05.05.05 +phy set pre-emphasis unit=0 portlist=7 lane-cnt=4 property=c2 data=0x02.02.02.02 +phy set pre-emphasis unit=0 portlist=7 lane-cnt=4 property=cn1 data=0x00.00.00.00 +phy set pre-emphasis unit=0 portlist=7 lane-cnt=4 property=c0 data=0x1C.1C.1C.1C +phy set pre-emphasis unit=0 portlist=7 lane-cnt=4 property=c1 data=0x06.06.06.06 +phy set pre-emphasis unit=0 portlist=8 lane-cnt=4 property=c2 data=0x02.02.02.02 +phy set pre-emphasis unit=0 portlist=8 lane-cnt=4 property=cn1 data=0x00.00.00.00 +phy set pre-emphasis unit=0 portlist=8 lane-cnt=4 property=c0 data=0x1C.1C.1C.1C +phy set pre-emphasis unit=0 portlist=8 lane-cnt=4 property=c1 data=0x06.06.06.06 +phy set pre-emphasis unit=0 portlist=9 lane-cnt=4 property=c2 data=0x02.02.02.02 +phy set pre-emphasis unit=0 portlist=9 lane-cnt=4 property=cn1 data=0x00.00.00.00 +phy set pre-emphasis unit=0 portlist=9 lane-cnt=4 property=c0 data=0x1C.1C.1C.1C +phy set pre-emphasis unit=0 portlist=9 lane-cnt=4 property=c1 data=0x06.06.06.06 +phy set pre-emphasis unit=0 portlist=10 lane-cnt=4 property=c2 data=0x02.02.02.02 +phy set pre-emphasis unit=0 portlist=10 lane-cnt=4 property=cn1 data=0x00.00.00.00 +phy set pre-emphasis unit=0 portlist=10 lane-cnt=4 property=c0 data=0x1C.1C.1C.1C +phy set pre-emphasis unit=0 portlist=10 lane-cnt=4 property=c1 data=0x06.06.06.06 +phy set pre-emphasis unit=0 portlist=11 lane-cnt=4 property=c2 data=0x02.02.02.02 +phy set pre-emphasis unit=0 portlist=11 lane-cnt=4 property=cn1 data=0x01.01.01.01 +phy set pre-emphasis unit=0 portlist=11 lane-cnt=4 property=c0 data=0x1C.1C.1C.1C +phy set pre-emphasis unit=0 portlist=11 lane-cnt=4 property=c1 data=0x06.06.06.06 +phy set pre-emphasis unit=0 portlist=12 lane-cnt=4 property=c2 data=0x02.02.02.02 +phy set pre-emphasis unit=0 portlist=12 lane-cnt=4 property=cn1 data=0x00.00.00.00 +phy set pre-emphasis unit=0 portlist=12 lane-cnt=4 property=c0 data=0x1C.1C.1C.1C +phy set pre-emphasis unit=0 portlist=12 lane-cnt=4 property=c1 data=0x06.06.06.06 +phy set pre-emphasis unit=0 portlist=13 lane-cnt=4 property=c2 data=0x02.02.02.02 +phy set pre-emphasis unit=0 portlist=13 lane-cnt=4 property=cn1 data=0x00.00.00.00 +phy set pre-emphasis unit=0 portlist=13 lane-cnt=4 property=c0 data=0x1C.1C.1C.1C +phy set pre-emphasis unit=0 portlist=13 lane-cnt=4 property=c1 data=0x06.06.06.06 +phy set pre-emphasis unit=0 portlist=14 lane-cnt=4 property=c2 data=0x02.02.02.02 +phy set pre-emphasis unit=0 portlist=14 lane-cnt=4 property=cn1 data=0x00.00.00.00 +phy set pre-emphasis unit=0 portlist=14 lane-cnt=4 property=c0 data=0x1D.1D.1D.1D +phy set pre-emphasis unit=0 portlist=14 lane-cnt=4 property=c1 data=0x05.05.05.05 +phy set pre-emphasis unit=0 portlist=15 lane-cnt=4 property=c2 data=0x02.02.02.02 +phy set pre-emphasis unit=0 portlist=15 lane-cnt=4 property=cn1 data=0x00.00.00.00 +phy set pre-emphasis unit=0 portlist=15 lane-cnt=4 property=c0 data=0x1C.1C.1C.1C +phy set pre-emphasis unit=0 portlist=15 lane-cnt=4 property=c1 data=0x06.06.06.06 +phy set pre-emphasis unit=0 portlist=16 lane-cnt=4 property=c2 data=0x02.02.02.02 +phy set pre-emphasis unit=0 portlist=16 lane-cnt=4 property=cn1 data=0x00.00.00.00 +phy set pre-emphasis unit=0 portlist=16 lane-cnt=4 property=c0 data=0x1C.1C.1C.1C +phy set pre-emphasis unit=0 portlist=16 lane-cnt=4 property=c1 data=0x05.05.05.05 +phy set pre-emphasis unit=0 portlist=17 lane-cnt=4 property=c2 data=0x02.02.02.02 +phy set pre-emphasis unit=0 portlist=17 lane-cnt=4 property=cn1 data=0x00.00.00.00 +phy set pre-emphasis unit=0 portlist=17 lane-cnt=4 property=c0 data=0x1C.1C.1C.1C +phy set pre-emphasis unit=0 portlist=17 lane-cnt=4 property=c1 data=0x06.06.06.06 +phy set pre-emphasis unit=0 portlist=18 lane-cnt=4 property=c2 data=0x02.02.02.02 +phy set pre-emphasis unit=0 portlist=18 lane-cnt=4 property=cn1 data=0x00.00.00.00 +phy set pre-emphasis unit=0 portlist=18 lane-cnt=4 property=c0 data=0x1C.1C.1C.1C +phy set pre-emphasis unit=0 portlist=18 lane-cnt=4 property=c1 data=0x06.06.06.06 +phy set pre-emphasis unit=0 portlist=19 lane-cnt=4 property=c2 data=0x02.02.02.02 +phy set pre-emphasis unit=0 portlist=19 lane-cnt=4 property=cn1 data=0x00.00.00.00 +phy set pre-emphasis unit=0 portlist=19 lane-cnt=4 property=c0 data=0x1C.1C.1C.1C +phy set pre-emphasis unit=0 portlist=19 lane-cnt=4 property=c1 data=0x06.06.06.06 +phy set pre-emphasis unit=0 portlist=20 lane-cnt=4 property=c2 data=0x02.02.02.02 +phy set pre-emphasis unit=0 portlist=20 lane-cnt=4 property=cn1 data=0x00.00.00.00 +phy set pre-emphasis unit=0 portlist=20 lane-cnt=4 property=c0 data=0x1C.1C.1C.1C +phy set pre-emphasis unit=0 portlist=20 lane-cnt=4 property=c1 data=0x06.06.06.06 +phy set pre-emphasis unit=0 portlist=21 lane-cnt=4 property=c2 data=0x02.02.02.02 +phy set pre-emphasis unit=0 portlist=21 lane-cnt=4 property=cn1 data=0x00.00.00.00 +phy set pre-emphasis unit=0 portlist=21 lane-cnt=4 property=c0 data=0x1B.1B.1B.1B +phy set pre-emphasis unit=0 portlist=21 lane-cnt=4 property=c1 data=0x06.06.06.06 +phy set pre-emphasis unit=0 portlist=22 lane-cnt=4 property=c2 data=0x02.02.02.02 +phy set pre-emphasis unit=0 portlist=22 lane-cnt=4 property=cn1 data=0x00.00.00.00 +phy set pre-emphasis unit=0 portlist=22 lane-cnt=4 property=c0 data=0x1C.1C.1C.1C +phy set pre-emphasis unit=0 portlist=22 lane-cnt=4 property=c1 data=0x06.06.06.06 +phy set pre-emphasis unit=0 portlist=23 lane-cnt=4 property=c2 data=0x02.02.02.02 +phy set pre-emphasis unit=0 portlist=23 lane-cnt=4 property=cn1 data=0x00.00.00.00 +phy set pre-emphasis unit=0 portlist=23 lane-cnt=4 property=c0 data=0x1C.1C.1C.1C +phy set pre-emphasis unit=0 portlist=23 lane-cnt=4 property=c1 data=0x06.06.06.06 +phy set pre-emphasis unit=0 portlist=24 lane-cnt=4 property=c2 data=0x02.02.02.02 +phy set pre-emphasis unit=0 portlist=24 lane-cnt=4 property=cn1 data=0x00.00.00.00 +phy set pre-emphasis unit=0 portlist=24 lane-cnt=4 property=c0 data=0x1C.1C.1C.1C +phy set pre-emphasis unit=0 portlist=24 lane-cnt=4 property=c1 data=0x06.06.06.06 +phy set pre-emphasis unit=0 portlist=25 lane-cnt=4 property=c2 data=0x02.02.02.02 +phy set pre-emphasis unit=0 portlist=25 lane-cnt=4 property=cn1 data=0x00.00.00.00 +phy set pre-emphasis unit=0 portlist=25 lane-cnt=4 property=c0 data=0x1C.1C.1C.1C +phy set pre-emphasis unit=0 portlist=25 lane-cnt=4 property=c1 data=0x06.06.06.06 +phy set pre-emphasis unit=0 portlist=26 lane-cnt=4 property=c2 data=0x02.02.02.02 +phy set pre-emphasis unit=0 portlist=26 lane-cnt=4 property=cn1 data=0x00.00.00.00 +phy set pre-emphasis unit=0 portlist=26 lane-cnt=4 property=c0 data=0x1B.1B.1B.1B +phy set pre-emphasis unit=0 portlist=26 lane-cnt=4 property=c1 data=0x06.06.06.06 +phy set pre-emphasis unit=0 portlist=27 lane-cnt=4 property=c2 data=0x02.02.02.02 +phy set pre-emphasis unit=0 portlist=27 lane-cnt=4 property=cn1 data=0x00.00.00.00 +phy set pre-emphasis unit=0 portlist=27 lane-cnt=4 property=c0 data=0x1B.1B.1B.1B +phy set pre-emphasis unit=0 portlist=27 lane-cnt=4 property=c1 data=0x06.06.06.06 +phy set pre-emphasis unit=0 portlist=28 lane-cnt=4 property=c2 data=0x02.02.02.02 +phy set pre-emphasis unit=0 portlist=28 lane-cnt=4 property=cn1 data=0x00.00.00.00 +phy set pre-emphasis unit=0 portlist=28 lane-cnt=4 property=c0 data=0x1B.1B.1B.1B +phy set pre-emphasis unit=0 portlist=28 lane-cnt=4 property=c1 data=0x07.07.07.07 +phy set pre-emphasis unit=0 portlist=29 lane-cnt=4 property=c2 data=0x02.02.02.02 +phy set pre-emphasis unit=0 portlist=29 lane-cnt=4 property=cn1 data=0x00.00.00.00 +phy set pre-emphasis unit=0 portlist=29 lane-cnt=4 property=c0 data=0x1A.1A.1A.1A +phy set pre-emphasis unit=0 portlist=29 lane-cnt=4 property=c1 data=0x07.07.07.07 +phy set pre-emphasis unit=0 portlist=30 lane-cnt=4 property=c2 data=0x02.02.02.02 +phy set pre-emphasis unit=0 portlist=30 lane-cnt=4 property=cn1 data=0x01.01.01.01 +phy set pre-emphasis unit=0 portlist=30 lane-cnt=4 property=c0 data=0x1A.1A.1A.1A +phy set pre-emphasis unit=0 portlist=30 lane-cnt=4 property=c1 data=0x07.07.07.07 +phy set pre-emphasis unit=0 portlist=31 lane-cnt=4 property=c2 data=0x01.01.01.01 +phy set pre-emphasis unit=0 portlist=31 lane-cnt=4 property=cn1 data=0x03.03.03.03 +phy set pre-emphasis unit=0 portlist=31 lane-cnt=4 property=c0 data=0x17.17.17.17 +phy set pre-emphasis unit=0 portlist=31 lane-cnt=4 property=c1 data=0x09.09.09.09 +phy set pre-emphasis unit=0 portlist=129 lane-cnt=1 property=c2 data=0x01 +phy set pre-emphasis unit=0 portlist=129 lane-cnt=1 property=cn1 data=0x01 +phy set pre-emphasis unit=0 portlist=129 lane-cnt=1 property=c0 data=0x02 +phy set pre-emphasis unit=0 portlist=129 lane-cnt=1 property=c1 data=0x03 +phy set pre-emphasis unit=0 portlist=130 lane-cnt=1 property=c2 data=0x01 +phy set pre-emphasis unit=0 portlist=130 lane-cnt=1 property=cn1 data=0x01 +phy set pre-emphasis unit=0 portlist=130 lane-cnt=1 property=c0 data=0x02 +phy set pre-emphasis unit=0 portlist=130 lane-cnt=1 property=c1 data=0x03 +port set property unit=0 portlist=0-31 speed=100g +port set property unit=0 portlist=129-130 speed=10g +port set property unit=0 portlist=0-31 medium-type=sr4 +port set property unit=0 portlist=129-130 medium-type=kr +port set property unit=0 portlist=0-31 fec=disable +port set adver unit=0 portlist=129-130 speed-10g-kr +port set property unit=0 portlist=129-130 an=enable +port set property unit=0 portlist=0-31,129-130 admin=enable diff --git a/device/ingrasys/x86_64-ingrasys_s9130_32x-r0/plugins/eeprom.py b/device/ingrasys/x86_64-ingrasys_s9130_32x-r0/plugins/eeprom.py index 0f47704ed2c..71ce941f1ab 100644 --- a/device/ingrasys/x86_64-ingrasys_s9130_32x-r0/plugins/eeprom.py +++ b/device/ingrasys/x86_64-ingrasys_s9130_32x-r0/plugins/eeprom.py @@ -18,5 +18,5 @@ class board(eeprom_tlvinfo.TlvInfoDecoder): def __init__(self, name, path, cpld_root, ro): - self.eeprom_path = "/sys/class/i2c-adapter/i2c-0/0-0055/eeprom" + self.eeprom_path = "/sys/class/i2c-adapter/i2c-0/0-0051/eeprom" super(board, self).__init__(self.eeprom_path, 0, '', True) diff --git a/device/ingrasys/x86_64-ingrasys_s9200_64x-r0/plugins/eeprom.py b/device/ingrasys/x86_64-ingrasys_s9200_64x-r0/plugins/eeprom.py index 3d01608ef7b..64ddb99554b 100644 --- a/device/ingrasys/x86_64-ingrasys_s9200_64x-r0/plugins/eeprom.py +++ b/device/ingrasys/x86_64-ingrasys_s9200_64x-r0/plugins/eeprom.py @@ -19,6 +19,6 @@ class board(eeprom_tlvinfo.TlvInfoDecoder): def __init__(self, name, path, cpld_root, ro): i2c_bus = "0" - i2c_addr = "0055" + i2c_addr = "0051" self.eeprom_path = "/sys/class/i2c-adapter/i2c-" + i2c_bus + "/" + i2c_bus + "-" + i2c_addr + "/eeprom" super(board, self).__init__(self.eeprom_path, 0, '', True) diff --git a/device/ingrasys/x86_64-ingrasys_s9200_64x-r0/sensors.conf b/device/ingrasys/x86_64-ingrasys_s9200_64x-r0/sensors.conf index 065c1ebddf3..361a8b73264 100644 --- a/device/ingrasys/x86_64-ingrasys_s9200_64x-r0/sensors.conf +++ b/device/ingrasys/x86_64-ingrasys_s9200_64x-r0/sensors.conf @@ -48,6 +48,8 @@ chip "w83795adg-*" ignore temp2 ignore temp3 ignore temp4 + ignore temp5 + ignore temp6 ignore intrusion0 chip "tmp75-i2c-*-4A" diff --git a/device/ingrasys/x86_64-ingrasys_s9230_64x-r0/INGRASYS-S9230-64X/port_config.ini b/device/ingrasys/x86_64-ingrasys_s9230_64x-r0/INGRASYS-S9230-64X/port_config.ini index ddd76b51167..18b9d933a66 100644 --- a/device/ingrasys/x86_64-ingrasys_s9230_64x-r0/INGRASYS-S9230-64X/port_config.ini +++ b/device/ingrasys/x86_64-ingrasys_s9230_64x-r0/INGRASYS-S9230-64X/port_config.ini @@ -1,65 +1,65 @@ # name lanes alias index -Ethernet0 7,6,5,4 Ethernet1/1 0 -Ethernet4 3,2,1,0 Ethernet2/1 1 -Ethernet8 15,14,13,12 Ethernet3/1 2 -Ethernet12 11,10,9,8 Ethernet4/1 3 -Ethernet16 23,22,21,20 Ethernet5/1 4 -Ethernet20 19,18,17,16 Ethernet6/1 5 -Ethernet24 31,30,29,28 Ethernet7/1 6 -Ethernet28 27,26,25,24 Ethernet8/1 7 -Ethernet32 39,38,37,36 Ethernet9/1 8 -Ethernet36 35,34,33,32 Ethernet10/1 9 -Ethernet40 47,46,45,44 Ethernet11/1 10 -Ethernet44 43,42,41,40 Ethernet12/1 11 -Ethernet48 55,54,53,52 Ethernet13/1 12 -Ethernet52 51,50,49,48 Ethernet14/1 13 -Ethernet56 63,62,61,60 Ethernet15/1 14 -Ethernet60 59,58,57,56 Ethernet16/1 15 -Ethernet64 71,70,69,68 Ethernet17/1 16 -Ethernet68 67,66,65,64 Ethernet18/1 17 -Ethernet72 79,78,77,76 Ethernet19/1 18 -Ethernet76 75,74,73,72 Ethernet20/1 19 -Ethernet80 87,86,85,84 Ethernet21/1 20 -Ethernet84 83,82,81,80 Ethernet22/1 21 -Ethernet88 95,94,93,92 Ethernet23/1 22 -Ethernet92 91,90,89,88 Ethernet24/1 23 -Ethernet96 97,98,99,100 Ethernet25/1 24 -Ethernet100 101,102,103,104 Ethernet26/1 25 -Ethernet104 105,106,107,108 Ethernet27/1 26 -Ethernet108 109,110,111,112 Ethernet28/1 27 -Ethernet112 119,118,117,116 Ethernet29/1 28 -Ethernet116 115,114,113,112 Ethernet30/1 29 -Ethernet120 127,126,125,124 Ethernet31/1 30 -Ethernet124 123,122,121,120 Ethernet32/1 31 -Ethernet128 135,134,133,132 Ethernet33/1 32 -Ethernet132 131,130,129,128 Ethernet34/1 33 -Ethernet136 143,142,141,140 Ethernet35/1 34 -Ethernet140 139,138,137,136 Ethernet36/1 35 -Ethernet144 151,150,149,148 Ethernet37/1 36 -Ethernet148 147,146,145,144 Ethernet38/1 37 -Ethernet152 159,158,157,156 Ethernet39/1 38 -Ethernet156 155,154,153,152 Ethernet40/1 39 -Ethernet160 167,166,165,164 Ethernet41/1 40 -Ethernet164 163,162,161,160 Ethernet42/1 41 -Ethernet168 175,174,173,172 Ethernet43/1 42 -Ethernet172 171,170,169,168 Ethernet44/1 43 -Ethernet176 183,182,181,180 Ethernet45/1 44 -Ethernet180 179,178,177,176 Ethernet46/1 45 -Ethernet184 191,190,189,188 Ethernet47/1 46 -Ethernet188 187,186,185,184 Ethernet48/1 47 -Ethernet192 199,198,197,196 Ethernet49/1 48 -Ethernet196 195,194,193,192 Ethernet50/1 49 -Ethernet200 207,206,205,204 Ethernet51/1 50 -Ethernet204 203,202,201,200 Ethernet52/1 51 -Ethernet208 215,214,213,212 Ethernet53/1 52 -Ethernet212 211,210,209,208 Ethernet54/1 53 -Ethernet216 223,222,221,220 Ethernet55/1 54 -Ethernet220 219,218,217,216 Ethernet56/1 55 -Ethernet224 231,230,229,228 Ethernet57/1 56 -Ethernet228 227,226,225,224 Ethernet58/1 57 -Ethernet232 239,238,237,236 Ethernet59/1 58 -Ethernet236 235,234,233,232 Ethernet60/1 59 -Ethernet240 247,246,245,244 Ethernet61/1 60 -Ethernet244 243,242,241,240 Ethernet62/1 61 -Ethernet248 255,254,253,252 Ethernet63/1 62 -Ethernet252 251,250,249,248 Ethernet64/1 63 +Ethernet0 4,5,6,7 Ethernet1/1 0 +Ethernet4 0,1,2,3 Ethernet2/1 1 +Ethernet8 20,21,22,23 Ethernet3/1 2 +Ethernet12 16,17,18,19 Ethernet4/1 3 +Ethernet16 36,37,38,39 Ethernet5/1 4 +Ethernet20 32,33,34,35 Ethernet6/1 5 +Ethernet24 52,53,54,55 Ethernet7/1 6 +Ethernet28 48,49,50,51 Ethernet8/1 7 +Ethernet32 68,69,70,71 Ethernet9/1 8 +Ethernet36 64,65,66,67 Ethernet10/1 9 +Ethernet40 84,85,86,87 Ethernet11/1 10 +Ethernet44 80,81,82,83 Ethernet12/1 11 +Ethernet48 100,101,102,103 Ethernet13/1 12 +Ethernet52 96,97,98,99 Ethernet14/1 13 +Ethernet56 116,117,118,119 Ethernet15/1 14 +Ethernet60 112,113,114,115 Ethernet16/1 15 +Ethernet64 132,133,134,135 Ethernet17/1 16 +Ethernet68 128,129,130,131 Ethernet18/1 17 +Ethernet72 148,149,150,151 Ethernet19/1 18 +Ethernet76 144,145,146,147 Ethernet20/1 19 +Ethernet80 164,165,166,167 Ethernet21/1 20 +Ethernet84 160,161,162,163 Ethernet22/1 21 +Ethernet88 180,181,182,183 Ethernet23/1 22 +Ethernet92 176,177,178,179 Ethernet24/1 23 +Ethernet96 196,197,198,199 Ethernet25/1 24 +Ethernet100 192,193,194,195 Ethernet26/1 25 +Ethernet104 212,213,214,215 Ethernet27/1 26 +Ethernet108 208,209,210,211 Ethernet28/1 27 +Ethernet112 228,229,230,231 Ethernet29/1 28 +Ethernet116 224,225,226,227 Ethernet30/1 29 +Ethernet120 244,245,246,247 Ethernet31/1 30 +Ethernet124 240,241,242,243 Ethernet32/1 31 +Ethernet128 12,13,14,15 Ethernet33/1 32 +Ethernet132 8,9,10,11 Ethernet34/1 33 +Ethernet136 28,29,30,31 Ethernet35/1 34 +Ethernet140 24,25,26,27 Ethernet36/1 35 +Ethernet144 44,45,46,47 Ethernet37/1 36 +Ethernet148 40,41,42,43 Ethernet38/1 37 +Ethernet152 60,61,62,63 Ethernet39/1 38 +Ethernet156 56,57,58,59 Ethernet40/1 39 +Ethernet160 76,77,78,79 Ethernet41/1 40 +Ethernet164 72,73,74,75 Ethernet42/1 41 +Ethernet168 92,93,94,95 Ethernet43/1 42 +Ethernet172 88,89,90,91 Ethernet44/1 43 +Ethernet176 108,109,110,111 Ethernet45/1 44 +Ethernet180 104,105,106,107 Ethernet46/1 45 +Ethernet184 124,125,126,127 Ethernet47/1 46 +Ethernet188 120,121,122,123 Ethernet48/1 47 +Ethernet192 140,141,142,143 Ethernet49/1 48 +Ethernet196 136,137,138,139 Ethernet50/1 49 +Ethernet200 156,157,158,159 Ethernet51/1 50 +Ethernet204 152,153,154,155 Ethernet52/1 51 +Ethernet208 172,173,174,175 Ethernet53/1 52 +Ethernet212 168,169,170,171 Ethernet54/1 53 +Ethernet216 188,189,190,191 Ethernet55/1 54 +Ethernet220 184,185,186,187 Ethernet56/1 55 +Ethernet224 204,205,206,207 Ethernet57/1 56 +Ethernet228 200,201,202,203 Ethernet58/1 57 +Ethernet232 220,221,222,223 Ethernet59/1 58 +Ethernet236 216,217,218,219 Ethernet60/1 59 +Ethernet240 236,237,238,239 Ethernet61/1 60 +Ethernet244 232,233,234,235 Ethernet62/1 61 +Ethernet248 252,253,254,255 Ethernet63/1 62 +Ethernet252 248,249,250,251 Ethernet64/1 63 diff --git a/device/ingrasys/x86_64-ingrasys_s9230_64x-r0/INGRASYS-S9230-64X/port_config.nps b/device/ingrasys/x86_64-ingrasys_s9230_64x-r0/INGRASYS-S9230-64X/port_config.nps index 4e5e8e998d7..4f86c1c4423 100644 --- a/device/ingrasys/x86_64-ingrasys_s9230_64x-r0/INGRASYS-S9230-64X/port_config.nps +++ b/device/ingrasys/x86_64-ingrasys_s9230_64x-r0/INGRASYS-S9230-64X/port_config.nps @@ -68,797 +68,797 @@ init set port-map unit=0 port=130 eth-macro=0 lane=0 max-speed=10g active=true g init start stage unit=0 task-rsrc init start stage unit=0 module init start stage unit=0 task -phy set lane-swap unit=0 portlist=0 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=1 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=2 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=3 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=4 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=5 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=6 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=7 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=8 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=9 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=10 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=11 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=12 lane-num=4 property=tx data=0x3.2.1.0 -phy set lane-swap unit=0 portlist=13 lane-num=4 property=tx data=0x3.2.1.0 -phy set lane-swap unit=0 portlist=14 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=15 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=16 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=17 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=18 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=19 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=20 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=21 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=22 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=23 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=24 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=25 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=26 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=27 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=28 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=29 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=30 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=31 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=32 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=33 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=34 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=35 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=36 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=37 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=38 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=39 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=40 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=41 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=42 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=43 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=44 lane-num=4 property=tx data=0x3.2.1.0 -phy set lane-swap unit=0 portlist=45 lane-num=4 property=tx data=0x3.2.1.0 -phy set lane-swap unit=0 portlist=46 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=47 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=48 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=49 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=50 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=51 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=52 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=53 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=54 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=55 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=56 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=57 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=58 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=59 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=60 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=61 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=62 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=63 lane-num=4 property=tx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=129 lane-num=1 property=tx data=0x1 -phy set lane-swap unit=0 portlist=130 lane-num=1 property=tx data=0x0 -phy set lane-swap unit=0 portlist=0 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=1 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=2 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=3 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=4 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=5 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=6 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=7 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=8 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=9 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=10 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=11 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=12 lane-num=4 property=rx data=0x3.2.1.0 -phy set lane-swap unit=0 portlist=13 lane-num=4 property=rx data=0x3.2.1.0 -phy set lane-swap unit=0 portlist=14 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=15 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=16 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=17 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=18 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=19 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=20 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=21 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=22 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=23 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=24 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=25 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=26 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=27 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=28 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=29 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=30 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=31 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=32 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=33 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=34 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=35 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=36 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=37 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=38 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=39 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=40 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=41 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=42 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=43 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=44 lane-num=4 property=rx data=0x3.2.1.0 -phy set lane-swap unit=0 portlist=45 lane-num=4 property=rx data=0x3.2.1.0 -phy set lane-swap unit=0 portlist=46 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=47 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=48 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=49 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=50 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=51 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=52 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=53 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=54 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=55 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=56 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=57 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=58 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=59 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=60 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=61 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=62 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=63 lane-num=4 property=rx data=0x0.1.2.3 -phy set lane-swap unit=0 portlist=129 lane-num=1 property=rx data=0x1 -phy set lane-swap unit=0 portlist=130 lane-num=1 property=rx data=0x0 -phy set polarity-rev unit=0 portlist=0 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=1 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=2 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=3 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=4 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=5 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=6 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=7 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=8 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=9 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=10 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=11 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=12 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=13 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=14 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=15 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=16 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=17 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=18 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=19 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=20 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=21 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=22 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=23 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=24 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=25 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=26 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=27 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=28 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=29 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=30 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=31 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=32 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=33 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=34 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=35 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=36 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=37 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=38 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=39 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=40 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=41 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=42 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=43 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=44 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=45 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=46 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=47 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=48 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=49 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=50 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=51 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=52 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=53 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=54 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=55 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=56 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=57 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=58 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=59 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=60 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=61 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=62 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=63 lane-num=4 property=tx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=129 lane-num=1 property=tx data=0x0 -phy set polarity-rev unit=0 portlist=130 lane-num=1 property=tx data=0x0 -phy set polarity-rev unit=0 portlist=0 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=1 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=2 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=3 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=4 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=5 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=6 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=7 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=8 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=9 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=10 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=11 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=12 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=13 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=14 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=15 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=16 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=17 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=18 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=19 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=20 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=21 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=22 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=23 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=24 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=25 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=26 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=27 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=28 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=29 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=30 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=31 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=32 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=33 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=34 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=35 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=36 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=37 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=38 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=39 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=40 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=41 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=42 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=43 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=44 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=45 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=46 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=47 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=48 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=49 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=50 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=51 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=52 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=53 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=54 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=55 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=56 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=57 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=58 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=59 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=60 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=61 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=62 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=63 lane-num=4 property=rx data=0x0.0.0.0 -phy set polarity-rev unit=0 portlist=129 lane-num=1 property=rx data=0x0 -phy set polarity-rev unit=0 portlist=130 lane-num=1 property=rx data=0x0 -phy set pre-emphasis unit=0 portlist=0 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=0 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=0 lane-num=4 property=c0 data=0x1a.1a.1a.1a -phy set pre-emphasis unit=0 portlist=0 lane-num=4 property=c1 data=0x6.6.6.6 -phy set pre-emphasis unit=0 portlist=1 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=1 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=1 lane-num=4 property=c0 data=0x1a.1a.1a.1a -phy set pre-emphasis unit=0 portlist=1 lane-num=4 property=c1 data=0x6.6.6.6 -phy set pre-emphasis unit=0 portlist=2 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=2 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=2 lane-num=4 property=c0 data=0x19.19.19.19 -phy set pre-emphasis unit=0 portlist=2 lane-num=4 property=c1 data=0x7.7.7.7 -phy set pre-emphasis unit=0 portlist=3 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=3 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=3 lane-num=4 property=c0 data=0x19.19.19.19 -phy set pre-emphasis unit=0 portlist=3 lane-num=4 property=c1 data=0x7.7.7.7 -phy set pre-emphasis unit=0 portlist=4 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=4 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=4 lane-num=4 property=c0 data=0x1a.1a.1a.1a -phy set pre-emphasis unit=0 portlist=4 lane-num=4 property=c1 data=0x6.6.6.6 -phy set pre-emphasis unit=0 portlist=5 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=5 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=5 lane-num=4 property=c0 data=0x1a.1a.1a.1a -phy set pre-emphasis unit=0 portlist=5 lane-num=4 property=c1 data=0x6.6.6.6 -phy set pre-emphasis unit=0 portlist=6 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=6 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=6 lane-num=4 property=c0 data=0x1b.1b.1b.1b -phy set pre-emphasis unit=0 portlist=6 lane-num=4 property=c1 data=0x5.5.5.5 -phy set pre-emphasis unit=0 portlist=7 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=7 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=7 lane-num=4 property=c0 data=0x1b.1b.1b.1b -phy set pre-emphasis unit=0 portlist=7 lane-num=4 property=c1 data=0x5.5.5.5 -phy set pre-emphasis unit=0 portlist=8 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=8 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=8 lane-num=4 property=c0 data=0x1b.1b.1b.1b -phy set pre-emphasis unit=0 portlist=8 lane-num=4 property=c1 data=0x5.5.5.5 -phy set pre-emphasis unit=0 portlist=9 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=9 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=9 lane-num=4 property=c0 data=0x1b.1b.1b.1b -phy set pre-emphasis unit=0 portlist=9 lane-num=4 property=c1 data=0x5.5.5.5 -phy set pre-emphasis unit=0 portlist=10 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=10 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=10 lane-num=4 property=c0 data=0x1b.1b.1b.1b -phy set pre-emphasis unit=0 portlist=10 lane-num=4 property=c1 data=0x5.5.5.5 -phy set pre-emphasis unit=0 portlist=11 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=11 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=11 lane-num=4 property=c0 data=0x1b.1b.1b.1b -phy set pre-emphasis unit=0 portlist=11 lane-num=4 property=c1 data=0x5.5.5.5 -phy set pre-emphasis unit=0 portlist=12 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=12 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=12 lane-num=4 property=c0 data=0x1b.1b.1b.1b -phy set pre-emphasis unit=0 portlist=12 lane-num=4 property=c1 data=0x5.5.5.5 -phy set pre-emphasis unit=0 portlist=13 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=13 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=13 lane-num=4 property=c0 data=0x1b.1b.1b.1b -phy set pre-emphasis unit=0 portlist=13 lane-num=4 property=c1 data=0x5.5.5.5 -phy set pre-emphasis unit=0 portlist=14 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=14 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=14 lane-num=4 property=c0 data=0x1c.1c.1c.1c -phy set pre-emphasis unit=0 portlist=14 lane-num=4 property=c1 data=0x4.4.4.4 -phy set pre-emphasis unit=0 portlist=15 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=15 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=15 lane-num=4 property=c0 data=0x1c.1c.1c.1c -phy set pre-emphasis unit=0 portlist=15 lane-num=4 property=c1 data=0x4.4.4.4 -phy set pre-emphasis unit=0 portlist=16 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=16 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=16 lane-num=4 property=c0 data=0x1c.1c.1c.1c -phy set pre-emphasis unit=0 portlist=16 lane-num=4 property=c1 data=0x4.4.4.4 -phy set pre-emphasis unit=0 portlist=17 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=17 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=17 lane-num=4 property=c0 data=0x1c.1c.1c.1c -phy set pre-emphasis unit=0 portlist=17 lane-num=4 property=c1 data=0x4.4.4.4 -phy set pre-emphasis unit=0 portlist=18 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=18 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=18 lane-num=4 property=c0 data=0x1c.1c.1c.1c -phy set pre-emphasis unit=0 portlist=18 lane-num=4 property=c1 data=0x4.4.4.4 -phy set pre-emphasis unit=0 portlist=19 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=19 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=19 lane-num=4 property=c0 data=0x1c.1c.1c.1c -phy set pre-emphasis unit=0 portlist=19 lane-num=4 property=c1 data=0x4.4.4.4 -phy set pre-emphasis unit=0 portlist=20 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=20 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=20 lane-num=4 property=c0 data=0x1b.1b.1b.1b -phy set pre-emphasis unit=0 portlist=20 lane-num=4 property=c1 data=0x5.5.5.5 -phy set pre-emphasis unit=0 portlist=21 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=21 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=21 lane-num=4 property=c0 data=0x1b.1b.1b.1b -phy set pre-emphasis unit=0 portlist=21 lane-num=4 property=c1 data=0x5.5.5.5 -phy set pre-emphasis unit=0 portlist=22 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=22 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=22 lane-num=4 property=c0 data=0x1c.1c.1c.1c -phy set pre-emphasis unit=0 portlist=22 lane-num=4 property=c1 data=0x4.4.4.4 -phy set pre-emphasis unit=0 portlist=23 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=23 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=23 lane-num=4 property=c0 data=0x1c.1c.1c.1c -phy set pre-emphasis unit=0 portlist=23 lane-num=4 property=c1 data=0x4.4.4.4 -phy set pre-emphasis unit=0 portlist=24 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=24 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=24 lane-num=4 property=c0 data=0x1b.1b.1b.1b -phy set pre-emphasis unit=0 portlist=24 lane-num=4 property=c1 data=0x5.5.5.5 -phy set pre-emphasis unit=0 portlist=25 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=25 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=25 lane-num=4 property=c0 data=0x1b.1b.1b.1b -phy set pre-emphasis unit=0 portlist=25 lane-num=4 property=c1 data=0x5.5.5.5 -phy set pre-emphasis unit=0 portlist=26 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=26 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=26 lane-num=4 property=c0 data=0x1a.1a.1a.1a -phy set pre-emphasis unit=0 portlist=26 lane-num=4 property=c1 data=0x6.6.6.6 -phy set pre-emphasis unit=0 portlist=27 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=27 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=27 lane-num=4 property=c0 data=0x1a.1a.1a.1a -phy set pre-emphasis unit=0 portlist=27 lane-num=4 property=c1 data=0x6.6.6.6 -phy set pre-emphasis unit=0 portlist=28 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=28 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=28 lane-num=4 property=c0 data=0x19.19.19.19 -phy set pre-emphasis unit=0 portlist=28 lane-num=4 property=c1 data=0x7.7.7.7 -phy set pre-emphasis unit=0 portlist=29 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=29 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=29 lane-num=4 property=c0 data=0x19.19.19.19 -phy set pre-emphasis unit=0 portlist=29 lane-num=4 property=c1 data=0x7.7.7.7 -phy set pre-emphasis unit=0 portlist=30 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=30 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=30 lane-num=4 property=c0 data=0x1a.1a.1a.1a -phy set pre-emphasis unit=0 portlist=30 lane-num=4 property=c1 data=0x6.6.6.6 -phy set pre-emphasis unit=0 portlist=31 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=31 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=31 lane-num=4 property=c0 data=0x1a.1a.1a.1a -phy set pre-emphasis unit=0 portlist=31 lane-num=4 property=c1 data=0x6.6.6.6 -phy set pre-emphasis unit=0 portlist=32 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=32 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=32 lane-num=4 property=c0 data=0x1a.1a.1a.1a -phy set pre-emphasis unit=0 portlist=32 lane-num=4 property=c1 data=0x6.6.6.6 -phy set pre-emphasis unit=0 portlist=33 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=33 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=33 lane-num=4 property=c0 data=0x1a.1a.1a.1a -phy set pre-emphasis unit=0 portlist=33 lane-num=4 property=c1 data=0x6.6.6.6 -phy set pre-emphasis unit=0 portlist=34 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=34 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=34 lane-num=4 property=c0 data=0x19.19.19.19 -phy set pre-emphasis unit=0 portlist=34 lane-num=4 property=c1 data=0x7.7.7.7 -phy set pre-emphasis unit=0 portlist=35 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=35 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=35 lane-num=4 property=c0 data=0x19.19.19.19 -phy set pre-emphasis unit=0 portlist=35 lane-num=4 property=c1 data=0x7.7.7.7 -phy set pre-emphasis unit=0 portlist=36 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=36 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=36 lane-num=4 property=c0 data=0x1a.1a.1a.1a -phy set pre-emphasis unit=0 portlist=36 lane-num=4 property=c1 data=0x6.6.6.6 -phy set pre-emphasis unit=0 portlist=37 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=37 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=37 lane-num=4 property=c0 data=0x1a.1a.1a.1a -phy set pre-emphasis unit=0 portlist=37 lane-num=4 property=c1 data=0x6.6.6.6 -phy set pre-emphasis unit=0 portlist=38 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=38 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=38 lane-num=4 property=c0 data=0x1b.1b.1b.1b -phy set pre-emphasis unit=0 portlist=38 lane-num=4 property=c1 data=0x5.5.5.5 -phy set pre-emphasis unit=0 portlist=39 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=39 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=39 lane-num=4 property=c0 data=0x1b.1b.1b.1b -phy set pre-emphasis unit=0 portlist=39 lane-num=4 property=c1 data=0x5.5.5.5 -phy set pre-emphasis unit=0 portlist=40 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=40 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=40 lane-num=4 property=c0 data=0x1b.1b.1b.1b -phy set pre-emphasis unit=0 portlist=40 lane-num=4 property=c1 data=0x5.5.5.5 -phy set pre-emphasis unit=0 portlist=41 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=41 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=41 lane-num=4 property=c0 data=0x1b.1b.1b.1b -phy set pre-emphasis unit=0 portlist=41 lane-num=4 property=c1 data=0x5.5.5.5 -phy set pre-emphasis unit=0 portlist=42 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=42 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=42 lane-num=4 property=c0 data=0x1b.1b.1b.1b -phy set pre-emphasis unit=0 portlist=42 lane-num=4 property=c1 data=0x5.5.5.5 -phy set pre-emphasis unit=0 portlist=43 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=43 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=43 lane-num=4 property=c0 data=0x1b.1b.1b.1b -phy set pre-emphasis unit=0 portlist=43 lane-num=4 property=c1 data=0x5.5.5.5 -phy set pre-emphasis unit=0 portlist=44 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=44 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=44 lane-num=4 property=c0 data=0x1b.1b.1b.1b -phy set pre-emphasis unit=0 portlist=44 lane-num=4 property=c1 data=0x5.5.5.5 -phy set pre-emphasis unit=0 portlist=45 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=45 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=45 lane-num=4 property=c0 data=0x1b.1b.1b.1b -phy set pre-emphasis unit=0 portlist=45 lane-num=4 property=c1 data=0x5.5.5.5 -phy set pre-emphasis unit=0 portlist=46 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=46 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=46 lane-num=4 property=c0 data=0x1c.1c.1c.1c -phy set pre-emphasis unit=0 portlist=46 lane-num=4 property=c1 data=0x4.4.4.4 -phy set pre-emphasis unit=0 portlist=47 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=47 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=47 lane-num=4 property=c0 data=0x1c.1c.1c.1c -phy set pre-emphasis unit=0 portlist=47 lane-num=4 property=c1 data=0x4.4.4.4 -phy set pre-emphasis unit=0 portlist=48 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=48 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=48 lane-num=4 property=c0 data=0x1c.1c.1c.1c -phy set pre-emphasis unit=0 portlist=48 lane-num=4 property=c1 data=0x4.4.4.4 -phy set pre-emphasis unit=0 portlist=49 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=49 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=49 lane-num=4 property=c0 data=0x1c.1c.1c.1c -phy set pre-emphasis unit=0 portlist=49 lane-num=4 property=c1 data=0x4.4.4.4 -phy set pre-emphasis unit=0 portlist=50 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=50 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=50 lane-num=4 property=c0 data=0x1c.1c.1c.1c -phy set pre-emphasis unit=0 portlist=50 lane-num=4 property=c1 data=0x4.4.4.4 -phy set pre-emphasis unit=0 portlist=51 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=51 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=51 lane-num=4 property=c0 data=0x1c.1c.1c.1c -phy set pre-emphasis unit=0 portlist=51 lane-num=4 property=c1 data=0x4.4.4.4 -phy set pre-emphasis unit=0 portlist=52 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=52 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=52 lane-num=4 property=c0 data=0x1b.1b.1b.1b -phy set pre-emphasis unit=0 portlist=52 lane-num=4 property=c1 data=0x5.5.5.5 -phy set pre-emphasis unit=0 portlist=53 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=53 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=53 lane-num=4 property=c0 data=0x1b.1b.1b.1b -phy set pre-emphasis unit=0 portlist=53 lane-num=4 property=c1 data=0x5.5.5.5 -phy set pre-emphasis unit=0 portlist=54 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=54 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=54 lane-num=4 property=c0 data=0x1c.1c.1c.1c -phy set pre-emphasis unit=0 portlist=54 lane-num=4 property=c1 data=0x4.4.4.4 -phy set pre-emphasis unit=0 portlist=55 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=55 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=55 lane-num=4 property=c0 data=0x1c.1c.1c.1c -phy set pre-emphasis unit=0 portlist=55 lane-num=4 property=c1 data=0x4.4.4.4 -phy set pre-emphasis unit=0 portlist=56 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=56 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=56 lane-num=4 property=c0 data=0x1b.1b.1b.1b -phy set pre-emphasis unit=0 portlist=56 lane-num=4 property=c1 data=0x5.5.5.5 -phy set pre-emphasis unit=0 portlist=57 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=57 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=57 lane-num=4 property=c0 data=0x1b.1b.1b.1b -phy set pre-emphasis unit=0 portlist=57 lane-num=4 property=c1 data=0x5.5.5.5 -phy set pre-emphasis unit=0 portlist=58 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=58 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=58 lane-num=4 property=c0 data=0x1a.1a.1a.1a -phy set pre-emphasis unit=0 portlist=58 lane-num=4 property=c1 data=0x6.6.6.6 -phy set pre-emphasis unit=0 portlist=59 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=59 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=59 lane-num=4 property=c0 data=0x1a.1a.1a.1a -phy set pre-emphasis unit=0 portlist=59 lane-num=4 property=c1 data=0x6.6.6.6 -phy set pre-emphasis unit=0 portlist=60 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=60 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=60 lane-num=4 property=c0 data=0x19.19.19.19 -phy set pre-emphasis unit=0 portlist=60 lane-num=4 property=c1 data=0x7.7.7.7 -phy set pre-emphasis unit=0 portlist=61 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=61 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=61 lane-num=4 property=c0 data=0x19.19.19.19 -phy set pre-emphasis unit=0 portlist=61 lane-num=4 property=c1 data=0x7.7.7.7 -phy set pre-emphasis unit=0 portlist=62 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=62 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=62 lane-num=4 property=c0 data=0x1a.1a.1a.1a -phy set pre-emphasis unit=0 portlist=62 lane-num=4 property=c1 data=0x6.6.6.6 -phy set pre-emphasis unit=0 portlist=63 lane-num=4 property=c2 data=0x1.1.1.1 -phy set pre-emphasis unit=0 portlist=63 lane-num=4 property=cn1 data=0x3.3.3.3 -phy set pre-emphasis unit=0 portlist=63 lane-num=4 property=c0 data=0x1a.1a.1a.1a -phy set pre-emphasis unit=0 portlist=63 lane-num=4 property=c1 data=0x6.6.6.6 -phy set pre-emphasis unit=0 portlist=129 lane-num=1 property=c2 data=0x1 -phy set pre-emphasis unit=0 portlist=129 lane-num=1 property=cn1 data=0x1 -phy set pre-emphasis unit=0 portlist=129 lane-num=1 property=c0 data=0x2 -phy set pre-emphasis unit=0 portlist=129 lane-num=1 property=c1 data=0x3 -phy set pre-emphasis unit=0 portlist=130 lane-num=1 property=c2 data=0x1 -phy set pre-emphasis unit=0 portlist=130 lane-num=1 property=cn1 data=0x1 -phy set pre-emphasis unit=0 portlist=130 lane-num=1 property=c0 data=0x2 -phy set pre-emphasis unit=0 portlist=130 lane-num=1 property=c1 data=0x3 -port set unit=0 portlist=0 speed=100g -port set unit=0 portlist=1 speed=100g -port set unit=0 portlist=2 speed=100g -port set unit=0 portlist=3 speed=100g -port set unit=0 portlist=4 speed=100g -port set unit=0 portlist=5 speed=100g -port set unit=0 portlist=6 speed=100g -port set unit=0 portlist=7 speed=100g -port set unit=0 portlist=8 speed=100g -port set unit=0 portlist=9 speed=100g -port set unit=0 portlist=10 speed=100g -port set unit=0 portlist=11 speed=100g -port set unit=0 portlist=12 speed=100g -port set unit=0 portlist=13 speed=100g -port set unit=0 portlist=14 speed=100g -port set unit=0 portlist=15 speed=100g -port set unit=0 portlist=16 speed=100g -port set unit=0 portlist=17 speed=100g -port set unit=0 portlist=18 speed=100g -port set unit=0 portlist=19 speed=100g -port set unit=0 portlist=20 speed=100g -port set unit=0 portlist=21 speed=100g -port set unit=0 portlist=22 speed=100g -port set unit=0 portlist=23 speed=100g -port set unit=0 portlist=24 speed=100g -port set unit=0 portlist=25 speed=100g -port set unit=0 portlist=26 speed=100g -port set unit=0 portlist=27 speed=100g -port set unit=0 portlist=28 speed=100g -port set unit=0 portlist=29 speed=100g -port set unit=0 portlist=30 speed=100g -port set unit=0 portlist=31 speed=100g -port set unit=0 portlist=32 speed=100g -port set unit=0 portlist=33 speed=100g -port set unit=0 portlist=34 speed=100g -port set unit=0 portlist=35 speed=100g -port set unit=0 portlist=36 speed=100g -port set unit=0 portlist=37 speed=100g -port set unit=0 portlist=38 speed=100g -port set unit=0 portlist=39 speed=100g -port set unit=0 portlist=40 speed=100g -port set unit=0 portlist=41 speed=100g -port set unit=0 portlist=42 speed=100g -port set unit=0 portlist=43 speed=100g -port set unit=0 portlist=44 speed=100g -port set unit=0 portlist=45 speed=100g -port set unit=0 portlist=46 speed=100g -port set unit=0 portlist=47 speed=100g -port set unit=0 portlist=48 speed=100g -port set unit=0 portlist=49 speed=100g -port set unit=0 portlist=50 speed=100g -port set unit=0 portlist=51 speed=100g -port set unit=0 portlist=52 speed=100g -port set unit=0 portlist=53 speed=100g -port set unit=0 portlist=54 speed=100g -port set unit=0 portlist=55 speed=100g -port set unit=0 portlist=56 speed=100g -port set unit=0 portlist=57 speed=100g -port set unit=0 portlist=58 speed=100g -port set unit=0 portlist=59 speed=100g -port set unit=0 portlist=60 speed=100g -port set unit=0 portlist=61 speed=100g -port set unit=0 portlist=62 speed=100g -port set unit=0 portlist=63 speed=100g -port set unit=0 portlist=129 speed=10g -port set unit=0 portlist=130 speed=10g -port set unit=0 portlist=0 medium-type=sr4 -port set unit=0 portlist=1 medium-type=sr4 -port set unit=0 portlist=2 medium-type=sr4 -port set unit=0 portlist=3 medium-type=sr4 -port set unit=0 portlist=4 medium-type=sr4 -port set unit=0 portlist=5 medium-type=sr4 -port set unit=0 portlist=6 medium-type=sr4 -port set unit=0 portlist=7 medium-type=sr4 -port set unit=0 portlist=8 medium-type=sr4 -port set unit=0 portlist=9 medium-type=sr4 -port set unit=0 portlist=10 medium-type=sr4 -port set unit=0 portlist=11 medium-type=sr4 -port set unit=0 portlist=12 medium-type=sr4 -port set unit=0 portlist=13 medium-type=sr4 -port set unit=0 portlist=14 medium-type=sr4 -port set unit=0 portlist=15 medium-type=sr4 -port set unit=0 portlist=16 medium-type=sr4 -port set unit=0 portlist=17 medium-type=sr4 -port set unit=0 portlist=18 medium-type=sr4 -port set unit=0 portlist=19 medium-type=sr4 -port set unit=0 portlist=20 medium-type=sr4 -port set unit=0 portlist=21 medium-type=sr4 -port set unit=0 portlist=22 medium-type=sr4 -port set unit=0 portlist=23 medium-type=sr4 -port set unit=0 portlist=24 medium-type=sr4 -port set unit=0 portlist=25 medium-type=sr4 -port set unit=0 portlist=26 medium-type=sr4 -port set unit=0 portlist=27 medium-type=sr4 -port set unit=0 portlist=28 medium-type=sr4 -port set unit=0 portlist=29 medium-type=sr4 -port set unit=0 portlist=30 medium-type=sr4 -port set unit=0 portlist=31 medium-type=sr4 -port set unit=0 portlist=32 medium-type=sr4 -port set unit=0 portlist=33 medium-type=sr4 -port set unit=0 portlist=34 medium-type=sr4 -port set unit=0 portlist=35 medium-type=sr4 -port set unit=0 portlist=36 medium-type=sr4 -port set unit=0 portlist=37 medium-type=sr4 -port set unit=0 portlist=38 medium-type=sr4 -port set unit=0 portlist=39 medium-type=sr4 -port set unit=0 portlist=40 medium-type=sr4 -port set unit=0 portlist=41 medium-type=sr4 -port set unit=0 portlist=42 medium-type=sr4 -port set unit=0 portlist=43 medium-type=sr4 -port set unit=0 portlist=44 medium-type=sr4 -port set unit=0 portlist=45 medium-type=sr4 -port set unit=0 portlist=46 medium-type=sr4 -port set unit=0 portlist=47 medium-type=sr4 -port set unit=0 portlist=48 medium-type=sr4 -port set unit=0 portlist=49 medium-type=sr4 -port set unit=0 portlist=50 medium-type=sr4 -port set unit=0 portlist=51 medium-type=sr4 -port set unit=0 portlist=52 medium-type=sr4 -port set unit=0 portlist=53 medium-type=sr4 -port set unit=0 portlist=54 medium-type=sr4 -port set unit=0 portlist=55 medium-type=sr4 -port set unit=0 portlist=56 medium-type=sr4 -port set unit=0 portlist=57 medium-type=sr4 -port set unit=0 portlist=58 medium-type=sr4 -port set unit=0 portlist=59 medium-type=sr4 -port set unit=0 portlist=60 medium-type=sr4 -port set unit=0 portlist=61 medium-type=sr4 -port set unit=0 portlist=62 medium-type=sr4 -port set unit=0 portlist=63 medium-type=sr4 -port set unit=0 portlist=129 medium-type=kr -port set unit=0 portlist=130 medium-type=kr -port set unit=0 portlist=0 fec=disable -port set unit=0 portlist=1 fec=disable -port set unit=0 portlist=2 fec=disable -port set unit=0 portlist=3 fec=disable -port set unit=0 portlist=4 fec=disable -port set unit=0 portlist=5 fec=disable -port set unit=0 portlist=6 fec=disable -port set unit=0 portlist=7 fec=disable -port set unit=0 portlist=8 fec=disable -port set unit=0 portlist=9 fec=disable -port set unit=0 portlist=10 fec=disable -port set unit=0 portlist=11 fec=disable -port set unit=0 portlist=12 fec=disable -port set unit=0 portlist=13 fec=disable -port set unit=0 portlist=14 fec=disable -port set unit=0 portlist=15 fec=disable -port set unit=0 portlist=16 fec=disable -port set unit=0 portlist=17 fec=disable -port set unit=0 portlist=18 fec=disable -port set unit=0 portlist=19 fec=disable -port set unit=0 portlist=20 fec=disable -port set unit=0 portlist=21 fec=disable -port set unit=0 portlist=22 fec=disable -port set unit=0 portlist=23 fec=disable -port set unit=0 portlist=24 fec=disable -port set unit=0 portlist=25 fec=disable -port set unit=0 portlist=26 fec=disable -port set unit=0 portlist=27 fec=disable -port set unit=0 portlist=28 fec=disable -port set unit=0 portlist=29 fec=disable -port set unit=0 portlist=30 fec=disable -port set unit=0 portlist=31 fec=disable -port set unit=0 portlist=32 fec=disable -port set unit=0 portlist=33 fec=disable -port set unit=0 portlist=34 fec=disable -port set unit=0 portlist=35 fec=disable -port set unit=0 portlist=36 fec=disable -port set unit=0 portlist=37 fec=disable -port set unit=0 portlist=38 fec=disable -port set unit=0 portlist=39 fec=disable -port set unit=0 portlist=40 fec=disable -port set unit=0 portlist=41 fec=disable -port set unit=0 portlist=42 fec=disable -port set unit=0 portlist=43 fec=disable -port set unit=0 portlist=44 fec=disable -port set unit=0 portlist=45 fec=disable -port set unit=0 portlist=46 fec=disable -port set unit=0 portlist=47 fec=disable -port set unit=0 portlist=48 fec=disable -port set unit=0 portlist=49 fec=disable -port set unit=0 portlist=50 fec=disable -port set unit=0 portlist=51 fec=disable -port set unit=0 portlist=52 fec=disable -port set unit=0 portlist=53 fec=disable -port set unit=0 portlist=54 fec=disable -port set unit=0 portlist=55 fec=disable -port set unit=0 portlist=56 fec=disable -port set unit=0 portlist=57 fec=disable -port set unit=0 portlist=58 fec=disable -port set unit=0 portlist=59 fec=disable -port set unit=0 portlist=60 fec=disable -port set unit=0 portlist=61 fec=disable -port set unit=0 portlist=62 fec=disable -port set unit=0 portlist=63 fec=disable -port advertise unit=0 portlist=129 speed-10g-kr -port advertise unit=0 portlist=130 speed-10g-kr -port set unit=0 portlist=129 an=enable -port set unit=0 portlist=130 an=enable -port set unit=0 portlist=0 admin=enable -port set unit=0 portlist=1 admin=enable -port set unit=0 portlist=2 admin=enable -port set unit=0 portlist=3 admin=enable -port set unit=0 portlist=4 admin=enable -port set unit=0 portlist=5 admin=enable -port set unit=0 portlist=6 admin=enable -port set unit=0 portlist=7 admin=enable -port set unit=0 portlist=8 admin=enable -port set unit=0 portlist=9 admin=enable -port set unit=0 portlist=10 admin=enable -port set unit=0 portlist=11 admin=enable -port set unit=0 portlist=12 admin=enable -port set unit=0 portlist=13 admin=enable -port set unit=0 portlist=14 admin=enable -port set unit=0 portlist=15 admin=enable -port set unit=0 portlist=16 admin=enable -port set unit=0 portlist=17 admin=enable -port set unit=0 portlist=18 admin=enable -port set unit=0 portlist=19 admin=enable -port set unit=0 portlist=20 admin=enable -port set unit=0 portlist=21 admin=enable -port set unit=0 portlist=22 admin=enable -port set unit=0 portlist=23 admin=enable -port set unit=0 portlist=24 admin=enable -port set unit=0 portlist=25 admin=enable -port set unit=0 portlist=26 admin=enable -port set unit=0 portlist=27 admin=enable -port set unit=0 portlist=28 admin=enable -port set unit=0 portlist=29 admin=enable -port set unit=0 portlist=30 admin=enable -port set unit=0 portlist=31 admin=enable -port set unit=0 portlist=32 admin=enable -port set unit=0 portlist=33 admin=enable -port set unit=0 portlist=34 admin=enable -port set unit=0 portlist=35 admin=enable -port set unit=0 portlist=36 admin=enable -port set unit=0 portlist=37 admin=enable -port set unit=0 portlist=38 admin=enable -port set unit=0 portlist=39 admin=enable -port set unit=0 portlist=40 admin=enable -port set unit=0 portlist=41 admin=enable -port set unit=0 portlist=42 admin=enable -port set unit=0 portlist=43 admin=enable -port set unit=0 portlist=44 admin=enable -port set unit=0 portlist=45 admin=enable -port set unit=0 portlist=46 admin=enable -port set unit=0 portlist=47 admin=enable -port set unit=0 portlist=48 admin=enable -port set unit=0 portlist=49 admin=enable -port set unit=0 portlist=50 admin=enable -port set unit=0 portlist=51 admin=enable -port set unit=0 portlist=52 admin=enable -port set unit=0 portlist=53 admin=enable -port set unit=0 portlist=54 admin=enable -port set unit=0 portlist=55 admin=enable -port set unit=0 portlist=56 admin=enable -port set unit=0 portlist=57 admin=enable -port set unit=0 portlist=58 admin=enable -port set unit=0 portlist=59 admin=enable -port set unit=0 portlist=60 admin=enable -port set unit=0 portlist=61 admin=enable -port set unit=0 portlist=62 admin=enable -port set unit=0 portlist=63 admin=enable -port set unit=0 portlist=129 admin=enable -port set unit=0 portlist=130 admin=enable +phy set lane-swap unit=0 portlist=0 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=1 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=2 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=3 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=4 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=5 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=6 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=7 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=8 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=9 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=10 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=11 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=12 lane-cnt=4 property=tx data=0x3.2.1.0 +phy set lane-swap unit=0 portlist=13 lane-cnt=4 property=tx data=0x3.2.1.0 +phy set lane-swap unit=0 portlist=14 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=15 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=16 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=17 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=18 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=19 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=20 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=21 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=22 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=23 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=24 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=25 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=26 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=27 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=28 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=29 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=30 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=31 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=32 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=33 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=34 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=35 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=36 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=37 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=38 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=39 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=40 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=41 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=42 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=43 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=44 lane-cnt=4 property=tx data=0x3.2.1.0 +phy set lane-swap unit=0 portlist=45 lane-cnt=4 property=tx data=0x3.2.1.0 +phy set lane-swap unit=0 portlist=46 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=47 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=48 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=49 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=50 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=51 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=52 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=53 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=54 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=55 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=56 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=57 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=58 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=59 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=60 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=61 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=62 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=63 lane-cnt=4 property=tx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=129 lane-cnt=1 property=tx data=0x1 +phy set lane-swap unit=0 portlist=130 lane-cnt=1 property=tx data=0x0 +phy set lane-swap unit=0 portlist=0 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=1 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=2 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=3 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=4 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=5 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=6 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=7 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=8 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=9 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=10 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=11 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=12 lane-cnt=4 property=rx data=0x3.2.1.0 +phy set lane-swap unit=0 portlist=13 lane-cnt=4 property=rx data=0x3.2.1.0 +phy set lane-swap unit=0 portlist=14 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=15 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=16 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=17 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=18 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=19 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=20 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=21 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=22 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=23 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=24 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=25 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=26 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=27 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=28 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=29 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=30 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=31 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=32 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=33 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=34 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=35 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=36 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=37 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=38 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=39 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=40 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=41 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=42 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=43 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=44 lane-cnt=4 property=rx data=0x3.2.1.0 +phy set lane-swap unit=0 portlist=45 lane-cnt=4 property=rx data=0x3.2.1.0 +phy set lane-swap unit=0 portlist=46 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=47 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=48 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=49 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=50 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=51 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=52 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=53 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=54 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=55 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=56 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=57 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=58 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=59 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=60 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=61 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=62 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=63 lane-cnt=4 property=rx data=0x0.1.2.3 +phy set lane-swap unit=0 portlist=129 lane-cnt=1 property=rx data=0x1 +phy set lane-swap unit=0 portlist=130 lane-cnt=1 property=rx data=0x0 +phy set polarity-rev unit=0 portlist=0 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=1 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=2 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=3 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=4 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=5 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=6 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=7 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=8 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=9 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=10 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=11 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=12 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=13 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=14 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=15 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=16 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=17 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=18 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=19 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=20 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=21 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=22 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=23 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=24 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=25 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=26 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=27 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=28 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=29 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=30 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=31 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=32 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=33 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=34 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=35 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=36 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=37 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=38 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=39 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=40 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=41 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=42 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=43 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=44 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=45 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=46 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=47 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=48 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=49 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=50 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=51 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=52 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=53 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=54 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=55 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=56 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=57 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=58 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=59 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=60 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=61 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=62 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=63 lane-cnt=4 property=tx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=129 lane-cnt=1 property=tx data=0x0 +phy set polarity-rev unit=0 portlist=130 lane-cnt=1 property=tx data=0x0 +phy set polarity-rev unit=0 portlist=0 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=1 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=2 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=3 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=4 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=5 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=6 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=7 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=8 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=9 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=10 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=11 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=12 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=13 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=14 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=15 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=16 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=17 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=18 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=19 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=20 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=21 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=22 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=23 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=24 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=25 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=26 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=27 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=28 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=29 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=30 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=31 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=32 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=33 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=34 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=35 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=36 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=37 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=38 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=39 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=40 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=41 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=42 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=43 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=44 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=45 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=46 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=47 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=48 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=49 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=50 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=51 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=52 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=53 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=54 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=55 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=56 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=57 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=58 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=59 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=60 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=61 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=62 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=63 lane-cnt=4 property=rx data=0x0.0.0.0 +phy set polarity-rev unit=0 portlist=129 lane-cnt=1 property=rx data=0x0 +phy set polarity-rev unit=0 portlist=130 lane-cnt=1 property=rx data=0x0 +phy set pre-emphasis unit=0 portlist=0 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=0 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=0 lane-cnt=4 property=c0 data=0x1a.1a.1a.1a +phy set pre-emphasis unit=0 portlist=0 lane-cnt=4 property=c1 data=0x6.6.6.6 +phy set pre-emphasis unit=0 portlist=1 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=1 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=1 lane-cnt=4 property=c0 data=0x1a.1a.1a.1a +phy set pre-emphasis unit=0 portlist=1 lane-cnt=4 property=c1 data=0x6.6.6.6 +phy set pre-emphasis unit=0 portlist=2 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=2 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=2 lane-cnt=4 property=c0 data=0x19.19.19.19 +phy set pre-emphasis unit=0 portlist=2 lane-cnt=4 property=c1 data=0x7.7.7.7 +phy set pre-emphasis unit=0 portlist=3 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=3 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=3 lane-cnt=4 property=c0 data=0x19.19.19.19 +phy set pre-emphasis unit=0 portlist=3 lane-cnt=4 property=c1 data=0x7.7.7.7 +phy set pre-emphasis unit=0 portlist=4 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=4 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=4 lane-cnt=4 property=c0 data=0x1a.1a.1a.1a +phy set pre-emphasis unit=0 portlist=4 lane-cnt=4 property=c1 data=0x6.6.6.6 +phy set pre-emphasis unit=0 portlist=5 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=5 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=5 lane-cnt=4 property=c0 data=0x1a.1a.1a.1a +phy set pre-emphasis unit=0 portlist=5 lane-cnt=4 property=c1 data=0x6.6.6.6 +phy set pre-emphasis unit=0 portlist=6 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=6 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=6 lane-cnt=4 property=c0 data=0x1b.1b.1b.1b +phy set pre-emphasis unit=0 portlist=6 lane-cnt=4 property=c1 data=0x5.5.5.5 +phy set pre-emphasis unit=0 portlist=7 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=7 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=7 lane-cnt=4 property=c0 data=0x1b.1b.1b.1b +phy set pre-emphasis unit=0 portlist=7 lane-cnt=4 property=c1 data=0x5.5.5.5 +phy set pre-emphasis unit=0 portlist=8 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=8 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=8 lane-cnt=4 property=c0 data=0x1b.1b.1b.1b +phy set pre-emphasis unit=0 portlist=8 lane-cnt=4 property=c1 data=0x5.5.5.5 +phy set pre-emphasis unit=0 portlist=9 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=9 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=9 lane-cnt=4 property=c0 data=0x1b.1b.1b.1b +phy set pre-emphasis unit=0 portlist=9 lane-cnt=4 property=c1 data=0x5.5.5.5 +phy set pre-emphasis unit=0 portlist=10 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=10 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=10 lane-cnt=4 property=c0 data=0x1b.1b.1b.1b +phy set pre-emphasis unit=0 portlist=10 lane-cnt=4 property=c1 data=0x5.5.5.5 +phy set pre-emphasis unit=0 portlist=11 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=11 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=11 lane-cnt=4 property=c0 data=0x1b.1b.1b.1b +phy set pre-emphasis unit=0 portlist=11 lane-cnt=4 property=c1 data=0x5.5.5.5 +phy set pre-emphasis unit=0 portlist=12 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=12 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=12 lane-cnt=4 property=c0 data=0x1b.1b.1b.1b +phy set pre-emphasis unit=0 portlist=12 lane-cnt=4 property=c1 data=0x5.5.5.5 +phy set pre-emphasis unit=0 portlist=13 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=13 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=13 lane-cnt=4 property=c0 data=0x1b.1b.1b.1b +phy set pre-emphasis unit=0 portlist=13 lane-cnt=4 property=c1 data=0x5.5.5.5 +phy set pre-emphasis unit=0 portlist=14 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=14 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=14 lane-cnt=4 property=c0 data=0x1c.1c.1c.1c +phy set pre-emphasis unit=0 portlist=14 lane-cnt=4 property=c1 data=0x4.4.4.4 +phy set pre-emphasis unit=0 portlist=15 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=15 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=15 lane-cnt=4 property=c0 data=0x1c.1c.1c.1c +phy set pre-emphasis unit=0 portlist=15 lane-cnt=4 property=c1 data=0x4.4.4.4 +phy set pre-emphasis unit=0 portlist=16 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=16 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=16 lane-cnt=4 property=c0 data=0x1c.1c.1c.1c +phy set pre-emphasis unit=0 portlist=16 lane-cnt=4 property=c1 data=0x4.4.4.4 +phy set pre-emphasis unit=0 portlist=17 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=17 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=17 lane-cnt=4 property=c0 data=0x1c.1c.1c.1c +phy set pre-emphasis unit=0 portlist=17 lane-cnt=4 property=c1 data=0x4.4.4.4 +phy set pre-emphasis unit=0 portlist=18 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=18 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=18 lane-cnt=4 property=c0 data=0x1c.1c.1c.1c +phy set pre-emphasis unit=0 portlist=18 lane-cnt=4 property=c1 data=0x4.4.4.4 +phy set pre-emphasis unit=0 portlist=19 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=19 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=19 lane-cnt=4 property=c0 data=0x1c.1c.1c.1c +phy set pre-emphasis unit=0 portlist=19 lane-cnt=4 property=c1 data=0x4.4.4.4 +phy set pre-emphasis unit=0 portlist=20 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=20 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=20 lane-cnt=4 property=c0 data=0x1b.1b.1b.1b +phy set pre-emphasis unit=0 portlist=20 lane-cnt=4 property=c1 data=0x5.5.5.5 +phy set pre-emphasis unit=0 portlist=21 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=21 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=21 lane-cnt=4 property=c0 data=0x1b.1b.1b.1b +phy set pre-emphasis unit=0 portlist=21 lane-cnt=4 property=c1 data=0x5.5.5.5 +phy set pre-emphasis unit=0 portlist=22 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=22 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=22 lane-cnt=4 property=c0 data=0x1c.1c.1c.1c +phy set pre-emphasis unit=0 portlist=22 lane-cnt=4 property=c1 data=0x4.4.4.4 +phy set pre-emphasis unit=0 portlist=23 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=23 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=23 lane-cnt=4 property=c0 data=0x1c.1c.1c.1c +phy set pre-emphasis unit=0 portlist=23 lane-cnt=4 property=c1 data=0x4.4.4.4 +phy set pre-emphasis unit=0 portlist=24 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=24 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=24 lane-cnt=4 property=c0 data=0x1b.1b.1b.1b +phy set pre-emphasis unit=0 portlist=24 lane-cnt=4 property=c1 data=0x5.5.5.5 +phy set pre-emphasis unit=0 portlist=25 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=25 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=25 lane-cnt=4 property=c0 data=0x1b.1b.1b.1b +phy set pre-emphasis unit=0 portlist=25 lane-cnt=4 property=c1 data=0x5.5.5.5 +phy set pre-emphasis unit=0 portlist=26 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=26 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=26 lane-cnt=4 property=c0 data=0x1a.1a.1a.1a +phy set pre-emphasis unit=0 portlist=26 lane-cnt=4 property=c1 data=0x6.6.6.6 +phy set pre-emphasis unit=0 portlist=27 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=27 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=27 lane-cnt=4 property=c0 data=0x1a.1a.1a.1a +phy set pre-emphasis unit=0 portlist=27 lane-cnt=4 property=c1 data=0x6.6.6.6 +phy set pre-emphasis unit=0 portlist=28 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=28 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=28 lane-cnt=4 property=c0 data=0x19.19.19.19 +phy set pre-emphasis unit=0 portlist=28 lane-cnt=4 property=c1 data=0x7.7.7.7 +phy set pre-emphasis unit=0 portlist=29 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=29 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=29 lane-cnt=4 property=c0 data=0x19.19.19.19 +phy set pre-emphasis unit=0 portlist=29 lane-cnt=4 property=c1 data=0x7.7.7.7 +phy set pre-emphasis unit=0 portlist=30 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=30 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=30 lane-cnt=4 property=c0 data=0x1a.1a.1a.1a +phy set pre-emphasis unit=0 portlist=30 lane-cnt=4 property=c1 data=0x6.6.6.6 +phy set pre-emphasis unit=0 portlist=31 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=31 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=31 lane-cnt=4 property=c0 data=0x1a.1a.1a.1a +phy set pre-emphasis unit=0 portlist=31 lane-cnt=4 property=c1 data=0x6.6.6.6 +phy set pre-emphasis unit=0 portlist=32 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=32 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=32 lane-cnt=4 property=c0 data=0x1a.1a.1a.1a +phy set pre-emphasis unit=0 portlist=32 lane-cnt=4 property=c1 data=0x6.6.6.6 +phy set pre-emphasis unit=0 portlist=33 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=33 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=33 lane-cnt=4 property=c0 data=0x1a.1a.1a.1a +phy set pre-emphasis unit=0 portlist=33 lane-cnt=4 property=c1 data=0x6.6.6.6 +phy set pre-emphasis unit=0 portlist=34 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=34 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=34 lane-cnt=4 property=c0 data=0x19.19.19.19 +phy set pre-emphasis unit=0 portlist=34 lane-cnt=4 property=c1 data=0x7.7.7.7 +phy set pre-emphasis unit=0 portlist=35 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=35 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=35 lane-cnt=4 property=c0 data=0x19.19.19.19 +phy set pre-emphasis unit=0 portlist=35 lane-cnt=4 property=c1 data=0x7.7.7.7 +phy set pre-emphasis unit=0 portlist=36 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=36 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=36 lane-cnt=4 property=c0 data=0x1a.1a.1a.1a +phy set pre-emphasis unit=0 portlist=36 lane-cnt=4 property=c1 data=0x6.6.6.6 +phy set pre-emphasis unit=0 portlist=37 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=37 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=37 lane-cnt=4 property=c0 data=0x1a.1a.1a.1a +phy set pre-emphasis unit=0 portlist=37 lane-cnt=4 property=c1 data=0x6.6.6.6 +phy set pre-emphasis unit=0 portlist=38 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=38 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=38 lane-cnt=4 property=c0 data=0x1b.1b.1b.1b +phy set pre-emphasis unit=0 portlist=38 lane-cnt=4 property=c1 data=0x5.5.5.5 +phy set pre-emphasis unit=0 portlist=39 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=39 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=39 lane-cnt=4 property=c0 data=0x1b.1b.1b.1b +phy set pre-emphasis unit=0 portlist=39 lane-cnt=4 property=c1 data=0x5.5.5.5 +phy set pre-emphasis unit=0 portlist=40 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=40 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=40 lane-cnt=4 property=c0 data=0x1b.1b.1b.1b +phy set pre-emphasis unit=0 portlist=40 lane-cnt=4 property=c1 data=0x5.5.5.5 +phy set pre-emphasis unit=0 portlist=41 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=41 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=41 lane-cnt=4 property=c0 data=0x1b.1b.1b.1b +phy set pre-emphasis unit=0 portlist=41 lane-cnt=4 property=c1 data=0x5.5.5.5 +phy set pre-emphasis unit=0 portlist=42 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=42 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=42 lane-cnt=4 property=c0 data=0x1b.1b.1b.1b +phy set pre-emphasis unit=0 portlist=42 lane-cnt=4 property=c1 data=0x5.5.5.5 +phy set pre-emphasis unit=0 portlist=43 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=43 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=43 lane-cnt=4 property=c0 data=0x1b.1b.1b.1b +phy set pre-emphasis unit=0 portlist=43 lane-cnt=4 property=c1 data=0x5.5.5.5 +phy set pre-emphasis unit=0 portlist=44 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=44 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=44 lane-cnt=4 property=c0 data=0x1b.1b.1b.1b +phy set pre-emphasis unit=0 portlist=44 lane-cnt=4 property=c1 data=0x5.5.5.5 +phy set pre-emphasis unit=0 portlist=45 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=45 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=45 lane-cnt=4 property=c0 data=0x1b.1b.1b.1b +phy set pre-emphasis unit=0 portlist=45 lane-cnt=4 property=c1 data=0x5.5.5.5 +phy set pre-emphasis unit=0 portlist=46 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=46 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=46 lane-cnt=4 property=c0 data=0x1c.1c.1c.1c +phy set pre-emphasis unit=0 portlist=46 lane-cnt=4 property=c1 data=0x4.4.4.4 +phy set pre-emphasis unit=0 portlist=47 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=47 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=47 lane-cnt=4 property=c0 data=0x1c.1c.1c.1c +phy set pre-emphasis unit=0 portlist=47 lane-cnt=4 property=c1 data=0x4.4.4.4 +phy set pre-emphasis unit=0 portlist=48 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=48 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=48 lane-cnt=4 property=c0 data=0x1c.1c.1c.1c +phy set pre-emphasis unit=0 portlist=48 lane-cnt=4 property=c1 data=0x4.4.4.4 +phy set pre-emphasis unit=0 portlist=49 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=49 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=49 lane-cnt=4 property=c0 data=0x1c.1c.1c.1c +phy set pre-emphasis unit=0 portlist=49 lane-cnt=4 property=c1 data=0x4.4.4.4 +phy set pre-emphasis unit=0 portlist=50 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=50 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=50 lane-cnt=4 property=c0 data=0x1c.1c.1c.1c +phy set pre-emphasis unit=0 portlist=50 lane-cnt=4 property=c1 data=0x4.4.4.4 +phy set pre-emphasis unit=0 portlist=51 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=51 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=51 lane-cnt=4 property=c0 data=0x1c.1c.1c.1c +phy set pre-emphasis unit=0 portlist=51 lane-cnt=4 property=c1 data=0x4.4.4.4 +phy set pre-emphasis unit=0 portlist=52 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=52 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=52 lane-cnt=4 property=c0 data=0x1b.1b.1b.1b +phy set pre-emphasis unit=0 portlist=52 lane-cnt=4 property=c1 data=0x5.5.5.5 +phy set pre-emphasis unit=0 portlist=53 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=53 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=53 lane-cnt=4 property=c0 data=0x1b.1b.1b.1b +phy set pre-emphasis unit=0 portlist=53 lane-cnt=4 property=c1 data=0x5.5.5.5 +phy set pre-emphasis unit=0 portlist=54 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=54 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=54 lane-cnt=4 property=c0 data=0x1c.1c.1c.1c +phy set pre-emphasis unit=0 portlist=54 lane-cnt=4 property=c1 data=0x4.4.4.4 +phy set pre-emphasis unit=0 portlist=55 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=55 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=55 lane-cnt=4 property=c0 data=0x1c.1c.1c.1c +phy set pre-emphasis unit=0 portlist=55 lane-cnt=4 property=c1 data=0x4.4.4.4 +phy set pre-emphasis unit=0 portlist=56 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=56 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=56 lane-cnt=4 property=c0 data=0x1b.1b.1b.1b +phy set pre-emphasis unit=0 portlist=56 lane-cnt=4 property=c1 data=0x5.5.5.5 +phy set pre-emphasis unit=0 portlist=57 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=57 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=57 lane-cnt=4 property=c0 data=0x1b.1b.1b.1b +phy set pre-emphasis unit=0 portlist=57 lane-cnt=4 property=c1 data=0x5.5.5.5 +phy set pre-emphasis unit=0 portlist=58 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=58 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=58 lane-cnt=4 property=c0 data=0x1a.1a.1a.1a +phy set pre-emphasis unit=0 portlist=58 lane-cnt=4 property=c1 data=0x6.6.6.6 +phy set pre-emphasis unit=0 portlist=59 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=59 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=59 lane-cnt=4 property=c0 data=0x1a.1a.1a.1a +phy set pre-emphasis unit=0 portlist=59 lane-cnt=4 property=c1 data=0x6.6.6.6 +phy set pre-emphasis unit=0 portlist=60 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=60 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=60 lane-cnt=4 property=c0 data=0x19.19.19.19 +phy set pre-emphasis unit=0 portlist=60 lane-cnt=4 property=c1 data=0x7.7.7.7 +phy set pre-emphasis unit=0 portlist=61 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=61 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=61 lane-cnt=4 property=c0 data=0x19.19.19.19 +phy set pre-emphasis unit=0 portlist=61 lane-cnt=4 property=c1 data=0x7.7.7.7 +phy set pre-emphasis unit=0 portlist=62 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=62 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=62 lane-cnt=4 property=c0 data=0x1a.1a.1a.1a +phy set pre-emphasis unit=0 portlist=62 lane-cnt=4 property=c1 data=0x6.6.6.6 +phy set pre-emphasis unit=0 portlist=63 lane-cnt=4 property=c2 data=0x1.1.1.1 +phy set pre-emphasis unit=0 portlist=63 lane-cnt=4 property=cn1 data=0x3.3.3.3 +phy set pre-emphasis unit=0 portlist=63 lane-cnt=4 property=c0 data=0x1a.1a.1a.1a +phy set pre-emphasis unit=0 portlist=63 lane-cnt=4 property=c1 data=0x6.6.6.6 +phy set pre-emphasis unit=0 portlist=129 lane-cnt=1 property=c2 data=0x1 +phy set pre-emphasis unit=0 portlist=129 lane-cnt=1 property=cn1 data=0x1 +phy set pre-emphasis unit=0 portlist=129 lane-cnt=1 property=c0 data=0x2 +phy set pre-emphasis unit=0 portlist=129 lane-cnt=1 property=c1 data=0x3 +phy set pre-emphasis unit=0 portlist=130 lane-cnt=1 property=c2 data=0x1 +phy set pre-emphasis unit=0 portlist=130 lane-cnt=1 property=cn1 data=0x1 +phy set pre-emphasis unit=0 portlist=130 lane-cnt=1 property=c0 data=0x2 +phy set pre-emphasis unit=0 portlist=130 lane-cnt=1 property=c1 data=0x3 +port set property unit=0 portlist=0 speed=100g +port set property unit=0 portlist=1 speed=100g +port set property unit=0 portlist=2 speed=100g +port set property unit=0 portlist=3 speed=100g +port set property unit=0 portlist=4 speed=100g +port set property unit=0 portlist=5 speed=100g +port set property unit=0 portlist=6 speed=100g +port set property unit=0 portlist=7 speed=100g +port set property unit=0 portlist=8 speed=100g +port set property unit=0 portlist=9 speed=100g +port set property unit=0 portlist=10 speed=100g +port set property unit=0 portlist=11 speed=100g +port set property unit=0 portlist=12 speed=100g +port set property unit=0 portlist=13 speed=100g +port set property unit=0 portlist=14 speed=100g +port set property unit=0 portlist=15 speed=100g +port set property unit=0 portlist=16 speed=100g +port set property unit=0 portlist=17 speed=100g +port set property unit=0 portlist=18 speed=100g +port set property unit=0 portlist=19 speed=100g +port set property unit=0 portlist=20 speed=100g +port set property unit=0 portlist=21 speed=100g +port set property unit=0 portlist=22 speed=100g +port set property unit=0 portlist=23 speed=100g +port set property unit=0 portlist=24 speed=100g +port set property unit=0 portlist=25 speed=100g +port set property unit=0 portlist=26 speed=100g +port set property unit=0 portlist=27 speed=100g +port set property unit=0 portlist=28 speed=100g +port set property unit=0 portlist=29 speed=100g +port set property unit=0 portlist=30 speed=100g +port set property unit=0 portlist=31 speed=100g +port set property unit=0 portlist=32 speed=100g +port set property unit=0 portlist=33 speed=100g +port set property unit=0 portlist=34 speed=100g +port set property unit=0 portlist=35 speed=100g +port set property unit=0 portlist=36 speed=100g +port set property unit=0 portlist=37 speed=100g +port set property unit=0 portlist=38 speed=100g +port set property unit=0 portlist=39 speed=100g +port set property unit=0 portlist=40 speed=100g +port set property unit=0 portlist=41 speed=100g +port set property unit=0 portlist=42 speed=100g +port set property unit=0 portlist=43 speed=100g +port set property unit=0 portlist=44 speed=100g +port set property unit=0 portlist=45 speed=100g +port set property unit=0 portlist=46 speed=100g +port set property unit=0 portlist=47 speed=100g +port set property unit=0 portlist=48 speed=100g +port set property unit=0 portlist=49 speed=100g +port set property unit=0 portlist=50 speed=100g +port set property unit=0 portlist=51 speed=100g +port set property unit=0 portlist=52 speed=100g +port set property unit=0 portlist=53 speed=100g +port set property unit=0 portlist=54 speed=100g +port set property unit=0 portlist=55 speed=100g +port set property unit=0 portlist=56 speed=100g +port set property unit=0 portlist=57 speed=100g +port set property unit=0 portlist=58 speed=100g +port set property unit=0 portlist=59 speed=100g +port set property unit=0 portlist=60 speed=100g +port set property unit=0 portlist=61 speed=100g +port set property unit=0 portlist=62 speed=100g +port set property unit=0 portlist=63 speed=100g +port set property unit=0 portlist=129 speed=10g +port set property unit=0 portlist=130 speed=10g +port set property unit=0 portlist=0 medium-type=sr4 +port set property unit=0 portlist=1 medium-type=sr4 +port set property unit=0 portlist=2 medium-type=sr4 +port set property unit=0 portlist=3 medium-type=sr4 +port set property unit=0 portlist=4 medium-type=sr4 +port set property unit=0 portlist=5 medium-type=sr4 +port set property unit=0 portlist=6 medium-type=sr4 +port set property unit=0 portlist=7 medium-type=sr4 +port set property unit=0 portlist=8 medium-type=sr4 +port set property unit=0 portlist=9 medium-type=sr4 +port set property unit=0 portlist=10 medium-type=sr4 +port set property unit=0 portlist=11 medium-type=sr4 +port set property unit=0 portlist=12 medium-type=sr4 +port set property unit=0 portlist=13 medium-type=sr4 +port set property unit=0 portlist=14 medium-type=sr4 +port set property unit=0 portlist=15 medium-type=sr4 +port set property unit=0 portlist=16 medium-type=sr4 +port set property unit=0 portlist=17 medium-type=sr4 +port set property unit=0 portlist=18 medium-type=sr4 +port set property unit=0 portlist=19 medium-type=sr4 +port set property unit=0 portlist=20 medium-type=sr4 +port set property unit=0 portlist=21 medium-type=sr4 +port set property unit=0 portlist=22 medium-type=sr4 +port set property unit=0 portlist=23 medium-type=sr4 +port set property unit=0 portlist=24 medium-type=sr4 +port set property unit=0 portlist=25 medium-type=sr4 +port set property unit=0 portlist=26 medium-type=sr4 +port set property unit=0 portlist=27 medium-type=sr4 +port set property unit=0 portlist=28 medium-type=sr4 +port set property unit=0 portlist=29 medium-type=sr4 +port set property unit=0 portlist=30 medium-type=sr4 +port set property unit=0 portlist=31 medium-type=sr4 +port set property unit=0 portlist=32 medium-type=sr4 +port set property unit=0 portlist=33 medium-type=sr4 +port set property unit=0 portlist=34 medium-type=sr4 +port set property unit=0 portlist=35 medium-type=sr4 +port set property unit=0 portlist=36 medium-type=sr4 +port set property unit=0 portlist=37 medium-type=sr4 +port set property unit=0 portlist=38 medium-type=sr4 +port set property unit=0 portlist=39 medium-type=sr4 +port set property unit=0 portlist=40 medium-type=sr4 +port set property unit=0 portlist=41 medium-type=sr4 +port set property unit=0 portlist=42 medium-type=sr4 +port set property unit=0 portlist=43 medium-type=sr4 +port set property unit=0 portlist=44 medium-type=sr4 +port set property unit=0 portlist=45 medium-type=sr4 +port set property unit=0 portlist=46 medium-type=sr4 +port set property unit=0 portlist=47 medium-type=sr4 +port set property unit=0 portlist=48 medium-type=sr4 +port set property unit=0 portlist=49 medium-type=sr4 +port set property unit=0 portlist=50 medium-type=sr4 +port set property unit=0 portlist=51 medium-type=sr4 +port set property unit=0 portlist=52 medium-type=sr4 +port set property unit=0 portlist=53 medium-type=sr4 +port set property unit=0 portlist=54 medium-type=sr4 +port set property unit=0 portlist=55 medium-type=sr4 +port set property unit=0 portlist=56 medium-type=sr4 +port set property unit=0 portlist=57 medium-type=sr4 +port set property unit=0 portlist=58 medium-type=sr4 +port set property unit=0 portlist=59 medium-type=sr4 +port set property unit=0 portlist=60 medium-type=sr4 +port set property unit=0 portlist=61 medium-type=sr4 +port set property unit=0 portlist=62 medium-type=sr4 +port set property unit=0 portlist=63 medium-type=sr4 +port set property unit=0 portlist=129 medium-type=kr +port set property unit=0 portlist=130 medium-type=kr +port set property unit=0 portlist=0 fec=disable +port set property unit=0 portlist=1 fec=disable +port set property unit=0 portlist=2 fec=disable +port set property unit=0 portlist=3 fec=disable +port set property unit=0 portlist=4 fec=disable +port set property unit=0 portlist=5 fec=disable +port set property unit=0 portlist=6 fec=disable +port set property unit=0 portlist=7 fec=disable +port set property unit=0 portlist=8 fec=disable +port set property unit=0 portlist=9 fec=disable +port set property unit=0 portlist=10 fec=disable +port set property unit=0 portlist=11 fec=disable +port set property unit=0 portlist=12 fec=disable +port set property unit=0 portlist=13 fec=disable +port set property unit=0 portlist=14 fec=disable +port set property unit=0 portlist=15 fec=disable +port set property unit=0 portlist=16 fec=disable +port set property unit=0 portlist=17 fec=disable +port set property unit=0 portlist=18 fec=disable +port set property unit=0 portlist=19 fec=disable +port set property unit=0 portlist=20 fec=disable +port set property unit=0 portlist=21 fec=disable +port set property unit=0 portlist=22 fec=disable +port set property unit=0 portlist=23 fec=disable +port set property unit=0 portlist=24 fec=disable +port set property unit=0 portlist=25 fec=disable +port set property unit=0 portlist=26 fec=disable +port set property unit=0 portlist=27 fec=disable +port set property unit=0 portlist=28 fec=disable +port set property unit=0 portlist=29 fec=disable +port set property unit=0 portlist=30 fec=disable +port set property unit=0 portlist=31 fec=disable +port set property unit=0 portlist=32 fec=disable +port set property unit=0 portlist=33 fec=disable +port set property unit=0 portlist=34 fec=disable +port set property unit=0 portlist=35 fec=disable +port set property unit=0 portlist=36 fec=disable +port set property unit=0 portlist=37 fec=disable +port set property unit=0 portlist=38 fec=disable +port set property unit=0 portlist=39 fec=disable +port set property unit=0 portlist=40 fec=disable +port set property unit=0 portlist=41 fec=disable +port set property unit=0 portlist=42 fec=disable +port set property unit=0 portlist=43 fec=disable +port set property unit=0 portlist=44 fec=disable +port set property unit=0 portlist=45 fec=disable +port set property unit=0 portlist=46 fec=disable +port set property unit=0 portlist=47 fec=disable +port set property unit=0 portlist=48 fec=disable +port set property unit=0 portlist=49 fec=disable +port set property unit=0 portlist=50 fec=disable +port set property unit=0 portlist=51 fec=disable +port set property unit=0 portlist=52 fec=disable +port set property unit=0 portlist=53 fec=disable +port set property unit=0 portlist=54 fec=disable +port set property unit=0 portlist=55 fec=disable +port set property unit=0 portlist=56 fec=disable +port set property unit=0 portlist=57 fec=disable +port set property unit=0 portlist=58 fec=disable +port set property unit=0 portlist=59 fec=disable +port set property unit=0 portlist=60 fec=disable +port set property unit=0 portlist=61 fec=disable +port set property unit=0 portlist=62 fec=disable +port set property unit=0 portlist=63 fec=disable +port set adver unit=0 portlist=129 speed-10g-kr +port set adver unit=0 portlist=130 speed-10g-kr +port set property unit=0 portlist=129 an=enable +port set property unit=0 portlist=130 an=enable +port set property unit=0 portlist=0 admin=enable +port set property unit=0 portlist=1 admin=enable +port set property unit=0 portlist=2 admin=enable +port set property unit=0 portlist=3 admin=enable +port set property unit=0 portlist=4 admin=enable +port set property unit=0 portlist=5 admin=enable +port set property unit=0 portlist=6 admin=enable +port set property unit=0 portlist=7 admin=enable +port set property unit=0 portlist=8 admin=enable +port set property unit=0 portlist=9 admin=enable +port set property unit=0 portlist=10 admin=enable +port set property unit=0 portlist=11 admin=enable +port set property unit=0 portlist=12 admin=enable +port set property unit=0 portlist=13 admin=enable +port set property unit=0 portlist=14 admin=enable +port set property unit=0 portlist=15 admin=enable +port set property unit=0 portlist=16 admin=enable +port set property unit=0 portlist=17 admin=enable +port set property unit=0 portlist=18 admin=enable +port set property unit=0 portlist=19 admin=enable +port set property unit=0 portlist=20 admin=enable +port set property unit=0 portlist=21 admin=enable +port set property unit=0 portlist=22 admin=enable +port set property unit=0 portlist=23 admin=enable +port set property unit=0 portlist=24 admin=enable +port set property unit=0 portlist=25 admin=enable +port set property unit=0 portlist=26 admin=enable +port set property unit=0 portlist=27 admin=enable +port set property unit=0 portlist=28 admin=enable +port set property unit=0 portlist=29 admin=enable +port set property unit=0 portlist=30 admin=enable +port set property unit=0 portlist=31 admin=enable +port set property unit=0 portlist=32 admin=enable +port set property unit=0 portlist=33 admin=enable +port set property unit=0 portlist=34 admin=enable +port set property unit=0 portlist=35 admin=enable +port set property unit=0 portlist=36 admin=enable +port set property unit=0 portlist=37 admin=enable +port set property unit=0 portlist=38 admin=enable +port set property unit=0 portlist=39 admin=enable +port set property unit=0 portlist=40 admin=enable +port set property unit=0 portlist=41 admin=enable +port set property unit=0 portlist=42 admin=enable +port set property unit=0 portlist=43 admin=enable +port set property unit=0 portlist=44 admin=enable +port set property unit=0 portlist=45 admin=enable +port set property unit=0 portlist=46 admin=enable +port set property unit=0 portlist=47 admin=enable +port set property unit=0 portlist=48 admin=enable +port set property unit=0 portlist=49 admin=enable +port set property unit=0 portlist=50 admin=enable +port set property unit=0 portlist=51 admin=enable +port set property unit=0 portlist=52 admin=enable +port set property unit=0 portlist=53 admin=enable +port set property unit=0 portlist=54 admin=enable +port set property unit=0 portlist=55 admin=enable +port set property unit=0 portlist=56 admin=enable +port set property unit=0 portlist=57 admin=enable +port set property unit=0 portlist=58 admin=enable +port set property unit=0 portlist=59 admin=enable +port set property unit=0 portlist=60 admin=enable +port set property unit=0 portlist=61 admin=enable +port set property unit=0 portlist=62 admin=enable +port set property unit=0 portlist=63 admin=enable +port set property unit=0 portlist=129 admin=enable +port set property unit=0 portlist=130 admin=enable diff --git a/device/ingrasys/x86_64-ingrasys_s9230_64x-r0/plugins/eeprom.py b/device/ingrasys/x86_64-ingrasys_s9230_64x-r0/plugins/eeprom.py index ab398102c9b..770b0cf43ba 100644 --- a/device/ingrasys/x86_64-ingrasys_s9230_64x-r0/plugins/eeprom.py +++ b/device/ingrasys/x86_64-ingrasys_s9230_64x-r0/plugins/eeprom.py @@ -18,5 +18,5 @@ class board(eeprom_tlvinfo.TlvInfoDecoder): def __init__(self, name, path, cpld_root, ro): - self.eeprom_path = "/sys/class/i2c-adapter/i2c-0/0-0055/eeprom" + self.eeprom_path = "/sys/class/i2c-adapter/i2c-0/0-0051/eeprom" super(board, self).__init__(self.eeprom_path, 0, '', True) diff --git a/device/ingrasys/x86_64-ingrasys_s9230_64x-r0/sensors.conf b/device/ingrasys/x86_64-ingrasys_s9230_64x-r0/sensors.conf index b5daa9af42b..84abfe88062 100644 --- a/device/ingrasys/x86_64-ingrasys_s9230_64x-r0/sensors.conf +++ b/device/ingrasys/x86_64-ingrasys_s9230_64x-r0/sensors.conf @@ -36,16 +36,12 @@ chip "w83795adg-*" ignore in18 ignore in19 label fan1 "FANTRAY 1" - #label fan2 "FANTRAY 1-B" ignore fan2 label fan3 "FANTRAY 2" - #label fan4 "FANTRAY 2-B" ignore fan4 label fan5 "FANTRAY 3" - #label fan6 "FANTRAY 3-B" ignore fan6 label fan7 "FANTRAY 4" - #label fan8 "FANTRAY 4-B" ignore fan8 ignore temp1 ignore temp2 @@ -55,15 +51,14 @@ chip "w83795adg-*" ignore temp6 ignore intrusion0 -# TODO: need to confirm the critial temp value with HW after board ready chip "tmp75-i2c-*-4A" - label temp1 "BMC board Temp" + label temp1 "BMC Board Temp" set temp1_max 50 set temp1_max_hyst 45 bus "i2c-0" "SMBus I801 adapter at f000" chip "tmp75-i2c-*-4F" - label temp1 "x86 CPU board Temp" + label temp1 "x86 CPU Board Temp" set temp1_max 50 set temp1_max_hyst 45 @@ -86,5 +81,3 @@ chip "lm75-i2c-7-4E" label temp1 "Front MAC Temp" set temp1_max 50 set temp1_max_hyst 45 - - diff --git a/device/marvell/x86_64-marvell_slm5401_54x-r0/SLM5401-54x/port_config.ini b/device/marvell/x86_64-marvell_slm5401_54x-r0/SLM5401-54x/port_config.ini new file mode 100755 index 00000000000..74865956f61 --- /dev/null +++ b/device/marvell/x86_64-marvell_slm5401_54x-r0/SLM5401-54x/port_config.ini @@ -0,0 +1,55 @@ +# name lanes +Ethernet0 0 +Ethernet1 1 +Ethernet2 2 +Ethernet3 3 +Ethernet4 4 +Ethernet5 5 +Ethernet6 6 +Ethernet7 7 +Ethernet8 8 +Ethernet9 9 +Ethernet10 10 +Ethernet11 11 +Ethernet12 12 +Ethernet13 13 +Ethernet14 14 +Ethernet15 15 +Ethernet16 16 +Ethernet17 17 +Ethernet18 18 +Ethernet19 19 +Ethernet20 20 +Ethernet21 21 +Ethernet22 22 +Ethernet23 23 +Ethernet24 24 +Ethernet25 25 +Ethernet26 26 +Ethernet27 27 +Ethernet28 28 +Ethernet29 29 +Ethernet30 30 +Ethernet31 31 +Ethernet32 32 +Ethernet33 33 +Ethernet34 34 +Ethernet35 35 +Ethernet36 36 +Ethernet37 37 +Ethernet38 38 +Ethernet39 39 +Ethernet40 40 +Ethernet41 41 +Ethernet42 42 +Ethernet43 43 +Ethernet44 44 +Ethernet45 45 +Ethernet46 46 +Ethernet47 47 +Ethernet48 48 +Ethernet49 49 +Ethernet50 50 +Ethernet51 51 +Ethernet52 52 +Ethernet53 53 diff --git a/device/marvell/x86_64-marvell_slm5401_54x-r0/SLM5401-54x/sai.profile b/device/marvell/x86_64-marvell_slm5401_54x-r0/SLM5401-54x/sai.profile new file mode 100755 index 00000000000..edba72ba482 --- /dev/null +++ b/device/marvell/x86_64-marvell_slm5401_54x-r0/SLM5401-54x/sai.profile @@ -0,0 +1,2 @@ +mode=1 +hwId=slm5401-54x diff --git a/device/marvell/x86_64-marvell_slm5401_54x-r0/installer.conf b/device/marvell/x86_64-marvell_slm5401_54x-r0/installer.conf new file mode 100755 index 00000000000..14404194ef5 --- /dev/null +++ b/device/marvell/x86_64-marvell_slm5401_54x-r0/installer.conf @@ -0,0 +1,3 @@ +CONSOLE_PORT=0x2f8 +CONSOLE_DEV=1 +CONSOLE_SPEED=115200 diff --git a/device/marvell/x86_64-marvell_slm5401_54x-r0/minigraph.xml b/device/marvell/x86_64-marvell_slm5401_54x-r0/minigraph.xml new file mode 100755 index 00000000000..3fc83ef7fc6 --- /dev/null +++ b/device/marvell/x86_64-marvell_slm5401_54x-r0/minigraph.xml @@ -0,0 +1,1074 @@ + + + + + + ARISTA01T0 + 10.0.0.33 + switch1 + 10.0.0.32 + 1 + 180 + 60 + + + switch1 + 10.0.0.0 + ARISTA01T2 + 10.0.0.1 + 1 + 180 + 60 + + + ARISTA02T0 + 10.0.0.35 + switch1 + 10.0.0.34 + 1 + 180 + 60 + + + switch1 + 10.0.0.2 + ARISTA02T2 + 10.0.0.3 + 1 + 180 + 60 + + + ARISTA03T0 + 10.0.0.37 + switch1 + 10.0.0.36 + 1 + 180 + 60 + + + switch1 + 10.0.0.4 + ARISTA03T2 + 10.0.0.5 + 1 + 180 + 60 + + + ARISTA04T0 + 10.0.0.39 + switch1 + 10.0.0.38 + 1 + 180 + 60 + + + switch1 + 10.0.0.6 + ARISTA04T2 + 10.0.0.7 + 1 + 180 + 60 + + + ARISTA05T0 + 10.0.0.41 + switch1 + 10.0.0.40 + 1 + 180 + 60 + + + switch1 + 10.0.0.8 + ARISTA05T2 + 10.0.0.9 + 1 + 180 + 60 + + + ARISTA06T0 + 10.0.0.43 + switch1 + 10.0.0.42 + 1 + 180 + 60 + + + switch1 + 10.0.0.10 + ARISTA06T2 + 10.0.0.11 + 1 + 180 + 60 + + + ARISTA07T0 + 10.0.0.45 + switch1 + 10.0.0.44 + 1 + 180 + 60 + + + switch1 + 10.0.0.12 + ARISTA07T2 + 10.0.0.13 + 1 + 180 + 60 + + + ARISTA08T0 + 10.0.0.47 + switch1 + 10.0.0.46 + 1 + 180 + 60 + + + switch1 + 10.0.0.14 + ARISTA08T2 + 10.0.0.15 + 1 + 180 + 60 + + + ARISTA09T0 + 10.0.0.49 + switch1 + 10.0.0.48 + 1 + 180 + 60 + + + switch1 + 10.0.0.16 + ARISTA09T2 + 10.0.0.17 + 1 + 180 + 60 + + + ARISTA10T0 + 10.0.0.51 + switch1 + 10.0.0.50 + 1 + 180 + 60 + + + switch1 + 10.0.0.18 + ARISTA10T2 + 10.0.0.19 + 1 + 180 + 60 + + + ARISTA11T0 + 10.0.0.53 + switch1 + 10.0.0.52 + 1 + 180 + 60 + + + switch1 + 10.0.0.20 + ARISTA11T2 + 10.0.0.21 + 1 + 180 + 60 + + + ARISTA12T0 + 10.0.0.55 + switch1 + 10.0.0.54 + 1 + 180 + 60 + + + switch1 + 10.0.0.22 + ARISTA12T2 + 10.0.0.23 + 1 + 180 + 60 + + + ARISTA13T0 + 10.0.0.57 + switch1 + 10.0.0.56 + 1 + 180 + 60 + + + switch1 + 10.0.0.24 + ARISTA13T2 + 10.0.0.25 + 1 + 180 + 60 + + + ARISTA14T0 + 10.0.0.59 + switch1 + 10.0.0.58 + 1 + 180 + 60 + + + switch1 + 10.0.0.26 + ARISTA14T2 + 10.0.0.27 + 1 + 180 + 60 + + + ARISTA15T0 + 10.0.0.61 + switch1 + 10.0.0.60 + 1 + 180 + 60 + + + switch1 + 10.0.0.28 + ARISTA15T2 + 10.0.0.29 + 1 + 180 + 60 + + + ARISTA16T0 + 10.0.0.63 + switch1 + 10.0.0.62 + 1 + 180 + 60 + + + switch1 + 10.0.0.30 + ARISTA16T2 + 10.0.0.31 + 1 + 180 + 60 + + + + + 65100 + switch1 + + +
10.0.0.33
+ + +
+ +
10.0.0.1
+ + +
+ +
10.0.0.35
+ + +
+ +
10.0.0.3
+ + +
+ +
10.0.0.37
+ + +
+ +
10.0.0.5
+ + +
+ +
10.0.0.39
+ + +
+ +
10.0.0.7
+ + +
+ +
10.0.0.41
+ + +
+ +
10.0.0.9
+ + +
+ +
10.0.0.43
+ + +
+ +
10.0.0.11
+ + +
+ +
10.0.0.45
+ + +
+ +
10.0.0.13
+ + +
+ +
10.0.0.47
+ + +
+ +
10.0.0.15
+ + +
+ +
10.0.0.49
+ + +
+ +
10.0.0.17
+ + +
+ +
10.0.0.51
+ + +
+ +
10.0.0.19
+ + +
+ +
10.0.0.53
+ + +
+ +
10.0.0.21
+ + +
+ +
10.0.0.55
+ + +
+ +
10.0.0.23
+ + +
+ +
10.0.0.57
+ + +
+ +
10.0.0.25
+ + +
+ +
10.0.0.59
+ + +
+ +
10.0.0.27
+ + +
+ +
10.0.0.61
+ + +
+ +
10.0.0.29
+ + +
+ +
10.0.0.63
+ + +
+ +
10.0.0.31
+ + +
+
+ +
+ + 64001 + ARISTA01T0 + + + + 65200 + ARISTA01T2 + + + + 64002 + ARISTA02T0 + + + + 65200 + ARISTA02T2 + + + + 64003 + ARISTA03T0 + + + + 65200 + ARISTA03T2 + + + + 64004 + ARISTA04T0 + + + + 65200 + ARISTA04T2 + + + + 64005 + ARISTA05T0 + + + + 65200 + ARISTA05T2 + + + + 64006 + ARISTA06T0 + + + + 65200 + ARISTA06T2 + + + + 64007 + ARISTA07T0 + + + + 65200 + ARISTA07T2 + + + + 64008 + ARISTA08T0 + + + + 65200 + ARISTA08T2 + + + + 64009 + ARISTA09T0 + + + + 65200 + ARISTA09T2 + + + + 64010 + ARISTA10T0 + + + + 65200 + ARISTA10T2 + + + + 64011 + ARISTA11T0 + + + + 65200 + ARISTA11T2 + + + + 64012 + ARISTA12T0 + + + + 65200 + ARISTA12T2 + + + + 64013 + ARISTA13T0 + + + + 65200 + ARISTA13T2 + + + + 64014 + ARISTA14T0 + + + + 65200 + ARISTA14T2 + + + + 64015 + ARISTA15T0 + + + + 65200 + ARISTA15T2 + + + + 64016 + ARISTA16T0 + + + + 65200 + ARISTA16T2 + + +
+
+ + + + + + HostIP + Loopback0 + + 10.1.0.32/32 + + 10.1.0.32/32 + + + + + + + + switch1 + + + + + + Ethernet0 + 10.0.0.0/31 + + + + Ethernet4 + 10.0.0.2/31 + + + + Ethernet8 + 10.0.0.4/31 + + + + Ethernet12 + 10.0.0.6/31 + + + + Ethernet16 + 10.0.0.8/31 + + + + Ethernet20 + 10.0.0.10/31 + + + + Ethernet24 + 10.0.0.12/31 + + + + Ethernet28 + 10.0.0.14/31 + + + + Ethernet32 + 10.0.0.16/31 + + + + Ethernet36 + 10.0.0.18/31 + + + + Ethernet40 + 10.0.0.20/31 + + + + Ethernet44 + 10.0.0.22/31 + + + + Ethernet48 + 10.0.0.24/31 + + + + Ethernet52 + 10.0.0.26/31 + + + + Ethernet56 + 10.0.0.28/31 + + + + Ethernet60 + 10.0.0.30/31 + + + + Ethernet64 + 10.0.0.32/31 + + + + Ethernet68 + 10.0.0.34/31 + + + + Ethernet72 + 10.0.0.36/31 + + + + Ethernet76 + 10.0.0.38/31 + + + + Ethernet80 + 10.0.0.40/31 + + + + Ethernet84 + 10.0.0.42/31 + + + + Ethernet88 + 10.0.0.44/31 + + + + Ethernet92 + 10.0.0.46/31 + + + + Ethernet96 + 10.0.0.48/31 + + + + Ethernet100 + 10.0.0.50/31 + + + + Ethernet104 + 10.0.0.52/31 + + + + Ethernet108 + 10.0.0.54/31 + + + + Ethernet112 + 10.0.0.56/31 + + + + Ethernet116 + 10.0.0.58/31 + + + + Ethernet120 + 10.0.0.60/31 + + + + Ethernet124 + 10.0.0.62/31 + + + + + + + + + + + + DeviceInterfaceLink + switch1 + Ethernet0 + ARISTA01T2 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet4 + ARISTA02T2 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet8 + ARISTA03T2 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet12 + ARISTA04T2 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet16 + ARISTA05T2 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet20 + ARISTA06T2 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet24 + ARISTA07T2 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet28 + ARISTA08T2 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet32 + ARISTA09T2 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet36 + ARISTA10T2 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet40 + ARISTA11T2 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet44 + ARISTA12T2 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet48 + ARISTA13T2 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet52 + ARISTA14T2 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet56 + ARISTA15T2 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet60 + ARISTA16T2 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet64 + ARISTA01T0 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet68 + ARISTA02T0 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet72 + ARISTA03T0 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet76 + ARISTA04T0 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet80 + ARISTA05T0 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet84 + ARISTA06T0 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet88 + ARISTA07T0 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet92 + ARISTA08T0 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet96 + ARISTA09T0 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet100 + ARISTA10T0 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet104 + ARISTA11T0 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet108 + ARISTA12T0 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet112 + ARISTA13T0 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet116 + ARISTA14T0 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet120 + ARISTA15T0 + Ethernet1 + + + DeviceInterfaceLink + switch1 + Ethernet124 + ARISTA16T0 + Ethernet1 + + + + + switch1 + SLM5401-54x + + + + + + + switch1 + + + DhcpResources + + + + + NtpResources + + 0.debian.pool.ntp.org;1.debian.pool.ntp.org;2.debian.pool.ntp.org;3.debian.pool.ntp.org + + + SyslogResources + + + + + + + + + switch1 + SLM5401-54x +
diff --git a/device/marvell/x86_64-marvell_slm5401_54x-r0/plugins/eeprom.py b/device/marvell/x86_64-marvell_slm5401_54x-r0/plugins/eeprom.py new file mode 100755 index 00000000000..7681caafeef --- /dev/null +++ b/device/marvell/x86_64-marvell_slm5401_54x-r0/plugins/eeprom.py @@ -0,0 +1,24 @@ +#!/usr/bin/env python + +try: + import exceptions + import binascii + import time + import optparse + import warnings + import os + import sys + from sonic_eeprom import eeprom_base + from sonic_eeprom import eeprom_tlvinfo + import subprocess +except ImportError, e: + raise ImportError (str(e) + "- required module not found") + +class board(eeprom_tlvinfo.TlvInfoDecoder): + _TLV_INFO_MAX_LEN = 256 + def __init__(self, name, path, cpld_root, ro): + self.eeprom_path = "/sys/bus/i2c/devices/1-0057/eeprom" + #Two i2c buses might get flipped order, check them both. + if not os.path.exists(self.eeprom_path): + self.eeprom_path = "/sys/bus/i2c/devices/0-0057/eeprom" + super(board, self).__init__(self.eeprom_path, 0, '', True) diff --git a/device/marvell/x86_64-marvell_slm5401_54x-r0/plugins/sfputil.py b/device/marvell/x86_64-marvell_slm5401_54x-r0/plugins/sfputil.py new file mode 100755 index 00000000000..925c6cb0d73 --- /dev/null +++ b/device/marvell/x86_64-marvell_slm5401_54x-r0/plugins/sfputil.py @@ -0,0 +1,127 @@ +#!/usr/bin/env python + +try: + import time + from sonic_sfp.sfputilbase import SfpUtilBase +except ImportError, e: + raise ImportError (str(e) + "- required module not found") + + +class sfputil(SfpUtilBase): + """Platform specific sfputil class""" + + port_start = 0 + port_end = 31 + ports_in_block = 32 + + port_to_eeprom_mapping = {} + port_to_i2c_mapping = { + 9 : 18, + 10 : 19, + 11 : 20, + 12 : 21, + 1 : 22, + 2 : 23, + 3 : 24, + 4 : 25, + 6 : 26, + 5 : 27, + 8 : 28, + 7 : 29, + 13 : 30, + 14 : 31, + 15 : 32, + 16 : 33, + 17 : 34, + 18 : 35, + 19 : 36, + 20 : 37, + 25 : 38, + 26 : 39, + 27 : 40, + 28 : 41, + 29 : 42, + 30 : 43, + 31 : 44, + 32 : 45, + 21 : 46, + 22 : 47, + 23 : 48, + 24 : 49, + } + + _qsfp_ports = range(0, ports_in_block + 1) + + def __init__(self): + # Override port_to_eeprom_mapping for class initialization + eeprom_path = '/sys/bus/i2c/devices/{0}-0050/sfp_eeprom' + for x in range(self.port_start, self.port_end + 1): + port_eeprom_path = eeprom_path.format(self.port_to_i2c_mapping[x+1]) + self.port_to_eeprom_mapping[x] = port_eeprom_path + SfpUtilBase.__init__(self) + + def reset(self, port_num): + # Check for invalid port_num + if port_num < self._port_start or port_num > self._port_end: + return False + + path = "/sys/bus/i2c/devices/{0}-0050/sfp_port_reset" + port_ps = path.format(self.port_to_i2c_mapping[port_num+1]) + + try: + reg_file = open(port_ps, 'w') + except IOError as e: + print "Error: unable to open file: %s" % str(e) + return False + + #toggle reset + reg_file.seek(0) + reg_file.write('1') + time.sleep(1) + reg_file.seek(0) + reg_file.write('0') + reg_file.close() + return True + + def set_low_power_mode(self, port_nuM, lpmode): + raise NotImplementedErro + + def get_low_power_mode(self, port_num): + raise NotImplementedErro + + def get_presence(self, port_num): + # Check for invalid port_num + if port_num < self._port_start or port_num > self._port_end: + return False + + path = "/sys/bus/i2c/devices/{0}-0050/sfp_is_present" + port_ps = path.format(self.port_to_i2c_mapping[port_num+1]) + + + try: + reg_file = open(port_ps) + except IOError as e: + print "Error: unable to open file: %s" % str(e) + return False + + reg_value = reg_file.readline().rstrip() + if reg_value == '1': + return True + + return False + + @property + def port_start(self): + return self._port_start + + @property + def port_end(self): + return self._port_end + + @property + def qsfp_ports(self): + return range(0, self.ports_in_block + 1) + + @property + def port_to_eeprom_mapping(self): + return self._port_to_eeprom_mapping diff --git a/device/mellanox/x86_64-mlnx_msn2100-r0/hw-management b/device/mellanox/x86_64-mlnx_msn2100-r0/hw-management deleted file mode 120000 index daef0037dda..00000000000 --- a/device/mellanox/x86_64-mlnx_msn2100-r0/hw-management +++ /dev/null @@ -1 +0,0 @@ -/etc/mlnx/msn2100 \ No newline at end of file diff --git a/device/mellanox/x86_64-mlnx_msn2100-r0/plugins/eeprom.py b/device/mellanox/x86_64-mlnx_msn2100-r0/plugins/eeprom.py index 3650d9c8b70..61e37b51db7 100644 --- a/device/mellanox/x86_64-mlnx_msn2100-r0/plugins/eeprom.py +++ b/device/mellanox/x86_64-mlnx_msn2100-r0/plugins/eeprom.py @@ -28,5 +28,5 @@ class board(eeprom_tlvinfo.TlvInfoDecoder): _TLV_INFO_MAX_LEN = 256 def __init__(self, name, path, cpld_root, ro): - self.eeprom_path = "/bsp/eeprom/sys_eeprom" + self.eeprom_path = "/bsp/eeprom/vpd_info" super(board, self).__init__(self.eeprom_path, 0, '', True) diff --git a/device/mellanox/x86_64-mlnx_msn2100-r0/plugins/sfplpmget.py b/device/mellanox/x86_64-mlnx_msn2100-r0/plugins/sfplpmget.py new file mode 100644 index 00000000000..170766e9bce --- /dev/null +++ b/device/mellanox/x86_64-mlnx_msn2100-r0/plugins/sfplpmget.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python + +import sys, errno +import os +from python_sdk_api.sxd_api import * +from python_sdk_api.sx_api import * + +# Check if SFP port number is provided +if len(sys.argv) < 2: + print "SFP module number is missed." + print "Usage: sfplpmget.py " + sys.exit(errno.EINVAL) + +# Init SDK API +rc, handle = sx_api_open(None) +if (rc != SX_STATUS_SUCCESS): + print "Failed to open api handle.\nPlease check that SDK is running." + sys.exit(errno.EACCES) + +pid = os.getpid() +rc = sxd_access_reg_init(pid, None, 0) +if (rc != 0): + print "Failed to initializing register access.\nPlease check that SDK is running." + sys.exit(errno.EACCES) + +# Get SFP module number +sfp_module = int(sys.argv[1]) + +# Get MCION +mcion = ku_mcion_reg() +mcion.module = sfp_module +meta = sxd_reg_meta_t() +meta.dev_id = 1 +meta.swid = 0 +meta.access_cmd = SXD_ACCESS_CMD_GET + +rc = sxd_access_reg_mcion(mcion, meta, 1, None, None) +assert rc == SXD_STATUS_SUCCESS, "sxd_access_reg_mcion failed, rc = %d" % rc + +# Get low power mode status +lpm_mask = 1 << 8 +lpm_status = (lpm_mask & mcion.module_status_bits) != 0 +print "LPM ON" if lpm_status else "LPM OFF" diff --git a/device/mellanox/x86_64-mlnx_msn2100-r0/plugins/sfplpmset.py b/device/mellanox/x86_64-mlnx_msn2100-r0/plugins/sfplpmset.py new file mode 100644 index 00000000000..3f31af9f294 --- /dev/null +++ b/device/mellanox/x86_64-mlnx_msn2100-r0/plugins/sfplpmset.py @@ -0,0 +1,107 @@ +#!/usr/bin/env python + +import sys, errno +import time +import os +from python_sdk_api.sxd_api import * +from python_sdk_api.sx_api import * + +def get_log_ports(handle, sfp_module): + port_attributes_list = new_sx_port_attributes_t_arr(64) + port_cnt_p = new_uint32_t_p() + uint32_t_p_assign(port_cnt_p, 64) + + rc = sx_api_port_device_get(handle, 1 , 0, port_attributes_list, port_cnt_p) + assert rc == SX_STATUS_SUCCESS, "sx_api_port_device_get failed, rc = %d" % rc + + port_cnt = uint32_t_p_value(port_cnt_p) + log_port_list = [] + for i in range(0, port_cnt): + port_attributes = sx_port_attributes_t_arr_getitem(port_attributes_list, i) + if port_attributes.port_mapping.module_port == sfp_module: + log_port_list.append(port_attributes.log_port) + + return log_port_list + +def set_sfp_admin_status(handle, meta, sfp_module, sfp_log_port_list, admin_status): + # Get PMAOS + pmaos = ku_pmaos_reg() + pmaos.module = sfp_module + meta.access_cmd = SXD_ACCESS_CMD_GET + rc = sxd_access_reg_pmaos(pmaos, meta, 1, None, None) + assert rc == SXD_STATUS_SUCCESS, "sxd_access_reg_pmaos failed, rc = %d" % rc + + # Set admin status to PMAOS + pmaos.ase = 1 + pmaos.ee = 1 + pmaos.e = 2 + pmaos.rst = 0 + if admin_status == SX_PORT_ADMIN_STATUS_DOWN: + pmaos.admin_status = 2 + else: + pmaos.admin_status = 1 + + meta.access_cmd = SXD_ACCESS_CMD_SET + rc = sxd_access_reg_pmaos(pmaos, meta, 1, None, None) + assert rc == SXD_STATUS_SUCCESS, "sxd_access_reg_pmaos failed, rc = %d" % rc + +# Check if SFP port number is provided +if len(sys.argv) < 3: + print "SFP module number or LPM is missed." + print "Usage: sfplpmset.py " + sys.exit(errno.EINVAL) + +lpm_enable = None +if sys.argv[2] == 'on': + lpm_enable = True +elif sys.argv[2] == 'off': + lpm_enable = False +else: + print "Unrecognized LPM parameter. Please use or values" + sys.exit(errno.EINVAL) + +# Init SDK API +rc, handle = sx_api_open(None) +if (rc != SX_STATUS_SUCCESS): + print "Failed to open api handle.\nPlease check that SDK is running." + sys.exit(errno.EACCES) + +pid = os.getpid() +rc = sxd_access_reg_init(pid, None, 0) +if (rc != 0): + print "Failed to initializing register access.\nPlease check that SDK is running." + sys.exit(errno.EACCES); + +# Get SFP module and log ports number and LPM status +sfp_module = int(sys.argv[1]) +log_port_list = get_log_ports(handle, sfp_module) +if not log_port_list: + print "Failed to get log ports" + sys.exit(errno.EACCES) + +# Get PMMP +pmmp = ku_pmmp_reg() +pmmp.module = sfp_module +meta = sxd_reg_meta_t() +meta.dev_id = 1 +meta.swid = 0 +meta.access_cmd = SXD_ACCESS_CMD_GET +rc = sxd_access_reg_pmmp(pmmp, meta, 1, None, None) +assert rc == SXD_STATUS_SUCCESS, "sxd_access_reg_pmmp failed, rc = %d" % rc + +# Disable admin status before LPM settings +set_sfp_admin_status(handle, meta, sfp_module, log_port_list, SX_PORT_ADMIN_STATUS_DOWN) + +# Set low power mode status +lpm_mask = 1 << 8 +if lpm_enable: + pmmp.eeprom_override = pmmp.eeprom_override | lpm_mask +else: + pmmp.eeprom_override = pmmp.eeprom_override & (~lpm_mask) + +meta.access_cmd = SXD_ACCESS_CMD_SET +rc = sxd_access_reg_pmmp(pmmp, meta, 1, None, None) +assert rc == SXD_STATUS_SUCCESS, "sxd_access_reg_pmmp failed, rc = %d" % rc + +# Enable admin status after LPM settings +set_sfp_admin_status(handle, meta, sfp_module, log_port_list, SX_PORT_ADMIN_STATUS_UP) diff --git a/device/mellanox/x86_64-mlnx_msn2100-r0/plugins/sfpreset.py b/device/mellanox/x86_64-mlnx_msn2100-r0/plugins/sfpreset.py new file mode 100644 index 00000000000..69fa2be614c --- /dev/null +++ b/device/mellanox/x86_64-mlnx_msn2100-r0/plugins/sfpreset.py @@ -0,0 +1,45 @@ +#!/usr/bin/env python + +import sys, errno +import os +from python_sdk_api.sxd_api import * +from python_sdk_api.sx_api import * + +# Check if SFP port number is provided +if len(sys.argv) < 2: + print "SFP module number or LPM is missed." + print "Usage: sfpreset.py " + sys.exit(errno.EINVAL) + +# Init SDK API +rc, handle = sx_api_open(None) +if (rc != SX_STATUS_SUCCESS): + print "Failed to open api handle.\nPlease check that SDK is running." + sys.exit(errno.EACCES) + +pid = os.getpid() +rc = sxd_access_reg_init(pid, None, 0) +if (rc != 0): + print "Failed to initializing register access.\nPlease check that SDK is running." + sys.exit(errno.EACCES) + +# Get SFP module number +sfp_module = int(sys.argv[1]) + +# Get PMAOS +pmaos = ku_pmaos_reg() +pmaos.module = sfp_module +meta = sxd_reg_meta_t() +meta.dev_id = 1 +meta.swid = 0 +meta.access_cmd = SXD_ACCESS_CMD_GET + +rc = sxd_access_reg_pmaos(pmaos, meta, 1, None, None) +assert rc == SXD_STATUS_SUCCESS, "sxd_access_reg_pmaos failed, rc = %d" % rc + +# Reset SFP +pmaos.rst = 1 +meta.access_cmd = SXD_ACCESS_CMD_SET +rc = sxd_access_reg_pmaos(pmaos, meta, 1, None, None) +assert rc == SXD_STATUS_SUCCESS, "sxd_access_reg_pmaos failed, rc = %d" % rc +print "Reset flag is set" diff --git a/device/mellanox/x86_64-mlnx_msn2100-r0/plugins/sfputil.py b/device/mellanox/x86_64-mlnx_msn2100-r0/plugins/sfputil.py index ce0adde71a1..4a7b063ac60 100644 --- a/device/mellanox/x86_64-mlnx_msn2100-r0/plugins/sfputil.py +++ b/device/mellanox/x86_64-mlnx_msn2100-r0/plugins/sfputil.py @@ -5,6 +5,7 @@ try: import time + import subprocess from sonic_sfp.sfputilbase import SfpUtilBase except ImportError as e: raise ImportError("%s - required module not found" % str(e)) @@ -46,17 +47,105 @@ def __init__(self): SfpUtilBase.__init__(self) def get_presence(self, port_num): + # Check for invalid port_num + if port_num < self.port_start or port_num > self.port_end: + return False - raise NotImplementedError + try: + reg_file = open("/bsp/qsfp/qsfp%d_status" % (port_num+1)) + except IOError as e: + print "Error: unable to open file: %s" % str(e) + return False + + content = reg_file.readline().rstrip() + + # content is a string with the qsfp status + if content == "good": + return True + + return False def get_low_power_mode(self, port_num): + # Check for invalid port_num + if port_num < self.port_start or port_num > self.port_end: + return False - raise NotImplementedError + lpm_cmd = "docker exec syncd python /usr/share/sonic/platform/plugins/sfplpmget.py {}".format(port_num) - def set_low_power_mode(self, port_num, lpmode): + try: + output = subprocess.check_output(lpm_cmd, shell=True) + if 'LPM ON' in output: + return True + except subprocess.CalledProcessError as e: + print "Error! Unable to get LPM for {}, rc = {}, err msg: {}".format(port_num, e.returncode, e.output) + return False - raise NotImplementedError + return False + + def set_low_power_mode(self, port_num, lpmode): + # Check for invalid port_num + if port_num < self.port_start or port_num > self.port_end: + return False + + curr_lpmode = self.get_low_power_mode(port_num) + if curr_lpmode == lpmode: + return True + + lpm = 'on' if lpmode else 'off' + lpm_cmd = "docker exec syncd python /usr/share/sonic/platform/plugins/sfplpmset.py {} {}".format(port_num, lpm) + sfp_port_names = self.physical_to_logical[port_num] + + # Get port admin status + try: + enabled_ports = subprocess.check_output("ip link show up", shell=True) + except subprocess.CalledProcessError as e: + print "Error! Unable to get ports status, err msg: {}".format(e.output) + return False + + port_to_disable = [] + for port in sfp_port_names: + if port in enabled_ports: + port_to_disable.append(port) + + # Disable ports before LPM settings + for port in port_to_disable: + try: + subprocess.check_output("ifconfig {} down".format(port), shell=True) + except subprocess.CalledProcessError as e: + print "Error! Unable to set admin status to DOWN for {}, rc = {}, err msg: {}".format(port, e.returncode, e.output) + return False + + time.sleep(3) + + # Set LPM + try: + subprocess.check_output(lpm_cmd, shell=True) + except subprocess.CalledProcessError as e: + print "Error! Unable to set LPM for {}, rc = {}, err msg: {}".format(port_num, e.returncode, e.output) + return False + + # Enable ports after LPM settings + for port in port_to_disable: + try: + subprocess.check_output("ifconfig {} up".format(port), shell=True) + except subprocess.CalledProcessError as e: + print "Error! Unable to set admin status to UP for {}, rc = {}, err msg: {}".format(port, e.returncode, e.output) + return False + + return True def reset(self, port_num): + # Check for invalid port_num + if port_num < self.port_start or port_num > self.port_end: + return False + + lpm_cmd = "docker exec syncd python /usr/share/sonic/platform/plugins/sfpreset.py {}".format(port_num) + + try: + subprocess.check_output(lpm_cmd, shell=True) + return True + except subprocess.CalledProcessError as e: + print "Error! Unable to set LPM for {}, rc = {}, err msg: {}".format(port_num, e.returncode, e.output) + return False - raise NotImplementedError + return False diff --git a/device/mellanox/x86_64-mlnx_msn2410-r0/hw-management b/device/mellanox/x86_64-mlnx_msn2410-r0/hw-management deleted file mode 120000 index 5b9a76d3d47..00000000000 --- a/device/mellanox/x86_64-mlnx_msn2410-r0/hw-management +++ /dev/null @@ -1 +0,0 @@ -/etc/mlnx/msn2410 \ No newline at end of file diff --git a/device/mellanox/x86_64-mlnx_msn2410-r0/plugins/eeprom.py b/device/mellanox/x86_64-mlnx_msn2410-r0/plugins/eeprom.py index 3650d9c8b70..61e37b51db7 100644 --- a/device/mellanox/x86_64-mlnx_msn2410-r0/plugins/eeprom.py +++ b/device/mellanox/x86_64-mlnx_msn2410-r0/plugins/eeprom.py @@ -28,5 +28,5 @@ class board(eeprom_tlvinfo.TlvInfoDecoder): _TLV_INFO_MAX_LEN = 256 def __init__(self, name, path, cpld_root, ro): - self.eeprom_path = "/bsp/eeprom/sys_eeprom" + self.eeprom_path = "/bsp/eeprom/vpd_info" super(board, self).__init__(self.eeprom_path, 0, '', True) diff --git a/device/mellanox/x86_64-mlnx_msn2410-r0/plugins/sfplpmget.py b/device/mellanox/x86_64-mlnx_msn2410-r0/plugins/sfplpmget.py new file mode 100644 index 00000000000..170766e9bce --- /dev/null +++ b/device/mellanox/x86_64-mlnx_msn2410-r0/plugins/sfplpmget.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python + +import sys, errno +import os +from python_sdk_api.sxd_api import * +from python_sdk_api.sx_api import * + +# Check if SFP port number is provided +if len(sys.argv) < 2: + print "SFP module number is missed." + print "Usage: sfplpmget.py " + sys.exit(errno.EINVAL) + +# Init SDK API +rc, handle = sx_api_open(None) +if (rc != SX_STATUS_SUCCESS): + print "Failed to open api handle.\nPlease check that SDK is running." + sys.exit(errno.EACCES) + +pid = os.getpid() +rc = sxd_access_reg_init(pid, None, 0) +if (rc != 0): + print "Failed to initializing register access.\nPlease check that SDK is running." + sys.exit(errno.EACCES) + +# Get SFP module number +sfp_module = int(sys.argv[1]) + +# Get MCION +mcion = ku_mcion_reg() +mcion.module = sfp_module +meta = sxd_reg_meta_t() +meta.dev_id = 1 +meta.swid = 0 +meta.access_cmd = SXD_ACCESS_CMD_GET + +rc = sxd_access_reg_mcion(mcion, meta, 1, None, None) +assert rc == SXD_STATUS_SUCCESS, "sxd_access_reg_mcion failed, rc = %d" % rc + +# Get low power mode status +lpm_mask = 1 << 8 +lpm_status = (lpm_mask & mcion.module_status_bits) != 0 +print "LPM ON" if lpm_status else "LPM OFF" diff --git a/device/mellanox/x86_64-mlnx_msn2410-r0/plugins/sfplpmset.py b/device/mellanox/x86_64-mlnx_msn2410-r0/plugins/sfplpmset.py new file mode 100644 index 00000000000..3f31af9f294 --- /dev/null +++ b/device/mellanox/x86_64-mlnx_msn2410-r0/plugins/sfplpmset.py @@ -0,0 +1,107 @@ +#!/usr/bin/env python + +import sys, errno +import time +import os +from python_sdk_api.sxd_api import * +from python_sdk_api.sx_api import * + +def get_log_ports(handle, sfp_module): + port_attributes_list = new_sx_port_attributes_t_arr(64) + port_cnt_p = new_uint32_t_p() + uint32_t_p_assign(port_cnt_p, 64) + + rc = sx_api_port_device_get(handle, 1 , 0, port_attributes_list, port_cnt_p) + assert rc == SX_STATUS_SUCCESS, "sx_api_port_device_get failed, rc = %d" % rc + + port_cnt = uint32_t_p_value(port_cnt_p) + log_port_list = [] + for i in range(0, port_cnt): + port_attributes = sx_port_attributes_t_arr_getitem(port_attributes_list, i) + if port_attributes.port_mapping.module_port == sfp_module: + log_port_list.append(port_attributes.log_port) + + return log_port_list + +def set_sfp_admin_status(handle, meta, sfp_module, sfp_log_port_list, admin_status): + # Get PMAOS + pmaos = ku_pmaos_reg() + pmaos.module = sfp_module + meta.access_cmd = SXD_ACCESS_CMD_GET + rc = sxd_access_reg_pmaos(pmaos, meta, 1, None, None) + assert rc == SXD_STATUS_SUCCESS, "sxd_access_reg_pmaos failed, rc = %d" % rc + + # Set admin status to PMAOS + pmaos.ase = 1 + pmaos.ee = 1 + pmaos.e = 2 + pmaos.rst = 0 + if admin_status == SX_PORT_ADMIN_STATUS_DOWN: + pmaos.admin_status = 2 + else: + pmaos.admin_status = 1 + + meta.access_cmd = SXD_ACCESS_CMD_SET + rc = sxd_access_reg_pmaos(pmaos, meta, 1, None, None) + assert rc == SXD_STATUS_SUCCESS, "sxd_access_reg_pmaos failed, rc = %d" % rc + +# Check if SFP port number is provided +if len(sys.argv) < 3: + print "SFP module number or LPM is missed." + print "Usage: sfplpmset.py " + sys.exit(errno.EINVAL) + +lpm_enable = None +if sys.argv[2] == 'on': + lpm_enable = True +elif sys.argv[2] == 'off': + lpm_enable = False +else: + print "Unrecognized LPM parameter. Please use or values" + sys.exit(errno.EINVAL) + +# Init SDK API +rc, handle = sx_api_open(None) +if (rc != SX_STATUS_SUCCESS): + print "Failed to open api handle.\nPlease check that SDK is running." + sys.exit(errno.EACCES) + +pid = os.getpid() +rc = sxd_access_reg_init(pid, None, 0) +if (rc != 0): + print "Failed to initializing register access.\nPlease check that SDK is running." + sys.exit(errno.EACCES); + +# Get SFP module and log ports number and LPM status +sfp_module = int(sys.argv[1]) +log_port_list = get_log_ports(handle, sfp_module) +if not log_port_list: + print "Failed to get log ports" + sys.exit(errno.EACCES) + +# Get PMMP +pmmp = ku_pmmp_reg() +pmmp.module = sfp_module +meta = sxd_reg_meta_t() +meta.dev_id = 1 +meta.swid = 0 +meta.access_cmd = SXD_ACCESS_CMD_GET +rc = sxd_access_reg_pmmp(pmmp, meta, 1, None, None) +assert rc == SXD_STATUS_SUCCESS, "sxd_access_reg_pmmp failed, rc = %d" % rc + +# Disable admin status before LPM settings +set_sfp_admin_status(handle, meta, sfp_module, log_port_list, SX_PORT_ADMIN_STATUS_DOWN) + +# Set low power mode status +lpm_mask = 1 << 8 +if lpm_enable: + pmmp.eeprom_override = pmmp.eeprom_override | lpm_mask +else: + pmmp.eeprom_override = pmmp.eeprom_override & (~lpm_mask) + +meta.access_cmd = SXD_ACCESS_CMD_SET +rc = sxd_access_reg_pmmp(pmmp, meta, 1, None, None) +assert rc == SXD_STATUS_SUCCESS, "sxd_access_reg_pmmp failed, rc = %d" % rc + +# Enable admin status after LPM settings +set_sfp_admin_status(handle, meta, sfp_module, log_port_list, SX_PORT_ADMIN_STATUS_UP) diff --git a/device/mellanox/x86_64-mlnx_msn2410-r0/plugins/sfpreset.py b/device/mellanox/x86_64-mlnx_msn2410-r0/plugins/sfpreset.py new file mode 100644 index 00000000000..69fa2be614c --- /dev/null +++ b/device/mellanox/x86_64-mlnx_msn2410-r0/plugins/sfpreset.py @@ -0,0 +1,45 @@ +#!/usr/bin/env python + +import sys, errno +import os +from python_sdk_api.sxd_api import * +from python_sdk_api.sx_api import * + +# Check if SFP port number is provided +if len(sys.argv) < 2: + print "SFP module number or LPM is missed." + print "Usage: sfpreset.py " + sys.exit(errno.EINVAL) + +# Init SDK API +rc, handle = sx_api_open(None) +if (rc != SX_STATUS_SUCCESS): + print "Failed to open api handle.\nPlease check that SDK is running." + sys.exit(errno.EACCES) + +pid = os.getpid() +rc = sxd_access_reg_init(pid, None, 0) +if (rc != 0): + print "Failed to initializing register access.\nPlease check that SDK is running." + sys.exit(errno.EACCES) + +# Get SFP module number +sfp_module = int(sys.argv[1]) + +# Get PMAOS +pmaos = ku_pmaos_reg() +pmaos.module = sfp_module +meta = sxd_reg_meta_t() +meta.dev_id = 1 +meta.swid = 0 +meta.access_cmd = SXD_ACCESS_CMD_GET + +rc = sxd_access_reg_pmaos(pmaos, meta, 1, None, None) +assert rc == SXD_STATUS_SUCCESS, "sxd_access_reg_pmaos failed, rc = %d" % rc + +# Reset SFP +pmaos.rst = 1 +meta.access_cmd = SXD_ACCESS_CMD_SET +rc = sxd_access_reg_pmaos(pmaos, meta, 1, None, None) +assert rc == SXD_STATUS_SUCCESS, "sxd_access_reg_pmaos failed, rc = %d" % rc +print "Reset flag is set" diff --git a/device/mellanox/x86_64-mlnx_msn2410-r0/plugins/sfputil.py b/device/mellanox/x86_64-mlnx_msn2410-r0/plugins/sfputil.py index 0d7870b785f..d9699aca45a 100644 --- a/device/mellanox/x86_64-mlnx_msn2410-r0/plugins/sfputil.py +++ b/device/mellanox/x86_64-mlnx_msn2410-r0/plugins/sfputil.py @@ -5,6 +5,7 @@ try: import time + import subprocess from sonic_sfp.sfputilbase import SfpUtilBase except ImportError as e: raise ImportError("%s - required module not found" % str(e)) @@ -65,13 +66,86 @@ def get_presence(self, port_num): return False def get_low_power_mode(self, port_num): + # Check for invalid port_num + if port_num < self.port_start or port_num > self.port_end: + return False - raise NotImplementedError + lpm_cmd = "docker exec syncd python /usr/share/sonic/platform/plugins/sfplpmget.py {}".format(port_num) + + try: + output = subprocess.check_output(lpm_cmd, shell=True) + if 'LPM ON' in output: + return True + except subprocess.CalledProcessError as e: + print "Error! Unable to get LPM for {}, rc = {}, err msg: {}".format(port_num, e.returncode, e.output) + return False + + return False def set_low_power_mode(self, port_num, lpmode): + # Check for invalid port_num + if port_num < self.port_start or port_num > self.port_end: + return False + + curr_lpmode = self.get_low_power_mode(port_num) + if curr_lpmode == lpmode: + return True + + lpm = 'on' if lpmode else 'off' + lpm_cmd = "docker exec syncd python /usr/share/sonic/platform/plugins/sfplpmset.py {} {}".format(port_num, lpm) + sfp_port_names = self.physical_to_logical[port_num] + + # Get port admin status + try: + enabled_ports = subprocess.check_output("ip link show up", shell=True) + except subprocess.CalledProcessError as e: + print "Error! Unable to get ports status, err msg: {}".format(e.output) + return False - raise NotImplementedError + port_to_disable = [] + for port in sfp_port_names: + if port in enabled_ports: + port_to_disable.append(port) + + # Disable ports before LPM settings + for port in port_to_disable: + try: + subprocess.check_output("ifconfig {} down".format(port), shell=True) + except subprocess.CalledProcessError as e: + print "Error! Unable to set admin status to DOWN for {}, rc = {}, err msg: {}".format(port, e.returncode, e.output) + return False + + time.sleep(3) + + # Set LPM + try: + subprocess.check_output(lpm_cmd, shell=True) + except subprocess.CalledProcessError as e: + print "Error! Unable to set LPM for {}, rc = {}, err msg: {}".format(port_num, e.returncode, e.output) + return False + + # Enable ports after LPM settings + for port in port_to_disable: + try: + subprocess.check_output("ifconfig {} up".format(port), shell=True) + except subprocess.CalledProcessError as e: + print "Error! Unable to set admin status to UP for {}, rc = {}, err msg: {}".format(port, e.returncode, e.output) + return False + + return True def reset(self, port_num): + # Check for invalid port_num + if port_num < self.port_start or port_num > self.port_end: + return False + + lpm_cmd = "docker exec syncd python /usr/share/sonic/platform/plugins/sfpreset.py {}".format(port_num) + + try: + subprocess.check_output(lpm_cmd, shell=True) + return True + except subprocess.CalledProcessError as e: + print "Error! Unable to set LPM for {}, rc = {}, err msg: {}".format(port_num, e.returncode, e.output) + return False - raise NotImplementedError + return False diff --git a/device/mellanox/x86_64-mlnx_msn2700-r0/hw-management b/device/mellanox/x86_64-mlnx_msn2700-r0/hw-management deleted file mode 120000 index eb5e941daad..00000000000 --- a/device/mellanox/x86_64-mlnx_msn2700-r0/hw-management +++ /dev/null @@ -1 +0,0 @@ -/etc/mlnx/msn2700 \ No newline at end of file diff --git a/device/mellanox/x86_64-mlnx_msn2700-r0/plugins/eeprom.py b/device/mellanox/x86_64-mlnx_msn2700-r0/plugins/eeprom.py index 3650d9c8b70..61e37b51db7 100644 --- a/device/mellanox/x86_64-mlnx_msn2700-r0/plugins/eeprom.py +++ b/device/mellanox/x86_64-mlnx_msn2700-r0/plugins/eeprom.py @@ -28,5 +28,5 @@ class board(eeprom_tlvinfo.TlvInfoDecoder): _TLV_INFO_MAX_LEN = 256 def __init__(self, name, path, cpld_root, ro): - self.eeprom_path = "/bsp/eeprom/sys_eeprom" + self.eeprom_path = "/bsp/eeprom/vpd_info" super(board, self).__init__(self.eeprom_path, 0, '', True) diff --git a/device/mellanox/x86_64-mlnx_msn2700-r0/plugins/sfplpmget.py b/device/mellanox/x86_64-mlnx_msn2700-r0/plugins/sfplpmget.py new file mode 100644 index 00000000000..170766e9bce --- /dev/null +++ b/device/mellanox/x86_64-mlnx_msn2700-r0/plugins/sfplpmget.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python + +import sys, errno +import os +from python_sdk_api.sxd_api import * +from python_sdk_api.sx_api import * + +# Check if SFP port number is provided +if len(sys.argv) < 2: + print "SFP module number is missed." + print "Usage: sfplpmget.py " + sys.exit(errno.EINVAL) + +# Init SDK API +rc, handle = sx_api_open(None) +if (rc != SX_STATUS_SUCCESS): + print "Failed to open api handle.\nPlease check that SDK is running." + sys.exit(errno.EACCES) + +pid = os.getpid() +rc = sxd_access_reg_init(pid, None, 0) +if (rc != 0): + print "Failed to initializing register access.\nPlease check that SDK is running." + sys.exit(errno.EACCES) + +# Get SFP module number +sfp_module = int(sys.argv[1]) + +# Get MCION +mcion = ku_mcion_reg() +mcion.module = sfp_module +meta = sxd_reg_meta_t() +meta.dev_id = 1 +meta.swid = 0 +meta.access_cmd = SXD_ACCESS_CMD_GET + +rc = sxd_access_reg_mcion(mcion, meta, 1, None, None) +assert rc == SXD_STATUS_SUCCESS, "sxd_access_reg_mcion failed, rc = %d" % rc + +# Get low power mode status +lpm_mask = 1 << 8 +lpm_status = (lpm_mask & mcion.module_status_bits) != 0 +print "LPM ON" if lpm_status else "LPM OFF" diff --git a/device/mellanox/x86_64-mlnx_msn2700-r0/plugins/sfplpmset.py b/device/mellanox/x86_64-mlnx_msn2700-r0/plugins/sfplpmset.py new file mode 100644 index 00000000000..3f31af9f294 --- /dev/null +++ b/device/mellanox/x86_64-mlnx_msn2700-r0/plugins/sfplpmset.py @@ -0,0 +1,107 @@ +#!/usr/bin/env python + +import sys, errno +import time +import os +from python_sdk_api.sxd_api import * +from python_sdk_api.sx_api import * + +def get_log_ports(handle, sfp_module): + port_attributes_list = new_sx_port_attributes_t_arr(64) + port_cnt_p = new_uint32_t_p() + uint32_t_p_assign(port_cnt_p, 64) + + rc = sx_api_port_device_get(handle, 1 , 0, port_attributes_list, port_cnt_p) + assert rc == SX_STATUS_SUCCESS, "sx_api_port_device_get failed, rc = %d" % rc + + port_cnt = uint32_t_p_value(port_cnt_p) + log_port_list = [] + for i in range(0, port_cnt): + port_attributes = sx_port_attributes_t_arr_getitem(port_attributes_list, i) + if port_attributes.port_mapping.module_port == sfp_module: + log_port_list.append(port_attributes.log_port) + + return log_port_list + +def set_sfp_admin_status(handle, meta, sfp_module, sfp_log_port_list, admin_status): + # Get PMAOS + pmaos = ku_pmaos_reg() + pmaos.module = sfp_module + meta.access_cmd = SXD_ACCESS_CMD_GET + rc = sxd_access_reg_pmaos(pmaos, meta, 1, None, None) + assert rc == SXD_STATUS_SUCCESS, "sxd_access_reg_pmaos failed, rc = %d" % rc + + # Set admin status to PMAOS + pmaos.ase = 1 + pmaos.ee = 1 + pmaos.e = 2 + pmaos.rst = 0 + if admin_status == SX_PORT_ADMIN_STATUS_DOWN: + pmaos.admin_status = 2 + else: + pmaos.admin_status = 1 + + meta.access_cmd = SXD_ACCESS_CMD_SET + rc = sxd_access_reg_pmaos(pmaos, meta, 1, None, None) + assert rc == SXD_STATUS_SUCCESS, "sxd_access_reg_pmaos failed, rc = %d" % rc + +# Check if SFP port number is provided +if len(sys.argv) < 3: + print "SFP module number or LPM is missed." + print "Usage: sfplpmset.py " + sys.exit(errno.EINVAL) + +lpm_enable = None +if sys.argv[2] == 'on': + lpm_enable = True +elif sys.argv[2] == 'off': + lpm_enable = False +else: + print "Unrecognized LPM parameter. Please use or values" + sys.exit(errno.EINVAL) + +# Init SDK API +rc, handle = sx_api_open(None) +if (rc != SX_STATUS_SUCCESS): + print "Failed to open api handle.\nPlease check that SDK is running." + sys.exit(errno.EACCES) + +pid = os.getpid() +rc = sxd_access_reg_init(pid, None, 0) +if (rc != 0): + print "Failed to initializing register access.\nPlease check that SDK is running." + sys.exit(errno.EACCES); + +# Get SFP module and log ports number and LPM status +sfp_module = int(sys.argv[1]) +log_port_list = get_log_ports(handle, sfp_module) +if not log_port_list: + print "Failed to get log ports" + sys.exit(errno.EACCES) + +# Get PMMP +pmmp = ku_pmmp_reg() +pmmp.module = sfp_module +meta = sxd_reg_meta_t() +meta.dev_id = 1 +meta.swid = 0 +meta.access_cmd = SXD_ACCESS_CMD_GET +rc = sxd_access_reg_pmmp(pmmp, meta, 1, None, None) +assert rc == SXD_STATUS_SUCCESS, "sxd_access_reg_pmmp failed, rc = %d" % rc + +# Disable admin status before LPM settings +set_sfp_admin_status(handle, meta, sfp_module, log_port_list, SX_PORT_ADMIN_STATUS_DOWN) + +# Set low power mode status +lpm_mask = 1 << 8 +if lpm_enable: + pmmp.eeprom_override = pmmp.eeprom_override | lpm_mask +else: + pmmp.eeprom_override = pmmp.eeprom_override & (~lpm_mask) + +meta.access_cmd = SXD_ACCESS_CMD_SET +rc = sxd_access_reg_pmmp(pmmp, meta, 1, None, None) +assert rc == SXD_STATUS_SUCCESS, "sxd_access_reg_pmmp failed, rc = %d" % rc + +# Enable admin status after LPM settings +set_sfp_admin_status(handle, meta, sfp_module, log_port_list, SX_PORT_ADMIN_STATUS_UP) diff --git a/device/mellanox/x86_64-mlnx_msn2700-r0/plugins/sfpreset.py b/device/mellanox/x86_64-mlnx_msn2700-r0/plugins/sfpreset.py new file mode 100644 index 00000000000..69fa2be614c --- /dev/null +++ b/device/mellanox/x86_64-mlnx_msn2700-r0/plugins/sfpreset.py @@ -0,0 +1,45 @@ +#!/usr/bin/env python + +import sys, errno +import os +from python_sdk_api.sxd_api import * +from python_sdk_api.sx_api import * + +# Check if SFP port number is provided +if len(sys.argv) < 2: + print "SFP module number or LPM is missed." + print "Usage: sfpreset.py " + sys.exit(errno.EINVAL) + +# Init SDK API +rc, handle = sx_api_open(None) +if (rc != SX_STATUS_SUCCESS): + print "Failed to open api handle.\nPlease check that SDK is running." + sys.exit(errno.EACCES) + +pid = os.getpid() +rc = sxd_access_reg_init(pid, None, 0) +if (rc != 0): + print "Failed to initializing register access.\nPlease check that SDK is running." + sys.exit(errno.EACCES) + +# Get SFP module number +sfp_module = int(sys.argv[1]) + +# Get PMAOS +pmaos = ku_pmaos_reg() +pmaos.module = sfp_module +meta = sxd_reg_meta_t() +meta.dev_id = 1 +meta.swid = 0 +meta.access_cmd = SXD_ACCESS_CMD_GET + +rc = sxd_access_reg_pmaos(pmaos, meta, 1, None, None) +assert rc == SXD_STATUS_SUCCESS, "sxd_access_reg_pmaos failed, rc = %d" % rc + +# Reset SFP +pmaos.rst = 1 +meta.access_cmd = SXD_ACCESS_CMD_SET +rc = sxd_access_reg_pmaos(pmaos, meta, 1, None, None) +assert rc == SXD_STATUS_SUCCESS, "sxd_access_reg_pmaos failed, rc = %d" % rc +print "Reset flag is set" diff --git a/device/mellanox/x86_64-mlnx_msn2700-r0/plugins/sfputil.py b/device/mellanox/x86_64-mlnx_msn2700-r0/plugins/sfputil.py index b768cc44022..6aef1310d51 100644 --- a/device/mellanox/x86_64-mlnx_msn2700-r0/plugins/sfputil.py +++ b/device/mellanox/x86_64-mlnx_msn2700-r0/plugins/sfputil.py @@ -5,6 +5,7 @@ try: import time + import subprocess from sonic_sfp.sfputilbase import SfpUtilBase except ImportError as e: raise ImportError("%s - required module not found" % str(e)) @@ -65,13 +66,86 @@ def get_presence(self, port_num): return False def get_low_power_mode(self, port_num): + # Check for invalid port_num + if port_num < self.port_start or port_num > self.port_end: + return False - raise NotImplementedError + lpm_cmd = "docker exec syncd python /usr/share/sonic/platform/plugins/sfplpmget.py {}".format(port_num) + + try: + output = subprocess.check_output(lpm_cmd, shell=True) + if 'LPM ON' in output: + return True + except subprocess.CalledProcessError as e: + print "Error! Unable to get LPM for {}, rc = {}, err msg: {}".format(port_num, e.returncode, e.output) + return False + + return False def set_low_power_mode(self, port_num, lpmode): + # Check for invalid port_num + if port_num < self.port_start or port_num > self.port_end: + return False + + curr_lpmode = self.get_low_power_mode(port_num) + if curr_lpmode == lpmode: + return True + + lpm = 'on' if lpmode else 'off' + lpm_cmd = "docker exec syncd python /usr/share/sonic/platform/plugins/sfplpmset.py {} {}".format(port_num, lpm) + sfp_port_names = self.physical_to_logical[port_num] + + # Get port admin status + try: + enabled_ports = subprocess.check_output("ip link show up", shell=True) + except subprocess.CalledProcessError as e: + print "Error! Unable to get ports status, err msg: {}".format(e.output) + return False - raise NotImplementedError + port_to_disable = [] + for port in sfp_port_names: + if port in enabled_ports: + port_to_disable.append(port) + + # Disable ports before LPM settings + for port in port_to_disable: + try: + subprocess.check_output("ifconfig {} down".format(port), shell=True) + except subprocess.CalledProcessError as e: + print "Error! Unable to set admin status to DOWN for {}, rc = {}, err msg: {}".format(port, e.returncode, e.output) + return False + + time.sleep(3) + + # Set LPM + try: + subprocess.check_output(lpm_cmd, shell=True) + except subprocess.CalledProcessError as e: + print "Error! Unable to set LPM for {}, rc = {}, err msg: {}".format(port_num, e.returncode, e.output) + return False + + # Enable ports after LPM settings + for port in port_to_disable: + try: + subprocess.check_output("ifconfig {} up".format(port), shell=True) + except subprocess.CalledProcessError as e: + print "Error! Unable to set admin status to UP for {}, rc = {}, err msg: {}".format(port, e.returncode, e.output) + return False + + return True def reset(self, port_num): + # Check for invalid port_num + if port_num < self.port_start or port_num > self.port_end: + return False + + lpm_cmd = "docker exec syncd python /usr/share/sonic/platform/plugins/sfpreset.py {}".format(port_num) + + try: + subprocess.check_output(lpm_cmd, shell=True) + return True + except subprocess.CalledProcessError as e: + print "Error! Unable to set LPM for {}, rc = {}, err msg: {}".format(port_num, e.returncode, e.output) + return False - raise NotImplementedError + return False diff --git a/device/mellanox/x86_64-mlnx_msn2740-r0/hw-management b/device/mellanox/x86_64-mlnx_msn2740-r0/hw-management deleted file mode 120000 index b231cbeea1b..00000000000 --- a/device/mellanox/x86_64-mlnx_msn2740-r0/hw-management +++ /dev/null @@ -1 +0,0 @@ -/etc/mlnx/msn2740 \ No newline at end of file diff --git a/device/mellanox/x86_64-mlnx_msn2740-r0/plugins/eeprom.py b/device/mellanox/x86_64-mlnx_msn2740-r0/plugins/eeprom.py index 3650d9c8b70..61e37b51db7 100644 --- a/device/mellanox/x86_64-mlnx_msn2740-r0/plugins/eeprom.py +++ b/device/mellanox/x86_64-mlnx_msn2740-r0/plugins/eeprom.py @@ -28,5 +28,5 @@ class board(eeprom_tlvinfo.TlvInfoDecoder): _TLV_INFO_MAX_LEN = 256 def __init__(self, name, path, cpld_root, ro): - self.eeprom_path = "/bsp/eeprom/sys_eeprom" + self.eeprom_path = "/bsp/eeprom/vpd_info" super(board, self).__init__(self.eeprom_path, 0, '', True) diff --git a/device/mellanox/x86_64-mlnx_msn2740-r0/plugins/sfplpmget.py b/device/mellanox/x86_64-mlnx_msn2740-r0/plugins/sfplpmget.py new file mode 100644 index 00000000000..170766e9bce --- /dev/null +++ b/device/mellanox/x86_64-mlnx_msn2740-r0/plugins/sfplpmget.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python + +import sys, errno +import os +from python_sdk_api.sxd_api import * +from python_sdk_api.sx_api import * + +# Check if SFP port number is provided +if len(sys.argv) < 2: + print "SFP module number is missed." + print "Usage: sfplpmget.py " + sys.exit(errno.EINVAL) + +# Init SDK API +rc, handle = sx_api_open(None) +if (rc != SX_STATUS_SUCCESS): + print "Failed to open api handle.\nPlease check that SDK is running." + sys.exit(errno.EACCES) + +pid = os.getpid() +rc = sxd_access_reg_init(pid, None, 0) +if (rc != 0): + print "Failed to initializing register access.\nPlease check that SDK is running." + sys.exit(errno.EACCES) + +# Get SFP module number +sfp_module = int(sys.argv[1]) + +# Get MCION +mcion = ku_mcion_reg() +mcion.module = sfp_module +meta = sxd_reg_meta_t() +meta.dev_id = 1 +meta.swid = 0 +meta.access_cmd = SXD_ACCESS_CMD_GET + +rc = sxd_access_reg_mcion(mcion, meta, 1, None, None) +assert rc == SXD_STATUS_SUCCESS, "sxd_access_reg_mcion failed, rc = %d" % rc + +# Get low power mode status +lpm_mask = 1 << 8 +lpm_status = (lpm_mask & mcion.module_status_bits) != 0 +print "LPM ON" if lpm_status else "LPM OFF" diff --git a/device/mellanox/x86_64-mlnx_msn2740-r0/plugins/sfplpmset.py b/device/mellanox/x86_64-mlnx_msn2740-r0/plugins/sfplpmset.py new file mode 100644 index 00000000000..3f31af9f294 --- /dev/null +++ b/device/mellanox/x86_64-mlnx_msn2740-r0/plugins/sfplpmset.py @@ -0,0 +1,107 @@ +#!/usr/bin/env python + +import sys, errno +import time +import os +from python_sdk_api.sxd_api import * +from python_sdk_api.sx_api import * + +def get_log_ports(handle, sfp_module): + port_attributes_list = new_sx_port_attributes_t_arr(64) + port_cnt_p = new_uint32_t_p() + uint32_t_p_assign(port_cnt_p, 64) + + rc = sx_api_port_device_get(handle, 1 , 0, port_attributes_list, port_cnt_p) + assert rc == SX_STATUS_SUCCESS, "sx_api_port_device_get failed, rc = %d" % rc + + port_cnt = uint32_t_p_value(port_cnt_p) + log_port_list = [] + for i in range(0, port_cnt): + port_attributes = sx_port_attributes_t_arr_getitem(port_attributes_list, i) + if port_attributes.port_mapping.module_port == sfp_module: + log_port_list.append(port_attributes.log_port) + + return log_port_list + +def set_sfp_admin_status(handle, meta, sfp_module, sfp_log_port_list, admin_status): + # Get PMAOS + pmaos = ku_pmaos_reg() + pmaos.module = sfp_module + meta.access_cmd = SXD_ACCESS_CMD_GET + rc = sxd_access_reg_pmaos(pmaos, meta, 1, None, None) + assert rc == SXD_STATUS_SUCCESS, "sxd_access_reg_pmaos failed, rc = %d" % rc + + # Set admin status to PMAOS + pmaos.ase = 1 + pmaos.ee = 1 + pmaos.e = 2 + pmaos.rst = 0 + if admin_status == SX_PORT_ADMIN_STATUS_DOWN: + pmaos.admin_status = 2 + else: + pmaos.admin_status = 1 + + meta.access_cmd = SXD_ACCESS_CMD_SET + rc = sxd_access_reg_pmaos(pmaos, meta, 1, None, None) + assert rc == SXD_STATUS_SUCCESS, "sxd_access_reg_pmaos failed, rc = %d" % rc + +# Check if SFP port number is provided +if len(sys.argv) < 3: + print "SFP module number or LPM is missed." + print "Usage: sfplpmset.py " + sys.exit(errno.EINVAL) + +lpm_enable = None +if sys.argv[2] == 'on': + lpm_enable = True +elif sys.argv[2] == 'off': + lpm_enable = False +else: + print "Unrecognized LPM parameter. Please use or values" + sys.exit(errno.EINVAL) + +# Init SDK API +rc, handle = sx_api_open(None) +if (rc != SX_STATUS_SUCCESS): + print "Failed to open api handle.\nPlease check that SDK is running." + sys.exit(errno.EACCES) + +pid = os.getpid() +rc = sxd_access_reg_init(pid, None, 0) +if (rc != 0): + print "Failed to initializing register access.\nPlease check that SDK is running." + sys.exit(errno.EACCES); + +# Get SFP module and log ports number and LPM status +sfp_module = int(sys.argv[1]) +log_port_list = get_log_ports(handle, sfp_module) +if not log_port_list: + print "Failed to get log ports" + sys.exit(errno.EACCES) + +# Get PMMP +pmmp = ku_pmmp_reg() +pmmp.module = sfp_module +meta = sxd_reg_meta_t() +meta.dev_id = 1 +meta.swid = 0 +meta.access_cmd = SXD_ACCESS_CMD_GET +rc = sxd_access_reg_pmmp(pmmp, meta, 1, None, None) +assert rc == SXD_STATUS_SUCCESS, "sxd_access_reg_pmmp failed, rc = %d" % rc + +# Disable admin status before LPM settings +set_sfp_admin_status(handle, meta, sfp_module, log_port_list, SX_PORT_ADMIN_STATUS_DOWN) + +# Set low power mode status +lpm_mask = 1 << 8 +if lpm_enable: + pmmp.eeprom_override = pmmp.eeprom_override | lpm_mask +else: + pmmp.eeprom_override = pmmp.eeprom_override & (~lpm_mask) + +meta.access_cmd = SXD_ACCESS_CMD_SET +rc = sxd_access_reg_pmmp(pmmp, meta, 1, None, None) +assert rc == SXD_STATUS_SUCCESS, "sxd_access_reg_pmmp failed, rc = %d" % rc + +# Enable admin status after LPM settings +set_sfp_admin_status(handle, meta, sfp_module, log_port_list, SX_PORT_ADMIN_STATUS_UP) diff --git a/device/mellanox/x86_64-mlnx_msn2740-r0/plugins/sfpreset.py b/device/mellanox/x86_64-mlnx_msn2740-r0/plugins/sfpreset.py new file mode 100644 index 00000000000..69fa2be614c --- /dev/null +++ b/device/mellanox/x86_64-mlnx_msn2740-r0/plugins/sfpreset.py @@ -0,0 +1,45 @@ +#!/usr/bin/env python + +import sys, errno +import os +from python_sdk_api.sxd_api import * +from python_sdk_api.sx_api import * + +# Check if SFP port number is provided +if len(sys.argv) < 2: + print "SFP module number or LPM is missed." + print "Usage: sfpreset.py " + sys.exit(errno.EINVAL) + +# Init SDK API +rc, handle = sx_api_open(None) +if (rc != SX_STATUS_SUCCESS): + print "Failed to open api handle.\nPlease check that SDK is running." + sys.exit(errno.EACCES) + +pid = os.getpid() +rc = sxd_access_reg_init(pid, None, 0) +if (rc != 0): + print "Failed to initializing register access.\nPlease check that SDK is running." + sys.exit(errno.EACCES) + +# Get SFP module number +sfp_module = int(sys.argv[1]) + +# Get PMAOS +pmaos = ku_pmaos_reg() +pmaos.module = sfp_module +meta = sxd_reg_meta_t() +meta.dev_id = 1 +meta.swid = 0 +meta.access_cmd = SXD_ACCESS_CMD_GET + +rc = sxd_access_reg_pmaos(pmaos, meta, 1, None, None) +assert rc == SXD_STATUS_SUCCESS, "sxd_access_reg_pmaos failed, rc = %d" % rc + +# Reset SFP +pmaos.rst = 1 +meta.access_cmd = SXD_ACCESS_CMD_SET +rc = sxd_access_reg_pmaos(pmaos, meta, 1, None, None) +assert rc == SXD_STATUS_SUCCESS, "sxd_access_reg_pmaos failed, rc = %d" % rc +print "Reset flag is set" diff --git a/device/mellanox/x86_64-mlnx_msn2740-r0/plugins/sfputil.py b/device/mellanox/x86_64-mlnx_msn2740-r0/plugins/sfputil.py index b768cc44022..6aef1310d51 100644 --- a/device/mellanox/x86_64-mlnx_msn2740-r0/plugins/sfputil.py +++ b/device/mellanox/x86_64-mlnx_msn2740-r0/plugins/sfputil.py @@ -5,6 +5,7 @@ try: import time + import subprocess from sonic_sfp.sfputilbase import SfpUtilBase except ImportError as e: raise ImportError("%s - required module not found" % str(e)) @@ -65,13 +66,86 @@ def get_presence(self, port_num): return False def get_low_power_mode(self, port_num): + # Check for invalid port_num + if port_num < self.port_start or port_num > self.port_end: + return False - raise NotImplementedError + lpm_cmd = "docker exec syncd python /usr/share/sonic/platform/plugins/sfplpmget.py {}".format(port_num) + + try: + output = subprocess.check_output(lpm_cmd, shell=True) + if 'LPM ON' in output: + return True + except subprocess.CalledProcessError as e: + print "Error! Unable to get LPM for {}, rc = {}, err msg: {}".format(port_num, e.returncode, e.output) + return False + + return False def set_low_power_mode(self, port_num, lpmode): + # Check for invalid port_num + if port_num < self.port_start or port_num > self.port_end: + return False + + curr_lpmode = self.get_low_power_mode(port_num) + if curr_lpmode == lpmode: + return True + + lpm = 'on' if lpmode else 'off' + lpm_cmd = "docker exec syncd python /usr/share/sonic/platform/plugins/sfplpmset.py {} {}".format(port_num, lpm) + sfp_port_names = self.physical_to_logical[port_num] + + # Get port admin status + try: + enabled_ports = subprocess.check_output("ip link show up", shell=True) + except subprocess.CalledProcessError as e: + print "Error! Unable to get ports status, err msg: {}".format(e.output) + return False - raise NotImplementedError + port_to_disable = [] + for port in sfp_port_names: + if port in enabled_ports: + port_to_disable.append(port) + + # Disable ports before LPM settings + for port in port_to_disable: + try: + subprocess.check_output("ifconfig {} down".format(port), shell=True) + except subprocess.CalledProcessError as e: + print "Error! Unable to set admin status to DOWN for {}, rc = {}, err msg: {}".format(port, e.returncode, e.output) + return False + + time.sleep(3) + + # Set LPM + try: + subprocess.check_output(lpm_cmd, shell=True) + except subprocess.CalledProcessError as e: + print "Error! Unable to set LPM for {}, rc = {}, err msg: {}".format(port_num, e.returncode, e.output) + return False + + # Enable ports after LPM settings + for port in port_to_disable: + try: + subprocess.check_output("ifconfig {} up".format(port), shell=True) + except subprocess.CalledProcessError as e: + print "Error! Unable to set admin status to UP for {}, rc = {}, err msg: {}".format(port, e.returncode, e.output) + return False + + return True def reset(self, port_num): + # Check for invalid port_num + if port_num < self.port_start or port_num > self.port_end: + return False + + lpm_cmd = "docker exec syncd python /usr/share/sonic/platform/plugins/sfpreset.py {}".format(port_num) + + try: + subprocess.check_output(lpm_cmd, shell=True) + return True + except subprocess.CalledProcessError as e: + print "Error! Unable to set LPM for {}, rc = {}, err msg: {}".format(port_num, e.returncode, e.output) + return False - raise NotImplementedError + return False diff --git a/device/mellanox/x86_64-mlnx_msn2740-r0/sensors.conf b/device/mellanox/x86_64-mlnx_msn2740-r0/sensors.conf new file mode 100644 index 00000000000..a3e30391863 --- /dev/null +++ b/device/mellanox/x86_64-mlnx_msn2740-r0/sensors.conf @@ -0,0 +1,21 @@ +bus "i2c-7" "i2c-1-mux (chan_id 5)" +chip "lm75-i2c-7-4a" + label temp1 "Ambient Port Temp" + +bus "i2c-5" "i2c-1-mux (chan_id 3)" +chip "ucd9200-i2c-5-27" + label in1 "UCD1 vin" + label in2 "ASIC 3.3 vout" + label in3 "ASIC 1.2 vout" + label temp1 "UCD1 Temp" + label temp2 "UCD1 Temp2" + +chip "ucd9200-i2c-5-41" + label in1 "UCD2 vin" + label in2 "ASIC Vcore vout" + label temp1 "UCD2 Temp1" + label temp2 "UCD2 Temp2" + +bus "i2c-17" "i2c-1-mux (chan_id 7)" +chip "lm75-i2c-17-49" + label temp1 "Ambient Board Temp" diff --git a/device/mitac/x86_64-mitac_ly1200_b32h0_c3-r0/MiTAC-LY1200-B32H0-C3/port_config.ini b/device/mitac/x86_64-mitac_ly1200_b32h0_c3-r0/MiTAC-LY1200-B32H0-C3/port_config.ini new file mode 100644 index 00000000000..1fa6d21d960 --- /dev/null +++ b/device/mitac/x86_64-mitac_ly1200_b32h0_c3-r0/MiTAC-LY1200-B32H0-C3/port_config.ini @@ -0,0 +1,33 @@ +# name lanes alias +Ethernet0 49,50,51,52 hundredGigE1 +Ethernet4 53,54,55,56 hundredGigE2 +Ethernet8 57,58,59,60 hundredGigE3 +Ethernet12 61,62,63,64 hundredGigE4 +Ethernet16 65,66,67,68 hundredGigE5 +Ethernet20 69,70,71,72 hundredGigE6 +Ethernet24 73,74,75,76 hundredGigE7 +Ethernet28 77,78,79,80 hundredGigE8 +Ethernet32 33,34,35,36 hundredGigE9 +Ethernet36 37,38,39,40 hundredGigE10 +Ethernet40 41,42,43,44 hundredGigE11 +Ethernet44 45,46,47,48 hundredGigE12 +Ethernet48 81,82,83,84 hundredGigE13 +Ethernet52 85,86,87,88 hundredGigE14 +Ethernet56 89,90,91,92 hundredGigE15 +Ethernet60 93,94,95,96 hundredGigE16 +Ethernet64 97,98,99,100 hundredGigE17 +Ethernet68 101,102,103,104 hundredGigE18 +Ethernet72 105,106,107,108 hundredGigE19 +Ethernet76 109,110,111,112 hundredGigE20 +Ethernet80 17,18,19,20 hundredGigE21 +Ethernet84 21,22,23,24 hundredGigE22 +Ethernet88 25,26,27,28 hundredGigE23 +Ethernet92 29,30,31,32 hundredGigE24 +Ethernet96 113,114,115,116 hundredGigE25 +Ethernet100 117,118,119,120 hundredGigE26 +Ethernet104 121,122,123,124 hundredGigE27 +Ethernet108 125,126,127,128 hundredGigE28 +Ethernet112 1,2,3,4 hundredGigE29 +Ethernet116 5,6,7,8 hundredGigE30 +Ethernet120 9,10,11,12 hundredGigE31 +Ethernet124 13,14,15,16 hundredGigE32 diff --git a/device/mitac/x86_64-mitac_ly1200_b32h0_c3-r0/MiTAC-LY1200-B32H0-C3/sai.profile b/device/mitac/x86_64-mitac_ly1200_b32h0_c3-r0/MiTAC-LY1200-B32H0-C3/sai.profile new file mode 100644 index 00000000000..5bf97eb31a4 --- /dev/null +++ b/device/mitac/x86_64-mitac_ly1200_b32h0_c3-r0/MiTAC-LY1200-B32H0-C3/sai.profile @@ -0,0 +1 @@ +SAI_INIT_CONFIG_FILE=/etc/bcm/th-ly1200-32x100G.config.bcm diff --git a/device/mitac/x86_64-mitac_ly1200_b32h0_c3-r0/installer.conf b/device/mitac/x86_64-mitac_ly1200_b32h0_c3-r0/installer.conf new file mode 100644 index 00000000000..8d4683add46 --- /dev/null +++ b/device/mitac/x86_64-mitac_ly1200_b32h0_c3-r0/installer.conf @@ -0,0 +1,4 @@ +CONSOLE_PORT=0x3f8 +CONSOLE_DEV=0 +CONSOLE_SPEED=115200 +ONIE_PLATFORM_EXTRA_CMDLINE_LINUX="acpi_enforce_resources=lax pcie_aspm=off irqpoll" diff --git a/device/mitac/x86_64-mitac_ly1200_b32h0_c3-r0/led_proc_init.soc b/device/mitac/x86_64-mitac_ly1200_b32h0_c3-r0/led_proc_init.soc new file mode 100644 index 00000000000..867cd1b6fe3 --- /dev/null +++ b/device/mitac/x86_64-mitac_ly1200_b32h0_c3-r0/led_proc_init.soc @@ -0,0 +1,43 @@ +m CMIC_LEDUP0_PORT_ORDER_REMAP_0_3 REMAP_PORT_0=31 REMAP_PORT_1=30 REMAP_PORT_2=29 REMAP_PORT_3=28 +m CMIC_LEDUP0_PORT_ORDER_REMAP_4_7 REMAP_PORT_4=27 REMAP_PORT_5=26 REMAP_PORT_6=25 REMAP_PORT_7=24 +m CMIC_LEDUP0_PORT_ORDER_REMAP_8_11 REMAP_PORT_8=23 REMAP_PORT_9=22 REMAP_PORT_10=21 REMAP_PORT_11=20 +m CMIC_LEDUP0_PORT_ORDER_REMAP_12_15 REMAP_PORT_12=19 REMAP_PORT_13=18 REMAP_PORT_14=17 REMAP_PORT_15=16 +m CMIC_LEDUP0_PORT_ORDER_REMAP_16_19 REMAP_PORT_16=63 REMAP_PORT_17=62 REMAP_PORT_18=61 REMAP_PORT_19=60 +m CMIC_LEDUP0_PORT_ORDER_REMAP_20_23 REMAP_PORT_20=59 REMAP_PORT_21=58 REMAP_PORT_22=57 REMAP_PORT_23=56 +m CMIC_LEDUP0_PORT_ORDER_REMAP_24_27 REMAP_PORT_24=55 REMAP_PORT_25=54 REMAP_PORT_26=53 REMAP_PORT_27=52 +m CMIC_LEDUP0_PORT_ORDER_REMAP_28_31 REMAP_PORT_28=51 REMAP_PORT_29=50 REMAP_PORT_30=49 REMAP_PORT_31=48 +m CMIC_LEDUP0_PORT_ORDER_REMAP_32_35 REMAP_PORT_32=47 REMAP_PORT_33=46 REMAP_PORT_34=45 REMAP_PORT_35=44 +m CMIC_LEDUP0_PORT_ORDER_REMAP_36_39 REMAP_PORT_36=43 REMAP_PORT_37=42 REMAP_PORT_38=41 REMAP_PORT_39=40 +m CMIC_LEDUP0_PORT_ORDER_REMAP_40_43 REMAP_PORT_40=39 REMAP_PORT_41=38 REMAP_PORT_42=37 REMAP_PORT_43=36 +m CMIC_LEDUP0_PORT_ORDER_REMAP_44_47 REMAP_PORT_44=35 REMAP_PORT_45=34 REMAP_PORT_46=33 REMAP_PORT_47=32 +m CMIC_LEDUP0_PORT_ORDER_REMAP_48_51 REMAP_PORT_48=15 REMAP_PORT_49=14 REMAP_PORT_50=13 REMAP_PORT_51=12 +m CMIC_LEDUP0_PORT_ORDER_REMAP_52_55 REMAP_PORT_52=11 REMAP_PORT_53=10 REMAP_PORT_54=9 REMAP_PORT_55=8 +m CMIC_LEDUP0_PORT_ORDER_REMAP_56_59 REMAP_PORT_56=7 REMAP_PORT_57=6 REMAP_PORT_58=5 REMAP_PORT_59=4 +m CMIC_LEDUP0_PORT_ORDER_REMAP_60_63 REMAP_PORT_60=3 REMAP_PORT_61=2 REMAP_PORT_62=1 REMAP_PORT_63=0 + +m CMIC_LEDUP1_PORT_ORDER_REMAP_0_3 REMAP_PORT_0=35 REMAP_PORT_1=34 REMAP_PORT_2=33 REMAP_PORT_3=32 +m CMIC_LEDUP1_PORT_ORDER_REMAP_4_7 REMAP_PORT_4=39 REMAP_PORT_5=38 REMAP_PORT_6=37 REMAP_PORT_7=36 +m CMIC_LEDUP1_PORT_ORDER_REMAP_8_11 REMAP_PORT_8=43 REMAP_PORT_9=42 REMAP_PORT_10=41 REMAP_PORT_11=40 +m CMIC_LEDUP1_PORT_ORDER_REMAP_12_15 REMAP_PORT_12=47 REMAP_PORT_13=46 REMAP_PORT_14=45 REMAP_PORT_15=44 +m CMIC_LEDUP1_PORT_ORDER_REMAP_16_19 REMAP_PORT_16=3 REMAP_PORT_17=2 REMAP_PORT_18=1 REMAP_PORT_19=0 +m CMIC_LEDUP1_PORT_ORDER_REMAP_20_23 REMAP_PORT_20=7 REMAP_PORT_21=6 REMAP_PORT_22=5 REMAP_PORT_23=4 +m CMIC_LEDUP1_PORT_ORDER_REMAP_24_27 REMAP_PORT_24=11 REMAP_PORT_25=10 REMAP_PORT_26=9 REMAP_PORT_27=8 +m CMIC_LEDUP1_PORT_ORDER_REMAP_28_31 REMAP_PORT_28=15 REMAP_PORT_29=14 REMAP_PORT_30=13 REMAP_PORT_31=12 +m CMIC_LEDUP1_PORT_ORDER_REMAP_32_35 REMAP_PORT_32=19 REMAP_PORT_33=18 REMAP_PORT_34=17 REMAP_PORT_35=16 +m CMIC_LEDUP1_PORT_ORDER_REMAP_36_39 REMAP_PORT_36=23 REMAP_PORT_37=22 REMAP_PORT_38=21 REMAP_PORT_39=20 +m CMIC_LEDUP1_PORT_ORDER_REMAP_40_43 REMAP_PORT_40=27 REMAP_PORT_41=26 REMAP_PORT_42=25 REMAP_PORT_43=24 +m CMIC_LEDUP1_PORT_ORDER_REMAP_44_47 REMAP_PORT_44=31 REMAP_PORT_45=30 REMAP_PORT_46=29 REMAP_PORT_47=28 +m CMIC_LEDUP1_PORT_ORDER_REMAP_48_51 REMAP_PORT_48=51 REMAP_PORT_49=50 REMAP_PORT_50=49 REMAP_PORT_51=48 +m CMIC_LEDUP1_PORT_ORDER_REMAP_52_55 REMAP_PORT_52=55 REMAP_PORT_53=54 REMAP_PORT_54=53 REMAP_PORT_55=52 +m CMIC_LEDUP1_PORT_ORDER_REMAP_56_59 REMAP_PORT_56=59 REMAP_PORT_57=58 REMAP_PORT_58=57 REMAP_PORT_59=56 +m CMIC_LEDUP1_PORT_ORDER_REMAP_60_63 REMAP_PORT_60=63 REMAP_PORT_61=62 REMAP_PORT_62=61 REMAP_PORT_63=60 + +led 0 prog 06 EE 80 D2 0A 71 08 E0 60 EE E9 D2 05 75 10 81 61 ED 02 00 12 A0 F8 15 67 22 F2 01 D2 40 74 14 3A 80 28 32 08 97 71 2A 77 65 1A 07 71 30 77 3C 1A 02 27 1A 03 27 C7 97 71 5E 77 4A 28 32 00 32 01 B7 26 ED C7 97 75 50 77 65 1A 02 71 50 77 57 32 0E 87 32 0F 87 57 32 0F 87 32 0E 87 57 32 0E 87 32 0E 87 57 32 0F 87 32 0F 87 57 + +led 0 start + +led 1 prog 06 EE 80 D2 0A 71 08 E0 60 EE E9 D2 05 75 10 81 61 ED 02 00 12 A0 F8 15 67 22 F2 01 D2 40 74 14 3A 80 28 32 08 97 71 2A 77 65 1A 07 71 30 77 3C 1A 02 27 1A 03 27 C7 97 71 5E 77 4A 28 32 00 32 01 B7 26 ED C7 97 75 50 77 65 1A 02 71 50 77 57 32 0E 87 32 0F 87 57 32 0F 87 32 0E 87 57 32 0E 87 32 0E 87 57 32 0F 87 32 0F 87 57 + +led 1 start + +led auto on diff --git a/device/mitac/x86_64-mitac_ly1200_b32h0_c3-r0/minigraph.xml b/device/mitac/x86_64-mitac_ly1200_b32h0_c3-r0/minigraph.xml new file mode 100644 index 00000000000..210eac2fd62 --- /dev/null +++ b/device/mitac/x86_64-mitac_ly1200_b32h0_c3-r0/minigraph.xml @@ -0,0 +1,1074 @@ + + + + + + ARISTA01T0 + 10.0.0.33 + sonic + 10.0.0.32 + 1 + 180 + 60 + + + sonic + 10.0.0.0 + ARISTA01T2 + 10.0.0.1 + 1 + 180 + 60 + + + ARISTA02T0 + 10.0.0.35 + sonic + 10.0.0.34 + 1 + 180 + 60 + + + sonic + 10.0.0.2 + ARISTA02T2 + 10.0.0.3 + 1 + 180 + 60 + + + ARISTA03T0 + 10.0.0.37 + sonic + 10.0.0.36 + 1 + 180 + 60 + + + sonic + 10.0.0.4 + ARISTA03T2 + 10.0.0.5 + 1 + 180 + 60 + + + ARISTA04T0 + 10.0.0.39 + sonic + 10.0.0.38 + 1 + 180 + 60 + + + sonic + 10.0.0.6 + ARISTA04T2 + 10.0.0.7 + 1 + 180 + 60 + + + ARISTA05T0 + 10.0.0.41 + sonic + 10.0.0.40 + 1 + 180 + 60 + + + sonic + 10.0.0.8 + ARISTA05T2 + 10.0.0.9 + 1 + 180 + 60 + + + ARISTA06T0 + 10.0.0.43 + sonic + 10.0.0.42 + 1 + 180 + 60 + + + sonic + 10.0.0.10 + ARISTA06T2 + 10.0.0.11 + 1 + 180 + 60 + + + ARISTA07T0 + 10.0.0.45 + sonic + 10.0.0.44 + 1 + 180 + 60 + + + sonic + 10.0.0.12 + ARISTA07T2 + 10.0.0.13 + 1 + 180 + 60 + + + ARISTA08T0 + 10.0.0.47 + sonic + 10.0.0.46 + 1 + 180 + 60 + + + sonic + 10.0.0.14 + ARISTA08T2 + 10.0.0.15 + 1 + 180 + 60 + + + ARISTA09T0 + 10.0.0.49 + sonic + 10.0.0.48 + 1 + 180 + 60 + + + sonic + 10.0.0.16 + ARISTA09T2 + 10.0.0.17 + 1 + 180 + 60 + + + ARISTA10T0 + 10.0.0.51 + sonic + 10.0.0.50 + 1 + 180 + 60 + + + sonic + 10.0.0.18 + ARISTA10T2 + 10.0.0.19 + 1 + 180 + 60 + + + ARISTA11T0 + 10.0.0.53 + sonic + 10.0.0.52 + 1 + 180 + 60 + + + sonic + 10.0.0.20 + ARISTA11T2 + 10.0.0.21 + 1 + 180 + 60 + + + ARISTA12T0 + 10.0.0.55 + sonic + 10.0.0.54 + 1 + 180 + 60 + + + sonic + 10.0.0.22 + ARISTA12T2 + 10.0.0.23 + 1 + 180 + 60 + + + ARISTA13T0 + 10.0.0.57 + sonic + 10.0.0.56 + 1 + 180 + 60 + + + sonic + 10.0.0.24 + ARISTA13T2 + 10.0.0.25 + 1 + 180 + 60 + + + ARISTA14T0 + 10.0.0.59 + sonic + 10.0.0.58 + 1 + 180 + 60 + + + sonic + 10.0.0.26 + ARISTA14T2 + 10.0.0.27 + 1 + 180 + 60 + + + ARISTA15T0 + 10.0.0.61 + sonic + 10.0.0.60 + 1 + 180 + 60 + + + sonic + 10.0.0.28 + ARISTA15T2 + 10.0.0.29 + 1 + 180 + 60 + + + ARISTA16T0 + 10.0.0.63 + sonic + 10.0.0.62 + 1 + 180 + 60 + + + sonic + 10.0.0.30 + ARISTA16T2 + 10.0.0.31 + 1 + 180 + 60 + + + + + 65100 + sonic + + +
10.0.0.33
+ + +
+ +
10.0.0.1
+ + +
+ +
10.0.0.35
+ + +
+ +
10.0.0.3
+ + +
+ +
10.0.0.37
+ + +
+ +
10.0.0.5
+ + +
+ +
10.0.0.39
+ + +
+ +
10.0.0.7
+ + +
+ +
10.0.0.41
+ + +
+ +
10.0.0.9
+ + +
+ +
10.0.0.43
+ + +
+ +
10.0.0.11
+ + +
+ +
10.0.0.45
+ + +
+ +
10.0.0.13
+ + +
+ +
10.0.0.47
+ + +
+ +
10.0.0.15
+ + +
+ +
10.0.0.49
+ + +
+ +
10.0.0.17
+ + +
+ +
10.0.0.51
+ + +
+ +
10.0.0.19
+ + +
+ +
10.0.0.53
+ + +
+ +
10.0.0.21
+ + +
+ +
10.0.0.55
+ + +
+ +
10.0.0.23
+ + +
+ +
10.0.0.57
+ + +
+ +
10.0.0.25
+ + +
+ +
10.0.0.59
+ + +
+ +
10.0.0.27
+ + +
+ +
10.0.0.61
+ + +
+ +
10.0.0.29
+ + +
+ +
10.0.0.63
+ + +
+ +
10.0.0.31
+ + +
+
+ +
+ + 64001 + ARISTA01T0 + + + + 65200 + ARISTA01T2 + + + + 64002 + ARISTA02T0 + + + + 65200 + ARISTA02T2 + + + + 64003 + ARISTA03T0 + + + + 65200 + ARISTA03T2 + + + + 64004 + ARISTA04T0 + + + + 65200 + ARISTA04T2 + + + + 64005 + ARISTA05T0 + + + + 65200 + ARISTA05T2 + + + + 64006 + ARISTA06T0 + + + + 65200 + ARISTA06T2 + + + + 64007 + ARISTA07T0 + + + + 65200 + ARISTA07T2 + + + + 64008 + ARISTA08T0 + + + + 65200 + ARISTA08T2 + + + + 64009 + ARISTA09T0 + + + + 65200 + ARISTA09T2 + + + + 64010 + ARISTA10T0 + + + + 65200 + ARISTA10T2 + + + + 64011 + ARISTA11T0 + + + + 65200 + ARISTA11T2 + + + + 64012 + ARISTA12T0 + + + + 65200 + ARISTA12T2 + + + + 64013 + ARISTA13T0 + + + + 65200 + ARISTA13T2 + + + + 64014 + ARISTA14T0 + + + + 65200 + ARISTA14T2 + + + + 64015 + ARISTA15T0 + + + + 65200 + ARISTA15T2 + + + + 64016 + ARISTA16T0 + + + + 65200 + ARISTA16T2 + + +
+
+ + + + + + HostIP + Loopback0 + + 10.1.0.32/32 + + 10.1.0.32/32 + + + + + + + + sonic + + + + + + Ethernet0 + 10.0.0.0/31 + + + + Ethernet4 + 10.0.0.2/31 + + + + Ethernet8 + 10.0.0.4/31 + + + + Ethernet12 + 10.0.0.6/31 + + + + Ethernet16 + 10.0.0.8/31 + + + + Ethernet20 + 10.0.0.10/31 + + + + Ethernet24 + 10.0.0.12/31 + + + + Ethernet28 + 10.0.0.14/31 + + + + Ethernet32 + 10.0.0.16/31 + + + + Ethernet36 + 10.0.0.18/31 + + + + Ethernet40 + 10.0.0.20/31 + + + + Ethernet44 + 10.0.0.22/31 + + + + Ethernet48 + 10.0.0.24/31 + + + + Ethernet52 + 10.0.0.26/31 + + + + Ethernet56 + 10.0.0.28/31 + + + + Ethernet60 + 10.0.0.30/31 + + + + Ethernet64 + 10.0.0.32/31 + + + + Ethernet68 + 10.0.0.34/31 + + + + Ethernet72 + 10.0.0.36/31 + + + + Ethernet76 + 10.0.0.38/31 + + + + Ethernet80 + 10.0.0.40/31 + + + + Ethernet84 + 10.0.0.42/31 + + + + Ethernet88 + 10.0.0.44/31 + + + + Ethernet92 + 10.0.0.46/31 + + + + Ethernet96 + 10.0.0.48/31 + + + + Ethernet100 + 10.0.0.50/31 + + + + Ethernet104 + 10.0.0.52/31 + + + + Ethernet108 + 10.0.0.54/31 + + + + Ethernet112 + 10.0.0.56/31 + + + + Ethernet116 + 10.0.0.58/31 + + + + Ethernet120 + 10.0.0.60/31 + + + + Ethernet124 + 10.0.0.62/31 + + + + + + + + + + + + DeviceInterfaceLink + sonic + Ethernet0 + ARISTA01T2 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet4 + ARISTA02T2 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet8 + ARISTA03T2 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet12 + ARISTA04T2 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet16 + ARISTA05T2 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet20 + ARISTA06T2 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet24 + ARISTA07T2 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet28 + ARISTA08T2 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet32 + ARISTA09T2 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet36 + ARISTA10T2 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet40 + ARISTA11T2 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet44 + ARISTA12T2 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet48 + ARISTA13T2 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet52 + ARISTA14T2 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet56 + ARISTA15T2 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet60 + ARISTA16T2 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet64 + ARISTA01T0 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet68 + ARISTA02T0 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet72 + ARISTA03T0 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet76 + ARISTA04T0 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet80 + ARISTA05T0 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet84 + ARISTA06T0 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet88 + ARISTA07T0 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet92 + ARISTA08T0 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet96 + ARISTA09T0 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet100 + ARISTA10T0 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet104 + ARISTA11T0 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet108 + ARISTA12T0 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet112 + ARISTA13T0 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet116 + ARISTA14T0 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet120 + ARISTA15T0 + Ethernet1 + + + DeviceInterfaceLink + sonic + Ethernet124 + ARISTA16T0 + Ethernet1 + + + + + sonic + MiTAC-LY1200-B32H0-C3 + + + + + + + sonic + + + DhcpResources + + + + + NtpResources + + 0.debian.pool.ntp.org;1.debian.pool.ntp.org;2.debian.pool.ntp.org;3.debian.pool.ntp.org + + + SyslogResources + + + + + + + + + sonic + MiTAC-LY1200-B32H0-C3 +
diff --git a/device/mitac/x86_64-mitac_ly1200_b32h0_c3-r0/plugins/eeprom.py b/device/mitac/x86_64-mitac_ly1200_b32h0_c3-r0/plugins/eeprom.py new file mode 100644 index 00000000000..96dcc597532 --- /dev/null +++ b/device/mitac/x86_64-mitac_ly1200_b32h0_c3-r0/plugins/eeprom.py @@ -0,0 +1,24 @@ +#!/usr/bin/env python + +try: + import exceptions + import binascii + import time + import optparse + import warnings + import os + import sys + from sonic_eeprom import eeprom_base + from sonic_eeprom import eeprom_tlvinfo + import subprocess +except ImportError, e: + raise ImportError (str(e) + "- required module not found") + +class board(eeprom_tlvinfo.TlvInfoDecoder): + _TLV_INFO_MAX_LEN = 256 + def __init__(self, name, path, cpld_root, ro): + self.eeprom_path = "/sys/bus/i2c/devices/2-0050/eeprom" + #Two i2c buses might get flipped order, check them both. + if not os.path.exists(self.eeprom_path): + self.eeprom_path = "/sys/bus/i2c/devices/2-0050/eeprom" + super(board, self).__init__(self.eeprom_path, 0, '', True) diff --git a/device/mitac/x86_64-mitac_ly1200_b32h0_c3-r0/plugins/sfputil.py b/device/mitac/x86_64-mitac_ly1200_b32h0_c3-r0/plugins/sfputil.py new file mode 100644 index 00000000000..17d4d2f95b5 --- /dev/null +++ b/device/mitac/x86_64-mitac_ly1200_b32h0_c3-r0/plugins/sfputil.py @@ -0,0 +1,182 @@ +# sfputil.py +# +# Platform-specific SFP transceiver interface for SONiC +# + +try: + import time + from sonic_sfp.sfputilbase import SfpUtilBase +except ImportError as e: + raise ImportError("%s - required module not found" % str(e)) + + +class SfpUtil(SfpUtilBase): + """Platform-specific SfpUtil class""" + + PORT_START = 0 + PORT_END = 31 + PORTS_IN_BLOCK = 32 + + EEPROM_OFFSET = 10 + + _port_to_eeprom_mapping = {} + + @property + def port_start(self): + return self.PORT_START + + @property + def port_end(self): + return self.PORT_END + + @property + def qsfp_ports(self): + return range(0, self.PORTS_IN_BLOCK + 1) + + @property + def port_to_eeprom_mapping(self): + return self._port_to_eeprom_mapping + + def __init__(self): + eeprom_path = "/sys/class/i2c-adapter/i2c-{0}/{0}-0050/eeprom" + + for x in range(0, self.port_end + 1): + self._port_to_eeprom_mapping[x] = eeprom_path.format(x + self.EEPROM_OFFSET) + + SfpUtilBase.__init__(self) + + def get_presence(self, port_num): + # Check for invalid port_num + if port_num < self.port_start or port_num > self.port_end: + return False + + if port_num > 16: + cpld_addr=33 + else: + cpld_addr=32 + + file_path="/sys/bus/i2c/devices/1-00" + str(cpld_addr) + "/port" + str(port_num) + "/port" + str(port_num) + "_present" + + try: + reg_file = open("file_path") + except IOError as e: + print "Error: unable to open file: %s" % str(e) + return False + + content = reg_file.readline().rstrip() + + # content is a string containing the hex representation of the register + reg_value = int(content, 16) + + + # ModPrsL is active low + if reg_value == 0: + return True + + return False + + def get_low_power_mode(self, port_num): + # Check for invalid port_num + if port_num < self.port_start or port_num > self.port_end: + return False + + if port_num > 16: + cpld_addr=33 + else: + cpld_addr=32 + + + file_path="/sys/bus/i2c/devices/1-00" + str(cpld_addr) + "/port" + str(port_num) + "/port" + str(port_num) + "_lpmode" + + try: + reg_file = open(file_path) + except IOError as e: + print "Error: unable to open file: %s" % str(e) + + content = reg_file.readline().rstrip() + + # content is a string containing the hex representation of the register + reg_value = int(content, 16) + + # LPMode is active high + if reg_value == 0: + return False + + return True + + def set_low_power_mode(self, port_num, lpmode): + # Check for invalid port_num + if port_num < self.port_start or port_num > self.port_end: + return False + + if port_num > 16: + cpld_addr=33 + else: + cpld_addr=32 + + file_path="/sys/bus/i2c/devices/1-00" + str(cpld_num) + "/port" + str(port_num) + "/port" + str(port_num) + "_lpmode" + + try: + reg_file = open(file_path, "r+") + except IOError as e: + print "Error: unable to open file: %s" % str(e) + return False + + # LPMode is active high; set or clear the bit accordingly + if lpmode is True: + reg_value = 1 + else: + reg_value = 0 + + # Convert our register value back to a hex string and write back + content = hex(reg_value) + + reg_file.seek(0) + reg_file.write(content) + reg_file.close() + + return True + + def reset(self, port_num): + + # Check for invalid port_num + if port_num < self.port_start or port_num > self.port_end: + return False + + if port_num > 16: + cpld_addr=33 + else: + cpld_addr=32 + + file_path="/sys/bus/i2c/devices/1-00" + str(cpld_num) + "/port" + str(port_num) + "/port" + str(port_num) + "_rst" + + try: + reg_file = open(file_path, "r+") + except IOError as e: + print "Error: unable to open file: %s" % str(e) + return False + + # ResetL is active low + reg_value = 0 + + # Convert our register value back to a hex string and write back + reg_file.seek(0) + reg_file.write(hex(reg_value)) + reg_file.close() + + # Sleep 1 second to allow it to settle + time.sleep(1) + + # Flip the bit back high and write back to the register to take port out of reset + try: + reg_file = open(QSFP_RESET_REGISTER_DEVICE_FILE, "w") + except IOError as e: + print "Error: unable to open file: %s" % str(e) + return False + + reg_value = 1 + reg_file.seek(0) + reg_file.write(hex(reg_value)) + reg_file.close() + + return True diff --git a/device/quanta/x86_64-quanta_ix1b_32x-r0/led_proc_init.soc b/device/quanta/x86_64-quanta_ix1b_32x-r0/led_proc_init.soc index a53360de4cc..831f74df755 100755 --- a/device/quanta/x86_64-quanta_ix1b_32x-r0/led_proc_init.soc +++ b/device/quanta/x86_64-quanta_ix1b_32x-r0/led_proc_init.soc @@ -1,8 +1,8 @@ led 0 stop led 1 stop -led 0 prog 02 00 60 F3 67 1A 86 F3 06 F3 D2 40 74 04 12 F0 85 05 D2 0A 71 18 52 00 3A 80 28 60 F3 67 40 67 22 57 06 F3 12 A0 F8 15 1A 05 75 2E 77 38 06 F3 12 A0 F8 15 1A 04 75 4C 16 F0 DA 05 75 4C 77 54 06 F3 12 A0 F8 15 1A 00 75 4C 77 54 32 0F 87 57 32 0E 87 57 32 0E 87 57 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -led 1 prog 02 00 60 F3 67 1A 86 F3 06 F3 D2 40 74 04 12 F0 85 05 D2 0A 71 18 52 00 3A 80 28 60 F3 67 40 67 22 57 06 F3 12 A0 F8 15 1A 05 75 2E 77 38 06 F3 12 A0 F8 15 1A 04 75 4C 16 F0 DA 05 75 4C 77 54 06 F3 12 A0 F8 15 1A 00 75 4C 77 54 32 0F 87 57 32 0E 87 57 32 0E 87 57 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +led 0 prog 02 00 60 E2 D2 40 71 12 12 F0 85 05 D2 0A 71 19 52 00 67 1B 06 E2 80 77 02 3A 80 67 20 67 2E 57 06 E2 12 00 F0 80 F8 15 1A 00 75 4E 77 52 06 E2 F0 12 00 F8 15 1A 00 75 3B 77 46 06 E2 F0 12 00 F8 15 1A 01 75 4E 16 F0 DA 05 75 4E 77 52 32 0F 87 57 32 0E 87 57 00 00 00 00 00 00 00 00 00 00 +led 1 prog 02 00 60 E2 D2 40 71 12 12 F0 85 05 D2 0A 71 19 52 00 67 1B 06 E2 80 77 02 3A 80 67 20 67 2E 57 06 E2 12 00 F0 80 F8 15 1A 00 75 4E 77 52 06 E2 F0 12 00 F8 15 1A 00 75 3B 77 46 06 E2 F0 12 00 F8 15 1A 01 75 4E 16 F0 DA 05 75 4E 77 52 32 0F 87 57 32 0E 87 57 00 00 00 00 00 00 00 00 00 00 led 0 auto on led 1 auto on diff --git a/device/quanta/x86_64-quanta_ix1b_32x-r0/plugins/psuutil.py b/device/quanta/x86_64-quanta_ix1b_32x-r0/plugins/psuutil.py new file mode 100755 index 00000000000..5b12ba41c9a --- /dev/null +++ b/device/quanta/x86_64-quanta_ix1b_32x-r0/plugins/psuutil.py @@ -0,0 +1,171 @@ +# +# psuutil.py +# Platform-specific PSU status interface for SONiC +# + + +import os.path +import commands +import logging + +try: + from sonic_psu.psu_base import PsuBase +except ImportError as e: + raise ImportError(str(e) + "- required module not found") + +DEBUG = False + +def show_log(txt): + if DEBUG == True: + print "[IX1B]"+txt + return + +def exec_cmd(cmd, show): + logging.info('Run :'+cmd) + status, output = commands.getstatusoutput(cmd) + show_log (cmd +"with result:" + str(status)) + show_log (" output:"+output) + if status: + logging.info('Failed :'+cmd) + if show: + print('Failed :'+cmd) + return status, output + +def my_log(txt): + if DEBUG == True: + print "[QUANTA DBG]: "+txt + return + +def log_os_system(cmd, show): + logging.info('Run :'+cmd) + status = 1 + output = "" + status, output = commands.getstatusoutput(cmd) + my_log (cmd +"with result:" + str(status)) + my_log ("cmd:" + cmd) + my_log (" output:"+output) + if status: + logging.info('Failed :'+cmd) + if show: + print('Failed :'+cmd) + return status, output + +def gpio16_exist(): + ret, ls = log_os_system("ls /sys/class/gpio/ | grep gpio16", 0) + logging.info('mods:'+ls) + if len(ls) ==0: + return False + +def gpio17_exist(): + ret, ls = log_os_system("ls /sys/class/gpio/ | grep gpio17", 0) + logging.info('mods:'+ls) + if len(ls) ==0: + return False + +def gpio19_exist(): + ret, ls = log_os_system("ls /sys/class/gpio/ | grep gpio19", 0) + logging.info('mods:'+ls) + if len(ls) ==0: + return False + +def gpio20_exist(): + ret, ls = log_os_system("ls /sys/class/gpio/ | grep gpio20", 0) + logging.info('mods:'+ls) + if len(ls) ==0: + return False + +class PsuUtil(PsuBase): + """Platform-specific PSUutil class""" + + SYSFS_PSU_PRESENT_DIR = ["/sys/class/gpio/gpio16", + "/sys/class/gpio/gpio19"] + + SYSFS_PSU_POWERGOOD_DIR = ["/sys/class/gpio/gpio17", + "/sys/class/gpio/gpio20"] + def __init__(self): + PsuBase.__init__(self) + + if gpio16_exist() == False: + status, output = exec_cmd("echo 16 > /sys/class/gpio/export ", 1) + status, output = exec_cmd("echo in > /sys/class/gpio/gpio16/direction ", 1) + + if gpio17_exist() == False: + status, output = exec_cmd("echo 17 > /sys/class/gpio/export ", 1) + status, output = exec_cmd("echo in > /sys/class/gpio/gpio17/direction ", 1) + + if gpio19_exist() == False: + status, output = exec_cmd("echo 19 > /sys/class/gpio/export ", 1) + status, output = exec_cmd("echo in > /sys/class/gpio/gpio19/direction ", 1) + + if gpio20_exist() == False: + status, output = exec_cmd("echo 20 > /sys/class/gpio/export ", 1) + status, output = exec_cmd("echo in > /sys/class/gpio/gpio20/direction ", 1) + + # Get sysfs attribute + def get_attr_value(self, attr_path): + + retval = 'ERR' + if (not os.path.isfile(attr_path)): + return retval + + try: + with open(attr_path, 'r') as fd: + retval = fd.read() + except Exception as error: + logging.error("Unable to open ", attr_path, " file !") + + retval = retval.rstrip('\r\n') + return retval + + def get_num_psus(self): + """ + Retrieves the number of PSUs available on the device + :return: An integer, the number of PSUs available on the device + """ + MAX_PSUS = 2 + return MAX_PSUS + + def get_psu_status(self, index): + """ + Retrieves the oprational status of power supply unit (PSU) defined + by index + :param index: An integer, index of the PSU of which to query status + :return: Boolean, True if PSU is operating properly, False if PSU is\ + faulty + """ + status = 0 + attr_file = 'value' + attr_path = self.SYSFS_PSU_POWERGOOD_DIR[index-1] +'/' + attr_file + + attr_value = self.get_attr_value(attr_path) + + if (attr_value != 'ERR'): + attr_value = int(attr_value, 16) + # Check for PSU status + if (attr_value == 1): + status = 1 + + return status + + def get_psu_presence(self, index): + """ + Retrieves the presence status of power supply unit (PSU) defined + by index + :param index: An integer, index of the PSU of which to query status + :return: Boolean, True if PSU is plugged, False if not + """ + status = 0 + psu_absent = 0 + attr_file ='value' + attr_path = self.SYSFS_PSU_PRESENT_DIR[index-1] +'/' + attr_file + + attr_value = self.get_attr_value(attr_path) + + if (attr_value != 'ERR'): + attr_value = int(attr_value, 16) + # Check for PSU presence + if (attr_value == 0): + status = 1 + + return status + diff --git a/dockers/docker-base/etc/supervisor/supervisord.conf b/dockers/docker-base/etc/supervisor/supervisord.conf index afead15524b..351cc06fc04 100644 --- a/dockers/docker-base/etc/supervisor/supervisord.conf +++ b/dockers/docker-base/etc/supervisor/supervisord.conf @@ -3,11 +3,14 @@ [unix_http_server] file=/var/run/supervisor.sock ; (the path to the socket file) chmod=0700 ; sockef file mode (default 0700) +username=dummy +password=dummy [supervisord] logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log) pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid) childlogdir=/var/log/supervisor ; ('AUTO' child log dir, default $TEMP) +user=root ; the below section must remain in the config file for RPC ; (supervisorctl/web interface) to work, additional interfaces may be @@ -17,6 +20,8 @@ supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface [supervisorctl] serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL for a unix socket +username=dummy +password=dummy ; The [include] section can just contain the "files" setting. This ; setting can list multiple files (separated by whitespace or diff --git a/dockers/docker-config-engine/Dockerfile.j2 b/dockers/docker-config-engine/Dockerfile.j2 index b4d924bddfc..bc82e1ca288 100644 --- a/dockers/docker-config-engine/Dockerfile.j2 +++ b/dockers/docker-config-engine/Dockerfile.j2 @@ -5,8 +5,8 @@ ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update -# Dependencies for sonic-cfggen -RUN apt-get install -y python-lxml python-yaml python-bitarray python-pip python-dev +# Dependencies for sonic-cfggen +RUN apt-get install -y python-lxml python-yaml python-bitarray python-pip python-dev python-natsort RUN pip install --upgrade pip diff --git a/dockers/docker-database/base_image_files/redis-cli b/dockers/docker-database/base_image_files/redis-cli index 103dd9e0253..6ce1951cd4b 100755 --- a/dockers/docker-database/base_image_files/redis-cli +++ b/dockers/docker-database/base_image_files/redis-cli @@ -1,3 +1,10 @@ #!/bin/bash -docker exec -it database redis-cli "$@" +DOCKER_EXEC_FLAGS="i" + +# Determine whether stdout is on a terminal +if [ -t 1 ] ; then + DOCKER_EXEC_FLAGS+="t" +fi + +docker exec -$DOCKER_EXEC_FLAGS database redis-cli "$@" diff --git a/dockers/docker-fpm-frr/base_image_files/vtysh b/dockers/docker-fpm-frr/base_image_files/vtysh index 18529b7522c..8f8cb2e6796 100755 --- a/dockers/docker-fpm-frr/base_image_files/vtysh +++ b/dockers/docker-fpm-frr/base_image_files/vtysh @@ -1,2 +1,10 @@ #!/bin/bash -docker exec -it bgp vtysh "$@" + +DOCKER_EXEC_FLAGS="i" + +# Determine whether stdout is on a terminal +if [ -t 1 ] ; then + DOCKER_EXEC_FLAGS+="t" +fi + +docker exec -$DOCKER_EXEC_FLAGS bgp vtysh "$@" diff --git a/dockers/docker-fpm-quagga/base_image_files/vtysh b/dockers/docker-fpm-quagga/base_image_files/vtysh index 18529b7522c..8f8cb2e6796 100755 --- a/dockers/docker-fpm-quagga/base_image_files/vtysh +++ b/dockers/docker-fpm-quagga/base_image_files/vtysh @@ -1,2 +1,10 @@ #!/bin/bash -docker exec -it bgp vtysh "$@" + +DOCKER_EXEC_FLAGS="i" + +# Determine whether stdout is on a terminal +if [ -t 1 ] ; then + DOCKER_EXEC_FLAGS+="t" +fi + +docker exec -$DOCKER_EXEC_FLAGS bgp vtysh "$@" diff --git a/dockers/docker-lldp-sv2/Dockerfile.j2 b/dockers/docker-lldp-sv2/Dockerfile.j2 index bfb1f9ca678..f75e4ea3142 100644 --- a/dockers/docker-lldp-sv2/Dockerfile.j2 +++ b/dockers/docker-lldp-sv2/Dockerfile.j2 @@ -1,37 +1,49 @@ FROM docker-config-engine -COPY \ -{% for deb in docker_lldp_sv2_debs.split(' ') -%} -debs/{{ deb }}{{' '}} -{%- endfor -%} -debs/ +# Make apt-get non-interactive +ENV DEBIAN_FRONTEND=noninteractive -COPY python-wheels /python-wheels +# Update apt's cache of available packages +RUN apt-get update -## Make apt-get non-interactive -ENV DEBIAN_FRONTEND=noninteractive +# Install dependencies +RUN apt-get install -y python-pip libbsd0 libevent-2.0-5 libjansson4 libwrap0 libxml2 libpci3 libperl5.20 libpython2.7 + +{% if docker_lldp_sv2_debs.strip() -%} +# Copy locally-built Debian package dependencies +{%- for deb in docker_lldp_sv2_debs.split(' ') %} +COPY debs/{{ deb }} /debs/ +{%- endfor %} -RUN apt-get update && apt-get install -y python-pip libbsd0 libevent-2.0-5 libjansson4 libwrap0 libxml2 libpci3 libperl5.20 +# Install locally-built Debian packages and implicitly install their dependencies +{%- for deb in docker_lldp_sv2_debs.split(' ') %} +RUN dpkg_apt() { [ -f $1 ] && { dpkg -i $1 || apt-get -y install -f; } || return 1; }; dpkg_apt /debs/{{ deb }} +{%- endfor %} +{%- endif %} -# Pre-install the fundamental packages -# Install Python SwSS SDK -# Install LLDP Sync Daemon +{% if docker_lldp_sv2_whls.strip() -%} +# Copy locally-built Python wheel dependencies +{%- for whl in docker_lldp_sv2_whls.split(' ') %} +COPY python-wheels/{{ whl }} /python-wheels/ +{%- endfor %} -RUN dpkg -i \ -{% for deb in docker_lldp_sv2_debs.split(' ') -%} -debs/{{ deb }}{{' '}} +# Install locally-built Python wheel dependencies +{%- for whl in docker_lldp_sv2_whls.split(' ') %} +RUN pip install /python-wheels/{{ whl }} {%- endfor %} +{% endif %} -RUN pip install /python-wheels/swsssdk-2.0.1-py2-none-any.whl && \ - pip install /python-wheels/sonic_d-2.0.0-py2-none-any.whl && \ - apt-get remove -y python-pip && \ - apt-get purge -y && apt-get autoclean -y && apt-get autoremove -y && \ - rm -rf /debs /python-wheels ~/.cache +# Clean up +RUN apt-get remove -y python-pip +RUN apt-get clean -y +RUN apt-get autoclean -y +RUN apt-get autoremove -y +RUN rm -rf /debs /python-wheels ~/.cache COPY ["start.sh", "/usr/bin/"] COPY ["supervisord.conf", "/etc/supervisor/conf.d/"] -COPY ["reconfigure.sh", "/usr/bin/"] COPY ["lldpd.conf.j2", "/usr/share/sonic/templates/"] COPY ["lldpd", "/etc/default/"] +COPY ["lldpmgrd", "/usr/bin/"] ENTRYPOINT ["/usr/bin/supervisord"] diff --git a/dockers/docker-lldp-sv2/base_image_files/lldpctl b/dockers/docker-lldp-sv2/base_image_files/lldpctl index 068a6e3b504..f5b6d8307ee 100755 --- a/dockers/docker-lldp-sv2/base_image_files/lldpctl +++ b/dockers/docker-lldp-sv2/base_image_files/lldpctl @@ -1,2 +1,10 @@ #!/bin/bash -docker exec -i lldp lldpctl "$@" + +DOCKER_EXEC_FLAGS="i" + +# Determine whether stdout is on a terminal +if [ -t 1 ] ; then + DOCKER_EXEC_FLAGS+="t" +fi + +docker exec -$DOCKER_EXEC_FLAGS lldp lldpctl "$@" diff --git a/dockers/docker-lldp-sv2/lldpmgrd b/dockers/docker-lldp-sv2/lldpmgrd new file mode 100755 index 00000000000..1d13b1aaafd --- /dev/null +++ b/dockers/docker-lldp-sv2/lldpmgrd @@ -0,0 +1,234 @@ +#!/usr/bin/env python + +""" + lldpmgrd + + LLDP manager daemon for SONiC + + Daemon which listens for changes in the PORT table of the State DB + and updates LLDP configuration accordingly for that port by calling + lldpcli. + + TODO: Also listen for changes in DEVICE_NEIGHBOR and PORT tables in + Config DB and update LLDP config upon changes. +""" + + +try: + import os + import signal + import subprocess + import sys + import syslog + from swsscommon import swsscommon +except ImportError as err: + raise ImportError("%s - required module not found" % str(err)) + +VERSION = "1.0" + +SYSLOG_IDENTIFIER = "lldpmgrd" + + +# ========================== Syslog wrappers ========================== + +def log_debug(msg): + syslog.openlog(SYSLOG_IDENTIFIER) + syslog.syslog(syslog.LOG_DEBUG, msg) + syslog.closelog() + + +def log_info(msg): + syslog.openlog(SYSLOG_IDENTIFIER) + syslog.syslog(syslog.LOG_INFO, msg) + syslog.closelog() + + +def log_warning(msg): + syslog.openlog(SYSLOG_IDENTIFIER) + syslog.syslog(syslog.LOG_WARNING, msg) + syslog.closelog() + + +def log_error(msg): + syslog.openlog(SYSLOG_IDENTIFIER) + syslog.syslog(syslog.LOG_ERR, msg) + syslog.closelog() + + +# ========================== Signal Handling ========================== + +def signal_handler(sig, frame): + if sig == signal.SIGHUP: + log_info("Caught SIGHUP - ignoring...") + return + elif sig == signal.SIGINT: + log_info("Caught SIGINT - exiting...") + sys.exit(128 + sig) + elif sig == signal.SIGTERM: + log_info("Caught SIGTERM - exiting...") + sys.exit(128 + sig) + else: + log_warning("Caught unhandled signal '" + sig + "'") + + +# ============================== Classes ============================== + +class LldpManager(object): + """ + Class which subscribes to notifications of changes in the PORT table of + the Redis State database and updates LLDP configuration accordingly for + that port by calling lldpcli. + Attributes: + state_db: Handle to Redis State database via swsscommon lib + config_db: Handle to Redis Config database via swsscommon lib + pending_cmds: Dictionary where key is port name, value is pending + LLDP configuration command to run + """ + REDIS_HOSTNAME = "localhost" + REDIS_PORT = 6379 + REDIS_TIMEOUT_MS = 0 + + def __init__(self): + # Open a handle to the State database + self.state_db = swsscommon.DBConnector(swsscommon.STATE_DB, + self.REDIS_HOSTNAME, + self.REDIS_PORT, + self.REDIS_TIMEOUT_MS) + + # Open a handle to the Config database + self.config_db = swsscommon.DBConnector(swsscommon.CONFIG_DB, + self.REDIS_HOSTNAME, + self.REDIS_PORT, + self.REDIS_TIMEOUT_MS) + + self.pending_cmds = {} + + def generate_pending_lldp_config_cmd_for_port(self, port_name): + """ + For port `port_name`, look up the neighboring device's hostname and + corresponding port alias in the Config database, then form the + appropriate lldpcli configuration command and run it. + """ + TABLE_SEPARATOR = "|" + + # Retrieve all entires for this port from the Port table + port_table = swsscommon.Table(self.config_db, swsscommon.CFG_PORT_TABLE_NAME, TABLE_SEPARATOR) + (status, fvp) = port_table.get(port_name) + if status: + # Convert list of tuples to a dictionary + port_table_dict = dict(fvp) + + # Get the port alias. If None or empty string, use port name instead + port_alias = port_table_dict.get("alias") + if not port_alias: + log_info("Unable to retrieve port alias for port '{}'. Using port name instead.".format(port_name)) + port_alias = port_name + else: + log_error("Port '{}' not found in {} table in Config DB. Using port name instead of port alias.".format(port_name, swsscommon.CFG_PORT_TABLE_NAME)) + port_alias = port_name + + lldpcli_cmd = "lldpcli configure ports {0} lldp portidsubtype local {1}".format(port_name, port_alias) + + # Retrieve all entires for this port from the Device Neighbor table + device_neighbor_table = swsscommon.Table(self.config_db, swsscommon.CFG_DEVICE_NEIGHBOR_TABLE_NAME, TABLE_SEPARATOR) + (status, fvp) = device_neighbor_table.get(port_name) + if status: + # Convert list of tuples to a dictionary + device_neighbor_table_dict = dict(fvp) + + # Get neighbor host name and port name + neighbor_hostname = device_neighbor_table_dict.get("name") + neighbor_portname = device_neighbor_table_dict.get("port") + + # If we sucessfully obtained the neighbor's host name and port name, append a port description to the command + if neighbor_hostname and neighbor_portname: + lldpcli_cmd += " description {0}:{1}".format(neighbor_hostname, neighbor_portname) + else: + if not neighbor_hostname: + log_info("Failed to retrieve neighbor host name for port '{}'. Not adding port description.".format(port_name)) + + if not neighbor_portname: + log_info("Failed to retrieve neighbor port name for port '{}'. Not adding port description.".format(port_name)) + else: + log_info("Unable to retrieve neighbor information for port '{}'. Not adding port description.".format(port_name)) + + # Add the command to our dictionary of pending commands, overwriting any + # previous pending command for this port + self.pending_cmds[port_name] = lldpcli_cmd + + def process_pending_cmds(self): + # List of port names (keys of elements) to delete from self.pending_cmds + to_delete = [] + + for (port_name, cmd) in self.pending_cmds.iteritems(): + log_debug("Running command: '{}'".format(cmd)) + + proc = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + + (stdout, stderr) = proc.communicate() + + # If the command succeeds, add the port name to our to_delete list. + # We will delete this command from self.pending_cmds below. + # If the command fails, log a message, but don't delete the command + # from self.pending_cmds, so that the command will be retried the + # next time this method is called. + if proc.returncode == 0: + to_delete.append(port_name) + else: + log_warning("Command failed '{}': {}".format(cmd, stderr)) + + # Delete all successful commands from self.pending_cmds + for port_name in to_delete: + self.pending_cmds.pop(port_name, None) + + def run(self): + """ + Infinite loop. Subscribes to notifications of changes in the PORT table + of the Redis State database. When we are notified of the creation of an + interface, update LLDP configuration accordingly. + """ + # Set select timeout to 10 seconds + SELECT_TIMEOUT_MS = 1000 * 10 + + # Subscribe to PORT table notifications in the State DB + sel = swsscommon.Select() + sst = swsscommon.SubscriberStateTable(self.state_db, swsscommon.STATE_PORT_TABLE_NAME) + sel.addSelectable(sst) + + # Listen indefinitely for changes to the PORT table in the State DB + while True: + (state, c, fd) = sel.select(SELECT_TIMEOUT_MS) + + if state == swsscommon.Select.OBJECT: + (key, op, fvp) = sst.pop() + + fvp_dict = dict(fvp) + + if op == "SET" and fvp_dict.get("state") == "ok": + self.generate_pending_lldp_config_cmd_for_port(key) + + # Process all pending commands + self.process_pending_cmds() + + +# ============================= Functions ============================= + +def main(): + log_info("Starting up...") + + if not os.geteuid() == 0: + log_error("Must be root to run this daemon") + print "Error: Must be root to run this daemon" + sys.exit(1) + + # Register our signal handlers + signal.signal(signal.SIGHUP, signal_handler) + signal.signal(signal.SIGINT, signal_handler) + signal.signal(signal.SIGTERM, signal_handler) + + # Instantiate a LldpManager object + lldpmgr = LldpManager() + lldpmgr.run() + +if __name__ == "__main__": + main() diff --git a/dockers/docker-lldp-sv2/reconfigure.sh b/dockers/docker-lldp-sv2/reconfigure.sh deleted file mode 100755 index 515e771aa6f..00000000000 --- a/dockers/docker-lldp-sv2/reconfigure.sh +++ /dev/null @@ -1,52 +0,0 @@ -#!/bin/bash - -set -e - -# TODO: Listen to state database when it is ready -interfaces=$(sonic-cfggen -d -v "PORT.keys() | join(' ')") - -function wait_until_if_exists -{ - if=$1 - while [ ! -L /sys/class/net/"$if" ] ; - do - sleep 1 - done - echo interface "$if" is created -} - - -function wait_until_if_not_exists -{ - if=$1 - while [ -L /sys/class/net/"$if" ] ; - do - sleep 1 - done - echo interface "$if" is destroyed -} - - -while /bin/true ; -do - # wait until all interfaces are created - echo Wait until all interfaces are created - for i in $interfaces - do - wait_until_if_exists $i - done - - echo Wait 10 seconds while lldpd finds new interfaces - sleep 10 - - # apply lldpd configuration - echo Apply lldpd configuration - lldpcli -c /etc/lldpd.conf - - # wait until all interfaces are destroyed - echo Wait until all ifaces are destroyed - for i in $interfaces - do - wait_until_if_not_exists $i - done -done diff --git a/dockers/docker-lldp-sv2/start.sh b/dockers/docker-lldp-sv2/start.sh index 3a765c6f548..26337fb0667 100755 --- a/dockers/docker-lldp-sv2/start.sh +++ b/dockers/docker-lldp-sv2/start.sh @@ -9,5 +9,5 @@ rm -f /var/run/rsyslogd.pid supervisorctl start rsyslogd supervisorctl start lldpd -supervisorctl start lldpd-conf-reload supervisorctl start lldp-syncd +supervisorctl start lldpmgrd diff --git a/dockers/docker-lldp-sv2/supervisord.conf b/dockers/docker-lldp-sv2/supervisord.conf index ab62d9ed2e8..60334e1b8ed 100644 --- a/dockers/docker-lldp-sv2/supervisord.conf +++ b/dockers/docker-lldp-sv2/supervisord.conf @@ -26,23 +26,23 @@ stderr_logfile=syslog # - `-ddd` means to stay in foreground, log warnings and info to console # - `-dddd` means to stay in foreground, log all to console command=/usr/sbin/lldpd -d -I Ethernet*,eth* -priority=100 +priority=3 autostart=false autorestart=false stdout_logfile=syslog stderr_logfile=syslog -[program:lldpd-conf-reload] -command=/usr/bin/reconfigure.sh -priority=150 +[program:lldp-syncd] +command=/usr/bin/env python2 -m lldp_syncd +priority=4 autostart=false autorestart=false stdout_logfile=syslog stderr_logfile=syslog -[program:lldp-syncd] -command=/usr/bin/env python2 -m lldp_syncd -priority=200 +[program:lldpmgrd] +command=/usr/bin/lldpmgrd +priority=5 autostart=false autorestart=false stdout_logfile=syslog diff --git a/dockers/docker-orchagent/base_image_files/swssloglevel b/dockers/docker-orchagent/base_image_files/swssloglevel index 9282470c264..d03685ed383 100755 --- a/dockers/docker-orchagent/base_image_files/swssloglevel +++ b/dockers/docker-orchagent/base_image_files/swssloglevel @@ -1,2 +1,10 @@ #!/bin/bash -docker exec -i swss swssloglevel "$@" + +DOCKER_EXEC_FLAGS="i" + +# Determine whether stdout is on a terminal +if [ -t 1 ] ; then + DOCKER_EXEC_FLAGS+="t" +fi + +docker exec -$DOCKER_EXEC_FLAGS swss swssloglevel "$@" diff --git a/dockers/docker-orchagent/start.sh b/dockers/docker-orchagent/start.sh index 80ccac913ff..e26be9286aa 100755 --- a/dockers/docker-orchagent/start.sh +++ b/dockers/docker-orchagent/start.sh @@ -6,7 +6,7 @@ sonic-cfggen -d -t /usr/share/sonic/templates/switch.json.j2 > /etc/swss/config. sonic-cfggen -d -t /usr/share/sonic/templates/ipinip.json.j2 > /etc/swss/config.d/ipinip.json sonic-cfggen -d -t /usr/share/sonic/templates/ports.json.j2 > /etc/swss/config.d/ports.json -export platform=`sonic-cfggen -v platform` +export platform=`sonic-cfggen -H -v DEVICE_METADATA.localhost.platform` rm -f /var/run/rsyslogd.pid diff --git a/dockers/docker-orchagent/swssconfig.sh b/dockers/docker-orchagent/swssconfig.sh index 6dd3486ee3b..850a4afd1ef 100755 --- a/dockers/docker-orchagent/swssconfig.sh +++ b/dockers/docker-orchagent/swssconfig.sh @@ -16,12 +16,26 @@ function fast_reboot { swssconfig /arp.json rm -f /arp.json fi + + if [[ -f /default_routes.json ]]; + then + swssconfig /default_routes.json + rm -f /default_routes.json + fi + ;; *) ;; esac } +# Wait until swss.sh in the host system create file swss:/ready +until [[ -e /ready ]]; do + sleep 0.1; +done + +rm -f /ready + # Restore FDB and ARP table ASAP fast_reboot @@ -29,16 +43,6 @@ HWSKU=`sonic-cfggen -d -v "DEVICE_METADATA['localhost']['hwsku']"` SWSSCONFIG_ARGS="00-copp.config.json ipinip.json ports.json switch.json " -if [ "$HWSKU" == "Force10-S6000" ]; then - SWSSCONFIG_ARGS+="td2.32ports.buffers.json td2.32ports.qos.json " -elif [ "$HWSKU" == "Force10-S6000-Q32" ]; then - SWSSCONFIG_ARGS+="td2.32ports.buffers.json td2.32ports.qos.json " -elif [ "$HWSKU" == "Force10-S6100" ]; then - SWSSCONFIG_ARGS+="th.64ports.buffers.json th.64ports.qos.json " -elif [ "$HWSKU" == "Arista-7050-QX32" ]; then - SWSSCONFIG_ARGS+="td2.32ports.buffers.json td2.32ports.qos.json " -fi - for file in $SWSSCONFIG_ARGS; do swssconfig /etc/swss/config.d/$file sleep 1 diff --git a/dockers/docker-platform-monitor/base_image_files/sensors b/dockers/docker-platform-monitor/base_image_files/sensors index af1e5794186..23a12034f07 100755 --- a/dockers/docker-platform-monitor/base_image_files/sensors +++ b/dockers/docker-platform-monitor/base_image_files/sensors @@ -1,2 +1,10 @@ #!/bin/bash -docker exec -i pmon sensors "$@" + +DOCKER_EXEC_FLAGS="i" + +# Determine whether stdout is on a terminal +if [ -t 1 ] ; then + DOCKER_EXEC_FLAGS+="t" +fi + +docker exec -$DOCKER_EXEC_FLAGS pmon sensors "$@" diff --git a/dockers/docker-snmp-sv2/snmpd-config-updater b/dockers/docker-snmp-sv2/snmpd-config-updater index 9f3e858bdb0..10c2a2b57ef 100755 --- a/dockers/docker-snmp-sv2/snmpd-config-updater +++ b/dockers/docker-snmp-sv2/snmpd-config-updater @@ -1,132 +1,204 @@ #!/usr/bin/env python -# Daemon that listens to updates about the source IP prefixes from which snmp access -# is allowed. In case of change, it will update the snmp configuration file accordingly. -# Also, after a change, it will notify snmpd to re-read its config file (service reload). +# Daemon that listens to updates from ConfigDB about the source IP prefixes from which +# SNMP connections are allowed. In case of change, it will update the SNMP configuration +# file accordingly. After a change, it will notify snmpd to re-read its config file +# via SIGHUP. +# +# This daemon is meant to be run on Arista platforms only. Service ACLs on all other +# platforms will be managed by caclmgrd. +# import os import re +import subprocess import sys +import syslog import time -import redis - -service="snmpd" -config_file_path="/etc/snmp" -redis_key="SNMP_ALLOW_LIST" # the redis list we listen to -subscription='__keyspace@0__:%s' % redis_key -temporization_duration = 3 # how long we wait for changes to settle (ride out a bursts of changes in redis_key) -fake_infinite = 9999 # How often we wake up when nothing is going on --get_message()'s timeout has no 'infinite' value -# after these operations we may need to revisit existing ssh connections because they removed or modified existing entries -delete_operations = ["lrem", "lpop", "rpop", "blpop", "brpop", "brpoplpush", "rpoplpush", "ltrim", "del", "lset"] - -r = redis.StrictRedis(host='localhost') -p = r.pubsub() - -# If redis is not up yet, this can fail, so wait for redis to be available -while True: - try: - p.subscribe(subscription) - break - except redis.exceptions.ConnectionError: - time.sleep(3) - -# We could loose contact with redis at a later stage, in which case we will exit with -# return code -2 and supervisor will restart us, at which point we are back in the -# while loop above waiting for redis to be ready. -try: - - # By default redis does enable events, so enable them - r.config_set("notify-keyspace-events", "KAE") - - - # To update the configuration file - # - # Example config file for reference: - # root@sonic:/# cat /etc/snmp/snmpd.conf - # <...some snmp config, like udp port to use etc...> - # rocommunity public 172.20.61.0/24 - # rocommunity public 172.20.60.0/24 - # rocommunity public 127.00.00.0/8 - # <...some more snmp config...> - # root@sonic:/# - # - # snmpd.conf supports include file, like so: - # includeFile /etc/snmp/community.conf - # includeDir /etc/snmp/config.d - # which could make file massaging simpler, but even then we still deal with lines - # that have shared "masters", since some other entity controls the community strings - # part of that line. - # If other database attributes need to be written to the snmp config file, then - # it should be done by this daemon as well (sure, we could inotify on the file - # and correct it back, but that's glitchy). - - def write_configuration_file(v): - filename="%s/%s.conf" % (config_file_path, service) - filename_tmp = filename + ".tmp" - f=open(filename, "r") - snmpd_config = f.read() - f.close() - f=open(filename_tmp, "w") - this_community = "not_a_community" - for l in snmpd_config.split('\n'): - m = re.match("^(..)community (\S+)", l) - if not m: - f.write(l) - f.write("\n") - else: - if not l.startswith(this_community): # already handled community (each community is duplicated per allow entry) - this_community="%scommunity %s" % (m.group(1), m.group(2)) - if len(v): - for value in v: - f.write("%s %s\n" % (this_community, value)) - else: - f.write("%s\n" % this_community) - f.close() - os.rename(filename_tmp, filename) - os.system("kill -HUP $(pgrep snmpd) > /dev/null 2> /dev/null || :") - - # write initial configuration - write_configuration_file(r.lrange(redis_key, 0, -1)) - - # listen for changes and rewrite configuration file if needed, after some temporization - # - # How those subscribed to messages look like, for reference: - # {'pattern': None, 'type': 'subscribe', 'channel': '__keyspace@0__:SNMP_PERMIT_LIST', 'data': 1L} - # {'pattern': None, 'type': 'message', 'channel': '__keyspace@0__:SNMP_PERMIT_LIST', 'data': 'rpush'} - # {'pattern': None, 'type': 'message', 'channel': '__keyspace@0__:SNMP_PERMIT_LIST', 'data': 'lpush'} - # {'pattern': None, 'type': 'message', 'channel': '__keyspace@0__:SNMP_PERMIT_LIST', 'data': 'lrem'} - # {'pattern': None, 'type': 'message', 'channel': '__keyspace@0__:SNMP_PERMIT_LIST', 'data': 'lset'} - # {'pattern': None, 'type': 'message', 'channel': '__keyspace@0__:SNMP_PERMIT_LIST', 'data': 'del'} - - select_timeout = fake_infinite - config_changed = False - while True: - try: - m = p.get_message(timeout=select_timeout) - except Exception: - sys.exit(-2) - # temporization: no change after 'timeout' seconds -> commit any accumulated changes - if not m and config_changed: - write_configuration_file(r.lrange(redis_key, 0, -1)) - config_changed = False - select_timeout = fake_infinite - if m and m['type'] == "message": - if m['channel'] != subscription: - print "WTF: unexpected case" - continue - config_changed = True - select_timeout = temporization_duration - # some debugs for now - print "-------------------- config change: ", - if m["data"] in delete_operations: - print "DELETE" - else: - print "" - v = r.lrange(redis_key, 0, -1) - for value in v: - print value - -except redis.exceptions.ConnectionError as e: - sys.exit(-2) +from swsssdk import ConfigDBConnector +VERSION = "1.0" +SYSLOG_IDENTIFIER = "snmpd-config-updater" + + +# ============================== Classes ============================== + +class ConfigUpdater(object): + SERVICE = "snmpd" + CONFIG_FILE_PATH = "/etc/snmp" + + ACL_TABLE = "ACL_TABLE" + ACL_RULE = "ACL_RULE" + + ACL_TABLE_TYPE_CTRLPLANE = "CTRLPLANE" + + ACL_SERVICE_SNMP = "SNMP" + + def get_src_ip_allow_list(self): + src_ip_allow_list = [] + + # Get current ACL tables and rules from Config DB + tables_db_info = self.config_db.get_table(self.ACL_TABLE) + rules_db_info = self.config_db.get_table(self.ACL_RULE) + + # Walk the ACL tables + for (table_name, table_data) in tables_db_info.iteritems(): + # Ignore non-control-plane ACL tables + if table_data["type"] != self.ACL_TABLE_TYPE_CTRLPLANE: + continue + + # Ignore non-SSH service ACLs + if table_data["service"] != self.ACL_SERVICE_SNMP: + continue + + acl_rules = {} + + for ((rule_table_name, rule_id), rule_props) in rules_db_info.iteritems(): + if rule_table_name == table_name: + acl_rules[rule_props["PRIORITY"]] = rule_props + + # For each ACL rule in this table (in descending order of priority) + for priority in sorted(acl_rules.iterkeys(), reverse=True): + rule_props = acl_rules[priority] + + if "PACKET_ACTION" not in rule_props: + log_error("ACL rule does not contain PACKET_ACTION property") + continue + + # We're only interested in ACCEPT rules + if rule_props["PACKET_ACTION"] != "ACCEPT": + continue + + if "SRC_IP" in rule_props and rule_props["SRC_IP"]: + src_ip_allow_list.append(rule_props["SRC_IP"]) + + return src_ip_allow_list + + # To update the configuration file + # + # Example config file for reference: + # root@sonic:/# cat /etc/snmp/snmpd.conf + # <...some snmp config, like udp port to use etc...> + # rocommunity public 172.20.61.0/24 + # rocommunity public 172.20.60.0/24 + # rocommunity public 127.00.00.0/8 + # <...some more snmp config...> + # root@sonic:/# + # + # snmpd.conf supports include file, like so: + # includeFile /etc/snmp/community.conf + # includeDir /etc/snmp/config.d + # which could make file massaging simpler, but even then we still deal with lines + # that have shared "masters", since some other entity controls the community strings + # part of that line. + # If other database attributes need to be written to the snmp config file, then + # it should be done by this daemon as well (sure, we could inotify on the file + # and correct it back, but that's glitchy). + # + # src_ip_allow_list may contain individual IP addresses or blocks of + # IP addresses using CIDR notation. + def write_configuration_file(self, src_ip_allow_list): + filename = "%s/%s.conf" % (self.CONFIG_FILE_PATH, self.SERVICE) + filename_tmp = filename + ".tmp" + + f = open(filename, "r") + snmpd_config = f.read() + f.close() + + f = open(filename_tmp, "w") + this_community = "not_a_community" + for line in snmpd_config.split('\n'): + m = re.match("^(..)community (\S+)", line) + if not m: + f.write(line) + f.write("\n") + else: + if not line.startswith(this_community): # already handled community (each community is duplicated per allow entry) + this_community = "%scommunity %s" % (m.group(1), m.group(2)) + if len(src_ip_allow_list): + for value in src_ip_allow_list: + f.write("%s %s\n" % (this_community, value)) + else: + f.write("%s\n" % this_community) + f.close() + + os.rename(filename_tmp, filename) + + # Force snmpd to reload its configuration + os.system("kill -HUP $(pgrep snmpd) > /dev/null 2> /dev/null || :") + + def notification_handler(self, key, data): + log_info("ACL configuration changed. Updating {} config accordingly...".format(self.SERVICE)) + self.write_configuration_file(self.get_src_ip_allow_list()) + + def run(self): + # Open a handle to the Config database + self.config_db = ConfigDBConnector() + self.config_db.connect() + + # Write initial configuration + self.write_configuration_file(self.get_src_ip_allow_list()) + + # Subscribe to notifications when ACL tables or rules change + self.config_db.subscribe(self.ACL_TABLE, + lambda table, key, data: self.notification_handler(key, data)) + self.config_db.subscribe(self.ACL_RULE, + lambda table, key, data: self.notification_handler(key, data)) + + # Indefinitely listen for Config DB notifications + self.config_db.listen() + + +# ========================== Syslog wrappers ========================== + +def log_info(msg): + syslog.openlog(SYSLOG_IDENTIFIER) + syslog.syslog(syslog.LOG_INFO, msg) + syslog.closelog() + + +def log_warning(msg): + syslog.openlog(SYSLOG_IDENTIFIER) + syslog.syslog(syslog.LOG_WARNING, msg) + syslog.closelog() + + +def log_error(msg): + syslog.openlog(SYSLOG_IDENTIFIER) + syslog.syslog(syslog.LOG_ERR, msg) + syslog.closelog() + + +# Determine whether we are running on an Arista platform +def is_platform_arista(): + proc = subprocess.Popen(["sonic-cfggen", "-H", "-v", "DEVICE_METADATA.localhost.platform"], + stdout=subprocess.PIPE, stderr=subprocess.PIPE) + + (stdout, stderr) = proc.communicate() + + if proc.returncode != 0: + log_error("Failed to retrieve platform string") + return false + + return "arista" in stdout + + +def main(): + log_info("Starting up...") + + if not os.geteuid() == 0: + log_error("Must be root to run this daemon") + print "Error: Must be root to run this daemon" + sys.exit(1) + + if not is_platform_arista(): + log_info("Platform is not an Arista platform. Exiting...") + sys.exit(0) + + # Instantiate a ConfigUpdater object + config_updater = ConfigUpdater() + config_updater.run() + +if __name__ == "__main__": + main() diff --git a/dockers/docker-snmp-sv2/start.sh b/dockers/docker-snmp-sv2/start.sh index 201239b1e7d..1b83624068a 100755 --- a/dockers/docker-snmp-sv2/start.sh +++ b/dockers/docker-snmp-sv2/start.sh @@ -13,5 +13,6 @@ echo "# Config files managed by sonic-config-engine" > /var/sonic/config_status rm -f /var/run/rsyslogd.pid supervisorctl start rsyslogd +supervisorctl start snmpd-config-updater supervisorctl start snmpd supervisorctl start snmp-subagent diff --git a/dockers/docker-snmp-sv2/supervisord.conf b/dockers/docker-snmp-sv2/supervisord.conf index b760d5c0453..b3db3be95a2 100644 --- a/dockers/docker-snmp-sv2/supervisord.conf +++ b/dockers/docker-snmp-sv2/supervisord.conf @@ -11,15 +11,6 @@ autorestart=false stdout_logfile=syslog stderr_logfile=syslog -[program:snmpd-config-updater] -command=/usr/bin/snmpd-config-updater -priority=1 -autostart=true -autorestart=unexpected -startsecs=0 -stdout_logfile=syslog -stderr_logfile=syslog - [program:rsyslogd] command=/usr/sbin/rsyslogd -n priority=2 @@ -28,9 +19,18 @@ autorestart=false stdout_logfile=syslog stderr_logfile=syslog +[program:snmpd-config-updater] +command=/usr/bin/snmpd-config-updater +priority=3 +autostart=false +autorestart=unexpected +startsecs=0 +stdout_logfile=syslog +stderr_logfile=syslog + [program:snmpd] command=/usr/sbin/snmpd -f -LS4d -u Debian-snmp -g Debian-snmp -I -smux,mteTrigger,mteTriggerConf,ifTable,ifXTable,inetCidrRouteTable,ipCidrRouteTable,ip,disk_hw -p /run/snmpd.pid -priority=3 +priority=4 autostart=false autorestart=false stdout_logfile=syslog @@ -38,7 +38,7 @@ stderr_logfile=syslog [program:snmp-subagent] command=/usr/bin/env python3.6 -m sonic_ax_impl -priority=4 +priority=5 autostart=false autorestart=false stdout_logfile=syslog diff --git a/dockers/docker-teamd/base_image_files/teamdctl b/dockers/docker-teamd/base_image_files/teamdctl index 9dd188d18cb..615bc3d953f 100755 --- a/dockers/docker-teamd/base_image_files/teamdctl +++ b/dockers/docker-teamd/base_image_files/teamdctl @@ -1,3 +1,10 @@ #!/bin/bash -docker exec -i teamd teamdctl "$@" +DOCKER_EXEC_FLAGS="i" + +# Determine whether stdout is on a terminal +if [ -t 1 ] ; then + DOCKER_EXEC_FLAGS+="t" +fi + +docker exec -$DOCKER_EXEC_FLAGS teamd teamdctl "$@" diff --git a/files/Aboot/boot0.j2 b/files/Aboot/boot0.j2 index 3f2d2cdecc3..435781a7748 100644 --- a/files/Aboot/boot0.j2 +++ b/files/Aboot/boot0.j2 @@ -14,23 +14,55 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -# Aboot stage 0 boot +# Aboot stage 0 boot script +# +# This boot0 script can be used in different scenario +# - Installation and boot from Aboot (manual or reboot on a new image) +# - EOS to SONiC fast-reboot (installation and kexec in EOS) +# - SONiC to SONiC fast-reboot (installation and kexec in SONiC) +# +# Use it this way: +# - swipath=path/to/swi install=true boot0 +# - swipath=path/to/swi install=true force=true boot0 +# - swipath=path/to/swi kexec=true boot0 +# +# The logic defaults to the first scenario but providing extra environment variable +# will affect the behavior of the script. +# The list of variables is maintained here +# - KERNEL : relative path to the kernel to execute +# - INITRD : relative path to the initrd to load +# - CMDLINE : place to find the default kernel cmdline to use for the platform +# +# By default the boot0 script will behave for an Aboot based behavior. +# Options can be provided to only run some features of this script. +# +# Extra kernel parameters can be provided at runtime by the user by adding them +# into a kernel-params file. set -x -kernel=boot/vmlinuz-3.16.0-5-amd64 -initrd=boot/initrd.img-3.16.0-5-amd64 -kernel_params=kernel-params +image_name="image-%%IMAGE_VERSION%%" + +do_not_clean="do-not-clean" +kernel_params="kernel-params" aboot_machine="arista_unknown" -[ -z "$target_path" ] && target_path=/mnt/flash -image_path="$target_path/image-%%IMAGE_VERSION%%" -# expect the swi to be a non empty file -[ -s "$swipath" ] || exit 1 +# extract mount point from the swi path, e.g., /mnt/flash/sonic.swi --> /mnt/flash +if [ -z "$target_path" ]; then + if [ -z "$swipath" ]; then + echo "target_path= is required when swipath= is not provided" + exit 1 + fi + target_path=$(df "$swipath" | tail -1 | tr -s " " | cut -d ' ' -f6) +fi +image_path="$target_path/$image_name" -bootconfigvars="SWI SWI_COPY POST_LEVEL CONSOLESPEED PASSWORD NETDEV NETAUTO NETIP NETMASK NETGW NETDOMAIN NETDNS NETHW memtest" +cmdline_base="$target_path/kernel-params-base" +cmdline_image="$image_path/kernel-cmdline" + +bootconfigvars="KERNEL INITRD CONSOLESPEED PASSWORD NETDEV NETAUTO NETIP NETMASK NETGW NETDOMAIN NETDNS NETHW memtest" parse_environment_config() { for n in ${bootconfigvars}; do @@ -46,6 +78,8 @@ clean_flash() { for f in $(ls -A $target_path); do if [ $f != "${swipath##*/}" ] && [ $f != "boot-config" ] && + [ $f != "$kernel_params" ] && + [ $f != "$cmdline_base" ] && [ $f != "minigraph.xml" ] then rm -rf "$target_path/$f" @@ -54,7 +88,6 @@ clean_flash() { } extract_image() { - mkdir -p "$image_path" ## Unzip the image except boot0 and dockerfs archive @@ -80,7 +113,7 @@ extract_image() { fi ## use new reduced-size boot swi - echo "SWI=flash:image-%%IMAGE_VERSION%%/{{ ABOOT_BOOT_IMAGE }}" > "$target_path/boot-config" + echo "SWI=flash:$image_name/{{ ABOOT_BOOT_IMAGE }}" > "$target_path/boot-config" ## Remove installer swi as it has lots of redundunt contents rm -f "$swipath" @@ -91,8 +124,12 @@ extract_image() { write_machine_config() { ## Detect SKU and create a hardware description file - aboot_version=$(grep ^Aboot /etc/cmdline | sed 's/^.*norcal.-//') - aboot_build_date=$(stat -c %y /bin/sysinit | sed 's/ /T/') + aboot_version=$(grep ^Aboot "$cmdline_base" | sed 's/^.*norcal.-//' | tail -n 1) + if [ -x /bin/sysinit ]; then + aboot_build_date=$(stat -c %y /bin/sysinit | sed 's/ /T/') + else + aboot_build_date="unknown" + fi cat < ${target_path}/machine.conf aboot_version=$aboot_version aboot_vendor=arista @@ -101,16 +138,17 @@ aboot_machine=$aboot_machine aboot_arch=x86_64 aboot_build_date=$aboot_build_date EOF + chmod a+r "${target_path}/machine.conf" } platform_specific() { - local platform="$(grep -Eo 'platform=[^ ]+' /etc/cmdline | cut -f2 -d=)" - local sid="$(grep -Eo 'sid=[^ ]+' /etc/cmdline | cut -f2 -d=)" + local platform="$(grep -Eo 'platform=[^ ]+' "$cmdline_base" | cut -f2 -d=)" + local sid="$(grep -Eo 'sid=[^ ]+' "$cmdline_base" | cut -f2 -d=)" # set varlog size to 100MB local varlog_size=100 - local flash_size=$(($(df | grep flash | tr -s ' ' | cut -f2 -d' ') / 1000)) + local flash_size=$(($(df | grep -E '/mnt/flash|/host' | tr -s ' ' | cut -f2 -d' ') / 1000)) if [ "$platform" = "raven" ]; then aboot_machine=arista_7050_qx32 @@ -132,7 +170,12 @@ platform_specific() { flash_size=28000 fi if [ "$platform" = "rook" ]; then - readprefdl -f /tmp/.system-prefdl -d > /mnt/flash/.system-prefdl + if [ -x /bin/readprefdl ]; then + readprefdl -f /tmp/.system-prefdl -d > /mnt/flash/.system-prefdl + elif [ -f /etc/prefdl ]; then + cp /etc/prefdl /mnt/flash/.system-prefdl + chmod a+r /mnt/flash/.system-prefdl + fi fi if [ $flash_size -ge 28000 ]; then @@ -144,45 +187,119 @@ platform_specific() { echo "varlog_size=$varlog_size" >>/tmp/append } -# check the hash file in the image, and determine to install or just skip -GIT_REVISION=$(unzip -p "$swipath" .imagehash) -LOCAL_IMAGEHASH=$(cat $image_path/.imagehash 2>/dev/null || true) -if [ "$GIT_REVISION" != "$LOCAL_IMAGEHASH" ]; then - [ -z "$sonic_upgrade" ] && clean_flash - extract_image -fi +get_uuid_for() { + local dev="$1" + + if type lsblk 2>&1 > /dev/null; then + lsblk "$dev" -n --output UUID + elif type blkid 2>&1 > /dev/null; then + blkid | grep "^$dev" | sed -n "s/^.* UUID=\"//p" | grep -Eo '[^"]+' + fi +} + +write_boot_configs() { + if $in_aboot; then + # generate the default kernel parameters for the platform + echo "$append" > $cmdline_base + cat /etc/cmdline | sed "/^\(${bootconfigvars// /\|}\|crashkernel\|loglevel\|ignore_loglevel\)\(\$\|=\)/d;/^\$/d" >> $cmdline_base + parse_environment_config >> $cmdline_base + elif [ ! -f "$cmdline_base" ]; then + # some systems were started with other versions of this script and therefore + # do not have the $cmdline_base file. we assume that we are on Sonic or EOS. + cat /proc/cmdline > $cmdline_base + sed -Ei 's/^(.*) rw .*$/\1/' $cmdline_base + fi -[ -z "$sonic_upgrade" ] || exit 0 + cp $cmdline_base /tmp/append -# build the new cmdline -echo "$append" >/tmp/append -parse_environment_config >>/tmp/append -cat /etc/cmdline | sed "/^\(${bootconfigvars// /\|}\|crashkernel\|loglevel\|ignore_loglevel\)\(\$\|=\)/d;/^\$/d" >>/tmp/append + platform_specific + echo "rw loop=$image_name/fs.squashfs loopfstype=squashfs apparmor=1 security=apparmor quiet" >> /tmp/append -echo "rw loop=image-%%IMAGE_VERSION%%/fs.squashfs loopfstype=squashfs apparmor=1 security=apparmor quiet" >>/tmp/append -# process platform specific operations -platform_specific + # use extra parameters from kernel-params hook if the file exists + if [ -f "$target_path/$kernel_params" ]; then + cat "$target_path/$kernel_params" >> /tmp/append + fi + + # setting root partition if not overridden by kernel-params + if ! grep -q "root=" /tmp/append; then + rootdev="$(mount | grep -E '/mnt/flash|/host' | cut -f1 -d' ')" + rootfstype="$(mount | grep -E '/mnt/flash|/host' | cut -f5 -d' ')" + rootuuid="$(get_uuid_for $rootdev)" + if [ -z "$rootuuid" ] || [ "$rootfstype" = "vfat" ] ; then + echo "root=$rootdev" >> /tmp/append + else + echo "root=UUID=$rootuuid" >> /tmp/append + fi + fi + + mv /tmp/append $cmdline_image + [ -e ${target_path}/machine.conf ] || write_machine_config +} + +run_kexec() { + local cmdline="$(cat $cmdline_image | tr '\n' ' ')" + local kernel="${KERNEL:-$(find $image_path/boot -name 'vmlinuz-*' -type f | head -n 1)}" + local initrd="${INITRD:-$(find $image_path/boot -name 'initrd.img-*' -type f | head -n 1)}" + + kexec --load --initrd="$initrd" --append="$cmdline" "$kernel" + + [ -z "$testonly" ] || exit 0 + echo "kexecing..." + kexec --exec +} -[ -e ${taget_path}/machine.conf ] || write_machine_config +# In Aboot no option will be provided therefore these are the default values to use +in_aboot=true +do_clean=true +do_install=true +do_kexec=true -# use extra parameters from kernel-params hook if the file exists -if [ -f "$image_path/$kernel_params" ]; then - cat "$image_path/$kernel_params" >>/tmp/append +# prevent the flash from being cleaned if the do-not-clean file exists +if [ -f "$target_path/$do_not_clean" ]; then + do_clean=false fi -# setting root partition if not overridden by kernel-params -if ! grep -q "root=" /tmp/append; then - rootdev=$(mount | grep '/mnt/flash' | cut -f1 -d' ') - rootfstype=$(mount | grep '/mnt/flash' | cut -f5 -d' ') - echo "root=$rootdev" >>/tmp/append +# Parse the cmdline options (used from EOS or from SONiC) +if [ ! -z "$install" ] || [ ! -z "$sonic_upgrade" ]; then + # install from SONiC or EOS + in_aboot=false + do_clean=false + do_kexec=false +elif [ ! -z "$kexec" ]; then + # kexec from SONiC or EOS + in_aboot=false + do_install=false + do_clean=false +elif [ $# -ne 0 ]; then + echo "usage: $0 (see code)" + exit 1 +fi + +# install the image if newer +if $do_install; then + # we expect the swi to install to be a non empty file + if [ ! -s "$swipath" ]; then + echo "The swipath= environment variable does not point to a valid SWI" + exit 1 + fi + + # check the hash file in the image, and determine to install or just skip + GIT_REVISION=$(unzip -p "$swipath" .imagehash) + LOCAL_IMAGEHASH=$(cat $image_path/.imagehash 2>/dev/null || true) + + if [ "$GIT_REVISION" != "$LOCAL_IMAGEHASH" ] || [ ! -z "$force" ]; then + if $do_clean; then + clean_flash + fi + + extract_image + write_boot_configs + fi fi # chainloading using kexec -initrd_path="$image_path/$initrd" -kernel_path="$image_path/$kernel" -cmdline="$(tr '\n' ' ' > $FILESYSTEM_ROOT/etc/default/docker" sudo chroot $FILESYSTEM_ROOT service docker start +sudo chroot $FILESYSTEM_ROOT docker info # Apply apt configuration files sudo cp $IMAGE_CONFIGS/apt/sources.list $FILESYSTEM_ROOT/etc/apt/ @@ -52,7 +60,7 @@ sudo cp $IMAGE_CONFIGS/environment/motd $FILESYSTEM_ROOT/etc/ # Create all needed directories sudo mkdir -p $FILESYSTEM_ROOT/etc/sonic/ -sudo mkdir -p $FILESYSTEM_ROOT/usr/share/sonic/templates/ +sudo mkdir -p $FILESYSTEM_ROOT_USR_SHARE_SONIC_TEMPLATES/ # Install dependencies for SONiC config engine sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install \ @@ -96,9 +104,12 @@ sudo dpkg --root=$FILESYSTEM_ROOT -i target/debs/sonic-device-data_*.deb || \ sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install -f # Install pam-tacplus and nss-tacplus -sudo dpkg --root=$FILESYSTEM_ROOT -i target/debs/libtac2_*.deb -sudo dpkg --root=$FILESYSTEM_ROOT -i target/debs/libpam-tacplus_*.deb -sudo dpkg --root=$FILESYSTEM_ROOT -i target/debs/libnss-tacplus_*.deb +sudo dpkg --root=$FILESYSTEM_ROOT -i target/debs/libtac2_*.deb || \ + sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install -f +sudo dpkg --root=$FILESYSTEM_ROOT -i target/debs/libpam-tacplus_*.deb || \ + sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install -f +sudo dpkg --root=$FILESYSTEM_ROOT -i target/debs/libnss-tacplus_*.deb || \ + sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install -f # Disable tacplus by default sudo LANG=C chroot $FILESYSTEM_ROOT pam-auth-update --remove tacplus sudo sed -i -e '/^passwd/s/ tacplus//' $FILESYSTEM_ROOT/etc/nsswitch.conf @@ -110,13 +121,13 @@ sudo cp -f $IMAGE_CONFIGS/cron.d/* $FILESYSTEM_ROOT/etc/cron.d/ sudo cp $IMAGE_CONFIGS/ntp/ntp-config.service $FILESYSTEM_ROOT/etc/systemd/system/ sudo LANG=C chroot $FILESYSTEM_ROOT systemctl enable ntp-config.service sudo cp $IMAGE_CONFIGS/ntp/ntp-config.sh $FILESYSTEM_ROOT/usr/bin/ -sudo cp $IMAGE_CONFIGS/ntp/ntp.conf.j2 $FILESYSTEM_ROOT/usr/share/sonic/templates/ +sudo cp $IMAGE_CONFIGS/ntp/ntp.conf.j2 $FILESYSTEM_ROOT_USR_SHARE_SONIC_TEMPLATES/ # Copy rsyslog configuration files and templates sudo cp $IMAGE_CONFIGS/rsyslog/rsyslog-config.service $FILESYSTEM_ROOT/etc/systemd/system/ sudo LANG=C chroot $FILESYSTEM_ROOT systemctl enable rsyslog-config.service sudo cp $IMAGE_CONFIGS/rsyslog/rsyslog-config.sh $FILESYSTEM_ROOT/usr/bin/ -sudo cp $IMAGE_CONFIGS/rsyslog/rsyslog.conf.j2 $FILESYSTEM_ROOT/usr/share/sonic/templates/ +sudo cp $IMAGE_CONFIGS/rsyslog/rsyslog.conf.j2 $FILESYSTEM_ROOT_USR_SHARE_SONIC_TEMPLATES/ sudo cp $IMAGE_CONFIGS/rsyslog/rsyslog.d/* $FILESYSTEM_ROOT/etc/rsyslog.d/ # Copy logrotate.d configuration files @@ -129,7 +140,7 @@ sudo cp -f $IMAGE_CONFIGS/systemd/journald.conf $FILESYSTEM_ROOT/etc/systemd/ sudo cp $IMAGE_CONFIGS/interfaces/interfaces-config.service $FILESYSTEM_ROOT/etc/systemd/system/ sudo LANG=C chroot $FILESYSTEM_ROOT systemctl enable interfaces-config.service sudo cp $IMAGE_CONFIGS/interfaces/interfaces-config.sh $FILESYSTEM_ROOT/usr/bin/ -sudo cp $IMAGE_CONFIGS/interfaces/*.j2 $FILESYSTEM_ROOT/usr/share/sonic/templates/ +sudo cp $IMAGE_CONFIGS/interfaces/*.j2 $FILESYSTEM_ROOT_USR_SHARE_SONIC_TEMPLATES/ # Copy initial interfaces configuration file, will be overwritten on first boot sudo cp $IMAGE_CONFIGS/interfaces/init_interfaces $FILESYSTEM_ROOT/etc/network @@ -138,7 +149,10 @@ sudo cp $IMAGE_CONFIGS/interfaces/init_interfaces $FILESYSTEM_ROOT/etc/network sudo cp $IMAGE_CONFIGS/hostcfgd/hostcfgd.service $FILESYSTEM_ROOT/etc/systemd/system/ sudo LANG=C chroot $FILESYSTEM_ROOT systemctl enable hostcfgd.service sudo cp $IMAGE_CONFIGS/hostcfgd/hostcfgd $FILESYSTEM_ROOT/usr/bin/ -sudo cp $IMAGE_CONFIGS/hostcfgd/*.j2 $FILESYSTEM_ROOT/usr/share/sonic/templates/ +sudo cp $IMAGE_CONFIGS/hostcfgd/*.j2 $FILESYSTEM_ROOT_USR_SHARE_SONIC_TEMPLATES/ + +# Copy the buffer configuration template +sudo cp $BUILD_TEMPLATES/buffers_config.j2 $FILESYSTEM_ROOT_USR_SHARE_SONIC_TEMPLATES/ # Copy hostname configuration scripts sudo cp $IMAGE_CONFIGS/hostname/hostname-config.service $FILESYSTEM_ROOT/etc/systemd/system/ @@ -159,6 +173,10 @@ sudo bash -c "echo enabled=false > $FILESYSTEM_ROOT/etc/sonic/updategraph.conf" {% if shutdown_bgp_on_start == "y" %} sudo bash -c "echo '{ \"DEVICE_METADATA\": { \"localhost\": { \"default_bgp_status\": \"down\" } } }' >> $FILESYSTEM_ROOT/etc/sonic/init_cfg.json" {% endif %} +{% if enable_pfcwd_on_start == "y" %} +sudo bash -c "echo '{ \"DEVICE_METADATA\": { \"localhost\": { \"default_pfcwd_status\": \"enable\" } } }' >> $FILESYSTEM_ROOT/etc/sonic/init_cfg.json" +{% endif %} + # Copy SNMP configuration files sudo cp $IMAGE_CONFIGS/snmp/snmp.yml $FILESYSTEM_ROOT/etc/sonic/ @@ -224,7 +242,7 @@ if [ "$image_type" = "aboot" ]; then sudo sed -i 's/udevadm settle/udevadm settle -E \/sys\/class\/net\/eth0/' $FILESYSTEM_ROOT/etc/init.d/networking fi -# Service to update the sshd config file based on database changes +# Service to update the sshd config file based on database changes for Arista devices sudo cp $IMAGE_CONFIGS/ssh/sshd-config-updater.service $FILESYSTEM_ROOT/etc/systemd/system sudo mkdir -p $FILESYSTEM_ROOT/etc/systemd/system/multi-user.target.wants cd $FILESYSTEM_ROOT/etc/systemd/system/multi-user.target.wants/ diff --git a/files/build_templates/swss.service.j2 b/files/build_templates/swss.service.j2 index bcda050e3ce..1ceb706a175 100644 --- a/files/build_templates/swss.service.j2 +++ b/files/build_templates/swss.service.j2 @@ -1,17 +1,17 @@ [Unit] Description=switch state service -Requires=database.service +Requires=database.service updategraph.service {% if sonic_asic_platform == 'broadcom' %} -Requires=opennsl-modules-3.16.0-5-amd64.service +Requires=opennsl-modules-4.9.0-5-amd64.service {% elif sonic_asic_platform == 'nephos' %} -Requires=nps-modules-3.16.0-5-amd64.service +Requires=nps-modules-4.9.0-5-amd64.service {% endif %} -After=database.service +After=database.service updategraph.service After=interfaces-config.service {% if sonic_asic_platform == 'broadcom' %} -After=opennsl-modules-3.16.0-5-amd64.service +After=opennsl-modules-4.9.0-5-amd64.service {% elif sonic_asic_platform == 'nephos' %} -After=nps-modules-3.16.0-5-amd64.service +After=nps-modules-4.9.0-5-amd64.service {% endif %} [Service] @@ -25,12 +25,13 @@ ExecStartPre=/usr/bin/docker exec database redis-cli -n 5 FLUSHDB ExecStartPre=/usr/bin/docker exec database redis-cli -n 6 FLUSHDB {% if sonic_asic_platform == 'mellanox' %} +Environment=FAST_BOOT=1 TimeoutStartSec=3min ExecStartPre=/usr/bin/mst start ExecStartPre=/usr/bin/mlnx-fw-upgrade.sh ExecStartPre=/etc/init.d/sxdkernel start ExecStartPre=/sbin/modprobe i2c-dev -ExecStartPre=/bin/bash -c "/usr/share/sonic/device/$(sonic-cfggen -v platform)/hw-management start" +ExecStartPre=/bin/bash -c "/usr/share/sonic/device/$(sonic-cfggen -H -v DEVICE_METADATA.localhost.platform)/hw-management start" {% elif sonic_asic_platform == 'cavium' %} ExecStartPre=/etc/init.d/xpnet.sh start {% endif %} @@ -43,7 +44,7 @@ ExecStop=/usr/bin/{{docker_container_name}}.sh stop ExecStopPost=/usr/bin/syncd.sh stop {% if sonic_asic_platform == 'mellanox' %} -ExecStopPost=/bin/bash -c "/usr/share/sonic/device/$(sonic-cfggen -v platform)/hw-management stop" +ExecStopPost=/bin/bash -c "/usr/share/sonic/device/$(sonic-cfggen -H -v DEVICE_METADATA.localhost.platform)/hw-management stop" ExecStopPost=/etc/init.d/sxdkernel stop ExecStopPost=/usr/bin/mst stop {% elif sonic_asic_platform == 'cavium' %} diff --git a/files/build_templates/teamd.service.j2 b/files/build_templates/teamd.service.j2 index e291a39b387..bbd04a81b05 100644 --- a/files/build_templates/teamd.service.j2 +++ b/files/build_templates/teamd.service.j2 @@ -1,7 +1,7 @@ [Unit] Description=TEAMD container -Requires=database.service -After=database.service +Requires=updategraph.service +After=updategraph.service [Service] User={{ sonicadmin_user }} diff --git a/files/docker/docker.service.conf b/files/docker/docker.service.conf index fba63af8f5f..b124d94f70d 100644 --- a/files/docker/docker.service.conf +++ b/files/docker/docker.service.conf @@ -1,3 +1,3 @@ [Service] ExecStart= -ExecStart=/usr/bin/docker daemon -H fd:// --storage-driver=aufs --bip=240.127.1.1/24 --iptables=false +ExecStart=/usr/bin/docker daemon -H fd:// --storage-driver=overlay --bip=240.127.1.1/24 --iptables=false diff --git a/files/image_config/apt/sources.list.d/debian_archive_trafficmanager_net_debian.list b/files/image_config/apt/sources.list.d/debian_archive_trafficmanager_net_debian.list index d5ecf56d406..1ddb193b103 100644 --- a/files/image_config/apt/sources.list.d/debian_archive_trafficmanager_net_debian.list +++ b/files/image_config/apt/sources.list.d/debian_archive_trafficmanager_net_debian.list @@ -1,2 +1,2 @@ -deb http://debian-archive.trafficmanager.net/debian/ jessie main contrib non-free -deb http://debian-archive.trafficmanager.net/debian-security/ jessie/updates main contrib non-free +deb http://debian-archive.trafficmanager.net/debian/ stretch main contrib non-free +deb http://debian-archive.trafficmanager.net/debian-security/ stretch/updates main contrib non-free diff --git a/files/image_config/bash/bash.bashrc b/files/image_config/bash/bash.bashrc index f59cc1bf647..d65beb5b084 100644 --- a/files/image_config/bash/bash.bashrc +++ b/files/image_config/bash/bash.bashrc @@ -53,3 +53,6 @@ if [ -x /usr/lib/command-not-found -o -x /usr/share/command-not-found/command-no fi } fi + +# enable auto-logout for console ttyS* sessions +tty | grep ttyS >/dev/null && TMOUT=300 diff --git a/files/image_config/caclmgrd/caclmgrd-start.sh b/files/image_config/caclmgrd/caclmgrd-start.sh index 3c7a2afbdf8..6bca9a81267 100755 --- a/files/image_config/caclmgrd/caclmgrd-start.sh +++ b/files/image_config/caclmgrd/caclmgrd-start.sh @@ -2,7 +2,7 @@ # Only start control plance ACL manager daemon if not an Arista platform. # Arista devices will use their own service ACL manager daemon(s) instead. -if [ "$(sonic-cfggen -v "platform" | grep -c "arista")" -gt 0 ]; then +if [ "$(sonic-cfggen -H -v "DEVICE_METADATA.localhost.platform" | grep -c "arista")" -gt 0 ]; then echo "Not starting caclmgrd - unsupported platform" exit 0 fi diff --git a/files/image_config/caclmgrd/caclmgrd.service b/files/image_config/caclmgrd/caclmgrd.service index 1acc23458c9..c63f1f7c5c7 100644 --- a/files/image_config/caclmgrd/caclmgrd.service +++ b/files/image_config/caclmgrd/caclmgrd.service @@ -1,7 +1,7 @@ [Unit] Description=Control Plane ACL configuration daemon -Requires=database.service -After=database.service +Requires=updategraph.service +After=updategraph.service [Service] Type=simple diff --git a/files/image_config/hostcfgd/hostcfgd b/files/image_config/hostcfgd/hostcfgd index 837c5351e0e..25cfa7c714c 100755 --- a/files/image_config/hostcfgd/hostcfgd +++ b/files/image_config/hostcfgd/hostcfgd @@ -32,6 +32,13 @@ def sub(l, start, end): return l[start:end] +def obfuscate(data): + if data: + return data[0] + '*****' + else: + return data + + class AaaCfg(object): def __init__(self): self.auth_default = { @@ -144,16 +151,19 @@ class HostConfigDaemon: self.aaacfg.load(aaa, tacacs_global, tacacs_server) def aaa_handler(self, key, data): - syslog.syslog(syslog.LOG_DEBUG, 'value for {} changed to {}'.format(key, data)) self.aaacfg.aaa_update(key, data) def tacacs_server_handler(self, key, data): - syslog.syslog(syslog.LOG_DEBUG, 'value for {} changed to {}'.format(key, data)) self.aaacfg.tacacs_server_update(key, data) + if data.has_key('passkey'): + data['passkey'] = obfuscate(data['passkey']) + syslog.syslog(syslog.LOG_DEBUG, 'value for {} changed to {}'.format(key, data)) def tacacs_global_handler(self, key, data): - syslog.syslog(syslog.LOG_DEBUG, 'value for {} changed to {}'.format(key, data)) self.aaacfg.tacacs_global_update(key, data) + if data.has_key('passkey'): + data['passkey'] = obfuscate(data['passkey']) + syslog.syslog(syslog.LOG_DEBUG, 'value for {} changed to {}'.format(key, data)) def start(self): self.config_db.subscribe('AAA', lambda table, key, data: self.aaa_handler(key, data)) diff --git a/files/image_config/hostcfgd/hostcfgd.service b/files/image_config/hostcfgd/hostcfgd.service index 4f6151a471f..762786ad830 100644 --- a/files/image_config/hostcfgd/hostcfgd.service +++ b/files/image_config/hostcfgd/hostcfgd.service @@ -1,7 +1,7 @@ [Unit] Description=Host config enforcer daemon -Requires=database.service -After=database.service +Requires=updategraph.service +After=updategraph.service [Service] Type=simple diff --git a/files/image_config/hostname/hostname-config.service b/files/image_config/hostname/hostname-config.service index e6e8f489883..c23ae10227a 100644 --- a/files/image_config/hostname/hostname-config.service +++ b/files/image_config/hostname/hostname-config.service @@ -1,7 +1,7 @@ [Unit] Description=Update hostname based on configdb -Requires=database.service -After=database.service +Requires=updategraph.service +After=updategraph.service [Service] Type=oneshot diff --git a/files/image_config/interfaces/interfaces-config.service b/files/image_config/interfaces/interfaces-config.service index 86706da2251..71178affdee 100644 --- a/files/image_config/interfaces/interfaces-config.service +++ b/files/image_config/interfaces/interfaces-config.service @@ -1,7 +1,7 @@ [Unit] Description=Update interfaces configuration -Requires=database.service -After=database.service +Requires=updategraph.service +After=updategraph.service [Service] Type=oneshot diff --git a/files/image_config/ntp/ntp-config.service b/files/image_config/ntp/ntp-config.service index d41f1ba2ddc..c86710e3d20 100644 --- a/files/image_config/ntp/ntp-config.service +++ b/files/image_config/ntp/ntp-config.service @@ -1,7 +1,7 @@ [Unit] Description=Update NTP configuration -Requires=database.service -After=database.service +Requires=updategraph.service +After=updategraph.service [Service] Type=oneshot diff --git a/files/image_config/platform/rc.local b/files/image_config/platform/rc.local index 563ba4cee7c..a89b800d12f 100755 --- a/files/image_config/platform/rc.local +++ b/files/image_config/platform/rc.local @@ -11,16 +11,92 @@ # # By default this script does nothing. +# In case the unit is migrating from another NOS, save the logs +log_migration() { + echo $1 >> /host/migration/migration.log +} + +# Import files from another NOS's partition onto SONiC +nos_migration_import() { + [ -f $1 ] && cp $1 $2 || log_migration "ERROR: $1 not found!" +} + +# While migrating form another NOS, we need to preserve the MAC addresses +# of eth0 (and eventually switchports). +# Update the eth0 mac and also the EEPROM using ethtool so that subsequent +# reboots use the NOS's mac. +# Input : mgmt_interface.cfg file imported from the previous NOS. +update_mgmt_interface_macaddr() { + mgmt_config=$1 + if [ ! -f "$mgmt_config" ]; then + log_migration "ERROR : unable update eth0 MAC : $mgmt_config not found!" + return + fi + + # Save the previous NOS's mac + old_mac=`ip link show eth0 | grep ether | awk '{print $2}'` + [ -z "$old_mac" ] && log_migration "Unable to retrieve old mac address !" && return + + # Extract, validate and set the eth0's mac address for the current session + new_mac=$(grep "macaddr" $mgmt_config | awk -F'=' '{print $2}') + log_migration "Setting eth0 mac as $new_mac." + if [ `echo $new_mac | egrep "^([0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2}$"` ]; then + ip link set eth0 down + ip link set eth0 address $new_mac + ip link set eth0 up + else + log_migration "ERROR: mac imported from NOS is invalid : $new_mac !" + return + fi + + # Get the ethtool magic and offset for changing the mac address in the EEPROM + ethtool_magic=$(grep "ethtool_magic" $mgmt_config | awk -F'=' '{print $2}') + ethtool_offset=$(grep "ethtool_offset" $mgmt_config | awk -F'=' '{print $2}') + if [ -z "$ethtool_magic" ] || [ -z "$ethtool_offset" ]; then + log_migration "Unable to retrieve ethtool params ($ethtool_magic,$ethtool_offset)" + return + fi + + log_migration "eth0 mac in EEPROM before update:" + ethtool -e eth0 offset $ethtool_offset length 6 >> /host/migration/migration.log + + # Update the mac address in the EEPROM for subsequent reboots + # Write only changed octets + for i in 1 2 3 4 5 6; do + offset=$(($ethtool_offset+$i-1)) + old_mac_octet="$(echo $old_mac | cut -d":" -f$i)" + new_mac_octet="$(echo $new_mac | cut -d":" -f$i)" + + if [ "$old_mac_octet" != "$new_mac_octet" ]; then + ethtool -E eth0 magic $ethtool_magic offset $offset value 0x$new_mac_octet + if [ $? != 0 ]; then + log_migration "ERROR: unable to update eth0 EEPROM!" + log_migration "index $i, magic $ethtool_magic offset $offset, value $new_mac_octet" + return + fi + fi + done + + log_migration "eth0 mac in EEPROM after update:" + ethtool -e eth0 offset $ethtool_offset length 6 >> /host/migration/migration.log + + # Update the 70-persistent-net.rules with the new mac for eth0 + log_migration "/etc/udev/rules.d/70-persistent-net.rules : replacing $old_mac with $new_mac for eth0" + sed -i "/eth0/ s/ATTR{address}==\"$old_mac\"/ATTR{address}==\"$new_mac\"/g" /etc/udev/rules.d/70-persistent-net.rules +} + # If the machine.conf is absent, it indicates that the unit booted # into SONiC from another NOS. Extract the machine.conf from ONIE. if [ ! -e /host/machine.conf ]; then + mkdir -p /host/migration + onie_dev=$(blkid | grep ONIE-BOOT | head -n 1 | awk '{print $1}' | sed -e 's/:.*$//') mkdir -p /mnt/onie-boot mount $onie_dev /mnt/onie-boot onie_grub_cfg=/mnt/onie-boot/onie/grub/grub-machine.cfg if [ ! -e $onie_grub_cfg ]; then - echo "$onie_grub_cfg not found" >> /etc/migration.log + log_migration "$onie_grub_cfg not found" else . ./$onie_grub_cfg grep = $onie_grub_cfg | sed -e 's/onie_//' -e 's/=.*$//' | while read var ; do @@ -29,6 +105,44 @@ if [ ! -e /host/machine.conf ]; then done fi + # Extract the previous NOS's partition that contains the migration artifacts + set -- $(cat /proc/cmdline) + for x in "$@"; do + case "$x" in + nos-config-part=*) + nos_val="${x#nos-config-part=}" + ;; + esac + done + + if [ -n "$nos_val" ]; then + nos_dev=$(findfs $nos_val) + if [ $? != 0 ]; then + log_migration "ERROR: nos_dev not found. Check grub parameters" + fi + else + log_migration "ERROR: nos_val not found. Check grub parameters" + fi + + if [ -n "$nos_dev" ]; then + # Mount the previous NOS's partition + mkdir -p /mnt/nos_migration + mount $nos_dev /mnt/nos_migration + mkdir -p /host/fast-reboot + + # Copy relevant files + nos_migration_import /mnt/nos_migration/mgmt_interface.cfg /host/migration + nos_migration_import /mnt/nos_migration/minigraph.xml /host/migration + nos_migration_import /mnt/nos_migration/arp.json /host/fast-reboot + nos_migration_import /mnt/nos_migration/fdb.json /host/fast-reboot + nos_migration_import /mnt/nos_migration/default_routes.json /host/fast-reboot + + umount /mnt/nos_migration + rmdir /mnt/nos_migration + fi + + update_mgmt_interface_macaddr /host/migration/mgmt_interface.cfg + migration="TRUE" umount /mnt/onie-boot fi @@ -43,15 +157,6 @@ firsttime_exit() exit 0 } -test_config() -{ - if [ -d /host/old_config ] && ( [ -f /host/old_config/minigraph.xml ] || [ -f /host/old_config/config_db.json ] ); then - return 0 - fi - - return 1 -} - # Given a string of tuples of the form field=value, extract the value for a field # In : $string, $field # Out: $value @@ -66,7 +171,7 @@ for x in "$@"; do done } -sonic_version=$(cat /etc/sonic/sonic_version.yml | grep build_version | cut -f2 -d" ") +eval sonic_version=$(cat /etc/sonic/sonic_version.yml | grep build_version | cut -f2 -d" ") if [ -f /host/image-$sonic_version/platform/firsttime ]; then @@ -79,55 +184,21 @@ if [ -f /host/image-$sonic_version/platform/firsttime ]; then firsttime_exit fi - # setup initial switch mac - SONIC_ASIC_TYPE=$(sonic-cfggen -y /etc/sonic/sonic_version.yml -v asic_type) - SYSTEM_MAC_ADDRESS=$(ip link show eth0 | grep ether | awk '{print $2}') - - # Align last byte of MAC if necessary - if [ "$SONIC_ASIC_TYPE" = "mellanox" ] || [ "$SONIC_ASIC_TYPE" = "centec" ]; then - last_byte=$(python -c "print '$SYSTEM_MAC_ADDRESS'[-2:]") - aligned_last_byte=$(python -c "print format(int(int('$last_byte', 16) & 0b11000000), '02x')") # put mask and take away the 0x prefix - SYSTEM_MAC_ADDRESS=$(python -c "print '$SYSTEM_MAC_ADDRESS'[:-2] + '$aligned_last_byte'") # put aligned byte into the end of MAC - fi - - if [ -f /etc/sonic/init_cfg.json ]; then - sonic-cfggen -j /etc/sonic/init_cfg.json -a '{"DEVICE_METADATA":{"localhost": {"mac": "'$SYSTEM_MAC_ADDRESS'"}}}' --print-data > /tmp/init_cfg.json - mv /tmp/init_cfg.json /etc/sonic/init_cfg.json - else - sonic-cfggen -a '{"DEVICE_METADATA":{"localhost": {"mac": "'$SYSTEM_MAC_ADDRESS'"}}}' --print-data > /etc/sonic/init_cfg.json - fi - # Try to take old configuration saved during installation - if test_config; then - rm -f /host/old_config/sonic_version.yml - mv -f /host/old_config/* /etc/sonic/ - if [ ! -f /etc/sonic/config_db.json ]; then - sonic-cfggen -m -j /etc/sonic/init_cfg.json --print-data > /etc/sonic/config_db.json - fi + # and create a flag in /tmp/ to let updategraph service know + if [ -d /host/old_config ]; then + mv -f /host/old_config /etc/sonic/ + touch /tmp/pending_config_migration elif [ -f /host/minigraph.xml ]; then - mv /host/minigraph.xml /etc/sonic/ - # Combine information in minigraph and init_cfg.json to form initiate config DB dump file. - # TODO: After moving all information from minigraph to DB, sample config DB dump should be provide - sonic-cfggen -m -j /etc/sonic/init_cfg.json --print-data > /etc/sonic/config_db.json + mkdir -p /etc/sonic/old_config + mv /host/minigraph.xml /etc/sonic/old_config/ + touch /tmp/pending_config_migration + elif [ -n "$migration" ] && [ -f /host/migration/minigraph.xml ]; then + mkdir -p /etc/sonic/old_config + mv /host/migration/minigraph.xml /etc/sonic/old_config/ + touch /tmp/pending_config_migration else - # Use default minigraph.xml - cp /usr/share/sonic/device/$platform/minigraph.xml /etc/sonic/ - sonic-cfggen -m -j /etc/sonic/init_cfg.json --print-data > /etc/sonic/config_db.json - fi - - HWSKU=`sonic-cfggen -m /etc/sonic/minigraph.xml -v "DEVICE_METADATA['localhost']['hwsku']"` - if [ -f /usr/share/sonic/device/$platform/$HWSKU/buffers.json.j2 ]; then - # generate and merge buffers configuration into config file - sonic-cfggen -m -t /usr/share/sonic/device/$platform/$HWSKU/buffers.json.j2 > /tmp/buffers.json - sonic-cfggen -j /etc/sonic/config_db.json -j /tmp/buffers.json --print-data > /tmp/config_db.json - mv /tmp/config_db.json /etc/sonic/config_db.json - - # Only apply qos.json when buffer configuration is available. - if [ -f /usr/share/sonic/device/$platform/$HWSKU/qos.json ]; then - # merge qos configuration into init config file - sonic-cfggen -j /etc/sonic/config_db.json -j /usr/share/sonic/device/$platform/$HWSKU/qos.json --print-data > /tmp/config_db.json - mv /tmp/config_db.json /etc/sonic/config_db.json - fi + touch /tmp/pending_config_initialization fi if [ -d /host/image-$sonic_version/platform/$platform ]; then @@ -140,26 +211,26 @@ if [ -f /host/image-$sonic_version/platform/firsttime ]; then grub_bin=$(ls /host/image-$sonic_version/platform/x86_64-grub/grub-pc-bin*.deb 2> /dev/null) if [ -z "$grub_bin" ]; then - echo "Unable to locate grub package !" >> /etc/migration.log + log_migration "Unable to locate grub package !" firsttime_exit fi dpkg -i $grub_bin > /dev/null 2>&1 if [ $? != 0 ]; then - echo "Unable to install grub package !" >> /etc/migration.log + log_migration "Unable to install grub package !" firsttime_exit fi # Determine the block device to install grub sonic_dev=$(blkid | grep SONiC-OS | head -n 1 | awk '{print $1}' | sed -e 's/[0-9]:.*$//') if [ -z "$sonic_dev" ]; then - echo "Unable to determine sonic partition !" >> /etc/migration.log + log_migration "Unable to determine sonic partition !" firsttime_exit fi grub-install --boot-directory=/host --recheck $sonic_dev 2>/dev/null if [ $? != 0 ]; then - echo "grub install failed !" >> /etc/migration.log + log_migration "grub install failed !" firsttime_exit fi @@ -176,7 +247,7 @@ if [ -f /host/image-$sonic_version/platform/firsttime ]; then if [ ! -z "$console_port" ] && [ "$console_port" != "$CONSOLE_PORT" ]; then sed -i -e "s/\-\-port=$console_port/\-\-port=$CONSOLE_PORT/g" /host/grub.cfg fi - echo "grub.cfg console port=$console_port & installer.conf CONSOLE_PORT=$CONSOLE_PORT" >> /etc/migration.log + log_migration "grub.cfg console port=$console_port & installer.conf CONSOLE_PORT=$CONSOLE_PORT" fi if [ ! -z "$CONSOLE_DEV" ]; then @@ -188,7 +259,7 @@ if [ -f /host/image-$sonic_version/platform/firsttime ]; then if [ "$console_dev" != "$CONSOLE_DEV" ]; then sed -i -e "s/console=ttyS$console_dev/console=ttyS$CONSOLE_DEV/g" /host/grub.cfg fi - echo "grub.cfg console dev=$console_dev & installer.conf CONSOLE_DEV=$CONSOLE_DEV" >> /etc/migration.log + log_migration "grub.cfg console dev=$console_dev & installer.conf CONSOLE_DEV=$CONSOLE_DEV" fi if [ ! -z "$VAR_LOG_SIZE" ]; then @@ -199,7 +270,7 @@ if [ -f /host/image-$sonic_version/platform/firsttime ]; then if [ ! -z "$var_log_size" ] && [ "$var_log_size" != "$VAR_LOG_SIZE" ]; then sed -i -e "s/var_log_size=$var_log_size/var_log_size=$VAR_LOG_SIZE/g" /host/grub.cfg fi - echo "grub.cfg var_log_size=$var_log_size & installer.conf VAR_LOG_SIZE=$VAR_LOG_SIZE" >> /etc/migration.log + log_migration "grub.cfg var_log_size=$var_log_size & installer.conf VAR_LOG_SIZE=$VAR_LOG_SIZE" fi # Set the root based on the label diff --git a/files/image_config/rsyslog/rsyslog-config.service b/files/image_config/rsyslog/rsyslog-config.service index e013b992030..ee62a36ccf2 100644 --- a/files/image_config/rsyslog/rsyslog-config.service +++ b/files/image_config/rsyslog/rsyslog-config.service @@ -1,7 +1,7 @@ [Unit] Description=Update rsyslog configuration -Requires=database.service -After=database.service +Requires=updategraph.service +After=updategraph.service [Service] Type=oneshot diff --git a/files/image_config/rsyslog/rsyslog.d/99-default.conf b/files/image_config/rsyslog/rsyslog.d/99-default.conf index 06a40ca6485..77609410c57 100644 --- a/files/image_config/rsyslog/rsyslog.d/99-default.conf +++ b/files/image_config/rsyslog/rsyslog.d/99-default.conf @@ -21,7 +21,7 @@ cron.* /var/log/cron.log # NOTE: adjust the list below, or you'll go crazy if you have a reasonably # busy site.. # -daemon.*;mail.*;\ - news.err;\ - *.=debug;*.=info;\ - *.=notice;*.=warn |/dev/xconsole +#daemon.*;mail.*;\ +# news.err;\ +# *.=debug;*.=info;\ +# *.=notice;*.=warn |/dev/xconsole diff --git a/files/image_config/ssh/sshd-clear-denied-sessions b/files/image_config/ssh/sshd-clear-denied-sessions index 76226e7fc69..d0ca6550239 100755 --- a/files/image_config/ssh/sshd-clear-denied-sessions +++ b/files/image_config/ssh/sshd-clear-denied-sessions @@ -12,71 +12,70 @@ import subprocess # Run utmpdump, capture and return its output def run_utmpdump(_utmpFilename): - devnull = file("/dev/null", "w" ) - p = subprocess.Popen(args=["utmpdump", _utmpFilename], stdout=subprocess.PIPE, stderr=devnull) - (stdout, stderr) = p.communicate() - rc = p.returncode - assert rc is not None # because p.communicate() should wait. - out = (stdout or '') + (stderr or '') - if rc: - e = SystemCommandError("%r: error code %d" % (" ".join(argv), rc)) - e.error = rc - e.output = out - raise e - return stdout + devnull = file("/dev/null", "w" ) + p = subprocess.Popen(args=["utmpdump", _utmpFilename], stdout=subprocess.PIPE, stderr=devnull) + (stdout, stderr) = p.communicate() + rc = p.returncode + assert rc is not None # because p.communicate() should wait. + out = (stdout or '') + (stderr or '') + if rc: + e = SystemCommandError("%r: error code %d" % (" ".join(argv), rc)) + e.error = rc + e.output = out + raise e + return stdout # Run utmpdump and parse its output into a list of dicts and return that def get_utmp_data(utmpFileName=None): - """Reads the specified utmp file. - Returns a list of dictionaries, one for each utmp entry. - All dictionary keys and values are strings - Values are right padded with spaces and may contain all - spaces if that utmp field is empty. - Dictionary keys: - "type": See UTMP_TYPE_* above - "pid": Process ID as a string - "tty": TTY (line) name - device name of tty w/o "/dev/" - "tty4": 4 char abbreivated TTY (line) name - "user": User ID - "host": Hostname for remote login, - kernel release for Run Level and Boot Time - "ipAddr": IP Address - "time": Time and date entry was made - See linux docs on utmp and utmpdemp for more info. - Example output from utmpdump: - pid tty4 user tty host ipAddr time - [7] [22953] [/238] [myname ] [pts/238 ] [example.com] [253.122.98.159 ] [Mon Dec 18 21:08:09 2017 PST] - """ - if not utmpFileName: - utmpFileName = os.environ.get( "DEFAULT_UTMP_FILE", "/var/run/utmp" ) - if not os.path.exists(utmpFileName): - return [] - output = run_utmpdump(utmpFileName) - lines = re.split("\n", output) - regExp = re.compile( - r"\[(?P" r"[^\]]*?)\s*\] \[(?P" r"[^\]]*?)\s*\] " \ - r"\[(?P" r"[^\]]*?)\s*\] \[(?P" r"[^\]]*?)\s*\] " \ - r"\[(?P" r"[^\]]*?)\s*\] \[(?P" r"[^\]]*?)\s*\] " \ - r"\[(?P" r"[^\]]*?)\s*\] \[(?P