From 7debcffe6249a97996222114c2963b47f4fe4326 Mon Sep 17 00:00:00 2001 From: jostar-yang Date: Wed, 30 Mar 2022 04:35:42 +0800 Subject: [PATCH 001/251] [Accton/PDDF] Enable thermalctld in pmon (#9982) When do "skip_thermalcltd: true" will let "show platform fan" and "show platform temp" fail. When enable thermalctld, these cmd will work well. Signed-off-by: Jostar Yang --- .../x86_64-accton_as5835_54t-r0/pmon_daemon_control.json | 2 +- .../x86_64-accton_as7712_32x-r0/pmon_daemon_control.json | 2 +- .../x86_64-accton_as7726_32x-r0/pmon_daemon_control.json | 3 +-- .../x86_64-accton_as9716_32d-r0/pmon_daemon_control.json | 2 +- 4 files changed, 4 insertions(+), 5 deletions(-) diff --git a/device/accton/x86_64-accton_as5835_54t-r0/pmon_daemon_control.json b/device/accton/x86_64-accton_as5835_54t-r0/pmon_daemon_control.json index 584a14b9d942..a3b204e20d8d 100644 --- a/device/accton/x86_64-accton_as5835_54t-r0/pmon_daemon_control.json +++ b/device/accton/x86_64-accton_as5835_54t-r0/pmon_daemon_control.json @@ -1,5 +1,5 @@ { "skip_ledd": true, - "skip_thermalctld": true + "skip_pcied": true } diff --git a/device/accton/x86_64-accton_as7712_32x-r0/pmon_daemon_control.json b/device/accton/x86_64-accton_as7712_32x-r0/pmon_daemon_control.json index 59bdebeb4b52..a3b204e20d8d 100644 --- a/device/accton/x86_64-accton_as7712_32x-r0/pmon_daemon_control.json +++ b/device/accton/x86_64-accton_as7712_32x-r0/pmon_daemon_control.json @@ -1,5 +1,5 @@ { "skip_ledd": true, - "skip_thermalctld": true, "skip_pcied": true } + diff --git a/device/accton/x86_64-accton_as7726_32x-r0/pmon_daemon_control.json b/device/accton/x86_64-accton_as7726_32x-r0/pmon_daemon_control.json index 0d3f1fb4561d..a3b204e20d8d 100644 --- a/device/accton/x86_64-accton_as7726_32x-r0/pmon_daemon_control.json +++ b/device/accton/x86_64-accton_as7726_32x-r0/pmon_daemon_control.json @@ -1,6 +1,5 @@ { "skip_ledd": true, - "skip_pcied": true, - "skip_thermalctld": true + "skip_pcied": true } diff --git a/device/accton/x86_64-accton_as9716_32d-r0/pmon_daemon_control.json b/device/accton/x86_64-accton_as9716_32d-r0/pmon_daemon_control.json index 584a14b9d942..a3b204e20d8d 100644 --- a/device/accton/x86_64-accton_as9716_32d-r0/pmon_daemon_control.json +++ b/device/accton/x86_64-accton_as9716_32d-r0/pmon_daemon_control.json @@ -1,5 +1,5 @@ { "skip_ledd": true, - "skip_thermalctld": true + "skip_pcied": true } From ab3053b3df8d072fa62de5babbd910675eea6928 Mon Sep 17 00:00:00 2001 From: jostar-yang Date: Wed, 30 Mar 2022 04:36:58 +0800 Subject: [PATCH 002/251] [Accton/PDDF] Support show cmd for psu-temp and fan (#10215) Why I did it Support for show platform temp/fan for psu-temp and fan. Original code doesn't has fan_drawer to support these information. How I did it Support for show platform temp/fan for psu-temp and fan. Add fan_drawer.py and update thermal.py to add needed code. It need PDDF common code to support . (Refer to #10213) How to verify it Test show platform temp and show platform fan. root@as7726-32x-2:~# show platform fan Drawer LED FAN Speed Direction Presence Status Timestamp Fantray1 green Fantray1_1 38% EXHAUST Present OK 20220311 08:13:04 Fantray1 green Fantray1_2 38% EXHAUST Present OK 20220311 08:13:04 Fantray2 green Fantray2_1 38% EXHAUST Present OK 20220311 08:13:04 Fantray2 green Fantray2_2 38% EXHAUST Present OK 20220311 08:13:04 Fantray3 green Fantray3_1 38% EXHAUST Present OK 20220311 08:13:04 Fantray3 green Fantray3_2 38% EXHAUST Present OK 20220311 08:13:04 Fantray4 green Fantray4_1 38% EXHAUST Present OK 20220311 08:13:04 Fantray4 green Fantray4_2 38% EXHAUST Present OK 20220311 08:13:04 Fantray5 green Fantray5_1 38% EXHAUST Present OK 20220311 08:13:04 Fantray5 green Fantray5_2 38% EXHAUST Present OK 20220311 08:13:04 Fantray6 green Fantray6_1 38% EXHAUST Present OK 20220311 08:13:04 Fantray6 green Fantray6_2 38% EXHAUST Present OK 20220311 08:13:04 N/A green PSU1_FAN1 23% EXHAUST Present OK 20220311 08:13:04 N/A green PSU2_FAN1 22% EXHAUST Present OK 20220311 08:13:04 root@as7726-32x-2:~# show platform temp Sensor Temperature High TH Low TH Crit High TH Crit Low TH Warning Timestamp PSU1_TEMP1 28 N/A N/A N/A N/A False 20220311 08:13:04 PSU2_TEMP1 25 N/A N/A N/A N/A False 20220311 08:13:04 TEMP1 23.5 80.0 N/A N/A N/A False 20220311 08:13:04 TEMP2 27 80.0 N/A N/A N/A False 20220311 08:13:04 TEMP3 24 80.0 N/A N/A N/A False 20220311 08:13:04 TEMP4 27 80.0 N/A N/A N/A False 20220311 08:13:04 TEMP5 24 80.0 N/A N/A N/A False 20220311 08:13:04 Co-authored-by: Jostar Yang --- .../as4630-54pe/sonic_platform/fan_drawer.py | 17 +++++++++++++++++ .../as4630-54pe/sonic_platform/thermal.py | 4 ++-- .../as7326-56x/sonic_platform/fan_drawer.py | 17 +++++++++++++++++ .../as7326-56x/sonic_platform/thermal.py | 4 ++-- .../as7712-32x/sonic_platform/fan_drawer.py | 17 +++++++++++++++++ .../as7712-32x/sonic_platform/thermal.py | 4 ++-- .../as7726-32x/sonic_platform/fan_drawer.py | 17 +++++++++++++++++ .../as7726-32x/sonic_platform/thermal.py | 4 ++-- .../as7816-64x/sonic_platform/fan_drawer.py | 17 +++++++++++++++++ .../as7816-64x/sonic_platform/thermal.py | 4 ++-- .../as9716-32d/sonic_platform/fan_drawer.py | 17 +++++++++++++++++ .../as9716-32d/sonic_platform/thermal.py | 4 ++-- 12 files changed, 114 insertions(+), 12 deletions(-) create mode 100644 platform/broadcom/sonic-platform-modules-accton/as4630-54pe/sonic_platform/fan_drawer.py create mode 100644 platform/broadcom/sonic-platform-modules-accton/as7326-56x/sonic_platform/fan_drawer.py create mode 100644 platform/broadcom/sonic-platform-modules-accton/as7712-32x/sonic_platform/fan_drawer.py create mode 100644 platform/broadcom/sonic-platform-modules-accton/as7726-32x/sonic_platform/fan_drawer.py create mode 100644 platform/broadcom/sonic-platform-modules-accton/as7816-64x/sonic_platform/fan_drawer.py create mode 100644 platform/broadcom/sonic-platform-modules-accton/as9716-32d/sonic_platform/fan_drawer.py diff --git a/platform/broadcom/sonic-platform-modules-accton/as4630-54pe/sonic_platform/fan_drawer.py b/platform/broadcom/sonic-platform-modules-accton/as4630-54pe/sonic_platform/fan_drawer.py new file mode 100644 index 000000000000..3b9bb607f632 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-accton/as4630-54pe/sonic_platform/fan_drawer.py @@ -0,0 +1,17 @@ +#!/usr/bin/env python + + +try: + from sonic_platform_pddf_base.pddf_fan_drawer import PddfFanDrawer +except ImportError as e: + raise ImportError(str(e) + "- required module not found") + + +class FanDrawer(PddfFanDrawer): + """PDDF Platform-Specific Fan-Drawer class""" + + def __init__(self, tray_idx, pddf_data=None, pddf_plugin_data=None): + # idx is 0-based + PddfFanDrawer.__init__(self, tray_idx, pddf_data, pddf_plugin_data) + + # Provide the functions/variables below for which implementation is to be overwritten diff --git a/platform/broadcom/sonic-platform-modules-accton/as4630-54pe/sonic_platform/thermal.py b/platform/broadcom/sonic-platform-modules-accton/as4630-54pe/sonic_platform/thermal.py index 5b829fc26caa..77d6ec7ae886 100644 --- a/platform/broadcom/sonic-platform-modules-accton/as4630-54pe/sonic_platform/thermal.py +++ b/platform/broadcom/sonic-platform-modules-accton/as4630-54pe/sonic_platform/thermal.py @@ -11,7 +11,7 @@ class Thermal(PddfThermal): """PDDF Platform-Specific Thermal class""" - def __init__(self, index, pddf_data=None, pddf_plugin_data=None): - PddfThermal.__init__(self, index, pddf_data, pddf_plugin_data) + def __init__(self, index, pddf_data=None, pddf_plugin_data=None, is_psu_thermal=False, psu_index=0): + PddfThermal.__init__(self, index, pddf_data, pddf_plugin_data, is_psu_thermal, psu_index) # Provide the functions/variables below for which implementation is to be overwritten diff --git a/platform/broadcom/sonic-platform-modules-accton/as7326-56x/sonic_platform/fan_drawer.py b/platform/broadcom/sonic-platform-modules-accton/as7326-56x/sonic_platform/fan_drawer.py new file mode 100644 index 000000000000..3b9bb607f632 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-accton/as7326-56x/sonic_platform/fan_drawer.py @@ -0,0 +1,17 @@ +#!/usr/bin/env python + + +try: + from sonic_platform_pddf_base.pddf_fan_drawer import PddfFanDrawer +except ImportError as e: + raise ImportError(str(e) + "- required module not found") + + +class FanDrawer(PddfFanDrawer): + """PDDF Platform-Specific Fan-Drawer class""" + + def __init__(self, tray_idx, pddf_data=None, pddf_plugin_data=None): + # idx is 0-based + PddfFanDrawer.__init__(self, tray_idx, pddf_data, pddf_plugin_data) + + # Provide the functions/variables below for which implementation is to be overwritten diff --git a/platform/broadcom/sonic-platform-modules-accton/as7326-56x/sonic_platform/thermal.py b/platform/broadcom/sonic-platform-modules-accton/as7326-56x/sonic_platform/thermal.py index 5b829fc26caa..77d6ec7ae886 100644 --- a/platform/broadcom/sonic-platform-modules-accton/as7326-56x/sonic_platform/thermal.py +++ b/platform/broadcom/sonic-platform-modules-accton/as7326-56x/sonic_platform/thermal.py @@ -11,7 +11,7 @@ class Thermal(PddfThermal): """PDDF Platform-Specific Thermal class""" - def __init__(self, index, pddf_data=None, pddf_plugin_data=None): - PddfThermal.__init__(self, index, pddf_data, pddf_plugin_data) + def __init__(self, index, pddf_data=None, pddf_plugin_data=None, is_psu_thermal=False, psu_index=0): + PddfThermal.__init__(self, index, pddf_data, pddf_plugin_data, is_psu_thermal, psu_index) # Provide the functions/variables below for which implementation is to be overwritten diff --git a/platform/broadcom/sonic-platform-modules-accton/as7712-32x/sonic_platform/fan_drawer.py b/platform/broadcom/sonic-platform-modules-accton/as7712-32x/sonic_platform/fan_drawer.py new file mode 100644 index 000000000000..3b9bb607f632 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-accton/as7712-32x/sonic_platform/fan_drawer.py @@ -0,0 +1,17 @@ +#!/usr/bin/env python + + +try: + from sonic_platform_pddf_base.pddf_fan_drawer import PddfFanDrawer +except ImportError as e: + raise ImportError(str(e) + "- required module not found") + + +class FanDrawer(PddfFanDrawer): + """PDDF Platform-Specific Fan-Drawer class""" + + def __init__(self, tray_idx, pddf_data=None, pddf_plugin_data=None): + # idx is 0-based + PddfFanDrawer.__init__(self, tray_idx, pddf_data, pddf_plugin_data) + + # Provide the functions/variables below for which implementation is to be overwritten diff --git a/platform/broadcom/sonic-platform-modules-accton/as7712-32x/sonic_platform/thermal.py b/platform/broadcom/sonic-platform-modules-accton/as7712-32x/sonic_platform/thermal.py index 5b829fc26caa..77d6ec7ae886 100644 --- a/platform/broadcom/sonic-platform-modules-accton/as7712-32x/sonic_platform/thermal.py +++ b/platform/broadcom/sonic-platform-modules-accton/as7712-32x/sonic_platform/thermal.py @@ -11,7 +11,7 @@ class Thermal(PddfThermal): """PDDF Platform-Specific Thermal class""" - def __init__(self, index, pddf_data=None, pddf_plugin_data=None): - PddfThermal.__init__(self, index, pddf_data, pddf_plugin_data) + def __init__(self, index, pddf_data=None, pddf_plugin_data=None, is_psu_thermal=False, psu_index=0): + PddfThermal.__init__(self, index, pddf_data, pddf_plugin_data, is_psu_thermal, psu_index) # Provide the functions/variables below for which implementation is to be overwritten diff --git a/platform/broadcom/sonic-platform-modules-accton/as7726-32x/sonic_platform/fan_drawer.py b/platform/broadcom/sonic-platform-modules-accton/as7726-32x/sonic_platform/fan_drawer.py new file mode 100644 index 000000000000..3b9bb607f632 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-accton/as7726-32x/sonic_platform/fan_drawer.py @@ -0,0 +1,17 @@ +#!/usr/bin/env python + + +try: + from sonic_platform_pddf_base.pddf_fan_drawer import PddfFanDrawer +except ImportError as e: + raise ImportError(str(e) + "- required module not found") + + +class FanDrawer(PddfFanDrawer): + """PDDF Platform-Specific Fan-Drawer class""" + + def __init__(self, tray_idx, pddf_data=None, pddf_plugin_data=None): + # idx is 0-based + PddfFanDrawer.__init__(self, tray_idx, pddf_data, pddf_plugin_data) + + # Provide the functions/variables below for which implementation is to be overwritten diff --git a/platform/broadcom/sonic-platform-modules-accton/as7726-32x/sonic_platform/thermal.py b/platform/broadcom/sonic-platform-modules-accton/as7726-32x/sonic_platform/thermal.py index 5b829fc26caa..77d6ec7ae886 100644 --- a/platform/broadcom/sonic-platform-modules-accton/as7726-32x/sonic_platform/thermal.py +++ b/platform/broadcom/sonic-platform-modules-accton/as7726-32x/sonic_platform/thermal.py @@ -11,7 +11,7 @@ class Thermal(PddfThermal): """PDDF Platform-Specific Thermal class""" - def __init__(self, index, pddf_data=None, pddf_plugin_data=None): - PddfThermal.__init__(self, index, pddf_data, pddf_plugin_data) + def __init__(self, index, pddf_data=None, pddf_plugin_data=None, is_psu_thermal=False, psu_index=0): + PddfThermal.__init__(self, index, pddf_data, pddf_plugin_data, is_psu_thermal, psu_index) # Provide the functions/variables below for which implementation is to be overwritten diff --git a/platform/broadcom/sonic-platform-modules-accton/as7816-64x/sonic_platform/fan_drawer.py b/platform/broadcom/sonic-platform-modules-accton/as7816-64x/sonic_platform/fan_drawer.py new file mode 100644 index 000000000000..3b9bb607f632 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-accton/as7816-64x/sonic_platform/fan_drawer.py @@ -0,0 +1,17 @@ +#!/usr/bin/env python + + +try: + from sonic_platform_pddf_base.pddf_fan_drawer import PddfFanDrawer +except ImportError as e: + raise ImportError(str(e) + "- required module not found") + + +class FanDrawer(PddfFanDrawer): + """PDDF Platform-Specific Fan-Drawer class""" + + def __init__(self, tray_idx, pddf_data=None, pddf_plugin_data=None): + # idx is 0-based + PddfFanDrawer.__init__(self, tray_idx, pddf_data, pddf_plugin_data) + + # Provide the functions/variables below for which implementation is to be overwritten diff --git a/platform/broadcom/sonic-platform-modules-accton/as7816-64x/sonic_platform/thermal.py b/platform/broadcom/sonic-platform-modules-accton/as7816-64x/sonic_platform/thermal.py index 5b829fc26caa..77d6ec7ae886 100644 --- a/platform/broadcom/sonic-platform-modules-accton/as7816-64x/sonic_platform/thermal.py +++ b/platform/broadcom/sonic-platform-modules-accton/as7816-64x/sonic_platform/thermal.py @@ -11,7 +11,7 @@ class Thermal(PddfThermal): """PDDF Platform-Specific Thermal class""" - def __init__(self, index, pddf_data=None, pddf_plugin_data=None): - PddfThermal.__init__(self, index, pddf_data, pddf_plugin_data) + def __init__(self, index, pddf_data=None, pddf_plugin_data=None, is_psu_thermal=False, psu_index=0): + PddfThermal.__init__(self, index, pddf_data, pddf_plugin_data, is_psu_thermal, psu_index) # Provide the functions/variables below for which implementation is to be overwritten diff --git a/platform/broadcom/sonic-platform-modules-accton/as9716-32d/sonic_platform/fan_drawer.py b/platform/broadcom/sonic-platform-modules-accton/as9716-32d/sonic_platform/fan_drawer.py new file mode 100644 index 000000000000..3b9bb607f632 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-accton/as9716-32d/sonic_platform/fan_drawer.py @@ -0,0 +1,17 @@ +#!/usr/bin/env python + + +try: + from sonic_platform_pddf_base.pddf_fan_drawer import PddfFanDrawer +except ImportError as e: + raise ImportError(str(e) + "- required module not found") + + +class FanDrawer(PddfFanDrawer): + """PDDF Platform-Specific Fan-Drawer class""" + + def __init__(self, tray_idx, pddf_data=None, pddf_plugin_data=None): + # idx is 0-based + PddfFanDrawer.__init__(self, tray_idx, pddf_data, pddf_plugin_data) + + # Provide the functions/variables below for which implementation is to be overwritten diff --git a/platform/broadcom/sonic-platform-modules-accton/as9716-32d/sonic_platform/thermal.py b/platform/broadcom/sonic-platform-modules-accton/as9716-32d/sonic_platform/thermal.py index 5b829fc26caa..77d6ec7ae886 100644 --- a/platform/broadcom/sonic-platform-modules-accton/as9716-32d/sonic_platform/thermal.py +++ b/platform/broadcom/sonic-platform-modules-accton/as9716-32d/sonic_platform/thermal.py @@ -11,7 +11,7 @@ class Thermal(PddfThermal): """PDDF Platform-Specific Thermal class""" - def __init__(self, index, pddf_data=None, pddf_plugin_data=None): - PddfThermal.__init__(self, index, pddf_data, pddf_plugin_data) + def __init__(self, index, pddf_data=None, pddf_plugin_data=None, is_psu_thermal=False, psu_index=0): + PddfThermal.__init__(self, index, pddf_data, pddf_plugin_data, is_psu_thermal, psu_index) # Provide the functions/variables below for which implementation is to be overwritten From 1ddcfd0c3c516a28a63faac922a9df25061641b8 Mon Sep 17 00:00:00 2001 From: tjchadaga <85581939+tjchadaga@users.noreply.github.com> Date: Tue, 29 Mar 2022 13:41:31 -0700 Subject: [PATCH 003/251] Update Broadcom SAI version to 6.1 (#10344) --- platform/broadcom/sai-modules.mk | 4 ++-- platform/broadcom/sai.mk | 4 ++-- platform/broadcom/saibcm-modules-dnx | 2 +- platform/broadcom/saibcm-modules/debian/changelog | 6 ++++++ platform/broadcom/saibcm-modules/make/Make.config | 5 +++++ .../saibcm-modules/systems/linux/user/common/Makefile | 4 ++++ 6 files changed, 20 insertions(+), 5 deletions(-) diff --git a/platform/broadcom/sai-modules.mk b/platform/broadcom/sai-modules.mk index b4f28f125687..1236e06d6240 100644 --- a/platform/broadcom/sai-modules.mk +++ b/platform/broadcom/sai-modules.mk @@ -1,6 +1,6 @@ # Broadcom SAI modules -BRCM_OPENNSL_KERNEL_VERSION = 6.0.0.13 +BRCM_OPENNSL_KERNEL_VERSION = 6.1.0.3 BRCM_OPENNSL_KERNEL = opennsl-modules_$(BRCM_OPENNSL_KERNEL_VERSION)_amd64.deb $(BRCM_OPENNSL_KERNEL)_SRC_PATH = $(PLATFORM_PATH)/saibcm-modules @@ -10,7 +10,7 @@ $(BRCM_OPENNSL_KERNEL)_MACHINE = broadcom SONIC_DPKG_DEBS += $(BRCM_OPENNSL_KERNEL) # SAI bcm modules for DNX family ASIC -BRCM_DNX_OPENNSL_KERNEL_VERSION = 6.0.0.13 +BRCM_DNX_OPENNSL_KERNEL_VERSION = 6.1.0.3 BRCM_DNX_OPENNSL_KERNEL = opennsl-modules-dnx_$(BRCM_DNX_OPENNSL_KERNEL_VERSION)_amd64.deb $(BRCM_DNX_OPENNSL_KERNEL)_SRC_PATH = $(PLATFORM_PATH)/saibcm-modules-dnx diff --git a/platform/broadcom/sai.mk b/platform/broadcom/sai.mk index e23515a1f5ea..1ec8d915e5bd 100644 --- a/platform/broadcom/sai.mk +++ b/platform/broadcom/sai.mk @@ -1,5 +1,5 @@ -LIBSAIBCM_VERSION = 6.0.0.13-3 -LIBSAIBCM_BRANCH_NAME = REL_6.0 +LIBSAIBCM_VERSION = 6.1.0.3 +LIBSAIBCM_BRANCH_NAME = REL_6.1 LIBSAIBCM_URL_PREFIX = "https://sonicstorage.blob.core.windows.net/public/sai/bcmsai/$(LIBSAIBCM_BRANCH_NAME)/$(LIBSAIBCM_VERSION)" BRCM_SAI = libsaibcm_$(LIBSAIBCM_VERSION)_amd64.deb diff --git a/platform/broadcom/saibcm-modules-dnx b/platform/broadcom/saibcm-modules-dnx index 3fc83d5e5f9d..6bf58f8310bc 160000 --- a/platform/broadcom/saibcm-modules-dnx +++ b/platform/broadcom/saibcm-modules-dnx @@ -1 +1 @@ -Subproject commit 3fc83d5e5f9d1abad3ddf7fa6767b8cdd6121232 +Subproject commit 6bf58f8310bcb29168ae5b2dabed84fc942429fc diff --git a/platform/broadcom/saibcm-modules/debian/changelog b/platform/broadcom/saibcm-modules/debian/changelog index e9e36aaaf302..0ff357c57279 100644 --- a/platform/broadcom/saibcm-modules/debian/changelog +++ b/platform/broadcom/saibcm-modules/debian/changelog @@ -1,3 +1,9 @@ +opennsl (6.1.0.3) unstable; urgency=medium + + * Update to Broadcom SAI 6.1.0.3 + + -- Tejaswini Chadaga Fri, 24 MAR 2022 12:30:00 +0000 + opennsl (6.0.0.13) unstable; urgency=medium * Update to Broadcom SAI 6.0.0.13 diff --git a/platform/broadcom/saibcm-modules/make/Make.config b/platform/broadcom/saibcm-modules/make/Make.config index b6f42bf65c48..01869634e295 100644 --- a/platform/broadcom/saibcm-modules/make/Make.config +++ b/platform/broadcom/saibcm-modules/make/Make.config @@ -120,7 +120,12 @@ ifndef SDKBUILD SDKBUILD :=build endif +ifdef SDK_OUTDIR +BLDROOT = ${SDK_OUTDIR}/${SDKBUILD}/$(if ${BLDCONFIG},${BLDCONFIG}/)${target}${all_suffix}${bldroot_suffix} +export DEST_DIR := ${SDK_OUTDIR}/${SDKBUILD}$(if ${BLDCONFIG},/${BLDCONFIG})$(DEST_DIR_SUFFIX) +else BLDROOT = ${SDK}/${SDKBUILD}/$(if ${BLDCONFIG},${BLDCONFIG}/)${target}${all_suffix}${bldroot_suffix} +endif endif # ifeq "$(HOSTTYPE)" "Windows2000PC" diff --git a/platform/broadcom/saibcm-modules/systems/linux/user/common/Makefile b/platform/broadcom/saibcm-modules/systems/linux/user/common/Makefile index 3dc6425e6ee0..7a342f6ef60e 100644 --- a/platform/broadcom/saibcm-modules/systems/linux/user/common/Makefile +++ b/platform/broadcom/saibcm-modules/systems/linux/user/common/Makefile @@ -69,8 +69,12 @@ kernel-override=linux-$(platform) ifdef BLDCONFIG KERN_BLDROOT=${SDK}/${SDKBUILD}/${BLDCONFIG}/$(kernel-override)$(bldroot_suffix) else +ifdef SDK_OUTDIR +KERN_BLDROOT=${SDK_OUTDIR}/${SDKBUILD}/$(kernel-override)$(bldroot_suffix) +else KERN_BLDROOT=${SDK}/${SDKBUILD}/$(kernel-override)$(bldroot_suffix) endif +endif ifeq (,$(kernel_version)) kernel_version=2_4 From ced22db1e3870d363c3c330f111606ad6ff3f7ae Mon Sep 17 00:00:00 2001 From: xumia <59720581+xumia@users.noreply.github.com> Date: Wed, 30 Mar 2022 14:43:51 +0800 Subject: [PATCH 004/251] [Build]: fix ENABLE_DOCKER_BASE_PULL not working issue in armhf/arm64 (#10330) Why I did it Fix ENABLE_DOCKER_BASE_PULL not working issue in armhf/arm64 For build in native armhf/arm64, the expected container registry repo name is sonic-slave- How I did it Publish the slave image to sonic-slave-. --- .azure-pipelines/docker-sonic-slave-arm64.yml | 1 + .azure-pipelines/docker-sonic-slave-armhf.yml | 1 + .azure-pipelines/docker-sonic-slave-template.yml | 15 +++++++++++++++ .azure-pipelines/docker-sonic-slave.yml | 1 + 4 files changed, 18 insertions(+) diff --git a/.azure-pipelines/docker-sonic-slave-arm64.yml b/.azure-pipelines/docker-sonic-slave-arm64.yml index 94c6143eed55..6bb9203b49ae 100644 --- a/.azure-pipelines/docker-sonic-slave-arm64.yml +++ b/.azure-pipelines/docker-sonic-slave-arm64.yml @@ -23,6 +23,7 @@ pr: - sonic-slave-stretch - sonic-slave-buster - sonic-slave-bullseye + - .azure-pipelines parameters: - name: 'dists' diff --git a/.azure-pipelines/docker-sonic-slave-armhf.yml b/.azure-pipelines/docker-sonic-slave-armhf.yml index ab0cefebf61f..250bf7400a69 100644 --- a/.azure-pipelines/docker-sonic-slave-armhf.yml +++ b/.azure-pipelines/docker-sonic-slave-armhf.yml @@ -23,6 +23,7 @@ pr: - sonic-slave-stretch - sonic-slave-buster - sonic-slave-bullseye + - .azure-pipelines parameters: - name: 'dists' diff --git a/.azure-pipelines/docker-sonic-slave-template.yml b/.azure-pipelines/docker-sonic-slave-template.yml index 212b449abb18..7ba3592044c4 100644 --- a/.azure-pipelines/docker-sonic-slave-template.yml +++ b/.azure-pipelines/docker-sonic-slave-template.yml @@ -81,6 +81,10 @@ jobs: docker tag $SLAVE_BASE_IMAGE:$SLAVE_BASE_TAG $REGISTRY_SERVER/$SLAVE_BASE_IMAGE_UPLOAD:latest docker tag $SLAVE_BASE_IMAGE:$SLAVE_BASE_TAG $REGISTRY_SERVER/$SLAVE_BASE_IMAGE_UPLOAD:$SLAVE_BASE_TAG + if [ "$SLAVE_BASE_IMAGE_UPLOAD" != "$SLAVE_DIR" ]; then + docker tag $SLAVE_BASE_IMAGE:$SLAVE_BASE_TAG $REGISTRY_SERVER/$SLAVE_DIR:latest-${{ parameters.arch }} + docker tag $SLAVE_BASE_IMAGE:$SLAVE_BASE_TAG $REGISTRY_SERVER/$SLAVE_DIR:$SLAVE_BASE_TAG + fi set +x echo "##vso[task.setvariable variable=VARIABLE_SLAVE_BASE_IMAGE]$SLAVE_BASE_IMAGE_UPLOAD" echo "##vso[task.setvariable variable=VARIABLE_SLAVE_BASE_TAG]$SLAVE_BASE_TAG" @@ -89,6 +93,7 @@ jobs: displayName: Build sonic-slave-${{ parameters.dist }}-${{ parameters.arch }} - task: Docker@2 + condition: ne(variables['Build.Reason'], 'PullRequest') displayName: Upload image inputs: containerRegistry: ${{ parameters.registry_conn }} @@ -97,3 +102,13 @@ jobs: tags: | $(VARIABLE_SLAVE_BASE_TAG) latest + - ${{ if ne(parameters.arch, 'amd64') }}: + - task: Docker@2 + condition: ne(variables['Build.Reason'], 'PullRequest') + displayName: Upload image ${{ parameters.dist }} + inputs: + containerRegistry: ${{ parameters.registry_conn }} + repository: "sonic-slave-${{ parameters.dist }}" + command: push + tags: | + $(VARIABLE_SLAVE_BASE_TAG) diff --git a/.azure-pipelines/docker-sonic-slave.yml b/.azure-pipelines/docker-sonic-slave.yml index a0b156bfde19..bf5fce77a722 100644 --- a/.azure-pipelines/docker-sonic-slave.yml +++ b/.azure-pipelines/docker-sonic-slave.yml @@ -24,6 +24,7 @@ pr: - sonic-slave-buster - sonic-slave-bullseye - src/sonic-build-hooks + - .azure-pipelines parameters: - name: 'arches' From 761ae244271d01f60bb6a4462888590066f78338 Mon Sep 17 00:00:00 2001 From: Lior Avramov <73036155+liorghub@users.noreply.github.com> Date: Wed, 30 Mar 2022 14:43:13 +0300 Subject: [PATCH 005/251] [submodule] Advance sonic-utilities submodule pointer (#10333) Update sonic-utilities submodule to include below commits: 510a9b9 Add date to show version (#2086) 61b1396 [sfpshow][recycle_port] sfpshow script needs to skip recycle ports (#2109) 4681697 Support command `show ip fib` and `show ipv6 fib` (#2100) 2a982a1 Update `config mirror_session` CLI to support heximal gre type value (#2095) b25f1e1 [generic-config-updater] Add caclrule validator (#2103) 968900c [sonic-package-manager] do not mod_config for whole config db when setting init_cfg (#2055) bf55ceb [nvgre] Added auto-generated CLI plugins and test for NVGRE Tunnel feature (#1915) 8389c81 [sonic-cli-gen] fix failure "Error: digits_class" when field "digit_class" does not exist in DB (#2054) f71ef64 Fix import statement in mclag.py (#2073) --- src/sonic-utilities | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-utilities b/src/sonic-utilities index a2e68a05a8e6..8389c8137d4f 160000 --- a/src/sonic-utilities +++ b/src/sonic-utilities @@ -1 +1 @@ -Subproject commit a2e68a05a8e6ab296978a59bf107971beb899546 +Subproject commit 8389c8137d4fdc5a2d1c803c9c06e6dcb4f849c1 From 1e2e493daa642bff3472953669d0d08ffb3190a4 Mon Sep 17 00:00:00 2001 From: Andriy Yurkiv <70649192+ayurkiv-nvda@users.noreply.github.com> Date: Wed, 30 Mar 2022 20:41:31 +0300 Subject: [PATCH 006/251] [Mellanox] Credo Y-cable read_eeprom/write_eeprom API implementation (#10320) - Why I did it Implement read_eeprom/write_eeprom API for Credo Y-cable for Dual ToR Active-Standby - How I did it Use mlxreg utility for API implementation Signed-off-by: Andriy Yurkiv --- .../mlnx-platform-api/sonic_platform/sfp.py | 164 +++++++++++++++++- .../tests/input_platform/__init__.py | 0 .../tests/input_platform/output_sfp.py | 55 ++++++ .../mlnx-platform-api/tests/test_sfp.py | 29 ++++ 4 files changed, 247 insertions(+), 1 deletion(-) create mode 100644 platform/mellanox/mlnx-platform-api/tests/input_platform/__init__.py create mode 100644 platform/mellanox/mlnx-platform-api/tests/input_platform/output_sfp.py diff --git a/platform/mellanox/mlnx-platform-api/sonic_platform/sfp.py b/platform/mellanox/mlnx-platform-api/sonic_platform/sfp.py index 29d1c7c081f6..7ebe9d5e5e57 100644 --- a/platform/mellanox/mlnx-platform-api/sonic_platform/sfp.py +++ b/platform/mellanox/mlnx-platform-api/sonic_platform/sfp.py @@ -121,6 +121,13 @@ # parameters for SFP presence SFP_STATUS_INSERTED = '1' +# SFP constants +SFP_PAGE_SIZE = 256 +SFP_UPPER_PAGE_OFFSET = 128 +SFP_VENDOR_PAGE_START = 640 + +BYTES_IN_DWORD = 4 + # Global logger class instance logger = Logger() @@ -146,6 +153,72 @@ def deinitialize_sdk_handle(sdk_handle): logger.log_warning("Sdk handle is none") return False +class MlxregManager: + def __init__(self, mst_pci_device, slot_id, sdk_index): + self.mst_pci_device = mst_pci_device + self.slot_id = slot_id + self.sdk_index = sdk_index + + def construct_dword(self, write_buffer): + if len(write_buffer) == 0: + return None + + used_bytes_in_dword = len(write_buffer) % BYTES_IN_DWORD + + res = "dword[0]=0x" + for idx, x in enumerate(write_buffer): + word = hex(x)[2:] + + if (idx > 0) and (idx % BYTES_IN_DWORD) == 0: + res += ",dword[{}]=0x".format(str((idx + 1)//BYTES_IN_DWORD)) + res += word.zfill(2) + + if used_bytes_in_dword > 0: + res += (BYTES_IN_DWORD - used_bytes_in_dword) * "00" + return res + + def write_mlxreg_eeprom(self, num_bytes, dword, device_address, page): + if not dword: + return False + + try: + cmd = "mlxreg -d /dev/mst/{} --reg_name MCIA --indexes \ + slot_index={},module={},device_address={},page_number={},i2c_device_address=0x50,size={},bank_number=0 \ + --set {} -y".format(self.mst_pci_device, self.slot_id, self.sdk_index, device_address, page, num_bytes, dword) + subprocess.check_call(cmd, shell=True, universal_newlines=True, stdout=subprocess.DEVNULL) + except subprocess.CalledProcessError as e: + logger.log_error("Error! Unable to write data for {} port, page {} offset {}, rc = {}, err msg: {}".format(self.sdk_index, page, device_address, e.returncode, e.output)) + return False + return True + + def read_mlxred_eeprom(self, offset, page, num_bytes): + try: + cmd = "mlxreg -d /dev/mst/{} --reg_name MCIA --indexes \ + slot_index={},module={},device_address={},page_number={},i2c_device_address=0x50,size={},bank_number=0 \ + --get".format(self.mst_pci_device, self.slot_id, self.sdk_index, offset, page, num_bytes) + result = subprocess.check_output(cmd, universal_newlines=True, shell=True) + except subprocess.CalledProcessError as e: + logger.log_error("Error! Unable to write data for {} port, page {} offset {}, rc = {}, err msg: {}".format(self.sdk_index, page, device_address, e.returncode, e.output)) + return None + return result + + def parse_mlxreg_read_output(self, read_output, num_bytes): + res = "" + dword_num = num_bytes // BYTES_IN_DWORD + used_bytes_in_dword = num_bytes % BYTES_IN_DWORD + arr = [value for value in read_output.split('\n') if value[0:5] == "dword"] + for i in range(dword_num): + dword = arr[i].split()[2] + res += dword[2:] + + if used_bytes_in_dword > 0: + # Cut needed info and insert into final hex string + # Example: 3 bytes : 0x12345600 + # ^ ^ + dword = arr[dword_num].split()[2] + res += dword[2 : 2 + used_bytes_in_dword * 2] + + return bytearray.fromhex(res) if res else None class SdkHandleContext(object): def __init__(self): @@ -194,6 +267,16 @@ def __init__(self, sfp_index, slot_id=0, linecard_port_count=0, lc_name=None): self._thermal_list = initialize_linecard_sfp_thermal(lc_name, slot_id, sfp_index) self.slot_id = slot_id + self.mst_pci_device = self.get_mst_pci_device() + + # get MST PCI device name + def get_mst_pci_device(self): + device_name = None + try: + device_name = subprocess.check_output("ls /dev/mst/ | grep pciconf", universal_newlines=True, shell=True).strip() + except subprocess.CalledProcessError as e: + logger.log_error("Failed to find mst PCI device rc={} err.msg={}".format(e.returncode, e.output)) + return device_name @property def sdk_handle(self): @@ -222,7 +305,11 @@ def get_presence(self): return eeprom_raw is not None # Read out any bytes from any offset - def read_eeprom(self, offset, num_bytes): + def _read_eeprom_specific_bytes(self, offset, num_bytes): + if offset + num_bytes > SFP_VENDOR_PAGE_START: + logger.log_error("Error mismatch between page size and bytes to read (offset: {} num_bytes: {}) ".format(offset, num_bytes)) + return None + eeprom_raw = [] ethtool_cmd = "ethtool -m sfp{} hex on offset {} length {}".format(self.index, offset, num_bytes) try: @@ -241,6 +328,81 @@ def read_eeprom(self, offset, num_bytes): eeprom_raw = list(map(lambda h: int(h, base=16), eeprom_raw)) return bytearray(eeprom_raw) + # read eeprom specfic bytes beginning from offset with size as num_bytes + def read_eeprom(self, offset, num_bytes): + """ + Read eeprom specfic bytes beginning from a random offset with size as num_bytes + Returns: + bytearray, if raw sequence of bytes are read correctly from the offset of size num_bytes + None, if the read_eeprom fails + Example: + mlxreg -d /dev/mst/mt52100_pciconf0 --reg_name MCIA --indexes slot_index=0,module=1,device_address=148,page_number=0,i2c_device_address=0x50,size=16,bank_number=0 -g + Sending access register... + Field Name | Data + =================================== + status | 0x00000000 + slot_index | 0x00000000 + module | 0x00000001 + l | 0x00000000 + device_address | 0x00000094 + page_number | 0x00000000 + i2c_device_address | 0x00000050 + size | 0x00000010 + bank_number | 0x00000000 + dword[0] | 0x43726564 + dword[1] | 0x6f202020 + dword[2] | 0x20202020 + dword[3] | 0x20202020 + dword[4] | 0x00000000 + dword[5] | 0x00000000 + .... + 16 bytes to read from dword -> 0x437265646f2020202020202020202020 -> Credo + """ + # recalculate offset and page. Use 'ethtool' if there is no need to read vendor pages + if offset < SFP_VENDOR_PAGE_START: + return self._read_eeprom_specific_bytes(offset, num_bytes) + else: + page = (offset - SFP_PAGE_SIZE) // SFP_UPPER_PAGE_OFFSET + 1 + # calculate offset per page + device_address = (offset - SFP_PAGE_SIZE) % SFP_UPPER_PAGE_OFFSET + SFP_UPPER_PAGE_OFFSET + + if not self.mst_pci_device: + return None + + mlxreg_mngr = MlxregManager(self.mst_pci_device, self.slot_id, self.sdk_index) + read_output = mlxreg_mngr.read_mlxred_eeprom(device_address, page, num_bytes) + return mlxreg_mngr.parse_mlxreg_read_output(read_output, num_bytes) + + # write eeprom specfic bytes beginning from offset with size as num_bytes + def write_eeprom(self, offset, num_bytes, write_buffer): + """ + write eeprom specfic bytes beginning from a random offset with size as num_bytes + and write_buffer as the required bytes + Returns: + Boolean, true if the write succeeded and false if it did not succeed. + Example: + mlxreg -d /dev/mst/mt52100_pciconf0 --reg_name MCIA --indexes slot_index=0,module=1,device_address=154,page_number=5,i2c_device_address=0x50,size=1,bank_number=0 --set dword[0]=0x01000000 -y + """ + if num_bytes != len(write_buffer): + logger.log_error("Error mismatch between buffer length and number of bytes to be written") + return False + + # recalculate offset and page + if offset < SFP_PAGE_SIZE: + page = 0 + device_address = offset + else: + page = (offset - SFP_PAGE_SIZE) // SFP_UPPER_PAGE_OFFSET + 1 + # calculate offset per page + device_address = (offset - SFP_PAGE_SIZE) % SFP_UPPER_PAGE_OFFSET + SFP_UPPER_PAGE_OFFSET + + if not self.mst_pci_device: + return False + + mlxreg_mngr = MlxregManager(self.mst_pci_device, self.slot_id, self.sdk_index) + dword = mlxreg_mngr.construct_dword(write_buffer) + return mlxreg_mngr.write_mlxreg_eeprom(num_bytes, dword, device_address, page) + @classmethod def mgmt_phy_mod_pwr_attr_get(cls, power_attr_type, sdk_handle, sdk_index, slot_id): sx_mgmt_phy_mod_pwr_attr_p = new_sx_mgmt_phy_mod_pwr_attr_t_p() diff --git a/platform/mellanox/mlnx-platform-api/tests/input_platform/__init__.py b/platform/mellanox/mlnx-platform-api/tests/input_platform/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/platform/mellanox/mlnx-platform-api/tests/input_platform/output_sfp.py b/platform/mellanox/mlnx-platform-api/tests/input_platform/output_sfp.py new file mode 100644 index 000000000000..20a09d1b54f6 --- /dev/null +++ b/platform/mellanox/mlnx-platform-api/tests/input_platform/output_sfp.py @@ -0,0 +1,55 @@ +""" +module holding the correct values for the sfp_test.py +""" + +read_eeprom_output = """ +Sending access register... +Field Name | Data +=================================== +status | 0x00000000 +slot_index | 0x00000000 +module | 0x00000001 +l | 0x00000000 +device_address | 0x000000a8 +page_number | 0x00000000 +i2c_device_address | 0x00000050 +size | 0x00000010 +bank_number | 0x00000000 +dword[0] | 0x43414331 +dword[1] | 0x31353332 +dword[2] | 0x31503250 +dword[3] | 0x41324d53 +dword[4] | 0x00000000 +dword[5] | 0x00000000 +dword[6] | 0x00000000 +dword[7] | 0x00000000 +dword[8] | 0x00000000 +dword[9] | 0x00000000 +dword[10] | 0x00000000 +dword[11] | 0x00000000 +dword[12] | 0x00000000 +dword[13] | 0x00000000 +dword[14] | 0x00000000 +dword[15] | 0x00000000 +dword[16] | 0x00000000 +dword[17] | 0x00000000 +dword[18] | 0x00000000 +dword[19] | 0x00000000 +dword[20] | 0x00000000 +dword[21] | 0x00000000 +dword[22] | 0x00000000 +dword[23] | 0x00000000 +dword[24] | 0x00000000 +dword[25] | 0x00000000 +dword[26] | 0x00000000 +dword[27] | 0x00000000 +dword[28] | 0x00000000 +dword[29] | 0x00000000 +dword[30] | 0x00000000 +dword[31] | 0x00000000 +=================================== +""" + +y_cable_part_number = "CAC115321P2PA2MS" +write_eeprom_dword1 = "dword[0]=0x01020304" +write_eeprom_dword2 = "dword[0]=0x01020304,dword[1]=0x05060000" diff --git a/platform/mellanox/mlnx-platform-api/tests/test_sfp.py b/platform/mellanox/mlnx-platform-api/tests/test_sfp.py index 261a03b527aa..dcb3953ded88 100644 --- a/platform/mellanox/mlnx-platform-api/tests/test_sfp.py +++ b/platform/mellanox/mlnx-platform-api/tests/test_sfp.py @@ -27,6 +27,9 @@ from sonic_platform.sfp import SFP, SX_PORT_MODULE_STATUS_INITIALIZING, SX_PORT_MODULE_STATUS_PLUGGED, SX_PORT_MODULE_STATUS_UNPLUGGED, SX_PORT_MODULE_STATUS_PLUGGED_WITH_ERROR, SX_PORT_MODULE_STATUS_PLUGGED_DISABLED from sonic_platform.chassis import Chassis +from sonic_platform.sfp import MlxregManager +from tests.input_platform import output_sfp + class TestSfp: @mock.patch('sonic_platform.device_data.DeviceDataManager.get_linecard_count', mock.MagicMock(return_value=8)) @@ -80,3 +83,29 @@ def test_sfp_get_error_status(self, mock_get_error_code): description = sfp.get_error_description() assert description == expected_description + + @mock.patch('sonic_platform.sfp.SFP.get_mst_pci_device', mock.MagicMock(return_value="pciconf")) + @mock.patch('sonic_platform.sfp.MlxregManager.write_mlxreg_eeprom', mock.MagicMock(return_value=True)) + def test_sfp_write_eeprom(self): + mlxreg_mngr = MlxregManager("", 0, 0) + write_buffer = bytearray([1,2,3,4]) + offset = 793 + + sfp = SFP(0) + sfp.write_eeprom(offset, 4, write_buffer) + MlxregManager.write_mlxreg_eeprom.assert_called_with(4, output_sfp.write_eeprom_dword1, 153, 5) + + offset = 641 + write_buffer = bytearray([1,2,3,4,5,6]) + sfp.write_eeprom(offset, 6, write_buffer) + MlxregManager.write_mlxreg_eeprom.assert_called_with(6, output_sfp.write_eeprom_dword2, 129, 4) + + @mock.patch('sonic_platform.sfp.SFP.get_mst_pci_device', mock.MagicMock(return_value="pciconf")) + @mock.patch('sonic_platform.sfp.MlxregManager.read_mlxred_eeprom', mock.MagicMock(return_value=output_sfp.read_eeprom_output)) + def test_sfp_read_eeprom(self): + mlxreg_mngr = MlxregManager("", 0, 0) + offset = 644 + + sfp = SFP(0) + assert output_sfp.y_cable_part_number == sfp.read_eeprom(offset, 16).decode() + MlxregManager.read_mlxred_eeprom.assert_called_with(132, 4, 16) From b31df59c7c42a440a22d1b1e8d1bdda8d08e7a40 Mon Sep 17 00:00:00 2001 From: Lawrence Lee Date: Wed, 30 Mar 2022 14:03:29 -0700 Subject: [PATCH 007/251] [tun_pkt]: Wait for AsyncSniffer to init fully (#10346) Fix for Tunnel packet handler can crash at system startup Signed-off-by: Lawrence Lee --- .../docker-orchagent/tunnel_packet_handler.py | 86 ++++++++++--------- 1 file changed, 46 insertions(+), 40 deletions(-) diff --git a/dockers/docker-orchagent/tunnel_packet_handler.py b/dockers/docker-orchagent/tunnel_packet_handler.py index 3d9b48b450b6..682316eb6d49 100755 --- a/dockers/docker-orchagent/tunnel_packet_handler.py +++ b/dockers/docker-orchagent/tunnel_packet_handler.py @@ -51,6 +51,10 @@ def __init__(self): self._portchannel_intfs = None self.up_portchannels = None self.netlink_api = IPRoute() + self.sniffer = None + self.self_ip = '' + self.packet_filter = '' + self.sniff_intfs = [] @property def portchannel_intfs(self): @@ -270,6 +274,39 @@ def sniffer_restart_required(self, messages): return True return False + def start_sniffer(self): + """ + Starts an AsyncSniffer and waits for it to inititalize fully + """ + self.sniffer = AsyncSniffer( + iface=self.sniff_intfs, + filter=self.packet_filter, + prn=self.ping_inner_dst, + store=0 + ) + self.sniffer.start() + + while not hasattr(self.sniffer, 'stop_cb'): + time.sleep(0.1) + + def ping_inner_dst(self, packet): + """ + Pings the inner destination IP for an encapsulated packet + + Args: + packet: The encapsulated packet received + """ + inner_packet_type = self.get_inner_pkt_type(packet) + if inner_packet_type and packet[IP].dst == self.self_ip: + cmds = ['timeout', '0.2', 'ping', '-c1', + '-W1', '-i0', '-n', '-q'] + if inner_packet_type == IPv6: + cmds.append('-6') + dst_ip = packet[IP].payload[inner_packet_type].dst + cmds.append(dst_ip) + logger.log_info("Running command '{}'".format(' '.join(cmds))) + subprocess.run(cmds, stdout=subprocess.DEVNULL) + def listen_for_tunnel_pkts(self): """ Listens for tunnel packets that are trapped to CPU @@ -277,59 +314,28 @@ def listen_for_tunnel_pkts(self): These packets may be trapped if there is no neighbor info for the inner packet destination IP in the hardware. """ - - def _ping_inner_dst(packet): - """ - Pings the inner destination IP for an encapsulated packet - - Args: - packet: The encapsulated packet received - """ - inner_packet_type = self.get_inner_pkt_type(packet) - if inner_packet_type and packet[IP].dst == self_ip: - cmds = ['timeout', '0.2', 'ping', '-c1', - '-W1', '-i0', '-n', '-q'] - if inner_packet_type == IPv6: - cmds.append('-6') - dst_ip = packet[IP].payload[inner_packet_type].dst - cmds.append(dst_ip) - logger.log_info("Running command '{}'".format(' '.join(cmds))) - subprocess.run(cmds, stdout=subprocess.DEVNULL) - - self_ip, peer_ip = self.get_ipinip_tunnel_addrs() - if self_ip is None or peer_ip is None: + self.self_ip, peer_ip = self.get_ipinip_tunnel_addrs() + if self.self_ip is None or peer_ip is None: logger.log_notice('Could not get tunnel addresses from ' 'config DB, exiting...') return None - packet_filter = 'host {} and host {}'.format(self_ip, peer_ip) + self.packet_filter = 'host {} and host {}'.format(self.self_ip, peer_ip) logger.log_notice('Starting tunnel packet handler for {}' - .format(packet_filter)) + .format(self.packet_filter)) - sniff_intfs = self.get_up_portchannels() - logger.log_info("Listening on interfaces {}".format(sniff_intfs)) + self.sniff_intfs = self.get_up_portchannels() + logger.log_info("Listening on interfaces {}".format(self.sniff_intfs)) - sniffer = AsyncSniffer( - iface=sniff_intfs, - filter=packet_filter, - prn=_ping_inner_dst, - store=0 - ) - sniffer.start() + self.start_sniffer() while True: msgs = self.wait_for_netlink_msgs() if self.sniffer_restart_required(msgs): - sniffer.stop() + self.sniffer.stop() sniff_intfs = self.get_up_portchannels() logger.log_notice('Restarting tunnel packet handler on ' 'interfaces {}'.format(sniff_intfs)) - sniffer = AsyncSniffer( - iface=sniff_intfs, - filter=packet_filter, - prn=_ping_inner_dst, - store=0 - ) - sniffer.start() + self.start_sniffer() def run(self): """ From 16766c0ea4aff78bb8b749d31e6a2135386681f4 Mon Sep 17 00:00:00 2001 From: Longxiang Lyu <35479537+lolyu@users.noreply.github.com> Date: Thu, 31 Mar 2022 08:24:13 +0800 Subject: [PATCH 008/251] [YANG ] Support vlan sub intf short naming format (#10160) Why I did it To support vlan sub intf short naming format, like subport Eth8.100 for parent portEthernet8 with vlan id 100. How I did it Add checks to must condition to verify there is a port or portchannel with the index same as the vlan sub intf. How to verify it Run the unttests. --- .../tests/files/sample_config_db.json | 16 +- .../tests/vlan_sub_interface.json | 18 ++ .../tests_config/vlan_sub_interface.json | 214 ++++++++++++++++++ .../yang-models/sonic-vlan-sub-interface.yang | 12 +- 4 files changed, 255 insertions(+), 5 deletions(-) diff --git a/src/sonic-yang-models/tests/files/sample_config_db.json b/src/sonic-yang-models/tests/files/sample_config_db.json index 6415fb6100e9..d33cf20e2038 100644 --- a/src/sonic-yang-models/tests/files/sample_config_db.json +++ b/src/sonic-yang-models/tests/files/sample_config_db.json @@ -900,11 +900,21 @@ } }, "VLAN_SUB_INTERFACE": { - "Ethernet120.10": { + "Ethernet12.10": { "admin_status": "up" }, - "Ethernet120.10|10.0.1.56/31": {}, - "Ethernet120.10|fc00::1:71/126": {} + "Ethernet12.10|10.0.1.56/31": {}, + "Ethernet12.10|fc00::1:71/126": {}, + "Po0003.10": { + "admin_status": "up" + }, + "Po0003.10|10.0.1.58/31": {}, + "Po0003.10|fc00::1:75/126": {}, + "Eth120.10": { + "admin_status": "up" + }, + "Eth120.10|10.0.1.60/31": {}, + "Eth120.10|fc00::1:79/126": {} }, "VLAN_MEMBER": { "Vlan111|Ethernet0": { diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests/vlan_sub_interface.json b/src/sonic-yang-models/tests/yang_model_tests/tests/vlan_sub_interface.json index 789b7ddd364a..e3ffa9dc44b6 100644 --- a/src/sonic-yang-models/tests/yang_model_tests/tests/vlan_sub_interface.json +++ b/src/sonic-yang-models/tests/yang_model_tests/tests/vlan_sub_interface.json @@ -2,10 +2,28 @@ "VLAN_SUB_INTERFACE_MUST_CONDITION_TRUE_TEST": { "desc": "Configure valid vlan sub interface must condition true." }, + "VLAN_SUB_INTERFACE_SHORT_NAME_FORMAT_MUST_CONDITION_TRUE_TEST": { + "desc": "Configure valid short name format vlan sub interface must condition true." + }, "VLAN_SUB_INTERFACE_MUST_CONDITION_FALSE_TEST": { "desc": "Configure vlan sub interface must condition false.", "eStrKey": "Must" }, + "VLAN_SUB_INTERFACE_SHORT_NAME_FORMAT_MUST_CONDITION_FALSE_TEST": { + "desc": "Configure short name format vlan sub interface must condition false.", + "eStrKey": "Must" + }, + "VLAN_SUB_INTERFACE_PO_SHORT_NAME_FORMAT_MUST_CONDITION_TRUE_TEST": { + "desc": "Configure valid portchannel short name format vlan sub interface must condition true." + }, + "VLAN_SUB_INTERFACE_PO_MUST_CONDITION_FALSE_TEST": { + "desc": "Configure portchannel long name format vlan sub interface must condition false.", + "eStrKey": "Must" + }, + "VLAN_SUB_INTERFACE_PO_SHORT_NAME_FORMAT_MUST_CONDITION_FALSE_TEST": { + "desc": "Configure portchannel short name format vlan sub interface must condition false.", + "eStrKey": "Must" + }, "VLAN_SUB_INTERFACE_IP_PREFIX_PORT_NON_EXISTING_LEAF_TEST": { "desc": "Configure ip prefix vlan sub interface with non-existing reference.", "eStrKey": "LeafRef" diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests_config/vlan_sub_interface.json b/src/sonic-yang-models/tests/yang_model_tests/tests_config/vlan_sub_interface.json index f95b1af8f049..8adff73e497c 100644 --- a/src/sonic-yang-models/tests/yang_model_tests/tests_config/vlan_sub_interface.json +++ b/src/sonic-yang-models/tests/yang_model_tests/tests_config/vlan_sub_interface.json @@ -31,6 +31,38 @@ } } }, + "VLAN_SUB_INTERFACE_SHORT_NAME_FORMAT_MUST_CONDITION_TRUE_TEST": { + "sonic-vlan-sub-interface:sonic-vlan-sub-interface": { + "sonic-vlan-sub-interface:VLAN_SUB_INTERFACE": { + "VLAN_SUB_INTERFACE_LIST": [ + { + "name": "Eth8.10" + } + ], + "VLAN_SUB_INTERFACE_IPPREFIX_LIST": [ + { + "name": "Eth8.10", + "ip-prefix": "10.0.0.1/30" + } + ] + } + }, + "sonic-port:sonic-port": { + "sonic-port:PORT": { + "PORT_LIST": [ + { + "name": "Ethernet8", + "admin_status": "up", + "alias": "Ethernet8/1", + "description": "Ethernet8", + "lanes": "45,46,47,48", + "mtu": 9000, + "speed": 100000 + } + ] + } + } + }, "VLAN_SUB_INTERFACE_MUST_CONDITION_FALSE_TEST": { "sonic-vlan-sub-interface:sonic-vlan-sub-interface": { "sonic-vlan-sub-interface:VLAN_SUB_INTERFACE": { @@ -63,6 +95,188 @@ } } }, + "VLAN_SUB_INTERFACE_SHORT_NAME_FORMAT_MUST_CONDITION_FALSE_TEST": { + "sonic-vlan-sub-interface:sonic-vlan-sub-interface": { + "sonic-vlan-sub-interface:VLAN_SUB_INTERFACE": { + "VLAN_SUB_INTERFACE_LIST": [ + { + "name": "Eth8.10" + } + ], + "VLAN_SUB_INTERFACE_IPPREFIX_LIST": [ + { + "name": "Eth8.10", + "ip-prefix": "10.0.0.1/30" + } + ] + } + }, + "sonic-port:sonic-port": { + "sonic-port:PORT": { + "PORT_LIST": [ + { + "name": "Ethernet12", + "admin_status": "up", + "alias": "Ethernet12/1", + "description": "Ethernet12", + "lanes": "49,50,51,52", + "mtu": 9000, + "speed": 100000 + } + ] + } + } + }, + "VLAN_SUB_INTERFACE_PO_SHORT_NAME_FORMAT_MUST_CONDITION_TRUE_TEST": { + "sonic-vlan-sub-interface:sonic-vlan-sub-interface": { + "sonic-vlan-sub-interface:VLAN_SUB_INTERFACE": { + "VLAN_SUB_INTERFACE_LIST": [ + { + "name": "Po0001.10" + } + ], + "VLAN_SUB_INTERFACE_IPPREFIX_LIST": [ + { + "name": "Po0001.10", + "ip-prefix": "10.0.0.1/30" + } + ] + } + }, + "sonic-port:sonic-port": { + "sonic-port:PORT": { + "PORT_LIST": [ + { + "admin_status": "up", + "alias": "eth0", + "description": "Ethernet0", + "lanes": "65", + "mtu": 9000, + "name": "Ethernet0", + "tpid": "0x8100", + "speed": 25000 + } + ] + } + }, + "sonic-portchannel:sonic-portchannel": { + "sonic-portchannel:PORTCHANNEL": { + "PORTCHANNEL_LIST": [ + { + "admin_status": "up", + "members": [ + "Ethernet0" + ], + "min_links": "1", + "mtu": "9100", + "tpid": "0x8100", + "lacp_key": "auto", + "name": "PortChannel0001" + } + ] + } + } + }, + "VLAN_SUB_INTERFACE_PO_MUST_CONDITION_FALSE_TEST": { + "sonic-vlan-sub-interface:sonic-vlan-sub-interface": { + "sonic-vlan-sub-interface:VLAN_SUB_INTERFACE": { + "VLAN_SUB_INTERFACE_LIST": [ + { + "name": "PortChannel0001.10" + } + ], + "VLAN_SUB_INTERFACE_IPPREFIX_LIST": [ + { + "name": "PortChannel0001.10", + "ip-prefix": "10.0.0.1/30" + } + ] + } + }, + "sonic-port:sonic-port": { + "sonic-port:PORT": { + "PORT_LIST": [ + { + "admin_status": "up", + "alias": "eth0", + "description": "Ethernet0", + "lanes": "65", + "mtu": 9000, + "name": "Ethernet0", + "tpid": "0x8100", + "speed": 25000 + } + ] + } + }, + "sonic-portchannel:sonic-portchannel": { + "sonic-portchannel:PORTCHANNEL": { + "PORTCHANNEL_LIST": [ + { + "admin_status": "up", + "members": [ + "Ethernet0" + ], + "min_links": "1", + "mtu": "9100", + "tpid": "0x8100", + "lacp_key": "auto", + "name": "PortChannel0001" + } + ] + } + } + }, + "VLAN_SUB_INTERFACE_PO_SHORT_NAME_FORMAT_MUST_CONDITION_FALSE_TEST": { + "sonic-vlan-sub-interface:sonic-vlan-sub-interface": { + "sonic-vlan-sub-interface:VLAN_SUB_INTERFACE": { + "VLAN_SUB_INTERFACE_LIST": [ + { + "name": "Po0002.10" + } + ], + "VLAN_SUB_INTERFACE_IPPREFIX_LIST": [ + { + "name": "Po0002.10", + "ip-prefix": "10.0.0.1/30" + } + ] + } + }, + "sonic-port:sonic-port": { + "sonic-port:PORT": { + "PORT_LIST": [ + { + "admin_status": "up", + "alias": "eth0", + "description": "Ethernet0", + "lanes": "65", + "mtu": 9000, + "name": "Ethernet0", + "tpid": "0x8100", + "speed": 25000 + } + ] + } + }, + "sonic-portchannel:sonic-portchannel": { + "sonic-portchannel:PORTCHANNEL": { + "PORTCHANNEL_LIST": [ + { + "admin_status": "up", + "members": [ + "Ethernet0" + ], + "min_links": "1", + "mtu": "9100", + "tpid": "0x8100", + "lacp_key": "auto", + "name": "PortChannel0001" + } + ] + } + } + }, "VLAN_SUB_INTERFACE_IP_PREFIX_PORT_NON_EXISTING_LEAF_TEST": { "sonic-vlan-sub-interface:sonic-vlan-sub-interface": { "sonic-vlan-sub-interface:VLAN_SUB_INTERFACE": { diff --git a/src/sonic-yang-models/yang-models/sonic-vlan-sub-interface.yang b/src/sonic-yang-models/yang-models/sonic-vlan-sub-interface.yang index 6ce391033ab0..953aa7e14c80 100644 --- a/src/sonic-yang-models/yang-models/sonic-vlan-sub-interface.yang +++ b/src/sonic-yang-models/yang-models/sonic-vlan-sub-interface.yang @@ -14,6 +14,10 @@ module sonic-vlan-sub-interface { prefix port; } + import sonic-portchannel { + prefix lag; + } + import sonic-vrf { prefix vrf; } @@ -36,9 +40,13 @@ module sonic-vlan-sub-interface { key "name"; leaf name { - must "substring-before(current(), '.') = /port:sonic-port/port:PORT/port:PORT_LIST/port:name" + must "(substring-before(current(), '.') = /port:sonic-port/port:PORT/port:PORT_LIST/port:name) or " + + "(starts-with(substring-before(current(), '.'), 'Eth') and " + + "concat('Ethernet', substring-after(substring-before(current(), '.'), 'Eth')) = /port:sonic-port/port:PORT/port:PORT_LIST/port:name) or " + + "(starts-with(substring-before(current(), '.'), 'Po') and " + + "concat('PortChannel', substring-after(substring-before(current(), '.'), 'Po')) = /lag:sonic-portchannel/lag:PORTCHANNEL/lag:PORTCHANNEL_LIST/lag:name)" { - error-message "Must condition not satisfied, Try adding PORT: {}, Example: 'Ethernet0': {}"; + error-message "Must condition not satisfied, please follow vlan sub interface naming convention"; } // check if the vlan sub interface have the form as . From 47f4a9d90557e91a98a45976d52966932d6ac14e Mon Sep 17 00:00:00 2001 From: xumia <59720581+xumia@users.noreply.github.com> Date: Thu, 31 Mar 2022 12:37:53 +0800 Subject: [PATCH 009/251] [build][Bug]: Fix the command set_reproducible_mirrors not found issue (#10398) Why I did it Fix the command set_reproducible_mirrors not found issue during the build. --- scripts/prepare_slave_container_buildinfo.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/prepare_slave_container_buildinfo.sh b/scripts/prepare_slave_container_buildinfo.sh index 5d306a0e1c20..1fb2f006640b 100755 --- a/scripts/prepare_slave_container_buildinfo.sh +++ b/scripts/prepare_slave_container_buildinfo.sh @@ -10,14 +10,14 @@ sudo dpkg -i --force-overwrite $SLAVE_DIR/buildinfo/sonic-build-hooks_*.deb > /d # Enable the build hooks symlink_build_hooks -# Enable reproducible mirrors -set_reproducible_mirrors -apt-get update > /dev/null 2>&1 - # Build the slave running config cp -rf $SLAVE_DIR/buildinfo/* /usr/local/share/buildinfo/ . /usr/local/share/buildinfo/scripts/buildinfo_base.sh +# Enable reproducible mirrors +set_reproducible_mirrors +apt-get update > /dev/null 2>&1 + # Build the slave version config [ -d /usr/local/share/buildinfo/versions ] && rm -rf /usr/local/share/buildinfo/versions scripts/versions_manager.py generate -t "/usr/local/share/buildinfo/versions" -n "build-${SLAVE_DIR}" -d "$DISTRO" -a "$ARCH" From d8b80d2317983bf46d4dd877049e39d4b503762f Mon Sep 17 00:00:00 2001 From: Shilong Liu Date: Thu, 31 Mar 2022 12:40:19 +0800 Subject: [PATCH 010/251] [ci] Use template from master branch in UpgrateVersion/sonic-slave pipeline (#10380) --- .azure-pipelines/azure-pipelines-UpgrateVersion.yml | 10 +++++++++- .azure-pipelines/docker-sonic-slave-template.yml | 9 ++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/.azure-pipelines/azure-pipelines-UpgrateVersion.yml b/.azure-pipelines/azure-pipelines-UpgrateVersion.yml index 4f1625b297a9..06ef505f0d5d 100644 --- a/.azure-pipelines/azure-pipelines-UpgrateVersion.yml +++ b/.azure-pipelines/azure-pipelines-UpgrateVersion.yml @@ -18,6 +18,14 @@ schedules: - 202006 always: true +resources: + repositories: + - repository: buildimage + type: github + name: Azure/sonic-buildimage + ref: master + endpoint: build + pool: sonicbld parameters: @@ -45,7 +53,7 @@ stages: jobFilters: ${{ parameters.jobFilters }} buildOptions: '${{ variables.VERSION_CONTROL_OPTIONS }} SONIC_BUILD_JOBS=$(nproc) ENABLE_IMAGE_SIGNATURE=y' preSteps: - - template: template-clean-sonic-slave.yml + - template: .azure-pipelines/template-clean-sonic-slave.yml@buildimage - stage: UpgradeVersions jobs: - job: UpgradeVersions diff --git a/.azure-pipelines/docker-sonic-slave-template.yml b/.azure-pipelines/docker-sonic-slave-template.yml index 7ba3592044c4..40a937a8c89a 100644 --- a/.azure-pipelines/docker-sonic-slave-template.yml +++ b/.azure-pipelines/docker-sonic-slave-template.yml @@ -3,6 +3,13 @@ # Add steps that build, run tests, deploy, and more: # https://aka.ms/yaml # Build and push sonic-slave-[buster|jessie|stretch] images for amd64/armhf/arm64 +resources: + repositories: + - repository: buildimage + type: github + name: Azure/sonic-buildimage + ref: master + endpoint: build parameters: - name: arch @@ -38,7 +45,7 @@ jobs: pool: ${{ parameters.pool }} steps: - template: cleanup.yml - - template: template-clean-sonic-slave.yml + - template: .azure-pipelines/template-clean-sonic-slave.yml@buildimage - checkout: self clean: true submodules: recursive From 8f01c7fba6c0308a7ef9e34ca3b6ac5754ead7a2 Mon Sep 17 00:00:00 2001 From: Shilong Liu Date: Thu, 31 Mar 2022 13:07:46 +0800 Subject: [PATCH 011/251] [build] Fix issues found in reproducible build. (#10407) --- .azure-pipelines/azure-pipelines-UpgrateVersion.yml | 2 +- scripts/docker_version_control.sh | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.azure-pipelines/azure-pipelines-UpgrateVersion.yml b/.azure-pipelines/azure-pipelines-UpgrateVersion.yml index 06ef505f0d5d..03593c551cff 100644 --- a/.azure-pipelines/azure-pipelines-UpgrateVersion.yml +++ b/.azure-pipelines/azure-pipelines-UpgrateVersion.yml @@ -51,7 +51,7 @@ stages: - template: azure-pipelines-build.yml parameters: jobFilters: ${{ parameters.jobFilters }} - buildOptions: '${{ variables.VERSION_CONTROL_OPTIONS }} SONIC_BUILD_JOBS=$(nproc) ENABLE_IMAGE_SIGNATURE=y' + buildOptions: '${{ variables.VERSION_CONTROL_OPTIONS }} ENABLE_DOCKER_BASE_PULL=n SONIC_BUILD_JOBS=$(nproc) ENABLE_IMAGE_SIGNATURE=y' preSteps: - template: .azure-pipelines/template-clean-sonic-slave.yml@buildimage - stage: UpgradeVersions diff --git a/scripts/docker_version_control.sh b/scripts/docker_version_control.sh index da8cd0484f49..e94370d0e2d9 100755 --- a/scripts/docker_version_control.sh +++ b/scripts/docker_version_control.sh @@ -23,7 +23,7 @@ tag=`echo $image_tag | cut -f2 -d:` if [[ ",$SONIC_VERSION_CONTROL_COMPONENTS," == *,all,* ]] || [[ ",$SONIC_VERSION_CONTROL_COMPONENTS," == *,docker,* ]]; then # if docker image not in white list, exit - if [[ "$image_tag" != */debian:* ]] && [[ "$image_tag" != multiarch/debian-debootstrap:* ]];then + if [[ "$image_tag" != */debian:* ]] && [[ "$image_tag" != debian:* ]] && [[ "$image_tag" != multiarch/debian-debootstrap:* ]];then exit 0 fi if [ -f $version_file ];then @@ -40,7 +40,7 @@ if [[ ",$SONIC_VERSION_CONTROL_COMPONENTS," == *,all,* ]] || [[ ",$SONIC_VERSION sed -i "s/$oldimage/$newimage/" $DOCKERFILE else hash_value=`docker pull $image_tag 2> ${new_version_file}.log | grep Digest | awk '{print$2}'` - if [ -z hash_value ];then + if [ -z "$hash_value" ];then hash_value=unknown fi fi From c03bf075f79929c6688bebdb4d15034e12c77351 Mon Sep 17 00:00:00 2001 From: Shilong Liu Date: Thu, 31 Mar 2022 13:14:55 +0800 Subject: [PATCH 012/251] [ci] Add azure pipeline to build common libs. (#10367) Why I did it To remove reference on Azure.sonic-buildimage artifacts. Azure.sonic-buildimage has a higher failure rate. --- .azure-pipelines/build-commonlib.yml | 19 ++++++++++++++ .azure-pipelines/template-commonlib.yml | 34 +++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 .azure-pipelines/build-commonlib.yml create mode 100644 .azure-pipelines/template-commonlib.yml diff --git a/.azure-pipelines/build-commonlib.yml b/.azure-pipelines/build-commonlib.yml new file mode 100644 index 000000000000..df9bcb25ae70 --- /dev/null +++ b/.azure-pipelines/build-commonlib.yml @@ -0,0 +1,19 @@ +pr: none +trigger: none +schedules: +- cron: "0 0 * * *" + displayName: Daily build + branches: + include: + - master + - 202??? +resources: + repositories: + - repository: buildimage + type: github + name: Azure/sonic-buildimage + ref: master + endpoint: build + +jobs: +- template: .azure-pipelines/template-commonlib.yml@buildimage diff --git a/.azure-pipelines/template-commonlib.yml b/.azure-pipelines/template-commonlib.yml new file mode 100644 index 000000000000..0e42cb4e17ac --- /dev/null +++ b/.azure-pipelines/template-commonlib.yml @@ -0,0 +1,34 @@ +jobs: +- job: Build + timeoutInMinutes: 120 + pool: sonicbld + steps: + - checkout: self + clean: true + submodules: recursive + - script: | + set -ex + case $(Build.SourceBranchName) in + 202012 | 202106) + bldenv=buster + ;; + *) + bldenv=bullseye + ;; + esac + BLDENV=$bldenv make -f Makefile.work configure PLATFORM=vs ENABLE_DOCKER_BASE_PULL=y + echo "##vso[task.setvariable variable=bldenv;]$bldenv" + displayName: Make configure + - script: | + set -ex + LIBNL3_VERSION_BASE=$(grep "LIBNL3_VERSION_BASE =" rules/libnl3.mk | awk '{print$3}') + LIBNL3_VERSION=$(grep "LIBNL3_VERSION =" rules/libnl3.mk | awk '{print$3}' | sed -e "s/(//" -e "s/)//" -e "s/\\$//" -e "s/LIBNL3_VERSION_BASE/$LIBNL3_VERSION_BASE/") + BLDENV=$(bldenv) make -f Makefile.work target/debs/$(bldenv)/libnl-3-200_${LIBNL3_VERSION}_amd64.deb ENABLE_DOCKER_BASE_PULL=y + + LIBYANG_VERSION_BASE=$(grep "LIBYANG_VERSION_BASE =" rules/libyang.mk | awk '{print$3}') + LIBYANG_VERSION=$(grep "LIBYANG_VERSION =" rules/libyang.mk | awk '{print$3}' | sed -e "s/\\$//" -e "s/(//" -e "s/)//" -e "s/LIBYANG_VERSION_BASE/$LIBYANG_VERSION_BASE/") + BLDENV=$(bldenv) make -f Makefile.work target/debs/$(bldenv)/libyang_${LIBYANG_VERSION}_amd64.deb + find target -name *.deb | xargs -i cp {} $(Build.ArtifactStagingDirectory) + displayName: Make common lib packages + - publish: $(Build.ArtifactStagingDirectory) + artifact: common-lib From 85539e7e0852cac76497de43c4add3e3c5856904 Mon Sep 17 00:00:00 2001 From: Kebo Liu Date: Thu, 31 Mar 2022 13:21:09 +0800 Subject: [PATCH 013/251] [Mellanox] Update hw-mgmt package to version V.7.0020.2004 (#10401) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Why I did it Take new hw-mgmt release to SONiC, including: New features: 1. hw-mgmt: add to PSU FW upgrade tool command to show current FW version 2. hw-mgmt: add to PSU FW upgrade tool support for single-PSU-in-the-system FW upgrade 3. hw-mgmt: add attribute “/firmware” to show FW version of restricted upgradable PSUs only 4. hw-mgmt: Add NVME temperature reports attributes (_alarm/_crit/_min/_max) Bug fix: 1. psu: redundant i2c_addr attributes being created for psu 3 & 4 in system having only 2 psus. 2. hw-mgmt: in SPC1/2 i2c driver removal is too slow vs. ASIC reset causing non-functional log errors 3. PSU thresholds sysfs changed in 5.10 to “read only” preventing modification (modification required due PSU HW bug) 4. CPLD3 sysfs attribute missing after chip down/up flow 5. sysfs attributes missing when hw-mgmt is restarted (stop/start) within systemd Release notes can be found from link https://github.com/Mellanox/hw-mgmt/blob/V.7.0020.2004/debian/Release.txt - How I did it Update hw-mgmt make file with new version number Update hw-mgmt submodule pointer - How to verify it Run platform regression on all Mellanox platform Signed-off-by: Kebo Liu --- platform/mellanox/hw-management.mk | 2 +- ...03-Remove-unused-non-upstream-kernel-modules-from-load.patch | 2 +- platform/mellanox/hw-management/hw-mgmt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/platform/mellanox/hw-management.mk b/platform/mellanox/hw-management.mk index 1f2a08b32d4d..fac7bddc2c24 100644 --- a/platform/mellanox/hw-management.mk +++ b/platform/mellanox/hw-management.mk @@ -16,7 +16,7 @@ # # Mellanox HW Management -MLNX_HW_MANAGEMENT_VERSION = 7.0020.1300 +MLNX_HW_MANAGEMENT_VERSION = 7.0020.2004 export MLNX_HW_MANAGEMENT_VERSION diff --git a/platform/mellanox/hw-management/0003-Remove-unused-non-upstream-kernel-modules-from-load.patch b/platform/mellanox/hw-management/0003-Remove-unused-non-upstream-kernel-modules-from-load.patch index fb114224494b..496085e9d4d8 100644 --- a/platform/mellanox/hw-management/0003-Remove-unused-non-upstream-kernel-modules-from-load.patch +++ b/platform/mellanox/hw-management/0003-Remove-unused-non-upstream-kernel-modules-from-load.patch @@ -16,7 +16,7 @@ index 39f621e..c0980bc 100644 mp2888 i2c-mux-pca954x -emc2305 --ads1015 +-ti-ads1015 powr1220 gpio-pca953x pmbus diff --git a/platform/mellanox/hw-management/hw-mgmt b/platform/mellanox/hw-management/hw-mgmt index cd4e3f7bdc9f..ec2e9173e9f2 160000 --- a/platform/mellanox/hw-management/hw-mgmt +++ b/platform/mellanox/hw-management/hw-mgmt @@ -1 +1 @@ -Subproject commit cd4e3f7bdc9fe77f0dc78b405e52fe876f7ca490 +Subproject commit ec2e9173e9f24cbc02eb87d81889d408528e090b From 6e51779efbb4d1bd8103f167fdb760b03fe2a1a9 Mon Sep 17 00:00:00 2001 From: ganglv <88995770+ganglyu@users.noreply.github.com> Date: Thu, 31 Mar 2022 15:29:23 +0800 Subject: [PATCH 014/251] [sonic-cfggen] Fix invalid switch_type (#10383) Why I did it sonic-config-engine unit test is using invalid switch_type How I did it Update xml with correct switch_type How to verify it Run UT for sonic-config-engine Signed-off-by: Gang Lv ganglv@microsoft.com --- .../tests/sample-chassis-packet-lc-graph.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sonic-config-engine/tests/sample-chassis-packet-lc-graph.xml b/src/sonic-config-engine/tests/sample-chassis-packet-lc-graph.xml index 183c578385f0..ac83d87b96ca 100644 --- a/src/sonic-config-engine/tests/sample-chassis-packet-lc-graph.xml +++ b/src/sonic-config-engine/tests/sample-chassis-packet-lc-graph.xml @@ -394,7 +394,7 @@ SwitchType - chassis_packet + chassis-packet DeploymentId @@ -459,7 +459,7 @@ SwitchType - chassis_packet + chassis-packet From 271ef69e60752a9fa22c2bbbc8173a3c70d22363 Mon Sep 17 00:00:00 2001 From: Hua Liu <58683130+liuh-80@users.noreply.github.com> Date: Thu, 31 Mar 2022 17:33:43 +0800 Subject: [PATCH 015/251] Add j2 template for enable pam_limit and limit SSH session (#10177) #### Why I did it When too many user login concurrently and run commands, SONiC may kernel panic on some device which has very limited memory. #### How I did it Add j2 template for setup pam_limit plugin for limit SSH session per-user. #### How to verify it Manually validate the j2 template can generate correct config file. #### Which release branch to backport (provide reason below if selected) - [x] 201811 - [ ] 201911 - [ ] 202006 - [x] 202012 - [x] 202106 - [x] 202111 #### Description for the changelog Add j2 template for setup pam_limit plugin for limit SSH session per-user. #### A picture of a cute animal (not mandatory but encouraged) --- .../templates/limits.conf.j2 | 69 +++++++++++++++++++ .../templates/pam_limits.j2 | 12 ++++ src/sonic-host-services/scripts/hostcfgd | 65 +++++++++++++++++ 3 files changed, 146 insertions(+) create mode 100755 src/sonic-host-services-data/templates/limits.conf.j2 create mode 100755 src/sonic-host-services-data/templates/pam_limits.j2 diff --git a/src/sonic-host-services-data/templates/limits.conf.j2 b/src/sonic-host-services-data/templates/limits.conf.j2 new file mode 100755 index 000000000000..41b37221e41e --- /dev/null +++ b/src/sonic-host-services-data/templates/limits.conf.j2 @@ -0,0 +1,69 @@ +# /etc/security/limits.conf +# +# This file generate by j2 template file: src/sonic-host-services-data/templates/limits.conf.j2 +# +# Each line describes a limit for a user in the form: +# +# +# +# Where: +# can be: +# - a user name +# - a group name, with @group syntax +# - the wildcard *, for default entry +# - the wildcard %, can be also used with %group syntax, +# for maxlogin limit +# - NOTE: group and wildcard limits are not applied to root. +# To apply a limit to the root user, must be +# the literal username root. +# +# can have the two values: +# - "soft" for enforcing the soft limits +# - "hard" for enforcing hard limits +# +# can be one of the following: +# - core - limits the core file size (KB) +# - data - max data size (KB) +# - fsize - maximum filesize (KB) +# - memlock - max locked-in-memory address space (KB) +# - nofile - max number of open file descriptors +# - rss - max resident set size (KB) +# - stack - max stack size (KB) +# - cpu - max CPU time (MIN) +# - nproc - max number of processes +# - as - address space limit (KB) +# - maxlogins - max number of logins for this user +# - maxsyslogins - max number of logins on the system +# - priority - the priority to run user process with +# - locks - max number of file locks the user can hold +# - sigpending - max number of pending signals +# - msgqueue - max memory used by POSIX message queues (bytes) +# - nice - max nice priority allowed to raise to values: [-20, 19] +# - rtprio - max realtime priority +# - chroot - change root to directory (Debian-specific) +# +# +# is related with : +# All items support the values -1, unlimited or infinity indicating +# no limit, except for priority and nice. +# +# If a hard limit or soft limit of a resource is set to a valid value, +# but outside of the supported range of the local system, the system +# may reject the new limit or unexpected behavior may occur. If the +# control value required is used, the module will reject the login if +# a limit could not be set. +# +# +# + +# * soft core 0 +# root hard core 100000 +# * hard rss 10000 +# @student hard nproc 20 +# @faculty soft nproc 20 +# @faculty hard nproc 50 +# ftp hard nproc 0 +# ftp - chroot /ftp +# @student - maxlogins 4 + +# End of file diff --git a/src/sonic-host-services-data/templates/pam_limits.j2 b/src/sonic-host-services-data/templates/pam_limits.j2 new file mode 100755 index 000000000000..f87906932fb7 --- /dev/null +++ b/src/sonic-host-services-data/templates/pam_limits.j2 @@ -0,0 +1,12 @@ +#THIS IS AN AUTO-GENERATED FILE +# +# This file generate by j2 template file: src/sonic-host-services-data/templates/pam_limits.j2 +# +# /etc/pam.d/pam-limits settings common to all services +# This file is included from other service-specific PAM config files, +# and should contain a list of the authentication modules that define +# the central authentication scheme for use on the system +# (e.g., /etc/shadow, LDAP, Kerberos, etc.). The default is to use the +# traditional Unix authentication mechanisms. +# +# here are the per-package modules (the "Primary" block) \ No newline at end of file diff --git a/src/sonic-host-services/scripts/hostcfgd b/src/sonic-host-services/scripts/hostcfgd index be8317259e38..5b6693fbcdf7 100755 --- a/src/sonic-host-services/scripts/hostcfgd +++ b/src/sonic-host-services/scripts/hostcfgd @@ -25,6 +25,10 @@ PAM_RADIUS_AUTH_CONF_TEMPLATE = "/usr/share/sonic/templates/pam_radius_auth.conf NSS_CONF = "/etc/nsswitch.conf" ETC_PAMD_SSHD = "/etc/pam.d/sshd" ETC_PAMD_LOGIN = "/etc/pam.d/login" +PAM_LIMITS_CONF_TEMPLATE = "/usr/share/sonic/templates/pam_limits.j2" +LIMITS_CONF_TEMPLATE = "/usr/share/sonic/templates/limits.conf.j2" +PAM_LIMITS_CONF = "/etc/pam.d/pam-limits-conf" +LIMITS_CONF = "/etc/security/limits.conf" # TACACS+ TACPLUS_SERVER_PASSKEY_DEFAULT = "" @@ -966,6 +970,64 @@ class NtpCfg(object): syslog.syslog(syslog.LOG_INFO, 'ntp server update, restarting ntp-config, ntp servers configured {}'.format(self.ntp_servers)) run_cmd(cmd) +class PamLimitsCfg(object): + """ + PamLimit Config Daemon + 1) The pam_limits PAM module sets limits on the system resources that can be obtained in a user-session. + 2) Purpose of this daemon is to render pam_limits config file. + """ + def __init__(self, config_db): + self.config_db = config_db + self.hwsku = "" + self.type = "" + + # Load config from ConfigDb and render config file/ + def update_config_file(self): + device_metadata = self.config_db.get_table('DEVICE_METADATA') + if "localhost" not in device_metadata: + return + + self.read_localhost_config(device_metadata["localhost"]) + self.render_conf_file() + + # Read localhost config + def read_localhost_config(self, localhost): + if "hwsku" in localhost: + self.hwsku = localhost["hwsku"] + else: + self.hwsku = "" + + if "type" in localhost: + self.type = localhost["type"] + else: + self.type = "" + + # Render pam_limits config files + def render_conf_file(self): + env = jinja2.Environment(loader=jinja2.FileSystemLoader('/'), trim_blocks=True) + env.filters['sub'] = sub + + try: + template_file = os.path.abspath(PAM_LIMITS_CONF_TEMPLATE) + template = env.get_template(template_file) + pam_limits_conf = template.render( + hwsku=self.hwsku, + type=self.type) + with open(PAM_LIMITS_CONF, 'w') as f: + f.write(pam_limits_conf) + + template_file = os.path.abspath(LIMITS_CONF_TEMPLATE) + template = env.get_template(template_file) + limits_conf = template.render( + hwsku=self.hwsku, + type=self.type) + with open(LIMITS_CONF, 'w') as f: + f.write(limits_conf) + except Exception as e: + syslog.syslog(syslog.LOG_ERR, + "modify pam_limits config file failed with exception: {}" + .format(e)) + class HostConfigDaemon: def __init__(self): # Just a sanity check to verify if the CONFIG_DB has been initialized @@ -1007,6 +1069,9 @@ class HostConfigDaemon: self.hostname_cache="" self.aaacfg = AaaCfg() + # Initialize PamLimitsCfg + self.pamLimitsCfg = PamLimitsCfg(self.config_db) + self.pamLimitsCfg.update_config_file() def load(self): aaa = self.config_db.get_table('AAA') From 71a04722f43fd06f32b86d2a4449d2aafd323b8b Mon Sep 17 00:00:00 2001 From: Myron Sosyak Date: Thu, 31 Mar 2022 02:45:29 -0700 Subject: [PATCH 016/251] [submodule] Update sonic-sairedis (#10302) 1ccda8d MACsec in Gearbox (#993) 7a2b824 Update SAI submodule (#1015) 418d5fb Add pre match logic for lag member (#1008) Signed-off-by: Myron Sosyak --- src/sonic-sairedis | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-sairedis b/src/sonic-sairedis index b9337dc5787a..1ccda8d1d982 160000 --- a/src/sonic-sairedis +++ b/src/sonic-sairedis @@ -1 +1 @@ -Subproject commit b9337dc5787aadf71eee9d676d6b7f1181ac0787 +Subproject commit 1ccda8d1d9821a65f73eb5c8f88f9abea0623c0b From 106fac5f09b9764175b1fef93c76dd6c8d7a7fea Mon Sep 17 00:00:00 2001 From: Junchao-Mellanox <57339448+Junchao-Mellanox@users.noreply.github.com> Date: Thu, 31 Mar 2022 20:23:57 +0800 Subject: [PATCH 017/251] [counter] Fix issue: non default counters will be delayed forever after fastboot (#10413) - Why I did it Fastboot will delay all counters in CONFIG DB, it relies on enable_counters.py to recover the delayed counters. However, enable_counters.py does not recover those non-default counters. - How I did it For non-default counters, if it is in CONFIG DB, put delay status to false after the waiting. - How to verify it Manual test --- dockers/docker-orchagent/enable_counters.py | 22 +++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/dockers/docker-orchagent/enable_counters.py b/dockers/docker-orchagent/enable_counters.py index 7d25643bba43..c45a931e0553 100755 --- a/dockers/docker-orchagent/enable_counters.py +++ b/dockers/docker-orchagent/enable_counters.py @@ -38,16 +38,18 @@ def enable_rates(): def enable_counters(): db = swsssdk.ConfigDBConnector() db.connect() - enable_counter_group(db, 'PORT') - enable_counter_group(db, 'RIF') - enable_counter_group(db, 'QUEUE') - enable_counter_group(db, 'PFCWD') - enable_counter_group(db, 'PG_WATERMARK') - enable_counter_group(db, 'PG_DROP') - enable_counter_group(db, 'QUEUE_WATERMARK') - enable_counter_group(db, 'BUFFER_POOL_WATERMARK') - enable_counter_group(db, 'PORT_BUFFER_DROP') - enable_counter_group(db, 'ACL') + default_enabled_counters = ['PORT', 'RIF', 'QUEUE', 'PFCWD', 'PG_WATERMARK', 'PG_DROP', + 'QUEUE_WATERMARK', 'BUFFER_POOL_WATERMARK', 'PORT_BUFFER_DROP', 'ACL'] + + # Enable those default counters + for key in default_enabled_counters: + enable_counter_group(db, key) + + # Set FLEX_COUNTER_DELAY_STATUS to false for those non-default counters + keys = db.get_keys('FLEX_COUNTER_TABLE') + for key in keys: + if key not in default_enabled_counters: + enable_counter_group(db, key) enable_rates() From 0bce0a7e6db9b2d492ab34641c3a43fa1f6285e6 Mon Sep 17 00:00:00 2001 From: AmitKaushik7 <52193450+AmitKaushik7@users.noreply.github.com> Date: Thu, 31 Mar 2022 22:52:03 +0530 Subject: [PATCH 018/251] =?UTF-8?q?Allow=20NULL=20Buffer=20Profile=20in=20?= =?UTF-8?q?buffer=20pg/queue=20yang=20files=20for=20Dynamic=20B=E2=80=A6?= =?UTF-8?q?=20(#10353)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Why I did it To address #10342 (Yang validation fails when Buffer profiles are configured with "NULL" values) --- .../yang_model_tests/tests/buffer_pg.json | 3 ++ .../tests_config/buffer_pg.json | 52 +++++++++++++++++++ .../yang-models/sonic-buffer-pg.yang | 13 +++-- 3 files changed, 63 insertions(+), 5 deletions(-) diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests/buffer_pg.json b/src/sonic-yang-models/tests/yang_model_tests/tests/buffer_pg.json index f92a75365c78..e6e4e59a8fdf 100644 --- a/src/sonic-yang-models/tests/yang_model_tests/tests/buffer_pg.json +++ b/src/sonic-yang-models/tests/yang_model_tests/tests/buffer_pg.json @@ -10,6 +10,9 @@ "desc": "BUFFER_PG_WRONG_PG_VALUE pattern failure", "eStr": "Invalid Buffer PG number" }, + "BUFFER_PG_NULL_PROFILE_VALUE": { + "desc": "BUFFER_PG_NULL_PROFILE_VALUE no failure" + }, "BUFFER_PG_WRONG_PORT_VALUE": { "desc": "BUFFER_PG_WRONG_PORT_VALUE pattern failure", "eStr": "wrong" diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests_config/buffer_pg.json b/src/sonic-yang-models/tests/yang_model_tests/tests_config/buffer_pg.json index ec3ea73bf76d..cd0a244a0e0e 100644 --- a/src/sonic-yang-models/tests/yang_model_tests/tests_config/buffer_pg.json +++ b/src/sonic-yang-models/tests/yang_model_tests/tests_config/buffer_pg.json @@ -52,6 +52,58 @@ } } }, + "BUFFER_PG_NULL_PROFILE_VALUE": { + "sonic-port:sonic-port": { + "sonic-port:PORT": { + "PORT_LIST": [ + { + "admin_status": "up", + "alias": "eth0", + "description": "Ethernet0", + "lanes": "65", + "mtu": "9000", + "name": "Ethernet4", + "tpid": "0x8100", + "speed": "25000" + } + ] + } + }, + "sonic-buffer-pool:sonic-buffer-pool": { + "sonic-buffer-pool:BUFFER_POOL": { + "BUFFER_POOL_LIST": [ + { + "name": "egress_lossless_pool", + "mode": "static", + "size": "300", + "type": "ingress" + } + ] + } + }, + "sonic-buffer-profile:sonic-buffer-profile": { + "sonic-buffer-profile:BUFFER_PROFILE": { + "BUFFER_PROFILE_LIST": [ + { + "name": "lossless_buffer_profile", + "size": "300", + "pool": "egress_lossless_pool" + } + ] + } + }, + "sonic-buffer-pg:sonic-buffer-pg": { + "sonic-buffer-pg:BUFFER_PG": { + "BUFFER_PG_LIST": [ + { + "port": "Ethernet4", + "pg_num": "3", + "profile": "NULL" + } + ] + } + } + }, "BUFFER_PG_WRONG_PROFILE_VALUE": { "sonic-port:sonic-port": { "sonic-port:PORT": { diff --git a/src/sonic-yang-models/yang-models/sonic-buffer-pg.yang b/src/sonic-yang-models/yang-models/sonic-buffer-pg.yang index efe6e34ad0d6..60d06bf6ef6c 100644 --- a/src/sonic-yang-models/yang-models/sonic-buffer-pg.yang +++ b/src/sonic-yang-models/yang-models/sonic-buffer-pg.yang @@ -2,9 +2,7 @@ module sonic-buffer-pg { namespace "http://github.com/Azure/sonic-buffer-pg"; prefix bpg; - import sonic-extension { - prefix sonic-ext; - } + yang-version 1.1; import sonic-port { prefix prt; @@ -54,8 +52,13 @@ module sonic-buffer-pg { leaf profile { default 0; - type leafref { - path "/bpf:sonic-buffer-profile/bpf:BUFFER_PROFILE/bpf:BUFFER_PROFILE_LIST/bpf:name"; + type union { + type leafref { + path "/bpf:sonic-buffer-profile/bpf:BUFFER_PROFILE/bpf:BUFFER_PROFILE_LIST/bpf:name"; + } + type string { + pattern "NULL"; + } } description "Buffer Profile associated with Priority Group number for a port"; } From eb141f21638b261877bd9ea562b672116e2e4419 Mon Sep 17 00:00:00 2001 From: Myron Sosyak Date: Thu, 31 Mar 2022 12:49:22 -0700 Subject: [PATCH 019/251] [BFN] Remove SAI patches (#10343) Signed-off-by: Myron Sosyak --- platform/barefoot/libsaithrift-dev.mk | 5 -- ...eplace-unions-with-structs-in-thrift.patch | 70 ------------------- ...-Use-std-shared_ptr-instead-of-boost.patch | 25 ------- .../0003-include-algorithm.patch | 24 ------- ...0004-Fix-Thrift-0.14.1-compatibility.patch | 47 ------------- platform/barefoot/saithrift-patches/Makefile | 19 ----- platform/barefoot/saithrift-patches/series | 4 -- 7 files changed, 194 deletions(-) delete mode 100644 platform/barefoot/saithrift-patches/0001-Replace-unions-with-structs-in-thrift.patch delete mode 100644 platform/barefoot/saithrift-patches/0002-Use-std-shared_ptr-instead-of-boost.patch delete mode 100644 platform/barefoot/saithrift-patches/0003-include-algorithm.patch delete mode 100644 platform/barefoot/saithrift-patches/0004-Fix-Thrift-0.14.1-compatibility.patch delete mode 100644 platform/barefoot/saithrift-patches/Makefile delete mode 100644 platform/barefoot/saithrift-patches/series diff --git a/platform/barefoot/libsaithrift-dev.mk b/platform/barefoot/libsaithrift-dev.mk index 40cd5554653e..0fb5ca0cb81d 100644 --- a/platform/barefoot/libsaithrift-dev.mk +++ b/platform/barefoot/libsaithrift-dev.mk @@ -1,7 +1,3 @@ -SAITHRIFT_PATCHES = saithrift-patches -$(SAITHRIFT_PATCHES)_SRC_PATH = $(PLATFORM_PATH)/saithrift-patches -SONIC_MAKE_FILES += $(SAITHRIFT_PATCHES) - # libsaithrift-dev package SAI_VER = 0.9.4 LIBSAITHRIFT_DEV = libsaithrift-dev_$(SAI_VER)_$(CONFIGURED_ARCH).deb @@ -13,7 +9,6 @@ $(LIBSAITHRIFT_DEV)_DEPENDS += $(LIBTHRIFT_0_14_1) $(LIBTHRIFT_0_14_1_DEV) \ #$(LIBSAIVS) $(LIBSAIVS_DEV) $(LIBSAIMETADATA) $(LIBSAIMETADATA_DEV) # $(LIBSAITHRIFT_DEV)_BUILD_ENV = platform=v -$(LIBSAITHRIFT_DEV)_AFTER_FILES = $(SAITHRIFT_PATCHES) $(LIBSAITHRIFT_DEV)_RDEPENDS += $(LIBTHRIFT_0_14_1) $(BFN_SAI) SONIC_DPKG_DEBS += $(LIBSAITHRIFT_DEV) diff --git a/platform/barefoot/saithrift-patches/0001-Replace-unions-with-structs-in-thrift.patch b/platform/barefoot/saithrift-patches/0001-Replace-unions-with-structs-in-thrift.patch deleted file mode 100644 index 762c72c75607..000000000000 --- a/platform/barefoot/saithrift-patches/0001-Replace-unions-with-structs-in-thrift.patch +++ /dev/null @@ -1,70 +0,0 @@ -From 6f0188ad82845ac56729d3db621b2d10bea94ddd Mon Sep 17 00:00:00 2001 -From: Myron Sosyak -Date: Thu, 27 Jan 2022 17:25:42 +0000 -Subject: [PATCH 1/4] Replace unions with structs in thrift - ---- - test/saithrift/src/switch_sai.thrift | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - -diff --git a/test/saithrift/src/switch_sai.thrift b/test/saithrift/src/switch_sai.thrift -index a9e1d28..0c24b71 100644 ---- a/test/saithrift/src/switch_sai.thrift -+++ b/test/saithrift/src/switch_sai.thrift -@@ -48,7 +48,7 @@ struct sai_thrift_vlan_port_t { - 2: sai_thrift_vlan_tagging_mode_t tagging_mode; - } - --union sai_thrift_ip_t { -+struct sai_thrift_ip_t { - 1: sai_thrift_ip4_t ip4; - 2: sai_thrift_ip6_t ip6; - } -@@ -79,7 +79,7 @@ struct sai_thrift_s32_list_t { - 2: list s32list; - } - --union sai_thrift_acl_mask_t { -+struct sai_thrift_acl_mask_t { - 1: byte u8; - 2: byte s8; - 3: i16 u16; -@@ -91,7 +91,7 @@ union sai_thrift_acl_mask_t { - 9: sai_thrift_ip6_t ip6; - } - --union sai_thrift_acl_data_t { -+struct sai_thrift_acl_data_t { - 1: byte u8; - 2: byte s8; - 3: i16 u16; -@@ -112,7 +112,7 @@ struct sai_thrift_acl_field_data_t - 3: sai_thrift_acl_data_t data; - } - --union sai_thrift_acl_parameter_t { -+struct sai_thrift_acl_parameter_t { - 1: byte u8; - 2: byte s8; - 3: i16 u16; -@@ -161,7 +161,7 @@ struct sai_thrift_fdb_values_t { - 2: sai_thrift_fdb_entry_t thrift_fdb_entry; - } - --union sai_thrift_attribute_value_t { -+struct sai_thrift_attribute_value_t { - 1: bool booldata; - 2: string chardata; - 3: byte u8; -@@ -207,7 +207,7 @@ struct sai_thrift_attribute_list_t { - 2: i32 attr_count; // redundant - } - --union sai_thrift_result_data_t { -+struct sai_thrift_result_data_t { - 1: sai_thrift_object_list_t objlist; - 2: sai_thrift_object_id_t oid; - 3: i16 u16; --- -2.20.1 - diff --git a/platform/barefoot/saithrift-patches/0002-Use-std-shared_ptr-instead-of-boost.patch b/platform/barefoot/saithrift-patches/0002-Use-std-shared_ptr-instead-of-boost.patch deleted file mode 100644 index 93602dc4e991..000000000000 --- a/platform/barefoot/saithrift-patches/0002-Use-std-shared_ptr-instead-of-boost.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 6605dbe4906173b78f428f42f749674c2722361a Mon Sep 17 00:00:00 2001 -From: Myron Sosyak -Date: Thu, 27 Jan 2022 17:26:08 +0000 -Subject: [PATCH 2/4] Use std::shared_ptr instead of boost - ---- - test/saithrift/src/switch_sai_rpc_server.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/test/saithrift/src/switch_sai_rpc_server.cpp b/test/saithrift/src/switch_sai_rpc_server.cpp -index 0df9b3d..e990c50 100644 ---- a/test/saithrift/src/switch_sai_rpc_server.cpp -+++ b/test/saithrift/src/switch_sai_rpc_server.cpp -@@ -74,7 +74,7 @@ using namespace ::apache::thrift::protocol; - using namespace ::apache::thrift::transport; - using namespace ::apache::thrift::server; - --using boost::shared_ptr; -+using std::shared_ptr; - - using namespace ::switch_sai; - --- -2.20.1 - diff --git a/platform/barefoot/saithrift-patches/0003-include-algorithm.patch b/platform/barefoot/saithrift-patches/0003-include-algorithm.patch deleted file mode 100644 index 22471adc380e..000000000000 --- a/platform/barefoot/saithrift-patches/0003-include-algorithm.patch +++ /dev/null @@ -1,24 +0,0 @@ -From b468a7aa00843be9c5ead478bd074784c04b4ba2 Mon Sep 17 00:00:00 2001 -From: Myron Sosyak -Date: Thu, 27 Jan 2022 17:26:40 +0000 -Subject: [PATCH 3/4] include algorithm - ---- - test/saithrift/src/saiserver.cpp | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/test/saithrift/src/saiserver.cpp b/test/saithrift/src/saiserver.cpp -index 846c3f1..7120b26 100644 ---- a/test/saithrift/src/saiserver.cpp -+++ b/test/saithrift/src/saiserver.cpp -@@ -5,6 +5,7 @@ - #include - #include - #include -+#include - #include - #include - #include --- -2.20.1 - diff --git a/platform/barefoot/saithrift-patches/0004-Fix-Thrift-0.14.1-compatibility.patch b/platform/barefoot/saithrift-patches/0004-Fix-Thrift-0.14.1-compatibility.patch deleted file mode 100644 index 19e619aa5be0..000000000000 --- a/platform/barefoot/saithrift-patches/0004-Fix-Thrift-0.14.1-compatibility.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 58d5e21378d3fd5dd3a48adb24423c1bb9ff6f7a Mon Sep 17 00:00:00 2001 -From: Myron Sosyak -Date: Thu, 27 Jan 2022 17:28:05 +0000 -Subject: [PATCH 4/4] Fix Thrift 0.14.1 compatibility - ---- - test/saithrift/Makefile | 10 ++++------ - 1 file changed, 4 insertions(+), 6 deletions(-) - -diff --git a/test/saithrift/Makefile b/test/saithrift/Makefile -index cbe6f48..3734ee7 100644 ---- a/test/saithrift/Makefile -+++ b/test/saithrift/Makefile -@@ -21,8 +21,8 @@ CDEFS = -DBRCMSAI - endif - endif - endif --DEPS = switch_sai_constants.h switch_sai_rpc.h switch_sai_types.h --OBJS = switch_sai_constants.o switch_sai_rpc.o switch_sai_types.o -+DEPS = switch_sai_rpc.h switch_sai_types.h -+OBJS = switch_sai_rpc.o switch_sai_types.o - - ODIR = ./src/obj - SAIDIR = ./include -@@ -42,8 +42,6 @@ endif - SAI_LIBRARY_DIR ?= $(SAI_PREFIX)/lib - LDFLAGS = -L$(SAI_LIBRARY_DIR) -Wl,-rpath=$(SAI_LIBRARY_DIR) - CPP_SOURCES = \ -- src/gen-cpp/switch_sai_constants.cpp \ -- src/gen-cpp/switch_sai_constants.h \ - src/gen-cpp/switch_sai_rpc.cpp \ - src/gen-cpp/switch_sai_rpc.h \ - src/gen-cpp/switch_sai_types.cpp \ -@@ -89,8 +87,8 @@ $(ODIR)/switch_sai_rpc_server.o: src/switch_sai_rpc_server.cpp - $(ODIR)/saiserver.o: src/saiserver.cpp - $(CXX) $(CFLAGS) -c $^ -o $@ $(CFLAGS) $(CDEFS) -I$(SRC)/gen-cpp -I$(SRC) - --$(ODIR)/librpcserver.a: $(ODIR)/switch_sai_rpc.o $(ODIR)/switch_sai_types.o $(ODIR)/switch_sai_constants.o $(ODIR)/switch_sai_rpc_server.o -- ar rcs $(ODIR)/librpcserver.a $(ODIR)/switch_sai_rpc.o $(ODIR)/switch_sai_types.o $(ODIR)/switch_sai_constants.o $(ODIR)/switch_sai_rpc_server.o -+$(ODIR)/librpcserver.a: $(ODIR)/switch_sai_rpc.o $(ODIR)/switch_sai_types.o $(ODIR)/switch_sai_rpc_server.o -+ ar rcs $(ODIR)/librpcserver.a $(ODIR)/switch_sai_rpc.o $(ODIR)/switch_sai_types.o $(ODIR)/switch_sai_rpc_server.o - - saiserver: $(ODIR)/saiserver.o $(ODIR)/librpcserver.a - $(CXX) $(LDFLAGS) $(ODIR)/switch_sai_rpc_server.o $(ODIR)/saiserver.o -o $@ \ --- -2.20.1 - diff --git a/platform/barefoot/saithrift-patches/Makefile b/platform/barefoot/saithrift-patches/Makefile deleted file mode 100644 index 625317dcb5fe..000000000000 --- a/platform/barefoot/saithrift-patches/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -SHELL = /bin/bash -.ONESHELL: -.SHELLFLAGS += -e - -MAIN_TARGET = saithrift-patches - -$(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% : -# To add some BFN specific patches to SAI under sonic-sairedis while sai is not updated -SRC_DIR = ../saithrift-patches -DST_DIR = ../../../src/sonic-sairedis/SAI.patch/ - -$(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% : - # copy patches to SAI - mkdir -p $(DST_DIR) - cp -f $(SRC_DIR)/* $(DST_DIR) - - touch $(DEST)/saithrift-patches - - diff --git a/platform/barefoot/saithrift-patches/series b/platform/barefoot/saithrift-patches/series deleted file mode 100644 index fe26c2102c25..000000000000 --- a/platform/barefoot/saithrift-patches/series +++ /dev/null @@ -1,4 +0,0 @@ -0001-Replace-unions-with-structs-in-thrift.patch -0002-Use-std-shared_ptr-instead-of-boost.patch -0003-include-algorithm.patch -0004-Fix-Thrift-0.14.1-compatibility.patch From 13353dffe8b4262fcfcd54dd8e5c82a47bab9699 Mon Sep 17 00:00:00 2001 From: "Marty Y. Lok" <76118573+mlok-nokia@users.noreply.github.com> Date: Thu, 31 Mar 2022 23:54:40 -0400 Subject: [PATCH 020/251] [Nokia][device] Update the BCM config with Recycle ports info for Nokia IXR7250E platform (#10389) Signed-off-by: mlok --- .../Nokia-IXR7250E-36x400G/0/jr2cp-nokia-18x400g-config.bcm | 4 +++- .../Nokia-IXR7250E-36x400G/1/jr2cp-nokia-18x400g-config.bcm | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/device/nokia/x86_64-nokia_ixr7250e_36x400g-r0/Nokia-IXR7250E-36x400G/0/jr2cp-nokia-18x400g-config.bcm b/device/nokia/x86_64-nokia_ixr7250e_36x400g-r0/Nokia-IXR7250E-36x400G/0/jr2cp-nokia-18x400g-config.bcm index ecaae10276a4..2ede5ab6d0d0 100644 --- a/device/nokia/x86_64-nokia_ixr7250e_36x400g-r0/Nokia-IXR7250E-36x400G/0/jr2cp-nokia-18x400g-config.bcm +++ b/device/nokia/x86_64-nokia_ixr7250e_36x400g-r0/Nokia-IXR7250E-36x400G/0/jr2cp-nokia-18x400g-config.bcm @@ -1553,7 +1553,9 @@ ucode_port_18.BCM8885X=CDGE0:core_0.18 ucode_port_19.BCM8885X=RCY0:core_0.19 -ucode_port_20.BCM8885X=OLP:core_1.20 +ucode_port_20.BCM8885X=RCY1:core_1.20 +ucode_port_21.BCM8885X=OLP:core_1.21 + serdes_lane_config_dfe_1.BCM8885X=on diff --git a/device/nokia/x86_64-nokia_ixr7250e_36x400g-r0/Nokia-IXR7250E-36x400G/1/jr2cp-nokia-18x400g-config.bcm b/device/nokia/x86_64-nokia_ixr7250e_36x400g-r0/Nokia-IXR7250E-36x400G/1/jr2cp-nokia-18x400g-config.bcm index 142a718e080f..fd96c3ac4368 100644 --- a/device/nokia/x86_64-nokia_ixr7250e_36x400g-r0/Nokia-IXR7250E-36x400G/1/jr2cp-nokia-18x400g-config.bcm +++ b/device/nokia/x86_64-nokia_ixr7250e_36x400g-r0/Nokia-IXR7250E-36x400G/1/jr2cp-nokia-18x400g-config.bcm @@ -1553,7 +1553,9 @@ ucode_port_18.BCM8885X=CDGE0:core_0.18 ucode_port_19.BCM8885X=RCY0:core_0.19 -ucode_port_20.BCM8885X=OLP:core_1.20 +ucode_port_20.BCM8885X=RCY1:core_1.20 +ucode_port_21.BCM8885X=OLP:core_1.21 + serdes_lane_config_dfe_1.BCM8885X=on From a9a37c8ba1db35a9e7965219b5603161f8f72967 Mon Sep 17 00:00:00 2001 From: Shilong Liu Date: Fri, 1 Apr 2022 16:19:48 +0800 Subject: [PATCH 021/251] [ci] Fix docker-sonic-slave-template issue for resources. (#10414) Why I did it Fix bug for wrong resources position. --- .azure-pipelines/docker-sonic-slave-arm64.yml | 7 +++++++ .azure-pipelines/docker-sonic-slave-armhf.yml | 7 +++++++ .azure-pipelines/docker-sonic-slave-template.yml | 8 -------- .azure-pipelines/docker-sonic-slave.yml | 14 ++++++++++++++ 4 files changed, 28 insertions(+), 8 deletions(-) diff --git a/.azure-pipelines/docker-sonic-slave-arm64.yml b/.azure-pipelines/docker-sonic-slave-arm64.yml index 6bb9203b49ae..2a9af06c3d01 100644 --- a/.azure-pipelines/docker-sonic-slave-arm64.yml +++ b/.azure-pipelines/docker-sonic-slave-arm64.yml @@ -3,6 +3,13 @@ # Add steps that build, run tests, deploy, and more: # https://aka.ms/yaml # Build and push sonic-slave-[buster|jessie|stretch] images for amd64/armhf/arm64 +resources: + repositories: + - repository: buildimage + type: github + name: Azure/sonic-buildimage + ref: master + endpoint: build schedules: - cron: "0 8 * * *" diff --git a/.azure-pipelines/docker-sonic-slave-armhf.yml b/.azure-pipelines/docker-sonic-slave-armhf.yml index 250bf7400a69..69e73479f342 100644 --- a/.azure-pipelines/docker-sonic-slave-armhf.yml +++ b/.azure-pipelines/docker-sonic-slave-armhf.yml @@ -3,6 +3,13 @@ # Add steps that build, run tests, deploy, and more: # https://aka.ms/yaml # Build and push sonic-slave-[buster|jessie|stretch] images for amd64/armhf/arm64 +resources: + repositories: + - repository: buildimage + type: github + name: Azure/sonic-buildimage + ref: master + endpoint: build schedules: - cron: "0 8 * * *" diff --git a/.azure-pipelines/docker-sonic-slave-template.yml b/.azure-pipelines/docker-sonic-slave-template.yml index 40a937a8c89a..6b4b90f371d9 100644 --- a/.azure-pipelines/docker-sonic-slave-template.yml +++ b/.azure-pipelines/docker-sonic-slave-template.yml @@ -3,14 +3,6 @@ # Add steps that build, run tests, deploy, and more: # https://aka.ms/yaml # Build and push sonic-slave-[buster|jessie|stretch] images for amd64/armhf/arm64 -resources: - repositories: - - repository: buildimage - type: github - name: Azure/sonic-buildimage - ref: master - endpoint: build - parameters: - name: arch type: string diff --git a/.azure-pipelines/docker-sonic-slave.yml b/.azure-pipelines/docker-sonic-slave.yml index bf5fce77a722..8af6b8b3834f 100644 --- a/.azure-pipelines/docker-sonic-slave.yml +++ b/.azure-pipelines/docker-sonic-slave.yml @@ -3,6 +3,13 @@ # Add steps that build, run tests, deploy, and more: # https://aka.ms/yaml # Build and push sonic-slave-[buster|jessie|stretch] images for amd64/armhf/arm64 +resources: + repositories: + - repository: buildimage + type: github + name: Azure/sonic-buildimage + ref: master + endpoint: build schedules: - cron: "0 8 * * *" @@ -53,8 +60,15 @@ stages: - ${{ each dist in parameters.dists }}: - ${{ if endswith(variables['Build.DefinitionName'], dist) }}: - ${{ each arch in parameters.arches }}: + ${{ if eq(variables['System.PullRequest.TargetBranch'], 'master') }}: - template: docker-sonic-slave-template.yml parameters: pool: sonicbld arch: ${{ arch }} dist: ${{ dist }} + ${{ else }}: + - template: .azure-pipelines/docker-sonic-slave-template.yml@buildimage + parameters: + pool: sonicbld + arch: ${{ arch }} + dist: ${{ dist }} From 0f488a8cb61521e92879e1175948b1f961633265 Mon Sep 17 00:00:00 2001 From: Lawrence Lee Date: Fri, 1 Apr 2022 01:22:54 -0700 Subject: [PATCH 022/251] [azp]: Fix type in slave container cleanup (#10424) Signed-off-by: Lawrence Lee --- .azure-pipelines/template-clean-sonic-slave.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.azure-pipelines/template-clean-sonic-slave.yml b/.azure-pipelines/template-clean-sonic-slave.yml index cc995e9c2621..c67f63fff476 100644 --- a/.azure-pipelines/template-clean-sonic-slave.yml +++ b/.azure-pipelines/template-clean-sonic-slave.yml @@ -1,7 +1,7 @@ steps: - script: | containers=$(docker container ls -a | grep "sonic-slave" | awk '{ print $1 }') - [ -n "$containers" ] && docker container rm -f containers + [ -n "$containers" ] && docker container rm -f $containers docker images | grep "^" | awk '{print$3}' | xargs -i docker rmi {} images=$(docker images 'sonic-slave-*' -a -q) [ -n "$images" ] && docker rmi -f $images From 94ec85464b00162c5ac45d6c335a12e543c6ea08 Mon Sep 17 00:00:00 2001 From: arunlk-dell <83708154+arunlk-dell@users.noreply.github.com> Date: Fri, 1 Apr 2022 20:03:08 +0530 Subject: [PATCH 023/251] DellEMC: N3248TE/N3248PXE Watchdog Support (#9398) Why I did it DellEMC : Added support for N3248TE/N3248PXE platforms How I did it Implemented the changes to enable/disable the watchdog support How to verify it watchdog_unit_test.txt Co-authored-by: Arun LK --- .../n3248pxe/modules/dell_n3248pxe_platform.c | 37 +++++++++ .../n3248pxe/sonic_platform/watchdog.py | 79 +++++++++--------- .../n3248te/modules/dell_n3248te_platform.c | 40 ++++++++- .../n3248te/sonic_platform/watchdog.py | 83 +++++++++---------- 4 files changed, 154 insertions(+), 85 deletions(-) diff --git a/platform/broadcom/sonic-platform-modules-dell/n3248pxe/modules/dell_n3248pxe_platform.c b/platform/broadcom/sonic-platform-modules-dell/n3248pxe/modules/dell_n3248pxe_platform.c index 1c5d07bffaba..5fb106f186b3 100644 --- a/platform/broadcom/sonic-platform-modules-dell/n3248pxe/modules/dell_n3248pxe_platform.c +++ b/platform/broadcom/sonic-platform-modules-dell/n3248pxe/modules/dell_n3248pxe_platform.c @@ -853,6 +853,41 @@ static ssize_t fan_led_store(struct device *dev, struct device_attribute *devatt return count; } +static ssize_t watchdog_show(struct device *dev, + struct device_attribute *devattr, char *buf) +{ + s32 ret; + u8 data = 0; + struct cpld_platform_data *pdata = dev->platform_data; + + ret = i2c_smbus_read_byte_data(pdata[cpu_cpld].client, 0x7); + if (ret < 0) + return sprintf(buf, "read error"); + data = ret; + + return sprintf(buf, "%x\n", data); +} + +static ssize_t watchdog_store(struct device *dev, struct device_attribute *devattr, const char *buf, size_t count) +{ + s32 ret, err; + unsigned long val; + u8 data = 0; + struct cpld_platform_data *pdata = dev->platform_data; + + err = kstrtoul(buf, 10, &val); + if (err) + return err; + + if (data) + { + ret = i2c_smbus_write_byte_data(pdata[cpu_cpld].client, 0x7, data); + if (ret < 0) + return ret; + } + + return count; +} static ssize_t power_good_show(struct device *dev, struct device_attribute *devattr, char *buf) @@ -947,6 +982,7 @@ static DEVICE_ATTR_RO(psu1_prs); static DEVICE_ATTR_RO(psu0_status); static DEVICE_ATTR_RO(psu1_status); static DEVICE_ATTR_RW(system_led); +static DEVICE_ATTR_RW(watchdog); static DEVICE_ATTR_RW(locator_led); static DEVICE_ATTR_RW(power_led); static DEVICE_ATTR_RW(master_led); @@ -988,6 +1024,7 @@ static struct attribute *n3248pxe_cpld_attrs[] = { &dev_attr_psu0_status.attr, &dev_attr_psu1_status.attr, &dev_attr_system_led.attr, + &dev_attr_watchdog.attr, &dev_attr_locator_led.attr, &dev_attr_power_led.attr, &dev_attr_master_led.attr, diff --git a/platform/broadcom/sonic-platform-modules-dell/n3248pxe/sonic_platform/watchdog.py b/platform/broadcom/sonic-platform-modules-dell/n3248pxe/sonic_platform/watchdog.py index 876aa4beda51..00277c2872f6 100644 --- a/platform/broadcom/sonic-platform-modules-dell/n3248pxe/sonic_platform/watchdog.py +++ b/platform/broadcom/sonic-platform-modules-dell/n3248pxe/sonic_platform/watchdog.py @@ -11,7 +11,6 @@ try: import ctypes - import subprocess from sonic_platform_base.watchdog_base import WatchdogBase except ImportError as e: raise ImportError(str(e) + "- required module not found") @@ -29,43 +28,53 @@ class Watchdog(WatchdogBase): Abstract base class for interfacing with a hardware watchdog module """ - TIMERS = [15,20,30,40,50,60,65,70] + TIMERS = [15,20,30,40,50,60,65,70,80,100,120,140,160,180,210,240] armed_time = 0 timeout = 0 CLOCK_MONOTONIC = 1 def __init__(self): + WatchdogBase.__init__(self) self._librt = ctypes.CDLL('librt.so.1', use_errno=True) self._clock_gettime = self._librt.clock_gettime self._clock_gettime.argtypes=[ctypes.c_int, ctypes.POINTER(_timespec)] + self.watchdog_reg = "watchdog" - def _get_command_result(self, cmdline): + def _get_cpld_register(self, reg_name): + # On successful read, returns the value read from given + # reg name and on failure rethrns 'ERR' + cpld_dir = "/sys/devices/platform/dell-n3248pxe-cpld.0/" + cpld_reg_file = cpld_dir + '/' + reg_name try: - proc = subprocess.Popen(cmdline.split(), stdout=subprocess.PIPE, - stderr=subprocess.STDOUT) - stdout = proc.communicate()[0] - proc.wait() - result = stdout.rstrip('\n') - except OSError: - result = None + with open(cpld_reg_file, 'r') as fd: + rv = fd.read() + except IOError : return 'ERR' + return rv.strip('\r\n').lstrip(' ') - return result + def _set_cpld_register(self, reg_name, value): + # On successful write, returns the value will be written on + # reg_name and on failure returns 'ERR' + + cpld_dir = "/sys/devices/platform/dell-n3248pxe-cpld.0/" + cpld_reg_file = cpld_dir + '/' + reg_name + + try: + with open(cpld_reg_file, 'w') as fd: + rv = fd.write(str(value)) + except Exception: + rv = 'ERR' + + return rv def _get_reg_val(self): - # 0x31 = CPLD I2C Base Address - # 0x07 = Watchdog Function Register - value = self._get_command_result("/usr/sbin/i2cget -y 601 0x31 0x07") - if not value: - return None - else: - return int(value, 16) + value = self._get_cpld_register(self.watchdog_reg).strip() + if value == 'ERR': return False + + return int(value,16) def _set_reg_val(self,val): - # 0x31 = CPLD I2C Base Address - # 0x07 = Watchdog Function Register - value = self._get_command_result("/usr/sbin/i2cset -y 601 0x31 0x07 %s" - % (val)) + value = self._set_cpld_register(self.watchdog_reg, val) return value def _get_time(self): @@ -93,7 +102,7 @@ def arm(self, seconds): """ timer_offset = -1 for key,timer_seconds in enumerate(self.TIMERS): - if seconds <= timer_seconds: + if seconds > 0 and seconds <= timer_seconds: timer_offset = key seconds = timer_seconds break @@ -101,40 +110,29 @@ def arm(self, seconds): if timer_offset == -1: return -1 - # Extracting 5th to 7th bits for WD timer values - # 000 - 15 sec - # 001 - 20 sec - # 010 - 30 sec - # 011 - 40 sec - # 100 - 50 sec - # 101 - 60 sec - # 110 - 65 sec - # 111 - 70 sec + # Extracting 5th to 8th bits for WD timer values reg_val = self._get_reg_val() - wd_timer_offset = (reg_val >> 4) & 0x7 + wd_timer_offset = (reg_val >> 4) & 0xF if wd_timer_offset != timer_offset: - # Setting 5th to 7th bits + # Setting 5th to 8th bits # value from timer_offset self.disarm() - self._set_reg_val(reg_val | (timer_offset << 4)) + self._set_reg_val((reg_val & 0x0F) | (timer_offset << 4)) if self.is_armed(): # Setting last bit to WD Timer punch # Last bit = WD Timer punch self._set_reg_val(reg_val & 0xFE) - self.armed_time = self._get_time() - self.timeout = seconds else: # Setting 4th bit to enable WD # 4th bit = Enable WD reg_val = self._get_reg_val() self._set_reg_val(reg_val | 0x8) - self.armed_time = self._get_time() - self.timeout = seconds - + self.armed_time = self._get_time() + self.timeout = seconds return seconds def disarm(self): @@ -207,4 +205,3 @@ def get_remaining_time(self): return self.timeout - diff_time return 0 - diff --git a/platform/broadcom/sonic-platform-modules-dell/n3248te/modules/dell_n3248te_platform.c b/platform/broadcom/sonic-platform-modules-dell/n3248te/modules/dell_n3248te_platform.c index f7a13c2a739f..92ee30af312f 100644 --- a/platform/broadcom/sonic-platform-modules-dell/n3248te/modules/dell_n3248te_platform.c +++ b/platform/broadcom/sonic-platform-modules-dell/n3248te/modules/dell_n3248te_platform.c @@ -572,7 +572,7 @@ static ssize_t system_led_show(struct device *dev, struct device_attribute *deva if (ret < 0) return sprintf(buf, "read error"); - data = (u8)(ret & 0x30) >> 5; + data = (u8)(ret & 0x30) >> 4; switch (data) { @@ -878,6 +878,42 @@ static ssize_t fan_led_store(struct device *dev, struct device_attribute *devatt return count; } +static ssize_t watchdog_show(struct device *dev, + struct device_attribute *devattr, char *buf) +{ + s32 ret; + u8 data = 0; + struct cpld_platform_data *pdata = dev->platform_data; + + ret = i2c_smbus_read_byte_data(pdata[cpu_cpld].client, 0x7); + if (ret < 0) + return sprintf(buf, "read error"); + data = ret; + + return sprintf(buf, "%x\n", data); +} + +static ssize_t watchdog_store(struct device *dev, struct device_attribute *devattr, const char *buf, size_t count) +{ + s32 ret, err; + unsigned long val; + u8 data = 0; + struct cpld_platform_data *pdata = dev->platform_data; + + err = kstrtoul(buf, 10, &val); + if (err) + return err; + + data = (u8) val; + if (data) + { + ret = i2c_smbus_write_byte_data(pdata[cpu_cpld].client, 0x7, data); + if (ret < 0) + return ret; + } + + return count; +} static ssize_t power_good_show(struct device *dev, struct device_attribute *devattr, char *buf) @@ -974,6 +1010,7 @@ static DEVICE_ATTR_RO(psu1_prs); static DEVICE_ATTR_RO(psu0_status); static DEVICE_ATTR_RO(psu1_status); static DEVICE_ATTR_RW(system_led); +static DEVICE_ATTR_RW(watchdog); static DEVICE_ATTR_RW(locator_led); static DEVICE_ATTR_RW(power_led); static DEVICE_ATTR_RW(master_led); @@ -1017,6 +1054,7 @@ static struct attribute *n3248te_cpld_attrs[] = { &dev_attr_psu0_status.attr, &dev_attr_psu1_status.attr, &dev_attr_system_led.attr, + &dev_attr_watchdog.attr, &dev_attr_locator_led.attr, &dev_attr_power_led.attr, &dev_attr_master_led.attr, diff --git a/platform/broadcom/sonic-platform-modules-dell/n3248te/sonic_platform/watchdog.py b/platform/broadcom/sonic-platform-modules-dell/n3248te/sonic_platform/watchdog.py index ebd4706b4215..1e077e45d122 100644 --- a/platform/broadcom/sonic-platform-modules-dell/n3248te/sonic_platform/watchdog.py +++ b/platform/broadcom/sonic-platform-modules-dell/n3248te/sonic_platform/watchdog.py @@ -11,7 +11,6 @@ try: import ctypes - import subprocess from sonic_platform_base.watchdog_base import WatchdogBase except ImportError as e: raise ImportError(str(e) + "- required module not found") @@ -29,43 +28,53 @@ class Watchdog(WatchdogBase): Abstract base class for interfacing with a hardware watchdog module """ - TIMERS = [15,20,30,40,50,60,65,70] + TIMERS = [15,20,30,40,50,60,65,70,80,100,120,140,160,180,210,240] armed_time = 0 timeout = 0 CLOCK_MONOTONIC = 1 def __init__(self): + WatchdogBase.__init__(self) self._librt = ctypes.CDLL('librt.so.1', use_errno=True) self._clock_gettime = self._librt.clock_gettime self._clock_gettime.argtypes=[ctypes.c_int, ctypes.POINTER(_timespec)] + self.watchdog_reg = "watchdog" - def _get_command_result(self, cmdline): + def _get_cpld_register(self, reg_name): + # On successful read, returns the value read from given + # reg name and on failure rethrns 'ERR' + cpld_dir = "/sys/devices/platform/dell-n3248te-cpld.0/" + cpld_reg_file = cpld_dir + '/' + reg_name try: - proc = subprocess.Popen(cmdline.split(), stdout=subprocess.PIPE, - stderr=subprocess.STDOUT) - stdout = proc.communicate()[0] - proc.wait() - result = stdout.rstrip('\n') - except OSError: - result = None + with open(cpld_reg_file, 'r') as fd: + rv = fd.read() + except IOError : return 'ERR' + return rv.strip('\r\n').lstrip(' ') - return result + def _set_cpld_register(self, reg_name, value): + # On successful write, returns the value will be written on + # reg_name and on failure returns 'ERR' + + cpld_dir = "/sys/devices/platform/dell-n3248te-cpld.0/" + cpld_reg_file = cpld_dir + '/' + reg_name + + try: + with open(cpld_reg_file, 'w') as fd: + rv = fd.write(str(value)) + except Exception: + rv = 'ERR' + + return rv def _get_reg_val(self): - # 0x31 = CPLD I2C Base Address - # 0x07 = Watchdog Function Register - value = self._get_command_result("/usr/sbin/i2cget -y 601 0x31 0x07") - if not value: - return None - else: - return int(value, 16) + value = self._get_cpld_register(self.watchdog_reg).strip() + if value == 'ERR': return False + + return int(value,16) def _set_reg_val(self,val): - # 0x31 = CPLD I2C Base Address - # 0x07 = Watchdog Function Register - value = self._get_command_result("/usr/sbin/i2cset -y 601 0x31 0x07 %s" - % (val)) + value = self._set_cpld_register(self.watchdog_reg, val) return value def _get_time(self): @@ -93,7 +102,7 @@ def arm(self, seconds): """ timer_offset = -1 for key,timer_seconds in enumerate(self.TIMERS): - if seconds <= timer_seconds: + if seconds > 0 and seconds <= timer_seconds: timer_offset = key seconds = timer_seconds break @@ -101,41 +110,30 @@ def arm(self, seconds): if timer_offset == -1: return -1 - # Extracting 5th to 7th bits for WD timer values - # 000 - 15 sec - # 001 - 20 sec - # 010 - 30 sec - # 011 - 40 sec - # 100 - 50 sec - # 101 - 60 sec - # 110 - 65 sec - # 111 - 70 sec + # Extracting 5th to 8th bits for WD timer values reg_val = self._get_reg_val() - wd_timer_offset = (reg_val >> 4) & 0x7 + wd_timer_offset = (reg_val >> 4) & 0xF if wd_timer_offset != timer_offset: - # Setting 5th to 7th bits + # Setting 5th to 8th bits # value from timer_offset self.disarm() - self._set_reg_val(reg_val | (timer_offset << 4)) + self._set_reg_val((reg_val & 0x0F) | (timer_offset << 4)) if self.is_armed(): # Setting last bit to WD Timer punch # Last bit = WD Timer punch self._set_reg_val(reg_val & 0xFE) - self.armed_time = self._get_time() - self.timeout = seconds - return seconds else: # Setting 4th bit to enable WD # 4th bit = Enable WD reg_val = self._get_reg_val() self._set_reg_val(reg_val | 0x8) - self.armed_time = self._get_time() - self.timeout = seconds - return seconds + self.armed_time = self._get_time() + self.timeout = seconds + return seconds def disarm(self): """ @@ -183,7 +181,7 @@ def get_remaining_time(self): their watchdog timer. If the watchdog is not armed, returns -1. - S5232 doesnot have hardware support to show remaining time. + N3248PXE doesnot have hardware support to show remaining time. Due to this limitation, this API is implemented in software. This API would return correct software time difference if it is called from the process which armed the watchdog timer. @@ -207,4 +205,3 @@ def get_remaining_time(self): return self.timeout - diff_time return 0 - From a9e86c3b82a0e7d4fe5a77d1b685cf101a0806c6 Mon Sep 17 00:00:00 2001 From: arunlk-dell <83708154+arunlk-dell@users.noreply.github.com> Date: Fri, 1 Apr 2022 20:04:31 +0530 Subject: [PATCH 024/251] DellEMC: N3248TE platform API2.0 changes (#10400) DellEMC: N3248TE platform API2.0 changes Why I did it N3248TE Platform API 2.0 changes How I did it Implemented the functional API's needed for Platform API 2.0 Added system_health_monitoring_config.json file How to verify it Used the API 2.0 test suite to validate the test cases. Co-authored-by: Arun LK --- .../system_health_monitoring_config.json | 11 ++++ .../n3248te/sonic_platform/chassis.py | 3 +- .../n3248te/sonic_platform/fan.py | 26 +++++++- .../n3248te/sonic_platform/psu.py | 6 +- .../n3248te/sonic_platform/sfp.py | 63 +++++++++++++++++-- 5 files changed, 99 insertions(+), 10 deletions(-) create mode 100644 device/dell/x86_64-dellemc_n3248te_c3338-r0/system_health_monitoring_config.json diff --git a/device/dell/x86_64-dellemc_n3248te_c3338-r0/system_health_monitoring_config.json b/device/dell/x86_64-dellemc_n3248te_c3338-r0/system_health_monitoring_config.json new file mode 100644 index 000000000000..dc20d412147f --- /dev/null +++ b/device/dell/x86_64-dellemc_n3248te_c3338-r0/system_health_monitoring_config.json @@ -0,0 +1,11 @@ +{ + "services_to_ignore": [], + "devices_to_ignore": ["fan.speed","psu.temperature","psu.voltage","asic"], + "user_defined_checkers": [], + "polling_interval": 60, + "led_color": { + "fault" : "blink_yellow", + "normal" : "green", + "booting": "blink_green" + } +} diff --git a/platform/broadcom/sonic-platform-modules-dell/n3248te/sonic_platform/chassis.py b/platform/broadcom/sonic-platform-modules-dell/n3248te/sonic_platform/chassis.py index d2922eac1fa5..ddc254881ca3 100644 --- a/platform/broadcom/sonic-platform-modules-dell/n3248te/sonic_platform/chassis.py +++ b/platform/broadcom/sonic-platform-modules-dell/n3248te/sonic_platform/chassis.py @@ -118,7 +118,8 @@ def _get_cpld_register(self, reg_name): # reg name and on failure rethrns 'ERR' cpld_reg_file = self.CPLD_DIR + '/' + reg_name try: - rv = open(cpld_reg_file, 'r').read() + with open(cpld_reg_file, 'r') as fd: + rv = fd.read() except IOError : return 'ERR' return rv.strip('\r\n').lstrip(' ') diff --git a/platform/broadcom/sonic-platform-modules-dell/n3248te/sonic_platform/fan.py b/platform/broadcom/sonic-platform-modules-dell/n3248te/sonic_platform/fan.py index ff8ea160b95d..e82dc91cc686 100644 --- a/platform/broadcom/sonic-platform-modules-dell/n3248te/sonic_platform/fan.py +++ b/platform/broadcom/sonic-platform-modules-dell/n3248te/sonic_platform/fan.py @@ -47,7 +47,8 @@ def _get_cpld_register(self, reg_name): cpld_dir = "/sys/devices/platform/dell-n3248te-cpld.0/" cpld_reg_file = cpld_dir + '/' + reg_name try: - buf = open(cpld_reg_file, 'r').read() + with open(cpld_reg_file, 'r')as fd: + buf = fd.read() except (IOError, AttributeError): return 'ERR' return buf.strip('\r\n').lstrip(' ') @@ -228,7 +229,26 @@ def set_status_led(self, color): Returns: bool: True if set success, False if fail. """ - # Fan tray status LED controlled by HW - # Return True to avoid thermalctld alarm + # N3248TE has led only on FanTray and not available for seperate fans return True + def get_status_led(self): + """ + Gets the current system LED color + + Returns: + A string that represents the supported color + """ + + return None + + def get_target_speed(self): + """ + Retrieves the target (expected) speed of the fan + Returns: + An integer, the percentage of full fan speed, in the range 0 (off) + to 100 (full speed) + """ + # Return current speed to avoid false thermalctld alarm. + return self.get_speed() + diff --git a/platform/broadcom/sonic-platform-modules-dell/n3248te/sonic_platform/psu.py b/platform/broadcom/sonic-platform-modules-dell/n3248te/sonic_platform/psu.py index 617b2ce7f966..b2f06785f0dc 100644 --- a/platform/broadcom/sonic-platform-modules-dell/n3248te/sonic_platform/psu.py +++ b/platform/broadcom/sonic-platform-modules-dell/n3248te/sonic_platform/psu.py @@ -38,7 +38,8 @@ def _get_cpld_register(self, reg_name): cpld_dir = "/sys/devices/platform/dell-n3248te-cpld.0/" cpld_reg_file = cpld_dir + '/' + reg_name try: - rv = open(cpld_reg_file, 'r').read() + with open(cpld_reg_file, 'r') as fd: + rv = fd.read() except IOError : return 'ERR' return rv.strip('\r\n').lstrip(' ') @@ -46,7 +47,8 @@ def _get_dps_register(self, reg_name): try : dps_dir = self.dps_hwmon + '/' + os.listdir(self.dps_hwmon)[0] dps_reg_file = dps_dir + '/' + reg_name - rv = open(dps_reg_file, 'r').read() + with open(dps_reg_file, 'r') as fd: + rv = fd.read() except (IOError, OSError) : return 'ERR' return rv diff --git a/platform/broadcom/sonic-platform-modules-dell/n3248te/sonic_platform/sfp.py b/platform/broadcom/sonic-platform-modules-dell/n3248te/sonic_platform/sfp.py index 0a30ae272d76..3a6b0a4cd4cc 100644 --- a/platform/broadcom/sonic-platform-modules-dell/n3248te/sonic_platform/sfp.py +++ b/platform/broadcom/sonic-platform-modules-dell/n3248te/sonic_platform/sfp.py @@ -20,6 +20,22 @@ SFP_PORT_START = 49 SFP_PORT_END = 54 +QSFP_INFO_OFFSET = 128 +SFP_INFO_OFFSET = 0 +QSFP_DD_PAGE0 = 0 + +SFP_TYPE_LIST = [ + '0x3' # SFP/SFP+/SFP28 and later +] +QSFP_TYPE_LIST = [ + '0xc', # QSFP + '0xd', # QSFP+ or later + '0x11' # QSFP28 or later +] +QSFP_DD_TYPE_LIST = [ + '0x18' #QSFP_DD Type +] + class Sfp(SfpOptoeBase): """ DELLEMC Platform-specific Sfp class @@ -35,7 +51,7 @@ def get_eeprom_path(self): return self.eeprom_path def get_name(self): - return "SFP/SFP+/SFP28" + return "SFP/SFP+/SFP28" if self.index < 53 else "QSFP+ or later" def pci_mem_read(self, mm, offset): mm.seek(offset) @@ -70,7 +86,8 @@ def pci_get_value(self, resource, offset): def _get_cpld_register(self, reg): reg_file = '/sys/devices/platform/dell-n3248te-cpld.0/' + reg try: - rv = open(reg_file, 'r').read() + with open(reg_file, 'r') as fd: + rv = fd.read() except IOError : return 'ERR' return rv.strip('\r\n').lstrip(' ') @@ -109,7 +126,7 @@ def reset(self): """ Reset the SFP and returns all user settings to their default state """ - return True + return False def set_lpmode(self, lpmode): """ @@ -128,4 +145,42 @@ def get_max_port_power(self): """ Retrieves the maximumum power allowed on the port in watts """ - return 2.5 + return 5.0 if self.sfp_type == 'QSFP' else 2.5 + + def is_replaceable(self): + """ + Indicate whether this device is replaceable. + Returns: + bool: True if it is replaceable. + """ + return True + + def get_error_description(self): + """ + Retrives the error descriptions of the SFP module + Returns: + String that represents the current error descriptions of vendor specific errors + In case there are multiple errors, they should be joined by '|', + like: "Bad EEPROM|Unsupported cable" + """ + if not self.get_presence(): + return self.SFP_STATUS_UNPLUGGED + else: + if not os.path.isfile(self.eeprom_path): + return "EEPROM driver is not attached" + + if self.sfp_type == 'SFP': + offset = SFP_INFO_OFFSET + elif self.sfp_type == 'QSFP': + offset = QSFP_INFO_OFFSET + elif self.sfp_type == 'QSFP_DD': + offset = QSFP_DD_PAGE0 + + try: + with open(self.eeprom_path, mode="rb", buffering=0) as eeprom: + eeprom.seek(offset) + eeprom.read(1) + except OSError as e: + return "EEPROM read failed ({})".format(e.strerror) + + return self.SFP_STATUS_OK From ddc269ac81178894ec053c15d13f33c881e1212c Mon Sep 17 00:00:00 2001 From: arunlk-dell <83708154+arunlk-dell@users.noreply.github.com> Date: Fri, 1 Apr 2022 20:05:07 +0530 Subject: [PATCH 025/251] DellEMC: Added platform.json file for N3248TE (#9404) Why I did it Added platform.json file for N3248TE How I did it Defined the platform.json file with the required components under chassis. How to verify it validated the API 2.0 test suite Co-authored-by: Arun LK --- .../platform.json | 350 ++++++++++++++++++ 1 file changed, 350 insertions(+) create mode 100644 device/dell/x86_64-dellemc_n3248te_c3338-r0/platform.json diff --git a/device/dell/x86_64-dellemc_n3248te_c3338-r0/platform.json b/device/dell/x86_64-dellemc_n3248te_c3338-r0/platform.json new file mode 100644 index 000000000000..0bb2391ca3df --- /dev/null +++ b/device/dell/x86_64-dellemc_n3248te_c3338-r0/platform.json @@ -0,0 +1,350 @@ +{ + "chassis": { + "name": "N3248TE-ON", + "status_led": { + "controllable": true, + "colors": ["green", "blink_green", "yellow", "blink_yellow"] + }, + "thermal_manager" : false, + "components": [ + { + "name": "BIOS" + }, + { + "name": "CPU CPLD" + }, + { + "name": "SYS CPLD" + } + ], + "fans": [ + { + "name": "FanTray1-Fan1", + "speed": { + "controllable":false + }, + "status_led": { + "available": false + } + }, + { + "name": "FanTray2-Fan1", + "speed": { + "controllable":false + }, + "status_led": { + "available": false + } + }, + { + "name": "FanTray3-Fan1", + "speed": { + "controllable":false + }, + "status_led": { + "available": false + } + } + ], + "fan_drawers":[ + { + "name": "FanTray1", + "status_led": { + "controllable": true, + "colors": ["off", "green", "yellow"] + }, + "fans": [ + { + "name": "FanTray1-Fan1", + "speed": { + "controllable":false + }, + "status_led": { + "available": false + } + } + ] + }, + { + "name": "FanTray2", + "status_led": { + "controllable": true, + "colors": ["off", "green", "yellow"] + }, + "fans": [ + { + "name": "FanTray2-Fan1", + "speed": { + "controllable":false + }, + "status_led": { + "available": false + } + } + ] + }, + { + "name": "FanTray3", + "status_led": { + "controllable": true, + "colors": ["off", "green", "yellow"] + }, + "fans": [ + { + "name": "FanTray3-Fan1", + "speed": { + "controllable":false + }, + "status_led": { + "available": false + } + } + ] + } + ], + "psus": [ + { + "name": "PSU1", + "status_led": { + "controllable": false + }, + "fans": [ + { + "name": "PSU1 Fan", + "speed": { + "controllable": false + }, + "status_led": { + "available": false + } + } + ] + }, + { + "name": "PSU2", + "status_led": { + "controllable": false + }, + "fans": [ + { + "name": "PSU2 Fan", + "speed": { + "controllable": false + }, + "status_led": { + "available": false + } + } + ] + } + ], + "thermals": [ + { + "name": "Front Panel PHY Temperature", + "controllable": false, + "low-crit-threshold": false, + "high-crit-threshold": false, + "minimum-recorded": false, + "maximum-recorded": false + }, + { + "name": "Middle Fan Tray Temperature", + "controllable": false, + "low-crit-threshold": false, + "high-crit-threshold": false, + "minimum-recorded": false, + "maximum-recorded": false + }, + { + "name": "Near Front Panel Temperature", + "controllable": false, + "low-crit-threshold": false, + "high-crit-threshold": false, + "minimum-recorded": false, + "maximum-recorded": false + }, + { + "name": "Switch Near Temperature", + "controllable": false, + "low-crit-threshold": false, + "high-crit-threshold": false, + "minimum-recorded": false, + "maximum-recorded": false + }, + { + "name": "Switch Rear Temperature", + "controllable": false, + "low-crit-threshold": false, + "high-crit-threshold": false, + "minimum-recorded": false, + "maximum-recorded": false + } + ], + "modules": [], + "sfps": [ + { + "name": "1GSFPCu" + }, + { + "name": "1GSFPCu" + }, + { + "name": "1GSFPCu" + }, + { + "name": "1GSFPCu" + }, + { + "name": "1GSFPCu" + }, + { + "name": "1GSFPCu" + }, + { + "name": "1GSFPCu" + }, + { + "name": "1GSFPCu" + }, + { + "name": "1GSFPCu" + }, + { + "name": "1GSFPCu" + }, + { + "name": "1GSFPCu" + }, + { + "name": "1GSFPCu" + }, + { + "name": "1GSFPCu" + }, + { + "name": "1GSFPCu" + }, + { + "name": "1GSFPCu" + }, + { + "name": "1GSFPCu" + }, + { + "name": "1GSFPCu" + }, + { + "name": "1GSFPCu" + }, + { + "name": "1GSFPCu" + }, + { + "name": "1GSFPCu" + }, + { + "name": "1GSFPCu" + }, + { + "name": "1GSFPCu" + }, + { + "name": "1GSFPCu" + }, + { + "name": "1GSFPCu" + }, + { + "name": "1GSFPCu" + }, + { + "name": "1GSFPCu" + }, + { + "name": "1GSFPCu" + }, + { + "name": "1GSFPCu" + }, + { + "name": "1GSFPCu" + }, + { + "name": "1GSFPCu" + }, + { + "name": "1GSFPCu" + }, + { + "name": "1GSFPCu" + }, + { + "name": "1GSFPCu" + }, + { + "name": "1GSFPCu" + }, + { + "name": "1GSFPCu" + }, + { + "name": "1GSFPCu" + }, + { + "name": "1GSFPCu" + }, + { + "name": "1GSFPCu" + }, + { + "name": "1GSFPCu" + }, + { + "name": "1GSFPCu" + }, + { + "name": "1GSFPCu" + }, + { + "name": "1GSFPCu" + }, + { + "name": "1GSFPCu" + }, + { + "name": "1GSFPCu" + }, + { + "name": "1GSFPCu" + }, + { + "name": "1GSFPCu" + }, + { + "name": "1GSFPCu" + }, + { + "name": "1GSFPCu" + }, + { + "name": "SFP/SFP+/SFP28" + }, + { + "name": "SFP/SFP+/SFP28" + }, + { + "name": "SFP/SFP+/SFP28" + }, + { + "name": "SFP/SFP+/SFP28" + }, + { + "name": "QSFP+ or later" + }, + { + "name": "QSFP+ or later" + } + ] + }, + "interfaces": {} +} From b39b7a3f2d6f8c2df0b7db5b385e189726e746b7 Mon Sep 17 00:00:00 2001 From: jostar-yang Date: Sat, 2 Apr 2022 00:55:04 +0800 Subject: [PATCH 026/251] [Accton/PDDF] Support pddf to as4630/as7816/as7326 (#10340) Why I did it Support pddf to as4630/as7816/as7326 How I did it Send needed file to the PR for these platform How to verify it Test sensors and show platform cmd. root@as7326-56x-3:/home/admin# show platform psustatus PSU Model Serial HW Rev Voltage (V) Current (A) Power (W) Status LED PSU 1 FSF045-611 FSF0451912000505 N/A 12.06 5.50 66.00 OK green PSU 2 FSF045-611 FSF0451912000568 N/A 12.00 5.50 66.00 OK green root@as7326-56x-3:/home/admin# sensors lm75-i2c-15-4a Adapter: i2c-1-mux (chan_id 6) Main Board Temperature: +35.5 C (high = +80.0 C, hyst = +75.0 C) lm75-i2c-15-4b Adapter: i2c-1-mux (chan_id 6) CPU Board Temperature: +29.0 C (high = +80.0 C, hyst = +75.0 C) fan_ctrl-i2c-11-66 Adapter: i2c-1-mux (chan_id 2) fan1: 9100 RPM fan2: 9400 RPM fan3: 9300 RPM fan4: 9600 RPM fan5: 9000 RPM fan6: 9100 RPM fan7: 9100 RPM fan8: 9300 RPM fan9: 9200 RPM fan10: 9400 RPM fan11: 9200 RPM fan12: 9400 RPM pch_haswell-virtual-0 Adapter: Virtual device temp1: +43.0 C psu_pmbus-i2c-17-59 Adapter: i2c-1-mux (chan_id 0) in3: +12.06 V fan1: 6272 RPM temp1: +37.0 C power2: 60.00 W curr2: +6.00 A lm75-i2c-15-49 Adapter: i2c-1-mux (chan_id 6) Main Board Temperature: +40.0 C (high = +80.0 C, hyst = +75.0 C) lm75-i2c-15-48 Adapter: i2c-1-mux (chan_id 6) Main Board Temperature: +39.0 C (high = +80.0 C, hyst = +75.0 C) psu_pmbus-i2c-13-5b Adapter: i2c-1-mux (chan_id 4) in3: +12.00 V fan1: 6144 RPM temp1: +36.0 C power2: 66.00 W curr2: +5.50 A coretemp-isa-0000 Adapter: ISA adapter Package id 0: +50.0 C (high = +82.0 C, crit = +104.0 C) Core 0: +50.0 C (high = +82.0 C, crit = +104.0 C) Core 1: +50.0 C (high = +82.0 C, crit = +104.0 C) Core 2: +50.0 C (high = +82.0 C, crit = +104.0 C) Core 3: +50.0 C (high = +82.0 C, crit = +104.0 C) Signed-off-by: Jostar Yang --- .../pddf/pd-plugin.json | 66 + .../x86_64-accton_as4630_54pe-r0/pddf_support | 0 .../pddf/pd-plugin.json | 67 + .../pddf/pddf-device.json | 2944 +++++++++++++++++ .../x86_64-accton_as7326_56x-r0/pddf_support | 0 .../pddf/pd-plugin.json | 2 +- .../pddf/pd-plugin.json | 64 + .../pddf/pddf-device.json | 22 +- .../x86_64-accton_as7816_64x-r0/pddf_support | 0 .../service/pddf-platform-init.service | 1 + .../as4630-54pe/sonic_platform_setup.py | 13 +- .../as7326-56x/modules/Makefile | 7 +- .../as7326-56x/modules/pddf_custom_psu.c | 206 ++ .../as7326-56x-pddf-platform-monitor.service | 16 + .../service/pddf-platform-init.service | 1 + .../as7326-56x/sonic_platform_setup.py | 9 +- .../utils/pddf_post_driver_install.sh | 23 + .../utils/pddf_post_driver_install.sh | 4 +- .../as7816-pddf-platform-monitor.service | 16 + .../service/pddf-platform-init.service | 1 + .../as7816-64x/sonic_platform_setup.py | 11 +- .../utils/pddf_post_driver_install.sh | 23 + .../utils/pddf_post_driver_install.sh | 4 +- .../sonic-platform-accton-as4630-54pe.install | 2 +- ...sonic-platform-accton-as4630-54pe.postinst | 8 + .../sonic-platform-accton-as7326-56x.install | 3 +- .../sonic-platform-accton-as7726-32x.postinst | 2 + .../sonic-platform-accton-as7816-64x.install | 3 +- 28 files changed, 3467 insertions(+), 51 deletions(-) create mode 100644 device/accton/x86_64-accton_as4630_54pe-r0/pddf/pd-plugin.json create mode 100644 device/accton/x86_64-accton_as4630_54pe-r0/pddf_support create mode 100644 device/accton/x86_64-accton_as7326_56x-r0/pddf/pd-plugin.json create mode 100644 device/accton/x86_64-accton_as7326_56x-r0/pddf/pddf-device.json create mode 100644 device/accton/x86_64-accton_as7326_56x-r0/pddf_support create mode 100644 device/accton/x86_64-accton_as7816_64x-r0/pddf/pd-plugin.json create mode 100644 device/accton/x86_64-accton_as7816_64x-r0/pddf_support create mode 120000 platform/broadcom/sonic-platform-modules-accton/as4630-54pe/service/pddf-platform-init.service create mode 100644 platform/broadcom/sonic-platform-modules-accton/as7326-56x/modules/pddf_custom_psu.c create mode 100644 platform/broadcom/sonic-platform-modules-accton/as7326-56x/service/as7326-56x-pddf-platform-monitor.service create mode 120000 platform/broadcom/sonic-platform-modules-accton/as7326-56x/service/pddf-platform-init.service create mode 100755 platform/broadcom/sonic-platform-modules-accton/as7326-56x/utils/pddf_post_driver_install.sh create mode 100644 platform/broadcom/sonic-platform-modules-accton/as7816-64x/service/as7816-pddf-platform-monitor.service create mode 120000 platform/broadcom/sonic-platform-modules-accton/as7816-64x/service/pddf-platform-init.service create mode 100755 platform/broadcom/sonic-platform-modules-accton/as7816-64x/utils/pddf_post_driver_install.sh create mode 100644 platform/broadcom/sonic-platform-modules-accton/debian/sonic-platform-accton-as4630-54pe.postinst diff --git a/device/accton/x86_64-accton_as4630_54pe-r0/pddf/pd-plugin.json b/device/accton/x86_64-accton_as4630_54pe-r0/pddf/pd-plugin.json new file mode 100644 index 000000000000..0abf66aab7a5 --- /dev/null +++ b/device/accton/x86_64-accton_as4630_54pe-r0/pddf/pd-plugin.json @@ -0,0 +1,66 @@ +{ + "XCVR": + { + "xcvr_present": + { + "i2c": + { + "valmap-SFP28": {"1":true, "0":false }, + "valmap-QSFP28": {"1":true, "0":false} + } + } + }, + + "PSU": + { + "psu_present": + { + "i2c": + { + "valmap": { "1":true, "0":false } + } + }, + + "psu_power_good": + { + "i2c": + { + "valmap": { "1": true, "0":false } + } + }, + + "psu_fan_dir": + { + "i2c": + { + "valmap": { "F2B":"EXHAUST", "B2F":"INTAKE" } + } + }, + + "PSU_FAN_MAX_SPEED":"18000" + }, + + "FAN": + { + "direction": + { + "i2c": + { + "valmap": {"1":"EXHAUST", "0":"INTAKE"} + } + }, + + "present": + { + "i2c": + { + "valmap": {"1":true, "0":false} + } + }, + + "duty_cycle_to_pwm": "lambda dc: ((dc*100.0)/625)", + + "pwm_to_duty_cycle": "lambda pwm: ((pwm*625.0)/100)" + } + +} diff --git a/device/accton/x86_64-accton_as4630_54pe-r0/pddf_support b/device/accton/x86_64-accton_as4630_54pe-r0/pddf_support new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/device/accton/x86_64-accton_as7326_56x-r0/pddf/pd-plugin.json b/device/accton/x86_64-accton_as7326_56x-r0/pddf/pd-plugin.json new file mode 100644 index 000000000000..317cf23b7362 --- /dev/null +++ b/device/accton/x86_64-accton_as7326_56x-r0/pddf/pd-plugin.json @@ -0,0 +1,67 @@ +{ + + "XCVR": + { + "xcvr_present": + { + "i2c": + { + "valmap-SFP": {"1":true, "0":false }, + "valmap-SFP28": {"1":true, "0":false }, + "valmap-QSFP28": {"1":true, "0":false} + } + } + }, + "PSU": + { + "psu_present": + { + "i2c": + { + "valmap": { "1":true, "0":false } + } + }, + + "psu_power_good": + { + "i2c": + { + "valmap": { "1": true, "0":false } + } + }, + + "psu_fan_dir": + { + "i2c": + { + "valmap": { "F2B":"EXHAUST", "B2F":"INTAKE" } + } + }, + + "PSU_FAN_MAX_SPEED":"18000" + }, + + "FAN": + { + "direction": + { + "i2c": + { + "valmap": {"1":"INTAKE", "0":"EXHAUST"} + } + }, + + "present": + { + "i2c": + { + "valmap": {"1":true, "0":false} + } + }, + + "duty_cycle_to_pwm": "lambda dc: ((dc*100)/625 -1)", + + "pwm_to_duty_cycle": "lambda pwm: (((pwm+1)*625+75)/100)" + } + +} diff --git a/device/accton/x86_64-accton_as7326_56x-r0/pddf/pddf-device.json b/device/accton/x86_64-accton_as7326_56x-r0/pddf/pddf-device.json new file mode 100644 index 000000000000..a8bd6d0c4043 --- /dev/null +++ b/device/accton/x86_64-accton_as7326_56x-r0/pddf/pddf-device.json @@ -0,0 +1,2944 @@ +{ + "PLATFORM": + { + "num_psus":2, + "num_fantrays":6, + "num_fans_pertray":2, + "num_ports":58, + "num_temps": 4, + "pddf_dev_types": + { + "description":"AS7326-56X - Below is the list of supported PDDF device types (chip names) for various components. If any component uses some other driver, we will create the client using 'echo > /new_device' method", + "CPLD": + [ + "i2c_cpld" + ], + "PSU": + [ + "psu_eeprom", + "psu_pmbus" + ], + "FAN": + [ + "fan_ctrl", + "fan_eeprom" + ], + "PORT_MODULE": + [ + "pddf_xcvr" + ] + }, + "std_kos": + [ + "i2c-i801", + "i2c_dev", + "i2c_mux_pca954x", + "optoe" + ], + "pddf_kos": + [ + "pddf_client_module", + "pddf_cpld_module", + "pddf_cpld_driver", + "pddf_mux_module", + "pddf_xcvr_module", + "pddf_xcvr_driver_module", + "pddf_psu_driver_module", + "pddf_psu_module", + "pddf_fan_driver_module", + "pddf_fan_module", + "pddf_led_module", + "pddf_sysstatus_module" + ], + "custom_kos": + [ + "pddf_custom_psu" + ] + }, + + "SYSTEM": + { + "dev_info": {"device_type":"CPU", "device_name":"ROOT_COMPLEX", "device_parent":null}, + "i2c": + { + "CONTROLLERS": + [ + { "dev_name":"i2c-0", "dev":"SMBUS0" } + ] + } + }, + + "SMBUS0": + { + "dev_info": {"device_type": "SMBUS", "device_name": "SMBUS0", "device_parent": "SYSTEM"}, + "i2c": + { + "topo_info": {"dev_addr": "0x0"}, + "DEVICES": + [ + {"dev": "EEPROM1"}, + {"dev": "CPU_CPLD"}, + {"dev": "MUX1"} + ] + } + }, + + "EEPROM1": + { + "dev_info": {"device_type": "EEPROM", "device_name": "EEPROM1", "device_parent": "SMBUS0"}, + "i2c": + { + "topo_info": {"parent_bus": "0x0", "dev_addr": "0x56", "dev_type": "24c04"}, + "dev_attr": {"access_mode": "BLOCK"}, + "attr_list": [ + {"attr_name": "eeprom"} + ] + } + }, + + "CPU_CPLD": + { + "dev_info": { "device_type":"CPLD", "device_name":"CPU_CPLD", "device_parent":"SMBUS0"}, + "i2c": + { + "topo_info": { "parent_bus":"0x0", "dev_addr":"0x65", "dev_type":"i2c_cpld"}, + "dev_attr": { } + } + }, + + "MUX1": + { + "dev_info": { "device_type":"MUX", "device_name":"MUX1", "device_parent":"SMBUS0"}, + "i2c": + { + "topo_info": { "parent_bus":"0x0", "dev_addr":"0x77", "dev_type":"pca9548"}, + "dev_attr": { "virt_bus":"0x1", "idle_state":"-2"}, + "channel": + [ + { "chn":"0", "dev":"MUX2" }, + { "chn":"0", "dev":"MUX3" }, + { "chn":"1", "dev":"MUX4" } + + ] + } + }, + "MUX2": + { + "dev_info": { "device_type":"MUX", "device_name":"MUX2", "device_parent":"MUX1"}, + "i2c": + { + "topo_info": { "parent_bus":"0x1", "dev_addr":"0x70", "dev_type":"pca9548"}, + "dev_attr": { "virt_bus":"0x9", "idle_state":"-2"}, + "channel": + [ + { "chn":"2", "dev":"FAN-CTRL" }, + { "chn":"3", "dev":"CPLD2" }, + { "chn":"4", "dev":"PSU2" } , + { "chn":"6", "dev":"TEMP1" }, + { "chn":"6", "dev":"TEMP2" }, + { "chn":"6", "dev":"TEMP3" }, + { "chn":"6", "dev":"TEMP4" } + ] + } + }, + "MUX3": + { + "dev_info": { "device_type":"MUX", "device_name":"MUX3", "device_parent":"MUX1"}, + "i2c": + { + "topo_info": { "parent_bus":"0x1", "dev_addr":"0x71", "dev_type":"pca9548"}, + "dev_attr": { "virt_bus":"0x11", "idle_state":"-2"}, + "channel": + [ + { "chn":"0", "dev":"PSU1" }, + { "chn":"1", "dev":"CPLD1" }, + { "chn":"2", "dev":"CPLD3" }, + { "chn":"5", "dev":"PORT57" }, + { "chn":"6", "dev":"PORT58" }, + { "chn":"7", "dev":"MUX11" } + ] + } + }, + "MUX4": + { + "dev_info": { "device_type":"MUX", "device_name":"MUX4", "device_parent":"MUX1"}, + "i2c": + { + "topo_info": { "parent_bus":"0x2", "dev_addr":"0x70", "dev_type":"pca9548"}, + "dev_attr": { "virt_bus":"0x21", "idle_state":"-2"}, + "channel": + [ + { "chn":"0", "dev":"MUX5" }, + { "chn":"1", "dev":"MUX6" }, + { "chn":"2", "dev":"MUX7" }, + { "chn":"3", "dev":"MUX8" }, + { "chn":"4", "dev":"MUX9" }, + { "chn":"5", "dev":"MUX10" } + ] + } + }, + "PSU2": + { + "dev_info": { "device_type":"PSU", "device_name":"PSU2", "device_parent":"MUX2" }, + "dev_attr": { "dev_idx":"2", "num_psu_fans":"1"}, + "i2c": + { + "interface": + [ + { "itf":"pmbus", "dev":"PSU2-PMBUS"}, + { "itf":"eeprom", "dev":"PSU2-EEPROM" } + ] + } + }, + + "PSU2-PMBUS": + { + "dev_info": {"device_type":"PSU-PMBUS", "device_name":"PSU2-PMBUS", "device_parent":"MUX2", "virt_parent":"PSU2"}, + "i2c": + { + "topo_info": { "parent_bus":"0xd", "dev_addr":"0x5b", "dev_type":"psu_pmbus"}, + "attr_list": + [ + { "attr_name":"psu_present", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_offset":"0x2", "attr_mask":"0x1", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"psu_power_good", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_offset":"0x2", "attr_mask":"0x4", "attr_cmpval":"0x4", "attr_len":"1"}, + { "attr_name":"psu_mfr_id", "attr_devaddr":"0x5b", "attr_devtype":"pmbus", "attr_offset":"0X99", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"10" }, + { "attr_name":"psu_fan_dir", "attr_devaddr":"0x5b", "attr_devtype":"pmbus", "attr_offset":"0xc3", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"5"}, + { "attr_name":"psu_v_out", "attr_devaddr":"0x5b", "attr_devtype":"pmbus", "attr_offset":"0x8b", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"}, + { "attr_name":"psu_i_out", "attr_devaddr":"0x5b", "attr_devtype":"pmbus", "attr_offset":"0x8c", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"}, + { "attr_name":"psu_p_out", "attr_devaddr":"0x5b", "attr_devtype":"pmbus", "attr_offset":"0x96", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"}, + { "attr_name":"psu_fan1_speed_rpm", "attr_devaddr":"0x5b", "attr_devtype":"pmbus", "attr_offset":"0x90", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"}, + { "attr_name":"psu_temp1_input", "attr_devaddr":"0x5b", "attr_devtype":"pmbus", "attr_offset":"0x8d", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"} + ] + } + }, + + "PSU2-EEPROM": + { + "dev_info": { "device_type":"PSU-EEPROM", "device_name":"PSU2-EEPROM", "device_parent":"MUX2", "virt_parent":"PSU2"}, + "i2c": + { + "topo_info":{ "parent_bus":"0xd", "dev_addr":"0x53", "dev_type":"psu_eeprom"}, + "attr_list": + [ + { "attr_name":"psu_model_name", "attr_devaddr":"0x53", "attr_devtype":"eeprom", "attr_offset":"0x15", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"11" }, + { "attr_name":"psu_serial_num", "attr_devaddr":"0x53", "attr_devtype":"eeprom", "attr_offset":"0x2e", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"17" } + + ] + } + }, + "PSU1": + { + "dev_info": { "device_type":"PSU", "device_name":"PSU1", "device_parent":"MUX3" }, + "dev_attr": { "dev_idx":"1", "num_psu_fans":"1"}, + "i2c": + { + "interface": + [ + { "itf":"pmbus", "dev":"PSU1-PMBUS"}, + { "itf":"eeprom", "dev":"PSU1-EEPROM" } + ] + } + }, + + "PSU1-PMBUS": + { + "dev_info": {"device_type":"PSU-PMBUS", "device_name":"PSU1-PMBUS", "device_parent":"MUX3", "virt_parent":"PSU1"}, + "i2c": + { + "topo_info": { "parent_bus":"0x11", "dev_addr":"0x59", "dev_type":"psu_pmbus"}, + "attr_list": + [ + { "attr_name":"psu_present", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_offset":"0x2", "attr_mask":"0x2", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"psu_power_good", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_offset":"0x2", "attr_mask":"0x8", "attr_cmpval":"0x8", "attr_len":"1"}, + { "attr_name":"psu_mfr_id", "attr_devaddr":"0x59", "attr_devtype":"pmbus", "attr_offset":"0X99", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"10" }, + { "attr_name":"psu_fan_dir", "attr_devaddr":"0x59", "attr_devtype":"pmbus", "attr_offset":"0xc3", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"5"}, + { "attr_name":"psu_v_out", "attr_devaddr":"0x59", "attr_devtype":"pmbus", "attr_offset":"0x8b", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"}, + { "attr_name":"psu_i_out", "attr_devaddr":"0x59", "attr_devtype":"pmbus", "attr_offset":"0x8c", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"}, + { "attr_name":"psu_p_out", "attr_devaddr":"0x59", "attr_devtype":"pmbus", "attr_offset":"0x96", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"}, + { "attr_name":"psu_fan1_speed_rpm", "attr_devaddr":"0x59", "attr_devtype":"pmbus", "attr_offset":"0x90", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"}, + { "attr_name":"psu_temp1_input", "attr_devaddr":"0x59", "attr_devtype":"pmbus", "attr_offset":"0x8d", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"} + ] + } + }, + "PSU1-EEPROM": + { + "dev_info": { "device_type":"PSU-EEPROM", "device_name":"PSU1-EEPROM", "device_parent":"MUX2", "virt_parent":"PSU1"}, + "i2c": + { + "topo_info":{ "parent_bus":"0x11", "dev_addr":"0x51", "dev_type":"psu_eeprom"}, + "attr_list": + [ + { "attr_name":"psu_model_name", "attr_devaddr":"0x51", "attr_devtype":"eeprom", "attr_offset":"0x15", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"11" }, + { "attr_name":"psu_serial_num", "attr_devaddr":"0x51", "attr_devtype":"eeprom", "attr_offset":"0x2e", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"17" } + ] + } + }, + "CPLD1": + { + "dev_info": { "device_type":"CPLD", "device_name":"CPLD1", "device_parent":"MUX3"}, + "i2c": + { + "topo_info": { "parent_bus":"0x12", "dev_addr":"0x60", "dev_type":"i2c_cpld"}, + "dev_attr":{} + } + }, + "CPLD2": + { + "dev_info": { "device_type":"CPLD", "device_name":"CPLD2", "device_parent":"MUX2"}, + "i2c": + { + "topo_info": { "parent_bus":"0xc", "dev_addr":"0x62", "dev_type":"i2c_cpld"}, + "dev_attr":{} + } + }, + "CPLD3": + { + "dev_info": { "device_type":"CPLD", "device_name":"CPLD3", "device_parent":"MUX3"}, + "i2c": + { + "topo_info": { "parent_bus":"0x13", "dev_addr":"0x64", "dev_type":"i2c_cpld"}, + "dev_attr":{} + } + }, + "TEMP1" : + { + "dev_info": { "device_type":"TEMP_SENSOR", "device_name":"TEMP1", "device_parent":"MUX2"}, + "i2c": + { + "topo_info": { "parent_bus":"0xf", "dev_addr":"0x48", "dev_type":"lm75"}, + "attr_list": + [ + { "attr_name": "temp1_high_threshold", "drv_attr_name":"temp1_max"}, + { "attr_name": "temp1_max_hyst"}, + { "attr_name": "temp1_input"} + ] + } + }, + "TEMP2" : + { + "dev_info": { "device_type":"TEMP_SENSOR", "device_name":"TEMP1", "device_parent":"MUX2"}, + "i2c": + { + "topo_info": { "parent_bus":"0xf", "dev_addr":"0x49", "dev_type":"lm75"}, + "attr_list": + [ + { "attr_name": "temp1_high_threshold", "drv_attr_name":"temp1_max"}, + { "attr_name": "temp1_max_hyst"}, + { "attr_name": "temp1_input"} + ] + } + }, + "TEMP3" : + { + "dev_info": { "device_type":"TEMP_SENSOR", "device_name":"TEMP1", "device_parent":"MUX2"}, + "i2c": + { + "topo_info": { "parent_bus":"0xf", "dev_addr":"0x4A", "dev_type":"lm75"}, + "attr_list": + [ + { "attr_name": "temp1_high_threshold", "drv_attr_name":"temp1_max"}, + { "attr_name": "temp1_max_hyst"}, + { "attr_name": "temp1_input"} + ] + } + }, + "TEMP4" : + { + "dev_info": { "device_type":"TEMP_SENSOR", "device_name":"TEMP1", "device_parent":"MUX2"}, + "i2c": + { + "topo_info": { "parent_bus":"0xf", "dev_addr":"0x4B", "dev_type":"lm75"}, + "attr_list": + [ + { "attr_name": "temp1_high_threshold", "drv_attr_name":"temp1_max"}, + { "attr_name": "temp1_max_hyst"}, + { "attr_name": "temp1_input"} + ] + } + }, + "FAN-CTRL": + { + "dev_info": { "device_type":"FAN", "device_name":"FAN-CTRL", "device_parent":"MUX2"}, + "i2c": + { + "topo_info": { "parent_bus":"0xb", "dev_addr":"0x66", "dev_type":"fan_ctrl"}, + "dev_attr": { "num_fantrays":"5"}, + "attr_list": + [ + { "attr_name":"fan1_present", "attr_devtype":"FAN-CTRL", "attr_offset":"0x0f", "attr_mask":"0x1", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"fan2_present", "attr_devtype":"FAN-CTRL", "attr_offset":"0x0f", "attr_mask":"0x1", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"fan3_present", "attr_devtype":"FAN-CTRL", "attr_offset":"0x0f", "attr_mask":"0x2", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"fan4_present", "attr_devtype":"FAN-CTRL", "attr_offset":"0x0f", "attr_mask":"0x2", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"fan5_present", "attr_devtype":"FAN-CTRL", "attr_offset":"0x0f", "attr_mask":"0x4", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"fan6_present", "attr_devtype":"FAN-CTRL", "attr_offset":"0x0f", "attr_mask":"0x4", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"fan7_present", "attr_devtype":"FAN-CTRL", "attr_offset":"0x0f", "attr_mask":"0x8", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"fan8_present", "attr_devtype":"FAN-CTRL", "attr_offset":"0x0f", "attr_mask":"0x8", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"fan9_present", "attr_devtype":"FAN-CTRL", "attr_offset":"0x0f", "attr_mask":"0x10", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"fan10_present", "attr_devtype":"FAN-CTRL", "attr_offset":"0x0f", "attr_mask":"0x10", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"fan11_present", "attr_devtype":"FAN-CTRL", "attr_offset":"0x0f", "attr_mask":"0x20", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"fan12_present", "attr_devtype":"FAN-CTRL", "attr_offset":"0x0f", "attr_mask":"0x20", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"fan1_direction", "attr_devtype":"FAN-CTRL", "attr_offset":"0x10", "attr_mask":"0x1", "attr_cmpval":"0x1", "attr_len":"1"}, + { "attr_name":"fan2_direction", "attr_devtype":"FAN-CTRL", "attr_offset":"0x10", "attr_mask":"0x1", "attr_cmpval":"0x1", "attr_len":"1"}, + { "attr_name":"fan3_direction", "attr_devtype":"FAN-CTRL", "attr_offset":"0x10", "attr_mask":"0x2", "attr_cmpval":"0x2", "attr_len":"1"}, + { "attr_name":"fan4_direction", "attr_devtype":"FAN-CTRL", "attr_offset":"0x10", "attr_mask":"0x2", "attr_cmpval":"0x2", "attr_len":"1"}, + { "attr_name":"fan5_direction", "attr_devtype":"FAN-CTRL", "attr_offset":"0x10", "attr_mask":"0x4", "attr_cmpval":"0x4", "attr_len":"1"}, + { "attr_name":"fan6_direction", "attr_devtype":"FAN-CTRL", "attr_offset":"0x10", "attr_mask":"0x4", "attr_cmpval":"0x4", "attr_len":"1"}, + { "attr_name":"fan7_direction", "attr_devtype":"FAN-CTRL", "attr_offset":"0x10", "attr_mask":"0x8", "attr_cmpval":"0x8", "attr_len":"1"}, + { "attr_name":"fan8_direction", "attr_devtype":"FAN-CTRL", "attr_offset":"0x10", "attr_mask":"0x8", "attr_cmpval":"0x8", "attr_len":"1"}, + { "attr_name":"fan9_direction", "attr_devtype":"FAN-CTRL", "attr_offset":"0x10", "attr_mask":"0x10", "attr_cmpval":"0x10", "attr_len":"1"}, + { "attr_name":"fan10_direction", "attr_devtype":"FAN-CTRL", "attr_offset":"0x10", "attr_mask":"0x10", "attr_cmpval":"0x10", "attr_len":"1"}, + { "attr_name":"fan11_direction", "attr_devtype":"FAN-CTRL", "attr_offset":"0x10", "attr_mask":"0x20", "attr_cmpval":"0x20", "attr_len":"1"}, + { "attr_name":"fan12_direction", "attr_devtype":"FAN-CTRL", "attr_offset":"0x10", "attr_mask":"0x20", "attr_cmpval":"0x20", "attr_len":"1"}, + { "attr_name":"fan1_input", "attr_devtype":"FAN-CTRL", "attr_offset":"0x12", "attr_mask":"0xFF", "attr_len":"1", "attr_mult":"100", "attr_is_divisor":0}, + { "attr_name":"fan2_input", "attr_devtype":"FAN-CTRL", "attr_offset":"0x22", "attr_mask":"0xFF", "attr_len":"1", "attr_mult":"100", "attr_is_divisor":0}, + { "attr_name":"fan3_input", "attr_devtype":"FAN-CTRL", "attr_offset":"0x13", "attr_mask":"0xFF", "attr_len":"1", "attr_mult":"100", "attr_is_divisor":0}, + { "attr_name":"fan4_input", "attr_devtype":"FAN-CTRL", "attr_offset":"0x23", "attr_mask":"0xFF", "attr_len":"1", "attr_mult":"100", "attr_is_divisor":0}, + { "attr_name":"fan5_input", "attr_devtype":"FAN-CTRL", "attr_offset":"0x14", "attr_mask":"0xFF", "attr_len":"1", "attr_mult":"100", "attr_is_divisor":0}, + { "attr_name":"fan6_input", "attr_devtype":"FAN-CTRL", "attr_offset":"0x24", "attr_mask":"0xFF", "attr_len":"1", "attr_mult":"100", "attr_is_divisor":0}, + { "attr_name":"fan7_input", "attr_devtype":"FAN-CTRL", "attr_offset":"0x15", "attr_mask":"0xFF", "attr_len":"1", "attr_mult":"100" , "attr_is_divisor":0}, + { "attr_name":"fan8_input", "attr_devtype":"FAN-CTRL", "attr_offset":"0x25", "attr_mask":"0xFF", "attr_len":"1", "attr_mult":"100" , "attr_is_divisor":0}, + { "attr_name":"fan9_input", "attr_devtype":"FAN-CTRL", "attr_offset":"0x16", "attr_mask":"0xFF", "attr_len":"1", "attr_mult":"100" , "attr_is_divisor":0}, + { "attr_name":"fan10_input", "attr_devtype":"FAN-CTRL", "attr_offset":"0x26", "attr_mask":"0xFF", "attr_len":"1", "attr_mult":"100" , "attr_is_divisor":0}, + { "attr_name":"fan11_input", "attr_devtype":"FAN-CTRL", "attr_offset":"0x17", "attr_mask":"0xFF", "attr_len":"1", "attr_mult":"100" , "attr_is_divisor":0}, + { "attr_name":"fan12_input", "attr_devtype":"FAN-CTRL", "attr_offset":"0x27", "attr_mask":"0xFF", "attr_len":"1", "attr_mult":"100" , "attr_is_divisor":0}, + { "attr_name":"fan1_pwm", "attr_devtype":"FAN-CTRL", "attr_offset":"0x11", "attr_mask":"0xF", "attr_len":"1" }, + { "attr_name":"fan2_pwm", "attr_devtype":"FAN-CTRL", "attr_offset":"0x11", "attr_mask":"0xF", "attr_len":"1" }, + { "attr_name":"fan3_pwm", "attr_devtype":"FAN-CTRL", "attr_offset":"0x11", "attr_mask":"0xF", "attr_len":"1" }, + { "attr_name":"fan4_pwm", "attr_devtype":"FAN-CTRL", "attr_offset":"0x11", "attr_mask":"0xF", "attr_len":"1" }, + { "attr_name":"fan5_pwm", "attr_devtype":"FAN-CTRL", "attr_offset":"0x11", "attr_mask":"0xF", "attr_len":"1" }, + { "attr_name":"fan6_pwm", "attr_devtype":"FAN-CTRL", "attr_offset":"0x11", "attr_mask":"0xF", "attr_len":"1" }, + { "attr_name":"fan7_pwm", "attr_devtype":"FAN-CTRL", "attr_offset":"0x11", "attr_mask":"0xF", "attr_len":"1" }, + { "attr_name":"fan8_pwm", "attr_devtype":"FAN-CTRL", "attr_offset":"0x11", "attr_mask":"0xF", "attr_len":"1" }, + { "attr_name":"fan9_pwm", "attr_devtype":"FAN-CTRL", "attr_offset":"0x11", "attr_mask":"0xF", "attr_len":"1" }, + { "attr_name":"fan10_pwm", "attr_devtype":"FAN-CTRL", "attr_offset":"0x11", "attr_mask":"0xF", "attr_len":"1" }, + { "attr_name":"fan11_pwm", "attr_devtype":"FAN-CTRL", "attr_offset":"0x11", "attr_mask":"0xF", "attr_len":"1" }, + { "attr_name":"fan12_pwm", "attr_devtype":"FAN-CTRL", "attr_offset":"0x11", "attr_mask":"0xF", "attr_len":"1" } + ] + } + }, + "PORT57": + { + "dev_info": { "device_type":"SFP", "device_name":"PORT57", "device_parent":"MUX3"}, + "dev_attr": { "dev_idx":"57"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT57-EEPROM" }, + { "itf":"control", "dev":"PORT57-CTRL" } + ] + } + }, + "PORT57-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT57-EEPROM", "device_parent":"MUX3", "virt_parent":"PORT57"}, + "i2c": + { + "topo_info": { "parent_bus":"0x16", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT57-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT57-CTRL", "device_parent":"MUX3", "virt_parent":"PORT57"}, + "i2c": + { + "topo_info": { "parent_bus":"0x16", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x12", "attr_mask":"0x2", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x1c", "attr_mask":"0x2", "attr_cmpval":"0x4", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x16", "attr_mask":"0x2", "attr_cmpval":"0x4", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x19", "attr_mask":"0x2", "attr_cmpval":"0x4", "attr_len":"1"} + ] + } + }, + "PORT58": + { + "dev_info": { "device_type":"SFP", "device_name":"PORT58", "device_parent":"MUX3"}, + "dev_attr": { "dev_idx":"58"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT58-EEPROM" }, + { "itf":"control", "dev":"PORT58-CTRL" } + ] + } + }, + "PORT58-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT58-EEPROM", "device_parent":"MUX3", "virt_parent":"PORT58"}, + "i2c": + { + "topo_info": { "parent_bus":"0x17", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT58-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT58-CTRL", "device_parent":"MUX3", "virt_parent":"PORT58"}, + "i2c": + { + "topo_info": { "parent_bus":"0x17", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x12", "attr_mask":"0x3", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x1c", "attr_mask":"0x3", "attr_cmpval":"0x8", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x16", "attr_mask":"0x3", "attr_cmpval":"0x8", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x19", "attr_mask":"0x3", "attr_cmpval":"0x8", "attr_len":"1"} + ] + } + }, + "MUX5": + { + "dev_info": { "device_type":"MUX", "device_name":"MUX5", "device_parent":"MUX4"}, + "i2c": + { + "topo_info": { "parent_bus":"0x21", "dev_addr":"0x71", "dev_type":"pca9548"}, + "dev_attr": { "virt_bus":"0x29", "idle_state":"-2"}, + "channel": + [ + { "chn":"0", "dev":"PORT2" }, + { "chn":"1", "dev":"PORT1" }, + { "chn":"2", "dev":"PORT4" }, + { "chn":"3", "dev":"PORT3" }, + { "chn":"4", "dev":"PORT6" }, + { "chn":"5", "dev":"PORT7" }, + { "chn":"6", "dev":"PORT5" }, + { "chn":"7", "dev":"PORT9" } + ] + } + }, + "MUX6": + { + "dev_info": { "device_type":"MUX", "device_name":"MUX6", "device_parent":"MUX4"}, + "i2c": + { + "topo_info": { "parent_bus":"0x22", "dev_addr":"0x72", "dev_type":"pca9548"}, + "dev_attr": { "virt_bus":"0x31", "idle_state":"-2"}, + "channel": + [ + { "chn":"0", "dev":"PORT10" }, + { "chn":"1", "dev":"PORT8" }, + { "chn":"2", "dev":"PORT12" }, + { "chn":"3", "dev":"PORT11" }, + { "chn":"4", "dev":"PORT13" }, + { "chn":"5", "dev":"PORT16" }, + { "chn":"6", "dev":"PORT15" }, + { "chn":"7", "dev":"PORT14" } + ] + } + }, + "MUX7": + { + "dev_info": { "device_type":"MUX", "device_name":"MUX7", "device_parent":"MUX4"}, + "i2c": + { + "topo_info": { "parent_bus":"0x23", "dev_addr":"0x73", "dev_type":"pca9548"}, + "dev_attr": { "virt_bus":"0x39", "idle_state":"-2"}, + "channel": + [ + { "chn":"0", "dev":"PORT18" }, + { "chn":"1", "dev":"PORT17" }, + { "chn":"2", "dev":"PORT20" }, + { "chn":"3", "dev":"PORT19" }, + { "chn":"4", "dev":"PORT21" }, + { "chn":"5", "dev":"PORT23" }, + { "chn":"6", "dev":"PORT22" }, + { "chn":"7", "dev":"PORT24" } + ] + } + }, + "MUX8": + { + "dev_info": { "device_type":"MUX", "device_name":"MUX8", "device_parent":"MUX4"}, + "i2c": + { + "topo_info": { "parent_bus":"0x24", "dev_addr":"0x74", "dev_type":"pca9548"}, + "dev_attr": { "virt_bus":"0x41", "idle_state":"-2"}, + "channel": + [ + { "chn":"0", "dev":"PORT27" }, + { "chn":"1", "dev":"PORT25" }, + { "chn":"2", "dev":"PORT28" }, + { "chn":"3", "dev":"PORT26" }, + { "chn":"4", "dev":"PORT29" }, + { "chn":"5", "dev":"PORT32" }, + { "chn":"6", "dev":"PORT30" }, + { "chn":"7", "dev":"PORT31" } + ] + } + }, + "MUX9": + { + "dev_info": { "device_type":"MUX", "device_name":"MUX9", "device_parent":"MUX4"}, + "i2c": + { + "topo_info": { "parent_bus":"0x25", "dev_addr":"0x75", "dev_type":"pca9548"}, + "dev_attr": { "virt_bus":"0x49", "idle_state":"-2"}, + "channel": + [ + { "chn":"0", "dev":"PORT34" }, + { "chn":"1", "dev":"PORT33" }, + { "chn":"2", "dev":"PORT36" }, + { "chn":"3", "dev":"PORT35" }, + { "chn":"4", "dev":"PORT37" }, + { "chn":"5", "dev":"PORT39" }, + { "chn":"6", "dev":"PORT38" }, + { "chn":"7", "dev":"PORT40" } + ] + } + }, + "MUX10": + { + "dev_info": { "device_type":"MUX", "device_name":"MUX10", "device_parent":"MUX4"}, + "i2c": + { + "topo_info": { "parent_bus":"0x26", "dev_addr":"0x76", "dev_type":"pca9548"}, + "dev_attr": { "virt_bus":"0x51", "idle_state":"-2"}, + "channel": + [ + { "chn":"0", "dev":"PORT41" }, + { "chn":"1", "dev":"PORT42" }, + { "chn":"2", "dev":"PORT45" }, + { "chn":"3", "dev":"PORT43" }, + { "chn":"4", "dev":"PORT44" }, + { "chn":"5", "dev":"PORT48" }, + { "chn":"6", "dev":"PORT46" }, + { "chn":"7", "dev":"PORT47" } + ] + } + }, + "MUX11": + { + "dev_info": { "device_type":"MUX", "device_name":"MUX11", "device_parent":"MUX3"}, + "i2c": + { + "topo_info": { "parent_bus":"0x18", "dev_addr":"0x72", "dev_type":"pca9548"}, + "dev_attr": { "virt_bus":"0x19", "idle_state":"-2"}, + "channel": + [ + { "chn":"0", "dev":"PORT49" }, + { "chn":"1", "dev":"PORT50" }, + { "chn":"2", "dev":"PORT51" }, + { "chn":"3", "dev":"PORT52" }, + { "chn":"4", "dev":"PORT53" }, + { "chn":"5", "dev":"PORT54" }, + { "chn":"6", "dev":"PORT55" }, + { "chn":"7", "dev":"PORT56" } + ] + } + }, + + + + "PORT2": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT2", "device_parent":"MUX5"}, + "dev_attr": { "dev_idx":"2"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT2-EEPROM" }, + { "itf":"control", "dev":"PORT2-CTRL" } + ] + } + }, + "PORT2-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT2-EEPROM", "device_parent":"MUX5", "virt_parent":"PORT2"}, + "i2c": + { + "topo_info": { "parent_bus":"0x29", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT2-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT2-CTRL", "device_parent":"MUX5", "virt_parent":"PORT2"}, + "i2c": + { + "topo_info": { "parent_bus":"0x29", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0xF", "attr_mask":"0x1", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x3", "attr_mask":"0x1", "attr_cmpval":"0x2", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x62", "attr_devtype":"cpld","attr_devname":"CPLD2", "attr_offset":"0x7", "attr_mask":"0x1", "attr_cmpval":"0x2", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0xb", "attr_mask":"0x1", "attr_cmpval":"0x2", "attr_len":"1"} + ] + } + }, + "PORT1": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT1", "device_parent":"MUX5"}, + "dev_attr": { "dev_idx":"1"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT1-EEPROM" }, + { "itf":"control", "dev":"PORT1-CTRL" } + ] + } + }, + "PORT1-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT1-EEPROM", "device_parent":"MUX5", "virt_parent":"PORT1"}, + "i2c": + { + "topo_info": { "parent_bus":"0x2a", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT1-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT1-CTRL", "device_parent":"MUX5", "virt_parent":"PORT1"}, + "i2c": + { + "topo_info": { "parent_bus":"0x2a", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0xF", "attr_mask":"0x0", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x3", "attr_mask":"0x0", "attr_cmpval":"0x1", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x7", "attr_mask":"0x0", "attr_cmpval":"0x1", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0xb", "attr_mask":"0x0", "attr_cmpval":"0x1", "attr_len":"1"} + ] + } + }, + "PORT4": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT4", "device_parent":"MUX5"}, + "dev_attr": { "dev_idx":"4"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT4-EEPROM" }, + { "itf":"control", "dev":"PORT4-CTRL" } + ] + } + }, + "PORT4-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT4-EEPROM", "device_parent":"MUX5", "virt_parent":"PORT4"}, + "i2c": + { + "topo_info": { "parent_bus":"0x2b", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT4-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT4-CTRL", "device_parent":"MUX5", "virt_parent":"PORT4"}, + "i2c": + { + "topo_info": { "parent_bus":"0x2b", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0xF", "attr_mask":"0x3", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x3", "attr_mask":"0x3", "attr_cmpval":"0x8", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x7", "attr_mask":"0x3", "attr_cmpval":"0x8", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0xB", "attr_mask":"0x3", "attr_cmpval":"0x8", "attr_len":"1"} + ] + } + }, + "PORT3": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT3", "device_parent":"MUX5"}, + "dev_attr": { "dev_idx":"3"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT3-EEPROM" }, + { "itf":"control", "dev":"PORT3-CTRL" } + ] + } + }, + "PORT3-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT3-EEPROM", "device_parent":"MUX5", "virt_parent":"PORT3"}, + "i2c": + { + "topo_info": { "parent_bus":"0x2c", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT3-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT3-CTRL", "device_parent":"MUX5", "virt_parent":"PORT3"}, + "i2c": + { + "topo_info": { "parent_bus":"0x2c", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0xF", "attr_mask":"0x2", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x3", "attr_mask":"0x2", "attr_cmpval":"0x4", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x7", "attr_mask":"0x2", "attr_cmpval":"0x4", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0xB", "attr_mask":"0x2", "attr_cmpval":"0x4", "attr_len":"1"} + ] + } + }, + "PORT6": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT6", "device_parent":"MUX5"}, + "dev_attr": { "dev_idx":"6"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT6-EEPROM" }, + { "itf":"control", "dev":"PORT6-CTRL" } + ] + } + }, + "PORT6-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT6-EEPROM", "device_parent":"MUX5", "virt_parent":"PORT6"}, + "i2c": + { + "topo_info": { "parent_bus":"0x2d", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT6-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT6-CTRL", "device_parent":"MUX5", "virt_parent":"PORT6"}, + "i2c": + { + "topo_info": { "parent_bus":"0x2d", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0xF", "attr_mask":"0x5", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x3", "attr_mask":"0x5", "attr_cmpval":"0x20", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x62", "attr_devtype":"cpld","attr_devname":"CPLD2", "attr_offset":"0x7", "attr_mask":"0x5", "attr_cmpval":"0x20", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0xB", "attr_mask":"0x5", "attr_cmpval":"0x20", "attr_len":"1"} + ] + } + }, + "PORT7": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT7", "device_parent":"MUX5"}, + "dev_attr": { "dev_idx":"7"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT7-EEPROM" }, + { "itf":"control", "dev":"PORT7-CTRL" } + ] + } + }, + "PORT7-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT7-EEPROM", "device_parent":"MUX5", "virt_parent":"PORT7"}, + "i2c": + { + "topo_info": { "parent_bus":"0x2e", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT7-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT7-CTRL", "device_parent":"MUX5", "virt_parent":"PORT7"}, + "i2c": + { + "topo_info": { "parent_bus":"0x2e", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0xF", "attr_mask":"0x6", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x3", "attr_mask":"0x6", "attr_cmpval":"0x40", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x62", "attr_devtype":"cpld","attr_devname":"CPLD2", "attr_offset":"0x7", "attr_mask":"0x6", "attr_cmpval":"0x40", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0xB", "attr_mask":"0x6", "attr_cmpval":"0x40", "attr_len":"1"} + ] + } + }, + "PORT5": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT5", "device_parent":"MUX5"}, + "dev_attr": { "dev_idx":"5"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT5-EEPROM" }, + { "itf":"control", "dev":"PORT5-CTRL" } + ] + } + }, + "PORT5-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT5-EEPROM", "device_parent":"MUX5", "virt_parent":"PORT5"}, + "i2c": + { + "topo_info": { "parent_bus":"0x2f", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT5-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT5-CTRL", "device_parent":"MUX5", "virt_parent":"PORT5"}, + "i2c": + { + "topo_info": { "parent_bus":"0x2f", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0xF", "attr_mask":"0x4", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x3", "attr_mask":"0x4", "attr_cmpval":"0x10", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x7", "attr_mask":"0x4", "attr_cmpval":"0x10", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2","attr_offset":"0xB", "attr_mask":"0x4", "attr_cmpval":"0x10", "attr_len":"1"} + ] + } + }, + "PORT9": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT9", "device_parent":"MUX5"}, + "dev_attr": { "dev_idx":"9"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT9-EEPROM" }, + { "itf":"control", "dev":"PORT9-CTRL" } + ] + } + }, + "PORT9-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT9-EEPROM", "device_parent":"MUX5", "virt_parent":"PORT9"}, + "i2c": + { + "topo_info": { "parent_bus":"0x30", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT9-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT9-CTRL", "device_parent":"MUX5", "virt_parent":"PORT9"}, + "i2c": + { + "topo_info": { "parent_bus":"0x30", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x10", "attr_mask":"0x0", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x4", "attr_mask":"0x0", "attr_cmpval":"0x1", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x62", "attr_devtype":"cpld","attr_devname":"CPLD2", "attr_offset":"0x8", "attr_mask":"0x0", "attr_cmpval":"0x1", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0xC", "attr_mask":"0x0", "attr_cmpval":"0x1", "attr_len":"1"} + ] + } + }, + "PORT10": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT10", "device_parent":"MUX6"}, + "dev_attr": { "dev_idx":"10"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT10-EEPROM" }, + { "itf":"control", "dev":"PORT10-CTRL" } + ] + } + }, + "PORT10-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT10-EEPROM", "device_parent":"MUX6", "virt_parent":"PORT10"}, + "i2c": + { + "topo_info": { "parent_bus":"0x31", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT10-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT10-CTRL", "device_parent":"MUX6", "virt_parent":"PORT10"}, + "i2c": + { + "topo_info": { "parent_bus":"0x31", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x10", "attr_mask":"0x1", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x4", "attr_mask":"0x1", "attr_cmpval":"0x2", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x62", "attr_devtype":"cpld","attr_devname":"CPLD2", "attr_offset":"0x8", "attr_mask":"0x1", "attr_cmpval":"0x2", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0xC", "attr_mask":"0x1", "attr_cmpval":"0x2", "attr_len":"1"} + ] + } + }, + "PORT8": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT8", "device_parent":"MUX6"}, + "dev_attr": { "dev_idx":"8"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT8-EEPROM" }, + { "itf":"control", "dev":"PORT8-CTRL" } + ] + } + }, + "PORT8-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT8-EEPROM", "device_parent":"MUX6", "virt_parent":"PORT8"}, + "i2c": + { + "topo_info": { "parent_bus":"0x32", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT8-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT8-CTRL", "device_parent":"MUX6", "virt_parent":"PORT8"}, + "i2c": + { + "topo_info": { "parent_bus":"0x32", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0xF", "attr_mask":"0x7", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x3", "attr_mask":"0x7", "attr_cmpval":"0x80", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x7", "attr_mask":"0x7", "attr_cmpval":"0x80", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0xB", "attr_mask":"0x7", "attr_cmpval":"0x80", "attr_len":"1"} + ] + } + }, + "PORT12": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT12", "device_parent":"MUX6"}, + "dev_attr": { "dev_idx":"12"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT12-EEPROM" }, + { "itf":"control", "dev":"PORT12-CTRL" } + ] + } + }, + "PORT12-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT12-EEPROM", "device_parent":"MUX6", "virt_parent":"PORT12"}, + "i2c": + { + "topo_info": { "parent_bus":"0x33", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT12-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT12-CTRL", "device_parent":"MUX6", "virt_parent":"PORT12"}, + "i2c": + { + "topo_info": { "parent_bus":"0x33", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x10", "attr_mask":"0x3", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x4", "attr_mask":"0x3", "attr_cmpval":"0x8", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x8", "attr_mask":"0x3", "attr_cmpval":"0x8", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0xC", "attr_mask":"0x3", "attr_cmpval":"0x8", "attr_len":"1"} + ] + } + }, + "PORT11": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT11", "device_parent":"MUX6"}, + "dev_attr": { "dev_idx":"11"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT11-EEPROM" }, + { "itf":"control", "dev":"PORT11-CTRL" } + ] + } + }, + "PORT11-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT11-EEPROM", "device_parent":"MUX6", "virt_parent":"PORT11"}, + "i2c": + { + "topo_info": { "parent_bus":"0x34", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT11-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT11-CTRL", "device_parent":"MUX6", "virt_parent":"PORT11"}, + "i2c": + { + "topo_info": { "parent_bus":"0x34", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x10", "attr_mask":"0x2", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x4", "attr_mask":"0x2", "attr_cmpval":"0x4", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x8", "attr_mask":"0x2", "attr_cmpval":"0x4", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0xC", "attr_mask":"0x2", "attr_cmpval":"0x4", "attr_len":"1"} + ] + } + }, + "PORT13": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT13", "device_parent":"MUX6"}, + "dev_attr": { "dev_idx":"13"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT13-EEPROM" }, + { "itf":"control", "dev":"PORT13-CTRL" } + ] + } + }, + "PORT13-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT13-EEPROM", "device_parent":"MUX6", "virt_parent":"PORT13"}, + "i2c": + { + "topo_info": { "parent_bus":"0x35", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT13-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT13-CTRL", "device_parent":"MUX6", "virt_parent":"PORT13"}, + "i2c": + { + "topo_info": { "parent_bus":"0x35", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x10", "attr_mask":"0x4", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x4", "attr_mask":"0x4", "attr_cmpval":"0x10", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x8", "attr_mask":"0x4", "attr_cmpval":"0x10", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0xC", "attr_mask":"0x4", "attr_cmpval":"0x10", "attr_len":"1"} + ] + } + }, + "PORT16": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT16", "device_parent":"MUX6"}, + "dev_attr": { "dev_idx":"16"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT16-EEPROM" }, + { "itf":"control", "dev":"PORT16-CTRL" } + ] + } + }, + "PORT16-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT16-EEPROM", "device_parent":"MUX6", "virt_parent":"PORT16"}, + "i2c": + { + "topo_info": { "parent_bus":"0x36", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT16-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT16-CTRL", "device_parent":"MUX6", "virt_parent":"PORT16"}, + "i2c": + { + "topo_info": { "parent_bus":"0x36", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x10", "attr_mask":"0x7", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x4", "attr_mask":"0x7", "attr_cmpval":"0x80", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x8", "attr_mask":"0x7", "attr_cmpval":"0x80", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0xC", "attr_mask":"0x7", "attr_cmpval":"0x80", "attr_len":"1"} + ] + } + }, + "PORT15": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT15", "device_parent":"MUX6"}, + "dev_attr": { "dev_idx":"15"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT15-EEPROM" }, + { "itf":"control", "dev":"PORT15-CTRL" } + ] + } + }, + "PORT15-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT15-EEPROM", "device_parent":"MUX6", "virt_parent":"PORT15"}, + "i2c": + { + "topo_info": { "parent_bus":"0x37", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT15-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT15-CTRL", "device_parent":"MUX6", "virt_parent":"PORT15"}, + "i2c": + { + "topo_info": { "parent_bus":"0x37", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x10", "attr_mask":"0x6", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x4", "attr_mask":"0x6", "attr_cmpval":"0x40", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x8", "attr_mask":"0x6", "attr_cmpval":"0x40", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0xC", "attr_mask":"0x6", "attr_cmpval":"0x40", "attr_len":"1"} + ] + } + }, + "PORT14": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT14", "device_parent":"MUX6"}, + "dev_attr": { "dev_idx":"14"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT14-EEPROM" }, + { "itf":"control", "dev":"PORT14-CTRL" } + ] + } + }, + "PORT14-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT14-EEPROM", "device_parent":"MUX6", "virt_parent":"PORT14"}, + "i2c": + { + "topo_info": { "parent_bus":"0x38", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT14-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT14-CTRL", "device_parent":"MUX6", "virt_parent":"PORT14"}, + "i2c": + { + "topo_info": { "parent_bus":"0x38", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x10", "attr_mask":"0x5", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x4", "attr_mask":"0x5", "attr_cmpval":"0x20", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x8", "attr_mask":"0x5", "attr_cmpval":"0x20", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0xC", "attr_mask":"0x5", "attr_cmpval":"0x20", "attr_len":"1"} + ] + } + }, + "PORT18": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT18", "device_parent":"MUX7"}, + "dev_attr": { "dev_idx":"18"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT18-EEPROM" }, + { "itf":"control", "dev":"PORT18-CTRL" } + ] + } + }, + "PORT18-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT18-EEPROM", "device_parent":"MUX7", "virt_parent":"PORT18"}, + "i2c": + { + "topo_info": { "parent_bus":"0x39", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT18-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT18-CTRL", "device_parent":"MUX7", "virt_parent":"PORT18"}, + "i2c": + { + "topo_info": { "parent_bus":"0x39", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x11", "attr_mask":"0x1", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x5", "attr_mask":"0x1", "attr_cmpval":"0x2", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x9", "attr_mask":"0x1", "attr_cmpval":"0x2", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0xD", "attr_mask":"0x1", "attr_cmpval":"0x2", "attr_len":"1"} + ] + } + }, + + "PORT17": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT17", "device_parent":"MUX7"}, + "dev_attr": { "dev_idx":"17"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT17-EEPROM" }, + { "itf":"control", "dev":"PORT17-CTRL" } + ] + } + }, + "PORT17-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT17-EEPROM", "device_parent":"MUX7", "virt_parent":"PORT17"}, + "i2c": + { + "topo_info": { "parent_bus":"0x3a", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT17-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT17-CTRL", "device_parent":"MUX7", "virt_parent":"PORT17"}, + "i2c": + { + "topo_info": { "parent_bus":"0x3a", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x11", "attr_mask":"0x0", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x5", "attr_mask":"0x0", "attr_cmpval":"0x1", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x9", "attr_mask":"0x0", "attr_cmpval":"0x1", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0xD", "attr_mask":"0x0", "attr_cmpval":"0x1", "attr_len":"1"} + ] + } + }, + + "PORT20": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT20", "device_parent":"MUX7"}, + "dev_attr": { "dev_idx":"20"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT20-EEPROM" }, + { "itf":"control", "dev":"PORT20-CTRL" } + ] + } + }, + "PORT20-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT20-EEPROM", "device_parent":"MUX7", "virt_parent":"PORT20"}, + "i2c": + { + "topo_info": { "parent_bus":"0x3b", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT20-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT20-CTRL", "device_parent":"MUX7", "virt_parent":"PORT20"}, + "i2c": + { + "topo_info": { "parent_bus":"0x3b", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x11", "attr_mask":"0x3", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x5", "attr_mask":"0x3", "attr_cmpval":"0x8", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x9", "attr_mask":"0x3", "attr_cmpval":"0x8", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0xD", "attr_mask":"0x3", "attr_cmpval":"0x8", "attr_len":"1"} + ] + } + }, + + "PORT19": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT19", "device_parent":"MUX7"}, + "dev_attr": { "dev_idx":"19"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT19-EEPROM" }, + { "itf":"control", "dev":"PORT19-CTRL" } + ] + } + }, + "PORT19-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT19-EEPROM", "device_parent":"MUX7", "virt_parent":"PORT19"}, + "i2c": + { + "topo_info": { "parent_bus":"0x3c", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT19-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT19-CTRL", "device_parent":"MUX7", "virt_parent":"PORT19"}, + "i2c": + { + "topo_info": { "parent_bus":"0x3c", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x11", "attr_mask":"0x2", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x5", "attr_mask":"0x2", "attr_cmpval":"0x4", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x9", "attr_mask":"0x2", "attr_cmpval":"0x4", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0xD", "attr_mask":"0x2", "attr_cmpval":"0x4", "attr_len":"1"} + ] + } + }, + + "PORT21": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT21", "device_parent":"MUX7"}, + "dev_attr": { "dev_idx":"21"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT21-EEPROM" }, + { "itf":"control", "dev":"PORT21-CTRL" } + ] + } + }, + "PORT21-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT21-EEPROM", "device_parent":"MUX7", "virt_parent":"PORT21"}, + "i2c": + { + "topo_info": { "parent_bus":"0x3d", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT21-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT21-CTRL", "device_parent":"MUX7", "virt_parent":"PORT21"}, + "i2c": + { + "topo_info": { "parent_bus":"0x3d", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x11", "attr_mask":"0x4", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x5", "attr_mask":"0x4", "attr_cmpval":"0x10", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x9", "attr_mask":"0x4", "attr_cmpval":"0x10", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0xD", "attr_mask":"0x4", "attr_cmpval":"0x10", "attr_len":"1"} + ] + } + }, + + "PORT23": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT23", "device_parent":"MUX7"}, + "dev_attr": { "dev_idx":"23"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT23-EEPROM" }, + { "itf":"control", "dev":"PORT23-CTRL" } + ] + } + }, + "PORT23-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT23-EEPROM", "device_parent":"MUX7", "virt_parent":"PORT23"}, + "i2c": + { + "topo_info": { "parent_bus":"0x3e", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT23-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT23-CTRL", "device_parent":"MUX7", "virt_parent":"PORT23"}, + "i2c": + { + "topo_info": { "parent_bus":"0x3e", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x11", "attr_mask":"0x6", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x5", "attr_mask":"0x6", "attr_cmpval":"0x40", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x9", "attr_mask":"0x6", "attr_cmpval":"0x40", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0xD", "attr_mask":"0x6", "attr_cmpval":"0x40", "attr_len":"1"} + ] + } + }, + + "PORT22": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT22", "device_parent":"MUX7"}, + "dev_attr": { "dev_idx":"22"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT22-EEPROM" }, + { "itf":"control", "dev":"PORT22-CTRL" } + ] + } + }, + "PORT22-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT22-EEPROM", "device_parent":"MUX7", "virt_parent":"PORT22"}, + "i2c": + { + "topo_info": { "parent_bus":"0x3f", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT22-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT22-CTRL", "device_parent":"MUX7", "virt_parent":"PORT22"}, + "i2c": + { + "topo_info": { "parent_bus":"0x3f", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x11", "attr_mask":"0x5", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x5", "attr_mask":"0x5", "attr_cmpval":"0x20", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x9", "attr_mask":"0x5", "attr_cmpval":"0x20", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0xD", "attr_mask":"0x5", "attr_cmpval":"0x20", "attr_len":"1"} + ] + } + }, + "PORT24": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT24", "device_parent":"MUX7"}, + "dev_attr": { "dev_idx":"24"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT24-EEPROM" }, + { "itf":"control", "dev":"PORT24-CTRL" } + ] + } + }, + "PORT24-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT24-EEPROM", "device_parent":"MUX7", "virt_parent":"PORT24"}, + "i2c": + { + "topo_info": { "parent_bus":"0x40", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT24-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT24-CTRL", "device_parent":"MUX7", "virt_parent":"PORT24"}, + "i2c": + { + "topo_info": { "parent_bus":"0x40", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x11", "attr_mask":"0x7", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x5", "attr_mask":"0x7", "attr_cmpval":"0x80", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x9", "attr_mask":"0x7", "attr_cmpval":"0x80", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0xD", "attr_mask":"0x7", "attr_cmpval":"0x80", "attr_len":"1"} + ] + } + }, + "PORT27": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT27", "device_parent":"MUX8"}, + "dev_attr": { "dev_idx":"27"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT27-EEPROM" }, + { "itf":"control", "dev":"PORT27-CTRL" } + ] + } + }, + "PORT27-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT27-EEPROM", "device_parent":"MUX8", "virt_parent":"PORT27"}, + "i2c": + { + "topo_info": { "parent_bus":"0x41", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT27-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT27-CTRL", "device_parent":"MUX8", "virt_parent":"PORT27"}, + "i2c": + { + "topo_info": { "parent_bus":"0x41", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x12", "attr_mask":"0x2", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x6", "attr_mask":"0x2", "attr_cmpval":"0x4", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0xA", "attr_mask":"0x2", "attr_cmpval":"0x4", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0xE", "attr_mask":"0x2", "attr_cmpval":"0x4", "attr_len":"1"} + ] + } + }, + "PORT25": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT25", "device_parent":"MUX8"}, + "dev_attr": { "dev_idx":"25"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT25-EEPROM" }, + { "itf":"control", "dev":"PORT25-CTRL" } + ] + } + }, + "PORT25-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT25-EEPROM", "device_parent":"MUX8", "virt_parent":"PORT25"}, + "i2c": + { + "topo_info": { "parent_bus":"0x42", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT25-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT25-CTRL", "device_parent":"MUX8", "virt_parent":"PORT25"}, + "i2c": + { + "topo_info": { "parent_bus":"0x42", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x12", "attr_mask":"0x0", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x6", "attr_mask":"0x0", "attr_cmpval":"0x1", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0xA", "attr_mask":"0x0", "attr_cmpval":"0x1", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0xE", "attr_mask":"0x0", "attr_cmpval":"0x1", "attr_len":"1"} + ] + } + }, + + "PORT28": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT28", "device_parent":"MUX8"}, + "dev_attr": { "dev_idx":"28"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT28-EEPROM" }, + { "itf":"control", "dev":"PORT28-CTRL" } + ] + } + }, + "PORT28-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT28-EEPROM", "device_parent":"MUX8", "virt_parent":"PORT28"}, + "i2c": + { + "topo_info": { "parent_bus":"0x43", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT28-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT28-CTRL", "device_parent":"MUX8", "virt_parent":"PORT28"}, + "i2c": + { + "topo_info": { "parent_bus":"0x43", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x12", "attr_mask":"0x3", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x6", "attr_mask":"0x3", "attr_cmpval":"0x8", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0xA", "attr_mask":"0x3", "attr_cmpval":"0x8", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0xE", "attr_mask":"0x3", "attr_cmpval":"0x8", "attr_len":"1"} + ] + } + }, + "PORT26": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT26", "device_parent":"MUX8"}, + "dev_attr": { "dev_idx":"26"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT26-EEPROM" }, + { "itf":"control", "dev":"PORT26-CTRL" } + ] + } + }, + "PORT26-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT26-EEPROM", "device_parent":"MUX8", "virt_parent":"PORT26"}, + "i2c": + { + "topo_info": { "parent_bus":"0x44", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT26-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT26-CTRL", "device_parent":"MUX8", "virt_parent":"PORT26"}, + "i2c": + { + "topo_info": { "parent_bus":"0x44", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x12", "attr_mask":"0x1", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x6", "attr_mask":"0x1", "attr_cmpval":"0x2", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0xA", "attr_mask":"0x1", "attr_cmpval":"0x2", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0xE", "attr_mask":"0x1", "attr_cmpval":"0x2", "attr_len":"1"} + ] + } + }, + "PORT29": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT29", "device_parent":"MUX8"}, + "dev_attr": { "dev_idx":"29"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT29-EEPROM" }, + { "itf":"control", "dev":"PORT29-CTRL" } + ] + } + }, + "PORT29-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT29-EEPROM", "device_parent":"MUX8", "virt_parent":"PORT29"}, + "i2c": + { + "topo_info": { "parent_bus":"0x45", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT29-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT29-CTRL", "device_parent":"MUX8", "virt_parent":"PORT29"}, + "i2c": + { + "topo_info": { "parent_bus":"0x45", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x12", "attr_mask":"0x4", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x6", "attr_mask":"0x4", "attr_cmpval":"0x10", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0xA", "attr_mask":"0x4", "attr_cmpval":"0x10", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0xE", "attr_mask":"0x4", "attr_cmpval":"0x10", "attr_len":"1"} + ] + } + }, + + "PORT32": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT32", "device_parent":"MUX8"}, + "dev_attr": { "dev_idx":"32"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT32-EEPROM" }, + { "itf":"control", "dev":"PORT32-CTRL" } + ] + } + }, + "PORT32-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT32-EEPROM", "device_parent":"MUX8", "virt_parent":"PORT32"}, + "i2c": + { + "topo_info": { "parent_bus":"0x46", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT32-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT32-CTRL", "device_parent":"MUX8", "virt_parent":"PORT32"}, + "i2c": + { + "topo_info": { "parent_bus":"0x46", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x10", "attr_mask":"0x1", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x1A", "attr_mask":"0x1", "attr_cmpval":"0x2", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x14", "attr_mask":"0x1", "attr_cmpval":"0x2", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x17", "attr_mask":"0x1", "attr_cmpval":"0x2", "attr_len":"1"} + ] + } + }, + "PORT30": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT30", "device_parent":"MUX8"}, + "dev_attr": { "dev_idx":"30"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT30-EEPROM" }, + { "itf":"control", "dev":"PORT30-CTRL" } + ] + } + }, + "PORT30-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT30-EEPROM", "device_parent":"MUX8", "virt_parent":"PORT30"}, + "i2c": + { + "topo_info": { "parent_bus":"0x47", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT30-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT30-CTRL", "device_parent":"MUX8", "virt_parent":"PORT30"}, + "i2c": + { + "topo_info": { "parent_bus":"0x47", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x12", "attr_mask":"0x5", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0x6", "attr_mask":"0x5", "attr_cmpval":"0x20", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0xA", "attr_mask":"0x5", "attr_cmpval":"0x20", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x62", "attr_devtype":"cpld", "attr_devname":"CPLD2", "attr_offset":"0xE", "attr_mask":"0x5", "attr_cmpval":"0x20", "attr_len":"1"} + ] + } + }, + + "PORT31": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT31", "device_parent":"MUX8"}, + "dev_attr": { "dev_idx":"31"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT31-EEPROM" }, + { "itf":"control", "dev":"PORT31-CTRL" } + ] + } + }, + "PORT31-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT31-EEPROM", "device_parent":"MUX8", "virt_parent":"PORT31"}, + "i2c": + { + "topo_info": { "parent_bus":"0x48", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT31-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT31-CTRL", "device_parent":"MUX8", "virt_parent":"PORT31"}, + "i2c": + { + "topo_info": { "parent_bus":"0x48", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x10", "attr_mask":"0x0", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x1A", "attr_mask":"0x0", "attr_cmpval":"0x1", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x14", "attr_mask":"0x0", "attr_cmpval":"0x1", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x17", "attr_mask":"0x0", "attr_cmpval":"0x1", "attr_len":"1"} + ] + } + }, + + "PORT34": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT34", "device_parent":"MUX9"}, + "dev_attr": { "dev_idx":"34"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT34-EEPROM" }, + { "itf":"control", "dev":"PORT34-CTRL" } + ] + } + }, + "PORT34-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT34-EEPROM", "device_parent":"MUX9", "virt_parent":"PORT34"}, + "i2c": + { + "topo_info": { "parent_bus":"0x49", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT34-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT34-CTRL", "device_parent":"MUX9", "virt_parent":"PORT34"}, + "i2c": + { + "topo_info": { "parent_bus":"0x49", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x10", "attr_mask":"0x3", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x1A", "attr_mask":"0x3", "attr_cmpval":"0x8", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x14", "attr_mask":"0x3", "attr_cmpval":"0x8", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x17", "attr_mask":"0x3", "attr_cmpval":"0x8", "attr_len":"1"} + ] + } + }, + + "PORT33": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT33", "device_parent":"MUX9"}, + "dev_attr": { "dev_idx":"33"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT33-EEPROM" }, + { "itf":"control", "dev":"PORT33-CTRL" } + ] + } + }, + "PORT33-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT33-EEPROM", "device_parent":"MUX9", "virt_parent":"PORT33"}, + "i2c": + { + "topo_info": { "parent_bus":"0x4a", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT33-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT33-CTRL", "device_parent":"MUX9", "virt_parent":"PORT33"}, + "i2c": + { + "topo_info": { "parent_bus":"0x4a", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x10", "attr_mask":"0x2", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x1A", "attr_mask":"0x2", "attr_cmpval":"0x4", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x14", "attr_mask":"0x2", "attr_cmpval":"0x4", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x17", "attr_mask":"0x2", "attr_cmpval":"0x4", "attr_len":"1"} + ] + } + }, + + "PORT36": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT36", "device_parent":"MUX9"}, + "dev_attr": { "dev_idx":"36"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT36-EEPROM" }, + { "itf":"control", "dev":"PORT36-CTRL" } + ] + } + }, + "PORT36-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT36-EEPROM", "device_parent":"MUX9", "virt_parent":"PORT36"}, + "i2c": + { + "topo_info": { "parent_bus":"0x4b", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT36-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT36-CTRL", "device_parent":"MUX9", "virt_parent":"PORT36"}, + "i2c": + { + "topo_info": { "parent_bus":"0x4b", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x10", "attr_mask":"0x5", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x1A", "attr_mask":"0x5", "attr_cmpval":"0x20", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x14", "attr_mask":"0x5", "attr_cmpval":"0x20", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x17", "attr_mask":"0x5", "attr_cmpval":"0x20", "attr_len":"1"} + ] + } + }, + + "PORT35": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT35", "device_parent":"MUX9"}, + "dev_attr": { "dev_idx":"35"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT35-EEPROM" }, + { "itf":"control", "dev":"PORT35-CTRL" } + ] + } + }, + "PORT35-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT35-EEPROM", "device_parent":"MUX9", "virt_parent":"PORT35"}, + "i2c": + { + "topo_info": { "parent_bus":"0x4c", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT35-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT35-CTRL", "device_parent":"MUX9", "virt_parent":"PORT35"}, + "i2c": + { + "topo_info": { "parent_bus":"0x4c", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x10", "attr_mask":"0x4", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x1A", "attr_mask":"0x4", "attr_cmpval":"0x10", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x14", "attr_mask":"0x4", "attr_cmpval":"0x10", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x17", "attr_mask":"0x4", "attr_cmpval":"0x10", "attr_len":"1"} + ] + } + }, + + "PORT37": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT37", "device_parent":"MUX9"}, + "dev_attr": { "dev_idx":"37"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT37-EEPROM" }, + { "itf":"control", "dev":"PORT37-CTRL" } + ] + } + }, + "PORT37-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT37-EEPROM", "device_parent":"MUX9", "virt_parent":"PORT37"}, + "i2c": + { + "topo_info": { "parent_bus":"0x4d", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT37-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT37-CTRL", "device_parent":"MUX9", "virt_parent":"PORT37"}, + "i2c": + { + "topo_info": { "parent_bus":"0x4d", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x10", "attr_mask":"0x6", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x1A", "attr_mask":"0x6", "attr_cmpval":"0x40", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x14", "attr_mask":"0x6", "attr_cmpval":"0x40", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x17", "attr_mask":"0x6", "attr_cmpval":"0x40", "attr_len":"1"} + ] + } + }, + + "PORT39": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT39", "device_parent":"MUX9"}, + "dev_attr": { "dev_idx":"39"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT39-EEPROM" }, + { "itf":"control", "dev":"PORT39-CTRL" } + ] + } + }, + "PORT39-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT39-EEPROM", "device_parent":"MUX9", "virt_parent":"PORT39"}, + "i2c": + { + "topo_info": { "parent_bus":"0x4e", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT39-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT39-CTRL", "device_parent":"MUX9", "virt_parent":"PORT39"}, + "i2c": + { + "topo_info": { "parent_bus":"0x4e", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x11", "attr_mask":"0x0", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x1B", "attr_mask":"0x0", "attr_cmpval":"0x1", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x15", "attr_mask":"0x0", "attr_cmpval":"0x1", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x18", "attr_mask":"0x0", "attr_cmpval":"0x1", "attr_len":"1"} + ] + } + }, + + "PORT38": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT38", "device_parent":"MUX9"}, + "dev_attr": { "dev_idx":"38"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT38-EEPROM" }, + { "itf":"control", "dev":"PORT38-CTRL" } + ] + } + }, + "PORT38-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT38-EEPROM", "device_parent":"MUX9", "virt_parent":"PORT38"}, + "i2c": + { + "topo_info": { "parent_bus":"0x4f", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT38-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT38-CTRL", "device_parent":"MUX9", "virt_parent":"PORT38"}, + "i2c": + { + "topo_info": { "parent_bus":"0x4f", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x10", "attr_mask":"0x7", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x1A", "attr_mask":"0x7", "attr_cmpval":"0x80", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x14", "attr_mask":"0x7", "attr_cmpval":"0x80", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x17", "attr_mask":"0x7", "attr_cmpval":"0x80", "attr_len":"1"} + ] + } + }, + + "PORT40": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT40", "device_parent":"MUX9"}, + "dev_attr": { "dev_idx":"40"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT40-EEPROM" }, + { "itf":"control", "dev":"PORT40-CTRL" } + ] + } + }, + "PORT40-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT40-EEPROM", "device_parent":"MUX9", "virt_parent":"PORT40"}, + "i2c": + { + "topo_info": { "parent_bus":"0x50", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT40-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT40-CTRL", "device_parent":"MUX9", "virt_parent":"PORT40"}, + "i2c": + { + "topo_info": { "parent_bus":"0x50", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x11", "attr_mask":"0x1", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x1B", "attr_mask":"0x1", "attr_cmpval":"0x2", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x15", "attr_mask":"0x1", "attr_cmpval":"0x2", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x18", "attr_mask":"0x1", "attr_cmpval":"0x2", "attr_len":"1"} + ] + } + }, + "PORT41": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT41", "device_parent":"MUX10"}, + "dev_attr": { "dev_idx":"41"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT41-EEPROM" }, + { "itf":"control", "dev":"PORT41-CTRL" } + ] + } + }, + "PORT41-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT41-EEPROM", "device_parent":"MUX10", "virt_parent":"PORT41"}, + "i2c": + { + "topo_info": { "parent_bus":"0x51", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT41-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT41-CTRL", "device_parent":"MUX10", "virt_parent":"PORT41"}, + "i2c": + { + "topo_info": { "parent_bus":"0x51", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x11", "attr_mask":"0x2", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x1B", "attr_mask":"0x2", "attr_cmpval":"0x4", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x15", "attr_mask":"0x2", "attr_cmpval":"0x4", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x18", "attr_mask":"0x2", "attr_cmpval":"0x4", "attr_len":"1"} + ] + } + }, + "PORT42": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT42", "device_parent":"MUX10"}, + "dev_attr": { "dev_idx":"42"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT42-EEPROM" }, + { "itf":"control", "dev":"PORT42-CTRL" } + ] + } + }, + "PORT42-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT42-EEPROM", "device_parent":"MUX10", "virt_parent":"PORT42"}, + "i2c": + { + "topo_info": { "parent_bus":"0x52", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT42-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT42-CTRL", "device_parent":"MUX10", "virt_parent":"PORT42"}, + "i2c": + { + "topo_info": { "parent_bus":"0x52", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x11", "attr_mask":"0x3", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x1B", "attr_mask":"0x3", "attr_cmpval":"0x8", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x15", "attr_mask":"0x3", "attr_cmpval":"0x8", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x18", "attr_mask":"0x3", "attr_cmpval":"0x8", "attr_len":"1"} + ] + } + }, + "PORT45": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT45", "device_parent":"MUX10"}, + "dev_attr": { "dev_idx":"45"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT45-EEPROM" }, + { "itf":"control", "dev":"PORT45-CTRL" } + ] + } + }, + "PORT45-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT45-EEPROM", "device_parent":"MUX10", "virt_parent":"PORT45"}, + "i2c": + { + "topo_info": { "parent_bus":"0x53", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT45-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT45-CTRL", "device_parent":"MUX10", "virt_parent":"PORT45"}, + "i2c": + { + "topo_info": { "parent_bus":"0x53", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x11", "attr_mask":"0x6", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x1B", "attr_mask":"0x6", "attr_cmpval":"0x40", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x15", "attr_mask":"0x6", "attr_cmpval":"0x40", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x18", "attr_mask":"0x6", "attr_cmpval":"0x40", "attr_len":"1"} + ] + } + }, + "PORT43": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT43", "device_parent":"MUX10"}, + "dev_attr": { "dev_idx":"43"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT43-EEPROM" }, + { "itf":"control", "dev":"PORT43-CTRL" } + ] + } + }, + "PORT43-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT43-EEPROM", "device_parent":"MUX10", "virt_parent":"PORT43"}, + "i2c": + { + "topo_info": { "parent_bus":"0x54", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT43-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT43-CTRL", "device_parent":"MUX10", "virt_parent":"PORT43"}, + "i2c": + { + "topo_info": { "parent_bus":"0x54", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x11", "attr_mask":"0x4", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x1B", "attr_mask":"0x4", "attr_cmpval":"0x10", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x15", "attr_mask":"0x4", "attr_cmpval":"0x10", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x18", "attr_mask":"0x4", "attr_cmpval":"0x10", "attr_len":"1"} + ] + } + }, + "PORT44": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT44", "device_parent":"MUX10"}, + "dev_attr": { "dev_idx":"44"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT44-EEPROM" }, + { "itf":"control", "dev":"PORT44-CTRL" } + ] + } + }, + "PORT44-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT44-EEPROM", "device_parent":"MUX10", "virt_parent":"PORT44"}, + "i2c": + { + "topo_info": { "parent_bus":"0x55", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT44-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT44-CTRL", "device_parent":"MUX10", "virt_parent":"PORT44"}, + "i2c": + { + "topo_info": { "parent_bus":"0x55", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x11", "attr_mask":"0x5", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x1B", "attr_mask":"0x5", "attr_cmpval":"0x20", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x60", "attr_devtype":"cpld","attr_devname":"CPLD1","attr_offset":"0x15", "attr_mask":"0x5", "attr_cmpval":"0x20", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x18", "attr_mask":"0x5", "attr_cmpval":"0x20", "attr_len":"1"} + ] + } + }, + "PORT48": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT48", "device_parent":"MUX10"}, + "dev_attr": { "dev_idx":"48"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT48-EEPROM" }, + { "itf":"control", "dev":"PORT48-CTRL" } + ] + } + }, + "PORT48-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT48-EEPROM", "device_parent":"MUX10", "virt_parent":"PORT48"}, + "i2c": + { + "topo_info": { "parent_bus":"0x56", "dev_addr":"0x50", "dev_type":"optoe1"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT48-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT48-CTRL", "device_parent":"MUX10", "virt_parent":"PORT48"}, + "i2c": + { + "topo_info": { "parent_bus":"0x56", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x60", "attr_devtype":"cpld","attr_devname":"CPLD1", "attr_offset":"0x12", "attr_mask":"0x1", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x1C", "attr_mask":"0x1", "attr_cmpval":"0x2", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x60", "attr_devtype":"cpld","attr_devname":"CPLD1", "attr_offset":"0x16", "attr_mask":"0x1", "attr_cmpval":"0x2", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x19", "attr_mask":"0x1", "attr_cmpval":"0x2", "attr_len":"1"} + ] + } + }, + "PORT46": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT46", "device_parent":"MUX10"}, + "dev_attr": { "dev_idx":"46"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT46-EEPROM" }, + { "itf":"control", "dev":"PORT46-CTRL" } + ] + } + }, + "PORT46-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT46-EEPROM", "device_parent":"MUX10", "virt_parent":"PORT46"}, + "i2c": + { + "topo_info": { "parent_bus":"0x57", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT46-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT46-CTRL", "device_parent":"MUX10", "virt_parent":"PORT46"}, + "i2c": + { + "topo_info": { "parent_bus":"0x57", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x60", "attr_devtype":"cpld","attr_devname":"CPLD1", "attr_offset":"0x11", "attr_mask":"0x7", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1","attr_offset":"0x1B", "attr_mask":"0x7", "attr_cmpval":"0x80", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x60", "attr_devtype":"cpld","attr_devname":"CPLD1", "attr_offset":"0x15", "attr_mask":"0x7", "attr_cmpval":"0x80", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1","attr_offset":"0x18", "attr_mask":"0x7", "attr_cmpval":"0x80", "attr_len":"1"} + ] + } + }, + "PORT47": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT47", "device_parent":"MUX10"}, + "dev_attr": { "dev_idx":"47"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT47-EEPROM" }, + { "itf":"control", "dev":"PORT47-CTRL" } + ] + } + }, + "PORT47-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT47-EEPROM", "device_parent":"MUX10", "virt_parent":"PORT47"}, + "i2c": + { + "topo_info": { "parent_bus":"0x58", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT47-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT47-CTRL", "device_parent":"MUX10", "virt_parent":"PORT47"}, + "i2c": + { + "topo_info": { "parent_bus":"0x58", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x12", "attr_mask":"0x0", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x1C", "attr_mask":"0x0", "attr_cmpval":"0x1", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x16", "attr_mask":"0x0", "attr_cmpval":"0x1", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x19", "attr_mask":"0x0", "attr_cmpval":"0x1", "attr_len":"1"} + ] + } + }, + + "PORT49": + { + "dev_info": { "device_type":"QSFP28", "device_name":"PORT49", "device_parent":"MUX11"}, + "dev_attr": { "dev_idx":"49"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT49-EEPROM" }, + { "itf":"control", "dev":"PORT49-CTRL" } + ] + } + }, + "PORT49-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT49-EEPROM", "device_parent":"MUX11", "virt_parent":"PORT49"}, + "i2c": + { + "topo_info": { "parent_bus":"0x19", "dev_addr":"0x50", "dev_type":"optoe1"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT49-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT49-CTRL", "device_parent":"MUX11", "virt_parent":"PORT49"}, + "i2c": + { + "topo_info": { "parent_bus":"0x19", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x13", "attr_mask":"0x0", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_reset", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x4", "attr_mask":"0x0", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_intr_status", "attr_devaddr":"0x60", "attr_devtype":"cpld","attr_devname":"CPLD1", "attr_offset":"0xA", "attr_mask":"0x0", "attr_cmpval":"0x0", "attr_len":"1"} + + ] + } + }, + + "PORT50": + { + "dev_info": { "device_type":"QSFP28", "device_name":"PORT50", "device_parent":"MUX11"}, + "dev_attr": { "dev_idx":"50"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT50-EEPROM" }, + { "itf":"control", "dev":"PORT50-CTRL" } + ] + } + }, + "PORT50-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT50-EEPROM", "device_parent":"MUX11", "virt_parent":"PORT50"}, + "i2c": + { + "topo_info": { "parent_bus":"0x1a", "dev_addr":"0x50", "dev_type":"optoe1"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT50-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT50-CTRL", "device_parent":"MUX11", "virt_parent":"PORT50"}, + "i2c": + { + "topo_info": { "parent_bus":"0x1a", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x13", "attr_mask":"0x1", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_reset", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x4", "attr_mask":"0x1", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_intr_status", "attr_devaddr":"0x60", "attr_devtype":"cpld","attr_devname":"CPLD1", "attr_offset":"0xA", "attr_mask":"0x1", "attr_cmpval":"0x0", "attr_len":"1"} + + ] + } + }, + + "PORT51": + { + "dev_info": { "device_type":"QSFP28", "device_name":"PORT51", "device_parent":"MUX11"}, + "dev_attr": { "dev_idx":"51"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT51-EEPROM" }, + { "itf":"control", "dev":"PORT51-CTRL" } + ] + } + }, + "PORT51-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT51-EEPROM", "device_parent":"MUX11", "virt_parent":"PORT51"}, + "i2c": + { + "topo_info": { "parent_bus":"0x1b", "dev_addr":"0x50", "dev_type":"optoe1"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT51-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT51-CTRL", "device_parent":"MUX11", "virt_parent":"PORT51"}, + "i2c": + { + "topo_info": { "parent_bus":"0x1b", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x13", "attr_mask":"0x2", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_reset", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x4", "attr_mask":"0x2", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_intr_status", "attr_devaddr":"0x60", "attr_devtype":"cpld","attr_devname":"CPLD1", "attr_offset":"0xA", "attr_mask":"0x2", "attr_cmpval":"0x0", "attr_len":"1"} + + ] + } + }, + + "PORT52": + { + "dev_info": { "device_type":"QSFP28", "device_name":"PORT52", "device_parent":"MUX11"}, + "dev_attr": { "dev_idx":"52"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT52-EEPROM" }, + { "itf":"control", "dev":"PORT52-CTRL" } + ] + } + }, + "PORT52-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT52-EEPROM", "device_parent":"MUX11", "virt_parent":"PORT52"}, + "i2c": + { + "topo_info": { "parent_bus":"0x1c", "dev_addr":"0x50", "dev_type":"optoe1"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT52-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT52-CTRL", "device_parent":"MUX11", "virt_parent":"PORT52"}, + "i2c": + { + "topo_info": { "parent_bus":"0x1c", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x13", "attr_mask":"0x3", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_reset", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x4", "attr_mask":"0x3", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_intr_status", "attr_devaddr":"0x60", "attr_devtype":"cpld","attr_devname":"CPLD1", "attr_offset":"0xA", "attr_mask":"0x3", "attr_cmpval":"0x0", "attr_len":"1"} + + ] + } + }, + + "PORT53": + { + "dev_info": { "device_type":"QSFP28", "device_name":"PORT53", "device_parent":"MUX11"}, + "dev_attr": { "dev_idx":"53"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT53-EEPROM" }, + { "itf":"control", "dev":"PORT53-CTRL" } + ] + } + }, + "PORT53-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT53-EEPROM", "device_parent":"MUX11", "virt_parent":"PORT53"}, + "i2c": + { + "topo_info": { "parent_bus":"0x1d", "dev_addr":"0x50", "dev_type":"optoe1"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT53-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT53-CTRL", "device_parent":"MUX11", "virt_parent":"PORT53"}, + "i2c": + { + "topo_info": { "parent_bus":"0x1d", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x13", "attr_mask":"0x4", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_reset", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x4", "attr_mask":"0x4", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_intr_status", "attr_devaddr":"0x60", "attr_devtype":"cpld","attr_devname":"CPLD1", "attr_offset":"0xA", "attr_mask":"0x4", "attr_cmpval":"0x0", "attr_len":"1"} + + ] + } + }, + + "PORT54": + { + "dev_info": { "device_type":"QSFP28", "device_name":"PORT54", "device_parent":"MUX11"}, + "dev_attr": { "dev_idx":"54"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT54-EEPROM" }, + { "itf":"control", "dev":"PORT54-CTRL" } + ] + } + }, + "PORT54-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT54-EEPROM", "device_parent":"MUX11", "virt_parent":"PORT54"}, + "i2c": + { + "topo_info": { "parent_bus":"0x1e", "dev_addr":"0x50", "dev_type":"optoe1"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT54-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT54-CTRL", "device_parent":"MUX11", "virt_parent":"PORT54"}, + "i2c": + { + "topo_info": { "parent_bus":"0x1e", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x13", "attr_mask":"0x5", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_reset", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x4", "attr_mask":"0x5", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_intr_status", "attr_devaddr":"0x60", "attr_devtype":"cpld","attr_devname":"CPLD1", "attr_offset":"0xA", "attr_mask":"0x5", "attr_cmpval":"0x0", "attr_len":"1"} + + ] + } + }, + + "PORT55": + { + "dev_info": { "device_type":"QSFP28", "device_name":"PORT55", "device_parent":"MUX11"}, + "dev_attr": { "dev_idx":"55"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT55-EEPROM" }, + { "itf":"control", "dev":"PORT55-CTRL" } + ] + } + }, + "PORT55-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT55-EEPROM", "device_parent":"MUX11", "virt_parent":"PORT55"}, + "i2c": + { + "topo_info": { "parent_bus":"0x1f", "dev_addr":"0x50", "dev_type":"optoe1"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT55-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT55-CTRL", "device_parent":"MUX11", "virt_parent":"PORT55"}, + "i2c": + { + "topo_info": { "parent_bus":"0x1f", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x13", "attr_mask":"0x6", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_reset", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x4", "attr_mask":"0x6", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_intr_status", "attr_devaddr":"0x60", "attr_devtype":"cpld","attr_devname":"CPLD1", "attr_offset":"0xA", "attr_mask":"0x6", "attr_cmpval":"0x0", "attr_len":"1"} + + ] + } + }, + + "PORT56": + { + "dev_info": { "device_type":"QSFP28", "device_name":"PORT56", "device_parent":"MUX11"}, + "dev_attr": { "dev_idx":"56"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT56-EEPROM" }, + { "itf":"control", "dev":"PORT56-CTRL" } + ] + } + }, + "PORT56-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT56-EEPROM", "device_parent":"MUX11", "virt_parent":"PORT56"}, + "i2c": + { + "topo_info": { "parent_bus":"0x20", "dev_addr":"0x50", "dev_type":"optoe1"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT56-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT56-CTRL", "device_parent":"MUX11", "virt_parent":"PORT56"}, + "i2c": + { + "topo_info": { "parent_bus":"0x20", "dev_addr":"0x53", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_present", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x13", "attr_mask":"0x7", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_reset", "attr_devaddr":"0x60", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x4", "attr_mask":"0x7", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"xcvr_intr_status", "attr_devaddr":"0x60", "attr_devtype":"cpld","attr_devname":"CPLD1", "attr_offset":"0xA", "attr_mask":"0x7", "attr_cmpval":"0x0", "attr_len":"1"} + + ] + } + }, + "LOC_LED": + { + "dev_info": { "device_type":"LED", "device_name":"LOC_LED"}, + "dev_attr": { "index":"0"}, + "i2c" : + { + "attr_list": + [ + {"attr_name":"STATUS_LED_COLOR_BLUE_BLINK", "descr": "" , "bits" : "5:0", "value" : "0x27", "swpld_addr" : "0x60", "swpld_addr_offset" : "0x25"}, + {"attr_name":"STATUS_LED_COLOR_GREEN_BLINK", "descr": "" , "bits" : "5:0", "value" : "0x17", "swpld_addr" : "0x60", "swpld_addr_offset" : "0x25"}, + {"attr_name":"STATUS_LED_COLOR_AMBER_BLINK", "descr": "" , "bits" : "5:0", "value" : "0xf", "swpld_addr" : "0x60", "swpld_addr_offset" : "0x25"}, + {"attr_name":"STATUS_LED_COLOR_BLUE", "descr": "" , "bits" : "5:0", "value" : "0x3", "swpld_addr" : "0x60", "swpld_addr_offset" : "0x25"}, + {"attr_name":"STATUS_LED_COLOR_GREEN", "descr": "" , "bits" : "5:0", "value" : "0x5", "swpld_addr" : "0x60", "swpld_addr_offset" : "0x25"}, + {"attr_name":"STATUS_LED_COLOR_AMBER", "descr": "" , "bits" : "5:0", "value" : "0x6", "swpld_addr" : "0x60", "swpld_addr_offset" : "0x25"}, + {"attr_name":"STATUS_LED_COLOR_OFF", "descr": "" , "bits" : "5:0", "value" : "0xf", "swpld_addr" : "0x60", "swpld_addr_offset" : "0x25"} + ] + } + }, + "DIAG_LED": + { + "dev_info": { "device_type":"LED", "device_name":"DIAG_LED"}, + "dev_attr": { "index":"0"}, + "i2c" : + { + "attr_list": + [ + {"attr_name":"STATUS_LED_COLOR_BLUE_BLINK", "descr": "" , "bits" : "5:0", "value" : "0x27", "swpld_addr" : "0x60", "swpld_addr_offset" : "0x24"}, + {"attr_name":"STATUS_LED_COLOR_GREEN_BLINK", "descr": "" , "bits" : "5:0", "value" : "0x17", "swpld_addr" : "0x60", "swpld_addr_offset" : "0x24"}, + {"attr_name":"STATUS_LED_COLOR_AMBER_BLINK", "descr": "" , "bits" : "5:0", "value" : "0xf", "swpld_addr" : "0x60", "swpld_addr_offset" : "0x24"}, + {"attr_name":"STATUS_LED_COLOR_BLUE", "descr": "" , "bits" : "5:0", "value" : "0x3", "swpld_addr" : "0x60", "swpld_addr_offset" : "0x24"}, + {"attr_name":"STATUS_LED_COLOR_GREEN", "descr": "" , "bits" : "5:0", "value" : "0x5", "swpld_addr" : "0x60", "swpld_addr_offset" : "0x24"}, + {"attr_name":"STATUS_LED_COLOR_AMBER", "descr": "" , "bits" : "5:0", "value" : "0x6", "swpld_addr" : "0x60", "swpld_addr_offset" : "0x24"}, + {"attr_name":"STATUS_LED_COLOR_OFF", "descr": "" , "bits" : "5:0", "value" : "0x7", "swpld_addr" : "0x60", "swpld_addr_offset" : "0x24"} + + ] + } + } +} diff --git a/device/accton/x86_64-accton_as7326_56x-r0/pddf_support b/device/accton/x86_64-accton_as7326_56x-r0/pddf_support new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/device/accton/x86_64-accton_as7712_32x-r0/pddf/pd-plugin.json b/device/accton/x86_64-accton_as7712_32x-r0/pddf/pd-plugin.json index 4d253635cc95..7df46b922ec3 100644 --- a/device/accton/x86_64-accton_as7712_32x-r0/pddf/pd-plugin.json +++ b/device/accton/x86_64-accton_as7712_32x-r0/pddf/pd-plugin.json @@ -48,7 +48,7 @@ "duty_cycle_to_pwm": "lambda dc: ((dc*100.0)/625 - 1)", - "pwm_to_duty_cycle": "lambda pwm: math.ceil(((pwm+1)*625.0)/100)" + "pwm_to_duty_cycle": "lambda pwm: (((pwm+1)*625.0)/100)" } } diff --git a/device/accton/x86_64-accton_as7816_64x-r0/pddf/pd-plugin.json b/device/accton/x86_64-accton_as7816_64x-r0/pddf/pd-plugin.json new file mode 100644 index 000000000000..eae22f99e394 --- /dev/null +++ b/device/accton/x86_64-accton_as7816_64x-r0/pddf/pd-plugin.json @@ -0,0 +1,64 @@ +{ + + "XCVR": + { + "xcvr_present": + { + "i2c": + { + "valmap-QSFP28": {"1":true, "0":false} + } + } + }, + "PSU": + { + "psu_present": + { + "i2c": + { + "valmap": { "1":true, "0":false } + } + }, + + "psu_power_good": + { + "i2c": + { + "valmap": { "1": true, "0":false } + } + }, + + "psu_fan_dir": + { + "i2c": + { + "valmap": { "F2B":"EXHAUST", "B2F":"INTAKE" } + } + }, + + "PSU_FAN_MAX_SPEED":"18000" + }, + + "FAN": + { + "direction": + { + "i2c": + { + "valmap": {"1":"INTAKE", "0":"EXHAUST"} + } + }, + + "present": + { + "i2c": + { + "valmap": {"1":true, "0":false} + } + }, + + "duty_cycle_to_pwm": "lambda dc: ((dc - 10) / 6)", + "pwm_to_duty_cycle": "lambda pwm: ( (pwm * 6) + 10)" + } + +} diff --git a/device/accton/x86_64-accton_as7816_64x-r0/pddf/pddf-device.json b/device/accton/x86_64-accton_as7816_64x-r0/pddf/pddf-device.json index 12d6c3a115e2..27d181da1829 100644 --- a/device/accton/x86_64-accton_as7816_64x-r0/pddf/pddf-device.json +++ b/device/accton/x86_64-accton_as7816_64x-r0/pddf/pddf-device.json @@ -114,7 +114,7 @@ "i2c": { "topo_info": { "parent_bus":"0x0", "dev_addr":"0x77", "dev_type":"pca9548"}, - "dev_attr": { "virt_bus":"0x1"}, + "dev_attr": { "virt_bus":"0x1", "idle_state":"-2"}, "channel": [ { "chn":"0", "dev":"MUX2" }, @@ -137,7 +137,7 @@ "i2c": { "topo_info": { "parent_bus":"0x1", "dev_addr":"0x71", "dev_type":"pca9548"}, - "dev_attr": { "virt_bus":"0x9"}, + "dev_attr": { "virt_bus":"0x9", "idle_state":"-2"}, "channel": [ { "chn":"0", "dev":"PSU2"}, @@ -249,7 +249,7 @@ "i2c": { "topo_info": { "parent_bus":"0x1", "dev_addr":"0x76", "dev_type":"pca9548"}, - "dev_attr": { "virt_bus":"0x11"}, + "dev_attr": { "virt_bus":"0x11", "idle_state":"-2"}, "channel": [ { "chn":"0", "dev":"TEMP1" }, @@ -464,7 +464,7 @@ "i2c": { "topo_info": { "parent_bus":"0x1", "dev_addr":"0x73", "dev_type":"pca9548"}, - "dev_attr": { "virt_bus":"0x19"}, + "dev_attr": { "virt_bus":"0x19", "idle_state":"-2"}, "channel": [ { "chn":"0", "dev":"PORT61" }, @@ -484,7 +484,7 @@ "i2c": { "topo_info": { "parent_bus":"0x2", "dev_addr":"0x70", "dev_type":"pca9548"}, - "dev_attr": { "virt_bus":"0x21"}, + "dev_attr": { "virt_bus":"0x21", "idle_state":"-2"}, "channel": [ { "chn":"0", "dev":"PORT9" }, @@ -504,7 +504,7 @@ "i2c": { "topo_info": { "parent_bus":"0x2", "dev_addr":"0x71", "dev_type":"pca9548"}, - "dev_attr": { "virt_bus":"0x29"}, + "dev_attr": { "virt_bus":"0x29", "idle_state":"-2"}, "channel": [ { "chn":"0", "dev":"PORT6" }, @@ -524,7 +524,7 @@ "i2c": { "topo_info": { "parent_bus":"0x2", "dev_addr":"0x72", "dev_type":"pca9548"}, - "dev_attr": { "virt_bus":"0x31"}, + "dev_attr": { "virt_bus":"0x31", "idle_state":"-2"}, "channel": [ { "chn":"0", "dev":"PORT17" }, @@ -544,7 +544,7 @@ "i2c": { "topo_info": { "parent_bus":"0x2", "dev_addr":"0x73", "dev_type":"pca9548"}, - "dev_attr": { "virt_bus":"0x39"}, + "dev_attr": { "virt_bus":"0x39", "idle_state":"-2"}, "channel": [ { "chn":"0", "dev":"PORT29" }, @@ -564,7 +564,7 @@ "i2c": { "topo_info": { "parent_bus":"0x2", "dev_addr":"0x74", "dev_type":"pca9548"}, - "dev_attr": { "virt_bus":"0x41"}, + "dev_attr": { "virt_bus":"0x41", "idle_state":"-2"}, "channel": [ { "chn":"0", "dev":"PORT41" }, @@ -584,7 +584,7 @@ "i2c": { "topo_info": { "parent_bus":"0x2", "dev_addr":"0x75", "dev_type":"pca9548"}, - "dev_attr": { "virt_bus":"0x49"}, + "dev_attr": { "virt_bus":"0x49", "idle_state":"-2"}, "channel": [ { "chn":"0", "dev":"PORT45" }, @@ -604,7 +604,7 @@ "i2c": { "topo_info": { "parent_bus":"0x2", "dev_addr":"0x76", "dev_type":"pca9548"}, - "dev_attr": { "virt_bus":"0x51"}, + "dev_attr": { "virt_bus":"0x51", "idle_state":"-2"}, "channel": [ { "chn":"0", "dev":"PORT57" }, diff --git a/device/accton/x86_64-accton_as7816_64x-r0/pddf_support b/device/accton/x86_64-accton_as7816_64x-r0/pddf_support new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/platform/broadcom/sonic-platform-modules-accton/as4630-54pe/service/pddf-platform-init.service b/platform/broadcom/sonic-platform-modules-accton/as4630-54pe/service/pddf-platform-init.service new file mode 120000 index 000000000000..0fd9f25b6c5e --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-accton/as4630-54pe/service/pddf-platform-init.service @@ -0,0 +1 @@ +../../../../pddf/i2c/service/pddf-platform-init.service \ No newline at end of file diff --git a/platform/broadcom/sonic-platform-modules-accton/as4630-54pe/sonic_platform_setup.py b/platform/broadcom/sonic-platform-modules-accton/as4630-54pe/sonic_platform_setup.py index 553325484a92..59dad237f3b4 100644 --- a/platform/broadcom/sonic-platform-modules-accton/as4630-54pe/sonic_platform_setup.py +++ b/platform/broadcom/sonic-platform-modules-accton/as4630-54pe/sonic_platform_setup.py @@ -1,23 +1,14 @@ from setuptools import setup -DEVICE_NAME = 'accton' -HW_SKU = 'x86_64-accton_as4630_54pe-r0' - setup( name='sonic-platform', version='1.0', - description='SONiC platform API implementation on Accton Platforms', + description='SONiC platform API implementation on Accton Platforms using PDDF', license='Apache 2.0', author='SONiC Team', author_email='linuxnetdev@microsoft.com', url='https://github.com/Azure/sonic-buildimage', - maintainer='Jostar Yang', - maintainer_email='jostar_yang@edge-core.com', - packages=[ - 'sonic_platform', - ], - package_dir={ - 'sonic_platform': '../../../../device/{}/{}/sonic_platform'.format(DEVICE_NAME, HW_SKU)}, + packages=['sonic_platform'], classifiers=[ 'Development Status :: 3 - Alpha', 'Environment :: Plugins', diff --git a/platform/broadcom/sonic-platform-modules-accton/as7326-56x/modules/Makefile b/platform/broadcom/sonic-platform-modules-accton/as7326-56x/modules/Makefile index 85c066571c2f..6789630def0b 100755 --- a/platform/broadcom/sonic-platform-modules-accton/as7326-56x/modules/Makefile +++ b/platform/broadcom/sonic-platform-modules-accton/as7326-56x/modules/Makefile @@ -1,7 +1,12 @@ ifneq ($(KERNELRELEASE),) obj-m:= accton_i2c_cpld.o \ accton_as7326_56x_fan.o accton_as7326_56x_leds.o \ - accton_as7326_56x_psu.o ym2651y.o + accton_as7326_56x_psu.o ym2651y.o \ + pddf_custom_psu.o + + +CFLAGS_pddf_custom_psu.o := -I$(M)/../../../../pddf/i2c/modules/include +KBUILD_EXTRA_SYMBOLS := $(M)/../../../../pddf/i2c/Module.symvers.PDDF else ifeq (,$(KERNEL_SRC)) diff --git a/platform/broadcom/sonic-platform-modules-accton/as7326-56x/modules/pddf_custom_psu.c b/platform/broadcom/sonic-platform-modules-accton/as7326-56x/modules/pddf_custom_psu.c new file mode 100644 index 000000000000..18c3edf72a8c --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-accton/as7326-56x/modules/pddf_custom_psu.c @@ -0,0 +1,206 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "pddf_psu_defs.h" + +ssize_t pddf_get_custom_psu_model_name(struct device *dev, struct device_attribute *da, char *buf); +ssize_t pddf_get_custom_psu_serial_num(struct device *dev, struct device_attribute *da, char *buf); +extern PSU_SYSFS_ATTR_DATA access_psu_model_name; +extern PSU_SYSFS_ATTR_DATA access_psu_serial_num; + +#define MAX_MODEL_NAME 16 +#define MAX_SERIAL_NUMBER 19 + +enum psu_type { + PSU_TYPE_AC_110V, + PSU_TYPE_DC_48V, + PSU_TYPE_DC_12V, + PSU_TYPE_AC_ACBEL_FSF019, + PSU_TYPE_AC_ACBEL_FSF045 +}; + +struct model_name_info { + enum psu_type type; + u8 offset; + u8 length; + u8 chk_length; + char* model_name; +}; + +struct serial_number_info { + enum psu_type type; + u8 offset; + u8 length; + u8 chk_length; + char* serial_number; +}; + +struct model_name_info models[] = { +{PSU_TYPE_AC_110V, 0x20, 8, 8, "YM-2651Y"}, +{PSU_TYPE_DC_48V, 0x20, 8, 8, "YM-2651V"}, +{PSU_TYPE_DC_12V, 0x00, 11, 11, "PSU-12V-750"}, +{PSU_TYPE_AC_ACBEL_FSF019, 0x15, 10, 7, "FSF019-"}, +{PSU_TYPE_AC_ACBEL_FSF045, 0x15, 10, 7, "FSF045-"} + +}; + +struct serial_number_info serials[] = { +{PSU_TYPE_AC_110V, 0x2e, 18, 18, "YM-2651Y"}, +{PSU_TYPE_DC_48V, 0x2e, 18, 18, "YM-2651V"}, +{PSU_TYPE_DC_12V, 0x2e, 18, 18, "PSU-12V-750"}, +{PSU_TYPE_AC_ACBEL_FSF019, 0x2e, 16, 16, "FSF019-"}, +{PSU_TYPE_AC_ACBEL_FSF019, 0x2e, 16, 16, "FSF045-"} + +}; + +struct pddf_psu_data { + char model_name[MAX_MODEL_NAME+1]; + char serial_number[MAX_SERIAL_NUMBER+1]; +}; + + +static int pddf_psu_read_block(struct i2c_client *client, u8 command, u8 *data, + int data_len) +{ + int result = 0; + int retry_count = 10; + + while (retry_count) { + retry_count--; + + result = i2c_smbus_read_i2c_block_data(client, command, data_len, data); + + if (unlikely(result < 0)) { + msleep(10); + continue; + } + + if (unlikely(result != data_len)) { + result = -EIO; + msleep(10); + continue; + } + + result = 0; + break; + } + + return result; +} + +ssize_t pddf_get_custom_psu_serial_num(struct device *dev, struct device_attribute *da, char *buf) +{ + struct i2c_client *client = to_i2c_client(dev); + struct pddf_psu_data data; + int i, status; + + for (i = 0; i < ARRAY_SIZE(models); i++) { + memset(data.serial_number, 0, sizeof(data.serial_number)); + + status = pddf_psu_read_block(client, models[i].offset, + data.model_name, models[i].length); + if (status < 0) { + data.model_name[0] = '\0'; + dev_dbg(&client->dev, "unable to read model name from (0x%x) offset(0x%x)\n", + client->addr, models[i].offset); + return status; + } + else { + data.model_name[models[i].length] = '\0'; + } + + /* Determine if the model name is known, if not, read next index + */ + if (strncmp(data.model_name, models[i].model_name, models[i].chk_length) == 0) { + status = pddf_psu_read_block(client, serials[i].offset, + data.serial_number, serials[i].length); + + if (status < 0) { + data.serial_number[0] = '\0'; + dev_dbg(&client->dev, "unable to read serial num from (0x%x) offset(0x%x)\n", + client->addr, serials[i].offset); + return status; + } + else { + data.serial_number[serials[i].length] = '\0'; + return sprintf(buf, "%s\n", data.serial_number); + } + + return 0; + } + else { + data.serial_number[0] = '\0'; + } + } + + return -ENODATA; + + +} + +ssize_t pddf_get_custom_psu_model_name(struct device *dev, struct device_attribute *da, char *buf) +{ + struct i2c_client *client = to_i2c_client(dev); + struct pddf_psu_data data; + int i, status; + + for (i = 0; i < ARRAY_SIZE(models); i++) { + memset(data.model_name, 0, sizeof(data.model_name)); + + status = pddf_psu_read_block(client, models[i].offset, + data.model_name, models[i].length); + if (status < 0) { + data.model_name[0] = '\0'; + dev_dbg(&client->dev, "unable to read model name from (0x%x) offset(0x%x)\n", + client->addr, models[i].offset); + return status; + } + else { + data.model_name[models[i].length] = '\0'; + } + + /* Determine if the model name is known, if not, read next index + */ + if (strncmp(data.model_name, models[i].model_name, models[i].chk_length) == 0) { + return sprintf(buf, "%s\n", data.model_name); + } + else { + data.model_name[0] = '\0'; + } + } + + return -ENODATA; + +} + +static int __init pddf_custom_psu_init(void) +{ + access_psu_serial_num.show = pddf_get_custom_psu_serial_num; + access_psu_serial_num.do_get = NULL; + + access_psu_model_name.show = pddf_get_custom_psu_model_name; + access_psu_model_name.do_get = NULL; + + return 0; +} + +static void __exit pddf_custom_psu_exit(void) +{ + return; +} + +MODULE_AUTHOR("Broadcom"); +MODULE_DESCRIPTION("pddf custom psu api"); +MODULE_LICENSE("GPL"); + +module_init(pddf_custom_psu_init); +module_exit(pddf_custom_psu_exit); + diff --git a/platform/broadcom/sonic-platform-modules-accton/as7326-56x/service/as7326-56x-pddf-platform-monitor.service b/platform/broadcom/sonic-platform-modules-accton/as7326-56x/service/as7326-56x-pddf-platform-monitor.service new file mode 100644 index 000000000000..03351824b7b4 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-accton/as7326-56x/service/as7326-56x-pddf-platform-monitor.service @@ -0,0 +1,16 @@ +[Unit] +Description=Accton AS7326-56X Platform Monitoring service +Before=pmon.service +After=pddf-platform-init.service +DefaultDependencies=no + +[Service] +ExecStart=/usr/local/bin/accton_as7326_pddf_monitor.py +KillSignal=SIGKILL +SuccessExitStatus=SIGKILL + +# Resource Limitations +LimitCORE=infinity + +[Install] +WantedBy=multi-user.target diff --git a/platform/broadcom/sonic-platform-modules-accton/as7326-56x/service/pddf-platform-init.service b/platform/broadcom/sonic-platform-modules-accton/as7326-56x/service/pddf-platform-init.service new file mode 120000 index 000000000000..0fd9f25b6c5e --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-accton/as7326-56x/service/pddf-platform-init.service @@ -0,0 +1 @@ +../../../../pddf/i2c/service/pddf-platform-init.service \ No newline at end of file diff --git a/platform/broadcom/sonic-platform-modules-accton/as7326-56x/sonic_platform_setup.py b/platform/broadcom/sonic-platform-modules-accton/as7326-56x/sonic_platform_setup.py index 15806d24fff0..22bd354ea686 100644 --- a/platform/broadcom/sonic-platform-modules-accton/as7326-56x/sonic_platform_setup.py +++ b/platform/broadcom/sonic-platform-modules-accton/as7326-56x/sonic_platform_setup.py @@ -1,8 +1,5 @@ from setuptools import setup -DEVICE_NAME = 'accton' -HW_SKU = 'x86_64-accton_as7326_56x-r0' - setup( name='sonic-platform', version='1.0', @@ -11,11 +8,7 @@ author='SONiC Team', author_email='linuxnetdev@microsoft.com', url='https://github.com/Azure/sonic-buildimage', - packages=[ - 'sonic_platform' - ], - package_dir={ - 'sonic_platform': '../../../../device/{}/{}/sonic_platform'.format(DEVICE_NAME, HW_SKU)}, + packages=['sonic_platform'], classifiers=[ 'Development Status :: 3 - Alpha', 'Environment :: Plugins', diff --git a/platform/broadcom/sonic-platform-modules-accton/as7326-56x/utils/pddf_post_driver_install.sh b/platform/broadcom/sonic-platform-modules-accton/as7326-56x/utils/pddf_post_driver_install.sh new file mode 100755 index 000000000000..b2dc4ded1f6d --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-accton/as7326-56x/utils/pddf_post_driver_install.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +dis_i2c_ir3570a() +{ + local addr=$1 + + i2cset -y -a 0 $addr 0xE5 0x01 &>/dev/null + i2cset -y -a 0 $addr 0x12 0x02 &>/dev/null +} + + +ir3570_check() +{ + dump=`i2cdump -y 0 0x42 s 0x9a |awk 'END {print $2}'` + if [ $dump -eq 24 ]; then + echo "Disabling i2c function of ir3570a" + dis_i2c_ir3570a 0x4 + fi +} + +ir3570_check + +echo "AS7326 post PDDF driver install completed" diff --git a/platform/broadcom/sonic-platform-modules-accton/as7726-32x/utils/pddf_post_driver_install.sh b/platform/broadcom/sonic-platform-modules-accton/as7726-32x/utils/pddf_post_driver_install.sh index c33f0b0c9797..484e5c976b4c 100755 --- a/platform/broadcom/sonic-platform-modules-accton/as7726-32x/utils/pddf_post_driver_install.sh +++ b/platform/broadcom/sonic-platform-modules-accton/as7726-32x/utils/pddf_post_driver_install.sh @@ -4,8 +4,8 @@ dis_i2c_ir3570a() { local addr=$1 - i2cset -y 0 $addr 0xE5 0x01 &>/dev/null - i2cset -y 0 $addr 0x12 0x02 &>/dev/null + i2cset -y -a 0 $addr 0xE5 0x01 &>/dev/null + i2cset -y -a 0 $addr 0x12 0x02 &>/dev/null } diff --git a/platform/broadcom/sonic-platform-modules-accton/as7816-64x/service/as7816-pddf-platform-monitor.service b/platform/broadcom/sonic-platform-modules-accton/as7816-64x/service/as7816-pddf-platform-monitor.service new file mode 100644 index 000000000000..7b6db7ddac01 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-accton/as7816-64x/service/as7816-pddf-platform-monitor.service @@ -0,0 +1,16 @@ +[Unit] +Description=Accton AS7816-64X Platform Monitoring service +Before=pmon.service +After=pddf-platform-init.service +DefaultDependencies=no + +[Service] +ExecStart=/usr/local/bin/accton_as7816_pddf_monitor.py +KillSignal=SIGKILL +SuccessExitStatus=SIGKILL + +# Resource Limitations +LimitCORE=infinity + +[Install] +WantedBy=multi-user.target diff --git a/platform/broadcom/sonic-platform-modules-accton/as7816-64x/service/pddf-platform-init.service b/platform/broadcom/sonic-platform-modules-accton/as7816-64x/service/pddf-platform-init.service new file mode 120000 index 000000000000..0fd9f25b6c5e --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-accton/as7816-64x/service/pddf-platform-init.service @@ -0,0 +1 @@ +../../../../pddf/i2c/service/pddf-platform-init.service \ No newline at end of file diff --git a/platform/broadcom/sonic-platform-modules-accton/as7816-64x/sonic_platform_setup.py b/platform/broadcom/sonic-platform-modules-accton/as7816-64x/sonic_platform_setup.py index 607a9ef78dd9..22bd354ea686 100644 --- a/platform/broadcom/sonic-platform-modules-accton/as7816-64x/sonic_platform_setup.py +++ b/platform/broadcom/sonic-platform-modules-accton/as7816-64x/sonic_platform_setup.py @@ -1,8 +1,5 @@ from setuptools import setup -DEVICE_NAME = 'accton' -HW_SKU = 'x86_64-accton_as7816_64x-r0' - setup( name='sonic-platform', version='1.0', @@ -11,13 +8,7 @@ author='SONiC Team', author_email='linuxnetdev@microsoft.com', url='https://github.com/Azure/sonic-buildimage', - maintainer='Jostar Yang', - maintainer_email='jostar_yang@edge-core.com', - packages=[ - 'sonic_platform', - ], - package_dir={ - 'sonic_platform': '../../../../device/{}/{}/sonic_platform'.format(DEVICE_NAME, HW_SKU)}, + packages=['sonic_platform'], classifiers=[ 'Development Status :: 3 - Alpha', 'Environment :: Plugins', diff --git a/platform/broadcom/sonic-platform-modules-accton/as7816-64x/utils/pddf_post_driver_install.sh b/platform/broadcom/sonic-platform-modules-accton/as7816-64x/utils/pddf_post_driver_install.sh new file mode 100755 index 000000000000..9783c323b606 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-accton/as7816-64x/utils/pddf_post_driver_install.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +dis_i2c_ir3570a() +{ + local addr=$1 + + i2cset -y -a 0 $addr 0xE5 0x01 &>/dev/null + i2cset -y -a 0 $addr 0x12 0x02 &>/dev/null +} + + +ir3570_check() +{ + dump=`i2cdump -y 0 0x42 s 0x9a |awk 'END {print $2}'` + if [ $dump -eq 24 ]; then + echo "Disabling i2c function of ir3570a" + dis_i2c_ir3570a 0x4 + fi +} + +ir3570_check + +echo "AS7816 post PDDF driver install completed" diff --git a/platform/broadcom/sonic-platform-modules-accton/as9716-32d/utils/pddf_post_driver_install.sh b/platform/broadcom/sonic-platform-modules-accton/as9716-32d/utils/pddf_post_driver_install.sh index 484a5f039c0f..61eb4c0fd5c7 100755 --- a/platform/broadcom/sonic-platform-modules-accton/as9716-32d/utils/pddf_post_driver_install.sh +++ b/platform/broadcom/sonic-platform-modules-accton/as9716-32d/utils/pddf_post_driver_install.sh @@ -4,8 +4,8 @@ dis_i2c_ir3570a() { local addr=$1 - i2cset -y 0 $addr 0xE5 0x01 &>/dev/null - i2cset -y 0 $addr 0x12 0x02 &>/dev/null + i2cset -y -a 0 $addr 0xE5 0x01 &>/dev/null + i2cset -y -a 0 $addr 0x12 0x02 &>/dev/null } diff --git a/platform/broadcom/sonic-platform-modules-accton/debian/sonic-platform-accton-as4630-54pe.install b/platform/broadcom/sonic-platform-modules-accton/debian/sonic-platform-accton-as4630-54pe.install index a87ebb5b046a..4ba26bed2625 100644 --- a/platform/broadcom/sonic-platform-modules-accton/debian/sonic-platform-accton-as4630-54pe.install +++ b/platform/broadcom/sonic-platform-modules-accton/debian/sonic-platform-accton-as4630-54pe.install @@ -1 +1 @@ -as4630-54pe/sonic_platform-1.0-py3-none-any.whl usr/share/sonic/device/x86_64-accton_as4630_54pe-r0 +as4630-54pe/sonic_platform-1.0-py3-none-any.whl usr/share/sonic/device/x86_64-accton_as4630_54pe-r0/pddf diff --git a/platform/broadcom/sonic-platform-modules-accton/debian/sonic-platform-accton-as4630-54pe.postinst b/platform/broadcom/sonic-platform-modules-accton/debian/sonic-platform-accton-as4630-54pe.postinst new file mode 100644 index 000000000000..23bebd3b295c --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-accton/debian/sonic-platform-accton-as4630-54pe.postinst @@ -0,0 +1,8 @@ +# Special arrangement to make PDDF mode default +# Disable monitor, monitor-fan, monitor-psu (not enabling them would imply they will be disabled by default) +# Enable pddf-platform-monitor +depmod -a +systemctl enable pddf-platform-init.service +systemctl start pddf-platform-init.service +systemctl enable as4630-54pe-pddf-platform-monitor.service +systemctl start as4630-54pe-pddf-platform-monitor.service diff --git a/platform/broadcom/sonic-platform-modules-accton/debian/sonic-platform-accton-as7326-56x.install b/platform/broadcom/sonic-platform-modules-accton/debian/sonic-platform-accton-as7326-56x.install index a6b7094e0e03..1d9885d22d27 100644 --- a/platform/broadcom/sonic-platform-modules-accton/debian/sonic-platform-accton-as7326-56x.install +++ b/platform/broadcom/sonic-platform-modules-accton/debian/sonic-platform-accton-as7326-56x.install @@ -1,2 +1 @@ -as7326-56x/sonic_platform-1.0-py3-none-any.whl usr/share/sonic/device/x86_64-accton_as7326_56x-r0 - +as7326-56x/sonic_platform-1.0-py3-none-any.whl usr/share/sonic/device/x86_64-accton_as7326_56x-r0/pddf diff --git a/platform/broadcom/sonic-platform-modules-accton/debian/sonic-platform-accton-as7726-32x.postinst b/platform/broadcom/sonic-platform-modules-accton/debian/sonic-platform-accton-as7726-32x.postinst index efe159144770..b1c403623c95 100644 --- a/platform/broadcom/sonic-platform-modules-accton/debian/sonic-platform-accton-as7726-32x.postinst +++ b/platform/broadcom/sonic-platform-modules-accton/debian/sonic-platform-accton-as7726-32x.postinst @@ -2,6 +2,8 @@ # Disable monitor, monitor-fan, monitor-psu (not enabling them would imply they will be disabled by default) # Enable pddf-platform-monitor depmod -a +systemctl enable as7726-32x-platform-handle_mac.service +systemctl start as7726-32x-platform-handle_mac.service systemctl enable pddf-platform-init.service systemctl start pddf-platform-init.service systemctl enable as7726-32x-pddf-platform-monitor.service diff --git a/platform/broadcom/sonic-platform-modules-accton/debian/sonic-platform-accton-as7816-64x.install b/platform/broadcom/sonic-platform-modules-accton/debian/sonic-platform-accton-as7816-64x.install index 8f214208a6b8..01b33cc19e54 100644 --- a/platform/broadcom/sonic-platform-modules-accton/debian/sonic-platform-accton-as7816-64x.install +++ b/platform/broadcom/sonic-platform-modules-accton/debian/sonic-platform-accton-as7816-64x.install @@ -1,2 +1 @@ -as7816-64x/sonic_platform-1.0-py3-none-any.whl usr/share/sonic/device/x86_64-accton_as7816_64x-r0 - +as7816-64x/sonic_platform-1.0-py3-none-any.whl usr/share/sonic/device/x86_64-accton_as7816_64x-r0/pddf From 588ed0b760357ae2ba65f7789407730d2fc71ed4 Mon Sep 17 00:00:00 2001 From: Saikrishna Arcot Date: Fri, 1 Apr 2022 16:12:43 -0700 Subject: [PATCH 027/251] Upgrade router-advertiser container to Bullseye (#10374) Change the base image from `docker-config-engine-buster` to `docker-config-engine-bullseye`, and remove the hardcoded `radvd` version from the Dockerfile. Signed-off-by: Saikrishna Arcot --- dockers/docker-router-advertiser/Dockerfile.j2 | 4 ++-- rules/docker-router-advertiser.mk | 9 +++------ 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/dockers/docker-router-advertiser/Dockerfile.j2 b/dockers/docker-router-advertiser/Dockerfile.j2 index 7d225cbd4e79..44e2430077cb 100644 --- a/dockers/docker-router-advertiser/Dockerfile.j2 +++ b/dockers/docker-router-advertiser/Dockerfile.j2 @@ -1,5 +1,5 @@ {% from "dockers/dockerfile-macros.j2" import install_debian_packages, install_python_wheels, copy_files %} -FROM docker-config-engine-buster +FROM docker-config-engine-bullseye ARG docker_container_name ARG image_version @@ -15,7 +15,7 @@ ENV IMAGE_VERSION=$image_version RUN apt-get update # Install radvd Debian package -RUN apt-get -y install radvd=1:2.17-2 +RUN apt-get -y install radvd {% if docker_router_advertiser_debs.strip() -%} # Copy built Debian packages diff --git a/rules/docker-router-advertiser.mk b/rules/docker-router-advertiser.mk index c2a5f9bf5d3c..6d5b9e4717bd 100644 --- a/rules/docker-router-advertiser.mk +++ b/rules/docker-router-advertiser.mk @@ -6,12 +6,12 @@ DOCKER_ROUTER_ADVERTISER_DBG = $(DOCKER_ROUTER_ADVERTISER_STEM)-$(DBG_IMAGE_MARK $(DOCKER_ROUTER_ADVERTISER)_PATH = $(DOCKERS_PATH)/$(DOCKER_ROUTER_ADVERTISER_STEM) -$(DOCKER_ROUTER_ADVERTISER)_DBG_DEPENDS = $($(DOCKER_CONFIG_ENGINE_BUSTER)_DBG_DEPENDS) +$(DOCKER_ROUTER_ADVERTISER)_DBG_DEPENDS = $($(DOCKER_CONFIG_ENGINE_BULLSEYE)_DBG_DEPENDS) $(DOCKER_ROUTER_ADVERTISER)_DBG_DEPENDS += $(RADVD_DBG) -$(DOCKER_ROUTER_ADVERTISER)_DBG_IMAGE_PACKAGES = $($(DOCKER_CONFIG_ENGINE_BUSTER)_DBG_IMAGE_PACKAGES) +$(DOCKER_ROUTER_ADVERTISER)_DBG_IMAGE_PACKAGES = $($(DOCKER_CONFIG_ENGINE_BULLSEYE)_DBG_IMAGE_PACKAGES) -$(DOCKER_ROUTER_ADVERTISER)_LOAD_DOCKERS = $(DOCKER_CONFIG_ENGINE_BUSTER) +$(DOCKER_ROUTER_ADVERTISER)_LOAD_DOCKERS = $(DOCKER_CONFIG_ENGINE_BULLSEYE) $(DOCKER_ROUTER_ADVERTISER)_VERSION = 1.0.0 $(DOCKER_ROUTER_ADVERTISER)_PACKAGE_NAME = radv @@ -29,6 +29,3 @@ $(DOCKER_ROUTER_ADVERTISER)_RUN_OPT += --privileged -t $(DOCKER_ROUTER_ADVERTISER)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro $(DOCKER_ROUTER_ADVERTISER)_RUN_OPT += -v /usr/share/sonic/scripts:/usr/share/sonic/scripts:ro $(DOCKER_ROUTER_ADVERTISER)_FILES += $(SUPERVISOR_PROC_EXIT_LISTENER_SCRIPT) - -SONIC_BUSTER_DOCKERS += $(DOCKER_ROUTER_ADVERTISER) -SONIC_BUSTER_DBG_DOCKERS += $(DOCKER_ROUTER_ADVERTISER_DBG) From a8f72e5d452edc85c441ef5e19125d4373de1664 Mon Sep 17 00:00:00 2001 From: ganglv <88995770+ganglyu@users.noreply.github.com> Date: Sat, 2 Apr 2022 07:32:01 +0800 Subject: [PATCH 028/251] [yang] Update device_metadata to add dhcp_server (#10382) Why I did it dhcp_server is introduced, and need to update yang model. How I did it Update yang models and add unit test. How to verify it Run unit test for sonic-yang-models. Signed-off-by: Gang Lv ganglv@microsoft.com --- .../tests/files/sample_config_db.json | 3 ++- .../tests/device_metadata.json | 7 +++++++ .../tests_config/device_metadata.json | 18 ++++++++++++++++++ .../yang-models/sonic-device_metadata.yang | 5 +++++ 4 files changed, 32 insertions(+), 1 deletion(-) diff --git a/src/sonic-yang-models/tests/files/sample_config_db.json b/src/sonic-yang-models/tests/files/sample_config_db.json index d33cf20e2038..e40d75e8f2c5 100644 --- a/src/sonic-yang-models/tests/files/sample_config_db.json +++ b/src/sonic-yang-models/tests/files/sample_config_db.json @@ -304,7 +304,8 @@ "switch_id": "2", "switch_type": "voq", "max_cores": "8", - "sub_role": "FrondEnd" + "sub_role": "FrondEnd", + "dhcp_server": "disabled" } }, "VLAN": { diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests/device_metadata.json b/src/sonic-yang-models/tests/yang_model_tests/tests/device_metadata.json index ecfff6f69a6f..7f0ddd38496f 100644 --- a/src/sonic-yang-models/tests/yang_model_tests/tests/device_metadata.json +++ b/src/sonic-yang-models/tests/yang_model_tests/tests/device_metadata.json @@ -103,6 +103,13 @@ }, "DEVICE_METADATA_VALID_SUB_ROLE_CONFIG": { "desc": "Verifying valid sub_role configuration." + }, + "DEVICE_METADATA_VALID_DHCP_SERVER": { + "desc": "Verifying dhcp_server configuration." + }, + "DEVICE_METADATA_INVALID_DHCP_SERVER": { + "desc": "Verifying invalid dhcp_server configuration.", + "eStrKey": "InvalidValue" } } diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests_config/device_metadata.json b/src/sonic-yang-models/tests/yang_model_tests/tests_config/device_metadata.json index de0d4e15dcee..a921e9ef41b2 100644 --- a/src/sonic-yang-models/tests/yang_model_tests/tests_config/device_metadata.json +++ b/src/sonic-yang-models/tests/yang_model_tests/tests_config/device_metadata.json @@ -283,5 +283,23 @@ } } } + }, + "DEVICE_METADATA_VALID_DHCP_SERVER": { + "sonic-device_metadata:sonic-device_metadata": { + "sonic-device_metadata:DEVICE_METADATA": { + "sonic-device_metadata:localhost": { + "dhcp_server": "enabled" + } + } + } + }, + "DEVICE_METADATA_INVALID_DHCP_SERVER": { + "sonic-device_metadata:sonic-device_metadata": { + "sonic-device_metadata:DEVICE_METADATA": { + "sonic-device_metadata:localhost": { + "dhcp_server": "invalid" + } + } + } } } diff --git a/src/sonic-yang-models/yang-models/sonic-device_metadata.yang b/src/sonic-yang-models/yang-models/sonic-device_metadata.yang index 87170850d895..618ed19cd81f 100644 --- a/src/sonic-yang-models/yang-models/sonic-device_metadata.yang +++ b/src/sonic-yang-models/yang-models/sonic-device_metadata.yang @@ -183,6 +183,11 @@ module sonic-device_metadata { type uint8; description "Maximum number of cores in a VoQ Switch (chassis)."; } + + leaf dhcp_server { + type stypes:admin_mode; + description "Indicate whether enable the embedded DHCP server."; + } } /* end of container localhost */ } From 12cfb2b8f4faa442353f0b31600c6d2cd0460ba6 Mon Sep 17 00:00:00 2001 From: Shilong Liu Date: Sat, 2 Apr 2022 07:48:44 +0800 Subject: [PATCH 029/251] [ci] Set default ACR in UpgrateVersion/PR/official pipeline. (#10341) Why I did it docker hub will limit the pull rate. Use ACR instead to pull debian related docker image. How I did it Set DEFAULT_CONTAINER_REGISTRY in pipeline. --- .azure-pipelines/azure-pipelines-UpgrateVersion.yml | 7 +++++-- .azure-pipelines/docker-sonic-slave-template.yml | 5 ++++- .azure-pipelines/official-build.yml | 11 +++++++++++ .azure-pipelines/template-clean-sonic-slave.yml | 4 +++- .azure-pipelines/template-variables.yml | 2 ++ azure-pipelines.yml | 9 +++++++++ 6 files changed, 34 insertions(+), 4 deletions(-) create mode 100644 .azure-pipelines/template-variables.yml diff --git a/.azure-pipelines/azure-pipelines-UpgrateVersion.yml b/.azure-pipelines/azure-pipelines-UpgrateVersion.yml index 03593c551cff..6e11e3826e58 100644 --- a/.azure-pipelines/azure-pipelines-UpgrateVersion.yml +++ b/.azure-pipelines/azure-pipelines-UpgrateVersion.yml @@ -45,8 +45,11 @@ parameters: stages: - stage: Build variables: - CACHE_MODE: none - VERSION_CONTROL_OPTIONS: 'SONIC_VERSION_CONTROL_COMPONENTS=' + - name: CACHE_MODE + value: none + - name: VERSION_CONTROL_OPTIONS + value: 'SONIC_VERSION_CONTROL_COMPONENTS=' + - template: .azure-pipelines/template-variables.yml@buildimage jobs: - template: azure-pipelines-build.yml parameters: diff --git a/.azure-pipelines/docker-sonic-slave-template.yml b/.azure-pipelines/docker-sonic-slave-template.yml index 6b4b90f371d9..2a9421dda338 100644 --- a/.azure-pipelines/docker-sonic-slave-template.yml +++ b/.azure-pipelines/docker-sonic-slave-template.yml @@ -37,7 +37,10 @@ jobs: pool: ${{ parameters.pool }} steps: - template: cleanup.yml - - template: .azure-pipelines/template-clean-sonic-slave.yml@buildimage + - ${{ if eq(variables['Build.Reason'], 'PullRequest') }}: + - template: template-clean-sonic-slave.yml + - ${{ else }}: + - template: .azure-pipelines/template-variables.yml@buildimage - checkout: self clean: true submodules: recursive diff --git a/.azure-pipelines/official-build.yml b/.azure-pipelines/official-build.yml index f43c6521fc50..fb986cf67039 100644 --- a/.azure-pipelines/official-build.yml +++ b/.azure-pipelines/official-build.yml @@ -18,9 +18,20 @@ schedules: - 201911 - 201811 +resources: + repositories: + - repository: buildimage + type: github + name: Azure/sonic-buildimage + ref: master + endpoint: build + trigger: none pr: none +variables: +- template: .azure-pipelines/template-variables.yml@buildimage + stages: - stage: Build pool: sonicbld diff --git a/.azure-pipelines/template-clean-sonic-slave.yml b/.azure-pipelines/template-clean-sonic-slave.yml index c67f63fff476..ddb8c8e48f6a 100644 --- a/.azure-pipelines/template-clean-sonic-slave.yml +++ b/.azure-pipelines/template-clean-sonic-slave.yml @@ -1,8 +1,10 @@ steps: - script: | - containers=$(docker container ls -a | grep "sonic-slave" | awk '{ print $1 }') + set -x + containers=$(docker container ls -aq) [ -n "$containers" ] && docker container rm -f $containers docker images | grep "^" | awk '{print$3}' | xargs -i docker rmi {} images=$(docker images 'sonic-slave-*' -a -q) [ -n "$images" ] && docker rmi -f $images + exit 0 displayName: 'Cleanup sonic slave' diff --git a/.azure-pipelines/template-variables.yml b/.azure-pipelines/template-variables.yml new file mode 100644 index 000000000000..f28768e39efe --- /dev/null +++ b/.azure-pipelines/template-variables.yml @@ -0,0 +1,2 @@ +variables: + DEFAULT_CONTAINER_REGISTRY: 'publicmirror.azurecr.io' diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 557ce3beff82..27836a49b1ab 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -30,9 +30,18 @@ resources: type: github name: Azure/sonic-mgmt endpoint: build + - repository: buildimage + type: github + name: Azure/sonic-buildimage + endpoint: build + ref: master variables: - template: .azure-pipelines/azure-pipelines-repd-build-variables.yml +- ${{ if eq(variables['Build.Reason'], 'PullRequest') }}: + - template: .azure-pipelines/template-variables.yml +- ${{ else }}: + - template: .azure-pipelines/template-variables.yml@buildimage - name: CACHE_MODE value: rcache From 28939e95ef60e8894d81d23746807a007182ee22 Mon Sep 17 00:00:00 2001 From: Nazarii Hnydyn Date: Sat, 2 Apr 2022 03:14:45 +0300 Subject: [PATCH 030/251] [submodule]: Advance sonic-swss-common and sonic-linkmgrd submodules (#10406) #### Why I did it To take the following into sonic-buildimage 36e1f61 API endpoints to ConfigDBConnector to support pre-loading data without blackout (#587) [sonic-swss-common](https://github.com/Azure/sonic-swss-common) ``` 36e1f61 API endpoints to ConfigDBConnector to support pre-loading data without blackout (#587) 556f4ad Add SAI copy action to ACL schema (#591) db18c3a Fix bitwidth of mac address in SAI ACL schema (#590) e9442bb [ConfigDBPipeConnector]: Added set_entry API (#586) 6c007c0 Update README for gmock (#562) ``` [sonic-linkmgrd](https://github.com/Azure/sonic-linkmgrd) ``` 83dfc99 Enforce uniform file/class naming convention (#52) 83004bf Shutdown ICMP heartbeats when default route state is missing and ToR is in `auto` mode (#44) b81ea31 Add `LinkProberStateMachineActiveActive` (#47) c43cf7a Decrease link probing interval after switchover to better determine the overhead of a toggle (#43) 2239fbe Enhance clang format (#46) ``` #### How I did it * Advanced submodules pointers #### How to verify it 1. make configure PLATFORM=mellanox 2. make target/sonic-mellanox.bin --- src/linkmgrd | 2 +- src/sonic-swss-common | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/linkmgrd b/src/linkmgrd index f00efefd3099..83dfc992d1b2 160000 --- a/src/linkmgrd +++ b/src/linkmgrd @@ -1 +1 @@ -Subproject commit f00efefd30995de447fd6932369cb5be250ddf90 +Subproject commit 83dfc992d1b24b01bb9b125cc86a8ce63ba060f6 diff --git a/src/sonic-swss-common b/src/sonic-swss-common index 9eac0ae78093..36e1f61691df 160000 --- a/src/sonic-swss-common +++ b/src/sonic-swss-common @@ -1 +1 @@ -Subproject commit 9eac0ae7809350f38650ebb29456fe41a93bbf35 +Subproject commit 36e1f61691df7aa44782a377e4082cc4380f1018 From 8edc53462977accf1190822f9e19ed2d63ea712b Mon Sep 17 00:00:00 2001 From: bingwang-ms <66248323+bingwang-ms@users.noreply.github.com> Date: Sat, 2 Apr 2022 13:53:40 +0800 Subject: [PATCH 031/251] Advance sonic-sairedis submodule (#10417) Signed-off-by: bingwang --- src/sonic-sairedis | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-sairedis b/src/sonic-sairedis index 1ccda8d1d982..473c99067c81 160000 --- a/src/sonic-sairedis +++ b/src/sonic-sairedis @@ -1 +1 @@ -Subproject commit 1ccda8d1d9821a65f73eb5c8f88f9abea0623c0b +Subproject commit 473c99067c8132f8e5b3f8f2abd672b474b42b5a From 1bf8bc6091d6e251da57bb3a7ac59c731f255003 Mon Sep 17 00:00:00 2001 From: xumia <59720581+xumia@users.noreply.github.com> Date: Sat, 2 Apr 2022 22:37:34 +0800 Subject: [PATCH 032/251] [ci] Fix the generating version file failure issue caused by artifacts folder change (#7464) (#10451) Fix the generating version file failure issue caused by artifacts folder change. When changing to use the same template for PR build, official build and packages version upgrade, the artifacts folder adding a "target" folder, the version upgrade task should be changed accordingly. --- .azure-pipelines/azure-pipelines-UpgrateVersion.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.azure-pipelines/azure-pipelines-UpgrateVersion.yml b/.azure-pipelines/azure-pipelines-UpgrateVersion.yml index 6e11e3826e58..35988f71b9b4 100644 --- a/.azure-pipelines/azure-pipelines-UpgrateVersion.yml +++ b/.azure-pipelines/azure-pipelines-UpgrateVersion.yml @@ -80,14 +80,14 @@ stages: default_platform=broadcom artifacts=$(find $(Pipeline.Workspace) -maxdepth 1 -type d -name 'sonic-buildimage.*' | grep -v "sonic-buildimage.${default_platform}") echo "artifacts$artifacts" - cp -r $(Pipeline.Workspace)/sonic-buildimage.${default_platform}/versions target/ + cp -r $(Pipeline.Workspace)/sonic-buildimage.${default_platform}/target/versions target/ make freeze FREEZE_VERSION_OPTIONS=-r find files/build/versions ordered_artifacts=$(echo "$artifacts" | grep -v -E "arm64|armhf" && echo "$artifacts" | grep -E "arm64|armhf") for artifact in $ordered_artifacts do rm -rf target/versions - cp -r $artifact/versions target/ + cp -r $artifact/target/versions target/ OPTIONS="-a -d" [[ "$artifact" == *arm64* || "$artifact" == *armhf* ]] && OPTIONS="-d" make freeze FREEZE_VERSION_OPTIONS="$OPTIONS" From 551dbfdcd2ba45e071f2d31d7af40ae79ee5415a Mon Sep 17 00:00:00 2001 From: xumia <59720581+xumia@users.noreply.github.com> Date: Sat, 2 Apr 2022 23:07:10 +0800 Subject: [PATCH 033/251] [Security]: Enable hardening build options (#10369) [Security]: Enable hardening build options --- slave.mk | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/slave.mk b/slave.mk index 641b732db64e..185574e61808 100644 --- a/slave.mk +++ b/slave.mk @@ -268,6 +268,11 @@ export SONIC_ROUTING_STACK export FRR_USER_UID export FRR_USER_GID +############################################################################### +## Build Options +############################################################################### +export DEB_BUILD_OPTIONS = hardening=+all + ############################################################################### ## Dumping key config attributes associated to current building exercise ############################################################################### From a5018e73a71ecc9f98b7eacf42b7e23a3312d507 Mon Sep 17 00:00:00 2001 From: abdosi <58047199+abdosi@users.noreply.github.com> Date: Sat, 2 Apr 2022 10:30:21 -0700 Subject: [PATCH 034/251] [Submodule update] sonic-py-swssdk (#10440) *[Submodule update] sonic-py-swssdk 78f167e4728f939712b3f3ea550949e2ea675fec With the changes in PR:https://github.com/Azure/sonic-buildimage/pull/5289 access to redis unix socket is given to the redis group members. Many of sonic-util commands (especially in multi-asic) case use redis unix socket to connect to DB and thus those comamnd fails without providing sudo. This PR is continuation of PR: https://github.com/Azure/sonic-buildimage/pull/7002 where we default to use TCP for Redis if user is not root Signed-off-by: Abhishek Dosi --- src/sonic-py-swsssdk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-py-swsssdk b/src/sonic-py-swsssdk index 96c05900fc6e..653bdba51750 160000 --- a/src/sonic-py-swsssdk +++ b/src/sonic-py-swsssdk @@ -1 +1 @@ -Subproject commit 96c05900fc6e4063c51e3f6256f8a8e765605be4 +Subproject commit 653bdba51750cac95feb3dd47904bf4de2353fec From e1c36dbfc111dc9dded6453bd33e29458daa6e83 Mon Sep 17 00:00:00 2001 From: xumia <59720581+xumia@users.noreply.github.com> Date: Mon, 4 Apr 2022 07:06:44 +0800 Subject: [PATCH 035/251] [Ci]: Fix an azp template syntax error (#10446) Why I did it [Ci]: Fix an azp template syntax error See https://dev.azure.com/mssonic/build/_build/results?buildId=86535&view=results /.azure-pipelines/docker-sonic-slave.yml (Line: 62, Col: 47): Expected a mapping --- .azure-pipelines/docker-sonic-slave.yml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/.azure-pipelines/docker-sonic-slave.yml b/.azure-pipelines/docker-sonic-slave.yml index 8af6b8b3834f..a6a9750a3808 100644 --- a/.azure-pipelines/docker-sonic-slave.yml +++ b/.azure-pipelines/docker-sonic-slave.yml @@ -60,15 +60,15 @@ stages: - ${{ each dist in parameters.dists }}: - ${{ if endswith(variables['Build.DefinitionName'], dist) }}: - ${{ each arch in parameters.arches }}: - ${{ if eq(variables['System.PullRequest.TargetBranch'], 'master') }}: - - template: docker-sonic-slave-template.yml - parameters: - pool: sonicbld - arch: ${{ arch }} - dist: ${{ dist }} - ${{ else }}: - - template: .azure-pipelines/docker-sonic-slave-template.yml@buildimage - parameters: - pool: sonicbld - arch: ${{ arch }} - dist: ${{ dist }} + - ${{ if eq(variables['System.PullRequest.TargetBranch'], 'master') }}: + - template: docker-sonic-slave-template.yml + parameters: + pool: sonicbld + arch: ${{ arch }} + dist: ${{ dist }} + - ${{ else }}: + - template: .azure-pipelines/docker-sonic-slave-template.yml@buildimage + parameters: + pool: sonicbld + arch: ${{ arch }} + dist: ${{ dist }} From 13aa2332e8ed17dd905446440818cc130612a95a Mon Sep 17 00:00:00 2001 From: ganglv <88995770+ganglyu@users.noreply.github.com> Date: Mon, 4 Apr 2022 12:55:33 +0800 Subject: [PATCH 036/251] [sonic-cfggen]: Update UT to add port lanes (#10362) Why I did it Need to run yang validation for sonic-cfggen unit test, and many unit test does not provide lanes for port table. How I did it Update port config file. How to verify it Run sonic-cfggen unit test, Use below PR to verify #10228 Signed-off-by: Gang Lv ganglv@microsoft.com --- .../multi_npu_data/sample_port_config.ini | 34 +++++++ src/sonic-config-engine/tests/test_cfggen.py | 98 ++++++++++--------- .../tests/test_cfggen_platformJson.py | 2 +- src/sonic-config-engine/tests/test_j2files.py | 10 +- .../tests/test_minigraph_case.py | 12 +-- .../tests/test_multinpu_cfggen.py | 95 +++++++++++------- 6 files changed, 155 insertions(+), 96 deletions(-) create mode 100644 src/sonic-config-engine/tests/multi_npu_data/sample_port_config.ini diff --git a/src/sonic-config-engine/tests/multi_npu_data/sample_port_config.ini b/src/sonic-config-engine/tests/multi_npu_data/sample_port_config.ini new file mode 100644 index 000000000000..d2cdb5fedd27 --- /dev/null +++ b/src/sonic-config-engine/tests/multi_npu_data/sample_port_config.ini @@ -0,0 +1,34 @@ +# name lanes alias index asic_port_name role +Ethernet0 33,34,35,36 Ethernet1/1 0 Eth0-ASIC0 Ext +Ethernet4 29,30,31,32 Ethernet1/2 1 Eth1-ASIC0 Ext +Ethernet8 41,42,43,44 Ethernet1/3 2 Eth2-ASIC0 Ext +Ethernet12 37,38,39,40 Ethernet1/4 3 Eth3-ASIC0 Ext +Ethernet-BP0 13,14,15,16 Eth4-ASIC0 4 Eth4-ASIC0 Int +Ethernet-BP4 17,18,19,20 Eth5-ASIC0 5 Eth5-ASIC0 Int +Ethernet-BP8 21,22,23,24 Eth6-ASIC0 6 Eth6-ASIC0 Int +Ethernet-BP12 25,26,27,28 Eth7-ASIC0 7 Eth7-ASIC0 Int +Ethernet16 33,34,35,36 Ethernet1/5 8 Eth0-ASIC1 Ext +Ethernet20 29,30,31,32 Ethernet1/6 9 Eth1-ASIC1 Ext +Ethernet24 41,42,43,44 Ethernet1/7 10 Eth2-ASIC1 Ext +Ethernet28 37,38,39,40 Ethernet1/8 11 Eth3-ASIC1 Ext +Ethernet-BP16 13,14,15,16 Eth4-ASIC1 12 Eth4-ASIC1 Int +Ethernet-BP20 17,18,19,20 Eth5-ASIC1 13 Eth5-ASIC1 Int +Ethernet-BP24 21,22,23,24 Eth6-ASIC1 14 Eth6-ASIC1 Int +Ethernet-BP28 25,26,27,28 Eth7-ASIC1 15 Eth7-ASIC1 Int +Ethernet-BP256 61,62,63,64 Eth0-ASIC2 16 Eth0-ASIC2 Int +Ethernet-BP260 57,58,59,60 Eth1-ASIC2 17 Eth1-ASIC2 Int +Ethernet-BP264 53,54,55,56 Eth2-ASIC2 18 Eth2-ASIC2 Int +Ethernet-BP268 49,50,51,52 Eth3-ASIC2 19 Eth3-ASIC2 Int +Ethernet-BP272 45,46,47,48 Eth4-ASIC2 20 Eth4-ASIC2 Int +Ethernet-BP276 41,42,43,44 Eth5-ASIC2 21 Eth5-ASIC2 Int +Ethernet-BP280 37,38,39,40 Eth6-ASIC2 22 Eth6-ASIC2 Int +Ethernet-BP284 33,34,35,36 Eth7-ASIC2 23 Eth7-ASIC2 Int +Ethernet-BP384 29,30,31,32 Eth0-ASIC3 24 Eth0-ASIC3 Int +Ethernet-BP388 25,26,27,28 Eth1-ASIC3 25 Eth1-ASIC3 Int +Ethernet-BP392 21,22,23,24 Eth2-ASIC3 26 Eth2-ASIC3 Int +Ethernet-BP396 17,18,19,20 Eth3-ASIC3 27 Eth3-ASIC3 Int +Ethernet-BP400 13,14,15,16 Eth4-ASIC3 28 Eth4-ASIC3 Int +Ethernet-BP404 9,10,11,12 Eth5-ASIC3 29 Eth5-ASIC3 Int +Ethernet-BP408 5,6,7,8 Eth6-ASIC3 30 Eth6-ASIC3 Int +Ethernet-BP412 1,2,3,4 Eth7-ASIC3 31 Eth7-ASIC3 Int + diff --git a/src/sonic-config-engine/tests/test_cfggen.py b/src/sonic-config-engine/tests/test_cfggen.py index c75c53b7f626..e5ef35274db7 100644 --- a/src/sonic-config-engine/tests/test_cfggen.py +++ b/src/sonic-config-engine/tests/test_cfggen.py @@ -83,44 +83,46 @@ def test_device_desc_mgmt_ip(self): self.assertEqual(output.strip(), "('eth0', '10.0.1.5/28')") def test_minigraph_hostname(self): - argument = '-v "DEVICE_METADATA[\'localhost\'][\'hostname\']" -m "' + self.sample_graph + '"' + argument = '-v "DEVICE_METADATA[\'localhost\'][\'hostname\']" -m "' + self.sample_graph + '" -p "' + self.port_config + '"' output = self.run_script(argument) self.assertEqual(output.strip(), 'OCPSCH01040DDLF') def test_minigraph_sku(self): - argument = '-v "DEVICE_METADATA[\'localhost\'][\'hwsku\']" -m "' + self.sample_graph + '"' + argument = '-v "DEVICE_METADATA[\'localhost\'][\'hwsku\']" -m "' + self.sample_graph + '" -p "' + self.port_config + '"' output = self.run_script(argument) self.assertEqual(output.strip(), 'Force10-Z9100') def test_minigraph_region(self): - argument = '-v "DEVICE_METADATA[\'localhost\'][\'region\']" -m "' + self.sample_graph_metadata + '"' + argument = '-v "DEVICE_METADATA[\'localhost\'][\'region\']" -m "' + self.sample_graph_metadata + '" -p "' + self.port_config + '"' output = self.run_script(argument) self.assertEqual(output.strip(), 'usfoo') def test_minigraph_cloudtype(self): - argument = '-v "DEVICE_METADATA[\'localhost\'][\'cloudtype\']" -m "' + self.sample_graph_metadata + '"' + argument = '-v "DEVICE_METADATA[\'localhost\'][\'cloudtype\']" -m "' + self.sample_graph_metadata + '" -p "' + self.port_config + '"' output = self.run_script(argument) self.assertEqual(output.strip(), 'Public') def test_minigraph_resourcetype(self): - argument = '-v "DEVICE_METADATA[\'localhost\'][\'resource_type\']" -m "' + self.sample_graph_metadata + '"' + argument = '-v "DEVICE_METADATA[\'localhost\'][\'resource_type\']" -m "' + self.sample_graph_metadata + '" -p "' + self.port_config + '"' output = self.run_script(argument) self.assertEqual(output.strip(), 'resource_type_x') def test_minigraph_downstream_subrole(self): - argument = '-v "DEVICE_METADATA[\'localhost\'][\'downstream_subrole\']" -m "' + self.sample_graph_metadata + '"' + argument = '-v "DEVICE_METADATA[\'localhost\'][\'downstream_subrole\']" -m "' + self.sample_graph_metadata + '" -p "' + self.port_config + '"' output = self.run_script(argument) self.assertEqual(output.strip(), 'downstream_subrole_y') def test_print_data(self): - argument = '-m "' + self.sample_graph + '" --print-data' + argument = '-m "' + self.sample_graph + '" -p "' + self.port_config + '" --print-data' output = self.run_script(argument) self.assertTrue(len(output.strip()) > 0) - def test_jinja_expression(self, graph=None, expected_router_type='LeafRouter'): + def test_jinja_expression(self, graph=None, port_config=None, expected_router_type='LeafRouter'): if graph is None: graph = self.sample_graph - argument = '-m "' + graph + '" -v "DEVICE_METADATA[\'localhost\'][\'type\']"' + if port_config is None: + port_config = self.port_config + argument = '-m "' + graph + '" -p "' + port_config + '" -v "DEVICE_METADATA[\'localhost\'][\'type\']"' output = self.run_script(argument) self.assertEqual(output.strip(), expected_router_type) @@ -563,44 +565,44 @@ def test_minigraph_neighbor_interfaces(self): def test_minigraph_neighbor_interfaces_config_db(self): # test to check if PORT table is retrieved from config_db - argument = '-m "' + self.sample_graph_simple_case + '" -v "PORT"' + argument = '-m "' + self.sample_graph_simple_case + '" -p "' + self.port_config + '" -v "PORT"' output = self.run_script(argument) self.assertEqual( utils.to_dict(output.strip()), utils.to_dict( - "{'Ethernet0': {'lanes': '29,30,31,32', 'description': 'config_db:switch-01t1:port1', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/0', 'admin_status': 'up', 'speed': '10000', 'autoneg': 'on'}, " - "'Ethernet4': {'lanes': '25,26,27,28', 'description': 'config_db:server1:port1', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/4', 'admin_status': 'up', 'speed': '25000', 'autoneg': 'on', 'mux_cable': 'true'}, " + "{'Ethernet0': {'lanes': '29,30,31,32', 'description': 'switch-01t1:port1', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/0', 'admin_status': 'up', 'speed': '10000', 'autoneg': 'on'}, " + "'Ethernet4': {'lanes': '25,26,27,28', 'description': 'server1:port1', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/4', 'admin_status': 'up', 'speed': '25000', 'autoneg': 'on', 'mux_cable': 'true'}, " "'Ethernet8': {'lanes': '37,38,39,40', 'description': 'Interface description', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/8', 'admin_status': 'up', 'speed': '40000', 'autoneg': 'on', 'mux_cable': 'true'}, " "'Ethernet12': {'lanes': '33,34,35,36', 'description': 'Interface description', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/12', 'admin_status': 'up', 'speed': '10000', 'autoneg': 'on'}, " - "'Ethernet16': {'alias': 'fortyGigE0/16', 'pfc_asym': 'off', 'lanes': '41,42,43,44', 'description': 'config_db:fortyGigE0/16', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet20': {'alias': 'fortyGigE0/20', 'pfc_asym': 'off', 'lanes': '45,46,47,48', 'description': 'config_db:fortyGigE0/20', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet24': {'alias': 'fortyGigE0/24', 'pfc_asym': 'off', 'lanes': '5,6,7,8', 'description': 'config_db:fortyGigE0/24', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet28': {'alias': 'fortyGigE0/28', 'pfc_asym': 'off', 'lanes': '1,2,3,4', 'description': 'config_db:fortyGigE0/28', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet32': {'alias': 'fortyGigE0/32', 'pfc_asym': 'off', 'lanes': '9,10,11,12', 'description': 'config_db:fortyGigE0/32', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet36': {'alias': 'fortyGigE0/36', 'pfc_asym': 'off', 'lanes': '13,14,15,16', 'description': 'config_db:fortyGigE0/36', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet40': {'alias': 'fortyGigE0/40', 'pfc_asym': 'off', 'lanes': '21,22,23,24', 'description': 'config_db:fortyGigE0/40', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet44': {'alias': 'fortyGigE0/44', 'pfc_asym': 'off', 'lanes': '17,18,19,20', 'description': 'config_db:fortyGigE0/44', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet48': {'alias': 'fortyGigE0/48', 'pfc_asym': 'off', 'lanes': '49,50,51,52', 'description': 'config_db:fortyGigE0/48', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet52': {'alias': 'fortyGigE0/52', 'pfc_asym': 'off', 'lanes': '53,54,55,56', 'description': 'config_db:fortyGigE0/52', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet56': {'alias': 'fortyGigE0/56', 'pfc_asym': 'off', 'lanes': '61,62,63,64', 'description': 'config_db:fortyGigE0/56', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet60': {'alias': 'fortyGigE0/60', 'pfc_asym': 'off', 'lanes': '57,58,59,60', 'description': 'config_db:fortyGigE0/60', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet64': {'alias': 'fortyGigE0/64', 'pfc_asym': 'off', 'lanes': '65,66,67,68', 'description': 'config_db:fortyGigE0/64', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet68': {'alias': 'fortyGigE0/68', 'pfc_asym': 'off', 'lanes': '69,70,71,72', 'description': 'config_db:fortyGigE0/68', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet72': {'alias': 'fortyGigE0/72', 'pfc_asym': 'off', 'lanes': '77,78,79,80', 'description': 'config_db:fortyGigE0/72', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet76': {'alias': 'fortyGigE0/76', 'pfc_asym': 'off', 'lanes': '73,74,75,76', 'description': 'config_db:fortyGigE0/76', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet80': {'alias': 'fortyGigE0/80', 'pfc_asym': 'off', 'lanes': '105,106,107,108', 'description': 'config_db:fortyGigE0/80', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet84': {'alias': 'fortyGigE0/84', 'pfc_asym': 'off', 'lanes': '109,110,111,112', 'description': 'config_db:fortyGigE0/84', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet88': {'alias': 'fortyGigE0/88', 'pfc_asym': 'off', 'lanes': '117,118,119,120', 'description': 'config_db:fortyGigE0/88', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet92': {'alias': 'fortyGigE0/92', 'pfc_asym': 'off', 'lanes': '113,114,115,116', 'description': 'config_db:fortyGigE0/92', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet96': {'alias': 'fortyGigE0/96', 'pfc_asym': 'off', 'lanes': '121,122,123,124', 'description': 'config_db:fortyGigE0/96', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet100': {'alias': 'fortyGigE0/100', 'pfc_asym': 'off', 'lanes': '125,126,127,128', 'description': 'config_db:fortyGigE0/100', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet104': {'alias': 'fortyGigE0/104', 'pfc_asym': 'off', 'lanes': '85,86,87,88', 'description': 'config_db:fortyGigE0/104', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet108': {'alias': 'fortyGigE0/108', 'pfc_asym': 'off', 'lanes': '81,82,83,84', 'description': 'config_db:fortyGigE0/108', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet112': {'alias': 'fortyGigE0/112', 'pfc_asym': 'off', 'lanes': '89,90,91,92', 'description': 'config_db:fortyGigE0/112', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet116': {'alias': 'fortyGigE0/116', 'pfc_asym': 'off', 'lanes': '93,94,95,96', 'description': 'config_db:fortyGigE0/116', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet120': {'alias': 'fortyGigE0/120', 'pfc_asym': 'off', 'lanes': '97,98,99,100', 'description': 'config_db:fortyGigE0/120', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet124': {'alias': 'fortyGigE0/124', 'pfc_asym': 'off', 'lanes': '101,102,103,104', 'description': 'config_db:fortyGigE0/124', 'mtu': '9100', 'tpid': '0x8100'}}" + "'Ethernet16': {'alias': 'fortyGigE0/16', 'pfc_asym': 'off', 'lanes': '41,42,43,44', 'description': 'fortyGigE0/16', 'mtu': '9100', 'tpid': '0x8100'}, " + "'Ethernet20': {'alias': 'fortyGigE0/20', 'pfc_asym': 'off', 'lanes': '45,46,47,48', 'description': 'fortyGigE0/20', 'mtu': '9100', 'tpid': '0x8100'}, " + "'Ethernet24': {'alias': 'fortyGigE0/24', 'pfc_asym': 'off', 'lanes': '5,6,7,8', 'description': 'fortyGigE0/24', 'mtu': '9100', 'tpid': '0x8100'}, " + "'Ethernet28': {'alias': 'fortyGigE0/28', 'pfc_asym': 'off', 'lanes': '1,2,3,4', 'description': 'fortyGigE0/28', 'mtu': '9100', 'tpid': '0x8100'}, " + "'Ethernet32': {'alias': 'fortyGigE0/32', 'pfc_asym': 'off', 'lanes': '9,10,11,12', 'description': 'fortyGigE0/32', 'mtu': '9100', 'tpid': '0x8100'}, " + "'Ethernet36': {'alias': 'fortyGigE0/36', 'pfc_asym': 'off', 'lanes': '13,14,15,16', 'description': 'fortyGigE0/36', 'mtu': '9100', 'tpid': '0x8100'}, " + "'Ethernet40': {'alias': 'fortyGigE0/40', 'pfc_asym': 'off', 'lanes': '21,22,23,24', 'description': 'fortyGigE0/40', 'mtu': '9100', 'tpid': '0x8100'}, " + "'Ethernet44': {'alias': 'fortyGigE0/44', 'pfc_asym': 'off', 'lanes': '17,18,19,20', 'description': 'fortyGigE0/44', 'mtu': '9100', 'tpid': '0x8100'}, " + "'Ethernet48': {'alias': 'fortyGigE0/48', 'pfc_asym': 'off', 'lanes': '49,50,51,52', 'description': 'fortyGigE0/48', 'mtu': '9100', 'tpid': '0x8100'}, " + "'Ethernet52': {'alias': 'fortyGigE0/52', 'pfc_asym': 'off', 'lanes': '53,54,55,56', 'description': 'fortyGigE0/52', 'mtu': '9100', 'tpid': '0x8100'}, " + "'Ethernet56': {'alias': 'fortyGigE0/56', 'pfc_asym': 'off', 'lanes': '61,62,63,64', 'description': 'fortyGigE0/56', 'mtu': '9100', 'tpid': '0x8100'}, " + "'Ethernet60': {'alias': 'fortyGigE0/60', 'pfc_asym': 'off', 'lanes': '57,58,59,60', 'description': 'fortyGigE0/60', 'mtu': '9100', 'tpid': '0x8100'}, " + "'Ethernet64': {'alias': 'fortyGigE0/64', 'pfc_asym': 'off', 'lanes': '65,66,67,68', 'description': 'fortyGigE0/64', 'mtu': '9100', 'tpid': '0x8100'}, " + "'Ethernet68': {'alias': 'fortyGigE0/68', 'pfc_asym': 'off', 'lanes': '69,70,71,72', 'description': 'fortyGigE0/68', 'mtu': '9100', 'tpid': '0x8100'}, " + "'Ethernet72': {'alias': 'fortyGigE0/72', 'pfc_asym': 'off', 'lanes': '77,78,79,80', 'description': 'fortyGigE0/72', 'mtu': '9100', 'tpid': '0x8100'}, " + "'Ethernet76': {'alias': 'fortyGigE0/76', 'pfc_asym': 'off', 'lanes': '73,74,75,76', 'description': 'fortyGigE0/76', 'mtu': '9100', 'tpid': '0x8100'}, " + "'Ethernet80': {'alias': 'fortyGigE0/80', 'pfc_asym': 'off', 'lanes': '105,106,107,108', 'description': 'fortyGigE0/80', 'mtu': '9100', 'tpid': '0x8100'}, " + "'Ethernet84': {'alias': 'fortyGigE0/84', 'pfc_asym': 'off', 'lanes': '109,110,111,112', 'description': 'fortyGigE0/84', 'mtu': '9100', 'tpid': '0x8100'}, " + "'Ethernet88': {'alias': 'fortyGigE0/88', 'pfc_asym': 'off', 'lanes': '117,118,119,120', 'description': 'fortyGigE0/88', 'mtu': '9100', 'tpid': '0x8100'}, " + "'Ethernet92': {'alias': 'fortyGigE0/92', 'pfc_asym': 'off', 'lanes': '113,114,115,116', 'description': 'fortyGigE0/92', 'mtu': '9100', 'tpid': '0x8100'}, " + "'Ethernet96': {'alias': 'fortyGigE0/96', 'pfc_asym': 'off', 'lanes': '121,122,123,124', 'description': 'fortyGigE0/96', 'mtu': '9100', 'tpid': '0x8100'}, " + "'Ethernet100': {'alias': 'fortyGigE0/100', 'pfc_asym': 'off', 'lanes': '125,126,127,128', 'description': 'fortyGigE0/100', 'mtu': '9100', 'tpid': '0x8100'}, " + "'Ethernet104': {'alias': 'fortyGigE0/104', 'pfc_asym': 'off', 'lanes': '85,86,87,88', 'description': 'fortyGigE0/104', 'mtu': '9100', 'tpid': '0x8100'}, " + "'Ethernet108': {'alias': 'fortyGigE0/108', 'pfc_asym': 'off', 'lanes': '81,82,83,84', 'description': 'fortyGigE0/108', 'mtu': '9100', 'tpid': '0x8100'}, " + "'Ethernet112': {'alias': 'fortyGigE0/112', 'pfc_asym': 'off', 'lanes': '89,90,91,92', 'description': 'fortyGigE0/112', 'mtu': '9100', 'tpid': '0x8100'}, " + "'Ethernet116': {'alias': 'fortyGigE0/116', 'pfc_asym': 'off', 'lanes': '93,94,95,96', 'description': 'fortyGigE0/116', 'mtu': '9100', 'tpid': '0x8100'}, " + "'Ethernet120': {'alias': 'fortyGigE0/120', 'pfc_asym': 'off', 'lanes': '97,98,99,100', 'description': 'fortyGigE0/120', 'mtu': '9100', 'tpid': '0x8100'}, " + "'Ethernet124': {'alias': 'fortyGigE0/124', 'pfc_asym': 'off', 'lanes': '101,102,103,104', 'description': 'fortyGigE0/124', 'mtu': '9100', 'tpid': '0x8100'}}" ) ) @@ -719,7 +721,7 @@ def test_minigraph_sub_port_no_vlan_member(self, check_stderr=True): else: output = subprocess.check_output("sed -i \'s/%s/%s/g\' %s" % (LEAF_ROUTER, BACKEND_LEAF_ROUTER, self.sample_graph), shell=True) - self.test_jinja_expression(self.sample_graph, BACKEND_LEAF_ROUTER) + self.test_jinja_expression(self.sample_graph, self.port_config, BACKEND_LEAF_ROUTER) self.verify_no_vlan_member() finally: print('\n Change device type back to %s' % (LEAF_ROUTER)) @@ -728,7 +730,7 @@ def test_minigraph_sub_port_no_vlan_member(self, check_stderr=True): else: output = subprocess.check_output("sed -i \'s/%s/%s/g\' %s" % (BACKEND_LEAF_ROUTER, LEAF_ROUTER, self.sample_graph), shell=True) - self.test_jinja_expression(self.sample_graph, LEAF_ROUTER) + self.test_jinja_expression(self.sample_graph, self.port_config, LEAF_ROUTER) def verify_no_vlan_member(self): argument = '-m "' + self.sample_graph + '" -p "' + self.port_config + '" -v "VLAN_MEMBER"' @@ -745,7 +747,7 @@ def verify_sub_intf(self, **kwargs): else: output = subprocess.check_output("sed -i \'s/%s/%s/g\' %s" % (TOR_ROUTER, BACKEND_TOR_ROUTER, graph_file), shell=True) - self.test_jinja_expression(graph_file, BACKEND_TOR_ROUTER) + self.test_jinja_expression(graph_file, self.port_config, BACKEND_TOR_ROUTER) # INTERFACE table does not exist @@ -805,7 +807,7 @@ def verify_sub_intf(self, **kwargs): else: output = subprocess.check_output("sed -i \'s/%s/%s/g\' %s" % (BACKEND_TOR_ROUTER, TOR_ROUTER, graph_file), shell=True) - self.test_jinja_expression(graph_file, TOR_ROUTER) + self.test_jinja_expression(graph_file, self.port_config, TOR_ROUTER) def test_show_run_acl(self): argument = '-a \'{"key1":"value"}\' --var-json ACL_RULE' @@ -818,7 +820,7 @@ def test_show_run_interfaces(self): self.assertEqual(output, '') def test_minigraph_voq_metadata(self): - argument = "-m {} --var-json DEVICE_METADATA".format(self.sample_graph_voq) + argument = "-m {} -p {} --var-json DEVICE_METADATA".format(self.sample_graph_voq, self.voq_port_config) output = json.loads(self.run_script(argument)) self.assertEqual(output['localhost']['asic_name'], 'Asic0') self.assertEqual(output['localhost']['switch_id'], '0') @@ -826,7 +828,7 @@ def test_minigraph_voq_metadata(self): self.assertEqual(output['localhost']['max_cores'], '16') def test_minigraph_voq_system_ports(self): - argument = "-m {} --var-json SYSTEM_PORT".format(self.sample_graph_voq) + argument = "-m {} -p {} --var-json SYSTEM_PORT".format(self.sample_graph_voq, self.voq_port_config) self.assertDictEqual( json.loads(self.run_script(argument)), { @@ -845,7 +847,7 @@ def test_minigraph_voq_system_ports(self): ) def test_minigraph_voq_inband_interface_vlan(self): - argument = "-m {} --var-json VOQ_INBAND_INTERFACE".format(self.sample_graph_voq) + argument = "-m {} -p {} --var-json VOQ_INBAND_INTERFACE".format(self.sample_graph_voq, self.voq_port_config) output = self.run_script(argument) output_dict = utils.to_dict(output.strip()) self.assertDictEqual( @@ -858,7 +860,7 @@ def test_minigraph_voq_inband_interface_vlan(self): ) def test_minigraph_voq_inband_interface_port(self): - argument = "-m {} --var-json VOQ_INBAND_INTERFACE".format(self.sample_graph_voq) + argument = "-m {} -p {} --var-json VOQ_INBAND_INTERFACE".format(self.sample_graph_voq, self.voq_port_config) output = self.run_script(argument) output_dict = utils.to_dict(output.strip()) self.assertDictEqual( diff --git a/src/sonic-config-engine/tests/test_cfggen_platformJson.py b/src/sonic-config-engine/tests/test_cfggen_platformJson.py index fcfae855d0b5..0af361718b99 100644 --- a/src/sonic-config-engine/tests/test_cfggen_platformJson.py +++ b/src/sonic-config-engine/tests/test_cfggen_platformJson.py @@ -49,7 +49,7 @@ def test_dummy_run(self): self.assertEqual(output, '') def test_print_data(self): - argument = '-m "' + self.platform_sample_graph + '" --print-data' + argument = '-m "' + self.platform_sample_graph + '" -p "' + self.platform_json + '" --print-data' output = self.run_script(argument) self.assertTrue(len(output.strip()) > 0) diff --git a/src/sonic-config-engine/tests/test_j2files.py b/src/sonic-config-engine/tests/test_j2files.py index b922ae45dbcf..da37bf8d18c6 100644 --- a/src/sonic-config-engine/tests/test_j2files.py +++ b/src/sonic-config-engine/tests/test_j2files.py @@ -44,11 +44,11 @@ def run_diff(self, file1, file2): def test_interfaces(self): interfaces_template = os.path.join(self.test_dir, '..', '..', '..', 'files', 'image_config', 'interfaces', 'interfaces.j2') - argument = '-m ' + self.t0_minigraph + ' -a \'{\"hwaddr\":\"e4:1d:2d:a5:f3:ad\"}\' -t ' + interfaces_template + ' > ' + self.output_file + argument = '-m ' + self.t0_minigraph + ' -p ' + self.t0_port_config + ' -a \'{\"hwaddr\":\"e4:1d:2d:a5:f3:ad\"}\' -t ' + interfaces_template + ' > ' + self.output_file self.run_script(argument) self.assertTrue(utils.cmp(os.path.join(self.test_dir, 'sample_output', utils.PYvX_DIR, 'interfaces'), self.output_file)) - argument = '-m ' + self.t0_mvrf_minigraph + ' -a \'{\"hwaddr\":\"e4:1d:2d:a5:f3:ad\"}\' -t ' + interfaces_template + ' > ' + self.output_file + argument = '-m ' + self.t0_mvrf_minigraph + ' -p ' + self.t0_port_config + ' -a \'{\"hwaddr\":\"e4:1d:2d:a5:f3:ad\"}\' -t ' + interfaces_template + ' > ' + self.output_file self.run_script(argument) self.assertTrue(utils.cmp(os.path.join(self.test_dir, 'sample_output', utils.PYvX_DIR, 'mvrf_interfaces'), self.output_file)) @@ -326,16 +326,18 @@ def test_swss_switch_render_template(self): test_list = { "t1": { "graph": self.t1_mlnx_minigraph, + "port_config": self.mlnx_port_config, "output": "t1-switch.json" }, "t0": { "graph": self.t0_minigraph, + "port_config": self.t0_port_config, "output": "t0-switch.json" }, } for _, v in test_list.items(): - argument = " -m {} -y {} -t {} > {}".format( - v["graph"], constants_yml, switch_template, self.output_file + argument = " -m {} -p {} -y {} -t {} > {}".format( + v["graph"], v["port_config"], constants_yml, switch_template, self.output_file ) sample_output_file = os.path.join( self.test_dir, 'sample_output', v["output"] diff --git a/src/sonic-config-engine/tests/test_minigraph_case.py b/src/sonic-config-engine/tests/test_minigraph_case.py index 7377498c7078..d18dd0499dab 100644 --- a/src/sonic-config-engine/tests/test_minigraph_case.py +++ b/src/sonic-config-engine/tests/test_minigraph_case.py @@ -45,27 +45,27 @@ def test_dummy_run(self): self.assertEqual(output, '') def test_minigraph_sku(self): - argument = '-v "DEVICE_METADATA[\'localhost\'][\'hwsku\']" -m "' + self.sample_graph + '"' + argument = '-v "DEVICE_METADATA[\'localhost\'][\'hwsku\']" -m "' + self.sample_graph + '" -p "' + self.port_config + '"' output = self.run_script(argument) self.assertEqual(output.strip(), 'Force10-S6000') def test_print_data(self): - argument = '-m "' + self.sample_graph + '" --print-data' + argument = '-m "' + self.sample_graph + '" -p "' + self.port_config + '" --print-data' output = self.run_script(argument) self.assertTrue(len(output.strip()) > 0) def test_jinja_expression(self): - argument = '-m "' + self.sample_graph + '" -v "DEVICE_METADATA[\'localhost\'][\'type\']"' + argument = '-m "' + self.sample_graph + '" -p "' + self.port_config + '" -v "DEVICE_METADATA[\'localhost\'][\'type\']"' output = self.run_script(argument) self.assertEqual(output.strip(), 'ToRRouter') def test_minigraph_subtype(self): - argument = '-m "' + self.sample_graph + '" -v "DEVICE_METADATA[\'localhost\'][\'subtype\']"' + argument = '-m "' + self.sample_graph + '" -p "' + self.port_config + '" -v "DEVICE_METADATA[\'localhost\'][\'subtype\']"' output = self.run_script(argument) self.assertEqual(output.strip(), 'DualToR') def test_minigraph_peer_switch_hostname(self): - argument = '-m "' + self.sample_graph + '" -v "DEVICE_METADATA[\'localhost\'][\'peer_switch\']"' + argument = '-m "' + self.sample_graph + '" -p "' + self.port_config + '" -v "DEVICE_METADATA[\'localhost\'][\'peer_switch\']"' output = self.run_script(argument) self.assertEqual(output.strip(), 'switch2-t0') @@ -157,7 +157,7 @@ def test_minigraph_portchannels(self): ) def test_minigraph_console_mgmt_feature(self): - argument = '-m "' + self.sample_graph + '" -v CONSOLE_SWITCH' + argument = '-m "' + self.sample_graph + '" -p "' + self.port_config + '" -v CONSOLE_SWITCH' output = self.run_script(argument) self.assertEqual( utils.to_dict(output.strip()), diff --git a/src/sonic-config-engine/tests/test_multinpu_cfggen.py b/src/sonic-config-engine/tests/test_multinpu_cfggen.py index 8a79be743848..f39cc9dce1b8 100644 --- a/src/sonic-config-engine/tests/test_multinpu_cfggen.py +++ b/src/sonic-config-engine/tests/test_multinpu_cfggen.py @@ -25,6 +25,7 @@ def setUp(self): self.script_file = utils.PYTHON_INTERPRETTER + ' ' + os.path.join(self.test_dir, '..', 'sonic-cfggen') self.sample_graph = os.path.join(self.test_data_dir, 'sample-minigraph.xml') self.sample_graph1 = os.path.join(self.test_data_dir, 'sample-minigraph-noportchannel.xml') + self.sample_port_config = os.path.join(self.test_data_dir, 'sample_port_config.ini') self.port_config = [] for asic in range(NUM_ASIC): self.port_config.append(os.path.join(self.test_data_dir, "sample_port_config-{}.ini".format(asic))) @@ -80,19 +81,21 @@ def test_dummy_run(self): self.assertEqual(output, '') def test_hwsku(self): - argument = "-v \"DEVICE_METADATA[\'localhost\'][\'hwsku\']\" -m \"{}\"".format(self.sample_graph) + argument = "-v \"DEVICE_METADATA[\'localhost\'][\'hwsku\']\" -m \"{}\" -p \"{}\"".format(self.sample_graph, self.sample_port_config) output = self.run_script(argument) self.assertEqual(output.strip(), SKU) + argument = "-v \"DEVICE_METADATA[\'localhost\'][\'hwsku\']\" -m \"{}\"".format(self.sample_graph) for asic in range(NUM_ASIC): - output = self.run_script_for_asic(argument, asic) + output = self.run_script_for_asic(argument, asic, self.port_config[asic]) self.assertEqual(output.strip(), SKU) def test_print_data(self): - argument = "-m \"{}\" --print-data".format(self.sample_graph) + argument = "-m \"{}\" -p \"{}\" --print-data".format(self.sample_graph, self.sample_port_config) output = self.run_script(argument) self.assertGreater(len(output.strip()) , 0) + argument = "-m \"{}\" --print-data".format(self.sample_graph) for asic in range(NUM_ASIC): - output = self.run_script_for_asic(argument, asic) + output = self.run_script_for_asic(argument, asic, self.port_config[asic]) self.assertGreater(len(output.strip()) , 0) def test_additional_json_data(self): @@ -100,7 +103,7 @@ def test_additional_json_data(self): output = self.run_script(argument) self.assertEqual(output.strip(), 'value1') for asic in range(NUM_ASIC): - output = self.run_script_for_asic(argument, asic) + output = self.run_script_for_asic(argument, asic, self.port_config[asic]) self.assertEqual(output.strip(), 'value1') def test_read_yaml(self): @@ -108,7 +111,7 @@ def test_read_yaml(self): output = yaml.load(self.run_script(argument)) self.assertListEqual(output, ['value1', 'value2']) for asic in range(NUM_ASIC): - output = yaml.load(self.run_script_for_asic(argument, asic)) + output = yaml.load(self.run_script_for_asic(argument, asic, self.port_config[asic])) self.assertListEqual(output, ['value1', 'value2']) def test_render_template(self): @@ -116,32 +119,35 @@ def test_render_template(self): output = self.run_script(argument) self.assertEqual(output.strip(), 'value1\nvalue2') for asic in range(NUM_ASIC): - output = self.run_script_for_asic(argument, asic) + output = self.run_script_for_asic(argument, asic, self.port_config[asic]) self.assertEqual(output.strip(), 'value1\nvalue2') def test_metadata_tacacs(self): - argument = '-m "' + self.sample_graph + '" --var-json "TACPLUS_SERVER"' + argument = '-m "' + self.sample_graph + '" -p "' + self.sample_port_config + '" --var-json "TACPLUS_SERVER"' output = json.loads(self.run_script(argument)) self.assertDictEqual(output, {'123.46.98.21': {'priority': '1', 'tcp_port': '49'}}) #TACPLUS_SERVER not present in the asic configuration. + argument = '-m "' + self.sample_graph + '" --var-json "TACPLUS_SERVER"' for asic in range(NUM_ASIC): output = json.loads(self.run_script_for_asic(argument, asic, self.port_config[asic])) self.assertDictEqual(output, {}) def test_metadata_ntp(self): - argument = '-m "' + self.sample_graph + '" --var-json "NTP_SERVER"' + argument = '-m "' + self.sample_graph + '" -p "' + self.sample_port_config + '" --var-json "NTP_SERVER"' output = json.loads(self.run_script(argument)) self.assertDictEqual(output, {'17.39.1.130': {}, '17.39.1.129': {}}) #NTP data is present only in the host config + argument = '-m "' + self.sample_graph + '" --var-json "NTP_SERVER"' for asic in range(NUM_ASIC): output = json.loads(self.run_script_for_asic(argument, asic, self.port_config[asic])) print("Log:asic{} sku {}".format(asic,output)) self.assertDictEqual(output, {}) def test_mgmt_port(self): - argument = '-m "' + self.sample_graph + '" --var-json "MGMT_PORT"' + argument = '-m "' + self.sample_graph + '" -p "' + self.sample_port_config + '" --var-json "MGMT_PORT"' output = json.loads(self.run_script(argument)) self.assertDictEqual(output, {'eth0': {'alias': 'eth0', 'admin_status': 'up'}}) + argument = '-m "' + self.sample_graph + '" --var-json "MGMT_PORT"' for asic in range(NUM_ASIC): output = json.loads(self.run_script_for_asic(argument, asic, self.port_config[asic])) self.assertDictEqual(output, {'eth0': {'alias': 'eth0', 'admin_status': 'up'}}) @@ -215,17 +221,17 @@ def test_frontend_asic_ports(self): "Ethernet-BP12": { "admin_status": "up", "alias": "Eth7-ASIC0", "asic_port_name": "Eth7-ASIC0", "description": "ASIC3:Eth1-ASIC3", "index": "3", "lanes": "25,26,27,28", "mtu": "9100", "tpid": "0x8100", "pfc_asym": "off", "role": "Int", "speed": "40000" }}) def test_frontend_asic_ports_config_db(self): - argument = "-m {} -n asic0 --var-json \"PORT\"".format(self.sample_graph) + argument = "-m {} -p {} -n asic0 --var-json \"PORT\"".format(self.sample_graph, self.port_config[0]) output = json.loads(self.run_script(argument)) self.assertDictEqual(output, - {"Ethernet0": { "admin_status": "up", "alias": "Ethernet1/1", "asic_port_name": "Eth0-ASIC0", "description": "01T2:Ethernet1:config_db", "index": "0", "lanes": "33,34,35,36", "mtu": "9100", "tpid": "0x8100", "pfc_asym": "off", "role": "Ext", "speed": "40000", "autoneg": "on" }, - "Ethernet4": { "admin_status": "up", "alias": "Ethernet1/2", "asic_port_name": "Eth1-ASIC0", "description": "01T2:Ethernet2:config_db", "index": "1", "lanes": "29,30,31,32", "mtu": "9100", "tpid": "0x8100", "pfc_asym": "off", "role": "Ext", "speed": "40000", "autoneg": "on" }, - "Ethernet8": { "admin_status": "up", "alias": "Ethernet1/3", "asic_port_name": "Eth2-ASIC0", "description": "Ethernet1/3:config_db", "index": "2", "lanes": "41,42,43,44", "mtu": "9100", "tpid": "0x8100", "pfc_asym": "off", "role": "Ext", "speed": "40000" }, - "Ethernet12": { "admin_status": "up", "alias": "Ethernet1/4", "asic_port_name": "Eth3-ASIC0", "description": "Ethernet1/4:config_db", "index": "3", "lanes": "37,38,39,40", "mtu": "9100", "tpid": "0x8100", "pfc_asym": "off", "role": "Ext", "speed": "40000" }, - "Ethernet-BP0": { "admin_status": "up", "alias": "Eth4-ASIC0", "asic_port_name": "Eth4-ASIC0", "description": "ASIC2:Eth0-ASIC2:config_db", "index": "0", "lanes": "13,14,15,16", "mtu": "9100", "tpid": "0x8100", "pfc_asym": "off", "role": "Int", "speed": "40000" }, - "Ethernet-BP4": { "admin_status": "up", "alias": "Eth5-ASIC0", "asic_port_name": "Eth5-ASIC0", "description": "ASIC2:Eth1-ASIC2:config_db", "index": "1", "lanes": "17,18,19,20", "mtu": "9100", "tpid": "0x8100", "pfc_asym": "off", "role": "Int", "speed": "40000" }, - "Ethernet-BP8": { "admin_status": "up", "alias": "Eth6-ASIC0", "asic_port_name": "Eth6-ASIC0", "description": "ASIC3:Eth0-ASIC3:config_db", "index": "2", "lanes": "21,22,23,24", "mtu": "9100", "tpid": "0x8100", "pfc_asym": "off", "role": "Int", "speed": "40000" }, - "Ethernet-BP12": { "admin_status": "up", "alias": "Eth7-ASIC0", "asic_port_name": "Eth7-ASIC0", "description": "ASIC3:Eth1-ASIC3:config_db", "index": "3", "lanes": "25,26,27,28", "mtu": "9100", "tpid": "0x8100", "pfc_asym": "off", "role": "Int", "speed": "40000" }}) + {"Ethernet0": { "admin_status": "up", "alias": "Ethernet1/1", "asic_port_name": "Eth0-ASIC0", "description": "01T2:Ethernet1", "index": "0", "lanes": "33,34,35,36", "mtu": "9100", "tpid": "0x8100", "pfc_asym": "off", "role": "Ext", "speed": "40000", "autoneg": "on" }, + "Ethernet4": { "admin_status": "up", "alias": "Ethernet1/2", "asic_port_name": "Eth1-ASIC0", "description": "01T2:Ethernet2", "index": "1", "lanes": "29,30,31,32", "mtu": "9100", "tpid": "0x8100", "pfc_asym": "off", "role": "Ext", "speed": "40000", "autoneg": "on" }, + "Ethernet8": { "alias": "Ethernet1/3", "asic_port_name": "Eth2-ASIC0", "description": "Ethernet1/3", "index": "2", "lanes": "41,42,43,44", "mtu": "9100", "tpid": "0x8100", "pfc_asym": "off", "role": "Ext", "speed": "40000" }, + "Ethernet12": { "alias": "Ethernet1/4", "asic_port_name": "Eth3-ASIC0", "description": "Ethernet1/4", "index": "3", "lanes": "37,38,39,40", "mtu": "9100", "tpid": "0x8100", "pfc_asym": "off", "role": "Ext", "speed": "40000" }, + "Ethernet-BP0": { "admin_status": "up", "alias": "Eth4-ASIC0", "asic_port_name": "Eth4-ASIC0", "description": "ASIC2:Eth0-ASIC2", "index": "0", "lanes": "13,14,15,16", "mtu": "9100", "tpid": "0x8100", "pfc_asym": "off", "role": "Int", "speed": "40000" }, + "Ethernet-BP4": { "admin_status": "up", "alias": "Eth5-ASIC0", "asic_port_name": "Eth5-ASIC0", "description": "ASIC2:Eth1-ASIC2", "index": "1", "lanes": "17,18,19,20", "mtu": "9100", "tpid": "0x8100", "pfc_asym": "off", "role": "Int", "speed": "40000" }, + "Ethernet-BP8": { "admin_status": "up", "alias": "Eth6-ASIC0", "asic_port_name": "Eth6-ASIC0", "description": "ASIC3:Eth0-ASIC3", "index": "2", "lanes": "21,22,23,24", "mtu": "9100", "tpid": "0x8100", "pfc_asym": "off", "role": "Int", "speed": "40000" }, + "Ethernet-BP12": { "admin_status": "up", "alias": "Eth7-ASIC0", "asic_port_name": "Eth7-ASIC0", "description": "ASIC3:Eth1-ASIC3", "index": "3", "lanes": "25,26,27,28", "mtu": "9100", "tpid": "0x8100", "pfc_asym": "off", "role": "Int", "speed": "40000" }}) def test_frontend_asic_device_neigh(self): argument = "-m {} -p {} -n asic0 --var-json \"DEVICE_NEIGHBOR\"".format(self.sample_graph, self.port_config[0]) @@ -270,7 +276,7 @@ def test_frontend_bgp_neighbor(self): 'fc00::2': {'rrclient': 0, 'name': '01T2', 'local_addr': 'fc00::1', 'nhopself': 0, 'holdtime': '10', 'asn': '65200', 'keepalive': '3'}}) def test_frontend_asic_bgp_neighbor(self): - argument = "-m {} -p {} -n asic0 --var-json \"BGP_INTERNAL_NEIGHBOR\"".format(self.sample_graph, self.port_config[3]) + argument = "-m {} -p {} -n asic0 --var-json \"BGP_INTERNAL_NEIGHBOR\"".format(self.sample_graph, self.port_config[0]) output = json.loads(self.run_script(argument)) self.assertDictEqual(output, \ {'10.1.0.0': {'rrclient': 0, 'name': 'ASIC2', 'local_addr': '10.1.0.1', 'nhopself': 0, 'admin_status': 'up', 'holdtime': '0', 'asn': '65100', 'keepalive': '0'}, @@ -297,23 +303,38 @@ def test_device_asic_metadata(self): self.assertEqual(output['localhost']['sub_role'], 'BackEnd') def test_global_asic_acl(self): - argument = "-m {} --var-json \"ACL_TABLE\"".format(self.sample_graph) + argument = "-m {} -p {} --var-json \"ACL_TABLE\"".format(self.sample_graph, self.sample_port_config) output = json.loads(self.run_script(argument)) - self.assertDictEqual(output, {\ - 'DATAACL': {'policy_desc': 'DATAACL', 'ports': ['PortChannel0002','PortChannel0008'], 'stage': 'ingress', 'type': 'L3'}, - 'EVERFLOW': {'policy_desc': 'EVERFLOW', 'ports': ['PortChannel0002','PortChannel0008'], 'stage': 'ingress', 'type': 'MIRROR'}, - 'EVERFLOWV6':{'policy_desc': 'EVERFLOWV6', 'ports': ['PortChannel0002','PortChannel0008'], 'stage': 'ingress', 'type': 'MIRRORV6'}, - 'SNMP_ACL': {'policy_desc': 'SNMP_ACL', 'services': ['SNMP'], 'stage': 'ingress', 'type': 'CTRLPLANE'}, - 'SSH_ONLY': {'policy_desc': 'SSH_ONLY', 'services': ['SSH'], 'stage': 'ingress', 'type': 'CTRLPLANE'}}) + exp = {\ + 'SNMP_ACL': {'policy_desc': 'SNMP_ACL', 'type': 'CTRLPLANE', 'stage': 'ingress', 'services': ['SNMP']}, + 'EVERFLOW': {'policy_desc': 'EVERFLOW', 'stage': 'ingress', 'ports': ['PortChannel0002', 'PortChannel0008', 'Ethernet8', 'Ethernet12', 'Ethernet24', 'Ethernet28'], 'type': 'MIRROR'}, + 'EVERFLOWV6': {'policy_desc': 'EVERFLOWV6', 'stage': 'ingress', 'ports': ['PortChannel0002', 'PortChannel0008', 'Ethernet8', 'Ethernet12', 'Ethernet24', 'Ethernet28'], 'type': 'MIRRORV6'}, + 'SSH_ONLY': {'policy_desc': 'SSH_ONLY', 'type': 'CTRLPLANE', 'stage': 'ingress', 'services': ['SSH']}, + 'DATAACL': {'policy_desc': 'DATAACL', 'stage': 'ingress', 'ports': ['PortChannel0002', 'PortChannel0008'], 'type': 'L3'}} + for k, v in output.items(): + if 'ports' in v: + v['ports'].sort() + for k, v in exp.items(): + if 'ports' in v: + v['ports'].sort() + self.assertDictEqual(output, exp) + def test_global_asic_acl1(self): - argument = "-m {} --var-json \"ACL_TABLE\"".format(self.sample_graph1) + argument = "-m {} -p {} --var-json \"ACL_TABLE\"".format(self.sample_graph1, self.sample_port_config) + self.maxDiff = None output = json.loads(self.run_script(argument)) - self.assertDictEqual(output, {\ - 'EVERFLOW': {'policy_desc': 'EVERFLOW', 'ports': [], 'stage': 'ingress', 'type': 'MIRROR'}, - 'EVERFLOWV6':{'policy_desc': 'EVERFLOWV6', 'ports': [], 'stage': 'ingress', 'type': 'MIRRORV6'}, - 'SNMP_ACL': {'policy_desc': 'SNMP_ACL', 'services': ['SNMP'], 'stage': 'ingress', 'type': 'CTRLPLANE'}, - 'SSH_ONLY': {'policy_desc': 'SSH_ONLY', 'services': ['SSH'], 'stage': 'ingress', 'type': 'CTRLPLANE'}}) - + exp = {\ + 'SNMP_ACL': {'policy_desc': 'SNMP_ACL', 'type': 'CTRLPLANE', 'stage': 'ingress', 'services': ['SNMP']}, + 'EVERFLOW': {'policy_desc': 'EVERFLOW', 'stage': 'ingress', 'ports': ['Ethernet0', 'Ethernet4', 'Ethernet8', 'Ethernet12', 'Ethernet16', 'Ethernet20', 'Ethernet24', 'Ethernet28'], 'type': 'MIRROR'}, + 'EVERFLOWV6': {'policy_desc': 'EVERFLOWV6', 'stage': 'ingress', 'ports': ['Ethernet0', 'Ethernet4', 'Ethernet8', 'Ethernet12', 'Ethernet16', 'Ethernet20', 'Ethernet24', 'Ethernet28'], 'type': 'MIRRORV6'}, + 'SSH_ONLY': {'policy_desc': 'SSH_ONLY', 'type': 'CTRLPLANE', 'stage': 'ingress', 'services': ['SSH']}} + for k, v in output.items(): + if 'ports' in v: + v['ports'].sort() + for k, v in exp.items(): + if 'ports' in v: + v['ports'].sort() + self.assertDictEqual(output, exp) def test_front_end_asic_acl(self): argument = "-m {} -p {} -n asic0 --var-json \"ACL_TABLE\"".format(self.sample_graph, self.port_config[0]) @@ -347,7 +368,7 @@ def test_back_end_asic_acl1(self): def test_loopback_intfs(self): - argument = "-m {} --var-json \"LOOPBACK_INTERFACE\"".format(self.sample_graph) + argument = "-m {} -p {} --var-json \"LOOPBACK_INTERFACE\"".format(self.sample_graph, self.sample_port_config) output = json.loads(self.run_script(argument)) self.assertDictEqual(output, {\ "Loopback0": {}, @@ -355,7 +376,7 @@ def test_loopback_intfs(self): "Loopback0|FC00:1::32/128": {}}) # The asic configuration should have 2 loopback interfaces - argument = "-m {} -n asic0 --var-json \"LOOPBACK_INTERFACE\"".format(self.sample_graph) + argument = "-m {} -p {} -n asic0 --var-json \"LOOPBACK_INTERFACE\"".format(self.sample_graph, self.port_config[0]) output = json.loads(self.run_script(argument)) self.assertDictEqual(output, { \ "Loopback0": {}, @@ -365,7 +386,7 @@ def test_loopback_intfs(self): "Loopback4096|8.0.0.0/32": {}, "Loopback4096|FD00:1::32/128": {}}) - argument = "-m {} -n asic3 --var-json \"LOOPBACK_INTERFACE\"".format(self.sample_graph) + argument = "-m {} -p {} -n asic3 --var-json \"LOOPBACK_INTERFACE\"".format(self.sample_graph, self.port_config[3]) output = json.loads(self.run_script(argument)) self.assertDictEqual(output, {\ "Loopback0": {}, From 470d73585a6480ebc846cca928c799ac491bda48 Mon Sep 17 00:00:00 2001 From: bingwang-ms <66248323+bingwang-ms@users.noreply.github.com> Date: Mon, 4 Apr 2022 17:10:06 +0800 Subject: [PATCH 037/251] [YANG] Update YANG model for `pfcwd_sw_enable` (#10444) * Update YANG for pfcwd_sw_enable Signed-off-by: bingwang --- src/sonic-yang-models/tests/files/sample_config_db.json | 6 ++++-- .../tests/yang_model_tests/tests_config/qosmaps.json | 9 ++++++--- .../yang-models/sonic-port-qos-map.yang | 8 ++++++++ 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/sonic-yang-models/tests/files/sample_config_db.json b/src/sonic-yang-models/tests/files/sample_config_db.json index e40d75e8f2c5..ff99fc7335df 100644 --- a/src/sonic-yang-models/tests/files/sample_config_db.json +++ b/src/sonic-yang-models/tests/files/sample_config_db.json @@ -1603,7 +1603,8 @@ "tc_to_pg_map": "tc_to_pg_map1", "pfc_to_queue_map": "pfc_prio_to_q_map1", "pfc_to_pg_map" : "pfc_prio_to_pg_map1", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet4": { "dot1p_to_tc_map" : "Dot1p_to_tc_map2", @@ -1612,7 +1613,8 @@ "tc_to_pg_map": "tc_to_pg_map2", "pfc_to_queue_map": "pfc_prio_to_q_map2", "pfc_to_pg_map" : "pfc_prio_to_pg_map2", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" } }, diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests_config/qosmaps.json b/src/sonic-yang-models/tests/yang_model_tests/tests_config/qosmaps.json index fe085ee3c7f9..991675bc3979 100644 --- a/src/sonic-yang-models/tests/yang_model_tests/tests_config/qosmaps.json +++ b/src/sonic-yang-models/tests/yang_model_tests/tests_config/qosmaps.json @@ -621,7 +621,8 @@ "pfc_to_pg_map": "map1", "dscp_to_tc_map": "map1", "dot1p_to_tc_map": "map1", - "pfc_enable": "3,4" + "pfc_enable": "3,4", + "pfcwd_sw_enable" : "3,4" } ] } @@ -657,7 +658,8 @@ "pfc_to_pg_map": "map2", "dscp_to_tc_map": "map2", "dot1p_to_tc_map": "map2", - "pfc_enable": "3,4" + "pfc_enable": "3,4", + "pfcwd_sw_enable" : "3,4" } ] } @@ -714,7 +716,8 @@ "PORT_QOS_MAP_LIST": [ { "ifname": "Ethernet4", - "pfc_enable": "8" + "pfc_enable": "8", + "pfcwd_sw_enable" : "8" } ] } diff --git a/src/sonic-yang-models/yang-models/sonic-port-qos-map.yang b/src/sonic-yang-models/yang-models/sonic-port-qos-map.yang index b29e2f547087..8f4c2d88f4ed 100644 --- a/src/sonic-yang-models/yang-models/sonic-port-qos-map.yang +++ b/src/sonic-yang-models/yang-models/sonic-port-qos-map.yang @@ -81,6 +81,14 @@ module sonic-port-qos-map { } } + leaf pfcwd_sw_enable { + type string { + pattern "[0-7](,[0-7])?"; + } + description + "Specify the queue(s) on which software pfc watchdog are enabled."; + } + leaf pfc_to_queue_map { type leafref { path "/ppqm:sonic-pfc-priority-queue-map/ppqm:MAP_PFC_PRIORITY_TO_QUEUE/ppqm:MAP_PFC_PRIORITY_TO_QUEUE_LIST/ppqm:name"; From 64dc08a3723db6846874e5ccc452ad66bb007873 Mon Sep 17 00:00:00 2001 From: Nazarii Hnydyn Date: Mon, 4 Apr 2022 16:07:48 +0300 Subject: [PATCH 038/251] [submodule] Advance sonic-utilities submodule. (#10405) In order to include the following commit: c752457 [PBH] Implement Edit Flows (Azure/sonic-utilities#2093) sonic-utilities f70dc27 [techsupport] Handle minor fixes of TS Lock and update auto-TS (#2114) 51d3550 Fix issues in clear_qos (#2122) 6d3aa1e [GCU] Optimizing moves by adding generators for keys/tables (#2120) 65a5a6b Fixing get port speed when oper status is down (#2123) c752457 [PBH] Implement Edit Flows (#2093) 827358f [debug dump] dump interface module added (#2070) Signed-off-by: Nazarii Hnydyn --- src/sonic-utilities | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-utilities b/src/sonic-utilities index 8389c8137d4f..f70dc27827a8 160000 --- a/src/sonic-utilities +++ b/src/sonic-utilities @@ -1 +1 @@ -Subproject commit 8389c8137d4fdc5a2d1c803c9c06e6dcb4f849c1 +Subproject commit f70dc27827a88d70e91e15ecdcde2ebbc446116d From b9dd1df372e74247bdb54856c92c4a9dde6f39e6 Mon Sep 17 00:00:00 2001 From: bingwang-ms <66248323+bingwang-ms@users.noreply.github.com> Date: Tue, 5 Apr 2022 22:32:25 +0800 Subject: [PATCH 039/251] Update qos config to clear queues for bounced back traffic (#10176) * Update qos config to clear queues for bounced back traffic Signed-off-by: bingwang --- .../Arista-7050CX3-32S-C32/qos.json.j2 | 2 +- .../Arista-7050CX3-32S-D48C8/qos.json.j2 | 101 + .../Arista-7260CX3-C64/qos.json.j2 | 186 + .../Arista-7260CX3-D108C8/qos.json.j2 | 2 +- .../Arista-7260CX3-Q64/qos.json.j2 | 2 +- files/build_templates/qos_config.j2 | 30 +- ...ample-arista-7050cx3-dualtor-minigraph.xml | 2369 +++++++++ .../sample-arista-7260-dualtor-minigraph.xml | 4635 +++++++++++++++++ .../tests/sample-arista-7260-t1-minigraph.xml | 2491 +++++++++ .../sample_output/py2/qos-arista7050.json | 84 +- .../py2/qos-arista7800r3-48cq2-lc.json | 135 +- .../tests/sample_output/py2/qos-dell6100.json | 132 +- .../tests/sample_output/py2/qos-dell9332.json | 96 +- .../sample_output/py3/qos-arista7050.json | 84 +- .../py3/qos-arista7050cx3-dualtor.json | 1145 ++++ .../py3/qos-arista7260-dualtor.json | 2137 ++++++++ .../sample_output/py3/qos-arista7260-t1.json | 1045 ++++ .../py3/qos-arista7800r3-48cq2-lc.json | 135 +- .../tests/sample_output/py3/qos-dell6100.json | 132 +- .../tests/sample_output/py3/qos-dell9332.json | 96 +- src/sonic-config-engine/tests/test_j2files.py | 43 + 21 files changed, 14780 insertions(+), 302 deletions(-) mode change 100644 => 120000 device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C32/qos.json.j2 mode change 100644 => 120000 device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-D108C8/qos.json.j2 mode change 100644 => 120000 device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-Q64/qos.json.j2 create mode 100644 src/sonic-config-engine/tests/sample-arista-7050cx3-dualtor-minigraph.xml create mode 100644 src/sonic-config-engine/tests/sample-arista-7260-dualtor-minigraph.xml create mode 100644 src/sonic-config-engine/tests/sample-arista-7260-t1-minigraph.xml create mode 100644 src/sonic-config-engine/tests/sample_output/py3/qos-arista7050cx3-dualtor.json create mode 100644 src/sonic-config-engine/tests/sample_output/py3/qos-arista7260-dualtor.json create mode 100644 src/sonic-config-engine/tests/sample_output/py3/qos-arista7260-t1.json diff --git a/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C32/qos.json.j2 b/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C32/qos.json.j2 deleted file mode 100644 index 3e548325ea30..000000000000 --- a/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C32/qos.json.j2 +++ /dev/null @@ -1 +0,0 @@ -{%- include 'qos_config.j2' %} diff --git a/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C32/qos.json.j2 b/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C32/qos.json.j2 new file mode 120000 index 000000000000..5ea713ce7f4c --- /dev/null +++ b/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C32/qos.json.j2 @@ -0,0 +1 @@ +../Arista-7050CX3-32S-D48C8/qos.json.j2 \ No newline at end of file diff --git a/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-D48C8/qos.json.j2 b/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-D48C8/qos.json.j2 index 3e548325ea30..04fddf486ace 100644 --- a/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-D48C8/qos.json.j2 +++ b/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-D48C8/qos.json.j2 @@ -1 +1,102 @@ +{% if 'subtype' in DEVICE_METADATA['localhost'] and DEVICE_METADATA['localhost']['subtype'] == 'DualToR' %} +{%- macro generate_dscp_to_tc_map() %} + "DSCP_TO_TC_MAP": { + "AZURE": { + "0" : "1", + "1" : "1", + "2" : "1", + "3" : "3", + "4" : "4", + "5" : "1", + "6" : "1", + "7" : "1", + "8" : "0", + "9" : "1", + "10": "1", + "11": "1", + "12": "1", + "13": "1", + "14": "1", + "15": "1", + "16": "1", + "17": "1", + "18": "1", + "19": "1", + "20": "1", + "21": "1", + "22": "1", + "23": "1", + "24": "1", + "25": "1", + "26": "1", + "27": "1", + "28": "1", + "29": "1", + "30": "1", + "31": "1", + "32": "1", + "33": "2", + "34": "1", + "35": "1", + "36": "1", + "37": "1", + "38": "1", + "39": "1", + "40": "1", + "41": "1", + "42": "1", + "43": "1", + "44": "1", + "45": "1", + "46": "5", + "47": "1", + "48": "7", + "49": "1", + "50": "1", + "51": "1", + "52": "1", + "53": "1", + "54": "1", + "55": "1", + "56": "1", + "57": "1", + "58": "1", + "59": "1", + "60": "1", + "61": "1", + "62": "1", + "63": "1" + } + }, +{%- endmacro %} +{%- macro generate_tc_to_pg_map() %} + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "0": "0", + "1": "0", + "2": "0", + "3": "3", + "4": "4", + "5": "0", + "6": "0", + "7": "7" + } + }, +{%- endmacro %} +{%- macro generate_tc_to_queue_map() %} + "TC_TO_QUEUE_MAP": { + "AZURE": { + "0": "0", + "1": "1", + "2": "1", + "3": "3", + "4": "4", + "5": "5", + "6": "6", + "7": "7" + } + }, +{%- endmacro %} +{% endif %} + {%- include 'qos_config.j2' %} diff --git a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/qos.json.j2 b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/qos.json.j2 index 3e548325ea30..4178efbcb7aa 100644 --- a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/qos.json.j2 +++ b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/qos.json.j2 @@ -1 +1,187 @@ +{% if ('type' in DEVICE_METADATA['localhost'] and DEVICE_METADATA['localhost']['type'] == 'LeafRouter') %} +{%- macro generate_dscp_to_tc_map() %} + "DSCP_TO_TC_MAP": { + "AZURE": { + "0" : "1", + "1" : "1", + "2" : "2", + "3" : "3", + "4" : "4", + "5" : "1", + "6" : "6", + "7" : "1", + "8" : "0", + "9" : "1", + "10": "1", + "11": "1", + "12": "1", + "13": "1", + "14": "1", + "15": "1", + "16": "1", + "17": "1", + "18": "1", + "19": "1", + "20": "1", + "21": "1", + "22": "1", + "23": "1", + "24": "1", + "25": "1", + "26": "1", + "27": "1", + "28": "1", + "29": "1", + "30": "1", + "31": "1", + "32": "1", + "33": "1", + "34": "1", + "35": "1", + "36": "1", + "37": "1", + "38": "1", + "39": "1", + "40": "1", + "41": "1", + "42": "1", + "43": "1", + "44": "1", + "45": "1", + "46": "5", + "47": "1", + "48": "7", + "49": "1", + "50": "1", + "51": "1", + "52": "1", + "53": "1", + "54": "1", + "55": "1", + "56": "1", + "57": "1", + "58": "1", + "59": "1", + "60": "1", + "61": "1", + "62": "1", + "63": "1" + } + }, +{%- endmacro %} +{%- macro generate_tc_to_pg_map() %} + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "0": "0", + "1": "0", + "2": "2", + "3": "3", + "4": "4", + "5": "0", + "6": "6", + "7": "7" + } + }, +{%- endmacro %} +{% elif ('subtype' in DEVICE_METADATA['localhost'] and DEVICE_METADATA['localhost']['subtype'] == 'DualToR') %} +{%- macro generate_dscp_to_tc_map() %} + "DSCP_TO_TC_MAP": { + "AZURE": { + "0" : "1", + "1" : "1", + "2" : "1", + "3" : "3", + "4" : "4", + "5" : "1", + "6" : "1", + "7" : "1", + "8" : "0", + "9" : "1", + "10": "1", + "11": "1", + "12": "1", + "13": "1", + "14": "1", + "15": "1", + "16": "1", + "17": "1", + "18": "1", + "19": "1", + "20": "1", + "21": "1", + "22": "1", + "23": "1", + "24": "1", + "25": "1", + "26": "1", + "27": "1", + "28": "1", + "29": "1", + "30": "1", + "31": "1", + "32": "1", + "33": "2", + "34": "1", + "35": "1", + "36": "1", + "37": "1", + "38": "1", + "39": "1", + "40": "1", + "41": "1", + "42": "1", + "43": "1", + "44": "1", + "45": "1", + "46": "5", + "47": "1", + "48": "7", + "49": "1", + "50": "1", + "51": "1", + "52": "1", + "53": "1", + "54": "1", + "55": "1", + "56": "1", + "57": "1", + "58": "1", + "59": "1", + "60": "1", + "61": "1", + "62": "1", + "63": "1" + } + }, +{%- endmacro %} +{%- macro generate_tc_to_pg_map() %} + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "0": "0", + "1": "0", + "2": "0", + "3": "3", + "4": "4", + "5": "0", + "6": "0", + "7": "7" + } + }, +{%- endmacro %} +{%- macro generate_tc_to_queue_map() %} + "TC_TO_QUEUE_MAP": { + "AZURE": { + "0": "0", + "1": "1", + "2": "1", + "3": "3", + "4": "4", + "5": "5", + "6": "6", + "7": "7" + } + }, +{%- endmacro %} +{% endif %} + {%- include 'qos_config.j2' %} diff --git a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-D108C8/qos.json.j2 b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-D108C8/qos.json.j2 deleted file mode 100644 index 3e548325ea30..000000000000 --- a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-D108C8/qos.json.j2 +++ /dev/null @@ -1 +0,0 @@ -{%- include 'qos_config.j2' %} diff --git a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-D108C8/qos.json.j2 b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-D108C8/qos.json.j2 new file mode 120000 index 000000000000..f0ee02749724 --- /dev/null +++ b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-D108C8/qos.json.j2 @@ -0,0 +1 @@ +../Arista-7260CX3-C64/qos.json.j2 \ No newline at end of file diff --git a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-Q64/qos.json.j2 b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-Q64/qos.json.j2 deleted file mode 100644 index 3e548325ea30..000000000000 --- a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-Q64/qos.json.j2 +++ /dev/null @@ -1 +0,0 @@ -{%- include 'qos_config.j2' %} diff --git a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-Q64/qos.json.j2 b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-Q64/qos.json.j2 new file mode 120000 index 000000000000..f0ee02749724 --- /dev/null +++ b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-Q64/qos.json.j2 @@ -0,0 +1 @@ +../Arista-7260CX3-C64/qos.json.j2 \ No newline at end of file diff --git a/files/build_templates/qos_config.j2 b/files/build_templates/qos_config.j2 index 2a01e470fde8..9df061283034 100644 --- a/files/build_templates/qos_config.j2 +++ b/files/build_templates/qos_config.j2 @@ -29,6 +29,13 @@ {%- endfor %} {%- set port_names_active = port_names_list_active | join(',') -%} +{%- set port_names_list_extra_queues = [] %} +{%- for port in PORT_ACTIVE %} + {% if (generate_dscp_to_tc_map is defined) and ('type' in DEVICE_METADATA['localhost'] and DEVICE_METADATA['localhost']['type'] == 'LeafRouter' and DEVICE_NEIGHBOR_METADATA is defined and DEVICE_NEIGHBOR[port].name in DEVICE_NEIGHBOR_METADATA and DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[port].name].type == 'ToRRouter') or + ('subtype' in DEVICE_METADATA['localhost'] and DEVICE_METADATA['localhost']['subtype'] == 'DualToR' and DEVICE_NEIGHBOR_METADATA is defined and DEVICE_NEIGHBOR[port].name in DEVICE_NEIGHBOR_METADATA and DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[port].name].type == 'LeafRouter') %} + {%- if port_names_list_extra_queues.append(port) %}{%- endif %} + {% endif %} +{%- endfor %} {%- set pfc_to_pg_map_supported_asics = ['mellanox', 'barefoot', 'marvell'] -%} {%- set backend_device_types = ['BackEndToRRouter', 'BackEndLeafRouter'] -%} @@ -64,6 +71,9 @@ "7": "7" } }, +{% if generate_tc_to_queue_map is defined %} + {{- generate_tc_to_queue_map() }} +{% else %} "TC_TO_QUEUE_MAP": { "AZURE": { "0": "0", @@ -76,6 +86,7 @@ "7": "7" } }, +{% endif %} {% if 'type' in DEVICE_METADATA['localhost'] and DEVICE_METADATA['localhost']['type'] in backend_device_types and 'storage_device' in DEVICE_METADATA['localhost'] and DEVICE_METADATA['localhost']['storage_device'] == 'true' %} "DOT1P_TO_TC_MAP": { "AZURE": { @@ -89,6 +100,8 @@ "7": "7" } }, +{% elif generate_dscp_to_tc_map is defined %} + {{- generate_dscp_to_tc_map() }} {% else %} "DSCP_TO_TC_MAP": { "AZURE": { @@ -208,7 +221,12 @@ {% if asic_type in pfc_to_pg_map_supported_asics %} "pfc_to_pg_map" : "AZURE", {% endif %} - "pfc_enable" : "3,4" +{% if port in port_names_list_extra_queues %} + "pfc_enable" : "2,3,4,6", +{% else %} + "pfc_enable" : "3,4", +{% endif %} + "pfcwd_sw_enable" : "3,4" }{% if not loop.last %},{% endif %} {% endfor %} @@ -268,7 +286,12 @@ {% endfor %} {% for port in PORT_ACTIVE %} "{{ port }}|2": { + {% if port in port_names_list_extra_queues %} + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + {% else %} "scheduler": "scheduler.0" + {% endif %} }, {% endfor %} {% for port in PORT_ACTIVE %} @@ -278,7 +301,12 @@ {% endfor %} {% for port in PORT_ACTIVE %} "{{ port }}|6": { + {% if port in port_names_list_extra_queues %} + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + {% else %} "scheduler": "scheduler.0" + {% endif %} }{% if not loop.last %},{% endif %} {% endfor %} diff --git a/src/sonic-config-engine/tests/sample-arista-7050cx3-dualtor-minigraph.xml b/src/sonic-config-engine/tests/sample-arista-7050cx3-dualtor-minigraph.xml new file mode 100644 index 000000000000..9ffb8230a6bf --- /dev/null +++ b/src/sonic-config-engine/tests/sample-arista-7050cx3-dualtor-minigraph.xml @@ -0,0 +1,2369 @@ + + + + + + false + str2-7050cx3-acs-10 + 10.0.0.56 + ARISTA01T1 + 10.0.0.57 + 1 + 10 + 3 + + + str2-7050cx3-acs-10 + FC00::71 + ARISTA01T1 + FC00::72 + 1 + 10 + 3 + + + false + str2-7050cx3-acs-10 + 10.0.0.58 + ARISTA02T1 + 10.0.0.59 + 1 + 10 + 3 + + + str2-7050cx3-acs-10 + FC00::75 + ARISTA02T1 + FC00::76 + 1 + 10 + 3 + + + false + str2-7050cx3-acs-10 + 10.0.0.60 + ARISTA03T1 + 10.0.0.61 + 1 + 10 + 3 + + + str2-7050cx3-acs-10 + FC00::79 + ARISTA03T1 + FC00::7A + 1 + 10 + 3 + + + false + str2-7050cx3-acs-10 + 10.0.0.62 + ARISTA04T1 + 10.0.0.63 + 1 + 10 + 3 + + + str2-7050cx3-acs-10 + FC00::7D + ARISTA04T1 + FC00::7E + 1 + 10 + 3 + + + + + 65100 + str2-7050cx3-acs-10 + + +
10.0.0.57
+ + + +
+ +
10.0.0.59
+ + + +
+ +
10.0.0.61
+ + + +
+ +
10.0.0.63
+ + + +
+ + BGPPeer +
10.1.0.32
+ + + + BGPSLBPassive + 10.255.0.0/25 +
+ + BGPPeer +
10.1.0.32
+ + + + BGPVac + 192.168.0.0/21 +
+
+ +
+ + 64600 + ARISTA01T1 + + + + 64600 + ARISTA02T1 + + + + 64600 + ARISTA03T1 + + + + 64600 + ARISTA04T1 + + +
+
+ + + + + + HostIP + Loopback0 + + 10.1.0.32/32 + + 10.1.0.32/32 + + + HostIP1 + Loopback0 + + FC00:1::32/128 + + FC00:1::32/128 + + + HostIP2 + Loopback1 + + 10.1.0.34/32 + + 10.1.0.34/32 + + + HostIP3 + Loopback1 + + FC00:1::34/128 + + FC00:1::34/128 + + HostIP6 + Loopback3 + + 10.1.0.38/32 + + 10.1.0.38/32 + + + HostIP7 + Loopback3 + + FC00:1::38/128 + + FC00:1::38/128 + + HostIP4 + Loopback2 + + 10.1.0.36/32 + + 10.1.0.36/32 + + + HostIP5 + Loopback2 + + FC00:1::36/128 + + FC00:1::36/128 + + + + HostIP + eth0 + + 10.3.146.122/23 + + 10.3.146.122/23 + + + V6HostIP + eth0 + + FC00:2::32/64 + + FC00:2::32/64 + + + + + + + str2-7050cx3-acs-10 + + + PortChannel101 + Ethernet7/1;Ethernet8/1 + + + + PortChannel102 + Ethernet9/1;Ethernet10/1 + + + + PortChannel103 + Ethernet23/1;Ethernet24/1 + + + + PortChannel104 + Ethernet25/1;Ethernet26/1 + + + + + + + + + Vlan1000 + Ethernet1/1;Ethernet2/1;Ethernet3/1;Ethernet4/1;Ethernet5/1;Ethernet6/1;Ethernet11/1;Ethernet12/1;Ethernet13/1;Ethernet14/1;Ethernet15/1;Ethernet16/1;Ethernet17/1;Ethernet18/1;Ethernet19/1;Ethernet20/1;Ethernet21/1;Ethernet22/1;Ethernet27/1;Ethernet28/1;Ethernet29/1;Ethernet30/1;Ethernet31/1;Ethernet32/1 + False + 0.0.0.0/0 + 192.0.0.1;192.0.0.2;192.0.0.3;192.0.0.4;192.0.0.5;192.0.0.6;192.0.0.7;192.0.0.8;192.0.0.9;192.0.0.10;192.0.0.11;192.0.0.12;192.0.0.13;192.0.0.14;192.0.0.15;192.0.0.16;192.0.0.17;192.0.0.18;192.0.0.19;192.0.0.20;192.0.0.21;192.0.0.22;192.0.0.23;192.0.0.24;192.0.0.25;192.0.0.26;192.0.0.27;192.0.0.28;192.0.0.29;192.0.0.30;192.0.0.31;192.0.0.32;192.0.0.33;192.0.0.34;192.0.0.35;192.0.0.36;192.0.0.37;192.0.0.38;192.0.0.39;192.0.0.40;192.0.0.41;192.0.0.42;192.0.0.43;192.0.0.44;192.0.0.45;192.0.0.46;192.0.0.47;192.0.0.48 + fc02:2000::1;fc02:2000::2;fc02:2000::3;fc02:2000::4 + 1000 + 1000 + 192.168.0.0/21 + 00:aa:bb:cc:dd:ee + + + + + + PortChannel101 + 10.0.0.56/31 + + + + PortChannel101 + FC00::71/126 + + + + PortChannel102 + 10.0.0.58/31 + + + + PortChannel102 + FC00::75/126 + + + + PortChannel103 + 10.0.0.60/31 + + + + PortChannel103 + FC00::79/126 + + + + PortChannel104 + 10.0.0.62/31 + + + + PortChannel104 + FC00::7D/126 + + + + Vlan1000 + 192.168.0.1/21 + + + + Vlan1000 + fc02:1000::1/64 + + + + + + NTP_ACL + NTP + NTP + + + SNMP_ACL + SNMP + SNMP + + + ERSPAN + Everflow + Everflow + + + ERSPANV6 + EverflowV6 + EverflowV6 + + + VTY_LINE + ssh-only + SSH + + + + + + + + + + DeviceInterfaceLink + ARISTA01T1 + Ethernet1 + str2-7050cx3-acs-10 + Ethernet7/1 + + + DeviceInterfaceLink + ARISTA01T1 + Ethernet2 + str2-7050cx3-acs-10 + Ethernet8/1 + + + DeviceInterfaceLink + ARISTA02T1 + Ethernet1 + str2-7050cx3-acs-10 + Ethernet9/1 + + + DeviceInterfaceLink + ARISTA02T1 + Ethernet2 + str2-7050cx3-acs-10 + Ethernet10/1 + + + DeviceInterfaceLink + ARISTA03T1 + Ethernet1 + str2-7050cx3-acs-10 + Ethernet23/1 + + + DeviceInterfaceLink + ARISTA03T1 + Ethernet2 + str2-7050cx3-acs-10 + Ethernet24/1 + + + DeviceInterfaceLink + ARISTA04T1 + Ethernet1 + str2-7050cx3-acs-10 + Ethernet25/1 + + + DeviceInterfaceLink + ARISTA04T1 + Ethernet2 + str2-7050cx3-acs-10 + Ethernet26/1 + + + DeviceInterfaceLink + str2-7050cx3-acs-10 + Ethernet1/1 + Servers0 + eth0 + + + DeviceInterfaceLink + str2-7050cx3-acs-10 + Ethernet2/1 + Servers1 + eth0 + + + DeviceInterfaceLink + str2-7050cx3-acs-10 + Ethernet3/1 + Servers2 + eth0 + + + DeviceInterfaceLink + str2-7050cx3-acs-10 + Ethernet4/1 + Servers3 + eth0 + + + DeviceInterfaceLink + str2-7050cx3-acs-10 + Ethernet5/1 + Servers4 + eth0 + + + DeviceInterfaceLink + str2-7050cx3-acs-10 + Ethernet6/1 + Servers5 + eth0 + + + DeviceInterfaceLink + str2-7050cx3-acs-10 + Ethernet11/1 + Servers6 + eth0 + + + DeviceInterfaceLink + str2-7050cx3-acs-10 + Ethernet12/1 + Servers7 + eth0 + + + DeviceInterfaceLink + str2-7050cx3-acs-10 + Ethernet13/1 + Servers8 + eth0 + + + DeviceInterfaceLink + str2-7050cx3-acs-10 + Ethernet14/1 + Servers9 + eth0 + + + DeviceInterfaceLink + str2-7050cx3-acs-10 + Ethernet15/1 + Servers10 + eth0 + + + DeviceInterfaceLink + str2-7050cx3-acs-10 + Ethernet16/1 + Servers11 + eth0 + + + DeviceInterfaceLink + str2-7050cx3-acs-10 + Ethernet17/1 + Servers12 + eth0 + + + DeviceInterfaceLink + str2-7050cx3-acs-10 + Ethernet18/1 + Servers13 + eth0 + + + DeviceInterfaceLink + str2-7050cx3-acs-10 + Ethernet19/1 + Servers14 + eth0 + + + DeviceInterfaceLink + str2-7050cx3-acs-10 + Ethernet20/1 + Servers15 + eth0 + + + DeviceInterfaceLink + str2-7050cx3-acs-10 + Ethernet21/1 + Servers16 + eth0 + + + DeviceInterfaceLink + str2-7050cx3-acs-10 + Ethernet22/1 + Servers17 + eth0 + + + DeviceInterfaceLink + str2-7050cx3-acs-10 + Ethernet27/1 + Servers18 + eth0 + + + DeviceInterfaceLink + str2-7050cx3-acs-10 + Ethernet28/1 + Servers19 + eth0 + + + DeviceInterfaceLink + str2-7050cx3-acs-10 + Ethernet29/1 + Servers20 + eth0 + + + DeviceInterfaceLink + str2-7050cx3-acs-10 + Ethernet30/1 + Servers21 + eth0 + + + DeviceInterfaceLink + str2-7050cx3-acs-10 + Ethernet31/1 + Servers22 + eth0 + + + DeviceInterfaceLink + str2-7050cx3-acs-10 + Ethernet32/1 + Servers23 + eth0 + + + LogicalLink + str2-7050cx3-acs-10 + Ethernet1/1 + str2-7050cx3-acs-10-Servers0-SC + U + + + LogicalLink + str2-7050cx3-acs-10 + Ethernet2/1 + str2-7050cx3-acs-10-Servers1-SC + U + + + LogicalLink + str2-7050cx3-acs-10 + Ethernet3/1 + str2-7050cx3-acs-10-Servers2-SC + U + + + LogicalLink + str2-7050cx3-acs-10 + Ethernet4/1 + str2-7050cx3-acs-10-Servers3-SC + U + + + LogicalLink + str2-7050cx3-acs-10 + Ethernet5/1 + str2-7050cx3-acs-10-Servers4-SC + U + + + LogicalLink + str2-7050cx3-acs-10 + Ethernet6/1 + str2-7050cx3-acs-10-Servers5-SC + U + + + LogicalLink + str2-7050cx3-acs-10 + Ethernet11/1 + str2-7050cx3-acs-10-Servers6-SC + U + + + LogicalLink + str2-7050cx3-acs-10 + Ethernet12/1 + str2-7050cx3-acs-10-Servers7-SC + U + + + LogicalLink + str2-7050cx3-acs-10 + Ethernet13/1 + str2-7050cx3-acs-10-Servers8-SC + U + + + LogicalLink + str2-7050cx3-acs-10 + Ethernet14/1 + str2-7050cx3-acs-10-Servers9-SC + U + + + LogicalLink + str2-7050cx3-acs-10 + Ethernet15/1 + str2-7050cx3-acs-10-Servers10-SC + U + + + LogicalLink + str2-7050cx3-acs-10 + Ethernet16/1 + str2-7050cx3-acs-10-Servers11-SC + U + + + LogicalLink + str2-7050cx3-acs-10 + Ethernet17/1 + str2-7050cx3-acs-10-Servers12-SC + U + + + LogicalLink + str2-7050cx3-acs-10 + Ethernet18/1 + str2-7050cx3-acs-10-Servers13-SC + U + + + LogicalLink + str2-7050cx3-acs-10 + Ethernet19/1 + str2-7050cx3-acs-10-Servers14-SC + U + + + LogicalLink + str2-7050cx3-acs-10 + Ethernet20/1 + str2-7050cx3-acs-10-Servers15-SC + U + + + LogicalLink + str2-7050cx3-acs-10 + Ethernet21/1 + str2-7050cx3-acs-10-Servers16-SC + U + + + LogicalLink + str2-7050cx3-acs-10 + Ethernet22/1 + str2-7050cx3-acs-10-Servers17-SC + U + + + LogicalLink + str2-7050cx3-acs-10 + Ethernet27/1 + str2-7050cx3-acs-10-Servers18-SC + U + + + LogicalLink + str2-7050cx3-acs-10 + Ethernet28/1 + str2-7050cx3-acs-10-Servers19-SC + U + + + LogicalLink + str2-7050cx3-acs-10 + Ethernet29/1 + str2-7050cx3-acs-10-Servers20-SC + U + + + LogicalLink + str2-7050cx3-acs-10 + Ethernet30/1 + str2-7050cx3-acs-10-Servers21-SC + U + + + LogicalLink + str2-7050cx3-acs-10 + Ethernet31/1 + str2-7050cx3-acs-10-Servers22-SC + U + + + LogicalLink + str2-7050cx3-acs-10 + Ethernet32/1 + str2-7050cx3-acs-10-Servers23-SC + U + + + + + str2-7050cx3-acs-10 + Arista-7050CX3-32S-D48C8 +
+ 10.1.0.32/32 +
+ + FC00:1::32/128 + + + 10.3.146.122 + +
+ + str2-7050cx3-acs-11 + Arista-7050CX3-32S-D48C8 +
+ 10.1.0.33/32 +
+ + FC00:1::33/128 + + + 10.3.146.127 + +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7050cx3-acs-10-Servers0-SC +
+ + Server +
+ 192.168.0.2/26 +
+ + fc02:1000::2/96 + + + 0.0.0.0/0 + + Servers0 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7050cx3-acs-10-Servers1-SC +
+ + Server +
+ 192.168.0.3/26 +
+ + fc02:1000::3/96 + + + 0.0.0.0/0 + + Servers1 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7050cx3-acs-10-Servers2-SC +
+ + Server +
+ 192.168.0.4/26 +
+ + fc02:1000::4/96 + + + 0.0.0.0/0 + + Servers2 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7050cx3-acs-10-Servers3-SC +
+ + Server +
+ 192.168.0.5/26 +
+ + fc02:1000::5/96 + + + 0.0.0.0/0 + + Servers3 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7050cx3-acs-10-Servers4-SC +
+ + Server +
+ 192.168.0.6/26 +
+ + fc02:1000::6/96 + + + 0.0.0.0/0 + + Servers4 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7050cx3-acs-10-Servers5-SC +
+ + Server +
+ 192.168.0.7/26 +
+ + fc02:1000::7/96 + + + 0.0.0.0/0 + + Servers5 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7050cx3-acs-10-Servers6-SC +
+ + Server +
+ 192.168.0.8/26 +
+ + fc02:1000::8/96 + + + 0.0.0.0/0 + + Servers6 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7050cx3-acs-10-Servers7-SC +
+ + Server +
+ 192.168.0.9/26 +
+ + fc02:1000::9/96 + + + 0.0.0.0/0 + + Servers7 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7050cx3-acs-10-Servers8-SC +
+ + Server +
+ 192.168.0.10/26 +
+ + fc02:1000::a/96 + + + 0.0.0.0/0 + + Servers8 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7050cx3-acs-10-Servers9-SC +
+ + Server +
+ 192.168.0.11/26 +
+ + fc02:1000::b/96 + + + 0.0.0.0/0 + + Servers9 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7050cx3-acs-10-Servers10-SC +
+ + Server +
+ 192.168.0.12/26 +
+ + fc02:1000::c/96 + + + 0.0.0.0/0 + + Servers10 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7050cx3-acs-10-Servers11-SC +
+ + Server +
+ 192.168.0.13/26 +
+ + fc02:1000::d/96 + + + 0.0.0.0/0 + + Servers11 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7050cx3-acs-10-Servers12-SC +
+ + Server +
+ 192.168.0.14/26 +
+ + fc02:1000::e/96 + + + 0.0.0.0/0 + + Servers12 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7050cx3-acs-10-Servers13-SC +
+ + Server +
+ 192.168.0.15/26 +
+ + fc02:1000::f/96 + + + 0.0.0.0/0 + + Servers13 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7050cx3-acs-10-Servers14-SC +
+ + Server +
+ 192.168.0.16/26 +
+ + fc02:1000::10/96 + + + 0.0.0.0/0 + + Servers14 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7050cx3-acs-10-Servers15-SC +
+ + Server +
+ 192.168.0.17/26 +
+ + fc02:1000::11/96 + + + 0.0.0.0/0 + + Servers15 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7050cx3-acs-10-Servers16-SC +
+ + Server +
+ 192.168.0.18/26 +
+ + fc02:1000::12/96 + + + 0.0.0.0/0 + + Servers16 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7050cx3-acs-10-Servers17-SC +
+ + Server +
+ 192.168.0.19/26 +
+ + fc02:1000::13/96 + + + 0.0.0.0/0 + + Servers17 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7050cx3-acs-10-Servers18-SC +
+ + Server +
+ 192.168.0.20/26 +
+ + fc02:1000::14/96 + + + 0.0.0.0/0 + + Servers18 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7050cx3-acs-10-Servers19-SC +
+ + Server +
+ 192.168.0.21/26 +
+ + fc02:1000::15/96 + + + 0.0.0.0/0 + + Servers19 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7050cx3-acs-10-Servers20-SC +
+ + Server +
+ 192.168.0.22/26 +
+ + fc02:1000::16/96 + + + 0.0.0.0/0 + + Servers20 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7050cx3-acs-10-Servers21-SC +
+ + Server +
+ 192.168.0.23/26 +
+ + fc02:1000::17/96 + + + 0.0.0.0/0 + + Servers21 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7050cx3-acs-10-Servers22-SC +
+ + Server +
+ 192.168.0.24/26 +
+ + fc02:1000::18/96 + + + 0.0.0.0/0 + + Servers22 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7050cx3-acs-10-Servers23-SC +
+ + Server +
+ 192.168.0.25/26 +
+ + fc02:1000::19/96 + + + 0.0.0.0/0 + + Servers23 +
+ + ARISTA04T1 + + 172.16.142.63 + + Arista-VM + + + ARISTA03T1 + + 172.16.142.62 + + Arista-VM + + + ARISTA02T1 + + 172.16.142.61 + + Arista-VM + + + ARISTA01T1 + + 172.16.142.60 + + Arista-VM + +
+
+ + + true + + + DeviceInterface + + true + true + 1 + Ethernet1/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet1/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet2/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet2/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet3/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet3/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet4/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet4/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet5/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet5/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet6/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet6/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet7/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet8/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet9/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet10/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet11/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet11/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet12/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet12/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet13/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet13/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet14/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet14/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet15/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet15/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet16/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet16/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet17/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet17/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet18/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet18/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet19/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet19/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet20/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet20/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet21/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet21/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet22/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet22/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet23/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet24/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet25/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet26/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet27/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet27/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet28/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet28/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet29/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet29/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet30/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet30/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet31/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet31/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet32/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet32/3 + + false + 0 + 0 + 50000 + + + true + 0 + Arista-7050CX3-32S-D48C8 + + + + + + + str2-7050cx3-acs-10 + + + DeploymentId + + 1 + + + QosProfile + + Profile0 + + + GeminiEnabled + + True + + + DhcpResources + + 192.0.0.1;192.0.0.2;192.0.0.3;192.0.0.4;192.0.0.5;192.0.0.6;192.0.0.7;192.0.0.8;192.0.0.9;192.0.0.10;192.0.0.11;192.0.0.12;192.0.0.13;192.0.0.14;192.0.0.15;192.0.0.16;192.0.0.17;192.0.0.18;192.0.0.19;192.0.0.20;192.0.0.21;192.0.0.22;192.0.0.23;192.0.0.24;192.0.0.25;192.0.0.26;192.0.0.27;192.0.0.28;192.0.0.29;192.0.0.30;192.0.0.31;192.0.0.32;192.0.0.33;192.0.0.34;192.0.0.35;192.0.0.36;192.0.0.37;192.0.0.38;192.0.0.39;192.0.0.40;192.0.0.41;192.0.0.42;192.0.0.43;192.0.0.44;192.0.0.45;192.0.0.46;192.0.0.47;192.0.0.48 + + + NtpResources + + 10.20.8.129;10.20.8.130 + + + SnmpResources + + 10.3.145.98 + + + SyslogResources + + 10.64.246.95 + + + TacacsGroup + + Starlab + + + TacacsServer + + 100.127.20.21 + + + ForcedMgmtRoutes + + 10.3.145.98/31;10.3.145.8;100.127.20.16/28;10.3.149.170/31;40.122.216.24;13.91.48.226;10.3.145.14;10.64.246.0/24;10.3.146.0/23;10.64.5.5 + + + ErspanDestinationIpv4 + + 10.20.6.16 + + + + + + + + + + + + + GeminiPeeringLink + + True + + + UpperTOR + + str2-7050cx3-acs-10 + + + LowerTOR + + str2-7050cx3-acs-11 + + + str2-7050cx3-acs-11:MuxTunnel0;str2-7050cx3-acs-10:MuxTunnel0 + + + + str2-7050cx3-acs-10 + Arista-7050CX3-32S-D48C8 +
diff --git a/src/sonic-config-engine/tests/sample-arista-7260-dualtor-minigraph.xml b/src/sonic-config-engine/tests/sample-arista-7260-dualtor-minigraph.xml new file mode 100644 index 000000000000..01a42f934726 --- /dev/null +++ b/src/sonic-config-engine/tests/sample-arista-7260-dualtor-minigraph.xml @@ -0,0 +1,4635 @@ + + + + + + false + str2-7260cx3-acs-12 + 10.0.0.56 + ARISTA01T1 + 10.0.0.57 + 1 + 10 + 3 + + + str2-7260cx3-acs-12 + FC00::71 + ARISTA01T1 + FC00::72 + 1 + 10 + 3 + + + false + str2-7260cx3-acs-12 + 10.0.0.58 + ARISTA02T1 + 10.0.0.59 + 1 + 10 + 3 + + + str2-7260cx3-acs-12 + FC00::75 + ARISTA02T1 + FC00::76 + 1 + 10 + 3 + + + false + str2-7260cx3-acs-12 + 10.0.0.60 + ARISTA03T1 + 10.0.0.61 + 1 + 10 + 3 + + + str2-7260cx3-acs-12 + FC00::79 + ARISTA03T1 + FC00::7A + 1 + 10 + 3 + + + false + str2-7260cx3-acs-12 + 10.0.0.62 + ARISTA04T1 + 10.0.0.63 + 1 + 10 + 3 + + + str2-7260cx3-acs-12 + FC00::7D + ARISTA04T1 + FC00::7E + 1 + 10 + 3 + + + + + 65100 + str2-7260cx3-acs-12 + + +
10.0.0.57
+ + + +
+ +
10.0.0.59
+ + + +
+ +
10.0.0.61
+ + + +
+ +
10.0.0.63
+ + + +
+ + BGPPeer +
10.1.0.32
+ + + + BGPSLBPassive + 10.255.0.0/25 +
+ + BGPPeer +
10.1.0.32
+ + + + BGPVac + 192.168.0.0/21 +
+
+ +
+ + 64600 + ARISTA01T1 + + + + 64600 + ARISTA02T1 + + + + 64600 + ARISTA03T1 + + + + 64600 + ARISTA04T1 + + +
+
+ + + + + + HostIP + Loopback0 + + 10.1.0.32/32 + + 10.1.0.32/32 + + + HostIP1 + Loopback0 + + FC00:1::32/128 + + FC00:1::32/128 + + + HostIP2 + Loopback1 + + 10.1.0.34/32 + + 10.1.0.34/32 + + + HostIP3 + Loopback1 + + FC00:1::34/128 + + FC00:1::34/128 + + HostIP6 + Loopback3 + + 10.1.0.38/32 + + 10.1.0.38/32 + + + HostIP7 + Loopback3 + + FC00:1::38/128 + + FC00:1::38/128 + + HostIP4 + Loopback2 + + 10.1.0.36/32 + + 10.1.0.36/32 + + + HostIP5 + Loopback2 + + FC00:1::36/128 + + FC00:1::36/128 + + + + HostIP + eth0 + + 10.3.147.165/23 + + 10.3.147.165/23 + + + V6HostIP + eth0 + + FC00:2::32/64 + + FC00:2::32/64 + + + + + + + str2-7260cx3-acs-12 + + + PortChannel101 + Ethernet13/1;Ethernet14/1 + + + + PortChannel102 + Ethernet15/1;Ethernet16/1 + + + + PortChannel103 + Ethernet17/1;Ethernet18/1 + + + + PortChannel104 + Ethernet19/1;Ethernet20/1 + + + + + + + + + Vlan1000 + Ethernet1/1;Ethernet2/1;Ethernet3/1;Ethernet4/1;Ethernet5/1;Ethernet6/1;Ethernet7/1;Ethernet8/1;Ethernet9/1;Ethernet10/1;Ethernet11/1;Ethernet12/1;Ethernet21/1;Ethernet22/1;Ethernet23/1;Ethernet24/1;Ethernet25/1;Ethernet26/1;Ethernet27/1;Ethernet28/1;Ethernet29/1;Ethernet30/1;Ethernet31/1;Ethernet32/1;Ethernet33/1;Ethernet34/1;Ethernet35/1;Ethernet36/1;Ethernet37/1;Ethernet38/1;Ethernet39/1;Ethernet40/1;Ethernet41/1;Ethernet42/1;Ethernet43/1;Ethernet44/1;Ethernet45/1;Ethernet46/1;Ethernet47/1;Ethernet48/1;Ethernet49/1;Ethernet50/1;Ethernet51/1;Ethernet52/1;Ethernet53/1;Ethernet54/1;Ethernet55/1;Ethernet56/1;Ethernet57/1;Ethernet58/1;Ethernet59/1;Ethernet60/1;Ethernet61/1;Ethernet62/1;Ethernet63/1;Ethernet64/1 + False + 0.0.0.0/0 + 192.0.0.1;192.0.0.2;192.0.0.3;192.0.0.4;192.0.0.5;192.0.0.6;192.0.0.7;192.0.0.8;192.0.0.9;192.0.0.10;192.0.0.11;192.0.0.12;192.0.0.13;192.0.0.14;192.0.0.15;192.0.0.16;192.0.0.17;192.0.0.18;192.0.0.19;192.0.0.20;192.0.0.21;192.0.0.22;192.0.0.23;192.0.0.24;192.0.0.25;192.0.0.26;192.0.0.27;192.0.0.28;192.0.0.29;192.0.0.30;192.0.0.31;192.0.0.32;192.0.0.33;192.0.0.34;192.0.0.35;192.0.0.36;192.0.0.37;192.0.0.38;192.0.0.39;192.0.0.40;192.0.0.41;192.0.0.42;192.0.0.43;192.0.0.44;192.0.0.45;192.0.0.46;192.0.0.47;192.0.0.48 + fc02:2000::1;fc02:2000::2;fc02:2000::3;fc02:2000::4 + 1000 + 1000 + 192.168.0.0/21 + 00:aa:bb:cc:dd:ee + + + + + + PortChannel101 + 10.0.0.56/31 + + + + PortChannel101 + FC00::71/126 + + + + PortChannel102 + 10.0.0.58/31 + + + + PortChannel102 + FC00::75/126 + + + + PortChannel103 + 10.0.0.60/31 + + + + PortChannel103 + FC00::79/126 + + + + PortChannel104 + 10.0.0.62/31 + + + + PortChannel104 + FC00::7D/126 + + + + Vlan1000 + 192.168.0.1/21 + + + + Vlan1000 + fc02:1000::1/64 + + + + + + NTP_ACL + NTP + NTP + + + SNMP_ACL + SNMP + SNMP + + + ERSPAN + Everflow + Everflow + + + ERSPANV6 + EverflowV6 + EverflowV6 + + + VTY_LINE + ssh-only + SSH + + + + + + + + + + DeviceInterfaceLink + ARISTA01T1 + Ethernet1 + str2-7260cx3-acs-12 + Ethernet13/1 + + + DeviceInterfaceLink + ARISTA01T1 + Ethernet2 + str2-7260cx3-acs-12 + Ethernet14/1 + + + DeviceInterfaceLink + ARISTA02T1 + Ethernet1 + str2-7260cx3-acs-12 + Ethernet15/1 + + + DeviceInterfaceLink + ARISTA02T1 + Ethernet2 + str2-7260cx3-acs-12 + Ethernet16/1 + + + DeviceInterfaceLink + ARISTA03T1 + Ethernet1 + str2-7260cx3-acs-12 + Ethernet17/1 + + + DeviceInterfaceLink + ARISTA03T1 + Ethernet2 + str2-7260cx3-acs-12 + Ethernet18/1 + + + DeviceInterfaceLink + ARISTA04T1 + Ethernet1 + str2-7260cx3-acs-12 + Ethernet19/1 + + + DeviceInterfaceLink + ARISTA04T1 + Ethernet2 + str2-7260cx3-acs-12 + Ethernet20/1 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet1/1 + Servers0 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet2/1 + Servers1 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet3/1 + Servers2 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet4/1 + Servers3 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet5/1 + Servers4 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet6/1 + Servers5 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet7/1 + Servers6 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet8/1 + Servers7 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet9/1 + Servers8 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet10/1 + Servers9 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet11/1 + Servers10 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet12/1 + Servers11 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet21/1 + Servers12 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet22/1 + Servers13 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet23/1 + Servers14 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet24/1 + Servers15 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet25/1 + Servers16 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet26/1 + Servers17 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet27/1 + Servers18 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet28/1 + Servers19 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet29/1 + Servers20 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet30/1 + Servers21 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet31/1 + Servers22 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet32/1 + Servers23 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet33/1 + Servers24 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet34/1 + Servers25 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet35/1 + Servers26 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet36/1 + Servers27 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet37/1 + Servers28 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet38/1 + Servers29 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet39/1 + Servers30 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet40/1 + Servers31 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet41/1 + Servers32 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet42/1 + Servers33 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet43/1 + Servers34 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet44/1 + Servers35 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet45/1 + Servers36 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet46/1 + Servers37 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet47/1 + Servers38 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet48/1 + Servers39 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet49/1 + Servers40 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet50/1 + Servers41 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet51/1 + Servers42 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet52/1 + Servers43 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet53/1 + Servers44 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet54/1 + Servers45 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet55/1 + Servers46 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet56/1 + Servers47 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet57/1 + Servers48 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet58/1 + Servers49 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet59/1 + Servers50 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet60/1 + Servers51 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet61/1 + Servers52 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet62/1 + Servers53 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet63/1 + Servers54 + eth0 + + + DeviceInterfaceLink + str2-7260cx3-acs-12 + Ethernet64/1 + Servers55 + eth0 + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet1/1 + str2-7260cx3-acs-12-Servers0-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet2/1 + str2-7260cx3-acs-12-Servers1-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet3/1 + str2-7260cx3-acs-12-Servers2-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet4/1 + str2-7260cx3-acs-12-Servers3-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet5/1 + str2-7260cx3-acs-12-Servers4-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet6/1 + str2-7260cx3-acs-12-Servers5-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet7/1 + str2-7260cx3-acs-12-Servers6-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet8/1 + str2-7260cx3-acs-12-Servers7-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet9/1 + str2-7260cx3-acs-12-Servers8-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet10/1 + str2-7260cx3-acs-12-Servers9-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet11/1 + str2-7260cx3-acs-12-Servers10-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet12/1 + str2-7260cx3-acs-12-Servers11-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet21/1 + str2-7260cx3-acs-12-Servers12-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet22/1 + str2-7260cx3-acs-12-Servers13-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet23/1 + str2-7260cx3-acs-12-Servers14-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet24/1 + str2-7260cx3-acs-12-Servers15-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet25/1 + str2-7260cx3-acs-12-Servers16-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet26/1 + str2-7260cx3-acs-12-Servers17-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet27/1 + str2-7260cx3-acs-12-Servers18-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet28/1 + str2-7260cx3-acs-12-Servers19-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet29/1 + str2-7260cx3-acs-12-Servers20-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet30/1 + str2-7260cx3-acs-12-Servers21-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet31/1 + str2-7260cx3-acs-12-Servers22-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet32/1 + str2-7260cx3-acs-12-Servers23-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet33/1 + str2-7260cx3-acs-12-Servers24-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet34/1 + str2-7260cx3-acs-12-Servers25-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet35/1 + str2-7260cx3-acs-12-Servers26-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet36/1 + str2-7260cx3-acs-12-Servers27-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet37/1 + str2-7260cx3-acs-12-Servers28-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet38/1 + str2-7260cx3-acs-12-Servers29-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet39/1 + str2-7260cx3-acs-12-Servers30-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet40/1 + str2-7260cx3-acs-12-Servers31-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet41/1 + str2-7260cx3-acs-12-Servers32-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet42/1 + str2-7260cx3-acs-12-Servers33-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet43/1 + str2-7260cx3-acs-12-Servers34-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet44/1 + str2-7260cx3-acs-12-Servers35-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet45/1 + str2-7260cx3-acs-12-Servers36-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet46/1 + str2-7260cx3-acs-12-Servers37-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet47/1 + str2-7260cx3-acs-12-Servers38-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet48/1 + str2-7260cx3-acs-12-Servers39-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet49/1 + str2-7260cx3-acs-12-Servers40-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet50/1 + str2-7260cx3-acs-12-Servers41-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet51/1 + str2-7260cx3-acs-12-Servers42-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet52/1 + str2-7260cx3-acs-12-Servers43-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet53/1 + str2-7260cx3-acs-12-Servers44-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet54/1 + str2-7260cx3-acs-12-Servers45-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet55/1 + str2-7260cx3-acs-12-Servers46-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet56/1 + str2-7260cx3-acs-12-Servers47-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet57/1 + str2-7260cx3-acs-12-Servers48-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet58/1 + str2-7260cx3-acs-12-Servers49-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet59/1 + str2-7260cx3-acs-12-Servers50-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet60/1 + str2-7260cx3-acs-12-Servers51-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet61/1 + str2-7260cx3-acs-12-Servers52-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet62/1 + str2-7260cx3-acs-12-Servers53-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet63/1 + str2-7260cx3-acs-12-Servers54-SC + U + + + LogicalLink + str2-7260cx3-acs-12 + Ethernet64/1 + str2-7260cx3-acs-12-Servers55-SC + U + + + + + str2-7260cx3-acs-12 + Arista-7260CX3-D108C8 +
+ 10.1.0.32/32 +
+ + FC00:1::32/128 + + + 10.3.147.165 + +
+ + str2-7260cx3-acs-13 + Arista-7260CX3-D108C8 +
+ 10.1.0.33/32 +
+ + FC00:1::33/128 + + + 10.3.147.167 + +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers0-SC +
+ + Server +
+ 192.168.0.2/26 +
+ + fc02:1000::2/96 + + + 0.0.0.0/0 + + Servers0 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers1-SC +
+ + Server +
+ 192.168.0.3/26 +
+ + fc02:1000::3/96 + + + 0.0.0.0/0 + + Servers1 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers2-SC +
+ + Server +
+ 192.168.0.4/26 +
+ + fc02:1000::4/96 + + + 0.0.0.0/0 + + Servers2 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers3-SC +
+ + Server +
+ 192.168.0.5/26 +
+ + fc02:1000::5/96 + + + 0.0.0.0/0 + + Servers3 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers4-SC +
+ + Server +
+ 192.168.0.6/26 +
+ + fc02:1000::6/96 + + + 0.0.0.0/0 + + Servers4 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers5-SC +
+ + Server +
+ 192.168.0.7/26 +
+ + fc02:1000::7/96 + + + 0.0.0.0/0 + + Servers5 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers6-SC +
+ + Server +
+ 192.168.0.8/26 +
+ + fc02:1000::8/96 + + + 0.0.0.0/0 + + Servers6 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers7-SC +
+ + Server +
+ 192.168.0.9/26 +
+ + fc02:1000::9/96 + + + 0.0.0.0/0 + + Servers7 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers8-SC +
+ + Server +
+ 192.168.0.10/26 +
+ + fc02:1000::a/96 + + + 0.0.0.0/0 + + Servers8 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers9-SC +
+ + Server +
+ 192.168.0.11/26 +
+ + fc02:1000::b/96 + + + 0.0.0.0/0 + + Servers9 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers10-SC +
+ + Server +
+ 192.168.0.12/26 +
+ + fc02:1000::c/96 + + + 0.0.0.0/0 + + Servers10 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers11-SC +
+ + Server +
+ 192.168.0.13/26 +
+ + fc02:1000::d/96 + + + 0.0.0.0/0 + + Servers11 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers12-SC +
+ + Server +
+ 192.168.0.14/26 +
+ + fc02:1000::e/96 + + + 0.0.0.0/0 + + Servers12 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers13-SC +
+ + Server +
+ 192.168.0.15/26 +
+ + fc02:1000::f/96 + + + 0.0.0.0/0 + + Servers13 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers14-SC +
+ + Server +
+ 192.168.0.16/26 +
+ + fc02:1000::10/96 + + + 0.0.0.0/0 + + Servers14 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers15-SC +
+ + Server +
+ 192.168.0.17/26 +
+ + fc02:1000::11/96 + + + 0.0.0.0/0 + + Servers15 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers16-SC +
+ + Server +
+ 192.168.0.18/26 +
+ + fc02:1000::12/96 + + + 0.0.0.0/0 + + Servers16 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers17-SC +
+ + Server +
+ 192.168.0.19/26 +
+ + fc02:1000::13/96 + + + 0.0.0.0/0 + + Servers17 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers18-SC +
+ + Server +
+ 192.168.0.20/26 +
+ + fc02:1000::14/96 + + + 0.0.0.0/0 + + Servers18 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers19-SC +
+ + Server +
+ 192.168.0.21/26 +
+ + fc02:1000::15/96 + + + 0.0.0.0/0 + + Servers19 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers20-SC +
+ + Server +
+ 192.168.0.22/26 +
+ + fc02:1000::16/96 + + + 0.0.0.0/0 + + Servers20 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers21-SC +
+ + Server +
+ 192.168.0.23/26 +
+ + fc02:1000::17/96 + + + 0.0.0.0/0 + + Servers21 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers22-SC +
+ + Server +
+ 192.168.0.24/26 +
+ + fc02:1000::18/96 + + + 0.0.0.0/0 + + Servers22 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers23-SC +
+ + Server +
+ 192.168.0.25/26 +
+ + fc02:1000::19/96 + + + 0.0.0.0/0 + + Servers23 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers24-SC +
+ + Server +
+ 192.168.0.26/26 +
+ + fc02:1000::1a/96 + + + 0.0.0.0/0 + + Servers24 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers25-SC +
+ + Server +
+ 192.168.0.27/26 +
+ + fc02:1000::1b/96 + + + 0.0.0.0/0 + + Servers25 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers26-SC +
+ + Server +
+ 192.168.0.28/26 +
+ + fc02:1000::1c/96 + + + 0.0.0.0/0 + + Servers26 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers27-SC +
+ + Server +
+ 192.168.0.29/26 +
+ + fc02:1000::1d/96 + + + 0.0.0.0/0 + + Servers27 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers28-SC +
+ + Server +
+ 192.168.0.30/26 +
+ + fc02:1000::1e/96 + + + 0.0.0.0/0 + + Servers28 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers29-SC +
+ + Server +
+ 192.168.0.31/26 +
+ + fc02:1000::1f/96 + + + 0.0.0.0/0 + + Servers29 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers30-SC +
+ + Server +
+ 192.168.0.32/26 +
+ + fc02:1000::20/96 + + + 0.0.0.0/0 + + Servers30 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers31-SC +
+ + Server +
+ 192.168.0.33/26 +
+ + fc02:1000::21/96 + + + 0.0.0.0/0 + + Servers31 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers32-SC +
+ + Server +
+ 192.168.0.34/26 +
+ + fc02:1000::22/96 + + + 0.0.0.0/0 + + Servers32 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers33-SC +
+ + Server +
+ 192.168.0.35/26 +
+ + fc02:1000::23/96 + + + 0.0.0.0/0 + + Servers33 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers34-SC +
+ + Server +
+ 192.168.0.36/26 +
+ + fc02:1000::24/96 + + + 0.0.0.0/0 + + Servers34 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers35-SC +
+ + Server +
+ 192.168.0.37/26 +
+ + fc02:1000::25/96 + + + 0.0.0.0/0 + + Servers35 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers36-SC +
+ + Server +
+ 192.168.0.38/26 +
+ + fc02:1000::26/96 + + + 0.0.0.0/0 + + Servers36 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers37-SC +
+ + Server +
+ 192.168.0.39/26 +
+ + fc02:1000::27/96 + + + 0.0.0.0/0 + + Servers37 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers38-SC +
+ + Server +
+ 192.168.0.40/26 +
+ + fc02:1000::28/96 + + + 0.0.0.0/0 + + Servers38 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers39-SC +
+ + Server +
+ 192.168.0.41/26 +
+ + fc02:1000::29/96 + + + 0.0.0.0/0 + + Servers39 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers40-SC +
+ + Server +
+ 192.168.0.42/26 +
+ + fc02:1000::2a/96 + + + 0.0.0.0/0 + + Servers40 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers41-SC +
+ + Server +
+ 192.168.0.43/26 +
+ + fc02:1000::2b/96 + + + 0.0.0.0/0 + + Servers41 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers42-SC +
+ + Server +
+ 192.168.0.44/26 +
+ + fc02:1000::2c/96 + + + 0.0.0.0/0 + + Servers42 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers43-SC +
+ + Server +
+ 192.168.0.45/26 +
+ + fc02:1000::2d/96 + + + 0.0.0.0/0 + + Servers43 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers44-SC +
+ + Server +
+ 192.168.0.46/26 +
+ + fc02:1000::2e/96 + + + 0.0.0.0/0 + + Servers44 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers45-SC +
+ + Server +
+ 192.168.0.47/26 +
+ + fc02:1000::2f/96 + + + 0.0.0.0/0 + + Servers45 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers46-SC +
+ + Server +
+ 192.168.0.48/26 +
+ + fc02:1000::30/96 + + + 0.0.0.0/0 + + Servers46 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers47-SC +
+ + Server +
+ 192.168.0.49/26 +
+ + fc02:1000::31/96 + + + 0.0.0.0/0 + + Servers47 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers48-SC +
+ + Server +
+ 192.168.0.50/26 +
+ + fc02:1000::32/96 + + + 0.0.0.0/0 + + Servers48 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers49-SC +
+ + Server +
+ 192.168.0.51/26 +
+ + fc02:1000::33/96 + + + 0.0.0.0/0 + + Servers49 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers50-SC +
+ + Server +
+ 192.168.0.52/26 +
+ + fc02:1000::34/96 + + + 0.0.0.0/0 + + Servers50 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers51-SC +
+ + Server +
+ 192.168.0.53/26 +
+ + fc02:1000::35/96 + + + 0.0.0.0/0 + + Servers51 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers52-SC +
+ + Server +
+ 192.168.0.54/26 +
+ + fc02:1000::36/96 + + + 0.0.0.0/0 + + Servers52 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers53-SC +
+ + Server +
+ 192.168.0.55/26 +
+ + fc02:1000::37/96 + + + 0.0.0.0/0 + + Servers53 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers54-SC +
+ + Server +
+ 192.168.0.56/26 +
+ + fc02:1000::38/96 + + + 0.0.0.0/0 + + Servers54 +
+ + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + str2-7260cx3-acs-12-Servers55-SC +
+ + Server +
+ 192.168.0.57/26 +
+ + fc02:1000::39/96 + + + 0.0.0.0/0 + + Servers55 +
+ + ARISTA04T1 + + 172.16.147.75 + + Arista-VM + + + ARISTA03T1 + + 172.16.147.74 + + Arista-VM + + + ARISTA02T1 + + 172.16.147.73 + + Arista-VM + + + ARISTA01T1 + + 172.16.147.72 + + Arista-VM + +
+
+ + + true + + + DeviceInterface + + true + true + 1 + Ethernet1/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet1/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet2/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet2/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet3/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet3/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet4/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet4/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet5/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet5/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet6/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet6/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet7/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet7/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet8/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet8/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet9/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet9/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet10/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet10/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet11/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet11/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet12/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet12/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet13/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet14/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet15/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet16/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet17/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet18/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet19/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet20/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet21/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet21/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet22/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet22/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet23/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet23/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet24/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet24/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet25/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet25/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet26/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet26/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet27/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet27/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet28/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet28/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet29/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet29/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet30/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet30/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet31/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet31/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet32/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet32/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet33/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet33/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet34/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet34/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet35/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet35/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet36/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet36/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet37/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet37/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet38/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet38/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet39/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet39/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet40/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet40/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet41/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet41/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet42/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet42/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet43/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet43/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet44/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet44/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet45/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet45/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet46/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet46/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet47/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet47/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet48/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet48/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet49/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet49/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet50/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet50/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet51/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet51/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet52/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet52/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet53/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet53/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet54/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet54/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet55/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet55/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet56/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet56/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet57/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet57/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet58/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet58/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet59/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet59/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet60/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet60/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet61/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet61/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet62/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet62/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet63/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet63/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet64/1 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet64/3 + + false + 0 + 0 + 50000 + + + DeviceInterface + + true + true + 1 + Ethernet65 + + false + 0 + 0 + 10000 + + + DeviceInterface + + true + true + 1 + Ethernet66 + + false + 0 + 0 + 10000 + + + true + 0 + Arista-7260CX3-D108C8 + + + + + + + str2-7260cx3-acs-12 + + + DeploymentId + + 1 + + + QosProfile + + Profile0 + + + GeminiEnabled + + True + + + DhcpResources + + 192.0.0.1;192.0.0.2;192.0.0.3;192.0.0.4;192.0.0.5;192.0.0.6;192.0.0.7;192.0.0.8;192.0.0.9;192.0.0.10;192.0.0.11;192.0.0.12;192.0.0.13;192.0.0.14;192.0.0.15;192.0.0.16;192.0.0.17;192.0.0.18;192.0.0.19;192.0.0.20;192.0.0.21;192.0.0.22;192.0.0.23;192.0.0.24;192.0.0.25;192.0.0.26;192.0.0.27;192.0.0.28;192.0.0.29;192.0.0.30;192.0.0.31;192.0.0.32;192.0.0.33;192.0.0.34;192.0.0.35;192.0.0.36;192.0.0.37;192.0.0.38;192.0.0.39;192.0.0.40;192.0.0.41;192.0.0.42;192.0.0.43;192.0.0.44;192.0.0.45;192.0.0.46;192.0.0.47;192.0.0.48 + + + NtpResources + + 10.20.8.129;10.20.8.130 + + + SnmpResources + + 10.3.145.98 + + + SyslogResources + + 10.64.246.95 + + + TacacsGroup + + Starlab + + + TacacsServer + + 100.127.20.21 + + + ForcedMgmtRoutes + + 10.3.145.98/31;10.3.145.8;100.127.20.16/28;10.3.149.170/31;40.122.216.24;13.91.48.226;10.3.145.14;10.64.246.0/24;10.3.146.0/23;10.64.5.5 + + + ErspanDestinationIpv4 + + 10.20.6.16 + + + + + + + + + + + + + GeminiPeeringLink + + True + + + UpperTOR + + str2-7260cx3-acs-12 + + + LowerTOR + + str2-7260cx3-acs-13 + + + str2-7260cx3-acs-13:MuxTunnel0;str2-7260cx3-acs-12:MuxTunnel0 + + + + str2-7260cx3-acs-12 + Arista-7260CX3-D108C8 +
diff --git a/src/sonic-config-engine/tests/sample-arista-7260-t1-minigraph.xml b/src/sonic-config-engine/tests/sample-arista-7260-t1-minigraph.xml new file mode 100644 index 000000000000..4367b705a11a --- /dev/null +++ b/src/sonic-config-engine/tests/sample-arista-7260-t1-minigraph.xml @@ -0,0 +1,2491 @@ + + + + + + false + str-7260cx3-acs-7 + 10.0.0.32 + ARISTA01T0 + 10.0.0.33 + 1 + 10 + 3 + + + str-7260cx3-acs-7 + FC00::41 + ARISTA01T0 + FC00::42 + 1 + 10 + 3 + + + false + str-7260cx3-acs-7 + 10.0.0.0 + ARISTA01T2 + 10.0.0.1 + 1 + 10 + 3 + + + str-7260cx3-acs-7 + FC00::1 + ARISTA01T2 + FC00::2 + 1 + 10 + 3 + + + false + str-7260cx3-acs-7 + 10.0.0.34 + ARISTA02T0 + 10.0.0.35 + 1 + 10 + 3 + + + str-7260cx3-acs-7 + FC00::45 + ARISTA02T0 + FC00::46 + 1 + 10 + 3 + + + false + str-7260cx3-acs-7 + 10.0.0.36 + ARISTA03T0 + 10.0.0.37 + 1 + 10 + 3 + + + str-7260cx3-acs-7 + FC00::49 + ARISTA03T0 + FC00::4A + 1 + 10 + 3 + + + false + str-7260cx3-acs-7 + 10.0.0.4 + ARISTA03T2 + 10.0.0.5 + 1 + 10 + 3 + + + str-7260cx3-acs-7 + FC00::5 + ARISTA03T2 + FC00::6 + 1 + 10 + 3 + + + false + str-7260cx3-acs-7 + 10.0.0.38 + ARISTA04T0 + 10.0.0.39 + 1 + 10 + 3 + + + str-7260cx3-acs-7 + FC00::4D + ARISTA04T0 + FC00::4E + 1 + 10 + 3 + + + false + str-7260cx3-acs-7 + 10.0.0.40 + ARISTA05T0 + 10.0.0.41 + 1 + 10 + 3 + + + str-7260cx3-acs-7 + FC00::51 + ARISTA05T0 + FC00::52 + 1 + 10 + 3 + + + false + str-7260cx3-acs-7 + 10.0.0.8 + ARISTA05T2 + 10.0.0.9 + 1 + 10 + 3 + + + str-7260cx3-acs-7 + FC00::9 + ARISTA05T2 + FC00::A + 1 + 10 + 3 + + + false + str-7260cx3-acs-7 + 10.0.0.42 + ARISTA06T0 + 10.0.0.43 + 1 + 10 + 3 + + + str-7260cx3-acs-7 + FC00::55 + ARISTA06T0 + FC00::56 + 1 + 10 + 3 + + + false + str-7260cx3-acs-7 + 10.0.0.44 + ARISTA07T0 + 10.0.0.45 + 1 + 10 + 3 + + + str-7260cx3-acs-7 + FC00::59 + ARISTA07T0 + FC00::5A + 1 + 10 + 3 + + + false + str-7260cx3-acs-7 + 10.0.0.12 + ARISTA07T2 + 10.0.0.13 + 1 + 10 + 3 + + + str-7260cx3-acs-7 + FC00::D + ARISTA07T2 + FC00::E + 1 + 10 + 3 + + + false + str-7260cx3-acs-7 + 10.0.0.46 + ARISTA08T0 + 10.0.0.47 + 1 + 10 + 3 + + + str-7260cx3-acs-7 + FC00::5D + ARISTA08T0 + FC00::5E + 1 + 10 + 3 + + + false + str-7260cx3-acs-7 + 10.0.0.48 + ARISTA09T0 + 10.0.0.49 + 1 + 10 + 3 + + + str-7260cx3-acs-7 + FC00::61 + ARISTA09T0 + FC00::62 + 1 + 10 + 3 + + + false + str-7260cx3-acs-7 + 10.0.0.50 + ARISTA10T0 + 10.0.0.51 + 1 + 10 + 3 + + + str-7260cx3-acs-7 + FC00::65 + ARISTA10T0 + FC00::66 + 1 + 10 + 3 + + + false + str-7260cx3-acs-7 + 10.0.0.52 + ARISTA11T0 + 10.0.0.53 + 1 + 10 + 3 + + + str-7260cx3-acs-7 + FC00::69 + ARISTA11T0 + FC00::6A + 1 + 10 + 3 + + + false + str-7260cx3-acs-7 + 10.0.0.54 + ARISTA12T0 + 10.0.0.55 + 1 + 10 + 3 + + + str-7260cx3-acs-7 + FC00::6D + ARISTA12T0 + FC00::6E + 1 + 10 + 3 + + + false + str-7260cx3-acs-7 + 10.0.0.56 + ARISTA13T0 + 10.0.0.57 + 1 + 10 + 3 + + + str-7260cx3-acs-7 + FC00::71 + ARISTA13T0 + FC00::72 + 1 + 10 + 3 + + + false + str-7260cx3-acs-7 + 10.0.0.58 + ARISTA14T0 + 10.0.0.59 + 1 + 10 + 3 + + + str-7260cx3-acs-7 + FC00::75 + ARISTA14T0 + FC00::76 + 1 + 10 + 3 + + + false + str-7260cx3-acs-7 + 10.0.0.60 + ARISTA15T0 + 10.0.0.61 + 1 + 10 + 3 + + + str-7260cx3-acs-7 + FC00::79 + ARISTA15T0 + FC00::7A + 1 + 10 + 3 + + + false + str-7260cx3-acs-7 + 10.0.0.62 + ARISTA16T0 + 10.0.0.63 + 1 + 10 + 3 + + + str-7260cx3-acs-7 + FC00::7D + ARISTA16T0 + FC00::7E + 1 + 10 + 3 + + + false + str-7260cx3-acs-7 + 10.0.0.64 + ARISTA17T0 + 10.0.0.65 + 1 + 10 + 3 + + + str-7260cx3-acs-7 + FC00::81 + ARISTA17T0 + FC00::82 + 1 + 10 + 3 + + + false + str-7260cx3-acs-7 + 10.0.0.66 + ARISTA18T0 + 10.0.0.67 + 1 + 10 + 3 + + + str-7260cx3-acs-7 + FC00::85 + ARISTA18T0 + FC00::86 + 1 + 10 + 3 + + + false + str-7260cx3-acs-7 + 10.0.0.68 + ARISTA19T0 + 10.0.0.69 + 1 + 10 + 3 + + + str-7260cx3-acs-7 + FC00::89 + ARISTA19T0 + FC00::8A + 1 + 10 + 3 + + + false + str-7260cx3-acs-7 + 10.0.0.70 + ARISTA20T0 + 10.0.0.71 + 1 + 10 + 3 + + + str-7260cx3-acs-7 + FC00::8D + ARISTA20T0 + FC00::8E + 1 + 10 + 3 + + + + + 65100 + str-7260cx3-acs-7 + + +
10.0.0.33
+ + + +
+ +
10.0.0.1
+ + + +
+ +
10.0.0.35
+ + + +
+ +
10.0.0.37
+ + + +
+ +
10.0.0.5
+ + + +
+ +
10.0.0.39
+ + + +
+ +
10.0.0.41
+ + + +
+ +
10.0.0.9
+ + + +
+ +
10.0.0.43
+ + + +
+ +
10.0.0.45
+ + + +
+ +
10.0.0.13
+ + + +
+ +
10.0.0.47
+ + + +
+ +
10.0.0.49
+ + + +
+ +
10.0.0.51
+ + + +
+ +
10.0.0.53
+ + + +
+ +
10.0.0.55
+ + + +
+ +
10.0.0.57
+ + + +
+ +
10.0.0.59
+ + + +
+ +
10.0.0.61
+ + + +
+ +
10.0.0.63
+ + + +
+ +
10.0.0.65
+ + + +
+ +
10.0.0.67
+ + + +
+ +
10.0.0.69
+ + + +
+ +
10.0.0.71
+ + + +
+
+ +
+ + 64001 + ARISTA01T0 + + + + 65200 + ARISTA01T2 + + + + 64002 + ARISTA02T0 + + + + 64003 + ARISTA03T0 + + + + 65200 + ARISTA03T2 + + + + 64004 + ARISTA04T0 + + + + 64005 + ARISTA05T0 + + + + 65200 + ARISTA05T2 + + + + 64006 + ARISTA06T0 + + + + 64007 + ARISTA07T0 + + + + 65200 + ARISTA07T2 + + + + 64008 + ARISTA08T0 + + + + 64009 + ARISTA09T0 + + + + 64010 + ARISTA10T0 + + + + 64011 + ARISTA11T0 + + + + 64012 + ARISTA12T0 + + + + 64013 + ARISTA13T0 + + + + 64014 + ARISTA14T0 + + + + 64015 + ARISTA15T0 + + + + 64016 + ARISTA16T0 + + + + 64017 + ARISTA17T0 + + + + 64018 + ARISTA18T0 + + + + 64019 + ARISTA19T0 + + + + 64020 + ARISTA20T0 + + +
+
+ + + + + + HostIP + Loopback0 + + 10.1.0.32/32 + + 10.1.0.32/32 + + + HostIP1 + Loopback0 + + FC00:1::32/128 + + FC00:1::32/128 + + + + + HostIP + eth0 + + 10.64.246.78/23 + + 10.64.246.78/23 + + + V6HostIP + eth0 + + FC00:2::32/64 + + FC00:2::32/64 + + + + + + + str-7260cx3-acs-7 + + + PortChannel101 + Ethernet35/1 + + + + PortChannel102 + Ethernet1/1;Ethernet2/1 + + + + PortChannel103 + Ethernet37/1 + + + + PortChannel104 + Ethernet38/1 + + + + PortChannel105 + Ethernet5/1;Ethernet6/1 + + + + PortChannel106 + Ethernet39/1 + + + + PortChannel107 + Ethernet40/1 + + + + PortChannel108 + Ethernet17/1;Ethernet18/1 + + + + PortChannel109 + Ethernet43/1 + + + + PortChannel1010 + Ethernet45/1 + + + + PortChannel1011 + Ethernet21/1;Ethernet22/1 + + + + PortChannel1012 + Ethernet46/1 + + + + PortChannel1013 + Ethernet47/1 + + + + PortChannel1014 + Ethernet48/1 + + + + PortChannel1015 + Ethernet51/1 + + + + PortChannel1016 + Ethernet53/1 + + + + PortChannel1017 + Ethernet54/1 + + + + PortChannel1018 + Ethernet55/1 + + + + PortChannel1019 + Ethernet56/1 + + + + PortChannel1020 + Ethernet59/1 + + + + PortChannel1021 + Ethernet61/1 + + + + PortChannel1022 + Ethernet62/1 + + + + PortChannel1023 + Ethernet63/1 + + + + PortChannel1024 + Ethernet64/1 + + + + + + + + + PortChannel101 + 10.0.0.32/31 + + + + PortChannel101 + FC00::41/126 + + + + PortChannel102 + 10.0.0.0/31 + + + + PortChannel102 + FC00::1/126 + + + + PortChannel103 + 10.0.0.34/31 + + + + PortChannel103 + FC00::45/126 + + + + PortChannel104 + 10.0.0.36/31 + + + + PortChannel104 + FC00::49/126 + + + + PortChannel105 + 10.0.0.4/31 + + + + PortChannel105 + FC00::5/126 + + + + PortChannel106 + 10.0.0.38/31 + + + + PortChannel106 + FC00::4D/126 + + + + PortChannel107 + 10.0.0.40/31 + + + + PortChannel107 + FC00::51/126 + + + + PortChannel108 + 10.0.0.8/31 + + + + PortChannel108 + FC00::9/126 + + + + PortChannel109 + 10.0.0.42/31 + + + + PortChannel109 + FC00::55/126 + + + + PortChannel1010 + 10.0.0.44/31 + + + + PortChannel1010 + FC00::59/126 + + + + PortChannel1011 + 10.0.0.12/31 + + + + PortChannel1011 + FC00::D/126 + + + + PortChannel1012 + 10.0.0.46/31 + + + + PortChannel1012 + FC00::5D/126 + + + + PortChannel1013 + 10.0.0.48/31 + + + + PortChannel1013 + FC00::61/126 + + + + PortChannel1014 + 10.0.0.50/31 + + + + PortChannel1014 + FC00::65/126 + + + + PortChannel1015 + 10.0.0.52/31 + + + + PortChannel1015 + FC00::69/126 + + + + PortChannel1016 + 10.0.0.54/31 + + + + PortChannel1016 + FC00::6D/126 + + + + PortChannel1017 + 10.0.0.56/31 + + + + PortChannel1017 + FC00::71/126 + + + + PortChannel1018 + 10.0.0.58/31 + + + + PortChannel1018 + FC00::75/126 + + + + PortChannel1019 + 10.0.0.60/31 + + + + PortChannel1019 + FC00::79/126 + + + + PortChannel1020 + 10.0.0.62/31 + + + + PortChannel1020 + FC00::7D/126 + + + + PortChannel1021 + 10.0.0.64/31 + + + + PortChannel1021 + FC00::81/126 + + + + PortChannel1022 + 10.0.0.66/31 + + + + PortChannel1022 + FC00::85/126 + + + + PortChannel1023 + 10.0.0.68/31 + + + + PortChannel1023 + FC00::89/126 + + + + PortChannel1024 + 10.0.0.70/31 + + + + PortChannel1024 + FC00::8D/126 + + + + + + NTP_ACL + NTP + NTP + + + SNMP_ACL + SNMP + SNMP + + + ERSPAN + Everflow + Everflow + + + ERSPANV6 + EverflowV6 + EverflowV6 + + + VTY_LINE + ssh-only + SSH + + + PortChannel101;PortChannel102;PortChannel103;PortChannel104;PortChannel105;PortChannel106;PortChannel107;PortChannel108;PortChannel109;PortChannel1010;PortChannel1011;PortChannel1012;PortChannel1013;PortChannel1014;PortChannel1015;PortChannel1016;PortChannel1017;PortChannel1018;PortChannel1019;PortChannel1020;PortChannel1021;PortChannel1022;PortChannel1023;PortChannel1024 + DataAcl + DataPlane + + + + + + + + + + DeviceInterfaceLink + ARISTA01T0 + Ethernet1 + str-7260cx3-acs-7 + Ethernet35/1 + + + DeviceInterfaceLink + ARISTA01T2 + Ethernet1 + str-7260cx3-acs-7 + Ethernet1/1 + + + DeviceInterfaceLink + ARISTA01T2 + Ethernet2 + str-7260cx3-acs-7 + Ethernet2/1 + + + DeviceInterfaceLink + ARISTA02T0 + Ethernet1 + str-7260cx3-acs-7 + Ethernet37/1 + + + DeviceInterfaceLink + ARISTA03T0 + Ethernet1 + str-7260cx3-acs-7 + Ethernet38/1 + + + DeviceInterfaceLink + ARISTA03T2 + Ethernet1 + str-7260cx3-acs-7 + Ethernet5/1 + + + DeviceInterfaceLink + ARISTA03T2 + Ethernet2 + str-7260cx3-acs-7 + Ethernet6/1 + + + DeviceInterfaceLink + ARISTA04T0 + Ethernet1 + str-7260cx3-acs-7 + Ethernet39/1 + + + DeviceInterfaceLink + ARISTA05T0 + Ethernet1 + str-7260cx3-acs-7 + Ethernet40/1 + + + DeviceInterfaceLink + ARISTA05T2 + Ethernet1 + str-7260cx3-acs-7 + Ethernet17/1 + + + DeviceInterfaceLink + ARISTA05T2 + Ethernet2 + str-7260cx3-acs-7 + Ethernet18/1 + + + DeviceInterfaceLink + ARISTA06T0 + Ethernet1 + str-7260cx3-acs-7 + Ethernet43/1 + + + DeviceInterfaceLink + ARISTA07T0 + Ethernet1 + str-7260cx3-acs-7 + Ethernet45/1 + + + DeviceInterfaceLink + ARISTA07T2 + Ethernet1 + str-7260cx3-acs-7 + Ethernet21/1 + + + DeviceInterfaceLink + ARISTA07T2 + Ethernet2 + str-7260cx3-acs-7 + Ethernet22/1 + + + DeviceInterfaceLink + ARISTA08T0 + Ethernet1 + str-7260cx3-acs-7 + Ethernet46/1 + + + DeviceInterfaceLink + ARISTA09T0 + Ethernet1 + str-7260cx3-acs-7 + Ethernet47/1 + + + DeviceInterfaceLink + ARISTA10T0 + Ethernet1 + str-7260cx3-acs-7 + Ethernet48/1 + + + DeviceInterfaceLink + ARISTA11T0 + Ethernet1 + str-7260cx3-acs-7 + Ethernet51/1 + + + DeviceInterfaceLink + ARISTA12T0 + Ethernet1 + str-7260cx3-acs-7 + Ethernet53/1 + + + DeviceInterfaceLink + ARISTA13T0 + Ethernet1 + str-7260cx3-acs-7 + Ethernet54/1 + + + DeviceInterfaceLink + ARISTA14T0 + Ethernet1 + str-7260cx3-acs-7 + Ethernet55/1 + + + DeviceInterfaceLink + ARISTA15T0 + Ethernet1 + str-7260cx3-acs-7 + Ethernet56/1 + + + DeviceInterfaceLink + ARISTA16T0 + Ethernet1 + str-7260cx3-acs-7 + Ethernet59/1 + + + DeviceInterfaceLink + ARISTA17T0 + Ethernet1 + str-7260cx3-acs-7 + Ethernet61/1 + + + DeviceInterfaceLink + ARISTA18T0 + Ethernet1 + str-7260cx3-acs-7 + Ethernet62/1 + + + DeviceInterfaceLink + ARISTA19T0 + Ethernet1 + str-7260cx3-acs-7 + Ethernet63/1 + + + DeviceInterfaceLink + ARISTA20T0 + Ethernet1 + str-7260cx3-acs-7 + Ethernet64/1 + + + + + str-7260cx3-acs-7 + Arista-7260CX3-C64 + + 10.64.246.78 + + + + ARISTA16T0 + + 172.16.141.95 + + Arista-VM + + + ARISTA11T0 + + 172.16.141.90 + + Arista-VM + + + ARISTA10T0 + + 172.16.141.89 + + Arista-VM + + + ARISTA17T0 + + 172.16.141.96 + + Arista-VM + + + ARISTA09T0 + + 172.16.141.88 + + Arista-VM + + + ARISTA20T0 + + 172.16.141.99 + + Arista-VM + + + ARISTA08T0 + + 172.16.141.87 + + Arista-VM + + + ARISTA07T0 + + 172.16.141.86 + + Arista-VM + + + ARISTA07T2 + + 172.16.141.79 + + Arista-VM + + + ARISTA01T2 + + 172.16.141.76 + + Arista-VM + + + ARISTA01T0 + + 172.16.141.80 + + Arista-VM + + + ARISTA05T2 + + 172.16.141.78 + + Arista-VM + + + ARISTA05T0 + + 172.16.141.84 + + Arista-VM + + + ARISTA02T0 + + 172.16.141.81 + + Arista-VM + + + ARISTA03T0 + + 172.16.141.82 + + Arista-VM + + + ARISTA03T2 + + 172.16.141.77 + + Arista-VM + + + ARISTA04T0 + + 172.16.141.83 + + Arista-VM + + + ARISTA18T0 + + 172.16.141.97 + + Arista-VM + + + ARISTA15T0 + + 172.16.141.94 + + Arista-VM + + + ARISTA19T0 + + 172.16.141.98 + + Arista-VM + + + ARISTA14T0 + + 172.16.141.93 + + Arista-VM + + + ARISTA12T0 + + 172.16.141.91 + + Arista-VM + + + ARISTA13T0 + + 172.16.141.92 + + Arista-VM + + + ARISTA06T0 + + 172.16.141.85 + + Arista-VM + + + + + + true + + + DeviceInterface + + true + true + 1 + Ethernet1/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet2/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet3/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet4/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet5/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet6/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet7/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet8/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet9/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet10/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet11/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet12/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet13/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet14/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet15/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet16/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet17/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet18/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet19/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet20/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet21/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet22/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet23/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet24/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet25/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet26/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet27/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet28/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet29/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet30/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet31/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet32/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet33/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet34/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet35/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet36/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet37/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet38/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet39/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet40/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet41/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet42/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet43/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet44/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet45/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet46/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet47/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet48/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet49/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet50/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet51/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet52/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet53/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet54/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet55/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet56/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet57/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet58/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet59/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet60/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet61/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet62/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet63/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet64/1 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet65 + + false + 0 + 0 + 10000 + + + DeviceInterface + + true + true + 1 + Ethernet66 + + false + 0 + 0 + 10000 + + + true + 0 + Arista-7260CX3-C64 + + + + + + + str-7260cx3-acs-7 + + + DeploymentId + + 1 + + + QosProfile + + Profile0 + + + DhcpResources + + 192.0.0.1;192.0.0.2;192.0.0.3;192.0.0.4;192.0.0.5;192.0.0.6;192.0.0.7;192.0.0.8;192.0.0.9;192.0.0.10;192.0.0.11;192.0.0.12;192.0.0.13;192.0.0.14;192.0.0.15;192.0.0.16;192.0.0.17;192.0.0.18;192.0.0.19;192.0.0.20;192.0.0.21;192.0.0.22;192.0.0.23;192.0.0.24;192.0.0.25;192.0.0.26;192.0.0.27;192.0.0.28;192.0.0.29;192.0.0.30;192.0.0.31;192.0.0.32;192.0.0.33;192.0.0.34;192.0.0.35;192.0.0.36;192.0.0.37;192.0.0.38;192.0.0.39;192.0.0.40;192.0.0.41;192.0.0.42;192.0.0.43;192.0.0.44;192.0.0.45;192.0.0.46;192.0.0.47;192.0.0.48 + + + NtpResources + + 10.20.8.129;10.20.8.130 + + + SnmpResources + + 10.3.145.98 + + + SyslogResources + + 10.64.246.95 + + + TacacsGroup + + Starlab + + + TacacsServer + + 100.127.20.21 + + + ForcedMgmtRoutes + + 10.3.145.98/31;10.3.145.8;100.127.20.16/28;10.3.149.170/31;40.122.216.24;13.91.48.226;10.3.145.14;10.64.246.0/24;10.64.247.0/24;10.64.5.5 + + + ErspanDestinationIpv4 + + 10.20.6.16 + + + + + + + str-7260cx3-acs-7 + Arista-7260CX3-C64 +
diff --git a/src/sonic-config-engine/tests/sample_output/py2/qos-arista7050.json b/src/sonic-config-engine/tests/sample_output/py2/qos-arista7050.json index 9a6f8a2ada78..b15fcf7a36c1 100644 --- a/src/sonic-config-engine/tests/sample_output/py2/qos-arista7050.json +++ b/src/sonic-config-engine/tests/sample_output/py2/qos-arista7050.json @@ -119,196 +119,224 @@ "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet8": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet12": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet16": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet20": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet24": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet28": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet32": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet36": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet40": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet44": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet48": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet52": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet56": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet60": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet64": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet68": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet72": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet76": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet80": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet84": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet88": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet92": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet96": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet112": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet116": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet120": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet124": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" } }, "WRED_PROFILE": { diff --git a/src/sonic-config-engine/tests/sample_output/py2/qos-arista7800r3-48cq2-lc.json b/src/sonic-config-engine/tests/sample_output/py2/qos-arista7800r3-48cq2-lc.json index 3044749a2776..92ba2caf8d17 100644 --- a/src/sonic-config-engine/tests/sample_output/py2/qos-arista7800r3-48cq2-lc.json +++ b/src/sonic-config-engine/tests/sample_output/py2/qos-arista7800r3-48cq2-lc.json @@ -119,315 +119,360 @@ "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet4": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet8": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet12": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet16": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet20": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet24": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet28": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet32": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet36": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet40": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet44": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet48": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet52": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet56": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet60": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet64": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet68": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet72": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet76": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet80": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet84": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet88": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet92": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet96": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet100": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet104": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet108": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet112": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet116": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet120": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet124": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet128": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet132": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet136": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet140": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet144": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet148": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet152": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet156": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet164": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet176": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet180": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet184": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet188": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" } }, "WRED_PROFILE": { diff --git a/src/sonic-config-engine/tests/sample_output/py2/qos-dell6100.json b/src/sonic-config-engine/tests/sample_output/py2/qos-dell6100.json index eecd81c99e5c..27bea8cd32d3 100644 --- a/src/sonic-config-engine/tests/sample_output/py2/qos-dell6100.json +++ b/src/sonic-config-engine/tests/sample_output/py2/qos-dell6100.json @@ -119,308 +119,352 @@ "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet1": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet4": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet5": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet6": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet7": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet8": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet9": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet10": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet11": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet12": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet13": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet14": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet15": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet16": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet17": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet20": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet21": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet22": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet23": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet24": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet25": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet26": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet27": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet28": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet29": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet30": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet31": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet32": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet36": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet37": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet38": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet39": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet40": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet41": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet42": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet48": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet52": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet53": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet54": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet55": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet56": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet57": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet58": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" } }, "WRED_PROFILE": { diff --git a/src/sonic-config-engine/tests/sample_output/py2/qos-dell9332.json b/src/sonic-config-engine/tests/sample_output/py2/qos-dell9332.json index 39f4b26e8372..8130a455497a 100644 --- a/src/sonic-config-engine/tests/sample_output/py2/qos-dell9332.json +++ b/src/sonic-config-engine/tests/sample_output/py2/qos-dell9332.json @@ -123,224 +123,256 @@ "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet8": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet16": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet24": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet32": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet40": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet48": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet56": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet64": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet72": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet80": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet88": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet96": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet104": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet112": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet120": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet128": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet136": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet144": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet152": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet160": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet168": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet176": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet184": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet192": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet200": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet208": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet216": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet224": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet232": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet240": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet248": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" } }, "WRED_PROFILE": { diff --git a/src/sonic-config-engine/tests/sample_output/py3/qos-arista7050.json b/src/sonic-config-engine/tests/sample_output/py3/qos-arista7050.json index 9a6f8a2ada78..b15fcf7a36c1 100644 --- a/src/sonic-config-engine/tests/sample_output/py3/qos-arista7050.json +++ b/src/sonic-config-engine/tests/sample_output/py3/qos-arista7050.json @@ -119,196 +119,224 @@ "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet8": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet12": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet16": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet20": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet24": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet28": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet32": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet36": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet40": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet44": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet48": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet52": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet56": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet60": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet64": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet68": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet72": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet76": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet80": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet84": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet88": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet92": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet96": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet112": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet116": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet120": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet124": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" } }, "WRED_PROFILE": { diff --git a/src/sonic-config-engine/tests/sample_output/py3/qos-arista7050cx3-dualtor.json b/src/sonic-config-engine/tests/sample_output/py3/qos-arista7050cx3-dualtor.json new file mode 100644 index 000000000000..84a2613df90d --- /dev/null +++ b/src/sonic-config-engine/tests/sample_output/py3/qos-arista7050cx3-dualtor.json @@ -0,0 +1,1145 @@ +{ + "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": "1", + "3": "3", + "4": "4", + "5": "5", + "6": "6", + "7": "7" + } + }, + "DSCP_TO_TC_MAP": { + "AZURE": { + "0" : "1", + "1" : "1", + "2" : "1", + "3" : "3", + "4" : "4", + "5" : "1", + "6" : "1", + "7" : "1", + "8" : "0", + "9" : "1", + "10": "1", + "11": "1", + "12": "1", + "13": "1", + "14": "1", + "15": "1", + "16": "1", + "17": "1", + "18": "1", + "19": "1", + "20": "1", + "21": "1", + "22": "1", + "23": "1", + "24": "1", + "25": "1", + "26": "1", + "27": "1", + "28": "1", + "29": "1", + "30": "1", + "31": "1", + "32": "1", + "33": "2", + "34": "1", + "35": "1", + "36": "1", + "37": "1", + "38": "1", + "39": "1", + "40": "1", + "41": "1", + "42": "1", + "43": "1", + "44": "1", + "45": "1", + "46": "5", + "47": "1", + "48": "7", + "49": "1", + "50": "1", + "51": "1", + "52": "1", + "53": "1", + "54": "1", + "55": "1", + "56": "1", + "57": "1", + "58": "1", + "59": "1", + "60": "1", + "61": "1", + "62": "1", + "63": "1" + } + }, + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "0": "0", + "1": "0", + "2": "0", + "3": "3", + "4": "4", + "5": "0", + "6": "0", + "7": "7" + } + }, + "SCHEDULER": { + "scheduler.0": { + "type" : "DWRR", + "weight": "14" + }, + "scheduler.1": { + "type" : "DWRR", + "weight": "15" + } + }, + "PORT_QOS_MAP": { + "Ethernet0": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet4": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet8": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet12": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet16": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet20": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet24": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "2,3,4,6", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet28": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "2,3,4,6", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet32": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "2,3,4,6", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet36": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "2,3,4,6", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet40": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet44": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet48": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet52": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet56": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet60": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet64": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet68": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet72": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet76": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet80": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet84": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet88": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "2,3,4,6", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet92": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "2,3,4,6", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet96": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "2,3,4,6", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet100": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "2,3,4,6", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet104": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet108": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet112": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet116": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet120": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet124": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + } + }, + "WRED_PROFILE": { + "AZURE_LOSSLESS" : { + "wred_green_enable" : "true", + "wred_yellow_enable" : "true", + "wred_red_enable" : "true", + "ecn" : "ecn_all", + "green_max_threshold" : "2097152", + "green_min_threshold" : "1048576", + "yellow_max_threshold" : "2097152", + "yellow_min_threshold" : "1048576", + "red_max_threshold" : "2097152", + "red_min_threshold" : "1048576", + "green_drop_probability" : "5", + "yellow_drop_probability": "5", + "red_drop_probability" : "5" + } + }, + "QUEUE": { + "Ethernet0|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet4|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet8|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet12|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet16|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet20|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet24|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet28|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet32|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet36|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet40|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet44|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet48|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet52|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet56|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet60|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet64|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet68|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet72|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet76|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet80|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet84|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet88|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet92|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet96|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet100|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet104|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet108|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet112|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet116|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet120|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet124|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet0|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet4|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet8|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet12|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet16|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet20|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet24|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet28|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet32|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet36|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet40|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet44|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet48|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet52|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet56|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet60|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet64|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet68|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet72|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet76|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet80|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet84|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet88|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet92|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet96|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet100|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet104|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet108|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet112|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet116|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet120|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet124|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet0|0": { + "scheduler": "scheduler.0" + }, + "Ethernet4|0": { + "scheduler": "scheduler.0" + }, + "Ethernet8|0": { + "scheduler": "scheduler.0" + }, + "Ethernet12|0": { + "scheduler": "scheduler.0" + }, + "Ethernet16|0": { + "scheduler": "scheduler.0" + }, + "Ethernet20|0": { + "scheduler": "scheduler.0" + }, + "Ethernet24|0": { + "scheduler": "scheduler.0" + }, + "Ethernet28|0": { + "scheduler": "scheduler.0" + }, + "Ethernet32|0": { + "scheduler": "scheduler.0" + }, + "Ethernet36|0": { + "scheduler": "scheduler.0" + }, + "Ethernet40|0": { + "scheduler": "scheduler.0" + }, + "Ethernet44|0": { + "scheduler": "scheduler.0" + }, + "Ethernet48|0": { + "scheduler": "scheduler.0" + }, + "Ethernet52|0": { + "scheduler": "scheduler.0" + }, + "Ethernet56|0": { + "scheduler": "scheduler.0" + }, + "Ethernet60|0": { + "scheduler": "scheduler.0" + }, + "Ethernet64|0": { + "scheduler": "scheduler.0" + }, + "Ethernet68|0": { + "scheduler": "scheduler.0" + }, + "Ethernet72|0": { + "scheduler": "scheduler.0" + }, + "Ethernet76|0": { + "scheduler": "scheduler.0" + }, + "Ethernet80|0": { + "scheduler": "scheduler.0" + }, + "Ethernet84|0": { + "scheduler": "scheduler.0" + }, + "Ethernet88|0": { + "scheduler": "scheduler.0" + }, + "Ethernet92|0": { + "scheduler": "scheduler.0" + }, + "Ethernet96|0": { + "scheduler": "scheduler.0" + }, + "Ethernet100|0": { + "scheduler": "scheduler.0" + }, + "Ethernet104|0": { + "scheduler": "scheduler.0" + }, + "Ethernet108|0": { + "scheduler": "scheduler.0" + }, + "Ethernet112|0": { + "scheduler": "scheduler.0" + }, + "Ethernet116|0": { + "scheduler": "scheduler.0" + }, + "Ethernet120|0": { + "scheduler": "scheduler.0" + }, + "Ethernet124|0": { + "scheduler": "scheduler.0" + }, + "Ethernet0|1": { + "scheduler": "scheduler.0" + }, + "Ethernet4|1": { + "scheduler": "scheduler.0" + }, + "Ethernet8|1": { + "scheduler": "scheduler.0" + }, + "Ethernet12|1": { + "scheduler": "scheduler.0" + }, + "Ethernet16|1": { + "scheduler": "scheduler.0" + }, + "Ethernet20|1": { + "scheduler": "scheduler.0" + }, + "Ethernet24|1": { + "scheduler": "scheduler.0" + }, + "Ethernet28|1": { + "scheduler": "scheduler.0" + }, + "Ethernet32|1": { + "scheduler": "scheduler.0" + }, + "Ethernet36|1": { + "scheduler": "scheduler.0" + }, + "Ethernet40|1": { + "scheduler": "scheduler.0" + }, + "Ethernet44|1": { + "scheduler": "scheduler.0" + }, + "Ethernet48|1": { + "scheduler": "scheduler.0" + }, + "Ethernet52|1": { + "scheduler": "scheduler.0" + }, + "Ethernet56|1": { + "scheduler": "scheduler.0" + }, + "Ethernet60|1": { + "scheduler": "scheduler.0" + }, + "Ethernet64|1": { + "scheduler": "scheduler.0" + }, + "Ethernet68|1": { + "scheduler": "scheduler.0" + }, + "Ethernet72|1": { + "scheduler": "scheduler.0" + }, + "Ethernet76|1": { + "scheduler": "scheduler.0" + }, + "Ethernet80|1": { + "scheduler": "scheduler.0" + }, + "Ethernet84|1": { + "scheduler": "scheduler.0" + }, + "Ethernet88|1": { + "scheduler": "scheduler.0" + }, + "Ethernet92|1": { + "scheduler": "scheduler.0" + }, + "Ethernet96|1": { + "scheduler": "scheduler.0" + }, + "Ethernet100|1": { + "scheduler": "scheduler.0" + }, + "Ethernet104|1": { + "scheduler": "scheduler.0" + }, + "Ethernet108|1": { + "scheduler": "scheduler.0" + }, + "Ethernet112|1": { + "scheduler": "scheduler.0" + }, + "Ethernet116|1": { + "scheduler": "scheduler.0" + }, + "Ethernet120|1": { + "scheduler": "scheduler.0" + }, + "Ethernet124|1": { + "scheduler": "scheduler.0" + }, + "Ethernet0|2": { + "scheduler": "scheduler.0" + }, + "Ethernet4|2": { + "scheduler": "scheduler.0" + }, + "Ethernet8|2": { + "scheduler": "scheduler.0" + }, + "Ethernet12|2": { + "scheduler": "scheduler.0" + }, + "Ethernet16|2": { + "scheduler": "scheduler.0" + }, + "Ethernet20|2": { + "scheduler": "scheduler.0" + }, + "Ethernet24|2": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet28|2": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet32|2": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet36|2": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet40|2": { + "scheduler": "scheduler.0" + }, + "Ethernet44|2": { + "scheduler": "scheduler.0" + }, + "Ethernet48|2": { + "scheduler": "scheduler.0" + }, + "Ethernet52|2": { + "scheduler": "scheduler.0" + }, + "Ethernet56|2": { + "scheduler": "scheduler.0" + }, + "Ethernet60|2": { + "scheduler": "scheduler.0" + }, + "Ethernet64|2": { + "scheduler": "scheduler.0" + }, + "Ethernet68|2": { + "scheduler": "scheduler.0" + }, + "Ethernet72|2": { + "scheduler": "scheduler.0" + }, + "Ethernet76|2": { + "scheduler": "scheduler.0" + }, + "Ethernet80|2": { + "scheduler": "scheduler.0" + }, + "Ethernet84|2": { + "scheduler": "scheduler.0" + }, + "Ethernet88|2": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet92|2": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet96|2": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet100|2": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet104|2": { + "scheduler": "scheduler.0" + }, + "Ethernet108|2": { + "scheduler": "scheduler.0" + }, + "Ethernet112|2": { + "scheduler": "scheduler.0" + }, + "Ethernet116|2": { + "scheduler": "scheduler.0" + }, + "Ethernet120|2": { + "scheduler": "scheduler.0" + }, + "Ethernet124|2": { + "scheduler": "scheduler.0" + }, + "Ethernet0|5": { + "scheduler": "scheduler.0" + }, + "Ethernet4|5": { + "scheduler": "scheduler.0" + }, + "Ethernet8|5": { + "scheduler": "scheduler.0" + }, + "Ethernet12|5": { + "scheduler": "scheduler.0" + }, + "Ethernet16|5": { + "scheduler": "scheduler.0" + }, + "Ethernet20|5": { + "scheduler": "scheduler.0" + }, + "Ethernet24|5": { + "scheduler": "scheduler.0" + }, + "Ethernet28|5": { + "scheduler": "scheduler.0" + }, + "Ethernet32|5": { + "scheduler": "scheduler.0" + }, + "Ethernet36|5": { + "scheduler": "scheduler.0" + }, + "Ethernet40|5": { + "scheduler": "scheduler.0" + }, + "Ethernet44|5": { + "scheduler": "scheduler.0" + }, + "Ethernet48|5": { + "scheduler": "scheduler.0" + }, + "Ethernet52|5": { + "scheduler": "scheduler.0" + }, + "Ethernet56|5": { + "scheduler": "scheduler.0" + }, + "Ethernet60|5": { + "scheduler": "scheduler.0" + }, + "Ethernet64|5": { + "scheduler": "scheduler.0" + }, + "Ethernet68|5": { + "scheduler": "scheduler.0" + }, + "Ethernet72|5": { + "scheduler": "scheduler.0" + }, + "Ethernet76|5": { + "scheduler": "scheduler.0" + }, + "Ethernet80|5": { + "scheduler": "scheduler.0" + }, + "Ethernet84|5": { + "scheduler": "scheduler.0" + }, + "Ethernet88|5": { + "scheduler": "scheduler.0" + }, + "Ethernet92|5": { + "scheduler": "scheduler.0" + }, + "Ethernet96|5": { + "scheduler": "scheduler.0" + }, + "Ethernet100|5": { + "scheduler": "scheduler.0" + }, + "Ethernet104|5": { + "scheduler": "scheduler.0" + }, + "Ethernet108|5": { + "scheduler": "scheduler.0" + }, + "Ethernet112|5": { + "scheduler": "scheduler.0" + }, + "Ethernet116|5": { + "scheduler": "scheduler.0" + }, + "Ethernet120|5": { + "scheduler": "scheduler.0" + }, + "Ethernet124|5": { + "scheduler": "scheduler.0" + }, + "Ethernet0|6": { + "scheduler": "scheduler.0" + }, + "Ethernet4|6": { + "scheduler": "scheduler.0" + }, + "Ethernet8|6": { + "scheduler": "scheduler.0" + }, + "Ethernet12|6": { + "scheduler": "scheduler.0" + }, + "Ethernet16|6": { + "scheduler": "scheduler.0" + }, + "Ethernet20|6": { + "scheduler": "scheduler.0" + }, + "Ethernet24|6": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet28|6": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet32|6": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet36|6": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet40|6": { + "scheduler": "scheduler.0" + }, + "Ethernet44|6": { + "scheduler": "scheduler.0" + }, + "Ethernet48|6": { + "scheduler": "scheduler.0" + }, + "Ethernet52|6": { + "scheduler": "scheduler.0" + }, + "Ethernet56|6": { + "scheduler": "scheduler.0" + }, + "Ethernet60|6": { + "scheduler": "scheduler.0" + }, + "Ethernet64|6": { + "scheduler": "scheduler.0" + }, + "Ethernet68|6": { + "scheduler": "scheduler.0" + }, + "Ethernet72|6": { + "scheduler": "scheduler.0" + }, + "Ethernet76|6": { + "scheduler": "scheduler.0" + }, + "Ethernet80|6": { + "scheduler": "scheduler.0" + }, + "Ethernet84|6": { + "scheduler": "scheduler.0" + }, + "Ethernet88|6": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet92|6": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet96|6": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet100|6": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet104|6": { + "scheduler": "scheduler.0" + }, + "Ethernet108|6": { + "scheduler": "scheduler.0" + }, + "Ethernet112|6": { + "scheduler": "scheduler.0" + }, + "Ethernet116|6": { + "scheduler": "scheduler.0" + }, + "Ethernet120|6": { + "scheduler": "scheduler.0" + }, + "Ethernet124|6": { + "scheduler": "scheduler.0" + } + } +} diff --git a/src/sonic-config-engine/tests/sample_output/py3/qos-arista7260-dualtor.json b/src/sonic-config-engine/tests/sample_output/py3/qos-arista7260-dualtor.json new file mode 100644 index 000000000000..e8476cc0c865 --- /dev/null +++ b/src/sonic-config-engine/tests/sample_output/py3/qos-arista7260-dualtor.json @@ -0,0 +1,2137 @@ +{ + "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": "1", + "3": "3", + "4": "4", + "5": "5", + "6": "6", + "7": "7" + } + }, + "DSCP_TO_TC_MAP": { + "AZURE": { + "0" : "1", + "1" : "1", + "2" : "1", + "3" : "3", + "4" : "4", + "5" : "1", + "6" : "1", + "7" : "1", + "8" : "0", + "9" : "1", + "10": "1", + "11": "1", + "12": "1", + "13": "1", + "14": "1", + "15": "1", + "16": "1", + "17": "1", + "18": "1", + "19": "1", + "20": "1", + "21": "1", + "22": "1", + "23": "1", + "24": "1", + "25": "1", + "26": "1", + "27": "1", + "28": "1", + "29": "1", + "30": "1", + "31": "1", + "32": "1", + "33": "2", + "34": "1", + "35": "1", + "36": "1", + "37": "1", + "38": "1", + "39": "1", + "40": "1", + "41": "1", + "42": "1", + "43": "1", + "44": "1", + "45": "1", + "46": "5", + "47": "1", + "48": "7", + "49": "1", + "50": "1", + "51": "1", + "52": "1", + "53": "1", + "54": "1", + "55": "1", + "56": "1", + "57": "1", + "58": "1", + "59": "1", + "60": "1", + "61": "1", + "62": "1", + "63": "1" + } + }, + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "0": "0", + "1": "0", + "2": "0", + "3": "3", + "4": "4", + "5": "0", + "6": "0", + "7": "7" + } + }, + "SCHEDULER": { + "scheduler.0": { + "type" : "DWRR", + "weight": "14" + }, + "scheduler.1": { + "type" : "DWRR", + "weight": "15" + } + }, + "PORT_QOS_MAP": { + "Ethernet0": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet4": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet8": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet12": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet16": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet20": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet24": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet28": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet32": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet36": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet40": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet44": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet48": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "2,3,4,6", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet52": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "2,3,4,6", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet56": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "2,3,4,6", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet60": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "2,3,4,6", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet64": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "2,3,4,6", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet68": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "2,3,4,6", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet72": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "2,3,4,6", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet76": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "2,3,4,6", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet80": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet84": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet88": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet92": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet96": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet100": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet104": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet108": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet112": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet116": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet120": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet124": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet128": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet132": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet136": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet140": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet144": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet148": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet152": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet156": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet160": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet164": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet168": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet172": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet176": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet180": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet184": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet188": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet192": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet196": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet200": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet204": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet208": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet212": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet216": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet220": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet224": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet228": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet232": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet236": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet240": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet244": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet248": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet252": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + } + }, + "WRED_PROFILE": { + "AZURE_LOSSLESS" : { + "wred_green_enable" : "true", + "wred_yellow_enable" : "true", + "wred_red_enable" : "true", + "ecn" : "ecn_all", + "green_max_threshold" : "2097152", + "green_min_threshold" : "1048576", + "yellow_max_threshold" : "2097152", + "yellow_min_threshold" : "1048576", + "red_max_threshold" : "2097152", + "red_min_threshold" : "1048576", + "green_drop_probability" : "5", + "yellow_drop_probability": "5", + "red_drop_probability" : "5" + } + }, + "QUEUE": { + "Ethernet0|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet4|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet8|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet12|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet16|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet20|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet24|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet28|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet32|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet36|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet40|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet44|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet48|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet52|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet56|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet60|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet64|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet68|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet72|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet76|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet80|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet84|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet88|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet92|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet96|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet100|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet104|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet108|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet112|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet116|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet120|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet124|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet128|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet132|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet136|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet140|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet144|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet148|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet152|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet156|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet160|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet164|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet168|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet172|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet176|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet180|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet184|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet188|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet192|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet196|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet200|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet204|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet208|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet212|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet216|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet220|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet224|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet228|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet232|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet236|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet240|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet244|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet248|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet252|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet0|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet4|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet8|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet12|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet16|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet20|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet24|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet28|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet32|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet36|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet40|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet44|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet48|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet52|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet56|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet60|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet64|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet68|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet72|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet76|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet80|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet84|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet88|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet92|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet96|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet100|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet104|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet108|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet112|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet116|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet120|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet124|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet128|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet132|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet136|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet140|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet144|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet148|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet152|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet156|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet160|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet164|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet168|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet172|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet176|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet180|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet184|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet188|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet192|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet196|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet200|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet204|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet208|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet212|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet216|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet220|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet224|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet228|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet232|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet236|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet240|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet244|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet248|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet252|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet0|0": { + "scheduler": "scheduler.0" + }, + "Ethernet4|0": { + "scheduler": "scheduler.0" + }, + "Ethernet8|0": { + "scheduler": "scheduler.0" + }, + "Ethernet12|0": { + "scheduler": "scheduler.0" + }, + "Ethernet16|0": { + "scheduler": "scheduler.0" + }, + "Ethernet20|0": { + "scheduler": "scheduler.0" + }, + "Ethernet24|0": { + "scheduler": "scheduler.0" + }, + "Ethernet28|0": { + "scheduler": "scheduler.0" + }, + "Ethernet32|0": { + "scheduler": "scheduler.0" + }, + "Ethernet36|0": { + "scheduler": "scheduler.0" + }, + "Ethernet40|0": { + "scheduler": "scheduler.0" + }, + "Ethernet44|0": { + "scheduler": "scheduler.0" + }, + "Ethernet48|0": { + "scheduler": "scheduler.0" + }, + "Ethernet52|0": { + "scheduler": "scheduler.0" + }, + "Ethernet56|0": { + "scheduler": "scheduler.0" + }, + "Ethernet60|0": { + "scheduler": "scheduler.0" + }, + "Ethernet64|0": { + "scheduler": "scheduler.0" + }, + "Ethernet68|0": { + "scheduler": "scheduler.0" + }, + "Ethernet72|0": { + "scheduler": "scheduler.0" + }, + "Ethernet76|0": { + "scheduler": "scheduler.0" + }, + "Ethernet80|0": { + "scheduler": "scheduler.0" + }, + "Ethernet84|0": { + "scheduler": "scheduler.0" + }, + "Ethernet88|0": { + "scheduler": "scheduler.0" + }, + "Ethernet92|0": { + "scheduler": "scheduler.0" + }, + "Ethernet96|0": { + "scheduler": "scheduler.0" + }, + "Ethernet100|0": { + "scheduler": "scheduler.0" + }, + "Ethernet104|0": { + "scheduler": "scheduler.0" + }, + "Ethernet108|0": { + "scheduler": "scheduler.0" + }, + "Ethernet112|0": { + "scheduler": "scheduler.0" + }, + "Ethernet116|0": { + "scheduler": "scheduler.0" + }, + "Ethernet120|0": { + "scheduler": "scheduler.0" + }, + "Ethernet124|0": { + "scheduler": "scheduler.0" + }, + "Ethernet128|0": { + "scheduler": "scheduler.0" + }, + "Ethernet132|0": { + "scheduler": "scheduler.0" + }, + "Ethernet136|0": { + "scheduler": "scheduler.0" + }, + "Ethernet140|0": { + "scheduler": "scheduler.0" + }, + "Ethernet144|0": { + "scheduler": "scheduler.0" + }, + "Ethernet148|0": { + "scheduler": "scheduler.0" + }, + "Ethernet152|0": { + "scheduler": "scheduler.0" + }, + "Ethernet156|0": { + "scheduler": "scheduler.0" + }, + "Ethernet160|0": { + "scheduler": "scheduler.0" + }, + "Ethernet164|0": { + "scheduler": "scheduler.0" + }, + "Ethernet168|0": { + "scheduler": "scheduler.0" + }, + "Ethernet172|0": { + "scheduler": "scheduler.0" + }, + "Ethernet176|0": { + "scheduler": "scheduler.0" + }, + "Ethernet180|0": { + "scheduler": "scheduler.0" + }, + "Ethernet184|0": { + "scheduler": "scheduler.0" + }, + "Ethernet188|0": { + "scheduler": "scheduler.0" + }, + "Ethernet192|0": { + "scheduler": "scheduler.0" + }, + "Ethernet196|0": { + "scheduler": "scheduler.0" + }, + "Ethernet200|0": { + "scheduler": "scheduler.0" + }, + "Ethernet204|0": { + "scheduler": "scheduler.0" + }, + "Ethernet208|0": { + "scheduler": "scheduler.0" + }, + "Ethernet212|0": { + "scheduler": "scheduler.0" + }, + "Ethernet216|0": { + "scheduler": "scheduler.0" + }, + "Ethernet220|0": { + "scheduler": "scheduler.0" + }, + "Ethernet224|0": { + "scheduler": "scheduler.0" + }, + "Ethernet228|0": { + "scheduler": "scheduler.0" + }, + "Ethernet232|0": { + "scheduler": "scheduler.0" + }, + "Ethernet236|0": { + "scheduler": "scheduler.0" + }, + "Ethernet240|0": { + "scheduler": "scheduler.0" + }, + "Ethernet244|0": { + "scheduler": "scheduler.0" + }, + "Ethernet248|0": { + "scheduler": "scheduler.0" + }, + "Ethernet252|0": { + "scheduler": "scheduler.0" + }, + "Ethernet0|1": { + "scheduler": "scheduler.0" + }, + "Ethernet4|1": { + "scheduler": "scheduler.0" + }, + "Ethernet8|1": { + "scheduler": "scheduler.0" + }, + "Ethernet12|1": { + "scheduler": "scheduler.0" + }, + "Ethernet16|1": { + "scheduler": "scheduler.0" + }, + "Ethernet20|1": { + "scheduler": "scheduler.0" + }, + "Ethernet24|1": { + "scheduler": "scheduler.0" + }, + "Ethernet28|1": { + "scheduler": "scheduler.0" + }, + "Ethernet32|1": { + "scheduler": "scheduler.0" + }, + "Ethernet36|1": { + "scheduler": "scheduler.0" + }, + "Ethernet40|1": { + "scheduler": "scheduler.0" + }, + "Ethernet44|1": { + "scheduler": "scheduler.0" + }, + "Ethernet48|1": { + "scheduler": "scheduler.0" + }, + "Ethernet52|1": { + "scheduler": "scheduler.0" + }, + "Ethernet56|1": { + "scheduler": "scheduler.0" + }, + "Ethernet60|1": { + "scheduler": "scheduler.0" + }, + "Ethernet64|1": { + "scheduler": "scheduler.0" + }, + "Ethernet68|1": { + "scheduler": "scheduler.0" + }, + "Ethernet72|1": { + "scheduler": "scheduler.0" + }, + "Ethernet76|1": { + "scheduler": "scheduler.0" + }, + "Ethernet80|1": { + "scheduler": "scheduler.0" + }, + "Ethernet84|1": { + "scheduler": "scheduler.0" + }, + "Ethernet88|1": { + "scheduler": "scheduler.0" + }, + "Ethernet92|1": { + "scheduler": "scheduler.0" + }, + "Ethernet96|1": { + "scheduler": "scheduler.0" + }, + "Ethernet100|1": { + "scheduler": "scheduler.0" + }, + "Ethernet104|1": { + "scheduler": "scheduler.0" + }, + "Ethernet108|1": { + "scheduler": "scheduler.0" + }, + "Ethernet112|1": { + "scheduler": "scheduler.0" + }, + "Ethernet116|1": { + "scheduler": "scheduler.0" + }, + "Ethernet120|1": { + "scheduler": "scheduler.0" + }, + "Ethernet124|1": { + "scheduler": "scheduler.0" + }, + "Ethernet128|1": { + "scheduler": "scheduler.0" + }, + "Ethernet132|1": { + "scheduler": "scheduler.0" + }, + "Ethernet136|1": { + "scheduler": "scheduler.0" + }, + "Ethernet140|1": { + "scheduler": "scheduler.0" + }, + "Ethernet144|1": { + "scheduler": "scheduler.0" + }, + "Ethernet148|1": { + "scheduler": "scheduler.0" + }, + "Ethernet152|1": { + "scheduler": "scheduler.0" + }, + "Ethernet156|1": { + "scheduler": "scheduler.0" + }, + "Ethernet160|1": { + "scheduler": "scheduler.0" + }, + "Ethernet164|1": { + "scheduler": "scheduler.0" + }, + "Ethernet168|1": { + "scheduler": "scheduler.0" + }, + "Ethernet172|1": { + "scheduler": "scheduler.0" + }, + "Ethernet176|1": { + "scheduler": "scheduler.0" + }, + "Ethernet180|1": { + "scheduler": "scheduler.0" + }, + "Ethernet184|1": { + "scheduler": "scheduler.0" + }, + "Ethernet188|1": { + "scheduler": "scheduler.0" + }, + "Ethernet192|1": { + "scheduler": "scheduler.0" + }, + "Ethernet196|1": { + "scheduler": "scheduler.0" + }, + "Ethernet200|1": { + "scheduler": "scheduler.0" + }, + "Ethernet204|1": { + "scheduler": "scheduler.0" + }, + "Ethernet208|1": { + "scheduler": "scheduler.0" + }, + "Ethernet212|1": { + "scheduler": "scheduler.0" + }, + "Ethernet216|1": { + "scheduler": "scheduler.0" + }, + "Ethernet220|1": { + "scheduler": "scheduler.0" + }, + "Ethernet224|1": { + "scheduler": "scheduler.0" + }, + "Ethernet228|1": { + "scheduler": "scheduler.0" + }, + "Ethernet232|1": { + "scheduler": "scheduler.0" + }, + "Ethernet236|1": { + "scheduler": "scheduler.0" + }, + "Ethernet240|1": { + "scheduler": "scheduler.0" + }, + "Ethernet244|1": { + "scheduler": "scheduler.0" + }, + "Ethernet248|1": { + "scheduler": "scheduler.0" + }, + "Ethernet252|1": { + "scheduler": "scheduler.0" + }, + "Ethernet0|2": { + "scheduler": "scheduler.0" + }, + "Ethernet4|2": { + "scheduler": "scheduler.0" + }, + "Ethernet8|2": { + "scheduler": "scheduler.0" + }, + "Ethernet12|2": { + "scheduler": "scheduler.0" + }, + "Ethernet16|2": { + "scheduler": "scheduler.0" + }, + "Ethernet20|2": { + "scheduler": "scheduler.0" + }, + "Ethernet24|2": { + "scheduler": "scheduler.0" + }, + "Ethernet28|2": { + "scheduler": "scheduler.0" + }, + "Ethernet32|2": { + "scheduler": "scheduler.0" + }, + "Ethernet36|2": { + "scheduler": "scheduler.0" + }, + "Ethernet40|2": { + "scheduler": "scheduler.0" + }, + "Ethernet44|2": { + "scheduler": "scheduler.0" + }, + "Ethernet48|2": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet52|2": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet56|2": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet60|2": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet64|2": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet68|2": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet72|2": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet76|2": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet80|2": { + "scheduler": "scheduler.0" + }, + "Ethernet84|2": { + "scheduler": "scheduler.0" + }, + "Ethernet88|2": { + "scheduler": "scheduler.0" + }, + "Ethernet92|2": { + "scheduler": "scheduler.0" + }, + "Ethernet96|2": { + "scheduler": "scheduler.0" + }, + "Ethernet100|2": { + "scheduler": "scheduler.0" + }, + "Ethernet104|2": { + "scheduler": "scheduler.0" + }, + "Ethernet108|2": { + "scheduler": "scheduler.0" + }, + "Ethernet112|2": { + "scheduler": "scheduler.0" + }, + "Ethernet116|2": { + "scheduler": "scheduler.0" + }, + "Ethernet120|2": { + "scheduler": "scheduler.0" + }, + "Ethernet124|2": { + "scheduler": "scheduler.0" + }, + "Ethernet128|2": { + "scheduler": "scheduler.0" + }, + "Ethernet132|2": { + "scheduler": "scheduler.0" + }, + "Ethernet136|2": { + "scheduler": "scheduler.0" + }, + "Ethernet140|2": { + "scheduler": "scheduler.0" + }, + "Ethernet144|2": { + "scheduler": "scheduler.0" + }, + "Ethernet148|2": { + "scheduler": "scheduler.0" + }, + "Ethernet152|2": { + "scheduler": "scheduler.0" + }, + "Ethernet156|2": { + "scheduler": "scheduler.0" + }, + "Ethernet160|2": { + "scheduler": "scheduler.0" + }, + "Ethernet164|2": { + "scheduler": "scheduler.0" + }, + "Ethernet168|2": { + "scheduler": "scheduler.0" + }, + "Ethernet172|2": { + "scheduler": "scheduler.0" + }, + "Ethernet176|2": { + "scheduler": "scheduler.0" + }, + "Ethernet180|2": { + "scheduler": "scheduler.0" + }, + "Ethernet184|2": { + "scheduler": "scheduler.0" + }, + "Ethernet188|2": { + "scheduler": "scheduler.0" + }, + "Ethernet192|2": { + "scheduler": "scheduler.0" + }, + "Ethernet196|2": { + "scheduler": "scheduler.0" + }, + "Ethernet200|2": { + "scheduler": "scheduler.0" + }, + "Ethernet204|2": { + "scheduler": "scheduler.0" + }, + "Ethernet208|2": { + "scheduler": "scheduler.0" + }, + "Ethernet212|2": { + "scheduler": "scheduler.0" + }, + "Ethernet216|2": { + "scheduler": "scheduler.0" + }, + "Ethernet220|2": { + "scheduler": "scheduler.0" + }, + "Ethernet224|2": { + "scheduler": "scheduler.0" + }, + "Ethernet228|2": { + "scheduler": "scheduler.0" + }, + "Ethernet232|2": { + "scheduler": "scheduler.0" + }, + "Ethernet236|2": { + "scheduler": "scheduler.0" + }, + "Ethernet240|2": { + "scheduler": "scheduler.0" + }, + "Ethernet244|2": { + "scheduler": "scheduler.0" + }, + "Ethernet248|2": { + "scheduler": "scheduler.0" + }, + "Ethernet252|2": { + "scheduler": "scheduler.0" + }, + "Ethernet0|5": { + "scheduler": "scheduler.0" + }, + "Ethernet4|5": { + "scheduler": "scheduler.0" + }, + "Ethernet8|5": { + "scheduler": "scheduler.0" + }, + "Ethernet12|5": { + "scheduler": "scheduler.0" + }, + "Ethernet16|5": { + "scheduler": "scheduler.0" + }, + "Ethernet20|5": { + "scheduler": "scheduler.0" + }, + "Ethernet24|5": { + "scheduler": "scheduler.0" + }, + "Ethernet28|5": { + "scheduler": "scheduler.0" + }, + "Ethernet32|5": { + "scheduler": "scheduler.0" + }, + "Ethernet36|5": { + "scheduler": "scheduler.0" + }, + "Ethernet40|5": { + "scheduler": "scheduler.0" + }, + "Ethernet44|5": { + "scheduler": "scheduler.0" + }, + "Ethernet48|5": { + "scheduler": "scheduler.0" + }, + "Ethernet52|5": { + "scheduler": "scheduler.0" + }, + "Ethernet56|5": { + "scheduler": "scheduler.0" + }, + "Ethernet60|5": { + "scheduler": "scheduler.0" + }, + "Ethernet64|5": { + "scheduler": "scheduler.0" + }, + "Ethernet68|5": { + "scheduler": "scheduler.0" + }, + "Ethernet72|5": { + "scheduler": "scheduler.0" + }, + "Ethernet76|5": { + "scheduler": "scheduler.0" + }, + "Ethernet80|5": { + "scheduler": "scheduler.0" + }, + "Ethernet84|5": { + "scheduler": "scheduler.0" + }, + "Ethernet88|5": { + "scheduler": "scheduler.0" + }, + "Ethernet92|5": { + "scheduler": "scheduler.0" + }, + "Ethernet96|5": { + "scheduler": "scheduler.0" + }, + "Ethernet100|5": { + "scheduler": "scheduler.0" + }, + "Ethernet104|5": { + "scheduler": "scheduler.0" + }, + "Ethernet108|5": { + "scheduler": "scheduler.0" + }, + "Ethernet112|5": { + "scheduler": "scheduler.0" + }, + "Ethernet116|5": { + "scheduler": "scheduler.0" + }, + "Ethernet120|5": { + "scheduler": "scheduler.0" + }, + "Ethernet124|5": { + "scheduler": "scheduler.0" + }, + "Ethernet128|5": { + "scheduler": "scheduler.0" + }, + "Ethernet132|5": { + "scheduler": "scheduler.0" + }, + "Ethernet136|5": { + "scheduler": "scheduler.0" + }, + "Ethernet140|5": { + "scheduler": "scheduler.0" + }, + "Ethernet144|5": { + "scheduler": "scheduler.0" + }, + "Ethernet148|5": { + "scheduler": "scheduler.0" + }, + "Ethernet152|5": { + "scheduler": "scheduler.0" + }, + "Ethernet156|5": { + "scheduler": "scheduler.0" + }, + "Ethernet160|5": { + "scheduler": "scheduler.0" + }, + "Ethernet164|5": { + "scheduler": "scheduler.0" + }, + "Ethernet168|5": { + "scheduler": "scheduler.0" + }, + "Ethernet172|5": { + "scheduler": "scheduler.0" + }, + "Ethernet176|5": { + "scheduler": "scheduler.0" + }, + "Ethernet180|5": { + "scheduler": "scheduler.0" + }, + "Ethernet184|5": { + "scheduler": "scheduler.0" + }, + "Ethernet188|5": { + "scheduler": "scheduler.0" + }, + "Ethernet192|5": { + "scheduler": "scheduler.0" + }, + "Ethernet196|5": { + "scheduler": "scheduler.0" + }, + "Ethernet200|5": { + "scheduler": "scheduler.0" + }, + "Ethernet204|5": { + "scheduler": "scheduler.0" + }, + "Ethernet208|5": { + "scheduler": "scheduler.0" + }, + "Ethernet212|5": { + "scheduler": "scheduler.0" + }, + "Ethernet216|5": { + "scheduler": "scheduler.0" + }, + "Ethernet220|5": { + "scheduler": "scheduler.0" + }, + "Ethernet224|5": { + "scheduler": "scheduler.0" + }, + "Ethernet228|5": { + "scheduler": "scheduler.0" + }, + "Ethernet232|5": { + "scheduler": "scheduler.0" + }, + "Ethernet236|5": { + "scheduler": "scheduler.0" + }, + "Ethernet240|5": { + "scheduler": "scheduler.0" + }, + "Ethernet244|5": { + "scheduler": "scheduler.0" + }, + "Ethernet248|5": { + "scheduler": "scheduler.0" + }, + "Ethernet252|5": { + "scheduler": "scheduler.0" + }, + "Ethernet0|6": { + "scheduler": "scheduler.0" + }, + "Ethernet4|6": { + "scheduler": "scheduler.0" + }, + "Ethernet8|6": { + "scheduler": "scheduler.0" + }, + "Ethernet12|6": { + "scheduler": "scheduler.0" + }, + "Ethernet16|6": { + "scheduler": "scheduler.0" + }, + "Ethernet20|6": { + "scheduler": "scheduler.0" + }, + "Ethernet24|6": { + "scheduler": "scheduler.0" + }, + "Ethernet28|6": { + "scheduler": "scheduler.0" + }, + "Ethernet32|6": { + "scheduler": "scheduler.0" + }, + "Ethernet36|6": { + "scheduler": "scheduler.0" + }, + "Ethernet40|6": { + "scheduler": "scheduler.0" + }, + "Ethernet44|6": { + "scheduler": "scheduler.0" + }, + "Ethernet48|6": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet52|6": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet56|6": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet60|6": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet64|6": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet68|6": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet72|6": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet76|6": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet80|6": { + "scheduler": "scheduler.0" + }, + "Ethernet84|6": { + "scheduler": "scheduler.0" + }, + "Ethernet88|6": { + "scheduler": "scheduler.0" + }, + "Ethernet92|6": { + "scheduler": "scheduler.0" + }, + "Ethernet96|6": { + "scheduler": "scheduler.0" + }, + "Ethernet100|6": { + "scheduler": "scheduler.0" + }, + "Ethernet104|6": { + "scheduler": "scheduler.0" + }, + "Ethernet108|6": { + "scheduler": "scheduler.0" + }, + "Ethernet112|6": { + "scheduler": "scheduler.0" + }, + "Ethernet116|6": { + "scheduler": "scheduler.0" + }, + "Ethernet120|6": { + "scheduler": "scheduler.0" + }, + "Ethernet124|6": { + "scheduler": "scheduler.0" + }, + "Ethernet128|6": { + "scheduler": "scheduler.0" + }, + "Ethernet132|6": { + "scheduler": "scheduler.0" + }, + "Ethernet136|6": { + "scheduler": "scheduler.0" + }, + "Ethernet140|6": { + "scheduler": "scheduler.0" + }, + "Ethernet144|6": { + "scheduler": "scheduler.0" + }, + "Ethernet148|6": { + "scheduler": "scheduler.0" + }, + "Ethernet152|6": { + "scheduler": "scheduler.0" + }, + "Ethernet156|6": { + "scheduler": "scheduler.0" + }, + "Ethernet160|6": { + "scheduler": "scheduler.0" + }, + "Ethernet164|6": { + "scheduler": "scheduler.0" + }, + "Ethernet168|6": { + "scheduler": "scheduler.0" + }, + "Ethernet172|6": { + "scheduler": "scheduler.0" + }, + "Ethernet176|6": { + "scheduler": "scheduler.0" + }, + "Ethernet180|6": { + "scheduler": "scheduler.0" + }, + "Ethernet184|6": { + "scheduler": "scheduler.0" + }, + "Ethernet188|6": { + "scheduler": "scheduler.0" + }, + "Ethernet192|6": { + "scheduler": "scheduler.0" + }, + "Ethernet196|6": { + "scheduler": "scheduler.0" + }, + "Ethernet200|6": { + "scheduler": "scheduler.0" + }, + "Ethernet204|6": { + "scheduler": "scheduler.0" + }, + "Ethernet208|6": { + "scheduler": "scheduler.0" + }, + "Ethernet212|6": { + "scheduler": "scheduler.0" + }, + "Ethernet216|6": { + "scheduler": "scheduler.0" + }, + "Ethernet220|6": { + "scheduler": "scheduler.0" + }, + "Ethernet224|6": { + "scheduler": "scheduler.0" + }, + "Ethernet228|6": { + "scheduler": "scheduler.0" + }, + "Ethernet232|6": { + "scheduler": "scheduler.0" + }, + "Ethernet236|6": { + "scheduler": "scheduler.0" + }, + "Ethernet240|6": { + "scheduler": "scheduler.0" + }, + "Ethernet244|6": { + "scheduler": "scheduler.0" + }, + "Ethernet248|6": { + "scheduler": "scheduler.0" + }, + "Ethernet252|6": { + "scheduler": "scheduler.0" + } + } +} diff --git a/src/sonic-config-engine/tests/sample_output/py3/qos-arista7260-t1.json b/src/sonic-config-engine/tests/sample_output/py3/qos-arista7260-t1.json new file mode 100644 index 000000000000..9db828a759e4 --- /dev/null +++ b/src/sonic-config-engine/tests/sample_output/py3/qos-arista7260-t1.json @@ -0,0 +1,1045 @@ +{ + "MAP_PFC_PRIORITY_TO_QUEUE": { + "AZURE": { + "0": "0", + "1": "1", + "2": "2", + "3": "3", + "4": "4", + "5": "5", + "6": "6", + "7": "7" + } + }, + "TC_TO_QUEUE_MAP": { + "AZURE": { + "0": "0", + "1": "1", + "2": "2", + "3": "3", + "4": "4", + "5": "5", + "6": "6", + "7": "7" + } + }, + "DSCP_TO_TC_MAP": { + "AZURE": { + "0" : "1", + "1" : "1", + "2" : "2", + "3" : "3", + "4" : "4", + "5" : "1", + "6" : "6", + "7" : "1", + "8" : "0", + "9" : "1", + "10": "1", + "11": "1", + "12": "1", + "13": "1", + "14": "1", + "15": "1", + "16": "1", + "17": "1", + "18": "1", + "19": "1", + "20": "1", + "21": "1", + "22": "1", + "23": "1", + "24": "1", + "25": "1", + "26": "1", + "27": "1", + "28": "1", + "29": "1", + "30": "1", + "31": "1", + "32": "1", + "33": "1", + "34": "1", + "35": "1", + "36": "1", + "37": "1", + "38": "1", + "39": "1", + "40": "1", + "41": "1", + "42": "1", + "43": "1", + "44": "1", + "45": "1", + "46": "5", + "47": "1", + "48": "7", + "49": "1", + "50": "1", + "51": "1", + "52": "1", + "53": "1", + "54": "1", + "55": "1", + "56": "1", + "57": "1", + "58": "1", + "59": "1", + "60": "1", + "61": "1", + "62": "1", + "63": "1" + } + }, + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "0": "0", + "1": "0", + "2": "2", + "3": "3", + "4": "4", + "5": "0", + "6": "6", + "7": "7" + } + }, + "SCHEDULER": { + "scheduler.0": { + "type" : "DWRR", + "weight": "14" + }, + "scheduler.1": { + "type" : "DWRR", + "weight": "15" + } + }, + "PORT_QOS_MAP": { + "Ethernet0": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet4": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet16": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet20": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet64": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet68": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet80": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet84": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet136": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "2,3,4,6", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet144": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "2,3,4,6", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet148": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "2,3,4,6", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet152": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "2,3,4,6", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet156": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "2,3,4,6", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet168": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "2,3,4,6", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet176": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "2,3,4,6", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet180": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "2,3,4,6", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet184": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "2,3,4,6", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet188": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "2,3,4,6", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet200": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "2,3,4,6", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet208": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "2,3,4,6", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet212": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "2,3,4,6", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet216": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "2,3,4,6", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet220": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "2,3,4,6", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet232": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "2,3,4,6", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet240": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "2,3,4,6", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet244": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "2,3,4,6", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet248": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "2,3,4,6", + "pfcwd_sw_enable" : "3,4" + }, + "Ethernet252": { + "dscp_to_tc_map" : "AZURE", + "tc_to_queue_map" : "AZURE", + "tc_to_pg_map" : "AZURE", + "pfc_to_queue_map": "AZURE", + "pfc_enable" : "2,3,4,6", + "pfcwd_sw_enable" : "3,4" + } + }, + "WRED_PROFILE": { + "AZURE_LOSSLESS" : { + "wred_green_enable" : "true", + "wred_yellow_enable" : "true", + "wred_red_enable" : "true", + "ecn" : "ecn_all", + "green_max_threshold" : "2097152", + "green_min_threshold" : "1048576", + "yellow_max_threshold" : "2097152", + "yellow_min_threshold" : "1048576", + "red_max_threshold" : "2097152", + "red_min_threshold" : "1048576", + "green_drop_probability" : "5", + "yellow_drop_probability": "5", + "red_drop_probability" : "5" + } + }, + "QUEUE": { + "Ethernet0|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet4|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet16|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet20|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet64|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet68|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet80|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet84|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet136|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet144|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet148|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet152|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet156|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet168|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet176|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet180|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet184|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet188|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet200|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet208|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet212|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet216|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet220|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet232|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet240|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet244|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet248|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet252|3": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet0|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet4|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet16|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet20|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet64|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet68|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet80|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet84|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet136|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet144|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet148|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet152|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet156|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet168|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet176|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet180|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet184|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet188|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet200|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet208|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet212|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet216|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet220|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet232|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet240|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet244|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet248|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet252|4": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet0|0": { + "scheduler": "scheduler.0" + }, + "Ethernet4|0": { + "scheduler": "scheduler.0" + }, + "Ethernet16|0": { + "scheduler": "scheduler.0" + }, + "Ethernet20|0": { + "scheduler": "scheduler.0" + }, + "Ethernet64|0": { + "scheduler": "scheduler.0" + }, + "Ethernet68|0": { + "scheduler": "scheduler.0" + }, + "Ethernet80|0": { + "scheduler": "scheduler.0" + }, + "Ethernet84|0": { + "scheduler": "scheduler.0" + }, + "Ethernet136|0": { + "scheduler": "scheduler.0" + }, + "Ethernet144|0": { + "scheduler": "scheduler.0" + }, + "Ethernet148|0": { + "scheduler": "scheduler.0" + }, + "Ethernet152|0": { + "scheduler": "scheduler.0" + }, + "Ethernet156|0": { + "scheduler": "scheduler.0" + }, + "Ethernet168|0": { + "scheduler": "scheduler.0" + }, + "Ethernet176|0": { + "scheduler": "scheduler.0" + }, + "Ethernet180|0": { + "scheduler": "scheduler.0" + }, + "Ethernet184|0": { + "scheduler": "scheduler.0" + }, + "Ethernet188|0": { + "scheduler": "scheduler.0" + }, + "Ethernet200|0": { + "scheduler": "scheduler.0" + }, + "Ethernet208|0": { + "scheduler": "scheduler.0" + }, + "Ethernet212|0": { + "scheduler": "scheduler.0" + }, + "Ethernet216|0": { + "scheduler": "scheduler.0" + }, + "Ethernet220|0": { + "scheduler": "scheduler.0" + }, + "Ethernet232|0": { + "scheduler": "scheduler.0" + }, + "Ethernet240|0": { + "scheduler": "scheduler.0" + }, + "Ethernet244|0": { + "scheduler": "scheduler.0" + }, + "Ethernet248|0": { + "scheduler": "scheduler.0" + }, + "Ethernet252|0": { + "scheduler": "scheduler.0" + }, + "Ethernet0|1": { + "scheduler": "scheduler.0" + }, + "Ethernet4|1": { + "scheduler": "scheduler.0" + }, + "Ethernet16|1": { + "scheduler": "scheduler.0" + }, + "Ethernet20|1": { + "scheduler": "scheduler.0" + }, + "Ethernet64|1": { + "scheduler": "scheduler.0" + }, + "Ethernet68|1": { + "scheduler": "scheduler.0" + }, + "Ethernet80|1": { + "scheduler": "scheduler.0" + }, + "Ethernet84|1": { + "scheduler": "scheduler.0" + }, + "Ethernet136|1": { + "scheduler": "scheduler.0" + }, + "Ethernet144|1": { + "scheduler": "scheduler.0" + }, + "Ethernet148|1": { + "scheduler": "scheduler.0" + }, + "Ethernet152|1": { + "scheduler": "scheduler.0" + }, + "Ethernet156|1": { + "scheduler": "scheduler.0" + }, + "Ethernet168|1": { + "scheduler": "scheduler.0" + }, + "Ethernet176|1": { + "scheduler": "scheduler.0" + }, + "Ethernet180|1": { + "scheduler": "scheduler.0" + }, + "Ethernet184|1": { + "scheduler": "scheduler.0" + }, + "Ethernet188|1": { + "scheduler": "scheduler.0" + }, + "Ethernet200|1": { + "scheduler": "scheduler.0" + }, + "Ethernet208|1": { + "scheduler": "scheduler.0" + }, + "Ethernet212|1": { + "scheduler": "scheduler.0" + }, + "Ethernet216|1": { + "scheduler": "scheduler.0" + }, + "Ethernet220|1": { + "scheduler": "scheduler.0" + }, + "Ethernet232|1": { + "scheduler": "scheduler.0" + }, + "Ethernet240|1": { + "scheduler": "scheduler.0" + }, + "Ethernet244|1": { + "scheduler": "scheduler.0" + }, + "Ethernet248|1": { + "scheduler": "scheduler.0" + }, + "Ethernet252|1": { + "scheduler": "scheduler.0" + }, + "Ethernet0|2": { + "scheduler": "scheduler.0" + }, + "Ethernet4|2": { + "scheduler": "scheduler.0" + }, + "Ethernet16|2": { + "scheduler": "scheduler.0" + }, + "Ethernet20|2": { + "scheduler": "scheduler.0" + }, + "Ethernet64|2": { + "scheduler": "scheduler.0" + }, + "Ethernet68|2": { + "scheduler": "scheduler.0" + }, + "Ethernet80|2": { + "scheduler": "scheduler.0" + }, + "Ethernet84|2": { + "scheduler": "scheduler.0" + }, + "Ethernet136|2": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet144|2": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet148|2": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet152|2": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet156|2": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet168|2": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet176|2": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet180|2": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet184|2": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet188|2": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet200|2": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet208|2": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet212|2": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet216|2": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet220|2": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet232|2": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet240|2": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet244|2": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet248|2": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet252|2": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet0|5": { + "scheduler": "scheduler.0" + }, + "Ethernet4|5": { + "scheduler": "scheduler.0" + }, + "Ethernet16|5": { + "scheduler": "scheduler.0" + }, + "Ethernet20|5": { + "scheduler": "scheduler.0" + }, + "Ethernet64|5": { + "scheduler": "scheduler.0" + }, + "Ethernet68|5": { + "scheduler": "scheduler.0" + }, + "Ethernet80|5": { + "scheduler": "scheduler.0" + }, + "Ethernet84|5": { + "scheduler": "scheduler.0" + }, + "Ethernet136|5": { + "scheduler": "scheduler.0" + }, + "Ethernet144|5": { + "scheduler": "scheduler.0" + }, + "Ethernet148|5": { + "scheduler": "scheduler.0" + }, + "Ethernet152|5": { + "scheduler": "scheduler.0" + }, + "Ethernet156|5": { + "scheduler": "scheduler.0" + }, + "Ethernet168|5": { + "scheduler": "scheduler.0" + }, + "Ethernet176|5": { + "scheduler": "scheduler.0" + }, + "Ethernet180|5": { + "scheduler": "scheduler.0" + }, + "Ethernet184|5": { + "scheduler": "scheduler.0" + }, + "Ethernet188|5": { + "scheduler": "scheduler.0" + }, + "Ethernet200|5": { + "scheduler": "scheduler.0" + }, + "Ethernet208|5": { + "scheduler": "scheduler.0" + }, + "Ethernet212|5": { + "scheduler": "scheduler.0" + }, + "Ethernet216|5": { + "scheduler": "scheduler.0" + }, + "Ethernet220|5": { + "scheduler": "scheduler.0" + }, + "Ethernet232|5": { + "scheduler": "scheduler.0" + }, + "Ethernet240|5": { + "scheduler": "scheduler.0" + }, + "Ethernet244|5": { + "scheduler": "scheduler.0" + }, + "Ethernet248|5": { + "scheduler": "scheduler.0" + }, + "Ethernet252|5": { + "scheduler": "scheduler.0" + }, + "Ethernet0|6": { + "scheduler": "scheduler.0" + }, + "Ethernet4|6": { + "scheduler": "scheduler.0" + }, + "Ethernet16|6": { + "scheduler": "scheduler.0" + }, + "Ethernet20|6": { + "scheduler": "scheduler.0" + }, + "Ethernet64|6": { + "scheduler": "scheduler.0" + }, + "Ethernet68|6": { + "scheduler": "scheduler.0" + }, + "Ethernet80|6": { + "scheduler": "scheduler.0" + }, + "Ethernet84|6": { + "scheduler": "scheduler.0" + }, + "Ethernet136|6": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet144|6": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet148|6": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet152|6": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet156|6": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet168|6": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet176|6": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet180|6": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet184|6": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet188|6": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet200|6": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet208|6": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet212|6": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet216|6": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet220|6": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet232|6": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet240|6": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet244|6": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet248|6": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + }, + "Ethernet252|6": { + "scheduler" : "scheduler.1", + "wred_profile": "AZURE_LOSSLESS" + } + } +} diff --git a/src/sonic-config-engine/tests/sample_output/py3/qos-arista7800r3-48cq2-lc.json b/src/sonic-config-engine/tests/sample_output/py3/qos-arista7800r3-48cq2-lc.json index 3044749a2776..92ba2caf8d17 100644 --- a/src/sonic-config-engine/tests/sample_output/py3/qos-arista7800r3-48cq2-lc.json +++ b/src/sonic-config-engine/tests/sample_output/py3/qos-arista7800r3-48cq2-lc.json @@ -119,315 +119,360 @@ "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet4": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet8": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet12": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet16": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet20": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet24": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet28": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet32": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet36": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet40": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet44": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet48": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet52": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet56": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet60": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet64": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet68": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet72": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet76": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet80": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet84": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet88": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet92": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet96": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet100": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet104": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet108": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet112": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet116": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet120": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet124": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet128": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet132": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet136": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet140": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet144": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet148": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet152": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet156": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet164": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet176": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet180": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet184": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet188": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" } }, "WRED_PROFILE": { diff --git a/src/sonic-config-engine/tests/sample_output/py3/qos-dell6100.json b/src/sonic-config-engine/tests/sample_output/py3/qos-dell6100.json index eecd81c99e5c..27bea8cd32d3 100644 --- a/src/sonic-config-engine/tests/sample_output/py3/qos-dell6100.json +++ b/src/sonic-config-engine/tests/sample_output/py3/qos-dell6100.json @@ -119,308 +119,352 @@ "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet1": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet4": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet5": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet6": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet7": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet8": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet9": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet10": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet11": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet12": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet13": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet14": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet15": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet16": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet17": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet20": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet21": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet22": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet23": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet24": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet25": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet26": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet27": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet28": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet29": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet30": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet31": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet32": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet36": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet37": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet38": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet39": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet40": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet41": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet42": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet48": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet52": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet53": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet54": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet55": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet56": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet57": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet58": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" } }, "WRED_PROFILE": { diff --git a/src/sonic-config-engine/tests/sample_output/py3/qos-dell9332.json b/src/sonic-config-engine/tests/sample_output/py3/qos-dell9332.json index 39f4b26e8372..8130a455497a 100644 --- a/src/sonic-config-engine/tests/sample_output/py3/qos-dell9332.json +++ b/src/sonic-config-engine/tests/sample_output/py3/qos-dell9332.json @@ -123,224 +123,256 @@ "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet8": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet16": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet24": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet32": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet40": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet48": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet56": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet64": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet72": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet80": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet88": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet96": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet104": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet112": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet120": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet128": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet136": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet144": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet152": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet160": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet168": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet176": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet184": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet192": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet200": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet208": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet216": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet224": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet232": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet240": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" }, "Ethernet248": { "dscp_to_tc_map" : "AZURE", "tc_to_queue_map" : "AZURE", "tc_to_pg_map" : "AZURE", "pfc_to_queue_map": "AZURE", - "pfc_enable" : "3,4" + "pfc_enable" : "3,4", + "pfcwd_sw_enable" : "3,4" } }, "WRED_PROFILE": { diff --git a/src/sonic-config-engine/tests/test_j2files.py b/src/sonic-config-engine/tests/test_j2files.py index da37bf8d18c6..52d4260dba77 100644 --- a/src/sonic-config-engine/tests/test_j2files.py +++ b/src/sonic-config-engine/tests/test_j2files.py @@ -274,6 +274,49 @@ def test_qos_dell6100_render_template(self): sample_output_file = os.path.join(self.test_dir, 'sample_output', utils.PYvX_DIR, 'qos-dell6100.json') assert utils.cmp(sample_output_file, self.output_file), self.run_diff(sample_output_file, self.output_file) + def test_qos_dscp_remapping_render_template(self): + if utils.PYvX_DIR != 'py3': + # Skip on python2 as the change will not be backported to previous version + return + + dir_paths = [ + '../../../device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-D48C8', + '../../../device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-D108C8', + '../../../device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64' + ] + sample_outputs = [ + 'qos-arista7050cx3-dualtor.json', + 'qos-arista7260-dualtor.json', + 'qos-arista7260-t1.json' + ] + sample_minigraph_files = [ + 'sample-arista-7050cx3-dualtor-minigraph.xml', + 'sample-arista-7260-dualtor-minigraph.xml', + 'sample-arista-7260-t1-minigraph.xml' + ] + for i, path in enumerate(dir_paths): + device_template_path = os.path.join(self.test_dir, path) + sample_output = sample_outputs[i] + sample_minigraph_file = os.path.join(self.test_dir,sample_minigraph_files[i]) + qos_file = os.path.join(device_template_path, 'qos.json.j2') + port_config_ini_file = os.path.join(device_template_path, 'port_config.ini') + test_output = os.path.join(self.test_dir, 'output.json') + + # copy qos_config.j2 to the target directory to have all templates in one directory + qos_config_file = os.path.join(self.test_dir, '..', '..', '..', 'files', 'build_templates', 'qos_config.j2') + shutil.copy2(qos_config_file, device_template_path) + + argument = '-m ' + sample_minigraph_file + ' -p ' + port_config_ini_file + ' -t ' + qos_file + ' > ' + test_output + self.run_script(argument) + + # cleanup + qos_config_file_new = os.path.join(device_template_path, 'qos_config.j2') + os.remove(qos_config_file_new) + + sample_output_file = os.path.join(self.test_dir, 'sample_output', utils.PYvX_DIR, sample_output) + assert utils.cmp(sample_output_file, test_output) + os.remove(test_output) + def _test_buffers_render_template(self, vendor, platform, sku, minigraph, buffer_template, expected): dir_path = os.path.join(self.test_dir, '..', '..', '..', 'device', vendor, platform, sku) buffers_file = os.path.join(dir_path, buffer_template) From 31be203af6643c0f3e621e3d57040d2195617ad7 Mon Sep 17 00:00:00 2001 From: Andriy Kokhan Date: Tue, 5 Apr 2022 19:11:38 +0300 Subject: [PATCH 040/251] [BFN] Updated x86_64-accton_as9516_32d-r0/platform.json (#10368) Signed-off-by: Andriy Kokhan --- .../x86_64-accton_as9516_32d-r0/platform.json | 126 ++++++++++++++---- 1 file changed, 102 insertions(+), 24 deletions(-) diff --git a/device/barefoot/x86_64-accton_as9516_32d-r0/platform.json b/device/barefoot/x86_64-accton_as9516_32d-r0/platform.json index 115dd194b725..abd2fec0a303 100644 --- a/device/barefoot/x86_64-accton_as9516_32d-r0/platform.json +++ b/device/barefoot/x86_64-accton_as9516_32d-r0/platform.json @@ -9,57 +9,135 @@ "name": "BMC" } ], + "thermal_manager": false, "fans": [ { - "name": "counter-rotating-fan-1" - }, - { - "name": "counter-rotating-fan-2" - }, - { - "name": "counter-rotating-fan-3" - }, - { - "name": "counter-rotating-fan-4" - }, - { - "name": "counter-rotating-fan-5" - }, - { - "name": "counter-rotating-fan-6" + "name": "counter-rotating-fan-1", + "status_led": { + "controllable": false + }, + "speed": { + "controllable": false + } + }, + { + "name": "counter-rotating-fan-2", + "status_led": { + "controllable": false + }, + "speed": { + "controllable": false + } + }, + { + "name": "counter-rotating-fan-3", + "status_led": { + "controllable": false + }, + "speed": { + "controllable": false + } + }, + { + "name": "counter-rotating-fan-4", + "status_led": { + "controllable": false + }, + "speed": { + "controllable": false + } + }, + { + "name": "counter-rotating-fan-5", + "status_led": { + "controllable": false + }, + "speed": { + "controllable": false + } + }, + { + "name": "counter-rotating-fan-6", + "status_led": { + "controllable": false + }, + "speed": { + "controllable": false + } } ], "fan_drawers": [ { "name": "fantray-1", + "status_led": { + "controllable": false + }, "fans": [ { - "name": "counter-rotating-fan-1" + "name": "counter-rotating-fan-1", + "status_led": { + "controllable": false + }, + "speed": { + "controllable": false + } }, { - "name": "counter-rotating-fan-2" + "name": "counter-rotating-fan-2", + "status_led": { + "controllable": false + }, + "speed": { + "controllable": false + } }, { - "name": "counter-rotating-fan-3" + "name": "counter-rotating-fan-3", + "status_led": { + "controllable": false + }, + "speed": { + "controllable": false + } }, { - "name": "counter-rotating-fan-4" + "name": "counter-rotating-fan-4", + "status_led": { + "controllable": false + }, + "speed": { + "controllable": false + } }, { - "name": "counter-rotating-fan-5" + "name": "counter-rotating-fan-5", + "status_led": { + "controllable": false + }, + "speed": { + "controllable": false + } }, { - "name": "counter-rotating-fan-6" + "name": "counter-rotating-fan-6", + "status_led": { + "controllable": false + }, + "speed": { + "controllable": false + } } ] } ], "psus": [ { - "name": "psu-1" + "name": "psu-1", + "temperature": false }, { - "name": "psu-2" + "name": "psu-2", + "temperature": false } ], "thermals": [ From 8e616c153b9775d2514c68a5112a583eeb334e6b Mon Sep 17 00:00:00 2001 From: Vadym Yashchenko Date: Tue, 5 Apr 2022 19:13:08 +0300 Subject: [PATCH 041/251] [BFN] Refactoring and adding some functions of Thermal class (set and get thresholds and etc.) (#10205) * Revised set_high_thershold and set_low_thershold methobs in the thermal.py Signed-off-by: Vadym Yashchenko * Revised set_low_thershold and set_high_thershold Signed-off-by: Vadym Yashchenko * Added separated files with thermal thresholds, changed platform.json and thermal.py Signed-off-by: Vadym Yashchenko * Revised on code revieww Signed-off-by: Vadym Yashchenko * Reverted thermal.py Signed-off-by: Vadym Yashchenko * Revised ther python.py Signed-off-by: Vadym Yashchenko * Revised due to code review Signed-off-by: Vadym Yashchenko * Added fucntion for fix the problem of tofino sensor high critical threshold Signed-off-by: Vadym Yashchenko * Revised due to code review Signed-off-by: Vadym Yashchenko * Revised due to code review Signed-off-by: Vadym Yashchenko * Revised due to code review Signed-off-by: Vadym Yashchenko * Revised only for cab18-4 Signed-off-by: Vadym Yashchenko * Revised default thresholds Signed-off-by: Vadym Yashchenko * Revised ther def thresholds Signed-off-by: Vadym Yashchenko * Revised on code review Signed-off-by: Vadym Yashchenko * Revised platform.json and thermal_thresholds.json Signed-off-by: Vadym Yashchenko * Code review in PR to azure (trigger CI) Signed-off-by: Vadym Yashchenko * Added handle of exception Signed-off-by: Vadym Yashchenko * Revised exception handler * Added psu-1 thermal names to platfrom.json Signed-off-by: Vadym Yashchenko * Changed platform.json and thermal_thresholds.json in x86_64-acton_as9516_32d-r0 Signed-off-by: Vadym Yashchenko * Removed indentation from json file Signed-off-by: Vadym Yashchenko --- .../thermal_thresholds.json | 61 +++++++++++++ .../platform.json | 29 +++--- .../thermal_thresholds.json | 64 +++++++++++++ .../sonic_platform/thermal.py | 89 +++++++++++++++++-- 4 files changed, 224 insertions(+), 19 deletions(-) create mode 100644 device/barefoot/x86_64-accton_as9516_32d-r0/thermal_thresholds.json create mode 100644 device/barefoot/x86_64-accton_wedge100bf_32x-r0/thermal_thresholds.json diff --git a/device/barefoot/x86_64-accton_as9516_32d-r0/thermal_thresholds.json b/device/barefoot/x86_64-accton_as9516_32d-r0/thermal_thresholds.json new file mode 100644 index 000000000000..451067eb603c --- /dev/null +++ b/device/barefoot/x86_64-accton_as9516_32d-r0/thermal_thresholds.json @@ -0,0 +1,61 @@ +{ + "thermals": [ + { + "com_e_driver-i2c-4-33:cpu-temp" : [99.0, 89.0, 11.0, 1.0] + }, + { + "com_e_driver-i2c-4-33:memory-temp" : [85.0, 75.0, 11.0, 1.0] + }, + { + "tmp75-i2c-3-48:chip-temp" : [90.0, 80.0, 11.0, 1.0] + }, + { + "tmp75-i2c-3-49:exhaust2-temp" : [80.0, 70.0, 11.0, 1.0] + }, + { + "tmp75-i2c-3-4a:exhaust-temp" : [60.0, 50.0, 11.0, 1.0] + }, + { + "tmp75-i2c-3-4b:intake-temp" : [60.0, 50.0, 11.0, 1.0] + }, + { + "tmp75-i2c-3-4c:tofino-temp" : [99.0, 89.0, 11.0, 1.0] + }, + { + "tmp75-i2c-3-4d:intake2-temp" : [60.0, 50.0, 11.0, 1.0] + }, + { + "coretemp-isa-0000:package-id-0" : [80.0, 70.0, 11.0, 1.0] + }, + { + "coretemp-isa-0000:core-0" : [99.0, 89.0, 11.0, 1.0] + }, + { + "coretemp-isa-0000:core-1" : [99.0, 89.0, 11.0, 1.0] + }, + { + "coretemp-isa-0000:core-2" : [99.0, 89.0, 11.0, 1.0] + }, + { + "coretemp-isa-0000:core-3" : [99.0, 89.0, 11.0, 1.0] + }, + { + "psu_driver-i2c-7-59:psu2-temp1" : [60.0, 50.0, 11.0, 1.0] + }, + { + "psu_driver-i2c-7-59:psu2-temp2" : [60.0, 50.0, 11.0, 1.0] + }, + { + "psu_driver-i2c-7-59:psu2-temp3" : [60.0, 50.0, 11.0, 1.0] + }, + { + "psu_driver-i2c-7-5a:psu1-temp1" : [60.0, 50.0, 11.0, 1.0] + }, + { + "psu_driver-i2c-7-5a:psu1-temp2" : [60.0, 50.0, 11.0, 1.0] + }, + { + "psu_driver-i2c-7-5a:psu1-temp3" : [60.0, 50.0, 11.0, 1.0] + } + ] +} \ No newline at end of file diff --git a/device/barefoot/x86_64-accton_wedge100bf_32x-r0/platform.json b/device/barefoot/x86_64-accton_wedge100bf_32x-r0/platform.json index ea18a031344e..5fee4f0eebaf 100644 --- a/device/barefoot/x86_64-accton_wedge100bf_32x-r0/platform.json +++ b/device/barefoot/x86_64-accton_wedge100bf_32x-r0/platform.json @@ -57,38 +57,41 @@ } ], "thermals": [ + { + "name": "com_e_driver-i2c-4-33:cpu-temp" + }, { "name": "com_e_driver-i2c-4-33:memory-temp" }, { - "name": "com_e_driver-i2c-4-33:cpu-temp" + "name": "psu_driver-i2c-7-59:psu2-temp1" }, { - "name": "pfe1100-i2c-7-59:temp1" + "name": "psu_driver-i2c-7-59:psu2-temp2" }, { - "name": "pfe1100-i2c-7-59:temp2" + "name": "psu_driver-i2c-7-5a:psu1-temp1" }, { - "name": "pfe1100-i2c-7-5a:temp1" + "name": "psu_driver-i2c-7-5a:psu1-temp2" }, { - "name": "pfe1100-i2c-7-5a:temp2" + "name": "tmp75-i2c-3-48:chip-temp" }, { - "name": "tmp75-i2c-3-48:outlet-middle-temp" + "name": "tmp75-i2c-3-49:exhaust2-temp" }, { - "name": "tmp75-i2c-3-49:inlet-middle-temp" + "name": "tmp75-i2c-3-4a:exhaust-temp" }, { - "name": "tmp75-i2c-3-4a:inlet-left-temp" + "name": "tmp75-i2c-3-4b:intake-temp" }, { - "name": "tmp75-i2c-3-4b:switch-temp" + "name": "tmp75-i2c-3-4c:tofino-temp" }, { - "name": "tmp75-i2c-3-4c:inlet-right-temp" + "name": "tmp75-i2c-3-4d:intake2-temp" }, { "name": "tmp75-i2c-8-48:outlet-right-temp" @@ -96,6 +99,9 @@ { "name": "tmp75-i2c-8-49:outlet-left-temp" }, + { + "name": "pch_haswell-virtual-0:temp1" + }, { "name": "coretemp-isa-0000:package-id-0" }, @@ -110,9 +116,6 @@ }, { "name": "coretemp-isa-0000:core-3" - }, - { - "name": "pch_haswell-virtual-0:temp1" } ], "sfps": [ diff --git a/device/barefoot/x86_64-accton_wedge100bf_32x-r0/thermal_thresholds.json b/device/barefoot/x86_64-accton_wedge100bf_32x-r0/thermal_thresholds.json new file mode 100644 index 000000000000..bee961a84411 --- /dev/null +++ b/device/barefoot/x86_64-accton_wedge100bf_32x-r0/thermal_thresholds.json @@ -0,0 +1,64 @@ +{ + "thermals": [ + { + "com_e_driver-i2c-4-33:cpu-temp" : [99.0, 89.0, 11.0, 1.0] + }, + { + "com_e_driver-i2c-4-33:memory-temp" : [85.0, 75.0, 11.0, 1.0] + }, + { + "psu_driver-i2c-7-59:psu2-temp1" : [50.0, 40.0, 11.0, 1.0] + }, + { + "psu_driver-i2c-7-59:psu2-temp2" : [90.0, 80.0, 11.0, 1.0] + }, + { + "psu_driver-i2c-7-5a:psu1-temp1" : [50.0, 40.0, 11.0, 1.0] + }, + { + "psu_driver-i2c-7-5a:psu1-temp2" : [90.0, 80.0, 11.0, 1.0] + }, + { + "tmp75-i2c-3-48:chip-temp" : [90.0, 80.0, 11.0, 1.0] + }, + { + "tmp75-i2c-3-49:exhaust2-temp" : [80.0, 70.0, 11.0, 1.0] + }, + { + "tmp75-i2c-3-4a:exhaust-temp" : [60.0, 50.0, 11.0, 1.0] + }, + { + "tmp75-i2c-3-4b:intake-temp" : [60.0, 50.0, 11.0, 1.0] + }, + { + "tmp75-i2c-3-4c:tofino-temp" : [99.0, 89.0, 11.0, 1.0] + }, + { + "tmp75-i2c-3-4d:intake2-temp" : [60.0, 50.0, 11.0, 1.0] + }, + { + "tmp75-i2c-8-48:outlet-right-temp" : [60.0, 50.0, 11.0, 1.0] + }, + { + "tmp75-i2c-8-49:outlet-left-temp" : [60.0, 50.0, 11.0, 1.0] + }, + { + "pch_haswell-virtual-0:temp1" : [60.0, 50.0, 11.0, 1.0] + }, + { + "coretemp-isa-0000:package-id-0" : [80.0, 70.0, 11.0, 1.0] + }, + { + "coretemp-isa-0000:core-0" : [99.0, 89.0, 11.0, 1.0] + }, + { + "coretemp-isa-0000:core-1" : [99.0, 89.0, 11.0, 1.0] + }, + { + "coretemp-isa-0000:core-2" : [99.0, 89.0, 11.0, 1.0] + }, + { + "coretemp-isa-0000:core-3" : [99.0, 89.0, 11.0, 1.0] + } + ] +} \ No newline at end of file diff --git a/platform/barefoot/sonic-platform-modules-bfn-montara/sonic_platform/thermal.py b/platform/barefoot/sonic-platform-modules-bfn-montara/sonic_platform/thermal.py index ef3c571ac301..e5034f09f558 100644 --- a/platform/barefoot/sonic-platform-modules-bfn-montara/sonic_platform/thermal.py +++ b/platform/barefoot/sonic-platform-modules-bfn-montara/sonic_platform/thermal.py @@ -1,8 +1,11 @@ try: import subprocess - + from collections import namedtuple + import json from bfn_extensions.platform_sensors import platform_sensors_get from sonic_platform_base.thermal_base import ThermalBase + from sonic_py_common import device_info + import logging except ImportError as e: raise ImportError (str(e) + "- required module not found") @@ -18,6 +21,8 @@ temp2_input: 37.000 ... ''' +Threshold = namedtuple('Threshold', ['crit', 'max', 'min', 'alarm']) + def _sensors_chip_parsed(data: str): def kv(line): k, v, *_ = [t.strip(': ') for t in line.split(':') if t] + [''] @@ -68,27 +73,89 @@ def _value_get(d: dict, key_prefix, key_suffix=''): # Thermal -> ThermalBase -> DeviceBase class Thermal(ThermalBase): + _thresholds = dict() + _max_temperature = 100.0 + _min_temperature = 0.0 + _min_high_threshold_temperature = 35.0 + def __init__(self, chip, label, index = 0): self.__chip = chip self.__label = label self.__name = f"{chip}:{label}".lower().replace(' ', '-') self.__collect_temp = [] self.__index = index + self.__high_threshold = None + self.__low_threshold = None + f = None + try: + path = device_info.get_path_to_platform_dir() + '/' + 'thermal_thresholds.json' + f = open(path) + except FileNotFoundError: + logging.warning('can not open the file') + + if f is not None: + self.__get_thresholds(f) + + def __get_thresholds(self, f): + def_threshold_json = json.load(f) + all_data = def_threshold_json["thermals"] + for i in all_data: + for key, value in i.items(): + self._thresholds[key] = Threshold(*value) + + def check_in_range(self, temperature): + temp_f = float(temperature) + return temp_f > self._min_temperature and temp_f <= self._max_temperature + + def check_high_threshold(self, temperature, attr_suffix): + temp_f = float(temperature) + check_range = True + if attr_suffix == 'max': + if temp_f < self._min_high_threshold_temperature: + if self.__name in self._thresholds: + temp = self._thresholds[self.__name].max + self.set_high_threshold(temp) + check_range = False + return check_range def __get(self, attr_prefix, attr_suffix): sensor_data = _sensors_get().get(self.__chip, {}).get(self.__label, {}) value = _value_get(sensor_data, attr_prefix, attr_suffix) - return value if value is not None else -999.9 + if value is not None and self.check_in_range(value) and self.check_high_threshold(value, attr_suffix): + return value + elif self.__name in self._thresholds and attr_prefix == 'temp': + if attr_suffix == 'crit': + return self._thresholds[self.__name].crit + elif attr_suffix == 'max': + if self.__high_threshold is None: + return self._thresholds[self.__name].max + else: + return self.__high_threshold + elif attr_suffix == 'min': + if self.__low_threshold is None: + return self._thresholds[self.__name].min + else: + return self.__low_threshold + elif attr_suffix == 'alarm': + return self._thresholds[self.__name].alarm + else: + return 1.0 + else: + return 0.05 # ThermalBase interface methods: def get_temperature(self) -> float: temp = self.__get('temp', 'input') self.__collect_temp.append(float(temp)) self.__collect_temp.sort() + if len(self.__collect_temp) == 3: + del self.__collect_temp[1] return float(temp) def get_high_threshold(self) -> float: - return float(self.__get('temp', 'max')) + if self.__high_threshold is None: + return float(self.__get('temp', 'max')) + return float(self.__high_threshold) def get_high_critical_threshold(self) -> float: return float(self.__get('temp', 'crit')) @@ -113,28 +180,38 @@ def is_replaceable(self): return False def get_low_threshold(self) -> float: - return float(self.__get('temp', 'min')) + if self.__low_threshold is None: + return float(self.__get('temp', 'min')) + return float(self.__low_threshold) def get_serial(self): return 'N/A' def get_minimum_recorded(self) -> float: - temp = self.__collect_temp[0] if len(self.__collect_temp) > 0 else 0.1 + temp = self.__collect_temp[0] if len(self.__collect_temp) > 0 else self.get_temperature() + temp = temp if temp <= 100.0 else 100.0 temp = temp if temp > 0.0 else 0.1 return float(temp) def get_maximum_recorded(self) -> float: - temp = self.__collect_temp[-1] if len(self.__collect_temp) > 0 else 100.0 + temp = self.__collect_temp[-1] if len(self.__collect_temp) > 0 else self.get_temperature() temp = temp if temp <= 100.0 else 100.0 + temp = temp if temp > 0.0 else 0.1 return float(temp) def get_position_in_parent(self): return self.__index def set_high_threshold(self, temperature): + if self.check_in_range(temperature): + self.__high_threshold = temperature + return True return False def set_low_threshold(self, temperature): + if self.check_in_range(temperature): + self.__low_threshold = temperature + return True return False def thermal_list_get(): From 58df23e1d714e503bc6768f5ff7f51496295ddf3 Mon Sep 17 00:00:00 2001 From: byu343 Date: Tue, 5 Apr 2022 09:49:26 -0700 Subject: [PATCH 042/251] [arista] Update serdes tuning values for 7280cr3 (#9966) --- .../Arista-7280CR3-C40/gearbox_100G_PAM4.xml | 34 ++++++++++++++++--- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/device/arista/x86_64-arista_7280cr3mk_32p4/Arista-7280CR3-C40/gearbox_100G_PAM4.xml b/device/arista/x86_64-arista_7280cr3mk_32p4/Arista-7280CR3-C40/gearbox_100G_PAM4.xml index 95e20b91787e..0ac9ff7b7846 100644 --- a/device/arista/x86_64-arista_7280cr3mk_32p4/Arista-7280CR3-C40/gearbox_100G_PAM4.xml +++ b/device/arista/x86_64-arista_7280cr3mk_32p4/Arista-7280CR3-C40/gearbox_100G_PAM4.xml @@ -4,11 +4,6 @@ 0 gearbox 2 - - 2,-8,17,0,0 - 0,-8,17,0,0 - - 0,0,1,0,0 @@ -34,4 +29,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From bfe5835650873d207020fd371819d407a9f3b3e1 Mon Sep 17 00:00:00 2001 From: Taras Keryk Date: Tue, 5 Apr 2022 21:33:51 +0300 Subject: [PATCH 043/251] [BFN] Fix exception when fwutil run without sudo (#10335) * [BFN] Fix for run fwutil without sudo SONiC has a concept of "platform components" this may include - CPLD, FPGA, BIOS, BMC, etc. These changes are needed to read the version of the BIOS and BMC component. What I did The previous implementaion of component.py expect fwutil run with sudo. When fwutil run without sudo, there are an exception: ``` Traceback (most recent call last): File "/usr/local/bin/fwutil", line 5, in from fwutil.main import cli File "/usr/local/lib/python3.9/dist-packages/fwutil/__init__.py", line 3, in from . import main File "/usr/local/lib/python3.9/dist-packages/fwutil/main.py", line 40, in pdp = PlatformDataProvider() File "/usr/local/lib/python3.9/dist-packages/fwutil/lib.py", line 159, in __init__ self.__platform = Platform() File "/usr/local/lib/python3.9/dist-packages/sonic_platform/platform.py", line 21, in __init__ self._chassis = Chassis() File "/usr/local/lib/python3.9/dist-packages/sonic_platform/chassis.py", line 48, in __init__ self.__initialize_components() File "/usr/local/lib/python3.9/dist-packages/sonic_platform/chassis.py", line 136, in __initialize_components component = Components(index) File "/usr/local/lib/python3.9/dist-packages/sonic_platform/component.py", line 184, in __init__ self.version = get_bios_version() File "/usr/local/lib/python3.9/dist-packages/sonic_platform/component.py", line 19, in get_bios_version return subprocess.check_output(['dmidecode', '-s', 'bios-version']).strip().decode() File "/usr/lib/python3.9/subprocess.py", line 424, in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, File "/usr/lib/python3.9/subprocess.py", line 505, in run with Popen(*popenargs, **kwargs) as process: File "/usr/lib/python3.9/subprocess.py", line 951, in __init__ self._execute_child(args, executable, preexec_fn, close_fds, File "/usr/lib/python3.9/subprocess.py", line 1823, in _execute_child raise child_exception_type(errno_num, err_msg, err_filename) FileNotFoundError: [Errno 2] No such file or directory: 'dmidecode' ``` How I did it Modification of dmidecode command How to verify it Run manually 'fwutil' (without sudo) Previous command output had exception New command output: Root privileges are required Signed-off-by: Taras Keryk * Why I did it The previous implementaion of component.py expect fwutil run with sudo. When fwutil run without sudo, there are an exception: Traceback (most recent call last): File "/usr/local/bin/fwutil", line 5, in from fwutil.main import cli File "/usr/local/lib/python3.9/dist-packages/fwutil/__init__.py", line 3, in from . import main File "/usr/local/lib/python3.9/dist-packages/fwutil/main.py", line 40, in pdp = PlatformDataProvider() File "/usr/local/lib/python3.9/dist-packages/fwutil/lib.py", line 159, in __init__ self.__platform = Platform() File "/usr/local/lib/python3.9/dist-packages/sonic_platform/platform.py", line 21, in __init__ self._chassis = Chassis() File "/usr/local/lib/python3.9/dist-packages/sonic_platform/chassis.py", line 48, in __init__ self.__initialize_components() File "/usr/local/lib/python3.9/dist-packages/sonic_platform/chassis.py", line 136, in __initialize_components component = Components(index) File "/usr/local/lib/python3.9/dist-packages/sonic_platform/component.py", line 184, in __init__ self.version = get_bios_version() File "/usr/local/lib/python3.9/dist-packages/sonic_platform/component.py", line 19, in get_bios_version return subprocess.check_output(['dmidecode', '-s', 'bios-version']).strip().decode() File "/usr/lib/python3.9/subprocess.py", line 424, in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, File "/usr/lib/python3.9/subprocess.py", line 505, in run with Popen(*popenargs, **kwargs) as process: File "/usr/lib/python3.9/subprocess.py", line 951, in __init__ self._execute_child(args, executable, preexec_fn, close_fds, File "/usr/lib/python3.9/subprocess.py", line 1823, in _execute_child raise child_exception_type(errno_num, err_msg, err_filename) FileNotFoundError: [Errno 2] No such file or directory: 'dmidecode' How I did it Modification of dmidecode command How to verify it Run manually 'fwutil' (without sudo) Previous command output had exception New command output: Root privileges are required Signed-off-by: Taras Keryk tarasx.keryk@intel.com Signed-off-by: Taras Keryk * rewrite a call of dmidecode, when run without sudo Signed-off-by: Taras Keryk * Why I did it The previous implementaion of component.py expect fwutil run with sudo. When fwutil run without sudo, there are an exception: Traceback (most recent call last): File "/usr/local/bin/fwutil", line 5, in from fwutil.main import cli File "/usr/local/lib/python3.9/dist-packages/fwutil/__init__.py", line 3, in from . import main File "/usr/local/lib/python3.9/dist-packages/fwutil/main.py", line 40, in pdp = PlatformDataProvider() File "/usr/local/lib/python3.9/dist-packages/fwutil/lib.py", line 159, in __init__ self.__platform = Platform() File "/usr/local/lib/python3.9/dist-packages/sonic_platform/platform.py", line 21, in __init__ self._chassis = Chassis() File "/usr/local/lib/python3.9/dist-packages/sonic_platform/chassis.py", line 48, in __init__ self.__initialize_components() File "/usr/local/lib/python3.9/dist-packages/sonic_platform/chassis.py", line 136, in __initialize_components component = Components(index) File "/usr/local/lib/python3.9/dist-packages/sonic_platform/component.py", line 184, in __init__ self.version = get_bios_version() File "/usr/local/lib/python3.9/dist-packages/sonic_platform/component.py", line 19, in get_bios_version return subprocess.check_output(['dmidecode', '-s', 'bios-version']).strip().decode() File "/usr/lib/python3.9/subprocess.py", line 424, in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, File "/usr/lib/python3.9/subprocess.py", line 505, in run with Popen(*popenargs, **kwargs) as process: File "/usr/lib/python3.9/subprocess.py", line 951, in __init__ self._execute_child(args, executable, preexec_fn, close_fds, File "/usr/lib/python3.9/subprocess.py", line 1823, in _execute_child raise child_exception_type(errno_num, err_msg, err_filename) FileNotFoundError: [Errno 2] No such file or directory: 'dmidecode' The previous implementaion of eeprom.py expect fwutil run with sudo. When fwutil run without sudo, there are an exception: Traceback (most recent call last): File "/usr/lib/python3.9/logging/config.py", line 564, in configure handler = self.configure_handler(handlers[name]) File "/usr/lib/python3.9/logging/config.py", line 745, in configure_handler result = factory(**kwargs) File "/usr/lib/python3.9/logging/handlers.py", line 153, in init BaseRotatingHandler.init(self, filename, mode, encoding=encoding, File "/usr/lib/python3.9/logging/handlers.py", line 58, in init logging.FileHandler.init(self, filename, mode=mode, File "/usr/lib/python3.9/logging/init.py", line 1142, in init StreamHandler.init(self, self._open()) File "/usr/lib/python3.9/logging/init.py", line 1171, in _open return open(self.baseFilename, self.mode, encoding=self.encoding, PermissionError: [Errno 13] Permission denied: '/var/log/platform.log' The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/usr/local/bin/fwutil", line 5, in from fwutil.main import cli File "/usr/local/lib/python3.9/dist-packages/fwutil/init.py", line 3, in from . import main File "/usr/local/lib/python3.9/dist-packages/fwutil/main.py", line 41, in pdp = PlatformDataProvider() File "/usr/local/lib/python3.9/dist-packages/fwutil/lib.py", line 162, in init self.chassis_component_map = self.__get_chassis_component_map() File "/usr/local/lib/python3.9/dist-packages/fwutil/lib.py", line 168, in __get_chassis_component_map chassis_name = self.__chassis.get_name() File "/usr/local/lib/python3.9/dist-packages/sonic_platform/chassis.py", line 146, in get_name return self._eeprom.modelstr() File "/usr/local/lib/python3.9/dist-packages/sonic_platform/chassis.py", line 54, in _eeprom self.__eeprom = Eeprom() File "/usr/local/lib/python3.9/dist-packages/sonic_platform/eeprom.py", line 50, in init logging.config.dictConfig(config_dict) File "/usr/lib/python3.9/logging/config.py", line 809, in dictConfig dictConfigClass(config).configure() File "/usr/lib/python3.9/logging/config.py", line 571, in configure raise ValueError('Unable to configure handler ' ValueError: Unable to configure handler 'file' How I did it Modification call of dmidecode command. Added modification of log files access attributes before file open operations. How to verify it Run manually 'fwutil' (without sudo) New command output have no exception. Signed-off-by: Taras Keryk * Added file_check for checking access to log files for eeprom.py Signed-off-by: Taras Keryk * Removed unused import * Added logfile_create to eeprom.py and chassis.py Signed-off-by: Taras Keryk * Created platform_utils.py Signed-off-by: Taras Keryk * Added interpreter string to platform_utils.py Signed-off-by: Taras Keryk --- .../sonic_platform/chassis.py | 10 +++++++++ .../sonic_platform/component.py | 8 +++++-- .../sonic_platform/eeprom.py | 20 ++++------------- .../sonic_platform/platform_utils.py | 22 +++++++++++++++++++ 4 files changed, 42 insertions(+), 18 deletions(-) create mode 100644 platform/barefoot/sonic-platform-modules-bfn-montara/sonic_platform/platform_utils.py diff --git a/platform/barefoot/sonic-platform-modules-bfn-montara/sonic_platform/chassis.py b/platform/barefoot/sonic-platform-modules-bfn-montara/sonic_platform/chassis.py index 64536abbb532..6d0e8b8c120c 100644 --- a/platform/barefoot/sonic-platform-modules-bfn-montara/sonic_platform/chassis.py +++ b/platform/barefoot/sonic-platform-modules-bfn-montara/sonic_platform/chassis.py @@ -1,8 +1,12 @@ #!/usr/bin/env python try: + import os import time import syslog + import logging + import logging.config + import yaml from sonic_platform_base.chassis_base import ChassisBase from sonic_platform.sfp import Sfp @@ -10,6 +14,7 @@ from sonic_platform.fan_drawer import fan_drawer_list_get from sonic_platform.thermal import thermal_list_get from eeprom import Eeprom + from platform_utils import file_create from sonic_platform.platform_thrift_client import pltfm_mgr_ready from sonic_platform.platform_thrift_client import thrift_try @@ -47,6 +52,11 @@ def __init__(self): self.qsfp_interval = self.QSFP_CHECK_INTERVAL self.__initialize_components() + with open(os.path.dirname(__file__) + "/logging.conf", 'r') as f: + config_dict = yaml.load(f, yaml.SafeLoader) + file_create(config_dict['handlers']['file']['filename'], '646') + logging.config.dictConfig(config_dict) + @property def _eeprom(self): if self.__eeprom is None: diff --git a/platform/barefoot/sonic-platform-modules-bfn-montara/sonic_platform/component.py b/platform/barefoot/sonic-platform-modules-bfn-montara/sonic_platform/component.py index 5e72bb63e343..47a0993bf3e5 100644 --- a/platform/barefoot/sonic-platform-modules-bfn-montara/sonic_platform/component.py +++ b/platform/barefoot/sonic-platform-modules-bfn-montara/sonic_platform/component.py @@ -1,4 +1,5 @@ try: + import os import subprocess from sonic_platform_base.component_base import ComponentBase from platform_thrift_client import thrift_try @@ -16,9 +17,12 @@ def get_bios_version(): A string containing the firmware version of the BIOS """ try: - return subprocess.check_output(['dmidecode', '-s', 'bios-version']).strip().decode() + cmd = ['dmidecode', '-s', 'bios-version'] + if os.geteuid() != 0: + cmd.insert(0, 'sudo') + return subprocess.check_output(cmd).strip().decode() except subprocess.CalledProcessError as e: - raise RuntimeError("Failed to getget BIOS version") + raise RuntimeError("Failed to get BIOS version") def get_bmc_version(): """ diff --git a/platform/barefoot/sonic-platform-modules-bfn-montara/sonic_platform/eeprom.py b/platform/barefoot/sonic-platform-modules-bfn-montara/sonic_platform/eeprom.py index ec7112b3c093..2335c02863d9 100644 --- a/platform/barefoot/sonic-platform-modules-bfn-montara/sonic_platform/eeprom.py +++ b/platform/barefoot/sonic-platform-modules-bfn-montara/sonic_platform/eeprom.py @@ -1,11 +1,7 @@ try: import os import sys - import errno import datetime - import logging - import logging.config - import yaml import re sys.path.append(os.path.dirname(__file__)) @@ -17,6 +13,7 @@ from sonic_platform_base.sonic_eeprom import eeprom_base from sonic_platform_base.sonic_eeprom import eeprom_tlvinfo + from platform_utils import file_create from platform_thrift_client import thrift_try except ImportError as e: @@ -45,18 +42,8 @@ class Eeprom(eeprom_tlvinfo.TlvInfoDecoder): def __init__(self): - with open(os.path.dirname(__file__) + "/logging.conf", 'r') as f: - config_dict = yaml.load(f, yaml.SafeLoader) - logging.config.dictConfig(config_dict) - - if not os.path.exists(os.path.dirname(_EEPROM_SYMLINK)): - try: - os.makedirs(os.path.dirname(_EEPROM_SYMLINK)) - except OSError as e: - if e.errno != errno.EEXIST: - raise - - open(_EEPROM_SYMLINK, 'a').close() + file_create(_EEPROM_SYMLINK, '646') + file_create(_EEPROM_STATUS, '646') with open(_EEPROM_STATUS, 'w') as f: f.write("initializing..") @@ -152,3 +139,4 @@ def modelstr(self): def revision_str(self): return self.__tlv_get(self._TLV_CODE_LABEL_REVISION) + diff --git a/platform/barefoot/sonic-platform-modules-bfn-montara/sonic_platform/platform_utils.py b/platform/barefoot/sonic-platform-modules-bfn-montara/sonic_platform/platform_utils.py new file mode 100644 index 000000000000..81e78ee01041 --- /dev/null +++ b/platform/barefoot/sonic-platform-modules-bfn-montara/sonic_platform/platform_utils.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python + +try: + import os + import subprocess + +except ImportError as e: + raise ImportError(str(e) + "- required module not found") + +def file_create(path, mode=None): + def run_cmd(cmd): + if os.geteuid() != 0: + cmd.insert(0, 'sudo') + subprocess.check_output(cmd) + + file_path = os.path.dirname(path) + if not os.path.exists(file_path): + run_cmd(['mkdir', '-p', file_path]) + if not os.path.isfile(path): + run_cmd(['touch', path]) + if (mode is not None): + run_cmd(['chmod', mode, path]) From 3391969d2e3560ee2c73b617bf7332470c1c2b71 Mon Sep 17 00:00:00 2001 From: xumia <59720581+xumia@users.noreply.github.com> Date: Wed, 6 Apr 2022 11:34:02 +0800 Subject: [PATCH 044/251] [Ci]: Fix the docker slave azp template issue (#10453) Why I did it [Ci]: Fix the docker slave azp template issue --- .azure-pipelines/docker-sonic-slave-template.yml | 5 +++-- .azure-pipelines/docker-sonic-slave.yml | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.azure-pipelines/docker-sonic-slave-template.yml b/.azure-pipelines/docker-sonic-slave-template.yml index 2a9421dda338..ac5eb9a34722 100644 --- a/.azure-pipelines/docker-sonic-slave-template.yml +++ b/.azure-pipelines/docker-sonic-slave-template.yml @@ -40,7 +40,7 @@ jobs: - ${{ if eq(variables['Build.Reason'], 'PullRequest') }}: - template: template-clean-sonic-slave.yml - ${{ else }}: - - template: .azure-pipelines/template-variables.yml@buildimage + - template: '/.azure-pipelines/template-clean-sonic-slave.yml@buildimage' - checkout: self clean: true submodules: recursive @@ -103,7 +103,8 @@ jobs: command: push tags: | $(VARIABLE_SLAVE_BASE_TAG) - latest + ${{ if eq(variables['Build.SourceBranchName'], 'master') }}: + latest - ${{ if ne(parameters.arch, 'amd64') }}: - task: Docker@2 condition: ne(variables['Build.Reason'], 'PullRequest') diff --git a/.azure-pipelines/docker-sonic-slave.yml b/.azure-pipelines/docker-sonic-slave.yml index a6a9750a3808..7b812b8a4349 100644 --- a/.azure-pipelines/docker-sonic-slave.yml +++ b/.azure-pipelines/docker-sonic-slave.yml @@ -67,7 +67,7 @@ stages: arch: ${{ arch }} dist: ${{ dist }} - ${{ else }}: - - template: .azure-pipelines/docker-sonic-slave-template.yml@buildimage + - template: '/.azure-pipelines/docker-sonic-slave-template.yml@buildimage' parameters: pool: sonicbld arch: ${{ arch }} From ce26c04a099dbae6021db934d5d0e7cc43598210 Mon Sep 17 00:00:00 2001 From: xumia <59720581+xumia@users.noreply.github.com> Date: Wed, 6 Apr 2022 13:51:41 +0800 Subject: [PATCH 045/251] [Build]: fix debian package not found issue (#10447) Why I did it [Build]: fix debian package not found issue --- sonic-slave-bullseye/Dockerfile.j2 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sonic-slave-bullseye/Dockerfile.j2 b/sonic-slave-bullseye/Dockerfile.j2 index a75cef0b680e..741f708de269 100644 --- a/sonic-slave-bullseye/Dockerfile.j2 +++ b/sonic-slave-bullseye/Dockerfile.j2 @@ -20,7 +20,9 @@ RUN echo "deb [arch=amd64] http://debian-archive.trafficmanager.net/debian/ bull echo "deb-src [arch=amd64] http://debian-archive.trafficmanager.net/debian/ bullseye main contrib non-free" >> /etc/apt/sources.list && \ echo "deb [arch=amd64] http://debian-archive.trafficmanager.net/debian-security/ bullseye-security main contrib non-free" >> /etc/apt/sources.list && \ echo "deb-src [arch=amd64] http://debian-archive.trafficmanager.net/debian-security/ bullseye-security main contrib non-free" >> /etc/apt/sources.list && \ - echo "deb [arch=amd64] http://debian-archive.trafficmanager.net/debian bullseye-backports main" >> /etc/apt/sources.list + echo "deb [arch=amd64] http://debian-archive.trafficmanager.net/debian bullseye-backports main" >> /etc/apt/sources.list && \ + echo "deb [arch=amd64] http://packages.trafficmanager.net/debian/debian bullseye main contrib non-free" >> /etc/apt/sources.list && \ + echo "deb [arch=amd64] http://packages.trafficmanager.net/debian/debian bullseye-updates main contrib non-free" >> /etc/apt/sources.list {%- if CONFIGURED_ARCH == "armhf" %} RUN echo "deb [arch=armhf] http://deb.debian.org/debian bullseye main contrib non-free" > /etc/apt/sources.list && \ From b152f2a0fc180237d44c6f95c7e0c0dca77b6ae0 Mon Sep 17 00:00:00 2001 From: ganglv <88995770+ganglyu@users.noreply.github.com> Date: Wed, 6 Apr 2022 14:33:26 +0800 Subject: [PATCH 046/251] [sonic-cfggen]: Update unit test to remove asn 0 (#10454) Why I did it ASN range is from 1 to 4294967295, need to remove invalid ASN. How I did it Update unit test and replace ASN 0. How to verify it Run unit test for sonic-config-engine. Signed-off-by: Gang Lv ganglv@microsoft.com --- src/sonic-config-engine/tests/radv-test-sample-graph.xml | 2 +- src/sonic-config-engine/tests/sample-graph-resource-type.xml | 2 +- src/sonic-config-engine/tests/sample-graph-subintf.xml | 2 +- src/sonic-config-engine/tests/simple-sample-graph.xml | 2 +- src/sonic-config-engine/tests/t0-sample-graph.xml | 2 +- src/sonic-config-engine/tests/test_cfggen.py | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/sonic-config-engine/tests/radv-test-sample-graph.xml b/src/sonic-config-engine/tests/radv-test-sample-graph.xml index 6945c8e175d2..a45e38f64030 100644 --- a/src/sonic-config-engine/tests/radv-test-sample-graph.xml +++ b/src/sonic-config-engine/tests/radv-test-sample-graph.xml @@ -90,7 +90,7 @@ - 0 + 1 BGPMonitor diff --git a/src/sonic-config-engine/tests/sample-graph-resource-type.xml b/src/sonic-config-engine/tests/sample-graph-resource-type.xml index f09e4112d8ff..aecc1bc3249f 100644 --- a/src/sonic-config-engine/tests/sample-graph-resource-type.xml +++ b/src/sonic-config-engine/tests/sample-graph-resource-type.xml @@ -72,7 +72,7 @@ - 0 + 1 BGPMonitor diff --git a/src/sonic-config-engine/tests/sample-graph-subintf.xml b/src/sonic-config-engine/tests/sample-graph-subintf.xml index 29568be727a7..fe18baa79db1 100644 --- a/src/sonic-config-engine/tests/sample-graph-subintf.xml +++ b/src/sonic-config-engine/tests/sample-graph-subintf.xml @@ -72,7 +72,7 @@ - 0 + 1 BGPMonitor diff --git a/src/sonic-config-engine/tests/simple-sample-graph.xml b/src/sonic-config-engine/tests/simple-sample-graph.xml index 388627f8cdbf..aef72017d72b 100644 --- a/src/sonic-config-engine/tests/simple-sample-graph.xml +++ b/src/sonic-config-engine/tests/simple-sample-graph.xml @@ -72,7 +72,7 @@ - 0 + 1 BGPMonitor diff --git a/src/sonic-config-engine/tests/t0-sample-graph.xml b/src/sonic-config-engine/tests/t0-sample-graph.xml index f0da95149653..6d9e21c4f81b 100644 --- a/src/sonic-config-engine/tests/t0-sample-graph.xml +++ b/src/sonic-config-engine/tests/t0-sample-graph.xml @@ -90,7 +90,7 @@ - 0 + 1 BGPMonitor diff --git a/src/sonic-config-engine/tests/test_cfggen.py b/src/sonic-config-engine/tests/test_cfggen.py index e5ef35274db7..09f507f3d9f9 100644 --- a/src/sonic-config-engine/tests/test_cfggen.py +++ b/src/sonic-config-engine/tests/test_cfggen.py @@ -685,7 +685,7 @@ def test_minigraph_bgp_mon(self): output = self.run_script(argument) self.assertEqual( utils.to_dict(output.strip()), - utils.to_dict("{'10.20.30.40': {'rrclient': 0, 'name': 'BGPMonitor', 'local_addr': '10.1.0.32', 'nhopself': 0, 'holdtime': '10', 'asn': '0', 'keepalive': '3'}}") + utils.to_dict("{'10.20.30.40': {'rrclient': 0, 'name': 'BGPMonitor', 'local_addr': '10.1.0.32', 'nhopself': 0, 'holdtime': '10', 'asn': '1', 'keepalive': '3'}}") ) def test_minigraph_bgp_voq_chassis_peer(self): From ed14eb526382dffa8c414255347c70800584a907 Mon Sep 17 00:00:00 2001 From: Vivek R Date: Wed, 6 Apr 2022 06:59:47 -0700 Subject: [PATCH 047/251] [interfaces-config] "main exception: cannot find interfaces: eth0" error log avoided (#10463) - Why I did it Fixes #9628 During bootup, this error log is seen Dec 22 04:26:29 sonic interfaces-config.sh[2546]: error: main exception: cannot find interfaces: eth0 (interface was probably never up ?) This is of non-functional nature and doesn't affect the flow. - How I did it Dont take the ifdown if not needed - How to verify it Verified during reboot. Log did not appear and IP was acquired on eth0 as expected Signed-off-by: Vivek Reddy Karri --- files/image_config/interfaces/interfaces-config.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/files/image_config/interfaces/interfaces-config.sh b/files/image_config/interfaces/interfaces-config.sh index 5753bebd378d..646fd7a94e71 100755 --- a/files/image_config/interfaces/interfaces-config.sh +++ b/files/image_config/interfaces/interfaces-config.sh @@ -1,6 +1,8 @@ #!/bin/bash -ifdown --force eth0 +if [[ $(ifquery --running eth0) ]]; then + ifdown --force eth0 +fi # Check if ZTP DHCP policy has been installed if [ -e /etc/network/ifupdown2/policy.d/ztp_dhcp.json ]; then From 614d14e8a098ba9cd5ca9788a6d3e4d696075df3 Mon Sep 17 00:00:00 2001 From: Vivek R Date: Wed, 6 Apr 2022 07:05:05 -0700 Subject: [PATCH 048/251] [submodule] update sonic-snmpagent pointer (#10461) 890f32f LLDPLocalSystemDataUpdater Exception Log Handled (#249) 2151731 Handle error seen on system where vlan interface map is not present (#246) c6141c7 [build] use Azure.sonic-buildimage.official.vs pipeline as artifact source (#248) Signed-off-by: Vivek Reddy Karri --- src/sonic-snmpagent | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-snmpagent b/src/sonic-snmpagent index 2654f4a66794..890f32f333df 160000 --- a/src/sonic-snmpagent +++ b/src/sonic-snmpagent @@ -1 +1 @@ -Subproject commit 2654f4a667941296d4e56a16e8e1a7d1d5fca7b6 +Subproject commit 890f32f333dfe31c36a8342ff70c0e84910bf9c8 From 8cd346d80b1cb6247a8367ec08f09072a1722e4e Mon Sep 17 00:00:00 2001 From: kellyyeh <42761586+kellyyeh@users.noreply.github.com> Date: Wed, 6 Apr 2022 09:44:21 -0700 Subject: [PATCH 049/251] Update docker-router-advertiser.supervisord.conf.j2 (#10375) --- .../docker-router-advertiser.supervisord.conf.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dockers/docker-router-advertiser/docker-router-advertiser.supervisord.conf.j2 b/dockers/docker-router-advertiser/docker-router-advertiser.supervisord.conf.j2 index 7562444946ed..22f33e412195 100644 --- a/dockers/docker-router-advertiser/docker-router-advertiser.supervisord.conf.j2 +++ b/dockers/docker-router-advertiser/docker-router-advertiser.supervisord.conf.j2 @@ -45,7 +45,7 @@ dependent_startup_wait_for=rsyslogd:running {%- set vlan_v6 = namespace(count=0) -%} {%- if DEVICE_METADATA.localhost.deployment_id != "8" -%} {%- if DEVICE_METADATA.localhost.type -%} - {%- if "ToRRouter" in DEVICE_METADATA.localhost.type or DEVICE_METADATA.localhost.type == "EPMS" -%} + {%- if "ToRRouter" in DEVICE_METADATA.localhost.type or DEVICE_METADATA.localhost.type in ["EPMS", "MgmtTsToR"] -%} {%- if VLAN_INTERFACE -%} {%- for (name, prefix) in VLAN_INTERFACE|pfx_filter -%} {# If this VLAN has an IPv6 address... #} From d83ae1e3dce79200a89dda3926878b35b0f3f314 Mon Sep 17 00:00:00 2001 From: jingwenxie Date: Wed, 6 Apr 2022 17:46:41 -0700 Subject: [PATCH 050/251] [yang] Fix yang validation failure when table contains empty value (#10431) Why I did it Fix #9746 How I did it Split the check condition based on non-exist and zero length. How to verify it Run verification script when table contains empty value --- src/sonic-yang-mgmt/sonic_yang_ext.py | 23 +++++++++++-------- .../libyang-python-tests/test_sonic_yang.py | 15 ++++++++++++ .../tests/files/sample_config_db.json | 8 ++++++- .../tests/yang_model_tests/tests/tacacs.json | 4 ++-- .../yang-models/sonic-device_metadata.yang | 2 +- 5 files changed, 39 insertions(+), 13 deletions(-) diff --git a/src/sonic-yang-mgmt/sonic_yang_ext.py b/src/sonic-yang-mgmt/sonic_yang_ext.py index aa36ee0a1951..d43e52970302 100644 --- a/src/sonic-yang-mgmt/sonic_yang_ext.py +++ b/src/sonic-yang-mgmt/sonic_yang_ext.py @@ -591,18 +591,23 @@ def _xlateListInContainer(self, model, yang, configC, table, exceptionList): """ def _xlateContainerInContainer(self, model, yang, configC, table): ccontainer = model - #print(ccontainer['@name']) - yang[ccontainer['@name']] = dict() - if not configC.get(ccontainer['@name']): + ccName = ccontainer['@name'] + yang[ccName] = dict() + if ccName not in configC: + # Inner container doesn't exist in config return - self.sysLog(msg="xlateProcessListOfContainer: {}".format(ccontainer['@name'])) - self._xlateContainer(ccontainer, yang[ccontainer['@name']], \ - configC[ccontainer['@name']], table) + if len(configC[ccName]) == 0: + # Empty container, clean config and return + del configC[ccName] + return + self.sysLog(msg="xlateProcessListOfContainer: {}".format(ccName)) + self._xlateContainer(ccontainer, yang[ccName], \ + configC[ccName], table) # clean empty container - if len(yang[ccontainer['@name']]) == 0: - del yang[ccontainer['@name']] + if len(yang[ccName]) == 0: + del yang[ccName] # remove copy after processing - del configC[ccontainer['@name']] + del configC[ccName] return diff --git a/src/sonic-yang-mgmt/tests/libyang-python-tests/test_sonic_yang.py b/src/sonic-yang-mgmt/tests/libyang-python-tests/test_sonic_yang.py index 3eb396594e80..a13d4c02e9a0 100644 --- a/src/sonic-yang-mgmt/tests/libyang-python-tests/test_sonic_yang.py +++ b/src/sonic-yang-mgmt/tests/libyang-python-tests/test_sonic_yang.py @@ -364,5 +364,20 @@ def test_table_with_no_yang(self, sonic_yang_data): return + def test_special_json_with_yang(self, sonic_yang_data): + # in this test, we validate unusual json config and check if + # loadData works successfully + test_file = sonic_yang_data['test_file'] + syc = sonic_yang_data['syc'] + + # read config + jIn = self.readIjsonInput(test_file, 'SAMPLE_CONFIG_DB_SPECIAL_CASE') + jIn = json.loads(jIn) + + # load config and create Data tree + syc.loadData(jIn) + + return + def teardown_class(self): pass diff --git a/src/sonic-yang-models/tests/files/sample_config_db.json b/src/sonic-yang-models/tests/files/sample_config_db.json index ff99fc7335df..6618ed8232b7 100644 --- a/src/sonic-yang-models/tests/files/sample_config_db.json +++ b/src/sonic-yang-models/tests/files/sample_config_db.json @@ -304,7 +304,7 @@ "switch_id": "2", "switch_type": "voq", "max_cores": "8", - "sub_role": "FrondEnd", + "sub_role": "FrontEnd", "dhcp_server": "disabled" } }, @@ -1694,5 +1694,11 @@ "UNKNOWN_TABLE": { "Error": "This Table is for testing, This Table does not have YANG models." } + }, + "SAMPLE_CONFIG_DB_SPECIAL_CASE": { + "TACPLUS": { + "global": { + } + } } } diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests/tacacs.json b/src/sonic-yang-models/tests/yang_model_tests/tests/tacacs.json index 5236aab596fe..6888a4e3f326 100644 --- a/src/sonic-yang-models/tests/yang_model_tests/tests/tacacs.json +++ b/src/sonic-yang-models/tests/yang_model_tests/tests/tacacs.json @@ -4,7 +4,7 @@ }, "TACPLUS_INVALID_TIMEOUT_TEST": { "desc": "Tacplus global configuration with invalid timeout value in TACPLUS table.", - "eStr": "TACACS timeout must be 1..60" + "eStr": "TACACS timeout must be 1..60" }, "TACPLUS_NOT_PRESENT_SRC_INTF_TEST": { "desc": "Tacplus global configuration with a non existent port in TACPLUS table.", @@ -15,7 +15,7 @@ }, "TACPLUS_SERVER_INVALID_PRIORITY_TEST": { "desc": "Tacplus server configuration with invalid priority value in TACPLUS_SERVER table.", - "eStr": "TACACS server priority must be 1..64" + "eStr": "TACACS server priority must be 1..64" }, "TACPLUS_SERVER_INVALID_TIMEOUT_TEST" : { "desc": "Tacplus server configuration with invalid timeout value in TACPLUS_SERVER table.", diff --git a/src/sonic-yang-models/yang-models/sonic-device_metadata.yang b/src/sonic-yang-models/yang-models/sonic-device_metadata.yang index 618ed19cd81f..a349a3eb9366 100644 --- a/src/sonic-yang-models/yang-models/sonic-device_metadata.yang +++ b/src/sonic-yang-models/yang-models/sonic-device_metadata.yang @@ -129,7 +129,7 @@ module sonic-device_metadata { leaf sub_role { type string; - description "sub_role indicates if ASIC is FrondEnd or BackEnd."; + description "sub_role indicates if ASIC is FrontEnd or BackEnd."; } leaf downstream_subrole { From 0330253fd7df69e49cb082313277c29ccb0cfe8b Mon Sep 17 00:00:00 2001 From: Shilong Liu Date: Thu, 7 Apr 2022 13:02:35 +0800 Subject: [PATCH 051/251] [ci] Fix issues in docker-slave official build. (#10477) only push latest tag on master build --- .azure-pipelines/docker-sonic-slave-template.yml | 9 ++++++--- .azure-pipelines/docker-sonic-slave.yml | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.azure-pipelines/docker-sonic-slave-template.yml b/.azure-pipelines/docker-sonic-slave-template.yml index ac5eb9a34722..2cf06638a4cc 100644 --- a/.azure-pipelines/docker-sonic-slave-template.yml +++ b/.azure-pipelines/docker-sonic-slave-template.yml @@ -101,10 +101,13 @@ jobs: containerRegistry: ${{ parameters.registry_conn }} repository: $(VARIABLE_SLAVE_BASE_IMAGE) command: push - tags: | - $(VARIABLE_SLAVE_BASE_TAG) - ${{ if eq(variables['Build.SourceBranchName'], 'master') }}: + ${{ if eq(variables['Build.SourceBranchName'], 'master') }}: + tags: | + $(VARIABLE_SLAVE_BASE_TAG) latest + ${{ else }}: + tags: | + $(VARIABLE_SLAVE_BASE_TAG) - ${{ if ne(parameters.arch, 'amd64') }}: - task: Docker@2 condition: ne(variables['Build.Reason'], 'PullRequest') diff --git a/.azure-pipelines/docker-sonic-slave.yml b/.azure-pipelines/docker-sonic-slave.yml index 7b812b8a4349..3e1d2848277e 100644 --- a/.azure-pipelines/docker-sonic-slave.yml +++ b/.azure-pipelines/docker-sonic-slave.yml @@ -60,7 +60,7 @@ stages: - ${{ each dist in parameters.dists }}: - ${{ if endswith(variables['Build.DefinitionName'], dist) }}: - ${{ each arch in parameters.arches }}: - - ${{ if eq(variables['System.PullRequest.TargetBranch'], 'master') }}: + - ${{ if eq(variables[''Build.Reason], 'PullRequest') }}: - template: docker-sonic-slave-template.yml parameters: pool: sonicbld From 3046c798a158dd0f1bb6fb00fb0c4f951b18ec34 Mon Sep 17 00:00:00 2001 From: ganglv <88995770+ganglyu@users.noreply.github.com> Date: Thu, 7 Apr 2022 13:50:07 +0800 Subject: [PATCH 052/251] [sonic-cfggen]: Add port speed for UT (#10483) Why I did it Need to run yang validation for sonic-cfggen unit test, and many unit test does not provide speed for port table. How I did it Update minigraph xml. How to verify it Run sonic-cfggen unit test. Signed-off-by: Gang Lv ganglv@microsoft.com --- .../sample-minigraph-noportchannel.xml | 288 ++++++++++++ .../tests/multi_npu_data/sample-minigraph.xml | 288 ++++++++++++ .../tests/pc-test-graph.xml | 394 ++++++++++++++++ .../tests/radv-test-sample-graph.xml | 368 +++++++++++++++ .../tests/sample-arista-7050-t0-minigraph.xml | 60 +++ .../tests/sample-graph-resource-type.xml | 324 ++++++++++++++ .../tests/sample-graph-subintf.xml | 324 ++++++++++++++ .../tests/sample-voq-graph.xml | 360 +++++++++++++++ .../tests/sample_graph.xml | 422 +++++++++++++++++- .../tests/sample_output/py2/ports.json | 189 ++++++++ .../tests/sample_output/py3/ports.json | 189 ++++++++ .../tests/simple-sample-graph-case.xml | 336 ++++++++++++++ .../tests/simple-sample-graph-metadata.xml | 336 ++++++++++++++ .../tests/simple-sample-graph.xml | 324 ++++++++++++++ .../tests/t0-sample-bgp-speaker.xml | 394 ++++++++++++++++ .../tests/t0-sample-deployment-id.xml | 394 ++++++++++++++++ .../tests/t0-sample-graph-mvrf.xml | 392 ++++++++++++++++ .../tests/t0-sample-graph.xml | 368 +++++++++++++++ .../tests/t2-chassis-fe-graph-pc.xml | 312 +++++++++++++ .../tests/t2-chassis-fe-graph-vni.xml | 348 +++++++++++++++ .../tests/t2-chassis-fe-graph.xml | 348 +++++++++++++++ src/sonic-config-engine/tests/test_cfggen.py | 292 ++++++------ 22 files changed, 6903 insertions(+), 147 deletions(-) diff --git a/src/sonic-config-engine/tests/multi_npu_data/sample-minigraph-noportchannel.xml b/src/sonic-config-engine/tests/multi_npu_data/sample-minigraph-noportchannel.xml index 460f71e21c2a..6ec84dc4fe31 100644 --- a/src/sonic-config-engine/tests/multi_npu_data/sample-minigraph-noportchannel.xml +++ b/src/sonic-config-engine/tests/multi_npu_data/sample-minigraph-noportchannel.xml @@ -1119,6 +1119,294 @@ 0 40000 + + DeviceInterface + + true + 1 + Ethernet-BP0 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet-BP4 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet-BP8 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet-BP12 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet-BP16 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet-BP20 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet-BP24 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet-BP28 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet-BP256 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet-BP260 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet-BP264 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet-BP268 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet-BP272 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet-BP276 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet-BP280 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet-BP284 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet-BP384 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet-BP388 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet-BP392 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet-BP396 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet-BP400 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet-BP404 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet-BP408 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet-BP412 + + false + 0 + 0 + 40000 + true 0 diff --git a/src/sonic-config-engine/tests/multi_npu_data/sample-minigraph.xml b/src/sonic-config-engine/tests/multi_npu_data/sample-minigraph.xml index 5dac8e95bf1a..935d2c0c833a 100644 --- a/src/sonic-config-engine/tests/multi_npu_data/sample-minigraph.xml +++ b/src/sonic-config-engine/tests/multi_npu_data/sample-minigraph.xml @@ -1105,6 +1105,294 @@ 0 40000 + + DeviceInterface + + true + 1 + Ethernet-BP0 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet-BP4 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet-BP8 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet-BP12 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet-BP16 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet-BP20 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet-BP24 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet-BP28 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet-BP256 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet-BP260 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet-BP264 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet-BP268 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet-BP272 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet-BP276 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet-BP280 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet-BP284 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet-BP384 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet-BP388 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet-BP392 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet-BP396 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet-BP400 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet-BP404 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet-BP408 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet-BP412 + + false + 0 + 0 + 40000 + true 0 diff --git a/src/sonic-config-engine/tests/pc-test-graph.xml b/src/sonic-config-engine/tests/pc-test-graph.xml index 814686d8ff06..4a7ecabaf9f4 100644 --- a/src/sonic-config-engine/tests/pc-test-graph.xml +++ b/src/sonic-config-engine/tests/pc-test-graph.xml @@ -202,6 +202,400 @@ + + + + + DeviceInterface + + true + 1 + fortyGigE0/0 + + false + 0 + 0 + 10000 + + + DeviceInterface + + true + 1 + fortyGigE0/4 + + false + 0 + 0 + 25000 + + + DeviceInterface + + true + 1 + fortyGigE0/8 + + false + 0 + 0 + 40000 + Interface description + + + DeviceInterface + + true + 1 + fortyGigE0/12 + + false + 0 + 0 + 100000 + Interface description + + + DeviceInterface + + true + 1 + fortyGigE0/16 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/20 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/24 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/28 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/32 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/36 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/40 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/44 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/48 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/52 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/56 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/60 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/64 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/68 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/72 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/76 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/80 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/84 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/88 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/92 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/96 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/100 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/104 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/108 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/112 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/116 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/120 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/124 + + false + 0 + 0 + 100000 + + + Force10-S6000 + + + diff --git a/src/sonic-config-engine/tests/radv-test-sample-graph.xml b/src/sonic-config-engine/tests/radv-test-sample-graph.xml index a45e38f64030..94cb73d67464 100644 --- a/src/sonic-config-engine/tests/radv-test-sample-graph.xml +++ b/src/sonic-config-engine/tests/radv-test-sample-graph.xml @@ -508,6 +508,374 @@ + + + + + DeviceInterface + + true + 1 + Ethernet0 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet8 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet12 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet16 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet20 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet24 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet28 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet32 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet36 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet40 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet44 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet48 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet52 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet56 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet60 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet64 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet68 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet72 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet76 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet80 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet84 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet88 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet92 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet96 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet100 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet104 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet108 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet112 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet116 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet120 + + false + 0 + 0 + 40000 + + + Force10-S6000 + + + diff --git a/src/sonic-config-engine/tests/sample-arista-7050-t0-minigraph.xml b/src/sonic-config-engine/tests/sample-arista-7050-t0-minigraph.xml index 4d216b30f203..4d79d6f2c457 100644 --- a/src/sonic-config-engine/tests/sample-arista-7050-t0-minigraph.xml +++ b/src/sonic-config-engine/tests/sample-arista-7050-t0-minigraph.xml @@ -463,6 +463,66 @@ + + DeviceInterface + + true + 1 + Ethernet0 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet1 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet2 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet3 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet4 + + false + 0 + 0 + 40000 + DeviceInterface diff --git a/src/sonic-config-engine/tests/sample-graph-resource-type.xml b/src/sonic-config-engine/tests/sample-graph-resource-type.xml index aecc1bc3249f..9ba4f1e70267 100644 --- a/src/sonic-config-engine/tests/sample-graph-resource-type.xml +++ b/src/sonic-config-engine/tests/sample-graph-resource-type.xml @@ -415,6 +415,330 @@ 0 100000 + + DeviceInterface + + true + 1 + fortyGigE0/20 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/24 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/28 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/32 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/36 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/40 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/44 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/48 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/52 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/56 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/60 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/64 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/68 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/72 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/76 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/80 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/84 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/88 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/92 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/96 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/100 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/104 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/108 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/112 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/116 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/120 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/124 + + false + 0 + 0 + 100000 + true 0 diff --git a/src/sonic-config-engine/tests/sample-graph-subintf.xml b/src/sonic-config-engine/tests/sample-graph-subintf.xml index fe18baa79db1..d5fd2d461c8a 100644 --- a/src/sonic-config-engine/tests/sample-graph-subintf.xml +++ b/src/sonic-config-engine/tests/sample-graph-subintf.xml @@ -423,6 +423,330 @@ 0 100000 + + DeviceInterface + + true + 1 + fortyGigE0/20 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/24 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/28 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/32 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/36 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/40 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/44 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/48 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/52 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/56 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/60 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/64 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/68 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/72 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/76 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/80 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/84 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/88 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/92 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/96 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/100 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/104 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/108 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/112 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/116 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/120 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/124 + + false + 0 + 0 + 100000 + true 0 diff --git a/src/sonic-config-engine/tests/sample-voq-graph.xml b/src/sonic-config-engine/tests/sample-voq-graph.xml index 5257efd4b0ae..5205265ee384 100644 --- a/src/sonic-config-engine/tests/sample-voq-graph.xml +++ b/src/sonic-config-engine/tests/sample-voq-graph.xml @@ -202,6 +202,366 @@ 100000 Interface description + + DeviceInterface + + true + 1 + fortyGigE0/16 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/20 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/24 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/28 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/32 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/36 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/40 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/40 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/44 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/48 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/52 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/56 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/60 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/64 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/68 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/72 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/76 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/80 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/84 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/88 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/92 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/96 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/100 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/104 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/108 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/112 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/116 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/120 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/124 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + Recycle0 + + false + 0 + 0 + 100000 + true 0 diff --git a/src/sonic-config-engine/tests/sample_graph.xml b/src/sonic-config-engine/tests/sample_graph.xml index 7bd08ab8f7c8..478fdd5ba8d4 100644 --- a/src/sonic-config-engine/tests/sample_graph.xml +++ b/src/sonic-config-engine/tests/sample_graph.xml @@ -88,7 +88,7 @@ - Ethernet1 + Ethernet4 10.10.2.13/30 @@ -112,7 +112,7 @@ 40000 DeviceInterfaceLink OCPSCH01040DDLF - Ethernet1 + Ethernet4 OCPSCH0104002MS Ethernet12 @@ -124,6 +124,424 @@ + + + + + DeviceInterface + + true + 1 + fortyGigE0/0 + + false + 0 + 0 + 10000 + + + DeviceInterface + + true + 1 + Ethernet1 + + false + 0 + 0 + 10000 + + + DeviceInterface + + true + 1 + Ethernet2 + + false + 0 + 0 + 10000 + + + DeviceInterface + + true + 1 + fortyGigE0/4 + + false + 0 + 0 + 25000 + + + DeviceInterface + + true + 1 + fortyGigE0/8 + + false + 0 + 0 + 40000 + Interface description + + + DeviceInterface + + true + 1 + fortyGigE0/12 + + false + 0 + 0 + 100000 + Interface description + + + DeviceInterface + + true + 1 + fortyGigE0/16 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/20 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/24 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/28 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/32 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/36 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/40 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/44 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/48 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/52 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/56 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/60 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/64 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/68 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/72 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/76 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/80 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/84 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/88 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/92 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/96 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/100 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/104 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/108 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/112 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/116 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/120 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/124 + + false + 0 + 0 + 100000 + + + Force10-Z9100 + + + diff --git a/src/sonic-config-engine/tests/sample_output/py2/ports.json b/src/sonic-config-engine/tests/sample_output/py2/ports.json index 4b36790c7cd0..959a234eaace 100644 --- a/src/sonic-config-engine/tests/sample_output/py2/ports.json +++ b/src/sonic-config-engine/tests/sample_output/py2/ports.json @@ -20,6 +20,104 @@ }, "OP": "SET" }, + { + "PORT_TABLE:Ethernet108": { + "speed": "100000", + "description": "fortyGigE0/108" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet100": { + "speed": "100000", + "description": "fortyGigE0/100" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet104": { + "speed": "100000", + "description": "fortyGigE0/104" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet68": { + "speed": "100000", + "description": "fortyGigE0/68" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet96": { + "speed": "100000", + "description": "fortyGigE0/96" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet124": { + "speed": "100000", + "description": "fortyGigE0/124" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet92": { + "speed": "100000", + "description": "fortyGigE0/92" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet120": { + "speed": "100000", + "description": "fortyGigE0/120" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet52": { + "speed": "100000", + "description": "fortyGigE0/52" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet56": { + "speed": "100000", + "description": "fortyGigE0/56" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet76": { + "speed": "100000", + "description": "fortyGigE0/76" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet72": { + "speed": "100000", + "description": "fortyGigE0/72" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet64": { + "speed": "100000", + "description": "fortyGigE0/64" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet32": { + "speed": "100000", + "description": "fortyGigE0/32" + }, + "OP": "SET" + }, { "PORT_TABLE:Ethernet16": { "speed": "1000", @@ -27,11 +125,102 @@ }, "OP": "SET" }, + { + "PORT_TABLE:Ethernet36": { + "speed": "100000", + "description": "fortyGigE0/36" + }, + "OP": "SET" + }, { "PORT_TABLE:Ethernet12": { "speed": "100000", "description": "Interface description" }, "OP": "SET" + }, + { + "PORT_TABLE:Ethernet88": { + "speed": "100000", + "description": "fortyGigE0/88" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet116": { + "speed": "100000", + "description": "fortyGigE0/116" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet80": { + "speed": "100000", + "description": "fortyGigE0/80" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet112": { + "speed": "100000", + "description": "fortyGigE0/112" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet84": { + "speed": "100000", + "description": "fortyGigE0/84" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet48": { + "speed": "100000", + "description": "fortyGigE0/48" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet44": { + "speed": "100000", + "description": "fortyGigE0/44" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet40": { + "speed": "100000", + "description": "fortyGigE0/40" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet28": { + "speed": "100000", + "description": "fortyGigE0/28" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet60": { + "speed": "100000", + "description": "fortyGigE0/60" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet20": { + "speed": "100000", + "description": "fortyGigE0/20" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet24": { + "speed": "100000", + "description": "fortyGigE0/24" + }, + "OP": "SET" } ] diff --git a/src/sonic-config-engine/tests/sample_output/py3/ports.json b/src/sonic-config-engine/tests/sample_output/py3/ports.json index 1fee36338bd2..de9d4e25d1f3 100644 --- a/src/sonic-config-engine/tests/sample_output/py3/ports.json +++ b/src/sonic-config-engine/tests/sample_output/py3/ports.json @@ -33,5 +33,194 @@ "description": "fortyGigE0/16" }, "OP": "SET" + }, + { + "PORT_TABLE:Ethernet20": { + "speed": "100000", + "description": "fortyGigE0/20" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet24": { + "speed": "100000", + "description": "fortyGigE0/24" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet28": { + "speed": "100000", + "description": "fortyGigE0/28" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet32": { + "speed": "100000", + "description": "fortyGigE0/32" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet36": { + "speed": "100000", + "description": "fortyGigE0/36" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet40": { + "speed": "100000", + "description": "fortyGigE0/40" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet44": { + "speed": "100000", + "description": "fortyGigE0/44" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet48": { + "speed": "100000", + "description": "fortyGigE0/48" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet52": { + "speed": "100000", + "description": "fortyGigE0/52" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet56": { + "speed": "100000", + "description": "fortyGigE0/56" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet60": { + "speed": "100000", + "description": "fortyGigE0/60" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet64": { + "speed": "100000", + "description": "fortyGigE0/64" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet68": { + "speed": "100000", + "description": "fortyGigE0/68" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet72": { + "speed": "100000", + "description": "fortyGigE0/72" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet76": { + "speed": "100000", + "description": "fortyGigE0/76" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet80": { + "speed": "100000", + "description": "fortyGigE0/80" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet84": { + "speed": "100000", + "description": "fortyGigE0/84" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet88": { + "speed": "100000", + "description": "fortyGigE0/88" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet92": { + "speed": "100000", + "description": "fortyGigE0/92" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet96": { + "speed": "100000", + "description": "fortyGigE0/96" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet100": { + "speed": "100000", + "description": "fortyGigE0/100" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet104": { + "speed": "100000", + "description": "fortyGigE0/104" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet108": { + "speed": "100000", + "description": "fortyGigE0/108" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet112": { + "speed": "100000", + "description": "fortyGigE0/112" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet116": { + "speed": "100000", + "description": "fortyGigE0/116" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet120": { + "speed": "100000", + "description": "fortyGigE0/120" + }, + "OP": "SET" + }, + { + "PORT_TABLE:Ethernet124": { + "speed": "100000", + "description": "fortyGigE0/124" + }, + "OP": "SET" } ] diff --git a/src/sonic-config-engine/tests/simple-sample-graph-case.xml b/src/sonic-config-engine/tests/simple-sample-graph-case.xml index 08f750457499..d6a8c394f604 100644 --- a/src/sonic-config-engine/tests/simple-sample-graph-case.xml +++ b/src/sonic-config-engine/tests/simple-sample-graph-case.xml @@ -527,6 +527,342 @@ 100000 Interface description + + DeviceInterface + + true + 1 + fortyGigE0/16 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/20 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/24 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/28 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/32 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/36 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/40 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/44 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/48 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/52 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/56 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/60 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/64 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/68 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/72 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/76 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/80 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/84 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/88 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/92 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/96 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/100 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/104 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/108 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/112 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/116 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/120 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/124 + + false + 0 + 0 + 100000 + true 0 diff --git a/src/sonic-config-engine/tests/simple-sample-graph-metadata.xml b/src/sonic-config-engine/tests/simple-sample-graph-metadata.xml index 5691ff81578a..fbc33b49862a 100644 --- a/src/sonic-config-engine/tests/simple-sample-graph-metadata.xml +++ b/src/sonic-config-engine/tests/simple-sample-graph-metadata.xml @@ -321,6 +321,342 @@ 100000 Interface description + + DeviceInterface + + true + 1 + fortyGigE0/16 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/20 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/24 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/28 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/32 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/36 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/40 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/44 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/48 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/52 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/56 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/60 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/64 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/68 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/72 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/76 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/80 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/84 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/88 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/92 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/96 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/100 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/104 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/108 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/112 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/116 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/120 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/124 + + false + 0 + 0 + 100000 + true 0 diff --git a/src/sonic-config-engine/tests/simple-sample-graph.xml b/src/sonic-config-engine/tests/simple-sample-graph.xml index aef72017d72b..a8bd8b0b4685 100644 --- a/src/sonic-config-engine/tests/simple-sample-graph.xml +++ b/src/sonic-config-engine/tests/simple-sample-graph.xml @@ -415,6 +415,330 @@ 0 100000 + + DeviceInterface + + true + 1 + fortyGigE0/20 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/24 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/28 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/32 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/36 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/40 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/44 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/48 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/52 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/56 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/60 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/64 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/68 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/72 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/76 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/80 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/84 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/88 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/92 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/96 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/100 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/104 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/108 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/112 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/116 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/120 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/124 + + false + 0 + 0 + 100000 + true 0 diff --git a/src/sonic-config-engine/tests/t0-sample-bgp-speaker.xml b/src/sonic-config-engine/tests/t0-sample-bgp-speaker.xml index f2690985d9f3..552d219964c2 100644 --- a/src/sonic-config-engine/tests/t0-sample-bgp-speaker.xml +++ b/src/sonic-config-engine/tests/t0-sample-bgp-speaker.xml @@ -327,6 +327,400 @@ + + + + + DeviceInterface + + true + 1 + fortyGigE0/0 + + false + 0 + 0 + 10000 + + + DeviceInterface + + true + 1 + fortyGigE0/4 + + false + 0 + 0 + 25000 + + + DeviceInterface + + true + 1 + fortyGigE0/8 + + false + 0 + 0 + 40000 + Interface description + + + DeviceInterface + + true + 1 + fortyGigE0/12 + + false + 0 + 0 + 100000 + Interface description + + + DeviceInterface + + true + 1 + fortyGigE0/16 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/20 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/24 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/28 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/32 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/36 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/40 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/44 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/48 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/52 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/56 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/60 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/64 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/68 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/72 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/76 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/80 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/84 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/88 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/92 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/96 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/100 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/104 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/108 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/112 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/116 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/120 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/124 + + false + 0 + 0 + 100000 + + + Force10-S6000 + + + diff --git a/src/sonic-config-engine/tests/t0-sample-deployment-id.xml b/src/sonic-config-engine/tests/t0-sample-deployment-id.xml index b6b47d979102..30517dfee19f 100644 --- a/src/sonic-config-engine/tests/t0-sample-deployment-id.xml +++ b/src/sonic-config-engine/tests/t0-sample-deployment-id.xml @@ -327,6 +327,400 @@ + + + + + DeviceInterface + + true + 1 + fortyGigE0/0 + + false + 0 + 0 + 10000 + + + DeviceInterface + + true + 1 + fortyGigE0/4 + + false + 0 + 0 + 25000 + + + DeviceInterface + + true + 1 + fortyGigE0/8 + + false + 0 + 0 + 40000 + Interface description + + + DeviceInterface + + true + 1 + fortyGigE0/12 + + false + 0 + 0 + 100000 + Interface description + + + DeviceInterface + + true + 1 + fortyGigE0/16 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/20 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/24 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/28 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/32 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/36 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/40 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/44 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/48 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/52 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/56 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/60 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/64 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/68 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/72 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/76 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/80 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/84 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/88 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/92 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/96 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/100 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/104 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/108 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/112 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/116 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/120 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/124 + + false + 0 + 0 + 100000 + + + Force10-S6000 + + + diff --git a/src/sonic-config-engine/tests/t0-sample-graph-mvrf.xml b/src/sonic-config-engine/tests/t0-sample-graph-mvrf.xml index e7e2b5789816..3fd73f7369fe 100644 --- a/src/sonic-config-engine/tests/t0-sample-graph-mvrf.xml +++ b/src/sonic-config-engine/tests/t0-sample-graph-mvrf.xml @@ -387,6 +387,398 @@ + + + + + DeviceInterface + + true + 1 + Ethernet0 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet4 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet8 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet12 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet16 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet20 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet24 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet28 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet32 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet36 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet40 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet44 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet48 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet52 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet56 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet60 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet64 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet68 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet72 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet76 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet80 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet84 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet88 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet92 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet96 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet100 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet104 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet108 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet112 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet116 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet120 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet124 + + false + 0 + 0 + 40000 + + + Force10-S6000 + + + diff --git a/src/sonic-config-engine/tests/t0-sample-graph.xml b/src/sonic-config-engine/tests/t0-sample-graph.xml index 6d9e21c4f81b..15fb1dc79210 100644 --- a/src/sonic-config-engine/tests/t0-sample-graph.xml +++ b/src/sonic-config-engine/tests/t0-sample-graph.xml @@ -498,6 +498,374 @@ + + + + + DeviceInterface + + true + 1 + Ethernet0 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet8 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet12 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet16 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet20 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet24 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet28 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet32 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet36 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet40 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet44 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet48 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet52 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet56 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet60 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet64 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet68 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet72 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet76 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet80 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet84 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet88 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet92 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet96 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet100 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet104 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet108 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet112 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet116 + + false + 0 + 0 + 40000 + + + DeviceInterface + + true + 1 + Ethernet120 + + false + 0 + 0 + 40000 + + + Force10-S6000 + + + diff --git a/src/sonic-config-engine/tests/t2-chassis-fe-graph-pc.xml b/src/sonic-config-engine/tests/t2-chassis-fe-graph-pc.xml index bc1a5142fc86..212d9c76a647 100644 --- a/src/sonic-config-engine/tests/t2-chassis-fe-graph-pc.xml +++ b/src/sonic-config-engine/tests/t2-chassis-fe-graph-pc.xml @@ -296,6 +296,318 @@ 0 25000 + + DeviceInterface + + false + 1 + Ethernet24 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet28 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet32 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet36 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet40 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet44 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet48 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet52 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet56 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet60 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet64 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet68 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet72 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet76 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet80 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet84 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet88 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet92 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet96 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet100 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet104 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet108 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet112 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet116 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet120 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet124 + + false + 0 + 0 + 40000 + false 0 diff --git a/src/sonic-config-engine/tests/t2-chassis-fe-graph-vni.xml b/src/sonic-config-engine/tests/t2-chassis-fe-graph-vni.xml index 0dc534b3de88..9384446aa913 100644 --- a/src/sonic-config-engine/tests/t2-chassis-fe-graph-vni.xml +++ b/src/sonic-config-engine/tests/t2-chassis-fe-graph-vni.xml @@ -224,6 +224,354 @@ 0 40000 + + DeviceInterface + + false + 1 + Ethernet12 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet16 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet20 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet24 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet28 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet32 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet36 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet40 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet44 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet48 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet52 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet56 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet60 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet64 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet68 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet72 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet76 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet80 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet84 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet88 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet92 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet96 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet100 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet104 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet108 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet112 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet116 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet120 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet124 + + false + 0 + 0 + 40000 + false 0 diff --git a/src/sonic-config-engine/tests/t2-chassis-fe-graph.xml b/src/sonic-config-engine/tests/t2-chassis-fe-graph.xml index 3b0c56a57a70..3fd8ed01c215 100644 --- a/src/sonic-config-engine/tests/t2-chassis-fe-graph.xml +++ b/src/sonic-config-engine/tests/t2-chassis-fe-graph.xml @@ -223,6 +223,354 @@ 0 40000 + + DeviceInterface + + false + 1 + Ethernet12 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet16 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet20 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet24 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet28 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet32 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet36 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet40 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet44 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet48 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet52 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet56 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet60 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet64 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet68 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet72 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet76 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet80 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet84 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet88 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet92 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet96 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet100 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet104 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet108 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet112 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet116 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet120 + + false + 0 + 0 + 40000 + + + DeviceInterface + + false + 1 + Ethernet124 + + false + 0 + 0 + 40000 + false 0 diff --git a/src/sonic-config-engine/tests/test_cfggen.py b/src/sonic-config-engine/tests/test_cfggen.py index 09f507f3d9f9..e1f6844dd5f2 100644 --- a/src/sonic-config-engine/tests/test_cfggen.py +++ b/src/sonic-config-engine/tests/test_cfggen.py @@ -396,37 +396,37 @@ def test_minigraph_port_autonegotiation(self): self.assertEqual( utils.to_dict(output.strip()), utils.to_dict( - "{'Ethernet0': {'alias': 'fortyGigE0/0', 'pfc_asym': 'off', 'lanes': '29,30,31,32', 'description': 'fortyGigE0/0', 'mtu': '9100', 'tpid': '0x8100'}, " + "{'Ethernet0': {'alias': 'fortyGigE0/0', 'pfc_asym': 'off', 'lanes': '29,30,31,32', 'description': 'fortyGigE0/0', 'mtu': '9100', 'tpid': '0x8100', 'speed': '40000'}, " "'Ethernet4': {'lanes': '25,26,27,28', 'description': 'Servers0:eth0', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/4', 'admin_status': 'up', 'autoneg': 'on', 'speed': '100000', 'fec': 'none'}, " - "'Ethernet8': {'lanes': '37,38,39,40', 'description': 'fortyGigE0/8', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/8', 'admin_status': 'up', 'autoneg': 'off', 'fec': 'none'}, " - "'Ethernet12': {'lanes': '33,34,35,36', 'description': 'fortyGigE0/12', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/12', 'admin_status': 'up'}, " - "'Ethernet16': {'lanes': '41,42,43,44', 'description': 'fortyGigE0/16', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/16', 'admin_status': 'up'}, " - "'Ethernet20': {'lanes': '45,46,47,48', 'description': 'fortyGigE0/20', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/20', 'admin_status': 'up'}, " - "'Ethernet24': {'lanes': '5,6,7,8', 'description': 'fortyGigE0/24', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/24', 'admin_status': 'up'}, " - "'Ethernet28': {'lanes': '1,2,3,4', 'description': 'fortyGigE0/28', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/28', 'admin_status': 'up'}, " - "'Ethernet32': {'lanes': '9,10,11,12', 'description': 'fortyGigE0/32', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/32', 'admin_status': 'up'}, " - "'Ethernet36': {'lanes': '13,14,15,16', 'description': 'fortyGigE0/36', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/36', 'admin_status': 'up'}, " - "'Ethernet40': {'lanes': '21,22,23,24', 'description': 'fortyGigE0/40', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/40', 'admin_status': 'up'}, " - "'Ethernet44': {'lanes': '17,18,19,20', 'description': 'fortyGigE0/44', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/44', 'admin_status': 'up'}, " - "'Ethernet48': {'lanes': '49,50,51,52', 'description': 'fortyGigE0/48', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/48', 'admin_status': 'up'}, " - "'Ethernet52': {'lanes': '53,54,55,56', 'description': 'fortyGigE0/52', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/52', 'admin_status': 'up'}, " - "'Ethernet56': {'lanes': '61,62,63,64', 'description': 'fortyGigE0/56', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/56', 'admin_status': 'up'}, " - "'Ethernet60': {'lanes': '57,58,59,60', 'description': 'fortyGigE0/60', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/60', 'admin_status': 'up'}, " - "'Ethernet64': {'lanes': '65,66,67,68', 'description': 'fortyGigE0/64', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/64', 'admin_status': 'up'}, " - "'Ethernet68': {'lanes': '69,70,71,72', 'description': 'fortyGigE0/68', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/68', 'admin_status': 'up'}, " - "'Ethernet72': {'lanes': '77,78,79,80', 'description': 'fortyGigE0/72', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/72', 'admin_status': 'up'}, " - "'Ethernet76': {'lanes': '73,74,75,76', 'description': 'fortyGigE0/76', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/76', 'admin_status': 'up'}, " - "'Ethernet80': {'lanes': '105,106,107,108', 'description': 'fortyGigE0/80', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/80', 'admin_status': 'up'}, " - "'Ethernet84': {'lanes': '109,110,111,112', 'description': 'fortyGigE0/84', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/84', 'admin_status': 'up'}, " - "'Ethernet88': {'lanes': '117,118,119,120', 'description': 'fortyGigE0/88', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/88', 'admin_status': 'up'}, " - "'Ethernet92': {'lanes': '113,114,115,116', 'description': 'fortyGigE0/92', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/92', 'admin_status': 'up'}, " - "'Ethernet96': {'lanes': '121,122,123,124', 'description': 'fortyGigE0/96', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/96', 'admin_status': 'up'}, " - "'Ethernet100': {'lanes': '125,126,127,128', 'description': 'Servers100:eth0', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/100', 'admin_status': 'up'}, " - "'Ethernet104': {'alias': 'fortyGigE0/104', 'pfc_asym': 'off', 'lanes': '85,86,87,88', 'description': 'fortyGigE0/104', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet108': {'alias': 'fortyGigE0/108', 'pfc_asym': 'off', 'lanes': '81,82,83,84', 'description': 'fortyGigE0/108', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet112': {'lanes': '89,90,91,92', 'description': 'ARISTA01T1:Ethernet1/1', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/112', 'admin_status': 'up'}, " - "'Ethernet116': {'lanes': '93,94,95,96', 'description': 'ARISTA02T1:Ethernet1/1', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/116', 'admin_status': 'up'}, " - "'Ethernet120': {'lanes': '97,98,99,100', 'description': 'ARISTA03T1:Ethernet1/1', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/120', 'admin_status': 'up'}, " + "'Ethernet8': {'lanes': '37,38,39,40', 'description': 'fortyGigE0/8', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/8', 'admin_status': 'up', 'autoneg': 'off', 'fec': 'none', 'speed': '40000'}, " + "'Ethernet12': {'lanes': '33,34,35,36', 'description': 'fortyGigE0/12', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/12', 'admin_status': 'up', 'speed': '40000'}, " + "'Ethernet16': {'lanes': '41,42,43,44', 'description': 'fortyGigE0/16', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/16', 'admin_status': 'up', 'speed': '40000'}, " + "'Ethernet20': {'lanes': '45,46,47,48', 'description': 'fortyGigE0/20', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/20', 'admin_status': 'up', 'speed': '40000'}, " + "'Ethernet24': {'lanes': '5,6,7,8', 'description': 'fortyGigE0/24', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/24', 'admin_status': 'up', 'speed': '40000'}, " + "'Ethernet28': {'lanes': '1,2,3,4', 'description': 'fortyGigE0/28', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/28', 'admin_status': 'up', 'speed': '40000'}, " + "'Ethernet32': {'lanes': '9,10,11,12', 'description': 'fortyGigE0/32', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/32', 'admin_status': 'up', 'speed': '40000'}, " + "'Ethernet36': {'lanes': '13,14,15,16', 'description': 'fortyGigE0/36', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/36', 'admin_status': 'up', 'speed': '40000'}, " + "'Ethernet40': {'lanes': '21,22,23,24', 'description': 'fortyGigE0/40', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/40', 'admin_status': 'up', 'speed': '40000'}, " + "'Ethernet44': {'lanes': '17,18,19,20', 'description': 'fortyGigE0/44', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/44', 'admin_status': 'up', 'speed': '40000'}, " + "'Ethernet48': {'lanes': '49,50,51,52', 'description': 'fortyGigE0/48', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/48', 'admin_status': 'up', 'speed': '40000'}, " + "'Ethernet52': {'lanes': '53,54,55,56', 'description': 'fortyGigE0/52', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/52', 'admin_status': 'up', 'speed': '40000'}, " + "'Ethernet56': {'lanes': '61,62,63,64', 'description': 'fortyGigE0/56', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/56', 'admin_status': 'up', 'speed': '40000'}, " + "'Ethernet60': {'lanes': '57,58,59,60', 'description': 'fortyGigE0/60', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/60', 'admin_status': 'up', 'speed': '40000'}, " + "'Ethernet64': {'lanes': '65,66,67,68', 'description': 'fortyGigE0/64', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/64', 'admin_status': 'up', 'speed': '40000'}, " + "'Ethernet68': {'lanes': '69,70,71,72', 'description': 'fortyGigE0/68', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/68', 'admin_status': 'up', 'speed': '40000'}, " + "'Ethernet72': {'lanes': '77,78,79,80', 'description': 'fortyGigE0/72', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/72', 'admin_status': 'up', 'speed': '40000'}, " + "'Ethernet76': {'lanes': '73,74,75,76', 'description': 'fortyGigE0/76', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/76', 'admin_status': 'up', 'speed': '40000'}, " + "'Ethernet80': {'lanes': '105,106,107,108', 'description': 'fortyGigE0/80', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/80', 'admin_status': 'up', 'speed': '40000'}, " + "'Ethernet84': {'lanes': '109,110,111,112', 'description': 'fortyGigE0/84', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/84', 'admin_status': 'up', 'speed': '40000'}, " + "'Ethernet88': {'lanes': '117,118,119,120', 'description': 'fortyGigE0/88', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/88', 'admin_status': 'up', 'speed': '40000'}, " + "'Ethernet92': {'lanes': '113,114,115,116', 'description': 'fortyGigE0/92', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/92', 'admin_status': 'up', 'speed': '40000'}, " + "'Ethernet96': {'lanes': '121,122,123,124', 'description': 'fortyGigE0/96', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/96', 'admin_status': 'up', 'speed': '40000'}, " + "'Ethernet100': {'lanes': '125,126,127,128', 'description': 'Servers100:eth0', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/100', 'admin_status': 'up', 'speed': '40000'}, " + "'Ethernet104': {'alias': 'fortyGigE0/104', 'pfc_asym': 'off', 'lanes': '85,86,87,88', 'description': 'fortyGigE0/104', 'mtu': '9100', 'tpid': '0x8100', 'speed': '40000'}, " + "'Ethernet108': {'alias': 'fortyGigE0/108', 'pfc_asym': 'off', 'lanes': '81,82,83,84', 'description': 'fortyGigE0/108', 'mtu': '9100', 'tpid': '0x8100', 'speed': '40000'}, " + "'Ethernet112': {'lanes': '89,90,91,92', 'description': 'ARISTA01T1:Ethernet1/1', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/112', 'admin_status': 'up', 'speed': '40000'}, " + "'Ethernet116': {'lanes': '93,94,95,96', 'description': 'ARISTA02T1:Ethernet1/1', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/116', 'admin_status': 'up', 'speed': '40000'}, " + "'Ethernet120': {'lanes': '97,98,99,100', 'description': 'ARISTA03T1:Ethernet1/1', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/120', 'admin_status': 'up', 'speed': '40000'}, " "'Ethernet124': {'lanes': '101,102,103,104', 'fec': 'rs', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/124', 'admin_status': 'up', 'speed': '100000', 'description': 'ARISTA04T1:Ethernet1/1'}}" ) ) @@ -437,38 +437,38 @@ def test_minigraph_port_autonegotiation(self): self.assertEqual( utils.to_dict(output.strip()), utils.to_dict( - "{'Ethernet0': {'lanes': '29,30,31,32', 'description': 'fortyGigE0/0', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/0', 'pfc_asym': 'off', 'autoneg': 'off'}, " + "{'Ethernet0': {'lanes': '29,30,31,32', 'description': 'fortyGigE0/0', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/0', 'pfc_asym': 'off', 'autoneg': 'off', 'speed': '40000'}, " "'Ethernet4': {'lanes': '25,26,27,28', 'description': 'Servers0:eth0', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/4', 'admin_status': 'up', 'autoneg': 'on', 'speed': '100000', 'fec': 'none'}, " - "'Ethernet8': {'lanes': '37,38,39,40', 'description': 'fortyGigE0/8', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/8', 'admin_status': 'up', 'autoneg': 'off', 'fec': 'none'}, " - "'Ethernet12': {'lanes': '33,34,35,36', 'description': 'fortyGigE0/12', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/12', 'admin_status': 'up', 'autoneg': 'off'}, " - "'Ethernet16': {'lanes': '41,42,43,44', 'description': 'fortyGigE0/16', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/16', 'admin_status': 'up', 'autoneg': 'off'}, " - "'Ethernet20': {'lanes': '45,46,47,48', 'description': 'fortyGigE0/20', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/20', 'admin_status': 'up', 'autoneg': 'off'}, " - "'Ethernet24': {'lanes': '5,6,7,8', 'description': 'fortyGigE0/24', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/24', 'admin_status': 'up', 'autoneg': 'off'}, " - "'Ethernet28': {'lanes': '1,2,3,4', 'description': 'fortyGigE0/28', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/28', 'admin_status': 'up', 'autoneg': 'off'}, " - "'Ethernet32': {'lanes': '9,10,11,12', 'description': 'fortyGigE0/32', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/32', 'admin_status': 'up', 'autoneg': 'off'}, " - "'Ethernet36': {'lanes': '13,14,15,16', 'description': 'fortyGigE0/36', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/36', 'admin_status': 'up', 'autoneg': 'off'}, " - "'Ethernet40': {'lanes': '21,22,23,24', 'description': 'fortyGigE0/40', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/40', 'admin_status': 'up', 'autoneg': 'off'}, " - "'Ethernet44': {'lanes': '17,18,19,20', 'description': 'fortyGigE0/44', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/44', 'admin_status': 'up', 'autoneg': 'off'}, " - "'Ethernet48': {'lanes': '49,50,51,52', 'description': 'fortyGigE0/48', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/48', 'admin_status': 'up', 'autoneg': 'off'}, " - "'Ethernet52': {'lanes': '53,54,55,56', 'description': 'fortyGigE0/52', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/52', 'admin_status': 'up', 'autoneg': 'off'}, " - "'Ethernet56': {'lanes': '61,62,63,64', 'description': 'fortyGigE0/56', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/56', 'admin_status': 'up', 'autoneg': 'off'}, " - "'Ethernet60': {'lanes': '57,58,59,60', 'description': 'fortyGigE0/60', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/60', 'admin_status': 'up', 'autoneg': 'off'}, " - "'Ethernet64': {'lanes': '65,66,67,68', 'description': 'fortyGigE0/64', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/64', 'admin_status': 'up', 'autoneg': 'off'}, " - "'Ethernet68': {'lanes': '69,70,71,72', 'description': 'fortyGigE0/68', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/68', 'admin_status': 'up', 'autoneg': 'off'}, " - "'Ethernet72': {'lanes': '77,78,79,80', 'description': 'fortyGigE0/72', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/72', 'admin_status': 'up', 'autoneg': 'off'}, " - "'Ethernet76': {'lanes': '73,74,75,76', 'description': 'fortyGigE0/76', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/76', 'admin_status': 'up', 'autoneg': 'off'}, " - "'Ethernet80': {'lanes': '105,106,107,108', 'description': 'fortyGigE0/80', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/80', 'admin_status': 'up', 'autoneg': 'off'}, " - "'Ethernet84': {'lanes': '109,110,111,112', 'description': 'fortyGigE0/84', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/84', 'admin_status': 'up', 'autoneg': 'off'}, " - "'Ethernet88': {'lanes': '117,118,119,120', 'description': 'fortyGigE0/88', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/88', 'admin_status': 'up', 'autoneg': 'off'}, " - "'Ethernet92': {'lanes': '113,114,115,116', 'description': 'fortyGigE0/92', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/92', 'admin_status': 'up', 'autoneg': 'off'}, " - "'Ethernet96': {'lanes': '121,122,123,124', 'description': 'fortyGigE0/96', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/96', 'admin_status': 'up', 'autoneg': 'off'}, " - "'Ethernet100': {'lanes': '125,126,127,128', 'description': 'Servers100:eth0', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/100', 'admin_status': 'up', 'autoneg': 'off'}, " - "'Ethernet104': {'lanes': '85,86,87,88', 'description': 'fortyGigE0/104', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/104', 'pfc_asym': 'off', 'autoneg': 'off'}, " - "'Ethernet108': {'lanes': '81,82,83,84', 'description': 'fortyGigE0/108', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/108', 'pfc_asym': 'off', 'autoneg': 'off'}, " - "'Ethernet112': {'lanes': '89,90,91,92', 'description': 'ARISTA01T1:Ethernet1/1', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/112', 'admin_status': 'up', 'autoneg': 'on'}, " - "'Ethernet116': {'lanes': '93,94,95,96', 'description': 'ARISTA02T1:Ethernet1/1', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/116', 'admin_status': 'up', 'autoneg': 'on'}, " - "'Ethernet120': {'lanes': '97,98,99,100', 'description': 'ARISTA03T1:Ethernet1/1', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/120', 'admin_status': 'up', 'autoneg': 'on'}, " - "'Ethernet124': {'lanes': '101,102,103,104', 'fec': 'rs', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/124', 'admin_status': 'up', 'autoneg': 'on', 'speed': '100000', 'description': 'ARISTA04T1:Ethernet1/1'}}" + "'Ethernet8': {'lanes': '37,38,39,40', 'description': 'fortyGigE0/8', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/8', 'admin_status': 'up', 'autoneg': 'off', 'fec': 'none', 'speed': '40000'}, " + "'Ethernet12': {'lanes': '33,34,35,36', 'description': 'fortyGigE0/12', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/12', 'admin_status': 'up', 'autoneg': 'off', 'speed': '40000'}, " + "'Ethernet16': {'lanes': '41,42,43,44', 'description': 'fortyGigE0/16', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/16', 'admin_status': 'up', 'autoneg': 'off', 'speed': '40000'}, " + "'Ethernet20': {'lanes': '45,46,47,48', 'description': 'fortyGigE0/20', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/20', 'admin_status': 'up', 'autoneg': 'off', 'speed': '40000'}, " + "'Ethernet24': {'lanes': '5,6,7,8', 'description': 'fortyGigE0/24', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/24', 'admin_status': 'up', 'autoneg': 'off', 'speed': '40000'}, " + "'Ethernet28': {'lanes': '1,2,3,4', 'description': 'fortyGigE0/28', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/28', 'admin_status': 'up', 'autoneg': 'off', 'speed': '40000'}, " + "'Ethernet32': {'lanes': '9,10,11,12', 'description': 'fortyGigE0/32', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/32', 'admin_status': 'up', 'autoneg': 'off', 'speed': '40000'}, " + "'Ethernet36': {'lanes': '13,14,15,16', 'description': 'fortyGigE0/36', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/36', 'admin_status': 'up', 'autoneg': 'off', 'speed': '40000'}, " + "'Ethernet40': {'lanes': '21,22,23,24', 'description': 'fortyGigE0/40', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/40', 'admin_status': 'up', 'autoneg': 'off', 'speed': '40000'}, " + "'Ethernet44': {'lanes': '17,18,19,20', 'description': 'fortyGigE0/44', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/44', 'admin_status': 'up', 'autoneg': 'off', 'speed': '40000'}, " + "'Ethernet48': {'lanes': '49,50,51,52', 'description': 'fortyGigE0/48', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/48', 'admin_status': 'up', 'autoneg': 'off', 'speed': '40000'}, " + "'Ethernet52': {'lanes': '53,54,55,56', 'description': 'fortyGigE0/52', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/52', 'admin_status': 'up', 'autoneg': 'off', 'speed': '40000'}, " + "'Ethernet56': {'lanes': '61,62,63,64', 'description': 'fortyGigE0/56', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/56', 'admin_status': 'up', 'autoneg': 'off', 'speed': '40000'}, " + "'Ethernet60': {'lanes': '57,58,59,60', 'description': 'fortyGigE0/60', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/60', 'admin_status': 'up', 'autoneg': 'off', 'speed': '40000'}, " + "'Ethernet64': {'lanes': '65,66,67,68', 'description': 'fortyGigE0/64', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/64', 'admin_status': 'up', 'autoneg': 'off', 'speed': '40000'}, " + "'Ethernet68': {'lanes': '69,70,71,72', 'description': 'fortyGigE0/68', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/68', 'admin_status': 'up', 'autoneg': 'off', 'speed': '40000'}, " + "'Ethernet72': {'lanes': '77,78,79,80', 'description': 'fortyGigE0/72', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/72', 'admin_status': 'up', 'autoneg': 'off', 'speed': '40000'}, " + "'Ethernet76': {'lanes': '73,74,75,76', 'description': 'fortyGigE0/76', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/76', 'admin_status': 'up', 'autoneg': 'off', 'speed': '40000'}, " + "'Ethernet80': {'lanes': '105,106,107,108', 'description': 'fortyGigE0/80', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/80', 'admin_status': 'up', 'autoneg': 'off', 'speed': '40000'}, " + "'Ethernet84': {'lanes': '109,110,111,112', 'description': 'fortyGigE0/84', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/84', 'admin_status': 'up', 'autoneg': 'off', 'speed': '40000'}, " + "'Ethernet88': {'lanes': '117,118,119,120', 'description': 'fortyGigE0/88', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/88', 'admin_status': 'up', 'autoneg': 'off', 'speed': '40000'}, " + "'Ethernet92': {'lanes': '113,114,115,116', 'description': 'fortyGigE0/92', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/92', 'admin_status': 'up', 'autoneg': 'off', 'speed': '40000'}, " + "'Ethernet96': {'lanes': '121,122,123,124', 'description': 'fortyGigE0/96', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/96', 'admin_status': 'up', 'autoneg': 'off', 'speed': '40000'}, " + "'Ethernet100': {'lanes': '125,126,127,128', 'description': 'Servers100:eth0', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/100', 'admin_status': 'up', 'autoneg': 'off', 'speed': '40000'}, " + "'Ethernet104': {'lanes': '85,86,87,88', 'description': 'fortyGigE0/104', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/104', 'pfc_asym': 'off', 'autoneg': 'off', 'speed': '40000'}, " + "'Ethernet108': {'lanes': '81,82,83,84', 'description': 'fortyGigE0/108', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/108', 'pfc_asym': 'off', 'autoneg': 'off', 'speed': '40000'}, " + "'Ethernet112': {'lanes': '89,90,91,92', 'description': 'ARISTA01T1:Ethernet1/1', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/112', 'admin_status': 'up', 'autoneg': 'on', 'speed': '40000'}, " + "'Ethernet116': {'lanes': '93,94,95,96', 'description': 'ARISTA02T1:Ethernet1/1', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/116', 'admin_status': 'up', 'autoneg': 'on', 'speed': '40000'}, " + "'Ethernet120': {'lanes': '97,98,99,100', 'description': 'ARISTA03T1:Ethernet1/1', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/120', 'admin_status': 'up', 'autoneg': 'on', 'speed': '40000'}, " + "'Ethernet124': {'lanes': '101,102,103,104', 'fec': 'rs', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/124', 'admin_status': 'up', 'autoneg': 'on', 'speed': '100000', 'description': 'ARISTA04T1:Ethernet1/1', 'speed': '100000'}}" ) ) @@ -532,34 +532,34 @@ def test_minigraph_neighbor_interfaces(self): "'Ethernet4': {'lanes': '25,26,27,28', 'description': 'server1:port1', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/4', 'admin_status': 'up', 'speed': '25000', 'autoneg': 'on', 'mux_cable': 'true'}, " "'Ethernet8': {'lanes': '37,38,39,40', 'description': 'Interface description', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/8', 'admin_status': 'up', 'speed': '40000', 'autoneg': 'on', 'mux_cable': 'true'}, " "'Ethernet12': {'lanes': '33,34,35,36', 'description': 'Interface description', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/12', 'admin_status': 'up', 'speed': '10000', 'autoneg': 'on'}, " - "'Ethernet16': {'alias': 'fortyGigE0/16', 'pfc_asym': 'off', 'lanes': '41,42,43,44', 'description': 'fortyGigE0/16', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet20': {'alias': 'fortyGigE0/20', 'pfc_asym': 'off', 'lanes': '45,46,47,48', 'description': 'fortyGigE0/20', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet24': {'alias': 'fortyGigE0/24', 'pfc_asym': 'off', 'lanes': '5,6,7,8', 'description': 'fortyGigE0/24', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet28': {'alias': 'fortyGigE0/28', 'pfc_asym': 'off', 'lanes': '1,2,3,4', 'description': 'fortyGigE0/28', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet32': {'alias': 'fortyGigE0/32', 'pfc_asym': 'off', 'lanes': '9,10,11,12', 'description': 'fortyGigE0/32', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet36': {'alias': 'fortyGigE0/36', 'pfc_asym': 'off', 'lanes': '13,14,15,16', 'description': 'fortyGigE0/36', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet40': {'alias': 'fortyGigE0/40', 'pfc_asym': 'off', 'lanes': '21,22,23,24', 'description': 'fortyGigE0/40', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet44': {'alias': 'fortyGigE0/44', 'pfc_asym': 'off', 'lanes': '17,18,19,20', 'description': 'fortyGigE0/44', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet48': {'alias': 'fortyGigE0/48', 'pfc_asym': 'off', 'lanes': '49,50,51,52', 'description': 'fortyGigE0/48', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet52': {'alias': 'fortyGigE0/52', 'pfc_asym': 'off', 'lanes': '53,54,55,56', 'description': 'fortyGigE0/52', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet56': {'alias': 'fortyGigE0/56', 'pfc_asym': 'off', 'lanes': '61,62,63,64', 'description': 'fortyGigE0/56', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet60': {'alias': 'fortyGigE0/60', 'pfc_asym': 'off', 'lanes': '57,58,59,60', 'description': 'fortyGigE0/60', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet64': {'alias': 'fortyGigE0/64', 'pfc_asym': 'off', 'lanes': '65,66,67,68', 'description': 'fortyGigE0/64', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet68': {'alias': 'fortyGigE0/68', 'pfc_asym': 'off', 'lanes': '69,70,71,72', 'description': 'fortyGigE0/68', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet72': {'alias': 'fortyGigE0/72', 'pfc_asym': 'off', 'lanes': '77,78,79,80', 'description': 'fortyGigE0/72', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet76': {'alias': 'fortyGigE0/76', 'pfc_asym': 'off', 'lanes': '73,74,75,76', 'description': 'fortyGigE0/76', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet80': {'alias': 'fortyGigE0/80', 'pfc_asym': 'off', 'lanes': '105,106,107,108', 'description': 'fortyGigE0/80', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet84': {'alias': 'fortyGigE0/84', 'pfc_asym': 'off', 'lanes': '109,110,111,112', 'description': 'fortyGigE0/84', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet88': {'alias': 'fortyGigE0/88', 'pfc_asym': 'off', 'lanes': '117,118,119,120', 'description': 'fortyGigE0/88', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet92': {'alias': 'fortyGigE0/92', 'pfc_asym': 'off', 'lanes': '113,114,115,116', 'description': 'fortyGigE0/92', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet96': {'alias': 'fortyGigE0/96', 'pfc_asym': 'off', 'lanes': '121,122,123,124', 'description': 'fortyGigE0/96', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet100': {'alias': 'fortyGigE0/100', 'pfc_asym': 'off', 'lanes': '125,126,127,128', 'description': 'fortyGigE0/100', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet104': {'alias': 'fortyGigE0/104', 'pfc_asym': 'off', 'lanes': '85,86,87,88', 'description': 'fortyGigE0/104', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet108': {'alias': 'fortyGigE0/108', 'pfc_asym': 'off', 'lanes': '81,82,83,84', 'description': 'fortyGigE0/108', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet112': {'alias': 'fortyGigE0/112', 'pfc_asym': 'off', 'lanes': '89,90,91,92', 'description': 'fortyGigE0/112', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet116': {'alias': 'fortyGigE0/116', 'pfc_asym': 'off', 'lanes': '93,94,95,96', 'description': 'fortyGigE0/116', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet120': {'alias': 'fortyGigE0/120', 'pfc_asym': 'off', 'lanes': '97,98,99,100', 'description': 'fortyGigE0/120', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet124': {'alias': 'fortyGigE0/124', 'pfc_asym': 'off', 'lanes': '101,102,103,104', 'description': 'fortyGigE0/124', 'mtu': '9100', 'tpid': '0x8100'}}" + "'Ethernet16': {'alias': 'fortyGigE0/16', 'pfc_asym': 'off', 'lanes': '41,42,43,44', 'description': 'fortyGigE0/16', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet20': {'alias': 'fortyGigE0/20', 'pfc_asym': 'off', 'lanes': '45,46,47,48', 'description': 'fortyGigE0/20', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet24': {'alias': 'fortyGigE0/24', 'pfc_asym': 'off', 'lanes': '5,6,7,8', 'description': 'fortyGigE0/24', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet28': {'alias': 'fortyGigE0/28', 'pfc_asym': 'off', 'lanes': '1,2,3,4', 'description': 'fortyGigE0/28', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet32': {'alias': 'fortyGigE0/32', 'pfc_asym': 'off', 'lanes': '9,10,11,12', 'description': 'fortyGigE0/32', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet36': {'alias': 'fortyGigE0/36', 'pfc_asym': 'off', 'lanes': '13,14,15,16', 'description': 'fortyGigE0/36', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet40': {'alias': 'fortyGigE0/40', 'pfc_asym': 'off', 'lanes': '21,22,23,24', 'description': 'fortyGigE0/40', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet44': {'alias': 'fortyGigE0/44', 'pfc_asym': 'off', 'lanes': '17,18,19,20', 'description': 'fortyGigE0/44', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet48': {'alias': 'fortyGigE0/48', 'pfc_asym': 'off', 'lanes': '49,50,51,52', 'description': 'fortyGigE0/48', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet52': {'alias': 'fortyGigE0/52', 'pfc_asym': 'off', 'lanes': '53,54,55,56', 'description': 'fortyGigE0/52', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet56': {'alias': 'fortyGigE0/56', 'pfc_asym': 'off', 'lanes': '61,62,63,64', 'description': 'fortyGigE0/56', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet60': {'alias': 'fortyGigE0/60', 'pfc_asym': 'off', 'lanes': '57,58,59,60', 'description': 'fortyGigE0/60', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet64': {'alias': 'fortyGigE0/64', 'pfc_asym': 'off', 'lanes': '65,66,67,68', 'description': 'fortyGigE0/64', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet68': {'alias': 'fortyGigE0/68', 'pfc_asym': 'off', 'lanes': '69,70,71,72', 'description': 'fortyGigE0/68', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet72': {'alias': 'fortyGigE0/72', 'pfc_asym': 'off', 'lanes': '77,78,79,80', 'description': 'fortyGigE0/72', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet76': {'alias': 'fortyGigE0/76', 'pfc_asym': 'off', 'lanes': '73,74,75,76', 'description': 'fortyGigE0/76', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet80': {'alias': 'fortyGigE0/80', 'pfc_asym': 'off', 'lanes': '105,106,107,108', 'description': 'fortyGigE0/80', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet84': {'alias': 'fortyGigE0/84', 'pfc_asym': 'off', 'lanes': '109,110,111,112', 'description': 'fortyGigE0/84', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet88': {'alias': 'fortyGigE0/88', 'pfc_asym': 'off', 'lanes': '117,118,119,120', 'description': 'fortyGigE0/88', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet92': {'alias': 'fortyGigE0/92', 'pfc_asym': 'off', 'lanes': '113,114,115,116', 'description': 'fortyGigE0/92', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet96': {'alias': 'fortyGigE0/96', 'pfc_asym': 'off', 'lanes': '121,122,123,124', 'description': 'fortyGigE0/96', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet100': {'alias': 'fortyGigE0/100', 'pfc_asym': 'off', 'lanes': '125,126,127,128', 'description': 'fortyGigE0/100', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet104': {'alias': 'fortyGigE0/104', 'pfc_asym': 'off', 'lanes': '85,86,87,88', 'description': 'fortyGigE0/104', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet108': {'alias': 'fortyGigE0/108', 'pfc_asym': 'off', 'lanes': '81,82,83,84', 'description': 'fortyGigE0/108', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet112': {'alias': 'fortyGigE0/112', 'pfc_asym': 'off', 'lanes': '89,90,91,92', 'description': 'fortyGigE0/112', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet116': {'alias': 'fortyGigE0/116', 'pfc_asym': 'off', 'lanes': '93,94,95,96', 'description': 'fortyGigE0/116', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet120': {'alias': 'fortyGigE0/120', 'pfc_asym': 'off', 'lanes': '97,98,99,100', 'description': 'fortyGigE0/120', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet124': {'alias': 'fortyGigE0/124', 'pfc_asym': 'off', 'lanes': '101,102,103,104', 'description': 'fortyGigE0/124', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}}" ) ) @@ -575,34 +575,34 @@ def test_minigraph_neighbor_interfaces_config_db(self): "'Ethernet4': {'lanes': '25,26,27,28', 'description': 'server1:port1', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/4', 'admin_status': 'up', 'speed': '25000', 'autoneg': 'on', 'mux_cable': 'true'}, " "'Ethernet8': {'lanes': '37,38,39,40', 'description': 'Interface description', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/8', 'admin_status': 'up', 'speed': '40000', 'autoneg': 'on', 'mux_cable': 'true'}, " "'Ethernet12': {'lanes': '33,34,35,36', 'description': 'Interface description', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/12', 'admin_status': 'up', 'speed': '10000', 'autoneg': 'on'}, " - "'Ethernet16': {'alias': 'fortyGigE0/16', 'pfc_asym': 'off', 'lanes': '41,42,43,44', 'description': 'fortyGigE0/16', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet20': {'alias': 'fortyGigE0/20', 'pfc_asym': 'off', 'lanes': '45,46,47,48', 'description': 'fortyGigE0/20', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet24': {'alias': 'fortyGigE0/24', 'pfc_asym': 'off', 'lanes': '5,6,7,8', 'description': 'fortyGigE0/24', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet28': {'alias': 'fortyGigE0/28', 'pfc_asym': 'off', 'lanes': '1,2,3,4', 'description': 'fortyGigE0/28', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet32': {'alias': 'fortyGigE0/32', 'pfc_asym': 'off', 'lanes': '9,10,11,12', 'description': 'fortyGigE0/32', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet36': {'alias': 'fortyGigE0/36', 'pfc_asym': 'off', 'lanes': '13,14,15,16', 'description': 'fortyGigE0/36', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet40': {'alias': 'fortyGigE0/40', 'pfc_asym': 'off', 'lanes': '21,22,23,24', 'description': 'fortyGigE0/40', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet44': {'alias': 'fortyGigE0/44', 'pfc_asym': 'off', 'lanes': '17,18,19,20', 'description': 'fortyGigE0/44', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet48': {'alias': 'fortyGigE0/48', 'pfc_asym': 'off', 'lanes': '49,50,51,52', 'description': 'fortyGigE0/48', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet52': {'alias': 'fortyGigE0/52', 'pfc_asym': 'off', 'lanes': '53,54,55,56', 'description': 'fortyGigE0/52', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet56': {'alias': 'fortyGigE0/56', 'pfc_asym': 'off', 'lanes': '61,62,63,64', 'description': 'fortyGigE0/56', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet60': {'alias': 'fortyGigE0/60', 'pfc_asym': 'off', 'lanes': '57,58,59,60', 'description': 'fortyGigE0/60', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet64': {'alias': 'fortyGigE0/64', 'pfc_asym': 'off', 'lanes': '65,66,67,68', 'description': 'fortyGigE0/64', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet68': {'alias': 'fortyGigE0/68', 'pfc_asym': 'off', 'lanes': '69,70,71,72', 'description': 'fortyGigE0/68', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet72': {'alias': 'fortyGigE0/72', 'pfc_asym': 'off', 'lanes': '77,78,79,80', 'description': 'fortyGigE0/72', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet76': {'alias': 'fortyGigE0/76', 'pfc_asym': 'off', 'lanes': '73,74,75,76', 'description': 'fortyGigE0/76', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet80': {'alias': 'fortyGigE0/80', 'pfc_asym': 'off', 'lanes': '105,106,107,108', 'description': 'fortyGigE0/80', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet84': {'alias': 'fortyGigE0/84', 'pfc_asym': 'off', 'lanes': '109,110,111,112', 'description': 'fortyGigE0/84', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet88': {'alias': 'fortyGigE0/88', 'pfc_asym': 'off', 'lanes': '117,118,119,120', 'description': 'fortyGigE0/88', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet92': {'alias': 'fortyGigE0/92', 'pfc_asym': 'off', 'lanes': '113,114,115,116', 'description': 'fortyGigE0/92', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet96': {'alias': 'fortyGigE0/96', 'pfc_asym': 'off', 'lanes': '121,122,123,124', 'description': 'fortyGigE0/96', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet100': {'alias': 'fortyGigE0/100', 'pfc_asym': 'off', 'lanes': '125,126,127,128', 'description': 'fortyGigE0/100', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet104': {'alias': 'fortyGigE0/104', 'pfc_asym': 'off', 'lanes': '85,86,87,88', 'description': 'fortyGigE0/104', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet108': {'alias': 'fortyGigE0/108', 'pfc_asym': 'off', 'lanes': '81,82,83,84', 'description': 'fortyGigE0/108', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet112': {'alias': 'fortyGigE0/112', 'pfc_asym': 'off', 'lanes': '89,90,91,92', 'description': 'fortyGigE0/112', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet116': {'alias': 'fortyGigE0/116', 'pfc_asym': 'off', 'lanes': '93,94,95,96', 'description': 'fortyGigE0/116', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet120': {'alias': 'fortyGigE0/120', 'pfc_asym': 'off', 'lanes': '97,98,99,100', 'description': 'fortyGigE0/120', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet124': {'alias': 'fortyGigE0/124', 'pfc_asym': 'off', 'lanes': '101,102,103,104', 'description': 'fortyGigE0/124', 'mtu': '9100', 'tpid': '0x8100'}}" + "'Ethernet16': {'alias': 'fortyGigE0/16', 'pfc_asym': 'off', 'lanes': '41,42,43,44', 'description': 'fortyGigE0/16', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet20': {'alias': 'fortyGigE0/20', 'pfc_asym': 'off', 'lanes': '45,46,47,48', 'description': 'fortyGigE0/20', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet24': {'alias': 'fortyGigE0/24', 'pfc_asym': 'off', 'lanes': '5,6,7,8', 'description': 'fortyGigE0/24', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet28': {'alias': 'fortyGigE0/28', 'pfc_asym': 'off', 'lanes': '1,2,3,4', 'description': 'fortyGigE0/28', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet32': {'alias': 'fortyGigE0/32', 'pfc_asym': 'off', 'lanes': '9,10,11,12', 'description': 'fortyGigE0/32', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet36': {'alias': 'fortyGigE0/36', 'pfc_asym': 'off', 'lanes': '13,14,15,16', 'description': 'fortyGigE0/36', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet40': {'alias': 'fortyGigE0/40', 'pfc_asym': 'off', 'lanes': '21,22,23,24', 'description': 'fortyGigE0/40', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet44': {'alias': 'fortyGigE0/44', 'pfc_asym': 'off', 'lanes': '17,18,19,20', 'description': 'fortyGigE0/44', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet48': {'alias': 'fortyGigE0/48', 'pfc_asym': 'off', 'lanes': '49,50,51,52', 'description': 'fortyGigE0/48', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet52': {'alias': 'fortyGigE0/52', 'pfc_asym': 'off', 'lanes': '53,54,55,56', 'description': 'fortyGigE0/52', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet56': {'alias': 'fortyGigE0/56', 'pfc_asym': 'off', 'lanes': '61,62,63,64', 'description': 'fortyGigE0/56', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet60': {'alias': 'fortyGigE0/60', 'pfc_asym': 'off', 'lanes': '57,58,59,60', 'description': 'fortyGigE0/60', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet64': {'alias': 'fortyGigE0/64', 'pfc_asym': 'off', 'lanes': '65,66,67,68', 'description': 'fortyGigE0/64', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet68': {'alias': 'fortyGigE0/68', 'pfc_asym': 'off', 'lanes': '69,70,71,72', 'description': 'fortyGigE0/68', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet72': {'alias': 'fortyGigE0/72', 'pfc_asym': 'off', 'lanes': '77,78,79,80', 'description': 'fortyGigE0/72', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet76': {'alias': 'fortyGigE0/76', 'pfc_asym': 'off', 'lanes': '73,74,75,76', 'description': 'fortyGigE0/76', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet80': {'alias': 'fortyGigE0/80', 'pfc_asym': 'off', 'lanes': '105,106,107,108', 'description': 'fortyGigE0/80', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet84': {'alias': 'fortyGigE0/84', 'pfc_asym': 'off', 'lanes': '109,110,111,112', 'description': 'fortyGigE0/84', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet88': {'alias': 'fortyGigE0/88', 'pfc_asym': 'off', 'lanes': '117,118,119,120', 'description': 'fortyGigE0/88', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet92': {'alias': 'fortyGigE0/92', 'pfc_asym': 'off', 'lanes': '113,114,115,116', 'description': 'fortyGigE0/92', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet96': {'alias': 'fortyGigE0/96', 'pfc_asym': 'off', 'lanes': '121,122,123,124', 'description': 'fortyGigE0/96', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet100': {'alias': 'fortyGigE0/100', 'pfc_asym': 'off', 'lanes': '125,126,127,128', 'description': 'fortyGigE0/100', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet104': {'alias': 'fortyGigE0/104', 'pfc_asym': 'off', 'lanes': '85,86,87,88', 'description': 'fortyGigE0/104', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet108': {'alias': 'fortyGigE0/108', 'pfc_asym': 'off', 'lanes': '81,82,83,84', 'description': 'fortyGigE0/108', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet112': {'alias': 'fortyGigE0/112', 'pfc_asym': 'off', 'lanes': '89,90,91,92', 'description': 'fortyGigE0/112', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet116': {'alias': 'fortyGigE0/116', 'pfc_asym': 'off', 'lanes': '93,94,95,96', 'description': 'fortyGigE0/116', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet120': {'alias': 'fortyGigE0/120', 'pfc_asym': 'off', 'lanes': '97,98,99,100', 'description': 'fortyGigE0/120', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet124': {'alias': 'fortyGigE0/124', 'pfc_asym': 'off', 'lanes': '101,102,103,104', 'description': 'fortyGigE0/124', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}}" ) ) @@ -619,33 +619,33 @@ def test_minigraph_extra_ethernet_interfaces(self, **kwargs): "'Ethernet8': {'lanes': '37,38,39,40', 'description': 'Interface description', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/8', 'admin_status': 'up', 'speed': '1000'}, " "'Ethernet12': {'lanes': '33,34,35,36', 'fec': 'rs', 'pfc_asym': 'off', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/12', 'admin_status': 'up', 'speed': '100000', 'description': 'Interface description'}, " "'Ethernet16': {'lanes': '41,42,43,44', 'pfc_asym': 'off', 'description': 'fortyGigE0/16', 'mtu': '9100', 'tpid': '0x8100', 'alias': 'fortyGigE0/16', 'speed': '1000'}, " - "'Ethernet20': {'alias': 'fortyGigE0/20', 'pfc_asym': 'off', 'lanes': '45,46,47,48', 'description': 'fortyGigE0/20', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet24': {'alias': 'fortyGigE0/24', 'pfc_asym': 'off', 'lanes': '5,6,7,8', 'description': 'fortyGigE0/24', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet28': {'alias': 'fortyGigE0/28', 'pfc_asym': 'off', 'lanes': '1,2,3,4', 'description': 'fortyGigE0/28', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet32': {'alias': 'fortyGigE0/32', 'pfc_asym': 'off', 'lanes': '9,10,11,12', 'description': 'fortyGigE0/32', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet36': {'alias': 'fortyGigE0/36', 'pfc_asym': 'off', 'lanes': '13,14,15,16', 'description': 'fortyGigE0/36', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet40': {'alias': 'fortyGigE0/40', 'pfc_asym': 'off', 'lanes': '21,22,23,24', 'description': 'fortyGigE0/40', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet44': {'alias': 'fortyGigE0/44', 'pfc_asym': 'off', 'lanes': '17,18,19,20', 'description': 'fortyGigE0/44', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet48': {'alias': 'fortyGigE0/48', 'pfc_asym': 'off', 'lanes': '49,50,51,52', 'description': 'fortyGigE0/48', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet52': {'alias': 'fortyGigE0/52', 'pfc_asym': 'off', 'lanes': '53,54,55,56', 'description': 'fortyGigE0/52', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet56': {'alias': 'fortyGigE0/56', 'pfc_asym': 'off', 'lanes': '61,62,63,64', 'description': 'fortyGigE0/56', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet60': {'alias': 'fortyGigE0/60', 'pfc_asym': 'off', 'lanes': '57,58,59,60', 'description': 'fortyGigE0/60', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet64': {'alias': 'fortyGigE0/64', 'pfc_asym': 'off', 'lanes': '65,66,67,68', 'description': 'fortyGigE0/64', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet68': {'alias': 'fortyGigE0/68', 'pfc_asym': 'off', 'lanes': '69,70,71,72', 'description': 'fortyGigE0/68', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet72': {'alias': 'fortyGigE0/72', 'pfc_asym': 'off', 'lanes': '77,78,79,80', 'description': 'fortyGigE0/72', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet76': {'alias': 'fortyGigE0/76', 'pfc_asym': 'off', 'lanes': '73,74,75,76', 'description': 'fortyGigE0/76', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet80': {'alias': 'fortyGigE0/80', 'pfc_asym': 'off', 'lanes': '105,106,107,108', 'description': 'fortyGigE0/80', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet84': {'alias': 'fortyGigE0/84', 'pfc_asym': 'off', 'lanes': '109,110,111,112', 'description': 'fortyGigE0/84', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet88': {'alias': 'fortyGigE0/88', 'pfc_asym': 'off', 'lanes': '117,118,119,120', 'description': 'fortyGigE0/88', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet92': {'alias': 'fortyGigE0/92', 'pfc_asym': 'off', 'lanes': '113,114,115,116', 'description': 'fortyGigE0/92', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet96': {'alias': 'fortyGigE0/96', 'pfc_asym': 'off', 'lanes': '121,122,123,124', 'description': 'fortyGigE0/96', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet100': {'alias': 'fortyGigE0/100', 'pfc_asym': 'off', 'lanes': '125,126,127,128', 'description': 'fortyGigE0/100', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet104': {'alias': 'fortyGigE0/104', 'pfc_asym': 'off', 'lanes': '85,86,87,88', 'description': 'fortyGigE0/104', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet108': {'alias': 'fortyGigE0/108', 'pfc_asym': 'off', 'lanes': '81,82,83,84', 'description': 'fortyGigE0/108', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet112': {'alias': 'fortyGigE0/112', 'pfc_asym': 'off', 'lanes': '89,90,91,92', 'description': 'fortyGigE0/112', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet116': {'alias': 'fortyGigE0/116', 'pfc_asym': 'off', 'lanes': '93,94,95,96', 'description': 'fortyGigE0/116', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet120': {'alias': 'fortyGigE0/120', 'pfc_asym': 'off', 'lanes': '97,98,99,100', 'description': 'fortyGigE0/120', 'mtu': '9100', 'tpid': '0x8100'}, " - "'Ethernet124': {'alias': 'fortyGigE0/124', 'pfc_asym': 'off', 'lanes': '101,102,103,104', 'description': 'fortyGigE0/124', 'mtu': '9100', 'tpid': '0x8100'}}" + "'Ethernet20': {'alias': 'fortyGigE0/20', 'pfc_asym': 'off', 'lanes': '45,46,47,48', 'description': 'fortyGigE0/20', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet24': {'alias': 'fortyGigE0/24', 'pfc_asym': 'off', 'lanes': '5,6,7,8', 'description': 'fortyGigE0/24', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet28': {'alias': 'fortyGigE0/28', 'pfc_asym': 'off', 'lanes': '1,2,3,4', 'description': 'fortyGigE0/28', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet32': {'alias': 'fortyGigE0/32', 'pfc_asym': 'off', 'lanes': '9,10,11,12', 'description': 'fortyGigE0/32', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet36': {'alias': 'fortyGigE0/36', 'pfc_asym': 'off', 'lanes': '13,14,15,16', 'description': 'fortyGigE0/36', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet40': {'alias': 'fortyGigE0/40', 'pfc_asym': 'off', 'lanes': '21,22,23,24', 'description': 'fortyGigE0/40', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet44': {'alias': 'fortyGigE0/44', 'pfc_asym': 'off', 'lanes': '17,18,19,20', 'description': 'fortyGigE0/44', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet48': {'alias': 'fortyGigE0/48', 'pfc_asym': 'off', 'lanes': '49,50,51,52', 'description': 'fortyGigE0/48', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet52': {'alias': 'fortyGigE0/52', 'pfc_asym': 'off', 'lanes': '53,54,55,56', 'description': 'fortyGigE0/52', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet56': {'alias': 'fortyGigE0/56', 'pfc_asym': 'off', 'lanes': '61,62,63,64', 'description': 'fortyGigE0/56', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet60': {'alias': 'fortyGigE0/60', 'pfc_asym': 'off', 'lanes': '57,58,59,60', 'description': 'fortyGigE0/60', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet64': {'alias': 'fortyGigE0/64', 'pfc_asym': 'off', 'lanes': '65,66,67,68', 'description': 'fortyGigE0/64', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet68': {'alias': 'fortyGigE0/68', 'pfc_asym': 'off', 'lanes': '69,70,71,72', 'description': 'fortyGigE0/68', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet72': {'alias': 'fortyGigE0/72', 'pfc_asym': 'off', 'lanes': '77,78,79,80', 'description': 'fortyGigE0/72', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet76': {'alias': 'fortyGigE0/76', 'pfc_asym': 'off', 'lanes': '73,74,75,76', 'description': 'fortyGigE0/76', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet80': {'alias': 'fortyGigE0/80', 'pfc_asym': 'off', 'lanes': '105,106,107,108', 'description': 'fortyGigE0/80', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet84': {'alias': 'fortyGigE0/84', 'pfc_asym': 'off', 'lanes': '109,110,111,112', 'description': 'fortyGigE0/84', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet88': {'alias': 'fortyGigE0/88', 'pfc_asym': 'off', 'lanes': '117,118,119,120', 'description': 'fortyGigE0/88', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet92': {'alias': 'fortyGigE0/92', 'pfc_asym': 'off', 'lanes': '113,114,115,116', 'description': 'fortyGigE0/92', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet96': {'alias': 'fortyGigE0/96', 'pfc_asym': 'off', 'lanes': '121,122,123,124', 'description': 'fortyGigE0/96', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet100': {'alias': 'fortyGigE0/100', 'pfc_asym': 'off', 'lanes': '125,126,127,128', 'description': 'fortyGigE0/100', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet104': {'alias': 'fortyGigE0/104', 'pfc_asym': 'off', 'lanes': '85,86,87,88', 'description': 'fortyGigE0/104', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet108': {'alias': 'fortyGigE0/108', 'pfc_asym': 'off', 'lanes': '81,82,83,84', 'description': 'fortyGigE0/108', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet112': {'alias': 'fortyGigE0/112', 'pfc_asym': 'off', 'lanes': '89,90,91,92', 'description': 'fortyGigE0/112', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet116': {'alias': 'fortyGigE0/116', 'pfc_asym': 'off', 'lanes': '93,94,95,96', 'description': 'fortyGigE0/116', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet120': {'alias': 'fortyGigE0/120', 'pfc_asym': 'off', 'lanes': '97,98,99,100', 'description': 'fortyGigE0/120', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}, " + "'Ethernet124': {'alias': 'fortyGigE0/124', 'pfc_asym': 'off', 'lanes': '101,102,103,104', 'description': 'fortyGigE0/124', 'mtu': '9100', 'tpid': '0x8100', 'fec': 'rs', 'speed': '100000'}}" ) ) @@ -884,7 +884,9 @@ def test_minigraph_voq_inband_port(self): 'mtu': '9100', 'tpid': '0x8100', 'pfc_asym': 'off', - 'admin_status': 'up' + 'admin_status': 'up', + 'fec': 'rs', + 'speed': '100000' } ) From 16717d2dc51f74fa711ed7b4392ce5e4f7e71c29 Mon Sep 17 00:00:00 2001 From: Nazarii Hnydyn Date: Thu, 7 Apr 2022 10:41:42 +0300 Subject: [PATCH 053/251] [submodule] Advance sonic-swss submodule. (#10404) In order to include the following commit: 0f06910 [PBH] Implement Edit Flows (Azure/sonic-swss#2169) sonic-swss 50d5be2 Make changes to support compiling on Bullseye with GCC 10 (#2216) 0870cf5 [mirrororch]: Implement HW resources availability validation for SPAN/ERSPAN (#2187) f4ec565 [vlanmgrd] fix use-after-free memory issue (#2211) c2de7fc [QosOrch] The notifications cannot be drained in QosOrch in case the first one needs to retry (#2206) 5575935 [neighsyncd] increase neighsyncd timeout (#2209) 0f06910 [PBH] Implement Edit Flows (#2169) 6241bbf Remove redundant and problematic code to skip "pool" field in buffer profile handling (#2197) a55343c [azp]: Set diff coverage threshhold to 80% (#2188) 390cae1 [portsorch]: Prevent LAG member configuration when port has active ACL binding (#2165) c1d47e6 [VNET]Fixing nexthop group delete during route change (#2198) 8941cc0 [BFD]Registering BFD state change callback during session creation (#2202) 680c539 [vxlan] Remove tunnel map objects on VNET tunnel removal (#2150) 20dde0c Fix for handling broadcom DNX ASIC to have ipv4 and ipv6 ACL rules in separate tables. (#2178) 5b7c949 [FdbOrch] SAI_FDB_EVENT_MOVE generates update with empty update.entry.port_name (#2200) 7350d49 [Vxlanmgr] vnet netdev cleanup during config reload fix (#2191) 2bef62b Validate LAG has members before mirror session create (#2130) 1e4d4ce [VS test] Increase VS test time, skip dpb flaky test (#2195) 6eda965 [vstest]Migrating vs tests from using click commands to direct DB access (#2179) Signed-off-by: Nazarii Hnydyn --- src/sonic-swss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-swss b/src/sonic-swss index d80094b248e7..50d5be2b399e 160000 --- a/src/sonic-swss +++ b/src/sonic-swss @@ -1 +1 @@ -Subproject commit d80094b248e7df5ac9df309d785ddf21e0ab92d7 +Subproject commit 50d5be2b399e9bcc43973f99d72d76e4effd8cc0 From 4426f7715fd4f5442e63e5efe759ad86006e9196 Mon Sep 17 00:00:00 2001 From: Stepan Blyshchak <38952541+stepanblyschak@users.noreply.github.com> Date: Thu, 7 Apr 2022 14:23:35 +0300 Subject: [PATCH 054/251] [scapy] update scapy to 2.4.5 and patch it (#10457) Why I did it Running warm-reboot in a loop for 500 times leads to this error on 318-th iteration: Apr 2 15:56:27.346747 sonic INFO swss#/supervisord: restore_neighbors Traceback (most recent call last): Apr 2 15:56:27.346747 sonic INFO swss#/supervisord: restore_neighbors File "/usr/bin/restore_neighbors.py", line 24, in Apr 2 15:56:27.346747 sonic INFO swss#/supervisord: restore_neighbors from scapy.all import conf, in6_getnsma, inet_pton, inet_ntop, in6_getnsmac, get_if_hwaddr, Ether, ARP, IPv6, ICMPv6ND_NS, ICMPv6NDOptSrcLLAddr Apr 2 15:56:27.346795 sonic INFO swss#/supervisord: restore_neighbors File "/usr/local/lib/python3.7/dist-packages/scapy/all.py", line 25, in Apr 2 15:56:27.346956 sonic INFO swss#/supervisord: restore_neighbors from scapy.route import * Apr 2 15:56:27.346995 sonic INFO swss#/supervisord: restore_neighbors File "/usr/local/lib/python3.7/dist-packages/scapy/route.py", line 205, in Apr 2 15:56:27.347089 sonic INFO swss#/supervisord: restore_neighbors conf.iface = get_working_if() Apr 2 15:56:27.347129 sonic INFO swss#/supervisord: restore_neighbors File "/usr/local/lib/python3.7/dist-packages/scapy/arch/linux.py", line 128, in get_working_if Apr 2 15:56:27.347213 sonic INFO swss#/supervisord: restore_neighbors ifflags = struct.unpack("16xH14x", get_if(i, SIOCGIFFLAGS))[0] Apr 2 15:56:27.347250 sonic INFO swss#/supervisord: restore_neighbors File "/usr/local/lib/python3.7/dist-packages/scapy/arch/common.py", line 31, in get_if Apr 2 15:56:27.347345 sonic INFO swss#/supervisord: restore_neighbors return ioctl(sck, cmd, struct.pack("16s16x", iff.encode("utf8"))) Apr 2 15:56:27.347365 sonic INFO swss#/supervisord: restore_neighbors OSError: [Errno 19] No such device The issue was reported to scapy devs secdev/scapy#3369, the fix is secdev/scapy#3371, however there is no released scapy version with this fix right now, thus decided to build scapy v2.4.5 from sources and apply the fix in a form of a patch. Signed-off-by: Stepan Blyschak --- .gitmodules | 3 ++ dockers/docker-orchagent/Dockerfile.j2 | 9 +++- rules/docker-orchagent.mk | 1 + rules/scapy.dep | 10 +++++ rules/scapy.mk | 7 ++++ src/scapy | 1 + ...ng-generation-when-scapy-is-a-submod.patch | 27 ++++++++++++ ...f-the-network-interface-still-exists.patch | 42 +++++++++++++++++++ src/scapy.patch/series | 2 + 9 files changed, 101 insertions(+), 1 deletion(-) create mode 100644 rules/scapy.dep create mode 100644 rules/scapy.mk create mode 160000 src/scapy create mode 100644 src/scapy.patch/0001-Fix-version-string-generation-when-scapy-is-a-submod.patch create mode 100644 src/scapy.patch/0002-Check-if-the-network-interface-still-exists.patch create mode 100644 src/scapy.patch/series diff --git a/.gitmodules b/.gitmodules index f79031a7d22c..b2d76bd66b20 100644 --- a/.gitmodules +++ b/.gitmodules @@ -62,6 +62,9 @@ [submodule "src/redis-dump-load"] path = src/redis-dump-load url = https://github.com/p/redis-dump-load.git +[submodule "src/scapy"] + path = src/scapy + url = https://github.com/secdev/scapy.git [submodule "platform/mellanox/mlnx-sai/SAI-Implementation"] path = platform/mellanox/mlnx-sai/SAI-Implementation url = https://github.com/Mellanox/SAI-Implementation diff --git a/dockers/docker-orchagent/Dockerfile.j2 b/dockers/docker-orchagent/Dockerfile.j2 index f71f31cfc0ac..ea4e0abbc2ef 100755 --- a/dockers/docker-orchagent/Dockerfile.j2 +++ b/dockers/docker-orchagent/Dockerfile.j2 @@ -40,7 +40,6 @@ RUN ln -s -f /usr/bin/gcc-8 /usr/bin/aarch64-linux-gnu-gcc # Dependencies of restore_neighbors.py RUN pip3 install \ - scapy==2.4.4 \ pyroute2==0.5.14 \ netifaces==0.10.9 @@ -57,6 +56,14 @@ RUN apt-get remove -y gcc-8 {{ install_debian_packages(docker_orchagent_debs.split(' ')) }} {%- endif %} +{% if docker_orchagent_whls.strip() -%} +# Copy locally-built Python wheel dependencies +{{ copy_files("python-wheels/", docker_orchagent_whls.split(' '), "/python-wheels/") }} + +# Install locally-built Python wheel dependencies +{{ install_python_wheels(docker_orchagent_whls.split(' ')) }} +{% endif %} + # Clean up RUN apt-get purge -y \ build-essential \ diff --git a/rules/docker-orchagent.mk b/rules/docker-orchagent.mk index d9453465c702..ef0c203877d8 100644 --- a/rules/docker-orchagent.mk +++ b/rules/docker-orchagent.mk @@ -10,6 +10,7 @@ $(DOCKER_ORCHAGENT)_DBG_DEPENDS = $($(DOCKER_SWSS_LAYER_BUSTER)_DBG_DEPENDS) $(DOCKER_ORCHAGENT)_DBG_DEPENDS += $(SWSS_DBG) \ $(LIBSWSSCOMMON_DBG) \ $(LIBSAIREDIS_DBG) +$(DOCKER_ORCHAGENT)_PYTHON_WHEELS += $(SCAPY) $(DOCKER_ORCHAGENT)_DBG_IMAGE_PACKAGES = $($(DOCKER_SWSS_LAYER_BUSTER)_DBG_IMAGE_PACKAGES) diff --git a/rules/scapy.dep b/rules/scapy.dep new file mode 100644 index 000000000000..ef09fb12223b --- /dev/null +++ b/rules/scapy.dep @@ -0,0 +1,10 @@ +SPATH := $($(SCAPY)_SRC_PATH) +DEP_FILES := $(SONIC_COMMON_FILES_LIST) rules/scapy.mk rules/scapy.dep +DEP_FILES += $(SONIC_COMMON_BASE_FILES_LIST) +SMDEP_FILES := $(addprefix $(SPATH)/,$(shell cd $(SPATH) && git ls-files -- ':!:doc/*')) + +$(SCAPY)_CACHE_MODE := GIT_CONTENT_SHA +$(SCAPY)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST) +$(SCAPY)_DEP_FILES := $(DEP_FILES) +$(SCAPY)_SMDEP_FILES := $(SMDEP_FILES) +$(SCAPY)_SMDEP_PATHS := $(SPATH) diff --git a/rules/scapy.mk b/rules/scapy.mk new file mode 100644 index 000000000000..6953c1ef10e2 --- /dev/null +++ b/rules/scapy.mk @@ -0,0 +1,7 @@ +# scapy python3 wheel + +SCAPY = scapy-2.4.5-py2.py3-none-any.whl +$(SCAPY)_SRC_PATH = $(SRC_PATH)/scapy +$(SCAPY)_PYTHON_VERSION = 3 +$(SCAPY)_TEST = n +SONIC_PYTHON_WHEELS += $(SCAPY) diff --git a/src/scapy b/src/scapy new file mode 160000 index 000000000000..8b63d73a1726 --- /dev/null +++ b/src/scapy @@ -0,0 +1 @@ +Subproject commit 8b63d73a17266bae2a61513ea97ded5283a7ccd3 diff --git a/src/scapy.patch/0001-Fix-version-string-generation-when-scapy-is-a-submod.patch b/src/scapy.patch/0001-Fix-version-string-generation-when-scapy-is-a-submod.patch new file mode 100644 index 000000000000..37f5253db0cc --- /dev/null +++ b/src/scapy.patch/0001-Fix-version-string-generation-when-scapy-is-a-submod.patch @@ -0,0 +1,27 @@ +From 988c808af6065b740006aef0e94496821d41fb98 Mon Sep 17 00:00:00 2001 +From: Stepan Blyschak +Date: Mon, 4 Apr 2022 09:57:39 +0000 +Subject: [PATCH] Fix version string generation when scapy is a submodule + +Signed-off-by: Stepan Blyschak +--- + scapy/__init__.py | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/scapy/__init__.py b/scapy/__init__.py +index f920151e..2adbea19 100644 +--- a/scapy/__init__.py ++++ b/scapy/__init__.py +@@ -42,9 +42,6 @@ def _version_from_git_describe(): + :raises CalledProcessError: if git is unavailable + :return: Scapy's latest tag + """ +- if not os.path.isdir(os.path.join(os.path.dirname(_SCAPY_PKG_DIR), '.git')): # noqa: E501 +- raise ValueError('not in scapy git repo') +- + def _git(cmd): + # type: (str) -> str + process = subprocess.Popen( +-- +2.14.1 + diff --git a/src/scapy.patch/0002-Check-if-the-network-interface-still-exists.patch b/src/scapy.patch/0002-Check-if-the-network-interface-still-exists.patch new file mode 100644 index 000000000000..c42c12e1a8aa --- /dev/null +++ b/src/scapy.patch/0002-Check-if-the-network-interface-still-exists.patch @@ -0,0 +1,42 @@ +From 7ffd8101c1e535f9c3225db2c319958a64412686 Mon Sep 17 00:00:00 2001 +From: Guillaume Valadon +Date: Tue, 14 Sep 2021 19:34:43 +0200 +Subject: [PATCH] Check if the network interface still exists + +Signed-off-by: Stepan Blyschak +--- + scapy/arch/linux.py | 18 +++++++++++------- + 1 file changed, 11 insertions(+), 7 deletions(-) + +diff --git a/scapy/arch/linux.py b/scapy/arch/linux.py +index 94fac8f0..b86e98ab 100644 +--- a/scapy/arch/linux.py ++++ b/scapy/arch/linux.py +@@ -414,13 +414,17 @@ class LinuxInterfaceProvider(InterfaceProvider): + data = {} + ips = in6_getifaddr() + for i in _get_if_list(): +- ifflags = struct.unpack("16xH14x", get_if(i, SIOCGIFFLAGS))[0] +- index = get_if_index(i) +- mac = scapy.utils.str2mac( +- get_if_raw_hwaddr(i, siocgifhwaddr=SIOCGIFHWADDR)[1] +- ) +- ip = None # type: Optional[str] +- ip = inet_ntop(socket.AF_INET, get_if_raw_addr(i)) ++ try: ++ ifflags = struct.unpack("16xH14x", get_if(i, SIOCGIFFLAGS))[0] ++ index = get_if_index(i) ++ mac = scapy.utils.str2mac( ++ get_if_raw_hwaddr(i, siocgifhwaddr=SIOCGIFHWADDR)[1] ++ ) ++ ip = None # type: Optional[str] ++ ip = inet_ntop(socket.AF_INET, get_if_raw_addr(i)) ++ except IOError: ++ warning("Interface %s does not exist!", i) ++ continue + if ip == "0.0.0.0": + ip = None + ifflags = FlagValue(ifflags, _iff_flags) +-- +2.14.1 + diff --git a/src/scapy.patch/series b/src/scapy.patch/series new file mode 100644 index 000000000000..d64f20f136c1 --- /dev/null +++ b/src/scapy.patch/series @@ -0,0 +1,2 @@ +0001-Fix-version-string-generation-when-scapy-is-a-submod.patch +0002-Check-if-the-network-interface-still-exists.patch From baa24b3cb1e0063bc447418fe50b028a04ebc62e Mon Sep 17 00:00:00 2001 From: xumia <59720581+xumia@users.noreply.github.com> Date: Thu, 7 Apr 2022 20:04:43 +0800 Subject: [PATCH 055/251] [Ci]: exclude innovium build and increase broadcom build timeout (#10482) Why I did it Exclude the innovium build in upgrading version build, currently, the builds are always failed, exclude the build temporarily. Increase the broadcom build timeout. --- .azure-pipelines/azure-pipelines-UpgrateVersion.yml | 1 - .azure-pipelines/azure-pipelines-build.yml | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/.azure-pipelines/azure-pipelines-UpgrateVersion.yml b/.azure-pipelines/azure-pipelines-UpgrateVersion.yml index 35988f71b9b4..cc6135b045ef 100644 --- a/.azure-pipelines/azure-pipelines-UpgrateVersion.yml +++ b/.azure-pipelines/azure-pipelines-UpgrateVersion.yml @@ -38,7 +38,6 @@ parameters: - centec - centec-arm64 - generic - - innovium - marvell-armhf - mellanox diff --git a/.azure-pipelines/azure-pipelines-build.yml b/.azure-pipelines/azure-pipelines-build.yml index 7c312de85931..0b033e959300 100644 --- a/.azure-pipelines/azure-pipelines-build.yml +++ b/.azure-pipelines/azure-pipelines-build.yml @@ -50,6 +50,7 @@ jobs: swi_image: yes - name: broadcom + timeoutInMinutes: 1440 variables: dbg_image: yes swi_image: yes From 07fad261dc2d580431c3a05e7869297da53b5b55 Mon Sep 17 00:00:00 2001 From: Kebo Liu Date: Thu, 7 Apr 2022 20:39:46 +0800 Subject: [PATCH 056/251] [submodule] Advance sonic-platform-common pointer (#10469) Update sonic-platform-common submodule to pickup new commits: 01512ec [SSD]Enhance ssd_generic with more error handling to avoid python crash Azure/sonic-platform-common#271 ac3e7f1 [y_cable][Broadcom] update the BRCM y_cable driver to release 2.0 Azure/sonic-platform-common#263 573717a [Credo][Ycable] Fix Credo firmware download API download_firmware flag Azure/sonic-platform-common#269 a844f18 [xcvr] Add get_module_fw_info method to XcvrApi class. Azure/sonic-platform-common#267 35bad16 [sfputil]Refactoring read_porttab_mappings Azure/sonic-platform-common#264 83c4345 [SSD Generic] Add support for parsing nvme ssd model, health and temperature Azure/sonic-platform-common#265 5da31e1 [ycable][credo] Fix the is_link_active API for Credo Ycable Azure/sonic-platform-common#260 931c6ea [Y-Cable][Credo] add theading locker to support thread-safe calling, add SKU check for download_firmware API. Azure/sonic-platform-common#222 ff3aa75 Fix SFF8472 Enhanced Options Azure/sonic-platform-common#259 a8a83e9 [ssd] Allow individual vendor parsers to handle errors Azure/sonic-platform-common#252 Signed-off-by: Kebo Liu --- src/sonic-platform-common | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-platform-common b/src/sonic-platform-common index ee122155e0f6..01512ecce4d6 160000 --- a/src/sonic-platform-common +++ b/src/sonic-platform-common @@ -1 +1 @@ -Subproject commit ee122155e0f6e40b483d24737c5f1b729bdbf111 +Subproject commit 01512ecce4d6ce7272c0bbb7a5d47a1c02d92221 From faabf00f829d685946b2e6d9a50eebfc5592d4dc Mon Sep 17 00:00:00 2001 From: Rajkumar-Marvell <54936542+rajkumar38@users.noreply.github.com> Date: Thu, 7 Apr 2022 20:02:31 +0530 Subject: [PATCH 057/251] [Marvell] Update armhf sai deb (#10403) 1) DHCP trap for IPV4 and IPV6 2) Interface ACL's (Ingress Everflow support) 3) 1G Autoneg support Signed-off-by: Rajkumar Pennadam Ramamoorthy --- platform/marvell-armhf/sai.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform/marvell-armhf/sai.mk b/platform/marvell-armhf/sai.mk index 4df1b2c5b6f6..4ecfdce244a1 100644 --- a/platform/marvell-armhf/sai.mk +++ b/platform/marvell-armhf/sai.mk @@ -1,6 +1,6 @@ # Marvell SAI -export MRVL_SAI_VERSION = 1.9.1-1 +export MRVL_SAI_VERSION = 1.9.1-2 export MRVL_SAI = mrvllibsai_$(MRVL_SAI_VERSION)_$(PLATFORM_ARCH).deb $(MRVL_SAI)_SRC_PATH = $(PLATFORM_PATH)/sai From e348dff77a7879b8fe08114cdb16f37632a7d39e Mon Sep 17 00:00:00 2001 From: dflynn-Nokia <60479697+dflynn-Nokia@users.noreply.github.com> Date: Thu, 7 Apr 2022 10:44:31 -0400 Subject: [PATCH 058/251] [Nokia ixs7215] Platform API temperature threshold value fixes (#10372) Incorrect high-threshold and critical-high-threshold values are displayed for some of the temperature sensors. This commit fixes that. --- .../7215/sonic_platform/test/test-thermal.py | 2 +- .../7215/sonic_platform/thermal.py | 20 +++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/platform/marvell-armhf/sonic-platform-nokia/7215/sonic_platform/test/test-thermal.py b/platform/marvell-armhf/sonic-platform-nokia/7215/sonic_platform/test/test-thermal.py index 91ef75d8f9a7..95cc8e89f0d8 100755 --- a/platform/marvell-armhf/sonic-platform-nokia/7215/sonic_platform/test/test-thermal.py +++ b/platform/marvell-armhf/sonic-platform-nokia/7215/sonic_platform/test/test-thermal.py @@ -30,7 +30,7 @@ def main(): high_thresh = "NA" print(" Low Threshold(C): {}, High Threshold(C): {}".format(low_thresh, - high_thresh)) + high_thresh)) try: crit_low_thresh = thermal.get_low_critical_threshold() diff --git a/platform/marvell-armhf/sonic-platform-nokia/7215/sonic_platform/thermal.py b/platform/marvell-armhf/sonic-platform-nokia/7215/sonic_platform/thermal.py index c7e408c3f3e9..444ca5b137d7 100644 --- a/platform/marvell-armhf/sonic-platform-nokia/7215/sonic_platform/thermal.py +++ b/platform/marvell-armhf/sonic-platform-nokia/7215/sonic_platform/thermal.py @@ -44,8 +44,8 @@ def __init__(self, thermal_index): if self.index < 3: i2c_path = self.I2C_CLASS_DIR + self.I2C_DEV_MAPPING[self.index - 1][0] sensor_index = self.I2C_DEV_MAPPING[self.index - 1][1] - sensor_max_suffix = "max" - sensor_crit_suffix = None + sensor_high_suffix = "max" + sensor_high_crit_suffix = None hwmon_node = os.listdir(i2c_path)[0] self.SENSOR_DIR = i2c_path + hwmon_node + '/' @@ -53,8 +53,8 @@ def __init__(self, thermal_index): elif self.index < 6: i2c_path = self.I2C_CLASS_DIR + self.I2C_DEV_MAPPING[self.index - 1][0] sensor_index = self.I2C_DEV_MAPPING[self.index - 1][1] - sensor_max_suffix = "max" - sensor_crit_suffix = "crit" + sensor_high_suffix = "crit" + sensor_high_crit_suffix = None hwmon_node = os.listdir(i2c_path)[0] self.SENSOR_DIR = i2c_path + hwmon_node + '/' @@ -62,8 +62,8 @@ def __init__(self, thermal_index): else: dev_path = self.HWMON_CLASS_DIR sensor_index = 1 - sensor_max_suffix = None - sensor_crit_suffix = None + sensor_high_suffix = None + sensor_high_crit_suffix = None hwmon_node = os.listdir(dev_path)[0] self.SENSOR_DIR = dev_path + hwmon_node + '/' @@ -72,16 +72,16 @@ def __init__(self, thermal_index): + "temp{}_input".format(sensor_index) # sysfs file for high threshold value if supported for this sensor - if sensor_max_suffix: + if sensor_high_suffix: self.thermal_high_threshold_file = self.SENSOR_DIR \ - + "temp{}_{}".format(sensor_index, sensor_max_suffix) + + "temp{}_{}".format(sensor_index, sensor_high_suffix) else: self.thermal_high_threshold_file = None # sysfs file for crit high threshold value if supported for this sensor - if sensor_crit_suffix: + if sensor_high_crit_suffix: self.thermal_high_crit_threshold_file = self.SENSOR_DIR \ - + "temp{}_{}".format(sensor_index, sensor_crit_suffix) + + "temp{}_{}".format(sensor_index, sensor_high_crit_suffix) else: self.thermal_high_crit_threshold_file = None From f311947cfa5f90b77a380e37e7924b29716d5866 Mon Sep 17 00:00:00 2001 From: saksarav-nokia Date: Thu, 7 Apr 2022 17:34:32 -0400 Subject: [PATCH 059/251] [Nokia][device] Updated the BCM config file to reduce the CPU usage (#10485) Signed-off-by: Sakthivadivu Saravanaraj --- .../Nokia-IXR7250E-36x400G/0/jr2cp-nokia-18x400g-config.bcm | 3 ++- .../Nokia-IXR7250E-36x400G/1/jr2cp-nokia-18x400g-config.bcm | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/device/nokia/x86_64-nokia_ixr7250e_36x400g-r0/Nokia-IXR7250E-36x400G/0/jr2cp-nokia-18x400g-config.bcm b/device/nokia/x86_64-nokia_ixr7250e_36x400g-r0/Nokia-IXR7250E-36x400G/0/jr2cp-nokia-18x400g-config.bcm index 2ede5ab6d0d0..bbafccdc377e 100644 --- a/device/nokia/x86_64-nokia_ixr7250e_36x400g-r0/Nokia-IXR7250E-36x400G/0/jr2cp-nokia-18x400g-config.bcm +++ b/device/nokia/x86_64-nokia_ixr7250e_36x400g-r0/Nokia-IXR7250E-36x400G/0/jr2cp-nokia-18x400g-config.bcm @@ -1263,8 +1263,9 @@ phy_tx_polarity_flip_phy143.BCM8885X=0 polled_irq_delay.BCM8885X=5 -polled_irq_mode.BCM8885X=1 +polled_irq_mode.BCM8885X=0 port_fec_fabric.BCM8885X=7 +bcm_stat_interval.BCM8885X=1000000 port_init_cl72_1=0 diff --git a/device/nokia/x86_64-nokia_ixr7250e_36x400g-r0/Nokia-IXR7250E-36x400G/1/jr2cp-nokia-18x400g-config.bcm b/device/nokia/x86_64-nokia_ixr7250e_36x400g-r0/Nokia-IXR7250E-36x400G/1/jr2cp-nokia-18x400g-config.bcm index fd96c3ac4368..ce7f77de5bb2 100644 --- a/device/nokia/x86_64-nokia_ixr7250e_36x400g-r0/Nokia-IXR7250E-36x400G/1/jr2cp-nokia-18x400g-config.bcm +++ b/device/nokia/x86_64-nokia_ixr7250e_36x400g-r0/Nokia-IXR7250E-36x400G/1/jr2cp-nokia-18x400g-config.bcm @@ -1263,8 +1263,9 @@ phy_tx_polarity_flip_phy143.BCM8885X=0 polled_irq_delay.BCM8885X=5 -polled_irq_mode.BCM8885X=1 +polled_irq_mode.BCM8885X=0 port_fec_fabric.BCM8885X=7 +bcm_stat_interval.BCM8885X=1000000 port_init_cl72_1=0 From 47db2b2993b81b491b8150bb92b2ebdd579da4c8 Mon Sep 17 00:00:00 2001 From: Alexander Allen Date: Thu, 7 Apr 2022 17:56:52 -0400 Subject: [PATCH 060/251] [hostcfgd] Move hostcfgd back to ConfigDBConnector for subscribing to updates (#10168) #### Why I did it As of https://github.com/Azure/sonic-swss-common/pull/587 the blackout issue in ConfigDBConnector has been resolved. In the past hostcfgd was refactored to use SubscriberStateTable instead of ConfigDBConnector for subscribing to CONFIG_DB updates due to a "blackout" period between hostcfgd pulling the table data down and running the initialization and actually calling `listen()` on ConfigDBConnector which starts the update handler. However SusbscriberStateTable creates many file descriptors against the redis DB which is inefficient compared to ConfigDBConnector which only opens a single file descriptor. With the new fix to ConfigDBConnector I refactored hostcfgd to take advantage of these updates. #### How I did it Replaced SubscriberStateTable with ConfigDBConnector #### How to verify it The functionality of hostcfgd can be verified by booting the switch and verifying that NTP is properly configured. To check the blackout period you can add a delay in the hostcfgd `load()` function and also add a print statement before and after the load so you know when it occurs. Then restart hostcfgd and wait for the load to start, then during the load push a partial change to the FEATURE table and verify that the change is picked up and the feature is enabled after the load period finishes. #### Description for the changelog [hostcfgd] Move hostcfgd back to ConfigDBConnector for subscribing to updates --- src/sonic-host-services/scripts/hostcfgd | 175 +++++++++--------- .../tests/common/mock_configdb.py | 74 +------- .../tests/hostcfgd/hostcfgd_radius_test.py | 6 +- .../tests/hostcfgd/hostcfgd_tacacs_test.py | 5 +- .../tests/hostcfgd/hostcfgd_test.py | 16 +- 5 files changed, 100 insertions(+), 176 deletions(-) diff --git a/src/sonic-host-services/scripts/hostcfgd b/src/sonic-host-services/scripts/hostcfgd index 5b6693fbcdf7..7f8f4be0b2e7 100755 --- a/src/sonic-host-services/scripts/hostcfgd +++ b/src/sonic-host-services/scripts/hostcfgd @@ -11,8 +11,7 @@ import signal import jinja2 from sonic_py_common import device_info -from swsscommon.swsscommon import SubscriberStateTable, DBConnector, Select -from swsscommon.swsscommon import ConfigDBConnector, TableConsumable, Table +from swsscommon.swsscommon import ConfigDBConnector, DBConnector, Table # FILE PAM_AUTH_CONF = "/etc/pam.d/common-auth-sonic" @@ -207,21 +206,23 @@ class FeatureHandler(object): else: self.resync_feature_state(self._cached_config[feature_name]) - def sync_state_field(self): + def sync_state_field(self, feature_table): """ Summary: Updates the state field in the FEATURE|* tables as the state field might have to be rendered based on DEVICE_METADATA table """ - feature_table = self._config_db.get_table('FEATURE') for feature_name in feature_table.keys(): if not feature_name: syslog.syslog(syslog.LOG_WARNING, "Feature is None") continue feature = Feature(feature_name, feature_table[feature_name], self._device_config) - if not feature.compare_state(feature_name, feature_table.get(feature_name, {})): - self.resync_feature_state(feature) + + self._cached_config.setdefault(feature_name, feature) + self.update_feature_auto_restart(feature, feature_name) + self.update_feature_state(feature) + self.resync_feature_state(feature) def update_feature_state(self, feature): cached_feature = self._cached_config[feature.name] @@ -406,6 +407,10 @@ class Iptables(object): ''' return (isinstance(key, tuple)) + def load(self, lpbk_table): + for row in lpbk_table: + self.iptables_handler(row, lpbk_table[row]) + def command(self, chain, ip, ver, op): cmd = 'iptables' if ver == '4' else 'ip6tables' cmd += ' -t mangle --{} {} -p tcp --tcp-flags SYN SYN'.format(op, chain) @@ -890,15 +895,13 @@ class KdumpCfg(object): memory = self.kdump_defaults["memory"] if data.get("memory") is not None: memory = data.get("memory") - if data.get("memory") is not None: - run_cmd("sonic-kdump-config --memory " + memory) + run_cmd("sonic-kdump-config --memory " + memory) # Num dumps num_dumps = self.kdump_defaults["num_dumps"] if data.get("num_dumps") is not None: num_dumps = data.get("num_dumps") - if data.get("num_dumps") is not None: - run_cmd("sonic-kdump-config --num_dumps " + num_dumps) + run_cmd("sonic-kdump-config --num_dumps " + num_dumps) class NtpCfg(object): """ @@ -912,6 +915,15 @@ class NtpCfg(object): self.ntp_global = {} self.ntp_servers = set() + def load(self, ntp_global_conf, ntp_server_conf): + syslog.syslog(syslog.LOG_INFO, "NtpCfg load ...") + + for row in ntp_global_conf: + self.ntp_global_update(row, ntp_global_conf[row], is_load=True) + + # Force reload on init + self.ntp_server_update(0, None, is_load=True) + def handle_ntp_source_intf_chg(self, intf_name): # if no ntp server configured, do nothing if not self.ntp_servers: @@ -925,7 +937,7 @@ class NtpCfg(object): cmd = 'systemctl restart ntp-config' run_cmd(cmd) - def ntp_global_update(self, key, data): + def ntp_global_update(self, key, data, is_load=False): syslog.syslog(syslog.LOG_INFO, 'NTP GLOBAL Update') orig_src = self.ntp_global.get('src_intf', '') orig_src_set = set(orig_src.split(";")) @@ -938,6 +950,9 @@ class NtpCfg(object): # Update the Local Cache self.ntp_global = data + # If initial load don't restart daemon + if is_load: return + # check if ntp server configured, if not, do nothing if not self.ntp_servers: syslog.syslog(syslog.LOG_INFO, "No ntp server when global config change, do nothing") @@ -954,16 +969,19 @@ class NtpCfg(object): cmd = 'service ntp restart' run_cmd(cmd) - def ntp_server_update(self, key, op): + def ntp_server_update(self, key, op, is_load=False): syslog.syslog(syslog.LOG_INFO, 'ntp server update key {}'.format(key)) restart_config = False - if op == "SET" and key not in self.ntp_servers: - restart_config = True - self.ntp_servers.add(key) - elif op == "DEL" and key in self.ntp_servers: + if not is_load: + if op == "SET" and key not in self.ntp_servers: + restart_config = True + self.ntp_servers.add(key) + elif op == "DEL" and key in self.ntp_servers: + restart_config = True + self.ntp_servers.remove(key) + else: restart_config = True - self.ntp_servers.remove(key) if restart_config: cmd = 'systemctl restart ntp-config' @@ -1034,31 +1052,24 @@ class HostConfigDaemon: # before moving forward self.config_db = ConfigDBConnector() self.config_db.connect(wait_for_init=True, retry_on=True) - self.dbconn = DBConnector(CFG_DB, 0) - self.state_db_conn = DBConnector(STATE_DB, 0) - self.selector = Select() syslog.syslog(syslog.LOG_INFO, 'ConfigDB connect success') - self.select = Select() - self.callbacks = dict() - self.subscriber_map = dict() - - feature_state_table = Table(self.state_db_conn, 'FEATURE') - # Load DEVICE metadata configurations self.device_config = {} self.device_config['DEVICE_METADATA'] = self.config_db.get_table('DEVICE_METADATA') + # Load feature state table + self.state_db_conn = DBConnector(STATE_DB, 0) + feature_state_table = Table(self.state_db_conn, 'FEATURE') + # Initialize KDump Config and set the config to default if nothing is provided self.kdumpCfg = KdumpCfg(self.config_db) - self.kdumpCfg.load(self.config_db.get_table('KDUMP')) # Initialize IpTables self.iptables = Iptables() # Intialize Feature Handler self.feature_handler = FeatureHandler(self.config_db, feature_state_table, self.device_config) - self.feature_handler.sync_state_field() # Initialize Ntp Config Handler self.ntpcfg = NtpCfg() @@ -1073,21 +1084,28 @@ class HostConfigDaemon: self.pamLimitsCfg = PamLimitsCfg(self.config_db) self.pamLimitsCfg.update_config_file() - def load(self): - aaa = self.config_db.get_table('AAA') - tacacs_global = self.config_db.get_table('TACPLUS') - tacacs_server = self.config_db.get_table('TACPLUS_SERVER') - radius_global = self.config_db.get_table('RADIUS') - radius_server = self.config_db.get_table('RADIUS_SERVER') + def load(self, init_data): + features = init_data['FEATURE'] + aaa = init_data['AAA'] + tacacs_global = init_data['TACPLUS'] + tacacs_server = init_data['TACPLUS_SERVER'] + radius_global = init_data['RADIUS'] + radius_server = init_data['RADIUS_SERVER'] + lpbk_table = init_data['LOOPBACK_INTERFACE'] + ntp_server = init_data['NTP_SERVER'] + ntp_global = init_data['NTP'] + kdump = init_data['KDUMP'] + + self.feature_handler.sync_state_field(features) self.aaacfg.load(aaa, tacacs_global, tacacs_server, radius_global, radius_server) + self.iptables.load(lpbk_table) + self.ntpcfg.load(ntp_global, ntp_server) + self.kdumpCfg.load(kdump) - try: - dev_meta = self.config_db.get_table('DEVICE_METADATA') - if 'localhost' in dev_meta: - if 'hostname' in dev_meta['localhost']: - self.hostname_cache = dev_meta['localhost']['hostname'] - except Exception as e: - pass + dev_meta = self.config_db.get_table('DEVICE_METADATA') + if 'localhost' in dev_meta: + if 'hostname' in dev_meta['localhost']: + self.hostname_cache = dev_meta['localhost']['hostname'] # Update AAA with the hostname self.aaacfg.hostname_update(self.hostname_cache) @@ -1181,40 +1199,38 @@ class HostConfigDaemon: systemctl_cmd = "sudo systemctl is-system-running --wait --quiet" subprocess.call(systemctl_cmd, shell=True) - def subscribe(self, table, callback, pri): - try: - if table not in self.callbacks: - self.callbacks[table] = [] - subscriber = SubscriberStateTable(self.dbconn, table, TableConsumable.DEFAULT_POP_BATCH_SIZE, pri) - self.selector.addSelectable(subscriber) # Add to the Selector - self.subscriber_map[subscriber.getFd()] = (subscriber, table) # Maintain a mapping b/w subscriber & fd + def register_callbacks(self): - self.callbacks[table].append(callback) - except Exception as err: - syslog.syslog(syslog.LOG_ERR, "Subscribe to table {} failed with error {}".format(table, err)) + def make_callback(func): + def callback(table, key, data): + if data is None: + op = "DEL" + else: + op = "SET" + return func(key, op, data) + return callback - def register_callbacks(self): - self.subscribe('KDUMP', lambda table, key, op, data: self.kdump_handler(key, op, data), HOSTCFGD_MAX_PRI) + self.config_db.subscribe('KDUMP', make_callback(self.kdump_handler)) # Handle FEATURE updates before other tables - self.subscribe('FEATURE', lambda table, key, op, data: self.feature_handler.handle(key, op, data), HOSTCFGD_MAX_PRI-1) + self.config_db.subscribe('FEATURE', make_callback(self.feature_handler.handle)) # Handle AAA, TACACS and RADIUS related tables - self.subscribe('AAA', lambda table, key, op, data: self.aaa_handler(key, op, data), HOSTCFGD_MAX_PRI-2) - self.subscribe('TACPLUS', lambda table, key, op, data: self.tacacs_global_handler(key, op, data), HOSTCFGD_MAX_PRI-2) - self.subscribe('TACPLUS_SERVER', lambda table, key, op, data: self.tacacs_server_handler(key, op, data), HOSTCFGD_MAX_PRI-2) - self.subscribe('RADIUS', lambda table, key, op, data: self.radius_global_handler(key, op, data), HOSTCFGD_MAX_PRI-2) - self.subscribe('RADIUS_SERVER', lambda table, key, op, data: self.radius_server_handler(key, op, data), HOSTCFGD_MAX_PRI-2) + self.config_db.subscribe('AAA', make_callback(self.aaa_handler)) + self.config_db.subscribe('TACPLUS', make_callback(self.tacacs_global_handler)) + self.config_db.subscribe('TACPLUS_SERVER', make_callback(self.tacacs_server_handler)) + self.config_db.subscribe('RADIUS', make_callback(self.radius_global_handler)) + self.config_db.subscribe('RADIUS_SERVER', make_callback(self.radius_server_handler)) # Handle IPTables configuration - self.subscribe('LOOPBACK_INTERFACE', lambda table, key, op, data: self.lpbk_handler(key, op, data), HOSTCFGD_MAX_PRI-3) + self.config_db.subscribe('LOOPBACK_INTERFACE', make_callback(self.lpbk_handler)) # Handle NTP & NTP_SERVER updates - self.subscribe('NTP', lambda table, key, op, data: self.ntp_global_handler(key, op, data), HOSTCFGD_MAX_PRI-4) - self.subscribe('NTP_SERVER', lambda table, key, op, data: self.ntp_server_handler(key, op, data), HOSTCFGD_MAX_PRI-4) + self.config_db.subscribe('NTP', make_callback(self.ntp_global_handler)) + self.config_db.subscribe('NTP_SERVER', make_callback(self.ntp_server_handler)) # Handle updates to src intf changes in radius - self.subscribe('MGMT_INTERFACE', lambda table, key, op, data: self.mgmt_intf_handler(key, op, data), HOSTCFGD_MAX_PRI-5) - self.subscribe('VLAN_INTERFACE', lambda table, key, op, data: self.vlan_intf_handler(key, op, data), HOSTCFGD_MAX_PRI-5) - self.subscribe('VLAN_SUB_INTERFACE', lambda table, key, op, data: self.vlan_sub_intf_handler(key, op, data), HOSTCFGD_MAX_PRI-5) - self.subscribe('PORTCHANNEL_INTERFACE', lambda table, key, op, data: self.portchannel_intf_handler(key, op, data), HOSTCFGD_MAX_PRI-5) - self.subscribe('INTERFACE', lambda table, key, op, data: self.phy_intf_handler(key, op, data), HOSTCFGD_MAX_PRI-5) - + self.config_db.subscribe('MGMT_INTERFACE', make_callback(self.mgmt_intf_handler)) + self.config_db.subscribe('VLAN_INTERFACE', make_callback(self.vlan_intf_handler)) + self.config_db.subscribe('VLAN_SUB_INTERFACE', make_callback(self.vlan_sub_intf_handler)) + self.config_db.subscribe('PORTCHANNEL_INTERFACE', make_callback(self.portchannel_intf_handler)) + self.config_db.subscribe('INTERFACE', make_callback(self.phy_intf_handler)) + syslog.syslog(syslog.LOG_INFO, "Waiting for systemctl to finish initialization") self.wait_till_system_init_done() @@ -1222,27 +1238,7 @@ class HostConfigDaemon: "systemctl has finished initialization -- proceeding ...") def start(self): - while True: - state, selectable_ = self.selector.select(DEFAULT_SELECT_TIMEOUT) - if state == self.selector.TIMEOUT: - continue - elif state == self.selector.ERROR: - syslog.syslog(syslog.LOG_ERR, - "error returned by select") - continue - - fd = selectable_.getFd() - # Get the Corresponding subscriber & table - subscriber, table = self.subscriber_map.get(fd, (None, "")) - if not subscriber: - syslog.syslog(syslog.LOG_ERR, - "No Subscriber object found for fd: {}, subscriber map: {}".format(fd, subscriber_map)) - continue - key, op, fvs = subscriber.pop() - # Get the registered callback - cbs = self.callbacks.get(table, None) - for callback in cbs: - callback(table, key, op, dict(fvs)) + self.config_db.listen(init_data_handler=self.load) def main(): @@ -1251,7 +1247,6 @@ def main(): signal.signal(signal.SIGHUP, signal_handler) daemon = HostConfigDaemon() daemon.register_callbacks() - daemon.load() daemon.start() if __name__ == "__main__": diff --git a/src/sonic-host-services/tests/common/mock_configdb.py b/src/sonic-host-services/tests/common/mock_configdb.py index 138869dc3bee..f0b12b11abf9 100644 --- a/src/sonic-host-services/tests/common/mock_configdb.py +++ b/src/sonic-host-services/tests/common/mock_configdb.py @@ -4,9 +4,10 @@ class MockConfigDb(object): """ STATE_DB = None CONFIG_DB = None + event_queue = [] def __init__(self, **kwargs): - pass + self.handlers = {} @staticmethod def set_config_db(test_config_db): @@ -44,73 +45,12 @@ def set_entry(self, key, field, data): def get_table(self, table_name): return MockConfigDb.CONFIG_DB[table_name] + def subscribe(self, table_name, callback): + self.handlers[table_name] = callback -class MockSelect(): - - event_queue = [] - - @staticmethod - def set_event_queue(Q): - MockSelect.event_queue = Q - - @staticmethod - def get_event_queue(): - return MockSelect.event_queue - - @staticmethod - def reset_event_queue(): - MockSelect.event_queue = [] - - def __init__(self): - self.sub_map = {} - self.TIMEOUT = "TIMEOUT" - self.ERROR = "ERROR" - - def addSelectable(self, subscriber): - self.sub_map[subscriber.table] = subscriber - - def select(self, TIMEOUT): - if not MockSelect.get_event_queue(): - raise TimeoutError - table, key = MockSelect.get_event_queue().pop(0) - self.sub_map[table].nextKey(key) - return "OBJECT", self.sub_map[table] - - -class MockSubscriberStateTable(): - - FD_INIT = 0 - - @staticmethod - def generate_fd(): - curr = MockSubscriberStateTable.FD_INIT - MockSubscriberStateTable.FD_INIT = curr + 1 - return curr - - @staticmethod - def reset_fd(): - MockSubscriberStateTable.FD_INIT = 0 - - def __init__(self, conn, table, pop, pri): - self.fd = MockSubscriberStateTable.generate_fd() - self.next_key = '' - self.table = table - - def getFd(self): - return self.fd - - def nextKey(self, key): - self.next_key = key - - def pop(self): - table = MockConfigDb.CONFIG_DB.get(self.table, {}) - if self.next_key not in table: - op = "DEL" - fvs = {} - else: - op = "SET" - fvs = table.get(self.next_key, {}) - return self.next_key, op, fvs + def listen(self, init_data_handler=None): + for e in MockConfigDb.event_queue: + self.handlers[e[0]](e[0], e[1], self.get_entry(e[0], e[1])) class MockDBConnector(): diff --git a/src/sonic-host-services/tests/hostcfgd/hostcfgd_radius_test.py b/src/sonic-host-services/tests/hostcfgd/hostcfgd_radius_test.py index 9738f16852e5..c08cd1829add 100644 --- a/src/sonic-host-services/tests/hostcfgd/hostcfgd_radius_test.py +++ b/src/sonic-host-services/tests/hostcfgd/hostcfgd_radius_test.py @@ -10,8 +10,7 @@ from parameterized import parameterized from unittest import TestCase, mock from tests.hostcfgd.test_radius_vectors import HOSTCFGD_TEST_RADIUS_VECTOR -from tests.common.mock_configdb import MockConfigDb, MockSubscriberStateTable -from tests.common.mock_configdb import MockSelect, MockDBConnector +from tests.common.mock_configdb import MockConfigDb, MockDBConnector test_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) @@ -33,12 +32,9 @@ # Mock swsscommon classes hostcfgd.ConfigDBConnector = MockConfigDb -hostcfgd.SubscriberStateTable = MockSubscriberStateTable -hostcfgd.Select = MockSelect hostcfgd.DBConnector = MockDBConnector hostcfgd.Table = mock.Mock() - class TestHostcfgdRADIUS(TestCase): """ Test hostcfd daemon - RADIUS diff --git a/src/sonic-host-services/tests/hostcfgd/hostcfgd_tacacs_test.py b/src/sonic-host-services/tests/hostcfgd/hostcfgd_tacacs_test.py index 18bf5c17e6c2..a6478c08dc0d 100644 --- a/src/sonic-host-services/tests/hostcfgd/hostcfgd_tacacs_test.py +++ b/src/sonic-host-services/tests/hostcfgd/hostcfgd_tacacs_test.py @@ -10,8 +10,7 @@ from parameterized import parameterized from unittest import TestCase, mock from tests.hostcfgd.test_tacacs_vectors import HOSTCFGD_TEST_TACACS_VECTOR -from tests.common.mock_configdb import MockConfigDb, MockSubscriberStateTable -from tests.common.mock_configdb import MockSelect, MockDBConnector +from tests.common.mock_configdb import MockConfigDb, MockDBConnector test_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) modules_path = os.path.dirname(test_path) @@ -32,8 +31,6 @@ # Mock swsscommon classes hostcfgd.ConfigDBConnector = MockConfigDb -hostcfgd.SubscriberStateTable = MockSubscriberStateTable -hostcfgd.Select = MockSelect hostcfgd.DBConnector = MockDBConnector hostcfgd.Table = mock.Mock() diff --git a/src/sonic-host-services/tests/hostcfgd/hostcfgd_test.py b/src/sonic-host-services/tests/hostcfgd/hostcfgd_test.py index db9a35075a02..28d4f6f8a724 100644 --- a/src/sonic-host-services/tests/hostcfgd/hostcfgd_test.py +++ b/src/sonic-host-services/tests/hostcfgd/hostcfgd_test.py @@ -8,8 +8,7 @@ from unittest import TestCase, mock from .test_vectors import HOSTCFGD_TEST_VECTOR, HOSTCFG_DAEMON_CFG_DB -from tests.common.mock_configdb import MockConfigDb, MockSubscriberStateTable -from tests.common.mock_configdb import MockSelect, MockDBConnector +from tests.common.mock_configdb import MockConfigDb, MockDBConnector from pyfakefs.fake_filesystem_unittest import patchfs from deepdiff import DeepDiff @@ -24,8 +23,6 @@ hostcfgd_path = os.path.join(scripts_path, 'hostcfgd') hostcfgd = load_module_from_source('hostcfgd', hostcfgd_path) hostcfgd.ConfigDBConnector = MockConfigDb -hostcfgd.SubscriberStateTable = MockSubscriberStateTable -hostcfgd.Select = MockSelect hostcfgd.DBConnector = MockDBConnector hostcfgd.Table = mock.Mock() @@ -122,8 +119,8 @@ def test_hostcfgd_feature_handler(self, test_name, test_data, fs): feature_handler = hostcfgd.FeatureHandler(MockConfigDb(), feature_state_table_mock, device_config) # sync the state field and Handle Feature Updates - feature_handler.sync_state_field() features = MockConfigDb.CONFIG_DB['FEATURE'] + feature_handler.sync_state_field(features) for key, fvs in features.items(): feature_handler.handle(key, 'SET', fvs) @@ -227,7 +224,7 @@ def tearDown(self): @patchfs def test_feature_events(self, fs): fs.create_dir(hostcfgd.FeatureHandler.SYSTEMD_SYSTEM_DIR) - MockSelect.event_queue = [('FEATURE', 'dhcp_relay'), + MockConfigDb.event_queue = [('FEATURE', 'dhcp_relay'), ('FEATURE', 'mux'), ('FEATURE', 'telemetry')] daemon = hostcfgd.HostConfigDaemon() @@ -258,7 +255,7 @@ def test_feature_events(self, fs): # Change the state to disabled MockConfigDb.CONFIG_DB['FEATURE']['telemetry']['state'] = 'disabled' - MockSelect.event_queue = [('FEATURE', 'telemetry')] + MockConfigDb.event_queue = [('FEATURE', 'telemetry')] try: daemon.start() except TimeoutError: @@ -273,7 +270,7 @@ def test_feature_events(self, fs): def test_loopback_events(self): MockConfigDb.set_config_db(HOSTCFG_DAEMON_CFG_DB) - MockSelect.event_queue = [('NTP', 'global'), + MockConfigDb.event_queue = [('NTP', 'global'), ('NTP_SERVER', '0.debian.pool.ntp.org'), ('LOOPBACK_INTERFACE', 'Loopback0|10.184.8.233/32')] daemon = hostcfgd.HostConfigDaemon() @@ -296,8 +293,7 @@ def test_kdump_event(self): MockConfigDb.set_config_db(HOSTCFG_DAEMON_CFG_DB) daemon = hostcfgd.HostConfigDaemon() daemon.register_callbacks() - assert MockConfigDb.CONFIG_DB['KDUMP']['config'] - MockSelect.event_queue = [('KDUMP', 'config')] + MockConfigDb.event_queue = [('KDUMP', 'config')] with mock.patch('hostcfgd.subprocess') as mocked_subprocess: popen_mock = mock.Mock() attrs = {'communicate.return_value': ('output', 'error')} From 39e1e92c08ea43c374040bba8b83b7292101ba7e Mon Sep 17 00:00:00 2001 From: ganglv <88995770+ganglyu@users.noreply.github.com> Date: Fri, 8 Apr 2022 07:48:01 +0800 Subject: [PATCH 061/251] [yang]: Add support for BmcMgmtToRRouter (#10488) Why I did it minigraph parser has introduced new type. How I did it Update yang models to support BmcMgmtToRRouter. How to verify it Run unit test for sonic-yang-models Signed-off-by: Gang Lv ganglv@microsoft.com --- .../tests/yang_model_tests/tests/device_metadata.json | 3 +++ .../yang_model_tests/tests_config/device_metadata.json | 10 ++++++++++ .../yang-models/sonic-device_metadata.yang | 2 +- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests/device_metadata.json b/src/sonic-yang-models/tests/yang_model_tests/tests/device_metadata.json index 7f0ddd38496f..1c39661d056e 100644 --- a/src/sonic-yang-models/tests/yang_model_tests/tests/device_metadata.json +++ b/src/sonic-yang-models/tests/yang_model_tests/tests/device_metadata.json @@ -36,6 +36,9 @@ "DEVICE_METADATA_TYPE_CORRECT_PATTERN": { "desc": "DEVICE_METADATA correct value for Type field" }, + "DEVICE_METADATA_TYPE_BMC_MGMT_TOR_PATTERN": { + "desc": "DEVICE_METADATA value as BmcMgmtToRRouter for Type field" + }, "DEVICE_METADATA_TYPE_NOT_PROVISIONED_PATTERN": { "desc": "DEVICE_METADATA value as not-provisioned for Type field" }, diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests_config/device_metadata.json b/src/sonic-yang-models/tests/yang_model_tests/tests_config/device_metadata.json index a921e9ef41b2..687a745a24c6 100644 --- a/src/sonic-yang-models/tests/yang_model_tests/tests_config/device_metadata.json +++ b/src/sonic-yang-models/tests/yang_model_tests/tests_config/device_metadata.json @@ -54,6 +54,16 @@ } } }, + "DEVICE_METADATA_TYPE_BMC_MGMT_TOR_PATTERN": { + "sonic-device_metadata:sonic-device_metadata": { + "sonic-device_metadata:DEVICE_METADATA": { + "sonic-device_metadata:localhost": { + "bgp_asn": "65002", + "type": "BmcMgmtToRRouter" + } + } + } + }, "DEVICE_METADATA_TYPE_NOT_PROVISIONED_PATTERN": { "sonic-device_metadata:sonic-device_metadata": { "sonic-device_metadata:DEVICE_METADATA": { diff --git a/src/sonic-yang-models/yang-models/sonic-device_metadata.yang b/src/sonic-yang-models/yang-models/sonic-device_metadata.yang index a349a3eb9366..17241005861e 100644 --- a/src/sonic-yang-models/yang-models/sonic-device_metadata.yang +++ b/src/sonic-yang-models/yang-models/sonic-device_metadata.yang @@ -88,7 +88,7 @@ module sonic-device_metadata { leaf type { type string { length 1..255; - pattern "ToRRouter|LeafRouter|SpineChassisFrontendRouter|ChassisBackendRouter|ASIC|MgmtToRRouter|SpineRouter|BackEndToRRouter|BackEndLeafRouter|EPMS|MgmtTsToR|not-provisioned"; + pattern "ToRRouter|LeafRouter|SpineChassisFrontendRouter|ChassisBackendRouter|ASIC|MgmtToRRouter|SpineRouter|BackEndToRRouter|BackEndLeafRouter|EPMS|MgmtTsToR|BmcMgmtToRRouter|not-provisioned"; } } From 51e4e8068e369e74c5535de5db20d8eaaa176b74 Mon Sep 17 00:00:00 2001 From: Shilong Liu Date: Fri, 8 Apr 2022 10:46:59 +0800 Subject: [PATCH 062/251] [ci] Fix a docker-sonic-slave pipeline format in variable reference. (#10494) this issue affect official amd64 docker-sonic-slave build. --- .azure-pipelines/docker-sonic-slave.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.azure-pipelines/docker-sonic-slave.yml b/.azure-pipelines/docker-sonic-slave.yml index 3e1d2848277e..3ae3f88f0154 100644 --- a/.azure-pipelines/docker-sonic-slave.yml +++ b/.azure-pipelines/docker-sonic-slave.yml @@ -60,7 +60,7 @@ stages: - ${{ each dist in parameters.dists }}: - ${{ if endswith(variables['Build.DefinitionName'], dist) }}: - ${{ each arch in parameters.arches }}: - - ${{ if eq(variables[''Build.Reason], 'PullRequest') }}: + - ${{ if eq(variables['Build.Reason'], 'PullRequest') }}: - template: docker-sonic-slave-template.yml parameters: pool: sonicbld From f24a04fa3d2f2ba9993d53a4cb93fc1de87df431 Mon Sep 17 00:00:00 2001 From: xumia <59720581+xumia@users.noreply.github.com> Date: Fri, 8 Apr 2022 10:49:21 +0800 Subject: [PATCH 063/251] [Ci]: check if there is a sonic dirty version issue (#10445) Why I did it [Ci]: check if there is a sonic dirty version issue If there is a dirty version issue in PR build, the build will be failed. --- .azure-pipelines/azure-pipelines-build.yml | 1 + .azure-pipelines/check-dirty-version.yml | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) create mode 100644 .azure-pipelines/check-dirty-version.yml diff --git a/.azure-pipelines/azure-pipelines-build.yml b/.azure-pipelines/azure-pipelines-build.yml index 0b033e959300..c84c91441806 100644 --- a/.azure-pipelines/azure-pipelines-build.yml +++ b/.azure-pipelines/azure-pipelines-build.yml @@ -132,3 +132,4 @@ jobs: make $BUILD_OPTIONS target/sonic-$(GROUP_NAME).bin fi displayName: "Build sonic image" + - template: check-dirty-version.yml diff --git a/.azure-pipelines/check-dirty-version.yml b/.azure-pipelines/check-dirty-version.yml new file mode 100644 index 000000000000..5d3909bd280e --- /dev/null +++ b/.azure-pipelines/check-dirty-version.yml @@ -0,0 +1,16 @@ +steps: +- script: | + . functions.sh + SONIC_VERSION=$(sonic_get_version) + echo "SONIC_VERSION=$SONIC_VERSION" + if [[ "$SONIC_VERSION" == *dirty* ]]; then + # Print the detail dirty info + git status --untracked-files=no -s --ignore-submodules + + # Exit with error, if it is a PR build + if [ "$(Build.Reason)" == "PullRequest" ]; then + echo "Build failed for the dirty version: $SONIC_VERSION" 1>&2 + exit 1 + fi + fi + displayName: "Check the dirty version" From 330d11a128b02a6e80810c5920d790b9390d06e0 Mon Sep 17 00:00:00 2001 From: kellyyeh <42761586+kellyyeh@users.noreply.github.com> Date: Thu, 7 Apr 2022 21:49:42 -0700 Subject: [PATCH 064/251] Add EPMS and MgmtTsToR (#10478) --- dockers/docker-orchagent/switch.json.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dockers/docker-orchagent/switch.json.j2 b/dockers/docker-orchagent/switch.json.j2 index fa0ef4b44ed7..30ad703bc2cf 100644 --- a/dockers/docker-orchagent/switch.json.j2 +++ b/dockers/docker-orchagent/switch.json.j2 @@ -3,7 +3,7 @@ {% set hash_seed = 0 %} {% set hash_seed_offset = 0 %} {% if DEVICE_METADATA.localhost.type %} -{% if "ToRRouter" in DEVICE_METADATA.localhost.type %} +{% if "ToRRouter" in DEVICE_METADATA.localhost.type or DEVICE_METADATA.localhost.type in ["EPMS", "MgmtTsToR"] %} {% set hash_seed = 0 %} {% elif "LeafRouter" in DEVICE_METADATA.localhost.type %} {% set hash_seed = 10 %} From 487a29a43b37c8975b67c22b77b1dc9f50c2edff Mon Sep 17 00:00:00 2001 From: "Marty Y. Lok" <76118573+mlok-nokia@users.noreply.github.com> Date: Fri, 8 Apr 2022 13:33:02 -0400 Subject: [PATCH 065/251] Update Nokia sonic-platform submodule (#10437) b67d479 Fixed the sfp refactor issue 827c5a6 Added nokia_cmd command nokia_common grpc support for power down/up SFM module aeb7f56 Added the nokia cli commands for midplane c57d083 Fix the get_my_module issue and the thermal_infos exception issue. 0536293 Change the output of "show chassis module status" 63212d7 Enhance the help display for nokia_cmd command e8d2599 Fix the sonic_install_ndk_service script issue d52bdcf Add command nokia_cmd show sfm-eeprom support Signed-off-by: mlok --- platform/broadcom/sonic-platform-modules-nokia | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform/broadcom/sonic-platform-modules-nokia b/platform/broadcom/sonic-platform-modules-nokia index ded0344a6819..b67d4795e691 160000 --- a/platform/broadcom/sonic-platform-modules-nokia +++ b/platform/broadcom/sonic-platform-modules-nokia @@ -1 +1 @@ -Subproject commit ded0344a68197363c8c0eefff87b1be0a4591f87 +Subproject commit b67d4795e691cccd4321b196ba92942f5e8fe395 From 92efc01270675a3524a29a8e909fa1fdaeebed75 Mon Sep 17 00:00:00 2001 From: Ze Gan Date: Sat, 9 Apr 2022 13:26:40 +0800 Subject: [PATCH 066/251] [docker-ptf]: Upgrade scapy to 2.4.5 in docker-ptf (#10507) Why I did it Existing dataplane tests cannot be tested under MACsec environment due to the traffic under MACsec link is encrypted. So, I will override the dp_poll of ptf to MACsec dp_poll to decrypt the MACsec packets on injected ports (PR: Azure/sonic-mgmt#5490). MACsec decryption library depends on scapy 2.4.5. How I did it Upgrade scapy library to 2.4.5 by pip. How to verify it Check the scapy version in docker-ptf by python -c "import scapy; print(scapy.__version__)" 2.4.5 Signed-off-by: Ze Gan --- dockers/docker-ptf/Dockerfile.j2 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dockers/docker-ptf/Dockerfile.j2 b/dockers/docker-ptf/Dockerfile.j2 index d999d01e0026..21a96288a62f 100644 --- a/dockers/docker-ptf/Dockerfile.j2 +++ b/dockers/docker-ptf/Dockerfile.j2 @@ -119,7 +119,8 @@ RUN rm -rf /debs \ && pip install pyrasite \ && mkdir -p /opt \ && cd /opt \ - && wget https://raw.githubusercontent.com/p4lang/ptf/master/ptf_nn/ptf_nn_agent.py + && wget https://raw.githubusercontent.com/p4lang/ptf/master/ptf_nn/ptf_nn_agent.py \ + && pip install --upgrade --ignore-installed scapy==2.4.5 ## Adjust sshd settings RUN mkdir /var/run/sshd \ From 6581decf38377bbcb7eaaad7ebbf62a9c9c6b7c7 Mon Sep 17 00:00:00 2001 From: byu343 Date: Sat, 9 Apr 2022 10:46:09 -0700 Subject: [PATCH 067/251] [saibcm-modules]: Add linux_ngknet for trident4/tomahawk4 chips (#10517) Why I did it For trident4/tomahawk4, linux_ngknet.ko and linux_ngknetcb.ko have to be installed. Also, the kernel modules to load on such chips are different from existing ones, so we add an option is_ltsw_chip to determine the kernel modules to load. The option is_ltsw_chip is controlled by adding 'is_ltsw_chip=1' to platform_env.conf or not. How to verify it We verified that existing platforms still work after this change; and for platforms with trident4/tomahawk4, we can load the different kernel modules as expected after adding 'is_ltsw_chip=1' to platform_env.conf --- .../debian/opennsl-modules.init | 94 ++++++++++++------- .../debian/opennsl-modules.install | 2 + 2 files changed, 64 insertions(+), 32 deletions(-) diff --git a/platform/broadcom/saibcm-modules/debian/opennsl-modules.init b/platform/broadcom/saibcm-modules/debian/opennsl-modules.init index 09112f5331ce..62274eaa36aa 100755 --- a/platform/broadcom/saibcm-modules/debian/opennsl-modules.init +++ b/platform/broadcom/saibcm-modules/debian/opennsl-modules.init @@ -14,17 +14,27 @@ function create_devices() { - rm -f /dev/linux-knet-cb - rm -f /dev/linux-bcm-knet - rm -f /dev/linux-bcm-bde - rm -f /dev/linux-kernel-bde - rm -f /dev/linux_ngbde - - mknod /dev/linux_ngbde c 120 0 - mknod /dev/linux-knet-cb c 121 0 - mknod /dev/linux-bcm-knet c 122 0 - mknod /dev/linux-bcm-bde c 126 0 - mknod /dev/linux-kernel-bde c 127 0 + if [[ $is_ltsw_chip -eq 1 ]]; then + rm -f /dev/linux_ngbde + rm -f /dev/linux_ngknet + rm -f /dev/linux_ngknetcb + + mknod /dev/linux_ngbde c 120 0 + mknod /dev/linux_ngknet c 121 0 + mknod /dev/linux_ngknetcb c 122 0 + else + rm -f /dev/linux-knet-cb + rm -f /dev/linux-bcm-knet + rm -f /dev/linux-bcm-bde + rm -f /dev/linux-kernel-bde + rm -f /dev/linux_ngbde + + mknod /dev/linux_ngbde c 120 0 + mknod /dev/linux-knet-cb c 121 0 + mknod /dev/linux-bcm-knet c 122 0 + mknod /dev/linux-bcm-bde c 126 0 + mknod /dev/linux-kernel-bde c 127 0 + fi } # linux-kernel-bde debug=4 ==> Verbose level debug @@ -33,6 +43,44 @@ function create_devices() # Events(0x20) and Instance(0x4000) # level logs function load_kernel_modules() +{ + if [[ $is_ltsw_chip -eq 1 ]]; then + insmod /lib/modules/$(uname -r)/extra/psample.ko + modprobe linux_ngbde + modprobe linux_ngknet + modprobe linux_ngknetcb + else + modprobe linux-kernel-bde dmasize=$dmasize maxpayload=128 debug=4 dma_debug=1 usemsi=$usemsi + modprobe linux-user-bde + + # Using insmod with absolute path for psample to make sure bcm psample is loaded. + # There is a different psample.ko module getting created at net/psample/psample.ko + insmod /lib/modules/$(uname -r)/extra/psample.ko + + modprobe linux-bcm-knet use_rx_skb=1 rx_buffer_size=9238 debug=0x5020 default_mtu=9100 + modprobe linux-knet-cb + modprobe linux_ngbde + fi +} + +function remove_kernel_modules() +{ + if [[ $is_ltsw_chip -eq 1 ]]; then + rmmod linux_ngknetcb + rmmod linux_ngknet + rmmod linux_ngbde + rmmod psample.ko + else + rmmod psample.ko + rmmod linux-knet-cb + rmmod linux-bcm-knet + rmmod linux-user-bde + rmmod linux-kernel-bde + rmmod linux_ngbde + fi +} + +function load_platform_env() { . /host/machine.conf @@ -47,37 +95,18 @@ function load_kernel_modules() # Set the default configuration for dmasize and usemsi parameters dmasize=32M usemsi=0 + is_ltsw_chip=0 # Source the platform env file env_file="/usr/share/sonic/device/$platform/platform_env.conf" source $env_file - - modprobe linux-kernel-bde dmasize=$dmasize maxpayload=128 debug=4 dma_debug=1 usemsi=$usemsi - modprobe linux-user-bde - - # Using insmod with absolute path for psample to make sure bcm psample is loaded. - # There is a different psample.ko module getting created at net/psample/psample.ko - insmod /lib/modules/$(uname -r)/extra/psample.ko - - modprobe linux-bcm-knet use_rx_skb=1 rx_buffer_size=9238 debug=0x5020 default_mtu=9100 - modprobe linux-knet-cb - modprobe linux_ngbde -} - -function remove_kernel_modules() -{ - rmmod psample.ko - rmmod linux-knet-cb - rmmod linux-bcm-knet - rmmod linux-user-bde - rmmod linux-kernel-bde - rmmod linux_ngbde } case "$1" in start) echo -n "Load OpenNSL kernel modules... " + load_platform_env create_devices load_kernel_modules @@ -87,6 +116,7 @@ start) stop) echo -n "Unload OpenNSL kernel modules... " + load_platform_env remove_kernel_modules echo "done." diff --git a/platform/broadcom/saibcm-modules/debian/opennsl-modules.install b/platform/broadcom/saibcm-modules/debian/opennsl-modules.install index 59bf020cb22c..c739b6a5fc40 100644 --- a/platform/broadcom/saibcm-modules/debian/opennsl-modules.install +++ b/platform/broadcom/saibcm-modules/debian/opennsl-modules.install @@ -4,3 +4,5 @@ systems/linux/user/x86-smp_generic_64-2_6/linux-user-bde.ko lib/modules/5.10.0-8 systems/linux/user/x86-smp_generic_64-2_6/linux-knet-cb.ko lib/modules/5.10.0-8-2-amd64/extra systemd/opennsl-modules.service lib/systemd/system sdklt/linux/bde/linux_ngbde.ko lib/modules/5.10.0-8-2-amd64/extra +sdklt/linux/knet/linux_ngknet.ko lib/modules/5.10.0-8-2-amd64/extra +sdklt/linux/knetcb/linux_ngknetcb.ko lib/modules/5.10.0-8-2-amd64/extra From 7d9a346e1033e1b262fe6e785b78c67277cb4903 Mon Sep 17 00:00:00 2001 From: Kamil Cudnik Date: Sat, 9 Apr 2022 19:46:25 +0200 Subject: [PATCH 068/251] [submodule] Update sonic-sairedis (#10515) To add new acl priority attribute CL improvement --- src/sonic-sairedis | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-sairedis b/src/sonic-sairedis index 473c99067c81..2ddf41935696 160000 --- a/src/sonic-sairedis +++ b/src/sonic-sairedis @@ -1 +1 @@ -Subproject commit 473c99067c8132f8e5b3f8f2abd672b474b42b5a +Subproject commit 2ddf419356964e4e745d5851cd76b8818cbb149f From f7a6553933e1cb8b33c5ab8b4e340c587d6859b0 Mon Sep 17 00:00:00 2001 From: byu343 Date: Sat, 9 Apr 2022 10:47:18 -0700 Subject: [PATCH 069/251] [docker-syncd]: Add optional shm-size to syncd container (#10516) Why I did it In the bringup of tomahawk4/trident4, we realized that such chips need a larger size of /dev/shm in syncd container, so we added the option --shm-size to the docker create for syncd. The default value for shm-size is 64m; after this change, people can add SYNCD_SHM_SIZE=128m to platform_env.conf to change it to 128m. How to verify it We verified that after this change, 1) on existing platforms without platform_env.conf, the size of /dev/shm in syncd container (df -h | grep shm) is still the default 64M; 2) after we add SYNCD_SHM_SIZE=128m to platform_env.conf, /dev/shm in syncd becomes 128M. --- files/build_templates/docker_image_ctl.j2 | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/files/build_templates/docker_image_ctl.j2 b/files/build_templates/docker_image_ctl.j2 index b139eb570b3a..6d5024b716eb 100644 --- a/files/build_templates/docker_image_ctl.j2 +++ b/files/build_templates/docker_image_ctl.j2 @@ -233,6 +233,11 @@ start() { source $ASIC_CONF fi + PLATFORM_ENV_CONF=/usr/share/sonic/device/$PLATFORM/platform_env.conf + if [ -f "$PLATFORM_ENV_CONF" ]; then + source $PLATFORM_ENV_CONF + fi + {%- if docker_container_name == "database" %} # Don't mount HWSKU in {{docker_container_name}} container. HWSKU="" @@ -421,6 +426,7 @@ start() { {%- endif %} {%- if sonic_asic_platform == "broadcom" %} {%- if docker_container_name == "syncd" %} + --shm-size=${SYNCD_SHM_SIZE:-64m} \ -v /var/run/docker-syncd$DEV:/var/run/sswsyncd \ {%- endif %} {%- endif %} From 81ac482e5a58f627b1ff1c36b7cde50861c6f255 Mon Sep 17 00:00:00 2001 From: roman_savchuk Date: Sat, 9 Apr 2022 20:47:55 +0300 Subject: [PATCH 070/251] [BFN] updated SDE packages for BFN platforms (#10512) Updated SDE packages for bfn platform - introduced X6 profile - fixes for drop counters - fixes for platform part --- platform/barefoot/bfn-platform.mk | 2 +- platform/barefoot/bfn-sai.mk | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/platform/barefoot/bfn-platform.mk b/platform/barefoot/bfn-platform.mk index 7ea4cbcd5cb8..f12bbaa8a966 100644 --- a/platform/barefoot/bfn-platform.mk +++ b/platform/barefoot/bfn-platform.mk @@ -1,4 +1,4 @@ -BFN_PLATFORM = bfnplatform_20220127_sai_1.9.1_deb10.deb +BFN_PLATFORM = bfnplatform_20220408_sai_1.9.1_deb10.deb $(BFN_PLATFORM)_URL = "https://github.com/barefootnetworks/sonic-release-pkgs/raw/dev/$(BFN_PLATFORM)" SONIC_ONLINE_DEBS += $(BFN_PLATFORM) diff --git a/platform/barefoot/bfn-sai.mk b/platform/barefoot/bfn-sai.mk index c61abeb0ae5d..a0a1d2348dea 100644 --- a/platform/barefoot/bfn-sai.mk +++ b/platform/barefoot/bfn-sai.mk @@ -1,4 +1,4 @@ -BFN_SAI = bfnsdk_20220127_sai_1.9.1_deb10.deb +BFN_SAI = bfnsdk_20220408_sai_1.9.1_deb10.deb $(BFN_SAI)_URL = "https://github.com/barefootnetworks/sonic-release-pkgs/raw/dev/$(BFN_SAI)" $(BFN_SAI)_DEPENDS += $(LIBNL_GENL3_DEV) From 2116f62978cdf7e6fdbcde4875407aecc9d0024a Mon Sep 17 00:00:00 2001 From: brandonchuang Date: Sun, 10 Apr 2022 01:51:49 +0800 Subject: [PATCH 071/251] [AS9716-32D] Support i2c mux reset (#10492) Why I did it Prevent from i2c bus to get locked. How I did it Add sysfs driver to access ioport. Command to reset i2c mux: echo 1 > /sys/devices/platform/as9716_32d_ioport/i2c_mux_rst Command to bring i2c mux out of reset: echo 0 > /sys/devices/platform/as9716_32d_ioport/i2c_mux_rst Signed-off-by: Brandon Chuang --- .../pddf/pddf-device.json | 3 +- .../as9716-32d/modules/Makefile | 2 +- .../modules/accton_as9716_32d_ioport.c | 180 ++++++++++++++++++ 3 files changed, 183 insertions(+), 2 deletions(-) create mode 100644 platform/broadcom/sonic-platform-modules-accton/as9716-32d/modules/accton_as9716_32d_ioport.c diff --git a/device/accton/x86_64-accton_as9716_32d-r0/pddf/pddf-device.json b/device/accton/x86_64-accton_as9716_32d-r0/pddf/pddf-device.json index ce592286078c..6bde8eab7648 100644 --- a/device/accton/x86_64-accton_as9716_32d-r0/pddf/pddf-device.json +++ b/device/accton/x86_64-accton_as9716_32d-r0/pddf/pddf-device.json @@ -53,7 +53,8 @@ ], "custom_kos": [ - "pddf_custom_psu" + "pddf_custom_psu", + "accton_as9716_32d_ioport" ] }, diff --git a/platform/broadcom/sonic-platform-modules-accton/as9716-32d/modules/Makefile b/platform/broadcom/sonic-platform-modules-accton/as9716-32d/modules/Makefile index 6ac9d418a3d2..d3811d459f04 100755 --- a/platform/broadcom/sonic-platform-modules-accton/as9716-32d/modules/Makefile +++ b/platform/broadcom/sonic-platform-modules-accton/as9716-32d/modules/Makefile @@ -1,7 +1,7 @@ ifneq ($(KERNELRELEASE),) obj-m:= accton_as9716_32d_cpld.o accton_as9716_32d_fan.o \ accton_as9716_32d_leds.o accton_as9716_32d_psu.o accton_i2c_psu.o \ - pddf_custom_psu.o + pddf_custom_psu.o accton_as9716_32d_ioport.o CFLAGS_pddf_custom_psu.o := -I$(M)/../../../../pddf/i2c/modules/include KBUILD_EXTRA_SYMBOLS := $(M)/../../../../pddf/i2c/Module.symvers.PDDF diff --git a/platform/broadcom/sonic-platform-modules-accton/as9716-32d/modules/accton_as9716_32d_ioport.c b/platform/broadcom/sonic-platform-modules-accton/as9716-32d/modules/accton_as9716_32d_ioport.c new file mode 100644 index 000000000000..e6d9e8adf373 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-accton/as9716-32d/modules/accton_as9716_32d_ioport.c @@ -0,0 +1,180 @@ +/* + * A hwmon driver for the Accton as9926 24d fan + * + * Copyright (C) 2016 Accton Technology Corporation. + * Brandon Chuang + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define DRVNAME "as9716_32d_ioport" +#define IOPORT_I2C_MUX_RST 0x50D + +static ssize_t show_i2c_mux_rst(struct device *dev, struct device_attribute *da, + char *buf); +static ssize_t set_i2c_mux_rst(struct device *dev, struct device_attribute *da, + const char *buf, size_t count); + +static struct as9716_ioport_data *data = NULL; + +/* ioport data */ +struct as9716_ioport_data { + struct platform_device *pdev; + struct device *hwmon_dev; + struct mutex update_lock; +}; + +/* sysfs attributes for hwmon + */ +static SENSOR_DEVICE_ATTR(i2c_mux_rst, S_IRUGO | S_IWUSR, show_i2c_mux_rst, + set_i2c_mux_rst, 0); + +static struct attribute *sys_attributes[] = { + &sensor_dev_attr_i2c_mux_rst.dev_attr.attr, + NULL +}; + +static struct attribute_group sys_group = { + .attrs = sys_attributes, +}; + +static ssize_t show_i2c_mux_rst(struct device *dev, struct device_attribute *da, + char *buf) +{ + u8 val = 0; + mutex_lock(&data->update_lock); + val = inb(IOPORT_I2C_MUX_RST); + mutex_unlock(&data->update_lock); + return sprintf(buf, "%d\n", !(val & 0xEF)); +} + +static ssize_t set_i2c_mux_rst(struct device *dev, struct device_attribute *da, + const char *buf, size_t count) +{ + u8 val = 0; + long value = 0; + int status = 0; + + status = kstrtol(buf, 10, &value); + if (status) + return status; + + mutex_lock(&data->update_lock); + + val = inb(IOPORT_I2C_MUX_RST); + if (value) + outb(val & 0xEF, IOPORT_I2C_MUX_RST); + else + outb(val | 0x10, IOPORT_I2C_MUX_RST); + + mutex_unlock(&data->update_lock); + return count; +} + +static int as9716_32d_ioport_probe(struct platform_device *pdev) +{ + int status = -1; + + request_region(IOPORT_I2C_MUX_RST, 1, "mux_rst"); + + /* Register sysfs hooks */ + status = sysfs_create_group(&pdev->dev.kobj, &sys_group); + if (status) { + goto exit; + } + + dev_info(&pdev->dev, "device created\n"); + return 0; + +exit: + sysfs_remove_group(&pdev->dev.kobj, &sys_group); + return status; +} + +static int as9716_32d_ioport_remove(struct platform_device *pdev) +{ + sysfs_remove_group(&pdev->dev.kobj, &sys_group); + release_region(IOPORT_I2C_MUX_RST, 1); + return 0; +} + +static struct platform_driver as9716_32d_ioport_driver = { + .probe = as9716_32d_ioport_probe, + .remove = as9716_32d_ioport_remove, + .driver = { + .name = DRVNAME, + .owner = THIS_MODULE, + }, +}; + +static int __init as9716_32d_ioport_init(void) +{ + int ret; + + data = kzalloc(sizeof(struct as9716_ioport_data), GFP_KERNEL); + if (!data) { + ret = -ENOMEM; + goto alloc_err; + } + + mutex_init(&data->update_lock); + + ret = platform_driver_register(&as9716_32d_ioport_driver); + if (ret < 0) + goto dri_reg_err; + + data->pdev = platform_device_register_simple(DRVNAME, -1, NULL, 0); + if (IS_ERR(data->pdev)) { + ret = PTR_ERR(data->pdev); + goto dev_reg_err; + } + + return 0; + +dev_reg_err: + platform_driver_unregister(&as9716_32d_ioport_driver); +dri_reg_err: + kfree(data); +alloc_err: + return ret; +} + +static void __exit as9716_32d_ioport_exit(void) +{ + platform_device_unregister(data->pdev); + platform_driver_unregister(&as9716_32d_ioport_driver); + kfree(data); +} + +module_init(as9716_32d_ioport_init); +module_exit(as9716_32d_ioport_exit); + +MODULE_AUTHOR("Brandon Chuang "); +MODULE_DESCRIPTION("as9716_32d_ioport driver"); +MODULE_LICENSE("GPL"); From b4f8f1dd225e66deb884c5ff563f9d39dd08f53d Mon Sep 17 00:00:00 2001 From: Ashwin Srinivasan <93744978+assrinivasan@users.noreply.github.com> Date: Sat, 9 Apr 2022 13:16:50 -0700 Subject: [PATCH 072/251] Removed python2 dependency for sonic-pcied in sonic-platform-daemons (#10421) Removed python2 support for sonic-platform-daemons that was causing unit test errors in sonic_pcied. * Removed config from docker supervisord jinja templates per VD review comment * Removed space and python3 per QL comments --- .../docker-pmon.supervisord.conf.j2 | 2 +- rules/sonic-pcied.dep | 6 ------ rules/sonic-pcied.mk | 10 +--------- 3 files changed, 2 insertions(+), 16 deletions(-) diff --git a/dockers/docker-platform-monitor/docker-pmon.supervisord.conf.j2 b/dockers/docker-platform-monitor/docker-pmon.supervisord.conf.j2 index b93f0cef3cee..4a13d76edb0a 100644 --- a/dockers/docker-platform-monitor/docker-pmon.supervisord.conf.j2 +++ b/dockers/docker-platform-monitor/docker-pmon.supervisord.conf.j2 @@ -171,7 +171,7 @@ dependent_startup_wait_for=rsyslogd:running {% if not skip_pcied %} [program:pcied] -command={% if API_VERSION == 3 and 'pcied' not in python2_daemons %}python3 {% else %} python2 {% endif %}/usr/local/bin/pcied +command=/usr/local/bin/pcied priority=11 autostart=false autorestart=unexpected diff --git a/rules/sonic-pcied.dep b/rules/sonic-pcied.dep index ddb07f722f6d..05cd1fe5cf42 100644 --- a/rules/sonic-pcied.dep +++ b/rules/sonic-pcied.dep @@ -3,12 +3,6 @@ DEP_FILES:= $(SONIC_COMMON_FILES_LIST) rules/sonic-pcied.mk rules/sonic-pcied.de DEP_FILES+= $(SONIC_COMMON_BASE_FILES_LIST) SMDEP_FILES:= $(addprefix $(SPATH)/,$(shell cd $(SPATH) && git ls-files)) -$(SONIC_PCIED_PY2)_CACHE_MODE:= GIT_CONTENT_SHA -$(SONIC_PCIED_PY2)_DEP_FLAGS:= $(SONIC_COMMON_FLAGS_LIST) -$(SONIC_PCIED_PY2)_DEP_FILES:= $(DEP_FILES) -$(SONIC_PCIED_PY2)_SMDEP_FILES:= $(SMDEP_FILES) -$(SONIC_PCIED_PY2)_SMDEP_PATHS:= $(SPATH) - $(SONIC_PCIED_PY3)_CACHE_MODE:= GIT_CONTENT_SHA $(SONIC_PCIED_PY3)_DEP_FLAGS:= $(SONIC_COMMON_FLAGS_LIST) $(SONIC_PCIED_PY3)_DEP_FILES:= $(DEP_FILES) diff --git a/rules/sonic-pcied.mk b/rules/sonic-pcied.mk index 5c80ae276860..a5d0c8d5054c 100644 --- a/rules/sonic-pcied.mk +++ b/rules/sonic-pcied.mk @@ -1,17 +1,9 @@ # sonic-pcied (SONiC PCIe Monitor daemon) Debian package -# SONIC_PCIED_PY2 package - -SONIC_PCIED_PY2 = sonic_pcied-1.0-py2-none-any.whl -$(SONIC_PCIED_PY2)_SRC_PATH = $(SRC_PATH)/sonic-platform-daemons/sonic-pcied -$(SONIC_PCIED_PY2)_DEPENDS = $(SONIC_PY_COMMON_PY2) -$(SONIC_PCIED_PY2)_PYTHON_VERSION = 2 -SONIC_PYTHON_WHEELS += $(SONIC_PCIED_PY2) - # SONIC_PCIED_PY3 package SONIC_PCIED_PY3 = sonic_pcied-1.0-py3-none-any.whl $(SONIC_PCIED_PY3)_SRC_PATH = $(SRC_PATH)/sonic-platform-daemons/sonic-pcied -$(SONIC_PCIED_PY3)_DEPENDS = $(SONIC_PY_COMMON_PY3) $(SONIC_PCIED_PY2) +$(SONIC_PCIED_PY3)_DEPENDS = $(SONIC_PY_COMMON_PY3) $(SONIC_PCIED_PY3)_PYTHON_VERSION = 3 SONIC_PYTHON_WHEELS += $(SONIC_PCIED_PY3) From 011c21d8f5c6da62d652f813de190f95bb22ec33 Mon Sep 17 00:00:00 2001 From: Junchao-Mellanox <57339448+Junchao-Mellanox@users.noreply.github.com> Date: Sun, 10 Apr 2022 12:55:40 +0800 Subject: [PATCH 073/251] [submodule] Advance sonic-swss-common pointer (#10505) a7118f2 Add a ctor for IpPrefix to accept ip structure and mask (#593) 34f3f61 Add MACSEC_SA_PLUGIN_FIELD (#597) --- src/sonic-swss-common | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-swss-common b/src/sonic-swss-common index 36e1f61691df..a7118f259a8b 160000 --- a/src/sonic-swss-common +++ b/src/sonic-swss-common @@ -1 +1 @@ -Subproject commit 36e1f61691df7aa44782a377e4082cc4380f1018 +Subproject commit a7118f259a8be93ec802c77ecf3018cd403ad8dc From cd330f0e70e646c2ff6fc88c6c8fb9f75e8b40e7 Mon Sep 17 00:00:00 2001 From: jingwenxie Date: Sun, 10 Apr 2022 18:56:58 -0700 Subject: [PATCH 074/251] [sonic-cfggen] make minigraph parser fail when speed and lanes are not in PORT table (#10228) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Why I did it Config db schema generated by minigraph can’t pass yang validation, PORT table does not have 'lanes' and 'speed' field. How I did it Make cfggen command fail when 'lanes' and 'speed' are not provided How to verify it Run 'sonic-cfggen -m xxx.xml --print-data' to make sure command fail when 'lanes' and 'speed' not in PORT table --- src/sonic-config-engine/sonic-cfggen | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/sonic-config-engine/sonic-cfggen b/src/sonic-config-engine/sonic-cfggen index bf93ad849fcb..aebd4d0544f5 100755 --- a/src/sonic-config-engine/sonic-cfggen +++ b/src/sonic-config-engine/sonic-cfggen @@ -247,6 +247,19 @@ def _get_jinja2_env(paths): return env +def _must_field_by_yang(data, table, must_fields): + """ + Check if table contains must field based on yang definition + """ + if table not in data: + return + + for must_field in must_fields: + for _, fields in data[table].items(): + if must_field not in fields: + print(must_field, 'is a must field in', table, file=sys.stderr) + sys.exit(1) + def main(): parser=argparse.ArgumentParser(description="Render configuration file from minigraph data and jinja2 template.") group = parser.add_mutually_exclusive_group() @@ -335,6 +348,8 @@ def main(): deep_update(data, parse_xml(minigraph, platform, asic_name=asic_name)) else: deep_update(data, parse_xml(minigraph, port_config_file=args.port_config, asic_name=asic_name, hwsku_config_file=args.hwsku_config)) + # check if minigraph parser has speed and lanes in PORT table + _must_field_by_yang(data, 'PORT', ['speed', 'lanes']) if args.device_description is not None: deep_update(data, parse_device_desc_xml(args.device_description)) From 5242a4bc7aab745ce3fbae97efe0b156a5a48f54 Mon Sep 17 00:00:00 2001 From: xumia <59720581+xumia@users.noreply.github.com> Date: Tue, 12 Apr 2022 10:52:44 +0800 Subject: [PATCH 075/251] Upgrade pip3 package docker to 5.0.3 (#10523) Why I did it In sonic-utilities repo, it is required to install docker>=4.4.4 https://github.com/Azure/sonic-utilities/blob/f70dc27827a88d70e91e15ecdcde2ebbc446116d/setup.py#L187 --- build_debian.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build_debian.sh b/build_debian.sh index c509b7097151..6dbbaa8cf770 100755 --- a/build_debian.sh +++ b/build_debian.sh @@ -447,7 +447,7 @@ sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip3 install 'setup sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip3 install 'wheel==0.35.1' # docker Python API package is needed by Ansible docker module as well as some SONiC applications -sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip3 install 'docker==4.3.1' +sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip3 install 'docker==5.0.3' # Install scapy sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip3 install 'scapy==2.4.4' From 396a92cb2e3e5c1e87b361484a9f3a8ec7ac1c5a Mon Sep 17 00:00:00 2001 From: kellyyeh <42761586+kellyyeh@users.noreply.github.com> Date: Tue, 12 Apr 2022 10:44:17 -0700 Subject: [PATCH 076/251] [dhcp_relay] Remove dhcp6mon (#10467) --- dockers/docker-dhcp-relay/Dockerfile.j2 | 2 +- ...lay.monitors.j2 => dhcp-relay.monitors.j2} | 2 - .../docker-dhcp-relay.supervisord.conf.j2 | 2 +- src/dhcpmon/src/dhcp_device.c | 593 ++++-------------- src/dhcpmon/src/dhcp_device.h | 123 +--- src/dhcpmon/src/dhcp_devman.c | 37 +- src/dhcpmon/src/dhcp_devman.h | 17 +- src/dhcpmon/src/dhcp_mon.c | 106 +--- src/dhcpmon/src/dhcp_mon.h | 4 +- src/dhcpmon/src/main.c | 20 +- .../py2/docker-dhcp-relay.supervisord.conf | 2 +- .../py3/docker-dhcp-relay.supervisord.conf | 2 +- 12 files changed, 187 insertions(+), 723 deletions(-) rename dockers/docker-dhcp-relay/{dhcpv6-relay.monitors.j2 => dhcp-relay.monitors.j2} (97%) diff --git a/dockers/docker-dhcp-relay/Dockerfile.j2 b/dockers/docker-dhcp-relay/Dockerfile.j2 index 2d2afd922471..f214edc8516c 100644 --- a/dockers/docker-dhcp-relay/Dockerfile.j2 +++ b/dockers/docker-dhcp-relay/Dockerfile.j2 @@ -30,7 +30,7 @@ RUN apt-get clean -y && \ COPY ["docker_init.sh", "start.sh", "/usr/bin/"] COPY ["docker-dhcp-relay.supervisord.conf.j2", "port-name-alias-map.txt.j2", "wait_for_intf.sh.j2", "/usr/share/sonic/templates/"] -COPY ["dhcp-relay.programs.j2", "dhcpv4-relay.agents.j2", "dhcpv6-relay.agents.j2", "dhcpv6-relay.monitors.j2", "/usr/share/sonic/templates/"] +COPY ["dhcp-relay.programs.j2", "dhcpv4-relay.agents.j2", "dhcpv6-relay.agents.j2", "dhcp-relay.monitors.j2", "/usr/share/sonic/templates/"] COPY ["files/supervisor-proc-exit-listener", "/usr/bin"] COPY ["critical_processes", "/etc/supervisor"] COPY ["cli", "/cli/"] diff --git a/dockers/docker-dhcp-relay/dhcpv6-relay.monitors.j2 b/dockers/docker-dhcp-relay/dhcp-relay.monitors.j2 similarity index 97% rename from dockers/docker-dhcp-relay/dhcpv6-relay.monitors.j2 rename to dockers/docker-dhcp-relay/dhcp-relay.monitors.j2 index 9f2d0f01b59f..ae11105ae3ba 100644 --- a/dockers/docker-dhcp-relay/dhcpv6-relay.monitors.j2 +++ b/dockers/docker-dhcp-relay/dhcp-relay.monitors.j2 @@ -59,8 +59,6 @@ command=/usr/sbin/dhcpmon -id {{ vlan_name }} {% if prefix | ipv4 %} -im {{ name }}{% endif -%} {% endfor %} {% endif %} -{% if relay_for_ipv4.flag %} -4{% endif %} -{% if relay_for_ipv6.flag %} -6{% endif %} priority=4 autostart=false diff --git a/dockers/docker-dhcp-relay/docker-dhcp-relay.supervisord.conf.j2 b/dockers/docker-dhcp-relay/docker-dhcp-relay.supervisord.conf.j2 index 664e1f36c05e..41a13dd496ad 100644 --- a/dockers/docker-dhcp-relay/docker-dhcp-relay.supervisord.conf.j2 +++ b/dockers/docker-dhcp-relay/docker-dhcp-relay.supervisord.conf.j2 @@ -65,6 +65,6 @@ dependent_startup_wait_for=rsyslogd:running {% include 'dhcpv6-relay.agents.j2' %} {% endfor %} -{% include 'dhcpv6-relay.monitors.j2' %} +{% include 'dhcp-relay.monitors.j2' %} {% endif %} {% endif %} diff --git a/src/dhcpmon/src/dhcp_device.c b/src/dhcpmon/src/dhcp_device.c index e4fbc7f56909..f45483f8504c 100644 --- a/src/dhcpmon/src/dhcp_device.c +++ b/src/dhcpmon/src/dhcp_device.c @@ -21,51 +21,25 @@ #include #include #include -#include -#include -#include #include "dhcp_device.h" -/** DHCP versions flags */ -static bool dhcpv4_enabled; -static bool dhcpv6_enabled; - /** Counter print width */ #define DHCP_COUNTER_WIDTH 9 /** Start of Ether header of a captured frame */ #define ETHER_START_OFFSET 0 -/** EtherType field offset from Ether header of a captured frame */ -#define ETHER_TYPE_OFFSET (ETHER_START_OFFSET + 12) /** Start of IP header of a captured frame */ #define IP_START_OFFSET (ETHER_START_OFFSET + ETHER_HDR_LEN) -/** Start of UDP header on IPv4 packet of a captured frame */ -#define UDPv4_START_OFFSET (IP_START_OFFSET + sizeof(struct ip)) -/** Start of DHCPv4 header of a captured frame */ -#define DHCPv4_START_OFFSET (UDPv4_START_OFFSET + sizeof(struct udphdr)) -/** Start of DHCPv4 Options segment of a captured frame */ -#define DHCPv4_OPTIONS_HEADER_SIZE 240 +/** Start of UDP header of a captured frame */ +#define UDP_START_OFFSET (IP_START_OFFSET + sizeof(struct ip)) +/** Start of DHCP header of a captured frame */ +#define DHCP_START_OFFSET (UDP_START_OFFSET + sizeof(struct udphdr)) +/** Start of DHCP Options segment of a captured frame */ +#define DHCP_OPTIONS_HEADER_SIZE 240 /** Offset of DHCP GIADDR */ #define DHCP_GIADDR_OFFSET 24 -/** IPv6 link-local prefix */ -#define IPV6_LINK_LOCAL_PREFIX 0x80fe -/** Start of UDP header on IPv6 packet of a captured frame */ -#define UDPv6_START_OFFSET (IP_START_OFFSET + sizeof(struct ip6_hdr)) -/** Start of DHCPv6 header of a captured frame */ -#define DHCPv6_START_OFFSET (UDPv6_START_OFFSET + sizeof(struct udphdr)) -/** Size of 'type' field on DHCPv6 header */ -#define DHCPv6_TYPE_LENGTH 1 -/** Size of DHCPv6 relay message header to first option */ -#define DHCPv6_RELAY_MSG_OPTIONS_OFFSET 34 -/** Size of 'option' field on DHCPv6 header */ -#define DHCPv6_OPTION_LENGTH 2 -/** Size of 'option length' field on DHCPv6 header */ -#define DHCPv6_OPTION_LEN_LENGTH 2 -/** DHCPv6 OPTION_RELAY_MSG */ -#define DHCPv6_OPTION_RELAY_MSG 9 - #define OP_LDHA (BPF_LD | BPF_H | BPF_ABS) /** bpf ldh Abs */ #define OP_LDHI (BPF_LD | BPF_H | BPF_IND) /** bpf ldh Ind */ #define OP_LDB (BPF_LD | BPF_B | BPF_ABS) /** bpf ldb Abs*/ @@ -75,40 +49,34 @@ static bool dhcpv6_enabled; #define OP_JSET (BPF_JMP | BPF_JSET | BPF_K) /** bpf jset */ #define OP_LDXB (BPF_LDX | BPF_B | BPF_MSH) /** bpf ldxb */ -/** Berkeley Packet Filter program for "udp and (port 546 or port 547 or port 67 or port 68)". +/** Berkeley Packet Filter program for "udp and (port 67 or port 68)". * This program is obtained using the following command tcpdump: - * `tcpdump -dd "udp and (port 546 or port 547 or port 67 or port 68)"` + * `tcpdump -dd "udp and (port 67 or port 68)"` */ static struct sock_filter dhcp_bpf_code[] = { - {.code = OP_LDHA, .jt = 0, .jf = 0, .k = 0x0000000c}, // (000) ldh [12] - {.code = OP_JEQ, .jt = 0, .jf = 9, .k = 0x000086dd}, // (001) jeq #0x86dd jt 2 jf 11 - {.code = OP_LDB, .jt = 0, .jf = 0, .k = 0x00000014}, // (002) ldb [20] - {.code = OP_JEQ, .jt = 0, .jf = 24, .k = 0x00000011}, // (003) jeq #0x11 jt 4 jf 28 - {.code = OP_LDHA, .jt = 0, .jf = 0, .k = 0x00000036}, // (004) ldh [54] - {.code = OP_JEQ, .jt = 21, .jf = 0, .k = 0x00000222}, // (005) jeq #0x222 jt 27 jf 6 - {.code = OP_JEQ, .jt = 20, .jf = 0, .k = 0x00000223}, // (006) jeq #0x223 jt 27 jf 7 - {.code = OP_JEQ, .jt = 19, .jf = 0, .k = 0x00000043}, // (007) jeq #0x43 jt 27 jf 8 - {.code = OP_JEQ, .jt = 18, .jf = 0, .k = 0x00000044}, // (008) jeq #0x44 jt 27 jf 9 - {.code = OP_LDHA, .jt = 0, .jf = 0, .k = 0x00000038}, // (009) ldh [56] - {.code = OP_JEQ, .jt = 16, .jf = 13, .k = 0x00000222}, // (010) jeq #0x222 jt 27 jf 24 - {.code = OP_JEQ, .jt = 0, .jf = 16, .k = 0x00000800}, // (011) jeq #0x800 jt 12 jf 28 - {.code = OP_LDB, .jt = 0, .jf = 0, .k = 0x00000017}, // (012) ldb [23] - {.code = OP_JEQ, .jt = 0, .jf = 14, .k = 0x00000011}, // (013) jeq #0x11 jt 14 jf 28 - {.code = OP_LDHA, .jt = 0, .jf = 0, .k = 0x00000014}, // (014) ldh [20] - {.code = OP_JSET, .jt = 12, .jf = 0, .k = 0x00001fff}, // (015) jset #0x1fff jt 28 jf 16 - {.code = OP_LDXB, .jt = 0, .jf = 0, .k = 0x0000000e}, // (016) ldxb 4*([14]&0xf) - {.code = OP_LDHI, .jt = 0, .jf = 0, .k = 0x0000000e}, // (017) ldh [x + 14] - {.code = OP_JEQ, .jt = 8, .jf = 0, .k = 0x00000222}, // (018) jeq #0x222 jt 27 jf 19 - {.code = OP_JEQ, .jt = 7, .jf = 0, .k = 0x00000223}, // (019) jeq #0x223 jt 27 jf 20 - {.code = OP_JEQ, .jt = 6, .jf = 0, .k = 0x00000043}, // (020) jeq #0x43 jt 27 jf 21 - {.code = OP_JEQ, .jt = 5, .jf = 0, .k = 0x00000044}, // (021) jeq #0x44 jt 27 jf 22 - {.code = OP_LDHI, .jt = 0, .jf = 0, .k = 0x00000010}, // (022) ldh [x + 16] - {.code = OP_JEQ, .jt = 3, .jf = 0, .k = 0x00000222}, // (023) jeq #0x222 jt 27 jf 24 - {.code = OP_JEQ, .jt = 2, .jf = 0, .k = 0x00000223}, // (024) jeq #0x223 jt 27 jf 25 - {.code = OP_JEQ, .jt = 1, .jf = 0, .k = 0x00000043}, // (025) jeq #0x43 jt 27 jf 26 - {.code = OP_JEQ, .jt = 0, .jf = 1, .k = 0x00000044}, // (026) jeq #0x44 jt 27 jf 28 - {.code = OP_RET, .jt = 0, .jf = 0, .k = 0x00040000}, // (027) ret #262144 - {.code = OP_RET, .jt = 0, .jf = 0, .k = 0x00000000}, // (028) ret + {.code = OP_LDHA, .jt = 0, .jf = 0, .k = 0x0000000c}, // (000) ldh [12] + {.code = OP_JEQ, .jt = 0, .jf = 7, .k = 0x000086dd}, // (001) jeq #0x86dd jt 2 jf 9 + {.code = OP_LDB, .jt = 0, .jf = 0, .k = 0x00000014}, // (002) ldb [20] + {.code = OP_JEQ, .jt = 0, .jf = 18, .k = 0x00000011}, // (003) jeq #0x11 jt 4 jf 22 + {.code = OP_LDHA, .jt = 0, .jf = 0, .k = 0x00000036}, // (004) ldh [54] + {.code = OP_JEQ, .jt = 15, .jf = 0, .k = 0x00000043}, // (005) jeq #0x43 jt 21 jf 6 + {.code = OP_JEQ, .jt = 14, .jf = 0, .k = 0x00000044}, // (006) jeq #0x44 jt 21 jf 7 + {.code = OP_LDHA, .jt = 0, .jf = 0, .k = 0x00000038}, // (007) ldh [56] + {.code = OP_JEQ, .jt = 12, .jf = 11, .k = 0x00000043}, // (008) jeq #0x43 jt 21 jf 20 + {.code = OP_JEQ, .jt = 0, .jf = 12, .k = 0x00000800}, // (009) jeq #0x800 jt 10 jf 22 + {.code = OP_LDB, .jt = 0, .jf = 0, .k = 0x00000017}, // (010) ldb [23] + {.code = OP_JEQ, .jt = 0, .jf = 10, .k = 0x00000011}, // (011) jeq #0x11 jt 12 jf 22 + {.code = OP_LDHA, .jt = 0, .jf = 0, .k = 0x00000014}, // (012) ldh [20] + {.code = OP_JSET, .jt = 8, .jf = 0, .k = 0x00001fff}, // (013) jset #0x1fff jt 22 jf 14 + {.code = OP_LDXB, .jt = 0, .jf = 0, .k = 0x0000000e}, // (014) ldxb 4*([14]&0xf) + {.code = OP_LDHI, .jt = 0, .jf = 0, .k = 0x0000000e}, // (015) ldh [x + 14] + {.code = OP_JEQ, .jt = 4, .jf = 0, .k = 0x00000043}, // (016) jeq #0x43 jt 21 jf 17 + {.code = OP_JEQ, .jt = 3, .jf = 0, .k = 0x00000044}, // (017) jeq #0x44 jt 21 jf 18 + {.code = OP_LDHI, .jt = 0, .jf = 0, .k = 0x00000010}, // (018) ldh [x + 16] + {.code = OP_JEQ, .jt = 1, .jf = 0, .k = 0x00000043}, // (019) jeq #0x43 jt 21 jf 20 + {.code = OP_JEQ, .jt = 0, .jf = 1, .k = 0x00000044}, // (020) jeq #0x44 jt 21 jf 22 + {.code = OP_RET, .jt = 0, .jf = 0, .k = 0x00040000}, // (021) ret #262144 + {.code = OP_RET, .jt = 0, .jf = 0, .k = 0x00000000}, // (022) ret #0 }; /** Filter program socket struct */ @@ -121,29 +89,16 @@ static struct sock_fprog dhcp_sock_bfp = { */ static dhcp_device_context_t aggregate_dev = {0}; -static dhcp_device_context_t *mgmt_intf = NULL; - -/** Monitored DHCPv4 message type */ -static dhcpv4_message_type_t v4_monitored_msgs[] = { - DHCPv4_MESSAGE_TYPE_DISCOVER, - DHCPv4_MESSAGE_TYPE_OFFER, - DHCPv4_MESSAGE_TYPE_REQUEST, - DHCPv4_MESSAGE_TYPE_ACK -}; - -/** Monitored DHCPv6 message type */ -static dhcpv6_message_type_t v6_monitored_msgs[] = { - DHCPv6_MESSAGE_TYPE_SOLICIT, - DHCPv6_MESSAGE_TYPE_ADVERTISE, - DHCPv6_MESSAGE_TYPE_REQUEST, - DHCPv6_MESSAGE_TYPE_REPLY +/** Monitored DHCP message type */ +static dhcp_message_type_t monitored_msgs[] = { + DHCP_MESSAGE_TYPE_DISCOVER, + DHCP_MESSAGE_TYPE_OFFER, + DHCP_MESSAGE_TYPE_REQUEST, + DHCP_MESSAGE_TYPE_ACK }; -/** Number of monitored DHCPv4 message type */ -static uint8_t v4_monitored_msg_sz = sizeof(v4_monitored_msgs) / sizeof(*v4_monitored_msgs); - -/** Number of monitored DHCPv6 message type */ -static uint8_t v6_monitored_msg_sz = sizeof(v6_monitored_msgs) / sizeof(*v6_monitored_msgs); +/** Number of monitored DHCP message type */ +static uint8_t monitored_msg_sz = sizeof(monitored_msgs) / sizeof(*monitored_msgs); /** * @code handle_dhcp_option_53(context, dhcp_option, dir, iphdr, dhcphdr); @@ -168,37 +123,27 @@ static void handle_dhcp_option_53(dhcp_device_context_t *context, switch (dhcp_option[2]) { // DHCP messages send by client - case DHCPv4_MESSAGE_TYPE_DISCOVER: - case DHCPv4_MESSAGE_TYPE_REQUEST: - case DHCPv4_MESSAGE_TYPE_DECLINE: - case DHCPv4_MESSAGE_TYPE_RELEASE: - case DHCPv4_MESSAGE_TYPE_INFORM: + case DHCP_MESSAGE_TYPE_DISCOVER: + case DHCP_MESSAGE_TYPE_REQUEST: + case DHCP_MESSAGE_TYPE_DECLINE: + case DHCP_MESSAGE_TYPE_RELEASE: + case DHCP_MESSAGE_TYPE_INFORM: giaddr = ntohl(dhcphdr[DHCP_GIADDR_OFFSET] << 24 | dhcphdr[DHCP_GIADDR_OFFSET + 1] << 16 | dhcphdr[DHCP_GIADDR_OFFSET + 2] << 8 | dhcphdr[DHCP_GIADDR_OFFSET + 3]); if ((context->giaddr_ip == giaddr && context->is_uplink && dir == DHCP_TX) || (!context->is_uplink && dir == DHCP_RX && iphdr->ip_dst.s_addr == INADDR_BROADCAST)) { - context->counters.v4counters[DHCP_COUNTERS_CURRENT][dir][dhcp_option[2]]++; - // If the packet recieved on the mgmt interface, we don't want to increment the aggregate device - if (context == mgmt_intf) - { - break; - } - aggregate_dev.counters.v4counters[DHCP_COUNTERS_CURRENT][dir][dhcp_option[2]]++; + context->counters[DHCP_COUNTERS_CURRENT][dir][dhcp_option[2]]++; + aggregate_dev.counters[DHCP_COUNTERS_CURRENT][dir][dhcp_option[2]]++; } break; // DHCP messages send by server - case DHCPv4_MESSAGE_TYPE_OFFER: - case DHCPv4_MESSAGE_TYPE_ACK: - case DHCPv4_MESSAGE_TYPE_NAK: + case DHCP_MESSAGE_TYPE_OFFER: + case DHCP_MESSAGE_TYPE_ACK: + case DHCP_MESSAGE_TYPE_NAK: if ((context->giaddr_ip == iphdr->ip_dst.s_addr && context->is_uplink && dir == DHCP_RX) || (!context->is_uplink && dir == DHCP_TX)) { - context->counters.v4counters[DHCP_COUNTERS_CURRENT][dir][dhcp_option[2]]++; - // If the packet recieved on the mgmt interface, we don't want to increment the aggregate device - if (context == mgmt_intf) - { - break; - } - aggregate_dev.counters.v4counters[DHCP_COUNTERS_CURRENT][dir][dhcp_option[2]]++; + context->counters[DHCP_COUNTERS_CURRENT][dir][dhcp_option[2]]++; + aggregate_dev.counters[DHCP_COUNTERS_CURRENT][dir][dhcp_option[2]]++; } break; default: @@ -207,48 +152,6 @@ static void handle_dhcp_option_53(dhcp_device_context_t *context, } } -/** - * @code handle_dhcpv6_option(context, dhcp_option, dir); - * - * @brief handle the logic related to DHCPv6 option - * - * @param context Device (interface) context - * @param dhcp_option pointer to DHCP option buffer space - * @param dir packet direction - * - * @return none - */ -static void handle_dhcpv6_option(dhcp_device_context_t *context, - const u_char dhcp_option, - dhcp_packet_direction_t dir) -{ - switch (dhcp_option) - { - case DHCPv6_MESSAGE_TYPE_SOLICIT: - case DHCPv6_MESSAGE_TYPE_REQUEST: - case DHCPv6_MESSAGE_TYPE_CONFIRM: - case DHCPv6_MESSAGE_TYPE_RENEW: - case DHCPv6_MESSAGE_TYPE_REBIND: - case DHCPv6_MESSAGE_TYPE_RELEASE: - case DHCPv6_MESSAGE_TYPE_DECLINE: - case DHCPv6_MESSAGE_TYPE_ADVERTISE: - case DHCPv6_MESSAGE_TYPE_REPLY: - case DHCPv6_MESSAGE_TYPE_RECONFIGURE: - case DHCPv6_MESSAGE_TYPE_INFORMATION_REQUEST: - context->counters.v6counters[DHCP_COUNTERS_CURRENT][dir][dhcp_option]++; - // If the packet recieved on the mgmt interface, we don't want to increment the aggregate device - if (context == mgmt_intf) - { - break; - } - aggregate_dev.counters.v6counters[DHCP_COUNTERS_CURRENT][dir][dhcp_option]++; - break; - default: - syslog(LOG_WARNING, "handle_dhcpv6_option(%s): Unknown DHCPv6 option type %d", context->intf, dhcp_option); - break; - } -} - /** * @code read_callback(fd, event, arg); * @@ -268,29 +171,16 @@ static void read_callback(int fd, short event, void *arg) while ((event == EV_READ) && ((buffer_sz = recv(fd, context->buffer, context->snaplen, MSG_DONTWAIT)) > 0)) { struct ether_header *ethhdr = (struct ether_header*) context->buffer; - struct ip *iphdr; - struct ip6_hdr *ipv6hdr; - struct udphdr *udp; - uint8_t *dhcphdr; - int dhcp_option_offset; - - bool is_ipv4 = (ntohs(ethhdr->ether_type) == ETHERTYPE_IP); - if (is_ipv4) { - iphdr = (struct ip*) (context->buffer + IP_START_OFFSET); - udp = (struct udphdr*) (context->buffer + UDPv4_START_OFFSET); - dhcphdr = context->buffer + DHCPv4_START_OFFSET; - dhcp_option_offset = DHCPv4_START_OFFSET + DHCPv4_OPTIONS_HEADER_SIZE; - } else { - ipv6hdr = (struct ip6_hdr*) (context->buffer + IP_START_OFFSET); - udp = (struct udphdr*) (context->buffer + UDPv6_START_OFFSET); - dhcphdr = context->buffer + DHCPv6_START_OFFSET; - dhcp_option_offset = DHCPv6_START_OFFSET; - } - if (is_ipv4 && dhcpv4_enabled && (buffer_sz > UDPv4_START_OFFSET + sizeof(struct udphdr) + DHCPv4_OPTIONS_HEADER_SIZE) && - (ntohs(udp->len) > DHCPv4_OPTIONS_HEADER_SIZE)) { - int dhcp_sz = ntohs(udp->len) < buffer_sz - UDPv4_START_OFFSET - sizeof(struct udphdr) ? - ntohs(udp->len) : buffer_sz - UDPv4_START_OFFSET - sizeof(struct udphdr); - int dhcp_option_sz = dhcp_sz - DHCPv4_OPTIONS_HEADER_SIZE; + struct ip *iphdr = (struct ip*) (context->buffer + IP_START_OFFSET); + struct udphdr *udp = (struct udphdr*) (context->buffer + UDP_START_OFFSET); + uint8_t *dhcphdr = context->buffer + DHCP_START_OFFSET; + int dhcp_option_offset = DHCP_START_OFFSET + DHCP_OPTIONS_HEADER_SIZE; + + if ((buffer_sz > UDP_START_OFFSET + sizeof(struct udphdr) + DHCP_OPTIONS_HEADER_SIZE) && + (ntohs(udp->len) > DHCP_OPTIONS_HEADER_SIZE)) { + int dhcp_sz = ntohs(udp->len) < buffer_sz - UDP_START_OFFSET - sizeof(struct udphdr) ? + ntohs(udp->len) : buffer_sz - UDP_START_OFFSET - sizeof(struct udphdr); + int dhcp_option_sz = dhcp_sz - DHCP_OPTIONS_HEADER_SIZE; const u_char *dhcp_option = context->buffer + dhcp_option_offset; dhcp_packet_direction_t dir = (ethhdr->ether_shost[0] == context->mac[0] && ethhdr->ether_shost[1] == context->mac[1] && @@ -324,37 +214,6 @@ static void read_callback(int fd, short event, void *arg) offset += dhcp_option[offset + 1] + 2; } } - } - else if (!is_ipv4 && dhcpv6_enabled && (buffer_sz > UDPv6_START_OFFSET + sizeof(struct udphdr) + DHCPv6_TYPE_LENGTH)) { - const u_char* dhcp_header = context->buffer + dhcp_option_offset; - dhcp_packet_direction_t dir = (ethhdr->ether_shost[0] == context->mac[0] && - ethhdr->ether_shost[1] == context->mac[1] && - ethhdr->ether_shost[2] == context->mac[2] && - ethhdr->ether_shost[3] == context->mac[3] && - ethhdr->ether_shost[4] == context->mac[4] && - ethhdr->ether_shost[5] == context->mac[5]) ? - DHCP_TX : DHCP_RX; - int offset = 0; - uint16_t option = 0; - uint16_t current_option_len = 0; - // Get to inner DHCP header from encapsulated RELAY_FORWARD or RELAY_REPLY header - while (dhcp_header[offset] == DHCPv6_MESSAGE_TYPE_RELAY_FORWARD || dhcp_header[offset] == DHCPv6_MESSAGE_TYPE_RELAY_REPLY) - { - // Get to DHCPv6_OPTION_RELAY_MSG from all options - offset += DHCPv6_RELAY_MSG_OPTIONS_OFFSET; - option = htons(*((uint16_t*)(&(dhcp_header[offset])))); - - while (option != DHCPv6_OPTION_RELAY_MSG) - { - // Add to offset the option length and get the next option ID - current_option_len = htons(*((uint16_t*)(&(dhcp_header[offset + DHCPv6_OPTION_LENGTH])))); - offset += DHCPv6_OPTION_LENGTH + DHCPv6_OPTION_LEN_LENGTH + current_option_len; - option = htons(*((uint16_t*)(&(dhcp_header[offset])))); - } - // Set the offset to DHCP-relay-message data - offset += DHCPv6_OPTION_LENGTH + DHCPv6_OPTION_LEN_LENGTH; - } - handle_dhcpv6_option(context, dhcp_header[offset], dir); } else { syslog(LOG_WARNING, "read_callback(%s): read length (%ld) is too small to capture DHCP options", context->intf, buffer_sz); @@ -363,73 +222,29 @@ static void read_callback(int fd, short event, void *arg) } /** - * @code dhcp_device_is_dhcp_inactive(v4counters, v6counters, type); + * @code dhcp_device_is_dhcp_inactive(counters); * * @brief Check if there were no DHCP activity * - * @param v4counters current/snapshot v4counter - * - * @param v6counters current/snapshot v6counter - * - * @param type DHCP type + * @param counters current/snapshot counter * * @return true if there were no DHCP activity, false otherwise */ -static bool dhcp_device_is_dhcp_inactive(uint64_t v4counters[][DHCP_DIR_COUNT][DHCPv4_MESSAGE_TYPE_COUNT], - uint64_t v6counters[][DHCP_DIR_COUNT][DHCPv6_MESSAGE_TYPE_COUNT], - dhcp_type_t type) +static bool dhcp_device_is_dhcp_inactive(uint64_t counters[][DHCP_DIR_COUNT][DHCP_MESSAGE_TYPE_COUNT]) { - bool rv = true; - uint64_t *rx_counters; - uint64_t *rx_counter_snapshot; - - switch (type) - { - case DHCPv4_TYPE: - rx_counters = v4counters[DHCP_COUNTERS_CURRENT][DHCP_RX]; - rx_counter_snapshot = v4counters[DHCP_COUNTERS_SNAPSHOT][DHCP_RX]; - for (uint8_t i = 0; (i < v4_monitored_msg_sz) && rv; i++) { - rv = rx_counters[v4_monitored_msgs[i]] == rx_counter_snapshot[v4_monitored_msgs[i]]; - } - break; - - case DHCPv6_TYPE: - rx_counters = v6counters[DHCP_COUNTERS_CURRENT][DHCP_RX]; - rx_counter_snapshot = v6counters[DHCP_COUNTERS_SNAPSHOT][DHCP_RX]; - for (uint8_t i = 0; (i < v6_monitored_msg_sz) && rv; i++) { - rv = rx_counters[v6_monitored_msgs[i]] == rx_counter_snapshot[v6_monitored_msgs[i]]; - } - break; + uint64_t *rx_counters = counters[DHCP_COUNTERS_CURRENT][DHCP_RX]; + uint64_t *rx_counter_snapshot = counters[DHCP_COUNTERS_SNAPSHOT][DHCP_RX]; - default: - syslog(LOG_ERR, "Unknown DHCP type %d\n", type); - break; + bool rv = true; + for (uint8_t i = 0; (i < monitored_msg_sz) && rv; i++) { + rv = rx_counters[monitored_msgs[i]] == rx_counter_snapshot[monitored_msgs[i]]; } return rv; } /** - * @code dhcp_device_is_dhcpv4_msg_unhealthy(type, counters); - * - * @brief Check if DHCP relay is functioning properly for message of type 'type'. - * For every rx of message 'type', there should be increment of the same message type. - * - * @param type DHCP message type - * @param counters current/snapshot counter - * - * @return true if DHCP message 'type' is transmitted,false otherwise - */ -static bool dhcp_device_is_dhcpv4_msg_unhealthy(dhcpv4_message_type_t type, - uint64_t v4counters[][DHCP_DIR_COUNT][DHCPv4_MESSAGE_TYPE_COUNT]) -{ - // check if DHCP message 'type' is being relayed - return ((v4counters[DHCP_COUNTERS_CURRENT][DHCP_RX][type] > v4counters[DHCP_COUNTERS_SNAPSHOT][DHCP_RX][type]) && - (v4counters[DHCP_COUNTERS_CURRENT][DHCP_TX][type] <= v4counters[DHCP_COUNTERS_SNAPSHOT][DHCP_TX][type]) ); -} - -/** - * @code dhcp_device_is_dhcpv6_msg_unhealthy(type, counters); + * @code dhcp_device_is_dhcp_msg_unhealthy(type, counters); * * @brief Check if DHCP relay is functioning properly for message of type 'type'. * For every rx of message 'type', there should be increment of the same message type. @@ -439,57 +254,34 @@ static bool dhcp_device_is_dhcpv4_msg_unhealthy(dhcpv4_message_type_t type, * * @return true if DHCP message 'type' is transmitted,false otherwise */ -static bool dhcp_device_is_dhcpv6_msg_unhealthy(dhcpv6_message_type_t type, - uint64_t v6counters[][DHCP_DIR_COUNT][DHCPv6_MESSAGE_TYPE_COUNT]) +static bool dhcp_device_is_dhcp_msg_unhealthy(dhcp_message_type_t type, + uint64_t counters[][DHCP_DIR_COUNT][DHCP_MESSAGE_TYPE_COUNT]) { // check if DHCP message 'type' is being relayed - return ((v6counters[DHCP_COUNTERS_CURRENT][DHCP_RX][type] > v6counters[DHCP_COUNTERS_SNAPSHOT][DHCP_RX][type]) && - (v6counters[DHCP_COUNTERS_CURRENT][DHCP_TX][type] <= v6counters[DHCP_COUNTERS_SNAPSHOT][DHCP_TX][type]) ); + return ((counters[DHCP_COUNTERS_CURRENT][DHCP_RX][type] > counters[DHCP_COUNTERS_SNAPSHOT][DHCP_RX][type]) && + (counters[DHCP_COUNTERS_CURRENT][DHCP_TX][type] <= counters[DHCP_COUNTERS_SNAPSHOT][DHCP_TX][type]) ); } /** - * @code dhcp_device_check_positive_health(v4counters, v6counters, type); + * @code dhcp_device_check_positive_health(counters, counters_snapshot); * - * @brief Check if DHCPv4/6 relay is functioning properly for monitored messages. - * DHCPv4 (Discover, Offer, Request, ACK.) and DHCPv6 (Solicit, Advertise, Request, Reply). + * @brief Check if DHCP relay is functioning properly for monitored messages (Discover, Offer, Request, ACK.) * For every rx of monitored messages, there should be increment of the same message type. * - * @param v4counters current/snapshot counter - * - * @param v6counters current/snapshot counter - * - * @param type DHCP type + * @param counters current/snapshot counter * * @return DHCP_MON_STATUS_HEALTHY, DHCP_MON_STATUS_UNHEALTHY, or DHCP_MON_STATUS_INDETERMINATE */ -static dhcp_mon_status_t dhcp_device_check_positive_health(uint64_t v4counters[][DHCP_DIR_COUNT][DHCPv4_MESSAGE_TYPE_COUNT], - uint64_t v6counters[][DHCP_DIR_COUNT][DHCPv6_MESSAGE_TYPE_COUNT], - dhcp_type_t type) +static dhcp_mon_status_t dhcp_device_check_positive_health(uint64_t counters[][DHCP_DIR_COUNT][DHCP_MESSAGE_TYPE_COUNT]) { dhcp_mon_status_t rv = DHCP_MON_STATUS_HEALTHY; bool is_dhcp_unhealthy = false; - - switch (type) - { - case DHCPv4_TYPE: - for (uint8_t i = 0; (i < v4_monitored_msg_sz) && !is_dhcp_unhealthy; i++) { - is_dhcp_unhealthy = dhcp_device_is_dhcpv4_msg_unhealthy(v4_monitored_msgs[i], v4counters); - } - break; - - case DHCPv6_TYPE: - for (uint8_t i = 0; (i < v6_monitored_msg_sz) && !is_dhcp_unhealthy; i++) { - is_dhcp_unhealthy = dhcp_device_is_dhcpv6_msg_unhealthy(v6_monitored_msgs[i], v6counters); - } - break; - - default: - syslog(LOG_ERR, "Unknown DHCP type %d\n", type); - break; + for (uint8_t i = 0; (i < monitored_msg_sz) && !is_dhcp_unhealthy; i++) { + is_dhcp_unhealthy = dhcp_device_is_dhcp_msg_unhealthy(monitored_msgs[i], counters); } - // if we have rx DORA/SARR then we should have corresponding tx DORA/SARR (DORA/SARR being relayed) + // if we have rx DORA then we should have corresponding tx DORA (DORA being relayed) if (is_dhcp_unhealthy) { rv = DHCP_MON_STATUS_UNHEALTHY; } @@ -498,47 +290,27 @@ static dhcp_mon_status_t dhcp_device_check_positive_health(uint64_t v4counters[] } /** - * @code dhcp_device_check_negative_health(v4counters, v6counters, type); + * @code dhcp_device_check_negative_health(counters); * * @brief Check that DHCP relayed messages are not being transmitted out of this interface/dev * using its counters. The interface is negatively healthy if there are not DHCP message * travelling through it. * - * @param v4counters current/snapshot counter - * @param v6counters current/snapshot counter - * @param type DHCP type + * @param counters recent interface counter + * @param counters_snapshot snapshot counters * * @return DHCP_MON_STATUS_HEALTHY, DHCP_MON_STATUS_UNHEALTHY, or DHCP_MON_STATUS_INDETERMINATE */ -static dhcp_mon_status_t dhcp_device_check_negative_health(uint64_t v4counters[][DHCP_DIR_COUNT][DHCPv4_MESSAGE_TYPE_COUNT], - uint64_t v6counters[][DHCP_DIR_COUNT][DHCPv6_MESSAGE_TYPE_COUNT], - dhcp_type_t type) +static dhcp_mon_status_t dhcp_device_check_negative_health(uint64_t counters[][DHCP_DIR_COUNT][DHCP_MESSAGE_TYPE_COUNT]) { dhcp_mon_status_t rv = DHCP_MON_STATUS_HEALTHY; - bool is_dhcp_unhealthy = false; - uint64_t *tx_counters; - uint64_t *tx_counter_snapshot; + uint64_t *tx_counters = counters[DHCP_COUNTERS_CURRENT][DHCP_TX]; + uint64_t *tx_counter_snapshot = counters[DHCP_COUNTERS_SNAPSHOT][DHCP_TX]; - switch (type) - { - case DHCPv4_TYPE: - tx_counters = v4counters[DHCP_COUNTERS_CURRENT][DHCP_TX]; - tx_counter_snapshot = v4counters[DHCP_COUNTERS_SNAPSHOT][DHCP_TX]; - for (uint8_t i = 0; (i < v4_monitored_msg_sz) && !is_dhcp_unhealthy; i++) { - is_dhcp_unhealthy = tx_counters[v4_monitored_msgs[i]] > tx_counter_snapshot[v4_monitored_msgs[i]]; - } - break; - case DHCPv6_TYPE: - tx_counters = v6counters[DHCP_COUNTERS_CURRENT][DHCP_TX]; - tx_counter_snapshot = v6counters[DHCP_COUNTERS_SNAPSHOT][DHCP_TX]; - for (uint8_t i = 0; (i < v6_monitored_msg_sz) && !is_dhcp_unhealthy; i++) { - is_dhcp_unhealthy = tx_counters[v6_monitored_msgs[i]] > tx_counter_snapshot[v6_monitored_msgs[i]]; - } - break; - default: - syslog(LOG_ERR, "Unknown DHCP type %d\n", type); - break; + bool is_dhcp_unhealthy = false; + for (uint8_t i = 0; (i < monitored_msg_sz) && !is_dhcp_unhealthy; i++) { + is_dhcp_unhealthy = tx_counters[monitored_msgs[i]] > tx_counter_snapshot[monitored_msgs[i]]; } // for negative validation, return unhealthy if DHCP packet are being @@ -551,7 +323,7 @@ static dhcp_mon_status_t dhcp_device_check_negative_health(uint64_t v4counters[] } /** - * @code dhcp_device_check_health(check_type, v4counters, v6counters, type); + * @code dhcp_device_check_health(check_type, counters, counters_snapshot); * * @brief Check that DHCP relay is functioning properly given a check type. Positive check * indicates for every rx of DHCP message of type 'type', there would increment of @@ -560,80 +332,59 @@ static dhcp_mon_status_t dhcp_device_check_negative_health(uint64_t v4counters[] * considered unhealthy. * * @param check_type type of health check - * @param v4counters current/snapshot counters - * @param v6counters current/snapshot counters - * @param type DHCP type + * @param counters current/snapshot counter * * @return DHCP_MON_STATUS_HEALTHY, DHCP_MON_STATUS_UNHEALTHY, or DHCP_MON_STATUS_INDETERMINATE */ static dhcp_mon_status_t dhcp_device_check_health(dhcp_mon_check_t check_type, - uint64_t v4counters[][DHCP_DIR_COUNT][DHCPv4_MESSAGE_TYPE_COUNT], - uint64_t v6counters[][DHCP_DIR_COUNT][DHCPv6_MESSAGE_TYPE_COUNT], - dhcp_type_t type) + uint64_t counters[][DHCP_DIR_COUNT][DHCP_MESSAGE_TYPE_COUNT]) { dhcp_mon_status_t rv = DHCP_MON_STATUS_HEALTHY; - if (dhcp_device_is_dhcp_inactive(v4counters, v6counters, type)) { + if (dhcp_device_is_dhcp_inactive(aggregate_dev.counters)) { rv = DHCP_MON_STATUS_INDETERMINATE; } else if (check_type == DHCP_MON_CHECK_POSITIVE) { - rv = dhcp_device_check_positive_health(v4counters, v6counters, type); + rv = dhcp_device_check_positive_health(counters); } else if (check_type == DHCP_MON_CHECK_NEGATIVE) { - rv = dhcp_device_check_negative_health(v4counters, v6counters, type); + rv = dhcp_device_check_negative_health(counters); } return rv; } /** - * @code dhcp_print_counters(vlan_intf, type, v4counters, v6counters); + * @code dhcp_print_counters(vlan_intf, type, counters); * * @brief prints DHCP counters to sylsog. * - * @param vlan_intf vlan interface name - * @param type counter type - * @param v4counters interface counter - * @param v6counters interface counter + * @param vlan_intf vlan interface name + * @param type counter type + * @param counters interface counter * * @return none */ static void dhcp_print_counters(const char *vlan_intf, dhcp_counters_type_t type, - uint64_t v4counters[][DHCPv4_MESSAGE_TYPE_COUNT], - uint64_t v6counters[][DHCPv6_MESSAGE_TYPE_COUNT]) + uint64_t counters[][DHCP_MESSAGE_TYPE_COUNT]) { - static const char *v4_counter_desc[DHCP_COUNTERS_COUNT] = { - [DHCP_COUNTERS_CURRENT] = " Current", - [DHCP_COUNTERS_SNAPSHOT] = "Snapshot" - }; - static const char *v6_counter_desc[DHCP_COUNTERS_COUNT] = { + static const char *counter_desc[DHCP_COUNTERS_COUNT] = { [DHCP_COUNTERS_CURRENT] = " Current", [DHCP_COUNTERS_SNAPSHOT] = "Snapshot" }; syslog( LOG_NOTICE, - "DHCPv4 [%*s-%*s rx/tx] Discover: %*lu/%*lu, Offer: %*lu/%*lu, Request: %*lu/%*lu, ACK: %*lu/%*lu\n\ - DHCPv6 [%*s-%*s rx/tx] Solicit: %*lu/%*lu, Advertise: %*lu/%*lu, Request: %*lu/%*lu, Reply: %*lu/%*lu\n", + "[%*s-%*s rx/tx] Discover: %*lu/%*lu, Offer: %*lu/%*lu, Request: %*lu/%*lu, ACK: %*lu/%*lu\n", IF_NAMESIZE, vlan_intf, - (int) strlen(v4_counter_desc[type]), v4_counter_desc[type], - DHCP_COUNTER_WIDTH, v4counters[DHCP_RX][DHCPv4_MESSAGE_TYPE_DISCOVER], - DHCP_COUNTER_WIDTH, v4counters[DHCP_TX][DHCPv4_MESSAGE_TYPE_DISCOVER], - DHCP_COUNTER_WIDTH, v4counters[DHCP_RX][DHCPv4_MESSAGE_TYPE_OFFER], - DHCP_COUNTER_WIDTH, v4counters[DHCP_TX][DHCPv4_MESSAGE_TYPE_OFFER], - DHCP_COUNTER_WIDTH, v4counters[DHCP_RX][DHCPv4_MESSAGE_TYPE_REQUEST], - DHCP_COUNTER_WIDTH, v4counters[DHCP_TX][DHCPv4_MESSAGE_TYPE_REQUEST], - DHCP_COUNTER_WIDTH, v4counters[DHCP_RX][DHCPv4_MESSAGE_TYPE_ACK], - DHCP_COUNTER_WIDTH, v4counters[DHCP_TX][DHCPv4_MESSAGE_TYPE_ACK], - IF_NAMESIZE, vlan_intf, - (int) strlen(v6_counter_desc[type]), v6_counter_desc[type], - DHCP_COUNTER_WIDTH, v6counters[DHCP_RX][DHCPv6_MESSAGE_TYPE_SOLICIT], - DHCP_COUNTER_WIDTH, v6counters[DHCP_TX][DHCPv6_MESSAGE_TYPE_SOLICIT], - DHCP_COUNTER_WIDTH, v6counters[DHCP_RX][DHCPv6_MESSAGE_TYPE_ADVERTISE], - DHCP_COUNTER_WIDTH, v6counters[DHCP_TX][DHCPv6_MESSAGE_TYPE_ADVERTISE], - DHCP_COUNTER_WIDTH, v6counters[DHCP_RX][DHCPv6_MESSAGE_TYPE_REQUEST], - DHCP_COUNTER_WIDTH, v6counters[DHCP_TX][DHCPv6_MESSAGE_TYPE_REQUEST], - DHCP_COUNTER_WIDTH, v6counters[DHCP_RX][DHCPv6_MESSAGE_TYPE_REPLY], - DHCP_COUNTER_WIDTH, v6counters[DHCP_TX][DHCPv6_MESSAGE_TYPE_REPLY] + (int) strlen(counter_desc[type]), counter_desc[type], + DHCP_COUNTER_WIDTH, counters[DHCP_RX][DHCP_MESSAGE_TYPE_DISCOVER], + DHCP_COUNTER_WIDTH, counters[DHCP_TX][DHCP_MESSAGE_TYPE_DISCOVER], + DHCP_COUNTER_WIDTH, counters[DHCP_RX][DHCP_MESSAGE_TYPE_OFFER], + DHCP_COUNTER_WIDTH, counters[DHCP_TX][DHCP_MESSAGE_TYPE_OFFER], + DHCP_COUNTER_WIDTH, counters[DHCP_RX][DHCP_MESSAGE_TYPE_REQUEST], + DHCP_COUNTER_WIDTH, counters[DHCP_TX][DHCP_MESSAGE_TYPE_REQUEST], + DHCP_COUNTER_WIDTH, counters[DHCP_RX][DHCP_MESSAGE_TYPE_ACK], + DHCP_COUNTER_WIDTH, counters[DHCP_TX][DHCP_MESSAGE_TYPE_ACK] ); } @@ -703,12 +454,12 @@ int initialize_intf_mac_and_ip_addr(dhcp_device_context_t *context) strncpy(ifr.ifr_name, context->intf, sizeof(ifr.ifr_name) - 1); ifr.ifr_name[sizeof(ifr.ifr_name) - 1] = '\0'; - // Get v4 network address + // Get network address if (ioctl(fd, SIOCGIFADDR, &ifr) == -1) { syslog(LOG_ALERT, "ioctl: %s", explain_ioctl(fd, SIOCGIFADDR, &ifr)); break; } - context->ipv4 = ((struct sockaddr_in*) &ifr.ifr_addr)->sin_addr.s_addr; + context->ip = ((struct sockaddr_in*) &ifr.ifr_addr)->sin_addr.s_addr; // Get mac address if (ioctl(fd, SIOCGIFHWADDR, &ifr) == -1) { @@ -719,30 +470,6 @@ int initialize_intf_mac_and_ip_addr(dhcp_device_context_t *context) close(fd); - // Get v6 network address - memset(&context->ipv6, 0, sizeof(context->ipv6)); - struct ifaddrs *ifa, *ifa_tmp; - - if (getifaddrs(&ifa) == -1) { - syslog(LOG_ALERT, "getifaddrs failed"); - break; - } - - ifa_tmp = ifa; - while (ifa_tmp) { - // Check if current interface has a valid IPv6 address (not link local address) - if ((strncmp(ifa_tmp->ifa_name, context->intf, sizeof(context->intf)) == 0) && - (ifa_tmp->ifa_addr) && - (ifa_tmp->ifa_addr->sa_family == AF_INET6) && - (((struct sockaddr_in6*)(ifa_tmp->ifa_addr))->sin6_addr.__in6_u.__u6_addr16[0] != IPV6_LINK_LOCAL_PREFIX)) { - - struct sockaddr_in6 *in6 = (struct sockaddr_in6*) ifa_tmp->ifa_addr; - memcpy(&context->ipv6, &in6->sin6_addr, sizeof(context->ipv6)); - } - ifa_tmp = ifa_tmp->ifa_next; - } - freeifaddrs(ifa); - rv = 0; } while (0); @@ -750,41 +477,20 @@ int initialize_intf_mac_and_ip_addr(dhcp_device_context_t *context) } /** - * @code dhcp_device_get_ipv4(context); + * @code dhcp_device_get_ip(context); * * @brief Accessor method * * @param context pointer to device (interface) context * - * @return interface IPv4 + * @return interface IP */ -int dhcp_device_get_ipv4(dhcp_device_context_t *context, in_addr_t *ip) +int dhcp_device_get_ip(dhcp_device_context_t *context, in_addr_t *ip) { int rv = -1; if (context != NULL && ip != NULL) { - *ip = context->ipv4; - rv = 0; - } - - return rv; -} - -/** - * @code dhcp_device_get_ipv6(context); - * - * @brief Accessor method - * - * @param context pointer to device (interface) context - * - * @return interface IPv6 - */ -int dhcp_device_get_ipv6(dhcp_device_context_t *context, struct in6_addr *ip) -{ - int rv = -1; - - if (context != NULL && ip != NULL) { - *ip = context->ipv6; + *ip = context->ip; rv = 0; } @@ -822,8 +528,7 @@ int dhcp_device_init(dhcp_device_context_t **context, const char *intf, uint8_t dev_context->is_uplink = is_uplink; - memset(dev_context->counters.v4counters, 0, sizeof(dev_context->counters.v4counters)); - memset(dev_context->counters.v6counters, 0, sizeof(dev_context->counters.v6counters)); + memset(dev_context->counters, 0, sizeof(dev_context->counters)); *context = dev_context; rv = 0; @@ -838,15 +543,14 @@ int dhcp_device_init(dhcp_device_context_t **context, const char *intf, uint8_t } /** - * @code dhcp_device_start_capture(context, snaplen, base, giaddr_ip, v6_vlan_ip); + * @code dhcp_device_start_capture(context, snaplen, base, giaddr_ip); * * @brief starts packet capture on this interface */ int dhcp_device_start_capture(dhcp_device_context_t *context, size_t snaplen, struct event_base *base, - in_addr_t giaddr_ip, - struct in6_addr v6_vlan_ip) + in_addr_t giaddr_ip) { int rv = -1; @@ -856,20 +560,12 @@ int dhcp_device_start_capture(dhcp_device_context_t *context, break; } - // snaplen check for DHCPv4 size - if (dhcpv4_enabled && snaplen < UDPv4_START_OFFSET + sizeof(struct udphdr) + DHCPv4_OPTIONS_HEADER_SIZE) { - syslog(LOG_ALERT, "dhcp_device_start_capture(%s): snap length is too low to capture DHCPv4 options", context->intf); - break; - } - - // snaplen check for DHCPv6 size - DHCPv6 message type is the first byte of the udp payload - if (dhcpv6_enabled && snaplen < DHCPv6_START_OFFSET + 1) { - syslog(LOG_ALERT, "dhcp_device_start_capture(%s): snap length is too low to capture DHCPv6 option", context->intf); + if (snaplen < UDP_START_OFFSET + sizeof(struct udphdr) + DHCP_OPTIONS_HEADER_SIZE) { + syslog(LOG_ALERT, "dhcp_device_start_capture(%s): snap length is too low to capture DHCP options", context->intf); break; } context->giaddr_ip = giaddr_ip; - context->v6_vlan_ip = v6_vlan_ip; context->buffer = (uint8_t *) malloc(snaplen); if (context->buffer == NULL) { @@ -907,17 +603,17 @@ void dhcp_device_shutdown(dhcp_device_context_t *context) } /** - * @code dhcp_device_get_status(check_type, context, type); + * @code dhcp_device_get_status(check_type, context); * * @brief collects DHCP relay status info for a given interface. If context is null, it will report aggregate * status */ -dhcp_mon_status_t dhcp_device_get_status(dhcp_mon_check_t check_type, dhcp_device_context_t *context, dhcp_type_t type) +dhcp_mon_status_t dhcp_device_get_status(dhcp_mon_check_t check_type, dhcp_device_context_t *context) { dhcp_mon_status_t rv = DHCP_MON_STATUS_HEALTHY; if (context != NULL) { - rv = dhcp_device_check_health(check_type, context->counters.v4counters, context->counters.v6counters, type); + rv = dhcp_device_check_health(check_type, context->counters); } return rv; @@ -931,17 +627,9 @@ dhcp_mon_status_t dhcp_device_get_status(dhcp_mon_check_t check_type, dhcp_devic void dhcp_device_update_snapshot(dhcp_device_context_t *context) { if (context != NULL) { - if (dhcpv4_enabled) { - memcpy(context->counters.v4counters[DHCP_COUNTERS_SNAPSHOT], - context->counters.v4counters[DHCP_COUNTERS_CURRENT], - sizeof(context->counters.v4counters[DHCP_COUNTERS_SNAPSHOT])); - } - - if (dhcpv6_enabled) { - memcpy(context->counters.v6counters[DHCP_COUNTERS_SNAPSHOT], - context->counters.v6counters[DHCP_COUNTERS_CURRENT], - sizeof(context->counters.v6counters[DHCP_COUNTERS_SNAPSHOT])); - } + memcpy(context->counters[DHCP_COUNTERS_SNAPSHOT], + context->counters[DHCP_COUNTERS_CURRENT], + sizeof(context->counters[DHCP_COUNTERS_SNAPSHOT])); } } @@ -953,27 +641,6 @@ void dhcp_device_update_snapshot(dhcp_device_context_t *context) void dhcp_device_print_status(dhcp_device_context_t *context, dhcp_counters_type_t type) { if (context != NULL) { - dhcp_print_counters(context->intf, type, context->counters.v4counters[type], context->counters.v6counters[type]); + dhcp_print_counters(context->intf, type, context->counters[type]); } } - -/** - * @code dhcp_device_active_types(dhcpv4, dhcpv6); - * - * @brief update local variables with active protocols - */ -void dhcp_device_active_types(bool dhcpv4, bool dhcpv6) -{ - dhcpv4_enabled = dhcpv4; - dhcpv6_enabled = dhcpv6; -} - -/** - * @code dhcp_device_init_mgmt_intf(mgmt_intf_context); - * - * @brief assign context address of mgmt interface - */ -void dhcp_device_init_mgmt_intf(dhcp_device_context_t *mgmt_intf_context) -{ - mgmt_intf = mgmt_intf_context; -} diff --git a/src/dhcpmon/src/dhcp_device.h b/src/dhcpmon/src/dhcp_device.h index 433eb0907626..aa686f4e2718 100644 --- a/src/dhcpmon/src/dhcp_device.h +++ b/src/dhcpmon/src/dhcp_device.h @@ -18,43 +18,21 @@ /** - * DHCPv4 message types + * DHCP message types **/ typedef enum { - DHCPv4_MESSAGE_TYPE_DISCOVER = 1, - DHCPv4_MESSAGE_TYPE_OFFER = 2, - DHCPv4_MESSAGE_TYPE_REQUEST = 3, - DHCPv4_MESSAGE_TYPE_DECLINE = 4, - DHCPv4_MESSAGE_TYPE_ACK = 5, - DHCPv4_MESSAGE_TYPE_NAK = 6, - DHCPv4_MESSAGE_TYPE_RELEASE = 7, - DHCPv4_MESSAGE_TYPE_INFORM = 8, - - DHCPv4_MESSAGE_TYPE_COUNT -} dhcpv4_message_type_t; - -/** - * DHCPv6 message types - **/ -typedef enum -{ - DHCPv6_MESSAGE_TYPE_SOLICIT = 1, - DHCPv6_MESSAGE_TYPE_ADVERTISE = 2, - DHCPv6_MESSAGE_TYPE_REQUEST = 3, - DHCPv6_MESSAGE_TYPE_CONFIRM = 4, - DHCPv6_MESSAGE_TYPE_RENEW = 5, - DHCPv6_MESSAGE_TYPE_REBIND = 6, - DHCPv6_MESSAGE_TYPE_REPLY = 7, - DHCPv6_MESSAGE_TYPE_RELEASE = 8, - DHCPv6_MESSAGE_TYPE_DECLINE = 9, - DHCPv6_MESSAGE_TYPE_RECONFIGURE = 10, - DHCPv6_MESSAGE_TYPE_INFORMATION_REQUEST = 11, - DHCPv6_MESSAGE_TYPE_RELAY_FORWARD = 12, - DHCPv6_MESSAGE_TYPE_RELAY_REPLY = 13, - - DHCPv6_MESSAGE_TYPE_COUNT -} dhcpv6_message_type_t; + DHCP_MESSAGE_TYPE_DISCOVER = 1, + DHCP_MESSAGE_TYPE_OFFER = 2, + DHCP_MESSAGE_TYPE_REQUEST = 3, + DHCP_MESSAGE_TYPE_DECLINE = 4, + DHCP_MESSAGE_TYPE_ACK = 5, + DHCP_MESSAGE_TYPE_NAK = 6, + DHCP_MESSAGE_TYPE_RELEASE = 7, + DHCP_MESSAGE_TYPE_INFORM = 8, + + DHCP_MESSAGE_TYPE_COUNT +} dhcp_message_type_t; /** packet direction */ typedef enum @@ -82,13 +60,6 @@ typedef enum DHCP_MON_STATUS_INDETERMINATE, /** DHCP relay health could not be determined */ } dhcp_mon_status_t; -/** dhcp type */ -typedef enum -{ - DHCPv4_TYPE, - DHCPv6_TYPE, -} dhcp_type_t; - /** dhcp check type */ typedef enum { @@ -96,28 +67,19 @@ typedef enum DHCP_MON_CHECK_POSITIVE, /** Validate that received DORA packets are relayed */ } dhcp_mon_check_t; -typedef struct -{ - uint64_t v4counters[DHCP_COUNTERS_COUNT][DHCP_DIR_COUNT][DHCPv4_MESSAGE_TYPE_COUNT]; - /** current/snapshot counters of DHCPv4 packets */ - uint64_t v6counters[DHCP_COUNTERS_COUNT][DHCP_DIR_COUNT][DHCPv6_MESSAGE_TYPE_COUNT]; - /** current/snapshot counters of DHCPv6 packets */ -} counters_t; - /** DHCP device (interface) context */ typedef struct { int sock; /** Raw socket associated with this device/interface */ - in_addr_t ipv4; /** ipv4 network address of this device (interface) */ - struct in6_addr ipv6; /** ipv6 network address of this device (interface) */ + in_addr_t ip; /** network address of this device (interface) */ uint8_t mac[ETHER_ADDR_LEN]; /** hardware address of this device (interface) */ - in_addr_t giaddr_ip; /** Gateway IPv4 address */ - struct in6_addr v6_vlan_ip; /** Vlan IPv6 address */ + in_addr_t giaddr_ip; /** Gateway IP address */ uint8_t is_uplink; /** north interface? */ char intf[IF_NAMESIZE]; /** device (interface) name */ uint8_t *buffer; /** buffer used to read socket data */ size_t snaplen; /** snap length or buffer size */ - counters_t counters; /** counters for DHCPv4/6 packets */ + uint64_t counters[DHCP_COUNTERS_COUNT][DHCP_DIR_COUNT][DHCP_MESSAGE_TYPE_COUNT]; + /** current/snapshot counters of DHCP packets */ } dhcp_device_context_t; /** @@ -132,28 +94,16 @@ typedef struct int initialize_intf_mac_and_ip_addr(dhcp_device_context_t *context); /** - * @code dhcp_device_get_ipv4(context, ip); + * @code dhcp_device_get_ip(context, ip); * * @brief Accessor method * * @param context pointer to device (interface) context - * @param ip(out) pointer to device IPv4 + * @param ip(out) pointer to device IP * * @return 0 on success, otherwise for failure */ -int dhcp_device_get_ipv4(dhcp_device_context_t *context, in_addr_t *ip); - -/** - * @code dhcp_device_get_ipv6(context, ip); - * - * @brief Accessor method - * - * @param context pointer to device (interface) context - * @param ip(out) pointer to device IPv6 - * - * @return 0 on success, otherwise for failure - */ -int dhcp_device_get_ipv6(dhcp_device_context_t *context, struct in6_addr *ip); +int dhcp_device_get_ip(dhcp_device_context_t *context, in_addr_t *ip); /** * @code dhcp_device_get_aggregate_context(); @@ -180,7 +130,7 @@ int dhcp_device_init(dhcp_device_context_t **context, uint8_t is_uplink); /** - * @code dhcp_device_start_capture(context, snaplen, base, giaddr_ip, v6_vlan_ip); + * @code dhcp_device_start_capture(context, snaplen, base, giaddr_ip); * * @brief starts packet capture on this interface * @@ -188,15 +138,13 @@ int dhcp_device_init(dhcp_device_context_t **context, * @param snaplen length of packet capture * @param base pointer to libevent base * @param giaddr_ip gateway IP address - * @param v6_vlan_ip vlan IPv6 address * * @return 0 on success, otherwise for failure */ int dhcp_device_start_capture(dhcp_device_context_t *context, size_t snaplen, struct event_base *base, - in_addr_t giaddr_ip, - struct in6_addr v6_vlan_ip); + in_addr_t giaddr_ip); /** * @code dhcp_device_shutdown(context); @@ -210,18 +158,17 @@ int dhcp_device_start_capture(dhcp_device_context_t *context, void dhcp_device_shutdown(dhcp_device_context_t *context); /** - * @code dhcp_device_get_status(check_type, context, type); + * @code dhcp_device_get_status(check_type, context); * * @brief collects DHCP relay status info for a given interface. If context is null, it will report aggregate * status * * @param check_type Type of validation * @param context Device (interface) context - * @param type DHCP type * * @return DHCP_MON_STATUS_HEALTHY, DHCP_MON_STATUS_UNHEALTHY, or DHCP_MON_STATUS_INDETERMINATE */ -dhcp_mon_status_t dhcp_device_get_status(dhcp_mon_check_t check_type, dhcp_device_context_t *context, dhcp_type_t type); +dhcp_mon_status_t dhcp_device_get_status(dhcp_mon_check_t check_type, dhcp_device_context_t *context); /** * @code dhcp_device_update_snapshot(context); @@ -238,32 +185,10 @@ void dhcp_device_update_snapshot(dhcp_device_context_t *context); * @brief prints status counters to syslog. If context is null, it will print aggregate status * * @param context Device (interface) context - * @param type Counter type to be printed + * @param counters_type Counter type to be printed * * @return none */ void dhcp_device_print_status(dhcp_device_context_t *context, dhcp_counters_type_t type); -/** - * @code dhcp_device_active_types(dhcpv4, dhcpv6); - * - * @brief update local variables with active protocols - * - * @param dhcpv4 DHCPv4 enable flag - * @param dhcpv6 DHCPv6 enable flag - * - * @return none - */ -void dhcp_device_active_types(bool dhcpv4, bool dhcpv6); - -/** - * @code dhcp_device_init_mgmt_intf(mgmt_intf_context); - * - * @brief assign context address of mgmt interface - * - * @param mgmt_intf_context MGMT interface context struct address - * - * @return none - */ -void dhcp_device_init_mgmt_intf(dhcp_device_context_t *mgmt_intf_context); #endif /* DHCP_DEVICE_H_ */ diff --git a/src/dhcpmon/src/dhcp_devman.c b/src/dhcpmon/src/dhcp_devman.c index b36d926c1d5b..65484798dbd6 100644 --- a/src/dhcpmon/src/dhcp_devman.c +++ b/src/dhcpmon/src/dhcp_devman.c @@ -9,8 +9,6 @@ #include #include #include -#include -#include #include "dhcp_devman.h" @@ -37,8 +35,7 @@ static uint32_t dhcp_num_mgmt_intf = 0; /** On Device vlan interface IP address corresponding vlan downlink IP * This IP is used to filter Offer/Ack packet coming from DHCP server */ -static in_addr_t v4_vlan_ip = 0; -static struct in6_addr v6_vlan_ip = {0}; +static in_addr_t vlan_ip = 0; /* Device loopback interface ip, which will be used as the giaddr in dual tor setup. */ static in_addr_t loopback_ip = 0; @@ -139,8 +136,7 @@ int dhcp_devman_add_intf(const char *name, char intf_type) rv = dhcp_device_init(&dev->dev_context, dev->name, dev->is_uplink); if (rv == 0 && intf_type == 'd') { - rv = dhcp_device_get_ipv4(dev->dev_context, &v4_vlan_ip); - rv = dhcp_device_get_ipv6(dev->dev_context, &v6_vlan_ip); + rv = dhcp_device_get_ip(dev->dev_context, &vlan_ip); dhcp_device_context_t *agg_dev = dhcp_device_get_aggregate_context(); @@ -148,9 +144,6 @@ int dhcp_devman_add_intf(const char *name, char intf_type) strncpy(agg_dev->intf + sizeof(AGG_DEV_PREFIX) - 1, name, sizeof(agg_dev->intf) - sizeof(AGG_DEV_PREFIX)); agg_dev->intf[sizeof(agg_dev->intf) - 1] = '\0'; } - else if (rv == 0 && intf_type == 'm') { - dhcp_device_init_mgmt_intf(dev->dev_context); - } LIST_INSERT_HEAD(&intfs, dev, entry); } @@ -181,7 +174,7 @@ int dhcp_devman_setup_dual_tor_mode(const char *name) } if (initialize_intf_mac_and_ip_addr(&loopback_intf_context) == 0 && - dhcp_device_get_ipv4(&loopback_intf_context, &loopback_ip) == 0) { + dhcp_device_get_ip(&loopback_intf_context, &loopback_ip) == 0) { dual_tor_mode = 1; } else { syslog(LOG_ALERT, "failed to retrieve ip addr for loopback interface (%s)", name); @@ -204,13 +197,11 @@ int dhcp_devman_start_capture(size_t snaplen, struct event_base *base) if ((dhcp_num_south_intf == 1) && (dhcp_num_north_intf >= 1)) { LIST_FOREACH(int_ptr, &intfs, entry) { - rv = dhcp_device_start_capture(int_ptr->dev_context, snaplen, base, dual_tor_mode ? loopback_ip : v4_vlan_ip, v6_vlan_ip); + rv = dhcp_device_start_capture(int_ptr->dev_context, snaplen, base, dual_tor_mode ? loopback_ip : vlan_ip); if (rv == 0) { - char ipv6_addr[INET6_ADDRSTRLEN]; - inet_ntop(AF_INET6, &int_ptr->dev_context->ipv6, ipv6_addr, sizeof(ipv6_addr)); syslog(LOG_INFO, - "Capturing DHCP packets on interface %s, ipv4: 0x%08x, ipv6: %s, mac [%02x:%02x:%02x:%02x:%02x:%02x] \n", - int_ptr->name, int_ptr->dev_context->ipv4, ipv6_addr, int_ptr->dev_context->mac[0], + "Capturing DHCP packets on interface %s, ip: 0x%08x, mac [%02x:%02x:%02x:%02x:%02x:%02x] \n", + int_ptr->name, int_ptr->dev_context->ip, int_ptr->dev_context->mac[0], int_ptr->dev_context->mac[1], int_ptr->dev_context->mac[2], int_ptr->dev_context->mac[3], int_ptr->dev_context->mac[4], int_ptr->dev_context->mac[5]); } @@ -228,13 +219,13 @@ int dhcp_devman_start_capture(size_t snaplen, struct event_base *base) } /** - * @code dhcp_devman_get_status(check_type, context, type); + * @code dhcp_devman_get_status(check_type, context); * * @brief collects DHCP relay status info. */ -dhcp_mon_status_t dhcp_devman_get_status(dhcp_mon_check_t check_type, dhcp_device_context_t *context, dhcp_type_t type) +dhcp_mon_status_t dhcp_devman_get_status(dhcp_mon_check_t check_type, dhcp_device_context_t *context) { - return dhcp_device_get_status(check_type, context, type); + return dhcp_device_get_status(check_type, context); } /** @@ -276,13 +267,3 @@ void dhcp_devman_print_status(dhcp_device_context_t *context, dhcp_counters_type dhcp_device_print_status(context, type); } } - -/** - * @code dhcp_devman_active_types(dhcpv4, dhcpv6); - * - * @brief update local variables with active protocols - */ -void dhcp_devman_active_types(bool dhcpv4, bool dhcpv6) -{ - dhcp_device_active_types(dhcpv4, dhcpv6); -} diff --git a/src/dhcpmon/src/dhcp_devman.h b/src/dhcpmon/src/dhcp_devman.h index 6e30c654f69e..948e79cde4f4 100644 --- a/src/dhcpmon/src/dhcp_devman.h +++ b/src/dhcpmon/src/dhcp_devman.h @@ -87,17 +87,16 @@ int dhcp_devman_setup_dual_tor_mode(const char *name); int dhcp_devman_start_capture(size_t snaplen, struct event_base *base); /** - * @code dhcp_devman_get_status(check_type, context, type); + * @code dhcp_devman_get_status(check_type, context); * * @brief collects DHCP relay status info. * * @param check_type Type of validation * @param context pointer to device (interface) context - * @param type DHCP type * * @return DHCP_MON_STATUS_HEALTHY, DHCP_MON_STATUS_UNHEALTHY, or DHCP_MON_STATUS_INDETERMINATE */ -dhcp_mon_status_t dhcp_devman_get_status(dhcp_mon_check_t check_type, dhcp_device_context_t *context, dhcp_type_t type); +dhcp_mon_status_t dhcp_devman_get_status(dhcp_mon_check_t check_type, dhcp_device_context_t *context); /** * @code dhcp_devman_update_snapshot(context); @@ -120,16 +119,4 @@ void dhcp_devman_update_snapshot(dhcp_device_context_t *context); */ void dhcp_devman_print_status(dhcp_device_context_t *context, dhcp_counters_type_t type); -/** - * @code dhcp_devman_active_types(dhcpv4, dhcpv6); - * - * @brief update local variables with active protocols - * - * @param dhcpv4 flag indicating dhcpv4 is enabled - * @param dhcpv6 flag indicating dhcpv6 is enabled - * - * @return none - */ -void dhcp_devman_active_types(bool dhcpv4, bool dhcpv6); - #endif /* DHCP_DEVMAN_H_ */ diff --git a/src/dhcpmon/src/dhcp_mon.c b/src/dhcpmon/src/dhcp_mon.c index 2777b6484082..74d9869741d1 100644 --- a/src/dhcpmon/src/dhcp_mon.c +++ b/src/dhcpmon/src/dhcp_mon.c @@ -12,24 +12,16 @@ #include #include #include -#include #include "dhcp_mon.h" #include "dhcp_devman.h" -/** DHCP device/interface state counters */ -typedef struct -{ - int v4_count; /** count in the number of DHCPv4 unhealthy checks */ - int v6_count; /** count in the number of DHCPv6 unhealthy checks */ -} dhcp_mon_count_t; - /** DHCP device/interface state */ typedef struct { dhcp_mon_check_t check_type; /** check type */ dhcp_device_context_t* (*get_context)(); /** functor to a device context accessor function */ - dhcp_mon_count_t counters; /** count in the number of unhealthy checks */ + int count; /** count in the number of unhealthy checks */ const char *msg; /** message to be printed if unhealthy state is determined */ } dhcp_mon_state_t; @@ -37,10 +29,6 @@ typedef struct static int window_interval_sec = 18; /** dhcp_unhealthy_max_count max count of consecutive unhealthy statuses before reporting to syslog */ static int dhcp_unhealthy_max_count = 10; -/** DHCP versions flags */ -static bool dhcpv4_enabled; -static bool dhcpv6_enabled; - /** libevent base struct */ static struct event_base *base; /** libevent timeout event struct */ @@ -57,15 +45,13 @@ static dhcp_mon_state_t state_data[] = { [0] = { .check_type = DHCP_MON_CHECK_POSITIVE, .get_context = dhcp_devman_get_agg_dev, - .counters.v4_count = 0, - .counters.v6_count = 0, + .count = 0, .msg = "dhcpmon detected disparity in DHCP Relay behavior. Duration: %d (sec) for vlan: '%s'\n" }, [1] = { .check_type = DHCP_MON_CHECK_NEGATIVE, .get_context = dhcp_devman_get_mgmt_dev, - .counters.v4_count = 0, - .counters.v6_count = 0, + .count = 0, .msg = "dhcpmon detected DHCP packets traveling through mgmt interface (please check BGP routes.)" " Duration: %d (sec) for intf: '%s'\n" } @@ -92,89 +78,36 @@ static void signal_callback(evutil_socket_t fd, short event, void *arg) } /** - * @code check_dhcp_relay_health(state_data, dhcp_type); + * @code check_dhcp_relay_health(state_data); * * @brief check DHCP relay overall health * * @param state_data pointer to dhcpmon state data * - * @param type DHCP type - * * @return none */ -static void check_dhcp_relay_health(dhcp_mon_state_t *state_data, dhcp_type_t type) +static void check_dhcp_relay_health(dhcp_mon_state_t *state_data) { dhcp_device_context_t *context = state_data->get_context(); - dhcp_mon_status_t dhcp_mon_status = dhcp_devman_get_status(state_data->check_type, context, type); + dhcp_mon_status_t dhcp_mon_status = dhcp_devman_get_status(state_data->check_type, context); switch (dhcp_mon_status) { case DHCP_MON_STATUS_UNHEALTHY: - switch (type) - { - case DHCPv4_TYPE: - if (++state_data->counters.v4_count > dhcp_unhealthy_max_count) { - syslog(LOG_ALERT, state_data->msg, state_data->counters.v4_count * window_interval_sec, context->intf); - dhcp_devman_print_status(context, DHCP_COUNTERS_SNAPSHOT); - dhcp_devman_print_status(context, DHCP_COUNTERS_CURRENT); - } - break; - case DHCPv6_TYPE: - if (++state_data->counters.v6_count > dhcp_unhealthy_max_count) { - syslog(LOG_ALERT, state_data->msg, state_data->counters.v6_count * window_interval_sec, context->intf); - dhcp_devman_print_status(context, DHCP_COUNTERS_SNAPSHOT); - dhcp_devman_print_status(context, DHCP_COUNTERS_CURRENT); - } - break; - - default: - syslog(LOG_ERR, "Unknown DHCP type %d\n", type); - break; + if (++state_data->count > dhcp_unhealthy_max_count) { + syslog(LOG_ALERT, state_data->msg, state_data->count * window_interval_sec, context->intf); + dhcp_devman_print_status(context, DHCP_COUNTERS_SNAPSHOT); + dhcp_devman_print_status(context, DHCP_COUNTERS_CURRENT); } break; - case DHCP_MON_STATUS_HEALTHY: - switch (type) - { - case DHCPv4_TYPE: - state_data->counters.v4_count = 0; - break; - case DHCPv6_TYPE: - state_data->counters.v6_count = 0; - break; - default: - syslog(LOG_ERR, "Unknown DHCP type %d\n", type); - break; - } + state_data->count = 0; break; - case DHCP_MON_STATUS_INDETERMINATE: - switch (type) - { - case DHCPv4_TYPE: - if (state_data->counters.v4_count) { - if (++state_data->counters.v4_count > dhcp_unhealthy_max_count) { - syslog(LOG_ALERT, state_data->msg, state_data->counters.v4_count * window_interval_sec, context->intf); - dhcp_devman_print_status(context, DHCP_COUNTERS_SNAPSHOT); - dhcp_devman_print_status(context, DHCP_COUNTERS_CURRENT); - } - } - break; - case DHCPv6_TYPE: - if (state_data->counters.v6_count) { - if (++state_data->counters.v6_count > dhcp_unhealthy_max_count) { - syslog(LOG_ALERT, state_data->msg, state_data->counters.v6_count * window_interval_sec, context->intf); - dhcp_devman_print_status(context, DHCP_COUNTERS_SNAPSHOT); - dhcp_devman_print_status(context, DHCP_COUNTERS_CURRENT); - } - } - break; - default: - syslog(LOG_ERR, "Unknown DHCP type %d\n", type); - break; + if (state_data->count) { + state_data->count++; } break; - default: syslog(LOG_ERR, "DHCP Relay returned unknown status %d\n", dhcp_mon_status); break; @@ -195,12 +128,7 @@ static void check_dhcp_relay_health(dhcp_mon_state_t *state_data, dhcp_type_t ty static void timeout_callback(evutil_socket_t fd, short event, void *arg) { for (uint8_t i = 0; i < sizeof(state_data) / sizeof(*state_data); i++) { - if (dhcpv4_enabled) { - check_dhcp_relay_health(&state_data[i], DHCPv4_TYPE); - } - if (dhcpv6_enabled) { - check_dhcp_relay_health(&state_data[i], DHCPv6_TYPE); - } + check_dhcp_relay_health(&state_data[i]); } dhcp_devman_update_snapshot(NULL); @@ -213,17 +141,13 @@ static void timeout_callback(evutil_socket_t fd, short event, void *arg) * seconds. It also writes to syslog when dhcp relay has been unhealthy for consecutive max_count checks. * */ -int dhcp_mon_init(int window_sec, int max_count, bool dhcpv4, bool dhcpv6) +int dhcp_mon_init(int window_sec, int max_count) { int rv = -1; do { window_interval_sec = window_sec; dhcp_unhealthy_max_count = max_count; - dhcpv4_enabled = dhcpv4; - dhcpv6_enabled = dhcpv6; - - dhcp_devman_active_types(dhcpv4, dhcpv6); base = event_base_new(); if (base == NULL) { diff --git a/src/dhcpmon/src/dhcp_mon.h b/src/dhcpmon/src/dhcp_mon.h index facd46da6860..ae8911ab51fc 100644 --- a/src/dhcpmon/src/dhcp_mon.h +++ b/src/dhcpmon/src/dhcp_mon.h @@ -17,12 +17,10 @@ * * @param window_sec time interval between health checks * @param max_count max count of consecutive unhealthy statuses before reporting to syslog - * @param dhcpv4 flag indicating dhcpv4 is enabled - * @param dhcpv6 flag indicating dhcpv6 is enabled * * @return 0 upon success, otherwise upon failure */ -int dhcp_mon_init(int window_sec, int max_count, bool dhcpv4, bool dhcpv6); +int dhcp_mon_init(int window_sec, int max_count); /** * @code dhcp_mon_shutdown(); diff --git a/src/dhcpmon/src/main.c b/src/dhcpmon/src/main.c index 1cf931821495..29bc534accf0 100644 --- a/src/dhcpmon/src/main.c +++ b/src/dhcpmon/src/main.c @@ -16,7 +16,6 @@ #include #include #include -#include #include "dhcp_mon.h" #include "dhcp_devman.h" @@ -42,8 +41,7 @@ static const uint32_t dhcpmon_default_unhealthy_max_count = 10; static void usage(const char *prog) { printf("Usage: %s -id {-iu }+ -im [-u ]" - "[-w ] [-c ] [-s ]" - "[-4 ] [-6 ] [-d]\n", prog); + "[-w ] [-c ] [-s ] [-d]\n", prog); printf("where\n"); printf("\tsouth interface: is a vlan interface,\n"); printf("\tnorth interface: is a TOR-T1 interface,\n"); @@ -114,8 +112,6 @@ int main(int argc, char **argv) int max_unhealthy_count = dhcpmon_default_unhealthy_max_count; size_t snaplen = dhcpmon_default_snaplen; int make_daemon = 0; - bool dhcpv4_enabled = false; - bool dhcpv6_enabled = false; setlogmask(LOG_UPTO(LOG_INFO)); openlog(basename(argv[0]), LOG_CONS | LOG_PID | LOG_NDELAY, LOG_DAEMON); @@ -159,14 +155,6 @@ int main(int argc, char **argv) max_unhealthy_count = atoi(argv[i + 1]); i += 2; break; - case '4': - dhcpv4_enabled = true; - i++; - break; - case '6': - dhcpv6_enabled = true; - i++; - break; default: fprintf(stderr, "%s: %c: Unknown option\n", basename(argv[0]), argv[i][1]); usage(basename(argv[0])); @@ -177,11 +165,7 @@ int main(int argc, char **argv) dhcpmon_daemonize(); } - if (!dhcpv4_enabled && !dhcpv6_enabled) { - dhcpv4_enabled = true; - } - - if ((dhcp_mon_init(window_interval, max_unhealthy_count, dhcpv4_enabled, dhcpv6_enabled) == 0) && + if ((dhcp_mon_init(window_interval, max_unhealthy_count) == 0) && (dhcp_mon_start(snaplen) == 0)) { rv = EXIT_SUCCESS; diff --git a/src/sonic-config-engine/tests/sample_output/py2/docker-dhcp-relay.supervisord.conf b/src/sonic-config-engine/tests/sample_output/py2/docker-dhcp-relay.supervisord.conf index a9004e2b00f5..407ac2c80bc9 100644 --- a/src/sonic-config-engine/tests/sample_output/py2/docker-dhcp-relay.supervisord.conf +++ b/src/sonic-config-engine/tests/sample_output/py2/docker-dhcp-relay.supervisord.conf @@ -68,7 +68,7 @@ dependent_startup_wait_for=start:exited programs=dhcpmon-Vlan1000 [program:dhcpmon-Vlan1000] -command=/usr/sbin/dhcpmon -id Vlan1000 -iu Vlan2000 -iu PortChannel02 -iu PortChannel03 -iu PortChannel04 -iu PortChannel01 -im eth0 -4 -6 +command=/usr/sbin/dhcpmon -id Vlan1000 -iu Vlan2000 -iu PortChannel02 -iu PortChannel03 -iu PortChannel04 -iu PortChannel01 -im eth0 priority=4 autostart=false autorestart=false diff --git a/src/sonic-config-engine/tests/sample_output/py3/docker-dhcp-relay.supervisord.conf b/src/sonic-config-engine/tests/sample_output/py3/docker-dhcp-relay.supervisord.conf index 521899b939f4..5456409738e6 100644 --- a/src/sonic-config-engine/tests/sample_output/py3/docker-dhcp-relay.supervisord.conf +++ b/src/sonic-config-engine/tests/sample_output/py3/docker-dhcp-relay.supervisord.conf @@ -68,7 +68,7 @@ dependent_startup_wait_for=start:exited programs=dhcpmon-Vlan1000 [program:dhcpmon-Vlan1000] -command=/usr/sbin/dhcpmon -id Vlan1000 -iu Vlan2000 -iu PortChannel01 -iu PortChannel02 -iu PortChannel03 -iu PortChannel04 -im eth0 -4 -6 +command=/usr/sbin/dhcpmon -id Vlan1000 -iu Vlan2000 -iu PortChannel01 -iu PortChannel02 -iu PortChannel03 -iu PortChannel04 -im eth0 priority=4 autostart=false autorestart=false From f2acf952fba098d7356e70ae16fae3e579e40ba3 Mon Sep 17 00:00:00 2001 From: Nikola Dancejic <26731235+Ndancejic@users.noreply.github.com> Date: Tue, 12 Apr 2022 14:43:03 -0700 Subject: [PATCH 077/251] [device config] Adding configuration for default route fallback (#10465) * [device config] Adding configuration for default route fallback * Set sai_tunnel_underlay_route_mode attribute to fallback to default route if more specific route is unavailable. --- .../Arista-7050CX3-32S-C32/td3-a7050cx3-32s-32x100G.config.bcm | 1 + .../td3-a7050cx3-32s-48x50G+8x100G.config.bcm | 1 + .../x86_64-arista_7050cx3_32s/td3-a7050cx3-32s-flex.config.bcm | 1 + .../x86_64-arista_7260cx3_64/Arista-7260CX3-C64/config.bcm.j2 | 1 + .../x86_64-arista_7260cx3_64/Arista-7260CX3-D108C8/config.bcm.j2 | 1 + .../x86_64-arista_7260cx3_64/Arista-7260CX3-Q64/config.bcm.j2 | 1 + src/sonic-device-data/tests/permitted_list | 1 + 7 files changed, 7 insertions(+) diff --git a/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C32/td3-a7050cx3-32s-32x100G.config.bcm b/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C32/td3-a7050cx3-32s-32x100G.config.bcm index a575049dc06b..22088621cef1 100644 --- a/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C32/td3-a7050cx3-32s-32x100G.config.bcm +++ b/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C32/td3-a7050cx3-32s-32x100G.config.bcm @@ -5,6 +5,7 @@ host_as_route_disable=1 use_all_splithorizon_groups=1 riot_enable=1 sai_tunnel_support=1 +sai_tunnel_underlay_route_mode=1 riot_overlay_l3_intf_mem_size=4096 riot_overlay_l3_egress_mem_size=32768 l3_ecmp_levels=2 diff --git a/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-D48C8/td3-a7050cx3-32s-48x50G+8x100G.config.bcm b/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-D48C8/td3-a7050cx3-32s-48x50G+8x100G.config.bcm index 68ae982800c8..aaad28895942 100644 --- a/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-D48C8/td3-a7050cx3-32s-48x50G+8x100G.config.bcm +++ b/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-D48C8/td3-a7050cx3-32s-48x50G+8x100G.config.bcm @@ -5,6 +5,7 @@ host_as_route_disable=1 use_all_splithorizon_groups=1 riot_enable=1 sai_tunnel_support=1 +sai_tunnel_underlay_route_mode=1 riot_overlay_l3_intf_mem_size=4096 riot_overlay_l3_egress_mem_size=32768 l3_ecmp_levels=2 diff --git a/device/arista/x86_64-arista_7050cx3_32s/td3-a7050cx3-32s-flex.config.bcm b/device/arista/x86_64-arista_7050cx3_32s/td3-a7050cx3-32s-flex.config.bcm index fef962c852b7..70a579e01eeb 100644 --- a/device/arista/x86_64-arista_7050cx3_32s/td3-a7050cx3-32s-flex.config.bcm +++ b/device/arista/x86_64-arista_7050cx3_32s/td3-a7050cx3-32s-flex.config.bcm @@ -397,6 +397,7 @@ robust_hash_disable_mpls=1 robust_hash_disable_vlan=1 sai_load_hw_config=/etc/bcm/flex/bcm56870_a0_premium_issu/b870.6.4.1/ sai_tunnel_support=1 +sai_tunnel_underlay_route_mode=1 serdes_core_rx_polarity_flip_physical{1}=0x8 serdes_core_rx_polarity_flip_physical{5}=0x2 serdes_core_rx_polarity_flip_physical{9}=0xc diff --git a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/config.bcm.j2 b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/config.bcm.j2 index 9410a83b6716..db5b2562cca2 100644 --- a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/config.bcm.j2 +++ b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/config.bcm.j2 @@ -12,6 +12,7 @@ {%- set switch_subtype = DEVICE_METADATA['localhost']['subtype'] -%} {%- if 'dualtor' in switch_subtype.lower() %} {%- set IPinIP_sock = 'sai_tunnel_support=1 + sai_tunnel_underlay_route_mode=1 host_as_route_disable=1 l3_ecmp_levels=2' -%} {%- endif %} diff --git a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-D108C8/config.bcm.j2 b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-D108C8/config.bcm.j2 index d9d8347b50ae..70512203f206 100644 --- a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-D108C8/config.bcm.j2 +++ b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-D108C8/config.bcm.j2 @@ -4,6 +4,7 @@ {%- set switch_subtype = DEVICE_METADATA['localhost']['subtype'] -%} {%- if 'dualtor' in switch_subtype.lower() %} {%- set IPinIP_sock = 'sai_tunnel_support=1 + sai_tunnel_underlay_route_mode=1 host_as_route_disable=1 l3_ecmp_levels=2' -%} {%- endif %} diff --git a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-Q64/config.bcm.j2 b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-Q64/config.bcm.j2 index de65d73d40a1..ce8efa8572b5 100644 --- a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-Q64/config.bcm.j2 +++ b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-Q64/config.bcm.j2 @@ -12,6 +12,7 @@ {%- set switch_subtype = DEVICE_METADATA['localhost']['subtype'] -%} {%- if 'dualtor' in switch_subtype.lower() %} {%- set IPinIP_sock = 'sai_tunnel_support=1 + sai_tunnel_underlay_route_mode=1 host_as_route_disable=1 l3_ecmp_levels=2' -%} {%- endif %} diff --git a/src/sonic-device-data/tests/permitted_list b/src/sonic-device-data/tests/permitted_list index c1f70dc7be65..e1a651569b84 100644 --- a/src/sonic-device-data/tests/permitted_list +++ b/src/sonic-device-data/tests/permitted_list @@ -2,6 +2,7 @@ sai_trap_group_priority use_all_splithorizon_groups riot_enable sai_tunnel_support +sai_tunnel_underlay_route_mode riot_overlay_l3_intf_mem_size riot_overlay_l3_egress_mem_size l3_ecmp_levels From da43edcf3e50a7177b9610b01b6c65574f7d52a1 Mon Sep 17 00:00:00 2001 From: byu343 Date: Tue, 12 Apr 2022 15:53:35 -0700 Subject: [PATCH 078/251] [arista] Update serdes tuning values for 7800r3_48cqm2 (#9967) This update the serdes tuning values for Arista 7800r3_48cqm2. The values are for the optical transceivers. --- .../jr2-a7280cr3-32d4-40x100G.config.bcm | 49 +++++++++++++++++++ .../gearbox_100G_PAM4.xml | 34 +++++++++++-- 2 files changed, 78 insertions(+), 5 deletions(-) diff --git a/device/arista/x86_64-arista_7800r3_48cq2_lc/Arista-7800R3-48CQ2-C48/jr2-a7280cr3-32d4-40x100G.config.bcm b/device/arista/x86_64-arista_7800r3_48cq2_lc/Arista-7800R3-48CQ2-C48/jr2-a7280cr3-32d4-40x100G.config.bcm index 61026aad524e..f6f1774d8ee2 100644 --- a/device/arista/x86_64-arista_7800r3_48cq2_lc/Arista-7800R3-48CQ2-C48/jr2-a7280cr3-32d4-40x100G.config.bcm +++ b/device/arista/x86_64-arista_7800r3_48cq2_lc/Arista-7800R3-48CQ2-C48/jr2-a7280cr3-32d4-40x100G.config.bcm @@ -362,6 +362,55 @@ ucode_port_46=CGE2_25:core_1.46 ucode_port_47=CGE2_26:core_1.47 ucode_port_48=CGE2_24:core_1.48 +serdes_tx_taps_1=pam4:-18:86:0:4:0:0 +serdes_tx_taps_2=pam4:-18:86:0:4:0:0 +serdes_tx_taps_3=pam4:-18:86:0:4:0:0 +serdes_tx_taps_4=pam4:-18:86:0:4:0:0 +serdes_tx_taps_5=pam4:-18:86:0:4:0:0 +serdes_tx_taps_6=pam4:-18:86:0:4:0:0 +serdes_tx_taps_7=pam4:-18:86:0:4:0:0 +serdes_tx_taps_8=pam4:-18:86:0:4:0:0 +serdes_tx_taps_9=pam4:-18:86:0:4:0:0 +serdes_tx_taps_10=pam4:-18:86:0:4:0:0 +serdes_tx_taps_11=pam4:-18:86:0:4:0:0 +serdes_tx_taps_12=pam4:-18:86:0:4:0:0 +serdes_tx_taps_13=pam4:-18:86:0:4:0:0 +serdes_tx_taps_14=pam4:-18:86:0:4:0:0 +serdes_tx_taps_15=pam4:-18:86:0:4:0:0 +serdes_tx_taps_16=pam4:-18:86:0:4:0:0 +serdes_tx_taps_17=pam4:-18:86:0:4:0:0 +serdes_tx_taps_18=pam4:-18:86:0:4:0:0 +serdes_tx_taps_19=pam4:-18:86:0:4:0:0 +serdes_tx_taps_20=pam4:-18:86:0:4:0:0 +serdes_tx_taps_21=pam4:-18:86:0:4:0:0 +serdes_tx_taps_22=pam4:-18:86:0:4:0:0 +serdes_tx_taps_23=pam4:-18:86:0:4:0:0 +serdes_tx_taps_24=pam4:-18:86:0:4:0:0 +serdes_tx_taps_25=pam4:-18:86:0:4:0:0 +serdes_tx_taps_26=pam4:-18:86:0:4:0:0 +serdes_tx_taps_27=pam4:-18:86:0:4:0:0 +serdes_tx_taps_28=pam4:-18:86:0:4:0:0 +serdes_tx_taps_29=pam4:-18:86:0:4:0:0 +serdes_tx_taps_30=pam4:-18:86:0:4:0:0 +serdes_tx_taps_31=pam4:-18:86:0:4:0:0 +serdes_tx_taps_32=pam4:-18:86:0:4:0:0 +serdes_tx_taps_33=pam4:-18:86:0:4:0:0 +serdes_tx_taps_34=pam4:-18:86:0:4:0:0 +serdes_tx_taps_35=pam4:-18:86:0:4:0:0 +serdes_tx_taps_36=pam4:-18:86:0:4:0:0 +serdes_tx_taps_37=pam4:-18:86:0:4:0:0 +serdes_tx_taps_38=pam4:-18:86:0:4:0:0 +serdes_tx_taps_39=pam4:-18:86:0:4:0:0 +serdes_tx_taps_40=pam4:-18:86:0:4:0:0 +serdes_tx_taps_41=pam4:-18:86:0:4:0:0 +serdes_tx_taps_42=pam4:-18:86:0:4:0:0 +serdes_tx_taps_43=pam4:-18:86:0:4:0:0 +serdes_tx_taps_44=pam4:-18:86:0:4:0:0 +serdes_tx_taps_45=pam4:-18:86:0:4:0:0 +serdes_tx_taps_46=pam4:-18:86:0:4:0:0 +serdes_tx_taps_47=pam4:-18:86:0:4:0:0 +serdes_tx_taps_48=pam4:-18:86:0:4:0:0 + ucode_port_0.BCM8869X=CPU.0:core_0.0 ucode_port_200.BCM8869X=CPU.8:core_1.200 ucode_port_201.BCM8869X=CPU.16:core_0.201 diff --git a/device/arista/x86_64-arista_7800r3_48cqm2_lc/Arista-7800R3-48CQM2-C48/gearbox_100G_PAM4.xml b/device/arista/x86_64-arista_7800r3_48cqm2_lc/Arista-7800R3-48CQM2-C48/gearbox_100G_PAM4.xml index 95e20b91787e..044ef034a52d 100644 --- a/device/arista/x86_64-arista_7800r3_48cqm2_lc/Arista-7800R3-48CQM2-C48/gearbox_100G_PAM4.xml +++ b/device/arista/x86_64-arista_7800r3_48cqm2_lc/Arista-7800R3-48CQM2-C48/gearbox_100G_PAM4.xml @@ -4,11 +4,6 @@ 0 gearbox 2 - - 2,-8,17,0,0 - 0,-8,17,0,0 - - 0,0,1,0,0 @@ -34,4 +29,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 12ebe3ffa0a25e7cb541cfa03664da0ba47030f7 Mon Sep 17 00:00:00 2001 From: Saikrishna Arcot Date: Tue, 12 Apr 2022 16:24:13 -0700 Subject: [PATCH 079/251] Run tune2fs during initramfs instead of image install (#10536) If it is run during image install, it's not guaranteed that the installation environment will have tune2fs available. Therefore, run it during initramfs instead. Signed-off-by: Saikrishna Arcot --- files/Aboot/boot0.j2 | 3 --- files/initramfs-tools/mke2fs | 1 + files/initramfs-tools/union-mount.j2 | 1 + installer/arm64/install.sh | 5 ----- installer/armhf/install.sh | 5 ----- installer/x86_64/install.sh | 11 ----------- 6 files changed, 2 insertions(+), 24 deletions(-) diff --git a/files/Aboot/boot0.j2 b/files/Aboot/boot0.j2 index 7306c36cfc0c..2510695d1363 100644 --- a/files/Aboot/boot0.j2 +++ b/files/Aboot/boot0.j2 @@ -355,9 +355,6 @@ extract_image() { local rootdev="$(echo $mountstr | cut -f1 -d' ')" rootfs_type="$(echo $mountstr | cut -d' ' -f3)" - ## Don't reserve any blocks just for root - tune2fs -m 0 -r 0 $rootdev - info "Extracting $dockerfs from swi" ## Unpacking dockerfs delayed ## 1. when disk is vfat as it does not support symbolic link diff --git a/files/initramfs-tools/mke2fs b/files/initramfs-tools/mke2fs index 1f98f20c23c4..2c6d45ea5bc9 100644 --- a/files/initramfs-tools/mke2fs +++ b/files/initramfs-tools/mke2fs @@ -21,6 +21,7 @@ copy_exec /usr/sbin/mke2fs /usr/local/sbin/ copy_exec /sbin/sfdisk copy_exec /sbin/fdisk copy_exec /sbin/resize2fs +copy_exec /sbin/tune2fs copy_exec /sbin/findfs fstypes="ext4 ext3" diff --git a/files/initramfs-tools/union-mount.j2 b/files/initramfs-tools/union-mount.j2 index 7a64f71d70bb..c9dd19204406 100644 --- a/files/initramfs-tools/union-mount.j2 +++ b/files/initramfs-tools/union-mount.j2 @@ -133,6 +133,7 @@ case "${ROOT}" in *) ## Mount the raw partition again mount -t ext4 ${ROOT} ${rootmnt}/host + tune2fs -m 0 -r 0 ${ROOT} ;; esac diff --git a/installer/arm64/install.sh b/installer/arm64/install.sh index 249c5b521700..dee3ceec9038 100755 --- a/installer/arm64/install.sh +++ b/installer/arm64/install.sh @@ -139,11 +139,6 @@ elif [ "$install_env" = "sonic" ]; then rm -rf $f fi done - - demo_dev=$(findmnt -n -o SOURCE --target /host) - - # Don't reserve any blocks just for root - tune2fs -m 0 -r 0 $demo_dev fi # Create target directory or clean it up if exists diff --git a/installer/armhf/install.sh b/installer/armhf/install.sh index 8cffa755734f..9ade40d5149e 100755 --- a/installer/armhf/install.sh +++ b/installer/armhf/install.sh @@ -139,11 +139,6 @@ elif [ "$install_env" = "sonic" ]; then rm -rf $f fi done - - demo_dev=$(findmnt -n -o SOURCE --target /host) - - # Don't reserve any blocks just for root - tune2fs -m 0 -r 0 $demo_dev fi # Create target directory or clean it up if exists diff --git a/installer/x86_64/install.sh b/installer/x86_64/install.sh index 950d765d2418..dbab4d54ab72 100755 --- a/installer/x86_64/install.sh +++ b/installer/x86_64/install.sh @@ -477,9 +477,6 @@ if [ "$install_env" = "onie" ]; then # Make filesystem mkfs.ext4 -L $demo_volume_label $demo_dev - # Don't reserve any blocks just for root - tune2fs -m 0 -r 0 $demo_dev - # Mount demo filesystem demo_mnt=$(${onie_bin} mktemp -d) || { echo "Error: Unable to create file system mount point" @@ -512,20 +509,12 @@ elif [ "$install_env" = "sonic" ]; then rm -rf $f fi done - - demo_dev=$(findmnt -n -o SOURCE --target /host) - - # Don't reserve any blocks just for root - tune2fs -m 0 -r 0 $demo_dev else demo_mnt="build_raw_image_mnt" demo_dev=$cur_wd/"%%OUTPUT_RAW_IMAGE%%" mkfs.ext4 -L $demo_volume_label $demo_dev - # Don't reserve any blocks just for root - tune2fs -m 0 -r 0 $demo_dev - echo "Mounting $demo_dev on $demo_mnt..." mkdir $demo_mnt mount -t auto -o loop $demo_dev $demo_mnt From 44cf773a96f6fa03354208bf384c019683155881 Mon Sep 17 00:00:00 2001 From: Zhaohui Sun <94606222+ZhaohuiS@users.noreply.github.com> Date: Wed, 13 Apr 2022 08:57:10 +0800 Subject: [PATCH 080/251] Revert "[docker-ptf]: Upgrade scapy to 2.4.5 in docker-ptf (#10507)" (#10537) It upgraded scapy to 2.4.5 in docker-ptf container, after this upgrade, all scripts under ansible/roles/test/files/ptftests will import scapy 2.4.5, some test cases will fail because they are not upgraded accordingly. Reverts #10507 to avoid breaking regression test. This reverts commit 92efc01270675a3524a29a8e909fa1fdaeebed75. --- dockers/docker-ptf/Dockerfile.j2 | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/dockers/docker-ptf/Dockerfile.j2 b/dockers/docker-ptf/Dockerfile.j2 index 21a96288a62f..d999d01e0026 100644 --- a/dockers/docker-ptf/Dockerfile.j2 +++ b/dockers/docker-ptf/Dockerfile.j2 @@ -119,8 +119,7 @@ RUN rm -rf /debs \ && pip install pyrasite \ && mkdir -p /opt \ && cd /opt \ - && wget https://raw.githubusercontent.com/p4lang/ptf/master/ptf_nn/ptf_nn_agent.py \ - && pip install --upgrade --ignore-installed scapy==2.4.5 + && wget https://raw.githubusercontent.com/p4lang/ptf/master/ptf_nn/ptf_nn_agent.py ## Adjust sshd settings RUN mkdir /var/run/sshd \ From e6aa3b875136a26235f81b740976b26a85399f13 Mon Sep 17 00:00:00 2001 From: xumia <59720581+xumia@users.noreply.github.com> Date: Wed, 13 Apr 2022 11:40:06 +0800 Subject: [PATCH 081/251] [Build]: Fix pip version constraint conflict issue (#10525) Why I did it [Build]: Fix pip version constraint conflict issue When a version is specified in the constraint file, if upgrading the version in build script, it will have conflict issue. How I did it If a specified version has specified in pip command line, then the version constraint will be skipped. --- src/sonic-build-hooks/scripts/buildinfo_base.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/sonic-build-hooks/scripts/buildinfo_base.sh b/src/sonic-build-hooks/scripts/buildinfo_base.sh index 3873d1362926..e1ef80b01162 100755 --- a/src/sonic-build-hooks/scripts/buildinfo_base.sh +++ b/src/sonic-build-hooks/scripts/buildinfo_base.sh @@ -169,6 +169,10 @@ run_pip_command() elif [[ "$para" == *.whl ]]; then package_name=$(echo $para | cut -d- -f1 | tr _ .) $SUDO sed "/^${package_name}==/d" -i $tmp_version_file + elif [[ "$para" == *==* ]]; then + # fix pip package constraint conflict issue + package_name=$(echo $para | cut -d= -f1) + $SUDO sed "/^${package_name}==/d" -i $tmp_version_file fi done From fb25f13ee8955311d0ed23c270c8da9d399b9b64 Mon Sep 17 00:00:00 2001 From: Kebo Liu Date: Wed, 13 Apr 2022 12:18:29 +0800 Subject: [PATCH 082/251] [submodule] Advance sonic-platform-common pointer (#10538) b70e759 support new reboot-cause #277 Signed-off-by: Kebo Liu --- src/sonic-platform-common | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-platform-common b/src/sonic-platform-common index 01512ecce4d6..b70e75979f70 160000 --- a/src/sonic-platform-common +++ b/src/sonic-platform-common @@ -1 +1 @@ -Subproject commit 01512ecce4d6ce7272c0bbb7a5d47a1c02d92221 +Subproject commit b70e75979f704e980a3fb20732642ec99f32b0ee From 8c10c01bd8720fa7023107dd636e60361c1e9293 Mon Sep 17 00:00:00 2001 From: Oleksandr Kozodoi Date: Wed, 13 Apr 2022 19:11:01 +0300 Subject: [PATCH 083/251] Updated format of generating BUFFER_QUEUE in buffers_defaults templates (#9850) This PR includes necessary changes for correct generating BUFFER_QUEUE values in DB. Changes are based on the schema.md Why I did it Change format of generating BUFFER_QUEUE in DB according to schema.md and yang-model. Old format: "BUFFER_QUEUE": { "Ethernet0,Ethernet100,Ethernet104,Ethernet108,Ethernet112,Ethernet116,Ethernet12,Ethernet120,Ethernet124,Ethernet16,Ethernet20,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet4,Ethernet40,Ethernet44,Ethernet48,Ethernet52,Ethernet56,Ethernet60,Ethernet64,Ethernet68,Ethernet72,Ethernet76,Ethernet8,Ethernet80,Ethernet84,Ethernet88,Ethernet92,Ethernet96|queue": { "profile": "profile" }, "Ethernet0,Ethernet100,Ethernet104,Ethernet108,Ethernet112,Ethernet116,Ethernet12,Ethernet120,Ethernet124,Ethernet16,Ethernet20,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet4,Ethernet40,Ethernet44,Ethernet48,Ethernet52,Ethernet56,Ethernet60,Ethernet64,Ethernet68,Ethernet72,Ethernet76,Ethernet8,Ethernet80,Ethernet84,Ethernet88,Ethernet92,Ethernet96|queue": { "profile": "profile" } }, New format: "BUFFER_QUEUE": { "Ethernet0|queue": { "profile": "profile" }, "Ethernet0|queue": { "profile": "profile" }, "Ethernet4|queue": { "profile": "profile" }, "Ethernet4|queue": { "profile": "profile" }, "Ethernet8|queue": { "profile": "profile" }, "Ethernet8|queue": { "profile": "profile" }, ... } How I did it Updated structure of buffers_defaults jinja templates. Signed-off-by: Oleksandr Kozodoi --- .../Arista-7170-64C/buffers_defaults_t0.j2 | 14 +++++++----- .../Arista-7170-64C/buffers_defaults_t1.j2 | 14 +++++++----- .../newport/buffers_defaults_t0.j2 | 17 ++++++++------ .../newport/buffers_defaults_t1.j2 | 17 ++++++++------ .../montara/buffers_defaults_t0.j2 | 22 ++++++++----------- .../montara/buffers_defaults_t1.j2 | 22 ++++++++----------- 6 files changed, 56 insertions(+), 50 deletions(-) diff --git a/device/arista/x86_64-arista_7170_64c/Arista-7170-64C/buffers_defaults_t0.j2 b/device/arista/x86_64-arista_7170_64c/Arista-7170-64C/buffers_defaults_t0.j2 index 568b74b34a41..a6eefe8d36b0 100644 --- a/device/arista/x86_64-arista_7170_64c/Arista-7170-64C/buffers_defaults_t0.j2 +++ b/device/arista/x86_64-arista_7170_64c/Arista-7170-64C/buffers_defaults_t0.j2 @@ -61,11 +61,15 @@ {%- macro generate_queue_buffers(port_names) %} "BUFFER_QUEUE": { - "{{ port_names }}|3-4": { - "profile" : "egress_lossless_profile" - }, - "{{ port_names }}|0-1": { +{% for port in port_names.split(',') %} + "{{ port }}|0-2": { "profile" : "q_lossy_profile" - } + }, +{% endfor %} +{% for port in port_names.split(',') %} + "{{ port }}|3-4": { + "profile" : "egress_lossless_profile" + }{% if not loop.last %},{% endif %} +{% endfor %} } {%- endmacro %} diff --git a/device/arista/x86_64-arista_7170_64c/Arista-7170-64C/buffers_defaults_t1.j2 b/device/arista/x86_64-arista_7170_64c/Arista-7170-64C/buffers_defaults_t1.j2 index 161afd10cea3..563137d90b90 100644 --- a/device/arista/x86_64-arista_7170_64c/Arista-7170-64C/buffers_defaults_t1.j2 +++ b/device/arista/x86_64-arista_7170_64c/Arista-7170-64C/buffers_defaults_t1.j2 @@ -61,11 +61,15 @@ {%- macro generate_queue_buffers(port_names) %} "BUFFER_QUEUE": { - "{{ port_names }}|3-4": { - "profile" : "egress_lossless_profile" - }, - "{{ port_names }}|0-1": { +{% for port in port_names.split(',') %} + "{{ port }}|0-2": { "profile" : "q_lossy_profile" - } + }, +{% endfor %} +{% for port in port_names.split(',') %} + "{{ port }}|3-4": { + "profile" : "egress_lossless_profile" + }{% if not loop.last %},{% endif %} +{% endfor %} } {%- endmacro %} diff --git a/device/barefoot/x86_64-accton_as9516_32d-r0/newport/buffers_defaults_t0.j2 b/device/barefoot/x86_64-accton_as9516_32d-r0/newport/buffers_defaults_t0.j2 index 34c5db2ef708..a06f62f733ae 100644 --- a/device/barefoot/x86_64-accton_as9516_32d-r0/newport/buffers_defaults_t0.j2 +++ b/device/barefoot/x86_64-accton_as9516_32d-r0/newport/buffers_defaults_t0.j2 @@ -16,8 +16,7 @@ "ingress_lossless_pool": { "size": "{{ ingress_lossless_pool_size }}", "type": "ingress", - "mode": "dynamic", - "xoff": "36222208" + "mode": "dynamic" }, "ingress_lossy_pool": { "size": "{{ ingress_lossy_pool_size }}", @@ -61,11 +60,15 @@ {%- macro generate_queue_buffers(port_names) %} "BUFFER_QUEUE": { - "{{ port_names }}|3-4": { - "profile" : "egress_lossless_profile" - }, - "{{ port_names }}|0-1": { +{% for port in port_names.split(',') %} + "{{ port }}|0-2": { "profile" : "q_lossy_profile" - } + }, +{% endfor %} +{% for port in port_names.split(',') %} + "{{ port }}|3-4": { + "profile" : "egress_lossless_profile" + }{% if not loop.last %},{% endif %} +{% endfor %} } {%- endmacro %} diff --git a/device/barefoot/x86_64-accton_as9516_32d-r0/newport/buffers_defaults_t1.j2 b/device/barefoot/x86_64-accton_as9516_32d-r0/newport/buffers_defaults_t1.j2 index 34c5db2ef708..a06f62f733ae 100644 --- a/device/barefoot/x86_64-accton_as9516_32d-r0/newport/buffers_defaults_t1.j2 +++ b/device/barefoot/x86_64-accton_as9516_32d-r0/newport/buffers_defaults_t1.j2 @@ -16,8 +16,7 @@ "ingress_lossless_pool": { "size": "{{ ingress_lossless_pool_size }}", "type": "ingress", - "mode": "dynamic", - "xoff": "36222208" + "mode": "dynamic" }, "ingress_lossy_pool": { "size": "{{ ingress_lossy_pool_size }}", @@ -61,11 +60,15 @@ {%- macro generate_queue_buffers(port_names) %} "BUFFER_QUEUE": { - "{{ port_names }}|3-4": { - "profile" : "egress_lossless_profile" - }, - "{{ port_names }}|0-1": { +{% for port in port_names.split(',') %} + "{{ port }}|0-2": { "profile" : "q_lossy_profile" - } + }, +{% endfor %} +{% for port in port_names.split(',') %} + "{{ port }}|3-4": { + "profile" : "egress_lossless_profile" + }{% if not loop.last %},{% endif %} +{% endfor %} } {%- endmacro %} diff --git a/device/barefoot/x86_64-accton_wedge100bf_32x-r0/montara/buffers_defaults_t0.j2 b/device/barefoot/x86_64-accton_wedge100bf_32x-r0/montara/buffers_defaults_t0.j2 index 3e18b6dbad08..0e096c39d4dd 100644 --- a/device/barefoot/x86_64-accton_wedge100bf_32x-r0/montara/buffers_defaults_t0.j2 +++ b/device/barefoot/x86_64-accton_wedge100bf_32x-r0/montara/buffers_defaults_t0.j2 @@ -63,21 +63,17 @@ }, {%- endmacro %} -{%- macro generate_pg_profils(port_names) %} - "BUFFER_PG": { - "{{ port_names }}|3-4": { - "profile" : "ingress_lossless_profile" - } - }, -{%- endmacro %} - {%- macro generate_queue_buffers(port_names) %} "BUFFER_QUEUE": { - "{{ port_names }}|3-4": { - "profile" : "egress_lossless_profile" - }, - "{{ port_names }}|0-1": { +{% for port in port_names.split(',') %} + "{{ port }}|0-2": { "profile" : "q_lossy_profile" - } + }, +{% endfor %} +{% for port in port_names.split(',') %} + "{{ port }}|3-4": { + "profile" : "egress_lossless_profile" + }{% if not loop.last %},{% endif %} +{% endfor %} } {%- endmacro %} diff --git a/device/barefoot/x86_64-accton_wedge100bf_32x-r0/montara/buffers_defaults_t1.j2 b/device/barefoot/x86_64-accton_wedge100bf_32x-r0/montara/buffers_defaults_t1.j2 index 923e5a102836..0067d92c926c 100644 --- a/device/barefoot/x86_64-accton_wedge100bf_32x-r0/montara/buffers_defaults_t1.j2 +++ b/device/barefoot/x86_64-accton_wedge100bf_32x-r0/montara/buffers_defaults_t1.j2 @@ -63,21 +63,17 @@ }, {%- endmacro %} -{%- macro generate_pg_profils(port_names) %} - "BUFFER_PG": { - "{{ port_names }}|3-4": { - "profile" : "ingress_lossless_profile" - } - }, -{%- endmacro %} - {%- macro generate_queue_buffers(port_names) %} "BUFFER_QUEUE": { - "{{ port_names }}|3-4": { - "profile" : "egress_lossless_profile" - }, - "{{ port_names }}|0-1": { +{% for port in port_names.split(',') %} + "{{ port }}|0-2": { "profile" : "q_lossy_profile" - } + }, +{% endfor %} +{% for port in port_names.split(',') %} + "{{ port }}|3-4": { + "profile" : "egress_lossless_profile" + }{% if not loop.last %},{% endif %} +{% endfor %} } {%- endmacro %} From 812f17d6f1bf21c5d3a711f59e2a81b217cd42b2 Mon Sep 17 00:00:00 2001 From: Longxiang Lyu <35479537+lolyu@users.noreply.github.com> Date: Thu, 14 Apr 2022 08:59:54 +0800 Subject: [PATCH 084/251] Add `libgmock` package for `linkmgrd` (#10294) Why I did it Add libgmock-dev to the package list required by linkmgrd unittests. Required by PR: Azure/sonic-linkmgrd#45 How I did it Add the package to the package list. How to verify it Build docker-mux with KEEP_SLAVE_ON=yes and verify libgmock-dev is present. Signed-off-by: Longxiang Lyu --- sonic-slave-bullseye/Dockerfile.j2 | 1 + sonic-slave-buster/Dockerfile.j2 | 1 + 2 files changed, 2 insertions(+) diff --git a/sonic-slave-bullseye/Dockerfile.j2 b/sonic-slave-bullseye/Dockerfile.j2 index 741f708de269..9a47b48ab93f 100644 --- a/sonic-slave-bullseye/Dockerfile.j2 +++ b/sonic-slave-bullseye/Dockerfile.j2 @@ -341,6 +341,7 @@ RUN apt-get update && apt-get install -y \ libboost-regex-dev \ googletest \ libgtest-dev \ + libgmock-dev \ libgcc-10-dev \ # For sonic-host-services build libcairo2-dev \ diff --git a/sonic-slave-buster/Dockerfile.j2 b/sonic-slave-buster/Dockerfile.j2 index fa8ac44f1b9e..269501fb2e47 100644 --- a/sonic-slave-buster/Dockerfile.j2 +++ b/sonic-slave-buster/Dockerfile.j2 @@ -353,6 +353,7 @@ RUN apt-get update && apt-get install -y \ libboost-regex1.71-dev \ googletest \ libgtest-dev \ + libgmock-dev \ libgcc-8-dev \ # For sonic-host-services build libcairo2-dev \ From 0191300b96465e3124733a1ab91b9510c9e0393c Mon Sep 17 00:00:00 2001 From: Junchao-Mellanox <57339448+Junchao-Mellanox@users.noreply.github.com> Date: Thu, 14 Apr 2022 13:14:40 +0800 Subject: [PATCH 085/251] [Mellanox] Auto correct PSU voltage threshold (WA) (#10394) - Why I did it There is a hardware bug that PSU voltage threshold sysfs returns incorrect value. The workaround is to call "sensor -s" to refresh it. - How I did it Call "sensor -s" when the threshold value is not incorrect and PSU is "DELTA 1100" - How to verify it Unit test and Manual test --- .../x86_64-mlnx_msn3700-r0/sensors.conf | 6 ++ .../x86_64-mlnx_msn3700c-r0/sensors.conf | 6 ++ .../x86_64-mlnx_msn3800-r0/sensors.conf | 6 ++ .../x86_64-mlnx_msn4600c-r0/sensors.conf | 6 ++ .../x86_64-mlnx_msn4600c-r0/sensors.conf.a1 | 6 ++ .../mlnx-platform-api/sonic_platform/psu.py | 70 +++++++++++++++++++ .../mlnx-platform-api/sonic_platform/utils.py | 13 ++++ .../sonic_platform/vpd_parser.py | 15 ++++ .../mlnx-platform-api/tests/test_psu.py | 37 ++++++++++ .../mlnx-platform-api/tests/test_utils.py | 4 ++ 10 files changed, 169 insertions(+) diff --git a/device/mellanox/x86_64-mlnx_msn3700-r0/sensors.conf b/device/mellanox/x86_64-mlnx_msn3700-r0/sensors.conf index 281f0a54dfa3..59c99ac98e39 100644 --- a/device/mellanox/x86_64-mlnx_msn3700-r0/sensors.conf +++ b/device/mellanox/x86_64-mlnx_msn3700-r0/sensors.conf @@ -85,6 +85,9 @@ bus "i2c-4" "i2c-1-mux (chan_id 3)" label power2 "PSU-2 12V Rail Pwr (out)" label curr1 "PSU-2 220V Rail Curr (in)" label curr2 "PSU-2 12V Rail Curr (out)" + set in3_lcrit in3_crit * 0.662 + set in3_min in3_crit * 0.745 + set in3_max in3_crit * 0.952 chip "dps460-i2c-*-59" label in1 "PSU-1 220V Rail (in)" ignore in2 @@ -99,6 +102,9 @@ bus "i2c-4" "i2c-1-mux (chan_id 3)" label power2 "PSU-1 12V Rail Pwr (out)" label curr1 "PSU-1 220V Rail Curr (in)" label curr2 "PSU-1 12V Rail Curr (out)" + set in3_lcrit in3_crit * 0.662 + set in3_min in3_crit * 0.745 + set in3_max in3_crit * 0.952 # Chassis fans chip "mlxreg_fan-isa-*" diff --git a/device/mellanox/x86_64-mlnx_msn3700c-r0/sensors.conf b/device/mellanox/x86_64-mlnx_msn3700c-r0/sensors.conf index 094cd78cde57..343385fcd4de 100644 --- a/device/mellanox/x86_64-mlnx_msn3700c-r0/sensors.conf +++ b/device/mellanox/x86_64-mlnx_msn3700c-r0/sensors.conf @@ -85,6 +85,9 @@ bus "i2c-4" "i2c-1-mux (chan_id 3)" label power2 "PSU-2 12V Rail Pwr (out)" label curr1 "PSU-2 220V Rail Curr (in)" label curr2 "PSU-2 12V Rail Curr (out)" + set in3_lcrit in3_crit * 0.662 + set in3_min in3_crit * 0.745 + set in3_max in3_crit * 0.952 chip "dps460-i2c-*-59" label in1 "PSU-1 220V Rail (in)" ignore in2 @@ -99,6 +102,9 @@ bus "i2c-4" "i2c-1-mux (chan_id 3)" label power2 "PSU-1 12V Rail Pwr (out)" label curr1 "PSU-1 220V Rail Curr (in)" label curr2 "PSU-1 12V Rail Curr (out)" + set in3_lcrit in3_crit * 0.662 + set in3_min in3_crit * 0.745 + set in3_max in3_crit * 0.952 # Chassis fans chip "mlxreg_fan-isa-*" diff --git a/device/mellanox/x86_64-mlnx_msn3800-r0/sensors.conf b/device/mellanox/x86_64-mlnx_msn3800-r0/sensors.conf index 7ba5f9c8c050..0b1cfc75548a 100644 --- a/device/mellanox/x86_64-mlnx_msn3800-r0/sensors.conf +++ b/device/mellanox/x86_64-mlnx_msn3800-r0/sensors.conf @@ -106,6 +106,9 @@ bus "i2c-4" "i2c-1-mux (chan_id 3)" label power2 "PSU-2 12V Rail Pwr (out)" label curr1 "PSU-2 220V Rail Curr (in)" label curr2 "PSU-2 12V Rail Curr (out)" + set in3_lcrit in3_crit * 0.662 + set in3_min in3_crit * 0.745 + set in3_max in3_crit * 0.952 chip "dps460-i2c-*-59" label in1 "PSU-1 220V Rail (in)" ignore in2 @@ -120,6 +123,9 @@ bus "i2c-4" "i2c-1-mux (chan_id 3)" label power2 "PSU-1 12V Rail Pwr (out)" label curr1 "PSU-1 220V Rail Curr (in)" label curr2 "PSU-1 12V Rail Curr (out)" + set in3_lcrit in3_crit * 0.662 + set in3_min in3_crit * 0.745 + set in3_max in3_crit * 0.952 # Chassis fans chip "mlxreg_fan-isa-*" diff --git a/device/mellanox/x86_64-mlnx_msn4600c-r0/sensors.conf b/device/mellanox/x86_64-mlnx_msn4600c-r0/sensors.conf index 9c80350e19ad..3ff78f15023f 100644 --- a/device/mellanox/x86_64-mlnx_msn4600c-r0/sensors.conf +++ b/device/mellanox/x86_64-mlnx_msn4600c-r0/sensors.conf @@ -167,6 +167,9 @@ bus "i2c-4" "i2c-1-mux (chan_id 3)" label power2 "PSU-1(L) 12V Rail Pwr (out)" label curr1 "PSU-1(L) 220V Rail Curr (in)" label curr2 "PSU-1(L) 12V Rail Curr (out)" + set in3_lcrit in3_crit * 0.662 + set in3_min in3_crit * 0.745 + set in3_max in3_crit * 0.952 chip "dps460-i2c-*-59" label in1 "PSU-2(R) 220V Rail (in)" ignore in2 @@ -181,6 +184,9 @@ bus "i2c-4" "i2c-1-mux (chan_id 3)" label power2 "PSU-2(R) 12V Rail Pwr (out)" label curr1 "PSU-2(R) 220V Rail Curr (in)" label curr2 "PSU-2(R) 12V Rail Curr (out)" + set in3_lcrit in3_crit * 0.662 + set in3_min in3_crit * 0.745 + set in3_max in3_crit * 0.952 # Chassis fans chip "mlxreg_fan-isa-*" diff --git a/device/mellanox/x86_64-mlnx_msn4600c-r0/sensors.conf.a1 b/device/mellanox/x86_64-mlnx_msn4600c-r0/sensors.conf.a1 index 44fff272e544..a0ebc677ad56 100644 --- a/device/mellanox/x86_64-mlnx_msn4600c-r0/sensors.conf.a1 +++ b/device/mellanox/x86_64-mlnx_msn4600c-r0/sensors.conf.a1 @@ -123,6 +123,9 @@ bus "i2c-4" "i2c-1-mux (chan_id 3)" label power2 "PSU-1(L) 12V Rail Pwr (out)" label curr1 "PSU-1(L) 220V Rail Curr (in)" label curr2 "PSU-1(L) 12V Rail Curr (out)" + set in3_lcrit in3_crit * 0.662 + set in3_min in3_crit * 0.745 + set in3_max in3_crit * 0.952 chip "dps460-i2c-*-59" label in1 "PSU-2(R) 220V Rail (in)" ignore in2 @@ -137,6 +140,9 @@ bus "i2c-4" "i2c-1-mux (chan_id 3)" label power2 "PSU-2(R) 12V Rail Pwr (out)" label curr1 "PSU-2(R) 220V Rail Curr (in)" label curr2 "PSU-2(R) 12V Rail Curr (out)" + set in3_lcrit in3_crit * 0.662 + set in3_min in3_crit * 0.745 + set in3_max in3_crit * 0.952 # Chassis fans chip "mlxreg_fan-isa-*" diff --git a/platform/mellanox/mlnx-platform-api/sonic_platform/psu.py b/platform/mellanox/mlnx-platform-api/sonic_platform/psu.py index 39494a124ed4..a2dcfcd55b4e 100644 --- a/platform/mellanox/mlnx-platform-api/sonic_platform/psu.py +++ b/platform/mellanox/mlnx-platform-api/sonic_platform/psu.py @@ -24,8 +24,10 @@ try: import os + import time from sonic_platform_base.psu_base import PsuBase from sonic_py_common.logger import Logger + from .device_data import DeviceDataManager from .led import PsuLed, SharedLed, ComponentFaultyIndicator from . import utils from .vpd_parser import VpdParser @@ -411,6 +413,7 @@ def get_voltage_high_threshold(self): capability = utils.read_str_from_file(self.psu_voltage_capability) if 'max' in capability: max_voltage = utils.read_int_from_file(self.psu_voltage_max, log_func=logger.log_info) + max_voltage = InvalidPsuVolWA.run(self, max_voltage, self.psu_voltage_max) return float(max_voltage) / 1000 return None @@ -431,6 +434,7 @@ def get_voltage_low_threshold(self): capability = utils.read_str_from_file(self.psu_voltage_capability) if 'min' in capability: min_voltage = utils.read_int_from_file(self.psu_voltage_min, log_func=logger.log_info) + min_voltage = InvalidPsuVolWA.run(self, min_voltage, self.psu_voltage_min) return float(min_voltage) / 1000 return None @@ -448,3 +452,69 @@ def get_maximum_supplied_power(self): return float(power_max) / 1000000 else: return None + + +class InvalidPsuVolWA: + """This class is created as a workaround for a known hardware issue that the PSU voltage threshold could be a + invalid value 127998. Once we read a voltage threshold value equal to 127998, we should do following: + 1. Check the PSU vendor, it should be Delta + 2. Generate a temp sensor configuration file which contains a few set commands. Those set commands are the WA provided by low level team. + 3. Call "sensors -s -c " + 4. Wait for it to take effect + + This issue is found on 3700, 3700c, 3800, 4600c + """ + + INVALID_VOLTAGE_VALUE = 127998 + EXPECT_VENDOR_NAME = 'DELTA' + EXPECT_CAPACITY = '1100' + EXPECT_PLATFORMS = ['x86_64-mlnx_msn3700-r0', 'x86_64-mlnx_msn3700c-r0', 'x86_64-mlnx_msn3800-r0', 'x86_64-mlnx_msn4600c-r0'] + MFR_FIELD = 'MFR_NAME' + CAPACITY_FIELD = 'CAPACITY' + WAIT_TIME = 5 + + @classmethod + def run(cls, psu, threshold_value, threshold_file): + if threshold_value != cls.INVALID_VOLTAGE_VALUE: + # If the threshold value is not an invalid value, just return + return threshold_value + + platform_name = DeviceDataManager.get_platform_name() + # Apply the WA to specified platforms + if platform_name not in cls.EXPECT_PLATFORMS: + # It is unlikely to go to this branch, so we log a warning here + logger.log_warning('PSU {} threshold file {} value {}, but platform is {}'.format(psu.index, threshold_file, threshold_value, platform_name)) + return threshold_value + + # Check PSU vendor, make sure it is DELTA + vendor_name = psu.vpd_parser.get_entry_value(cls.MFR_FIELD) + if vendor_name != 'N/A' and vendor_name != cls.EXPECT_VENDOR_NAME: + # It is unlikely to go to this branch, so we log a warning here + logger.log_warning('PSU {} threshold file {} value {}, but its vendor is {}'.format(psu.index, threshold_file, threshold_value, vendor_name)) + return threshold_value + + # Check PSU version, make sure it is 1100 + capacity = psu.vpd_parser.get_entry_value(cls.CAPACITY_FIELD) + if capacity != 'N/A' and capacity != cls.EXPECT_CAPACITY: + logger.log_warning('PSU {} threshold file {} value {}, but its capacity is {}'.format(psu.index, threshold_file, threshold_value, capacity)) + return threshold_value + + # Run a sensor -s command to triger hardware to get the real threashold value + utils.run_command('sensor -s') + + # Wait for the threshold value change + return cls.wait_set_done(threshold_file) + + @classmethod + def wait_set_done(cls, threshold_file): + wait_time = cls.WAIT_TIME + while wait_time > 0: + value = utils.read_int_from_file(threshold_file, log_func=logger.log_info) + if value != cls.INVALID_VOLTAGE_VALUE: + return value + + wait_time -= 1 + time.sleep(1) + + logger.log_error('sensor -s does not recover PSU threshold sensor after {} seconds'.format(cls.WAIT_TIME)) + return None diff --git a/platform/mellanox/mlnx-platform-api/sonic_platform/utils.py b/platform/mellanox/mlnx-platform-api/sonic_platform/utils.py index 0650d9af1a1c..22ef4bb1f27d 100644 --- a/platform/mellanox/mlnx-platform-api/sonic_platform/utils.py +++ b/platform/mellanox/mlnx-platform-api/sonic_platform/utils.py @@ -194,3 +194,16 @@ def _impl(*args, **kwargs): return return_value return _impl return wrapper + + +def run_command(command): + """ + Utility function to run an shell command and return the output. + :param command: Shell command string. + :return: Output of the shell command. + """ + try: + process = subprocess.Popen(command, shell=True, universal_newlines=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + return process.communicate()[0].strip() + except Exception: + return None \ No newline at end of file diff --git a/platform/mellanox/mlnx-platform-api/sonic_platform/vpd_parser.py b/platform/mellanox/mlnx-platform-api/sonic_platform/vpd_parser.py index ea66234e4bff..e53d825adfd6 100644 --- a/platform/mellanox/mlnx-platform-api/sonic_platform/vpd_parser.py +++ b/platform/mellanox/mlnx-platform-api/sonic_platform/vpd_parser.py @@ -24,6 +24,7 @@ SN_VPD_FIELD = "SN_VPD_FIELD" PN_VPD_FIELD = "PN_VPD_FIELD" REV_VPD_FIELD = "REV_VPD_FIELD" +MFR_VPD_FIELD = "MFR_NAME" class VpdParser: @@ -82,3 +83,17 @@ def get_revision(self): logger.log_error("Fail to read revision: No key {} in VPD {}".format(REV_VPD_FIELD, self.vpd_file)) return 'N/A' return self.vpd_data.get(REV_VPD_FIELD, 'N/A') + + def get_entry_value(self, key): + """ + Retrieves an vpd entry of the device + + Returns: + string: Vpd entry value of device + """ + if self._get_data() and key not in self.vpd_data: + logger.log_warning("Fail to read vpd info: No key {} in VPD {}".format(key, self.vpd_file)) + return 'N/A' + return self.vpd_data.get(key, 'N/A') + + diff --git a/platform/mellanox/mlnx-platform-api/tests/test_psu.py b/platform/mellanox/mlnx-platform-api/tests/test_psu.py index c53a9d44797d..5a5f13ff05f3 100644 --- a/platform/mellanox/mlnx-platform-api/tests/test_psu.py +++ b/platform/mellanox/mlnx-platform-api/tests/test_psu.py @@ -116,3 +116,40 @@ def test_psu_vpd(self): assert psu.get_model() == 'MTEF-PSF-AC-C' assert psu.get_serial() == 'MT1946X07684' assert psu.get_revision() == 'A3' + + assert psu.vpd_parser.get_entry_value('MFR_NAME') == 'DELTA' + + @mock.patch('sonic_platform.utils.read_int_from_file', mock.MagicMock(return_value=9999)) + @mock.patch('sonic_platform.utils.run_command') + @mock.patch('sonic_platform.device_data.DeviceDataManager.get_platform_name') + @mock.patch('sonic_platform.vpd_parser.VpdParser.get_entry_value') + def test_psu_workaround(self, mock_get_entry_value, mock_get_platform_name, mock_run_command): + from sonic_platform.psu import InvalidPsuVolWA + psu = Psu(0) + # Threshold value is not InvalidPsuVolWA.INVALID_VOLTAGE_VALUE + assert InvalidPsuVolWA.run(psu, 9999, '') == 9999 + + # Platform name is not in InvalidPsuVolWA.EXPECT_PLATFORMS + mock_get_platform_name.return_value = 'some platform' + assert InvalidPsuVolWA.run(psu, InvalidPsuVolWA.INVALID_VOLTAGE_VALUE, '') == InvalidPsuVolWA.INVALID_VOLTAGE_VALUE + + # PSU vendor is not InvalidPsuVolWA.EXPECT_VENDOR_NAME + vpd_info = { + InvalidPsuVolWA.MFR_FIELD: 'some psu', + InvalidPsuVolWA.CAPACITY_FIELD: 'some capacity' + } + def get_entry_value(key): + return vpd_info[key] + + mock_get_entry_value.side_effect = get_entry_value + mock_get_platform_name.return_value = 'x86_64-mlnx_msn3700-r0' + assert InvalidPsuVolWA.run(psu, InvalidPsuVolWA.INVALID_VOLTAGE_VALUE, '') == InvalidPsuVolWA.INVALID_VOLTAGE_VALUE + + # PSU capacity is not InvalidPsuVolWA.EXPECT_CAPACITY + vpd_info[InvalidPsuVolWA.MFR_FIELD] = InvalidPsuVolWA.EXPECT_VENDOR_NAME + assert InvalidPsuVolWA.run(psu, InvalidPsuVolWA.INVALID_VOLTAGE_VALUE, '') == InvalidPsuVolWA.INVALID_VOLTAGE_VALUE + + # Normal + vpd_info[InvalidPsuVolWA.CAPACITY_FIELD] = InvalidPsuVolWA.EXPECT_CAPACITY + assert InvalidPsuVolWA.run(psu, InvalidPsuVolWA.INVALID_VOLTAGE_VALUE, '') == 9999 + mock_run_command.assert_called_with('sensor -s') diff --git a/platform/mellanox/mlnx-platform-api/tests/test_utils.py b/platform/mellanox/mlnx-platform-api/tests/test_utils.py index 7da17dc5e7bc..bbc3ab28e58c 100644 --- a/platform/mellanox/mlnx-platform-api/tests/test_utils.py +++ b/platform/mellanox/mlnx-platform-api/tests/test_utils.py @@ -116,3 +116,7 @@ def func(): assert func() == 100 assert mock_log.call_count == 1 + + def test_run_command(self): + output = utils.run_command('ls') + assert output From d9117d94118e9aea7a64d27747ceb9c1bf638156 Mon Sep 17 00:00:00 2001 From: Yakiv Huryk <62013282+Yakiv-Huryk@users.noreply.github.com> Date: Fri, 15 Apr 2022 01:00:32 +0300 Subject: [PATCH 086/251] [Mellanox][asan] add address sanitizer support for syncd (#10266) Why I did it To support address sanitizer for Mellanox syncd How I did it /var/log/asan is mapped for syncd container (the same as for swss) container stop() has a timeout (60s) for syncd (the same as for swss) This is so libasan has enough time to generate a report. added ASAN's log path to Mellanox syncd supervisord.conf added "asan: yes" to sonic_version.yml How to verify it Added artificial memory leaks Compiled with ENABLE_ASAN=y Installed the image on DUT Rebooted the DUT Verified that /var/log/asan/syncd-asan.log contains the leaks Signed-off-by: Yakiv Huryk --- files/build_templates/docker_image_ctl.j2 | 6 +++--- files/build_templates/sonic_version.yml.j2 | 4 +++- platform/mellanox/docker-syncd-mlnx/Dockerfile.j2 | 9 ++++++++- .../{supervisord.conf => supervisord.conf.j2} | 3 +++ 4 files changed, 17 insertions(+), 5 deletions(-) rename platform/mellanox/docker-syncd-mlnx/{supervisord.conf => supervisord.conf.j2} (89%) diff --git a/files/build_templates/docker_image_ctl.j2 b/files/build_templates/docker_image_ctl.j2 index 6d5024b716eb..81efc39231e9 100644 --- a/files/build_templates/docker_image_ctl.j2 +++ b/files/build_templates/docker_image_ctl.j2 @@ -435,9 +435,9 @@ start() { {%- endif %} {%- if docker_container_name == "swss" %} -e ASIC_VENDOR={{ sonic_asic_platform }} \ -{%- if enable_asan == "y" %} - -v /var/log/asan/:/var/log/asan \ {%- endif -%} +{%- if docker_container_name in ["swss", "syncd"] and enable_asan == "y" %} + -v /var/log/asan/:/var/log/asan \ {%- endif -%} {%- if docker_container_name == "bgp" %} -v /etc/sonic/frr/$DEV:/etc/frr:rw \ @@ -499,7 +499,7 @@ stop() { {%- elif docker_container_name == "teamd" %} # Longer timeout of 60 sec to wait for Portchannels to be cleaned. /usr/local/bin/container stop -t 60 $DOCKERNAME - {%- elif docker_container_name == "swss" and enable_asan == "y" %} + {%- elif docker_container_name in ["swss", "syncd"] and enable_asan == "y" %} /usr/local/bin/container stop -t 60 $DOCKERNAME {%- else %} /usr/local/bin/container stop $DOCKERNAME diff --git a/files/build_templates/sonic_version.yml.j2 b/files/build_templates/sonic_version.yml.j2 index 6e3f3acac95a..bc6fb54189d4 100644 --- a/files/build_templates/sonic_version.yml.j2 +++ b/files/build_templates/sonic_version.yml.j2 @@ -26,4 +26,6 @@ built_by: {{ built_by }} {{ name }}: {{ version }} {% endfor -%} {% endif -%} - +{% if ENABLE_ASAN == "y" -%} +asan: 'yes' +{% endif -%} diff --git a/platform/mellanox/docker-syncd-mlnx/Dockerfile.j2 b/platform/mellanox/docker-syncd-mlnx/Dockerfile.j2 index 404db43c70aa..386f00e3fe31 100755 --- a/platform/mellanox/docker-syncd-mlnx/Dockerfile.j2 +++ b/platform/mellanox/docker-syncd-mlnx/Dockerfile.j2 @@ -31,6 +31,9 @@ RUN apt-get update && \ libxml2 \ python-pip \ python-dev \ +{%- if ENABLE_ASAN == "y" %} + libasan5 \ +{%- endif %} python-setuptools RUN pip2 install --upgrade pip @@ -58,8 +61,12 @@ RUN apt-get clean -y && \ apt-get autoremove -y && \ rm -rf /debs -COPY ["supervisord.conf", "/etc/supervisor/conf.d/"] +COPY ["supervisord.conf.j2", "/usr/share/sonic/templates/"] COPY ["files/supervisor-proc-exit-listener", "/usr/bin"] COPY ["critical_processes", "/etc/supervisor/"] +RUN mkdir -p /etc/supervisor/conf.d/ +RUN sonic-cfggen -a "{\"ENABLE_ASAN\":\"{{ENABLE_ASAN}}\"}" -t /usr/share/sonic/templates/supervisord.conf.j2 > /etc/supervisor/conf.d/supervisord.conf +RUN rm -f /usr/share/sonic/templates/supervisord.conf.j2 + ENTRYPOINT ["/usr/local/bin/supervisord"] diff --git a/platform/mellanox/docker-syncd-mlnx/supervisord.conf b/platform/mellanox/docker-syncd-mlnx/supervisord.conf.j2 similarity index 89% rename from platform/mellanox/docker-syncd-mlnx/supervisord.conf rename to platform/mellanox/docker-syncd-mlnx/supervisord.conf.j2 index 6fd59606062d..cc07096b20c6 100644 --- a/platform/mellanox/docker-syncd-mlnx/supervisord.conf +++ b/platform/mellanox/docker-syncd-mlnx/supervisord.conf.j2 @@ -37,3 +37,6 @@ stdout_logfile=syslog stderr_logfile=syslog dependent_startup=true dependent_startup_wait_for=rsyslogd:running +{% if ENABLE_ASAN == "y" %} +environment=ASAN_OPTIONS="log_path=/var/log/asan/syncd-asan.log" +{% endif %} From 3068c5101ee03557e66230754d56746f4acafae1 Mon Sep 17 00:00:00 2001 From: Hua Liu <58683130+liuh-80@users.noreply.github.com> Date: Fri, 15 Apr 2022 23:02:30 +0800 Subject: [PATCH 087/251] Update submodule sonic-platform-daemons (#10572) Updating sonic-utilities sub module with the following commits f09bd31 Fix UT failed cause by change pycommon to use swsscommon c092300 Increased pcied unit test coverage to > 80% 7d7c85e Modular chassis: Psud set master led on first run 7195dcc Remove py2 from pipeline c2e7393 [ycabled] increase UT coverage of ycabled daemon #### Why I did it When change pycommon to use swsscommon UT failed in sonic-platform-daemon, need submodule update with UT issue fix. #### How I did it #### How to verify it #### Which release branch to backport (provide reason below if selected) #### Description for the changelog Fix UT failed cause by change pycommon to use swsscommon Increased pcied unit test coverage to > 80% Modular chassis: Psud set master led on first run Remove py2 from pipeline [ycabled] increase UT coverage of ycabled daemon #### A picture of a cute animal (not mandatory but encouraged) --- src/sonic-platform-daemons | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-platform-daemons b/src/sonic-platform-daemons index 94fa239a7bcf..f09bd311a1c5 160000 --- a/src/sonic-platform-daemons +++ b/src/sonic-platform-daemons @@ -1 +1 @@ -Subproject commit 94fa239a7bcfcab008e94fb5c118b628e4256561 +Subproject commit f09bd311a1c51d487c6588a4e5039a2f7e4059e3 From 04f810a346ef357309e523ade17285622315768c Mon Sep 17 00:00:00 2001 From: Junhua Zhai Date: Sat, 16 Apr 2022 01:41:43 +0800 Subject: [PATCH 088/251] [gearbox] use credo sai v0.7.5 (#10578) The v0.7.5 has bug fix for the support of gearbox port and macsec counters. It also includes a owl firmware update with owl.lz4.fw.1.94.0.bin. How I did it Update credo sai url for v0.7.5 Update gearbox_config.json with using firmware owl.lz4.fw.1.94.0.bin instead of owl.lz4.fw.1.92.1.bin How to verify it Test gearbox port and macsec counter successfully on A7280. --- .../Arista-7280CR3-C40/gearbox_config.json | 16 ++++++------- .../gearbox_config.json | 24 +++++++++---------- platform/components/docker-gbsyncd-credo.mk | 8 +++---- 3 files changed, 24 insertions(+), 24 deletions(-) diff --git a/device/arista/x86_64-arista_7280cr3mk_32p4/Arista-7280CR3-C40/gearbox_config.json b/device/arista/x86_64-arista_7280cr3mk_32p4/Arista-7280CR3-C40/gearbox_config.json index e05ee11290ac..5a1fd88d49ad 100644 --- a/device/arista/x86_64-arista_7280cr3mk_32p4/Arista-7280CR3-C40/gearbox_config.json +++ b/device/arista/x86_64-arista_7280cr3mk_32p4/Arista-7280CR3-C40/gearbox_config.json @@ -5,7 +5,7 @@ "name": "phy1", "address": "1", "lib_name": "", - "firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.92.1.bin", + "firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.94.0.bin", "config_file": "/usr/share/sonic/hwsku/phy1_config.json", "sai_init_config_file": "", "phy_access": "mdio", @@ -19,7 +19,7 @@ "name": "phy2", "address": "2", "lib_name": "", - "firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.92.1.bin", + "firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.94.0.bin", "config_file": "/usr/share/sonic/hwsku/phy2_config.json", "sai_init_config_file": "", "phy_access": "mdio", @@ -33,7 +33,7 @@ "name": "phy3", "address": "3", "lib_name": "", - "firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.92.1.bin", + "firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.94.0.bin", "config_file": "/usr/share/sonic/hwsku/phy3_config.json", "sai_init_config_file": "", "phy_access": "mdio", @@ -47,7 +47,7 @@ "name": "phy4", "address": "4", "lib_name": "", - "firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.92.1.bin", + "firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.94.0.bin", "config_file": "/usr/share/sonic/hwsku/phy4_config.json", "sai_init_config_file": "", "phy_access": "mdio", @@ -61,7 +61,7 @@ "name": "phy5", "address": "5", "lib_name": "", - "firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.92.1.bin", + "firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.94.0.bin", "config_file": "/usr/share/sonic/hwsku/phy5_config.json", "sai_init_config_file": "", "phy_access": "mdio", @@ -75,7 +75,7 @@ "name": "phy6", "address": "6", "lib_name": "", - "firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.92.1.bin", + "firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.94.0.bin", "config_file": "/usr/share/sonic/hwsku/phy6_config.json", "sai_init_config_file": "", "phy_access": "mdio", @@ -89,7 +89,7 @@ "name": "phy7", "address": "7", "lib_name": "", - "firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.92.1.bin", + "firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.94.0.bin", "config_file": "/usr/share/sonic/hwsku/phy7_config.json", "sai_init_config_file": "", "phy_access": "mdio", @@ -103,7 +103,7 @@ "name": "phy8", "address": "8", "lib_name": "", - "firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.92.1.bin", + "firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.94.0.bin", "config_file": "/usr/share/sonic/hwsku/phy8_config.json", "sai_init_config_file": "", "phy_access": "mdio", diff --git a/device/arista/x86_64-arista_7800r3_48cqm2_lc/Arista-7800R3-48CQM2-C48/gearbox_config.json b/device/arista/x86_64-arista_7800r3_48cqm2_lc/Arista-7800R3-48CQM2-C48/gearbox_config.json index d72df085bb88..b082868e95be 100644 --- a/device/arista/x86_64-arista_7800r3_48cqm2_lc/Arista-7800R3-48CQM2-C48/gearbox_config.json +++ b/device/arista/x86_64-arista_7800r3_48cqm2_lc/Arista-7800R3-48CQM2-C48/gearbox_config.json @@ -5,7 +5,7 @@ "name": "phy1", "address": "1", "lib_name": "", - "firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.92.1.bin", + "firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.94.0.bin", "config_file": "/usr/share/sonic/hwsku/phy1_config.json", "sai_init_config_file": "", "phy_access": "mdio", @@ -19,7 +19,7 @@ "name": "phy2", "address": "2", "lib_name": "", - "firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.92.1.bin", + "firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.94.0.bin", "config_file": "/usr/share/sonic/hwsku/phy2_config.json", "sai_init_config_file": "", "phy_access": "mdio", @@ -33,7 +33,7 @@ "name": "phy3", "address": "3", "lib_name": "", - "firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.92.1.bin", + "firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.94.0.bin", "config_file": "/usr/share/sonic/hwsku/phy3_config.json", "sai_init_config_file": "", "phy_access": "mdio", @@ -47,7 +47,7 @@ "name": "phy4", "address": "4", "lib_name": "", - "firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.92.1.bin", + "firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.94.0.bin", "config_file": "/usr/share/sonic/hwsku/phy4_config.json", "sai_init_config_file": "", "phy_access": "mdio", @@ -61,7 +61,7 @@ "name": "phy5", "address": "5", "lib_name": "", - "firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.92.1.bin", + "firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.94.0.bin", "config_file": "/usr/share/sonic/hwsku/phy5_config.json", "sai_init_config_file": "", "phy_access": "mdio", @@ -75,7 +75,7 @@ "name": "phy6", "address": "6", "lib_name": "", - "firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.92.1.bin", + "firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.94.0.bin", "config_file": "/usr/share/sonic/hwsku/phy6_config.json", "sai_init_config_file": "", "phy_access": "mdio", @@ -89,7 +89,7 @@ "name": "phy7", "address": "7", "lib_name": "", - "firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.92.1.bin", + "firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.94.0.bin", "config_file": "/usr/share/sonic/hwsku/phy7_config.json", "sai_init_config_file": "", "phy_access": "mdio", @@ -103,7 +103,7 @@ "name": "phy8", "address": "8", "lib_name": "", - "firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.92.1.bin", + "firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.94.0.bin", "config_file": "/usr/share/sonic/hwsku/phy8_config.json", "sai_init_config_file": "", "phy_access": "mdio", @@ -117,7 +117,7 @@ "name": "phy9", "address": "9", "lib_name": "", - "firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.92.1.bin", + "firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.94.0.bin", "config_file": "/usr/share/sonic/hwsku/phy9_config.json", "sai_init_config_file": "", "phy_access": "mdio", @@ -131,7 +131,7 @@ "name": "phy10", "address": "10", "lib_name": "", - "firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.92.1.bin", + "firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.94.0.bin", "config_file": "/usr/share/sonic/hwsku/phy10_config.json", "sai_init_config_file": "", "phy_access": "mdio", @@ -145,7 +145,7 @@ "name": "phy11", "address": "11", "lib_name": "", - "firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.92.1.bin", + "firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.94.0.bin", "config_file": "/usr/share/sonic/hwsku/phy11_config.json", "sai_init_config_file": "", "phy_access": "mdio", @@ -159,7 +159,7 @@ "name": "phy12", "address": "12", "lib_name": "", - "firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.92.1.bin", + "firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.94.0.bin", "config_file": "/usr/share/sonic/hwsku/phy12_config.json", "sai_init_config_file": "", "phy_access": "mdio", diff --git a/platform/components/docker-gbsyncd-credo.mk b/platform/components/docker-gbsyncd-credo.mk index 4f7c37980dee..6f5c69b506e6 100644 --- a/platform/components/docker-gbsyncd-credo.mk +++ b/platform/components/docker-gbsyncd-credo.mk @@ -1,9 +1,9 @@ DOCKER_GBSYNCD_PLATFORM_CODE = credo -LIBSAI_CREDO = libsaicredo_0.7.2_amd64.deb -$(LIBSAI_CREDO)_URL = "https://sonicstorage.blob.core.windows.net/packages/credosai/libsaicredo_0.7.2_amd64.deb?sv=2020-08-04&st=2021-11-23T03%3A17%3A40Z&se=2100-11-24T03%3A17%3A00Z&sr=b&sp=r&sig=q1hj3YHdkSnaKkN%2Bv0SYw01keE4ottLffuxSGre9mu0%3D" -LIBSAI_CREDO_OWL = libsaicredo-owl_0.7.2_amd64.deb -$(LIBSAI_CREDO_OWL)_URL = "https://sonicstorage.blob.core.windows.net/packages/credosai/libsaicredo-owl_0.7.2_amd64.deb?sv=2020-08-04&st=2021-11-23T03%3A50%3A31Z&se=2100-11-24T03%3A50%3A00Z&sr=b&sp=r&sig=mhiqfhHsBwa5AZOuNSj0U8uLsr46Tet6OGC41Mx5B6I%3D" +LIBSAI_CREDO = libsaicredo_0.7.5_amd64.deb +$(LIBSAI_CREDO)_URL = "https://sonicstorage.blob.core.windows.net/packages/credosai/libsaicredo_0.7.5_amd64.deb?sv=2020-10-02&st=2022-04-14T02%3A21%3A31Z&se=2100-04-15T02%3A21%3A00Z&sr=b&sp=r&sig=iDv9Fprntpw9iVBFYVjW8iygy4qcSWT8O90nAXdXR0A%3D" +LIBSAI_CREDO_OWL = libsaicredo-owl_0.7.5_amd64.deb +$(LIBSAI_CREDO_OWL)_URL = "https://sonicstorage.blob.core.windows.net/packages/credosai/libsaicredo-owl_0.7.5_amd64.deb?sv=2020-10-02&st=2022-04-14T02%3A23%3A22Z&se=2100-04-15T02%3A23%3A00Z&sr=b&sp=r&sig=58z6E2nPcLIGjqAoxRAo7du%2FzjIBZkFdoXfSzw96Kxc%3D" ifneq ($($(LIBSAI_CREDO)_URL),) include $(PLATFORM_PATH)/../template/docker-gbsyncd-base.mk From 2a516a776397dac9d058186b31ef355b727283b6 Mon Sep 17 00:00:00 2001 From: kellyyeh <42761586+kellyyeh@users.noreply.github.com> Date: Fri, 15 Apr 2022 18:01:24 -0700 Subject: [PATCH 089/251] [dhcp_relay] Enable dhcp_relay on EPMS, MgmtTsTor, MgmtToRRouter and BackEndToRRouter (#10474) --- files/build_templates/init_cfg.json.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/files/build_templates/init_cfg.json.j2 b/files/build_templates/init_cfg.json.j2 index e1320214e02c..a7f1e54a4e15 100644 --- a/files/build_templates/init_cfg.json.j2 +++ b/files/build_templates/init_cfg.json.j2 @@ -36,7 +36,7 @@ ("swss", "enabled", false, "enabled"), ("syncd", "enabled", false, "enabled"), ("teamd", "enabled", false, "enabled")] %} -{% do features.append(("dhcp_relay", "{% if not (DEVICE_METADATA is defined and DEVICE_METADATA['localhost'] is defined and DEVICE_METADATA['localhost']['type'] is defined and DEVICE_METADATA['localhost']['type'] != 'ToRRouter') %}enabled{% else %}disabled{% endif %}", false, "enabled")) %} +{% do features.append(("dhcp_relay", "{% if not (DEVICE_METADATA is defined and DEVICE_METADATA['localhost'] is defined and DEVICE_METADATA['localhost']['type'] is defined and DEVICE_METADATA['localhost']['type'] is not in ['ToRRouter', 'EPMS', 'MgmtTsToR', 'MgmtToRRouter']) %}enabled{% else %}disabled{% endif %}", false, "enabled")) %} {%- if sonic_asic_platform == "vs" %}{% do features.append(("gbsyncd", "enabled", false, "enabled")) %}{% endif %} {%- if include_iccpd == "y" %}{% do features.append(("iccpd", "disabled", false, "enabled")) %}{% endif %} {%- if include_mgmt_framework == "y" %}{% do features.append(("mgmt-framework", "enabled", true, "enabled")) %}{% endif %} From c1f2221ae3e4fdde656c6dc1f0e1d38bb0193907 Mon Sep 17 00:00:00 2001 From: judyjoseph <53951155+judyjoseph@users.noreply.github.com> Date: Sat, 16 Apr 2022 14:59:05 -0700 Subject: [PATCH 090/251] Update sonic-platform-daemons (#10514) 9ac12bf (HEAD -> master, origin/master, origin/HEAD) Fix platform daemon chassisd to handle auto restart on fail (#247) 24fba04 [ycable] fix the logic to update cable_info values when ycable is not present; fix read side logic for ycable (#249) --- src/sonic-platform-daemons | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-platform-daemons b/src/sonic-platform-daemons index f09bd311a1c5..9ac12bfb4064 160000 --- a/src/sonic-platform-daemons +++ b/src/sonic-platform-daemons @@ -1 +1 @@ -Subproject commit f09bd311a1c51d487c6588a4e5039a2f7e4059e3 +Subproject commit 9ac12bfb406416b0fb3b03a084d8179bdc53f3a6 From 593ab45bded9658df1ff1cf7f1b0a347f7f7bc7f Mon Sep 17 00:00:00 2001 From: Taras Keryk Date: Sun, 17 Apr 2022 01:11:59 +0300 Subject: [PATCH 091/251] [BFN] Added the latest version of FPGA driver and modules (#10458) Signed-off-by: Taras Keryk --- .../barefoot/bfn-modules/modules/bf_ioctl.h | 3 +- .../barefoot/bfn-modules/modules/bf_kdrv.c | 355 ++++++++++++++---- .../barefoot/bfn-modules/modules/bf_kdrv.h | 29 +- .../modules/bf_fpga_ioctl.c | 7 +- .../modules/bf_fpga_ioctl.h | 2 +- .../modules/bf_fpga_main.c | 19 +- .../modules/bf_fpga_priv.h | 5 +- .../modules/bf_fpga_sysfs.c | 4 +- .../modules/i2c/bf_fpga_i2c.c | 14 +- 9 files changed, 344 insertions(+), 94 deletions(-) diff --git a/platform/barefoot/bfn-modules/modules/bf_ioctl.h b/platform/barefoot/bfn-modules/modules/bf_ioctl.h index 0644feb7c8c1..fcb8f86ae7e5 100644 --- a/platform/barefoot/bfn-modules/modules/bf_ioctl.h +++ b/platform/barefoot/bfn-modules/modules/bf_ioctl.h @@ -1,7 +1,7 @@ /******************************************************************************* Barefoot Networks Switch ASIC Linux driver Copyright(c) 2015 - 2019 Barefoot Networks, Inc. - + This program is free software; you can redistribute it and/or modify it under the terms and conditions of the GNU General Public License, version 2, as published by the Free Software Foundation. @@ -39,6 +39,7 @@ typedef uint64_t phys_addr_t; #define BF_IOC_MAGIC 'b' #define BF_TBUS_MSIX_INDICES_MAX 3 +#define BF_TBUS_MSIX_INDICES_MIN 1 typedef struct bf_dma_bus_map_s { diff --git a/platform/barefoot/bfn-modules/modules/bf_kdrv.c b/platform/barefoot/bfn-modules/modules/bf_kdrv.c index 2bddc72cbbf7..4f48de9ba99b 100644 --- a/platform/barefoot/bfn-modules/modules/bf_kdrv.c +++ b/platform/barefoot/bfn-modules/modules/bf_kdrv.c @@ -37,6 +37,7 @@ #include #include #include +#include #include #include "bf_ioctl.h" #include "bf_kdrv.h" @@ -60,6 +61,7 @@ extern int bf_kpkt_init(struct pci_dev *pdev, u8 *bar0_vaddr, void **adapter_ptr, int dev_id, + int subdev_id, int pci_use_highmem, unsigned long head_room, int kpkt_dr_int_en, @@ -72,14 +74,15 @@ extern void bf_kpkt_set_pci_error(void *adapter_ptr, u8 pci_error); /* Keep any global information here that must survive even after the * bf_pci_dev is free-ed up. */ -struct bf_global { +struct bf_global_s { struct bf_pci_dev *bfdev; struct cdev *bf_cdev; struct fasync_struct *async_queue; + /* Pending user space error signal. */ + bool pending_signal; }; -static int bf_major; -static int bf_minor[BF_MAX_DEVICE_CNT] = {0}; +static int bf_minor[BF_MAX_DEV_SUBDEV_CNT] = {0}; static struct class *bf_class = NULL; static char *intr_mode = NULL; static int kpkt_mode = 0; @@ -91,7 +94,10 @@ static enum bf_intr_mode bf_intr_mode_default = BF_INTR_MODE_MSI; static spinlock_t bf_nonisr_lock; /* dev->minor should index into this array */ -static struct bf_global bf_global[BF_MAX_DEVICE_CNT]; +static struct bf_global_s bf_global[BF_MAX_DEV_SUBDEV_CNT]; + +/* global tofino3 info to group subdevices to a parent device */ +static struct bf_tof3_info_s bf_tof3_info[BF_MAX_DEVICE_CNT]; static void bf_add_listener(struct bf_pci_dev *bfdev, struct bf_listener *listener) { @@ -145,7 +151,7 @@ static int bf_get_next_minor_no(int *minor) { int i; spin_lock(&bf_nonisr_lock); - for (i = 0; i < BF_MAX_DEVICE_CNT; i++) { + for (i = 0; i < BF_MAX_DEV_SUBDEV_CNT; i++) { if (bf_minor[i] == 0) { *minor = i; bf_minor[i] = 1; /* mark it as taken */ @@ -276,7 +282,7 @@ static irqreturn_t bf_pci_irqhandler(int irq, struct bf_pci_dev *bfdev) { bf_kpkt_irqhandler(irq, bfdev->adapter_ptr); } } else if (bfdev->mode == BF_INTR_MODE_MSIX) { - if (bfdev->info.tof_type == BF_TOFINO_2 && bf_irq_is_tbus_msix(bfdev,irq)) { + if ((bfdev->info.tof_type == BF_TOFINO_2 || bfdev->info.tof_type == BF_TOFINO_3) && bf_irq_is_tbus_msix(bfdev, irq)) { bf_kpkt_irqhandler(irq, bfdev->adapter_ptr); } } @@ -470,6 +476,7 @@ static int bf_mmap(struct file *filep, struct vm_area_struct *vma) { static int bf_fasync(int fd, struct file *filep, int mode) { int minor; + int res; if (!filep->private_data) { return (-EINVAL); @@ -479,17 +486,32 @@ static int bf_fasync(int fd, struct file *filep, int mode) { return (-EINVAL); } if (mode == 0 && &bf_global[minor].async_queue == NULL) { + bf_global[minor].pending_signal = false; return 0; /* nothing to do */ } - return (fasync_helper(fd, filep, mode, &bf_global[minor].async_queue)); + res = fasync_helper(fd, filep, mode, &bf_global[minor].async_queue); + if (bf_global[minor].pending_signal && bf_global[minor].async_queue) { + kill_fasync(&bf_global[minor].async_queue, SIGIO, POLL_ERR); + } + bf_global[minor].pending_signal = false; + return res; } static int bf_open(struct inode *inode, struct file *filep) { + unsigned id; struct bf_pci_dev *bfdev; struct bf_listener *listener; int i; - bfdev = bf_global[iminor(inode)].bfdev; + id = iminor(inode); + if (id >= BF_MAX_DEVICE_CNT) { + return (-EINVAL); + } + + bfdev = bf_global[id].bfdev; + if (bfdev->in_use) { + return (-EBUSY); + } listener = kmalloc(sizeof(*listener), GFP_KERNEL); if (listener) { listener->bfdev = bfdev; @@ -500,6 +522,7 @@ static int bf_open(struct inode *inode, struct file *filep) { listener->event_count[i] = atomic_read(&bfdev->info.event[i]); } filep->private_data = listener; + bfdev->in_use = 1; return 0; } else { return (-ENOMEM); @@ -512,6 +535,7 @@ static int bf_release(struct inode *inode, struct file *filep) { bf_fasync(-1, filep, 0); /* empty any process id in the notification list */ if (listener->bfdev) { bf_remove_listener(listener->bfdev, listener); + listener->bfdev->in_use = 0; } kfree(listener); return 0; @@ -645,7 +669,15 @@ static long bf_ioctl(struct file *filep, unsigned int cmd, unsigned long arg) } switch(cmd) { case BF_IOCMAPDMAADDR: -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 0, 0) +#if defined(RHEL_RELEASE_CODE) +#if defined(RHEL_RELEASE_VERSION) +#if RHEL_RELEASE_CODE > RHEL_RELEASE_VERSION(7, 9) + if (access_ok(addr, sizeof(bf_dma_bus_map_t))) { +#else + if (access_ok(VERIFY_WRITE, addr, sizeof(bf_dma_bus_map_t))) { +#endif +#endif /* RHEL_RELEASE_CODE && RHEL_RELEASE_VERSION */ +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(5, 0, 0) if (access_ok(addr, sizeof(bf_dma_bus_map_t))) { #else if (access_ok(VERIFY_WRITE, addr, sizeof(bf_dma_bus_map_t))) { @@ -669,7 +701,15 @@ static long bf_ioctl(struct file *filep, unsigned int cmd, unsigned long arg) } break; case BF_IOCUNMAPDMAADDR: -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 0, 0) +#if defined(RHEL_RELEASE_CODE) +#if defined(RHEL_RELEASE_VERSION) +#if RHEL_RELEASE_CODE > RHEL_RELEASE_VERSION(7, 9) + if (access_ok(addr, sizeof(bf_dma_bus_map_t))) { +#else + if (access_ok(VERIFY_WRITE, addr, sizeof(bf_dma_bus_map_t))) { +#endif +#endif /* RHEL_RELEASE_CODE && RHEL_RELEASE_VERSION */ +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(5, 0, 0) if (access_ok(addr, sizeof(bf_dma_bus_map_t))) { #else if (access_ok(VERIFY_READ, addr, sizeof(bf_dma_bus_map_t))) { @@ -692,21 +732,39 @@ static long bf_ioctl(struct file *filep, unsigned int cmd, unsigned long arg) } else { int i; bf_tbus_msix_indices_t msix_ind; - if (copy_from_user(&msix_ind, addr, sizeof(bf_tbus_msix_indices_t))) { - return EFAULT; - } - if (msix_ind.cnt > BF_TBUS_MSIX_INDICES_MAX) { - return EINVAL; - } - for (i = 0; i < msix_ind.cnt; i++) { - if (msix_ind.indices[i] >= BF_MSIX_ENTRY_CNT) { +#if defined(RHEL_RELEASE_CODE) +#if defined(RHEL_RELEASE_VERSION) +#if RHEL_RELEASE_CODE > RHEL_RELEASE_VERSION(7, 9) + if (access_ok(addr, sizeof(bf_tbus_msix_indices_t))) { +#else + if (access_ok(VERIFY_WRITE, addr, sizeof(bf_tbus_msix_indices_t))) { +#endif +#endif /* RHEL_RELEASE_CODE && RHEL_RELEASE_VERSION */ +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(5, 0, 0) + if (access_ok(addr, sizeof(bf_tbus_msix_indices_t))) { +#else + if (access_ok(VERIFY_READ, addr, sizeof(bf_tbus_msix_indices_t))) { +#endif + if (copy_from_user(&msix_ind, addr, sizeof(bf_tbus_msix_indices_t))) { + return EFAULT; + } + if (msix_ind.cnt < BF_TBUS_MSIX_INDICES_MIN || + msix_ind.cnt > BF_TBUS_MSIX_INDICES_MAX) { return EINVAL; } + for (i = 0; i < msix_ind.cnt; i++) { + if (msix_ind.indices[i] < 0 || + msix_ind.indices[i] >= BF_MSIX_ENTRY_CNT) { + return EINVAL; + } + } + for (i = 0; i < msix_ind.cnt; i++) { + bfdev->info.tbus_msix_ind[i] = msix_ind.indices[i]; + } + bfdev->info.tbus_msix_map_enable = 1; + } else { + return EFAULT; } - for (i = 0; i < msix_ind.cnt; i++) { - bfdev->info.tbus_msix_ind[i] = msix_ind.indices[i]; - } - bfdev->info.tbus_msix_map_enable = 1; } break; case BF_GET_INTR_MODE: @@ -761,7 +819,7 @@ static int bf_major_init(struct bf_pci_dev *bfdev, int minor) { goto fail_dev_add; } - bf_major = MAJOR(bf_dev); + bfdev->info.major = MAJOR(bf_dev); bf_global[minor].bf_cdev = cdev; return 0; @@ -771,33 +829,93 @@ static int bf_major_init(struct bf_pci_dev *bfdev, int minor) { } static void bf_major_cleanup(struct bf_pci_dev *bfdev, int minor) { - unregister_chrdev_region(MKDEV(bf_major, 0), BF_MAX_DEVICE_CNT); + unregister_chrdev_region(MKDEV(bfdev->info.major, 0), BF_MAX_DEVICE_CNT); cdev_del(bf_global[minor].bf_cdev); } static int bf_init_cdev(struct bf_pci_dev *bfdev, int minor) { int ret; ret = bf_major_init(bfdev, minor); - if (ret) return ret; - - bf_class = class_create(THIS_MODULE, BF_CLASS_NAME); - if (!bf_class) { - printk(KERN_ERR "create_class failed for bf_dev\n"); - ret = -ENODEV; - goto err_class_register; - } - return 0; - -err_class_register: - bf_major_cleanup(bfdev, minor); return ret; } static void bf_remove_cdev(struct bf_pci_dev *bfdev) { - class_destroy(bf_class); bf_major_cleanup(bfdev, bfdev->info.minor); } +/* return the first unused dev_id based on invalid chip_id */ +static int bf_multisub_tof_unused_devid_get(void) { + int i; + for (i = 0; i < BF_MAX_DEVICE_CNT; i++) { + if ((bf_tof3_info[i]).minor[0] == -1 && + (bf_tof3_info[i]).minor[1] == -1) { + return i; + } + } + return -1; +} + +/* special case handling for TOF3. each subdevice creates its own device node + * device node is named as /dev/bfs +*/ +static int bf_tof3_register_device(struct device *parent, + struct bf_pci_dev *bfdev) { + struct bf_dev_info *info = &bfdev->info; + int minor = 0; + u8 *bf_base_addr; + volatile u32 *bf_addr; + int dev_id = 0, subdev_id = 0, ret = 0; + + if (!info || !info->version) { + return -EINVAL; + } + bf_base_addr = (info->mem[0].internal_addr); + if (!bf_base_addr) { + return -ENODEV; + } + /* *** TBD for multi Tofino(with 2 subdevices) systems *** */ + /* We must be able to identify multiple sub devices as belonging to one + physical Tofino(3) device. We have not figured that out yet. + until then, we support only one CB device per host CPU */ + bf_addr = (u32 *)((u8 *)bf_base_addr + TOFINO3_MISC_PAD_STATUS_OFFSET); +#if 1 /* USING EMULATOR where subdevice info is not possible to have */ + bf_multisub_tof_unused_devid_get(); /* keep compiler happy */ + subdev_id = 0; + if (bf_get_next_minor_no(&minor)) { + return -EINVAL; + } + dev_id = minor; +#else + subdev_id = (int)(*bf_addr & TOFINO3_MISC_PAD_STATUS_DIEID0); + if (bf_get_next_minor_no(&minor)) { + return -EINVAL; + } + /* we cannot assume the order in which sub devices are probed */ + if (subdev_id == 0) { + dev_id = bf_multisub_tof_unused_devid_get(); + bf_tof3_info[dev_id].dev_id = dev_id; /* back reference */ + (bf_tof3_info[dev_id].minor)[subdev_id] = minor; + } else { + dev_id = 0; /* TBD : for Tofino with multi sub devices */ + (bf_tof3_info[dev_id].minor)[subdev_id] = minor; + } +#endif + ret = bf_init_cdev(bfdev, minor); + if (ret) { + printk(KERN_ERR "BF: device cdev creation failed dev_id %d\n", dev_id); + return ret; + } + info->tof3_info = &(bf_tof3_info[dev_id]); + info->dev_id = dev_id; + info->subdev_id = subdev_id; + printk(KERN_NOTICE "BF: registering dev_id %d subdev_id %d\n", + dev_id, subdev_id); + info->dev = device_create(bf_class, parent, MKDEV(bfdev->info.major, minor), + bfdev, "bf%ds%1d", dev_id, subdev_id); + info->minor = minor; + return 0; +} + /** * bf_register_device - register a new userspace mem device * @parent: parent device @@ -808,7 +926,7 @@ static void bf_remove_cdev(struct bf_pci_dev *bfdev) { int bf_register_device(struct device *parent, struct bf_pci_dev *bfdev) { struct bf_dev_info *info = &bfdev->info; int i, j, ret = 0; - int minor; + int minor = 0; if (!parent || !info || !info->version) { return -EINVAL; @@ -820,25 +938,33 @@ int bf_register_device(struct device *parent, struct bf_pci_dev *bfdev) { atomic_set(&info->event[i], 0); } - if (bf_get_next_minor_no(&minor)) { - return -EINVAL; - } + if (info->tof_type == BF_TOFINO_3) { + if ((ret = bf_tof3_register_device(parent, bfdev)) != 0) { + printk(KERN_ERR "BF: TOF3 device cdev creation failed %d\n", ret); + return ret; + } + } else { + if (bf_get_next_minor_no(&minor)) { + return -EINVAL; + } - ret = bf_init_cdev(bfdev, minor); - if (ret) { - printk(KERN_ERR "BF: device cdev creation failed\n"); - return ret; - } + ret = bf_init_cdev(bfdev, minor); + if (ret) { + printk(KERN_ERR "BF: device cdev creation failed\n"); + return ret; + } - info->dev = device_create( - bf_class, parent, MKDEV(bf_major, minor), bfdev, "bf%d", minor); + info->dev = device_create( + bf_class, parent, MKDEV(bfdev->info.major, minor), bfdev, "bf%d", minor); + info->minor = minor; + info->dev_id = minor; + info->subdev_id = 0; + } if (!info->dev) { printk(KERN_ERR "BF: device creation failed\n"); return -ENODEV; } - info->minor = minor; - /* bind ISRs and request interrupts */ if (info->irq && (bfdev->mode != BF_INTR_MODE_NONE)) { /* @@ -906,6 +1032,33 @@ int bf_register_device(struct device *parent, struct bf_pci_dev *bfdev) { return 0; } +/* special case handling for TOF3. return minor number only after all + * sub devices using the minor number are unregistered */ +static int bf_tof3_unregister_device(struct bf_pci_dev *bfdev) { + struct bf_dev_info *info = &bfdev->info; +#if 1 //HACK until emulator implements efuse + bf_return_minor_no(info->minor); +#else + int j, dev_id, subdev_id, found; + + if (!info->tof3_info) { + printk(KERN_ERR "BF TOF3 bad info in tof3_unregister_device\n"); + return -1; + } + dev_id = info->tof3_info->dev_id; + subdev_id = info->subdev_id; + if (dev_id >= BF_MAX_DEVICE_CNT || subdev_id >= BF_MAX_SUBDEV_CNT) { + return -1; + } + /* update bf_tof3_info structure for the device being unregistered */ + (bf_tof3_info[dev_id].minor)[subdev_id] = -1; + /* return the minor number */ + bf_return_minor_no(info->minor); + info->subdev_id = -1; +#endif + return 0; +} + /** * bf_unregister_device - register a new userspace mem device * @bfdev: bf pci device @@ -914,8 +1067,12 @@ int bf_register_device(struct device *parent, struct bf_pci_dev *bfdev) { */ void bf_unregister_device(struct bf_pci_dev *bfdev) { struct bf_dev_info *info = &bfdev->info; - int i; + int i, ret; + if (!info) { + printk(KERN_ERR "BF: bad data in device unregister\n"); + return; + } if (info->irq) { if (bfdev->mode == BF_INTR_MODE_LEGACY) { free_irq(info->irq, (void *)&(bfdev->bf_int_vec[0])); @@ -929,9 +1086,16 @@ void bf_unregister_device(struct bf_pci_dev *bfdev) { } } } - device_destroy(bf_class, MKDEV(bf_major, info->minor)); + device_destroy(bf_class, MKDEV(info->major, info->minor)); bf_remove_cdev(bfdev); - bf_return_minor_no(info->minor); + if (bfdev->info.tof_type == BF_TOFINO_3) { + if ((ret = bf_tof3_unregister_device(bfdev)) != 0) { + printk(KERN_ERR "BF: TOF3 device cdev unregister failed %d\n", ret); + return; + } + } else { + bf_return_minor_no(info->minor); + } return; } @@ -944,13 +1108,13 @@ static void bf_disable_int_dma(struct bf_pci_dev *bfdev) { u32 *bf_addr; volatile u32 val; - /* maskinterrupts and DMA */ + /* mask interrupts and DMA */ bf_base_addr = (bfdev->info.mem[0].internal_addr); /* return if called before mmap */ if (!bf_base_addr) { return; } - /* mask interrupt at shadow level */ + /* mask interrupts at shadow level */ bf_addr = (u32 *)((u8 *)bf_base_addr + 0xc0); for (i = 0; i < 16; i++) { *bf_addr = 0xffffffffUL; @@ -968,8 +1132,6 @@ static int bf_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) { int err, pci_use_highmem; int i, num_irq; - memset(bf_global, 0, sizeof(bf_global)); - bfdev = kzalloc(sizeof(struct bf_pci_dev), GFP_KERNEL); if (!bfdev) { return -ENOMEM; @@ -995,6 +1157,9 @@ static int bf_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) { case TOFINO2_DEV_ID_B0: bfdev->info.tof_type = BF_TOFINO_2; break; + case TOFINO3_DEV_ID_A0: + bfdev->info.tof_type = BF_TOFINO_3; + break; default: bfdev->info.tof_type = BF_TOFINO_1; break; @@ -1005,6 +1170,8 @@ static int bf_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) { bfdev->info.tbus_msix_ind[i] = BF_TBUS_MSIX_BASE_INDEX_TOF1 + i; } else if (bfdev->info.tof_type == BF_TOFINO_2) { bfdev->info.tbus_msix_ind[i] = BF_TBUS_MSIX_INDEX_INVALID; + } else if (bfdev->info.tof_type == BF_TOFINO_3) { + bfdev->info.tbus_msix_ind[i] = BF_TBUS_MSIX_INDEX_INVALID; } } /* @@ -1068,7 +1235,6 @@ static int bf_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) { bfdev->info.version = "0.2"; bfdev->info.owner = THIS_MODULE; bfdev->pdev = pdev; - switch (bf_intr_mode_default) { #ifdef CONFIG_PCI_MSI case BF_INTR_MODE_MSIX: @@ -1113,6 +1279,7 @@ static int bf_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) { } #endif /* LINUX_VERSION_CODE */ /* ** intentional no-break */ + /* FALLTHRU */ case BF_INTR_MODE_MSI: #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 14, 0) num_irq = pci_enable_msi_block(pdev, BF_MSI_ENTRY_CNT); @@ -1150,6 +1317,7 @@ static int bf_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) { #endif /* LINUX_VERSION_CODE */ #endif /* CONFIG_PCI_MSI */ /* fall back to Legacy Interrupt, intentional no-break */ + /* FALLTHRU */ case BF_INTR_MODE_LEGACY: if (pci_intx_mask_supported(pdev)) { @@ -1161,6 +1329,7 @@ static int bf_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) { } printk(KERN_NOTICE " bf PCI INTx mask not supported\n"); /* fall back to no Interrupt, intentional no-break */ + /* FALLTHRU */ case BF_INTR_MODE_NONE: bfdev->info.irq = 0; bfdev->info.num_irq = 0; @@ -1183,6 +1352,7 @@ static int bf_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) { bf_global[bfdev->info.minor].async_queue = NULL; bf_global[bfdev->info.minor].bfdev = bfdev; + bf_global[bfdev->info.minor].pending_signal = false; dev_info(&pdev->dev, "bf device %d registered with irq %ld\n", @@ -1194,15 +1364,18 @@ static int bf_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) { err = bf_kpkt_init(pdev, bfdev->info.mem[0].internal_addr, &bfdev->adapter_ptr, - bfdev->info.minor, + bfdev->info.dev_id, + bfdev->info.subdev_id, pci_use_highmem, kpkt_hd_room, kpkt_dr_int_en, kpkt_rx_count); if (err == 0) { - printk(KERN_ALERT "bf_kpkt kernel processing enabled\n"); + printk(KERN_ALERT "bf_kpkt kernel processing enabled for dev %d subdev_id %d\n", + bfdev->info.dev_id, bfdev->info.subdev_id); } else { - printk(KERN_ALERT "error starting bf_kpkt kernel processing\n"); + printk(KERN_ERR "error starting bf_kpkt kernel processing for dev %d subdev_id %d\n", + bfdev->info.dev_id, bfdev->info.subdev_id); bfdev->adapter_ptr = NULL; } } @@ -1316,16 +1489,29 @@ static pci_ers_result_t bf_pci_mmio_enabled(struct pci_dev *dev) { struct bf_pci_dev *bfdev = pci_get_drvdata(dev); printk(KERN_ERR "BF pci_mmio_enabled invoked after pci error\n"); - #if KERNEL_VERSION(5, 8, 0) <= LINUX_VERSION_CODE - pci_aer_clear_nonfatal_status(dev); - #else - pci_cleanup_aer_uncorrect_error_status(dev); - #endif +#if defined(RHEL_RELEASE_CODE) +#if defined(RHEL_RELEASE_VERSION) +#if RHEL_RELEASE_CODE > RHEL_RELEASE_VERSION(7, 9) + pci_aer_clear_nonfatal_status(dev); +#else + pci_cleanup_aer_uncorrect_error_status(dev); +#endif +#endif /* RHEL_RELEASE_CODE && RHEL_RELEASE_VERSION */ +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0) + pci_aer_clear_nonfatal_status(dev); +#else + pci_cleanup_aer_uncorrect_error_status(dev); +#endif + if (bfdev) { /* send a signal to the user space program of the error */ int minor = bfdev->info.minor; - if (minor < BF_MAX_DEVICE_CNT && bf_global[minor].async_queue) { - kill_fasync(&bf_global[minor].async_queue, SIGIO, POLL_ERR); + if (minor < BF_MAX_DEVICE_CNT) { + if (bf_global[minor].async_queue) { + kill_fasync(&bf_global[minor].async_queue, SIGIO, POLL_ERR); + } else { + bf_global[minor].pending_signal = true; + } } } return PCI_ERS_RESULT_RECOVERED; @@ -1389,6 +1575,7 @@ static const struct pci_device_id bf_pci_tbl[] = { {PCI_VDEVICE(BF, TOFINO2_DEV_ID_A0), 0}, {PCI_VDEVICE(BF, TOFINO2_DEV_ID_A00), 0}, {PCI_VDEVICE(BF, TOFINO2_DEV_ID_B0), 0}, + {PCI_VDEVICE(INTEL, TOFINO3_DEV_ID_A0), 0}, /* required last entry */ {.device = 0}}; @@ -1409,12 +1596,36 @@ static struct pci_driver bf_pci_driver = {.name = "bf", static int __init bfdrv_init(void) { int ret; + pr_info("%s: %s - version %s\n", DRV_NAME(kpkt_mode), + DRV_DESCRIPTION(kpkt_mode),DRV_VERSION); + pr_info("%s: %s\n", DRV_NAME(kpkt_mode),DRV_COPYRIGHT); + memset(bf_global, 0, sizeof(bf_global)); + memset(bf_tof3_info, 0xff, sizeof(bf_tof3_info)); + bf_class = class_create(THIS_MODULE, BF_CLASS_NAME); + if (!bf_class) { + printk(KERN_ERR "create_class failed for bf device\n"); + return -ENODEV; + } else { + printk(KERN_NOTICE "bf device class created\n"); + } + ret = bf_config_intr_mode(intr_mode); + + if (ret < 0) { + printk(KERN_ERR "config interrupt mode failed for bf device\n"); + if (bf_class) { + class_destroy(bf_class); + bf_class = NULL; + } + return ret; + } + /* do not enable DR interrupt if not using MSI or not in kpkt mode */ if ((bf_intr_mode_default != BF_INTR_MODE_MSI && bf_intr_mode_default != BF_INTR_MODE_LEGACY) || kpkt_mode == 0) { kpkt_dr_int_en = 0; } + if (kpkt_mode) { printk(KERN_NOTICE "kpkt_mode %d hd_room %d dr_int_en %d rx_count %d\n", kpkt_mode, @@ -1422,15 +1633,17 @@ static int __init bfdrv_init(void) { kpkt_dr_int_en, kpkt_rx_count); } - if (ret < 0) { - return ret; - } + spin_lock_init(&bf_nonisr_lock); return pci_register_driver(&bf_pci_driver); } static void __exit bfdrv_exit(void) { + pr_info("%s: module unloading ...\n", DRV_NAME(kpkt_mode)); pci_unregister_driver(&bf_pci_driver); + class_destroy(bf_class); + pr_info("%s: module unloaded successfully\n", DRV_NAME(kpkt_mode)); + bf_class = NULL; intr_mode = NULL; kpkt_mode = 0; } diff --git a/platform/barefoot/bfn-modules/modules/bf_kdrv.h b/platform/barefoot/bfn-modules/modules/bf_kdrv.h index de5ca4bbc71c..d2fb6e7dce06 100644 --- a/platform/barefoot/bfn-modules/modules/bf_kdrv.h +++ b/platform/barefoot/bfn-modules/modules/bf_kdrv.h @@ -1,7 +1,7 @@ /******************************************************************************* Barefoot Networks Switch ASIC Linux driver Copyright(c) 2015 - 2019 Barefoot Networks, Inc. - + This program is free software; you can redistribute it and/or modify it under the terms and conditions of the GNU General Public License, version 2, as published by the Free Software Foundation. @@ -35,11 +35,13 @@ typedef uint64_t phys_addr_t; #endif #define PCI_VENDOR_ID_BF 0x1d1c +#define PCI_VENDOR_ID_INTEL 0x8086 #define TOFINO_DEV_ID_A0 0x01 #define TOFINO_DEV_ID_B0 0x10 #define TOFINO2_DEV_ID_A0 0x0100 #define TOFINO2_DEV_ID_A00 0x0000 #define TOFINO2_DEV_ID_B0 0x0110 +#define TOFINO3_DEV_ID_A0 0x0DA2 #ifndef PCI_MSIX_ENTRY_SIZE #define PCI_MSIX_ENTRY_SIZE 16 @@ -51,7 +53,9 @@ typedef uint64_t phys_addr_t; #endif #define BF_CLASS_NAME "bf" -#define BF_MAX_DEVICE_CNT 256 +#define BF_MAX_DEVICE_CNT 8 +#define BF_MAX_SUBDEV_CNT 2 +#define BF_MAX_DEV_SUBDEV_CNT (BF_MAX_DEVICE_CNT * BF_MAX_SUBDEV_CNT) #define BF_INTR_MODE_NONE_NAME "none" #define BF_INTR_MODE_LEGACY_NAME "legacy" #define BF_INTR_MODE_MSI_NAME "msi" @@ -64,11 +68,22 @@ typedef uint64_t phys_addr_t; #define BF_TBUS_MSIX_INDEX_INVALID (0) #define BF_TBUS_MSIX_BASE_INDEX_TOF1 (32) +#define TOFINO3_MISC_PAD_STATUS_OFFSET 0x80238UL +#define TOFINO3_MISC_PAD_STATUS_DIEID0 (1 << 3) + +#define DRV_NAME(kpkt_mode) (kpkt_mode ? "bf_kpkt" : "bf_kdrv") +#define DRV_DESCRIPTION(kpkt_mode) (kpkt_mode ? \ + "Intel(R) Switch ASIC Linux Packet Driver" : \ + "Intel(R) Switch ASIC Linux Driver" ) +#define DRV_COPYRIGHT "Copyright (c) 2015-2022 Intel Corporation." +#define DRV_VERSION "1.0" + /* Tofino generation type */ typedef enum { BF_TOFINO_NONE = 0, BF_TOFINO_1, BF_TOFINO_2, + BF_TOFINO_3, } bf_tof_type; /* device memory */ @@ -86,10 +101,16 @@ struct bf_listener { struct bf_listener *next; }; +struct bf_tof3_info_s { + int dev_id; + int minor[BF_MAX_SUBDEV_CNT]; +}; + /* device information */ struct bf_dev_info { struct module *owner; struct device *dev; + int major; int minor; atomic_t event[BF_MSIX_ENTRY_CNT]; wait_queue_head_t wait; @@ -104,6 +125,9 @@ struct bf_dev_info { /* msix index assigned to tbus MSIX for Tofino-2 only */ int tbus_msix_ind[BF_TBUS_MSIX_INDICES_MAX]; int tbus_msix_map_enable; + struct bf_tof3_info_s *tof3_info; + int dev_id; /* same as minor number for T1 and T2 */ + int subdev_id; int pci_error_state; /* was there a pci bus error */ }; @@ -126,6 +150,7 @@ struct bf_pci_dev { struct bf_listener * listener_head; /* head of a singly linked list of listeners */ void *adapter_ptr; /* pkt processing adapter */ + int in_use; /* indicates a user space process is using the device */ }; /* TBD: Need to build with CONFIG_PCI_MSI */ diff --git a/platform/barefoot/sonic-platform-modules-bfn-newport/modules/bf_fpga_ioctl.c b/platform/barefoot/sonic-platform-modules-bfn-newport/modules/bf_fpga_ioctl.c index b0792556caf6..8f4a5ca7fc6a 100644 --- a/platform/barefoot/sonic-platform-modules-bfn-newport/modules/bf_fpga_ioctl.c +++ b/platform/barefoot/sonic-platform-modules-bfn-newport/modules/bf_fpga_ioctl.c @@ -110,9 +110,10 @@ int bf_fpga_ioctl(struct bf_pci_dev *bfdev, /* copy read data to user area */ for (i = 0; i < i2c_op.num_i2c; i++) { if (i2c_op.i2c_inst[i].rd_cnt) { - if (copy_to_user(&(((bf_fpga_i2c_t *)addr)->i2c_inst[i].rd_buf), - &i2c_op.i2c_inst[i].rd_buf, - i2c_op.i2c_inst[i].rd_cnt)) { + if (copy_to_user( + &(((bf_fpga_i2c_t *)addr)->i2c_inst[i].fpga_i2c_buf.rd_buf), + &i2c_op.i2c_inst[i].fpga_i2c_buf.rd_buf, + i2c_op.i2c_inst[i].rd_cnt)) { return -EFAULT; } } diff --git a/platform/barefoot/sonic-platform-modules-bfn-newport/modules/bf_fpga_ioctl.h b/platform/barefoot/sonic-platform-modules-bfn-newport/modules/bf_fpga_ioctl.h index 4c5eb7bf0386..f7035647af50 100644 --- a/platform/barefoot/sonic-platform-modules-bfn-newport/modules/bf_fpga_ioctl.h +++ b/platform/barefoot/sonic-platform-modules-bfn-newport/modules/bf_fpga_ioctl.h @@ -93,7 +93,7 @@ typedef struct bf_fpga_i2c_inst_s { unsigned char wr_buf[BF_FPGA_MAX_I2C_WR_DATA]; /* write data source buffer */ unsigned char rd_buf[BF_FPGA_MAX_I2C_RD_DATA]; /* read data dest buffer */ - }; + } fpga_i2c_buf; unsigned char status; unsigned char retry_cnt; /* if fpga maintains retry count */ unsigned char mux; /* if fpga maintains internal MUX */ diff --git a/platform/barefoot/sonic-platform-modules-bfn-newport/modules/bf_fpga_main.c b/platform/barefoot/sonic-platform-modules-bfn-newport/modules/bf_fpga_main.c index 563cc5120df1..9910117b72cb 100644 --- a/platform/barefoot/sonic-platform-modules-bfn-newport/modules/bf_fpga_main.c +++ b/platform/barefoot/sonic-platform-modules-bfn-newport/modules/bf_fpga_main.c @@ -120,7 +120,7 @@ static void bf_remove_listener(struct bf_pci_dev *bfdev, /* in case of certain error conditions, this function might be called after * bf_pci_remove() - */ + */ if (!bfdev || !listener) { return; } @@ -294,7 +294,12 @@ static int bf_setup_bars(struct pci_dev *dev, struct bf_dev_info *info) { int i, iom, ret; unsigned long flags; static const char *bar_names[BF_MAX_BAR_MAPS] = { - "BAR0", "BAR1", "BAR2", "BAR3", "BAR4", "BAR5", + "BAR0", + "BAR1", + "BAR2", + "BAR3", + "BAR4", + "BAR5", }; iom = 0; @@ -849,7 +854,7 @@ static void fpga_print_build_date(u32 build_date) { month = (char)(build_date & 0x0f); build_date >>= 4; day = (char)(build_date & 0x1f); - printk(KERN_ALERT "fpga version %02d/%02d/%2d %02d:%02d:%02d", + printk(KERN_ALERT "fpga build %02d/%02d/%2d %02d:%02d:%02d", month, day, year, @@ -991,6 +996,7 @@ static int bf_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) { } #endif /* LINUX_VERSION_CODE */ /* ** intentional no-break */ + /* FALLTHRU */ case BF_INTR_MODE_MSI: #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 14, 0) num_irq = pci_enable_msi_block(pdev, BF_MSI_ENTRY_CNT); @@ -1032,7 +1038,8 @@ static int bf_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) { } #endif /* LINUX_VERSION_CODE */ #endif /* CONFIG_PCI_MSI */ - /* fall back to Legacy Interrupt, intentional no-break */ + /* fall back to Legacy Interrupt, intentional no-break */ + /* FALLTHRU */ case BF_INTR_MODE_LEGACY: if (pci_intx_mask_supported(pdev)) { @@ -1044,6 +1051,7 @@ static int bf_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) { } printk(KERN_NOTICE "bf_fpga PCI INTx mask not supported\n"); /* fall back to no Interrupt, intentional no-break */ + /* FALLTHRU */ case BF_INTR_MODE_NONE: bfdev->info.irq = 0; bfdev->info.num_irq = 0; @@ -1084,7 +1092,7 @@ static int bf_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) { build_date = *((u32 *)(bfdev->info.mem[0].internal_addr) + (BF_FPGA_BUILD_DATE / 4)); fpga_print_build_date(build_date); - printk(KERN_ALERT "bf_fpga version %hu:%hu probe ok\n", + printk(KERN_ALERT "bf_fpga version %hu.%hu probe ok\n", (u16)(build_ver >> 16), (u16)(build_ver)); return 0; @@ -1239,6 +1247,7 @@ static int bf_config_intr_mode(char *intr_str) { static const struct pci_device_id bf_pci_tbl[] = { {PCI_VDEVICE(BF, BF_FPGA_DEV_ID_JBAY_0), 0}, + {PCI_VDEVICE(BF, BF_FPGA_DEV_ID_CB_0), 0}, /* required last entry */ {.device = 0}}; diff --git a/platform/barefoot/sonic-platform-modules-bfn-newport/modules/bf_fpga_priv.h b/platform/barefoot/sonic-platform-modules-bfn-newport/modules/bf_fpga_priv.h index 7515bde7458d..5d259fb8a9f7 100644 --- a/platform/barefoot/sonic-platform-modules-bfn-newport/modules/bf_fpga_priv.h +++ b/platform/barefoot/sonic-platform-modules-bfn-newport/modules/bf_fpga_priv.h @@ -28,6 +28,7 @@ #define PCI_VENDOR_ID_BF 0x1d1c #define BF_FPGA_DEV_ID_JBAY_0 0x01F0 +#define BF_FPGA_DEV_ID_CB_0 0x01F1 #ifndef PCI_MSIX_ENTRY_SIZE #define PCI_MSIX_ENTRY_SIZE 16 @@ -123,8 +124,8 @@ struct bf_pci_dev { u8 instance; char name[16]; struct bf_int_vector bf_int_vec[BF_MSIX_ENTRY_CNT]; - struct bf_listener * - listener_head; /* head of a singly linked list of listeners */ + struct bf_listener + *listener_head; /* head of a singly linked list of listeners */ struct bf_fpga_sysfs_buff fpga_sysfs_buff[BF_FPGA_SYSFS_CNT]; struct bf_fpga_sysfs_buff fpga_sysfs_new_device; struct bf_fpga_sysfs_buff fpga_sysfs_rm_device; diff --git a/platform/barefoot/sonic-platform-modules-bfn-newport/modules/bf_fpga_sysfs.c b/platform/barefoot/sonic-platform-modules-bfn-newport/modules/bf_fpga_sysfs.c index 6970a7a95985..6d5259e6a46e 100644 --- a/platform/barefoot/sonic-platform-modules-bfn-newport/modules/bf_fpga_sysfs.c +++ b/platform/barefoot/sonic-platform-modules-bfn-newport/modules/bf_fpga_sysfs.c @@ -76,7 +76,7 @@ static ssize_t bf_fpga_sysfs_i2c_get(struct device *dev, i2c_op.i2c_inst[0].status); return -EIO; } - memcpy(buf, i2c_op.i2c_inst[0].rd_buf, cur_cnt); + memcpy(buf, i2c_op.i2c_inst[0].fpga_i2c_buf.rd_buf, cur_cnt); buf += cur_cnt; size += cur_cnt; cur_size -= cur_cnt; @@ -108,7 +108,7 @@ static ssize_t bf_fpga_sysfs_i2c_set(struct device *dev, } i2c_op.i2c_inst[0].wr_cnt = cur_cnt; i2c_op.i2c_inst[0].rd_cnt = 0; - memcpy(i2c_op.i2c_inst[0].wr_buf, buf, cur_cnt); + memcpy(i2c_op.i2c_inst[0].fpga_i2c_buf.wr_buf, buf, cur_cnt); i2c_op.num_i2c = 1; i2c_op.one_time = 1; i2c_op.inst_hndl.bus_id = sysfs_buf->bus_id; diff --git a/platform/barefoot/sonic-platform-modules-bfn-newport/modules/i2c/bf_fpga_i2c.c b/platform/barefoot/sonic-platform-modules-bfn-newport/modules/i2c/bf_fpga_i2c.c index c8ebd3e63c6f..1f0520990188 100644 --- a/platform/barefoot/sonic-platform-modules-bfn-newport/modules/i2c/bf_fpga_i2c.c +++ b/platform/barefoot/sonic-platform-modules-bfn-newport/modules/i2c/bf_fpga_i2c.c @@ -146,11 +146,11 @@ static int fpga_i2c_enqueue(int bus_id, wd0 |= (I2C_WR_ADDR_DATA | (delay << I2C_DELAY_SHF)); wd1 |= (i2c_inst->i2c_addr << I2C_DEV_ADDR_SHF); /* copy the first byte into register address */ - wd1 |= ((i2c_inst->wr_buf[0]) << I2C_CMD_OFFSET); + wd1 |= ((i2c_inst->fpga_i2c_buf.wr_buf[0]) << I2C_CMD_OFFSET); wd1 |= ((num_wr - 1) << I2C_WR_CNT_SHF); if (num_wr <= 9) { /* copy data into instruction area */ - memcpy(i2c_data, &i2c_inst->wr_buf[1], (num_wr - 1)); + memcpy(i2c_data, &i2c_inst->fpga_i2c_buf.wr_buf[1], (num_wr - 1)); bf_fpga_i2c_reg_write32( i2c_ctrl, Bf_FPGA_I2C_INST_DATA_LO(inst_id), i2c_data[0]); bf_fpga_i2c_reg_write32( @@ -159,7 +159,7 @@ static int fpga_i2c_enqueue(int bus_id, /* copy the data in data area */ int len = num_wr - 1; uint32_t addr; - uint8_t *val = (uint8_t *)(&i2c_inst->wr_buf[1]); + uint8_t *val = (uint8_t *)(&i2c_inst->fpga_i2c_buf.wr_buf[1]); /* store the data pointer Note the indexing required by FPGA specs */ i2c_data[0] = BF_FPGA_I2C_DATA_AREA(inst_id); addr = i2c_data[0]; @@ -195,11 +195,11 @@ static int fpga_i2c_enqueue(int bus_id, wd1 |= (i2c_inst->i2c_addr << I2C_DEV_ADDR_SHF); /* 1st byte of the write buf goes into "register address" field */ wd1 |= ((num_wr - 1) << I2C_WR_CNT_SHF); - wd1 |= ((i2c_inst->wr_buf[0]) << I2C_CMD_OFFSET); + wd1 |= ((i2c_inst->fpga_i2c_buf.wr_buf[0]) << I2C_CMD_OFFSET); wd1 |= ((num_rd) << I2C_RD_CNT_SHF); /* less than 8 bytes data goes to the instruction area */ if ((num_wr - 1 + num_rd) <= 8) { - memcpy(i2c_data, &i2c_inst->wr_buf[1], (num_wr - 1)); + memcpy(i2c_data, &i2c_inst->fpga_i2c_buf.wr_buf[1], (num_wr - 1)); bf_fpga_i2c_reg_write32( i2c_ctrl, Bf_FPGA_I2C_INST_DATA_LO(inst_id), i2c_data[0]); bf_fpga_i2c_reg_write32( @@ -207,7 +207,7 @@ static int fpga_i2c_enqueue(int bus_id, } else { int len = num_wr - 1; uint32_t addr; - uint8_t *val = (uint8_t *)(&i2c_inst->wr_buf[1]); + uint8_t *val = (uint8_t *)(&i2c_inst->fpga_i2c_buf.wr_buf[1]); /* store the data area pointer */ i2c_data[0] = BF_FPGA_I2C_DATA_AREA(inst_id); addr = i2c_data[0]; @@ -419,7 +419,7 @@ int fpga_i2c_oneshot(bf_fpga_i2c_t *i2c_op) { i, offset, i2c_op->i2c_inst[i].rd_cnt, - i2c_op->i2c_inst[i].rd_buf)) { + i2c_op->i2c_inst[i].fpga_i2c_buf.rd_buf)) { ret = BF_FPGA_EIO; goto oneshot_error_exit; } From 87036c34ec1bef4d42767e7f25d3e23fb95167df Mon Sep 17 00:00:00 2001 From: Ze Gan Date: Sun, 17 Apr 2022 20:32:51 +0800 Subject: [PATCH 092/251] [macsec]: Upgrade docker-macsec to bullseye (#10574) Following the patch from : https://packages.debian.org/bullseye/wpasupplicant, to upgrade sonic-wpa-supplicant for supporting bullseye and upgrade docker-macsec.mk as a bullseye component. --- dockers/docker-macsec/Dockerfile.j2 | 2 +- rules/docker-macsec.mk | 15 +++++++-------- src/wpasupplicant/sonic-wpa-supplicant | 2 +- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/dockers/docker-macsec/Dockerfile.j2 b/dockers/docker-macsec/Dockerfile.j2 index 0239d6529096..586983533e77 100644 --- a/dockers/docker-macsec/Dockerfile.j2 +++ b/dockers/docker-macsec/Dockerfile.j2 @@ -1,5 +1,5 @@ {% from "dockers/dockerfile-macros.j2" import install_debian_packages, install_python_wheels, copy_files %} -FROM docker-swss-layer-buster +FROM docker-config-engine-bullseye ARG docker_container_name RUN [ -f /etc/rsyslog.conf ] && sed -ri "s/%syslogtag%/$docker_container_name#%syslogtag%/;" /etc/rsyslog.conf diff --git a/rules/docker-macsec.mk b/rules/docker-macsec.mk index 1cb14246e86a..7250f79f90cd 100644 --- a/rules/docker-macsec.mk +++ b/rules/docker-macsec.mk @@ -6,14 +6,13 @@ DOCKER_MACSEC_DBG = $(DOCKER_MACSEC_STEM)-$(DBG_IMAGE_MARK).gz $(DOCKER_MACSEC)_PATH = $(DOCKERS_PATH)/$(DOCKER_MACSEC_STEM) -$(DOCKER_MACSEC)_DEPENDS += $(SWSS) $(WPASUPPLICANT) $(REDIS_TOOLS) $(LIBNL3) $(LIBNL_GENL3) $(LIBNL_ROUTE3) -$(DOCKER_MACSEC)_DBG_DEPENDS = $($(DOCKER_SWSS_LAYER_BUSTER)_DBG_DEPENDS) -$(DOCKER_MACSEC)_DBG_DEPENDS += $(SWSS_DBG) $(LIBSWSSCOMMON_DBG) -$(DOCKER_MACSEC)_DBG_DEPENDS += $(WPASUPPLICANT_DBG) +$(DOCKER_MACSEC)_DEPENDS += $(WPASUPPLICANT) $(LIBSWSSCOMMON) $(LIBNL3) $(LIBNL_GENL3) $(LIBNL_ROUTE3) +$(DOCKER_MACSEC)_DBG_DEPENDS = $($(DOCKER_CONFIG_ENGINE_BULLSEYE)_DBG_DEPENDS) +$(DOCKER_MACSEC)_DBG_DEPENDS += $(WPASUPPLICANT_DBG) $(LIBSWSSCOMMON_DBG) -$(DOCKER_MACSEC)_DBG_IMAGE_PACKAGES = $($(DOCKER_SWSS_LAYER_BUSTER)_DBG_IMAGE_PACKAGES) +$(DOCKER_MACSEC)_DBG_IMAGE_PACKAGES = $($(DOCKER_CONFIG_ENGINE_BULLSEYE)_DBG_IMAGE_PACKAGES) -$(DOCKER_MACSEC)_LOAD_DOCKERS += $(DOCKER_SWSS_LAYER_BUSTER) +$(DOCKER_MACSEC)_LOAD_DOCKERS += $(DOCKER_CONFIG_ENGINE_BULLSEYE) SONIC_DOCKER_IMAGES += $(DOCKER_MACSEC) ifeq ($(INCLUDE_MACSEC), y) @@ -34,5 +33,5 @@ $(DOCKER_MACSEC)_RUN_OPT += -v /host/warmboot:/var/warmboot $(DOCKER_MACSEC)_FILES += $(SUPERVISOR_PROC_EXIT_LISTENER_SCRIPT) -SONIC_BUSTER_DOCKERS += $(DOCKER_MACSEC) -SONIC_BUSTER_DBG_DOCKERS += $(DOCKER_MACSEC_DBG) +SONIC_BULLSEYE_DOCKERS += $(DOCKER_MACSEC) +SONIC_BULLSEYE_DBG_DOCKERS += $(DOCKER_MACSEC_DBG) diff --git a/src/wpasupplicant/sonic-wpa-supplicant b/src/wpasupplicant/sonic-wpa-supplicant index 43611ef88ea5..f36c8c87702f 160000 --- a/src/wpasupplicant/sonic-wpa-supplicant +++ b/src/wpasupplicant/sonic-wpa-supplicant @@ -1 +1 @@ -Subproject commit 43611ef88ea5c87f675cab55e3208c9f16bdd583 +Subproject commit f36c8c87702fa1bc6d1f9b7193872285a41bd630 From 16f6860e9455b2388794f86be9d8d587a914e8ce Mon Sep 17 00:00:00 2001 From: Jing Zhang Date: Sun, 17 Apr 2022 15:14:37 -0700 Subject: [PATCH 093/251] [master][sonic-linkmgrd] submodule updates (#10532) [master][sonic-linkmgrd] submodule updates 41f5fb9 Jing Zhang Mon Apr 11 08:33:39 2022 -0700 Upgrade linkmgrd to `BULLSEYE` (https://github.com/Azure/sonic-linkmgrd/pull/60) 2fc890e Jing Zhang Mon Apr 4 10:25:22 2022 -0700 Lower unsolicited MUX state change notification log level to WARNING (https://github.com/Azure/sonic-linkmgrd/pull/57) 13f4879 Jing Zhang Sun Apr 3 21:56:33 2022 -0700 Keep incrementing sequence number when link prober is suspended and shutdown (https://github.com/Azure/sonic-linkmgrd/pull/55) 62482e1 Jing Zhang Sun Apr 3 20:54:40 2022 -0700 Reset link prober state when default route is back (https://github.com/Azure/sonic-linkmgrd/pull/56) 34a68d1 Jing Zhang Thu Mar 31 18:33:46 2022 -0700 disable switchover measuring based on link prober (https://github.com/Azure/sonic-linkmgrd/pull/49) 898a655 Jing Zhang Thu Mar 31 15:42:15 2022 -0700 Update link prober metrics posting logics (https://github.com/Azure/sonic-linkmgrd/pull/50) sign-off: Jing Zhang zhangjing@microsoft.com --- src/linkmgrd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/linkmgrd b/src/linkmgrd index 83dfc992d1b2..41f5fb9d44f2 160000 --- a/src/linkmgrd +++ b/src/linkmgrd @@ -1 +1 @@ -Subproject commit 83dfc992d1b24b01bb9b125cc86a8ce63ba060f6 +Subproject commit 41f5fb9d44f2fd789dea372f2b647d40ec71ed75 From a1494577d9cc55dac99f55dc7031bcac37d7d9e5 Mon Sep 17 00:00:00 2001 From: Ze Gan Date: Mon, 18 Apr 2022 10:34:52 +0800 Subject: [PATCH 094/251] [yang]: Add yang model for MACsec (#10559) Add Yang model to constrain the configuration of MACsec --- src/sonic-yang-models/setup.py | 6 +- .../tests/files/sample_config_db.json | 21 ++- .../tests/yang_model_tests/tests/macsec.json | 29 ++++ .../yang_model_tests/tests_config/macsec.json | 141 ++++++++++++++++++ .../yang-models/sonic-macsec.yang | 116 ++++++++++++++ .../yang-models/sonic-port.yang | 10 ++ 6 files changed, 319 insertions(+), 4 deletions(-) create mode 100644 src/sonic-yang-models/tests/yang_model_tests/tests/macsec.json create mode 100644 src/sonic-yang-models/tests/yang_model_tests/tests_config/macsec.json create mode 100644 src/sonic-yang-models/yang-models/sonic-macsec.yang diff --git a/src/sonic-yang-models/setup.py b/src/sonic-yang-models/setup.py index 429549255824..4ca8d065c6ec 100644 --- a/src/sonic-yang-models/setup.py +++ b/src/sonic-yang-models/setup.py @@ -143,7 +143,8 @@ def run(self): './yang-models/sonic-tc-queue-map.yang', './yang-models/sonic-pfc-priority-queue-map.yang', './yang-models/sonic-pfc-priority-priority-group-map.yang', - './yang-models/sonic-port-qos-map.yang']), + './yang-models/sonic-port-qos-map.yang', + './yang-models/sonic-macsec.yang']), ('cvlyang-models', ['./cvlyang-models/sonic-acl.yang', './cvlyang-models/sonic-bgp-common.yang', './cvlyang-models/sonic-bgp-global.yang', @@ -194,7 +195,8 @@ def run(self): './cvlyang-models/sonic-tc-queue-map.yang', './cvlyang-models/sonic-pfc-priority-queue-map.yang', './cvlyang-models/sonic-pfc-priority-priority-group-map.yang', - './cvlyang-models/sonic-port-qos-map.yang']), + './cvlyang-models/sonic-port-qos-map.yang', + './cvlyang-models/sonic-macsec.yang']), ], zip_safe=False, ) diff --git a/src/sonic-yang-models/tests/files/sample_config_db.json b/src/sonic-yang-models/tests/files/sample_config_db.json index 6618ed8232b7..8c5a8c0af909 100644 --- a/src/sonic-yang-models/tests/files/sample_config_db.json +++ b/src/sonic-yang-models/tests/files/sample_config_db.json @@ -426,7 +426,8 @@ "admin_status": "up", "index": "0", "asic_port_name": "Eth0-ASIC1", - "role": "Ext" + "role": "Ext", + "macsec": "test" }, "Ethernet1": { "alias": "Eth1/2", @@ -1686,8 +1687,24 @@ "vlan_id": "111", "vsid": "5000" } - } + }, + + "MACSEC_PROFILE": { + "test": { + "priority": "64", + "cipher_suite": "GCM-AES-128", + "primary_cak": "0123456789ABCDEF0123456789ABCDEF", + "primary_ckn": "6162636465666768696A6B6C6D6E6F70", + "fallback_cak": "00000000000000000000000000000000", + "fallback_ckn": "11111111111111111111111111111111", + "policy": "security", + "enable_replay_protect": "true", + "replay_window": "64", + "send_sci": "true", + "rekey_period": "3600" + } + } }, "SAMPLE_CONFIG_DB_UNKNOWN": { diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests/macsec.json b/src/sonic-yang-models/tests/yang_model_tests/tests/macsec.json new file mode 100644 index 000000000000..9d4329e8d7f2 --- /dev/null +++ b/src/sonic-yang-models/tests/yang_model_tests/tests/macsec.json @@ -0,0 +1,29 @@ +{ + "VALID_PROFILE": { + "desc": "Valid MACsec profile test" + }, + "DUPLICATE_CKN": { + "desc": "Primary CKN equals than fallback CKN", + "eStrKey": "Must" + }, + "INVALID_CAK_LENGTH": { + "desc": "Invalid CAK length", + "eStrKey": "Pattern" + }, + "INVALID_CAK_CHARACTER": { + "desc": "Invalid CAK character", + "eStrKey": "Pattern" + }, + "INVALID_CIPHER_LOWERCASE": { + "desc": "Invalid cipher with lowercase", + "eStrKey": "Pattern" + }, + "MISMATCH_LENGTH_PRIMARY_FALLBACK": { + "desc": "Mismatch length of primary and fallback", + "eStrKey": "Must" + }, + "SET_REPLAY_WINDOW_WHEN_DISABLE_REPLAY_PROTECT": { + "desc": "Set replay window when disable replay protect", + "eStrKey": "When" + } +} diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests_config/macsec.json b/src/sonic-yang-models/tests/yang_model_tests/tests_config/macsec.json new file mode 100644 index 000000000000..cfd7c512a67a --- /dev/null +++ b/src/sonic-yang-models/tests/yang_model_tests/tests_config/macsec.json @@ -0,0 +1,141 @@ +{ + "VALID_PROFILE": { + "sonic-macsec:sonic-macsec": { + "sonic-macsec:MACSEC_PROFILE": { + "MACSEC_PROFILE_LIST": [ + { + "name": "test32", + "priority": 64, + "cipher_suite": "GCM-AES-128", + "primary_cak": "0123456789ABCDEF0123456789ABCDEF", + "primary_ckn": "6162636465666768696A6B6C6D6E6F70", + "fallback_cak": "00000000000000000000000000000000", + "fallback_ckn": "11111111111111111111111111111111", + "policy": "security", + "enable_replay_protect": "true", + "replay_window": 64, + "send_sci": "true", + "rekey_period": 3600 + }, + { + "name": "test64", + "priority": 64, + "cipher_suite": "GCM-AES-XPN-256", + "primary_cak": "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF", + "primary_ckn": "6162636465666768696A6B6C6D6E6F706162636465666768696A6B6C6D6E6F70", + "fallback_cak": "0000000000000000000000000000000000000000000000000000000000000000", + "fallback_ckn": "1111111111111111111111111111111111111111111111111111111111111111", + "policy": "security", + "enable_replay_protect": "true", + "replay_window": 64, + "send_sci": "true", + "rekey_period": 3600 + } + ] + } + }, + "sonic-port:sonic-port": { + "sonic-port:PORT": { + "PORT_LIST": [ + { + "admin_status": "up", + "alias": "eth8", + "description": "Ethernet8", + "fec": "rs", + "lanes": "65", + "mtu": 9000, + "pfc_asym": "on", + "name": "Ethernet8", + "tpid": "0x8100", + "speed": 25000, + "macsec": "test32" + } + ] + } + } + }, + "INVALID_CIPHER_LOWERCASE": { + "sonic-macsec:sonic-macsec": { + "sonic-macsec:MACSEC_PROFILE": { + "MACSEC_PROFILE_LIST": [ + { + "name": "test", + "cipher_suite": "gcm-aes-128", + "primary_cak": "0123456789ABCDEF0123456789ABCDEF", + "primary_ckn": "6162636465666768696A6B6C6D6E6F70" + } + ] + } + } + }, + "DUPLICATE_CKN": { + "sonic-macsec:sonic-macsec": { + "sonic-macsec:MACSEC_PROFILE": { + "MACSEC_PROFILE_LIST": [ + { + "name": "test", + "primary_cak": "0123456789ABCDEF0123456789ABCDEF", + "primary_ckn": "6162636465666768696A6B6C6D6E6F70", + "fallback_cak": "0123456789ABCDEF0123456789ABCDEF", + "fallback_ckn": "6162636465666768696A6B6C6D6E6F70" + } + ] + } + } + }, + "INVALID_CAK_LENGTH": { + "sonic-macsec:sonic-macsec": { + "sonic-macsec:MACSEC_PROFILE": { + "MACSEC_PROFILE_LIST": [ + { + "name": "test", + "primary_cak": "0123456789ABCDEF0123456789ABCDEFA", + "primary_ckn": "6162636465666768696A6B6C6D6E6F70A" + } + ] + } + } + }, + "INVALID_CAK_CHARACTER": { + "sonic-macsec:sonic-macsec": { + "sonic-macsec:MACSEC_PROFILE": { + "MACSEC_PROFILE_LIST": [ + { + "name": "test", + "primary_cak": "X123456789ABCDEF0123456789ABCDEF", + "primary_ckn": "X162636465666768696A6B6C6D6E6F70" + } + ] + } + } + }, + "MISMATCH_LENGTH_PRIMARY_FALLBACK": { + "sonic-macsec:sonic-macsec": { + "sonic-macsec:MACSEC_PROFILE": { + "MACSEC_PROFILE_LIST": [ + { + "name": "test", + "primary_cak": "0123456789ABCDEF0123456789ABCDEF", + "primary_ckn": "6162636465666768696A6B6C6D6E6F70", + "fallback_cak": "0000000000000000000000000000000000000000000000000000000000000000", + "fallback_ckn": "1111111111111111111111111111111111111111111111111111111111111111" + } + ] + } + } + }, + "SET_REPLAY_WINDOW_WHEN_DISABLE_REPLAY_PROTECT": { + "sonic-macsec:sonic-macsec": { + "sonic-macsec:MACSEC_PROFILE": { + "MACSEC_PROFILE_LIST": [ + { + "name": "test", + "primary_cak": "0123456789ABCDEF0123456789ABCDEF", + "primary_ckn": "6162636465666768696A6B6C6D6E6F70", + "replay_window": 64 + } + ] + } + } + } +} diff --git a/src/sonic-yang-models/yang-models/sonic-macsec.yang b/src/sonic-yang-models/yang-models/sonic-macsec.yang new file mode 100644 index 000000000000..4e3412f86a3d --- /dev/null +++ b/src/sonic-yang-models/yang-models/sonic-macsec.yang @@ -0,0 +1,116 @@ +module sonic-macsec { + + yang-version 1.1; + + namespace "http://github.com/Azure/sonic-macsec"; + + prefix macsec; + + import sonic-types { + prefix stypes; + } + + description "MACsec yang Module for SONiC OS"; + + revision 2022-04-12 { + description "First Revision"; + } + + container sonic-macsec { + + container MACSEC_PROFILE { + + description "MACsec profile of config_db.json"; + + list MACSEC_PROFILE_LIST { + + key "name"; + + leaf name { + type string { + length 1..128; + } + } + + leaf priority { + type uint8; + default 255; + } + + leaf cipher_suite { + type string { + pattern "GCM-AES-128|GCM-AES-256|GCM-AES-XPN-128|GCM-AES-XPN-256"; + } + default "GCM-AES-128"; + } + + leaf primary_cak { + type string { + pattern "[0-9a-fA-F]{32}|[0-9a-fA-F]{64}"; + } + mandatory true; + } + + leaf primary_ckn { + type string { + pattern "[0-9a-fA-F]{32}|[0-9a-fA-F]{64}"; + } + mandatory true; + } + + leaf fallback_cak { + type string { + pattern "[0-9a-fA-F]{32}|[0-9a-fA-F]{64}"; + } + } + + leaf fallback_ckn { + type string { + pattern "[0-9a-fA-F]{32}|[0-9a-fA-F]{64}"; + } + } + + must "string-length(primary_cak) = string-length(primary_ckn)"; + + must "string-length(fallback_cak) = string-length(fallback_ckn)"; + + must "string-length(fallback_cak) = string-length(primary_cak)"; + + must "primary_ckn != fallback_ckn"; + + leaf policy { + type string { + pattern "integrity_only|security"; + } + default "security"; + } + + leaf enable_replay_protect { + type stypes:boolean_type; + default "false"; + } + + leaf replay_window { + when "current()/../enable_replay_protect = 'true'"; + type uint32; + } + + leaf send_sci { + type stypes:boolean_type; + default "true"; + } + + leaf rekey_period { + description "The period of proactively refresh (Unit second). + If the value is 0, which means never proactive refresh SAK."; + type uint32; + default 0; + } + + } /* end of list MACSEC_PROFILE_LIST */ + + } /* end of container MACSEC_PROFILE */ + + } /* end of container sonic-macsec */ + +} /* end of module sonic-macsec */ diff --git a/src/sonic-yang-models/yang-models/sonic-port.yang b/src/sonic-yang-models/yang-models/sonic-port.yang index d296eaa05c39..add4de25ce0a 100644 --- a/src/sonic-yang-models/yang-models/sonic-port.yang +++ b/src/sonic-yang-models/yang-models/sonic-port.yang @@ -13,6 +13,10 @@ module sonic-port{ prefix ext; } + import sonic-macsec { + prefix macsec; + } + description "PORT yang Module for SONiC OS"; revision 2019-07-01 { @@ -153,6 +157,12 @@ module sonic-port{ type boolean; } + leaf macsec { + type leafref { + path "/macsec:sonic-macsec/macsec:MACSEC_PROFILE/macsec:MACSEC_PROFILE_LIST/macsec:name"; + } + } + } /* end of list PORT_LIST */ } /* end of container PORT */ From a0c76b1bc9fb93ed1975fe73b75eb8c54e9df469 Mon Sep 17 00:00:00 2001 From: Kebo Liu Date: Mon, 18 Apr 2022 15:55:56 +0800 Subject: [PATCH 095/251] [Mellanox] support newly added reboot cause (#10531) - Why I did it Implement newly added reboot causes in PR Azure/sonic-platform-common#277 - How I did it Map the reboot cause sysfs to the newly added reboot causes. - How to verify it manual test, check whether the reboot cause is correct after rebooting the switch in various ways. run the community reboot test to see whether the reboot cause checker is passing. Signed-off-by: Kebo Liu --- .../sonic_platform/chassis.py | 27 +++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/platform/mellanox/mlnx-platform-api/sonic_platform/chassis.py b/platform/mellanox/mlnx-platform-api/sonic_platform/chassis.py index 1cc3d0f75660..c7bafc0d8921 100644 --- a/platform/mellanox/mlnx-platform-api/sonic_platform/chassis.py +++ b/platform/mellanox/mlnx-platform-api/sonic_platform/chassis.py @@ -657,24 +657,23 @@ def initialize_reboot_cause(self): self.reboot_major_cause_dict = { 'reset_main_pwr_fail' : self.REBOOT_CAUSE_POWER_LOSS, 'reset_aux_pwr_or_ref' : self.REBOOT_CAUSE_POWER_LOSS, + 'reset_comex_pwr_fail' : self.REBOOT_CAUSE_POWER_LOSS, 'reset_asic_thermal' : self.REBOOT_CAUSE_THERMAL_OVERLOAD_ASIC, + 'reset_comex_thermal' : self.REBOOT_CAUSE_THERMAL_OVERLOAD_CPU, 'reset_hotswap_or_wd' : self.REBOOT_CAUSE_WATCHDOG, + 'reset_comex_wd' : self.REBOOT_CAUSE_WATCHDOG, 'reset_swb_wd' : self.REBOOT_CAUSE_WATCHDOG, - 'reset_sff_wd' : self.REBOOT_CAUSE_WATCHDOG - } - self.reboot_minor_cause_dict = { - 'reset_fw_reset' : "Reset by ASIC firmware", - 'reset_long_pb' : "Reset by long press on power button", - 'reset_short_pb' : "Reset by short press on power button", - 'reset_comex_thermal' : "ComEx thermal shutdown", - 'reset_comex_pwr_fail' : "ComEx power fail", - 'reset_comex_wd' : "Reset requested from ComEx", - 'reset_from_asic' : "Reset requested from ASIC", - 'reset_reload_bios' : "Reset caused by BIOS reload", - 'reset_hotswap_or_halt' : "Reset caused by hotswap or halt", - 'reset_from_comex' : "Reset from ComEx", - 'reset_voltmon_upgrade_fail': "Reset due to voltage monitor devices upgrade failure" + 'reset_sff_wd' : self.REBOOT_CAUSE_WATCHDOG, + 'reset_hotswap_or_halt' : self.REBOOT_CAUSE_HARDWARE_OTHER, + 'reset_voltmon_upgrade_fail': self.REBOOT_CAUSE_HARDWARE_OTHER, + 'reset_reload_bios' : self.REBOOT_CAUSE_HARDWARE_BIOS, + 'reset_from_comex' : self.REBOOT_CAUSE_HARDWARE_CPU, + 'reset_fw_reset' : self.REBOOT_CAUSE_HARDWARE_RESET_FROM_ASIC, + 'reset_from_asic' : self.REBOOT_CAUSE_HARDWARE_RESET_FROM_ASIC, + 'reset_long_pb' : self.REBOOT_CAUSE_HARDWARE_BUTTON, + 'reset_short_pb' : self.REBOOT_CAUSE_HARDWARE_BUTTON } + self.reboot_minor_cause_dict = {} self.reboot_by_software = 'reset_sw_reset' self.reboot_cause_initialized = True From dd243c1024d99277e5484000d8019ded4e7b8570 Mon Sep 17 00:00:00 2001 From: vmittal-msft <46945843+vmittal-msft@users.noreply.github.com> Date: Mon, 18 Apr 2022 15:19:22 -0700 Subject: [PATCH 096/251] Changes to support topology and port speed agnostic switch init for TD3 based platforms (#10587) --- .../Arista-7050CX3-32S-C32/td3-a7050cx3-32s-32x100G.config.bcm | 2 +- .../td3-a7050cx3-32s-48x50G+8x100G.config.bcm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C32/td3-a7050cx3-32s-32x100G.config.bcm b/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C32/td3-a7050cx3-32s-32x100G.config.bcm index 22088621cef1..3b37d661f403 100644 --- a/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C32/td3-a7050cx3-32s-32x100G.config.bcm +++ b/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-C32/td3-a7050cx3-32s-32x100G.config.bcm @@ -52,7 +52,7 @@ stable_size=0x5500000 tdma_timeout_usec=15000000 tslam_timeout_usec=15000000 sai_optimized_mmu=1 -mmu_init_config="TD3-MSFT-T0-100G" +mmu_init_config="TD3-MSFT-CUSTOM" buf.map.egress_pool0.ingress_pool=0 buf.map.egress_pool1.ingress_pool=0 buf.map.egress_pool2.ingress_pool=1 diff --git a/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-D48C8/td3-a7050cx3-32s-48x50G+8x100G.config.bcm b/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-D48C8/td3-a7050cx3-32s-48x50G+8x100G.config.bcm index aaad28895942..267b3bb81a9a 100644 --- a/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-D48C8/td3-a7050cx3-32s-48x50G+8x100G.config.bcm +++ b/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-D48C8/td3-a7050cx3-32s-48x50G+8x100G.config.bcm @@ -52,7 +52,7 @@ stable_size=0x5500000 tdma_timeout_usec=15000000 tslam_timeout_usec=15000000 sai_optimized_mmu=1 -mmu_init_config="TD3-MSFT-T0-50G" +mmu_init_config="TD3-MSFT-CUSTOM" buf.map.egress_pool0.ingress_pool=0 buf.map.egress_pool1.ingress_pool=0 buf.map.egress_pool2.ingress_pool=1 From 0a99f87becc0d1ab2a0454c4d8a678a601c86a20 Mon Sep 17 00:00:00 2001 From: Shilong Liu Date: Tue, 19 Apr 2022 10:32:01 +0800 Subject: [PATCH 097/251] [ci] Update common lib pipeline to build more distribute packages. (#10576) --- .azure-pipelines/template-commonlib.yml | 40 ++++++++++++++----------- .azure-pipelines/template-variables.yml | 1 + 2 files changed, 24 insertions(+), 17 deletions(-) diff --git a/.azure-pipelines/template-commonlib.yml b/.azure-pipelines/template-commonlib.yml index 0e42cb4e17ac..61a801e3f526 100644 --- a/.azure-pipelines/template-commonlib.yml +++ b/.azure-pipelines/template-commonlib.yml @@ -2,33 +2,39 @@ jobs: - job: Build timeoutInMinutes: 120 pool: sonicbld + variables: + - template: template-variables.yml steps: - checkout: self clean: true submodules: recursive - script: | set -ex - case $(Build.SourceBranchName) in - 202012 | 202106) - bldenv=buster - ;; - *) - bldenv=bullseye - ;; - esac - BLDENV=$bldenv make -f Makefile.work configure PLATFORM=vs ENABLE_DOCKER_BASE_PULL=y - echo "##vso[task.setvariable variable=bldenv;]$bldenv" + branch=$(Build.SourceBranchName) + # DIST_MASTER is set in variable. + BRANCH=DIST_${branch^^} + bldenvs=${!BRANCH} + [ "$bldenvs" == "" ] && bldenvs="$(COMMON_LIB_BUILD_ENVS)" + for bldenv in $bldenvs + do + BLDENV=$bldenv make -f Makefile.work configure PLATFORM=vs ENABLE_DOCKER_BASE_PULL=y + done + set +x + echo "##vso[task.setvariable variable=bldenvs;]$bldenvs" displayName: Make configure - script: | set -ex - LIBNL3_VERSION_BASE=$(grep "LIBNL3_VERSION_BASE =" rules/libnl3.mk | awk '{print$3}') - LIBNL3_VERSION=$(grep "LIBNL3_VERSION =" rules/libnl3.mk | awk '{print$3}' | sed -e "s/(//" -e "s/)//" -e "s/\\$//" -e "s/LIBNL3_VERSION_BASE/$LIBNL3_VERSION_BASE/") - BLDENV=$(bldenv) make -f Makefile.work target/debs/$(bldenv)/libnl-3-200_${LIBNL3_VERSION}_amd64.deb ENABLE_DOCKER_BASE_PULL=y + for bldenv in $(bldenvs) + do + LIBNL3_VERSION_BASE=$(grep "LIBNL3_VERSION_BASE =" rules/libnl3.mk | awk '{print$3}') + LIBNL3_VERSION=$(grep "LIBNL3_VERSION =" rules/libnl3.mk | awk '{print$3}' | sed -e "s/(//" -e "s/)//" -e "s/\\$//" -e "s/LIBNL3_VERSION_BASE/$LIBNL3_VERSION_BASE/") + SONIC_BUILD_JOBS=$(nproc) BLDENV=$bldenv make -f Makefile.work target/debs/$bldenv/libnl-3-200_${LIBNL3_VERSION}_amd64.deb ENABLE_DOCKER_BASE_PULL=y - LIBYANG_VERSION_BASE=$(grep "LIBYANG_VERSION_BASE =" rules/libyang.mk | awk '{print$3}') - LIBYANG_VERSION=$(grep "LIBYANG_VERSION =" rules/libyang.mk | awk '{print$3}' | sed -e "s/\\$//" -e "s/(//" -e "s/)//" -e "s/LIBYANG_VERSION_BASE/$LIBYANG_VERSION_BASE/") - BLDENV=$(bldenv) make -f Makefile.work target/debs/$(bldenv)/libyang_${LIBYANG_VERSION}_amd64.deb - find target -name *.deb | xargs -i cp {} $(Build.ArtifactStagingDirectory) + LIBYANG_VERSION_BASE=$(grep "LIBYANG_VERSION_BASE =" rules/libyang.mk | awk '{print$3}') + LIBYANG_VERSION=$(grep "LIBYANG_VERSION =" rules/libyang.mk | awk '{print$3}' | sed -e "s/\\$//" -e "s/(//" -e "s/)//" -e "s/LIBYANG_VERSION_BASE/$LIBYANG_VERSION_BASE/") + SONIC_BUILD_JOBS=$(nproc) BLDENV=$bldenv make -f Makefile.work target/debs/$bldenv/libyang_${LIBYANG_VERSION}_amd64.deb + done + mv target $(Build.ArtifactStagingDirectory) displayName: Make common lib packages - publish: $(Build.ArtifactStagingDirectory) artifact: common-lib diff --git a/.azure-pipelines/template-variables.yml b/.azure-pipelines/template-variables.yml index f28768e39efe..9f192d35bd5e 100644 --- a/.azure-pipelines/template-variables.yml +++ b/.azure-pipelines/template-variables.yml @@ -1,2 +1,3 @@ variables: DEFAULT_CONTAINER_REGISTRY: 'publicmirror.azurecr.io' + COMMON_LIB_BUILD_ENVS: 'bullseye' From 598ab994693886c33ce5fbba3f459c8f5dd998f5 Mon Sep 17 00:00:00 2001 From: Sachin Naik Date: Mon, 18 Apr 2022 22:23:15 -0700 Subject: [PATCH 098/251] secureboot: Enable signing SONiC kernel (#10557) Why I did it To sign SONiC kernel image and allow secure boot based system to verify SONiC image before loading into the system. How I did it Pass following parameter to rules/config.user Ex: SONIC_ENABLE_SECUREBOOT_SIGNATURE := y SIGNING_KEY := /path/to/key/private.key SIGNING_CERT := /path/to/public/public.cert How to verify it Secure boot enabled system enrolled with right public key of the, image in the platform UEFI database will able to verify image before load. Alternatively one can verify with offline sbsign tool as below. export SBSIGN_KEY=/abc/bcd/xyz/ sbverify --cert $SBSIGN_KEY/public_cert.cert fsroot-platform-XYZ/boot/vmlinuz-5.10.0-8-2-amd64 mage O/P: Signature verification OK --- Makefile.work | 12 ++++++++++++ build_debian.sh | 17 +++++++++++++++++ rules/config | 7 +++++++ slave.mk | 3 +++ sonic-slave-bullseye/Dockerfile.j2 | 1 + sonic-slave-buster/Dockerfile.j2 | 1 + 6 files changed, 41 insertions(+) diff --git a/Makefile.work b/Makefile.work index 8042de7d198b..a5ecab1ab58b 100644 --- a/Makefile.work +++ b/Makefile.work @@ -188,6 +188,17 @@ ifneq ($(SONIC_DPKG_CACHE_SOURCE),) DOCKER_RUN += -v "$(SONIC_DPKG_CACHE_SOURCE):/dpkg_cache:rw" endif +ifeq ($(SONIC_ENABLE_SECUREBOOT_SIGNATURE), y) +ifneq ($(SIGNING_KEY),) + DOCKER_SIGNING_SOURCE := $(shell dirname $(SIGNING_KEY)) + DOCKER_RUN += -v "$(DOCKER_SIGNING_SOURCE):$(DOCKER_SIGNING_SOURCE):ro" +endif +ifneq ($(SIGNING_CERT),) + DOCKER_SIGNING_SOURCE := $(shell dirname $(SIGNING_CERT)) + DOCKER_RUN += -v "$(DOCKER_SIGNING_SOURCE):$(DOCKER_SIGNING_SOURCE):ro" +endif +endif + ifeq ($(SONIC_CONFIG_USE_NATIVE_DOCKERD_FOR_BUILD), y) ifneq ($(MULTIARCH_QEMU_ENVIRON), y) DOCKER_RUN += -v /var/run/docker.sock:/var/run/docker.sock @@ -295,6 +306,7 @@ SONIC_BUILD_INSTRUCTION := make \ EXTRA_DOCKER_TARGETS=$(EXTRA_DOCKER_TARGETS) \ BUILD_LOG_TIMESTAMP=$(BUILD_LOG_TIMESTAMP) \ SONIC_ENABLE_IMAGE_SIGNATURE=$(ENABLE_IMAGE_SIGNATURE) \ + SONIC_ENABLE_SECUREBOOT_SIGNATURE=$(SONIC_ENABLE_SECUREBOOT_SIGNATURE) \ SONIC_DEFAULT_CONTAINER_REGISTRY=$(DEFAULT_CONTAINER_REGISTRY) \ ENABLE_HOST_SERVICE_ON_START=$(ENABLE_HOST_SERVICE_ON_START) \ SLAVE_DIR=$(SLAVE_DIR) \ diff --git a/build_debian.sh b/build_debian.sh index 6dbbaa8cf770..f2f7db2b97f2 100755 --- a/build_debian.sh +++ b/build_debian.sh @@ -143,6 +143,23 @@ if [[ $CONFIGURED_ARCH == amd64 ]]; then sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install dmidecode hdparm fi +## Sign the Linux kernel +if [ "$SONIC_ENABLE_SECUREBOOT_SIGNATURE" = "y" ]; then + if [ ! -f $SIGNING_KEY ]; then + echo "Error: SONiC linux kernel signing key missing" + exit 1 + fi + if [ ! -f $SIGNING_CERT ]; then + echo "Error: SONiC linux kernel signing certificate missing" + exit 1 + fi + + echo '[INFO] Signing SONiC linux kernel image' + K=$FILESYSTEM_ROOT/boot/vmlinuz-${LINUX_KERNEL_VERSION}-amd64 + sbsign --key $SIGNING_KEY --cert $SIGNING_CERT --output /tmp/${K##*/} ${K} + sudo cp -f /tmp/${K##*/} ${K} +fi + ## Update initramfs for booting with squashfs+overlay cat files/initramfs-tools/modules | sudo tee -a $FILESYSTEM_ROOT/etc/initramfs-tools/modules > /dev/null diff --git a/rules/config b/rules/config index fe5d7ac3e991..c51fcd84832c 100644 --- a/rules/config +++ b/rules/config @@ -180,6 +180,13 @@ K8s_GCR_IO_PAUSE_VERSION = 3.4.1 # The relative path is build root folder. SONIC_ENABLE_IMAGE_SIGNATURE ?= n +# SONIC_ENABLE_SECUREBOOT_SIGNATURE - enable SONiC kernel signing to support UEFI secureboot +# To support UEFI secureboot chain of trust requires EFI kernel to be signed as a PE binary +# SIGNING_KEY = +# SIGNING_CERT = +# The absolute path should be provided. +SONIC_ENABLE_SECUREBOOT_SIGNATURE ?= n + # PACKAGE_URL_PREFIX - the package url prefix PACKAGE_URL_PREFIX ?= https://packages.trafficmanager.net/public/packages diff --git a/slave.mk b/slave.mk index 185574e61808..17ee8d8ac8de 100644 --- a/slave.mk +++ b/slave.mk @@ -1176,6 +1176,9 @@ $(addprefix $(TARGET_PATH)/, $(SONIC_INSTALLERS)) : $(TARGET_PATH)/% : \ TARGET_PATH=$(TARGET_PATH) \ SONIC_ENFORCE_VERSIONS=$(SONIC_ENFORCE_VERSIONS) \ TRUSTED_GPG_URLS=$(TRUSTED_GPG_URLS) \ + SONIC_ENABLE_SECUREBOOT_SIGNATURE="$(SONIC_ENABLE_SECUREBOOT_SIGNATURE)" \ + SIGNING_KEY="$(SIGNING_KEY)" \ + SIGNING_CERT="$(SIGNING_CERT)" \ PACKAGE_URL_PREFIX=$(PACKAGE_URL_PREFIX) \ MULTIARCH_QEMU_ENVIRON=$(MULTIARCH_QEMU_ENVIRON) \ ./build_debian.sh $(LOG) diff --git a/sonic-slave-bullseye/Dockerfile.j2 b/sonic-slave-bullseye/Dockerfile.j2 index 9a47b48ab93f..2c3224999a19 100644 --- a/sonic-slave-bullseye/Dockerfile.j2 +++ b/sonic-slave-bullseye/Dockerfile.j2 @@ -117,6 +117,7 @@ RUN apt-get update && apt-get install -y \ devscripts \ quilt \ stgit \ + sbsigntool \ # For platform-modules build module-assistant \ # For thrift build\ diff --git a/sonic-slave-buster/Dockerfile.j2 b/sonic-slave-buster/Dockerfile.j2 index 269501fb2e47..401f032725cf 100644 --- a/sonic-slave-buster/Dockerfile.j2 +++ b/sonic-slave-buster/Dockerfile.j2 @@ -125,6 +125,7 @@ RUN apt-get update && apt-get install -y \ devscripts \ quilt \ stgit \ + sbsigntool \ # For platform-modules build module-assistant \ # For thrift build\ From 330777e795ea481c2350e42a2befb25904d157de Mon Sep 17 00:00:00 2001 From: Saikrishna Arcot Date: Tue, 19 Apr 2022 12:22:16 -0400 Subject: [PATCH 099/251] Image build time improvements (#10104) * [build]: Patch debootstrap to not unmount the host's /proc filesystem Currently, when the final image is being built (sonic-vs.img.gz, sonic-broadcom.bin, or similar), each invocation of sudo in the build_debian.sh script takes 0.8 seconds to run and execute the actual command. This is because the /proc filesystem in the slave container has been unmounted somehow. This is happening when debootstrap is running, and it incorrectly unmounts the host's (in our case, the slave container's) /proc filesystem because in the new image being built, /proc is a symlink to the host's (the slave container's) /proc. Because of that, /proc is gone, and each invocation of sudo adds 0.8 seconds overhead. As a side effect, docker exec into the slave container during this time will fail, because /proc/self/fd doesn't exist anymore, and docker exec assumes that that exists. Debootstrap has fixed this in 1.0.124 and newer, so backport the patch that fixes this into the version that Bullseye has. Signed-off-by: Saikrishna Arcot * [build_debian.sh]: Use eatmydata to speed up deb package installations During package installations, dpkg calls fsync multiples times (for each package) to ensure that tht efiles are written to disk, so that if there's some system crash during package installation, then it is in at least a somewhat recoverable state. For our use case though, we're installing packages in a chroot in fsroot-* from a slave container and then packaging it into an image. If there were a system crash (or even if docker crashed), the fsroot-* directory would first be removed, and the process would get restarted. This means that the fsync calls aren't really needed for our use case. The eatmydata package includes a library that will block/suppress the use of fsync (and similar) system calls from applications and will instead just return success, so that the application is not blocked on disk writes, which can instead happen in the background instead as necessary. If dpkg is run with this library, then the fsync calls that it does will have no effect. Therefore, install the eatmydata package at the beginning of build_debian.sh and have dpkg be run under eatmydata for almost all package installations/removals. At the end of the installation, remove it, so that the final image uses dpkg as normal. In my testing, this saves about 2-3 minutes from the image build time. Signed-off-by: Saikrishna Arcot * Change ln syntax to use chroot Signed-off-by: Saikrishna Arcot --- build_debian.sh | 10 ++++++++++ rules/debootstrap.dep | 10 ++++++++++ rules/debootstrap.mk | 9 +++++++++ slave.mk | 1 + src/debootstrap/.gitignore | 3 +++ src/debootstrap/Makefile | 24 ++++++++++++++++++++++ src/debootstrap/proc-mount.patch | 34 ++++++++++++++++++++++++++++++++ 7 files changed, 91 insertions(+) create mode 100644 rules/debootstrap.dep create mode 100644 rules/debootstrap.mk create mode 100644 src/debootstrap/.gitignore create mode 100644 src/debootstrap/Makefile create mode 100644 src/debootstrap/proc-mount.patch diff --git a/build_debian.sh b/build_debian.sh index f2f7db2b97f2..b3d692cdb28c 100755 --- a/build_debian.sh +++ b/build_debian.sh @@ -113,6 +113,12 @@ sudo cp files/apt/apt.conf.d/{81norecommends,apt-{clean,gzip-indexes,no-language ## Note: set lang to prevent locale warnings in your chroot sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y update sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y upgrade + +echo '[INFO] Install and setup eatmydata' +sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install eatmydata +sudo LANG=C chroot $FILESYSTEM_ROOT ln -s /usr/bin/eatmydata /usr/local/bin/dpkg +echo 'Dir::Bin::dpkg "/usr/local/bin/dpkg";' | sudo tee $FILESYSTEM_ROOT/etc/apt/apt.conf.d/00image-install-eatmydata > /dev/null + echo '[INFO] Install packages for building image' sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install makedev psmisc @@ -586,6 +592,10 @@ scripts/collect_host_image_version_files.sh $TARGET_PATH $FILESYSTEM_ROOT # Remove GCC sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y remove gcc +# Remove eatmydata +sudo rm $FILESYSTEM_ROOT/etc/apt/apt.conf.d/00image-install-eatmydata $FILESYSTEM_ROOT/usr/local/bin/dpkg +sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y remove eatmydata + ## Clean up apt sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y autoremove sudo LANG=C chroot $FILESYSTEM_ROOT apt-get autoclean diff --git a/rules/debootstrap.dep b/rules/debootstrap.dep new file mode 100644 index 000000000000..82ca11d7e4df --- /dev/null +++ b/rules/debootstrap.dep @@ -0,0 +1,10 @@ + +SPATH := $($(DEBOOTSTRAP)_SRC_PATH) +DEP_FILES := $(SONIC_COMMON_FILES_LIST) rules/debootstrap.mk rules/debootstrap.dep +DEP_FILES += $(SONIC_COMMON_BASE_FILES_LIST) +DEP_FILES += $(shell git ls-files $(SPATH)) + +$(DEBOOTSTRAP)_CACHE_MODE := GIT_CONTENT_SHA +$(DEBOOTSTRAP)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST) +$(DEBOOTSTRAP)_DEP_FILES := $(DEP_FILES) + diff --git a/rules/debootstrap.mk b/rules/debootstrap.mk new file mode 100644 index 000000000000..dc60599d5f3f --- /dev/null +++ b/rules/debootstrap.mk @@ -0,0 +1,9 @@ +# debootstrap package + +DEBOOTSTRAP_VERSION = 1.0.123 + +export DEBOOTSTRAP_VERSION + +DEBOOTSTRAP = debootstrap_$(DEBOOTSTRAP_VERSION)_all.deb +$(DEBOOTSTRAP)_SRC_PATH = $(SRC_PATH)/debootstrap +SONIC_MAKE_DEBS += $(DEBOOTSTRAP) diff --git a/slave.mk b/slave.mk index 17ee8d8ac8de..a68a08fcd56a 100644 --- a/slave.mk +++ b/slave.mk @@ -992,6 +992,7 @@ $(addprefix $(TARGET_PATH)/, $(SONIC_INSTALLERS)) : $(TARGET_PATH)/% : \ $$(addprefix $(TARGET_PATH)/,$$($$*_DOCKERS)) \ $$(addprefix $(TARGET_PATH)/,$$(SONIC_PACKAGES_LOCAL)) \ $$(addprefix $(FILES_PATH)/,$$($$*_FILES)) \ + $(addsuffix -install,$(addprefix $(IMAGE_DISTRO_DEBS_PATH)/,$(DEBOOTSTRAP))) \ $(if $(findstring y,$(ENABLE_ZTP)),$(addprefix $(IMAGE_DISTRO_DEBS_PATH)/,$(SONIC_ZTP))) \ $(addprefix $(PYTHON_WHEELS_PATH)/,$(SONIC_UTILITIES_PY3)) \ $(addprefix $(PYTHON_WHEELS_PATH)/,$(SONIC_PY_COMMON_PY2)) \ diff --git a/src/debootstrap/.gitignore b/src/debootstrap/.gitignore new file mode 100644 index 000000000000..2aa8324ad667 --- /dev/null +++ b/src/debootstrap/.gitignore @@ -0,0 +1,3 @@ +debootstrap*.udeb +debootstrap*.dsc +debootstrap-*/ diff --git a/src/debootstrap/Makefile b/src/debootstrap/Makefile new file mode 100644 index 000000000000..04e8646a1b2e --- /dev/null +++ b/src/debootstrap/Makefile @@ -0,0 +1,24 @@ +.ONESHELL: +SHELL = /bin/bash +.SHELLFLAGS += -e + +MAIN_TARGET = debootstrap_$(DEBOOTSTRAP_VERSION)_all.deb + +$(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% : + # Remove any stale files + rm -rf ./debootstrap-$(DEBOOTSTRAP_VERSION) ./debootstrap*.{deb,udeb,dsc} + + # Get source package + dget https://deb.debian.org/debian/pool/main/d/debootstrap/debootstrap_$(DEBOOTSTRAP_VERSION).dsc + + # Build source and Debian packages + pushd debootstrap-$(DEBOOTSTRAP_VERSION) + patch -p1 -i ../proc-mount.patch + dpkg-buildpackage -rfakeroot -b -us -uc -j$(SONIC_CONFIG_MAKE_JOBS) --admindir $(SONIC_DPKG_ADMINDIR) + popd + + # Move the newly-built .deb packages to the destination directory + mv $(DERIVED_TARGETS) $* $(DEST)/ + +$(addprefix $(DEST)/, $(DERIVED_TARGETS)): $(DEST)/% : $(DEST)/$(MAIN_TARGET) + diff --git a/src/debootstrap/proc-mount.patch b/src/debootstrap/proc-mount.patch new file mode 100644 index 000000000000..93084576490a --- /dev/null +++ b/src/debootstrap/proc-mount.patch @@ -0,0 +1,34 @@ +From 87cdebbcad6f4e16ba711227cbbbd70039f88752 Mon Sep 17 00:00:00 2001 +From: YunQiang Su +Date: Mon, 7 Sep 2020 09:29:37 +0800 +Subject: [PATCH] stage1: re-mkdir /proc instead of umount if it is a symlink + +In docker, the TARGET/proc will be a symlink to /proc. +And if the docker instance is called with --privileged, it will umount +the /proc of the whole instance in setup_proc. +--- + debian/changelog | 3 +++ + functions | 7 ++++++- + 2 files changed, 9 insertions(+), 1 deletion(-) + +diff --git a/functions b/functions +index 1ac63f7..065320d 100644 +--- a/functions ++++ b/functions +@@ -1183,7 +1183,12 @@ setup_proc () { + umount_on_exit /dev/shm + umount_on_exit /proc + umount_on_exit /proc/bus/usb +- umount "$TARGET/proc" 2>/dev/null || true ++ if [ -L "$TARGET/proc" ];then ++ rm -f $TARGET/proc ++ mkdir $TARGET/proc ++ else ++ umount "$TARGET/proc" 2>/dev/null || true ++ fi + + # some container environment are used at second-stage, it already treats /proc and so on + if [ -z "$(ls -A "$TARGET/proc")" ]; then +-- +GitLab + From 8b5d908c928d45ffa406343e16aaab71f45a81b2 Mon Sep 17 00:00:00 2001 From: Jing Zhang Date: Tue, 19 Apr 2022 09:27:45 -0700 Subject: [PATCH 100/251] Upgrade mux container to Bullseye (#10498) sign-off: Jing Zhang zhangjing@microsoft.com #### Why I did it As part of the process moving containers from buster to bullseye. #### How I did it 1. change base image from buster to bullseye. 2. remove unused addition to orchagent run options #### How to verify it Tested building locally. --- dockers/docker-mux/Dockerfile.j2 | 2 +- rules/docker-mux.mk | 10 +++------- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/dockers/docker-mux/Dockerfile.j2 b/dockers/docker-mux/Dockerfile.j2 index 66ec315f0809..f7e1ee3b4454 100755 --- a/dockers/docker-mux/Dockerfile.j2 +++ b/dockers/docker-mux/Dockerfile.j2 @@ -1,5 +1,5 @@ {% from "dockers/dockerfile-macros.j2" import install_debian_packages, install_python_wheels, copy_files %} -FROM docker-config-engine-buster +FROM docker-config-engine-bullseye ARG docker_container_name RUN [ -f /etc/rsyslog.conf ] && sed -ri "s/%syslogtag%/$docker_container_name#%syslogtag%/;" /etc/rsyslog.conf diff --git a/rules/docker-mux.mk b/rules/docker-mux.mk index 31c3212ea11f..cbdc1c06510d 100644 --- a/rules/docker-mux.mk +++ b/rules/docker-mux.mk @@ -7,12 +7,12 @@ DOCKER_MUX_DBG = $(DOCKER_MUX_STEM)-$(DBG_IMAGE_MARK).gz $(DOCKER_MUX)_PATH = $(DOCKERS_PATH)/$(DOCKER_MUX_STEM) $(DOCKER_MUX)_DEPENDS = $(SONIC_LINKMGRD) $(LIBSWSSCOMMON) $(LIBHIREDIS) -$(DOCKER_MUX)_DBG_DEPENDS = $($(DOCKER_CONFIG_ENGINE_BUSTER)_DBG_DEPENDS) +$(DOCKER_MUX)_DBG_DEPENDS = $($(DOCKER_CONFIG_ENGINE_BULLSEYE)_DBG_DEPENDS) $(DOCKER_MUX)_DBG_DEPENDS += $(SONIC_LINKMGRD_DBG) $(LIBSWSSCOMMON_DBG) $(LIBHIREDIS_DBG) -$(DOCKER_MUX)_DBG_IMAGE_PACKAGES = $($(DOCKER_CONFIG_ENGINE_BUSTER)_DBG_IMAGE_PACKAGES) +$(DOCKER_MUX)_DBG_IMAGE_PACKAGES = $($(DOCKER_CONFIG_ENGINE_BULLSEYE)_DBG_IMAGE_PACKAGES) -$(DOCKER_MUX)_LOAD_DOCKERS = $(DOCKER_CONFIG_ENGINE_BUSTER) +$(DOCKER_MUX)_LOAD_DOCKERS = $(DOCKER_CONFIG_ENGINE_BULLSEYE) $(DOCKER_MUX)_VERSION = 1.0.0 $(DOCKER_MUX)_PACKAGE_NAME = mux @@ -32,8 +32,4 @@ endif $(DOCKER_MUX)_CONTAINER_NAME = mux $(DOCKER_MUX)_RUN_OPT += --privileged -t $(DOCKER_MUX)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro -$(DOCKER_ORCHAGENT)_RUN_OPT += -v /var/log/mux:/var/log/mux:rw $(DOCKER_MUX)_FILES += $(SUPERVISOR_PROC_EXIT_LISTENER_SCRIPT) - -SONIC_BUSTER_DOCKERS += $(DOCKER_MUX) -SONIC_BUSTER_DBG_DOCKERS += $(DOCKER_MUX_DBG) From 936d93cbcd25b3997f38f4278eae8d0db012c258 Mon Sep 17 00:00:00 2001 From: Qi Luo Date: Tue, 19 Apr 2022 15:47:07 -0700 Subject: [PATCH 101/251] Fix tagged VlanInterface if attached to multiple vlan as untagged member (#8927) #### Why I did it Fix several bugs: 1. If one vlan member belongs to multiple vlans, and if any of the vlans is "Tagged" type, we respect the tagged type 2. If one vlan member belongs to multiple vlans, and all of the vlans have no "Tagged" type, we override it to be a tagged member 3. make sure `vlantype_name` is assigned correctly in each iteration #### How to verify it 1. Test the command line to parse a minigraph and make sure the output does not change. ``` ./sonic-cfggen -m minigraph.mlnx20.xml ``` The minigraph is for HwSKU Mellanox-SN2700-D40C8S8. 2. Test on a DUT with HwSKU Mellanox-SN2700-D40C8S8 ``` sudo config load_minigraph show vlan brief ``` Checked the "Port Tagging" column in the output. --- src/sonic-config-engine/minigraph.py | 22 +++++++++++------ .../tests/sample-graph-resource-type.xml | 9 +++++++ .../tests/sample-graph-subintf.xml | 8 +++++++ .../tests/simple-sample-graph.xml | 9 +++++++ src/sonic-config-engine/tests/test_cfggen.py | 24 +++++++++++++++---- 5 files changed, 61 insertions(+), 11 deletions(-) diff --git a/src/sonic-config-engine/minigraph.py b/src/sonic-config-engine/minigraph.py index b4f1f3acbd7a..35a6f564568f 100644 --- a/src/sonic-config-engine/minigraph.py +++ b/src/sonic-config-engine/minigraph.py @@ -536,28 +536,36 @@ def parse_dpg(dpg, hname): vlan_members = {} vlan_member_list = {} dhcp_relay_table = {} - vlantype_name = "" - intf_vlan_mbr = defaultdict(list) + # Dict: vlan member (port/PortChannel) -> set of VlanID, in which the member if an untagged vlan member + untagged_vlan_mbr = defaultdict(set) for vintf in vlanintfs.findall(str(QName(ns, "VlanInterface"))): vlanid = vintf.find(str(QName(ns, "VlanID"))).text + vlantype = vintf.find(str(QName(ns, "Type"))) + if vlantype is None: + vlantype_name = "" + else: + vlantype_name = vlantype.text vintfmbr = vintf.find(str(QName(ns, "AttachTo"))).text vmbr_list = vintfmbr.split(';') - for i, member in enumerate(vmbr_list): - intf_vlan_mbr[member].append(vlanid) + if vlantype_name != "Tagged": + for member in vmbr_list: + untagged_vlan_mbr[member].add(vlanid) for vintf in vlanintfs.findall(str(QName(ns, "VlanInterface"))): vintfname = vintf.find(str(QName(ns, "Name"))).text vlanid = vintf.find(str(QName(ns, "VlanID"))).text vintfmbr = vintf.find(str(QName(ns, "AttachTo"))).text vlantype = vintf.find(str(QName(ns, "Type"))) - if vlantype != None: - vlantype_name = vintf.find(str(QName(ns, "Type"))).text + if vlantype is None: + vlantype_name = "" + else: + vlantype_name = vlantype.text vmbr_list = vintfmbr.split(';') for i, member in enumerate(vmbr_list): vmbr_list[i] = port_alias_map.get(member, member) sonic_vlan_member_name = "Vlan%s" % (vlanid) if vlantype_name == "Tagged": vlan_members[(sonic_vlan_member_name, vmbr_list[i])] = {'tagging_mode': 'tagged'} - elif len(intf_vlan_mbr[member]) > 1: + elif len(untagged_vlan_mbr[member]) > 1: vlan_members[(sonic_vlan_member_name, vmbr_list[i])] = {'tagging_mode': 'tagged'} else: vlan_members[(sonic_vlan_member_name, vmbr_list[i])] = {'tagging_mode': 'untagged'} diff --git a/src/sonic-config-engine/tests/sample-graph-resource-type.xml b/src/sonic-config-engine/tests/sample-graph-resource-type.xml index 9ba4f1e70267..62c2dfd64f3b 100644 --- a/src/sonic-config-engine/tests/sample-graph-resource-type.xml +++ b/src/sonic-config-engine/tests/sample-graph-resource-type.xml @@ -190,6 +190,14 @@ 1000 192.168.0.0/27 + + ab4 + fortyGigE0/8 + 192.0.0.1;192.0.0.2 + 1001 + 1001 + 192.168.0.32/27 + kk1 fortyGigE0/12 @@ -205,6 +213,7 @@ 192.0.0.1;192.0.0.2 2000 2000 + Tagged 192.168.0.240/27 diff --git a/src/sonic-config-engine/tests/sample-graph-subintf.xml b/src/sonic-config-engine/tests/sample-graph-subintf.xml index d5fd2d461c8a..a23b668c2c2f 100644 --- a/src/sonic-config-engine/tests/sample-graph-subintf.xml +++ b/src/sonic-config-engine/tests/sample-graph-subintf.xml @@ -208,6 +208,14 @@ 1000 192.168.0.0/27 + + ab4 + fortyGigE0/8 + 192.0.0.1;192.0.0.2 + 1001 + 1001 + 192.168.0.32/27 + kk1 fortyGigE0/12 diff --git a/src/sonic-config-engine/tests/simple-sample-graph.xml b/src/sonic-config-engine/tests/simple-sample-graph.xml index a8bd8b0b4685..8d7800686c7a 100644 --- a/src/sonic-config-engine/tests/simple-sample-graph.xml +++ b/src/sonic-config-engine/tests/simple-sample-graph.xml @@ -190,6 +190,14 @@ 1000 192.168.0.0/27 + + ab4 + fortyGigE0/8 + 192.0.0.1;192.0.0.2 + 1001 + 1001 + 192.168.0.32/27 + kk1 fortyGigE0/12 @@ -205,6 +213,7 @@ 192.0.0.1;192.0.0.2 2000 2000 + Tagged 192.168.0.240/27 diff --git a/src/sonic-config-engine/tests/test_cfggen.py b/src/sonic-config-engine/tests/test_cfggen.py index e1f6844dd5f2..29773dffc628 100644 --- a/src/sonic-config-engine/tests/test_cfggen.py +++ b/src/sonic-config-engine/tests/test_cfggen.py @@ -151,6 +151,7 @@ def test_var_json_data(self, **kwargs): utils.to_dict(output.strip()), utils.to_dict( '{\n "Vlan1000|Ethernet8": {\n "tagging_mode": "tagged"\n },' + ' \n "Vlan1001|Ethernet8": {\n "tagging_mode": "tagged"\n },' ' \n "Vlan2000|Ethernet12": {\n "tagging_mode": "tagged"\n },' ' \n "Vlan2001|Ethernet12": {\n "tagging_mode": "tagged"\n },' ' \n "Vlan2020|Ethernet12": {\n "tagging_mode": "tagged"\n }\n}' @@ -160,9 +161,10 @@ def test_var_json_data(self, **kwargs): self.assertEqual( utils.to_dict(output.strip()), utils.to_dict( - '{\n "Vlan1000|Ethernet8": {\n "tagging_mode": "untagged"\n },' + '{\n "Vlan1000|Ethernet8": {\n "tagging_mode": "tagged"\n },' + ' \n "Vlan1001|Ethernet8": {\n "tagging_mode": "tagged"\n },' ' \n "Vlan2000|Ethernet12": {\n "tagging_mode": "tagged"\n },' - ' \n "Vlan2001|Ethernet12": {\n "tagging_mode": "tagged"\n },' + ' \n "Vlan2001|Ethernet12": {\n "tagging_mode": "untagged"\n },' ' \n "Vlan2020|Ethernet12": {\n "tagging_mode": "tagged"\n }\n}' ) ) @@ -249,6 +251,7 @@ def test_minigraph_vlans(self, **kwargs): utils.to_dict(output.strip()), utils.to_dict( "{'Vlan1000': {'alias': 'ab1', 'dhcp_servers': ['192.0.0.1', '192.0.0.2'], 'vlanid': '1000'}, " + "'Vlan1001': {'alias': 'ab4', 'dhcp_servers': ['192.0.0.1', '192.0.0.2'], 'vlanid': '1001'}," "'Vlan2001': {'alias': 'ab3', 'dhcp_servers': ['192.0.0.1', '192.0.0.2'], 'vlanid': '2001'}," "'Vlan2000': {'alias': 'ab2', 'dhcp_servers': ['192.0.0.1', '192.0.0.2'], 'vlanid': '2000'}," "'Vlan2020': {'alias': 'kk1', 'dhcp_servers': ['192.0.0.1', '192.0.0.2'], 'vlanid': '2020'}}" @@ -265,6 +268,7 @@ def test_minigraph_vlan_members(self, **kwargs): utils.to_dict(output.strip()), utils.to_dict( "{('Vlan2000', 'Ethernet12'): {'tagging_mode': 'tagged'}, " + "('Vlan1001', 'Ethernet8'): {'tagging_mode': 'tagged'}, " "('Vlan1000', 'Ethernet8'): {'tagging_mode': 'tagged'}, " "('Vlan2020', 'Ethernet12'): {'tagging_mode': 'tagged'}, " "('Vlan2001', 'Ethernet12'): {'tagging_mode': 'tagged'}}" @@ -275,9 +279,10 @@ def test_minigraph_vlan_members(self, **kwargs): utils.to_dict(output.strip()), utils.to_dict( "{('Vlan2000', 'Ethernet12'): {'tagging_mode': 'tagged'}, " - "('Vlan1000', 'Ethernet8'): {'tagging_mode': 'untagged'}, " + "('Vlan1000', 'Ethernet8'): {'tagging_mode': 'tagged'}, " + "('Vlan1001', 'Ethernet8'): {'tagging_mode': 'tagged'}, " "('Vlan2020', 'Ethernet12'): {'tagging_mode': 'tagged'}, " - "('Vlan2001', 'Ethernet12'): {'tagging_mode': 'tagged'}}" + "('Vlan2001', 'Ethernet12'): {'tagging_mode': 'untagged'}}" ) ) @@ -704,6 +709,9 @@ def test_minigraph_bgp_voq_chassis_peer(self): def test_minigraph_sub_port_interfaces(self, check_stderr=True): self.verify_sub_intf(check_stderr=check_stderr) + def test_minigraph_sub_port_intf_resource_type_non_backend_tor(self, check_stderr=True): + self.verify_sub_intf_non_backend_tor(graph_file=self.sample_resource_graph, check_stderr=check_stderr) + def test_minigraph_sub_port_intf_resource_type(self, check_stderr=True): self.verify_sub_intf(graph_file=self.sample_resource_graph, check_stderr=check_stderr) @@ -737,6 +745,14 @@ def verify_no_vlan_member(self): output = self.run_script(argument) self.assertEqual(output.strip(), "{}") + def verify_sub_intf_non_backend_tor(self, **kwargs): + graph_file = kwargs.get('graph_file', self.sample_graph_simple) + + # All the other tables stay unchanged + self.test_var_json_data(graph_file=graph_file) + self.test_minigraph_vlans(graph_file=graph_file) + self.test_minigraph_vlan_members(graph_file=graph_file) + def verify_sub_intf(self, **kwargs): graph_file = kwargs.get('graph_file', self.sample_graph_simple) check_stderr = kwargs.get('check_stderr', True) From d853c9c747f92db81d2eea806d8e6fe5a4a466a1 Mon Sep 17 00:00:00 2001 From: bingwang-ms <66248323+bingwang-ms@users.noreply.github.com> Date: Wed, 20 Apr 2022 08:25:35 +0800 Subject: [PATCH 102/251] Update submodule sonic-swss-common (#10611) Signed-off-by: bingwang --- src/sonic-swss-common | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-swss-common b/src/sonic-swss-common index a7118f259a8b..c34a4e1cc733 160000 --- a/src/sonic-swss-common +++ b/src/sonic-swss-common @@ -1 +1 @@ -Subproject commit a7118f259a8be93ec802c77ecf3018cd403ad8dc +Subproject commit c34a4e1cc7332fd7368239206a097478fa1dcc90 From 128d762af36f4f5b7e42915aea2ffdc81739cb58 Mon Sep 17 00:00:00 2001 From: Junhua Zhai Date: Wed, 20 Apr 2022 19:02:49 +0800 Subject: [PATCH 103/251] [gearbox] Add peer gbsyncd for swss if gearbox exists (#10504) Fix the issues #10501 and #9733 If having gearbox, we need: * add gbsyncd as a peer since swss also has dependency on gbsyncd * add service gbsyncd to FEATURE table if it is missing --- files/scripts/gbsyncd.sh | 6 +- files/scripts/swss.sh | 57 +++++++++++++------ .../docker-gbsyncd-credo/supervisord.conf.j2 | 8 +++ 3 files changed, 53 insertions(+), 18 deletions(-) diff --git a/files/scripts/gbsyncd.sh b/files/scripts/gbsyncd.sh index 512ceed2d747..0990de5d8257 100755 --- a/files/scripts/gbsyncd.sh +++ b/files/scripts/gbsyncd.sh @@ -3,7 +3,11 @@ . /usr/local/bin/syncd_common.sh function startplatform() { - : + # Add gbsyncd to FEATURE table, if not in. It did have same config as syncd. + if [ -z $($SONIC_DB_CLI CONFIG_DB HGET 'FEATURE|gbsyncd' state) ]; then + local CMD="local r=redis.call('DUMP', KEYS[1]); redis.call('RESTORE', KEYS[2], 0, r)" + $SONIC_DB_CLI CONFIG_DB EVAL "$CMD" 2 'FEATURE|syncd' 'FEATURE|gbsyncd' + fi } function waitplatform() { diff --git a/files/scripts/swss.sh b/files/scripts/swss.sh index 4f8f1b1af054..40acaa33c573 100755 --- a/files/scripts/swss.sh +++ b/files/scripts/swss.sh @@ -112,11 +112,13 @@ start_peer_and_dependent_services() { check_warm_boot if [[ x"$WARM_BOOT" != x"true" ]]; then - if [[ ! -z $DEV ]]; then - /bin/systemctl start ${PEER}@$DEV - else - /bin/systemctl start ${PEER} - fi + for peer in ${PEER}; do + if [[ ! -z $DEV ]]; then + /bin/systemctl start ${peer}@$DEV + else + /bin/systemctl start ${peer} + fi + done for dep in ${DEPENDENT}; do /bin/systemctl start ${dep} done @@ -143,11 +145,13 @@ stop_peer_and_dependent_services() { for dep in ${DEPENDENT}; do /bin/systemctl stop ${dep} done - if [[ ! -z $DEV ]]; then - /bin/systemctl stop ${PEER}@$DEV - else - /bin/systemctl stop ${PEER} - fi + for peer in ${PEER}; do + if [[ ! -z $DEV ]]; then + /bin/systemctl stop ${peer}@$DEV + else + /bin/systemctl stop ${peer} + fi + done fi } @@ -207,11 +211,18 @@ wait() { # NOTE: This assumes Docker containers share the same names as their # corresponding services for SECS in {1..60}; do - if [[ ! -z $DEV ]]; then - RUNNING=$(docker inspect -f '{{.State.Running}}' ${PEER}$DEV) - else - RUNNING=$(docker inspect -f '{{.State.Running}}' ${PEER}) - fi + ALL_PEERS_RUNNING=true + for peer in ${PEER}; do + if [[ ! -z $DEV ]]; then + RUNNING=$(docker inspect -f '{{.State.Running}}' ${peer}$DEV) + else + RUNNING=$(docker inspect -f '{{.State.Running}}' ${peer}) + fi + if [[ x"$RUNNING" != x"true" ]]; then + ALL_PEERS_RUNNING=false + break + fi + done ALL_DEPS_RUNNING=true for dep in ${MULTI_INST_DEPENDENT}; do if [[ ! -z $DEV ]]; then @@ -225,7 +236,7 @@ wait() { fi done - if [[ x"$RUNNING" == x"true" && x"$ALL_DEPS_RUNNING" == x"true" ]]; then + if [[ x"$ALL_PEERS_RUNNING" == x"true" && x"$ALL_DEPS_RUNNING" == x"true" ]]; then break else sleep 1 @@ -243,7 +254,7 @@ wait() { done if [[ ! -z $DEV ]]; then - /usr/bin/docker-wait-any -s ${SERVICE}$DEV -d ${PEER}$DEV ${ALL_DEPS} + /usr/bin/docker-wait-any -s ${SERVICE}$DEV -d `printf "%s$DEV " ${PEER}` ${ALL_DEPS} else /usr/bin/docker-wait-any -s ${SERVICE} -d ${PEER} ${ALL_DEPS} fi @@ -283,6 +294,17 @@ stop() { stop_peer_and_dependent_services } +function check_peer_gbsyncd() +{ + PLATFORM=`$SONIC_DB_CLI CONFIG_DB hget 'DEVICE_METADATA|localhost' platform` + HWSKU=`$SONIC_DB_CLI CONFIG_DB hget 'DEVICE_METADATA|localhost' hwsku` + GEARBOX_CONFIG=/usr/share/sonic/device/$PLATFORM/$HWSKU/$DEV/gearbox_config.json + + if [ -f $GEARBOX_CONFIG ]; then + PEER="$PEER gbsyncd" + fi +} + if [ "$DEV" ]; then NET_NS="$NAMESPACE_PREFIX$DEV" #name of the network namespace SONIC_DB_CLI="sonic-db-cli -n $NET_NS" @@ -291,6 +313,7 @@ else SONIC_DB_CLI="sonic-db-cli" fi +check_peer_gbsyncd read_dependent_services case "$1" in diff --git a/platform/components/docker-gbsyncd-credo/supervisord.conf.j2 b/platform/components/docker-gbsyncd-credo/supervisord.conf.j2 index 6f12053ce236..01ef324450a9 100644 --- a/platform/components/docker-gbsyncd-credo/supervisord.conf.j2 +++ b/platform/components/docker-gbsyncd-credo/supervisord.conf.j2 @@ -10,6 +10,14 @@ autorestart=unexpected startretries=0 exitcodes=0,3 events=PROCESS_STATE +buffer_size=1024 + +[eventlistener:supervisor-proc-exit-listener] +command=/usr/bin/supervisor-proc-exit-listener --container-name gbsyncd +events=PROCESS_STATE_EXITED,PROCESS_STATE_RUNNING +autostart=true +autorestart=unexpected +buffer_size=1024 [program:rsyslogd] command=/usr/sbin/rsyslogd -n -iNONE From fb147764b5f7170532229577c29a20a10f3fec8f Mon Sep 17 00:00:00 2001 From: Samuel Angebault Date: Wed, 20 Apr 2022 10:03:05 -0700 Subject: [PATCH 104/251] [Arista] Fix arista-net initramfs hook (#10624) The interface renaming logic fails if one interface is missing. Because of the `set -e` the whole initramfs hook would abort early on error. This change fixes the current behavior to make sure missing interfaces are properly skipped and ensure existing interface are renamed. --- files/initramfs-tools/arista-net | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/files/initramfs-tools/arista-net b/files/initramfs-tools/arista-net index 64308630098c..bfa4f8a6507c 100644 --- a/files/initramfs-tools/arista-net +++ b/files/initramfs-tools/arista-net @@ -47,7 +47,9 @@ arista_net_rename() { local new_name="$2" local from_name="$3" devname=$(arista_net_devname "$device_path" "$from_name") - [ -n "$devname" ] && ip link set "$devname" name "$new_name" + if [ -n "$devname" ]; then + ip link set "$devname" name "$new_name" + fi } # Sets the MAC address to the value passed by Aboot through /proc/cmdline From 122cb9069598e0798883538af923381c40f3ba8a Mon Sep 17 00:00:00 2001 From: FuzailBrcm <51665572+FuzailBrcm@users.noreply.github.com> Date: Thu, 21 Apr 2022 01:36:22 +0530 Subject: [PATCH 105/251] Fix AS7726 not showing serial number in 'show platform summary' (#10489) (#10509) --- .../sonic_platform_pddf_base/pddf_chassis.py | 8 ++++---- .../sonic_platform_pddf_base/pddf_fan.py | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/platform/pddf/platform-api-pddf-base/sonic_platform_pddf_base/pddf_chassis.py b/platform/pddf/platform-api-pddf-base/sonic_platform_pddf_base/pddf_chassis.py index d90949184d5b..ef211b9933c4 100644 --- a/platform/pddf/platform-api-pddf-base/sonic_platform_pddf_base/pddf_chassis.py +++ b/platform/pddf/platform-api-pddf-base/sonic_platform_pddf_base/pddf_chassis.py @@ -96,11 +96,11 @@ def get_model(self): """ return self._eeprom.part_number_str() - def get_serial(self): + def get_service_tag(self): """ - Retrieves the serial number of the chassis (Service tag) + Retrieves the service tag of the chassis Returns: - string: Serial number of chassis + string: Sevice tag of chassis """ return self._eeprom.serial_str() @@ -123,7 +123,7 @@ def get_base_mac(self): """ return self._eeprom.base_mac_addr() - def get_serial_number(self): + def get_serial(self): """ Retrieves the hardware serial number for the chassis diff --git a/platform/pddf/platform-api-pddf-base/sonic_platform_pddf_base/pddf_fan.py b/platform/pddf/platform-api-pddf-base/sonic_platform_pddf_base/pddf_fan.py index 2a8ef46085c5..c0e95c896910 100644 --- a/platform/pddf/platform-api-pddf-base/sonic_platform_pddf_base/pddf_fan.py +++ b/platform/pddf/platform-api-pddf-base/sonic_platform_pddf_base/pddf_fan.py @@ -150,7 +150,7 @@ def get_speed(self): if output['status'].isalpha(): return 0 else: - speed = int(output['status']) + speed = int(float(output['status'])) max_speed = int(self.plugin_data['PSU']['PSU_FAN_MAX_SPEED']) speed_percentage = round((speed*100)/max_speed) From 651ac2c840a224d100d1d0b58ad72d52e83ca01c Mon Sep 17 00:00:00 2001 From: Junchao-Mellanox <57339448+Junchao-Mellanox@users.noreply.github.com> Date: Thu, 21 Apr 2022 08:12:28 +0800 Subject: [PATCH 106/251] [submodule] Update submodule for sonic-swss (#10623) Swss Commit update: 1fd1dbf Add support for route flow counter (https://github.com/Azure/sonic-buildimage/pull/2094) d8fadc6 [QoS] Resolve an issue in the sequence where a referenced object removed and then the referencing object deleting and then re-adding (https://github.com/Azure/sonic-buildimage/pull/2210) eaf7264 [macsecorch]: MACsec with pfc (https://github.com/Azure/sonic-buildimage/pull/2095) a32b611 [azp]: Reduce diff coverage to 50% threshhold (https://github.com/Azure/sonic-buildimage/issues/2227) 6301db7 [Code owner] Set owners for auto reviews (https://github.com/Azure/sonic-buildimage/issues/2229) d1fb3dd [BFD]Retry create BFD with different source UDP port on failure (https://github.com/Azure/sonic-buildimage/pull/2225) 53620f3 [orchagent] add & remove port counters dynamically each time port was added or removed (https://github.com/Azure/sonic-buildimage/pull/2019) cf216be Change ERR to Notice for tunnel term create fail (https://github.com/Azure/sonic-buildimage/pull/2219) --- src/sonic-swss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-swss b/src/sonic-swss index 50d5be2b399e..1fd1dbfe7eaa 160000 --- a/src/sonic-swss +++ b/src/sonic-swss @@ -1 +1 @@ -Subproject commit 50d5be2b399e9bcc43973f99d72d76e4effd8cc0 +Subproject commit 1fd1dbfe7eaaa52f1d7edbdd2bb88483f031fd5e From 926e698f0acd72b77c71fe378672e758bc4c8cc8 Mon Sep 17 00:00:00 2001 From: Ze Gan Date: Thu, 21 Apr 2022 09:00:53 +0800 Subject: [PATCH 107/251] [docker-macsec]: Fix the missing dependency of macsecmgrd in swss (#10618) Why I did it Missing the dependency of macsecmgrd in swss so that the MACsec feature cannot be enabled. How I did it Add SWSS dependency in docker-macsec.mk How to verify it Check the Azp of sonic-mgmt --- rules/docker-macsec.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rules/docker-macsec.mk b/rules/docker-macsec.mk index 7250f79f90cd..7bea7ef321b8 100644 --- a/rules/docker-macsec.mk +++ b/rules/docker-macsec.mk @@ -6,9 +6,9 @@ DOCKER_MACSEC_DBG = $(DOCKER_MACSEC_STEM)-$(DBG_IMAGE_MARK).gz $(DOCKER_MACSEC)_PATH = $(DOCKERS_PATH)/$(DOCKER_MACSEC_STEM) -$(DOCKER_MACSEC)_DEPENDS += $(WPASUPPLICANT) $(LIBSWSSCOMMON) $(LIBNL3) $(LIBNL_GENL3) $(LIBNL_ROUTE3) +$(DOCKER_MACSEC)_DEPENDS += $(SWSS) $(WPASUPPLICANT) $(LIBSWSSCOMMON) $(LIBNL3) $(LIBNL_GENL3) $(LIBNL_ROUTE3) $(DOCKER_MACSEC)_DBG_DEPENDS = $($(DOCKER_CONFIG_ENGINE_BULLSEYE)_DBG_DEPENDS) -$(DOCKER_MACSEC)_DBG_DEPENDS += $(WPASUPPLICANT_DBG) $(LIBSWSSCOMMON_DBG) +$(DOCKER_MACSEC)_DBG_DEPENDS += $(SWSS_DBG) $(WPASUPPLICANT_DBG) $(LIBSWSSCOMMON_DBG) $(DOCKER_MACSEC)_DBG_IMAGE_PACKAGES = $($(DOCKER_CONFIG_ENGINE_BULLSEYE)_DBG_IMAGE_PACKAGES) From e24fe9bc60cfca4f60b1114c99f4b6eb7b453a05 Mon Sep 17 00:00:00 2001 From: yozhao101 <56170650+yozhao101@users.noreply.github.com> Date: Wed, 20 Apr 2022 18:08:06 -0700 Subject: [PATCH 108/251] [Monit] Fix the issue which shows Monit can not reset its counter. (#10288) Signed-off-by: Yong Zhao Why I did it This PR aims to fix the Monit issue which shows Monit can't reset its counter when monitoring memory usage of telemetry container. Specifically the Monit configuration file related to monitoring memory usage of telemetry container is as following: check program container_memory_telemetry with path "/usr/bin/memory_checker telemetry 419430400" if status == 3 for 10 times within 20 cycles then exec "/usr/bin/restart_service telemetry" If memory usage of telemetry container is larger than 400MB for 10 times within 20 cycles (minutes), then it will be restarted. Recently we observed, after telemetry container was restarted, its memory usage continuously increased from 400MB to 11GB within 1 hour, but it was not restarted anymore during this 1 hour sliding window. The reason is Monit can't reset its counter to count again and Monit can reset its counter if and only if the status of monitored service was changed from Status failed to Status ok. However, during this 1 hour sliding window, the status of monitored service was not changed from Status failed to Status ok. Currently for each service monitored by Monit, there will be an entry showing the monitoring status, monitoring mode etc. For example, the following output from command sudo monit status shows the status of monitored service to monitor memory usage of telemetry: Program 'container_memory_telemetry' status Status ok monitoring status Monitored monitoring mode active on reboot start last exit value 0 last output - data collected Sat, 19 Mar 2022 19:56:26 Every 1 minute, Monit will run the script to check the memory usage of telemetry and update the counter if memory usage is larger than 400MB. If Monit checked the counter and found memory usage of telemetry is larger than 400MB for 10 times within 20 minutes, then telemetry container was restarted. Following is an example status of monitored service: Program 'container_memory_telemetry' status Status failed monitoring status Monitored monitoring mode active on reboot start last exit value 0 last output - data collected Tue, 01 Feb 2022 22:52:55 After telemetry container was restarted. we found memory usage of telemetry increased rapidly from around 100MB to more than 400MB during 1 minute and status of monitored service did not have a chance to be changed from Status failed to Status ok. How I did it In order to provide a workaround for this issue, Monit recently introduced another syntax format repeat every cycles related to exec. This new syntax format will enable Monit repeat executing the background script if the error persists for a given number of cycles. How to verify it I verified this change on lab device str-s6000-acs-12. Another pytest PR (Azure/sonic-mgmt#5492) is submitted in sonic-mgmt repo for review. --- dockers/docker-sonic-telemetry/base_image_files/monit_telemetry | 2 +- files/image_config/monit/memory_checker | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/dockers/docker-sonic-telemetry/base_image_files/monit_telemetry b/dockers/docker-sonic-telemetry/base_image_files/monit_telemetry index b3ba8b25fe1a..3941aecd4b0c 100644 --- a/dockers/docker-sonic-telemetry/base_image_files/monit_telemetry +++ b/dockers/docker-sonic-telemetry/base_image_files/monit_telemetry @@ -2,4 +2,4 @@ ## Monit configuration for telemetry container ############################################################################### check program container_memory_telemetry with path "/usr/bin/memory_checker telemetry 419430400" - if status == 3 for 10 times within 20 cycles then exec "/usr/bin/restart_service telemetry" + if status == 3 for 10 times within 20 cycles then exec "/usr/bin/restart_service telemetry" repeat every 2 cycles diff --git a/files/image_config/monit/memory_checker b/files/image_config/monit/memory_checker index 4f7912c1e56c..3cd0f2d80225 100755 --- a/files/image_config/monit/memory_checker +++ b/files/image_config/monit/memory_checker @@ -85,6 +85,8 @@ def check_memory_usage(container_name, threshold_value): if mem_usage_bytes > threshold_value: print("[{}]: Memory usage ({} Bytes) is larger than the threshold ({} Bytes)!" .format(container_name, mem_usage_bytes, threshold_value)) + syslog.syslog(syslog.LOG_INFO, "[{}]: Memory usage ({} Bytes) is larger than the threshold ({} Bytes)!" + .format(container_name, mem_usage_bytes, threshold_value)) sys.exit(3) else: syslog.syslog(syslog.LOG_ERR, "[memory_checker] Failed to retrieve memory value from '{}'" From 37e2848b3fab602e6ed94dca9c8d90a73925fd0a Mon Sep 17 00:00:00 2001 From: Alexander Allen Date: Wed, 20 Apr 2022 22:45:02 -0400 Subject: [PATCH 109/251] Update sonic-sairedis submodule (#10607) [sairedis submodule] commits: c7cbfe8 Update SAI submodule to support python 3.7 (#1035) --- src/sonic-sairedis | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-sairedis b/src/sonic-sairedis index 2ddf41935696..c7cbfe80dfcb 160000 --- a/src/sonic-sairedis +++ b/src/sonic-sairedis @@ -1 +1 @@ -Subproject commit 2ddf419356964e4e745d5851cd76b8818cbb149f +Subproject commit c7cbfe80dfcb61deef483f6c99b1c21763134ab1 From 508dda6ad331b90cc679b0b3f59ac8068cd5c34c Mon Sep 17 00:00:00 2001 From: xumia <59720581+xumia@users.noreply.github.com> Date: Thu, 21 Apr 2022 12:13:09 +0800 Subject: [PATCH 110/251] [Ci]: Support to sign image for cisco-8000 uefi secure boot (#10616) Why I did it [Ci]: Support to sign image for cisco-8000 uefi secure boot --- .../azure-pipelines-download-certificate.yml | 33 +++++++++++++++++++ .../official-build-cisco-8000.yml | 13 ++++++++ 2 files changed, 46 insertions(+) create mode 100644 .azure-pipelines/azure-pipelines-download-certificate.yml diff --git a/.azure-pipelines/azure-pipelines-download-certificate.yml b/.azure-pipelines/azure-pipelines-download-certificate.yml new file mode 100644 index 000000000000..3e1a58582f61 --- /dev/null +++ b/.azure-pipelines/azure-pipelines-download-certificate.yml @@ -0,0 +1,33 @@ +parameters: +- name: connectionName + type: string + default: sonic-dev-connection +- name: kevaultName + type: string + default: sonic-kv +- name: certificateName + type: string + default: sonic-secure-boot + +steps: +- task: AzureKeyVault@2 + inputs: + connectedServiceName: ${{ parameters.connectionName }} + keyVaultName: ${{ parameters.kevaultName }} + secretsFilter: ${{ parameters.certificateName }} + +- script: | + set -e + TMP_FILE=$(mktemp) + echo "$CERTIFICATE" | base64 -d > $TMP_FILE + sudo mkdir -p /etc/certificates + mkdir -p $(Build.StagingDirectory)/target + # Save the public key + openssl pkcs12 -in $TMP_FILE -clcerts --nokeys -nodes -passin pass: | sed -z -e "s/.*\(-----BEGIN CERTIFICATE\)/\1/" > $(SIGNING_CERT) + # Save the private key + openssl pkcs12 -in $TMP_FILE -nocerts -nodes -passin pass: | sed -z -e "s/.*\(-----BEGIN PRIVATE KEY\)/\1/" | sudo tee $(SIGNING_KEY) 1>/dev/null + ls -lt $(SIGNING_CERT) $(SIGNING_KEY) + rm $TMP_FILE + env: + CERTIFICATE: $(${{ parameters.certificateName }}) + displayName: "Save certificate" diff --git a/.azure-pipelines/official-build-cisco-8000.yml b/.azure-pipelines/official-build-cisco-8000.yml index 61b6b03171e3..474d3e743ff7 100644 --- a/.azure-pipelines/official-build-cisco-8000.yml +++ b/.azure-pipelines/official-build-cisco-8000.yml @@ -22,10 +22,17 @@ resources: name: Cisco-8000-sonic/platform-cisco-8000 endpoint: cisco-connection + variables: - group: SONIC-AKV-STROAGE-1 - name: StorageSASKey value: $(sonicstorage-SasToken) +- name: SONIC_ENABLE_SECUREBOOT_SIGNATURE + value: y +- name: SIGNING_KEY + value: /etc/certificates/sonic-secure-boot-private.pem +- name: SIGNING_CERT + value: $(Build.StagingDirectory)/target/sonic-secure-boot-public.pem stages: - stage: Build @@ -41,6 +48,7 @@ stages: parameters: buildOptions: 'USERNAME=admin SONIC_BUILD_JOBS=$(nproc) ${{ variables.VERSION_CONTROL_OPTIONS }}' preSteps: + - template: azure-pipelines-download-certificate.yml - checkout: self submodules: recursive path: s @@ -90,5 +98,10 @@ stages: StorageSASKey: $(StorageSASKey) condition: ne(variables['Build.Reason'], 'PullRequest') displayName: "Override cisco sai packages" + - script: | + echo "SONIC_ENABLE_SECUREBOOT_SIGNATURE := y" >> rules/config.user + echo "SIGNING_KEY := $(SIGNING_KEY)" >> rules/config.user + echo "SIGNING_CERT := $(SIGNING_CERT)" >> rules/config.user + displayName: "Enable secure boot signature" jobGroups: - name: cisco-8000 From ea38864235d3492e90910e5326c99990335c2580 Mon Sep 17 00:00:00 2001 From: Samuel Angebault Date: Thu, 21 Apr 2022 13:14:59 -0700 Subject: [PATCH 111/251] [Arista] Update platform submodules (#10561) Update PikeZ platform definition Improve powercycle behavior on chassis --- platform/barefoot/sonic-platform-modules-arista | 2 +- platform/broadcom/sonic-platform-modules-arista | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/platform/barefoot/sonic-platform-modules-arista b/platform/barefoot/sonic-platform-modules-arista index da8370423b07..9b61f8bdbe65 160000 --- a/platform/barefoot/sonic-platform-modules-arista +++ b/platform/barefoot/sonic-platform-modules-arista @@ -1 +1 @@ -Subproject commit da8370423b07c9271fad515c9ef1fd6149abbeed +Subproject commit 9b61f8bdbe657e8798bc40c09039a6e0a7f5d150 diff --git a/platform/broadcom/sonic-platform-modules-arista b/platform/broadcom/sonic-platform-modules-arista index da8370423b07..9b61f8bdbe65 160000 --- a/platform/broadcom/sonic-platform-modules-arista +++ b/platform/broadcom/sonic-platform-modules-arista @@ -1 +1 @@ -Subproject commit da8370423b07c9271fad515c9ef1fd6149abbeed +Subproject commit 9b61f8bdbe657e8798bc40c09039a6e0a7f5d150 From 37debbeb382d64f6f7e59ea8c9f32816b9a69762 Mon Sep 17 00:00:00 2001 From: "Richard.Yu" Date: Thu, 21 Apr 2022 18:43:16 -0700 Subject: [PATCH 112/251] [CG-Fix-CVE-2021-44906] Patching on thrift.0.14.1 for package minimist (#10555) * [CG-Fix-CVE-2021-44906] Patching on thrift.0.14.1 for package minimist Signed-off-by: richardyu-ms * add more information in patch Signed-off-by: richardyu-ms * Update 0003-Remove-minimist-packages.patch * change the thrift 0.14.1 to package download Signed-off-by: richardyu-ms * use the series file for patching * fix a code defect --- .gitmodules | 3 - rules/thrift_0_14_1.mk | 4 +- src/thrift_0_14_1/Makefile | 28 ++ src/thrift_0_14_1/thrift | 1 - .../0003-Remove-minimist-packages.patch | 268 ++++++++++++++++++ src/thrift_0_14_1/thrift.patch/series | 1 + 6 files changed, 299 insertions(+), 6 deletions(-) create mode 100644 src/thrift_0_14_1/Makefile delete mode 160000 src/thrift_0_14_1/thrift create mode 100644 src/thrift_0_14_1/thrift.patch/0003-Remove-minimist-packages.patch diff --git a/.gitmodules b/.gitmodules index b2d76bd66b20..9194c8f4b7a2 100644 --- a/.gitmodules +++ b/.gitmodules @@ -103,6 +103,3 @@ [submodule "src/sonic-p4rt/sonic-pins"] path = src/sonic-p4rt/sonic-pins url = https://github.com/Azure/sonic-pins.git -[submodule "src/thrift_0_14_1/thrift"] - path = src/thrift_0_14_1/thrift - url = https://github.com/apache/thrift.git diff --git a/rules/thrift_0_14_1.mk b/rules/thrift_0_14_1.mk index b986e0a4dceb..6fc0d05c14bc 100644 --- a/rules/thrift_0_14_1.mk +++ b/rules/thrift_0_14_1.mk @@ -4,8 +4,8 @@ THRIFT_0_14_1_VERSION = 0.14.1 THRIFT_0_14_1_VERSION_FULL = $(THRIFT_0_14_1_VERSION) LIBTHRIFT_0_14_1 = libthrift0_$(THRIFT_0_14_1_VERSION)_$(CONFIGURED_ARCH).deb -$(LIBTHRIFT_0_14_1)_SRC_PATH = $(SRC_PATH)/thrift_0_14_1/thrift -SONIC_DPKG_DEBS += $(LIBTHRIFT_0_14_1) +$(LIBTHRIFT_0_14_1)_SRC_PATH = $(SRC_PATH)/thrift_0_14_1 +SONIC_MAKE_DEBS += $(LIBTHRIFT_0_14_1) LIBTHRIFT_0_14_1_DEV = libthrift-dev_$(THRIFT_0_14_1_VERSION)_$(CONFIGURED_ARCH).deb $(eval $(call add_derived_package,$(LIBTHRIFT_0_14_1),$(LIBTHRIFT_0_14_1_DEV))) diff --git a/src/thrift_0_14_1/Makefile b/src/thrift_0_14_1/Makefile new file mode 100644 index 000000000000..081aff3f34bd --- /dev/null +++ b/src/thrift_0_14_1/Makefile @@ -0,0 +1,28 @@ +SHELL = /bin/bash +.ONESHELL: +.SHELLFLAGS += -e -x + +THRIFT_VERSION = 0.14.1 + +MAIN_TARGET = libthrift0_$(THRIFT_VERSION)_$(CONFIGURED_ARCH).deb +DERIVED_TARGETS = libthrift-dev_$(THRIFT_VERSION)_$(CONFIGURED_ARCH).deb \ + python3-thrift_$(THRIFT_VERSION)_$(CONFIGURED_ARCH).deb \ + thrift-compiler_$(THRIFT_VERSION)_$(CONFIGURED_ARCH).deb + +THRIFT_LINK_PRE = https://archive.apache.org/dist/thrift + +$(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% : + rm -rf thrift-$(THRIFT_VERSION) + + wget -O "thrift_$(THRIFT_VERSION).tar.gz" "$(THRIFT_LINK_PRE)/$(THRIFT_VERSION)/thrift-$(THRIFT_VERSION).tar.gz" + + tar -xvzf ./thrift_$(THRIFT_VERSION).tar.gz + if [ -f thrift.patch/series ]; then pushd thrift-$(THRIFT_VERSION) && QUILT_PATCHES=../thrift.patch quilt push -a; [ -d .pc ] && rm -rf .pc; popd; fi + + pushd thrift-$(THRIFT_VERSION) + DEB_BUILD_OPTIONS=nocheck dpkg-buildpackage -d -rfakeroot -b -us -uc -j$(SONIC_CONFIG_MAKE_JOBS) --admindir $(SONIC_DPKG_ADMINDIR) + popd + + mv $(DERIVED_TARGETS) $* $(DEST)/ + +$(addprefix $(DEST)/, $(DERIVED_TARGETS)): $(DEST)/% : $(DEST)/$(MAIN_TARGET) diff --git a/src/thrift_0_14_1/thrift b/src/thrift_0_14_1/thrift deleted file mode 160000 index f6fa1794539e..000000000000 --- a/src/thrift_0_14_1/thrift +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f6fa1794539e68ac294038ac388d6bde40a6c237 diff --git a/src/thrift_0_14_1/thrift.patch/0003-Remove-minimist-packages.patch b/src/thrift_0_14_1/thrift.patch/0003-Remove-minimist-packages.patch new file mode 100644 index 000000000000..e94b1dfdd38a --- /dev/null +++ b/src/thrift_0_14_1/thrift.patch/0003-Remove-minimist-packages.patch @@ -0,0 +1,268 @@ +From f6fa1794539e68ac294038ac388d6bde40a6c237 Mar 2, 2021 00:00:00 +From: richardyu-ms +Date: Tue, 12 Apr 2022 15:46:16 +0000 +Subject: [PATCH] Fix security issue for package minimist + +--- +3 files changed, 9 insertions(+), 120 deletions(-) + +Index: thrift-0.14.1/lib/js/package-lock.json +=================================================================== +--- thrift-0.14.1.orig/lib/js/package-lock.json ++++ thrift-0.14.1/lib/js/package-lock.json +@@ -1037,16 +1037,7 @@ + "dev": true, + "requires": { + "acorn-node": "^1.6.1", +- "defined": "^1.0.0", +- "minimist": "^1.1.1" +- }, +- "dependencies": { +- "minimist": { +- "version": "1.2.0", +- "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", +- "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", +- "dev": true +- } ++ "defined": "^1.0.0" + } + }, + "diffie-hellman": { +@@ -2616,20 +2607,11 @@ + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", +- "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" +- }, +- "dependencies": { +- "minimist": { +- "version": "1.2.0", +- "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", +- "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", +- "dev": true +- } + } + }, + "micromatch": { +@@ -2690,12 +2672,6 @@ + "brace-expansion": "^1.1.7" + } + }, +- "minimist": { +- "version": "0.0.8", +- "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", +- "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", +- "dev": true +- }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", +@@ -2721,10 +2697,7 @@ + "version": "0.5.1", + "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", +- "dev": true, +- "requires": { +- "minimist": "0.0.8" +- } ++ "dev": true + }, + "module-deps": { + "version": "6.2.2", +@@ -3971,18 +3944,7 @@ + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", + "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", +- "dev": true, +- "requires": { +- "minimist": "^1.1.0" +- }, +- "dependencies": { +- "minimist": { +- "version": "1.2.0", +- "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", +- "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", +- "dev": true +- } +- } ++ "dev": true + }, + "supports-color": { + "version": "5.5.0", +Index: thrift-0.14.1/lib/ts/package-lock.json +=================================================================== +--- thrift-0.14.1.orig/lib/ts/package-lock.json ++++ thrift-0.14.1/lib/ts/package-lock.json +@@ -1139,16 +1139,7 @@ + "dev": true, + "requires": { + "acorn-node": "^1.3.0", +- "defined": "^1.0.0", +- "minimist": "^1.1.1" +- }, +- "dependencies": { +- "minimist": { +- "version": "1.2.0", +- "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", +- "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", +- "dev": true +- } ++ "defined": "^1.0.0" + } + }, + "diagnostics": { +@@ -3032,20 +3023,11 @@ + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", +- "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" +- }, +- "dependencies": { +- "minimist": { +- "version": "1.2.0", +- "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", +- "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", +- "dev": true +- } + } + }, + "micromatch": { +@@ -3121,11 +3103,6 @@ + "brace-expansion": "^1.1.7" + } + }, +- "minimist": { +- "version": "0.0.8", +- "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", +- "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" +- }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", +@@ -3150,10 +3127,7 @@ + "mkdirp": { + "version": "0.5.1", + "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", +- "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", +- "requires": { +- "minimist": "0.0.8" +- } ++ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=" + }, + "module-deps": { + "version": "6.2.0", +@@ -4396,18 +4370,7 @@ + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", + "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", +- "dev": true, +- "requires": { +- "minimist": "^1.1.0" +- }, +- "dependencies": { +- "minimist": { +- "version": "1.2.0", +- "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", +- "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", +- "dev": true +- } +- } ++ "dev": true + }, + "supports-color": { + "version": "5.5.0", +Index: thrift-0.14.1/package-lock.json +=================================================================== +--- thrift-0.14.1.orig/package-lock.json ++++ thrift-0.14.1/package-lock.json +@@ -1427,16 +1427,7 @@ + "integrity": "sha512-4vGP107UDhhNHeWA5N8j/nUPlQbtB/W/K2x/P7aElbWMWrOkJA0MRSVFsMFrTPSAAjZWCG9uki2+1cQDzFtVcQ==", + "dev": true, + "requires": { +- "html-validator": "3.1.3", +- "minimist": "1.2.0" +- }, +- "dependencies": { +- "minimist": { +- "version": "1.2.0", +- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", +- "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", +- "dev": true +- } ++ "html-validator": "3.1.3" + } + }, + "http-signature": { +@@ -1920,18 +1911,7 @@ + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", + "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", +- "dev": true, +- "requires": { +- "minimist": "^1.2.0" +- }, +- "dependencies": { +- "minimist": { +- "version": "1.2.0", +- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", +- "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", +- "dev": true +- } +- } ++ "dev": true + }, + "jsprim": { + "version": "1.4.1", +@@ -2072,20 +2052,11 @@ + "brace-expansion": "^1.1.7" + } + }, +- "minimist": { +- "version": "0.0.8", +- "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", +- "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", +- "dev": true +- }, + "mkdirp": { + "version": "0.5.1", + "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", +- "dev": true, +- "requires": { +- "minimist": "0.0.8" +- } ++ "dev": true + }, + "ms": { + "version": "2.0.0", +@@ -2790,7 +2761,6 @@ + "glob": "~7.1.2", + "has": "~1.0.3", + "inherits": "~2.0.3", +- "minimist": "~1.2.0", + "object-inspect": "~1.6.0", + "resolve": "~1.7.1", + "resumer": "~0.0.0", +@@ -2798,12 +2768,6 @@ + "through": "~2.3.8" + }, + "dependencies": { +- "minimist": { +- "version": "1.2.0", +- "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", +- "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", +- "dev": true +- }, + "resolve": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", diff --git a/src/thrift_0_14_1/thrift.patch/series b/src/thrift_0_14_1/thrift.patch/series index b95ae481e048..9fe00d007f63 100644 --- a/src/thrift_0_14_1/thrift.patch/series +++ b/src/thrift_0_14_1/thrift.patch/series @@ -1,2 +1,3 @@ 0001-Remove-unneeded-packages.patch 0002-Fix-build-rules.patch +0003-Remove-minimist-packages.patch From af5e5c4c94399520d3c78821408aae3831334d47 Mon Sep 17 00:00:00 2001 From: Junchao-Mellanox <57339448+Junchao-Mellanox@users.noreply.github.com> Date: Fri, 22 Apr 2022 16:02:30 +0800 Subject: [PATCH 113/251] [Mellanox] Adjust PSU voltage WA (#10619) - Why I did it InvalidPsuVolWA.run might raise exception if user power off PSU when it is running. This exception is not caught and will be raised to psud which causes psud failed to update PSU data to DB. - How I did it 1. Change the log level when WA does not work. This could happen when user power off PSU, hence changing the log level from error to warning is better 2. Change the wait time from 5 to 1 to avoid introduce too much delay in psud. 1 second is usually enough per my test 3. Give a default return value for function get_voltage_low_threshold and get_voltage_high_threshold to avoid exception reach to psud - How to verify it Manual test. Run sonic-mgmt regression --- .../mlnx-platform-api/sonic_platform/psu.py | 18 ++++++++++++------ .../mlnx-platform-api/tests/test_psu.py | 2 +- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/platform/mellanox/mlnx-platform-api/sonic_platform/psu.py b/platform/mellanox/mlnx-platform-api/sonic_platform/psu.py index a2dcfcd55b4e..69f2f8930cc4 100644 --- a/platform/mellanox/mlnx-platform-api/sonic_platform/psu.py +++ b/platform/mellanox/mlnx-platform-api/sonic_platform/psu.py @@ -397,6 +397,7 @@ def get_temperature_high_threshold(self): return None + @utils.default_return(None) def get_voltage_high_threshold(self): """ Retrieves the high threshold PSU voltage output @@ -414,10 +415,12 @@ def get_voltage_high_threshold(self): if 'max' in capability: max_voltage = utils.read_int_from_file(self.psu_voltage_max, log_func=logger.log_info) max_voltage = InvalidPsuVolWA.run(self, max_voltage, self.psu_voltage_max) - return float(max_voltage) / 1000 + if max_voltage: + return float(max_voltage) / 1000 return None + @utils.default_return(None) def get_voltage_low_threshold(self): """ Retrieves the low threshold PSU voltage output @@ -435,7 +438,8 @@ def get_voltage_low_threshold(self): if 'min' in capability: min_voltage = utils.read_int_from_file(self.psu_voltage_min, log_func=logger.log_info) min_voltage = InvalidPsuVolWA.run(self, min_voltage, self.psu_voltage_min) - return float(min_voltage) / 1000 + if min_voltage: + return float(min_voltage) / 1000 return None @@ -471,7 +475,7 @@ class InvalidPsuVolWA: EXPECT_PLATFORMS = ['x86_64-mlnx_msn3700-r0', 'x86_64-mlnx_msn3700c-r0', 'x86_64-mlnx_msn3800-r0', 'x86_64-mlnx_msn4600c-r0'] MFR_FIELD = 'MFR_NAME' CAPACITY_FIELD = 'CAPACITY' - WAIT_TIME = 5 + WAIT_TIME = 1 @classmethod def run(cls, psu, threshold_value, threshold_file): @@ -499,8 +503,8 @@ def run(cls, psu, threshold_value, threshold_file): logger.log_warning('PSU {} threshold file {} value {}, but its capacity is {}'.format(psu.index, threshold_file, threshold_value, capacity)) return threshold_value - # Run a sensor -s command to triger hardware to get the real threashold value - utils.run_command('sensor -s') + # Run a sensors -s command to triger hardware to get the real threashold value + utils.run_command('sensors -s') # Wait for the threshold value change return cls.wait_set_done(threshold_file) @@ -516,5 +520,7 @@ def wait_set_done(cls, threshold_file): wait_time -= 1 time.sleep(1) - logger.log_error('sensor -s does not recover PSU threshold sensor after {} seconds'.format(cls.WAIT_TIME)) + # It is enough to use warning here because user might power off/on the PSU which may cause threshold_file + # does not exist + logger.log_warning('sensors -s does not recover PSU threshold sensor after {} seconds'.format(cls.WAIT_TIME)) return None diff --git a/platform/mellanox/mlnx-platform-api/tests/test_psu.py b/platform/mellanox/mlnx-platform-api/tests/test_psu.py index 5a5f13ff05f3..68260ef630f7 100644 --- a/platform/mellanox/mlnx-platform-api/tests/test_psu.py +++ b/platform/mellanox/mlnx-platform-api/tests/test_psu.py @@ -152,4 +152,4 @@ def get_entry_value(key): # Normal vpd_info[InvalidPsuVolWA.CAPACITY_FIELD] = InvalidPsuVolWA.EXPECT_CAPACITY assert InvalidPsuVolWA.run(psu, InvalidPsuVolWA.INVALID_VOLTAGE_VALUE, '') == 9999 - mock_run_command.assert_called_with('sensor -s') + mock_run_command.assert_called_with('sensors -s') From 3abf383d3d3751ce001dd2cb63af7620a0530c23 Mon Sep 17 00:00:00 2001 From: Yakiv Huryk <62013282+Yakiv-Huryk@users.noreply.github.com> Date: Fri, 22 Apr 2022 11:07:07 +0300 Subject: [PATCH 114/251] [asan] add address sanitizer support to docker-sonic-vs (#10470) - Why I did it To support docker-sonic-vs image with ASAN. - How I did it 1. Made the supervisord.conf a template 2. Added the 'log_path' environment variable for ASAN-enabled daemons 3. Added supervisord.conf.j2 generation and ASAN lib to the docker-sonic-vs/Dockerfile.j2 - How to verify it 1. Made a build with ENABLE_ASAN=y 2. Run the tests, checked ASAN reports Signed-off-by: Yakiv Huryk --- platform/vs/docker-sonic-vs/Dockerfile.j2 | 9 ++- .../{supervisord.conf => supervisord.conf.j2} | 60 +++++++++++++++++++ 2 files changed, 68 insertions(+), 1 deletion(-) rename platform/vs/docker-sonic-vs/{supervisord.conf => supervisord.conf.j2} (69%) diff --git a/platform/vs/docker-sonic-vs/Dockerfile.j2 b/platform/vs/docker-sonic-vs/Dockerfile.j2 index 21c607e28c9e..cc867e3d0eeb 100644 --- a/platform/vs/docker-sonic-vs/Dockerfile.j2 +++ b/platform/vs/docker-sonic-vs/Dockerfile.j2 @@ -66,6 +66,9 @@ RUN apt-get install -y net-tools \ gir1.2-glib-2.0 \ libdbus-1-3 \ libgirepository-1.0-1 \ + {%- if ENABLE_ASAN == "y" %} + libasan5 \ + {%- endif %} libsystemd0 # Install redis-server @@ -160,7 +163,7 @@ RUN sed -ri 's/^(save .*$)/# \1/g; COPY ["50-default.conf", "/etc/rsyslog.d/"] COPY ["start.sh", "orchagent.sh", "files/update_chassisdb_config", "/usr/bin/"] -COPY ["supervisord.conf", "/etc/supervisor/conf.d/"] +COPY ["supervisord.conf.j2", "/usr/share/sonic/templates/"] COPY ["files/configdb-load.sh", "/usr/bin/"] COPY ["files/arp_update", "/usr/bin/"] COPY ["files/buffers_config.j2", "files/qos_config.j2", "files/arp_update_vars.j2", "files/copp_cfg.j2", "/usr/share/sonic/templates/"] @@ -179,6 +182,10 @@ COPY ["hwsku.json", "/usr/share/sonic/device/x86_64-kvm_x86_64-r0/Force10-S6000/ COPY ["hwsku.json", "/usr/share/sonic/device/x86_64-kvm_x86_64-r0/brcm_gearbox_vs/"] COPY ["hwsku.json", "/usr/share/sonic/device/x86_64-kvm_x86_64-r0/Mellanox-SN2700/"] +RUN mkdir -p /etc/supervisor/conf.d/ +RUN sonic-cfggen -a "{\"ENABLE_ASAN\":\"{{ENABLE_ASAN}}\"}" -t /usr/share/sonic/templates/supervisord.conf.j2 > /etc/supervisor/conf.d/supervisord.conf +RUN rm -f /usr/share/sonic/templates/supervisord.conf.j2 + # Workaround the tcpdump issue RUN mv /usr/sbin/tcpdump /usr/bin/tcpdump diff --git a/platform/vs/docker-sonic-vs/supervisord.conf b/platform/vs/docker-sonic-vs/supervisord.conf.j2 similarity index 69% rename from platform/vs/docker-sonic-vs/supervisord.conf rename to platform/vs/docker-sonic-vs/supervisord.conf.j2 index 96f027131520..a49f33866edf 100644 --- a/platform/vs/docker-sonic-vs/supervisord.conf +++ b/platform/vs/docker-sonic-vs/supervisord.conf.j2 @@ -42,6 +42,9 @@ autostart=false autorestart=false stdout_logfile=syslog stderr_logfile=syslog +{% if ENABLE_ASAN == "y" %} +environment=ASAN_OPTIONS="log_path=/var/log/asan/syncd-asan.log" +{% endif %} [program:gbsyncd] command=/usr/bin/syncd -s -p /usr/share/sonic/hwsku/pai.profile -x /usr/share/sonic/hwsku/context_config.json -g 1 @@ -67,6 +70,9 @@ autostart=false autorestart=false stdout_logfile=syslog stderr_logfile=syslog +{% if ENABLE_ASAN == "y" %} +environment=ASAN_OPTIONS="log_path=/var/log/asan/portsyncd-asan.log" +{% endif %} [program:orchagent] command=/usr/bin/orchagent.sh @@ -75,6 +81,9 @@ autostart=false autorestart=false stdout_logfile=syslog stderr_logfile=syslog +{% if ENABLE_ASAN == "y" %} +environment=ASAN_OPTIONS="log_path=/var/log/asan/orchagent-asan.log" +{% endif %} [program:coppmgrd] command=/usr/bin/coppmgrd @@ -83,6 +92,9 @@ autostart=false autorestart=false stdout_logfile=syslog stderr_logfile=syslog +{% if ENABLE_ASAN == "y" %} +environment=ASAN_OPTIONS="log_path=/var/log/asan/coppmgrd-asan.log" +{% endif %} [program:neighsyncd] command=/usr/bin/neighsyncd @@ -91,6 +103,9 @@ autostart=false autorestart=false stdout_logfile=syslog stderr_logfile=syslog +{% if ENABLE_ASAN == "y" %} +environment=ASAN_OPTIONS="log_path=/var/log/asan/neighsyncd-asan.log" +{% endif %} [program:teamsyncd] command=/usr/bin/teamsyncd @@ -99,6 +114,9 @@ autostart=false autorestart=false stdout_logfile=syslog stderr_logfile=syslog +{% if ENABLE_ASAN == "y" %} +environment=ASAN_OPTIONS="log_path=/var/log/asan/teamsyncd-asan.log" +{% endif %} [program:vlanmgrd] command=/usr/bin/vlanmgrd @@ -107,6 +125,9 @@ autostart=false autorestart=false stdout_logfile=syslog stderr_logfile=syslog +{% if ENABLE_ASAN == "y" %} +environment=ASAN_OPTIONS="log_path=/var/log/asan/vlanmgrd-asan.log" +{% endif %} [program:intfmgrd] command=/usr/bin/intfmgrd @@ -115,6 +136,9 @@ autostart=false autorestart=false stdout_logfile=syslog stderr_logfile=syslog +{% if ENABLE_ASAN == "y" %} +environment=ASAN_OPTIONS="log_path=/var/log/asan/intfmgrd-asan.log" +{% endif %} [program:portmgrd] command=/usr/bin/portmgrd @@ -123,6 +147,9 @@ autostart=false autorestart=false stdout_logfile=syslog stderr_logfile=syslog +{% if ENABLE_ASAN == "y" %} +environment=ASAN_OPTIONS="log_path=/var/log/asan/portmgrd-asan.log" +{% endif %} [program:teammgrd] command=/usr/bin/teammgrd @@ -131,6 +158,9 @@ autostart=false autorestart=false stdout_logfile=syslog stderr_logfile=syslog +{% if ENABLE_ASAN == "y" %} +environment=ASAN_OPTIONS="log_path=/var/log/asan/teammgrd-asan.log" +{% endif %} [program:zebra] command=/usr/lib/frr/zebra -A 127.0.0.1 -s 90000000 -M fpm @@ -163,6 +193,9 @@ autostart=false autorestart=false stdout_logfile=syslog stderr_logfile=syslog +{% if ENABLE_ASAN == "y" %} +environment=ASAN_OPTIONS="log_path=/var/log/asan/fpmsyncd-asan.log" +{% endif %} [program:arp_update] command=/usr/bin/arp_update @@ -179,6 +212,9 @@ autostart=false autorestart=false stdout_logfile=syslog stderr_logfile=syslog +{% if ENABLE_ASAN == "y" %} +environment=ASAN_OPTIONS="log_path=/var/log/asan/buffermgrd-asan.log" +{% endif %} [program:vrfmgrd] command=/usr/bin/vrfmgrd @@ -187,6 +223,9 @@ autostart=false autorestart=false stdout_logfile=syslog stderr_logfile=syslog +{% if ENABLE_ASAN == "y" %} +environment=ASAN_OPTIONS="log_path=/var/log/asan/vrfmgrd-asan.log" +{% endif %} [program:restore_neighbors] command=/usr/bin/restore_neighbors.py @@ -205,6 +244,9 @@ autostart=false autorestart=false stdout_logfile=syslog stderr_logfile=syslog +{% if ENABLE_ASAN == "y" %} +environment=ASAN_OPTIONS="log_path=/var/log/asan/nbrmgrd-asan.log" +{% endif %} [program:vxlanmgrd] command=/usr/bin/vxlanmgrd @@ -213,6 +255,9 @@ autostart=false autorestart=false stdout_logfile=syslog stderr_logfile=syslog +{% if ENABLE_ASAN == "y" %} +environment=ASAN_OPTIONS="log_path=/var/log/asan/vxlanmgrd-asan.log" +{% endif %} [program:sflowmgrd] command=/usr/bin/sflowmgrd @@ -221,6 +266,9 @@ autostart=false autorestart=false stdout_logfile=syslog stderr_logfile=syslog +{% if ENABLE_ASAN == "y" %} +environment=ASAN_OPTIONS="log_path=/var/log/asan/sflowmgrd-asan.log" +{% endif %} [program:natmgrd] command=/usr/bin/natmgrd @@ -229,6 +277,9 @@ autostart=false autorestart=false stdout_logfile=syslog stderr_logfile=syslog +{% if ENABLE_ASAN == "y" %} +environment=ASAN_OPTIONS="log_path=/var/log/asan/natmgrd-asan.log" +{% endif %} [program:natsyncd] command=/usr/bin/natsyncd @@ -237,6 +288,9 @@ autostart=false autorestart=false stdout_logfile=syslog stderr_logfile=syslog +{% if ENABLE_ASAN == "y" %} +environment=ASAN_OPTIONS="log_path=/var/log/asan/natsyncd-asan.log" +{% endif %} [program:fdbsyncd] command=/usr/bin/fdbsyncd @@ -245,6 +299,9 @@ autostart=false autorestart=false stdout_logfile=syslog stderr_logfile=syslog +{% if ENABLE_ASAN == "y" %} +environment=ASAN_OPTIONS="log_path=/var/log/asan/fdbsyncd-asan.log" +{% endif %} [program:tunnelmgrd] command=/usr/bin/tunnelmgrd @@ -253,3 +310,6 @@ autostart=false autorestart=false stdout_logfile=syslog stderr_logfile=syslog +{% if ENABLE_ASAN == "y" %} +environment=ASAN_OPTIONS="log_path=/var/log/asan/tunnelmgrd-asan.log" +{% endif %} From 988a6871826f603358a65c273f52b14a5d88ab24 Mon Sep 17 00:00:00 2001 From: Taylor Cai <103631396+cel-taylor@users.noreply.github.com> Date: Fri, 22 Apr 2022 20:35:52 +0800 Subject: [PATCH 115/251] Fix issue test_crm and test_fib (#10585) Why I did it Fix issue (https://github.com/Azure/sonic-buildimage/issues/9171) and (https://github.com/Azure/sonic-buildimage/issues/9236) How I did it Add flag in config file for get correct count of IPv6 entry. Add init config file to set IPv4 ECMP hash on L4. How to verify it Compile the sonic_platform wheel for e1031, then upload to device and install the wheel, verify using testbed. --- .../Celestica-E1031-T48S4/helix4-e1031-48x1G+4x10G.config.bcm | 4 ++++ .../Celestica-E1031-T48S4/sai_postinit_cmd.soc | 1 + 2 files changed, 5 insertions(+) create mode 100644 device/celestica/x86_64-cel_e1031-r0/Celestica-E1031-T48S4/sai_postinit_cmd.soc diff --git a/device/celestica/x86_64-cel_e1031-r0/Celestica-E1031-T48S4/helix4-e1031-48x1G+4x10G.config.bcm b/device/celestica/x86_64-cel_e1031-r0/Celestica-E1031-T48S4/helix4-e1031-48x1G+4x10G.config.bcm index 02d785aa4cb0..3da3ff365e21 100644 --- a/device/celestica/x86_64-cel_e1031-r0/Celestica-E1031-T48S4/helix4-e1031-48x1G+4x10G.config.bcm +++ b/device/celestica/x86_64-cel_e1031-r0/Celestica-E1031-T48S4/helix4-e1031-48x1G+4x10G.config.bcm @@ -1,3 +1,7 @@ +sai_postinit_cmd_file=/usr/share/sonic/hwsku/sai_postinit_cmd.soc + +ipv6_lpm_128b_enable=1 + # disables bcmALPMDH (ALPM distributed hitbit) thread. This thread is purely for debug purpose l3_alpm_hit_skip=1 diff --git a/device/celestica/x86_64-cel_e1031-r0/Celestica-E1031-T48S4/sai_postinit_cmd.soc b/device/celestica/x86_64-cel_e1031-r0/Celestica-E1031-T48S4/sai_postinit_cmd.soc new file mode 100644 index 000000000000..573706e302bd --- /dev/null +++ b/device/celestica/x86_64-cel_e1031-r0/Celestica-E1031-T48S4/sai_postinit_cmd.soc @@ -0,0 +1 @@ +setreg RTAG7_IPV4_TCP_UDP_HASH_FIELD_BMAP_2 IPV4_TCP_UDP_FIELD_BITMAP_A=0xf70 From 869ac1d1f20e1a20c07d4d6a7e36006ab3d546e7 Mon Sep 17 00:00:00 2001 From: Eric Zhu <79439153+cel-eric@users.noreply.github.com> Date: Fri, 22 Apr 2022 20:36:17 +0800 Subject: [PATCH 116/251] sonic-platform-modules-cel dx010: speed up dx010 platform init script (#10313) * Optimize dx010 sonic platform init script to speed up init process * Merge issue #10152: [warm-upgrade][202012] Slow Celestica platform init in rc.local causes lacp-teardown fix into master branch Signed-off-by: Eric Zhu --- .../debian/platform-modules-dx010.init | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/platform/broadcom/sonic-platform-modules-cel/debian/platform-modules-dx010.init b/platform/broadcom/sonic-platform-modules-cel/debian/platform-modules-dx010.init index 21587bfbd3fd..12f8fc61f2ea 100644 --- a/platform/broadcom/sonic-platform-modules-cel/debian/platform-modules-dx010.init +++ b/platform/broadcom/sonic-platform-modules-cel/debian/platform-modules-dx010.init @@ -61,19 +61,19 @@ start) [ $found -eq 0 ] && echo "cannot find iSMT" && exit 1 i2cset -y ${devnum} 0x70 0x10 0x00 0x01 i - sleep 1 + sleep 0.1 # Attach PCA9548 0x71 Channel Extender for Main Board echo pca9548 0x71 > /sys/bus/i2c/devices/i2c-${devnum}/new_device - sleep 1 + sleep 0.1 # Attach PCA9548 0x73 Channel Extender for CPU Board echo pca9548 0x73 > /sys/bus/i2c/devices/i2c-${devnum}/new_device - sleep 1 + sleep 0.1 # Attach PCA9548 0x77 Channel Extender for Fan's EEPROMs echo pca9548 0x77 > /sys/bus/i2c/devices/i2c-${devnum}/new_device - sleep 1 + sleep 0.1 # Attach syseeprom echo 24lc64t 0x50 > /sys/bus/i2c/devices/i2c-12/new_device @@ -106,7 +106,7 @@ start) echo pca9505 0x20 > /sys/bus/i2c/devices/i2c-17/new_device modprobe dx010_cpld - sleep 2 + sleep 1 # Export platform gpio sysfs export_gpio 10 "in" # Fan 1 present @@ -148,15 +148,14 @@ start) done bus_en=8 - sleep 1 cfg_r=`i2cget -y -f 8 0x60 0xD1` ((cfg_w=$cfg_r+$bus_en)) i2cset -y -f 8 0x60 0xD1 $cfg_w - sleep 1 + sleep 0.1 cfg_r=`i2cget -y -f 9 0x20 0xD1` ((cfg_w=$cfg_r+$bus_en)) i2cset -y -f 9 0x20 0xD1 $cfg_w - sleep 1 + sleep 0.1 /bin/sh /usr/local/bin/platform_api_mgnt.sh init From 5cd6bc4ce2a32bd7b1b71dbcc85e7390799da7d0 Mon Sep 17 00:00:00 2001 From: SuvarnaMeenakshi <50386592+SuvarnaMeenakshi@users.noreply.github.com> Date: Fri, 22 Apr 2022 16:25:29 -0700 Subject: [PATCH 117/251] [portconfig]: Remove try block for db config initialization (#10581) Why I did it Provide fix for comment: https://github.com/Azure/sonic-buildimage/pull/10475/files#r847753187; How I did it Try exception is not required in this scenario, so remove and modify to initial db config according to single or multi-asic platforms. How to verify it Verified on multi-asic device. --- src/sonic-config-engine/portconfig.py | 7 +------ src/sonic-config-engine/sonic-cfggen | 8 +++++++- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/sonic-config-engine/portconfig.py b/src/sonic-config-engine/portconfig.py index 0c056d1cdab7..ea9985a3beb0 100644 --- a/src/sonic-config-engine/portconfig.py +++ b/src/sonic-config-engine/portconfig.py @@ -72,12 +72,7 @@ def db_connect_configdb(namespace=None): """ Connect to configdb """ - try: - if namespace is not None: - swsscommon.SonicDBConfig.load_sonic_global_db_config(namespace=namespace) - config_db = swsscommon.ConfigDBConnector(use_unix_socket_path=True, namespace=namespace) - except Exception as e: - return None + config_db = swsscommon.ConfigDBConnector(use_unix_socket_path=True, namespace=namespace) if config_db is None: return None try: diff --git a/src/sonic-config-engine/sonic-cfggen b/src/sonic-config-engine/sonic-cfggen index aebd4d0544f5..b10002c40809 100755 --- a/src/sonic-config-engine/sonic-cfggen +++ b/src/sonic-config-engine/sonic-cfggen @@ -32,7 +32,7 @@ from functools import partial from minigraph import minigraph_encoder, parse_xml, parse_device_desc_xml, parse_asic_sub_role, parse_asic_switch_type from portconfig import get_port_config, get_breakout_mode from redis_bcc import RedisBytecodeCache -from sonic_py_common.multi_asic import get_asic_id_from_name, get_asic_device_id +from sonic_py_common.multi_asic import get_asic_id_from_name, get_asic_device_id, is_multi_asic from sonic_py_common import device_info from swsscommon.swsscommon import SonicV2Connector, ConfigDBConnector, SonicDBConfig, ConfigDBPipeConnector @@ -309,6 +309,12 @@ def main(): 'localhost': {'namespace_id': namespace_id} } }) + # load db config + if not SonicDBConfig.isInit(): + if is_multi_asic(): + SonicDBConfig.load_sonic_global_db_config(namespace=asic_name) + else: + SonicDBConfig.load_sonic_db_config() if hwsku is not None: hardware_data = {'DEVICE_METADATA': {'localhost': { 'hwsku': hwsku From d8c27b6ed2b669932b529c35312800c6754e8d9f Mon Sep 17 00:00:00 2001 From: Longxiang Lyu <35479537+lolyu@users.noreply.github.com> Date: Mon, 25 Apr 2022 14:44:40 +0800 Subject: [PATCH 118/251] [YANG][vlan-sub-intf] Enforce Linux interface name length (#10646) Why I did it Allow portchannel vlan sub intf long name format as long as it follows Linux interface name length limit(<16). How I did it Modify the leaf name check. How to verify it Test case passes. --- .../tests/vlan_sub_interface.json | 7 ++ .../tests_config/vlan_sub_interface.json | 82 +++++++++++++++++++ .../yang-models/sonic-vlan-sub-interface.yang | 10 +-- 3 files changed, 94 insertions(+), 5 deletions(-) diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests/vlan_sub_interface.json b/src/sonic-yang-models/tests/yang_model_tests/tests/vlan_sub_interface.json index e3ffa9dc44b6..d112587307e4 100644 --- a/src/sonic-yang-models/tests/yang_model_tests/tests/vlan_sub_interface.json +++ b/src/sonic-yang-models/tests/yang_model_tests/tests/vlan_sub_interface.json @@ -9,6 +9,10 @@ "desc": "Configure vlan sub interface must condition false.", "eStrKey": "Must" }, + "VLAN_SUB_INTERFACE_NAME_LENGTH_LIMIT_MUST_CONDITION_FALSE_TEST": { + "desc": "Configure vlan sub interface name length must condition false.", + "eStrKey": "Must" + }, "VLAN_SUB_INTERFACE_SHORT_NAME_FORMAT_MUST_CONDITION_FALSE_TEST": { "desc": "Configure short name format vlan sub interface must condition false.", "eStrKey": "Must" @@ -16,6 +20,9 @@ "VLAN_SUB_INTERFACE_PO_SHORT_NAME_FORMAT_MUST_CONDITION_TRUE_TEST": { "desc": "Configure valid portchannel short name format vlan sub interface must condition true." }, + "VLAN_SUB_INTERFACE_PO_MUST_CONDITION_TRUE_TEST": { + "desc": "Configure portchannel long name format vlan sub interface must condition true." + }, "VLAN_SUB_INTERFACE_PO_MUST_CONDITION_FALSE_TEST": { "desc": "Configure portchannel long name format vlan sub interface must condition false.", "eStrKey": "Must" diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests_config/vlan_sub_interface.json b/src/sonic-yang-models/tests/yang_model_tests/tests_config/vlan_sub_interface.json index 8adff73e497c..860de64ba663 100644 --- a/src/sonic-yang-models/tests/yang_model_tests/tests_config/vlan_sub_interface.json +++ b/src/sonic-yang-models/tests/yang_model_tests/tests_config/vlan_sub_interface.json @@ -95,6 +95,38 @@ } } }, + "VLAN_SUB_INTERFACE_NAME_LENGTH_LIMIT_MUST_CONDITION_FALSE_TEST": { + "sonic-vlan-sub-interface:sonic-vlan-sub-interface": { + "sonic-vlan-sub-interface:VLAN_SUB_INTERFACE": { + "VLAN_SUB_INTERFACE_LIST": [ + { + "name": "Ethernet12000.10" + } + ], + "VLAN_SUB_INTERFACE_IPPREFIX_LIST": [ + { + "name": "Ethernet12000.10", + "ip-prefix": "10.0.0.1/30" + } + ] + } + }, + "sonic-port:sonic-port": { + "sonic-port:PORT": { + "PORT_LIST": [ + { + "name": "Ethernet12000", + "admin_status": "up", + "alias": "Ethernet12000/1", + "description": "Ethernet12000", + "lanes": "49,50,51,52", + "mtu": 9000, + "speed": 100000 + } + ] + } + } + }, "VLAN_SUB_INTERFACE_SHORT_NAME_FORMAT_MUST_CONDITION_FALSE_TEST": { "sonic-vlan-sub-interface:sonic-vlan-sub-interface": { "sonic-vlan-sub-interface:VLAN_SUB_INTERFACE": { @@ -177,6 +209,56 @@ } } }, + "VLAN_SUB_INTERFACE_PO_MUST_CONDITION_TRUE_TEST": { + "sonic-vlan-sub-interface:sonic-vlan-sub-interface": { + "sonic-vlan-sub-interface:VLAN_SUB_INTERFACE": { + "VLAN_SUB_INTERFACE_LIST": [ + { + "name": "PortChannel01.8" + } + ], + "VLAN_SUB_INTERFACE_IPPREFIX_LIST": [ + { + "name": "PortChannel01.8", + "ip-prefix": "10.0.0.1/30" + } + ] + } + }, + "sonic-port:sonic-port": { + "sonic-port:PORT": { + "PORT_LIST": [ + { + "admin_status": "up", + "alias": "eth0", + "description": "Ethernet0", + "lanes": "65", + "mtu": 9000, + "name": "Ethernet0", + "tpid": "0x8100", + "speed": 25000 + } + ] + } + }, + "sonic-portchannel:sonic-portchannel": { + "sonic-portchannel:PORTCHANNEL": { + "PORTCHANNEL_LIST": [ + { + "admin_status": "up", + "members": [ + "Ethernet0" + ], + "min_links": "1", + "mtu": "9100", + "tpid": "0x8100", + "lacp_key": "auto", + "name": "PortChannel01" + } + ] + } + } + }, "VLAN_SUB_INTERFACE_PO_MUST_CONDITION_FALSE_TEST": { "sonic-vlan-sub-interface:sonic-vlan-sub-interface": { "sonic-vlan-sub-interface:VLAN_SUB_INTERFACE": { diff --git a/src/sonic-yang-models/yang-models/sonic-vlan-sub-interface.yang b/src/sonic-yang-models/yang-models/sonic-vlan-sub-interface.yang index 953aa7e14c80..212fb5533c3b 100644 --- a/src/sonic-yang-models/yang-models/sonic-vlan-sub-interface.yang +++ b/src/sonic-yang-models/yang-models/sonic-vlan-sub-interface.yang @@ -40,11 +40,11 @@ module sonic-vlan-sub-interface { key "name"; leaf name { - must "(substring-before(current(), '.') = /port:sonic-port/port:PORT/port:PORT_LIST/port:name) or " + - "(starts-with(substring-before(current(), '.'), 'Eth') and " + - "concat('Ethernet', substring-after(substring-before(current(), '.'), 'Eth')) = /port:sonic-port/port:PORT/port:PORT_LIST/port:name) or " + - "(starts-with(substring-before(current(), '.'), 'Po') and " + - "concat('PortChannel', substring-after(substring-before(current(), '.'), 'Po')) = /lag:sonic-portchannel/lag:PORTCHANNEL/lag:PORTCHANNEL_LIST/lag:name)" + must "(string-length(current()) <= 15) and " + + "((substring-before(current(), '.') = /port:sonic-port/port:PORT/port:PORT_LIST/port:name) or " + + "(starts-with(substring-before(current(), '.'), 'Eth') and concat('Ethernet', substring-after(substring-before(current(), '.'), 'Eth')) = /port:sonic-port/port:PORT/port:PORT_LIST/port:name) or " + + "(substring-before(current(), '.') = /lag:sonic-portchannel/lag:PORTCHANNEL/lag:PORTCHANNEL_LIST/lag:name) or " + + "(starts-with(substring-before(current(), '.'), 'Po') and concat('PortChannel', substring-after(substring-before(current(), '.'), 'Po')) = /lag:sonic-portchannel/lag:PORTCHANNEL/lag:PORTCHANNEL_LIST/lag:name))" { error-message "Must condition not satisfied, please follow vlan sub interface naming convention"; } From 3fc3259a35a372e1fad75235742c03120839a4d6 Mon Sep 17 00:00:00 2001 From: bingwang-ms <66248323+bingwang-ms@users.noreply.github.com> Date: Mon, 25 Apr 2022 15:06:10 +0800 Subject: [PATCH 119/251] Define qos map `AZURE_TUNNEL` for QoS remapping of tunnel traffic (#10565) * Add AZURE_TUNNEL map Signed-off-by: bingwang --- .../Arista-7050CX3-32S-D48C8/qos.json.j2 | 100 +++++++++++++++++ .../Arista-7260CX3-C64/qos.json.j2 | 102 +++++++++++++++++- files/build_templates/qos_config.j2 | 3 + .../py3/qos-arista7050cx3-dualtor.json | 98 +++++++++++++++++ .../py3/qos-arista7260-dualtor.json | 98 +++++++++++++++++ 5 files changed, 400 insertions(+), 1 deletion(-) diff --git a/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-D48C8/qos.json.j2 b/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-D48C8/qos.json.j2 index 04fddf486ace..413bd575413c 100644 --- a/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-D48C8/qos.json.j2 +++ b/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-D48C8/qos.json.j2 @@ -66,6 +66,72 @@ "61": "1", "62": "1", "63": "1" + }, + "AZURE_TUNNEL": { + "0" : "1", + "1" : "1", + "2" : "1", + "3" : "3", + "4" : "4", + "5" : "1", + "6" : "1", + "7" : "1", + "8" : "0", + "9" : "1", + "10": "1", + "11": "1", + "12": "1", + "13": "1", + "14": "1", + "15": "1", + "16": "1", + "17": "1", + "18": "1", + "19": "1", + "20": "1", + "21": "1", + "22": "1", + "23": "1", + "24": "1", + "25": "1", + "26": "1", + "27": "1", + "28": "1", + "29": "1", + "30": "1", + "31": "1", + "32": "1", + "33": "2", + "34": "1", + "35": "1", + "36": "1", + "37": "1", + "38": "1", + "39": "1", + "40": "1", + "41": "1", + "42": "1", + "43": "1", + "44": "1", + "45": "1", + "46": "5", + "47": "1", + "48": "7", + "49": "1", + "50": "1", + "51": "1", + "52": "1", + "53": "1", + "54": "1", + "55": "1", + "56": "1", + "57": "1", + "58": "1", + "59": "1", + "60": "1", + "61": "1", + "62": "1", + "63": "1" } }, {%- endmacro %} @@ -80,6 +146,16 @@ "5": "0", "6": "0", "7": "7" + }, + "AZURE_TUNNEL": { + "0": "0", + "1": "0", + "2": "0", + "3": "2", + "4": "6", + "5": "0", + "6": "0", + "7": "0" } }, {%- endmacro %} @@ -94,6 +170,30 @@ "5": "5", "6": "6", "7": "7" + }, + "AZURE_TUNNEL": { + "0": "0", + "1": "1", + "2": "1", + "3": "2", + "4": "6", + "5": "5", + "6": "1", + "7": "7" + } + }, +{%- endmacro %} +{%- macro generate_tc_to_dscp_map() %} + "TC_TO_DSCP_MAP": { + "AZURE_TUNNEL": { + "0": "8", + "1": "0", + "2": "33", + "3": "2", + "4": "6", + "5": "46", + "6": "0", + "7": "48" } }, {%- endmacro %} diff --git a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/qos.json.j2 b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/qos.json.j2 index 4178efbcb7aa..27f6b531cb08 100644 --- a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/qos.json.j2 +++ b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/qos.json.j2 @@ -151,6 +151,72 @@ "61": "1", "62": "1", "63": "1" + }, + "AZURE_TUNNEL": { + "0" : "1", + "1" : "1", + "2" : "1", + "3" : "3", + "4" : "4", + "5" : "1", + "6" : "1", + "7" : "1", + "8" : "0", + "9" : "1", + "10": "1", + "11": "1", + "12": "1", + "13": "1", + "14": "1", + "15": "1", + "16": "1", + "17": "1", + "18": "1", + "19": "1", + "20": "1", + "21": "1", + "22": "1", + "23": "1", + "24": "1", + "25": "1", + "26": "1", + "27": "1", + "28": "1", + "29": "1", + "30": "1", + "31": "1", + "32": "1", + "33": "2", + "34": "1", + "35": "1", + "36": "1", + "37": "1", + "38": "1", + "39": "1", + "40": "1", + "41": "1", + "42": "1", + "43": "1", + "44": "1", + "45": "1", + "46": "5", + "47": "1", + "48": "7", + "49": "1", + "50": "1", + "51": "1", + "52": "1", + "53": "1", + "54": "1", + "55": "1", + "56": "1", + "57": "1", + "58": "1", + "59": "1", + "60": "1", + "61": "1", + "62": "1", + "63": "1" } }, {%- endmacro %} @@ -165,6 +231,16 @@ "5": "0", "6": "0", "7": "7" + }, + "AZURE_TUNNEL": { + "0": "0", + "1": "0", + "2": "0", + "3": "2", + "4": "6", + "5": "0", + "6": "0", + "7": "0" } }, {%- endmacro %} @@ -173,12 +249,36 @@ "AZURE": { "0": "0", "1": "1", - "2": "1", + "2": "1", "3": "3", "4": "4", "5": "5", "6": "6", "7": "7" + }, + "AZURE_TUNNEL": { + "0": "0", + "1": "1", + "2": "1", + "3": "2", + "4": "6", + "5": "5", + "6": "1", + "7": "7" + } + }, +{%- endmacro %} +{%- macro generate_tc_to_dscp_map() %} + "TC_TO_DSCP_MAP": { + "AZURE_TUNNEL": { + "0": "8", + "1": "0", + "2": "33", + "3": "2", + "4": "6", + "5": "46", + "6": "0", + "7": "48" } }, {%- endmacro %} diff --git a/files/build_templates/qos_config.j2 b/files/build_templates/qos_config.j2 index 9df061283034..4062755827ab 100644 --- a/files/build_templates/qos_config.j2 +++ b/files/build_templates/qos_config.j2 @@ -172,6 +172,9 @@ } }, {% endif %} +{% if generate_tc_to_dscp_map is defined %} + {{- generate_tc_to_dscp_map() }} +{% endif %} {% if 'resource_type' in DEVICE_METADATA['localhost'] and DEVICE_METADATA['localhost']['resource_type'] in apollo_resource_types %} "SCHEDULER": { "scheduler.0": { diff --git a/src/sonic-config-engine/tests/sample_output/py3/qos-arista7050cx3-dualtor.json b/src/sonic-config-engine/tests/sample_output/py3/qos-arista7050cx3-dualtor.json index 84a2613df90d..dbab298bb76a 100644 --- a/src/sonic-config-engine/tests/sample_output/py3/qos-arista7050cx3-dualtor.json +++ b/src/sonic-config-engine/tests/sample_output/py3/qos-arista7050cx3-dualtor.json @@ -21,6 +21,16 @@ "5": "5", "6": "6", "7": "7" + }, + "AZURE_TUNNEL": { + "0": "0", + "1": "1", + "2": "1", + "3": "2", + "4": "6", + "5": "5", + "6": "1", + "7": "7" } }, "DSCP_TO_TC_MAP": { @@ -89,6 +99,72 @@ "61": "1", "62": "1", "63": "1" + }, + "AZURE_TUNNEL": { + "0" : "1", + "1" : "1", + "2" : "1", + "3" : "3", + "4" : "4", + "5" : "1", + "6" : "1", + "7" : "1", + "8" : "0", + "9" : "1", + "10": "1", + "11": "1", + "12": "1", + "13": "1", + "14": "1", + "15": "1", + "16": "1", + "17": "1", + "18": "1", + "19": "1", + "20": "1", + "21": "1", + "22": "1", + "23": "1", + "24": "1", + "25": "1", + "26": "1", + "27": "1", + "28": "1", + "29": "1", + "30": "1", + "31": "1", + "32": "1", + "33": "2", + "34": "1", + "35": "1", + "36": "1", + "37": "1", + "38": "1", + "39": "1", + "40": "1", + "41": "1", + "42": "1", + "43": "1", + "44": "1", + "45": "1", + "46": "5", + "47": "1", + "48": "7", + "49": "1", + "50": "1", + "51": "1", + "52": "1", + "53": "1", + "54": "1", + "55": "1", + "56": "1", + "57": "1", + "58": "1", + "59": "1", + "60": "1", + "61": "1", + "62": "1", + "63": "1" } }, "TC_TO_PRIORITY_GROUP_MAP": { @@ -101,6 +177,28 @@ "5": "0", "6": "0", "7": "7" + }, + "AZURE_TUNNEL": { + "0": "0", + "1": "0", + "2": "0", + "3": "2", + "4": "6", + "5": "0", + "6": "0", + "7": "0" + } + }, + "TC_TO_DSCP_MAP": { + "AZURE_TUNNEL": { + "0": "8", + "1": "0", + "2": "33", + "3": "2", + "4": "6", + "5": "46", + "6": "0", + "7": "48" } }, "SCHEDULER": { diff --git a/src/sonic-config-engine/tests/sample_output/py3/qos-arista7260-dualtor.json b/src/sonic-config-engine/tests/sample_output/py3/qos-arista7260-dualtor.json index e8476cc0c865..41f36a273d06 100644 --- a/src/sonic-config-engine/tests/sample_output/py3/qos-arista7260-dualtor.json +++ b/src/sonic-config-engine/tests/sample_output/py3/qos-arista7260-dualtor.json @@ -21,6 +21,16 @@ "5": "5", "6": "6", "7": "7" + }, + "AZURE_TUNNEL": { + "0": "0", + "1": "1", + "2": "1", + "3": "2", + "4": "6", + "5": "5", + "6": "1", + "7": "7" } }, "DSCP_TO_TC_MAP": { @@ -89,6 +99,72 @@ "61": "1", "62": "1", "63": "1" + }, + "AZURE_TUNNEL": { + "0" : "1", + "1" : "1", + "2" : "1", + "3" : "3", + "4" : "4", + "5" : "1", + "6" : "1", + "7" : "1", + "8" : "0", + "9" : "1", + "10": "1", + "11": "1", + "12": "1", + "13": "1", + "14": "1", + "15": "1", + "16": "1", + "17": "1", + "18": "1", + "19": "1", + "20": "1", + "21": "1", + "22": "1", + "23": "1", + "24": "1", + "25": "1", + "26": "1", + "27": "1", + "28": "1", + "29": "1", + "30": "1", + "31": "1", + "32": "1", + "33": "2", + "34": "1", + "35": "1", + "36": "1", + "37": "1", + "38": "1", + "39": "1", + "40": "1", + "41": "1", + "42": "1", + "43": "1", + "44": "1", + "45": "1", + "46": "5", + "47": "1", + "48": "7", + "49": "1", + "50": "1", + "51": "1", + "52": "1", + "53": "1", + "54": "1", + "55": "1", + "56": "1", + "57": "1", + "58": "1", + "59": "1", + "60": "1", + "61": "1", + "62": "1", + "63": "1" } }, "TC_TO_PRIORITY_GROUP_MAP": { @@ -101,6 +177,28 @@ "5": "0", "6": "0", "7": "7" + }, + "AZURE_TUNNEL": { + "0": "0", + "1": "0", + "2": "0", + "3": "2", + "4": "6", + "5": "0", + "6": "0", + "7": "0" + } + }, + "TC_TO_DSCP_MAP": { + "AZURE_TUNNEL": { + "0": "8", + "1": "0", + "2": "33", + "3": "2", + "4": "6", + "5": "46", + "6": "0", + "7": "48" } }, "SCHEDULER": { From d19a953e133a0893496cd6257aba7df1299fc4a0 Mon Sep 17 00:00:00 2001 From: zzhiyuan Date: Mon, 25 Apr 2022 08:11:32 -0700 Subject: [PATCH 120/251] [Arista] Add 1x100G over 4 lanes configuration for 7060DX4 (#10655) Co-authored-by: Zhi Yuan (Carl) Zhao --- .../x86_64-arista_7060dx4_32/platform.json | 96 +++++++++++++++++++ 1 file changed, 96 insertions(+) diff --git a/device/arista/x86_64-arista_7060dx4_32/platform.json b/device/arista/x86_64-arista_7060dx4_32/platform.json index 7a38cbe3d9f3..425d9c87d6ce 100644 --- a/device/arista/x86_64-arista_7060dx4_32/platform.json +++ b/device/arista/x86_64-arista_7060dx4_32/platform.json @@ -236,6 +236,9 @@ "Ethernet1/3", "Ethernet1/5", "Ethernet1/7" + ], + "1x100G(4)": [ + "Ethernet1/1" ] } }, @@ -255,6 +258,9 @@ "Ethernet2/3", "Ethernet2/5", "Ethernet2/7" + ], + "1x100G(4)": [ + "Ethernet2/1" ] } }, @@ -274,6 +280,9 @@ "Ethernet3/3", "Ethernet3/5", "Ethernet3/7" + ], + "1x100G(4)": [ + "Ethernet3/1" ] } }, @@ -293,6 +302,9 @@ "Ethernet4/3", "Ethernet4/5", "Ethernet4/7" + ], + "1x100G(4)": [ + "Ethernet4/1" ] } }, @@ -312,6 +324,9 @@ "Ethernet5/3", "Ethernet5/5", "Ethernet5/7" + ], + "1x100G(4)": [ + "Ethernet5/1" ] } }, @@ -331,6 +346,9 @@ "Ethernet6/3", "Ethernet6/5", "Ethernet6/7" + ], + "1x100G(4)": [ + "Ethernet6/1" ] } }, @@ -350,6 +368,9 @@ "Ethernet7/3", "Ethernet7/5", "Ethernet7/7" + ], + "1x100G(4)": [ + "Ethernet7/1" ] } }, @@ -369,6 +390,9 @@ "Ethernet8/3", "Ethernet8/5", "Ethernet8/7" + ], + "1x100G(4)": [ + "Ethernet8/1" ] } }, @@ -388,6 +412,9 @@ "Ethernet9/3", "Ethernet9/5", "Ethernet9/7" + ], + "1x100G(4)": [ + "Ethernet9/1" ] } }, @@ -407,6 +434,9 @@ "Ethernet10/3", "Ethernet10/5", "Ethernet10/7" + ], + "1x100G(4)": [ + "Ethernet10/1" ] } }, @@ -426,6 +456,9 @@ "Ethernet11/3", "Ethernet11/5", "Ethernet11/7" + ], + "1x100G(4)": [ + "Ethernet11/1" ] } }, @@ -445,6 +478,9 @@ "Ethernet12/3", "Ethernet12/5", "Ethernet12/7" + ], + "1x100G(4)": [ + "Ethernet12/1" ] } }, @@ -464,6 +500,9 @@ "Ethernet13/3", "Ethernet13/5", "Ethernet13/7" + ], + "1x100G(4)": [ + "Ethernet13/1" ] } }, @@ -483,6 +522,9 @@ "Ethernet14/3", "Ethernet14/5", "Ethernet14/7" + ], + "1x100G(4)": [ + "Ethernet14/1" ] } }, @@ -502,6 +544,9 @@ "Ethernet15/3", "Ethernet15/5", "Ethernet15/7" + ], + "1x100G(4)": [ + "Ethernet15/1" ] } }, @@ -521,6 +566,9 @@ "Ethernet16/3", "Ethernet16/5", "Ethernet16/7" + ], + "1x100G(4)": [ + "Ethernet16/1" ] } }, @@ -540,6 +588,9 @@ "Ethernet17/3", "Ethernet17/5", "Ethernet17/7" + ], + "1x100G(4)": [ + "Ethernet17/1" ] } }, @@ -559,6 +610,9 @@ "Ethernet18/3", "Ethernet18/5", "Ethernet18/7" + ], + "1x100G(4)": [ + "Ethernet18/1" ] } }, @@ -578,6 +632,9 @@ "Ethernet19/3", "Ethernet19/5", "Ethernet19/7" + ], + "1x100G(4)": [ + "Ethernet19/1" ] } }, @@ -597,6 +654,9 @@ "Ethernet20/3", "Ethernet20/5", "Ethernet20/7" + ], + "1x100G(4)": [ + "Ethernet20/1" ] } }, @@ -616,6 +676,9 @@ "Ethernet21/3", "Ethernet21/5", "Ethernet21/7" + ], + "1x100G(4)": [ + "Ethernet21/1" ] } }, @@ -635,6 +698,9 @@ "Ethernet22/3", "Ethernet22/5", "Ethernet22/7" + ], + "1x100G(4)": [ + "Ethernet22/1" ] } }, @@ -654,6 +720,9 @@ "Ethernet23/3", "Ethernet23/5", "Ethernet23/7" + ], + "1x100G(4)": [ + "Ethernet23/1" ] } }, @@ -673,6 +742,9 @@ "Ethernet24/3", "Ethernet24/5", "Ethernet24/7" + ], + "1x100G(4)": [ + "Ethernet24/1" ] } }, @@ -692,6 +764,9 @@ "Ethernet25/3", "Ethernet25/5", "Ethernet25/7" + ], + "1x100G(4)": [ + "Ethernet25/1" ] } }, @@ -711,6 +786,9 @@ "Ethernet26/3", "Ethernet26/5", "Ethernet26/7" + ], + "1x100G(4)": [ + "Ethernet26/1" ] } }, @@ -730,6 +808,9 @@ "Ethernet27/3", "Ethernet27/5", "Ethernet27/7" + ], + "1x100G(4)": [ + "Ethernet27/1" ] } }, @@ -749,6 +830,9 @@ "Ethernet28/3", "Ethernet28/5", "Ethernet28/7" + ], + "1x100G(4)": [ + "Ethernet28/1" ] } }, @@ -768,6 +852,9 @@ "Ethernet29/3", "Ethernet29/5", "Ethernet29/7" + ], + "1x100G(4)": [ + "Ethernet29/1" ] } }, @@ -787,6 +874,9 @@ "Ethernet30/3", "Ethernet30/5", "Ethernet30/7" + ], + "1x100G(4)": [ + "Ethernet30/1" ] } }, @@ -806,6 +896,9 @@ "Ethernet31/3", "Ethernet31/5", "Ethernet31/7" + ], + "1x100G(4)": [ + "Ethernet31/1" ] } }, @@ -825,6 +918,9 @@ "Ethernet32/3", "Ethernet32/5", "Ethernet32/7" + ], + "1x100G(4)": [ + "Ethernet32/1" ] } }, From 672db8d416798b6d418e98f5bb7693d2ff42214f Mon Sep 17 00:00:00 2001 From: Shilong Liu Date: Mon, 25 Apr 2022 23:16:29 +0800 Subject: [PATCH 121/251] [submodule] Update submodule for sonic-mgmt-common (#10664) submodule update, includes: ec32690 CVE-2020-25614: Update xmlquery, jsonquery and xpath packages. (#58) 5156527 Showtech sonic mgmt framework: Add Management Framework functionality for "show tech-support" (#49) --- src/sonic-mgmt-common | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-mgmt-common b/src/sonic-mgmt-common index d43a607d759d..ec326905356c 160000 --- a/src/sonic-mgmt-common +++ b/src/sonic-mgmt-common @@ -1 +1 @@ -Subproject commit d43a607d759d23f64d681e38d015ce0be886d440 +Subproject commit ec326905356c59aed51c6f6516db5a1b5d8516d6 From 64187a1b1500c1c8a0cab4b5ab97d4de6135de52 Mon Sep 17 00:00:00 2001 From: Saikrishna Arcot Date: Mon, 25 Apr 2022 13:38:52 -0400 Subject: [PATCH 122/251] Remove SSH host keys after installing the custom version of sshd (#10633) * Remove SSH host keys after installing the custom version of sshd Signed-off-by: Saikrishna Arcot * Use an override for for sshd instead of overwriting the service file Don't overwrite upstream's .service file, and instead use an override file for making sure the host key(s) are generated. Signed-off-by: Saikrishna Arcot --- build_debian.sh | 3 ++- .../build_templates/sonic_debian_extension.j2 | 5 +++++ files/sshd/override.conf | 4 ++++ files/sshd/sshd.service | 18 ------------------ 4 files changed, 11 insertions(+), 19 deletions(-) create mode 100644 files/sshd/override.conf delete mode 100644 files/sshd/sshd.service diff --git a/build_debian.sh b/build_debian.sh index b3d692cdb28c..43f509b374c2 100755 --- a/build_debian.sh +++ b/build_debian.sh @@ -407,7 +407,8 @@ sudo sed -i 's/LOAD_KEXEC=true/LOAD_KEXEC=false/' $FILESYSTEM_ROOT/etc/default/k ## Remove sshd host keys, and will regenerate on first sshd start sudo rm -f $FILESYSTEM_ROOT/etc/ssh/ssh_host_*_key* sudo cp files/sshd/host-ssh-keygen.sh $FILESYSTEM_ROOT/usr/local/bin/ -sudo cp -f files/sshd/sshd.service $FILESYSTEM_ROOT/lib/systemd/system/ssh.service +sudo mkdir $FILESYSTEM_ROOT/etc/systemd/system/ssh.service.d +sudo cp files/sshd/override.conf $FILESYSTEM_ROOT/etc/systemd/system/ssh.service.d/override.conf # Config sshd # 1. Set 'UseDNS' to 'no' # 2. Configure sshd to close all SSH connetions after 15 minutes of inactivity diff --git a/files/build_templates/sonic_debian_extension.j2 b/files/build_templates/sonic_debian_extension.j2 index a49e29406eeb..924641393c02 100644 --- a/files/build_templates/sonic_debian_extension.j2 +++ b/files/build_templates/sonic_debian_extension.j2 @@ -329,6 +329,11 @@ sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y in # Install custom-built openssh sshd sudo dpkg --root=$FILESYSTEM_ROOT -i $debs_path/openssh-server_*.deb +# Remove sshd host keys, and will regenerate on first sshd start. This needs to be +# done again here because our custom version of sshd is being installed, which +# will regenerate the sshd host keys. +sudo rm -f $FILESYSTEM_ROOT/etc/ssh/ssh_host_*_key* + {% if sonic_asic_platform == 'broadcom' %} # Install custom-built flashrom sudo dpkg --root=$FILESYSTEM_ROOT -i $debs_path/flashrom_*.deb diff --git a/files/sshd/override.conf b/files/sshd/override.conf new file mode 100644 index 000000000000..a1e63ce22b5d --- /dev/null +++ b/files/sshd/override.conf @@ -0,0 +1,4 @@ +[Service] +ExecStartPre= +ExecStartPre=/usr/local/bin/host-ssh-keygen.sh +ExecStartPre=/usr/sbin/sshd -t diff --git a/files/sshd/sshd.service b/files/sshd/sshd.service deleted file mode 100644 index 25d524171c6f..000000000000 --- a/files/sshd/sshd.service +++ /dev/null @@ -1,18 +0,0 @@ -[Unit] -Description=OpenBSD Secure Shell server -After=network.target auditd.service -ConditionPathExists=!/etc/ssh/sshd_not_to_be_run - -[Service] -EnvironmentFile=-/etc/default/ssh -ExecStartPre=-/usr/local/bin/host-ssh-keygen.sh -ExecStart=/usr/sbin/sshd -D $SSHD_OPTS -ExecReload=/bin/kill -HUP $MAINPID -KillMode=process -Restart=on-failure -RuntimeDirectory=sshd -RuntimeDirectoryMode=0755 - -[Install] -WantedBy=multi-user.target -Alias=sshd.service From 9237950a0c8389b360878712db83553c3c910e78 Mon Sep 17 00:00:00 2001 From: Stephen Sun <5379172+stephenxs@users.noreply.github.com> Date: Tue, 26 Apr 2022 02:56:05 +0800 Subject: [PATCH 123/251] Align threshold mode of zero buffer profile of egress_lossless_pool (#10627) On vs platform, egress_lossless_pool's mode is static. So the corresponding profile should be of static_th as well. Signed-off-by: Stephen Sun --- platform/vs/docker-sonic-vs/zero_profiles.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform/vs/docker-sonic-vs/zero_profiles.json b/platform/vs/docker-sonic-vs/zero_profiles.json index fbd42bf7ec3e..7648fec56b15 100644 --- a/platform/vs/docker-sonic-vs/zero_profiles.json +++ b/platform/vs/docker-sonic-vs/zero_profiles.json @@ -43,7 +43,7 @@ "BUFFER_PROFILE_TABLE:egress_lossless_zero_profile" : { "pool":"egress_lossless_pool", "size":"0", - "dynamic_th":"-8" + "static_th":"0" }, "OP": "SET" }, From 0606add0177e0f7880c5cf7e09c2e0442320a4b5 Mon Sep 17 00:00:00 2001 From: Maxime Lorrillere Date: Mon, 25 Apr 2022 13:09:42 -0700 Subject: [PATCH 124/251] [chassis] Get asic PCI ID from CHASSIS_STATE_DB and update asic_id in CONFIG_DB (#9681) Asic PCI ID (PCI address) is collected by chassisd (inside pmon - Azure/sonic-platform-daemons#175) and saved in CHASSIS_STATE_DB (in redis_chassis). CHASSIS_STATE_DB is accessible by swss containers. At docker-init.sh (script is called after swss container is created and before anything that could run in swss like orchagent...), we wait until asic PCI ID of the corresponding asic is populated by chassisd. We then update asic_id in CONFIG_DB of asic's database. A system supporting dynamic asic PCI ID identification requires to have a file (empty) use_pci_id_chassis in its platform dir. When orchagent runs, it has correct asic PCI ID in its CONFIG_DB. Together with this PR: Azure/sonic-platform-daemons#175 Azure/sonic-platform-common#185 Signed-off-by: Maxime Lorrillere Co-authored-by: Maxime Lorrillere --- dockers/docker-orchagent/docker-init.j2 | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/dockers/docker-orchagent/docker-init.j2 b/dockers/docker-orchagent/docker-init.j2 index 5b3850613dac..d0a3ef9e2d36 100755 --- a/dockers/docker-orchagent/docker-init.j2 +++ b/dockers/docker-orchagent/docker-init.j2 @@ -40,4 +40,21 @@ if [ "$VLAN" != "" ]; then cp /usr/share/sonic/templates/ndppd.conf /etc/supervisor/conf.d/ fi +USE_PCI_ID_IN_CHASSIS_STATE_DB=/usr/share/sonic/platform/use_pci_id_chassis +ASIC_ID="asic$NAMESPACE_ID" +if [ -f "$USE_PCI_ID_IN_CHASSIS_STATE_DB" ]; then + while true; do + PCI_ID=$(sonic-db-cli -s CHASSIS_STATE_DB HGET "CHASSIS_ASIC_TABLE|$ASIC_ID" asic_pci_address) + if [ -z "$PCI_ID" ]; then + sleep 3 + else + # Update asic_id in CONFIG_DB, which is used by orchagent and fed to syncd + if [[ $PCI_ID == ????:??:??.? ]]; then + sonic-db-cli CONFIG_DB HSET 'DEVICE_METADATA|localhost' 'asic_id' ${PCI_ID#*:} + break + fi + fi + done +fi + exec /usr/local/bin/supervisord From aa62e3333906a79f10e5bdc80f6b9427a128fea2 Mon Sep 17 00:00:00 2001 From: Song Yuan <64041228+ysmanman@users.noreply.github.com> Date: Mon, 25 Apr 2022 13:14:17 -0700 Subject: [PATCH 125/251] [chassis] Do not configure LLDP on recirc ports (#7909) Why I did it Recirc port is used to only forward traffic from one asic to another asic. So it's not required to configure LLDP on it. How I did it Add interface prefix helper for recirc port. Similar to skip configuring LLDP on inband port, add check in lldpmgrd to skip recirc port by checking interface prefix. --- dockers/docker-lldp/lldpmgrd | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dockers/docker-lldp/lldpmgrd b/dockers/docker-lldp/lldpmgrd index 9e85406d4510..93461a42837e 100755 --- a/dockers/docker-lldp/lldpmgrd +++ b/dockers/docker-lldp/lldpmgrd @@ -22,7 +22,7 @@ try: from sonic_py_common import daemon_base from swsscommon import swsscommon - from sonic_py_common.interface import inband_prefix + from sonic_py_common.interface import inband_prefix, recirc_prefix except ImportError as err: raise ImportError("%s - required module not found" % str(err)) @@ -133,9 +133,9 @@ class LldpManager(daemon_base.DaemonBase): """ port_desc = None - # Skip inband interface prefixes. These are recycle ports exposed in PORT_TABLE for + # Skip recirc and inband interface prefixes. These are recycle ports exposed in PORT_TABLE for # asic-to-asic communication in VOQ based chassis system. We do not configure LLDP on these. - if port_name.startswith(inband_prefix()): + if port_name.startswith(inband_prefix()) or port_name.startswith(recirc_prefix()): return # Get the port alias. If None or empty string, use port name instead From cc30771f6b97234a6dd19d8f97d5dfd44551cf20 Mon Sep 17 00:00:00 2001 From: Zhaohui Sun <94606222+ZhaohuiS@users.noreply.github.com> Date: Tue, 26 Apr 2022 09:13:26 +0800 Subject: [PATCH 126/251] Add python3 virtual environment for docker-ptf (#10599) Why I did it Migrate ptftests script to python3, in order to do an incremental migration, add python virtual environment firstly, install all required python packages in virtual env as well. Then migrate ptftests scripts from python2 to python3 one by one avoid impacting non-changed scripts. Signed-off-by: Zhaohui Sun zhaohuisun@microsoft.com How I did it Add python3 virtual environment for docker-ptf. Add submodule ptf-py3 and install patched ptf 0.9.3 into virtual environment as well, two ptf issues were reported here: p4lang/ptf#173 p4lang/ptf#174 Signed-off-by: Zhaohui Sun --- .gitmodules | 3 + dockers/docker-ptf/Dockerfile.j2 | 67 ++++++++++++++++++- platform/vs/docker-ptf.mk | 1 + rules/ptf-py3.dep | 11 +++ rules/ptf-py3.mk | 7 ++ src/ptf-py3 | 1 + ...ve-ord-in-get_mac-to-avoid-TypeError.patch | 26 +++++++ ...ted-client-mac-address-in-DHCP-Disco.patch | 36 ++++++++++ src/ptf-py3.patch/series | 2 + 9 files changed, 153 insertions(+), 1 deletion(-) create mode 100644 rules/ptf-py3.dep create mode 100644 rules/ptf-py3.mk create mode 160000 src/ptf-py3 create mode 100644 src/ptf-py3.patch/0001-Remove-ord-in-get_mac-to-avoid-TypeError.patch create mode 100644 src/ptf-py3.patch/0002-Fill-byte-formatted-client-mac-address-in-DHCP-Disco.patch create mode 100644 src/ptf-py3.patch/series diff --git a/.gitmodules b/.gitmodules index 9194c8f4b7a2..59cddea4a8f2 100644 --- a/.gitmodules +++ b/.gitmodules @@ -103,3 +103,6 @@ [submodule "src/sonic-p4rt/sonic-pins"] path = src/sonic-p4rt/sonic-pins url = https://github.com/Azure/sonic-pins.git +[submodule "src/ptf-py3"] + path = src/ptf-py3 + url = https://github.com/p4lang/ptf.git diff --git a/dockers/docker-ptf/Dockerfile.j2 b/dockers/docker-ptf/Dockerfile.j2 index d999d01e0026..bf22ba97ea06 100644 --- a/dockers/docker-ptf/Dockerfile.j2 +++ b/dockers/docker-ptf/Dockerfile.j2 @@ -7,6 +7,11 @@ FROM {{ prefix }}multiarch/debian-debootstrap:arm64-stretch FROM {{ prefix }}debian:buster {% endif %} +{% from "dockers/dockerfile-macros.j2" import install_python_wheels, copy_files %} + +USER root +WORKDIR /root + MAINTAINER Pavel Shirshov RUN echo "deb [arch=amd64] http://debian-archive.trafficmanager.net/debian buster-backports main" >> /etc/apt/sources.list @@ -51,6 +56,13 @@ RUN sed --in-place 's/httpredir.debian.org/debian-archive.trafficmanager.net/' / python-libpcap \ python-scapy \ python-six \ + python3 \ + python3-venv \ + python3-pip \ + python3-dev \ + python3-scapy \ + python3-six \ + libpcap-dev \ tacacs+ \ rsyslog \ ntp \ @@ -59,7 +71,9 @@ RUN sed --in-place 's/httpredir.debian.org/debian-archive.trafficmanager.net/' / arping \ bridge-utils \ libteam-utils \ - gdb + gdb \ + automake \ + iproute2 # Install all python modules from pypi. python-scapy is exception, ptf debian package requires python-scapy # TODO: Clean up this step @@ -117,10 +131,61 @@ RUN rm -rf /debs \ && pip install pybrctl pyro4 rpyc yabgp \ && pip install unittest-xml-reporting \ && pip install pyrasite \ + && pip install retrying \ && mkdir -p /opt \ && cd /opt \ && wget https://raw.githubusercontent.com/p4lang/ptf/master/ptf_nn/ptf_nn_agent.py +RUN python3 -m venv env-python3 + +# Activating a virtualenv. The virtualenv automatically works for RUN, ENV and CMD. +ENV VIRTUAL_ENV=/root/env-python3 +ARG BACKUP_OF_PATH="$PATH" +ENV PATH="$VIRTUAL_ENV/bin:$PATH" + +ENV LANG=C.UTF-8 LC_ALL=C.UTF-8 PYTHONIOENCODING=UTF-8 + +RUN python3 -m pip install --upgrade --ignore-installed pip + +# Install all python modules from pypi. python3-scapy is exception, ptf debian package requires python3-scapy +RUN python3 -m pip install setuptools \ + && pip3 install supervisor \ + && pip3 install ipython==5.4.1 \ + && pip3 install Cython \ + && pip3 install cffi \ + && pip3 install nnpy \ + && pip3 install dpkt \ + && pip3 install ipaddress \ + && pip3 install pysubnettree \ + && pip3 install paramiko \ + && pip3 install Flask \ + && pip3 install exabgp \ + && pip3 install pyaml \ + && pip3 install pybrctl pyro4 rpyc yabgp \ + && pip3 install unittest-xml-reporting \ + && pip3 install pyrasite \ + && pip3 install python-libpcap \ + && pip3 install enum34 \ + && pip3 install grpcio \ + && pip3 install grpcio-tools \ + && pip3 install protobuf \ + && pip3 install six==1.16.0 \ + && pip3 install itsdangerous \ + && pip3 install retrying \ + && pip3 install jinja2 \ + && pip3 install scapy==2.4.5 + +{% if docker_ptf_whls.strip() -%} +# Copy locally-built Python wheel dependencies +{{ copy_files("python-wheels/", docker_ptf_whls.split(' '), "/python-wheels/") }} + +# Install locally-built Python wheel dependencies +{{ install_python_wheels(docker_ptf_whls.split(' ')) }} +{% endif %} + +# Deactivating a virtualenv. +ENV PATH="$BACKUP_OF_PATH" + ## Adjust sshd settings RUN mkdir /var/run/sshd \ && echo 'root:root' | chpasswd \ diff --git a/platform/vs/docker-ptf.mk b/platform/vs/docker-ptf.mk index 445fc8daf4d3..ef102be967f4 100644 --- a/platform/vs/docker-ptf.mk +++ b/platform/vs/docker-ptf.mk @@ -1,6 +1,7 @@ # docker image for docker-ptf DOCKER_PTF = docker-ptf.gz +$(DOCKER_PTF)_PYTHON_WHEELS += $(PTF_PY3) $(DOCKER_PTF)_PATH = $(DOCKERS_PATH)/docker-ptf $(DOCKER_PTF)_DEPENDS += $(LIBTHRIFT) $(PYTHON_THRIFT) $(PTF) $(PYTHON_SAITHRIFT) SONIC_DOCKER_IMAGES += $(DOCKER_PTF) diff --git a/rules/ptf-py3.dep b/rules/ptf-py3.dep new file mode 100644 index 000000000000..eadb32aabdf4 --- /dev/null +++ b/rules/ptf-py3.dep @@ -0,0 +1,11 @@ + +SPATH := $($(PTF_PY3)_SRC_PATH) +DEP_FILES := $(SONIC_COMMON_FILES_LIST) rules/ptf-py3.mk rules/ptf-py3.dep +DEP_FILES += $(SONIC_COMMON_BASE_FILES_LIST) +SMDEP_FILES := $(addprefix $(SPATH)/,$(shell cd $(SPATH) && git ls-files)) + +$(PTF_PY3)_CACHE_MODE := GIT_CONTENT_SHA +$(PTF_PY3)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST) +$(PTF_PY3)_DEP_FILES := $(DEP_FILES) +$(PTF_PY3)_SMDEP_FILES := $(SMDEP_FILES) +$(PTF_PY3)_SMDEP_PATHS := $(SPATH) diff --git a/rules/ptf-py3.mk b/rules/ptf-py3.mk new file mode 100644 index 000000000000..bf583b57b622 --- /dev/null +++ b/rules/ptf-py3.mk @@ -0,0 +1,7 @@ +# ptf package + +PTF_PY3 = ptf-0.9.3-py3-none-any.whl +$(PTF_PY3)_SRC_PATH = $(SRC_PATH)/ptf-py3 +$(PTF_PY3)_PYTHON_VERSION = 3 +$(PTF_PY3)_TEST = n +SONIC_PYTHON_WHEELS += $(PTF_PY3) diff --git a/src/ptf-py3 b/src/ptf-py3 new file mode 160000 index 000000000000..405513bcad2e --- /dev/null +++ b/src/ptf-py3 @@ -0,0 +1 @@ +Subproject commit 405513bcad2eae3092b0ac4ceb31e8dec5e32311 diff --git a/src/ptf-py3.patch/0001-Remove-ord-in-get_mac-to-avoid-TypeError.patch b/src/ptf-py3.patch/0001-Remove-ord-in-get_mac-to-avoid-TypeError.patch new file mode 100644 index 000000000000..cb2b992548a7 --- /dev/null +++ b/src/ptf-py3.patch/0001-Remove-ord-in-get_mac-to-avoid-TypeError.patch @@ -0,0 +1,26 @@ +From a8b13b9fbaa16ddd305ba2df2238ef606ef222a7 Mon Sep 17 00:00:00 2001 +From: Zhaohui Sun +Date: Wed, 13 Apr 2022 09:24:46 +0000 +Subject: [PATCH 1/2] Remove ord in get_mac() to avoid TypeError + +Signed-off-by: Zhaohui Sun +--- + src/ptf/netutils.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/ptf/netutils.py b/src/ptf/netutils.py +index 752e76c..6aabe79 100644 +--- a/src/ptf/netutils.py ++++ b/src/ptf/netutils.py +@@ -54,7 +54,7 @@ def get_if_index(iff): + + + def get_mac(iff): +- return ":".join(["%02x" % ord(char) for char in get_if(iff, SIOCGIFHWADDR)[18:24]]) ++ return ":".join(["%02x" % char for char in get_if(iff, SIOCGIFHWADDR)[18:24]]) + + + def set_promisc(s, iff, val=1): +-- +2.25.1 + diff --git a/src/ptf-py3.patch/0002-Fill-byte-formatted-client-mac-address-in-DHCP-Disco.patch b/src/ptf-py3.patch/0002-Fill-byte-formatted-client-mac-address-in-DHCP-Disco.patch new file mode 100644 index 000000000000..a0582994539e --- /dev/null +++ b/src/ptf-py3.patch/0002-Fill-byte-formatted-client-mac-address-in-DHCP-Disco.patch @@ -0,0 +1,36 @@ +From 6e570e00ea05882d2db1e480ed041ea631bf37da Mon Sep 17 00:00:00 2001 +From: Zhaohui Sun +Date: Wed, 13 Apr 2022 09:25:28 +0000 +Subject: [PATCH 2/2] Fill byte formatted client mac address in DHCP Discover + packet + +Signed-off-by: Zhaohui Sun +--- + src/ptf/testutils.py | 9 +++++---- + 1 file changed, 5 insertions(+), 4 deletions(-) + +diff --git a/src/ptf/testutils.py b/src/ptf/testutils.py +index ab67cea..83a9075 100755 +--- a/src/ptf/testutils.py ++++ b/src/ptf/testutils.py +@@ -2712,12 +2712,13 @@ def __dhcp_mac_to_chaddr(mac_addr="00:01:02:03:04:05"): + """ + Private helper function to convert a 6-byte MAC address of form: + '00:01:02:03:04:05' +- into a 16-byte chaddr byte string of form: +- '\x00\x01\x02\x03\x04\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' ++ into a 16-byte chaddr byte of form: ++ b'\x00\x01\x02\x03\x04\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + + """ +- chaddr = "".join([chr(int(octet, 16)) for octet in mac_addr.split(":")]) +- chaddr += "\x00" * 10 ++ import binascii ++ chaddr = binascii.unhexlify(mac_addr.replace(':', '')) ++ chaddr += b'\x00\x00\x00\x00\x00\x00' + return chaddr + + +-- +2.25.1 + diff --git a/src/ptf-py3.patch/series b/src/ptf-py3.patch/series new file mode 100644 index 000000000000..d18987dd5913 --- /dev/null +++ b/src/ptf-py3.patch/series @@ -0,0 +1,2 @@ +0001-Remove-ord-in-get_mac-to-avoid-TypeError.patch +0002-Fill-byte-formatted-client-mac-address-in-DHCP-Disco.patch \ No newline at end of file From a06f5493b2daa5d35dd5c7d22f342929bb1c72b4 Mon Sep 17 00:00:00 2001 From: xumia <59720581+xumia@users.noreply.github.com> Date: Tue, 26 Apr 2022 21:12:36 +0800 Subject: [PATCH 127/251] [Submodule]: update submodule for sonic-restapi (#10680) Why I did it Update submodule sonic-restapi e83e0e8 Fix Ctype_char larger than address space issue in 32-bit armhf (#107) --- src/sonic-restapi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-restapi b/src/sonic-restapi index bd97dfeb4b45..e83e0e862cc4 160000 --- a/src/sonic-restapi +++ b/src/sonic-restapi @@ -1 +1 @@ -Subproject commit bd97dfeb4b4564defbc10e521ee05bbfe0638315 +Subproject commit e83e0e862cc4e8a2627eaf79f1461e7d7d9a4e75 From 9d7387a18e15427ed11103fc8d1724b01fbdc324 Mon Sep 17 00:00:00 2001 From: ganglv <88995770+ganglyu@users.noreply.github.com> Date: Wed, 27 Apr 2022 07:14:51 +0800 Subject: [PATCH 128/251] [sonic-host-services]: Fix import and invalid path (#10660) Why I did it Can not start sonic-hostservice How I did it Install python3-dbus and systemd-python, and replace invalid path How to verify it Start the service with below commands: sudo systemctl start sonic-hostservice sudo systemctl status sonic-hostservice Signed-off-by: Gang Lv ganglv@microsoft.com --- files/build_templates/sonic_debian_extension.j2 | 5 ++++- src/sonic-host-services/scripts/sonic-host-server | 15 ++++++++++++--- src/sonic-host-services/setup.py | 1 + 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/files/build_templates/sonic_debian_extension.j2 b/files/build_templates/sonic_debian_extension.j2 index 924641393c02..c51d6d4543e8 100644 --- a/files/build_templates/sonic_debian_extension.j2 +++ b/files/build_templates/sonic_debian_extension.j2 @@ -233,7 +233,10 @@ sudo cp -f $IMAGE_CONFIGS/bash/bash.bashrc $FILESYSTEM_ROOT/etc/ sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install libcairo2-dev libdbus-1-dev libgirepository1.0-dev libsystemd-dev pkg-config # Mark runtime dependencies as manually installed to avoid them being auto-removed while uninstalling build dependencies -sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-mark manual gir1.2-glib-2.0 libdbus-1-3 libgirepository-1.0-1 libsystemd0 +sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-mark manual gir1.2-glib-2.0 libdbus-1-3 libgirepository-1.0-1 libsystemd0 python3-dbus + +# Install systemd-python for SONiC host services +sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip3 install systemd-python # Install SONiC host services package SONIC_HOST_SERVICES_PY3_WHEEL_NAME=$(basename {{sonic_host_services_py3_wheel_path}}) diff --git a/src/sonic-host-services/scripts/sonic-host-server b/src/sonic-host-services/scripts/sonic-host-server index a9fdc2eb25fd..bf4449e34eda 100755 --- a/src/sonic-host-services/scripts/sonic-host-server +++ b/src/sonic-host-services/scripts/sonic-host-server @@ -13,9 +13,16 @@ import dbus.mainloop.glib from gi.repository import GObject -def register_modules(): +def find_module_path(): + """Find path for host_moduels""" + try: + from host_modules import host_service + return os.path.dirname(host_service.__file__) + except ImportError as e: + return None + +def register_modules(mod_path): """Register all host modules""" - mod_path = '/usr/local/lib/python3.7/dist-packages/host_modules' sys.path.append(mod_path) for mod_file in glob.glob(os.path.join(mod_path, '*.py')): if os.path.isfile(mod_file) and not mod_file.endswith('__init__.py'): @@ -62,7 +69,9 @@ class SignalManager(object): loop.quit() sigmgr = SignalManager() -register_modules() +mod_path = find_module_path() +if mod_path is not None: + register_modules(mod_path) # Only run if we actually have some handlers if handlers: diff --git a/src/sonic-host-services/setup.py b/src/sonic-host-services/setup.py index 8926e960e311..9ed9e1082a0c 100644 --- a/src/sonic-host-services/setup.py +++ b/src/sonic-host-services/setup.py @@ -24,6 +24,7 @@ ], install_requires = [ 'dbus-python', + 'systemd-python', 'Jinja2>=2.10', 'PyGObject', 'sonic-py-common' From 850e45601bc7672462418dea194cee36b04cf811 Mon Sep 17 00:00:00 2001 From: jingwenxie Date: Tue, 26 Apr 2022 17:26:44 -0700 Subject: [PATCH 129/251] Revert "[sonic-cfggen] make minigraph parser fail when speed and lanes are not in PORT table (#10228)" (#10683) This reverts commit cd330f0e70e646c2ff6fc88c6c8fb9f75e8b40e7. --- src/sonic-config-engine/sonic-cfggen | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/src/sonic-config-engine/sonic-cfggen b/src/sonic-config-engine/sonic-cfggen index b10002c40809..3f0e047f76fa 100755 --- a/src/sonic-config-engine/sonic-cfggen +++ b/src/sonic-config-engine/sonic-cfggen @@ -247,19 +247,6 @@ def _get_jinja2_env(paths): return env -def _must_field_by_yang(data, table, must_fields): - """ - Check if table contains must field based on yang definition - """ - if table not in data: - return - - for must_field in must_fields: - for _, fields in data[table].items(): - if must_field not in fields: - print(must_field, 'is a must field in', table, file=sys.stderr) - sys.exit(1) - def main(): parser=argparse.ArgumentParser(description="Render configuration file from minigraph data and jinja2 template.") group = parser.add_mutually_exclusive_group() @@ -354,8 +341,6 @@ def main(): deep_update(data, parse_xml(minigraph, platform, asic_name=asic_name)) else: deep_update(data, parse_xml(minigraph, port_config_file=args.port_config, asic_name=asic_name, hwsku_config_file=args.hwsku_config)) - # check if minigraph parser has speed and lanes in PORT table - _must_field_by_yang(data, 'PORT', ['speed', 'lanes']) if args.device_description is not None: deep_update(data, parse_device_desc_xml(args.device_description)) From 313cced32b713290cbcdcc1645ea41c4474eca50 Mon Sep 17 00:00:00 2001 From: Saikrishna Arcot Date: Wed, 27 Apr 2022 13:20:42 -0400 Subject: [PATCH 130/251] Update Docker to 20.10.14 (#10677) * Upgrade docker version from 20.10.7 to 20.10.14, and pin containerd.io Update the Docker engine version from 20.10.7 to 20.10.14. This brings in some CVE and bug fixes. Additionally, pin the version of containerd.io to a specific version, mainly for consistency/reproducibility. Signed-off-by: Saikrishna Arcot * Remove the containerd ordering change to docker.service This appears to be already present in the current docker.service. Signed-off-by: Saikrishna Arcot * Remove use of apt-key apt-key is considered deprecated, and the current practice is to just add the key into /etc/apt/trusted.gpg.d/. Signed-off-by: Saikrishna Arcot * Upgrade docker container in Bullseye slave to 20.10.14 Signed-off-by: Saikrishna Arcot --- build_debian.sh | 16 +++++----------- sonic-slave-bullseye/Dockerfile.j2 | 2 +- 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/build_debian.sh b/build_debian.sh index 43f509b374c2..b8216c629b8d 100755 --- a/build_debian.sh +++ b/build_debian.sh @@ -31,7 +31,8 @@ set -x -e CONFIGURED_ARCH=$([ -f .arch ] && cat .arch || echo amd64) ## docker engine version (with platform) -DOCKER_VERSION=5:20.10.7~3-0~debian-$IMAGE_DISTRO +DOCKER_VERSION=5:20.10.14~3-0~debian-$IMAGE_DISTRO +CONTAINERD_IO_VERSION=1.5.11-1 LINUX_KERNEL_VERSION=5.10.0-8-2 ## Working directory to prepare the file system @@ -233,17 +234,12 @@ if [[ $CONFIGURED_ARCH == armhf ]]; then # update ssl ca certificates for secure pem sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT c_rehash fi -sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT curl -o /tmp/docker.gpg -fsSL https://download.docker.com/linux/debian/gpg -sudo LANG=C chroot $FILESYSTEM_ROOT apt-key add /tmp/docker.gpg -sudo LANG=C chroot $FILESYSTEM_ROOT rm /tmp/docker.gpg +sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT curl -o /tmp/docker.asc -fsSL https://download.docker.com/linux/debian/gpg +sudo LANG=C chroot $FILESYSTEM_ROOT mv /tmp/docker.asc /etc/apt/trusted.gpg.d/ sudo LANG=C chroot $FILESYSTEM_ROOT add-apt-repository \ "deb [arch=$CONFIGURED_ARCH] https://download.docker.com/linux/debian $IMAGE_DISTRO stable" sudo LANG=C chroot $FILESYSTEM_ROOT apt-get update -if dpkg --compare-versions ${DOCKER_VERSION} ge "18.09"; then - sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install docker-ce=${DOCKER_VERSION} docker-ce-cli=${DOCKER_VERSION} -else - sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install docker-ce=${DOCKER_VERSION} -fi +sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install docker-ce=${DOCKER_VERSION} docker-ce-cli=${DOCKER_VERSION} containerd.io=${CONTAINERD_IO_VERSION} # Uninstall 'python3-gi' installed as part of 'software-properties-common' to remove debian version of 'PyGObject' # pip version of 'PyGObject' will be installed during installation of 'sonic-host-services' @@ -271,8 +267,6 @@ fi sudo mkdir -p $FILESYSTEM_ROOT/etc/systemd/system/docker.service.d/ ## Note: $_ means last argument of last command sudo cp files/docker/docker.service.conf $_ -## Fix systemd race between docker and containerd -sudo sed -i '/After=/s/$/ containerd.service/' $FILESYSTEM_ROOT/lib/systemd/system/docker.service ## Create default user ## Note: user should be in the group with the same name, and also in sudo/docker/redis groups diff --git a/sonic-slave-bullseye/Dockerfile.j2 b/sonic-slave-bullseye/Dockerfile.j2 index 2c3224999a19..3e69075a0d05 100644 --- a/sonic-slave-bullseye/Dockerfile.j2 +++ b/sonic-slave-bullseye/Dockerfile.j2 @@ -504,7 +504,7 @@ RUN add-apt-repository \ $(lsb_release -cs) \ stable" RUN apt-get update -RUN apt-get install -y docker-ce=5:20.10.7~3-0~debian-bullseye docker-ce-cli=5:20.10.7~3-0~debian-bullseye +RUN apt-get install -y docker-ce=5:20.10.14~3-0~debian-bullseye docker-ce-cli=5:20.10.14~3-0~debian-bullseye containerd.io=1.5.11-1 RUN echo "DOCKER_OPTS=\"--experimental --storage-driver=vfs {{ DOCKER_EXTRA_OPTS }}\"" >> /etc/default/docker RUN update-alternatives --set iptables /usr/sbin/iptables-legacy From bc305283417a1c305bce4035547191e1d480c1d5 Mon Sep 17 00:00:00 2001 From: Kalimuthu-Velappan <53821802+Kalimuthu-Velappan@users.noreply.github.com> Date: Thu, 28 Apr 2022 06:09:37 +0530 Subject: [PATCH 131/251] Parallel building of sonic dockers using native dockerd(dood). (#10352) Currently, the build dockers are created as a user dockers(docker-base-stretch-, etc) that are specific to each user. But the sonic dockers (docker-database, docker-swss, etc) are created with a fixed docker name and common to all the users. docker-database:latest docker-swss:latest When multiple builds are triggered on the same build server that creates parallel building issue because all the build jobs are trying to create the same docker with latest tag. This happens only when sonic dockers are built using native host dockerd for sonic docker image creation. This patch creates all sonic dockers as user sonic dockers and then, while saving and loading the user sonic dockers, it rename the user sonic dockers into correct sonic dockers with tag as latest. docker-database:latest <== SAVE/LOAD ==> docker-database-:tag The user sonic docker names are derived from 'DOCKER_USERNAME and DOCKER_USERTAG' make env variable and using Jinja template, it replaces the FROM docker name with correct user sonic docker name for loading and saving the docker image. --- Makefile | 3 +- Makefile.work | 47 ++++++++++- .../Dockerfile.j2 | 2 +- .../docker-config-engine-buster/Dockerfile.j2 | 2 +- .../Dockerfile.j2 | 2 +- dockers/docker-config-engine/Dockerfile.j2 | 2 +- dockers/docker-database/Dockerfile.j2 | 2 +- dockers/docker-dhcp-relay/Dockerfile.j2 | 2 +- dockers/docker-fpm-frr/Dockerfile.j2 | 2 +- dockers/docker-fpm-gobgp/Dockerfile.j2 | 2 +- dockers/docker-iccpd/Dockerfile.j2 | 2 +- dockers/docker-lldp/Dockerfile.j2 | 2 +- dockers/docker-macsec/Dockerfile.j2 | 2 +- dockers/docker-mux/Dockerfile.j2 | 2 +- dockers/docker-nat/Dockerfile.j2 | 2 +- dockers/docker-orchagent/Dockerfile.j2 | 2 +- dockers/docker-pde/Dockerfile.j2 | 2 +- dockers/docker-platform-monitor/Dockerfile.j2 | 2 +- dockers/docker-ptf-sai/Dockerfile.j2 | 2 +- .../docker-router-advertiser/Dockerfile.j2 | 2 +- dockers/docker-sflow/Dockerfile.j2 | 2 +- dockers/docker-snmp/Dockerfile.j2 | 2 +- .../docker-sonic-mgmt-framework/Dockerfile.j2 | 2 +- dockers/docker-sonic-p4rt/Dockerfile.j2 | 2 +- dockers/docker-sonic-restapi/Dockerfile.j2 | 2 +- .../docker-sonic-sdk-buildenv/Dockerfile.j2 | 2 +- dockers/docker-sonic-sdk/Dockerfile.j2 | 2 +- dockers/docker-sonic-telemetry/Dockerfile.j2 | 2 +- .../docker-swss-layer-buster/Dockerfile.j2 | 2 +- dockers/docker-teamd/Dockerfile.j2 | 2 +- .../docker-syncd-bfn-rpc/Dockerfile.j2 | 2 +- .../barefoot/docker-syncd-bfn/Dockerfile.j2 | 2 +- .../docker-saiserver-brcm/Dockerfile.j2 | 2 +- .../docker-syncd-brcm-dnx-rpc/Dockerfile.j2 | 2 +- .../docker-syncd-brcm-dnx/Dockerfile.j2 | 2 +- .../docker-syncd-brcm-rpc/Dockerfile.j2 | 2 +- .../broadcom/docker-syncd-brcm/Dockerfile.j2 | 2 +- .../docker-syncd-cavm-rpc/Dockerfile.j2 | 2 +- .../cavium/docker-syncd-cavm/Dockerfile.j2 | 2 +- .../docker-saiserver-centec/Dockerfile.j2 | 2 +- .../docker-syncd-centec-rpc/Dockerfile.j2 | 2 +- .../docker-syncd-centec/Dockerfile.j2 | 2 +- .../docker-saiserver-centec/Dockerfile.j2 | 2 +- .../docker-syncd-centec-rpc/Dockerfile.j2 | 2 +- .../centec/docker-syncd-centec/Dockerfile.j2 | 2 +- .../docker-gbsyncd-credo/Dockerfile.j2 | 2 +- .../docker-syncd-invm-rpc/Dockerfile.j2 | 2 +- .../innovium/docker-syncd-invm/Dockerfile.j2 | 2 +- .../docker-syncd-mrvl-rpc/Dockerfile.j2 | 2 +- .../docker-syncd-mrvl/Dockerfile.j2 | 2 +- .../docker-syncd-mrvl-rpc/Dockerfile.j2 | 2 +- .../docker-syncd-mrvl/Dockerfile.j2 | 2 +- .../docker-syncd-mrvl-rpc/Dockerfile.j2 | 2 +- .../marvell/docker-syncd-mrvl/Dockerfile.j2 | 2 +- .../docker-saiserver-mlnx/Dockerfile.j2 | 2 +- .../docker-syncd-mlnx-rpc/Dockerfile.j2 | 2 +- .../mellanox/docker-syncd-mlnx/Dockerfile.j2 | 2 +- .../docker-syncd-nephos-rpc/Dockerfile.j2 | 2 +- .../nephos/docker-syncd-nephos/Dockerfile.j2 | 2 +- platform/p4/docker-sonic-p4/Dockerfile.j2 | 2 +- platform/vs/docker-gbsyncd-vs/Dockerfile.j2 | 2 +- platform/vs/docker-sonic-vs/Dockerfile.j2 | 2 +- platform/vs/docker-syncd-vs/Dockerfile.j2 | 2 +- rules/config | 5 +- slave.mk | 84 ++++++++++++++++--- 65 files changed, 185 insertions(+), 76 deletions(-) diff --git a/Makefile b/Makefile index ace13582cbef..af3d7086ec8e 100644 --- a/Makefile +++ b/Makefile @@ -40,6 +40,7 @@ endif ifeq ($(NOBULLSEYE), 0) BLDENV=bullseye make -f Makefile.work $@ endif + BLDENV=bullseye make -f Makefile.work docker-cleanup jessie: @echo "+++ Making $@ +++" @@ -83,7 +84,7 @@ $(PLATFORM_PATH): configure : $(PLATFORM_PATH) $(call make_work, $@) -clean reset showtag sonic-slave-build sonic-slave-bash : +clean reset showtag docker-cleanup sonic-slave-build sonic-slave-bash : $(call make_work, $@) # Freeze the versions, see more detail options: scripts/versions_manager.py freeze -h diff --git a/Makefile.work b/Makefile.work index a5ecab1ab58b..cc404b9d7184 100644 --- a/Makefile.work +++ b/Makefile.work @@ -90,6 +90,7 @@ $(shell rm -f .screen) MAKEFLAGS += -B CONFIGURED_ARCH := $(shell [ -f .arch ] && cat .arch || echo $(PLATFORM_ARCH)) +CONFIGURED_PLATFORM = $(if $(PLATFORM),$(PLATFORM),$(shell cat .platform 2>/dev/null)) ifeq ($(CONFIGURED_ARCH),) override CONFIGURED_ARCH = amd64 endif @@ -149,7 +150,9 @@ $(shell BUILD_SLAVE=y DEFAULT_CONTAINER_REGISTRY=$(DEFAULT_CONTAINER_REGISTRY) s # Add the versions in the tag, if the version change, need to rebuild the slave SLAVE_BASE_TAG = $(shell cat $(SLAVE_DIR)/Dockerfile $(SLAVE_DIR)/buildinfo/versions/versions-* src/sonic-build-hooks/hooks/* | sha1sum | awk '{print substr($$1,0,11);}') -SLAVE_TAG = $(shell cat $(SLAVE_DIR)/Dockerfile.user $(SLAVE_DIR)/Dockerfile $(SLAVE_DIR)/buildinfo/versions/versions-* | sha1sum | awk '{print substr($$1,0,11);}') +# Calculate the slave TAG based on $(USER)/$(PWD)/$(CONFIGURED_PLATFORM) to get unique SHA ID +SLAVE_TAG = $(shell (cat $(SLAVE_DIR)/Dockerfile.user $(SLAVE_DIR)/Dockerfile $(SLAVE_DIR)/buildinfo/versions/versions-* .git/HEAD && echo $(USER)/$(PWD)/$(CONFIGURED_PLATFORM)) \ + | sha1sum | awk '{print substr($$1,0,11);}') OVERLAY_MODULE_CHECK := \ lsmod | grep -q "^overlay " &>/dev/null || \ @@ -159,6 +162,14 @@ OVERLAY_MODULE_CHECK := \ BUILD_TIMESTAMP := $(shell date +%Y%m%d\.%H%M%S) +# Create separate Docker lockfiles for saving vs. loading an image. +ifeq ($(DOCKER_LOCKDIR),) +override DOCKER_LOCKDIR := /tmp/docklock +endif +DOCKER_LOCKFILE_SAVE := $(DOCKER_LOCKDIR)/docker_save.lock +$(shell mkdir -m 0777 -p $(DOCKER_LOCKDIR)) +$(shell [ -f $(DOCKER_LOCKFILE_SAVE) ] || (touch $(DOCKER_LOCKFILE_SAVE) && chmod 0777 $(DOCKER_LOCKFILE_SAVE))) + ifeq ($(DOCKER_BUILDER_MOUNT),) override DOCKER_BUILDER_MOUNT := "$(PWD):/sonic" endif @@ -169,6 +180,7 @@ endif DOCKER_RUN := docker run --rm=true --privileged --init \ -v $(DOCKER_BUILDER_MOUNT) \ + -v "$(DOCKER_LOCKDIR):$(DOCKER_LOCKDIR)" \ -w $(DOCKER_BUILDER_WORKDIR) \ -e "http_proxy=$(http_proxy)" \ -e "https_proxy=$(https_proxy)" \ @@ -199,6 +211,30 @@ ifneq ($(SIGNING_CERT),) endif endif +# User name and tag for "docker-*" images created by native dockerd mode. +ifeq ($(strip $(SONIC_CONFIG_USE_NATIVE_DOCKERD_FOR_BUILD)),y) +DOCKER_USERNAME = $(USER_LC) +DOCKER_USERTAG = $(SLAVE_TAG) +else +DOCKER_USERNAME = sonic +DOCKER_USERTAG = latest +endif + +# Define canned sequence to clean up Docker image cache. +# - These are the remnants from building the runtime Docker images using native (host) Docker daemon. +# - Image naming convention differs on a shared build system vs. non-shared. +# $(docker-image-cleanup) +ifeq ($(SONIC_CONFIG_USE_NATIVE_DOCKERD_FOR_BUILD),y) +define docker-image-cleanup + @for i in $(shell docker images --quiet --filter 'dangling=true') ; do (docker rmi -f $$i &> /dev/null || true) ; done + @for i in $(shell docker images --quiet docker-*$(DOCKER_USERNAME):$(DOCKER_USERTAG)) ; do (docker rmi -f $$i &> /dev/null || true) ; done +endef +else +define docker-image-cleanup + @: +endef +endif + ifeq ($(SONIC_CONFIG_USE_NATIVE_DOCKERD_FOR_BUILD), y) ifneq ($(MULTIARCH_QEMU_ENVIRON), y) DOCKER_RUN += -v /var/run/docker.sock:/var/run/docker.sock @@ -274,6 +310,7 @@ SONIC_BUILD_INSTRUCTION := make \ BUILD_NUMBER=$(BUILD_NUMBER) \ BUILD_TIMESTAMP=$(BUILD_TIMESTAMP) \ SONIC_IMAGE_VERSION=$(SONIC_IMAGE_VERSION) \ + SLAVE_TAG=$(SLAVE_TAG) \ ENABLE_DHCP_GRAPH_SERVICE=$(ENABLE_DHCP_GRAPH_SERVICE) \ ENABLE_ZTP=$(ENABLE_ZTP) \ INCLUDE_PDE=$(INCLUDE_PDE) \ @@ -298,6 +335,11 @@ SONIC_BUILD_INSTRUCTION := make \ HTTP_PROXY=$(http_proxy) \ HTTPS_PROXY=$(https_proxy) \ NO_PROXY=$(no_proxy) \ + DOCKER_USERNAME=$(DOCKER_USERNAME) \ + DOCKER_USERTAG=$(DOCKER_USERTAG) \ + DOCKER_LOCKDIR=$(DOCKER_LOCKDIR) \ + DOCKER_LOCKFILE_SAVE=$(DOCKER_LOCKFILE_SAVE) \ + SONIC_CONFIG_USE_NATIVE_DOCKERD_FOR_BUILD=$(SONIC_CONFIG_USE_NATIVE_DOCKERD_FOR_BUILD) \ SONIC_INCLUDE_SYSTEM_TELEMETRY=$(INCLUDE_SYSTEM_TELEMETRY) \ INCLUDE_DHCP_RELAY=$(INCLUDE_DHCP_RELAY) \ SONIC_INCLUDE_RESTAPI=$(INCLUDE_RESTAPI) \ @@ -352,6 +394,9 @@ else @$(DOCKER_RUN) $(SLAVE_IMAGE):$(SLAVE_TAG) bash -c "$(SONIC_BUILD_INSTRUCTION) $@; scripts/collect_build_version_files.sh \$$?" endif +docker-cleanup: + $(docker-image-cleanup) + sonic-build-hooks: @pushd src/sonic-build-hooks; TRUSTED_GPG_URLS=$(TRUSTED_GPG_URLS) make all; popd @cp src/sonic-build-hooks/buildinfo/sonic-build-hooks* $(SLAVE_DIR)/buildinfo diff --git a/dockers/docker-config-engine-bullseye/Dockerfile.j2 b/dockers/docker-config-engine-bullseye/Dockerfile.j2 index 9d0ca97c7604..f7e0de09b9f6 100644 --- a/dockers/docker-config-engine-bullseye/Dockerfile.j2 +++ b/dockers/docker-config-engine-bullseye/Dockerfile.j2 @@ -1,5 +1,5 @@ {% from "dockers/dockerfile-macros.j2" import install_debian_packages, install_python_wheels, copy_files %} -FROM docker-base-bullseye +FROM docker-base-bullseye-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ## Make apt-get non-interactive ENV DEBIAN_FRONTEND=noninteractive diff --git a/dockers/docker-config-engine-buster/Dockerfile.j2 b/dockers/docker-config-engine-buster/Dockerfile.j2 index 1e7a64bfcd36..77ea27e00ee3 100644 --- a/dockers/docker-config-engine-buster/Dockerfile.j2 +++ b/dockers/docker-config-engine-buster/Dockerfile.j2 @@ -1,5 +1,5 @@ {% from "dockers/dockerfile-macros.j2" import install_debian_packages, install_python_wheels, copy_files %} -FROM docker-base-buster +FROM docker-base-buster-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ## Make apt-get non-interactive ENV DEBIAN_FRONTEND=noninteractive diff --git a/dockers/docker-config-engine-stretch/Dockerfile.j2 b/dockers/docker-config-engine-stretch/Dockerfile.j2 index 813f41bc296b..a0d5eaedde49 100644 --- a/dockers/docker-config-engine-stretch/Dockerfile.j2 +++ b/dockers/docker-config-engine-stretch/Dockerfile.j2 @@ -1,5 +1,5 @@ {% from "dockers/dockerfile-macros.j2" import install_debian_packages, install_python_wheels, copy_files %} -FROM docker-base-stretch +FROM docker-base-stretch:-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ## Make apt-get non-interactive ENV DEBIAN_FRONTEND=noninteractive diff --git a/dockers/docker-config-engine/Dockerfile.j2 b/dockers/docker-config-engine/Dockerfile.j2 index 8790ba67d7f9..ccc4290b951b 100644 --- a/dockers/docker-config-engine/Dockerfile.j2 +++ b/dockers/docker-config-engine/Dockerfile.j2 @@ -1,4 +1,4 @@ -FROM docker-base +FROM docker-base-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ## Make apt-get non-interactive ENV DEBIAN_FRONTEND=noninteractive diff --git a/dockers/docker-database/Dockerfile.j2 b/dockers/docker-database/Dockerfile.j2 index f75d258222a0..e1aa3c4bcd7f 100644 --- a/dockers/docker-database/Dockerfile.j2 +++ b/dockers/docker-database/Dockerfile.j2 @@ -1,5 +1,5 @@ {% from "dockers/dockerfile-macros.j2" import install_debian_packages, install_python_wheels, copy_files %} -FROM docker-config-engine-bullseye +FROM docker-config-engine-bullseye-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ARG docker_container_name RUN [ -f /etc/rsyslog.conf ] && sed -ri "s/%syslogtag%/$docker_container_name#%syslogtag%/;" /etc/rsyslog.conf diff --git a/dockers/docker-dhcp-relay/Dockerfile.j2 b/dockers/docker-dhcp-relay/Dockerfile.j2 index f214edc8516c..9a5eb23c38a4 100644 --- a/dockers/docker-dhcp-relay/Dockerfile.j2 +++ b/dockers/docker-dhcp-relay/Dockerfile.j2 @@ -1,5 +1,5 @@ {% from "dockers/dockerfile-macros.j2" import install_debian_packages, install_python_wheels, copy_files %} -FROM docker-config-engine-bullseye +FROM docker-config-engine-bullseye-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ARG docker_container_name ARG image_version diff --git a/dockers/docker-fpm-frr/Dockerfile.j2 b/dockers/docker-fpm-frr/Dockerfile.j2 index f392d4d3a7a6..f885180c37d4 100644 --- a/dockers/docker-fpm-frr/Dockerfile.j2 +++ b/dockers/docker-fpm-frr/Dockerfile.j2 @@ -1,5 +1,5 @@ {% from "dockers/dockerfile-macros.j2" import install_debian_packages, install_python_wheels, copy_files %} -FROM docker-swss-layer-buster +FROM docker-swss-layer-buster-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ARG docker_container_name ARG frr_user_uid diff --git a/dockers/docker-fpm-gobgp/Dockerfile.j2 b/dockers/docker-fpm-gobgp/Dockerfile.j2 index 65b104e43b26..89f7e9a92a9e 100644 --- a/dockers/docker-fpm-gobgp/Dockerfile.j2 +++ b/dockers/docker-fpm-gobgp/Dockerfile.j2 @@ -1,4 +1,4 @@ -FROM docker-fpm-quagga +FROM docker-fpm-quagga-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ## Make apt-get non-interactive ENV DEBIAN_FRONTEND=noninteractive diff --git a/dockers/docker-iccpd/Dockerfile.j2 b/dockers/docker-iccpd/Dockerfile.j2 index 51cc306bdd55..95a55159e496 100644 --- a/dockers/docker-iccpd/Dockerfile.j2 +++ b/dockers/docker-iccpd/Dockerfile.j2 @@ -1,5 +1,5 @@ {% from "dockers/dockerfile-macros.j2" import install_debian_packages, install_python_wheels, copy_files %} -FROM docker-config-engine-buster +FROM docker-config-engine-buster-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ARG docker_container_name RUN [ -f /etc/rsyslog.conf ] && sed -ri "s/%syslogtag%/$docker_container_name#%syslogtag%/;" /etc/rsyslog.conf diff --git a/dockers/docker-lldp/Dockerfile.j2 b/dockers/docker-lldp/Dockerfile.j2 index a1c7a1c1bee2..496af3e11601 100644 --- a/dockers/docker-lldp/Dockerfile.j2 +++ b/dockers/docker-lldp/Dockerfile.j2 @@ -1,5 +1,5 @@ {% from "dockers/dockerfile-macros.j2" import install_debian_packages, install_python_wheels, copy_files %} -FROM docker-config-engine-buster +FROM docker-config-engine-buster-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ARG docker_container_name ARG image_version diff --git a/dockers/docker-macsec/Dockerfile.j2 b/dockers/docker-macsec/Dockerfile.j2 index 586983533e77..481e79aa02d0 100644 --- a/dockers/docker-macsec/Dockerfile.j2 +++ b/dockers/docker-macsec/Dockerfile.j2 @@ -1,5 +1,5 @@ {% from "dockers/dockerfile-macros.j2" import install_debian_packages, install_python_wheels, copy_files %} -FROM docker-config-engine-bullseye +FROM docker-config-engine-bullseye-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ARG docker_container_name RUN [ -f /etc/rsyslog.conf ] && sed -ri "s/%syslogtag%/$docker_container_name#%syslogtag%/;" /etc/rsyslog.conf diff --git a/dockers/docker-mux/Dockerfile.j2 b/dockers/docker-mux/Dockerfile.j2 index f7e1ee3b4454..06e89c3ecf2d 100755 --- a/dockers/docker-mux/Dockerfile.j2 +++ b/dockers/docker-mux/Dockerfile.j2 @@ -1,5 +1,5 @@ {% from "dockers/dockerfile-macros.j2" import install_debian_packages, install_python_wheels, copy_files %} -FROM docker-config-engine-bullseye +FROM docker-config-engine-bullseye-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ARG docker_container_name RUN [ -f /etc/rsyslog.conf ] && sed -ri "s/%syslogtag%/$docker_container_name#%syslogtag%/;" /etc/rsyslog.conf diff --git a/dockers/docker-nat/Dockerfile.j2 b/dockers/docker-nat/Dockerfile.j2 index 066de0a70ed0..04b2883551c3 100644 --- a/dockers/docker-nat/Dockerfile.j2 +++ b/dockers/docker-nat/Dockerfile.j2 @@ -1,5 +1,5 @@ {% from "dockers/dockerfile-macros.j2" import install_debian_packages, copy_files %} -FROM docker-swss-layer-buster +FROM docker-swss-layer-buster-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ARG docker_container_name RUN [ -f /etc/rsyslog.conf ] && sed -ri "s/%syslogtag%/$docker_container_name#%syslogtag%/;" /etc/rsyslog.conf diff --git a/dockers/docker-orchagent/Dockerfile.j2 b/dockers/docker-orchagent/Dockerfile.j2 index ea4e0abbc2ef..adb084cf2271 100755 --- a/dockers/docker-orchagent/Dockerfile.j2 +++ b/dockers/docker-orchagent/Dockerfile.j2 @@ -1,5 +1,5 @@ {% from "dockers/dockerfile-macros.j2" import install_debian_packages, install_python_wheels, copy_files %} -FROM docker-swss-layer-buster +FROM docker-swss-layer-buster-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ARG docker_container_name RUN [ -f /etc/rsyslog.conf ] && sed -ri "s/%syslogtag%/$docker_container_name#%syslogtag%/;" /etc/rsyslog.conf diff --git a/dockers/docker-pde/Dockerfile.j2 b/dockers/docker-pde/Dockerfile.j2 index 0711e563c259..a6e7e62c8647 100644 --- a/dockers/docker-pde/Dockerfile.j2 +++ b/dockers/docker-pde/Dockerfile.j2 @@ -1,4 +1,4 @@ -FROM {{ docker_pde_load_image }} +FROM docker-config-engine-buster-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ARG docker_container_name ENV PYTHONPATH=/usr/share/sonic/platform diff --git a/dockers/docker-platform-monitor/Dockerfile.j2 b/dockers/docker-platform-monitor/Dockerfile.j2 index 4f5e941dd92a..739933aaf1e5 100755 --- a/dockers/docker-platform-monitor/Dockerfile.j2 +++ b/dockers/docker-platform-monitor/Dockerfile.j2 @@ -1,5 +1,5 @@ {% from "dockers/dockerfile-macros.j2" import install_debian_packages, install_python_wheels, copy_files %} -FROM docker-config-engine-buster +FROM docker-config-engine-buster-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ARG docker_container_name ARG image_version diff --git a/dockers/docker-ptf-sai/Dockerfile.j2 b/dockers/docker-ptf-sai/Dockerfile.j2 index 1e284bd368ea..d68b39abb01e 100644 --- a/dockers/docker-ptf-sai/Dockerfile.j2 +++ b/dockers/docker-ptf-sai/Dockerfile.j2 @@ -1,5 +1,5 @@ {% from "dockers/dockerfile-macros.j2" import install_debian_packages, install_python_wheels, copy_files %} -FROM docker-ptf +FROM docker-ptf-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} # Make apt-get non-interactive ENV DEBIAN_FRONTEND=noninteractive diff --git a/dockers/docker-router-advertiser/Dockerfile.j2 b/dockers/docker-router-advertiser/Dockerfile.j2 index 44e2430077cb..d36eb7efe8b1 100644 --- a/dockers/docker-router-advertiser/Dockerfile.j2 +++ b/dockers/docker-router-advertiser/Dockerfile.j2 @@ -1,5 +1,5 @@ {% from "dockers/dockerfile-macros.j2" import install_debian_packages, install_python_wheels, copy_files %} -FROM docker-config-engine-bullseye +FROM docker-config-engine-bullseye-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ARG docker_container_name ARG image_version diff --git a/dockers/docker-sflow/Dockerfile.j2 b/dockers/docker-sflow/Dockerfile.j2 index c8d0757d5fc5..eb97f5708bf7 100644 --- a/dockers/docker-sflow/Dockerfile.j2 +++ b/dockers/docker-sflow/Dockerfile.j2 @@ -1,5 +1,5 @@ {% from "dockers/dockerfile-macros.j2" import install_debian_packages, install_python_wheels, copy_files %} -FROM docker-swss-layer-buster +FROM docker-swss-layer-buster-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ARG docker_container_name RUN [ -f /etc/rsyslog.conf ] && sed -ri "s/%syslogtag%/$docker_container_name#%syslogtag%/;" /etc/rsyslog.conf diff --git a/dockers/docker-snmp/Dockerfile.j2 b/dockers/docker-snmp/Dockerfile.j2 index 528189c2014f..944a8ed41385 100644 --- a/dockers/docker-snmp/Dockerfile.j2 +++ b/dockers/docker-snmp/Dockerfile.j2 @@ -1,5 +1,5 @@ {% from "dockers/dockerfile-macros.j2" import install_debian_packages, install_python3_wheels, copy_files %} -FROM docker-config-engine-buster +FROM docker-config-engine-buster-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ARG docker_container_name ARG image_version diff --git a/dockers/docker-sonic-mgmt-framework/Dockerfile.j2 b/dockers/docker-sonic-mgmt-framework/Dockerfile.j2 index 937c5368483a..823a2c7ff4bf 100644 --- a/dockers/docker-sonic-mgmt-framework/Dockerfile.j2 +++ b/dockers/docker-sonic-mgmt-framework/Dockerfile.j2 @@ -1,4 +1,4 @@ -FROM docker-config-engine-buster +FROM docker-config-engine-buster-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ARG docker_container_name RUN [ -f /etc/rsyslog.conf ] && sed -ri "s/%syslogtag%/$docker_container_name#%syslogtag%/;" /etc/rsyslog.conf diff --git a/dockers/docker-sonic-p4rt/Dockerfile.j2 b/dockers/docker-sonic-p4rt/Dockerfile.j2 index 8708518340c8..13713980e1e7 100644 --- a/dockers/docker-sonic-p4rt/Dockerfile.j2 +++ b/dockers/docker-sonic-p4rt/Dockerfile.j2 @@ -1,5 +1,5 @@ {% from "dockers/dockerfile-macros.j2" import install_debian_packages, install_python_wheels, copy_files %} -FROM docker-config-engine-bullseye +FROM docker-config-engine-bullseye-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ARG docker_container_name ARG git_commit diff --git a/dockers/docker-sonic-restapi/Dockerfile.j2 b/dockers/docker-sonic-restapi/Dockerfile.j2 index 43bc86ee6b68..029f5ec813d7 100644 --- a/dockers/docker-sonic-restapi/Dockerfile.j2 +++ b/dockers/docker-sonic-restapi/Dockerfile.j2 @@ -1,5 +1,5 @@ {% from "dockers/dockerfile-macros.j2" import install_debian_packages, install_python_wheels, copy_files %} -FROM docker-config-engine-bullseye +FROM docker-config-engine-bullseye-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ARG docker_container_name RUN [ -f /etc/rsyslog.conf ] && sed -ri "s/%syslogtag%/$docker_container_name#%syslogtag%/;" /etc/rsyslog.conf diff --git a/dockers/docker-sonic-sdk-buildenv/Dockerfile.j2 b/dockers/docker-sonic-sdk-buildenv/Dockerfile.j2 index 27fa08ec5b7a..ce18bb54f37f 100755 --- a/dockers/docker-sonic-sdk-buildenv/Dockerfile.j2 +++ b/dockers/docker-sonic-sdk-buildenv/Dockerfile.j2 @@ -1,5 +1,5 @@ {% from "dockers/dockerfile-macros.j2" import install_debian_packages, install_python_wheels, copy_files %} -FROM sonic-sdk +FROM sonic-sdk-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ARG base_os_version ARG docker_database_version diff --git a/dockers/docker-sonic-sdk/Dockerfile.j2 b/dockers/docker-sonic-sdk/Dockerfile.j2 index 4218a9b702a9..dc28822cfd26 100755 --- a/dockers/docker-sonic-sdk/Dockerfile.j2 +++ b/dockers/docker-sonic-sdk/Dockerfile.j2 @@ -1,5 +1,5 @@ {% from "dockers/dockerfile-macros.j2" import install_debian_packages, install_python_wheels, copy_files %} -FROM docker-config-engine-buster +FROM docker-config-engine-buster-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} # Make apt-get non-interactive ENV DEBIAN_FRONTEND=noninteractive diff --git a/dockers/docker-sonic-telemetry/Dockerfile.j2 b/dockers/docker-sonic-telemetry/Dockerfile.j2 index a7a45ab48c22..e9b01f751b85 100644 --- a/dockers/docker-sonic-telemetry/Dockerfile.j2 +++ b/dockers/docker-sonic-telemetry/Dockerfile.j2 @@ -1,5 +1,5 @@ {% from "dockers/dockerfile-macros.j2" import install_debian_packages, install_python_wheels, copy_files %} -FROM docker-config-engine-bullseye +FROM docker-config-engine-bullseye-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ARG docker_container_name ARG image_version diff --git a/dockers/docker-swss-layer-buster/Dockerfile.j2 b/dockers/docker-swss-layer-buster/Dockerfile.j2 index e8dcb9472a26..36f085936dcf 100644 --- a/dockers/docker-swss-layer-buster/Dockerfile.j2 +++ b/dockers/docker-swss-layer-buster/Dockerfile.j2 @@ -1,5 +1,5 @@ {% from "dockers/dockerfile-macros.j2" import install_debian_packages, install_python_wheels, copy_files %} -FROM docker-config-engine-buster +FROM docker-config-engine-buster-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ## Make apt-get non-interactive ENV DEBIAN_FRONTEND=noninteractive diff --git a/dockers/docker-teamd/Dockerfile.j2 b/dockers/docker-teamd/Dockerfile.j2 index e02000abb1c6..7bcafb60cff0 100644 --- a/dockers/docker-teamd/Dockerfile.j2 +++ b/dockers/docker-teamd/Dockerfile.j2 @@ -1,5 +1,5 @@ {% from "dockers/dockerfile-macros.j2" import install_debian_packages, install_python_wheels, copy_files %} -FROM docker-swss-layer-buster +FROM docker-swss-layer-buster-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ARG docker_container_name RUN [ -f /etc/rsyslog.conf ] && sed -ri "s/%syslogtag%/$docker_container_name#%syslogtag%/;" /etc/rsyslog.conf diff --git a/platform/barefoot/docker-syncd-bfn-rpc/Dockerfile.j2 b/platform/barefoot/docker-syncd-bfn-rpc/Dockerfile.j2 index 5e5f5f166e5e..e520c55f9c39 100644 --- a/platform/barefoot/docker-syncd-bfn-rpc/Dockerfile.j2 +++ b/platform/barefoot/docker-syncd-bfn-rpc/Dockerfile.j2 @@ -1,4 +1,4 @@ -FROM docker-syncd-bfn +FROM docker-syncd-bfn-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ## Make apt-get non-interactive ENV DEBIAN_FRONTEND=noninteractive diff --git a/platform/barefoot/docker-syncd-bfn/Dockerfile.j2 b/platform/barefoot/docker-syncd-bfn/Dockerfile.j2 index e085ef130aed..8fa30bc29874 100755 --- a/platform/barefoot/docker-syncd-bfn/Dockerfile.j2 +++ b/platform/barefoot/docker-syncd-bfn/Dockerfile.j2 @@ -1,4 +1,4 @@ -FROM docker-config-engine-buster +FROM docker-config-engine-buster-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ARG docker_container_name diff --git a/platform/broadcom/docker-saiserver-brcm/Dockerfile.j2 b/platform/broadcom/docker-saiserver-brcm/Dockerfile.j2 index 2fe765febcf3..d77eb46b6aa3 100644 --- a/platform/broadcom/docker-saiserver-brcm/Dockerfile.j2 +++ b/platform/broadcom/docker-saiserver-brcm/Dockerfile.j2 @@ -1,5 +1,5 @@ {% from "dockers/dockerfile-macros.j2" import install_debian_packages %} -FROM docker-config-engine-buster +FROM docker-config-engine-buster-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ARG docker_container_name RUN [ -f /etc/rsyslog.conf ] && sed -ri "s/%syslogtag%/$docker_container_name#%syslogtag%/;" /etc/rsyslog.conf diff --git a/platform/broadcom/docker-syncd-brcm-dnx-rpc/Dockerfile.j2 b/platform/broadcom/docker-syncd-brcm-dnx-rpc/Dockerfile.j2 index b2af1d98a33d..c476f2823211 100644 --- a/platform/broadcom/docker-syncd-brcm-dnx-rpc/Dockerfile.j2 +++ b/platform/broadcom/docker-syncd-brcm-dnx-rpc/Dockerfile.j2 @@ -1,4 +1,4 @@ -FROM docker-syncd-brcm-dnx +FROM docker-syncd-brcm-dnx-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ## Make apt-get non-interactive ENV DEBIAN_FRONTEND=noninteractive diff --git a/platform/broadcom/docker-syncd-brcm-dnx/Dockerfile.j2 b/platform/broadcom/docker-syncd-brcm-dnx/Dockerfile.j2 index e0085b42f4de..95d3db54b11e 100755 --- a/platform/broadcom/docker-syncd-brcm-dnx/Dockerfile.j2 +++ b/platform/broadcom/docker-syncd-brcm-dnx/Dockerfile.j2 @@ -1,5 +1,5 @@ {% from "dockers/dockerfile-macros.j2" import install_debian_packages %} -FROM docker-config-engine-buster +FROM docker-config-engine-buster-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ARG docker_container_name diff --git a/platform/broadcom/docker-syncd-brcm-rpc/Dockerfile.j2 b/platform/broadcom/docker-syncd-brcm-rpc/Dockerfile.j2 index b832fd58864f..6e5a3d6dadc5 100644 --- a/platform/broadcom/docker-syncd-brcm-rpc/Dockerfile.j2 +++ b/platform/broadcom/docker-syncd-brcm-rpc/Dockerfile.j2 @@ -1,4 +1,4 @@ -FROM docker-syncd-brcm +FROM docker-syncd-brcm-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ## Make apt-get non-interactive ENV DEBIAN_FRONTEND=noninteractive diff --git a/platform/broadcom/docker-syncd-brcm/Dockerfile.j2 b/platform/broadcom/docker-syncd-brcm/Dockerfile.j2 index a70e91bb60b8..e8f9c8c86a97 100755 --- a/platform/broadcom/docker-syncd-brcm/Dockerfile.j2 +++ b/platform/broadcom/docker-syncd-brcm/Dockerfile.j2 @@ -1,5 +1,5 @@ {% from "dockers/dockerfile-macros.j2" import install_debian_packages %} -FROM docker-config-engine-buster +FROM docker-config-engine-buster-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ARG docker_container_name diff --git a/platform/cavium/docker-syncd-cavm-rpc/Dockerfile.j2 b/platform/cavium/docker-syncd-cavm-rpc/Dockerfile.j2 index e9e9facef5ee..3c962f5da984 100644 --- a/platform/cavium/docker-syncd-cavm-rpc/Dockerfile.j2 +++ b/platform/cavium/docker-syncd-cavm-rpc/Dockerfile.j2 @@ -1,4 +1,4 @@ -FROM docker-syncd-cavm +FROM docker-syncd-cavm-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ## Make apt-get non-interactive ENV DEBIAN_FRONTEND=noninteractive diff --git a/platform/cavium/docker-syncd-cavm/Dockerfile.j2 b/platform/cavium/docker-syncd-cavm/Dockerfile.j2 index 8ac883e6293d..f60fa0fe5797 100755 --- a/platform/cavium/docker-syncd-cavm/Dockerfile.j2 +++ b/platform/cavium/docker-syncd-cavm/Dockerfile.j2 @@ -1,4 +1,4 @@ -FROM docker-config-engine +FROM docker-config-engine-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ARG docker_container_name diff --git a/platform/centec-arm64/docker-saiserver-centec/Dockerfile.j2 b/platform/centec-arm64/docker-saiserver-centec/Dockerfile.j2 index 264c8437973d..33941235bf90 100644 --- a/platform/centec-arm64/docker-saiserver-centec/Dockerfile.j2 +++ b/platform/centec-arm64/docker-saiserver-centec/Dockerfile.j2 @@ -1,4 +1,4 @@ -FROM docker-config-engine-buster +FROM docker-config-engine-buster-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ARG docker_container_name RUN [ -f /etc/rsyslog.conf ] && sed -ri "s/%syslogtag%/$docker_container_name#%syslogtag%/;" /etc/rsyslog.conf diff --git a/platform/centec-arm64/docker-syncd-centec-rpc/Dockerfile.j2 b/platform/centec-arm64/docker-syncd-centec-rpc/Dockerfile.j2 index a760c278396a..cfb888b9e5c4 100755 --- a/platform/centec-arm64/docker-syncd-centec-rpc/Dockerfile.j2 +++ b/platform/centec-arm64/docker-syncd-centec-rpc/Dockerfile.j2 @@ -1,4 +1,4 @@ -FROM docker-syncd-centec +FROM docker-syncd-centec-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ## Make apt-get non-interactive ENV DEBIAN_FRONTEND=noninteractive diff --git a/platform/centec-arm64/docker-syncd-centec/Dockerfile.j2 b/platform/centec-arm64/docker-syncd-centec/Dockerfile.j2 index 7f89c0c98698..046de960cd20 100755 --- a/platform/centec-arm64/docker-syncd-centec/Dockerfile.j2 +++ b/platform/centec-arm64/docker-syncd-centec/Dockerfile.j2 @@ -1,4 +1,4 @@ -FROM docker-config-engine-buster +FROM docker-config-engine-buster-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ARG docker_container_name diff --git a/platform/centec/docker-saiserver-centec/Dockerfile.j2 b/platform/centec/docker-saiserver-centec/Dockerfile.j2 index 264c8437973d..33941235bf90 100644 --- a/platform/centec/docker-saiserver-centec/Dockerfile.j2 +++ b/platform/centec/docker-saiserver-centec/Dockerfile.j2 @@ -1,4 +1,4 @@ -FROM docker-config-engine-buster +FROM docker-config-engine-buster-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ARG docker_container_name RUN [ -f /etc/rsyslog.conf ] && sed -ri "s/%syslogtag%/$docker_container_name#%syslogtag%/;" /etc/rsyslog.conf diff --git a/platform/centec/docker-syncd-centec-rpc/Dockerfile.j2 b/platform/centec/docker-syncd-centec-rpc/Dockerfile.j2 index a760c278396a..cfb888b9e5c4 100644 --- a/platform/centec/docker-syncd-centec-rpc/Dockerfile.j2 +++ b/platform/centec/docker-syncd-centec-rpc/Dockerfile.j2 @@ -1,4 +1,4 @@ -FROM docker-syncd-centec +FROM docker-syncd-centec-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ## Make apt-get non-interactive ENV DEBIAN_FRONTEND=noninteractive diff --git a/platform/centec/docker-syncd-centec/Dockerfile.j2 b/platform/centec/docker-syncd-centec/Dockerfile.j2 index 001e944bb85a..c1d122eeb9a0 100755 --- a/platform/centec/docker-syncd-centec/Dockerfile.j2 +++ b/platform/centec/docker-syncd-centec/Dockerfile.j2 @@ -1,4 +1,4 @@ -FROM docker-config-engine-buster +FROM docker-config-engine-buster-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ARG docker_container_name diff --git a/platform/components/docker-gbsyncd-credo/Dockerfile.j2 b/platform/components/docker-gbsyncd-credo/Dockerfile.j2 index 1b9631707cb6..98717c31e057 100644 --- a/platform/components/docker-gbsyncd-credo/Dockerfile.j2 +++ b/platform/components/docker-gbsyncd-credo/Dockerfile.j2 @@ -1,4 +1,4 @@ -FROM docker-config-engine-buster +FROM docker-config-engine-buster-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ARG docker_container_name RUN [ -f /etc/rsyslog.conf ] && sed -ri "s/%syslogtag%/$docker_container_name#%syslogtag%/;" /etc/rsyslog.conf diff --git a/platform/innovium/docker-syncd-invm-rpc/Dockerfile.j2 b/platform/innovium/docker-syncd-invm-rpc/Dockerfile.j2 index eea52e3398b8..33726548d008 100755 --- a/platform/innovium/docker-syncd-invm-rpc/Dockerfile.j2 +++ b/platform/innovium/docker-syncd-invm-rpc/Dockerfile.j2 @@ -1,4 +1,4 @@ -FROM docker-syncd-invm +FROM docker-syncd-invm-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ## Make apt-get non-interactive ENV DEBIAN_FRONTEND=noninteractive diff --git a/platform/innovium/docker-syncd-invm/Dockerfile.j2 b/platform/innovium/docker-syncd-invm/Dockerfile.j2 index 4bdc7a6ebef1..a3fd750d86da 100755 --- a/platform/innovium/docker-syncd-invm/Dockerfile.j2 +++ b/platform/innovium/docker-syncd-invm/Dockerfile.j2 @@ -1,4 +1,4 @@ -FROM docker-config-engine-stretch +FROM docker-config-engine-stretch-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ARG docker_container_name diff --git a/platform/marvell-arm64/docker-syncd-mrvl-rpc/Dockerfile.j2 b/platform/marvell-arm64/docker-syncd-mrvl-rpc/Dockerfile.j2 index 118be5e1c5f2..68670343bf37 100644 --- a/platform/marvell-arm64/docker-syncd-mrvl-rpc/Dockerfile.j2 +++ b/platform/marvell-arm64/docker-syncd-mrvl-rpc/Dockerfile.j2 @@ -1,4 +1,4 @@ -FROM docker-syncd-mrvl +FROM docker-syncd-mrvl-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ## Make apt-get non-interactive ENV DEBIAN_FRONTEND=noninteractive diff --git a/platform/marvell-arm64/docker-syncd-mrvl/Dockerfile.j2 b/platform/marvell-arm64/docker-syncd-mrvl/Dockerfile.j2 index b13346cd70c6..7ec04c49fc4b 100755 --- a/platform/marvell-arm64/docker-syncd-mrvl/Dockerfile.j2 +++ b/platform/marvell-arm64/docker-syncd-mrvl/Dockerfile.j2 @@ -1,5 +1,5 @@ {% from "dockers/dockerfile-macros.j2" import install_debian_packages %} -FROM docker-config-engine-buster +FROM docker-config-engine-buster-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ARG docker_container_name diff --git a/platform/marvell-armhf/docker-syncd-mrvl-rpc/Dockerfile.j2 b/platform/marvell-armhf/docker-syncd-mrvl-rpc/Dockerfile.j2 index 118be5e1c5f2..68670343bf37 100644 --- a/platform/marvell-armhf/docker-syncd-mrvl-rpc/Dockerfile.j2 +++ b/platform/marvell-armhf/docker-syncd-mrvl-rpc/Dockerfile.j2 @@ -1,4 +1,4 @@ -FROM docker-syncd-mrvl +FROM docker-syncd-mrvl-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ## Make apt-get non-interactive ENV DEBIAN_FRONTEND=noninteractive diff --git a/platform/marvell-armhf/docker-syncd-mrvl/Dockerfile.j2 b/platform/marvell-armhf/docker-syncd-mrvl/Dockerfile.j2 index b13346cd70c6..7ec04c49fc4b 100755 --- a/platform/marvell-armhf/docker-syncd-mrvl/Dockerfile.j2 +++ b/platform/marvell-armhf/docker-syncd-mrvl/Dockerfile.j2 @@ -1,5 +1,5 @@ {% from "dockers/dockerfile-macros.j2" import install_debian_packages %} -FROM docker-config-engine-buster +FROM docker-config-engine-buster-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ARG docker_container_name diff --git a/platform/marvell/docker-syncd-mrvl-rpc/Dockerfile.j2 b/platform/marvell/docker-syncd-mrvl-rpc/Dockerfile.j2 index 118be5e1c5f2..68670343bf37 100644 --- a/platform/marvell/docker-syncd-mrvl-rpc/Dockerfile.j2 +++ b/platform/marvell/docker-syncd-mrvl-rpc/Dockerfile.j2 @@ -1,4 +1,4 @@ -FROM docker-syncd-mrvl +FROM docker-syncd-mrvl-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ## Make apt-get non-interactive ENV DEBIAN_FRONTEND=noninteractive diff --git a/platform/marvell/docker-syncd-mrvl/Dockerfile.j2 b/platform/marvell/docker-syncd-mrvl/Dockerfile.j2 index cd9019febe4a..cb2f7eadb911 100755 --- a/platform/marvell/docker-syncd-mrvl/Dockerfile.j2 +++ b/platform/marvell/docker-syncd-mrvl/Dockerfile.j2 @@ -1,5 +1,5 @@ {% from "dockers/dockerfile-macros.j2" import install_debian_packages %} -FROM docker-config-engine-buster +FROM docker-config-engine-buster-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ARG docker_container_name diff --git a/platform/mellanox/docker-saiserver-mlnx/Dockerfile.j2 b/platform/mellanox/docker-saiserver-mlnx/Dockerfile.j2 index b356f145c9a4..7ad0355886e3 100644 --- a/platform/mellanox/docker-saiserver-mlnx/Dockerfile.j2 +++ b/platform/mellanox/docker-saiserver-mlnx/Dockerfile.j2 @@ -15,7 +15,7 @@ ## limitations under the License. ## {% from "dockers/dockerfile-macros.j2" import install_debian_packages %} -FROM docker-config-engine-buster +FROM docker-config-engine-buster-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ARG docker_container_name RUN [ -f /etc/rsyslog.conf ] && sed -ri "s/%syslogtag%/$docker_container_name#%syslogtag%/;" /etc/rsyslog.conf diff --git a/platform/mellanox/docker-syncd-mlnx-rpc/Dockerfile.j2 b/platform/mellanox/docker-syncd-mlnx-rpc/Dockerfile.j2 index 50850039c01d..0c93e327d3c5 100644 --- a/platform/mellanox/docker-syncd-mlnx-rpc/Dockerfile.j2 +++ b/platform/mellanox/docker-syncd-mlnx-rpc/Dockerfile.j2 @@ -15,7 +15,7 @@ ## limitations under the License. ## {% from "dockers/dockerfile-macros.j2" import install_debian_packages, install_python_wheels, copy_files %} -FROM docker-syncd-mlnx +FROM docker-syncd-mlnx-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ## Make apt-get non-interactive ENV DEBIAN_FRONTEND=noninteractive diff --git a/platform/mellanox/docker-syncd-mlnx/Dockerfile.j2 b/platform/mellanox/docker-syncd-mlnx/Dockerfile.j2 index 386f00e3fe31..e3487c058b58 100755 --- a/platform/mellanox/docker-syncd-mlnx/Dockerfile.j2 +++ b/platform/mellanox/docker-syncd-mlnx/Dockerfile.j2 @@ -15,7 +15,7 @@ ## limitations under the License. ## {% from "dockers/dockerfile-macros.j2" import install_debian_packages, install_python_wheels, copy_files %} -FROM docker-config-engine-buster +FROM docker-config-engine-buster-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ARG docker_container_name diff --git a/platform/nephos/docker-syncd-nephos-rpc/Dockerfile.j2 b/platform/nephos/docker-syncd-nephos-rpc/Dockerfile.j2 index 6c63efb69bb6..3f09bd7524f5 100644 --- a/platform/nephos/docker-syncd-nephos-rpc/Dockerfile.j2 +++ b/platform/nephos/docker-syncd-nephos-rpc/Dockerfile.j2 @@ -1,4 +1,4 @@ -FROM docker-syncd-nephos +FROM docker-syncd-nephos-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ## Make apt-get non-interactive ENV DEBIAN_FRONTEND=noninteractive diff --git a/platform/nephos/docker-syncd-nephos/Dockerfile.j2 b/platform/nephos/docker-syncd-nephos/Dockerfile.j2 index 3c7ffa1e49c5..5077db796628 100755 --- a/platform/nephos/docker-syncd-nephos/Dockerfile.j2 +++ b/platform/nephos/docker-syncd-nephos/Dockerfile.j2 @@ -1,4 +1,4 @@ -FROM docker-config-engine-stretch +FROM docker-config-engine-stretch-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ARG docker_container_name diff --git a/platform/p4/docker-sonic-p4/Dockerfile.j2 b/platform/p4/docker-sonic-p4/Dockerfile.j2 index 90ff15472248..e77781223dc1 100644 --- a/platform/p4/docker-sonic-p4/Dockerfile.j2 +++ b/platform/p4/docker-sonic-p4/Dockerfile.j2 @@ -1,4 +1,4 @@ -FROM docker-config-engine +FROM docker-config-engine-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ARG docker_container_name RUN [ -f /etc/rsyslog.conf ] && sed -ri "s/%syslogtag%/$docker_container_name#%syslogtag%/;" /etc/rsyslog.conf diff --git a/platform/vs/docker-gbsyncd-vs/Dockerfile.j2 b/platform/vs/docker-gbsyncd-vs/Dockerfile.j2 index a9e7f6f53d2c..08956a44ce77 100644 --- a/platform/vs/docker-gbsyncd-vs/Dockerfile.j2 +++ b/platform/vs/docker-gbsyncd-vs/Dockerfile.j2 @@ -1,4 +1,4 @@ -FROM docker-config-engine-buster +FROM docker-config-engine-buster-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ARG docker_container_name diff --git a/platform/vs/docker-sonic-vs/Dockerfile.j2 b/platform/vs/docker-sonic-vs/Dockerfile.j2 index cc867e3d0eeb..e0edc4b4bac2 100644 --- a/platform/vs/docker-sonic-vs/Dockerfile.j2 +++ b/platform/vs/docker-sonic-vs/Dockerfile.j2 @@ -1,4 +1,4 @@ -FROM docker-config-engine-buster +FROM docker-config-engine-buster-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ARG docker_container_name RUN [ -f /etc/rsyslog.conf ] && sed -ri "s/%syslogtag%/$docker_container_name#%syslogtag%/;" /etc/rsyslog.conf diff --git a/platform/vs/docker-syncd-vs/Dockerfile.j2 b/platform/vs/docker-syncd-vs/Dockerfile.j2 index 78b01690ec10..dd6bc2d0f71e 100644 --- a/platform/vs/docker-syncd-vs/Dockerfile.j2 +++ b/platform/vs/docker-syncd-vs/Dockerfile.j2 @@ -1,4 +1,4 @@ -FROM docker-config-engine-buster +FROM docker-config-engine-buster-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ARG docker_container_name diff --git a/rules/config b/rules/config index c51fcd84832c..348c23b17cb3 100644 --- a/rules/config +++ b/rules/config @@ -29,7 +29,10 @@ DEFAULT_BUILD_LOG_TIMESTAMP = none # SONIC_USE_DOCKER_BUILDKIT = y # SONIC_CONFIG_USE_NATIVE_DOCKERD_FOR_BUILD - use native dockerd for build. -# If set to y SONiC build container will use native dockerd instead of dind for faster build +# If set to y SONiC build container will use native dockerd instead of dind for faster build. +# Special handling of the docker image file names is needed to avoid conflicts with +# other SONiC build jobs on the same server. This requires changes to the Dockerfile.j2 FROM statement +# in the dockers/ and platform/ subdirs to use a variable reference instead of an explicit image name. # SONIC_CONFIG_USE_NATIVE_DOCKERD_FOR_BUILD = y # SONIC_CONFIG_ENABLE_COLORS - enable colored output in build system. diff --git a/slave.mk b/slave.mk index a68a08fcd56a..e43fe9d5b3fe 100644 --- a/slave.mk +++ b/slave.mk @@ -241,6 +241,10 @@ ifeq ($(SONIC_BUILD_JOBS),) override SONIC_BUILD_JOBS := $(SONIC_CONFIG_BUILD_JOBS) endif +DOCKER_IMAGE_REF = $*-$(DOCKER_USERNAME):$(DOCKER_USERTAG) +DOCKER_DBG_IMAGE_REF = $*-$(DBG_IMAGE_MARK)-$(DOCKER_USERNAME):$(DOCKER_USERTAG) +export DOCKER_USERNAME DOCKER_USERTAG + ifeq ($(VS_PREPARE_MEM),) override VS_PREPARE_MEM := $(DEFAULT_VS_PREPARE_MEM) endif @@ -286,6 +290,7 @@ $(info "CONFIGURED_ARCH" : "$(if $(PLATFORM_ARCH),$(PLATFORM_ARC $(info "SONIC_CONFIG_PRINT_DEPENDENCIES" : "$(SONIC_CONFIG_PRINT_DEPENDENCIES)") $(info "SONIC_BUILD_JOBS" : "$(SONIC_BUILD_JOBS)") $(info "SONIC_CONFIG_MAKE_JOBS" : "$(SONIC_CONFIG_MAKE_JOBS)") +$(info "USE_NATIVE_DOCKERD_FOR_BUILD" : "$(SONIC_CONFIG_USE_NATIVE_DOCKERD_FOR_BUILD)") $(info "SONIC_USE_DOCKER_BUILDKIT" : "$(SONIC_USE_DOCKER_BUILDKIT)") $(info "USERNAME" : "$(USERNAME)") $(info "PASSWORD" : "$(PASSWORD)") @@ -361,6 +366,60 @@ endif export kernel_procure_method=$(KERNEL_PROCURE_METHOD) export vs_build_prepare_mem=$(VS_PREPARE_MEM) +############################################################################### +## Canned sequences +############################################################################### +## When multiple builds are triggered on the same build server that causes the docker image naming problem because +## all the build jobs are trying to create the same docker image with latest as tag. +## This happens only when sonic docker images are built using native host dockerd. +## +## docker-swss:latest <=SAVE/LOAD=> docker-swss-: + +# $(call docker-image-save,from,to) +# Sonic docker images are always created with username as extension. During the save operation, +# it removes the username extension from docker image and saved them as compressed tar file for SONiC image generation. +# The save operation is protected with lock for parallel build. +# +# $(1) => Docker name +# $(2) => Docker target name + +define docker-image-save + @echo "Attempting docker image lock for $(1) save" $(LOG) + $(call MOD_LOCK,$(1),$(DOCKER_LOCKDIR),$(DOCKER_LOCKFILE_SUFFIX),$(DOCKER_LOCKFILE_TIMEOUT)) + @echo "Obtained docker image lock for $(1) save" $(LOG) + @echo "Tagging docker image $(1)-$(DOCKER_USERNAME):$(DOCKER_USERTAG) as $(1):latest" $(LOG) + docker tag $(1)-$(DOCKER_USERNAME):$(DOCKER_USERTAG) $(1):latest $(LOG) + @echo "Saving docker image $(1):latest" $(LOG) + docker save $(1):latest | gzip -c > $(2) + @echo "Removing docker image $(1):latest" $(LOG) + docker rmi -f $(1):latest $(LOG) + $(call MOD_UNLOCK,$(1)) + @echo "Released docker image lock for $(1) save" $(LOG) + @echo "Removing docker image $(1)-$(DOCKER_USERNAME):$(DOCKER_USERTAG)" $(LOG) + docker rmi -f $(1)-$(DOCKER_USERNAME):$(DOCKER_USERTAG) $(LOG) +endef + +# $(call docker-image-load,from) +# Sonic docker images are always created with username as extension. During the load operation, +# it loads the docker image from compressed tar file and tag them with username as extension. +# The load operation is protected with lock for parallel build. +# +# $(1) => Docker name +# $(2) => Docker target name +define docker-image-load + @echo "Attempting docker image lock for $(1) load" $(LOG) + $(call MOD_LOCK,$(1),$(DOCKER_LOCKDIR),$(DOCKER_LOCKFILE_SUFFIX),$(DOCKER_LOCKFILE_TIMEOUT)) + @echo "Obtained docker image lock for $(1) load" $(LOG) + @echo "Loading docker image $(TARGET_PATH)/$(1).gz" $(LOG) + docker load -i $(TARGET_PATH)/$(1).gz $(LOG) + @echo "Tagging docker image $(1):latest as $(1)-$(DOCKER_USERNAME):$(DOCKER_USERTAG)" $(LOG) + docker tag $(1):latest $(1)-$(DOCKER_USERNAME):$(DOCKER_USERTAG) $(LOG) + @echo "Removing docker image $(1):latest" $(LOG) + docker rmi -f $(1):latest $(LOG) + $(call MOD_UNLOCK,$(1)) + @echo "Released docker image lock for $(1) load" $(LOG) +endef + ############################################################################### ## Local targets ############################################################################### @@ -752,9 +811,9 @@ $(addprefix $(TARGET_PATH)/, $(SONIC_SIMPLE_DOCKER_IMAGES)) : $(TARGET_PATH)/%.g --build-arg docker_container_name=$($*.gz_CONTAINER_NAME) \ --label Tag=$(SONIC_IMAGE_VERSION) \ -f $(TARGET_DOCKERFILE)/Dockerfile.buildinfo \ - -t $* $($*.gz_PATH) $(LOG) - scripts/collect_docker_version_files.sh $* $(TARGET_PATH) - docker save $* | gzip -c > $@ + -t $(DOCKER_IMAGE_REF) $($*.gz_PATH) $(LOG) + scripts/collect_docker_version_files.sh $(DOCKER_IMAGE_REF) $(TARGET_PATH) + $(call docker-image-save,$*,$@) # Clean up if [ -f $($*.gz_PATH).patch/series ]; then pushd $($*.gz_PATH) && quilt pop -a -f; [ -d .pc ] && rm -rf .pc; popd; fi $(FOOTER) @@ -871,9 +930,9 @@ $(addprefix $(TARGET_PATH)/, $(DOCKER_IMAGES)) : $(TARGET_PATH)/%.gz : .platform --label com.azure.sonic.manifest="$$(cat $($*.gz_PATH)/manifest.json)" \ --label Tag=$(SONIC_IMAGE_VERSION) \ $($(subst -,_,$(notdir $($*.gz_PATH)))_labels) \ - -t $* $($*.gz_PATH) $(LOG) - scripts/collect_docker_version_files.sh $* $(TARGET_PATH) - docker save $* | gzip -c > $@ + -t $(DOCKER_IMAGE_REF) $($*.gz_PATH) $(LOG) + scripts/collect_docker_version_files.sh $(DOCKER_IMAGE_REF) $(TARGET_PATH) + $(call docker-image-save,$*,$@) # Clean up if [ -f $($*.gz_PATH).patch/series ]; then pushd $($*.gz_PATH) && quilt pop -a -f; [ -d .pc ] && rm -rf .pc; popd; fi @@ -885,7 +944,7 @@ $(addprefix $(TARGET_PATH)/, $(DOCKER_IMAGES)) : $(TARGET_PATH)/%.gz : .platform SONIC_TARGET_LIST += $(addprefix $(TARGET_PATH)/, $(DOCKER_IMAGES)) -# Targets for building docker images +# Targets for building docker debug images $(addprefix $(TARGET_PATH)/, $(DOCKER_DBG_IMAGES)) : $(TARGET_PATH)/%-$(DBG_IMAGE_MARK).gz : .platform docker-start \ $$(addprefix $(TARGET_PATH)/,$$($$*.gz_AFTER)) \ $$(addprefix $$($$*.gz_DEBS_PATH)/,$$($$*.gz_DBG_DEPENDS)) \ @@ -905,7 +964,7 @@ $(addprefix $(TARGET_PATH)/, $(DOCKER_DBG_IMAGES)) : $(TARGET_PATH)/%-$(DBG_IMAG $(eval export $(subst -,_,$(notdir $($*.gz_PATH)))_dbg_debs=$(shell printf "$(subst $(SPACE),\n,$(call expand,$($*.gz_DBG_DEPENDS),RDEPENDS))\n" | awk '!a[$$0]++')) $(eval export $(subst -,_,$(notdir $($*.gz_PATH)))_image_dbgs=$(shell printf "$(subst $(SPACE),\n,$(call expand,$($*.gz_DBG_IMAGE_PACKAGES)))\n" | awk '!a[$$0]++')) $(eval export $(subst -,_,$(notdir $($*.gz_PATH)))_dbg_pkgs=$(shell printf "$(subst $(SPACE),\n,$(call expand,$($*.gz_DBG_APT_PACKAGES),RDEPENDS))\n" | awk '!a[$$0]++')) - ./build_debug_docker_j2.sh $* $(subst -,_,$(notdir $($*.gz_PATH)))_dbg_debs $(subst -,_,$(notdir $($*.gz_PATH)))_image_dbgs > $($*.gz_PATH)/Dockerfile-dbg.j2 + ./build_debug_docker_j2.sh $(DOCKER_IMAGE_REF) $(subst -,_,$(notdir $($*.gz_PATH)))_dbg_debs $(subst -,_,$(notdir $($*.gz_PATH)))_image_dbgs > $($*.gz_PATH)/Dockerfile-dbg.j2 j2 $($*.gz_PATH)/Dockerfile-dbg.j2 > $($*.gz_PATH)/Dockerfile-dbg $(call generate_manifest,$*,dbg) # Prepare docker build info @@ -923,10 +982,11 @@ $(addprefix $(TARGET_PATH)/, $(DOCKER_DBG_IMAGES)) : $(TARGET_PATH)/%-$(DBG_IMAG --label com.azure.sonic.manifest="$$(cat $($*.gz_PATH)/manifest.json)" \ --label Tag=$(SONIC_IMAGE_VERSION) \ --file $($*.gz_PATH)/Dockerfile-dbg \ - -t $*-dbg $($*.gz_PATH) $(LOG) - scripts/collect_docker_version_files.sh $*-dbg $(TARGET_PATH) - docker save $*-dbg | gzip -c > $@ + -t $(DOCKER_DBG_IMAGE_REF) $($*.gz_PATH) $(LOG) + scripts/collect_docker_version_files.sh $(DOCKER_DBG_IMAGE_REF) $(TARGET_PATH) + $(call docker-image-save,$*-$(DBG_IMAGE_MARK),$@) # Clean up + docker rmi -f $(DOCKER_IMAGE_REF) &> /dev/null || true if [ -f $($*.gz_PATH).patch/series ]; then pushd $($*.gz_PATH) && quilt pop -a -f; [ -d .pc ] && rm -rf .pc; popd; fi # Save the target deb into DPKG cache @@ -952,7 +1012,7 @@ endif $(DOCKER_LOAD_TARGETS) : $(TARGET_PATH)/%.gz-load : .platform docker-start $$(TARGET_PATH)/$$*.gz $(HEADER) - docker load -i $(TARGET_PATH)/$*.gz $(LOG) + $(call docker-image-load,$*) $(FOOTER) ############################################################################### From 1d84e0d7df0054b80c9958289bd97897d8c869c0 Mon Sep 17 00:00:00 2001 From: shlomibitton <60430976+shlomibitton@users.noreply.github.com> Date: Thu, 28 Apr 2022 10:35:14 +0300 Subject: [PATCH 132/251] [Fastboot] Delay LLDP service for better fastboot performance (#10568) - Why I did it Profiling the system state on init after fast-reboot during create_switch function execution, it is possible to see few python scripts running at the same time. This parallel execution consume CPU time and the duration of create_switch is longer than it should be. Following this finding, and the motivation to ensure these services will not interfere in the future, LLDP is delayed in 90 seconds until the system finish the init flow after fastboot. - How I did it Add a timer for LLDP service. Copy the timer file to the host bin image. - How to verify it Run fast-reboot on MLNX platform and observe faster create_switch execution time. This PR is dependent on PR: #10567 --- files/build_templates/init_cfg.json.j2 | 4 +-- files/build_templates/lldp.timer.j2 | 1 + .../per_namespace/lldp.service.j2 | 3 -- .../per_namespace/lldp.timer.j2 | 12 +++++++ .../build_templates/sonic_debian_extension.j2 | 15 ++++++++- files/scripts/syncd.sh | 13 ++++++-- slave.mk | 31 +++++++++++++++++++ 7 files changed, 70 insertions(+), 9 deletions(-) create mode 120000 files/build_templates/lldp.timer.j2 create mode 100644 files/build_templates/per_namespace/lldp.timer.j2 diff --git a/files/build_templates/init_cfg.json.j2 b/files/build_templates/init_cfg.json.j2 index a7f1e54a4e15..31249abd5823 100644 --- a/files/build_templates/init_cfg.json.j2 +++ b/files/build_templates/init_cfg.json.j2 @@ -29,7 +29,7 @@ }, {%- set features = [("bgp", "enabled", false, "enabled"), ("database", "always_enabled", false, "always_enabled"), - ("lldp", "enabled", false, "enabled"), + ("lldp", "enabled", true, "enabled"), ("pmon", "enabled", false, "enabled"), ("radv", "enabled", false, "enabled"), ("snmp", "enabled", true, "enabled"), @@ -83,6 +83,6 @@ "state" : "disabled", {% endif %} "rate_limit_interval" : "600" }{%if not loop.last %},{% endif -%} -{% endfor %} +{% endfor %} } } diff --git a/files/build_templates/lldp.timer.j2 b/files/build_templates/lldp.timer.j2 new file mode 120000 index 000000000000..8e6950d6f3bc --- /dev/null +++ b/files/build_templates/lldp.timer.j2 @@ -0,0 +1 @@ +per_namespace/lldp.timer.j2 \ No newline at end of file diff --git a/files/build_templates/per_namespace/lldp.service.j2 b/files/build_templates/per_namespace/lldp.service.j2 index 02ab99dca463..d23abc0a127a 100644 --- a/files/build_templates/per_namespace/lldp.service.j2 +++ b/files/build_templates/per_namespace/lldp.service.j2 @@ -20,6 +20,3 @@ ExecStartPre=/usr/local/bin/{{docker_container_name}}.sh start{% if multi_instan ExecStart=/usr/local/bin/{{docker_container_name}}.sh wait{% if multi_instance == 'true' %} %i{% endif %} ExecStop=/usr/local/bin/{{docker_container_name}}.sh stop{% if multi_instance == 'true' %} %i{% endif %} RestartSec=30 - -[Install] -WantedBy=sonic.target diff --git a/files/build_templates/per_namespace/lldp.timer.j2 b/files/build_templates/per_namespace/lldp.timer.j2 new file mode 100644 index 000000000000..67622a32851b --- /dev/null +++ b/files/build_templates/per_namespace/lldp.timer.j2 @@ -0,0 +1,12 @@ +[Unit] +# This delay is for fast/warm reboot performance +Description=Delays LLDP docker until SONiC has started +PartOf=lldp{% if multi_instance == 'true' %}@%i{% endif %}.service + +[Timer] +OnUnitActiveSec=0 sec +OnBootSec=1min 30 sec +Unit=lldp{% if multi_instance == 'true' %}@%i{% endif %}.service + +[Install] +WantedBy=timers.target sonic.target sonic-delayed.target diff --git a/files/build_templates/sonic_debian_extension.j2 b/files/build_templates/sonic_debian_extension.j2 index c51d6d4543e8..0cdabf7cfaaa 100644 --- a/files/build_templates/sonic_debian_extension.j2 +++ b/files/build_templates/sonic_debian_extension.j2 @@ -655,7 +655,7 @@ fi ## ensure proc is mounted sudo mount proc /proc -t proc || true if [[ $CONFIGURED_ARCH == armhf ]]; then - # A workaround to fix the armhf build hung issue, caused by sonic-platform-nokia-7215_1.0_armhf.deb post installation script + # A workaround to fix the armhf build hung issue, caused by sonic-platform-nokia-7215_1.0_armhf.deb post installation script ps -eo pid,cmd | grep python | grep "/etc/entropy.py" | awk '{print $1}' | xargs sudo kill -9 2>/dev/null || true fi @@ -774,6 +774,19 @@ if [ -f {{service}} ]; then echo "{{service}}" | sudo tee -a $GENERATED_SERVICE_FILE fi {% endfor %} +{% for timer in installer_timers.split(' ') -%} +if [ -f {{timer}} ]; then + sudo cp {{timer}} $FILESYSTEM_ROOT_USR_LIB_SYSTEMD_SYSTEM + + {% if "@" in timer %} + MULTI_INSTANCE="{{timer}}" + SINGLE_INSTANCE=${MULTI_INSTANCE/"@"} + sudo cp $SINGLE_INSTANCE $FILESYSTEM_ROOT_USR_LIB_SYSTEMD_SYSTEM + {% endif %} + + echo "{{timer}}" | sudo tee -a $GENERATED_SERVICE_FILE +fi +{% endfor %} if [ -f iccpd.service ]; then sudo LANG=C chroot $FILESYSTEM_ROOT systemctl disable iccpd.service fi diff --git a/files/scripts/syncd.sh b/files/scripts/syncd.sh index 889495e8c50a..83f99d70d7e8 100755 --- a/files/scripts/syncd.sh +++ b/files/scripts/syncd.sh @@ -44,12 +44,19 @@ function startplatform() { } function waitplatform() { - + if [[ x"$sonic_asic_platform" == x"mellanox" ]]; then debug "Starting pmon service..." /bin/systemctl start pmon debug "Started pmon service" fi + if [[ x"$BOOT_TYPE" = @(x"fast"|x"warm"|x"fastfast") ]]; then + debug "LLDP service is delayed by a timer for better fast/warm boot performance" + else + debug "Starting lldp service..." + /bin/systemctl start lldp + debug "Started lldp service" + fi } function stopplatform1() { @@ -64,7 +71,7 @@ function stopplatform1() { debug "${TYPE} shutdown syncd process ..." /usr/bin/docker exec -i syncd$DEV /usr/bin/syncd_request_shutdown --${TYPE} - # wait until syncd quits gracefully or force syncd to exit after + # wait until syncd quits gracefully or force syncd to exit after # waiting for 20 seconds start_in_secs=${SECONDS} end_in_secs=${SECONDS} @@ -76,7 +83,7 @@ function stopplatform1() { done if [[ $((end_in_secs - start_in_secs)) -gt $timer_threshold ]]; then - debug "syncd process in container syncd$DEV did not exit gracefully" + debug "syncd process in container syncd$DEV did not exit gracefully" fi /usr/bin/docker exec -i syncd$DEV /bin/sync diff --git a/slave.mk b/slave.mk index e43fe9d5b3fe..7342870ac2a7 100644 --- a/slave.mk +++ b/slave.mk @@ -1162,6 +1162,14 @@ $(addprefix $(TARGET_PATH)/, $(SONIC_INSTALLERS)) : $(TARGET_PATH)/% : \ $(eval $(docker:-dbg.gz=.gz)_GLOBAL = yes) ) fi + if [ -f files/build_templates/$($(docker:-dbg.gz=.gz)_CONTAINER_NAME).timer.j2 ]; then + j2 files/build_templates/$($(docker:-dbg.gz=.gz)_CONTAINER_NAME).timer.j2 > $($(docker:-dbg.gz=.gz)_CONTAINER_NAME).timer + + # Set the flag GLOBAL_TIMER for all the global system-wide dockers timers. + $(if $(shell ls files/build_templates/$($(docker:-dbg.gz=.gz)_CONTAINER_NAME).timer.j2 2>/dev/null),\ + $(eval $(docker:-dbg.gz=.gz)_GLOBAL_TIMER = yes) + ) + fi # Any service template, inside instance directory, will be used to generate .service and @.service file. if [ -f files/build_templates/per_namespace/$($(docker:-dbg.gz=.gz)_CONTAINER_NAME).service.j2 ]; then export multi_instance="true" @@ -1172,6 +1180,16 @@ $(addprefix $(TARGET_PATH)/, $(SONIC_INSTALLERS)) : $(TARGET_PATH)/% : \ export multi_instance="false" j2 files/build_templates/per_namespace/$($(docker:-dbg.gz=.gz)_CONTAINER_NAME).service.j2 > $($(docker:-dbg.gz=.gz)_CONTAINER_NAME).service fi + # Any timer template, inside instance directory, will be used to generate .timer and @.timer file. + if [ -f files/build_templates/per_namespace/$($(docker:-dbg.gz=.gz)_CONTAINER_NAME).timer.j2 ]; then + export multi_instance="true" + j2 files/build_templates/per_namespace/$($(docker:-dbg.gz=.gz)_CONTAINER_NAME).timer.j2 > $($(docker:-dbg.gz=.gz)_CONTAINER_NAME)@.timer + $(if $(shell ls files/build_templates/per_namespace/$($(docker:-dbg.gz=.gz)_CONTAINER_NAME).timer.j2 2>/dev/null),\ + $(eval $(docker:-dbg.gz=.gz)_TEMPLATE_TIMER = yes) + ) + export multi_instance="false" + j2 files/build_templates/per_namespace/$($(docker:-dbg.gz=.gz)_CONTAINER_NAME).timer.j2 > $($(docker:-dbg.gz=.gz)_CONTAINER_NAME).timer + fi # Any service template, inside share_image directory, will be used to generate -chassis.service file. # TODO: need better way to name the image-shared service if [ -f files/build_templates/share_image/$($(docker:-dbg.gz=.gz)_CONTAINER_NAME).service.j2 ]; then @@ -1209,7 +1227,20 @@ $(addprefix $(TARGET_PATH)/, $(SONIC_INSTALLERS)) : $(TARGET_PATH)/% : \ $(eval SERVICES += "$(addsuffix -chassis.service, $($(docker:-dbg.gz=.gz)_CONTAINER_NAME))") ) ) + # Marks template timers with an "@" according to systemd convention + # If the $($docker)_TEMPLATE_TIMER) variable is set, the timer will be treated as a template + # If the $($docker)_GLOBAL_TIMER) and $($docker)_TEMPLATE_TIMER) variables are set the timer will be added both as a global and template timer. + $(foreach docker, $($*_DOCKERS),\ + $(if $($(docker:-dbg.gz=.gz)_TEMPLATE_TIMER),\ + $(if $($(docker:-dbg.gz=.gz)_GLOBAL_TIMER),\ + $(eval TIMERS += "$(addsuffix .timer, $($(docker:-dbg.gz=.gz)_CONTAINER_NAME))")\ + )\ + $(eval TIMERS += "$(addsuffix @.timer, $($(docker:-dbg.gz=.gz)_CONTAINER_NAME))"),\ + $(eval TIMERS += "$(addsuffix .timer, $($(docker:-dbg.gz=.gz)_CONTAINER_NAME))") + ) + ) export installer_services="$(SERVICES)" + export installer_timers="$(TIMERS)" export installer_extra_files="$(foreach docker, $($*_DOCKERS), $(foreach file, $($(docker:-dbg.gz=.gz)_BASE_IMAGE_FILES), $($(docker:-dbg.gz=.gz)_PATH)/base_image_files/$(file)))" From 6e88f05a45f24bed1d3d46431705aebef63b318f Mon Sep 17 00:00:00 2001 From: xumia <59720581+xumia@users.noreply.github.com> Date: Fri, 29 Apr 2022 07:17:52 +0800 Subject: [PATCH 133/251] Fix the build target error when building sonic-rest-api (#10693) Why I did it Fix target target/debs/bullseye/sonic-rest-api_1.0.1_arm64.deb not existing issue, the correct target is target/debs/bullseye/sonic-rest-api_1.0.1_armhf.deb. Fix issue: #9896 [ FAIL LOG START ] [ target/debs/stretch/sonic-rest-api_1.0.1_amd64.deb ] [ REASON ] : target/debs/stretch/sonic-rest-api_1.0.1_amd64.deb does not exist NON-EXISTENT PREREQUISITES: [ FLAGS FILE ] : [] --- rules/restapi.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rules/restapi.mk b/rules/restapi.mk index e66b4a1d976a..21eed4cfbb51 100644 --- a/rules/restapi.mk +++ b/rules/restapi.mk @@ -1,6 +1,6 @@ # sonic-rest-api package -RESTAPI = sonic-rest-api_1.0.1_amd64.deb +RESTAPI = sonic-rest-api_1.0.1_$(CONFIGURED_ARCH).deb $(RESTAPI)_SRC_PATH = $(SRC_PATH)/sonic-restapi $(RESTAPI)_DEPENDS += $(LIBHIREDIS_DEV) $(LIBNL3_DEV) $(LIBNL_GENL3_DEV) \ $(LIBNL_ROUTE3_DEV) $(LIBSWSSCOMMON_DEV) $(LIBSWSSCOMMON) From e0f5333d9ceb908cbfc5e25b88197de224c1cfe8 Mon Sep 17 00:00:00 2001 From: Mohamed Ghoneim Date: Thu, 28 Apr 2022 17:29:56 -0700 Subject: [PATCH 134/251] [SY] Adding exceptlionList to validation exception (#10699) #### Why I did it Adding exceptlionList to validation exception #### How I did it Check code. #### How to verify it Ran manually. - Run full config validation from a KVM - Print the thrown exception **Before** ``` Error: Data Loading Failed All Keys are not parsed in FEATURE dict_keys(['telemetry']) ``` **After** ``` Error: Data Loading Failed All Keys are not parsed in FEATURE dict_keys(['telemetry']) exceptionList:["'status'"] ``` #### Which release branch to backport (provide reason below if selected) - [ ] 201811 - [ ] 201911 - [ ] 202006 - [ ] 202012 - [ ] 202106 - [ ] 202111 #### Description for the changelog #### Link to config_db schema for YANG module changes #### A picture of a cute animal (not mandatory but encouraged) --- src/sonic-yang-mgmt/sonic_yang_ext.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sonic-yang-mgmt/sonic_yang_ext.py b/src/sonic-yang-mgmt/sonic_yang_ext.py index d43e52970302..424e567f79d3 100644 --- a/src/sonic-yang-mgmt/sonic_yang_ext.py +++ b/src/sonic-yang-mgmt/sonic_yang_ext.py @@ -661,8 +661,8 @@ def _xlateContainer(self, model, yang, config, table): configC.keys()), debug=syslog.LOG_ERR, doPrint=True) self.sysLog(msg="exceptionList:{}".format(exceptionList), \ debug=syslog.LOG_ERR, doPrint=True) - raise(Exception("All Keys are not parsed in {}\n{}".format(table, \ - configC.keys()))) + raise(Exception("All Keys are not parsed in {}\n{}\nexceptionList:{}".format(table, \ + configC.keys(), exceptionList))) return From ede1e0e88963a4d3646b61341130806d90880760 Mon Sep 17 00:00:00 2001 From: vmittal-msft <46945843+vmittal-msft@users.noreply.github.com> Date: Thu, 28 Apr 2022 20:39:56 -0700 Subject: [PATCH 135/251] Adjustment to ingress pool size to accomodate brcm sai (#10694) --- .../Arista-7050CX3-32S-D48C8/buffers_defaults_t0.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-D48C8/buffers_defaults_t0.j2 b/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-D48C8/buffers_defaults_t0.j2 index 6a524f980697..a7441471e0cc 100644 --- a/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-D48C8/buffers_defaults_t0.j2 +++ b/device/arista/x86_64-arista_7050cx3_32s/Arista-7050CX3-32S-D48C8/buffers_defaults_t0.j2 @@ -11,7 +11,7 @@ {%- macro generate_buffer_pool_and_profiles() %} "BUFFER_POOL": { "ingress_lossless_pool": { - "size": "32669440", + "size": "32689152", "type": "ingress", "mode": "dynamic", "xoff": "2058240" From d258db8aa282b3f0a7a5b00321bc49065c8f3c1d Mon Sep 17 00:00:00 2001 From: Shilong Liu Date: Fri, 29 Apr 2022 13:40:33 +0800 Subject: [PATCH 136/251] [CG] Fix CG alert about underscore version. (#10705) --- .../0004-Remove-underscore-packages.patch | 60 +++++++++++++++++++ src/thrift_0_14_1/thrift.patch/series | 1 + 2 files changed, 61 insertions(+) create mode 100644 src/thrift_0_14_1/thrift.patch/0004-Remove-underscore-packages.patch diff --git a/src/thrift_0_14_1/thrift.patch/0004-Remove-underscore-packages.patch b/src/thrift_0_14_1/thrift.patch/0004-Remove-underscore-packages.patch new file mode 100644 index 000000000000..fd49e9d5655a --- /dev/null +++ b/src/thrift_0_14_1/thrift.patch/0004-Remove-underscore-packages.patch @@ -0,0 +1,60 @@ +diff --git a/lib/ts/package-lock.json b/lib/ts/package-lock.json +index fddef4426..93a3cbb8f 100644 +--- a/lib/ts/package-lock.json ++++ b/lib/ts/package-lock.json +@@ -2639,8 +2639,7 @@ + "mkdirp": "~0.5.1", + "requizzle": "~0.2.1", + "strip-json-comments": "~2.0.1", +- "taffydb": "2.6.2", +- "underscore": "~1.8.3" ++ "taffydb": "2.6.2" + } + }, + "jshint": { +@@ -3873,17 +3872,7 @@ + "requizzle": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.1.tgz", +- "integrity": "sha1-aUPDUwxNmn5G8c3dUcFY/GcM294=", +- "requires": { +- "underscore": "~1.6.0" +- }, +- "dependencies": { +- "underscore": { +- "version": "1.6.0", +- "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz", +- "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=" +- } +- } ++ "integrity": "sha1-aUPDUwxNmn5G8c3dUcFY/GcM294=" + }, + "resolve": { + "version": "1.9.0", +@@ -4622,25 +4611,10 @@ + "xtend": "^4.0.1" + } + }, +- "underscore": { +- "version": "1.8.3", +- "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", +- "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=" +- }, + "underscore-contrib": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/underscore-contrib/-/underscore-contrib-0.3.0.tgz", +- "integrity": "sha1-ZltmwkeD+PorGMn4y7Dix9SMJsc=", +- "requires": { +- "underscore": "1.6.0" +- }, +- "dependencies": { +- "underscore": { +- "version": "1.6.0", +- "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz", +- "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=" +- } +- } ++ "integrity": "sha1-ZltmwkeD+PorGMn4y7Dix9SMJsc=" + }, + "underscore.string": { + "version": "3.3.5", diff --git a/src/thrift_0_14_1/thrift.patch/series b/src/thrift_0_14_1/thrift.patch/series index 9fe00d007f63..19ba4dba26f3 100644 --- a/src/thrift_0_14_1/thrift.patch/series +++ b/src/thrift_0_14_1/thrift.patch/series @@ -1,3 +1,4 @@ 0001-Remove-unneeded-packages.patch 0002-Fix-build-rules.patch 0003-Remove-minimist-packages.patch +0004-Remove-underscore-packages.patch From 53e5fe6a93b051c8319d51e109d317beb5166e77 Mon Sep 17 00:00:00 2001 From: Alexander Allen Date: Fri, 29 Apr 2022 13:50:59 -0400 Subject: [PATCH 137/251] [Mellanox] Upgrade mellanox SDK to 4.5.1500 and mlnx-sai to 1.21.1.1 (#10675) Update SDK/FW to 4.5.1500/2010.1500 and SAI version to 1.21.1.1 SDK/FW features: 1. Added support for Finisar DR4 (FTCD4523E2PCM) on Spectrum-2 and Spectrum-3 systems. SAI Features: 1. ECMP overlay support for IPv6 2. BFD offloading / 4K scale 3. Host interface user traps + improved trap registration (table entry) 4. gcc11 compilation fixes 5. Read support for ACL redirect action 6. Optimize ECMP DB size 7. Buffer descriptors new defaults 8. Updated port mapping for SN2201 SAI Fixes: 1. Debug counter removal when configured with all drop reasons - Why I did it Upgrade Mellanox SDK and SAI versions to latest - How I did it Updated submodule pointers - How to verify it Regression tested --- platform/mellanox/fw.mk | 6 +++--- platform/mellanox/mlnx-sai.mk | 2 +- platform/mellanox/mlnx-sai/SAI-Implementation | 2 +- platform/mellanox/sdk-src/sx-kernel/Switch-SDK-drivers | 2 +- platform/mellanox/sdk.mk | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/platform/mellanox/fw.mk b/platform/mellanox/fw.mk index 8293b38cd5fe..e2ccc2ad7dc8 100644 --- a/platform/mellanox/fw.mk +++ b/platform/mellanox/fw.mk @@ -27,17 +27,17 @@ else FW_FROM_URL = n endif -MLNX_SPC_FW_VERSION = 13.2010.1218 +MLNX_SPC_FW_VERSION = 13.2010.1500 MLNX_SPC_FW_FILE = fw-SPC-rel-$(subst .,_,$(MLNX_SPC_FW_VERSION))-EVB.mfa $(MLNX_SPC_FW_FILE)_PATH = $(MLNX_FW_BASE_PATH) $(MLNX_SPC_FW_FILE)_URL = $(MLNX_FW_BASE_URL)/$(MLNX_SPC_FW_FILE) -MLNX_SPC2_FW_VERSION = 29.2010.1218 +MLNX_SPC2_FW_VERSION = 29.2010.1500 MLNX_SPC2_FW_FILE = fw-SPC2-rel-$(subst .,_,$(MLNX_SPC2_FW_VERSION))-EVB.mfa $(MLNX_SPC2_FW_FILE)_PATH = $(MLNX_FW_BASE_PATH) $(MLNX_SPC2_FW_FILE)_URL = $(MLNX_FW_BASE_URL)/$(MLNX_SPC2_FW_FILE) -MLNX_SPC3_FW_VERSION = 30.2010.1218 +MLNX_SPC3_FW_VERSION = 30.2010.1500 MLNX_SPC3_FW_FILE = fw-SPC3-rel-$(subst .,_,$(MLNX_SPC3_FW_VERSION))-EVB.mfa $(MLNX_SPC3_FW_FILE)_PATH = $(MLNX_FW_BASE_PATH) $(MLNX_SPC3_FW_FILE)_URL = $(MLNX_FW_BASE_URL)/$(MLNX_SPC3_FW_FILE) diff --git a/platform/mellanox/mlnx-sai.mk b/platform/mellanox/mlnx-sai.mk index c8a394e1f355..d49a832aff9e 100644 --- a/platform/mellanox/mlnx-sai.mk +++ b/platform/mellanox/mlnx-sai.mk @@ -1,6 +1,6 @@ # Mellanox SAI -MLNX_SAI_VERSION = SAIRel1.20.2.5 +MLNX_SAI_VERSION = SAIRel1.21.1.1 export MLNX_SAI_VERSION diff --git a/platform/mellanox/mlnx-sai/SAI-Implementation b/platform/mellanox/mlnx-sai/SAI-Implementation index 0f9cf1d39107..a01442acd95e 160000 --- a/platform/mellanox/mlnx-sai/SAI-Implementation +++ b/platform/mellanox/mlnx-sai/SAI-Implementation @@ -1 +1 @@ -Subproject commit 0f9cf1d39107f2d8f78c4b2807aa4e32862cca68 +Subproject commit a01442acd95e3a4f78a8e4b04b227fcbe905771e diff --git a/platform/mellanox/sdk-src/sx-kernel/Switch-SDK-drivers b/platform/mellanox/sdk-src/sx-kernel/Switch-SDK-drivers index 37475d91930e..a0416e20a2b9 160000 --- a/platform/mellanox/sdk-src/sx-kernel/Switch-SDK-drivers +++ b/platform/mellanox/sdk-src/sx-kernel/Switch-SDK-drivers @@ -1 +1 @@ -Subproject commit 37475d91930e3aae3490a4423da280a5cae72407 +Subproject commit a0416e20a2b9b304cb2c9b629c071f76db0ca2aa diff --git a/platform/mellanox/sdk.mk b/platform/mellanox/sdk.mk index 08051e5ca0c7..ba152c953808 100644 --- a/platform/mellanox/sdk.mk +++ b/platform/mellanox/sdk.mk @@ -16,7 +16,7 @@ # MLNX_SDK_BASE_PATH = $(PLATFORM_PATH)/sdk-src/sx-kernel/Switch-SDK-drivers/bin/ MLNX_SDK_PKG_BASE_PATH = $(MLNX_SDK_BASE_PATH)/$(BLDENV)/ -MLNX_SDK_VERSION = 4.5.1208 +MLNX_SDK_VERSION = 4.5.1500 MLNX_SDK_ISSU_VERSION = 101 MLNX_SDK_DEB_VERSION = $(subst -,.,$(subst _,.,$(MLNX_SDK_VERSION))) From 80f5d36a5b70ba2ae3049938e29b5f1dc619f73d Mon Sep 17 00:00:00 2001 From: Sumukha Tumkur Vani Date: Sat, 30 Apr 2022 10:39:13 -0700 Subject: [PATCH 138/251] [SWSS] Update submodule (#10719) Add the following commits: - [orchagent, crm]: Reset crm threshold exceed count when threshold type changed 5ba6a54786c0fd9b155bb9ea2a7ed724a58aab74 - [pbh] [aclorch] Fixed a bug causes by updating the flow-counter value for the PBH rule 841f00389b338e91ddc4de460ace4ff96adfa796 - [ACL]Avoid incrementing crm count when ACL rule create fails 3d3364f9715fa05fbdf2d09b08676c3055903b84 - set remote vtep the netdev down before delete 7f53db782aed2973f4ff6807911b5a549461f3c7 - Removing Vnet with scope default 2ea8581da4ba6f97bebde4845a234d7c810e5515 --- src/sonic-swss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-swss b/src/sonic-swss index 1fd1dbfe7eaa..2ea8581da4ba 160000 --- a/src/sonic-swss +++ b/src/sonic-swss @@ -1 +1 @@ -Subproject commit 1fd1dbfe7eaaa52f1d7edbdd2bb88483f031fd5e +Subproject commit 2ea8581da4ba6f97bebde4845a234d7c810e5515 From 4ec3af86af5c9ed2da21df33111fa84181069a3e Mon Sep 17 00:00:00 2001 From: shlomibitton <60430976+shlomibitton@users.noreply.github.com> Date: Mon, 2 May 2022 10:44:17 +0300 Subject: [PATCH 139/251] [Fastboot] Delay PMON service for better fastboot performance (#10567) - Why I did it Profiling the system state on init after fast-reboot during create_switch function execution, it is possible to see few python scripts running at the same time. This parallel execution consume CPU time and the duration of create_switch is longer than it should be. Following this finding, and the motivation to ensure these services will not interfere in the future, PMON is delayed in 90 seconds until the system finish the init flow after fastboot. - How I did it Add a timer for PMON service. Exclude for MLNX platform the start trigger of PMON when SYNCD starts in case of fastboot. Copy the timer file to the host bin image. - How to verify it Run fast-reboot on MLNX platform and observe faster create_switch execution time. --- files/build_templates/init_cfg.json.j2 | 1 + files/build_templates/pmon.service.j2 | 3 --- files/build_templates/pmon.timer | 12 ++++++++++++ files/build_templates/sonic_debian_extension.j2 | 3 +++ files/scripts/syncd.sh | 11 ++++++++--- 5 files changed, 24 insertions(+), 6 deletions(-) create mode 100644 files/build_templates/pmon.timer diff --git a/files/build_templates/init_cfg.json.j2 b/files/build_templates/init_cfg.json.j2 index 31249abd5823..b51aaf2f0c14 100644 --- a/files/build_templates/init_cfg.json.j2 +++ b/files/build_templates/init_cfg.json.j2 @@ -30,6 +30,7 @@ {%- set features = [("bgp", "enabled", false, "enabled"), ("database", "always_enabled", false, "always_enabled"), ("lldp", "enabled", true, "enabled"), + ("pmon", "enabled", true, "enabled"), ("pmon", "enabled", false, "enabled"), ("radv", "enabled", false, "enabled"), ("snmp", "enabled", true, "enabled"), diff --git a/files/build_templates/pmon.service.j2 b/files/build_templates/pmon.service.j2 index 2cc28b1fc13e..2e7ebca1c72a 100644 --- a/files/build_templates/pmon.service.j2 +++ b/files/build_templates/pmon.service.j2 @@ -17,6 +17,3 @@ ExecStartPre=/usr/bin/{{docker_container_name}}.sh start ExecStart=/usr/bin/{{docker_container_name}}.sh wait ExecStop=/usr/bin/{{docker_container_name}}.sh stop RestartSec=30 - -[Install] -WantedBy=sonic.target diff --git a/files/build_templates/pmon.timer b/files/build_templates/pmon.timer new file mode 100644 index 000000000000..2993051607ef --- /dev/null +++ b/files/build_templates/pmon.timer @@ -0,0 +1,12 @@ +[Unit] +# This delay is for fast/warm reboot performance +Description=Delays pmon docker until SONiC has started +PartOf=pmon.service + +[Timer] +OnUnitActiveSec=0 sec +OnBootSec=1min 30 sec +Unit=pmon.service + +[Install] +WantedBy=timers.target sonic.target sonic-delayed.target diff --git a/files/build_templates/sonic_debian_extension.j2 b/files/build_templates/sonic_debian_extension.j2 index 0cdabf7cfaaa..516df5fd224f 100644 --- a/files/build_templates/sonic_debian_extension.j2 +++ b/files/build_templates/sonic_debian_extension.j2 @@ -831,6 +831,9 @@ sudo cp $BUILD_TEMPLATES/mgmt-framework.timer $FILESYSTEM_ROOT_USR_LIB_SYSTEMD_S echo "mgmt-framework.timer" | sudo tee -a $GENERATED_SERVICE_FILE {% endif %} +sudo cp $BUILD_TEMPLATES/pmon.timer $FILESYSTEM_ROOT_USR_LIB_SYSTEMD_SYSTEM +echo "pmon.timer" | sudo tee -a $GENERATED_SERVICE_FILE + sudo cp $BUILD_TEMPLATES/sonic.target $FILESYSTEM_ROOT_USR_LIB_SYSTEMD_SYSTEM sudo LANG=C chroot $FILESYSTEM_ROOT systemctl enable sonic.target diff --git a/files/scripts/syncd.sh b/files/scripts/syncd.sh index 83f99d70d7e8..628609e0a5f0 100755 --- a/files/scripts/syncd.sh +++ b/files/scripts/syncd.sh @@ -45,10 +45,15 @@ function startplatform() { function waitplatform() { + BOOT_TYPE=`getBootType` if [[ x"$sonic_asic_platform" == x"mellanox" ]]; then - debug "Starting pmon service..." - /bin/systemctl start pmon - debug "Started pmon service" + if [[ x"$BOOT_TYPE" = @(x"fast"|x"warm"|x"fastfast") ]]; then + debug "PMON service is delayed by a timer for better fast/warm boot performance" + else + debug "Starting pmon service..." + /bin/systemctl start pmon + debug "Started pmon service" + fi fi if [[ x"$BOOT_TYPE" = @(x"fast"|x"warm"|x"fastfast") ]]; then debug "LLDP service is delayed by a timer for better fast/warm boot performance" From a9d5858da14d7980adacd4e00561e362a4253156 Mon Sep 17 00:00:00 2001 From: Song Yuan <64041228+ysmanman@users.noreply.github.com> Date: Mon, 2 May 2022 09:49:42 -0700 Subject: [PATCH 140/251] Fix buffer template for Arista SKU. (#10663) Why I did it The buffer pool & profile setting in buffer template was not correct and caused the errors like the following: ERR swss#orchagent: :- parseReference: malformed reference:[BUFFER_PROFILE|ingress_lossless_profile]. Must not be surrounded by [ ] How I did it Fix the buffer pool & profile setting by removing "[]". How to verify it Loaded image with this fix in a switch and made sure the error was not seen anymore. --- .../buffers_defaults_t2.j2 | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/device/arista/x86_64-arista_7800r3_48cq2_lc/Arista-7800R3-48CQ2-C48/buffers_defaults_t2.j2 b/device/arista/x86_64-arista_7800r3_48cq2_lc/Arista-7800R3-48CQ2-C48/buffers_defaults_t2.j2 index b5931bd37268..b292a354b55a 100644 --- a/device/arista/x86_64-arista_7800r3_48cq2_lc/Arista-7800R3-48CQ2-C48/buffers_defaults_t2.j2 +++ b/device/arista/x86_64-arista_7800r3_48cq2_lc/Arista-7800R3-48CQ2-C48/buffers_defaults_t2.j2 @@ -1,4 +1,3 @@ - {%- set default_cable = '5m' %} {%- macro generate_port_lists(PORT_ALL) %} @@ -19,7 +18,7 @@ }, "BUFFER_PROFILE": { "ingress_lossless_profile": { - "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "pool":"ingress_lossless_pool", "size":"1280", "dynamic_th":"-2", "xon_offset":"2560", @@ -27,18 +26,18 @@ "xoff":"66048" }, "ingress_lossy_profile": { - "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "pool":"ingress_lossless_pool", "size":"0", "xon_offset":"0", "static_th":"30535680" }, "egress_lossless_profile": { - "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "pool":"ingress_lossless_pool", "size":"0", "static_th":"33030144" }, "egress_lossy_profile": { - "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "pool":"ingress_lossless_pool", "size":"0", "dynamic_th":"-1" } @@ -49,18 +48,18 @@ "BUFFER_QUEUE": { {% for port in port_names.split(',') %} "{{ port }}|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, {% endfor %} {% for port in port_names.split(',') %} "{{ port }}|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, {% endfor %} {% for port in port_names.split(',') %} "{{ port }}|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }{% if not loop.last %},{% endif %} {% endfor %} } -{%- endmacro %} \ No newline at end of file +{%- endmacro %} From 0a6bb3f6f0c6ce70d0643a9adc2d8276c7f80e11 Mon Sep 17 00:00:00 2001 From: Andriy Yurkiv <70649192+ayurkiv-nvda@users.noreply.github.com> Date: Mon, 2 May 2022 19:51:30 +0300 Subject: [PATCH 141/251] [yang] add yang options for Context object (#10359) #### Why I did it Need to pass LY_CTX_DISABLE_SEARCHDIR_CWD to Context in order to disable automatically searching for schemas in current working directory (which is by default searched automatically) #### How I did it add additional attribute into YANG context #### How to verify it Create some invalid link on switch : 1) **ln -s /usr/abc xxx** 2) run **spm list** --> There should not be these messages: ``` libyang[1]: Unable to get information about "xxx" file in "/tmp" when searching for (sub)modules (No such file or directory) libyang[1]: Unable to get information about "xxx" file in "/tmp" when searching for (sub)modules (No such file or directory) libyang[1]: Unable to get information about "xxx" file in "/tmp" when searching for (sub)modules (No such file or directory) libyang[1]: Unable to get information about "xxx" file in "/tmp" when searching for (sub)modules (No such file or directory) ``` --- src/sonic-yang-mgmt/sonic_yang.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sonic-yang-mgmt/sonic_yang.py b/src/sonic-yang-mgmt/sonic_yang.py index 16aeb8a9ff8a..6bf590fced38 100644 --- a/src/sonic-yang-mgmt/sonic_yang.py +++ b/src/sonic-yang-mgmt/sonic_yang.py @@ -12,7 +12,7 @@ """ class SonicYang(SonicYangExtMixin): - def __init__(self, yang_dir, debug=False, print_log_enabled=True): + def __init__(self, yang_dir, debug=False, print_log_enabled=True, sonic_yang_options=0): self.yang_dir = yang_dir self.ctx = None self.module = None @@ -46,7 +46,7 @@ def __init__(self, yang_dir, debug=False, print_log_enabled=True): self.preProcessedYang = dict() try: - self.ctx = ly.Context(yang_dir) + self.ctx = ly.Context(yang_dir, sonic_yang_options) except Exception as e: self.fail(e) From a1e76d25b727da8f8493dfa9eb1a1433564d790c Mon Sep 17 00:00:00 2001 From: Polly Hsu Date: Tue, 3 May 2022 02:09:16 +0800 Subject: [PATCH 142/251] [as7816-64x] Update installer.conf (#10418) Co-authored-by: ecsonic Why I did it The customer report of the PCIe Bus Errors upon the SDK initialization of as7816-64x. How I did it Based on the internal info and discussion, update "pcie_aspm=off" into ONIE_PLATFORM_EXTRA_CMDLINE_LINUX of installer.conf to resolve it. --- device/accton/x86_64-accton_as7816_64x-r0/installer.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/device/accton/x86_64-accton_as7816_64x-r0/installer.conf b/device/accton/x86_64-accton_as7816_64x-r0/installer.conf index 9fa12f888545..ca2e5039b362 100644 --- a/device/accton/x86_64-accton_as7816_64x-r0/installer.conf +++ b/device/accton/x86_64-accton_as7816_64x-r0/installer.conf @@ -1,2 +1,2 @@ CONSOLE_SPEED=115200 -ONIE_PLATFORM_EXTRA_CMDLINE_LINUX="tg3.short_preamble=1 tg3.bcm5718s_reset=1" +ONIE_PLATFORM_EXTRA_CMDLINE_LINUX="tg3.short_preamble=1 tg3.bcm5718s_reset=1 pcie_aspm=off" From 243d0c73f96991ec0efbde76c7ea1358c833cd48 Mon Sep 17 00:00:00 2001 From: kellyyeh <42761586+kellyyeh@users.noreply.github.com> Date: Mon, 2 May 2022 17:14:13 -0700 Subject: [PATCH 143/251] [dhcp6relay] Add retry mechanism for binding socket to interface ipv6 addresses (#10712) --- src/dhcp6relay/src/relay.cpp | 71 +++++++++++++++++++++--------------- 1 file changed, 42 insertions(+), 29 deletions(-) diff --git a/src/dhcp6relay/src/relay.cpp b/src/dhcp6relay/src/relay.cpp index 234646c1fb74..951b31f90a0c 100644 --- a/src/dhcp6relay/src/relay.cpp +++ b/src/dhcp6relay/src/relay.cpp @@ -378,44 +378,57 @@ void prepare_socket(int *local_sock, int *server_sock, relay_config *config, int memset(&ll_addr, 0, sizeof(ll_addr)); if ((*local_sock = socket(AF_INET6, SOCK_DGRAM, 0)) == -1) { - syslog(LOG_ERR, "socket: Failed to create socket\n"); + syslog(LOG_ERR, "socket: Failed to create socket on interface %s\n", config->interface.c_str()); } if ((*server_sock= socket(AF_INET6, SOCK_DGRAM, 0)) == -1) { - syslog(LOG_ERR, "socket: Failed to create socket\n"); + syslog(LOG_ERR, "socket: Failed to create socket on interface %s\n", config->interface.c_str()); } - - if (getifaddrs(&ifa) == -1) { - syslog(LOG_WARNING, "getifaddrs: Unable to get network interfaces\n"); - exit(1); - } - - ifa_tmp = ifa; - while (ifa_tmp) { - if (ifa_tmp->ifa_addr->sa_family == AF_INET6) { - struct sockaddr_in6 *in6 = (struct sockaddr_in6*) ifa_tmp->ifa_addr; - if((strcmp(ifa_tmp->ifa_name, config->interface.c_str()) == 0) && !IN6_IS_ADDR_LINKLOCAL(&in6->sin6_addr)) { - in6->sin6_family = AF_INET6; - in6->sin6_port = htons(RELAY_PORT); - addr = *in6; - } - if((strcmp(ifa_tmp->ifa_name, config->interface.c_str()) == 0) && IN6_IS_ADDR_LINKLOCAL(&in6->sin6_addr)) { - in6->sin6_family = AF_INET6; - in6->sin6_port = htons(RELAY_PORT); - ll_addr = *in6; + int retry = 0; + bool bind_addr = false; + bool bind_ll_addr = false; + do { + if (getifaddrs(&ifa) == -1) { + syslog(LOG_WARNING, "getifaddrs: Unable to get network interfaces with %s\n", strerror(errno)); + } + else { + ifa_tmp = ifa; + while (ifa_tmp) { + if ((ifa_tmp->ifa_addr->sa_family == AF_INET6) && (strcmp(ifa_tmp->ifa_name, config->interface.c_str()) == 0)) { + struct sockaddr_in6 *in6 = (struct sockaddr_in6*) ifa_tmp->ifa_addr; + if(!IN6_IS_ADDR_LINKLOCAL(&in6->sin6_addr)) { + bind_addr = true; + in6->sin6_family = AF_INET6; + in6->sin6_port = htons(RELAY_PORT); + addr = *in6; + } + if(IN6_IS_ADDR_LINKLOCAL(&in6->sin6_addr)) { + bind_ll_addr = true; + in6->sin6_family = AF_INET6; + in6->sin6_port = htons(RELAY_PORT); + ll_addr = *in6; + } + } + ifa_tmp = ifa_tmp->ifa_next; } + freeifaddrs(ifa); } - ifa_tmp = ifa_tmp->ifa_next; - } - freeifaddrs(ifa); - - if (bind(*local_sock, (sockaddr *)&addr, sizeof(addr)) == -1) { - syslog(LOG_ERR, "bind: Failed to bind to socket\n"); + + if (bind_addr && bind_ll_addr) { + break; + } + + syslog(LOG_WARNING, "Retry #%d to bind to sockets on interface %s\n", ++retry, config->interface.c_str()); + sleep(5); + } while (retry < 6); + + if ((!bind_addr) || (bind(*local_sock, (sockaddr *)&addr, sizeof(addr)) == -1)) { + syslog(LOG_ERR, "bind: Failed to bind socket to global ipv6 address on interface %s after %d retries with %s\n", config->interface.c_str(), retry, strerror(errno)); } - if (bind(*server_sock, (sockaddr *)&ll_addr, sizeof(addr)) == -1) { - syslog(LOG_ERR, "bind: Failed to bind to socket\n"); + if ((!bind_ll_addr) || (bind(*server_sock, (sockaddr *)&ll_addr, sizeof(addr)) == -1)) { + syslog(LOG_ERR, "bind: Failed to bind socket to link local ipv6 address on interface %s after %d retries with %s\n", config->interface.c_str(), retry, strerror(errno)); } } From 799d0c0313a5ea812919dca497290fc4ea884078 Mon Sep 17 00:00:00 2001 From: DavidZagury <32644413+DavidZagury@users.noreply.github.com> Date: Wed, 4 May 2022 16:56:21 +0300 Subject: [PATCH 144/251] [YANG] Update range of supported port speeds to support 800G ports (#10687) - Why I did it To add support for 800G speed for port in the yang. - How I did it Change limitation from 400G to 800G. - How to verify it Set a port speed to 800G and run the yang DB validation. e.g. by using dynamic port breakout. --- .../tests/yang_model_tests/tests/port.json | 7 +++ .../yang_model_tests/tests_config/port.json | 51 +++++++++++++++++++ .../yang-models/sonic-port.yang | 4 +- 3 files changed, 60 insertions(+), 2 deletions(-) diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests/port.json b/src/sonic-yang-models/tests/yang_model_tests/tests/port.json index b3aa253c2e72..db9b432714eb 100644 --- a/src/sonic-yang-models/tests/yang_model_tests/tests/port.json +++ b/src/sonic-yang-models/tests/yang_model_tests/tests/port.json @@ -24,6 +24,13 @@ "eStrKey" : "Pattern", "eStr": ["on|off"] }, + "PORT_VALID_SPEEDS_TEST_1": { + "desc": "PORT_VALID_SPEEDS_TEST_1 no failure." + }, + "PORT_INVALID_SPEEDS_TEST_1": { + "desc": "PORT_INVALID_SPEEDS_TEST_1 InvalidValue condition failure.", + "eStr": ["pattern", "does not satisfy"] + }, "PORT_VALID_ADVSPEEDS_TEST_1": { "desc": "PORT_VALID_ADVSPEEDS_TEST_1 no failure." }, diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests_config/port.json b/src/sonic-yang-models/tests/yang_model_tests/tests_config/port.json index e1549261cb92..db3334e80d2b 100644 --- a/src/sonic-yang-models/tests/yang_model_tests/tests_config/port.json +++ b/src/sonic-yang-models/tests/yang_model_tests/tests_config/port.json @@ -90,6 +90,40 @@ } }, + "PORT_VALID_SPEEDS_TEST_1": { + "sonic-port:sonic-port": { + "sonic-port:PORT": { + "PORT_LIST": [ + { + "name": "Ethernet8", + "alias": "eth8", + "lanes": "65", + "speed": 800000, + "autoneg": "on", + "adv_speeds": [400000, 800000] + } + ] + } + } + }, + + "PORT_INVALID_SPEEDS_TEST_1": { + "sonic-port:sonic-port": { + "sonic-port:PORT": { + "PORT_LIST": [ + { + "name": "Ethernet8", + "alias": "eth8", + "lanes": "65", + "speed": 900000, + "autoneg": "on", + "adv_speeds": [25000,40000] + } + ] + } + } + }, + "PORT_VALID_ADVSPEEDS_TEST_1": { "sonic-port:sonic-port": { "sonic-port:PORT": { @@ -124,6 +158,23 @@ } }, + "PORT_VALID_ADVSPEEDS_TEST_3": { + "sonic-port:sonic-port": { + "sonic-port:PORT": { + "PORT_LIST": [ + { + "name": "Ethernet8", + "alias": "eth8", + "lanes": "65", + "speed": 25000, + "autoneg": "on", + "adv_speeds": [25000,800000] + } + ] + } + } + }, + "PORT_INVALID_ADVSPEEDS_TEST_1": { "sonic-port:sonic-port": { "sonic-port:PORT": { diff --git a/src/sonic-yang-models/yang-models/sonic-port.yang b/src/sonic-yang-models/yang-models/sonic-port.yang index add4de25ce0a..eab52996fb00 100644 --- a/src/sonic-yang-models/yang-models/sonic-port.yang +++ b/src/sonic-yang-models/yang-models/sonic-port.yang @@ -61,7 +61,7 @@ module sonic-port{ leaf speed { mandatory true; type uint32 { - range 1..400000; + range 1..800000; } } @@ -78,7 +78,7 @@ module sonic-port{ type union { type uint32 { - range 1..400000; + range 1..800000; } type string { pattern "all"; From 6284d136ec964e12f9c05df6b0507ab2dd939294 Mon Sep 17 00:00:00 2001 From: Lior Avramov <73036155+liorghub@users.noreply.github.com> Date: Wed, 4 May 2022 18:21:02 +0300 Subject: [PATCH 145/251] [LLDP] Enhance lldmgrd Redis events handling (#10593) Why I did it When lldpmgrd handled events of other tables besides PORT_TABLE, error message was printed to log. How I did it Handle event according to its file descriptor instead of looping all registered selectables for each coming event. How to verify it I verified same events are being handled by printing events key and operation, before and after the change. Also, before the change, in init flow after config reload, when lldpmgrd handled events of other tables besides PORT_TABLE, error messages were printed to log, this issue is solved now. --- dockers/docker-lldp/lldpmgrd | 62 +++++++++++++++++++----------------- 1 file changed, 33 insertions(+), 29 deletions(-) diff --git a/dockers/docker-lldp/lldpmgrd b/dockers/docker-lldp/lldpmgrd index 93461a42837e..753aa678eaee 100755 --- a/dockers/docker-lldp/lldpmgrd +++ b/dockers/docker-lldp/lldpmgrd @@ -76,6 +76,9 @@ class LldpManager(daemon_base.DaemonBase): self.app_port_table = swsscommon.Table(self.appl_db, swsscommon.APP_PORT_TABLE_NAME) self.state_port_table = swsscommon.Table(self.state_db, swsscommon.STATE_PORT_TABLE_NAME) + self.port_config_done = False + self.port_init_done = False + def update_hostname(self, hostname): cmd = "lldpcli configure system hostname {0}".format(hostname) self.log_debug("Running command: '{}'".format(cmd)) @@ -247,6 +250,23 @@ class LldpManager(daemon_base.DaemonBase): self.log_info("Hostname changed old {0}, new {1}".format(self.hostname, hostname)) self.update_hostname(hostname) + def lldp_process_port_table_event(self, key, op, fvp): + if (key != "PortInitDone") and (key != "PortConfigDone"): + if op == "SET": + if fvp: + if "up" in dict(fvp).get("oper_status",""): + self.generate_pending_lldp_config_cmd_for_port(key, dict(fvp)) + else: + self.pending_cmds.pop(key, None) + elif op == "DEL": + self.pending_cmds.pop(key, None) + else: + self.log_error("unknown operation '{}'".format(op)) + elif key == "PortInitDone": + self.port_init_done = True + elif key == "PortConfigDone": + self.port_config_done = True + def run(self): """ Subscribes to notifications of changes in the PORT table @@ -267,8 +287,6 @@ class LldpManager(daemon_base.DaemonBase): # Daemon is paused on the configuration file to avoid lldp packets with wrong information # until all interfaces are well configured on lldpd - port_init_done = False - port_config_done = False resume_lldp_sent = False start_time = time.time() @@ -288,34 +306,20 @@ class LldpManager(daemon_base.DaemonBase): # Listen for changes to the PORT table in the CONFIG_DB and APP_DB while True: - (state, c) = sel.select(SELECT_TIMEOUT_MS) + (state, selectableObj) = sel.select(SELECT_TIMEOUT_MS) if state == swsscommon.Select.OBJECT: - (key, op, fvp) = sst_mgmt_ip_confdb.pop() - if key: + if selectableObj.getFd() == sst_mgmt_ip_confdb.getFd(): + (key, op, fvp) = sst_mgmt_ip_confdb.pop() self.lldp_process_mgmt_info_change(op, dict(fvp), key) - - (key, op, fvp) = sst_device_confdb.pop() - if key: + elif selectableObj.getFd() == sst_device_confdb.getFd(): + (key, op, fvp) = sst_device_confdb.pop() self.lldp_process_device_table_event(op, dict(fvp), key) - - (key, op, fvp) = sst_appdb.pop() - if (key != "PortInitDone") and (key != "PortConfigDone"): - if op == "SET": - if fvp: - if "up" in dict(fvp).get("oper_status",""): - self.generate_pending_lldp_config_cmd_for_port(key, dict(fvp)) - else: - self.pending_cmds.pop(key, None) - elif op == "DEL": - self.pending_cmds.pop(key, None) - else: - self.log_error("unknown operation") - - elif key == "PortInitDone": - port_init_done = True - elif key == "PortConfigDone": - port_config_done = True + elif selectableObj.getFd() == sst_appdb.getFd(): + (key, op, fvp) = sst_appdb.pop() + self.lldp_process_port_table_event(key, op, fvp) + else: + self.log_error("Got unexpected selectable object") # Process all pending commands self.process_pending_cmds() @@ -323,9 +327,9 @@ class LldpManager(daemon_base.DaemonBase): # Resume the daemon since all interfaces data updated and configured to the lldpd so no miss leading packets will be sent if not resume_lldp_sent: if check_timeout(self, start_time): - port_init_done = port_config_done = True - if port_init_done and port_config_done: - port_init_done = port_config_done = False + self.port_init_done = self.port_config_done = True + if self.port_init_done and self.port_config_done: + self.port_init_done = self.port_config_done = False rc, stderr = run_cmd(self, "lldpcli resume") if rc != 0: self.log_error("Failed to resume lldpd with command: 'lldpcli resume': {}".format(stderr)) From 288d667c66ddf98defea9ea8e41066e24f2b8dbb Mon Sep 17 00:00:00 2001 From: arlakshm <55814491+arlakshm@users.noreply.github.com> Date: Wed, 4 May 2022 15:05:44 -0700 Subject: [PATCH 146/251] [yang][multi-asic]bgp internal neighbor yang model (#10632) closes #10157 Why I did it Add yang model for the bgp_internal_neighbor table in config_db How I did it Add new yang model file and unit tests How to verify it UT and compile sonic_yang_models-1.0-py3-none-any.whl and sonic_yang_mgmt-1.0-py3-none-any.whl Signed-off-by: Arvindsrinivasan Lakshmi Narasimhan --- src/sonic-yang-models/setup.py | 1 + .../tests/files/sample_config_db.json | 70 +++++++++- .../yang_model_tests/tests/bgp_internal.json | 17 +++ .../tests_config/bgp_internal.json | 128 ++++++++++++++++++ .../sonic-bgp-internal-neighbor.yang | 58 ++++++++ 5 files changed, 270 insertions(+), 4 deletions(-) create mode 100644 src/sonic-yang-models/tests/yang_model_tests/tests/bgp_internal.json create mode 100644 src/sonic-yang-models/tests/yang_model_tests/tests_config/bgp_internal.json create mode 100644 src/sonic-yang-models/yang-models/sonic-bgp-internal-neighbor.yang diff --git a/src/sonic-yang-models/setup.py b/src/sonic-yang-models/setup.py index 4ca8d065c6ec..1928643c28ed 100644 --- a/src/sonic-yang-models/setup.py +++ b/src/sonic-yang-models/setup.py @@ -82,6 +82,7 @@ def run(self): './yang-models/sonic-bgp-common.yang', './yang-models/sonic-bgp-global.yang', './yang-models/sonic-bgp-monitor.yang', + './yang-models/sonic-bgp-internal-neighbor.yang', './yang-models/sonic-bgp-neighbor.yang', './yang-models/sonic-bgp-peergroup.yang', './yang-models/sonic-bgp-peerrange.yang', diff --git a/src/sonic-yang-models/tests/files/sample_config_db.json b/src/sonic-yang-models/tests/files/sample_config_db.json index 8c5a8c0af909..505c92ba96dd 100644 --- a/src/sonic-yang-models/tests/files/sample_config_db.json +++ b/src/sonic-yang-models/tests/files/sample_config_db.json @@ -103,18 +103,32 @@ "tpid": "0x9200", "mtu": "9100", "lacp_key": "auto" + }, + "PortChannel42": { + "admin_status": "up", + "members": [ + "Ethernet-BP0", + "Ethernet-BP4" + ], + "min_links": "2", + "mtu": "9100", + "tpid": "0x8100" } }, "PORTCHANNEL_INTERFACE": { "PortChannel0003": { "nat_zone": "1" }, - "PortChannel0004": {"vrf_name": "Vrf_blue"} + "PortChannel0004": {"vrf_name": "Vrf_blue"}, + "PortChannel42|10.1.0.1/31": {}, + "PortChannel42|2603:10e2:400:1::2/126": {} }, "PORTCHANNEL_MEMBER": { "PortChannel0003|Ethernet1": {}, "PortChannel0004|Ethernet2": {}, - "PortChannel2|Ethernet12": {} + "PortChannel2|Ethernet12": {}, + "PortChannel42|Ethernet-BP0": {}, + "PortChannel42|Ethernet-BP4": {} }, "VLAN_INTERFACE": { "Vlan111": { @@ -734,7 +748,33 @@ "speed": "11100", "tpid": "0x8100", "admin_status": "up" - } + }, + "Ethernet-BP0": { + "admin_status": "up", + "alias": "Eth4-ASIC0", + "asic_port_name": "Eth4-ASIC0", + "description": "ASIC2:Eth0-ASIC2", + "index": "0", + "lanes": "17,18,19,20", + "mtu": "9100", + "pfc_asym": "off", + "role": "Int", + "speed": "40000", + "tpid": "0x8100" + }, + "Ethernet-BP4": { + "admin_status": "up", + "alias": "Eth5-ASIC0", + "asic_port_name": "Eth5-ASIC0", + "description": "ASIC2:Eth1-ASIC2", + "index": "1", + "lanes": "21,22,23,24", + "mtu": "9100", + "pfc_asym": "off", + "role": "Int", + "speed": "40000", + "tpid": "0x8100" + } }, "ACL_TABLE": { "V4-ACL-TABLE": { @@ -1704,8 +1744,30 @@ "send_sci": "true", "rekey_period": "3600" } - } + }, + "BGP_INTERNAL_NEIGHBOR": { + "10.1.0.0": { + "asn": "64850", + "holdtime": "180", + "keepalive": "60", + "local_addr": "10.1.0.1", + "name": "ASIC1", + "nhopself": "0", + "rrclient": "0", + "admin_status": "up" + }, + "2603:10e2:400:1::1": { + "asn": "64850", + "holdtime": "180", + "keepalive": "60", + "local_addr": "2603:10e2:400:1::2", + "name": "ASIC0", + "nhopself": "0", + "rrclient": "0", + "admin_status": "up" + } + } }, "SAMPLE_CONFIG_DB_UNKNOWN": { "UNKNOWN_TABLE": { diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests/bgp_internal.json b/src/sonic-yang-models/tests/yang_model_tests/tests/bgp_internal.json new file mode 100644 index 000000000000..3438b70c8c5e --- /dev/null +++ b/src/sonic-yang-models/tests/yang_model_tests/tests/bgp_internal.json @@ -0,0 +1,17 @@ +{ + "BGP_INTERNAL_TEST": { + "desc": "Load bgp internal neighbor table with ipv4 and ipv6 neighbors." + }, + "BGP_INTERNAL_INVALID_ASN_TEST": { + "desc": "Load bgp internal neighbor table with ipv4 neighbor having incorrect asn.", + "eStr": ["Internal iBGP neighbors should have same ASN as defined in device metadata"] + }, + "BGP_INVALID_LOCAL_ADDRESS_FAMILY_TEST": { + "desc": "Load bgp internal ipv4 neighboripv6 local address.", + "eStr": ["local address and neighbor address family doesnt match"] + }, + "BGP_LOCAL_ADDRESS_ABSENT_TEST": { + "desc":"Load bgp internal neighbor table no local address.", + "eStrKey" : "Mandatory" + } +} \ No newline at end of file diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests_config/bgp_internal.json b/src/sonic-yang-models/tests/yang_model_tests/tests_config/bgp_internal.json new file mode 100644 index 000000000000..07a26ab34556 --- /dev/null +++ b/src/sonic-yang-models/tests/yang_model_tests/tests_config/bgp_internal.json @@ -0,0 +1,128 @@ +{ + "BGP_INTERNAL_TEST": { + "sonic-bgp-internal-neighbor:sonic-bgp-internal-neighbor": { + "sonic-bgp-internal-neighbor:BGP_INTERNAL_NEIGHBOR": { + "BGP_INTERNAL_NEIGHBOR_LIST": [ + { + "neighbor": "10.0.0.1", + "asn": "65001", + "holdtime": "180", + "keepalive": "60", + "local_addr": "10.0.0.2", + "name": "ASIC0", + "nhopself": "0", + "rrclient": "0", + "admin_status": "up" + }, + { + "neighbor": "2603:10e2:400:1::1", + "asn": "65001", + "holdtime": "180", + "keepalive": "60", + "local_addr": "2603:10e2:400:1::2", + "name": "ASIC0", + "nhopself": "0", + "rrclient": "0", + "admin_status": "up" + } + ] + } + }, + "sonic-device_metadata:sonic-device_metadata": { + "sonic-device_metadata:DEVICE_METADATA": { + "localhost": { + "bgp_asn": "65001", + "default_bgp_status": "up", + "hostname": "MASIC", + "platform": "multi-asic" + } + } + } + }, + "BGP_INTERNAL_INVALID_ASN_TEST": { + "sonic-bgp-internal-neighbor:sonic-bgp-internal-neighbor": { + "sonic-bgp-internal-neighbor:BGP_INTERNAL_NEIGHBOR": { + "BGP_INTERNAL_NEIGHBOR_LIST": [ + { + "neighbor": "10.0.0.1", + "asn": "65002", + "holdtime": "180", + "keepalive": "60", + "local_addr": "10.0.0.2", + "name": "ASIC0", + "nhopself": "0", + "rrclient": "0", + "admin_status": "up" + } + ] + } + }, + "sonic-device_metadata:sonic-device_metadata": { + "sonic-device_metadata:DEVICE_METADATA": { + "localhost": { + "bgp_asn": "65001", + "default_bgp_status": "up", + "hostname": "MASIC", + "platform": "multi-asic" + } + } + } + }, + "BGP_INVALID_LOCAL_ADDRESS_FAMILY_TEST": { + "sonic-bgp-internal-neighbor:sonic-bgp-internal-neighbor": { + "sonic-bgp-internal-neighbor:BGP_INTERNAL_NEIGHBOR": { + "BGP_INTERNAL_NEIGHBOR_LIST": [ + { + "neighbor": "10.0.0.1", + "asn": "65001", + "holdtime": "180", + "keepalive": "60", + "local_addr": "2603:10e2:400:1::5", + "name": "ASIC0", + "nhopself": "0", + "rrclient": "0", + "admin_status": "up" + } + ] + } + }, + "sonic-device_metadata:sonic-device_metadata": { + "sonic-device_metadata:DEVICE_METADATA": { + "localhost": { + "bgp_asn": "65001", + "default_bgp_status": "up", + "hostname": "MASIC", + "platform": "multi-asic" + } + } + } + }, + "BGP_LOCAL_ADDRESS_ABSENT_TEST": { + "sonic-bgp-internal-neighbor:sonic-bgp-internal-neighbor": { + "sonic-bgp-internal-neighbor:BGP_INTERNAL_NEIGHBOR": { + "BGP_INTERNAL_NEIGHBOR_LIST": [ + { + "neighbor": "2603:10e2:400:1::1", + "asn": "65001", + "holdtime": "180", + "keepalive": "60", + "name": "ASIC0", + "nhopself": "0", + "rrclient": "0", + "admin_status": "up" + } + ] + } + }, + "sonic-device_metadata:sonic-device_metadata": { + "sonic-device_metadata:DEVICE_METADATA": { + "localhost": { + "bgp_asn": "65001", + "default_bgp_status": "up", + "hostname": "MASIC", + "platform": "multi-asic" + } + } + } + } +} \ No newline at end of file diff --git a/src/sonic-yang-models/yang-models/sonic-bgp-internal-neighbor.yang b/src/sonic-yang-models/yang-models/sonic-bgp-internal-neighbor.yang new file mode 100644 index 000000000000..69a089f7cab8 --- /dev/null +++ b/src/sonic-yang-models/yang-models/sonic-bgp-internal-neighbor.yang @@ -0,0 +1,58 @@ +module sonic-bgp-internal-neighbor { + namespace "http://github.com/Azure/sonic-bgp-internal-neighbor"; + prefix bgpintnbr; + yang-version 1.1; + + import ietf-inet-types { + prefix inet; + } + + import sonic-device_metadata { + prefix dm; + } + + import sonic-bgp-common { + prefix bgpcmn; + } + + organization + "SONiC"; + + contact + "SONiC"; + + description + "SONIC BGP Internal Neighbor for multi asic platforms"; + + revision 2021-04-10 { + description + "Initial revision."; + } + + container sonic-bgp-internal-neighbor { + container BGP_INTERNAL_NEIGHBOR { + list BGP_INTERNAL_NEIGHBOR_LIST { + description "List for internal neighbors in multi asic platforms"; + key "neighbor"; + leaf neighbor { + type inet:ip-address; + description "BGP Neighbor address"; + } + uses bgpcmn:sonic-bgp-cmn-neigh { + refine asn { + must "(current() = /dm:sonic-device_metadata/dm:DEVICE_METADATA/dm:localhost/dm:bgp_asn)" { + error-message "Internal iBGP neighbors should have same ASN as defined in device metadata"; + } + } + refine local_addr { + mandatory true; + must "((contains(../neighbor, '.') and contains(current(), '.')) or + (contains(../neighbor, ':') and contains(current(), ':')))" { + error-message "local address and neighbor address family doesnt match"; + } + } + } + } + } + } +} \ No newline at end of file From 0dcbfa3a9729c814f9e8d7a8f28fbe65ab8a24dd Mon Sep 17 00:00:00 2001 From: arlakshm <55814491+arlakshm@users.noreply.github.com> Date: Wed, 4 May 2022 15:07:59 -0700 Subject: [PATCH 147/251] [chassis][yang]yang model for bgp voq chassis neighbor (#10642) Signed-off-by: Arvindsrinivasan Lakshmi Narasimhan arlakshm@microsoft.com Why I did it Fixes #10158 How I did it Add yang model for config_db table BGP_VOQ_CHASSIS_NEIGHBOR and UT --- src/sonic-yang-models/setup.py | 1 + .../tests/files/sample_config_db.json | 22 ++ .../tests/bgp_voq_chassis_neighbor.json | 21 ++ .../bgp_voq_chassis_neighbor.json | 206 ++++++++++++++++++ .../sonic-bgp-voq-chassis-neighbor.yang | 63 ++++++ 5 files changed, 313 insertions(+) create mode 100644 src/sonic-yang-models/tests/yang_model_tests/tests/bgp_voq_chassis_neighbor.json create mode 100644 src/sonic-yang-models/tests/yang_model_tests/tests_config/bgp_voq_chassis_neighbor.json create mode 100644 src/sonic-yang-models/yang-models/sonic-bgp-voq-chassis-neighbor.yang diff --git a/src/sonic-yang-models/setup.py b/src/sonic-yang-models/setup.py index 1928643c28ed..2b55946cc144 100644 --- a/src/sonic-yang-models/setup.py +++ b/src/sonic-yang-models/setup.py @@ -87,6 +87,7 @@ def run(self): './yang-models/sonic-bgp-peergroup.yang', './yang-models/sonic-bgp-peerrange.yang', './yang-models/sonic-bgp-allowed-prefix.yang', + './yang-models/sonic-bgp-voq-chassis-neighbor.yang', './yang-models/sonic-breakout_cfg.yang', './yang-models/sonic-buffer-pg.yang', './yang-models/sonic-buffer-pool.yang', diff --git a/src/sonic-yang-models/tests/files/sample_config_db.json b/src/sonic-yang-models/tests/files/sample_config_db.json index 505c92ba96dd..e44e74b531dc 100644 --- a/src/sonic-yang-models/tests/files/sample_config_db.json +++ b/src/sonic-yang-models/tests/files/sample_config_db.json @@ -1729,6 +1729,28 @@ } }, + "BGP_VOQ_CHASSIS_NEIGHBOR": { + "10.0.0.1": { + "asn": "64850", + "holdtime": "180", + "keepalive": "60", + "local_addr": "10.0.0.2", + "name": "sonic-chassis-lc3", + "nhopself": "0", + "rrclient": "0", + "admin_status": "up" + }, + "3333::3:6": { + "asn": "64850", + "holdtime": "180", + "keepalive": "60", + "local_addr": "3333::3:3", + "name": "sonic-chassis-lc3", + "nhopself": "0", + "rrclient": "0", + "admin_status": "up" + } + }, "MACSEC_PROFILE": { "test": { diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests/bgp_voq_chassis_neighbor.json b/src/sonic-yang-models/tests/yang_model_tests/tests/bgp_voq_chassis_neighbor.json new file mode 100644 index 000000000000..3d575bb9759a --- /dev/null +++ b/src/sonic-yang-models/tests/yang_model_tests/tests/bgp_voq_chassis_neighbor.json @@ -0,0 +1,21 @@ +{ + "BGP_VOQ_CHASSIS_NEIGHBOR_TEST" : { + "desc": "Load bgp voq chassis neighbor" + }, + "BGP_VOQ_CHASSIS_WITH_INVALID_SWITCH_TYPE_TEST" : { + "desc": "Load bgp voq chassis on non voq chassis switch", + "eStr": ["Bgp voq neighbor are applicable only when switch_type is voq"] + }, + "BGP_VOQ_CHASSIS_ABSENT_LOCAL_ADDRESS_TEST" : { + "desc": "Load bgp voq chassis with no local address", + "eStrKey" : "Mandatory" + }, + "BGP_VOQ_CHASSIS_INVALID_LOCAL_ADDRESS_ADDRESS_FAMILY_TEST": { + "desc": "Load ipv6 bgp voq chassis with ipv4 local address", + "eStr": ["local address and neighbor address family doesnt match"] + }, + "BGP_VOQ_CHASSIS_INVALID_ASN_TEST": { + "desc" :"Load bgp voq chassis neighbor with asn number different than local asn", + "eStr": ["Voq chassis BGP neighbors should have same ASN as defined in device metadata"] + } +} \ No newline at end of file diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests_config/bgp_voq_chassis_neighbor.json b/src/sonic-yang-models/tests/yang_model_tests/tests_config/bgp_voq_chassis_neighbor.json new file mode 100644 index 000000000000..877903912383 --- /dev/null +++ b/src/sonic-yang-models/tests/yang_model_tests/tests_config/bgp_voq_chassis_neighbor.json @@ -0,0 +1,206 @@ +{ + "BGP_VOQ_CHASSIS_NEIGHBOR_TEST": { + "sonic-bgp-voq-chassis-neighbor:sonic-bgp-voq-chassis-neighbor": { + "sonic-bgp-voq-chassis-neighbor:BGP_VOQ_CHASSIS_NEIGHBOR": { + "BGP_VOQ_CHASSIS_NEIGHBOR_LIST": [ + { + "neighbor": "10.0.0.1", + "asn": "65001", + "holdtime": "180", + "keepalive": "60", + "local_addr": "10.0.0.2", + "name": "sonic-chassis-lc3", + "nhopself": "0", + "rrclient": "0", + "admin_status": "up" + }, + { + "neighbor": "3333::3:6", + "asn": "65001", + "holdtime": "180", + "keepalive": "60", + "local_addr": "3333::3:3", + "name": "sonic-chassis-lc3", + "nhopself": "0", + "rrclient": "0", + "admin_status": "up" + } + ] + } + }, + "sonic-device_metadata:sonic-device_metadata": { + "sonic-device_metadata:DEVICE_METADATA": { + "localhost": { + "bgp_asn": "65001", + "default_bgp_status": "up", + "hostname": "sonic-chassis", + "platform": "voq-chassis", + "switch_type": "voq" + } + } + } + }, + "BGP_VOQ_CHASSIS_WITH_INVALID_SWITCH_TYPE_TEST": { + "sonic-bgp-voq-chassis-neighbor:sonic-bgp-voq-chassis-neighbor": { + "sonic-bgp-voq-chassis-neighbor:BGP_VOQ_CHASSIS_NEIGHBOR": { + "BGP_VOQ_CHASSIS_NEIGHBOR_LIST": [ + { + "neighbor": "10.0.0.1", + "asn": "65001", + "holdtime": "180", + "keepalive": "60", + "local_addr": "10.0.0.2", + "name": "sonic-chassis-lc3", + "nhopself": "0", + "rrclient": "0", + "admin_status": "up" + }, + { + "neighbor": "3333::3:6", + "asn": "65001", + "holdtime": "180", + "keepalive": "60", + "local_addr": "3333::3:3", + "name": "sonic-chassis-lc3", + "nhopself": "0", + "rrclient": "0", + "admin_status": "up" + } + ] + } + }, + "sonic-device_metadata:sonic-device_metadata": { + "sonic-device_metadata:DEVICE_METADATA": { + "localhost": { + "bgp_asn": "65001", + "default_bgp_status": "up", + "hostname": "sonic-chassis", + "platform": "voq-chassis", + "switch_type": "chassis-packet" + } + } + } + }, + "BGP_VOQ_CHASSIS_ABSENT_LOCAL_ADDRESS_TEST": { + "sonic-bgp-voq-chassis-neighbor:sonic-bgp-voq-chassis-neighbor": { + "sonic-bgp-voq-chassis-neighbor:BGP_VOQ_CHASSIS_NEIGHBOR": { + "BGP_VOQ_CHASSIS_NEIGHBOR_LIST": [ + { + "neighbor": "10.0.0.1", + "asn": "65001", + "holdtime": "180", + "keepalive": "60", + "local_addr": "10.0.0.2", + "name": "sonic-chassis-lc3", + "nhopself": "0", + "rrclient": "0", + "admin_status": "up" + }, + { + "neighbor": "3333::3:6", + "asn": "65001", + "holdtime": "180", + "keepalive": "60", + "name": "sonic-chassis-lc3", + "nhopself": "0", + "rrclient": "0", + "admin_status": "up" + } + ] + } + }, + "sonic-device_metadata:sonic-device_metadata": { + "sonic-device_metadata:DEVICE_METADATA": { + "localhost": { + "bgp_asn": "65001", + "default_bgp_status": "up", + "hostname": "sonic-chassis", + "platform": "voq-chassis", + "switch_type": "voq" + } + } + } + }, + "BGP_VOQ_CHASSIS_INVALID_LOCAL_ADDRESS_ADDRESS_FAMILY_TEST": { + "sonic-bgp-voq-chassis-neighbor:sonic-bgp-voq-chassis-neighbor": { + "sonic-bgp-voq-chassis-neighbor:BGP_VOQ_CHASSIS_NEIGHBOR": { + "BGP_VOQ_CHASSIS_NEIGHBOR_LIST": [ + { + "neighbor": "10.0.0.1", + "asn": "65001", + "holdtime": "180", + "keepalive": "60", + "local_addr": "10.0.0.2", + "name": "sonic-chassis-lc3", + "nhopself": "0", + "rrclient": "0", + "admin_status": "up" + }, + { + "neighbor": "3333::3:6", + "asn": "65001", + "holdtime": "180", + "keepalive": "60", + "local_addr": "3.3.3.3", + "name": "sonic-chassis-lc3", + "nhopself": "0", + "rrclient": "0", + "admin_status": "up" + } + ] + } + }, + "sonic-device_metadata:sonic-device_metadata": { + "sonic-device_metadata:DEVICE_METADATA": { + "localhost": { + "bgp_asn": "65001", + "default_bgp_status": "up", + "hostname": "sonic-chassis", + "platform": "voq-chassis", + "switch_type": "voq" + } + } + } + }, + "BGP_VOQ_CHASSIS_INVALID_ASN_TEST": { + "sonic-bgp-voq-chassis-neighbor:sonic-bgp-voq-chassis-neighbor": { + "sonic-bgp-voq-chassis-neighbor:BGP_VOQ_CHASSIS_NEIGHBOR": { + "BGP_VOQ_CHASSIS_NEIGHBOR_LIST": [ + { + "neighbor": "10.0.0.1", + "asn": "65000", + "holdtime": "180", + "keepalive": "60", + "local_addr": "10.0.0.2", + "name": "sonic-chassis-lc3", + "nhopself": "0", + "rrclient": "0", + "admin_status": "up" + }, + { + "neighbor": "3333::3:6", + "asn": "65001", + "holdtime": "180", + "keepalive": "60", + "local_addr": "3333::3:3", + "name": "sonic-chassis-lc3", + "nhopself": "0", + "rrclient": "0", + "admin_status": "up" + } + ] + } + }, + "sonic-device_metadata:sonic-device_metadata": { + "sonic-device_metadata:DEVICE_METADATA": { + "localhost": { + "bgp_asn": "65001", + "default_bgp_status": "up", + "hostname": "sonic-chassis", + "platform": "voq-chassis", + "switch_type": "voq" + } + } + } + } +} \ No newline at end of file diff --git a/src/sonic-yang-models/yang-models/sonic-bgp-voq-chassis-neighbor.yang b/src/sonic-yang-models/yang-models/sonic-bgp-voq-chassis-neighbor.yang new file mode 100644 index 000000000000..0a7c6c9f1929 --- /dev/null +++ b/src/sonic-yang-models/yang-models/sonic-bgp-voq-chassis-neighbor.yang @@ -0,0 +1,63 @@ +module sonic-bgp-voq-chassis-neighbor { + namespace "http://github.com/Azure/sonic-bgp-voq-chassis-neighbor"; + prefix bgpintnbr; + yang-version 1.1; + + import ietf-inet-types { + prefix inet; + } + + import sonic-device_metadata { + prefix dm; + } + + import sonic-bgp-common { + prefix bgpcmn; + } + organization + "SONiC"; + + contact + "SONiC"; + + description + "SONIC BGP Internal Neighbor for voq chassis platforms"; + + revision 2021-04-10 { + description + "Initial revision."; + } + + container sonic-bgp-voq-chassis-neighbor { + container BGP_VOQ_CHASSIS_NEIGHBOR { + list BGP_VOQ_CHASSIS_NEIGHBOR_LIST { + description "List for internal neighbors in voq chassis platforms"; + key "neighbor"; + + leaf neighbor { + type inet:ip-address; + description "BGP Neighbor address"; + } + + uses bgpcmn:sonic-bgp-cmn-neigh { + + refine asn { + must "(current() = /dm:sonic-device_metadata/dm:DEVICE_METADATA/dm:localhost/dm:bgp_asn)" { + error-message "Voq chassis BGP neighbors should have same ASN as defined in device metadata"; + } + } + refine local_addr { + mandatory true; + must "((contains(../neighbor, '.') and contains(current(), '.')) or + (contains(../neighbor, ':') and contains(current(), ':')))" { + error-message "local address and neighbor address family doesnt match"; + } + } + } + must "(/dm:sonic-device_metadata/dm:DEVICE_METADATA/dm:localhost/dm:switch_type = 'voq')" { + error-message "Bgp voq neighbor are applicable only when switch_type is voq"; + } + } + } + } +} \ No newline at end of file From 7c4ee4396e80c965bee05997fcb3a1ba49a11863 Mon Sep 17 00:00:00 2001 From: Neetha John Date: Wed, 4 May 2022 15:39:47 -0700 Subject: [PATCH 148/251] Remove referencing in unit test for arista7800 (#10738) Signed-off-by: Neetha John nejo@microsoft.com Why I did it Address build failures due to sonic config engine unit tests failing. Failures are due to referencing format used in Arista 7800 sample output for buffer template How I did it Remove referencing format How to verify it Sonic config engine wheel should be built successfully --- .../py2/buffer-arista7800r3-48cq2-lc.json | 278 +++++++++--------- .../py3/buffer-arista7800r3-48cq2-lc.json | 278 +++++++++--------- 2 files changed, 278 insertions(+), 278 deletions(-) diff --git a/src/sonic-config-engine/tests/sample_output/py2/buffer-arista7800r3-48cq2-lc.json b/src/sonic-config-engine/tests/sample_output/py2/buffer-arista7800r3-48cq2-lc.json index c05eca81eaaa..8ec9e0747110 100644 --- a/src/sonic-config-engine/tests/sample_output/py2/buffer-arista7800r3-48cq2-lc.json +++ b/src/sonic-config-engine/tests/sample_output/py2/buffer-arista7800r3-48cq2-lc.json @@ -62,7 +62,7 @@ }, "BUFFER_PROFILE": { "ingress_lossless_profile": { - "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "pool":"ingress_lossless_pool", "size":"1280", "dynamic_th":"-2", "xon_offset":"2560", @@ -70,18 +70,18 @@ "xoff":"66048" }, "ingress_lossy_profile": { - "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "pool":"ingress_lossless_pool", "size":"0", "xon_offset":"0", "static_th":"30535680" }, "egress_lossless_profile": { - "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "pool":"ingress_lossless_pool", "size":"0", "static_th":"33030144" }, "egress_lossy_profile": { - "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "pool":"ingress_lossless_pool", "size":"0", "dynamic_th":"-1" } @@ -226,365 +226,365 @@ "BUFFER_QUEUE": { "Ethernet180|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet8|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet184|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet188|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet0|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet4|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet108|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet100|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet128|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet104|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet68|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet96|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet124|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet148|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet92|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet120|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet144|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet52|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet140|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet56|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet164|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet76|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet72|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet64|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet32|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet16|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet36|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet12|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet88|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet116|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet80|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet112|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet84|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet152|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet136|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet156|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet132|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet48|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet44|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet176|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet40|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet28|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet60|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet20|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet24|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet180|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet8|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet184|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet188|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet0|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet4|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet108|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet100|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet128|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet104|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet68|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet96|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet124|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet148|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet92|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet120|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet144|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet52|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet140|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet56|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet164|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet76|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet72|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet64|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet32|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet16|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet36|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet12|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet88|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet116|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet80|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet112|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet84|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet152|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet136|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet156|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet132|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet48|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet44|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet176|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet40|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet28|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet60|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet20|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet24|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet180|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet8|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet184|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet188|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet0|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet4|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet108|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet100|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet128|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet104|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet68|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet96|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet124|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet148|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet92|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet120|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet144|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet52|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet140|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet56|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet164|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet76|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet72|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet64|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet32|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet16|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet36|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet12|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet88|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet116|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet80|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet112|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet84|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet152|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet136|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet156|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet132|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet48|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet44|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet176|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet40|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet28|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet60|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet20|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet24|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" } } } diff --git a/src/sonic-config-engine/tests/sample_output/py3/buffer-arista7800r3-48cq2-lc.json b/src/sonic-config-engine/tests/sample_output/py3/buffer-arista7800r3-48cq2-lc.json index 56538fd0935b..5301516178b2 100644 --- a/src/sonic-config-engine/tests/sample_output/py3/buffer-arista7800r3-48cq2-lc.json +++ b/src/sonic-config-engine/tests/sample_output/py3/buffer-arista7800r3-48cq2-lc.json @@ -62,7 +62,7 @@ }, "BUFFER_PROFILE": { "ingress_lossless_profile": { - "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "pool":"ingress_lossless_pool", "size":"1280", "dynamic_th":"-2", "xon_offset":"2560", @@ -70,18 +70,18 @@ "xoff":"66048" }, "ingress_lossy_profile": { - "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "pool":"ingress_lossless_pool", "size":"0", "xon_offset":"0", "static_th":"30535680" }, "egress_lossless_profile": { - "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "pool":"ingress_lossless_pool", "size":"0", "static_th":"33030144" }, "egress_lossy_profile": { - "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "pool":"ingress_lossless_pool", "size":"0", "dynamic_th":"-1" } @@ -226,365 +226,365 @@ "BUFFER_QUEUE": { "Ethernet0|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet36|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet40|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet44|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet48|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet52|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet56|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet60|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet64|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet68|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet72|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet4|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet76|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet80|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet84|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet88|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet92|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet96|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet100|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet104|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet108|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet112|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet8|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet116|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet120|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet124|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet128|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet132|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet136|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet140|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet144|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet148|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet152|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet12|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet156|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet164|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet176|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet180|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet184|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet188|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet16|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet20|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet24|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet28|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet32|3-4": { - "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + "profile" : "ingress_lossless_profile" }, "Ethernet0|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet36|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet40|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet44|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet48|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet52|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet56|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet60|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet64|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet68|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet72|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet4|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet76|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet80|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet84|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet88|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet92|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet96|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet100|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet104|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet108|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet112|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet8|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet116|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet120|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet124|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet128|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet132|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet136|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet140|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet144|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet148|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet152|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet12|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet156|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet164|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet176|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet180|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet184|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet188|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet16|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet20|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet24|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet28|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet32|0-2": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet0|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet36|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet40|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet44|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet48|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet52|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet56|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet60|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet64|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet68|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet72|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet4|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet76|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet80|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet84|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet88|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet92|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet96|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet100|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet104|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet108|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet112|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet8|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet116|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet120|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet124|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet128|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet132|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet136|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet140|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet144|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet148|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet152|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet12|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet156|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet164|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet176|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet180|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet184|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet188|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet16|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet20|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet24|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet28|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" }, "Ethernet32|5-6": { - "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + "profile" : "egress_lossy_profile" } } } From f8501224b4c9becc0b41b1fc032df4fc80b3dbfa Mon Sep 17 00:00:00 2001 From: Junchao-Mellanox <57339448+Junchao-Mellanox@users.noreply.github.com> Date: Fri, 6 May 2022 01:11:35 +0800 Subject: [PATCH 149/251] [YANG] Fix issue: Non compliant leaf list in config_db schema (#10291) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #### Why I did it Fix issue: Non compliant leaf list in config_db schema: https://github.com/Azure/sonic-buildimage/issues/9801 #### How I did it The basic flow of DPB is like: 1. Transfer config db json value to YANG json value, name it “yangIn” 2. Validate “yangIn” by libyang 3. Generate a YANG json value to represent the target configuration, name it “yangTarget” 4. Do diff between “yangIn” and “yangTarget” 5. Apply the diff to CONFIG DB json and save it back to DB The fix: • For step #1, If value of a leaf-list field string type, transfer it to a list by splitting it with “,” the purpose here is to make step#2 happy. We also need to save .. to a set named “leaf_list_with_string_value_set”. • For step#5, loop “leaf_list_with_string_value_set” and change those fields back to a string. #### How to verify it 1. Manual test 2. Changed sample config DB and unit test passed --- src/sonic-yang-mgmt/sonic_yang.py | 4 +- src/sonic-yang-mgmt/sonic_yang_ext.py | 58 +++++++++++++++++-- .../tests/files/sample_config_db.json | 19 +++--- 3 files changed, 67 insertions(+), 14 deletions(-) diff --git a/src/sonic-yang-mgmt/sonic_yang.py b/src/sonic-yang-mgmt/sonic_yang.py index 6bf590fced38..9af9217ad34b 100644 --- a/src/sonic-yang-mgmt/sonic_yang.py +++ b/src/sonic-yang-mgmt/sonic_yang.py @@ -44,7 +44,9 @@ def __init__(self, yang_dir, debug=False, print_log_enabled=True, sonic_yang_opt # below dict will store preProcessed yang objects, which may be needed by # all yang modules, such as grouping. self.preProcessedYang = dict() - + # element path for CONFIG DB. An example for this list could be: + # ['PORT', 'Ethernet0', 'speed'] + self.elementPath = [] try: self.ctx = ly.Context(yang_dir, sonic_yang_options) except Exception as e: diff --git a/src/sonic-yang-mgmt/sonic_yang_ext.py b/src/sonic-yang-mgmt/sonic_yang_ext.py index 424e567f79d3..8f4279091882 100644 --- a/src/sonic-yang-mgmt/sonic_yang_ext.py +++ b/src/sonic-yang-mgmt/sonic_yang_ext.py @@ -20,6 +20,19 @@ 'CABLE_LENGTH_LIST' ] +# Workaround for those fields who is defined as leaf-list in YANG model but have string value in config DB. +# Dictinary structure key = (, ), value = seperator +LEAF_LIST_WITH_STRING_VALUE_DICT = { + ('MIRROR_SESSION', 'src_ip'): ',', + ('NTP', 'src_intf'): ';', + ('BGP_ALLOWED_PREFIXES', 'prefixes_v4'): ',', + ('BGP_ALLOWED_PREFIXES', 'prefixes_v6'): ',', + ('BUFFER_PORT_EGRESS_PROFILE_LIST', 'profile_list'): ',', + ('BUFFER_PORT_INGRESS_PROFILE_LIST', 'profile_list'): ',', + ('PORT', 'adv_speeds'): ',', + ('PORT', 'adv_interface_types'): ',', +} + """ This is the Exception thrown out of all public function of this class. """ @@ -407,6 +420,11 @@ def _yangConvert(val): # if it is a leaf-list do it for each element if leafDict[key]['__isleafList']: vValue = list() + if isinstance(value, str) and (self.elementPath[0], self.elementPath[-1]) in LEAF_LIST_WITH_STRING_VALUE_DICT: + # For field defined as leaf-list but has string value in CONFIG DB, need do special handling here. For exampe: + # port.adv_speeds in CONFIG DB has value "100,1000,10000", it shall be transferred to [100,1000,10000] as YANG value here to + # make it align with its YANG definition. + value = (x.strip() for x in value.split(LEAF_LIST_WITH_STRING_VALUE_DICT[(self.elementPath[0], self.elementPath[-1])])) for v in value: vValue.append(_yangConvert(v)) else: @@ -545,6 +563,7 @@ def _xlateList(self, model, yang, config, table, exceptionList): primaryKeys = list(config.keys()) for pkey in primaryKeys: try: + self.elementPath.append(pkey) vKey = None self.sysLog(syslog.LOG_DEBUG, "xlateList Extract pkey:{}".\ format(pkey)) @@ -552,9 +571,13 @@ def _xlateList(self, model, yang, config, table, exceptionList): keyDict = self._extractKey(pkey, listKeys) # fill rest of the values in keyDict for vKey in config[pkey]: + self.elementPath.append(vKey) self.sysLog(syslog.LOG_DEBUG, "xlateList vkey {}".format(vKey)) - keyDict[vKey] = self._findYangTypedValue(vKey, \ - config[pkey][vKey], leafDict) + try: + keyDict[vKey] = self._findYangTypedValue(vKey, \ + config[pkey][vKey], leafDict) + finally: + self.elementPath.pop() yang.append(keyDict) # delete pkey from config, done to match one key with one list del config[pkey] @@ -566,6 +589,8 @@ def _xlateList(self, model, yang, config, table, exceptionList): exceptionList.append(str(e)) # with multilist, we continue matching other keys. continue + finally: + self.elementPath.pop() return @@ -596,13 +621,17 @@ def _xlateContainerInContainer(self, model, yang, configC, table): if ccName not in configC: # Inner container doesn't exist in config return + if len(configC[ccName]) == 0: # Empty container, clean config and return del configC[ccName] return self.sysLog(msg="xlateProcessListOfContainer: {}".format(ccName)) + self.elementPath.append(ccName) self._xlateContainer(ccontainer, yang[ccName], \ configC[ccName], table) + self.elementPath.pop() + # clean empty container if len(yang[ccName]) == 0: del yang[ccName] @@ -650,8 +679,10 @@ def _xlateContainer(self, model, yang, config, table): for vKey in vKeys: #vkey must be a leaf\leaf-list\choice in container if leafDict.get(vKey): + self.elementPath.append(vKey) self.sysLog(syslog.LOG_DEBUG, "xlateContainer vkey {}".format(vKey)) yang[vKey] = self._findYangTypedValue(vKey, configC[vKey], leafDict) + self.elementPath.pop() # delete entry from copy of config del configC[vKey] @@ -681,8 +712,10 @@ def _xlateConfigDBtoYang(self, jIn, yangJ): yangJ[key] = dict() if yangJ.get(key) is None else yangJ[key] yangJ[key][subkey] = dict() self.sysLog(msg="xlateConfigDBtoYang {}:{}".format(key, subkey)) + self.elementPath.append(table) self._xlateContainer(cmap['container'], yangJ[key][subkey], \ jIn[table], table) + self.elementPath = [] return @@ -739,9 +772,14 @@ def _revYangConvert(val): # if it is a leaf-list do it for each element if leafDict[key]['__isleafList']: - vValue = list() - for v in value: - vValue.append(_revYangConvert(v)) + if isinstance(value, list) and (self.elementPath[0], self.elementPath[-1]) in LEAF_LIST_WITH_STRING_VALUE_DICT: + # For field defined as leaf-list but has string value in CONFIG DB, we need do special handling here: + # e.g. port.adv_speeds is [10,100,1000] in YANG, need to convert it into a string for CONFIG DB: "10,100,1000" + vValue = LEAF_LIST_WITH_STRING_VALUE_DICT[(self.elementPath[0], self.elementPath[-1])].join((_revYangConvert(x) for x in value)) + else: + vValue = list() + for v in value: + vValue.append(_revYangConvert(v)) elif leafDict[key]['type']['@name'] == 'boolean': vValue = 'true' if value else 'false' else: @@ -850,12 +888,16 @@ def _revXlateList(self, model, yang, config, table): # create key of config DB table pkey, pkeydict = self._createKey(entry, listKeys) self.sysLog(syslog.LOG_DEBUG, "revXlateList pkey:{}".format(pkey)) + self.elementPath.append(pkey) config[pkey]= dict() # fill rest of the entries for key in entry: if key not in pkeydict: + self.elementPath.append(key) config[pkey][key] = self._revFindYangTypedValue(key, \ entry[key], leafDict) + self.elementPath.pop() + self.elementPath.pop() return @@ -879,8 +921,10 @@ def _revXlateContainerInContainer(self, model, yang, config, table): if yang.get(modelContainer['@name']): config[modelContainer['@name']] = dict() self.sysLog(msg="revXlateContainerInContainer {}".format(modelContainer['@name'])) + self.elementPath.append(modelContainer['@name']) self._revXlateContainer(modelContainer, yang[modelContainer['@name']], \ config[modelContainer['@name']], table) + self.elementPath.pop() return """ @@ -912,7 +956,9 @@ def _revXlateContainer(self, model, yang, config, table): #vkey must be a leaf\leaf-list\choice in container if leafDict.get(vKey): self.sysLog(syslog.LOG_DEBUG, "revXlateContainer vkey {}".format(vKey)) + self.elementPath.append(vKey) config[vKey] = self._revFindYangTypedValue(vKey, yang[vKey], leafDict) + self.elementPath.pop() return @@ -940,8 +986,10 @@ def _revXlateYangtoConfigDB(self, yangJ, cDbJson): cDbJson[table] = dict() #print(key + "--" + subkey) self.sysLog(msg="revXlateYangtoConfigDB {}".format(table)) + self.elementPath.append(table) self._revXlateContainer(cmap['container'], yangJ[module_top][container], \ cDbJson[table], table) + self.elementPath = [] return diff --git a/src/sonic-yang-models/tests/files/sample_config_db.json b/src/sonic-yang-models/tests/files/sample_config_db.json index e44e74b531dc..a214560de759 100644 --- a/src/sonic-yang-models/tests/files/sample_config_db.json +++ b/src/sonic-yang-models/tests/files/sample_config_db.json @@ -65,12 +65,12 @@ }, "BUFFER_PORT_INGRESS_PROFILE_LIST": { "Ethernet9": { - "profile_list": ["ingress_lossy_profile"] + "profile_list": "ingress_lossy_profile" } }, "BUFFER_PORT_EGRESS_PROFILE_LIST": { "Ethernet9": { - "profile_list": ["egress_lossless_profile", "egress_lossy_profile"] + "profile_list": "egress_lossless_profile,egress_lossy_profile" } }, "PORTCHANNEL": { @@ -408,10 +408,7 @@ "NTP": { "global": { "vrf": "mgmt", - "src_intf": [ - "eth0", - "Loopback0" - ] + "src_intf": "eth0;Loopback0" } }, "NTP_SERVER": { @@ -449,7 +446,10 @@ "description": "", "speed": "11100", "tpid": "0x8100", - "admin_status": "up" + "admin_status": "up", + "autoneg": "on", + "adv_speeds": "100000,50000", + "adv_interface_types": "CR,CR4" }, "Ethernet2": { "alias": "Eth1/3", @@ -457,7 +457,10 @@ "description": "", "speed": "11100", "tpid": "0x8100", - "admin_status": "up" + "admin_status": "up", + "autoneg": "on", + "adv_speeds": "all", + "adv_interface_types": "all" }, "Ethernet3": { "alias": "Eth1/4", From db94886ac9d650f47587dacdb16fc5115efda94c Mon Sep 17 00:00:00 2001 From: Qi Luo Date: Thu, 5 May 2022 10:24:00 -0700 Subject: [PATCH 150/251] [sonic-snmpagent] Update submodule (#10736) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Includes below commits ``` 1477c36 2022-05-04 | Fix: if routestr does not exist, skip (#257) [Qi Luo] 5c08435 2022-05-04 | Add VoQ Recirc interface (i.e., Ethernet-Rec) to interface maps for S… (#244) [Song Yuan] 57f1af6 2022-05-02 | Fix: not to use blocking get_all() after keys() (#255) [Qi Luo] 33fdf9d 2022-04-06 | [RFC2737, RFC3433] Exclude RJ45 port from Entity MIB and Entity sensor MIB (#247) [Kebo Liu] ``` --- src/sonic-snmpagent | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-snmpagent b/src/sonic-snmpagent index 890f32f333df..1477c368369d 160000 --- a/src/sonic-snmpagent +++ b/src/sonic-snmpagent @@ -1 +1 @@ -Subproject commit 890f32f333dfe31c36a8342ff70c0e84910bf9c8 +Subproject commit 1477c368369db44f9a2f9deac0356bbd5fad6364 From 681c24878b9e2ccca9fb4f6549cfca0002d7d05f Mon Sep 17 00:00:00 2001 From: Junchao-Mellanox <57339448+Junchao-Mellanox@users.noreply.github.com> Date: Fri, 6 May 2022 06:21:44 +0800 Subject: [PATCH 151/251] Fix race condition between networking service and interface-config service (#10573) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Why I did it The PR is aimed to fix a bug that mgmt port eth0 may loss IP even if user configured static IP of eth0. This is not a always reproduceable issue, the reproducing flow is like: Systemd starts networking service, which runs a dhcp based configuration and assigned an ip from dhcp. Systemd starts interface-config service who depends on networking service Interface-config service runs command “ifdown –force eth0”, check line. but networking service is still running so that this line failed with error: “error: Another instance of this program is already running.”. This error is printed by ifupdown2 lib who is the main process of networking service. So, ifdown actually does not work here, the ip of eth0 is not down. Interface-config service updates /etc/networking/interface to static configuration. Interface-config service runs command “systemctl restart networking”. This command kills the previous networking related processes (log: networking.service: Main process exited, code=killed, status=15/TERM), and try to reconfigure the ip address with static configuration. But it detects that the configured IP and the existing IP are the same, and it does not really configure the ip to kernel. Hence, the ip is still getting from dhcp. (this could be a bug of ifupdown2: previous ip is from dhcp, new ip is a static ip, it treats them as same instead of re-configuring the IP) When the lease of the ip expires, the ip of eth0 is removed by kernel and the issue reproduces. The issue is not always reproduceable because networking service usually runs fast so that it won't hit step#3. How I did it Check networking service state before running "ifdown –force eth0", wait for it done if it is activating. How to verify it Manual test. --- .../interfaces/interfaces-config.sh | 40 +++++++++++++++---- 1 file changed, 32 insertions(+), 8 deletions(-) diff --git a/files/image_config/interfaces/interfaces-config.sh b/files/image_config/interfaces/interfaces-config.sh index 646fd7a94e71..8c8a4e205875 100755 --- a/files/image_config/interfaces/interfaces-config.sh +++ b/files/image_config/interfaces/interfaces-config.sh @@ -1,15 +1,39 @@ #!/bin/bash +function wait_networking_service_done() { + local -i _WDOG_CNT="1" + local -ir _WDOG_MAX="30" + + local -r _TIMEOUT="1s" + + while [[ "${_WDOG_CNT}" -le "${_WDOG_MAX}" ]]; do + networking_status="$(systemctl is-active networking 2>&1)" + + if [[ "${networking_status}" == active || "${networking_status}" == inactive || "${networking_status}" == failed ]] ; then + return + fi + + echo "interfaces-config: networking service is running, wait for it done" + + let "_WDOG_CNT++" + sleep "${_TIMEOUT}" + done + + echo "interfaces-config: networking service is still running after 30 seconds, killing it" + systemctl kill networking 2>&1 +} + if [[ $(ifquery --running eth0) ]]; then + wait_networking_service_done ifdown --force eth0 fi # Check if ZTP DHCP policy has been installed -if [ -e /etc/network/ifupdown2/policy.d/ztp_dhcp.json ]; then +if [[ -e /etc/network/ifupdown2/policy.d/ztp_dhcp.json ]]; then # Obtain port operational state information redis-dump -d 0 -k "PORT_TABLE:Ethernet*" -y > /tmp/ztp_port_data.json - if [ $? -ne 0 ] || [ ! -e /tmp/ztp_port_data.json ] || [ "$(cat /tmp/ztp_port_data.json)" = "" ]; then + if [[ $? -ne 0 || ! -e /tmp/ztp_port_data.json || "$(cat /tmp/ztp_port_data.json)" = "" ]]; then echo "{}" > /tmp/ztp_port_data.json fi @@ -29,28 +53,28 @@ CFGGEN_PARAMS=" \ " sonic-cfggen $CFGGEN_PARAMS -[ -f /var/run/dhclient.eth0.pid ] && kill `cat /var/run/dhclient.eth0.pid` && rm -f /var/run/dhclient.eth0.pid -[ -f /var/run/dhclient6.eth0.pid ] && kill `cat /var/run/dhclient6.eth0.pid` && rm -f /var/run/dhclient6.eth0.pid +[[ -f /var/run/dhclient.eth0.pid ]] && kill `cat /var/run/dhclient.eth0.pid` && rm -f /var/run/dhclient.eth0.pid +[[ -f /var/run/dhclient6.eth0.pid ]] && kill `cat /var/run/dhclient6.eth0.pid` && rm -f /var/run/dhclient6.eth0.pid for intf_pid in $(ls -1 /var/run/dhclient*.Ethernet*.pid 2> /dev/null); do - [ -f ${intf_pid} ] && kill `cat ${intf_pid}` && rm -f ${intf_pid} + [[ -f ${intf_pid} ]] && kill `cat ${intf_pid}` && rm -f ${intf_pid} done # Setup eth1 if we connect to a remote chassis DB. PLATFORM=${PLATFORM:-`sonic-cfggen -H -v DEVICE_METADATA.localhost.platform`} CHASSISDB_CONF="/usr/share/sonic/device/$PLATFORM/chassisdb.conf" -[ -f $CHASSISDB_CONF ] && source $CHASSISDB_CONF +[[ -f $CHASSISDB_CONF ]] && source $CHASSISDB_CONF ASIC_CONF="/usr/share/sonic/device/$PLATFORM/asic.conf" -[ -f $ASIC_CONF ] && source $ASIC_CONF +[[ -f $ASIC_CONF ]] && source $ASIC_CONF if [[ -n "$midplane_subnet" && ($NUM_ASIC -gt 1) ]]; then for asic_id in `seq 0 $((NUM_ASIC - 1))`; do NET_NS="asic$asic_id" PIDS=`ip netns pids "$NET_NS" 2>/dev/null` - if [ "$?" -ne "0" ]; then # namespace doesn't exist + if [[ "$?" -ne "0" ]]; then # namespace doesn't exist continue fi From 8ec8900d31806d4f641c91b2b62ec5880b504687 Mon Sep 17 00:00:00 2001 From: xumia <59720581+xumia@users.noreply.github.com> Date: Fri, 6 May 2022 07:21:30 +0800 Subject: [PATCH 152/251] Support SONiC OpenSSL FIPS 140-3 based on SymCrypt engine (#9573) Why I did it Support OpenSSL FIPS 140-3, see design doc: https://github.com/Azure/SONiC/blob/master/doc/fips/SONiC-OpenSSL-FIPS-140-3.md. How I did it Install the fips packages. To build the fips packages, see https://github.com/Azure/sonic-fips Azure pipelines: https://dev.azure.com/mssonic/build/_build?definitionId=412 How to verify it Validate the SymCrypt engine: admin@sonic:~$ dpkg-query -W | grep openssl openssl 1.1.1k-1+deb11u1+fips symcrypt-openssl 0.1 admin@sonic:~$ openssl engine -v | grep -i symcrypt (symcrypt) SCOSSL (SymCrypt engine for OpenSSL) admin@sonic:~$ --- Makefile.work | 16 +++++- azure-pipelines.yml | 4 +- dockers/docker-base-bullseye/Dockerfile.j2 | 3 +- .../build_templates/sonic_debian_extension.j2 | 12 ++--- installer/x86_64/install.sh | 5 ++ onie-mk-demo.sh | 5 ++ rules/config | 5 ++ rules/docker-base-bullseye.mk | 5 ++ rules/sonic-fips.dep | 10 ++++ rules/sonic-fips.mk | 53 +++++++++++++++++++ slave.mk | 8 ++- sonic-slave-bullseye/Dockerfile.j2 | 20 +++---- src/sonic-fips/.gitignore | 1 + src/sonic-fips/Makefile | 29 ++++++++++ 14 files changed, 152 insertions(+), 24 deletions(-) create mode 100644 rules/sonic-fips.dep create mode 100644 rules/sonic-fips.mk create mode 100644 src/sonic-fips/.gitignore create mode 100644 src/sonic-fips/Makefile diff --git a/Makefile.work b/Makefile.work index cc404b9d7184..9ecd611e92c6 100644 --- a/Makefile.work +++ b/Makefile.work @@ -138,13 +138,25 @@ endif endif SLAVE_IMAGE = $(SLAVE_BASE_IMAGE)-$(USER_LC) +# Support FIPS feature, armhf not supported yet +ifeq ($(PLATFORM_ARCH),armhf) +ENABLE_FIPS_FEATURE := n +ENABLE_FIPS := n +endif + +ifeq ($(ENABLE_FIPS_FEATURE), n) +ifeq ($(ENABLE_FIPS), y) + $(error Cannot set fips config ENABLE_FIPS=y when ENABLE_FIPS_FEATURE=n) +endif +endif + # Generate the version control build info $(shell SONIC_VERSION_CONTROL_COMPONENTS=$(SONIC_VERSION_CONTROL_COMPONENTS) \ TRUSTED_GPG_URLS=$(TRUSTED_GPG_URLS) PACKAGE_URL_PREFIX=$(PACKAGE_URL_PREFIX) \ scripts/generate_buildinfo_config.sh) # Generate the slave Dockerfile, and prepare build info for it -$(shell CONFIGURED_ARCH=$(CONFIGURED_ARCH) MULTIARCH_QEMU_ENVIRON=$(MULTIARCH_QEMU_ENVIRON) DOCKER_EXTRA_OPTS=$(DOCKER_EXTRA_OPTS) DEFAULT_CONTAINER_REGISTRY=$(DEFAULT_CONTAINER_REGISTRY) j2 $(SLAVE_DIR)/Dockerfile.j2 > $(SLAVE_DIR)/Dockerfile) +$(shell CONFIGURED_ARCH=$(CONFIGURED_ARCH) MULTIARCH_QEMU_ENVIRON=$(MULTIARCH_QEMU_ENVIRON) ENABLE_FIPS_FEATURE=$(ENABLE_FIPS_FEATURE) DOCKER_EXTRA_OPTS=$(DOCKER_EXTRA_OPTS) DEFAULT_CONTAINER_REGISTRY=$(DEFAULT_CONTAINER_REGISTRY) j2 $(SLAVE_DIR)/Dockerfile.j2 > $(SLAVE_DIR)/Dockerfile) $(shell CONFIGURED_ARCH=$(CONFIGURED_ARCH) MULTIARCH_QEMU_ENVIRON=$(MULTIARCH_QEMU_ENVIRON) j2 $(SLAVE_DIR)/Dockerfile.user.j2 > $(SLAVE_DIR)/Dockerfile.user) $(shell BUILD_SLAVE=y DEFAULT_CONTAINER_REGISTRY=$(DEFAULT_CONTAINER_REGISTRY) scripts/prepare_docker_buildinfo.sh $(SLAVE_BASE_IMAGE) $(SLAVE_DIR)/Dockerfile $(CONFIGURED_ARCH) "" $(BLDENV)) @@ -355,6 +367,8 @@ SONIC_BUILD_INSTRUCTION := make \ ENABLE_AUTO_TECH_SUPPORT=$(ENABLE_AUTO_TECH_SUPPORT) \ BUILD_MULTIASIC_KVM=$(BUILD_MULTIASIC_KVM) \ ENABLE_ASAN=$(ENABLE_ASAN) \ + ENABLE_FIPS_FEATURE=$(ENABLE_FIPS_FEATURE) \ + ENABLE_FIPS=$(ENABLE_FIPS) \ $(SONIC_OVERRIDE_BUILD_VARS) .PHONY: sonic-slave-build sonic-slave-bash init reset diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 27836a49b1ab..f44704592c9b 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -43,7 +43,9 @@ variables: - ${{ else }}: - template: .azure-pipelines/template-variables.yml@buildimage - name: CACHE_MODE - value: rcache + value: rcache +- name: ENABLE_FIPS + value: y stages: - stage: BuildVS diff --git a/dockers/docker-base-bullseye/Dockerfile.j2 b/dockers/docker-base-bullseye/Dockerfile.j2 index cae555174174..f47d56468102 100644 --- a/dockers/docker-base-bullseye/Dockerfile.j2 +++ b/dockers/docker-base-bullseye/Dockerfile.j2 @@ -62,7 +62,8 @@ RUN apt-get update && \ # for processing/handling json files in bash environment jq \ # for sairedis zmq rpc channel - libzmq5 + libzmq5 \ + libwrap0 # Upgrade pip via PyPI and uninstall the Debian version RUN pip3 install --upgrade pip diff --git a/files/build_templates/sonic_debian_extension.j2 b/files/build_templates/sonic_debian_extension.j2 index 516df5fd224f..419ddf139100 100644 --- a/files/build_templates/sonic_debian_extension.j2 +++ b/files/build_templates/sonic_debian_extension.j2 @@ -330,12 +330,7 @@ sudo chmod 755 $FILESYSTEM_ROOT/usr/bin/restart_service sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install smartmontools=7.2-1 # Install custom-built openssh sshd -sudo dpkg --root=$FILESYSTEM_ROOT -i $debs_path/openssh-server_*.deb - -# Remove sshd host keys, and will regenerate on first sshd start. This needs to be -# done again here because our custom version of sshd is being installed, which -# will regenerate the sshd host keys. -sudo rm -f $FILESYSTEM_ROOT/etc/ssh/ssh_host_*_key* +sudo dpkg --root=$FILESYSTEM_ROOT -i $debs_path/openssh-server_${OPENSSH_VERSION}_*.deb {% if sonic_asic_platform == 'broadcom' %} # Install custom-built flashrom @@ -625,6 +620,11 @@ sudo dpkg --root=$FILESYSTEM_ROOT -P {{ debname }} {% endfor %} {% endif %} +# Remove sshd host keys, and will regenerate on first sshd start. This needs to be +# done again here because our custom version of sshd is being installed, which +# will regenerate the sshd host keys. +sudo rm -f $FILESYSTEM_ROOT/etc/ssh/ssh_host_*_key* + sudo rm -f $FILESYSTEM_ROOT/usr/sbin/policy-rc.d # Copy fstrim service and timer file, enable fstrim timer diff --git a/installer/x86_64/install.sh b/installer/x86_64/install.sh index dbab4d54ab72..4411e74edab0 100755 --- a/installer/x86_64/install.sh +++ b/installer/x86_64/install.sh @@ -666,6 +666,11 @@ else # install_env = "onie" fi fi +# Add extra linux command line +extra_cmdline_linux=%%EXTRA_CMDLINE_LINUX%% +echo "EXTRA_CMDLINE_LINUX=$extra_cmdline_linux" +GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX $extra_cmdline_linux" + cat <> $grub_cfg menuentry '$demo_grub_entry' { search --no-floppy --label --set=root $demo_volume_label diff --git a/onie-mk-demo.sh b/onie-mk-demo.sh index fcfe500e9249..55d0404a1468 100755 --- a/onie-mk-demo.sh +++ b/onie-mk-demo.sh @@ -79,6 +79,11 @@ cp -r $installer_dir/$arch/* $tmp_installdir || clean_up 1 cp onie-image.conf $tmp_installdir cp onie-image-*.conf $tmp_installdir +# Set sonic fips config for the installer script +if [ "$ENABLE_FIPS" = "y" ]; then + EXTRA_CMDLINE_LINUX="$EXTRA_CMDLINE_LINUX sonic_fips=1" +fi + # Escape special chars in the user provide kernel cmdline string for use in # sed. Special chars are: \ / & EXTRA_CMDLINE_LINUX=`echo $EXTRA_CMDLINE_LINUX | sed -e 's/[\/&]/\\\&/g'` diff --git a/rules/config b/rules/config index 348c23b17cb3..415aa795e767 100644 --- a/rules/config +++ b/rules/config @@ -224,3 +224,8 @@ ENABLE_ASAN ?= n # reset default container registry from dockerhub to other DEFAULT_CONTAINER_REGISTRY ?= + +# ENABLE_FIPS_FEATURE - support FIPS feature, only for amd64 or arm64, armhf not supported yet +# ENABLE_FIPS - support FIPS flag, if enabled, no additional config requred for the image to support FIPS +ENABLE_FIPS_FEATURE ?= y +ENABLE_FIPS ?= n diff --git a/rules/docker-base-bullseye.mk b/rules/docker-base-bullseye.mk index fcebb554c777..9d9345bea490 100644 --- a/rules/docker-base-bullseye.mk +++ b/rules/docker-base-bullseye.mk @@ -11,6 +11,11 @@ VIM = vim OPENSSH = openssh-client SSHPASS = sshpass STRACE = strace + +ifeq ($(ENABLE_FIPS_FEATURE), y) +$(DOCKER_BASE_BULLSEYE)_DEPENDS += $(FIPS_OPENSSL_LIBSSL) $(FIPS_OPENSSL_LIBSSL_DEV) $(FIPS_OPENSSL) $(SYMCRYPT_OPENSSL) $(FIPS_KRB5) +endif + $(DOCKER_BASE_BULLSEYE)_DBG_IMAGE_PACKAGES += $(GDB) $(GDBSERVER) $(VIM) $(OPENSSH) $(SSHPASS) $(STRACE) SONIC_DOCKER_IMAGES += $(DOCKER_BASE_BULLSEYE) diff --git a/rules/sonic-fips.dep b/rules/sonic-fips.dep new file mode 100644 index 000000000000..ab2cd62dc2c8 --- /dev/null +++ b/rules/sonic-fips.dep @@ -0,0 +1,10 @@ +SPATH := $($(SYMCRYPT_OPENSSL)_SRC_PATH) +DEP_FILES := $(SONIC_COMMON_FILES_LIST) rules/sonic-fips.mk rules/sonic-fips.dep +DEP_FILES += $(SONIC_COMMON_BASE_FILES_LIST) +SMDEP_FILES := $(addprefix $(SPATH)/,$(shell cd $(SPATH) && git ls-files)) + +$(SYMCRYPT_OPENSSL)_CACHE_MODE := GIT_CONTENT_SHA +$(SYMCRYPT_OPENSSL)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST) +$(SYMCRYPT_OPENSSL)_DEP_FILES := $(DEP_FILES) +$(SYMCRYPT_OPENSSL)_SMDEP_FILES := $(SMDEP_FILES) +$(SYMCRYPT_OPENSSL)_SMDEP_PATHS := $(SPATH) diff --git a/rules/sonic-fips.mk b/rules/sonic-fips.mk new file mode 100644 index 000000000000..471f69e9ff4b --- /dev/null +++ b/rules/sonic-fips.mk @@ -0,0 +1,53 @@ +# fips packages + +FIPS_VERSION = 0.1 +FIPS_OPENSSL_VERSION = 1.1.1k-1+deb11u1+fips +FIPS_OPENSSH_VERSION = 8.4p1-5+fips +FIPS_PYTHON_MAIN_VERSION = 3.9 +FIPS_PYTHON_VERSION = 3.9.2-1+fips +FIPS_GOLANG_MAIN_VERSION = 1.15 +FIPS_GOLANG_VERSION = 1.15.15-1~deb11u4+fips +FIPS_KRB5_VERSION = 1.18.3-6+deb11u1+fips +FIPS_URL_PREFIX = https://sonicstorage.blob.core.windows.net/public/fips/$(BLDENV)/$(FIPS_VERSION)/$(CONFIGURED_ARCH) + +SYMCRYPT_OPENSSL_NAME = symcrypt-openssl +SYMCRYPT_OPENSSL = $(SYMCRYPT_OPENSSL_NAME)_$(FIPS_VERSION)_$(CONFIGURED_ARCH).deb +$(SYMCRYPT_OPENSSL)_SRC_PATH = $(SRC_PATH)/sonic-fips + +FIPS_OPENSSL = openssl_$(FIPS_OPENSSL_VERSION)_$(CONFIGURED_ARCH).deb +FIPS_OPENSSL_LIBSSL = libssl1.1_$(FIPS_OPENSSL_VERSION)_$(CONFIGURED_ARCH).deb +FIPS_OPENSSL_LIBSSL_DEV = libssl-dev_$(FIPS_OPENSSL_VERSION)_$(CONFIGURED_ARCH).deb +FIPS_OPENSSL_LIBSSL_DOC = libssl-doc_$(FIPS_OPENSSL_VERSION)_all.deb +FIPS_OPENSSL_ALL = $(FIPS_OPENSSL) $(FIPS_OPENSSL_LIBSSL) $(FIPS_OPENSSL_LIBSSL_DEV) $(FIPS_OPENSSL_LIBSSL_DOC) + +FIPS_OPENSSH = ssh_$(FIPS_OPENSSH_VERSION)_$(CONFIGURED_ARCH).deb +FIPS_OPENSSH_CLIENT = openssh-client_$(FIPS_OPENSSH_VERSION)_$(CONFIGURED_ARCH).deb +FIPS_OPENSSH_SFTP_SERVER = openssh-sftp-server_$(FIPS_OPENSSH_VERSION)_$(CONFIGURED_ARCH).deb +FIPS_OPENSSH_SERVER = openssh-server_$(FIPS_OPENSSH_VERSION)_$(CONFIGURED_ARCH).deb +FIPS_OPENSSH_ALL = $(FIPS_SSH) $(FIPS_OPENSSH_CLIENT) $(FIPS_OPENSSH_SFTP_SERVER) $(FIPS_OPENSSH_SERVER) + +FIPS_PYTHON = python$(FIPS_PYTHON_MAIN_VERSION)_$(FIPS_PYTHON_VERSION)_$(CONFIGURED_ARCH).deb +FIPS_PYTHON_MINIMAL = python$(FIPS_PYTHON_MAIN_VERSION)-minimal_$(FIPS_PYTHON_VERSION)_$(CONFIGURED_ARCH).deb +FIPS_LIBPYTHON = libpython$(FIPS_PYTHON_MAIN_VERSION)_$(FIPS_PYTHON_VERSION)_$(CONFIGURED_ARCH).deb +FIPS_LIBPYTHON_MINIMAL = libpython$(FIPS_PYTHON_MAIN_VERSION)-minimal_$(FIPS_PYTHON_VERSION)_$(CONFIGURED_ARCH).deb +FIPS_LIBPYTHON_STDLIB = libpython$(FIPS_PYTHON_MAIN_VERSION)-stdlib_$(FIPS_PYTHON_VERSION)_$(CONFIGURED_ARCH).deb +FIPS_PYTHON_ALL = $(FIPS_PYTHON) $(FIPS_PYTHON_MINIMAL) $(FIPS_LIBPYTHON) $(FIPS_LIBPYTHON_MINIMAL) $(FIPS_LIBPYTHON_STDLIB) + +FIPS_GOLANG = golang-$(FIPS_GOLANG_MAIN_VERSION)_$(FIPS_GOLANG_VERSION)_all.deb +FIPS_GOLANG_GO = golang-$(FIPS_GOLANG_MAIN_VERSION)-go_$(FIPS_GOLANG_VERSION)_$(CONFIGURED_ARCH).deb +FIPS_GOLANG_SRC = golang-$(FIPS_GOLANG_MAIN_VERSION)-src_$(FIPS_GOLANG_VERSION)_$(CONFIGURED_ARCH).deb +FIPS_GOLANG_DOC = golang-$(FIPS_GOLANG_MAIN_VERSION)-doc_$(FIPS_GOLANG_VERSION)_all.deb +FIPS_GOLANG_ALL = $(FIPS_GOLANG) $(FIPS_GOLANG_GO) $(FIPS_GOLANG_SRC) $(FIPS_GOLANG_DOC) + +FIPS_KRB5 = libk5crypto3_$(FIPS_KRB5_VERSION)_$(CONFIGURED_ARCH).deb +FIPS_KRB5_ALL = $(FIPS_KRB5) + +FIPS_DERIVED_TARGET = $(FIPS_OPENSSL_ALL) $(FIPS_OPENSSH_ALL) $(FIPS_GOLANG_ALL) $(FIPS_PYTHON_ALL) $(FIPS_KRB5_ALL) +FIPS_PACKAGE_ALL = $(SYMCRYPT_OPENSSL) $(FIPS_DERIVED_TARGET) + +$(foreach package,$(FIPS_DERIVED_TARGET),$(eval $(call add_extra_package,$(SYMCRYPT_OPENSSL),$(package)))) + +ifeq ($(ENABLE_FIPS_FEATURE), y) + FIPS_BASEIMAGE_INSTALLERS = $(FIPS_OPENSSL_LIBSSL) $(FIPS_OPENSSL_LIBSSL_DEV) $(FIPS_OPENSSL) $(SYMCRYPT_OPENSSL) $(FIPS_OPENSSH) $(FIPS_OPENSSH_CLIENT) $(FIPS_OPENSSH_SFTP_SERVER) $(FIPS_OPENSSH_SERVER) $(FIPS_KRB5) + SONIC_MAKE_DEBS += $(SYMCRYPT_OPENSSL) +endif diff --git a/slave.mk b/slave.mk index 7342870ac2a7..1a008640b4b9 100644 --- a/slave.mk +++ b/slave.mk @@ -80,6 +80,7 @@ export IMAGE_DISTRO export IMAGE_DISTRO_DEBS_PATH export MULTIARCH_QEMU_ENVIRON export DOCKER_BASE_ARCH +export BLDENV ############################################################################### ## Utility rules @@ -93,7 +94,6 @@ ifneq ($(CONFIGURED_PLATFORM),generic) endif configure : - @mkdir -p $(DEBS_PATH) @mkdir -p $(JESSIE_DEBS_PATH) @mkdir -p $(STRETCH_DEBS_PATH) @mkdir -p $(BUSTER_DEBS_PATH) @@ -271,6 +271,8 @@ endif export SONIC_ROUTING_STACK export FRR_USER_UID export FRR_USER_GID +export ENABLE_FIPS_FEATURE +export ENABLE_FIPS ############################################################################### ## Build Options @@ -332,6 +334,7 @@ $(info "INCLUDE_P4RT" : "$(INCLUDE_P4RT)") $(info "INCLUDE_KUBERNETES" : "$(INCLUDE_KUBERNETES)") $(info "INCLUDE_MACSEC" : "$(INCLUDE_MACSEC)") $(info "INCLUDE_MUX" : "$(INCLUDE_MUX)") +$(info "ENABLE_FIPS_FEATURE" : "$(ENABLE_FIPS_FEATURE)") $(info "TELEMETRY_WRITABLE" : "$(TELEMETRY_WRITABLE)") $(info "ENABLE_AUTO_TECH_SUPPORT" : "$(ENABLE_AUTO_TECH_SUPPORT)") $(info "PDDF_SUPPORT" : "$(PDDF_SUPPORT)") @@ -1054,6 +1057,7 @@ $(addprefix $(TARGET_PATH)/, $(SONIC_INSTALLERS)) : $(TARGET_PATH)/% : \ $$(addprefix $(FILES_PATH)/,$$($$*_FILES)) \ $(addsuffix -install,$(addprefix $(IMAGE_DISTRO_DEBS_PATH)/,$(DEBOOTSTRAP))) \ $(if $(findstring y,$(ENABLE_ZTP)),$(addprefix $(IMAGE_DISTRO_DEBS_PATH)/,$(SONIC_ZTP))) \ + $(if $(findstring y,$(ENABLE_FIPS_FEATURE)),$(addprefix $(IMAGE_DISTRO_DEBS_PATH)/,$(SYMCRYPT_OPENSSL))) \ $(addprefix $(PYTHON_WHEELS_PATH)/,$(SONIC_UTILITIES_PY3)) \ $(addprefix $(PYTHON_WHEELS_PATH)/,$(SONIC_PY_COMMON_PY2)) \ $(addprefix $(PYTHON_WHEELS_PATH)/,$(SONIC_PY_COMMON_PY3)) \ @@ -1106,7 +1110,7 @@ $(addprefix $(TARGET_PATH)/, $(SONIC_INSTALLERS)) : $(TARGET_PATH)/% : \ export include_kubernetes="$(INCLUDE_KUBERNETES)" export kube_docker_proxy="$(KUBE_DOCKER_PROXY)" export enable_pfcwd_on_start="$(ENABLE_PFCWD_ON_START)" - export installer_debs="$(addprefix $(IMAGE_DISTRO_DEBS_PATH)/,$($*_INSTALLS))" + export installer_debs="$(addprefix $(IMAGE_DISTRO_DEBS_PATH)/,$($*_INSTALLS) $(FIPS_BASEIMAGE_INSTALLERS))" export lazy_installer_debs="$(foreach deb, $($*_LAZY_INSTALLS),$(foreach device, $($(deb)_PLATFORM),$(addprefix $(device)@, $(IMAGE_DISTRO_DEBS_PATH)/$(deb))))" export lazy_build_installer_debs="$(foreach deb, $($*_LAZY_BUILD_INSTALLS), $(addprefix $($(deb)_MACHINE)|,$(deb)))" export installer_images="$(foreach docker, $($*_DOCKERS),\ diff --git a/sonic-slave-bullseye/Dockerfile.j2 b/sonic-slave-bullseye/Dockerfile.j2 index 3e69075a0d05..2d91a3f836c9 100644 --- a/sonic-slave-bullseye/Dockerfile.j2 +++ b/sonic-slave-bullseye/Dockerfile.j2 @@ -397,20 +397,14 @@ RUN sudo augtool --autosave "set /files/etc/dpkg/dpkg.cfg/force-confold" RUN apt-get -y build-dep linux # For gobgp and telemetry build -RUN export VERSION=1.14.2 \ -{%- if CONFIGURED_ARCH == "armhf" %} - && wget https://storage.googleapis.com/golang/go$VERSION.linux-armv6l.tar.gz \ - && tar -C /usr/local -xzf go$VERSION.linux-armv6l.tar.gz \ -{%- elif CONFIGURED_ARCH == "arm64" %} - && wget https://storage.googleapis.com/golang/go$VERSION.linux-arm64.tar.gz \ - && tar -C /usr/local -xzf go$VERSION.linux-arm64.tar.gz \ -{%- else %} - && wget https://storage.googleapis.com/golang/go$VERSION.linux-amd64.tar.gz \ - && tar -C /usr/local -xzf go$VERSION.linux-amd64.tar.gz \ +RUN apt-get install -y golang-1.15 && ln -s /usr/lib/go-1.15 /usr/local/go +{%- if ENABLE_FIPS_FEATURE == "y" %} +RUN wget -O golang-go.deb 'https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.1/{{ CONFIGURED_ARCH }}/golang-1.15-go_1.15.15-1~deb11u4%2Bfips_{{ CONFIGURED_ARCH }}.deb' \ + && wget -O golang-src.deb 'https://sonicstorage.blob.core.windows.net/public/fips/bullseye/0.1/{{ CONFIGURED_ARCH }}/golang-1.15-src_1.15.15-1~deb11u4%2Bfips_{{ CONFIGURED_ARCH }}.deb' \ + && dpkg -i golang-go.deb golang-src.deb \ + && ln -sf /usr/lib/go-1.15 /usr/local/go \ + && rm golang-go.deb golang-src.deb {%- endif %} - && echo 'export GOROOT=/usr/local/go' >> /etc/bash.bashrc \ - && echo 'export PATH=$PATH:$GOROOT/bin' >> /etc/bash.bashrc \ - && rm go$VERSION.linux-*.tar.gz RUN pip3 install --upgrade pip RUN apt-get purge -y python3-pip python3-yaml diff --git a/src/sonic-fips/.gitignore b/src/sonic-fips/.gitignore new file mode 100644 index 000000000000..f6c56847b1e6 --- /dev/null +++ b/src/sonic-fips/.gitignore @@ -0,0 +1 @@ +sonic-fips diff --git a/src/sonic-fips/Makefile b/src/sonic-fips/Makefile new file mode 100644 index 000000000000..f38583e2f6c8 --- /dev/null +++ b/src/sonic-fips/Makefile @@ -0,0 +1,29 @@ +.ONESHELL: +SHELL = /bin/bash +.SHELLFLAGS += -e + +SONIC_FIPS_BUILD_FROM_SOURCE =? n + +include ../../rules/sonic-fips.mk + +MAIN_TARGET = $(SYMCRYPT_OPENSSL) + +$(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% : + if [ "$(SONIC_FIPS_BUILD_FROM_SOURCE)" == "y" ]; then + git clone -b "$(FIPS_VERSION)" https://github.com/Azure/sonic-fips + push sonic-fips + git submodule update --init + push src/SymCrypt; git submodule update --init -- jitterentropy-library; pop + make all + pop + cp sonic-fips/target/*.deb $(DEST)/ + exit 0 + fi + for target in $(FIPS_PACKAGE_ALL); do + filename=$$(basename $$target) + url=$(FIPS_URL_PREFIX)/$$filename + mkdir -p "$$(dirname $(DEST)/$$target)" + wget -O "$(DEST)/$$target" "$$url" + done + +$(addprefix $(DEST)/, $(FIPS_DERIVED_TARGET)): $(DEST)/% : $(DEST)/$(MAIN_TARGET) From cfdb8431df86105698eabe9e5e1ee112c06fd7db Mon Sep 17 00:00:00 2001 From: kellyyeh <42761586+kellyyeh@users.noreply.github.com> Date: Thu, 5 May 2022 18:04:14 -0700 Subject: [PATCH 153/251] [dhcp6relay] Add dhcpv6 option check (#10486) --- .../test_show_dhcp6relay_counters.py | 1 + .../cli/show/plugins/show_dhcp_relay.py | 2 +- src/dhcp6relay/src/relay.cpp | 50 ++++++++++++++----- src/dhcp6relay/src/relay.h | 2 + 4 files changed, 41 insertions(+), 14 deletions(-) diff --git a/dockers/docker-dhcp-relay/cli-plugin-tests/test_show_dhcp6relay_counters.py b/dockers/docker-dhcp-relay/cli-plugin-tests/test_show_dhcp6relay_counters.py index 501309ddd4d7..d818fa9c69a3 100644 --- a/dockers/docker-dhcp-relay/cli-plugin-tests/test_show_dhcp6relay_counters.py +++ b/dockers/docker-dhcp-relay/cli-plugin-tests/test_show_dhcp6relay_counters.py @@ -32,6 +32,7 @@ Decline Relay-Forward Relay-Reply + Malformed """ diff --git a/dockers/docker-dhcp-relay/cli/show/plugins/show_dhcp_relay.py b/dockers/docker-dhcp-relay/cli/show/plugins/show_dhcp_relay.py index 2e641c4c4233..91d5082e8f0c 100644 --- a/dockers/docker-dhcp-relay/cli/show/plugins/show_dhcp_relay.py +++ b/dockers/docker-dhcp-relay/cli/show/plugins/show_dhcp_relay.py @@ -12,7 +12,7 @@ DHCPv6_COUNTER_TABLE = 'DHCPv6_COUNTER_TABLE' # DHCPv6 Counter Messages -messages = ["Unknown", "Solicit", "Advertise", "Request", "Confirm", "Renew", "Rebind", "Reply", "Release", "Decline", "Relay-Forward", "Relay-Reply"] +messages = ["Unknown", "Solicit", "Advertise", "Request", "Confirm", "Renew", "Rebind", "Reply", "Release", "Decline", "Relay-Forward", "Relay-Reply", "Malformed"] # DHCP_RELAY Config Table DHCP_RELAY = 'DHCP_RELAY' diff --git a/src/dhcp6relay/src/relay.cpp b/src/dhcp6relay/src/relay.cpp index 951b31f90a0c..f9c7900c2690 100644 --- a/src/dhcp6relay/src/relay.cpp +++ b/src/dhcp6relay/src/relay.cpp @@ -49,18 +49,19 @@ const struct sock_fprog ether_relay_fprog = { /* DHCPv6 Counter */ uint64_t counters[DHCPv6_MESSAGE_TYPE_COUNT]; -std::map counterMap = {{0, "Unknown"}, - {1, "Solicit"}, - {2, "Advertise"}, - {3, "Request"}, - {4, "Confirm"}, - {5, "Renew"}, - {6, "Rebind"}, - {7, "Reply"}, - {8, "Release"}, - {9, "Decline"}, - {12, "Relay-Forward"}, - {13, "Relay-Reply"}}; +std::map counterMap = {{DHCPv6_MESSAGE_TYPE_UNKNOWN, "Unknown"}, + {DHCPv6_MESSAGE_TYPE_SOLICIT, "Solicit"}, + {DHCPv6_MESSAGE_TYPE_ADVERTISE, "Advertise"}, + {DHCPv6_MESSAGE_TYPE_REQUEST, "Request"}, + {DHCPv6_MESSAGE_TYPE_CONFIRM, "Confirm"}, + {DHCPv6_MESSAGE_TYPE_RENEW, "Renew"}, + {DHCPv6_MESSAGE_TYPE_REBIND, "Rebind"}, + {DHCPv6_MESSAGE_TYPE_REPLY, "Reply"}, + {DHCPv6_MESSAGE_TYPE_RELEASE, "Release"}, + {DHCPv6_MESSAGE_TYPE_DECLINE, "Decline"}, + {DHCPv6_MESSAGE_TYPE_RELAY_FORW, "Relay-Forward"}, + {DHCPv6_MESSAGE_TYPE_RELAY_REPL, "Relay-Reply"}, + {DHCPv6_MESSAGE_TYPE_MALFORMED, "Malformed"}}; /** * @code void initialize_counter(swss::DBConnector *db, std::string counterVlan); @@ -85,6 +86,7 @@ void initialize_counter(swss::DBConnector *db, std::string counterVlan) { db->hset(counterVlan, "Decline", toString(counters[DHCPv6_MESSAGE_TYPE_DECLINE])); db->hset(counterVlan, "Relay-Forward", toString(counters[DHCPv6_MESSAGE_TYPE_RELAY_FORW])); db->hset(counterVlan, "Relay-Reply", toString(counters[DHCPv6_MESSAGE_TYPE_RELAY_REPL])); + db->hset(counterVlan, "Malformed", toString(counters[DHCPv6_MESSAGE_TYPE_MALFORMED])); } /** @@ -622,6 +624,8 @@ void callback(evutil_socket_t fd, short event, void *arg) { current_position = tmp; auto msg = parse_dhcpv6_hdr(current_position); + auto option_position = current_position + sizeof(struct dhcpv6_msg); + counters[msg->msg_type]++; std::string counterVlan = counter_table; update_counter(config->db, counterVlan.append(config->interface), msg->msg_type); @@ -632,11 +636,31 @@ void callback(evutil_socket_t fd, short event, void *arg) { relay_relay_forw(config->local_sock, current_position, ntohs(udp_header->len) - sizeof(udphdr), ip_header, config); break; } - default: + case DHCPv6_MESSAGE_TYPE_SOLICIT: + case DHCPv6_MESSAGE_TYPE_REQUEST: + case DHCPv6_MESSAGE_TYPE_RENEW: + case DHCPv6_MESSAGE_TYPE_REBIND: + case DHCPv6_MESSAGE_TYPE_RELEASE: + case DHCPv6_MESSAGE_TYPE_DECLINE: { + while (option_position - message_buffer < len) { + auto option = parse_dhcpv6_opt(option_position, &tmp); + option_position = tmp; + if(ntohs(option->option_code) > DHCPv6_OPTION_LIMIT) { + counters[DHCPv6_MESSAGE_TYPE_MALFORMED]++; + update_counter(config->db, counterVlan.append(config->interface), DHCPv6_MESSAGE_TYPE_MALFORMED); + syslog(LOG_WARNING, "DHCPv6 option is invalid or contains malformed payload\n"); + return; + } + } relay_client(config->local_sock, current_position, ntohs(udp_header->len) - sizeof(udphdr), ip_header, ether_header, config); break; } + default: + { + syslog(LOG_WARNING, "DHCPv6 client message received was not relayed\n"); + break; + } } } diff --git a/src/dhcp6relay/src/relay.h b/src/dhcp6relay/src/relay.h index c224a9b28630..29e365bb5d83 100644 --- a/src/dhcp6relay/src/relay.h +++ b/src/dhcp6relay/src/relay.h @@ -16,6 +16,7 @@ #define RELAY_PORT 547 #define CLIENT_PORT 546 #define HOP_LIMIT 8 //HOP_LIMIT reduced from 32 to 8 as stated in RFC8415 +#define DHCPv6_OPTION_LIMIT 56 // DHCPv6 option code greater than 56 are currently unassigned #define lengthof(A) (sizeof (A) / sizeof (A)[0]) @@ -37,6 +38,7 @@ typedef enum DHCPv6_MESSAGE_TYPE_DECLINE = 9, DHCPv6_MESSAGE_TYPE_RELAY_FORW = 12, DHCPv6_MESSAGE_TYPE_RELAY_REPL = 13, + DHCPv6_MESSAGE_TYPE_MALFORMED = 14, DHCPv6_MESSAGE_TYPE_COUNT } dhcp_message_type_t; From 9ae17e66a392429899d8b371eca2361ced303150 Mon Sep 17 00:00:00 2001 From: vmittal-msft <46945843+vmittal-msft@users.noreply.github.com> Date: Thu, 5 May 2022 20:27:29 -0700 Subject: [PATCH 154/251] [sonic-sairedis update] Support for SAI header v1.10.2 with BRCM SAI v7.1.0.0 and MLNX SAI v1.21.1.0 (#10583) --- platform/broadcom/sai-modules.mk | 4 +- platform/broadcom/sai.mk | 4 +- platform/broadcom/saibcm-modules-dnx | 2 +- .../broadcom/saibcm-modules/debian/changelog | 6 + .../saibcm-modules/include/soc/cmic.h | 37 - .../make/Makefile.linux-bmw-2_6 | 122 - .../saibcm-modules/make/Makefile.linux-gto | 127 -- .../make/Makefile.linux-gto-2_6 | 270 --- .../make/Makefile.linux-jag-2_6 | 166 -- .../make/Makefile.linux-nsx-2_6 | 56 - .../saibcm-modules/make/Makefile.linux-nsx64 | 54 - .../make/Makefile.linux-nsx_wrl-2_6 | 127 -- .../saibcm-modules/make/Makefile.linux-raptor | 53 - .../make/Makefile.linux-raptor-2_6 | 172 -- .../kernel/modules/bcm-ptp-clock/Makefile | 65 - .../modules/bcm-ptp-clock/bcm-ptp-clock.c | 1999 ----------------- .../linux/kernel/modules/knet-cb/psample-cb.c | 2 +- .../linux/kernel/modules/psample/psample.c | 2 + .../linux/kernel/modules/shared/ksal.c | 6 + .../systems/linux/user/bmw-2_6/Makefile | 63 - .../systems/linux/user/gto-2_6/Makefile | 84 - .../systems/linux/user/gto/Makefile | 60 - .../systems/linux/user/jag-2_6/Makefile | 79 - .../systems/linux/user/nsx-2_6/Makefile | 58 - .../systems/linux/user/nsx64/Makefile | 57 - .../systems/linux/user/nsx_wrl-2_6/Makefile | 65 - .../systems/linux/user/raptor-2_6/Makefile | 79 - .../systems/linux/user/raptor/Makefile | 58 - platform/mellanox/mlnx-sai.mk | 2 +- platform/mellanox/mlnx-sai/SAI-Implementation | 2 +- slave.mk | 2 +- src/sonic-sairedis | 2 +- 32 files changed, 24 insertions(+), 3861 deletions(-) delete mode 100644 platform/broadcom/saibcm-modules/include/soc/cmic.h delete mode 100644 platform/broadcom/saibcm-modules/make/Makefile.linux-bmw-2_6 delete mode 100644 platform/broadcom/saibcm-modules/make/Makefile.linux-gto delete mode 100644 platform/broadcom/saibcm-modules/make/Makefile.linux-gto-2_6 delete mode 100644 platform/broadcom/saibcm-modules/make/Makefile.linux-jag-2_6 delete mode 100644 platform/broadcom/saibcm-modules/make/Makefile.linux-nsx-2_6 delete mode 100644 platform/broadcom/saibcm-modules/make/Makefile.linux-nsx64 delete mode 100644 platform/broadcom/saibcm-modules/make/Makefile.linux-nsx_wrl-2_6 delete mode 100644 platform/broadcom/saibcm-modules/make/Makefile.linux-raptor delete mode 100644 platform/broadcom/saibcm-modules/make/Makefile.linux-raptor-2_6 delete mode 100644 platform/broadcom/saibcm-modules/systems/linux/kernel/modules/bcm-ptp-clock/Makefile delete mode 100644 platform/broadcom/saibcm-modules/systems/linux/kernel/modules/bcm-ptp-clock/bcm-ptp-clock.c delete mode 100644 platform/broadcom/saibcm-modules/systems/linux/user/bmw-2_6/Makefile delete mode 100644 platform/broadcom/saibcm-modules/systems/linux/user/gto-2_6/Makefile delete mode 100644 platform/broadcom/saibcm-modules/systems/linux/user/gto/Makefile delete mode 100644 platform/broadcom/saibcm-modules/systems/linux/user/jag-2_6/Makefile delete mode 100644 platform/broadcom/saibcm-modules/systems/linux/user/nsx-2_6/Makefile delete mode 100644 platform/broadcom/saibcm-modules/systems/linux/user/nsx64/Makefile delete mode 100644 platform/broadcom/saibcm-modules/systems/linux/user/nsx_wrl-2_6/Makefile delete mode 100644 platform/broadcom/saibcm-modules/systems/linux/user/raptor-2_6/Makefile delete mode 100644 platform/broadcom/saibcm-modules/systems/linux/user/raptor/Makefile diff --git a/platform/broadcom/sai-modules.mk b/platform/broadcom/sai-modules.mk index 1236e06d6240..5aa7792064cb 100644 --- a/platform/broadcom/sai-modules.mk +++ b/platform/broadcom/sai-modules.mk @@ -1,6 +1,6 @@ # Broadcom SAI modules -BRCM_OPENNSL_KERNEL_VERSION = 6.1.0.3 +BRCM_OPENNSL_KERNEL_VERSION = 7.1.0.0 BRCM_OPENNSL_KERNEL = opennsl-modules_$(BRCM_OPENNSL_KERNEL_VERSION)_amd64.deb $(BRCM_OPENNSL_KERNEL)_SRC_PATH = $(PLATFORM_PATH)/saibcm-modules @@ -10,7 +10,7 @@ $(BRCM_OPENNSL_KERNEL)_MACHINE = broadcom SONIC_DPKG_DEBS += $(BRCM_OPENNSL_KERNEL) # SAI bcm modules for DNX family ASIC -BRCM_DNX_OPENNSL_KERNEL_VERSION = 6.1.0.3 +BRCM_DNX_OPENNSL_KERNEL_VERSION = 7.1.0.0 BRCM_DNX_OPENNSL_KERNEL = opennsl-modules-dnx_$(BRCM_DNX_OPENNSL_KERNEL_VERSION)_amd64.deb $(BRCM_DNX_OPENNSL_KERNEL)_SRC_PATH = $(PLATFORM_PATH)/saibcm-modules-dnx diff --git a/platform/broadcom/sai.mk b/platform/broadcom/sai.mk index 1ec8d915e5bd..872c51276fe5 100644 --- a/platform/broadcom/sai.mk +++ b/platform/broadcom/sai.mk @@ -1,5 +1,5 @@ -LIBSAIBCM_VERSION = 6.1.0.3 -LIBSAIBCM_BRANCH_NAME = REL_6.1 +LIBSAIBCM_VERSION = 7.1.0.0 +LIBSAIBCM_BRANCH_NAME = REL_7.0 LIBSAIBCM_URL_PREFIX = "https://sonicstorage.blob.core.windows.net/public/sai/bcmsai/$(LIBSAIBCM_BRANCH_NAME)/$(LIBSAIBCM_VERSION)" BRCM_SAI = libsaibcm_$(LIBSAIBCM_VERSION)_amd64.deb diff --git a/platform/broadcom/saibcm-modules-dnx b/platform/broadcom/saibcm-modules-dnx index 6bf58f8310bc..fb4cf12529bc 160000 --- a/platform/broadcom/saibcm-modules-dnx +++ b/platform/broadcom/saibcm-modules-dnx @@ -1 +1 @@ -Subproject commit 6bf58f8310bcb29168ae5b2dabed84fc942429fc +Subproject commit fb4cf12529bc27fffc1c988029f4db100138f133 diff --git a/platform/broadcom/saibcm-modules/debian/changelog b/platform/broadcom/saibcm-modules/debian/changelog index 0ff357c57279..daa78471c6b2 100644 --- a/platform/broadcom/saibcm-modules/debian/changelog +++ b/platform/broadcom/saibcm-modules/debian/changelog @@ -1,3 +1,9 @@ +opennsl (7.1.0.0) unstable; urgency=medium + + * Update to Broadcom SAI 7.1.0.0. + + -- Vineet Mittal Tue, 19 APR 2022 12:30:00 +0000 + opennsl (6.1.0.3) unstable; urgency=medium * Update to Broadcom SAI 6.1.0.3 diff --git a/platform/broadcom/saibcm-modules/include/soc/cmic.h b/platform/broadcom/saibcm-modules/include/soc/cmic.h deleted file mode 100644 index 5bf6130237a2..000000000000 --- a/platform/broadcom/saibcm-modules/include/soc/cmic.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright 2017 Broadcom - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License, version 2, as - * published by the Free Software Foundation (the "GPL"). - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License version 2 (GPLv2) for more details. - * - * You should have received a copy of the GNU General Public License - * version 2 (GPLv2) along with this source code. - */ -/* - * $Id: cmic.h,v 1.1 Broadcom SDK $ - * $Copyright: (c) 2005 Broadcom Corp. - * All Rights Reserved.$ - * - * File: cmic.h - * Purpose: Maps out structures used for CMIC operations and - * exports routines and constants. - */ - -#ifndef _SOC_CMIC_H -#define _SOC_CMIC_H - -/* IRQ Register (RO) */ -#define CMIC_IRQ_STAT 0x00000144 - -/* IRQ Mask Registers (R/W) */ -#define CMIC_IRQ_MASK 0x00000148 -#define CMIC_IRQ_MASK_1 0x0000006C -#define CMIC_IRQ_MASK_2 0x00000070 - -#endif /* !_SOC_CMIC_H */ diff --git a/platform/broadcom/saibcm-modules/make/Makefile.linux-bmw-2_6 b/platform/broadcom/saibcm-modules/make/Makefile.linux-bmw-2_6 deleted file mode 100644 index 6fa170fb75e6..000000000000 --- a/platform/broadcom/saibcm-modules/make/Makefile.linux-bmw-2_6 +++ /dev/null @@ -1,122 +0,0 @@ -# -# Copyright 2017 Broadcom -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License, version 2, as -# published by the Free Software Foundation (the "GPL"). -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License version 2 (GPLv2) for more details. -# -# You should have received a copy of the GNU General Public License -# version 2 (GPLv2) along with this source code. -# -# $Id: Makefile.linux-bmw-2_6,v 1.20 Broadcom SDK $ -# $Copyright: (c) 2005 Broadcom Corp. -# All Rights Reserved.$ - -# Look for custom tools -ifneq (,$(PPC_TOOLS_DIR)) -ifneq (,$(PPC_CROSS_COMPILE)) -override PATH := $(PPC_TOOLS_DIR):$(PATH) -override CROSS_COMPILE := $(PPC_CROSS_COMPILE) -endif -endif - -# Default tools -ifeq (,$(WRS_LINUX_VERSION)) -WRS_LINUX_VERSION=2.0 -endif - -# Default Linux Kernel directory -ifeq (,$(KERNDIR)) - -ifeq (1.4,$(WRS_LINUX_VERSION)) - -KERNDIR := /projects/ntsw-tools/linux/wrslinux_1.4/bcm98245cpci/build/linux-2.6.14-cgl - -ifeq (,$(CROSS_COMPILE)) -CROSS_COMPILE = powerpc-wrs-linux-gnu-603e-glibc_std- -endif - -WRLINUX_BASE=/tools/windriver/linux_ed/1.4/Linux -export WIND_LIC_PROXY = $(WRLINUX_BASE)/setup/x86-linux2/bin -override PATH := $(WRLINUX_BASE)/gnu/3.4.4-wrlinux-1.4/x86-linux2/bin:$(PATH) - -WRS_SYSROOT_PATH := $(WRLINUX_GNU_PATH)/../lib/gcc/powerpc-wrs-linux-gnu/3.4.4/include -else - -ifeq (2.0,$(WRS_LINUX_VERSION)) - -ifeq (,$(CROSS_COMPILE)) -CROSS_COMPILE = powerpc-wrs-linux-gnu-ppc_603e-glibc_std- -endif - -KERNDIR:= /projects/ntsw-tools/linux/wrslinux_2.0/bmw/glibc_std/build/linux-2.6.21-standard - -WRLINUX_BASE=/tools/windriver/linux_ed/2.0_GA/Linux - -TOOLCHAIN_EXEC_PREFIX=$(WRLINUX_BASE)/gnu/4.1-wrlinux-2.0/x86-linux2 -TOOLCHAIN_BIN_DIR=$(TOOLCHAIN_EXEC_PREFIX) -WIND_LIC_PROXY=$(WRLINUX_BASE)/setup/x86-linux2/bin - -WRLINUX_GNU_PATH = $(WRLINUX_BASE)/gnu/4.1-wrlinux-2.0/x86-linux2/bin - -override PATH := $(TOOLCHAIN_EXEC_PREFIX):$(KERNDIR)/../../host-cross/bin:$(KERNDIR)/../../host-cross/powerpc-wrs-linux-gnu/bin:$(WRLINUX_GNU_PATH):$(PATH) - -export TOOLCHAIN_EXEC_PREFIX TOOLCHAIN_BIN_DIR WIND_LIC_PROXY - -WRS_SYSROOT_PATH := $(WRLINUX_GNU_PATH)/../lib/gcc/powerpc-wrs-linux-gnu/4.1.2/include - -comma = , -basetarget = $(basename $(notdir $@)) -modname = $(basetarget) - -# Extra variables. -EXTRA_CFLAGS = -D"KBUILD_STR(s)=\#s" $(basename_flags) $(modname_flags) - -name-fix = $(subst $(comma),_,$(subst -,_,$1)) -basename_flags = -D"KBUILD_BASENAME=KBUILD_STR($(call name-fix,$(basetarget)))" -modname_flags = $(if $(filter 1,$(words $(modname))),\ - -D"KBUILD_MODNAME=KBUILD_STR($(call name-fix,$(modname)))") -endif -endif -endif - -# Default Linux include directory -ifeq (,$(LINUX_INCLUDE)) -LINUX_INCLUDE := $(KERNDIR)/include -endif - -CFGFLAGS += -DSYS_BE_PIO=1 -DSYS_BE_PACKET=0 -DSYS_BE_OTHER=1 -ENDIAN = BE_HOST=1 -CFGFLAGS += -D$(ENDIAN) -CFGFLAGS += -DBCM_PLATFORM_STRING=\"BMW_MPC8245/PPC603e\" - -ARCH = ppc -KBUILD_VERBOSE = 1 - -export ARCH KBUILD_VERBOSE - -ifeq (1.4,$(WRS_LINUX_VERSION)) -# From linux/arch/ppc/Makefile - -ifeq (,$(KFLAGS)) -KFLAGS := -D__KERNEL__ -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -fsigned-char -msoft-float -pipe -ffixed-r2 -Wno-uninitialized -mmultiple -mstring -endif - -else -ifeq (2.0,$(WRS_LINUX_VERSION)) - -ifeq (,$(KFLAGS)) -KFLAGS := -D__KERNEL__ -m32 -nostdinc -isystem $(WRS_SYSROOT_PATH) -I$(LINUX_INCLUDE) -include $(LINUX_INCLUDE)/linux/autoconf.h -I$(KERNDIR)/arch/ppc -I$(KERNDIR)/arch/ppc/include -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -msoft-float -pipe -ffixed-r2 -mmultiple -mno-altivec -mstring -fomit-frame-pointer -fno-stack-protector -Wdeclaration-after-statement -Wno-pointer-sign -endif - -endif -endif - -ifneq ($(targetplat),user) -include ${SDK}/make/Makefile.linux-kernel-2_6 -endif diff --git a/platform/broadcom/saibcm-modules/make/Makefile.linux-gto b/platform/broadcom/saibcm-modules/make/Makefile.linux-gto deleted file mode 100644 index 4a20a99dac69..000000000000 --- a/platform/broadcom/saibcm-modules/make/Makefile.linux-gto +++ /dev/null @@ -1,127 +0,0 @@ -# -# Copyright 2017 Broadcom -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License, version 2, as -# published by the Free Software Foundation (the "GPL"). -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License version 2 (GPLv2) for more details. -# -# You should have received a copy of the GNU General Public License -# version 2 (GPLv2) along with this source code. -# -# $Id: Makefile.linux-gto-4_4,v 1.42 Broadcom SDK $ -# $Copyright: (c) 2015 Broadcom Corp. -# All Rights Reserved.$ - -# User must select one platform from below. -ifeq (,$(BUILD_PLATFORM)) -BUILD_PLATFORM=POWERPC_LINUX -endif - -# TOOLCHAIN_BASE_DIR Toolchain base directory for GTO devices -# TARGET_ARCHITECTURE Compiler for target architecture -# KERNDIR Kernel directory for iPROC-CMICd devices -TOOLCHAIN_BASE_DIR ?= /projects/ntsw-tools/linux/gto -TARGET_ARCHITECTURE := powerpc-broadcom-linux-gnuspe -KERNDIR ?= $(TOOLCHAIN_BASE_DIR)/kernel/current - - -ifeq (,$(CROSS_COMPILE)) -CROSS_COMPILE := $(TARGET_ARCHITECTURE)- -endif - - -# GTO toolchain -TOOLCHAIN_BIN_DIR := $(TOOLCHAIN_BASE_DIR)/toolchain/host/usr/bin -override PATH := $(TOOLCHAIN_BIN_DIR)/../$(TARGET_ARCHITECTURE)/bin:$(TOOLCHAIN_BIN_DIR):$(PATH) -export TOOLCHAIN_BIN_DIR - - -# Default Linux include directory -ifeq (,$(LINUX_INCLUDE)) -LINUX_INCLUDE := $(KERNDIR)/include -endif - -CFGFLAGS += -DSYS_BE_PIO=1 -DSYS_BE_PACKET=0 -DSYS_BE_OTHER=1 -ENDIAN = BE_HOST=1 -CFGFLAGS += -D$(ENDIAN) -CFGFLAGS += -DBCM_PLATFORM_STRING=\"GTO_MPC8548\" -CFGFLAGS += -DSAL_BDE_DMA_MEM_DEFAULT=32 - -# Extra variables. -EXTRA_CFLAGS = -D"KBUILD_STR(s)=\#s" $(basename_flags) $(modname_flags) - -ARCH = powerpc -KBUILD_VERBOSE = 1 - -export ARCH KBUILD_VERBOSE - - -# From linux/arch/ppc/Makefile -comma = , -basetarget = $(basename $(notdir $@)) -modname = $(basetarget) - -name-fix = $(subst $(comma),_,$(subst -,_,$1)) -basename_flags = -D"KBUILD_BASENAME=KBUILD_STR($(call name-fix,$(basetarget)))" -modname_flags = $(if $(filter 1,$(words $(modname))),\ - -D"KBUILD_MODNAME=KBUILD_STR($(call name-fix,$(modname)))") - -KFLAG_INCLD = $(TOOLCHAIN_BIN_DIR)/../lib/gcc/$(TARGET_ARCHITECTURE)/4.6.4/include - -ifdef BROADCOM_SVK -ifeq ($PLX_PCI2LBUS, 1) -CFLAGS += -DBCM_PLX9656_LOCAL_BUS -DBDE_LINUX_NON_INTERRUPTIBLE -endif -endif - -ifdef DPP_CHIPS -CFLAGS += -DDUNE_BCM -D__DUNE_LINUX_BCM_CPU_PCP_DMA__ -CFGFLAGS += -DSOC_CM_FUNCTION -endif - -ifdef DFE_CHIPS -CFLAGS += -DDUNE_BCM -CFGFLAGS += -DSOC_CM_FUNCTION -endif - -ifdef SAND_CHIPS -CFLAGS += -D__DUNE_GTO_BCM_CPU__ -D__DUNE_LINUX_BCM_CPU_PCIE__ -endif - -ifdef SHADOW_PLX -CFLAGS += -DBCM_PLX9656_LOCAL_BUS -DBDE_LINUX_NON_INTERRUPTIBLE -DSHADOW_SVK -endif - -ifdef LTSW_CHIPS -# Default open source target build -OPENSRC_BUILD ?= uclibc_201402_ppc - -# Hardware interface (see $SDKLT/bcma/sys/probe directory) -SYSTEM_INTERFACE ?= ngbde - -# Turn on direct register access if running on real hardware. -ifeq (ngbde,$(SYSTEM_INTERFACE)) -LTSW_ADD_CPPFLAGS += -DBCMDRD_CONFIG_MEMMAP_DIRECT=1 -endif - -export SYSTEM_INTERFACE -endif - -ifeq (,$(KFLAGS)) -KFLAGS := -D__KERNEL__ -m32 -nostdinc -isystem $(KFLAG_INCLD) -I$(LINUX_INCLUDE) -include $(LINUX_INCLUDE)/generated/uapi/linux/version.h -include $(LINUX_INCLUDE)/generated/autoconf.h -I$(KERNDIR)/arch/powerpc -I$(KERNDIR)/arch/powerpc/include -I$(KERNDIR)/include/asm-powerpc -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -msoft-float -pipe -ffixed-r2 -mmultiple -mno-altivec -funit-at-a-time -Wa,-me500 -fomit-frame-pointer -Wdeclaration-after-statement -Wno-pointer-sign -endif - -ifneq (,$(findstring TCL,$(FEATURE_LIST))) -#LINK_STATIC = 0 -#export LINK_STATIC -endif - -ifneq ($(targetplat),user) -include ${SDK}/make/Makefile.linux-kernel-4_4 -endif - diff --git a/platform/broadcom/saibcm-modules/make/Makefile.linux-gto-2_6 b/platform/broadcom/saibcm-modules/make/Makefile.linux-gto-2_6 deleted file mode 100644 index 56085c7a3cdd..000000000000 --- a/platform/broadcom/saibcm-modules/make/Makefile.linux-gto-2_6 +++ /dev/null @@ -1,270 +0,0 @@ -# -# Copyright 2017 Broadcom -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License, version 2, as -# published by the Free Software Foundation (the "GPL"). -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License version 2 (GPLv2) for more details. -# -# You should have received a copy of the GNU General Public License -# version 2 (GPLv2) along with this source code. -# -# $Id: Makefile.linux-gto-2_6,v 1.42 Broadcom SDK $ -# $Copyright: (c) 2005 Broadcom Corp. -# All Rights Reserved.$ - -# User must select one platform from below.By default WR_LINUX is selected. . -ifeq (,$(BUILD_PLATFORM)) -#BUILD_PLATFORM=ELDK -BUILD_PLATFORM=WR_LINUX -endif - -# Specify the ELDK version you want to use for building SDK. -ifeq (,$(ELDK_VERSION)) -ifeq (ELDK,$(BUILD_PLATFORM)) -ELDK_VERSION=4.0 -endif -endif - -# Specify the KERNEL VERSION you want to use for building SDK. -ifeq (,$(KERN_VER)) -ifeq (ELDK,$(BUILD_PLATFORM)) -KERN_VER=2.6.21.7 -endif -endif - - -# Specify the Windriver Linux version here.For example '2.0' as shown below. -ifeq (WR_LINUX,$(BUILD_PLATFORM)) -ifeq (,$(WRS_LINUX_VERSION)) -WRS_LINUX_VERSION=2.0 -endif -endif - - -#glibc_small and glibc_std have their own cross-compilation tools and and path for these tools are different as implemented below. To enable glibc_small build, line given below should be uncommented. - -#WRL_GLIBC_SMALL=TRUE - -ifeq (2.0,$(WRS_LINUX_VERSION)) -ifeq ($(WRL_GLIBC_SMALL),TRUE) - -ifeq (,$(CROSS_COMPILE)) -CROSS_COMPILE := powerpc-wrs-linux-gnu-ppc_e500v2-glibc_small- -endif - -KERNDIR ?=/projects/ntsw-tools/linux/wrslinux_2.0/gto/glibc_small/build/linux-2.6.21-standard - -else - -ifeq (,$(CROSS_COMPILE)) -CROSS_COMPILE := powerpc-wrs-linux-gnu-ppc_e500v2-glibc_std- -endif - -KERNDIR ?= /projects/ntsw-tools/linux/wrslinux_2.0/gto/glibc_std/build/linux-2.6.21-standard - -endif - -export WRL_GLIBC_SMALL - -# After this point glibc_std and glibc_small share these flags - -WRLINUX_BASE ?=/tools/windriver/linux_ed/2.0_GA/Linux -TOOLCHAIN_EXEC_PREFIX=$(WRLINUX_BASE)/gnu/4.1-wrlinux-2.0/x86-linux2 -TOOLCHAIN_BIN_DIR=$(TOOLCHAIN_EXEC_PREFIX) -WIND_LIC_PROXY=$(WRLINUX_BASE)/setup/x86-linux2/bin -WRLINUX_GNU_PATH = $(WRLINUX_BASE)/gnu/4.1-wrlinux-2.0/x86-linux2/bin -override PATH := $(TOOLCHAIN_EXEC_PREFIX):$(KERNDIR)/../../host-cross/bin:$(KERNDIR)/../../host-cross/powerpc-wrs-linux-gnu/bin:$(WRLINUX_GNU_PATH):$(PATH) -export TOOLCHAIN_EXEC_PREFIX TOOLCHAIN_BIN_DIR WIND_LIC_PROXY -endif - - -ifeq (3.0,$(WRS_LINUX_VERSION)) -ifeq ($(WRL_GLIBC_SMALL),TRUE) - -ifeq (,$(CROSS_COMPILE)) -CROSS_COMPILE := powerpc-wrs-linux-gnu-ppc_e500v2-glibc_small- -endif - -KERNDIR ?=/projects/ntsw-tools/linux/wrslinux_3.0/gto/bcm98548xmc_30_glibc_small/build/linux-broadcom_bcm98548xmc-standard-build -KERNDIR_STD ?=/projects/ntsw-tools/linux/wrslinux_3.0/gto/bcm98548xmc_30_glibc_small/build/linux - -else - -ifeq (,$(CROSS_COMPILE)) -CROSS_COMPILE := powerpc-wrs-linux-gnu-ppc_e500v2-glibc_std- -endif - -KERNDIR ?=/projects/ntsw-tools/linux/wrslinux_3.0/gto/bcm98548xmc_30_glibc_std_debug/build/linux-broadcom_bcm98548xmc-standard-build -KERNDIR_STD ?=/projects/ntsw-tools/linux/wrslinux_3.0/gto/bcm98548xmc_30_glibc_std_debug/build/linux - -endif - -export WRL_GLIBC_SMALL - -# After this point glibc_std and glibc_small share these flags - -WRLINUX_BASE ?=/tools/windriver/linux_ed/3.0/Linux -TOOLCHAIN_EXEC_PREFIX=$(WRLINUX_BASE)/wrlinux-3.0/layers/wrll-toolchain-4.3-85/powerpc/toolchain/x86-linux2 -TOOLCHAIN_BIN_DIR=$(TOOLCHAIN_EXEC_PREFIX) -WIND_LIC_PROXY=$(WRLINUX_BASE)/setup/x86-linux2/bin -WRLINUX_GNU_PATH = $(WRLINUX_BASE)/wrlinux-3.0/layers/wrll-toolchain-4.3-85/powerpc/toolchain/x86-linux2/bin -override PATH := $(TOOLCHAIN_EXEC_PREFIX):$(KERNDIR_STD)/../../host-cross/bin:$(KERNDIR_STD)/../../host-cross/powerpc-wrs-linux-gnu/bin:$(WRLINUX_GNU_PATH):$(PATH) -export TOOLCHAIN_EXEC_PREFIX TOOLCHAIN_BIN_DIR WIND_LIC_PROXY - -LINUX_INCLUDE_STD := $(KERNDIR_STD)/include - -endif - -ifeq (ELDK,$(BUILD_PLATFORM)) -ifeq (2.6.21.7, $(KERN_VER)) - -ifeq (,$(CROSS_COMPILE)) -CROSS_COMPILE := ppc_85xx- -endif - -ifeq (4.0, $(ELDK_VERSION)) -override PATH := /tools/eldk/4.0/usr/bin:$(PATH) -else -override PATH := /tools/eldk/4.1/usr/bin:$(PATH) -endif -KERNDIR ?= /projects/ntsw-tools/linux/eldk/gto_eldk/linux-2.6.21.7 -endif -endif - -ifeq (ELDK,$(BUILD_PLATFORM)) -ifeq (2.6.24.4, $(KERN_VER)) - -ifeq (,$(CROSS_COMPILE)) -CROSS_COMPILE := ppc_85xx- -endif - -ifeq (4.0, $(ELDK_VERSION)) -override PATH := /tools/eldk/4.0/usr/bin:$(PATH) -else -override PATH := /tools/eldk/4.1/usr/bin:$(PATH) -endif -KERNDIR ?= /projects/ntsw-tools/linux/eldk/gto_eldk/linux-2.6.24.4 -endif -endif - - -ifeq (ELDK,$(BUILD_PLATFORM)) -ifeq (2.6.25, $(KERN_VER)) - -ifeq (,$(CROSS_COMPILE)) -CROSS_COMPILE := ppc_85xx- -endif - -ifeq (4.0, $(ELDK_VERSION)) -override PATH := /tools/eldk/4.0/usr/bin:$(PATH) -else -override PATH := /tools/eldk/4.1/usr/bin:$(PATH) -endif -KERNDIR ?= /projects/ntsw-tools/linux/eldk/gto_eldk/linux-2.6.25 -endif -endif - - -# Default Linux include directory -ifeq (,$(LINUX_INCLUDE)) -LINUX_INCLUDE := $(KERNDIR)/include -endif - -CFGFLAGS += -DSYS_BE_PIO=1 -DSYS_BE_PACKET=0 -DSYS_BE_OTHER=1 -ENDIAN = BE_HOST=1 -CFGFLAGS += -D$(ENDIAN) -CFGFLAGS += -DBCM_PLATFORM_STRING=\"GTO_MPC8548\" -CFGFLAGS += -DSAL_BDE_DMA_MEM_DEFAULT=32 - -# Extra variables. -EXTRA_CFLAGS = -D"KBUILD_STR(s)=\#s" $(basename_flags) $(modname_flags) - -ARCH = powerpc -KBUILD_VERBOSE = 1 - -export ARCH KBUILD_VERBOSE - - -# From linux/arch/ppc/Makefile -comma = , -basetarget = $(basename $(notdir $@)) -modname = $(basetarget) - -name-fix = $(subst $(comma),_,$(subst -,_,$1)) -basename_flags = -D"KBUILD_BASENAME=KBUILD_STR($(call name-fix,$(basetarget)))" -modname_flags = $(if $(filter 1,$(words $(modname))),\ - -D"KBUILD_MODNAME=KBUILD_STR($(call name-fix,$(modname)))") - - -ifeq (,$(KFLAG_INCLD)) -ifeq (4.0,$(ELDK_VERSION)) -ifeq (ELDK,$(BUILD_PLATFORM)) -KFLAG_INCLD = /tools/eldk/4.0/usr/lib/gcc/powerpc-linux/4.0.0/include -endif -endif - -ifeq (4.1,$(ELDK_VERSION)) -ifeq (ELDK,$(BUILD_PLATFORM)) -KFLAG_INCLD = /tools/eldk/4.1/usr/lib/gcc/powerpc-linux/4.0.0/include -endif -endif - -ifeq (2.0,$(WRS_LINUX_VERSION)) -KFLAG_INCLD = $(WRLINUX_GNU_PATH)/../lib/gcc/powerpc-wrs-linux-gnu/4.1.2/include -endif - -ifeq (3.0,$(WRS_LINUX_VERSION)) -KFLAG_INCLD = $(WRLINUX_GNU_PATH)/../lib/gcc/powerpc-wrs-linux-gnu/4.3.2/include -endif -endif - -ifdef BROADCOM_SVK -ifeq ($PLX_PCI2LBUS, 1) -CFLAGS += -DBCM_PLX9656_LOCAL_BUS -DBDE_LINUX_NON_INTERRUPTIBLE -endif -endif - -ifdef DPP_CHIPS -CFLAGS += -DDUNE_BCM -D__DUNE_LINUX_BCM_CPU_PCP_DMA__ -CFGFLAGS += -DSOC_CM_FUNCTION -endif - -ifdef DFE_CHIPS -CFLAGS += -DDUNE_BCM -CFGFLAGS += -DSOC_CM_FUNCTION -endif - -ifdef SAND_CHIPS -CFLAGS += -D__DUNE_GTO_BCM_CPU__ -D__DUNE_LINUX_BCM_CPU_PCIE__ -endif - -ifdef SHADOW_PLX -CFLAGS += -DBCM_PLX9656_LOCAL_BUS -DBDE_LINUX_NON_INTERRUPTIBLE -DSHADOW_SVK -endif - -ifeq (,$(KFLAGS)) -#autoconf.h was moved in later kernels -LINUX_AUTOCONF = $(LINUX_INCLUDE)/generated/autoconf.h -ifeq (,$(shell ls $(LINUX_AUTOCONF) 2>/dev/null)) -LINUX_AUTOCONF = $(LINUX_INCLUDE)/linux/autoconf.h -endif - -KFLAGS := -D__KERNEL__ -m32 -nostdinc -isystem $(KFLAG_INCLD) -I$(LINUX_INCLUDE) -include $(LINUX_INCLUDE)/linux/version.h -include $(LINUX_AUTOCONF) -I$(KERNDIR)/arch/powerpc -I$(KERNDIR)/arch/powerpc -I$(KERNDIR)/arch/powerpc/include -I$(KERNDIR)/include/asm-powerpc -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -msoft-float -pipe -ffixed-r2 -mmultiple -mno-altivec -funit-at-a-time -Wa,-me500 -fomit-frame-pointer -Wdeclaration-after-statement -Wno-pointer-sign -endif - -#Wind river Linux 3.0 needs addtional flags -ifeq (3.0,$(WRS_LINUX_VERSION)) - -# Use MSI interrupts if kernel is compiled with MSI support. -#CFLAGS += -DBDE_LINUX_USE_MSI_INTERRUPT -KFLAGS += -I$(LINUX_INCLUDE_STD) -I$(KERNDIR_STD)/arch/powerpc -I$(KERNDIR_STD)/arch/powerpc/include -I$(KERNDIR_STD)/include.asm-powerpc -mno-spe -endif - -ifneq ($(targetplat),user) -include ${SDK}/make/Makefile.linux-kernel-2_6 -endif diff --git a/platform/broadcom/saibcm-modules/make/Makefile.linux-jag-2_6 b/platform/broadcom/saibcm-modules/make/Makefile.linux-jag-2_6 deleted file mode 100644 index 1e89cdab2434..000000000000 --- a/platform/broadcom/saibcm-modules/make/Makefile.linux-jag-2_6 +++ /dev/null @@ -1,166 +0,0 @@ -# -# Copyright 2017 Broadcom -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License, version 2, as -# published by the Free Software Foundation (the "GPL"). -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License version 2 (GPLv2) for more details. -# -# You should have received a copy of the GNU General Public License -# version 2 (GPLv2) along with this source code. -# -# $Id: Makefile.linux-jag-2_6,v 1.20 Broadcom SDK $ -# $Copyright: (c) 2007 Broadcom Corp. -# All Rights Reserved.$ - - -# User must select one platform from below.By default WR_LINUX is selected. . -ifeq (,$(BUILD_PLATFORM)) -#BUILD_PLATFORM=ELDK -BUILD_PLATFORM=WR_LINUX -endif - - -# Specify the KERNEL VERSION you want to use for building SDK. -ifeq (ELDK,$(BUILD_PLATFORM)) -ifeq (,$(KERN_VER)) -KERN_VER=2.6.21.7 -endif -endif - -# Specify the Windriver Linux version here.For example '2.0' as shown below. -ifeq (WR_LINUX,$(BUILD_PLATFORM)) -ifeq (,$(WRS_LINUX_VERSION)) -WRS_LINUX_VERSION=2.0 -endif -endif - -ifeq (WR_LINUX,$(BUILD_PLATFORM)) -ifeq (1.4,$(WRS_LINUX_VERSION)) - -KERNDIR := /projects/ntsw-tools/linux/wrslinux_1.4/broadcom_bcm95836cpci_be/build/linux-2.6.14-small - -ifeq (,$(CROSS_COMPILE)) -CROSS_COMPILE := mips-wrs-linux-gnu- -endif - -export WIND_LIC_PROXY = /projects/ntsw-tools/wrs/wrs_linux/GPP_LE_1.4_PPR/setup/x86-linux2/bin - -override PATH := /projects/ntsw-tools/wrs/wrs_linux/GPP_LE_1.4_PPR/gnu/3.4.4-wrlinux-1.4/x86-linux2/bin:$(PATH) -endif - -ifeq (2.0,$(WRS_LINUX_VERSION)) - -#CROSS_COMPILE = mips-wrs-linux-gnu- - -ifeq (,$(CROSS_COMPILE)) -CROSS_COMPILE := mips-wrs-linux-gnu-mips_softfp-glibc_std- -endif - -KERNDIR:= /projects/ntsw-tools/linux/wrslinux_2.0/jag/glibc_std/build/linux-2.6.21-standard - -endif - -WRLINUX_BASE=/tools/windriver/linux_ed/2.0_GA/Linux - -TOOLCHAIN_BIN_DIR=$(KERNDIR)/../../host-cross/mips-wrs-linux-gnu/bin -WIND_LIC_PROXY=$(WRLINUX_BASE)/setup/x86-linux2/bin - -WRLINUX_GNU_PATH=$(WRLINUX_BASE)/gnu/4.1-wrlinux-2.0/x86-linux2/bin - -override PATH:=$(KERNDIR)/../../host-cross/bin:$(KERNDIR)/../../host-cross/mips-wrs-linux-gnu/bin:$(WRLINUX_GNU_PATH):$(PATH) - -WRS_SYSROOT_PATH := $(WRLINUX_GNU_PATH)/../lib/gcc/mips-wrs-linux-gnu/4.1.2/include - -export TOOLCHAIN_BIN_DIR WIND_LIC_PROXY -endif - -ifeq (ELDK,$(BUILD_PLATFORM)) -ifeq (2.6.21.7, $(KERN_VER)) - -ifeq (,$(CROSS_COMPILE)) -CROSS_COMPILE := mips_4KC- -endif - -override PATH := /tools/eldk/4.1/usr/bin:$(PATH) -KERNDIR ?= /projects/ntsw-tools/linux/eldk/jag-ntswics-eldk/linux-2.6.21.7 -endif -endif - - - -comma = , -basetarget = $(basename $(notdir $@)) -modname = $(basetarget) - -# Extra variables. -EXTRA_CFLAGS = -D"KBUILD_STR(s)=\#s" $(basename_flags) $(modname_flags) - -name-fix = $(subst $(comma),_,$(subst -,_,$1)) -basename_flags = -D"KBUILD_BASENAME=KBUILD_STR($(call name-fix,$(basetarget)))" -modname_flags = $(if $(filter 1,$(words $(modname))),\ - -D"KBUILD_MODNAME=KBUILD_STR($(call name-fix,$(modname)))") - - -# Default Linux include directory -ifeq (,$(LINUX_INCLUDE)) -LINUX_INCLUDE := $(KERNDIR)/include -endif - -CFGFLAGS += -DSYS_BE_PIO=0 -DSYS_BE_PACKET=1 -DSYS_BE_OTHER=0 -ENDIAN = BE_HOST=1 -CFGFLAGS += -D$(ENDIAN) -CFGFLAGS += -DBCM_PLATFORM_STRING=\"JAG_BCM4704\" - -ARCH = mips -KBUILD_VERBOSE = 1 - -export ARCH KBUILD_VERBOSE - -ifeq (ELDK,$(BUILD_PLATFORM)) -KFLAG_INCLD = /tools/eldk/4.1/usr/lib/gcc/mips-linux/4.0.0/include/ -endif - -ifeq (1.4,$(WRS_LINUX_VERSION)) -# From linux/arch/mips/Makefile - -ifeq (,$(KFLAGS)) -KFLAGS := -D__KERNEL__ -Wall -Wno-trigraphs -fno-strict-aliasing -fno-common -ffreestanding -O2 -fomit-frame-pointer -g -G 0 -mno-abicalls -fno-pic -pipe -march=mips32 -Wa,-mips32 -Wa,--trap -funit-at-a-time -mlong-calls -Wundef -finline-limit=100000 -mabi=32 -endif - -#-Wdeclaration-after-statement -Wstrict-prototypes -else - -ifeq (2.0,$(WRS_LINUX_VERSION)) - -ifeq (,$(KFLAGS)) -KFLAGS := -D__KERNEL__ -nostdinc -isystem $(WRS_SYSROOT_PATH) -I$(LINUX_INCLUDE) -include $(LINUX_INCLUDE)/linux/autoconf.h -I$(KERNDIR)/arch/mips -I$(KERNDIR)/arch/mips -I$(KERNDIR)/arch/mips/include -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -mabi=32 -G 0 -mno-abicalls -fno-pic -pipe -msoft-float -ffreestanding -march=mips32 -Wa,-mips32 -Wa,--trap -Iinclude/asm-mips/mach-bcm947xx -Iinclude/asm-mips/mach-generic -fomit-frame-pointer -g -fno-stack-protector -Wdeclaration-after-statement -Wno-pointer-sign -mlong-calls -endif - -endif -endif - -ifeq (ELDK,$(BUILD_PLATFORM)) - -ifeq (,$(KFLAGS)) -KFLAGS := -D__KERNEL__ -nostdinc -isystem $(KFLAG_INCLD) -I$(LINUX_INCLUDE) -include $(LINUX_INCLUDE)/linux/autoconf.h -I$(KERNDIR)/arch/mips -I$(KERNDIR)/arch/mips -I$(KERNDIR)/arch/mips/include -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -mabi=32 -G 0 -mno-abicalls -fno-pic -pipe -msoft-float -ffreestanding -march=mips32 -Wa,-mips32 -Wa,--trap -Iinclude/asm-mips/mach-bcm947xx -Iinclude/asm-mips/mach-generic -fomit-frame-pointer -g -Wdeclaration-after-statement -mlong-calls -endif - -endif - -ifneq ($(targetplat),user) -include ${SDK}/make/Makefile.linux-kernel-2_6 -endif - -ifneq (,$(findstring TCL,$(FEATURE_LIST))) -LINK_STATIC=0 -export LINK_STATIC -endif - - - - diff --git a/platform/broadcom/saibcm-modules/make/Makefile.linux-nsx-2_6 b/platform/broadcom/saibcm-modules/make/Makefile.linux-nsx-2_6 deleted file mode 100644 index 785619f31fd4..000000000000 --- a/platform/broadcom/saibcm-modules/make/Makefile.linux-nsx-2_6 +++ /dev/null @@ -1,56 +0,0 @@ -# -# Copyright 2017 Broadcom -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License, version 2, as -# published by the Free Software Foundation (the "GPL"). -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License version 2 (GPLv2) for more details. -# -# You should have received a copy of the GNU General Public License -# version 2 (GPLv2) along with this source code. -# -# $Id: Makefile.linux-nsx-2_6,v 1.9 Broadcom SDK $ -# $Copyright: (c) 2005 Broadcom Corp. -# All Rights Reserved.$ - -# Look for custom tools -ifneq (,$(MIPS_TOOLS_DIR)) -override PATH := $(MIPS_TOOLS_DIR):$(PATH) -endif -ifneq (,$(MIPS_CROSS_COMPILE)) -override CROSS_COMPILE := $(MIPS_CROSS_COMPILE) -endif - -# Default tools -ifeq (,$(CROSS_COMPILE)) -CROSS_COMPILE := mips2_fp_be- -override PATH := $(PATH):/projects/ntsw-tools/linux/mvista/mvista-4.0/pro/devkit/mips/mips2_fp_be/bin -endif - -# Default Linux Kernel directory -ifeq (,$(KERNDIR)) -KERNDIR := /projects/ntsw-tools/linux/mvista/mvista-4.0-nsx/linux-2.6.10_dev -endif -# Default Linux include directory -ifeq (,$(LINUX_INCLUDE)) -LINUX_INCLUDE := $(KERNDIR)/include -endif - -CFGFLAGS += -DSYS_BE_PIO=1 -DSYS_BE_PACKET=0 -DSYS_BE_OTHER=1 -ENDIAN = BE_HOST=1 -CFGFLAGS += -D$(ENDIAN) -CFGFLAGS += -DBCM_PLATFORM_STRING=\"NSX_BCM1125\" - -# From linux/arch/mips/Makefile - -ifeq (,$(KFLAGS)) -KFLAGS := -D__KERNEL__ -O2 -fomit-frame-pointer -fno-strict-aliasing -G 0 -mno-abicalls -fno-pic -mips64 -mtune=sb1 -Wa,--trap -pipe -mlong-calls -endif - -ifneq ($(targetplat),user) -include ${SDK}/make/Makefile.linux-kernel-2_6 -endif diff --git a/platform/broadcom/saibcm-modules/make/Makefile.linux-nsx64 b/platform/broadcom/saibcm-modules/make/Makefile.linux-nsx64 deleted file mode 100644 index c4f71995be52..000000000000 --- a/platform/broadcom/saibcm-modules/make/Makefile.linux-nsx64 +++ /dev/null @@ -1,54 +0,0 @@ -# -# Copyright 2017 Broadcom -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License, version 2, as -# published by the Free Software Foundation (the "GPL"). -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License version 2 (GPLv2) for more details. -# -# You should have received a copy of the GNU General Public License -# version 2 (GPLv2) along with this source code. -# -# $Id: Makefile.linux-nsx64,v 1.9 Broadcom SDK $ -# $Copyright: (c) 2005 Broadcom Corp. -# All Rights Reserved.$ - -# Look for custom tools -ifneq (,$(MIPS_TOOLS_DIR)) -override PATH := $(MIPS_TOOLS_DIR):$(PATH) -endif -ifneq (,$(MIPS_CROSS_COMPILE)) -override CROSS_COMPILE := $(MIPS_CROSS_COMPILE) -endif - -# Default tools -ifeq (,$(CROSS_COMPILE)) -CROSS_COMPILE := mips64_fp_be- -override PATH := $(PATH):/projects/ntsw-tools/linux/mvista/mips64_be_tools-3.1/bin -endif - -# Default Linux include directory -ifeq (,$(LINUX_INCLUDE)) -LINUX_INCLUDE = /projects/ntsw-tools/linux/headers/mvl-3.1-nsx64/include -endif - -CFGFLAGS += -DSYS_BE_PIO=1 -DSYS_BE_PACKET=0 -DSYS_BE_OTHER=1 -ENDIAN = BE_HOST=1 -CFGFLAGS += -D$(ENDIAN) -Wa,-xgot -mips64 -mabi=64 -fno-strict-aliasing -DPTRS_ARE_64BITS -DLONGS_ARE_64BITS -CFGFLAGS += -DBCM_PLATFORM_STRING=\"NSX_BCM1125\" - -# From linux/arch/mips/Makefile - -ifeq (,$(KFLAGS)) -KFLAGS := -D__KERNEL__ -O2 -fomit-frame-pointer -fno-strict-aliasing -G 0 -mno-abicalls -fno-pic -mips64 -mabi=64 -mtune=sb1 -Wa,--trap -pipe -mlong-calls -endif - -ifneq ($(targetplat),user) -include ${SDK}/make/Makefile.linux-kernel -endif - -MODULE_LDFLAGS += -m elf64btsmip diff --git a/platform/broadcom/saibcm-modules/make/Makefile.linux-nsx_wrl-2_6 b/platform/broadcom/saibcm-modules/make/Makefile.linux-nsx_wrl-2_6 deleted file mode 100644 index 7b549038fd24..000000000000 --- a/platform/broadcom/saibcm-modules/make/Makefile.linux-nsx_wrl-2_6 +++ /dev/null @@ -1,127 +0,0 @@ -# -# Copyright 2017 Broadcom -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License, version 2, as -# published by the Free Software Foundation (the "GPL"). -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License version 2 (GPLv2) for more details. -# -# You should have received a copy of the GNU General Public License -# version 2 (GPLv2) along with this source code. -# -# $Id: Makefile.linux-nsx_wrl-2_6,v 1.15 Broadcom SDK $ -# $Copyright: (c) 2007 Broadcom Corp. -# All Rights Reserved.$ - -ifeq (,$(WRS_LINUX_VERSION)) -WRS_LINUX_VERSION=2.0 -endif - -# Look for custom tools -ifneq (,$(MIPS_TOOLS_DIR)) -ifneq (,$(MIPS_CROSS_COMPILE)) -override PATH := $(MIPS_TOOLS_DIR):$(PATH) -override CROSS_COMPILE := $(MIPS_CROSS_COMPILE) -endif -endif - -# Default Linux Kernel directory -ifeq (,$(KERNDIR)) - -ifeq (1.4,$(WRS_LINUX_VERSION)) - -ifeq (,$(CROSS_COMPILE)) -CROSS_COMPILE := mips-wrs-linux-gnu- -endif - -KERNDIR := /projects/ntsw-tools/linux/wrslinux_1.4/broadcom_bcm91125cpci_32_be_glibc_std/build/linux-2.6.14-cgl - -export WIND_LIC_PROXY = /projects/ntsw-tools/wrs/wrs_linux/GPP_LE_1.4_PPR/setup/x86-linux2/bin -override PATH := /projects/ntsw-tools/wrs/wrs_linux/GPP_LE_1.4_PPR/gnu/3.4.4-wrlinux-1.4/x86-linux2/bin:$(PATH) -else - -ifeq (2.0,$(WRS_LINUX_VERSION)) - -ifeq (,$(CROSS_COMPILE)) -CROSS_COMPILE := mips-wrs-linux-gnu-mips-glibc_std- -endif - -KERNDIR:= /projects/ntsw-tools/linux/wrslinux_2.0/nsx/glibc_std/build/linux-2.6.21-standard - -WRLINUX_BASE=/tools/windriver/linux_ed/2.0_GA/Linux - -TOOLCHAIN_BIN_DIR=$(KERNDIR)/../../host-cross/mips-wrs-linux-gnu/bin -WIND_LIC_PROXY=$(WRLINUX_BASE)/setup/x86-linux2/bin - -WRLINUX_GNU_PATH=$(WRLINUX_BASE)/gnu/4.1-wrlinux-2.0/x86-linux2/bin -override PATH:=$(KERNDIR)/../../host-cross/bin:$(KERNDIR)/../../host-cross/mips-wrs-linux-gnu/bin:$(WRLINUX_GNU_PATH):$(PATH) - -WRS_SYSROOT_PATH := $(WRLINUX_GNU_PATH)/../lib/gcc/mips-wrs-linux-gnu/4.1.2/include - -export TOOLCHAIN_BIN_DIR WIND_LIC_PROXY - -comma = , -basetarget = $(basename $(notdir $@)) -modname = $(basetarget) - -# Extra variables. -EXTRA_CFLAGS = -D"KBUILD_STR(s)=\#s" $(basename_flags) $(modname_flags) - -name-fix = $(subst $(comma),_,$(subst -,_,$1)) -basename_flags = -D"KBUILD_BASENAME=KBUILD_STR($(call name-fix,$(basetarget)))" -modname_flags = $(if $(filter 1,$(words $(modname))),\ - -D"KBUILD_MODNAME=KBUILD_STR($(call name-fix,$(modname)))") - -endif -endif -endif - -# Default Linux include directory -ifeq (,$(LINUX_INCLUDE)) -LINUX_INCLUDE := $(KERNDIR)/include -endif - -CFGFLAGS += -DSYS_BE_PIO=1 -DSYS_BE_PACKET=0 -DSYS_BE_OTHER=1 -ENDIAN = BE_HOST=1 -CFGFLAGS += -D$(ENDIAN) -CFGFLAGS += -DBCM_PLATFORM_STRING=\"NSX_BCM1125\" - -ARCH = mips -KBUILD_VERBOSE = 1 - -export ARCH KBUILD_VERBOSE - -ifeq (1.4,$(WRS_LINUX_VERSION)) -# From Linux Kbuild output - -ifeq (,$(KFLAGS)) -KFLAGS := -D__KERNEL__ -Iinclude -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -ffreestanding -O2 -fomit-frame-pointer -g -G 0 -mno-abicalls -fno-pic -pipe -finline-limit=100000 -mabi=32 -march=sb1 -Wa,-32 -Wa,-march=sb1 -Wa,-mips64 -Wa,--trap -DSIBYTE_HDR_FEATURES=SIBYTE_HDR_FMASK_1250_112x_ALL -mlong-calls -#-Wdeclaration-after-statement -endif - -else - -ifeq (2.0,$(WRS_LINUX_VERSION)) - -ifeq (,$(KFLAGS)) -KFLAGS := -D__KERNEL__ -nostdinc -isystem $(WRS_SYSROOT_PATH) -I$(LINUX_INCLUDE) -include $(LINUX_INCLUDE)/linux/autoconf.h -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -mabi=32 -G 0 -mno-abicalls -fno-pic -pipe -msoft-float -ffreestanding -march=sb1 -Wa,--trap -Iinclude/asm-mips/mach-sibyte -Iinclude/asm-mips/mach-generic -DSIBYTE_HDR_FEATURES=SIBYTE_HDR_FMASK_1250_112x_ALL -fomit-frame-pointer -g -fno-stack-protector -Wdeclaration-after-statement -Wno-pointer-sign -mlong-calls -endif - -endif -endif - -ifneq ($(targetplat),user) -include ${SDK}/make/Makefile.linux-kernel-2_6 -endif - - -ifneq (,$(findstring TCL,$(FEATURE_LIST))) -LINK_STATIC=0 -export LINK_STATIC -endif - - diff --git a/platform/broadcom/saibcm-modules/make/Makefile.linux-raptor b/platform/broadcom/saibcm-modules/make/Makefile.linux-raptor deleted file mode 100644 index 80c51e782bea..000000000000 --- a/platform/broadcom/saibcm-modules/make/Makefile.linux-raptor +++ /dev/null @@ -1,53 +0,0 @@ -# -# Copyright 2017 Broadcom -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License, version 2, as -# published by the Free Software Foundation (the "GPL"). -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License version 2 (GPLv2) for more details. -# -# You should have received a copy of the GNU General Public License -# version 2 (GPLv2) along with this source code. -# -# $Id: Makefile.linux-raptor,v 1.6 Broadcom SDK $ -# $Copyright: (c) 2005 Broadcom Corp. -# All Rights Reserved.$ - -# Look for custom tools -ifneq (,$(MIPS_TOOLS_DIR)) -override PATH := $(MIPS_TOOLS_DIR):$(PATH) -endif -ifneq (,$(MIPS_CROSS_COMPILE)) -override CROSS_COMPILE := $(MIPS_CROSS_COMPILE) -endif - -# Default tools -ifeq (,$(CROSS_COMPILE)) -CROSS_COMPILE := mips_fp_be- -override PATH := $(PATH):/projects/ntsw-tools/linux/mvista/mvista-3.1/pro/devkit/mips/fp_be/bin -endif - -# Default Linux include directory -ifeq (,$(LINUX_INCLUDE)) -LINUX_INCLUDE = /projects/ntsw-tools/linux/headers/mvl-3.1-raptor/include -endif - -CFGFLAGS += -DSYS_BE_PIO=0 -DSYS_BE_PACKET=1 -DSYS_BE_OTHER=0 -DBCM_ICS -ENDIAN = BE_HOST=1 -CFGFLAGS += -D$(ENDIAN) -CFGFLAGS += -DBCM_PLATFORM_STRING=\"Raptor_BCM56218\" - - -ifneq ($(targetplat),user) -include ${SDK}/make/Makefile.linux-kernel -endif - -# From linux/arch/mips/Makefile - -ifeq (,$(KFLAGS)) -KFLAGS := -D__KERNEL__ -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -G 0 -mno-abicalls -fno-pic -pipe -m$(gcc-tune-flag)=r4600 -mips2 -Wa,--trap -mlong-calls -endif diff --git a/platform/broadcom/saibcm-modules/make/Makefile.linux-raptor-2_6 b/platform/broadcom/saibcm-modules/make/Makefile.linux-raptor-2_6 deleted file mode 100644 index 0bebdf9564c6..000000000000 --- a/platform/broadcom/saibcm-modules/make/Makefile.linux-raptor-2_6 +++ /dev/null @@ -1,172 +0,0 @@ -# -# Copyright 2017 Broadcom -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License, version 2, as -# published by the Free Software Foundation (the "GPL"). -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License version 2 (GPLv2) for more details. -# -# You should have received a copy of the GNU General Public License -# version 2 (GPLv2) along with this source code. -# -# $Id: Makefile.linux-raptor-2_6,v 1.21 Broadcom SDK $ -# $Copyright: (c) 2007 Broadcom Corp. -# All Rights Reserved.$ - - -# User must select one platform from below.By default WR_LINUX is selected. . -ifeq (,$(BUILD_PLATFORM)) -#BUILD_PLATFORM=ELDK -BUILD_PLATFORM=WR_LINUX -endif - - -# Specify the KERNEL VERSION you want to use for building SDK. -ifeq (ELDK,$(BUILD_PLATFORM)) -ifeq (,$(KERN_VER)) -KERN_VER=2.6.21.7 -endif -endif - -# Specify the Windriver Linux version here.For example '2.0' as shown below. -ifeq (WR_LINUX,$(BUILD_PLATFORM)) -ifeq (,$(WRS_LINUX_VERSION)) -WRS_LINUX_VERSION=2.0 -endif -endif - - -# Default Linux Kernel directory -ifeq (WR_LINUX,$(BUILD_PLATFORM)) -ifeq (1.4,$(WRS_LINUX_VERSION)) - -KERNDIR ?= /projects/ntsw-tools/linux/wrslinux_1.4/broadcom_bcm95621x_be/build/linux-2.6.14-small - -ifeq (,$(CROSS_COMPILE)) -CROSS_COMPILE := mips-wrs-linux-gnu- -endif - -export WIND_LIC_PROXY = /projects/ntsw-tools/wrs/wrs_linux/GPP_LE_1.4_PPR/setup/x86-linux2/bin - -override PATH := /projects/ntsw-tools/wrs/wrs_linux/GPP_LE_1.4_PPR/gnu/3.4.4-wrlinux-1.4/x86-linux2/bin:$(PATH) -endif - -ifeq (2.0,$(WRS_LINUX_VERSION)) - -ifeq (,$(CROSS_COMPILE)) -CROSS_COMPILE := mips-wrs-linux-gnu-mips_softfp-glibc_std- -endif - -KERNDIR ?= /projects/ntsw-tools/linux/wrslinux_2.0/ntswics/glibc_std/build/linux-2.6.21-standard -override PATH:=$(KERNDIR)/../../host-cross/bin:$(KERNDIR)/../../host-cross/mips-wrs-linux-gnu/bin:$(WRLINUX_GNU_PATH):$(PATH) - -endif - -WRLINUX_BASE=/tools/windriver/linux_ed/2.0_GA/Linux - -TOOLCHAIN_BIN_DIR=$(KERNDIR)/../../host-cross/mips-wrs-linux-gnu/bin -WIND_LIC_PROXY=$(WRLINUX_BASE)/setup/x86-linux2/bin - -WRLINUX_GNU_PATH=$(WRLINUX_BASE)/gnu/4.1-wrlinux-2.0/x86-linux2/bin - -override PATH:=$(KERNDIR)/../../host-cross/bin:$(KERNDIR)/../../host-cross/mips-wrs-linux-gnu/bin:$(WRLINUX_GNU_PATH):$(PATH) - -WRS_SYSROOT_PATH := $(WRLINUX_GNU_PATH)/../lib/gcc/mips-wrs-linux-gnu/4.1.2/include - -export TOOLCHAIN_BIN_DIR WIND_LIC_PROXY - -endif - -ifeq (ELDK,$(BUILD_PLATFORM)) -ifeq (2.6.21.7, $(KERN_VER)) -ifeq (,$(CROSS_COMPILE)) -CROSS_COMPILE := mips_4KC- -endif -override PATH := /tools/eldk/4.1/usr/bin:$(PATH) -KERNDIR ?= /projects/ntsw-tools/linux/eldk/raptor_eldk/linux-2.6.21.7 -endif -endif - - - -comma = , -basetarget = $(basename $(notdir $@)) -modname = $(basetarget) - -# Extra variables. -EXTRA_CFLAGS = -D"KBUILD_STR(s)=\#s" $(basename_flags) $(modname_flags) - -name-fix = $(subst $(comma),_,$(subst -,_,$1)) -basename_flags = -D"KBUILD_BASENAME=KBUILD_STR($(call name-fix,$(basetarget)))" -modname_flags = $(if $(filter 1,$(words $(modname))),\ - -D"KBUILD_MODNAME=KBUILD_STR($(call name-fix,$(modname)))") - -# Default Linux include directory -ifeq (,$(LINUX_INCLUDE)) -LINUX_INCLUDE := $(KERNDIR)/include -endif - -CFGFLAGS += -DSYS_BE_PIO=0 -DSYS_BE_PACKET=1 -DSYS_BE_OTHER=0 -DBCM_ICS -ENDIAN = BE_HOST=1 -CFGFLAGS += -D$(ENDIAN) -DRAPTOR -CFGFLAGS += -DBCM_PLATFORM_STRING=\"Raptor_BCM56218\" - - -ARCH = mips -KBUILD_VERBOSE = 1 - -export ARCH KBUILD_VERBOSE - - -ifeq (ELDK,$(BUILD_PLATFORM)) -KFLAG_INCLD = /tools/eldk/4.1/usr/lib/gcc/mips-linux/4.0.0/include -endif - - -# From linux/arch/mips/Makefile -ifeq (WR_LINUX,$(BUILD_PLATFORM)) -ifeq (1.4,$(WRS_LINUX_VERSION)) - -ifeq (,$(KFLAGS)) -KFLAGS := -D__KERNEL__ -Wall -Wno-trigraphs -fno-strict-aliasing -fno-common -ffreestanding -O2 -fomit-frame-pointer -g -G 0 -mno-abicalls -fno-pic -pipe -march=mips32 -Wa,-mips32 -Wa,--trap -funit-at-a-time -mlong-calls -Wundef -finline-limit=100000 -mabi=32 -endif - -endif - -ifeq (2.0,$(WRS_LINUX_VERSION)) - -ifeq (,$(KFLAGS)) -KFLAGS := -D__KERNEL__ -nostdinc -isystem $(WRS_SYSROOT_PATH) -I$(LINUX_INCLUDE) -include $(LINUX_INCLUDE)/linux/autoconf.h -I$(KERNDIR)/arch/mips/mach-bcm56218 -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -mabi=32 -G 0 -mno-abicalls -fno-pic -pipe -msoft-float -ffreestanding -march=mips32 -Wa,-mips32 -Wa,--trap -Iinclude/asm-mips/mach-bcm56218 -Iinclude/asm-mips/mach-generic -fomit-frame-pointer -g -fno-stack-protector -Wdeclaration-after-statement -Wno-pointer-sign -mlong-calls -endif - -endif -endif - -ifeq (ELDK,$(BUILD_PLATFORM)) - -ifeq (,$(KFLAGS)) -KFLAGS := -D__KERNEL__ -nostdinc -isystem $(KFLAG_INCLD) -I$(LINUX_INCLUDE) -include $(LINUX_INCLUDE)/linux/autoconf.h -I$(KERNDIR)/arch/mips/mach-bcm56218 -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -mabi=32 -G 0 -mno-abicalls -fno-pic -pipe -msoft-float -ffreestanding -march=mips32 -Wa,-mips32 -Wa,--trap -Iinclude/asm-mips/mach-bcm56218 -Iinclude/asm-mips/mach-generic -fomit-frame-pointer -g -Wdeclaration-after-statement -mlong-calls -endif - - -endif - - - -ifneq ($(targetplat),user) -include ${SDK}/make/Makefile.linux-kernel-2_6 -endif - -ifneq (,$(findstring TCL,$(FEATURE_LIST))) -LINK_STATIC=0 -export LINK_STATIC -endif - - - - - diff --git a/platform/broadcom/saibcm-modules/systems/linux/kernel/modules/bcm-ptp-clock/Makefile b/platform/broadcom/saibcm-modules/systems/linux/kernel/modules/bcm-ptp-clock/Makefile deleted file mode 100644 index 743eb741732b..000000000000 --- a/platform/broadcom/saibcm-modules/systems/linux/kernel/modules/bcm-ptp-clock/Makefile +++ /dev/null @@ -1,65 +0,0 @@ -# -# Copyright 2017 Broadcom -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License, version 2, as -# published by the Free Software Foundation (the "GPL"). -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License version 2 (GPLv2) for more details. -# -# You should have received a copy of the GNU General Public License -# version 2 (GPLv2) along with this source code. -# -# -*- Makefile -*- -# $Id: Makefile,v 1.3 2012/07/17 07:39:51 mlarsen Exp $ -# $Copyright: (c) 2005 Broadcom Corp. -# All Rights Reserved.$ -# -LOCALDIR = systems/linux/kernel/modules/bcm-ptp-clock - -include ${SDK}/make/Make.config - -LIBS = $(LIBDIR)/libkern.a - -ifeq ($(kernel_version),2_4) -MODULE = $(LIBDIR)/linux-bcm-ptp-clock.o -else -KERNEL_MODULE_DIR = kernel_module - -THIS_MOD_NAME := linux-bcm-ptp-clock -MODULE = $(LIBDIR)/$(THIS_MOD_NAME).o -KMODULE = $(LIBDIR)/$(THIS_MOD_NAME).ko - -build: $(MODULE) $(KMODULE) -endif - -KBUILD_EXTRA_SYMBOLS := ${BLDDIR}/../../../../bde/linux/kernel/kernel_module/Module.symvers -KBUILD_EXTRA_SYMBOLS += ${BLDDIR}/../bcm-knet/kernel_module/Module.symvers - -# BCM PTP Clock Device - -$(MODULE): $(BLDDIR)/.tree $(BOBJS) $(LIBS) - $(LD) $(MODULE_LDFLAGS) -r -d $(BOBJS) $(LIBS) -o $@ -ifneq ($(kernel_version),2_4) -$(KMODULE): $(MODULE) - rm -fr $(BLDDIR)/$(KERNEL_MODULE_DIR) - mkdir $(BLDDIR)/$(KERNEL_MODULE_DIR) - cp ${SDK}/make/Makefile.linux-kmodule $(BLDDIR)/$(KERNEL_MODULE_DIR)/Makefile - cat ${KBUILD_EXTRA_SYMBOLS} > $(BLDDIR)/$(KERNEL_MODULE_DIR)/Module.symvers - MOD_NAME=$(THIS_MOD_NAME) KBUILD_EXTRA_SYMBOLS="${KBUILD_EXTRA_SYMBOLS}" $(MAKE) -C $(BLDDIR)/$(KERNEL_MODULE_DIR) $(THIS_MOD_NAME).ko -endif - -# Make.depend is before clean:: so that Make.depend's clean:: runs first. - -include ${SDK}/make/Make.depend - -clean:: - $(RM) $(BLDDIR)/version.c $(BLDDIR)/version.o - $(RM) $(BOBJS) $(MODULE) - -ifneq ($(kernel_version),2_4) -.PHONY: build -endif diff --git a/platform/broadcom/saibcm-modules/systems/linux/kernel/modules/bcm-ptp-clock/bcm-ptp-clock.c b/platform/broadcom/saibcm-modules/systems/linux/kernel/modules/bcm-ptp-clock/bcm-ptp-clock.c deleted file mode 100644 index 7c88fae97d62..000000000000 --- a/platform/broadcom/saibcm-modules/systems/linux/kernel/modules/bcm-ptp-clock/bcm-ptp-clock.c +++ /dev/null @@ -1,1999 +0,0 @@ -/* - * Copyright 2017 Broadcom - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License, version 2, as - * published by the Free Software Foundation (the "GPL"). - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License version 2 (GPLv2) for more details. - * - * You should have received a copy of the GNU General Public License - * version 2 (GPLv2) along with this source code. - */ - -/* - * This module implements a Linux PTP Clock driver for Broadcom - * XGS switch devices. - * - * For a list of supported module parameters, please see below. - * debug: Debug level (default 0) - * network_transport : Transport Type (default 0 - Raw) - * base_dev_name: Base device name (default ptp0, ptp1, etc.) - * - * - All the data structures and functions work on the physical port. - * For array indexing purposes, we use (phy_port - 1). - */ - -#include /* Must be included first */ -/* Module Information */ -#define MODULE_MAJOR 125 -#define MODULE_NAME "linux-bcm-ptp-clock" - -MODULE_AUTHOR("Broadcom Corporation"); -MODULE_DESCRIPTION("PTP Clock Driver for Broadcom XGS Switch"); -MODULE_LICENSE("GPL"); - -#if LINUX_VERSION_CODE > KERNEL_VERSION(3,17,0) -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -/* Configuration Parameters */ -static int debug; -LKM_MOD_PARAM(debug, "i", int, 0); -MODULE_PARM_DESC(debug, - "Debug level (default 0)"); - -static int pci_cos; - -static int network_transport; -LKM_MOD_PARAM(network_transport, "i", int, 0); -MODULE_PARM_DESC(network_transport, - "Transport Type (default - Detect from packet)"); - -static char *base_dev_name = "ptp0"; -LKM_MOD_PARAM(base_dev_name, "s", charp, 0); -MODULE_PARM_DESC(base_dev_name, - "Base device name (default ptp0, ptp1, etc.)"); - -static int fw_core; -LKM_MOD_PARAM(fw_core, "i", int, 0); -MODULE_PARM_DESC(fw_core, - "Firmware core (default 0)"); - -/* Debug levels */ -#define DBG_LVL_VERB 0x1 -#define DBG_LVL_WARN 0x2 -#define DBG_LVL_TXTS 0x4 -#define DBG_LVL_CMDS 0x8 - -#define DBG_VERB(_s) do { if (debug & DBG_LVL_VERB) gprintk _s; } while (0) -#define DBG_WARN(_s) do { if (debug & DBG_LVL_WARN) gprintk _s; } while (0) -#define DBG_TXTS(_s) do { if (debug & DBG_LVL_TXTS) gprintk _s; } while (0) -#define DBG_CMDS(_s) do { if (debug & DBG_LVL_CMDS) gprintk _s; } while (0) -#define DBG_ERR(_s) do { if (1) gprintk _s; } while (0) - - -#ifdef LINUX_BDE_DMA_DEVICE_SUPPORT -#define DMA_DEV device -#define DMA_ALLOC_COHERENT(d,s,h) dma_alloc_coherent(d,s,h,GFP_ATOMIC|GFP_DMA32) -#define DMA_FREE_COHERENT(d,s,a,h) dma_free_coherent(d,s,a,h) -#else -#define DMA_DEV pci_dev -#define DMA_ALLOC_COHERENT(d,s,h) pci_alloc_consistent(d,s,h) -#define DMA_FREE_COHERENT(d,s,a,h) pci_free_consistent(d,s,a,h) -#endif - -/* Type length in bytes */ -#define BKSYNC_PACKLEN_U8 1 -#define BKSYNC_PACKLEN_U16 2 -#define BKSYNC_PACKLEN_U24 3 -#define BKSYNC_PACKLEN_U32 4 - -#define BKSYNC_UNPACK_U8(_buf, _var) \ - _var = *_buf++ - -#define BKSYNC_UNPACK_U16(_buf, _var) \ - do { \ - (_var) = (((_buf)[0] << 8) | \ - (_buf)[1]); \ - (_buf) += BKSYNC_PACKLEN_U16; \ - } while (0) - -#define BKSYNC_UNPACK_U24(_buf, _var) \ - do { \ - (_var) = (((_buf)[0] << 16) | \ - ((_buf)[1] << 8) | \ - (_buf)[2]); \ - (_buf) += BKSYNC_PACKLEN_U24; \ - } while (0) - -#define BKSYNC_UNPACK_U32(_buf, _var) \ - do { \ - (_var) = (((_buf)[0] << 24) | \ - ((_buf)[1] << 16) | \ - ((_buf)[2] << 8) | \ - (_buf)[3]); \ - (_buf) += BKSYNC_PACKLEN_U32; \ - } while (0) - - -#define CMICX_DEV_TYPE ((ptp_priv->dcb_type == 38) || \ - (ptp_priv->dcb_type == 36)) - -/* CMIC MCS-0 SCHAN Messaging registers */ -/* Core0:CMC1 Core1:CMC2 */ -#define CMIC_CMC_BASE \ - (CMICX_DEV_TYPE ? (fw_core ? 0x10400 : 0x10300) : \ - (fw_core ? 0x33000 : 0x32000)) - -#define CMIC_CMC_SCHAN_MESSAGE_10r(BASE) (BASE + 0x00000034) -#define CMIC_CMC_SCHAN_MESSAGE_11r(BASE) (BASE + 0x00000038) -#define CMIC_CMC_SCHAN_MESSAGE_12r(BASE) (BASE + 0x0000003c) -#define CMIC_CMC_SCHAN_MESSAGE_13r(BASE) (BASE + 0x00000040) -#define CMIC_CMC_SCHAN_MESSAGE_14r(BASE) (BASE + 0x00000044) -#define CMIC_CMC_SCHAN_MESSAGE_15r(BASE) (BASE + 0x00000048) -#define CMIC_CMC_SCHAN_MESSAGE_16r(BASE) (BASE + 0x0000004c) -#define CMIC_CMC_SCHAN_MESSAGE_17r(BASE) (BASE + 0x00000050) -#define CMIC_CMC_SCHAN_MESSAGE_18r(BASE) (BASE + 0x00000054) -#define CMIC_CMC_SCHAN_MESSAGE_19r(BASE) (BASE + 0x00000058) -#define CMIC_CMC_SCHAN_MESSAGE_20r(BASE) (BASE + 0x0000005c) -#define CMIC_CMC_SCHAN_MESSAGE_21r(BASE) (BASE + 0x00000060) - -u32 hostcmd_regs[5] = { 0 }; - -#define BCMKSYNC_NUM_PORTS 128 /* NUM_PORTS where 2-step is supported. */ -#define BCMKSYNC_MAX_NUM_PORTS 256 /* Max ever NUM_PORTS in the system */ -#define BCMKSYNC_MAX_MTP_IDX 8 /* Max number of mtps in the system */ - -/* Service request commands to Firmware. */ -enum { - BKSYNC_DONE = (0x0), - BKSYNC_INIT = (0x1), - BKSYNC_DEINIT = (0x2), - BKSYNC_GETTIME = (0x3), - BKSYNC_SETTIME = (0x4), - BKSYNC_FREQCOR = (0x5), - BKSYNC_PBM_UPDATE = (0x6), - BKSYNC_ADJTIME = (0x7), - BKSYNC_GET_TSTIME = (0x8), - BKSYNC_MTP_TS_UPDATE_ENABLE = (0x9), - BKSYNC_MTP_TS_UPDATE_DISABLE = (0xa), - BKSYNC_ACK_TSTIME = (0xb), -}; - - -/* 1588 message types. */ -enum -{ - IEEE1588_MSGTYPE_SYNC = (0x0), - IEEE1588_MSGTYPE_DELREQ = (0x1), - IEEE1588_MSGTYPE_PDELREQ = (0x2), - IEEE1588_MSGTYPE_PDELRESP = (0x3), - /* reserved (0x4) */ - /* reserved (0x5) */ - /* reserved (0x6) */ - /* reserved (0x7) */ - IEEE1588_MSGTYPE_GENERALMASK = (0x8), /* all non-event messages have this bit set */ - IEEE1588_MSGTYPE_FLWUP = (0x8), - IEEE1588_MSGTYPE_DELRESP = (0x9), - IEEE1588_MSGTYPE_PDELRES_FLWUP = (0xA), - IEEE1588_MSGTYPE_ANNOUNCE = (0xB), - IEEE1588_MSGTYPE_SGNLNG = (0xC), - IEEE1588_MSGTYPE_MNGMNT = (0xD) - /* reserved (0xE) */ - /* reserved (0xF) */ -}; - -/* Usage macros */ -#define ONE_BILLION (1000000000) - -#define SKB_U16_GET(_skb, _pkt_offset) \ - ((_skb->data[_pkt_offset] << 8) | _skb->data[_pkt_offset + 1]) - -#define BKSYNC_PTP_EVENT_MSG(_ptp_msg_type) \ - ((_ptp_msg_type == IEEE1588_MSGTYPE_DELREQ) || \ - (_ptp_msg_type == IEEE1588_MSGTYPE_SYNC)) - - -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30) -#define HWTSTAMP_TX_ONESTEP_SYNC 2 -#else -#include -#endif - - -/* - * Hardware specific information. - * 4 words of information used from this data set. - * 0 - 3: 2-step untagged. - * 4 - 7: 2-step tagged. - * 8 - 11: 1-step untagged. - * 12 - 15: 1-step tagged. - * 16 - 19: 1-step untagged with ITS-set. - * 20 - 23: 1-step tagged with ITS-set. - */ -uint32_t sobmhrawpkts_dcb26[24] = {0x00000000, 0x00020E00, 0x00000000, 0x00000000, 0x00000000, 0x00021200, 0x00000000, 0x00000000, - 0x00000000, 0x00100E00, 0x00000000, 0x00000000, 0x00000000, 0x00101200, 0x00000000, 0x00000000, - 0x00000000, 0x00140E00, 0x00000000, 0x00000000, 0x00000000, 0x00141200, 0x00000000, 0x00000000}; - -uint32_t sobmhudpipv4_dcb26[24] = {0x00000000, 0x00022A00, 0x00000000, 0x00000000, 0x00000000, 0x00022E00, 0x00000000, 0x00000000, - 0x00000000, 0x00102A00, 0x00000000, 0x00000000, 0x00000000, 0x00102E00, 0x00000000, 0x00000000, - 0x00000000, 0x00142A00, 0x00000000, 0x00000000, 0x00000000, 0x00142E00, 0x00000000, 0x00000000}; - -uint32_t sobmhudpipv6_dcb26[24] = {0x00000000, 0x00023E00, 0x00000000, 0x00000000, 0x00000000, 0x00024200, 0x00000000, 0x00000000, - 0x00000000, 0x00103E00, 0x00000000, 0x00000000, 0x00000000, 0x00104200, 0x00000000, 0x00000000, - 0x00000000, 0x00143E00, 0x00000000, 0x00000000, 0x00000000, 0x00144200, 0x00000000, 0x00000000}; - -uint32_t sobmhrawpkts_dcb32[24] = {0x00000000, 0x00010E00, 0x00000000, 0x00000000, 0x00000000, 0x00011200, 0x00000000, 0x00000000, - 0x00000000, 0x00080E00, 0x00000000, 0x00000000, 0x00000000, 0x00081200, 0x00000000, 0x00000000, - 0x00000000, 0x00080E00, 0x00000000, 0x00000000, 0x00000000, 0x00081200, 0x00000000, 0x00000000}; - -uint32_t sobmhudpipv4_dcb32[24] = {0x00000000, 0x00012A00, 0x00000000, 0x00000000, 0x00000000, 0x00012E00, 0x00000000, 0x00000000, - 0x00000000, 0x000C2A00, 0x00000000, 0x00000000, 0x00000000, 0x000C2E00, 0x00000000, 0x00000000, - 0x00000000, 0x000C2A00, 0x00000000, 0x00000000, 0x00000000, 0x000C2E00, 0x00000000, 0x00000000}; - -uint32_t sobmhudpipv6_dcb32[24] = {0x00000000, 0x00013E00, 0x00000000, 0x00000000, 0x00000000, 0x00014200, 0x00000000, 0x00000000, - 0x00000000, 0x000C3E00, 0x00000000, 0x00000000, 0x00000000, 0x000C4200, 0x00000000, 0x00000000, - 0x00000000, 0x000C3E00, 0x00000000, 0x00000000, 0x00000000, 0x000C4200, 0x00000000, 0x00000000}; - -uint32_t sobmhrawpkts_dcb35[24] = {0x00000000, 0x0020E000, 0x00000000, 0x00000000, 0x00000000, 0x00212000, 0x00000000, 0x00000000, - 0x00000000, 0x0100E000, 0x00000000, 0x00000000, 0x00000000, 0x01012000, 0x00000000, 0x00000000, - 0x00000000, 0x0140E000, 0x00000000, 0x00000000, 0x00000000, 0x01412000, 0x00000000, 0x00000000}; - -uint32_t sobmhudpipv4_dcb35[24] = {0x00000000, 0x0022A000, 0x00000000, 0x00000000, 0x00000000, 0x0022E000, 0x00000000, 0x00000000, - 0x00000000, 0x0102A000, 0x00000000, 0x00000000, 0x00000000, 0x0102E000, 0x00000000, 0x00000000, - 0x00000000, 0x0142A000, 0x00000000, 0x00000000, 0x00000000, 0x0142E000, 0x00000000, 0x00000000}; - -uint32_t sobmhudpipv6_dcb35[24] = {0x00000000, 0x0023E000, 0x00000000, 0x00000000, 0x00000000, 0x00242000, 0x00000000, 0x00000000, - 0x00000000, 0x0103E000, 0x00000000, 0x00000000, 0x00000000, 0x01042000, 0x00000000, 0x00000000, - 0x00000000, 0x0143E000, 0x00000000, 0x00000000, 0x00000000, 0x01442000, 0x00000000, 0x00000000}; - - -uint32_t sobmhrawpkts_dcb36[24] = {0x00000000, 0x00010E00, 0x00000000, 0x00000000, 0x00000000, 0x00011200, 0x00000000, 0x00000000, - 0x00000000, 0x00080E00, 0x00000000, 0x00000000, 0x00000000, 0x00081200, 0x00000000, 0x00000000, - 0x00000000, 0x00080E00, 0x00000000, 0x00000000, 0x00000000, 0x00081200, 0x00000000, 0x00000000}; - -uint32_t sobmhudpipv4_dcb36[24] = {0x00000000, 0x00012A00, 0x00000000, 0x00000000, 0x00000000, 0x00012E00, 0x00000000, 0x00000000, - 0x00000000, 0x000C2A00, 0x00000000, 0x00000000, 0x00000000, 0x000C2E00, 0x00000000, 0x00000000, - 0x00000000, 0x000C2A00, 0x00000000, 0x00000000, 0x00000000, 0x000C2E00, 0x00000000, 0x00000000}; - -uint32_t sobmhudpipv6_dcb36[24] = {0x00000000, 0x00013E00, 0x00000000, 0x00000000, 0x00000000, 0x00014200, 0x00000000, 0x00000000, - 0x00000000, 0x000C3E00, 0x00000000, 0x00000000, 0x00000000, 0x000C4200, 0x00000000, 0x00000000, - 0x00000000, 0x000C3E00, 0x00000000, 0x00000000, 0x00000000, 0x000C4200, 0x00000000, 0x00000000}; -/* th3: onestep only */ -uint32_t sobmhrawpkts_dcb38[24] = {0x00000000, 0x00080E00, 0x00000000, 0x00000000, 0x00000000, 0x00081200, 0x00000000, 0x00000000, - 0x00000000, 0x00080E00, 0x00000000, 0x00000000, 0x00000000, 0x00081200, 0x00000000, 0x00000000, - 0x00000000, 0x00080E00, 0x00000000, 0x00000000, 0x00000000, 0x00081200, 0x00000000, 0x00000000}; - -uint32_t sobmhudpipv4_dcb38[24] = {0x00000000, 0x00082A00, 0x00000000, 0x00000000, 0x00000000, 0x00082E00, 0x00000000, 0x00000000, - 0x00000000, 0x000C2A00, 0x00000000, 0x00000000, 0x00000000, 0x000C2E00, 0x00000000, 0x00000000, - 0x00000000, 0x000C2A00, 0x00000000, 0x00000000, 0x00000000, 0x000C2E00, 0x00000000, 0x00000000}; - -uint32_t sobmhudpipv6_dcb38[24] = {0x00000000, 0x00083E00, 0x00000000, 0x00000000, 0x00000000, 0x00084200, 0x00000000, 0x00000000, - 0x00000000, 0x000C3E00, 0x00000000, 0x00000000, 0x00000000, 0x000C4200, 0x00000000, 0x00000000, - 0x00000000, 0x000C3E00, 0x00000000, 0x00000000, 0x00000000, 0x000C4200, 0x00000000, 0x00000000}; - -/* Driver Proc Entry root */ -static struct proc_dir_entry *bksync_proc_root = NULL; - -/* Shared data structures with R5 */ -typedef struct _bksync_tx_ts_data_s -{ - u32 ts_valid; /* Timestamp valid indication */ - u32 port_id; /* Port number */ - u32 ts_seq_id; /* Sequency Id */ - u32 ts_cnt; - u64 timestamp; /* Timestamp */ -} bksync_tx_ts_data_t; - -typedef struct _bksync_uc_linux_ipc_s -{ - u32 ksyncinit; - u32 dev_id; - s64 freqcorr; - u64 portmap[BCMKSYNC_NUM_PORTS/64]; /* Two-step enabled ports */ - u64 ptptime; - u64 reftime; - s64 phase_offset; - bksync_tx_ts_data_t port_ts_data[BCMKSYNC_NUM_PORTS]; -} bksync_uc_linux_ipc_t; - -typedef struct bksync_port_stats_s { - u32 pkt_rxctr; /* All ingress packets */ - u32 pkt_txctr; /* All egress packets */ - u32 pkt_txonestep; /* 1-step Tx packet counter */ - u32 tsts_match; /* 2-Step tstamp req match */ - u32 tsts_timeout; /* 2-Step tstamp req timeouts */ - u32 tsts_discard; /* 2-Step tstamp req discards */ - u32 osts_event_pkts; /* 1-step event packet counter */ - u32 osts_tstamp_reqs; /* 1-step events with tstamp request */ - u32 fifo_rxctr; /* 2-Step tstamp req match */ - u64 tsts_best_fetch_time; /* 1-step events with tstamp request */ - u64 tsts_worst_fetch_time; /* 1-step events with tstamp request */ - u32 tsts_avg_fetch_time; /* 1-step events with tstamp request */ -} bksync_port_stats_t; - -/* Clock Private Data */ -struct bksync_ptp_priv { - struct device dev; - int dcb_type; - struct ptp_clock *ptp_clock; - struct ptp_clock_info ptp_caps; - struct mutex ptp_lock; - struct mutex ptp_pair_lock; - volatile void *base_addr; /* address for PCI register access */ - volatile bksync_uc_linux_ipc_t *shared_addr; /* address for shared memory access */ - uint64_t dma_mem; - int dma_mem_size; - struct DMA_DEV *dma_dev; /* Required for DMA memory control */ - int num_pports; - int timekeep_status; - u32 mirror_encap_bmp; - struct delayed_work time_keep; - bksync_port_stats_t *port_stats; -}; - -static struct bksync_ptp_priv *ptp_priv; -volatile bksync_uc_linux_ipc_t *linuxPTPMemory = (bksync_uc_linux_ipc_t*)(0); -static volatile int module_initialized; -static int num_retries = 10; /* Retry count */ - -static void bksync_ptp_time_keep_init(void); -static void bksync_ptp_time_keep_deinit(void); - -#if defined(CMIC_SOFT_BYTE_SWAP) - -#define CMIC_SWAP32(_x) ((((_x) & 0xff000000) >> 24) \ - | (((_x) & 0x00ff0000) >> 8) \ - | (((_x) & 0x0000ff00) << 8) \ - | (((_x) & 0x000000ff) << 24)) - -#define DEV_READ32(_d, _a, _p) \ - do { \ - uint32_t _data; \ - _data = (((volatile uint32_t *)(_d)->base_addr)[(_a)/4]); \ - *(_p) = CMIC_SWAP32(_data); \ - } while(0) - -#define DEV_WRITE32(_d, _a, _v) \ - do { \ - uint32_t _data = CMIC_SWAP32(_v); \ - ((volatile uint32_t *)(_d)->base_addr)[(_a)/4] = (_data); \ - } while(0) - -#else - -#define DEV_READ32(_d, _a, _p) \ - do { \ - *(_p) = (((volatile uint32_t *)(_d)->base_addr)[(_a)/4]); \ - } while(0) - -#define DEV_WRITE32(_d, _a, _v) \ - do { \ - ((volatile uint32_t *)(_d)->base_addr)[(_a)/4] = (_v); \ - } while(0) -#endif /* defined(CMIC_SOFT_BYTE_SWAP) */ - -static void -ptp_usleep(int usec) -{ - usleep_range(usec,usec+1); -} - -static void -ptp_sleep(int jiffies) -{ - wait_queue_head_t wq; - init_waitqueue_head(&wq); - - wait_event_timeout(wq, 0, jiffies); - -} - - -static void bksync_hostcmd_data_op(int setget, u64 *d1, u64 *d2) -{ - u32 w0, w1; - u64 data; - - if (!d1) { - return; - } - - if (setget) { - data = *d1; - w0 = (data & 0xFFFFFFFF); - w1 = (data >> 32); - DEV_WRITE32(ptp_priv, hostcmd_regs[1], w0); - DEV_WRITE32(ptp_priv, hostcmd_regs[2], w1); - } else { - DEV_READ32(ptp_priv, hostcmd_regs[1], &w0); - DEV_READ32(ptp_priv, hostcmd_regs[2], &w1); - data = (((u64)w1 << 32) | (w0)); - *d1 = data; - - if (d2) { - DEV_READ32(ptp_priv, hostcmd_regs[3], &w0); - DEV_READ32(ptp_priv, hostcmd_regs[4], &w1); - data = (((u64)w1 << 32) | (w0)); - *d2 = data; - } - } -} - - -static int bksync_cmd_go(u32 cmd, void *data0, void *data1) -{ - int ret = -1; - int retry_cnt = (1000); /* 1ms default timeout for hostcmd response */ - u32 cmd_status; - char cmd_str[20]; - int port; - uint32_t seq_id; - ktime_t start, now; - - if (ptp_priv == NULL || ptp_priv->shared_addr == NULL) { - return ret; - } - - mutex_lock(&ptp_priv->ptp_lock); - - if (cmd == BKSYNC_GET_TSTIME || cmd == BKSYNC_ACK_TSTIME) { - port = *((uint64_t *)data0) & 0xFFF; - seq_id = *((uint64_t*)data0) >> 16; - } - start = ktime_get(); - - ptp_priv->shared_addr->ksyncinit = cmd; - - /* init data */ - DEV_WRITE32(ptp_priv, hostcmd_regs[1], 0x0); - DEV_WRITE32(ptp_priv, hostcmd_regs[2], 0x0); - DEV_WRITE32(ptp_priv, hostcmd_regs[3], 0x0); - DEV_WRITE32(ptp_priv, hostcmd_regs[4], 0x0); - - switch (cmd) { - case BKSYNC_INIT: - sprintf(cmd_str, "KSYNC_INIT"); - ptp_priv->shared_addr->phase_offset = 0; - bksync_hostcmd_data_op(1, (u64 *)&(ptp_priv->shared_addr->phase_offset), 0); - break; - case BKSYNC_FREQCOR: - sprintf(cmd_str, "KSYNC_FREQCORR"); - ptp_priv->shared_addr->freqcorr = *((s32 *)data0); - bksync_hostcmd_data_op(1, (u64 *)&(ptp_priv->shared_addr->freqcorr), 0); - break; - case BKSYNC_ADJTIME: - sprintf(cmd_str, "KSYNC_ADJTIME"); - ptp_priv->shared_addr->phase_offset = *((s64 *)data0); - bksync_hostcmd_data_op(1, (u64 *)&(ptp_priv->shared_addr->phase_offset), 0); - break; - case BKSYNC_GETTIME: - retry_cnt = (retry_cnt * 2); - sprintf(cmd_str, "KSYNC_GETTIME"); - break; - case BKSYNC_GET_TSTIME: - retry_cnt = (retry_cnt * 2); - sprintf(cmd_str, "KSYNC_GET_TSTIME"); - bksync_hostcmd_data_op(1, data0, data1); - break; - case BKSYNC_ACK_TSTIME: - retry_cnt = (retry_cnt * 2); - sprintf(cmd_str, "KSYNC_ACK_TSTIME"); - bksync_hostcmd_data_op(1, data0, data1); - break; - case BKSYNC_SETTIME: - sprintf(cmd_str, "KSYNC_SETTIME"); - ptp_priv->shared_addr->ptptime = *((s64 *)data0); - ptp_priv->shared_addr->phase_offset = 0; - bksync_hostcmd_data_op(1, (u64 *)&(ptp_priv->shared_addr->ptptime), (u64 *)&(ptp_priv->shared_addr->phase_offset)); - break; - case BKSYNC_MTP_TS_UPDATE_ENABLE: - retry_cnt = (retry_cnt * 6); - sprintf(cmd_str, "KSYNC_MTP_TS_UPDATE_ENABLE"); - bksync_hostcmd_data_op(1, (u64 *)data0, 0); - break; - case BKSYNC_MTP_TS_UPDATE_DISABLE: - retry_cnt = (retry_cnt * 6); - sprintf(cmd_str, "KSYNC_MTP_TS_UPDATE_DISABLE"); - bksync_hostcmd_data_op(1, (u64 *)data0, 0); - break; - case BKSYNC_DEINIT: - retry_cnt = (retry_cnt * 4); - sprintf(cmd_str, "KSYNC_DEINIT"); - break; - default: - sprintf(cmd_str, "KSYNC_XXX"); - break; - } - DEV_WRITE32(ptp_priv, hostcmd_regs[0], ptp_priv->shared_addr->ksyncinit); - - do { - DEV_READ32(ptp_priv, hostcmd_regs[0], &cmd_status); - ptp_priv->shared_addr->ksyncinit = cmd_status; - - if (cmd_status == BKSYNC_DONE) { - ret = 0; - switch (cmd) { - case BKSYNC_GET_TSTIME: - case BKSYNC_GETTIME: - bksync_hostcmd_data_op(0, (u64 *)data0, (u64 *)data1); - break; - default: - break; - } - break; - } - ptp_usleep(100); - retry_cnt--; - } while (retry_cnt); - - now = ktime_get(); - mutex_unlock(&ptp_priv->ptp_lock); - - if (retry_cnt == 0) { - DBG_ERR(("Timeout on response from R5 to cmd %s time taken %lld us\n", cmd_str, ktime_us_delta(now, start))); - if (cmd == BKSYNC_GET_TSTIME) { - DBG_TXTS(("Timeout Port %d SeqId %d\n", port, seq_id)); - } - } - if (debug & DBG_LVL_CMDS) { - if (ktime_us_delta(now, start) > 5000) - DBG_CMDS(("R5 Command %s exceeded time expected (%lld us)\n", cmd_str, ktime_us_delta(now, start))); - } - - - return ret; -} - - -/** - * bksync_ptp_adjfreq - * - * @ptp: pointer to ptp_clock_info structure - * @ppb: frequency correction value - * - * Description: this function will set the frequency correction - */ -static int bksync_ptp_adjfreq(struct ptp_clock_info *ptp, s32 ppb) -{ - int ret = -1; - u32 cmd_status = BKSYNC_FREQCOR; - - ret = bksync_cmd_go(cmd_status, &ppb, NULL); - DBG_VERB(("applying freq correction: %x\n", ppb)); - - return ret; -} - -/** - * bksync_ptp_adjtime - * - * @ptp: pointer to ptp_clock_info structure - * @delta: desired change in nanoseconds - * - * Description: this function will shift/adjust the hardware clock time. - */ -static int bksync_ptp_adjtime(struct ptp_clock_info *ptp, s64 delta) -{ - u32 cmd_status = BKSYNC_ADJTIME; - int ret = -1; - - ret = bksync_cmd_go(cmd_status, (void *)&delta, NULL); - DBG_VERB(("ptp adjtime: 0x%llx \n", delta)); - - return ret; -} - -/** - * bksync_ptp_gettime - * - * @ptp: pointer to ptp_clock_info structure - * @ts: pointer to hold time/result - * - * Description: this function will read the current time from the - * hardware clock and store it in @ts. - */ -static int bksync_ptp_gettime(struct ptp_clock_info *ptp, struct timespec64 *ts) -{ - int ret = -1; - u32 cmd_status = BKSYNC_GETTIME; - s64 reftime = 0; - s64 refctr = 0; - - ret = bksync_cmd_go(cmd_status, (void *)&reftime, (void *)&refctr); - if (ret == 0) { - DBG_VERB(("ptp gettime: 0x%llx refctr:0x%llx\n", reftime, refctr)); - mutex_lock(&ptp_priv->ptp_pair_lock); - ptp_priv->shared_addr->ptptime = reftime; - ptp_priv->shared_addr->reftime = refctr; - mutex_unlock(&ptp_priv->ptp_pair_lock); - - *ts = ns_to_timespec64(reftime); - } - return ret; -} - - -/** - * bksync_ptp_settime - * - * @ptp: pointer to ptp_clock_info structure - * @ts: time value to set - * - * Description: this function will set the current time on the - * hardware clock. - */ -static int bksync_ptp_settime(struct ptp_clock_info *ptp, - const struct timespec64 *ts) -{ - s64 reftime, phaseadj; - int ret = -1; - u32 cmd_status = BKSYNC_SETTIME; - - phaseadj = 0; - reftime = timespec64_to_ns(ts); - - ret = bksync_cmd_go(cmd_status, (void *)&reftime, (void *)&phaseadj); - DBG_VERB(("ptp settime: 0x%llx \n", reftime)); - - return ret; -} - -static int bksync_ptp_enable(struct ptp_clock_info *ptp, - struct ptp_clock_request *rq, int on) -{ - return 0; -} - - -static int bksync_ptp_mirror_encap_update(struct ptp_clock_info *ptp, - int mtp_idx, int start) -{ - int ret = -1; - u64 mirror_encap_idx; - u32 cmd_status; - - if (mtp_idx > BCMKSYNC_MAX_MTP_IDX) { - return ret; - } - - mirror_encap_idx = mtp_idx; - if (start) { - cmd_status = BKSYNC_MTP_TS_UPDATE_ENABLE; - ptp_priv->mirror_encap_bmp |= (1 << mtp_idx); - } else { - if (!(ptp_priv->mirror_encap_bmp & mtp_idx)) { - /* Not running */ - return ret; - } - cmd_status = BKSYNC_MTP_TS_UPDATE_DISABLE; - ptp_priv->mirror_encap_bmp &= ~mtp_idx; - } - - ret = bksync_cmd_go(cmd_status, &mirror_encap_idx, NULL); - DBG_VERB(("ptp mmirror_encap_update: %d, mpt_index: %d, ret:%d \n", start, mtp_idx, ret)); - - return ret; - -} - -/* structure describing a PTP hardware clock */ -static struct ptp_clock_info bksync_ptp_caps = { - .owner = THIS_MODULE, - .name = "bksync_ptp_clock", - .max_adj = 200000, - .n_alarm = 0, - .n_ext_ts = 0, - .n_per_out = 0, /* will be overwritten in bksync_ptp_register */ - .n_pins = 0, - .pps = 0, - .adjfreq = bksync_ptp_adjfreq, - .adjtime = bksync_ptp_adjtime, - .gettime64 = bksync_ptp_gettime, - .settime64 = bksync_ptp_settime, - .enable = bksync_ptp_enable, -}; - -/** - * bksync_ptp_hw_tstamp_enable - * - * @dev_no: device number - * @port: port number - * - * Description: this is a callback function to enable the timestamping on - * a given port - */ -int bksync_ptp_hw_tstamp_enable(int dev_no, int port, int tx_type) -{ - uint64_t portmap = 0; - int map = 0; - int ret = 0; - - if (!module_initialized) { - ret = -1; - goto exit; - } - - if (tx_type == HWTSTAMP_TX_ONESTEP_SYNC) { - bksync_ptp_time_keep_init(); - goto exit; - } - - DBG_VERB(("Enable timestamp on a given port:%d\n", port)); - if (port <= 0) { - DBG_ERR(("Error enabling timestamp on port:%d\n", port)); - ret = -1; - goto exit; - } - - port -= 1; - map = port/64; port = port%64; - - /* Update the shared structure member */ - if (ptp_priv->shared_addr) { - portmap = ptp_priv->shared_addr->portmap[map]; - portmap |= (uint64_t)0x1 << port; - ptp_priv->shared_addr->portmap[map] = portmap; - /* Command to R5 for the update */ - ptp_priv->shared_addr->ksyncinit=BKSYNC_PBM_UPDATE; - } - -exit: - return ret; -} - -/** - * bksync_ptp_hw_tstamp_disable - * - * @dev_no: device number - * @port: port number - * - * Description: this is a callback function to disable the timestamping on - * a given port - */ -int bksync_ptp_hw_tstamp_disable(int dev_no, int port, int tx_type) -{ - uint64_t portmap = 0; - int map = 0; - int ret = 0; - - if (!module_initialized) { - ret = -1; - goto exit; - } - - if (tx_type == HWTSTAMP_TX_ONESTEP_SYNC) { - goto exit; - } - - DBG_VERB(("Disable timestamp on a given port:%d\n", port)); - if (port <= 0) { - DBG_ERR(("Error disabling timestamp on port:%d\n", port)); - ret = -1; - goto exit; - } - - port -= 1; - map = port/64; port = port%64; - - /* Update the shared structure member */ - if (ptp_priv->shared_addr) { - portmap = ptp_priv->shared_addr->portmap[map]; - portmap &= ~((uint64_t)0x1 << port); - ptp_priv->shared_addr->portmap[map]= portmap; - - /* Command to R5 for the update */ - ptp_priv->shared_addr->ksyncinit = BKSYNC_PBM_UPDATE; - } -exit: - return ret; -} - -int bksync_ptp_transport_get(uint8_t *pkt) -{ - int transport = 0; - uint16_t ethertype; - uint16_t tpid; - int tpid_offset, ethype_offset; - - /* Need to check VLAN tag if packet is tagged */ - tpid_offset = 12; - tpid = pkt[tpid_offset] << 8 | pkt[tpid_offset + 1]; - if (tpid == 0x8100) { - ethype_offset = tpid_offset + 4; - } else { - ethype_offset = tpid_offset; - } - - ethertype = pkt[ethype_offset] << 8 | pkt[ethype_offset+1]; - - switch (ethertype) { - case 0x88f7: /* ETHERTYPE_PTPV2 */ - transport = 2; - break; - - case 0x0800: /* ETHERTYPE_IPV4 */ - transport = 4; - break; - - case 0x86DD: /* ETHERTYPE_IPV6 */ - transport = 6; - break; - - default: - transport = 0; - } - - return transport; -} - -static int -bksync_txpkt_tsts_tsamp_get(int port, uint32_t pkt_seq_id, uint32_t *ts_valid, uint32_t *seq_id, uint64_t *timestamp) -{ - int ret = 0; - uint64_t tmp; - u32 fifo_rxctr = 0; - - tmp = (port & 0xFFFF) | (pkt_seq_id << 16); - - ret = bksync_cmd_go(BKSYNC_GET_TSTIME, &tmp, timestamp); - - if (ret >= 0) { - fifo_rxctr = (tmp >> 32) & 0xFFFF; - *seq_id = ((tmp >> 16) & 0xFFFF); - *ts_valid = (tmp & 0x1); - if (*ts_valid) { - tmp = (port & 0xFFFF) | (pkt_seq_id << 16); - bksync_cmd_go(BKSYNC_ACK_TSTIME, &tmp, 0); - if (fifo_rxctr != 0) { - if (fifo_rxctr != ptp_priv->port_stats[port].fifo_rxctr + 1) { - DBG_ERR(("FW Reset or Lost Timestamp RxSeq:(Prev %d : Current %d)\n", ptp_priv->port_stats[port].fifo_rxctr, fifo_rxctr)); - } - ptp_priv->port_stats[port].fifo_rxctr = fifo_rxctr; - } - } - } - - - return ret; -} - - -/** - * bksync_ptp_hw_tstamp_tx_time_get - * - * @dev_no: device number - * @port: port number - * @pkt: packet address - * @ts: timestamp to be retrieved - * - * Description: this is a callback function to retrieve the timestamp on - * a given port - */ -int bksync_ptp_hw_tstamp_tx_time_get(int dev_no, int port, uint8_t *pkt, uint64_t *ts) -{ - /* Get Timestamp from R5 or CLMAC */ - uint32_t ts_valid = 0; - uint32_t seq_id = 0; - uint32_t pktseq_id = 0; - uint64_t timestamp = 0; - uint16_t tpid = 0; - ktime_t start; - u64 delta; - int retry_cnt = num_retries; - int seq_id_offset, tpid_offset; - int transport = network_transport; - start = ktime_get(); - - if (!ptp_priv || !pkt || !ts || port < 1 || port > 255 || ptp_priv->shared_addr == NULL) { - return -1; - } - - *ts = 0; - - tpid_offset = 12; - - /* Parse for nw transport */ - if (transport == 0) { - transport = bksync_ptp_transport_get(pkt); - } - - switch(transport) - { - case 2: - seq_id_offset = 0x2c; - break; - case 4: - seq_id_offset = 0x48; - break; - case 6: - seq_id_offset = 0x5c; - break; - default: - seq_id_offset = 0x2c; - break; - } - - /* Need to check VLAN tag if packet is tagged */ - tpid = pkt[tpid_offset] << 8 | pkt[tpid_offset + 1]; - if (tpid == 0x8100) { - seq_id_offset += 4; - } - - - pktseq_id = pkt[seq_id_offset] << 8 | pkt[seq_id_offset + 1]; - - port -= 1; - - /* Fetch the TX timestamp from shadow memory */ - do { - bksync_txpkt_tsts_tsamp_get(port, pktseq_id, &ts_valid, &seq_id, ×tamp); - if (ts_valid) { - - /* Clear the shadow memory to get next entry */ - ptp_priv->shared_addr->port_ts_data[port].timestamp = 0; - ptp_priv->shared_addr->port_ts_data[port].port_id = 0; - ptp_priv->shared_addr->port_ts_data[port].ts_seq_id = 0; - ptp_priv->shared_addr->port_ts_data[port].ts_valid = 0; - - if (seq_id == pktseq_id) { - *ts = timestamp; - ptp_priv->port_stats[port].tsts_match += 1; - - delta = ktime_us_delta(ktime_get(), start); - DBG_VERB(("Port: %d Skb_SeqID %d FW_SeqId %d and TS:%llx FetchTime %lld\n", - port, pktseq_id, seq_id, timestamp, delta)); - - if (delta < ptp_priv->port_stats[port].tsts_best_fetch_time || ptp_priv->port_stats[port].tsts_best_fetch_time == 0) { - ptp_priv->port_stats[port].tsts_best_fetch_time = delta; - } - if (delta > ptp_priv->port_stats[port].tsts_worst_fetch_time || ptp_priv->port_stats[port].tsts_worst_fetch_time == 0) { - ptp_priv->port_stats[port].tsts_worst_fetch_time = delta; - } - /* Calculate Moving Average*/ - ptp_priv->port_stats[port].tsts_avg_fetch_time = ((u32)delta + ((ptp_priv->port_stats[port].tsts_match - 1) * ptp_priv->port_stats[port].tsts_avg_fetch_time)) / ptp_priv->port_stats[port].tsts_match; - break; - } else { - DBG_TXTS(("Discard timestamp on port %d Skb_SeqID %d FW_SeqId %d RetryCnt %d TimeLapsed (%lld us)\n", - port, pktseq_id, seq_id, (num_retries - retry_cnt), ktime_us_delta(ktime_get(),start))); - - ptp_priv->port_stats[port].tsts_discard += 1; - continue; - } - } - ptp_sleep(1); - retry_cnt--; - } while(retry_cnt); - - - ptp_priv->port_stats[port].pkt_txctr += 1; - - if (retry_cnt == 0) { - ptp_priv->port_stats[port].tsts_timeout += 1; - DBG_ERR(("FW Response timeout: Tx TS on phy port:%d Skb_SeqID: %d TimeLapsed (%lld us)\n", - port, pktseq_id, ktime_us_delta(ktime_get(), start))); - } - - - return 0; -} - - -enum { - bxconCustomEncapVersionInvalid = 0, - bxconCustomEncapVersionOne = 1, - - bxconCustomEncapVersionCurrent = bxconCustomEncapVersionOne, - bxconCustomEncapVersionReserved = 255 /* last */ -} bxconCustomEncapVersion; - -enum { - bxconCustomEncapOpcodeInvalid = 0, - bxconCustomEncapOpcodePtpRx = 1, - bxconCustomEncapOpcodeReserved = 255 /* last */ -} bxconCustomEncapOpcode; - -enum { - bxconCustomEncapPtpRxTlvInvalid = 0, - bxconCustomEncapPtpRxTlvPtpRxTime = 1, - bxconCustomEncapPtpRxTlvReserved = 255 /* last */ -} bxconCustomEncapPtpRxTlvType; - -void -bksync_dump_pkt(uint8_t *data, int size) -{ - int idx; - char str[128]; - - for (idx = 0; idx < size; idx++) { - if ((idx & 0xf) == 0) { - sprintf(str, "%04x: ", idx); - } - sprintf(&str[strlen(str)], "%02x ", data[idx]); - if ((idx & 0xf) == 0xf) { - sprintf(&str[strlen(str)], "\n"); - gprintk(str); - } - } - if ((idx & 0xf) != 0) { - sprintf(&str[strlen(str)], "\n"); - gprintk(str); - } -} - - -static inline int -bksync_pkt_custom_encap_ptprx_get(uint8_t *pkt, uint64_t *ing_ptptime) -{ - uint8_t *custom_hdr; - uint8_t id[4]; - uint8_t ver, opc; - uint8_t nh_type, nh_rsvd; - uint16_t len, tot_len; - uint16_t nh_len; - uint32_t seq_id = 0; - uint32_t ptp_rx_time[2]; - uint64_t u64_ptp_rx_time = 0; - - custom_hdr = pkt; - - BKSYNC_UNPACK_U8(custom_hdr, id[0]); - BKSYNC_UNPACK_U8(custom_hdr, id[1]); - BKSYNC_UNPACK_U8(custom_hdr, id[2]); - BKSYNC_UNPACK_U8(custom_hdr, id[3]); - if (!((id[0] == 'B') && (id[1] == 'C') && (id[2] == 'M') && (id[3] == 'C'))) { - /* invalid signature */ - return -1; - } - - BKSYNC_UNPACK_U8(custom_hdr, ver); - switch (ver) { - case bxconCustomEncapVersionCurrent: - break; - default: - gprintk("invalid ver\n"); - return -1; - } - - BKSYNC_UNPACK_U8(custom_hdr, opc); - switch (opc) { - case bxconCustomEncapOpcodePtpRx: - break; - default: - gprintk("invalid opcode\n"); - return -1; - } - - - BKSYNC_UNPACK_U16(custom_hdr, len); - BKSYNC_UNPACK_U32(custom_hdr, seq_id); - tot_len = len; - - /* remaining length of custom encap */ - len = len - (custom_hdr - pkt); - - - /* process tlv */ - while (len > 0) { - BKSYNC_UNPACK_U8(custom_hdr, nh_type); - BKSYNC_UNPACK_U8(custom_hdr, nh_rsvd); - BKSYNC_UNPACK_U16(custom_hdr, nh_len); - len = len - (nh_len); - if (nh_rsvd != 0x0) { - continue; /* invalid tlv */ - } - - switch (nh_type) { - case bxconCustomEncapPtpRxTlvPtpRxTime: - BKSYNC_UNPACK_U32(custom_hdr, ptp_rx_time[0]); - BKSYNC_UNPACK_U32(custom_hdr, ptp_rx_time[1]); - u64_ptp_rx_time = ((uint64_t)ptp_rx_time[1] << 32) | (uint64_t)ptp_rx_time[0]; - *ing_ptptime = u64_ptp_rx_time; - break; - default: - custom_hdr += nh_len; - break; - } - } - -#if 0 -if (!(seq_id % 100)) { - gprintk("****** seq_id = %d ptp time = 0x%llx\n", seq_id, u64_ptp_rx_time); - bksync_dump_pkt(pkt, tot_len); -} -#endif - - DBG_VERB(("Custom encap header: ver=%d opcode=%d seq_id=0x%x\n", ver, opc, seq_id)); - - return (tot_len); -} - - - -/** - * bksync_ptp_hw_tstamp_rx_time_upscale - * - * @dev_no: device number - * @ts: timestamp to be retrieved - * - * Description: this is a callback function to retrieve 64b equivalent of - * rx timestamp - */ -int bksync_ptp_hw_tstamp_rx_time_upscale(int dev_no, int port, struct sk_buff *skb, uint32_t *meta, uint64_t *ts) -{ - int ret = 0; - int custom_encap_len = 0; - - switch (KNET_SKB_CB(skb)->dcb_type) { - case 26: - case 32: - case 35: - if (pci_cos != (meta[4] & 0x3F)) { - return -1; - } - break; - case 38: - if (pci_cos != ((meta[12] >> 22) & 0x2F)) { - return -1; - } - break; - case 36: - if (pci_cos != ((meta[6] >> 22) & 0x2F)) { - return -1; - } - break; - default: - return -1; - } - - /* parse custom encap header in pkt for ptp rxtime */ - custom_encap_len = bksync_pkt_custom_encap_ptprx_get((skb->data), ts); - - /* Remove the custom encap header from pkt */ - if (custom_encap_len > 0) { - skb_pull(skb, custom_encap_len); - - DBG_VERB(("###### ptp message type: %d\n", skb->data[42])); - } - - if (port > 0){ - port -= 1; - ptp_priv->port_stats[port].pkt_rxctr += 1; - } - - return ret; -} - - -void bksync_hton64(u8 *buf, const uint64_t *data) -{ -#ifdef __LITTLE_ENDIAN - /* LITTLE ENDIAN */ - buf[0] = (*(((uint8_t*)(data)) + 7u)); - buf[1] = (*(((uint8_t*)(data)) + 6u)); - buf[2] = (*(((uint8_t*)(data)) + 5u)); - buf[3] = (*(((uint8_t*)(data)) + 4u)); - buf[4] = (*(((uint8_t*)(data)) + 3u)); - buf[5] = (*(((uint8_t*)(data)) + 2u)); - buf[6] = (*(((uint8_t*)(data)) + 1u)); - buf[7] = (*(((uint8_t*)(data)) + 0u)); -#else - memcpy(buf, data, 8); -#endif -} - - - -int bksync_ptp_hw_tstamp_tx_meta_get(int dev_no, - int hwts, int hdrlen, - struct sk_buff *skb, - uint64_t *tstamp, - u32 **md) -{ - uint16_t tpid = 0; - int md_offset = 0; - int pkt_offset = 0; - int ptp_hdr_offset = 0; - int transport = network_transport; - s64 ptptime = 0; - s64 ptpcounter = 0; - int64_t corrField; - int32_t negCurTS32; - int64_t negCurTS64; - - if(!ptp_priv || ptp_priv->shared_addr == NULL) { - return 0; - } - - mutex_lock(&ptp_priv->ptp_pair_lock); - ptptime = ptp_priv->shared_addr->ptptime; - ptpcounter = ptp_priv->shared_addr->reftime; - mutex_unlock(&ptp_priv->ptp_pair_lock); - - negCurTS32 = - (int32_t) ptpcounter; - negCurTS64 = - (int64_t)(ptpcounter); - - if (CMICX_DEV_TYPE) { - pkt_offset = ptp_hdr_offset = hdrlen; - } - - /* Need to check VLAN tag if packet is tagged */ - tpid = SKB_U16_GET(skb, (pkt_offset + 12)); - if (tpid == 0x8100) { - md_offset = 4; - ptp_hdr_offset += 4; - } - - /* One Step Meta Data */ - if (hwts == HWTSTAMP_TX_ONESTEP_SYNC) { - md_offset += 8; - if (KNET_SKB_CB(skb)->dcb_type == 26) { - corrField = (((int64_t)negCurTS32) << 16); - if (negCurTS32 >= 0) { - md_offset += 8; - } - } else { - corrField = (((int64_t)negCurTS64) << 16); - } - } - - - /* Parse for nw transport */ - if (transport == 0) { - transport = bksync_ptp_transport_get(skb->data + pkt_offset); - } - - switch(transport) - { - case 2: /* IEEE 802.3 */ - ptp_hdr_offset += 14; - if (KNET_SKB_CB(skb)->dcb_type == 32) { - if (md) *md = &sobmhrawpkts_dcb32[md_offset]; - } else if(KNET_SKB_CB(skb)->dcb_type == 26) { - if (md) *md = &sobmhrawpkts_dcb26[md_offset]; - } else if(KNET_SKB_CB(skb)->dcb_type == 35) { - if (md) *md = &sobmhrawpkts_dcb35[md_offset]; - } else if(KNET_SKB_CB(skb)->dcb_type == 36) { - if (md) *md = &sobmhrawpkts_dcb36[md_offset]; - } else if(KNET_SKB_CB(skb)->dcb_type == 38) { - if (md) *md = &sobmhrawpkts_dcb38[md_offset]; - } - break; - case 4: /* UDP IPv4 */ - ptp_hdr_offset += 42; - if (KNET_SKB_CB(skb)->dcb_type == 32) { - if (md) *md = &sobmhudpipv4_dcb32[md_offset]; - } else if(KNET_SKB_CB(skb)->dcb_type == 26) { - if (md) *md = &sobmhudpipv4_dcb26[md_offset]; - } else if(KNET_SKB_CB(skb)->dcb_type == 35) { - if (md) *md = &sobmhudpipv4_dcb35[md_offset]; - } else if(KNET_SKB_CB(skb)->dcb_type == 36) { - if (md) *md = &sobmhudpipv4_dcb36[md_offset]; - } else if(KNET_SKB_CB(skb)->dcb_type == 38) { - if (md) *md = &sobmhudpipv4_dcb38[md_offset]; - } - break; - case 6: /* UDP IPv6 */ - ptp_hdr_offset += 62; - if (KNET_SKB_CB(skb)->dcb_type == 32) { - if (md) *md = &sobmhudpipv6_dcb32[md_offset]; - } else if(KNET_SKB_CB(skb)->dcb_type == 26) { - if (md) *md = &sobmhudpipv6_dcb26[md_offset]; - } else if(KNET_SKB_CB(skb)->dcb_type == 35) { - if (md) *md = &sobmhudpipv6_dcb35[md_offset]; - } else if(KNET_SKB_CB(skb)->dcb_type == 36) { - if (md) *md = &sobmhudpipv6_dcb36[md_offset]; - } else if(KNET_SKB_CB(skb)->dcb_type == 38) { - if (md) *md = &sobmhudpipv6_dcb38[md_offset]; - } - break; - default: - ptp_hdr_offset += 42; - if (KNET_SKB_CB(skb)->dcb_type == 32) { - if (md) *md = &sobmhudpipv4_dcb32[md_offset]; - } else if(KNET_SKB_CB(skb)->dcb_type == 26) { - if (md) *md = &sobmhudpipv4_dcb26[md_offset]; - } else if(KNET_SKB_CB(skb)->dcb_type == 35) { - if (md) *md = &sobmhudpipv4_dcb35[md_offset]; - } else if(KNET_SKB_CB(skb)->dcb_type == 36) { - if (md) *md = &sobmhudpipv4_dcb36[md_offset]; - } else if(KNET_SKB_CB(skb)->dcb_type == 38) { - if (md) *md = &sobmhudpipv4_dcb38[md_offset]; - } - break; - } - - - if ((hwts == HWTSTAMP_TX_ONESTEP_SYNC) && - BKSYNC_PTP_EVENT_MSG(skb->data[ptp_hdr_offset])) { - /* One Step Timestamp Field updation */ - int corr_offset = ptp_hdr_offset + 8; - int origin_ts_offset = ptp_hdr_offset + 34; - u32 tmp; - struct timespec64 ts; - int udp_csum_regen; - u32 udp_csum20; - u16 udp_csum; - int port; - - udp_csum = SKB_U16_GET(skb, (ptp_hdr_offset - 2)); - - switch (transport) { - case 2: - udp_csum_regen = 0; - break; - case 6: - udp_csum_regen = 1; - break; - default: - udp_csum_regen = (udp_csum != 0x0); - break; - } - - /* Fill the correction field */ - bksync_hton64(&(skb->data[corr_offset]), (const u64 *)&corrField); - - /* Fill the Origin Timestamp Field */ - ts = ns_to_timespec64(ptptime); - - tmp = (ts.tv_sec >> 32); - skb->data[origin_ts_offset + 0] = ((tmp >> 8) & 0xFF); - skb->data[origin_ts_offset + 1] = ((tmp ) & 0xFF); - - tmp = (ts.tv_sec & 0xFFFFFFFFLL); - skb->data[origin_ts_offset + 2] = ((tmp >> 24) & 0xFF); - skb->data[origin_ts_offset + 3] = ((tmp >> 16) & 0xFF); - skb->data[origin_ts_offset + 4] = ((tmp >> 8) & 0xFF); - skb->data[origin_ts_offset + 5] = ((tmp ) & 0xFF); - - tmp = (ts.tv_nsec & 0xFFFFFFFFLL); - skb->data[origin_ts_offset + 6] = ((tmp >> 24) & 0xFF); - skb->data[origin_ts_offset + 7] = ((tmp >> 16) & 0xFF); - skb->data[origin_ts_offset + 8] = ((tmp >> 8) & 0xFF); - skb->data[origin_ts_offset + 9] = ((tmp ) & 0xFF); - - if (udp_csum_regen) { - udp_csum20 = (~udp_csum) & 0xFFFF; - - udp_csum20 += SKB_U16_GET(skb, (corr_offset + 0)); - udp_csum20 += SKB_U16_GET(skb, (corr_offset + 2)); - udp_csum20 += SKB_U16_GET(skb, (corr_offset + 4)); - udp_csum20 += SKB_U16_GET(skb, (corr_offset + 6)); - - udp_csum20 += SKB_U16_GET(skb, (origin_ts_offset + 0)); - udp_csum20 += SKB_U16_GET(skb, (origin_ts_offset + 2)); - udp_csum20 += SKB_U16_GET(skb, (origin_ts_offset + 4)); - udp_csum20 += SKB_U16_GET(skb, (origin_ts_offset + 6)); - udp_csum20 += SKB_U16_GET(skb, (origin_ts_offset + 8)); - - /* Fold 20bit checksum into 16bit udp checksum */ - udp_csum20 = ((udp_csum20 & 0xFFFF) + (udp_csum20 >> 16)); - udp_csum = ((udp_csum20 & 0xFFFF) + (udp_csum20 >> 16)); - - /* invert again to get final checksum. */ - udp_csum = ~udp_csum; - if (udp_csum == 0) { - udp_csum = 0xFFFF; - } - - skb->data[ptp_hdr_offset - 2] = ((udp_csum >> 8) & 0xFF); - skb->data[ptp_hdr_offset - 1] = ((udp_csum ) & 0xFF); - } - - if (skb->data[ptp_hdr_offset] == IEEE1588_MSGTYPE_DELREQ) { - *tstamp = ptptime; - - DBG_VERB(("ptp delay req packet tstamp : 0x%llx corrField: 0x%llx\n", ptptime, corrField)); - } - - port = KNET_SKB_CB(skb)->port; - port -= 1; - ptp_priv->port_stats[port].pkt_txonestep += 1; - } - - return 0; -} - - -int bksync_ptp_hw_tstamp_ptp_clock_index_get(int dev_no) -{ - int phc_index = -1; - if (ptp_priv && ptp_priv->ptp_clock) - phc_index = ptp_clock_index(ptp_priv->ptp_clock); - return phc_index; -} - - -/** -* bcm_ptp_time_keep - call timecounter_read every second to avoid timer overrun -* because a 32bit counter, will timeout in 4s -*/ -static void bksync_ptp_time_keep(struct work_struct *work) -{ - struct delayed_work *dwork = to_delayed_work(work); - struct bksync_ptp_priv *priv = - container_of(dwork, struct bksync_ptp_priv, time_keep); - struct timespec64 ts; - - /* Call bcm_ptp_gettime function to keep the ref_time_64 and ref_counter_48 in sync */ - bksync_ptp_gettime(&(priv->ptp_caps), &ts); - schedule_delayed_work(&priv->time_keep, HZ); -} - -static void bksync_ptp_time_keep_init(void) -{ - if (!ptp_priv->timekeep_status) { - INIT_DELAYED_WORK(&(ptp_priv->time_keep), bksync_ptp_time_keep); - schedule_delayed_work(&ptp_priv->time_keep, HZ); - - ptp_priv->timekeep_status = 1; - } - - return; -} - -static void bksync_ptp_time_keep_deinit(void) -{ - if (ptp_priv->timekeep_status) { - /* Cancel delayed work */ - cancel_delayed_work_sync(&(ptp_priv->time_keep)); - - ptp_priv->timekeep_status = 0; - } - - return; -} - - - -static int bksync_ptp_init(struct ptp_clock_info *ptp) -{ - return bksync_cmd_go(BKSYNC_INIT, NULL, NULL); -} - -static int bksync_ptp_deinit(struct ptp_clock_info *ptp) -{ - bksync_ptp_time_keep_deinit(); - - return bksync_cmd_go(BKSYNC_DEINIT, NULL, NULL); -} - -/* - * Device Debug Statistics Proc Entry - */ -/** -* This function is called at the beginning of a sequence. -* ie, when: -* - the /proc/bcm/ksync/stats file is read (first time) -* - after the function stop (end of sequence) -* -*/ -static void *bksync_proc_seq_start(struct seq_file *s, loff_t *pos) -{ - /* beginning a new sequence ? */ - if ( (int)*pos == 0 && ptp_priv->shared_addr != NULL) - { - seq_printf(s, "TwoStep Port Bitmap : %08llx%08llx\n", - (uint64_t)(ptp_priv->shared_addr->portmap[1]), - (uint64_t)(ptp_priv->shared_addr->portmap[0])); - seq_printf(s,"%4s| %9s| %9s| %9s| %9s| %9s| %9s| %9s| %9s| %9s| %9s| %9s\n", - "Port", "RxCounter", "TxCounter", "TxOneStep", "TSTimeout", "TSRead", "TSMatch", "TSDiscard", - "TimeHi" , "TimeLo", "TimeAvg", "FIFORx"); - } - - if ((int)*pos < (ptp_priv->num_pports)) - return (void *)(unsigned long)(*pos + 1); - /* End of the sequence, return NULL */ - return NULL; -} - -/** -* This function is called after the beginning of a sequence. -* It's called untill the return is NULL (this ends the sequence). -* -*/ -static void *bksync_proc_seq_next(struct seq_file *s, void *v, loff_t *pos) -{ - (*pos)++; - return bksync_proc_seq_start(s, pos); -} -/** -* This function is called at the end of a sequence -* -*/ -static void bksync_proc_seq_stop(struct seq_file *s, void *v) -{ - /* nothing to do, we use a static value in bksync_proc_seq_start() */ -} - -/** -* This function is called for each "step" of a sequence -* -*/ -static int bksync_proc_seq_show(struct seq_file *s, void *v) -{ - unsigned long port = (unsigned long)v; - port = port - 1; - if (ptp_priv->port_stats[port].pkt_rxctr || ptp_priv->port_stats[port].pkt_txctr || - ptp_priv->port_stats[port].pkt_txonestep|| - ptp_priv->port_stats[port].tsts_discard || ptp_priv->port_stats[port].tsts_timeout || - ptp_priv->shared_addr->port_ts_data[port].ts_cnt || ptp_priv->port_stats[port].tsts_match) { - seq_printf(s, "%4lu | %9d| %9d| %9d| %9d| %9d| %9d| %9d| %9lld| %9lld | %9d|%9d | %s\n", (port + 1), - ptp_priv->port_stats[port].pkt_rxctr, - ptp_priv->port_stats[port].pkt_txctr, - ptp_priv->port_stats[port].pkt_txonestep, - ptp_priv->port_stats[port].tsts_timeout, - ptp_priv->shared_addr->port_ts_data[port].ts_cnt, - ptp_priv->port_stats[port].tsts_match, - ptp_priv->port_stats[port].tsts_discard, - ptp_priv->port_stats[port].tsts_worst_fetch_time, - ptp_priv->port_stats[port].tsts_best_fetch_time, - ptp_priv->port_stats[port].tsts_avg_fetch_time, - ptp_priv->port_stats[port].fifo_rxctr, - ptp_priv->port_stats[port].pkt_txctr != ptp_priv->port_stats[port].tsts_match ? "***":""); - } - return 0; -} - -/** -* seq_operations for bsync_proc_*** entries -* -*/ -static struct seq_operations bksync_proc_seq_ops = { - .start = bksync_proc_seq_start, - .next = bksync_proc_seq_next, - .stop = bksync_proc_seq_stop, - .show = bksync_proc_seq_show -}; -static int bksync_proc_txts_open(struct inode * inode, struct file * file) -{ - return seq_open(file, &bksync_proc_seq_ops); -} - -static ssize_t -bksync_proc_txts_write(struct file *file, const char *buf, - size_t count, loff_t *loff) -{ - char debug_str[40]; - char *ptr; - int port; - - if (copy_from_user(debug_str, buf, count)) { - return -EFAULT; - } - - if ((ptr = strstr(debug_str, "clear")) != NULL) { - for (port = 0; port < ptp_priv->num_pports; port++) { - ptp_priv->port_stats[port].pkt_rxctr = 0; - ptp_priv->port_stats[port].pkt_txctr = 0; - ptp_priv->port_stats[port].pkt_txonestep = 0; - ptp_priv->port_stats[port].tsts_timeout = 0; - ptp_priv->port_stats[port].tsts_match = 0; - ptp_priv->port_stats[port].tsts_discard = 0; - if (ptp_priv->shared_addr) - ptp_priv->shared_addr->port_ts_data[port].ts_cnt = 0; - } - } else { - gprintk("Warning: unknown input\n"); - } - - return count; -} - -struct proc_ops bksync_proc_txts_file_ops = { - proc_open: bksync_proc_txts_open, - proc_read: seq_read, - proc_lseek: seq_lseek, - proc_write: bksync_proc_txts_write, - proc_release: seq_release, -}; - -/* - * Driver Debug Proc Entry - */ -static int -bksync_proc_debug_show(struct seq_file *m, void *v) -{ - seq_printf(m, "Configuration:\n"); - seq_printf(m, " debug: 0x%x\n", debug); - return 0; -} - -static ssize_t -bksync_proc_debug_write(struct file *file, const char *buf, - size_t count, loff_t *loff) -{ - char debug_str[40]; - char *ptr; - - if (copy_from_user(debug_str, buf, count)) { - return -EFAULT; - } - - if ((ptr = strstr(debug_str, "debug=")) != NULL) { - ptr += 6; - debug = simple_strtol(ptr, NULL, 0); - } else { - gprintk("Warning: unknown configuration\n"); - } - - return count; -} - -static int bksync_proc_debug_open(struct inode * inode, struct file * file) -{ - return single_open(file, bksync_proc_debug_show, NULL); -} - - -struct proc_ops bksync_proc_debug_file_ops = { - proc_open: bksync_proc_debug_open, - proc_read: seq_read, - proc_lseek: seq_lseek, - proc_write: bksync_proc_debug_write, - proc_release: single_release, -}; - - -static int -bksync_proc_init(void) -{ - struct proc_dir_entry *entry; - - PROC_CREATE(entry, "stats", 0666, bksync_proc_root, &bksync_proc_txts_file_ops); - if (entry == NULL) { - return -1; - } - PROC_CREATE(entry, "debug", 0666, bksync_proc_root, &bksync_proc_debug_file_ops); - if (entry == NULL) { - return -1; - } - return 0; -} - -static int -bksync_proc_cleanup(void) -{ - remove_proc_entry("stats", bksync_proc_root); - remove_proc_entry("debug", bksync_proc_root); - return 0; -} - -static void bksync_ptp_dma_init(int dcb_type) -{ - int endianess; - int num_pports = 256; - - - ptp_priv->num_pports = num_pports; - ptp_priv->dcb_type = dcb_type; - ptp_priv->dma_mem_size = 16384;/*sizeof(bksync_uc_linux_ipc_t);*/ - - if (ptp_priv->shared_addr == NULL) { - ptp_priv->shared_addr = kzalloc(16384, GFP_KERNEL); - ptp_priv->port_stats = kzalloc((sizeof(bksync_port_stats_t) * num_pports), GFP_KERNEL); - } - - if (ptp_priv->shared_addr != NULL) { - /* Reset memory. */ - memset((void *)ptp_priv->shared_addr, 0, ptp_priv->dma_mem_size); - -#ifdef __LITTLE_ENDIAN - endianess = 0; -#else - endianess = 1; -#endif - DEV_WRITE32(ptp_priv, CMIC_CMC_SCHAN_MESSAGE_14r(CMIC_CMC_BASE), ((pci_cos << 16) | endianess)); - - DEV_WRITE32(ptp_priv, CMIC_CMC_SCHAN_MESSAGE_15r(CMIC_CMC_BASE), 1); - DEV_WRITE32(ptp_priv, CMIC_CMC_SCHAN_MESSAGE_16r(CMIC_CMC_BASE), 1); - - } - - if (debug & DBG_LVL_VERB) { - printk(KERN_EMERG"%s %p:%p\n",__FUNCTION__, - ptp_priv->base_addr,(void *)ptp_priv->shared_addr); - } - - ptp_priv->mirror_encap_bmp = 0x0; - - hostcmd_regs[0] = CMIC_CMC_SCHAN_MESSAGE_21r(CMIC_CMC_BASE); - hostcmd_regs[1] = CMIC_CMC_SCHAN_MESSAGE_20r(CMIC_CMC_BASE); - hostcmd_regs[2] = CMIC_CMC_SCHAN_MESSAGE_19r(CMIC_CMC_BASE); - hostcmd_regs[3] = CMIC_CMC_SCHAN_MESSAGE_18r(CMIC_CMC_BASE); - hostcmd_regs[4] = CMIC_CMC_SCHAN_MESSAGE_17r(CMIC_CMC_BASE); - - return; -} - - -/** - * bksync_ioctl_cmd_handler - * @kmsg: kcom message - ptp clock ioctl command. - * Description: This function will handle ioctl commands - * from user mode. - */ -static int -bksync_ioctl_cmd_handler(kcom_msg_clock_cmd_t *kmsg, int len, int dcb_type) -{ - u32 fw_status; - kmsg->hdr.type = KCOM_MSG_TYPE_RSP; - - if (!module_initialized && kmsg->clock_info.cmd != KSYNC_M_HW_INIT) { - kmsg->hdr.status = KCOM_E_NOT_FOUND; - return sizeof(kcom_msg_hdr_t); - } - - switch(kmsg->clock_info.cmd) { - case KSYNC_M_HW_INIT: - pci_cos = kmsg->clock_info.data[0]; - if (kmsg->clock_info.data[1] == 0 || kmsg->clock_info.data[1] == 1) { - fw_core = kmsg->clock_info.data[1]; - DEV_READ32(ptp_priv, CMIC_CMC_SCHAN_MESSAGE_21r(CMIC_CMC_BASE), &fw_status); - - /* Return success if the app is already initialized. */ - if (module_initialized) { - kmsg->hdr.status = KCOM_E_NONE; - return sizeof(kcom_msg_hdr_t); - } - - /* Return error if the app is not ready yet. */ - if (fw_status != 0xBADC0DE1) { - kmsg->hdr.status = KCOM_E_RESOURCE; - return sizeof(kcom_msg_hdr_t); - } - - bksync_ptp_dma_init(dcb_type); - if (bksync_ptp_init(&(ptp_priv->ptp_caps)) >= 0) { - module_initialized = 1; - } - } - break; - case KSYNC_M_HW_DEINIT: - bksync_ptp_deinit(&(ptp_priv->ptp_caps)); - module_initialized = 0; - break; - case KSYNC_M_HW_TS_DISABLE: - bksync_ptp_hw_tstamp_disable(0, kmsg->clock_info.data[0], 0); - break; - case KSYNC_M_MTP_TS_UPDATE_ENABLE: - bksync_ptp_mirror_encap_update(0, kmsg->clock_info.data[0], TRUE); - break; - case KSYNC_M_MTP_TS_UPDATE_DISABLE: - bksync_ptp_mirror_encap_update(0, kmsg->clock_info.data[0], FALSE); - break; - case KSYNC_M_VERSION: - break; - default: - kmsg->hdr.status = KCOM_E_NOT_FOUND; - return sizeof(kcom_msg_hdr_t); - } - - return sizeof(*kmsg); -} - - - -/** - * bksync_ptp_register - * @priv: driver private structure - * Description: this function will register the ptp clock driver - * to kernel. It also does some house keeping work. - */ -static int bksync_ptp_register(void) -{ - int err = -ENODEV; - - /* Support on core-0 or core-1 */ - if (fw_core < 0 || fw_core > 1) { - goto exit; - } - - /* default transport is raw, ieee 802.3 */ - switch (network_transport) { - case 2: /* IEEE 802.3 */ - case 4: /* UDP IPv4 */ - case 6: /* UDP IPv6 */ - break; - default: - network_transport = 0; - } - - ptp_priv = kzalloc(sizeof(*ptp_priv), GFP_KERNEL); - if (!ptp_priv) { - err = -ENOMEM; - goto exit; - } - - /* Reset memory */ - memset(ptp_priv, 0, sizeof(*ptp_priv)); - - err = -ENODEV; - - ptp_priv->ptp_caps = bksync_ptp_caps; - - mutex_init(&(ptp_priv->ptp_lock)); - mutex_init(&(ptp_priv->ptp_pair_lock)); - - /* Register ptp clock driver with bksync_ptp_caps */ - ptp_priv->ptp_clock = ptp_clock_register(&ptp_priv->ptp_caps, NULL); - - /* Initialize the Base address for CMIC and shared Memory access */ - ptp_priv->base_addr = lkbde_get_dev_virt(0); - ptp_priv->dma_dev = lkbde_get_dma_dev(0); - - if (IS_ERR(ptp_priv->ptp_clock)) { - ptp_priv->ptp_clock = NULL; - } else if (ptp_priv->ptp_clock) { - err = 0; - - /* Register BCM-KNET HW Timestamp Callback Functions */ - bkn_hw_tstamp_enable_cb_register(bksync_ptp_hw_tstamp_enable); - bkn_hw_tstamp_disable_cb_register(bksync_ptp_hw_tstamp_disable); - bkn_hw_tstamp_tx_time_get_cb_register(bksync_ptp_hw_tstamp_tx_time_get); - bkn_hw_tstamp_tx_meta_get_cb_register(bksync_ptp_hw_tstamp_tx_meta_get); - bkn_hw_tstamp_rx_time_upscale_cb_register(bksync_ptp_hw_tstamp_rx_time_upscale); - bkn_hw_tstamp_ptp_clock_index_cb_register(bksync_ptp_hw_tstamp_ptp_clock_index_get); - bkn_hw_tstamp_ioctl_cmd_cb_register(bksync_ioctl_cmd_handler); - - } - - /* Initialize proc files */ - bksync_proc_root = proc_mkdir("bcm/ksync", NULL); - bksync_proc_init(); - ptp_priv->shared_addr = NULL; - ptp_priv->port_stats = NULL; -exit: - return err; -} - -static int bksync_ptp_remove(void) -{ - if (!ptp_priv) - return 0; - - bksync_ptp_time_keep_deinit(); - - bksync_proc_cleanup(); - remove_proc_entry("bcm/ksync", NULL); - - /* UnRegister BCM-KNET HW Timestamp Callback Functions */ - bkn_hw_tstamp_enable_cb_unregister(bksync_ptp_hw_tstamp_enable); - bkn_hw_tstamp_disable_cb_unregister(bksync_ptp_hw_tstamp_disable); - bkn_hw_tstamp_tx_time_get_cb_unregister(bksync_ptp_hw_tstamp_tx_time_get); - bkn_hw_tstamp_tx_meta_get_cb_unregister(bksync_ptp_hw_tstamp_tx_meta_get); - bkn_hw_tstamp_rx_time_upscale_cb_unregister(bksync_ptp_hw_tstamp_rx_time_upscale); - bkn_hw_tstamp_ptp_clock_index_cb_unregister(bksync_ptp_hw_tstamp_ptp_clock_index_get); - bkn_hw_tstamp_ioctl_cmd_cb_unregister(bksync_ioctl_cmd_handler); - - if (module_initialized) { - DEV_WRITE32(ptp_priv, CMIC_CMC_SCHAN_MESSAGE_15r(CMIC_CMC_BASE), 0); - DEV_WRITE32(ptp_priv, CMIC_CMC_SCHAN_MESSAGE_16r(CMIC_CMC_BASE), 0); - } - /* Deinitialize the PTP */ - bksync_ptp_deinit(&(ptp_priv->ptp_caps)); - module_initialized = 0; - - if (ptp_priv->port_stats != NULL) { - kfree((void *)ptp_priv->port_stats); - ptp_priv->port_stats = NULL; - } - if (ptp_priv->shared_addr != NULL) { - kfree((void *)ptp_priv->shared_addr); - ptp_priv->shared_addr = NULL; - DBG_ERR(("Free R5 memory\n")); - } - - /* Unregister the bcm ptp clock driver */ - ptp_clock_unregister(ptp_priv->ptp_clock); - - /* Free Memory */ - kfree(ptp_priv); - - return 0; -} -#endif - - -/* - * Generic module functions - */ - -/* - * Function: _pprint - * - * Purpose: - * Print proc filesystem information. - * Parameters: - * None - * Returns: - * Always 0 - */ - static int -_pprint(struct seq_file *m) -{ -#if LINUX_VERSION_CODE > KERNEL_VERSION(3,17,0) - /* put some goodies here */ - pprintf(m, "Broadcom BCM PTP Hardware Clock Module\n"); -#else - pprintf(m, "Broadcom BCM PTP Hardware Clock Module not supported\n"); -#endif - return 0; -} - -/* - * Function: _init - * - * Purpose: - * Module initialization. - * Attached SOC all devices and optionally initializes these. - * Parameters: - * None - * Returns: - * 0 on success, otherwise -1 - */ - static int -_init(void) -{ -#if LINUX_VERSION_CODE > KERNEL_VERSION(3,17,0) - bksync_ptp_register(); - return 0; -#else - return -1; -#endif -} - -/* - * Function: _cleanup - * - * Purpose: - * Module cleanup function - * Parameters: - * None - * Returns: - * Always 0 - */ - static int -_cleanup(void) -{ -#if LINUX_VERSION_CODE > KERNEL_VERSION(3,17,0) - mutex_destroy(&(ptp_priv->ptp_lock)); - mutex_destroy(&(ptp_priv->ptp_pair_lock)); - bksync_ptp_remove(); - return 0; -#else - return -1; -#endif -} - -static gmodule_t _gmodule = { -name: MODULE_NAME, - major: MODULE_MAJOR, - init: _init, - cleanup: _cleanup, - pprint: _pprint, - ioctl: NULL, - open: NULL, - close: NULL, -}; - - gmodule_t* -gmodule_get(void) -{ - EXPORT_NO_SYMBOLS; - return &_gmodule; -} diff --git a/platform/broadcom/saibcm-modules/systems/linux/kernel/modules/knet-cb/psample-cb.c b/platform/broadcom/saibcm-modules/systems/linux/kernel/modules/knet-cb/psample-cb.c index e67f9191d45e..628ee1780c09 100644 --- a/platform/broadcom/saibcm-modules/systems/linux/kernel/modules/knet-cb/psample-cb.c +++ b/platform/broadcom/saibcm-modules/systems/linux/kernel/modules/knet-cb/psample-cb.c @@ -509,7 +509,7 @@ psample_filter_cb(uint8_t * pkt, int size, int dev_no, void *pkt_meta, /* setup skb to point to pkt */ memcpy(skb->data, pkt, meta.trunc_size); skb_put(skb, meta.trunc_size); - skb->len = meta.trunc_size; + skb->len = size; /* SONIC-55684 */ psample_pkt->skb = skb; spin_lock_irqsave(&g_psample_work.lock, flags); diff --git a/platform/broadcom/saibcm-modules/systems/linux/kernel/modules/psample/psample.c b/platform/broadcom/saibcm-modules/systems/linux/kernel/modules/psample/psample.c index 99317cbf30cc..46a84c7f7c4a 100644 --- a/platform/broadcom/saibcm-modules/systems/linux/kernel/modules/psample/psample.c +++ b/platform/broadcom/saibcm-modules/systems/linux/kernel/modules/psample/psample.c @@ -202,6 +202,7 @@ void psample_group_put(struct psample_group *group) } EXPORT_SYMBOL_GPL(psample_group_put); +#if IS_ENABLED(CONFIG_PSAMPLE) /* FIXUP:- Remove after GTS kernel is recompiled with change in CONFIG_PSAMPLE flag */ void psample_sample_packet(struct psample_group *group, struct sk_buff *skb, u32 trunc_size, int in_ifindex, int out_ifindex, u32 sample_rate) @@ -283,6 +284,7 @@ void psample_sample_packet(struct psample_group *group, struct sk_buff *skb, nlmsg_free(nl_skb); } EXPORT_SYMBOL_GPL(psample_sample_packet); +#endif static int __init psample_module_init(void) { diff --git a/platform/broadcom/saibcm-modules/systems/linux/kernel/modules/shared/ksal.c b/platform/broadcom/saibcm-modules/systems/linux/kernel/modules/shared/ksal.c index 2161b287f687..9c093e0eacdf 100644 --- a/platform/broadcom/saibcm-modules/systems/linux/kernel/modules/shared/ksal.c +++ b/platform/broadcom/saibcm-modules/systems/linux/kernel/modules/shared/ksal.c @@ -196,9 +196,15 @@ sal_time_usecs(void) do_gettimeofday(<v); return (ltv.tv_sec * SECOND_USEC + ltv.tv_usec); #else +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,19,0) /* ktime_to_us and ktime_get_real_ns return 64-bit integets, but this */ /* function is returning a 32-bit integer. This should be fine until 2038. */ return ktime_to_us(ktime_get_real_ns()); +#else + struct timeval ltv; + do_gettimeofday(<v); + return (ltv.tv_sec * SECOND_USEC + ltv.tv_usec); +#endif #endif } diff --git a/platform/broadcom/saibcm-modules/systems/linux/user/bmw-2_6/Makefile b/platform/broadcom/saibcm-modules/systems/linux/user/bmw-2_6/Makefile deleted file mode 100644 index 899c7b405374..000000000000 --- a/platform/broadcom/saibcm-modules/systems/linux/user/bmw-2_6/Makefile +++ /dev/null @@ -1,63 +0,0 @@ -# -# Copyright 2017 Broadcom -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License, version 2, as -# published by the Free Software Foundation (the "GPL"). -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License version 2 (GPLv2) for more details. -# -# You should have received a copy of the GNU General Public License -# version 2 (GPLv2) along with this source code. -# -# -*- Makefile -*- -# $Id: Makefile,v 1.4 Broadcom SDK $ -# $Copyright: (c) 2005 Broadcom Corp. -# All Rights Reserved.$ - -# -# This make job requires the following environment variables to be set: -# -# SDK - path to StrataXGS SDK root directory -# -# Optionally the following environment variables can be set to -# override the default build server configuration: -# -# PPC_TOOLS_DIR - path to build tools (if not in PATH already) -# PPC_CROSS_COMPILE - cross compile tools prefix -# LINUX_INCLUDE - path to Linux kernel include directory -# - -SDK :=$(shell if [ -n "$$SDK" ] ; then\ - echo $$SDK;\ - else\ - cd $(dir $(lastword $(MAKEFILE_LIST))); while /usr/bin/test ! -e RELEASE ; do \ - dir=`cd ../;pwd`; \ - if [ "$$dir" = "/" ] ; then \ - echo Cannot find SDK in $(lastword $(MAKEFILE_LIST)) 1>&2; \ - exit 1; \ - fi ; \ - cd $$dir; \ - done ; \ - pwd; \ - fi) - -ifeq ($(SDK),) -$(error Please run this in a tree) -endif - -export SDK - -override kernel_version=2_6 -platform=bmw-$(kernel_version) - -# Windriver linux version -#WRS_LINUX_VERSION=1.4 -#WRS_LINUX_VERSION=2.0 - -LINUX_MAKE_USER=1 -include ${SDK}/make/Make.linux - diff --git a/platform/broadcom/saibcm-modules/systems/linux/user/gto-2_6/Makefile b/platform/broadcom/saibcm-modules/systems/linux/user/gto-2_6/Makefile deleted file mode 100644 index c157f9ff35fc..000000000000 --- a/platform/broadcom/saibcm-modules/systems/linux/user/gto-2_6/Makefile +++ /dev/null @@ -1,84 +0,0 @@ -# -# Copyright 2017 Broadcom -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License, version 2, as -# published by the Free Software Foundation (the "GPL"). -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License version 2 (GPLv2) for more details. -# -# You should have received a copy of the GNU General Public License -# version 2 (GPLv2) along with this source code. -# -# -*- Makefile -*- -# $Id: Makefile,v 1.9 Broadcom SDK $ -# $Copyright: (c) 2007 Broadcom Corp. -# All Rights Reserved.$ - -# -# This make job requires the following environment variables to be set: -# -# SDK - path to StrataXGS SDK root directory -# -# Optionally the following environment variables can be set to -# override the default build server configuration: -# -# PPC_TOOLS_DIR - path to build tools (if not in PATH already) -# PPC_CROSS_COMPILE - cross compile tools prefix -# LINUX_INCLUDE - path to Linux kernel include directory -# - -SDK :=$(shell if [ -n "$$SDK" ] ; then\ - echo $$SDK;\ - else\ - cd $(dir $(lastword $(MAKEFILE_LIST))); while /usr/bin/test ! -e RELEASE ; do \ - dir=`cd ../;pwd`; \ - if [ "$$dir" = "/" ] ; then \ - echo Cannot find SDK in $(lastword $(MAKEFILE_LIST)) 1>&2; \ - exit 1; \ - fi ; \ - cd $$dir; \ - done ; \ - pwd; \ - fi) - -ifeq ($(SDK),) -$(error Please run this in a tree) -endif - -export SDK - -override kernel_version=2_6 -platform=gto-$(kernel_version) -LINUX_MAKE_USER=1 -export LINKER_RELAX=1 - -# Select the build environment -#BUILD_PLATFORM=ELDK -#BUILD_PLATFORM=WR_LINUX - -#Select the LINUX KERNEL VERSION -#KERN_VER = 2.6.21.7 -#KERN_VER = 2.6.24.4 -#KERN_VER = 2.6.25 - - -# Select the ELDK version -#ELDK_VERSION=4.1 -#ELDK_VERSION=4.0 - -#Select WRS Linux version -#WRS_LINUX_VERSION=2.0 -#WRS_LINUX_VERSION=3.0 - - -export KERN_VER -export ELDK_VERSION -export BUILD_PLATFORM -export WRS_LINUX_VERSION - -include ${SDK}/make/Make.linux - diff --git a/platform/broadcom/saibcm-modules/systems/linux/user/gto/Makefile b/platform/broadcom/saibcm-modules/systems/linux/user/gto/Makefile deleted file mode 100644 index fd98f6d2f963..000000000000 --- a/platform/broadcom/saibcm-modules/systems/linux/user/gto/Makefile +++ /dev/null @@ -1,60 +0,0 @@ -# -# Copyright 2017 Broadcom -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License, version 2, as -# published by the Free Software Foundation (the "GPL"). -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License version 2 (GPLv2) for more details. -# -# You should have received a copy of the GNU General Public License -# version 2 (GPLv2) along with this source code. -# -# -*- Makefile -*- -# $Id: Makefile,v 1.9 Broadcom SDK $ -# $Copyright: (c) 2015 Broadcom Corp. -# All Rights Reserved.$ - -# -# This make job requires the following environment variables to be set: -# -# SDK - path to StrataXGS SDK root directory -# -# Optionally the following environment variables can be set to -# override the default build server configuration: -# -# PPC_TOOLS_DIR - path to build tools (if not in PATH already) -# PPC_CROSS_COMPILE - cross compile tools prefix -# LINUX_INCLUDE - path to Linux kernel include directory -# - -SDK :=$(shell if [ -n "$$SDK" ] ; then\ - echo $$SDK;\ - else\ - cd $(dir $(lastword $(MAKEFILE_LIST))); while /usr/bin/test ! -e RELEASE ; do \ - dir=`cd ../;pwd`; \ - if [ "$$dir" = "/" ] ; then \ - echo Cannot find SDK in $(lastword $(MAKEFILE_LIST)) 1>&2; \ - exit 1; \ - fi ; \ - cd $$dir; \ - done ; \ - pwd; \ - fi) - -ifeq ($(SDK),) -$(error Please run this in a tree) -endif - -export SDK - -override kernel_version=4_4 -platform=gto -LINUX_MAKE_USER=1 -export LINKER_RELAX=1 - -include ${SDK}/make/Make.linux - diff --git a/platform/broadcom/saibcm-modules/systems/linux/user/jag-2_6/Makefile b/platform/broadcom/saibcm-modules/systems/linux/user/jag-2_6/Makefile deleted file mode 100644 index 26a7f520f2d2..000000000000 --- a/platform/broadcom/saibcm-modules/systems/linux/user/jag-2_6/Makefile +++ /dev/null @@ -1,79 +0,0 @@ -# -# Copyright 2017 Broadcom -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License, version 2, as -# published by the Free Software Foundation (the "GPL"). -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License version 2 (GPLv2) for more details. -# -# You should have received a copy of the GNU General Public License -# version 2 (GPLv2) along with this source code. -# -# -*- Makefile -*- -# $Id: Makefile,v 1.4 Broadcom SDK $ -# $Copyright: (c) 2005 Broadcom Corp. -# All Rights Reserved.$ - -# -# This make job requires the following environment variables to be set: -# -# SDK - path to StrataXGS SDK root directory -# -# Optionally the following environment variables can be set to -# override the default build server configuration: -# -# MIPS_TOOLS_DIR - path to build tools (if not in PATH already) -# MIPS_CROSS_COMPILE - cross compile tools prefix -# LINUX_INCLUDE - path to Linux kernel include directory -# - -SDK :=$(shell if [ -n "$$SDK" ] ; then\ - echo $$SDK;\ - else\ - cd $(dir $(lastword $(MAKEFILE_LIST))); while /usr/bin/test ! -e RELEASE ; do \ - dir=`cd ../;pwd`; \ - if [ "$$dir" = "/" ] ; then \ - echo Cannot find SDK in $(lastword $(MAKEFILE_LIST)) 1>&2; \ - exit 1; \ - fi ; \ - cd $$dir; \ - done ; \ - pwd; \ - fi) - -ifeq ($(SDK),) -$(error Please run this in a tree) -endif - -export SDK - -override kernel_version=2_6 -platform=jag-$(kernel_version) - -# Select the build environment -#BUILD_PLATFORM=ELDK -#BUILD_PLATFORM=WR_LINUX - -#Select the LINUX KERNEL VERSION -#KERN_VER = 2.6.21.7 - - -# Select the ELDK version -#ELDK_VERSION=4.1 - -# Windriver linux version -#WRS_LINUX_VERSION=1.4 -#WRS_LINUX_VERSION=2.0 - -export KERN_VER -export ELDK_VERSION -export BUILD_PLATFORM -export WRS_LINUX_VERSION - -LINUX_MAKE_USER=1 -include ${SDK}/make/Make.linux - diff --git a/platform/broadcom/saibcm-modules/systems/linux/user/nsx-2_6/Makefile b/platform/broadcom/saibcm-modules/systems/linux/user/nsx-2_6/Makefile deleted file mode 100644 index 881ec34c2d36..000000000000 --- a/platform/broadcom/saibcm-modules/systems/linux/user/nsx-2_6/Makefile +++ /dev/null @@ -1,58 +0,0 @@ -# -# Copyright 2017 Broadcom -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License, version 2, as -# published by the Free Software Foundation (the "GPL"). -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License version 2 (GPLv2) for more details. -# -# You should have received a copy of the GNU General Public License -# version 2 (GPLv2) along with this source code. -# -# -*- Makefile -*- -# $Id: Makefile,v 1.4 Broadcom SDK $ -# $Copyright: (c) 2005 Broadcom Corp. -# All Rights Reserved.$ - -# -# This make job requires the following environment variables to be set: -# -# SDK - path to StrataXGS SDK root directory -# -# Optionally the following environment variables can be set to -# override the default build server configuration: -# -# MIPS_TOOLS_DIR - path to build tools (if not in PATH already) -# MIPS_CROSS_COMPILE - cross compile tools prefix -# LINUX_INCLUDE - path to Linux kernel include directory -# - -SDK :=$(shell if [ -n "$$SDK" ] ; then\ - echo $$SDK;\ - else\ - cd $(dir $(lastword $(MAKEFILE_LIST))); while /usr/bin/test ! -e RELEASE ; do \ - dir=`cd ../;pwd`; \ - if [ "$$dir" = "/" ] ; then \ - echo Cannot find SDK in $(lastword $(MAKEFILE_LIST)) 1>&2; \ - exit 1; \ - fi ; \ - cd $$dir; \ - done ; \ - pwd; \ - fi) - -ifeq ($(SDK),) -$(error Please run this in a tree) -endif - -export SDK - -override kernel_version=2_6 -platform=nsx-$(kernel_version) -LINUX_MAKE_USER=1 -include ${SDK}/make/Make.linux - diff --git a/platform/broadcom/saibcm-modules/systems/linux/user/nsx64/Makefile b/platform/broadcom/saibcm-modules/systems/linux/user/nsx64/Makefile deleted file mode 100644 index 9e79d90fa992..000000000000 --- a/platform/broadcom/saibcm-modules/systems/linux/user/nsx64/Makefile +++ /dev/null @@ -1,57 +0,0 @@ -# -# Copyright 2017 Broadcom -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License, version 2, as -# published by the Free Software Foundation (the "GPL"). -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License version 2 (GPLv2) for more details. -# -# You should have received a copy of the GNU General Public License -# version 2 (GPLv2) along with this source code. -# -# -*- Makefile -*- -# $Id: Makefile,v 1.3 Broadcom SDK $ -# $Copyright: (c) 2005 Broadcom Corp. -# All Rights Reserved.$ - -# -# This make job requires the following environment variables to be set: -# -# SDK - path to StrataXGS SDK root directory -# -# Optionally the following environment variables can be set to -# override the default build server configuration: -# -# MIPS_TOOLS_DIR - path to build tools (if not in PATH already) -# MIPS_CROSS_COMPILE - cross compile tools prefix -# LINUX_INCLUDE - path to Linux kernel include directory -# - -SDK :=$(shell if [ -n "$$SDK" ] ; then\ - echo $$SDK;\ - else\ - cd $(dir $(lastword $(MAKEFILE_LIST))); while /usr/bin/test ! -e RELEASE ; do \ - dir=`cd ../;pwd`; \ - if [ "$$dir" = "/" ] ; then \ - echo Cannot find SDK in $(lastword $(MAKEFILE_LIST)) 1>&2; \ - exit 1; \ - fi ; \ - cd $$dir; \ - done ; \ - pwd; \ - fi) - -ifeq ($(SDK),) -$(error Please run this in a tree) -endif - -export SDK - -platform=nsx64 -LINUX_MAKE_USER=1 -include ${SDK}/make/Make.linux - diff --git a/platform/broadcom/saibcm-modules/systems/linux/user/nsx_wrl-2_6/Makefile b/platform/broadcom/saibcm-modules/systems/linux/user/nsx_wrl-2_6/Makefile deleted file mode 100644 index 4e86843cdc7c..000000000000 --- a/platform/broadcom/saibcm-modules/systems/linux/user/nsx_wrl-2_6/Makefile +++ /dev/null @@ -1,65 +0,0 @@ -# -# Copyright 2017 Broadcom -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License, version 2, as -# published by the Free Software Foundation (the "GPL"). -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License version 2 (GPLv2) for more details. -# -# You should have received a copy of the GNU General Public License -# version 2 (GPLv2) along with this source code. -# -# -*- Makefile -*- -# $Id: Makefile,v 1.3 Broadcom SDK $ -# $Copyright: (c) 2005 Broadcom Corp. -# All Rights Reserved.$ - -# -# This make job requires the following environment variables to be set: -# -# SDK - path to StrataXGS SDK root directory -# -# Optionally the following environment variables can be set to -# override the default build server configuration: -# -# MIPS_TOOLS_DIR - path to build tools (if not in PATH already) -# MIPS_CROSS_COMPILE - cross compile tools prefix -# LINUX_INCLUDE - path to Linux kernel include directory -# - -SDK :=$(shell if [ -n "$$SDK" ] ; then\ - echo $$SDK;\ - else\ - cd $(dir $(lastword $(MAKEFILE_LIST))); while /usr/bin/test ! -e RELEASE ; do \ - dir=`cd ../;pwd`; \ - if [ "$$dir" = "/" ] ; then \ - echo Cannot find SDK in $(lastword $(MAKEFILE_LIST)) 1>&2; \ - exit 1; \ - fi ; \ - cd $$dir; \ - done ; \ - pwd; \ - fi) - -ifeq ($(SDK),) -$(error Please run this in a tree) -endif - -export SDK - -override kernel_version=2_6 -platform=nsx_wrl-$(kernel_version) - -# Windriver linux version -#WRS_LINUX_VERSION=1.4 -#WRS_LINUX_VERSION=2.0 - -export WRS_LINUX_VERSION - -LINUX_MAKE_USER=1 -include ${SDK}/make/Make.linux - diff --git a/platform/broadcom/saibcm-modules/systems/linux/user/raptor-2_6/Makefile b/platform/broadcom/saibcm-modules/systems/linux/user/raptor-2_6/Makefile deleted file mode 100644 index 10ab1a1cc259..000000000000 --- a/platform/broadcom/saibcm-modules/systems/linux/user/raptor-2_6/Makefile +++ /dev/null @@ -1,79 +0,0 @@ -# -# Copyright 2017 Broadcom -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License, version 2, as -# published by the Free Software Foundation (the "GPL"). -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License version 2 (GPLv2) for more details. -# -# You should have received a copy of the GNU General Public License -# version 2 (GPLv2) along with this source code. -# -# -*- Makefile -*- -# $Id: Makefile,v 1.5 Broadcom SDK $ -# $Copyright: (c) 2007 Broadcom Corp. -# All Rights Reserved.$ - -# -# This make job requires the following environment variables to be set: -# -# SDK - path to StrataXGS SDK root directory -# -# Optionally the following environment variables can be set to -# override the default build server configuration: -# -# MIPS_TOOLS_DIR - path to build tools (if not in PATH already) -# MIPS_CROSS_COMPILE - cross compile tools prefix -# LINUX_INCLUDE - path to Linux kernel include directory -# - -SDK :=$(shell if [ -n "$$SDK" ] ; then\ - echo $$SDK;\ - else\ - cd $(dir $(lastword $(MAKEFILE_LIST))); while /usr/bin/test ! -e RELEASE ; do \ - dir=`cd ../;pwd`; \ - if [ "$$dir" = "/" ] ; then \ - echo Cannot find SDK in $(lastword $(MAKEFILE_LIST)) 1>&2; \ - exit 1; \ - fi ; \ - cd $$dir; \ - done ; \ - pwd; \ - fi) - -ifeq ($(SDK),) -$(error Please run this in a tree) -endif - -export SDK - -override kernel_version=2_6 -platform=raptor-$(kernel_version) - -# Select the build environment -#BUILD_PLATFORM=ELDK -#BUILD_PLATFORM=WR_LINUX - -#Select the LINUX KERNEL VERSION -#KERN_VER = 2.6.21.7 - - -# Select the ELDK version -#ELDK_VERSION=4.1 - -# Windriver linux version -#WRS_LINUX_VERSION=1.4 -#WRS_LINUX_VERSION=2.0 - -export KERN_VER -export ELDK_VERSION -export BUILD_PLATFORM -export WRS_LINUX_VERSION - -LINUX_MAKE_USER=1 -include ${SDK}/make/Make.linux - diff --git a/platform/broadcom/saibcm-modules/systems/linux/user/raptor/Makefile b/platform/broadcom/saibcm-modules/systems/linux/user/raptor/Makefile deleted file mode 100644 index df8800a1a786..000000000000 --- a/platform/broadcom/saibcm-modules/systems/linux/user/raptor/Makefile +++ /dev/null @@ -1,58 +0,0 @@ -# -# Copyright 2017 Broadcom -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License, version 2, as -# published by the Free Software Foundation (the "GPL"). -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License version 2 (GPLv2) for more details. -# -# You should have received a copy of the GNU General Public License -# version 2 (GPLv2) along with this source code. -# -# -*- Makefile -*- -# $Id: Makefile,v 1.1 Broadcom SDK $ -# $Copyright: (c) 2005 Broadcom Corp. -# All Rights Reserved.$ - -# -# This make job requires the following environment variables to be set: -# -# SDK - path to StrataXGS SDK root directory -# -# Optionally the following environment variables can be set to -# override the default build server configuration: -# -# MIPS_TOOLS_DIR - path to build tools (if not in PATH already) -# MIPS_CROSS_COMPILE - cross compile tools prefix -# LINUX_INCLUDE - path to Linux kernel include directory -# - -SDK :=$(shell if [ -n "$$SDK" ] ; then\ - echo $$SDK;\ - else\ - cd $(dir $(lastword $(MAKEFILE_LIST))); while /usr/bin/test ! -e RELEASE ; do \ - dir=`cd ../;pwd`; \ - if [ "$$dir" = "/" ] ; then \ - echo Cannot find SDK in $(lastword $(MAKEFILE_LIST)) 1>&2; \ - exit 1; \ - fi ; \ - cd $$dir; \ - done ; \ - pwd; \ - fi) - -ifeq ($(SDK),) -$(error Please run this in a tree) -endif - -export SDK - -platform=raptor -LINUX_MAKE_USER=1 -CFGFLAGS += -DBCM_ICS -include ${SDK}/make/Make.linux - diff --git a/platform/mellanox/mlnx-sai.mk b/platform/mellanox/mlnx-sai.mk index d49a832aff9e..69279d0844d5 100644 --- a/platform/mellanox/mlnx-sai.mk +++ b/platform/mellanox/mlnx-sai.mk @@ -1,6 +1,6 @@ # Mellanox SAI -MLNX_SAI_VERSION = SAIRel1.21.1.1 +MLNX_SAI_VERSION = SAIRel1.21.1.0 export MLNX_SAI_VERSION diff --git a/platform/mellanox/mlnx-sai/SAI-Implementation b/platform/mellanox/mlnx-sai/SAI-Implementation index a01442acd95e..d6eb22a12cc0 160000 --- a/platform/mellanox/mlnx-sai/SAI-Implementation +++ b/platform/mellanox/mlnx-sai/SAI-Implementation @@ -1 +1 @@ -Subproject commit a01442acd95e3a4f78a8e4b04b227fcbe905771e +Subproject commit d6eb22a12cc0f01e84a71d367f7c4ebe19f58a40 diff --git a/slave.mk b/slave.mk index 1a008640b4b9..72049cebf0bf 100644 --- a/slave.mk +++ b/slave.mk @@ -1370,7 +1370,7 @@ jessie : $$(addprefix $(TARGET_PATH)/,$$(JESSIE_DOCKER_IMAGES)) \ $$(addprefix $(TARGET_PATH)/,$$(JESSIE_DBG_DOCKER_IMAGES)) ############################################################################### -## Standard targets +## Standard targets ############################################################################### .PHONY : $(SONIC_CLEAN_DEBS) $(SONIC_CLEAN_FILES) $(SONIC_CLEAN_TARGETS) $(SONIC_CLEAN_STDEB_DEBS) $(SONIC_CLEAN_WHEELS) $(SONIC_PHONY_TARGETS) clean distclean configure diff --git a/src/sonic-sairedis b/src/sonic-sairedis index c7cbfe80dfcb..f67bcddf15d3 160000 --- a/src/sonic-sairedis +++ b/src/sonic-sairedis @@ -1 +1 @@ -Subproject commit c7cbfe80dfcb61deef483f6c99b1c21763134ab1 +Subproject commit f67bcddf15d315a01ac4f3fafe14e9db2231c195 From 05c6488029eea267dbca45fba32e5b0f0a987b97 Mon Sep 17 00:00:00 2001 From: Saikrishna Arcot Date: Thu, 5 May 2022 22:48:58 -0700 Subject: [PATCH 155/251] Fix setting the HTTPS proxy (#10739) Some places were not correctly setting the HTTPS proxy, and were only setting the HTTP proxy. This was fine until Docker 20.10.10, which then started using `https_proxy` for HTTPS connections. Signed-off-by: Saikrishna Arcot --- slave.mk | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/slave.mk b/slave.mk index 72049cebf0bf..4858e290cd3a 100644 --- a/slave.mk +++ b/slave.mk @@ -791,8 +791,9 @@ $(SONIC_INSTALL_WHEELS) : $(PYTHON_WHEELS_PATH)/%-install : .platform $$(addsuff # start docker daemon docker-start : - @sudo sed -i '/http_proxy/d' /etc/default/docker + @sudo sed -i -e '/http_proxy/d' -e '/https_proxy/d' /etc/default/docker @sudo bash -c "{ echo \"export http_proxy=$$http_proxy\"; \ + echo \"export https_proxy=$$https_proxy\"; \ echo \"export no_proxy=$$no_proxy\"; } >> /etc/default/docker" @test x$(SONIC_CONFIG_USE_NATIVE_DOCKERD_FOR_BUILD) != x"y" && sudo service docker status &> /dev/null || ( sudo service docker start &> /dev/null && ./scripts/wait_for_docker.sh 60 ) @@ -979,7 +980,7 @@ $(addprefix $(TARGET_PATH)/, $(DOCKER_DBG_IMAGES)) : $(TARGET_PATH)/%-$(DBG_IMAG docker build \ $(if $($*.gz_DBG_DEPENDS), --squash --no-cache, --no-cache) \ --build-arg http_proxy=$(HTTP_PROXY) \ - --build-arg http_proxy=$(HTTP_PROXY) \ + --build-arg https_proxy=$(HTTPS_PROXY) \ --build-arg no_proxy=$(NO_PROXY) \ --build-arg docker_container_name=$($*.gz_CONTAINER_NAME) \ --label com.azure.sonic.manifest="$$(cat $($*.gz_PATH)/manifest.json)" \ From 7104664c0522f77496d1e53ac3dfff6ea81b56c3 Mon Sep 17 00:00:00 2001 From: Saikrishna Arcot Date: Fri, 6 May 2022 09:56:08 -0700 Subject: [PATCH 156/251] Change source path for sonic-pcied to use Python 3 variable (#10676) Python 2 support for sonic-pcied was removed, and the Python 2 version of the variable no longer exists. Signed-off-by: Saikrishna Arcot --- rules/sonic-pcied.dep | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rules/sonic-pcied.dep b/rules/sonic-pcied.dep index 05cd1fe5cf42..60b1d85a5617 100644 --- a/rules/sonic-pcied.dep +++ b/rules/sonic-pcied.dep @@ -1,4 +1,4 @@ -SPATH:= $($(SONIC_PCIED_PY2)_SRC_PATH) +SPATH:= $($(SONIC_PCIED_PY3)_SRC_PATH) DEP_FILES:= $(SONIC_COMMON_FILES_LIST) rules/sonic-pcied.mk rules/sonic-pcied.dep DEP_FILES+= $(SONIC_COMMON_BASE_FILES_LIST) SMDEP_FILES:= $(addprefix $(SPATH)/,$(shell cd $(SPATH) && git ls-files)) From 66c96eaf4c7c8d8649ca7d00db58b9b998048d09 Mon Sep 17 00:00:00 2001 From: SuvarnaMeenakshi <50386592+SuvarnaMeenakshi@users.noreply.github.com> Date: Fri, 6 May 2022 11:12:56 -0700 Subject: [PATCH 157/251] Revert "[portconfig]: Remove try block for db config initialization (#10581)" (#10756) This reverts commit 5cd6bc4ce2a32bd7b1b71dbcc85e7390799da7d0. --- src/sonic-config-engine/portconfig.py | 7 ++++++- src/sonic-config-engine/sonic-cfggen | 8 +------- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/sonic-config-engine/portconfig.py b/src/sonic-config-engine/portconfig.py index ea9985a3beb0..0c056d1cdab7 100644 --- a/src/sonic-config-engine/portconfig.py +++ b/src/sonic-config-engine/portconfig.py @@ -72,7 +72,12 @@ def db_connect_configdb(namespace=None): """ Connect to configdb """ - config_db = swsscommon.ConfigDBConnector(use_unix_socket_path=True, namespace=namespace) + try: + if namespace is not None: + swsscommon.SonicDBConfig.load_sonic_global_db_config(namespace=namespace) + config_db = swsscommon.ConfigDBConnector(use_unix_socket_path=True, namespace=namespace) + except Exception as e: + return None if config_db is None: return None try: diff --git a/src/sonic-config-engine/sonic-cfggen b/src/sonic-config-engine/sonic-cfggen index 3f0e047f76fa..bf93ad849fcb 100755 --- a/src/sonic-config-engine/sonic-cfggen +++ b/src/sonic-config-engine/sonic-cfggen @@ -32,7 +32,7 @@ from functools import partial from minigraph import minigraph_encoder, parse_xml, parse_device_desc_xml, parse_asic_sub_role, parse_asic_switch_type from portconfig import get_port_config, get_breakout_mode from redis_bcc import RedisBytecodeCache -from sonic_py_common.multi_asic import get_asic_id_from_name, get_asic_device_id, is_multi_asic +from sonic_py_common.multi_asic import get_asic_id_from_name, get_asic_device_id from sonic_py_common import device_info from swsscommon.swsscommon import SonicV2Connector, ConfigDBConnector, SonicDBConfig, ConfigDBPipeConnector @@ -296,12 +296,6 @@ def main(): 'localhost': {'namespace_id': namespace_id} } }) - # load db config - if not SonicDBConfig.isInit(): - if is_multi_asic(): - SonicDBConfig.load_sonic_global_db_config(namespace=asic_name) - else: - SonicDBConfig.load_sonic_db_config() if hwsku is not None: hardware_data = {'DEVICE_METADATA': {'localhost': { 'hwsku': hwsku From 25357d39eddc424d8922216707c2ad21c22f529a Mon Sep 17 00:00:00 2001 From: arlakshm <55814491+arlakshm@users.noreply.github.com> Date: Fri, 6 May 2022 13:23:20 -0700 Subject: [PATCH 158/251] [sonic-swss-common] submodule update (#10747) Signed-off-by: Arvindsrinivasan Lakshmi Narasimhan Why I did it submodule update for the following commits 7a203b1 [chassis] Add new tables in counter db for Voq counter support. (#530) 5effea3 add new table schema for bgp profile (#608) 130dca5 [ci] Update azure pipeline branch variable reference. 708ed39 [ci] Parameterize pipeline and improve azure pipeline (#599) 9c08456 Added new P4RT tables. (#604) --- src/sonic-swss-common | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-swss-common b/src/sonic-swss-common index c34a4e1cc733..7a203b1b1fde 160000 --- a/src/sonic-swss-common +++ b/src/sonic-swss-common @@ -1 +1 @@ -Subproject commit c34a4e1cc7332fd7368239206a097478fa1dcc90 +Subproject commit 7a203b1b1fdefcd588ec7a72c0db95b32e50f3a7 From 322363b9abab7710e59aa38892fd47e4ae7dc044 Mon Sep 17 00:00:00 2001 From: Jing Zhang Date: Fri, 6 May 2022 13:42:23 -0700 Subject: [PATCH 159/251] [master][sonic-linkmgrd] submodule updates (#10763) [master][sonic-linkmgrd] submodule updates df51322 Longxiang Lyu Fri May 6 10:01:46 2022 +0800 Add `ActiveActiveStateMachine` implementation (#64) e721ceb Jing Zhang Wed May 4 10:07:14 2022 -0700 Add doc for default route related changes (#63) 7bb06fb Jing Zhang Tue May 3 09:48:28 2022 -0700 Add Cli support to enable or disable default route related feature (#68) e4b02cb Jing Zhang Mon May 2 13:27:54 2022 -0700 Reset WaitActiveUp count before switching to active (#70) 212d960 Jing Zhang Wed Apr 27 10:35:05 2022 -0700 lower log level to warning (#69) 48abc9e Jing Zhang Thu Apr 14 16:50:04 2022 -0700 Add support to enable switchover time measurement (with link prober interval decreased to 10ms) feature (#61) c4858a6 Jing Zhang Thu Apr 14 11:27:55 2022 -0700 Avoid proactively switching to `active` if default route is missing (#62) sign-off: Jing Zhang zhangjing@microsoft.com --- dockers/docker-mux/supervisord.conf | 2 +- src/linkmgrd | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dockers/docker-mux/supervisord.conf b/dockers/docker-mux/supervisord.conf index 87903f28e155..33eb650e85d4 100644 --- a/dockers/docker-mux/supervisord.conf +++ b/dockers/docker-mux/supervisord.conf @@ -28,7 +28,7 @@ stderr_logfile=syslog dependent_startup=true [program:linkmgrd] -command=nice -n -20 /usr/sbin/linkmgrd -v warning +command=nice -n -20 /usr/sbin/linkmgrd -v warning -d priority=2 autostart=false autorestart=false diff --git a/src/linkmgrd b/src/linkmgrd index 41f5fb9d44f2..df5132254e10 160000 --- a/src/linkmgrd +++ b/src/linkmgrd @@ -1 +1 @@ -Subproject commit 41f5fb9d44f2fd789dea372f2b647d40ec71ed75 +Subproject commit df5132254e104343d099da3b95eaf1336ac485cd From 45c5ca089c287e6c5b5016f790cd3f95a269e35a Mon Sep 17 00:00:00 2001 From: Qi Luo Date: Fri, 6 May 2022 14:22:23 -0700 Subject: [PATCH 160/251] Fix: No explicit reading ConfigDB in get_asic_conf_file_path() (#10723) #### Why I did it This function is critical for is_multi_asic() and SonicDBConfig initializing. No explicit reading ConfigDB. Otherwise it will implicitly trigger SonicDBConfig initializing. #### How I did it 1. No explicit reading ConfigDB in get_asic_conf_file_path() 2. Collect asic_conf_path_candidates lazily to prevent any unnecessary side effect and improve the performance --- .../sonic_py_common/device_info.py | 66 ++++++++++++------- .../sonic_py_common/multi_asic.py | 33 +--------- 2 files changed, 43 insertions(+), 56 deletions(-) diff --git a/src/sonic-py-common/sonic_py_common/device_info.py b/src/sonic-py-common/sonic_py_common/device_info.py index e5220e86e2ad..d57e08b3b5cb 100644 --- a/src/sonic-py-common/sonic_py_common/device_info.py +++ b/src/sonic-py-common/sonic_py_common/device_info.py @@ -40,11 +40,12 @@ CHASSIS_INFO_MODEL_FIELD = 'model' CHASSIS_INFO_REV_FIELD = 'revision' - -def get_localhost_info(field): +def get_localhost_info(field, config_db=None): try: - config_db = ConfigDBConnector() - config_db.connect() + # TODO: enforce caller to provide config_db explicitly and remove its default value + if not config_db: + config_db = ConfigDBConnector() + config_db.connect() metadata = config_db.get_table('DEVICE_METADATA') @@ -81,11 +82,16 @@ def get_machine_info(): return machine_vars - -def get_platform(): +def get_platform(**kwargs): """ Retrieve the device's platform identifier + Args: + config_db: a connected ConfigDBConector object. + If explicit None provided, this function will not read ConfigDB. This is useful before SonicDBConfig initializing. + If not provided, this function may implicitly ready ConfigDB. + Otherwise, this function will use it to read ConfigDB + Returns: A string containing the device's platform identifier """ @@ -111,8 +117,13 @@ def get_platform(): # container in SONiC, where the /host directory is not mounted. In this # case the value should already be populated in Config DB so we finally # try reading it from there. - - return get_localhost_info('platform') + if 'config_db' in kwargs: + config_db = kwargs['config_db'] + if config_db is None: + return None + else: + config_db = None + return get_localhost_info('platform', config_db=config_db) def get_hwsku(): @@ -144,21 +155,22 @@ def get_platform_and_hwsku(): def get_asic_conf_file_path(): """ - Retrieves the path to the ASIC conguration file on the device + Retrieves the path to the ASIC configuration file on the device Returns: - A string containing the path to the ASIC conguration file on success, + A string containing the path to the ASIC configuration file on success, None on failure """ - asic_conf_path_candidates = [] - - asic_conf_path_candidates.append(os.path.join(CONTAINER_PLATFORM_PATH, ASIC_CONF_FILENAME)) + def asic_conf_path_candidates(): + yield os.path.join(CONTAINER_PLATFORM_PATH, ASIC_CONF_FILENAME) - platform = get_platform() - if platform: - asic_conf_path_candidates.append(os.path.join(HOST_DEVICE_PATH, platform, ASIC_CONF_FILENAME)) + # Note: this function is critical for is_multi_asic() and SonicDBConfig initializing + # No explicit reading ConfigDB + platform = get_platform(config_db=None) + if platform: + yield os.path.join(HOST_DEVICE_PATH, platform, ASIC_CONF_FILENAME) - for asic_conf_file_path in asic_conf_path_candidates: + for asic_conf_file_path in asic_conf_path_candidates(): if os.path.isfile(asic_conf_file_path): return asic_conf_file_path @@ -167,10 +179,10 @@ def get_asic_conf_file_path(): def get_platform_env_conf_file_path(): """ - Retrieves the path to the PLATFORM ENV conguration file on the device + Retrieves the path to the PLATFORM ENV configuration file on the device Returns: - A string containing the path to the PLATFORM ENV conguration file on success, + A string containing the path to the PLATFORM ENV configuration file on success, None on failure """ platform_env_conf_path_candidates = [] @@ -339,7 +351,7 @@ def get_sonic_version_file(): # Get hardware information -def get_platform_info(): +def get_platform_info(config_db=None): """ This function is used to get the HW info helper function """ @@ -356,8 +368,10 @@ def get_platform_info(): hw_info_dict['asic_count'] = get_num_asics() try: - config_db = ConfigDBConnector() - config_db.connect() + # TODO: enforce caller to provide config_db explicitly and remove its default value + if not config_db: + config_db = ConfigDBConnector() + config_db.connect() metadata = config_db.get_table('DEVICE_METADATA')["localhost"] switch_type = metadata.get('switch_type') @@ -462,7 +476,7 @@ def get_namespaces(): return natsorted(ns_list) -def get_all_namespaces(): +def get_all_namespaces(config_db=None): """ In case of Multi-Asic platform, Each ASIC will have a linux network namespace created. So we loop through the databases in different namespaces and depending on the sub_role @@ -476,8 +490,10 @@ def get_all_namespaces(): if is_multi_npu(): for npu in range(num_npus): namespace = "{}{}".format(NPU_NAME_PREFIX, npu) - config_db = ConfigDBConnector(use_unix_socket_path=True, namespace=namespace) - config_db.connect() + # TODO: enforce caller to provide config_db explicitly and remove its default value + if not config_db: + config_db = ConfigDBConnector(use_unix_socket_path=True, namespace=namespace) + config_db.connect() metadata = config_db.get_table('DEVICE_METADATA') if metadata['localhost']['sub_role'] == FRONTEND_ASIC_SUB_ROLE: diff --git a/src/sonic-py-common/sonic_py_common/multi_asic.py b/src/sonic-py-common/sonic_py_common/multi_asic.py index 662c01800e35..8ba409165f8b 100644 --- a/src/sonic-py-common/sonic_py_common/multi_asic.py +++ b/src/sonic-py-common/sonic_py_common/multi_asic.py @@ -5,11 +5,8 @@ from natsort import natsorted from swsscommon import swsscommon -from .device_info import CONTAINER_PLATFORM_PATH -from .device_info import HOST_DEVICE_PATH -from .device_info import get_platform -from .device_info import is_supervisor -from .device_info import is_chassis +from .device_info import get_asic_conf_file_path +from .device_info import is_supervisor, is_chassis ASIC_NAME_PREFIX = 'asic' NAMESPACE_PATH_GLOB = '/run/netns/*' @@ -78,32 +75,6 @@ def connect_to_all_dbs_for_ns(namespace=DEFAULT_NAMESPACE): db.connect(db_id) return db - -def get_asic_conf_file_path(): - """ - Retrieves the path to the ASIC conguration file on the device - - Returns: - A string containing the path to the ASIC conguration file on success, - None on failure - """ - asic_conf_path_candidates = [] - - asic_conf_path_candidates.append(os.path.join(CONTAINER_PLATFORM_PATH, - ASIC_CONF_FILENAME)) - - platform = get_platform() - if platform: - asic_conf_path_candidates.append(os.path.join( - HOST_DEVICE_PATH, platform, ASIC_CONF_FILENAME)) - - for asic_conf_file_path in asic_conf_path_candidates: - if os.path.isfile(asic_conf_file_path): - return asic_conf_file_path - - return None - - def get_num_asics(): """ Retrieves the num of asics present in the multi ASIC platform From 7e190c783a73b8c264991a6276f26c2a6288a80d Mon Sep 17 00:00:00 2001 From: "Robert J. Halstead" Date: Fri, 6 May 2022 15:35:20 -0700 Subject: [PATCH 161/251] [submodule] Advance sonic-p4rt/sonic-pins pointer (#10566) #### Why I did it To pick up new commits: * 60d2467 Add depends to p4rt debian package #### How I did it update sonic-p4rt/sonic-pins submodule pointer #### How to verify it should be able to build with p4rt enabled. --- src/sonic-p4rt/sonic-pins | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-p4rt/sonic-pins b/src/sonic-p4rt/sonic-pins index 36322d349779..4168fdce1c11 160000 --- a/src/sonic-p4rt/sonic-pins +++ b/src/sonic-p4rt/sonic-pins @@ -1 +1 @@ -Subproject commit 36322d349779f99e30fc52c26fee60945b0eb5e8 +Subproject commit 4168fdce1c1131b923a02b8fffa6089a17f14a11 From d5a182f42e4a33798e907ee5ec7e146d4c4173d3 Mon Sep 17 00:00:00 2001 From: Shilong Liu Date: Sat, 7 May 2022 11:28:25 +0800 Subject: [PATCH 162/251] [build] Add dependencies for sonic-config-engine to block bad PR. (#10770) Add dependencies device/* --- rules/sonic-config.dep | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rules/sonic-config.dep b/rules/sonic-config.dep index 9e6d1e929341..65aabe74d76f 100644 --- a/rules/sonic-config.dep +++ b/rules/sonic-config.dep @@ -4,7 +4,7 @@ SPATH := $($(SONIC_CONFIG_ENGINE_PY3)_SRC_PATH) DEP_FILES := $(SONIC_COMMON_FILES_LIST) rules/sonic-config.mk rules/sonic-config.dep DEP_FILES += $(SONIC_COMMON_BASE_FILES_LIST) DEP_FILES += $(shell git ls-files $(SPATH)) -DEP_FILES += files/image_config/interfaces/interfaces.j2 dockers/docker-orchagent/ports.json.j2 dockers/docker-dhcp-relay/wait_for_intf.sh.j2 dockers/docker-dhcp-relay/docker-dhcp-relay.supervisord.conf.j2 dockers/docker-lldp/lldpd.conf.j2 dockers/docker-orchagent/ipinip.json.j2 $(wildcard device/arista/x86_64-arista_7050_qx32s/Arista-7050-QX-32S/* device/dell/x86_64-dell_s6100_c2538-r0/Force10-S6100/*) files/build_templates/qos_config.j2 dockers/docker-orchagent/switch.json.j2 dockers/docker-orchagent/vxlan.json.j2 files/image_config/constants/constants.yml +DEP_FILES += files/image_config/interfaces/interfaces.j2 dockers/docker-orchagent/ports.json.j2 dockers/docker-dhcp-relay/wait_for_intf.sh.j2 dockers/docker-dhcp-relay/docker-dhcp-relay.supervisord.conf.j2 dockers/docker-lldp/lldpd.conf.j2 dockers/docker-orchagent/ipinip.json.j2 $(shell find device -type f) files/build_templates/qos_config.j2 dockers/docker-orchagent/switch.json.j2 dockers/docker-orchagent/vxlan.json.j2 files/image_config/constants/constants.yml ifeq ($(ENABLE_PY2_MODULES), y) $(SONIC_CONFIG_ENGINE_PY2)_CACHE_MODE := GIT_CONTENT_SHA From 71a515e14b2edc67315e126e00ea5f90a2be3149 Mon Sep 17 00:00:00 2001 From: Ze Gan Date: Sat, 7 May 2022 17:14:36 +0800 Subject: [PATCH 163/251] [iproute2]: Fix format error of SSCI (#10767) Signed-off-by: Ze Gan #### Why I did it The SSCI is wrong in the output of MACsec so that the virtual SAI cannot parse the output corretly. The wrong output: ``` 142: macsec_eth1: protect on validate strict sc off sa off encrypt on send_sci on end_station off scb off replay off cipher suite: GCM-AES-XPN-256, using ICV length 16 TXSC: 5254008f4f1c0001 on SA 0 0: PN 103, state on, key 12cbc4b64e26c9a1ba14d810da20d16e SSCI 33554432, RXSC: 525400edac5b0001, state on 0: PN 107, state on, key 12cbc4b64e26c9a1ba14d810da20d16e offload: off ``` Expected ``` 142: macsec_eth1: protect on validate strict sc off sa off encrypt on send_sci on end_station off scb off replay off cipher suite: GCM-AES-XPN-256, using ICV length 16 TXSC: 5254008f4f1c0001 on SA 0 0: PN 252, state on, SSCI 33554432, key 12cbc4b64e26c9a1ba14d810da20d16e RXSC: 525400edac5b0001, state on 0: PN 264, state on, key 12cbc4b64e26c9a1ba14d810da20d16e ``` #### How I did it Move SSCI before the key so that SSCI will not be the front of SC information. --- src/iproute2/patch/0001-patch-macsec-xpn-support.patch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/iproute2/patch/0001-patch-macsec-xpn-support.patch b/src/iproute2/patch/0001-patch-macsec-xpn-support.patch index c55daa3fd4c6..33e7e6a7dd94 100644 --- a/src/iproute2/patch/0001-patch-macsec-xpn-support.patch +++ b/src/iproute2/patch/0001-patch-macsec-xpn-support.patch @@ -182,11 +182,11 @@ index 18289ecd..1df19bf1 100644 print_bool(PRINT_JSON, "active", NULL, state); print_string(PRINT_FP, NULL, " state %s,", state ? "on" : "off"); - print_key(sa_attr[MACSEC_SA_ATTR_KEYID]); + if (sa_attr[MACSEC_SA_ATTR_SSCI]) { + print_uint(PRINT_ANY, "ssci", " SSCI %u,", + rta_getattr_u32(sa_attr[MACSEC_SA_ATTR_SSCI])); + } + print_key(sa_attr[MACSEC_SA_ATTR_KEYID]); print_txsa_stats(prefix, sa_attr[MACSEC_SA_ATTR_STATS]); close_json_object(); From 0e30ffe4da977e5e2966f02f385911e487061d64 Mon Sep 17 00:00:00 2001 From: Shilong Liu Date: Mon, 9 May 2022 16:43:21 +0800 Subject: [PATCH 164/251] [ci] Support multi tags when pushing docker image (#10771) --- push_docker.sh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/push_docker.sh b/push_docker.sh index 3e2da08d0b83..131494be2985 100755 --- a/push_docker.sh +++ b/push_docker.sh @@ -54,9 +54,10 @@ docker login -u ${REGISTRY_USERNAME} -p "${REGISTRY_PASSWD}" ${REGISTRY_SERVER_W docker_image_name=$(basename ${DOCKER_IMAGE_FILE} | cut -d. -f1) remote_image_name=${REGISTRY_SERVER_WITH_PORT}/${docker_image_name} -[ -z "${DOCKER_IMAGE_TAG}" ] || { - push_it ${docker_image_name} ${remote_image_name}:${DOCKER_IMAGE_TAG} -} +for tag in ${DOCKER_IMAGE_TAG} +do + push_it ${docker_image_name} ${remote_image_name}:$tag +done if [ -n "${sonic_version}" ] && [ -n "${sonic_platform}" ] then From 15cf9b0d70b3d839a40a06cec6b6fc10124017ae Mon Sep 17 00:00:00 2001 From: xumia <59720581+xumia@users.noreply.github.com> Date: Mon, 9 May 2022 23:26:09 +0800 Subject: [PATCH 165/251] Reduce image size for lazy installation packages (#10775) Why I did it The image size is too large, when there are multiple lazy packages and multiple platforms. It is not necessary to keep the lazy installation packages in multiple copies. For cisco image, the image size will reduce from 3.5G to 1.7G. How I did it Use symbol links to only keep one package for each of the lazy package. Make a new folder fsroot/platform/common Copy the lazy packages into the folder. When using a package in each of the platform, such as x86_64-grub, x86_64-8800_rp-r0, x86_64-8201_on-r0, etc, only make a symbol link to the package in the common folder. --- build_debian.sh | 2 +- files/build_templates/sonic_debian_extension.j2 | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/build_debian.sh b/build_debian.sh index b8216c629b8d..d99ba9d877ad 100755 --- a/build_debian.sh +++ b/build_debian.sh @@ -643,5 +643,5 @@ fi pushd $FILESYSTEM_ROOT && sudo tar czf $OLDPWD/$FILESYSTEM_DOCKERFS -C ${DOCKERFS_PATH}var/lib/docker .; popd ## Compress together with /boot, /var/lib/docker and $PLATFORM_DIR as an installer payload zip file -pushd $FILESYSTEM_ROOT && sudo zip $OLDPWD/$ONIE_INSTALLER_PAYLOAD -r boot/ $PLATFORM_DIR/; popd +pushd $FILESYSTEM_ROOT && sudo zip --symlinks $OLDPWD/$ONIE_INSTALLER_PAYLOAD -r boot/ $PLATFORM_DIR/; popd sudo zip -g -n .squashfs:.gz $ONIE_INSTALLER_PAYLOAD $FILESYSTEM_SQUASHFS $FILESYSTEM_DOCKERFS diff --git a/files/build_templates/sonic_debian_extension.j2 b/files/build_templates/sonic_debian_extension.j2 index 419ddf139100..aebd6b2fcd0d 100644 --- a/files/build_templates/sonic_debian_extension.j2 +++ b/files/build_templates/sonic_debian_extension.j2 @@ -610,7 +610,9 @@ sudo LANG=C chroot $FILESYSTEM_ROOT depmod -a {{kversion}} sudo dpkg --root=$FILESYSTEM_ROOT -i {{deb}} || sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install -f --download-only sudo mkdir -p $FILESYSTEM_ROOT/$PLATFORM_DIR/{{dev}} -sudo cp {{ deb }} $FILESYSTEM_ROOT/$PLATFORM_DIR/{{dev}}/ +sudo mkdir -p $FILESYSTEM_ROOT/$PLATFORM_DIR/common +sudo cp {{ deb }} $FILESYSTEM_ROOT/$PLATFORM_DIR/common/ +sudo ln -sf "../common/{{ debfilename }}" "$FILESYSTEM_ROOT/$PLATFORM_DIR/{{dev}}/{{ debfilename }}" for f in $(find $FILESYSTEM_ROOT/var/cache/apt/archives -name "*.deb"); do sudo mv $f $FILESYSTEM_ROOT/$PLATFORM_DIR/{{dev}}/ done From b86499ccb980a17295a0eabd5dd63dcecd1edf2c Mon Sep 17 00:00:00 2001 From: jostar-yang Date: Tue, 10 May 2022 01:47:45 +0800 Subject: [PATCH 166/251] [PDDF] Rename temp for as7816/7326/7726 (#10609) * [PDDF] Rename temp for 7816/7326/7726 Signed-off-by: Jostar Yang * Change naming to pddf device Co-authored-by: Jostar Yang --- .../pddf/pddf-device.json | 10 ++-- .../x86_64-accton_as7326_56x-r0/sensors.conf | 42 +++++++-------- .../pddf/pddf-device.json | 5 ++ .../x86_64-accton_as7726_32x-r0/sensors.conf | 52 +++++++++---------- .../pddf/pddf-device.json | 12 ++--- .../x86_64-accton_as7816_64x-r0/sensors.conf | 39 ++++++-------- 6 files changed, 80 insertions(+), 80 deletions(-) diff --git a/device/accton/x86_64-accton_as7326_56x-r0/pddf/pddf-device.json b/device/accton/x86_64-accton_as7326_56x-r0/pddf/pddf-device.json index a8bd6d0c4043..857b4e1c4c8d 100644 --- a/device/accton/x86_64-accton_as7326_56x-r0/pddf/pddf-device.json +++ b/device/accton/x86_64-accton_as7326_56x-r0/pddf/pddf-device.json @@ -303,6 +303,7 @@ "TEMP1" : { "dev_info": { "device_type":"TEMP_SENSOR", "device_name":"TEMP1", "device_parent":"MUX2"}, + "dev_attr": { "display_name":"MB_RearMAC_temp(0x48)"}, "i2c": { "topo_info": { "parent_bus":"0xf", "dev_addr":"0x48", "dev_type":"lm75"}, @@ -316,7 +317,8 @@ }, "TEMP2" : { - "dev_info": { "device_type":"TEMP_SENSOR", "device_name":"TEMP1", "device_parent":"MUX2"}, + "dev_info": { "device_type":"TEMP_SENSOR", "device_name":"TEMP2", "device_parent":"MUX2"}, + "dev_attr": { "display_name":"MB_FrontMAC_temp(0x49)"}, "i2c": { "topo_info": { "parent_bus":"0xf", "dev_addr":"0x49", "dev_type":"lm75"}, @@ -330,7 +332,8 @@ }, "TEMP3" : { - "dev_info": { "device_type":"TEMP_SENSOR", "device_name":"TEMP1", "device_parent":"MUX2"}, + "dev_info": { "device_type":"TEMP_SENSOR", "device_name":"TEMP3", "device_parent":"MUX2"}, + "dev_attr": { "display_name":"MB_LeftCenter_temp(0x4A)"}, "i2c": { "topo_info": { "parent_bus":"0xf", "dev_addr":"0x4A", "dev_type":"lm75"}, @@ -344,7 +347,8 @@ }, "TEMP4" : { - "dev_info": { "device_type":"TEMP_SENSOR", "device_name":"TEMP1", "device_parent":"MUX2"}, + "dev_info": { "device_type":"TEMP_SENSOR", "device_name":"TEMP4", "device_parent":"MUX2"}, + "dev_attr": { "display_name":"CB_temp(0x4B)"}, "i2c": { "topo_info": { "parent_bus":"0xf", "dev_addr":"0x4B", "dev_type":"lm75"}, diff --git a/device/accton/x86_64-accton_as7326_56x-r0/sensors.conf b/device/accton/x86_64-accton_as7326_56x-r0/sensors.conf index ec28b6875a0c..7cace5e48d46 100644 --- a/device/accton/x86_64-accton_as7326_56x-r0/sensors.conf +++ b/device/accton/x86_64-accton_as7326_56x-r0/sensors.conf @@ -1,50 +1,46 @@ # libsensors configuration file for as7326-56x # ------------------------------------------------ # - bus "i2c-11" "i2c-1-mux (chan_id 2)" bus "i2c-13" "i2c-1-mux (chan_id 4)" bus "i2c-15" "i2c-1-mux (chan_id 6)" bus "i2c-17" "i2c-1-mux (chan_id 0)" - -chip "ym2651-i2c-*-59" +chip "psu_pmbus-i2c-*-59" label in3 "PSU 1 Voltage" label fan1 "PSU 1 Fan" label temp1 "PSU 1 Temperature" label power2 "PSU 1 Power" label curr2 "PSU 1 Current" - -chip "ym2651-i2c-*-5b" +chip "psu_pmbus-i2c-*-5b" label in3 "PSU 2 Voltage" label fan1 "PSU 2 Fan" label temp1 "PSU 2 Temperature" label power2 "PSU 2 Power" label curr2 "PSU 2 Current" - -chip "as7326_56x_fan-*" - label fan1 "Fan 1 Front" - label fan2 "Fan 2 Front" - label fan3 "Fan 3 Front" - label fan4 "Fan 4 Front" - label fan5 "Fan 5 Front" - label fan6 "Fan 6 Front" - label fan11 "Fan 1 Rear" - label fan12 "Fan 2 Rear" - label fan13 "Fan 3 Rear" - label fan14 "Fan 4 Rear" - label fan15 "Fan 5 Rear" - label fan16 "Fan 6 Rear" +chip "fan_ctrl-*" + label fan1 "Fantray1 Front" + label fan2 "Fantray1 Rear" + label fan3 "Fantray2 Front" + label fan4 "Fantray2 Rear" + label fan5 "Fantray3 Front" + label fan6 "Fantray3 Rear" + label fan7 "Fantray4 Front" + label fan8 "Fantray4 Rear" + label fan9 "Fantray5 Front" + label fan10 "Fantray5 Rear" + label fan11 "Fantray6 Front" + label fan12 "Fantray6 Rear" chip "lm75-i2c-*-48" - label temp1 "Main Board Temperature" + label temp1 "MB_RearMAC_temp" chip "lm75-i2c-*-49" - label temp1 "Main Board Temperature" + label temp1 "MB_FrontMAC_temp" chip "lm75-i2c-*-4a" - label temp1 "Main Board Temperature" + label temp1 "MB_LeftCenter_temp" chip "lm75-i2c-*-4b" - label temp1 "CPU Board Temperature" + label temp1 "CB_temp" diff --git a/device/accton/x86_64-accton_as7726_32x-r0/pddf/pddf-device.json b/device/accton/x86_64-accton_as7726_32x-r0/pddf/pddf-device.json index 68a18fd5c018..b73f22b54191 100644 --- a/device/accton/x86_64-accton_as7726_32x-r0/pddf/pddf-device.json +++ b/device/accton/x86_64-accton_as7726_32x-r0/pddf/pddf-device.json @@ -1789,6 +1789,7 @@ "TEMP1" : { "dev_info": { "device_type":"TEMP_SENSOR", "device_name":"TEMP1", "device_parent":"MUX7"}, + "dev_attr": { "display_name":"FB_temp(0x4C)"}, "i2c": { "topo_info": { "parent_bus":"0x36", "dev_addr":"0x4c", "dev_type":"lm75"}, @@ -1804,6 +1805,7 @@ "TEMP2" : { "dev_info": { "device_type":"TEMP_SENSOR", "device_name":"TEMP2", "device_parent":"MUX7"}, + "dev_attr": { "display_name":"MB_RearMAC_temp(0x48)"}, "i2c": { "topo_info": { "parent_bus":"0x37", "dev_addr":"0x48", "dev_type":"lm75"}, @@ -1819,6 +1821,7 @@ "TEMP3" : { "dev_info": { "device_type":"TEMP_SENSOR", "device_name":"TEMP3", "device_parent":"MUX7"}, + "dev_attr": { "display_name":"MB_FrontMAC_temp(0x49)"}, "i2c": { "topo_info": { "parent_bus":"0x37", "dev_addr":"0x49", "dev_type":"lm75"}, @@ -1834,6 +1837,7 @@ "TEMP4" : { "dev_info": { "device_type":"TEMP_SENSOR", "device_name":"TEMP4", "device_parent":"MUX7"}, + "dev_attr": { "display_name":"MB_LeftCenter_temp(0x4A)"}, "i2c": { "topo_info": { "parent_bus":"0x37", "dev_addr":"0x4a", "dev_type":"lm75"}, @@ -1849,6 +1853,7 @@ "TEMP5" : { "dev_info": { "device_type":"TEMP_SENSOR", "device_name":"TEMP5", "device_parent":"MUX7"}, + "dev_attr": { "display_name":"CB_temp(0x4B)"}, "i2c": { "topo_info": { "parent_bus":"0x37", "dev_addr":"0x4b", "dev_type":"lm75"}, diff --git a/device/accton/x86_64-accton_as7726_32x-r0/sensors.conf b/device/accton/x86_64-accton_as7726_32x-r0/sensors.conf index a7b356ee0b1f..bdfb027ce324 100644 --- a/device/accton/x86_64-accton_as7726_32x-r0/sensors.conf +++ b/device/accton/x86_64-accton_as7726_32x-r0/sensors.conf @@ -1,49 +1,49 @@ # libsensors configuration file for as7726-32x # ------------------------------------------------ # - bus "i2c-49" "i2c-2-mux (chan_id 0)" bus "i2c-50" "i2c-2-mux (chan_id 1)" bus "i2c-54" "i2c-2-mux (chan_id 5)" bus "i2c-55" "i2c-2-mux (chan_id 6)" - -chip "ym2651-i2c-*-5b" +chip "psu_pmbus-i2c-*-5b" + label in3 "PSU 1 Voltage" label fan1 "PSU 1 Fan" label temp1 "PSU 1 Temperature" - label power1 "PSU 1 Power" - -chip "ym2651-i2c-*-58" + label power2 "PSU 1 Power" + label curr2 "PSU 1 Current" +chip "psu_pmbus-i2c-*-58" + label in3 "PSU 2 Voltage" label fan1 "PSU 2 Fan" label temp1 "PSU 2 Temperature" - label power1 "PSU 2 Power" - -chip "as7726_32x_fan-*" - label fan1 "Fan 1 Front" - label fan2 "Fan 2 Front" - label fan3 "Fan 3 Front" - label fan4 "Fan 4 Front" - label fan5 "Fan 5 Front" - label fan6 "Fan 6 Front" - label fan11 "Fan 1 Rear" - label fan12 "Fan 2 Rear" - label fan13 "Fan 3 Rear" - label fan14 "Fan 4 Rear" - label fan15 "Fan 5 Rear" - label fan16 "Fan 6 Rear" + label power2 "PSU 2 Power" + label curr2 "PSU 2 Current" +chip "fan_ctrl-*" + label fan1 "Fantray1 Front" + label fan2 "Fantray1 Rear" + label fan3 "Fantray2 Front" + label fan4 "Fantray2 Rear" + label fan5 "Fantray3 Front" + label fan6 "Fantray3 Rear" + label fan7 "Fantray4 Front" + label fan8 "Fantray4 Rear" + label fan9 "Fantray5 Front" + label fan10 "Fantray5 Rear" + label fan11 "Fantray6 Front" + label fan12 "Fantray6 Rear" chip "lm75-i2c-*-48" - label temp1 "Main Board Temperature" + label temp1 "MB_RearMAC_temp" chip "lm75-i2c-*-49" - label temp1 "Main Board Temperature" + label temp1 "MB_FrontMAC_temp" chip "lm75-i2c-*-4a" - label temp1 "Main Board Temperature" + label temp1 "MB_LeftCenter_temp" chip "lm75-i2c-*-4b" - label temp1 "CPU Board Temperature" + label temp1 "CB_temp" chip "lm75-i2c-*-4c" - label temp1 "Fan Board Temperature" + label temp1 "FB_temp" diff --git a/device/accton/x86_64-accton_as7816_64x-r0/pddf/pddf-device.json b/device/accton/x86_64-accton_as7816_64x-r0/pddf/pddf-device.json index 27d181da1829..f373f39601e4 100644 --- a/device/accton/x86_64-accton_as7816_64x-r0/pddf/pddf-device.json +++ b/device/accton/x86_64-accton_as7816_64x-r0/pddf/pddf-device.json @@ -319,7 +319,7 @@ "TEMP1" : { "dev_info": { "device_type":"TEMP_SENSOR", "device_name":"TEMP1", "device_parent":"MUX3"}, - "dev_attr": { "display_name":"Temp_1"}, + "dev_attr": { "display_name":"FB_1_temp(0x4D)"}, "i2c": { "topo_info": { "parent_bus":"0x11", "dev_addr":"0x4D", "dev_type":"lm75"}, @@ -334,7 +334,7 @@ "TEMP2" : { "dev_info": { "device_type":"TEMP_SENSOR", "device_name":"TEMP2", "device_parent":"MUX3"}, - "dev_attr": { "display_name":"Temp_2"}, + "dev_attr": { "display_name":"FB_2_temp(0x4E)"}, "i2c": { "topo_info": { "parent_bus":"0x11", "dev_addr":"0x4E", "dev_type":"lm75"}, @@ -349,7 +349,7 @@ "TEMP3" : { "dev_info": { "device_type":"TEMP_SENSOR", "device_name":"TEMP3", "device_parent":"MUX3"}, - "dev_attr": { "display_name":"Temp_3"}, + "dev_attr": { "display_name":"MB_MAC_temp(0x48)"}, "i2c": { "topo_info": { "parent_bus":"0x12", "dev_addr":"0x48", "dev_type":"lm75"}, @@ -364,7 +364,7 @@ "TEMP4" : { "dev_info": { "device_type":"TEMP_SENSOR", "device_name":"TEMP4", "device_parent":"MUX3"}, - "dev_attr": { "display_name":"Temp_4"}, + "dev_attr": { "display_name":"MB_RearCenter_temp(0x49)"}, "i2c": { "topo_info": { "parent_bus":"0x12", "dev_addr":"0x49", "dev_type":"lm75"}, @@ -379,7 +379,7 @@ "TEMP5" : { "dev_info": { "device_type":"TEMP_SENSOR", "device_name":"TEMP5", "device_parent":"MUX3"}, - "dev_attr": { "display_name":"Temp_5"}, + "dev_attr": { "display_name":"MB_RightCenter_temp(0x4A)"}, "i2c": { "topo_info": { "parent_bus":"0x12", "dev_addr":"0x4A", "dev_type":"lm75"}, @@ -394,7 +394,7 @@ "TEMP6" : { "dev_info": { "device_type":"TEMP_SENSOR", "device_name":"TEMP6", "device_parent":"MUX3"}, - "dev_attr": { "display_name":"Temp_6"}, + "dev_attr": { "display_name":"CpuBoard_temp(0x4B)"}, "i2c": { "topo_info": { "parent_bus":"0x12", "dev_addr":"0x4B", "dev_type":"lm75"}, diff --git a/device/accton/x86_64-accton_as7816_64x-r0/sensors.conf b/device/accton/x86_64-accton_as7816_64x-r0/sensors.conf index 56e4817a1b51..baa1fa54a37b 100644 --- a/device/accton/x86_64-accton_as7816_64x-r0/sensors.conf +++ b/device/accton/x86_64-accton_as7816_64x-r0/sensors.conf @@ -1,51 +1,46 @@ # libsensors configuration file for as7816-64x # ------------------------------------------------ # - bus "i2c-9" "i2c-1-mux (chan_id 0)" bus "i2c-10" "i2c-1-mux (chan_id 1)" bus "i2c-17" "i2c-1-mux (chan_id 0)" bus "i2c-18" "i2c-1-mux (chan_id 1)" - - -chip "ym2851-i2c-*-5b" +chip "psu_pmbus-i2c-*-5b" label in3 "PSU 1 Voltage" label fan1 "PSU 1 Fan" label temp1 "PSU 1 Temperature" label power2 "PSU 1 Power" label curr2 "PSU 1 Current" - -chip "ym2851-i2c-*-58" +chip "psu_pmbus-i2c-*-58" label in3 "PSU 2 Voltage" label fan1 "PSU 2 Fan" label temp1 "PSU 2 Temperature" label power2 "PSU 2 Power" label curr2 "PSU 2 Current" - -chip "as7816_64x_fan-*" - label fan1 "Fan 1 Front" - label fan2 "Fan 2 Front" - label fan3 "Fan 3 Front" - label fan4 "Fan 4 Front" - label fan11 "Fan 1 Rear" - label fan12 "Fan 2 Rear" - label fan13 "Fan 3 Rear" - label fan14 "Fan 4 Rear" +chip "fan_ctrl-*" + label fan1 "Fantray1 Front" + label fan2 "Fantray1 Rear" + label fan3 "Fantray2 Front" + label fan4 "Fantray2 Rear" + label fan5 "Fantray3 Front" + label fan6 "Fantray3 Rear" + label fan7 "Fantray4 Front" + label fan8 "Fantray4 Rear" chip "lm75-i2c-*-48" - label temp1 "Main Board Temperature" + label temp1 "MB_MAC_temp" chip "lm75-i2c-*-49" - label temp1 "Main Board Temperature" + label temp1 "MB_RearCenter_temp" chip "lm75-i2c-*-4a" - label temp1 "Main Board Temperature" + label temp1 "MB_RightCenter_temp" chip "lm75-i2c-*-4b" - label temp1 "CPU Board Temperature" + label temp1 "CpuBoard_temp" chip "lm75-i2c-*-4d" - label temp1 "Fan Board Temperature" + label temp1 "FB_1_temp" chip "lm75-i2c-*-4e" - label temp1 "Fan Board Temperature" + label temp1 "FB_2_temp" From 0ed671c9afbc4d5dd8418801fd366167a52709a2 Mon Sep 17 00:00:00 2001 From: FuzailBrcm <51665572+FuzailBrcm@users.noreply.github.com> Date: Mon, 9 May 2022 23:19:25 +0530 Subject: [PATCH 167/251] Fixing some python errors in the common PDDF platform classes (#10669) --- platform/pddf/i2c/utils/pddf_util.py | 4 +-- platform/pddf/i2c/utils/pddfparse.py | 27 ++----------------- .../sonic_platform_pddf_base/pddf_sfp.py | 1 + .../sonic_platform_pddf_base/pddf_thermal.py | 1 + .../sonic_platform_pddf_base/pddfapi.py | 26 ++---------------- 5 files changed, 8 insertions(+), 51 deletions(-) diff --git a/platform/pddf/i2c/utils/pddf_util.py b/platform/pddf/i2c/utils/pddf_util.py index fdefc8933c15..d3ee5e43aca9 100755 --- a/platform/pddf/i2c/utils/pddf_util.py +++ b/platform/pddf/i2c/utils/pddf_util.py @@ -21,7 +21,7 @@ import shutil import subprocess import sys - +from sonic_py_common import device_info import pddfparse PLATFORM_ROOT_PATH = '/usr/share/sonic/device' @@ -139,7 +139,7 @@ def driver_check(): def get_path_to_device(): # Get platform and hwsku - (platform, hwsku) = pddf_obj.get_platform_and_hwsku() + (platform, hwsku) = device_info.get_platform_and_hwsku() # Load platform module from source platform_path = "/".join([PLATFORM_ROOT_PATH, platform]) diff --git a/platform/pddf/i2c/utils/pddfparse.py b/platform/pddf/i2c/utils/pddfparse.py index b8c7f39138a5..1a5774f44f8b 100755 --- a/platform/pddf/i2c/utils/pddfparse.py +++ b/platform/pddf/i2c/utils/pddfparse.py @@ -8,6 +8,7 @@ import sys import time import unicodedata +from sonic_py_common import device_info bmc_cache = {} cache = {} @@ -33,7 +34,7 @@ class PddfParse(): def __init__(self): if not os.path.exists("/usr/share/sonic/platform"): - platform, hwsku = self.get_platform_and_hwsku() + platform, hwsku = device_info.get_platform_and_hwsku() os.symlink("/usr/share/sonic/device/"+platform, "/usr/share/sonic/platform") try: @@ -47,30 +48,6 @@ def __init__(self): self.data_sysfs_obj = {} self.sysfs_obj = {} - # Returns platform and HW SKU - def get_platform_and_hwsku(self): - try: - proc = subprocess.Popen([SONIC_CFGGEN_PATH, '-H', '-v', PLATFORM_KEY], - stdout=subprocess.PIPE, - shell=False, - universal_newlines=True, - stderr=subprocess.STDOUT) - stdout = proc.communicate()[0] - proc.wait() - platform = stdout.rstrip('\n') - - proc = subprocess.Popen([SONIC_CFGGEN_PATH, '-d', '-v', HWSKU_KEY], - stdout=subprocess.PIPE, - shell=False, - universal_newlines=True, - stderr=subprocess.STDOUT) - stdout = proc.communicate()[0] - proc.wait() - hwsku = stdout.rstrip('\n') - except OSError as e: - raise OSError("Cannot detect platform") - - return (platform, hwsku) ################################################################################################################### # GENERIC DEFS diff --git a/platform/pddf/platform-api-pddf-base/sonic_platform_pddf_base/pddf_sfp.py b/platform/pddf/platform-api-pddf-base/sonic_platform_pddf_base/pddf_sfp.py index f11acf1a209b..66fe58543f51 100644 --- a/platform/pddf/platform-api-pddf-base/sonic_platform_pddf_base/pddf_sfp.py +++ b/platform/pddf/platform-api-pddf-base/sonic_platform_pddf_base/pddf_sfp.py @@ -6,6 +6,7 @@ try: from sonic_platform_base.sonic_xcvr.sfp_optoe_base import SfpOptoeBase + import time except ImportError as e: raise ImportError(str(e) + "- required module not found") diff --git a/platform/pddf/platform-api-pddf-base/sonic_platform_pddf_base/pddf_thermal.py b/platform/pddf/platform-api-pddf-base/sonic_platform_pddf_base/pddf_thermal.py index a0fe6a28bf44..b94a66ca469c 100644 --- a/platform/pddf/platform-api-pddf-base/sonic_platform_pddf_base/pddf_thermal.py +++ b/platform/pddf/platform-api-pddf-base/sonic_platform_pddf_base/pddf_thermal.py @@ -13,6 +13,7 @@ try: from sonic_platform_base.thermal_base import ThermalBase + import os except ImportError as e: raise ImportError(str(e) + "- required module not found") diff --git a/platform/pddf/platform-api-pddf-base/sonic_platform_pddf_base/pddfapi.py b/platform/pddf/platform-api-pddf-base/sonic_platform_pddf_base/pddfapi.py index a4075af87a94..352ad1b1744f 100644 --- a/platform/pddf/platform-api-pddf-base/sonic_platform_pddf_base/pddfapi.py +++ b/platform/pddf/platform-api-pddf-base/sonic_platform_pddf_base/pddfapi.py @@ -6,6 +6,7 @@ import subprocess import time import unicodedata +from sonic_py_common import device_info bmc_cache = {} cache = {} @@ -31,7 +32,7 @@ class PddfApi(): def __init__(self): if not os.path.exists("/usr/share/sonic/platform"): - self.platform, self.hwsku = self.get_platform_and_hwsku() + self.platform, self.hwsku = device_info.get_platform_and_hwsku() os.symlink("/usr/share/sonic/device/"+self.platform, "/usr/share/sonic/platform") try: @@ -44,29 +45,6 @@ def __init__(self): self.data_sysfs_obj = {} self.sysfs_obj = {} - # Returns platform and HW SKU - def get_platform_and_hwsku(self): - try: - proc = subprocess.Popen([SONIC_CFGGEN_PATH, '-H', '-v', PLATFORM_KEY], - stdout=subprocess.PIPE, - shell=False, - stderr=subprocess.STDOUT) - stdout = proc.communicate()[0] - proc.wait() - platform = stdout.rstrip('\n') - - proc = subprocess.Popen([SONIC_CFGGEN_PATH, '-d', '-v', HWSKU_KEY], - stdout=subprocess.PIPE, - shell=False, - stderr=subprocess.STDOUT) - stdout = proc.communicate()[0] - proc.wait() - hwsku = stdout.rstrip('\n') - except OSError as e: - raise OSError("Cannot detect platform") - - return (platform, hwsku) - ################################################################################################################# # GENERIC DEFS ################################################################################################################# From 0f6eb29460706457c0a55da2e4b638f85cae21af Mon Sep 17 00:00:00 2001 From: Sudharsan Dhamal Gopalarathnam Date: Mon, 9 May 2022 10:58:00 -0700 Subject: [PATCH 168/251] [caclmgrd]Added logic to allow BFD port numbers (#10735) * [caclmgrd]Added logic to allow BFD port numbers --- src/sonic-host-services/scripts/caclmgrd | 31 ++++++++++-- .../tests/caclmgrd/caclmgrd_bfd_test.py | 50 +++++++++++++++++++ .../tests/caclmgrd/caclmgrd_dhcp_test.py | 22 ++++---- .../tests/caclmgrd/test_bfd_vectors.py | 29 +++++++++++ 4 files changed, 117 insertions(+), 15 deletions(-) create mode 100644 src/sonic-host-services/tests/caclmgrd/caclmgrd_bfd_test.py create mode 100644 src/sonic-host-services/tests/caclmgrd/test_bfd_vectors.py diff --git a/src/sonic-host-services/scripts/caclmgrd b/src/sonic-host-services/scripts/caclmgrd index a65f05a34520..914547ad53b2 100755 --- a/src/sonic-host-services/scripts/caclmgrd +++ b/src/sonic-host-services/scripts/caclmgrd @@ -59,6 +59,8 @@ class ControlPlaneAclManager(daemon_base.DaemonBase): ACL_TABLE_TYPE_CTRLPLANE = "CTRLPLANE" + BFD_SESSION_TABLE = "BFD_SESSION_TABLE" + # To specify a port range instead of a single port, use iptables format: # separate start and end ports with a colon, e.g., "1000:2000" ACL_SERVICES = { @@ -87,6 +89,7 @@ class ControlPlaneAclManager(daemon_base.DaemonBase): UPDATE_DELAY_SECS = 0.5 DualToR = False + bfdAllowed = False def __init__(self, log_identifier): super(ControlPlaneAclManager, self).__init__(log_identifier) @@ -170,6 +173,7 @@ class ControlPlaneAclManager(daemon_base.DaemonBase): self.log_error("Error running command '{}'".format(cmd)) elif stdout: return stdout.rstrip('\n') + return "" def parse_int_to_tcp_flags(self, hex_value): tcp_flags_str = "" @@ -705,6 +709,13 @@ class ControlPlaneAclManager(daemon_base.DaemonBase): self.update_thread[namespace] = None return + def allow_bfd_protocol(self, namespace): + iptables_cmds = [] + # Add iptables/ip6tables commands to allow all BFD singlehop and multihop sessions + iptables_cmds.append(self.iptables_cmd_ns_prefix[namespace] + "iptables -I INPUT 2 -p udp -m multiport --dports 3784,4784 -j ACCEPT") + iptables_cmds.append(self.iptables_cmd_ns_prefix[namespace] + "ip6tables -I INPUT 2 -p udp -m multiport --dports 3784,4784 -j ACCEPT") + self.run_commands(iptables_cmds) + def run(self): # Set select timeout to 1 second SELECT_TIMEOUT_MS = 1000 @@ -730,12 +741,12 @@ class ControlPlaneAclManager(daemon_base.DaemonBase): state_db_id = swsscommon.SonicDBConfig.getDbId("STATE_DB") dhcp_packet_mark_tbl = {} + # set up state_db connector + state_db_connector = swsscommon.DBConnector("STATE_DB", 0) + if self.DualToR: self.log_info("Dual ToR mode") - # set up state_db connector - state_db_connector = swsscommon.DBConnector("STATE_DB", 0) - subscribe_mux_cable = swsscommon.SubscriberStateTable(state_db_connector, self.MUX_CABLE_TABLE) sel.addSelectable(subscribe_mux_cable) @@ -746,6 +757,10 @@ class ControlPlaneAclManager(daemon_base.DaemonBase): for namespace in list(self.config_db_map.keys()): self.setup_dhcp_chain(namespace) + # This should be migrated from state_db BFD session table to feature_table in the future when feature table support gets added for BFD + subscribe_bfd_session = swsscommon.SubscriberStateTable(state_db_connector, self.BFD_SESSION_TABLE) + sel.addSelectable(subscribe_bfd_session) + # Map of Namespace <--> susbcriber table's object config_db_subscriber_table_map = {} @@ -785,6 +800,16 @@ class ControlPlaneAclManager(daemon_base.DaemonBase): db_id = redisSelectObj.getDbConnector().getDbId() if db_id == state_db_id: + while True: + key, op, fvs = subscribe_bfd_session.pop() + if not key: + break + + if op == 'SET' and not self.bfdAllowed: + self.allow_bfd_protocol(namespace) + self.bfdAllowed = True + sel.removeSelectable(subscribe_bfd_session) + if self.DualToR: '''dhcp packet mark update''' while True: diff --git a/src/sonic-host-services/tests/caclmgrd/caclmgrd_bfd_test.py b/src/sonic-host-services/tests/caclmgrd/caclmgrd_bfd_test.py new file mode 100644 index 000000000000..358d4c413b9c --- /dev/null +++ b/src/sonic-host-services/tests/caclmgrd/caclmgrd_bfd_test.py @@ -0,0 +1,50 @@ +import os +import sys +import swsscommon + +from parameterized import parameterized +from sonic_py_common.general import load_module_from_source +from unittest import TestCase, mock +from pyfakefs.fake_filesystem_unittest import patchfs + +from .test_bfd_vectors import CACLMGRD_BFD_TEST_VECTOR +from tests.common.mock_configdb import MockConfigDb +from unittest.mock import MagicMock, patch + +DBCONFIG_PATH = '/var/run/redis/sonic-db/database_config.json' + +class TestCaclmgrdBfd(TestCase): + """ + Test caclmgrd bfd + """ + def setUp(self): + swsscommon.swsscommon.ConfigDBConnector = MockConfigDb + test_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) + modules_path = os.path.dirname(test_path) + scripts_path = os.path.join(modules_path, "scripts") + sys.path.insert(0, modules_path) + caclmgrd_path = os.path.join(scripts_path, 'caclmgrd') + self.caclmgrd = load_module_from_source('caclmgrd', caclmgrd_path) + + @parameterized.expand(CACLMGRD_BFD_TEST_VECTOR) + @patchfs + def test_caclmgrd_bfd(self, test_name, test_data, fs): + if not os.path.exists(DBCONFIG_PATH): + fs.create_file(DBCONFIG_PATH) # fake database_config.json + + MockConfigDb.set_config_db(test_data["config_db"]) + + with mock.patch("caclmgrd.subprocess") as mocked_subprocess: + popen_mock = mock.Mock() + popen_attrs = test_data["popen_attributes"] + popen_mock.configure_mock(**popen_attrs) + mocked_subprocess.Popen.return_value = popen_mock + mocked_subprocess.PIPE = -1 + + call_rc = test_data["call_rc"] + mocked_subprocess.call.return_value = call_rc + + caclmgrd_daemon = self.caclmgrd.ControlPlaneAclManager("caclmgrd") + caclmgrd_daemon.allow_bfd_protocol('') + mocked_subprocess.Popen.assert_has_calls(test_data["expected_subprocess_calls"], any_order=True) + diff --git a/src/sonic-host-services/tests/caclmgrd/caclmgrd_dhcp_test.py b/src/sonic-host-services/tests/caclmgrd/caclmgrd_dhcp_test.py index 176dec1b5081..a6eae7ba1230 100644 --- a/src/sonic-host-services/tests/caclmgrd/caclmgrd_dhcp_test.py +++ b/src/sonic-host-services/tests/caclmgrd/caclmgrd_dhcp_test.py @@ -10,23 +10,21 @@ from .test_dhcp_vectors import CACLMGRD_DHCP_TEST_VECTOR from tests.common.mock_configdb import MockConfigDb - DBCONFIG_PATH = '/var/run/redis/sonic-db/database_config.json' - -swsscommon.swsscommon.ConfigDBConnector = MockConfigDb -test_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) -modules_path = os.path.dirname(test_path) -scripts_path = os.path.join(modules_path, "scripts") -sys.path.insert(0, modules_path) -caclmgrd_path = os.path.join(scripts_path, 'caclmgrd') -caclmgrd = load_module_from_source('caclmgrd', caclmgrd_path) - - class TestCaclmgrdDhcp(TestCase): """ Test caclmgrd dhcp """ + def setUp(self): + swsscommon.ConfigDBConnector = MockConfigDb + test_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) + modules_path = os.path.dirname(test_path) + scripts_path = os.path.join(modules_path, "scripts") + sys.path.insert(0, modules_path) + caclmgrd_path = os.path.join(scripts_path, 'caclmgrd') + self.caclmgrd = load_module_from_source('caclmgrd', caclmgrd_path) + @parameterized.expand(CACLMGRD_DHCP_TEST_VECTOR) @patchfs def test_caclmgrd_dhcp(self, test_name, test_data, fs): @@ -46,7 +44,7 @@ def test_caclmgrd_dhcp(self, test_name, test_data, fs): mark = test_data["mark"] - caclmgrd_daemon = caclmgrd.ControlPlaneAclManager("caclmgrd") + caclmgrd_daemon = self.caclmgrd.ControlPlaneAclManager("caclmgrd") mux_update = test_data["mux_update"] for key,data in mux_update: diff --git a/src/sonic-host-services/tests/caclmgrd/test_bfd_vectors.py b/src/sonic-host-services/tests/caclmgrd/test_bfd_vectors.py new file mode 100644 index 000000000000..35340849bd4c --- /dev/null +++ b/src/sonic-host-services/tests/caclmgrd/test_bfd_vectors.py @@ -0,0 +1,29 @@ +from unittest.mock import call +import subprocess + +""" + caclmgrd bfd test vector +""" +CACLMGRD_BFD_TEST_VECTOR = [ + [ + "BFD_SESSION_TEST", + { + "config_db": { + "DEVICE_METADATA": { + "localhost": { + "subtype": "DualToR", + "type": "ToRRouter", + } + }, + }, + "expected_subprocess_calls": [ + call("iptables -I INPUT 2 -p udp -m multiport --dports 3784,4784 -j ACCEPT", shell=True, universal_newlines=True, stdout=subprocess.PIPE), + call("ip6tables -I INPUT 2 -p udp -m multiport --dports 3784,4784 -j ACCEPT", shell=True, universal_newlines=True, stdout=subprocess.PIPE) + ], + "popen_attributes": { + 'communicate.return_value': ('output', 'error'), + }, + "call_rc": 0, + } + ] +] From 23f9126f5928423805751f468561477bef31fc85 Mon Sep 17 00:00:00 2001 From: "Marty Y. Lok" <76118573+mlok-nokia@users.noreply.github.com> Date: Mon, 9 May 2022 14:06:11 -0400 Subject: [PATCH 169/251] [VoQ][config] Multiasic Supervisor card fails to load config_db#.json in chassis when system is reboot (#10106) Supervisor card fails to load config_db#.json in chassis when system reboot. This is an intermittent issue, fixes #10105 --- files/build_templates/docker_image_ctl.j2 | 33 +++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/files/build_templates/docker_image_ctl.j2 b/files/build_templates/docker_image_ctl.j2 index 81efc39231e9..9e4cb65b7050 100644 --- a/files/build_templates/docker_image_ctl.j2 +++ b/files/build_templates/docker_image_ctl.j2 @@ -125,6 +125,34 @@ function setPlatformLagIdBoundaries() docker exec -i ${DOCKERNAME} $SONIC_DB_CLI CHASSIS_APP_DB SET "SYSTEM_LAG_ID_END" "$lag_id_end" fi } +function waitForAllInstanceDatabaseConfigJsonFilesReady() +{ + if [ ! -z "$DEV" ]; then + cnt=0 + SONIC_DB_GLOBAL_JSON="/var/run/redis/sonic-db/database_global.json" + if [ -f "$SONIC_DB_GLOBAL_JSON" ]; then + # Create a separate python script to get a list of location of all instance database_config.json file + redis_database_cfg_list=`/usr/bin/python -c "import sys; import os; import json; f=open(sys.argv[1]); \ + global_db_dir = os.path.dirname(sys.argv[1]); data=json.load(f); \ + print(\" \".join([os.path.normpath(global_db_dir+'/'+elem['include']) \ + for elem in data['INCLUDES'] if 'namespace' in elem])); f.close()" $SONIC_DB_GLOBAL_JSON` + for file in $redis_database_cfg_list + do + while [ ! -f $file ] + do + sleep 1 + cnt=$(( $cnt + 1)) + if [ $cnt -ge 60 ]; then + echo "Error: $file not found" + break + fi + done + done + fi + fi +} +# delay a second to allow the file to be fully accessible +sleep 1 {%- endif %} function postStartAction() @@ -161,6 +189,11 @@ function postStartAction() else # If there is a config_db.json dump file, load it. if [ -r /etc/sonic/config_db$DEV.json ]; then + + # For multi-asic, all /var/run/redis$DEV/sonic-db/database_config.json need to ready + # for loading config with --write-to-db + waitForAllInstanceDatabaseConfigJsonFilesReady + if [ -r /etc/sonic/init_cfg.json ]; then $SONIC_CFGGEN -j /etc/sonic/init_cfg.json -j /etc/sonic/config_db$DEV.json --write-to-db else From 123f20fea3b769fd8e8a54bfe8196b0a86ec2a59 Mon Sep 17 00:00:00 2001 From: Samuel Angebault Date: Mon, 9 May 2022 11:51:38 -0700 Subject: [PATCH 170/251] [Arista] Add missing configuration files for linecards (#10749) Why I did it Fixes some pmon errors/warnings by providing missing configuration files How I did it Add missing pcie.yaml and sensors.conf for supported linecards How to verify it pcie-check should pass sensors should display proper sensor names --- .../x86_64-arista_7800r3_48cq2_lc/pcie.yaml | 235 ++++++++++++++++++ .../sensors.conf | 27 ++ .../system_health_monitoring_config.json | 2 +- .../x86_64-arista_7800r3_48cqm2_lc/pcie.yaml | 235 ++++++++++++++++++ .../sensors.conf | 27 ++ .../system_health_monitoring_config.json | 2 +- ...tem_health_monitoring_config_linecard.json | 15 ++ 7 files changed, 541 insertions(+), 2 deletions(-) create mode 100644 device/arista/x86_64-arista_7800r3_48cq2_lc/pcie.yaml create mode 100644 device/arista/x86_64-arista_7800r3_48cqm2_lc/pcie.yaml create mode 100644 device/arista/x86_64-arista_common/system_health_monitoring_config_linecard.json diff --git a/device/arista/x86_64-arista_7800r3_48cq2_lc/pcie.yaml b/device/arista/x86_64-arista_7800r3_48cq2_lc/pcie.yaml new file mode 100644 index 000000000000..8d7fb1849979 --- /dev/null +++ b/device/arista/x86_64-arista_7800r3_48cq2_lc/pcie.yaml @@ -0,0 +1,235 @@ +- bus: '00' + dev: '00' + fn: '0' + id: '1450' + name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + Root Complex' +- bus: '00' + dev: '00' + fn: '2' + id: '1451' + name: 'IOMMU: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) I/O + Memory Management Unit' +- bus: '00' + dev: '01' + fn: '0' + id: '1452' + name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-1fh) + PCIe Dummy Host Bridge' +- bus: '00' + dev: '01' + fn: '4' + id: '1453' + name: 'PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + PCIe GPP Bridge' +- bus: '00' + dev: '01' + fn: '5' + id: '1453' + name: 'PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + PCIe GPP Bridge' +- bus: '00' + dev: '01' + fn: '6' + id: '1453' + name: 'PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + PCIe GPP Bridge' +- bus: '00' + dev: '02' + fn: '0' + id: '1452' + name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-1fh) + PCIe Dummy Host Bridge' +- bus: '00' + dev: '03' + fn: '0' + id: '1452' + name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-1fh) + PCIe Dummy Host Bridge' +- bus: '00' + dev: '03' + fn: '1' + id: '1453' + name: 'PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + PCIe GPP Bridge' +- bus: '00' + dev: '03' + fn: '2' + id: '1453' + name: 'PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + PCIe GPP Bridge' +- bus: '00' + dev: '03' + fn: '3' + id: '1453' + name: 'PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + PCIe GPP Bridge' +- bus: '00' + dev: '03' + fn: '4' + id: '1453' + name: 'PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + PCIe GPP Bridge' +- bus: '00' + dev: '04' + fn: '0' + id: '1452' + name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-1fh) + PCIe Dummy Host Bridge' +- bus: '00' + dev: '07' + fn: '0' + id: '1452' + name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-1fh) + PCIe Dummy Host Bridge' +- bus: '00' + dev: '07' + fn: '1' + id: '1454' + name: 'PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + Internal PCIe GPP Bridge 0 to Bus B' +- bus: '00' + dev: 08 + fn: '0' + id: '1452' + name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-1fh) + PCIe Dummy Host Bridge' +- bus: '00' + dev: 08 + fn: '1' + id: '1454' + name: 'PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + Internal PCIe GPP Bridge 0 to Bus B' +- bus: '00' + dev: '14' + fn: '0' + id: 790b + name: 'SMBus: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller (rev 59)' +- bus: '00' + dev: '14' + fn: '3' + id: 790e + name: 'ISA bridge: Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge (rev 51)' +- bus: '00' + dev: '18' + fn: '0' + id: '1460' + name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + Data Fabric: Device 18h; Function 0' +- bus: '00' + dev: '18' + fn: '1' + id: '1461' + name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + Data Fabric: Device 18h; Function 1' +- bus: '00' + dev: '18' + fn: '2' + id: '1462' + name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + Data Fabric: Device 18h; Function 2' +- bus: '00' + dev: '18' + fn: '3' + id: '1463' + name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + Data Fabric: Device 18h; Function 3' +- bus: '00' + dev: '18' + fn: '4' + id: '1464' + name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + Data Fabric: Device 18h; Function 4' +- bus: '00' + dev: '18' + fn: '5' + id: '1465' + name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + Data Fabric: Device 18h; Function 5' +- bus: '00' + dev: '18' + fn: '6' + id: '1466' + name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + Data Fabric: Device 18h; Function 6' +- bus: '00' + dev: '18' + fn: '7' + id: '0001' + name: 'Host bridge: Arista Networks, Inc. Device 0001' +- bus: '04' + dev: '00' + fn: '0' + id: '8717' + name: 'PCI bridge: PLX Technology, Inc. PEX 8717 16-lane, 8-Port PCI Express Gen + 3 (8.0 GT/s) Switch with DMA (rev ca)' +- bus: '05' + dev: '03' + fn: '0' + id: '8717' + name: 'PCI bridge: PLX Technology, Inc. PEX 8717 16-lane, 8-Port PCI Express Gen + 3 (8.0 GT/s) Switch with DMA (rev ca)' +- bus: '05' + dev: '05' + fn: '0' + id: '8717' + name: 'PCI bridge: PLX Technology, Inc. PEX 8717 16-lane, 8-Port PCI Express Gen + 3 (8.0 GT/s) Switch with DMA (rev ca)' +- bus: '06' + dev: '00' + fn: '0' + id: '8694' + name: 'Ethernet controller: Broadcom Inc. and subsidiaries Device 8694 (rev 12)' +- bus: '07' + dev: '00' + fn: '0' + id: '0001' + name: 'System peripheral: Arista Networks, Inc. Device 0001 (rev 01)' +- bus: '10' + dev: '00' + fn: '0' + id: '1682' + name: 'Ethernet controller: Broadcom Inc. and subsidiaries NetXtreme BCM57762 Gigabit + Ethernet PCIe (rev 01)' +- bus: '11' + dev: '00' + fn: '0' + id: 145a + name: 'Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] + Zeppelin/Raven/Raven2 PCIe Dummy Function' +- bus: '11' + dev: '00' + fn: '2' + id: '1456' + name: 'Encryption controller: Advanced Micro Devices, Inc. [AMD] Family 17h (Models + 00h-0fh) Platform Security Processor' +- bus: '11' + dev: '00' + fn: '3' + id: 145f + name: 'USB controller: Advanced Micro Devices, Inc. [AMD] Zeppelin USB 3.0 Host + controller' +- bus: '12' + dev: '00' + fn: '0' + id: '1455' + name: 'Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] + Zeppelin/Renoir PCIe Dummy Function' +- bus: '12' + dev: '00' + fn: '1' + id: '1468' + name: 'Encryption controller: Advanced Micro Devices, Inc. [AMD] Zeppelin Cryptographic + Coprocessor NTBCCP' +- bus: '12' + dev: '00' + fn: '2' + id: '7901' + name: 'SATA controller: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI + mode] (rev 51)' +- bus: '12' + dev: '00' + fn: '3' + id: '1457' + name: 'Audio device: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + HD Audio Controller' diff --git a/device/arista/x86_64-arista_7800r3_48cq2_lc/sensors.conf b/device/arista/x86_64-arista_7800r3_48cq2_lc/sensors.conf index e69de29bb2d1..0cafd27bcf88 100644 --- a/device/arista/x86_64-arista_7800r3_48cq2_lc/sensors.conf +++ b/device/arista/x86_64-arista_7800r3_48cq2_lc/sensors.conf @@ -0,0 +1,27 @@ +# autogenerated by arista + +bus "i2c-17" "SCD 0000:07:00.0 SMBus master 1 bus 0" + +chip "k10temp-pci-00c3" + label temp1 "Cpu temp sensor" + set temp1_max 90 + set temp1_crit 95 + +chip "tmp464-i2c-17-48" + label temp1 "Center back" + set temp1_max 85 + set temp1_crit 95 + label temp2 "Fap0 core0" + set temp2_max 100 + set temp2_crit 105 + label temp3 "Fap0 core1" + set temp3_max 100 + set temp3_crit 105 + label temp4 "PCIE" + set temp4_max 85 + set temp4_crit 90 + ignore temp5 + ignore temp6 + ignore temp7 + ignore temp8 + ignore temp9 diff --git a/device/arista/x86_64-arista_7800r3_48cq2_lc/system_health_monitoring_config.json b/device/arista/x86_64-arista_7800r3_48cq2_lc/system_health_monitoring_config.json index 1185f771fa8e..035cde619cd9 120000 --- a/device/arista/x86_64-arista_7800r3_48cq2_lc/system_health_monitoring_config.json +++ b/device/arista/x86_64-arista_7800r3_48cq2_lc/system_health_monitoring_config.json @@ -1 +1 @@ -../x86_64-arista_common/system_health_monitoring_config.json \ No newline at end of file +../x86_64-arista_common/system_health_monitoring_config_linecard.json \ No newline at end of file diff --git a/device/arista/x86_64-arista_7800r3_48cqm2_lc/pcie.yaml b/device/arista/x86_64-arista_7800r3_48cqm2_lc/pcie.yaml new file mode 100644 index 000000000000..8d7fb1849979 --- /dev/null +++ b/device/arista/x86_64-arista_7800r3_48cqm2_lc/pcie.yaml @@ -0,0 +1,235 @@ +- bus: '00' + dev: '00' + fn: '0' + id: '1450' + name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + Root Complex' +- bus: '00' + dev: '00' + fn: '2' + id: '1451' + name: 'IOMMU: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) I/O + Memory Management Unit' +- bus: '00' + dev: '01' + fn: '0' + id: '1452' + name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-1fh) + PCIe Dummy Host Bridge' +- bus: '00' + dev: '01' + fn: '4' + id: '1453' + name: 'PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + PCIe GPP Bridge' +- bus: '00' + dev: '01' + fn: '5' + id: '1453' + name: 'PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + PCIe GPP Bridge' +- bus: '00' + dev: '01' + fn: '6' + id: '1453' + name: 'PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + PCIe GPP Bridge' +- bus: '00' + dev: '02' + fn: '0' + id: '1452' + name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-1fh) + PCIe Dummy Host Bridge' +- bus: '00' + dev: '03' + fn: '0' + id: '1452' + name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-1fh) + PCIe Dummy Host Bridge' +- bus: '00' + dev: '03' + fn: '1' + id: '1453' + name: 'PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + PCIe GPP Bridge' +- bus: '00' + dev: '03' + fn: '2' + id: '1453' + name: 'PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + PCIe GPP Bridge' +- bus: '00' + dev: '03' + fn: '3' + id: '1453' + name: 'PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + PCIe GPP Bridge' +- bus: '00' + dev: '03' + fn: '4' + id: '1453' + name: 'PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + PCIe GPP Bridge' +- bus: '00' + dev: '04' + fn: '0' + id: '1452' + name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-1fh) + PCIe Dummy Host Bridge' +- bus: '00' + dev: '07' + fn: '0' + id: '1452' + name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-1fh) + PCIe Dummy Host Bridge' +- bus: '00' + dev: '07' + fn: '1' + id: '1454' + name: 'PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + Internal PCIe GPP Bridge 0 to Bus B' +- bus: '00' + dev: 08 + fn: '0' + id: '1452' + name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-1fh) + PCIe Dummy Host Bridge' +- bus: '00' + dev: 08 + fn: '1' + id: '1454' + name: 'PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + Internal PCIe GPP Bridge 0 to Bus B' +- bus: '00' + dev: '14' + fn: '0' + id: 790b + name: 'SMBus: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller (rev 59)' +- bus: '00' + dev: '14' + fn: '3' + id: 790e + name: 'ISA bridge: Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge (rev 51)' +- bus: '00' + dev: '18' + fn: '0' + id: '1460' + name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + Data Fabric: Device 18h; Function 0' +- bus: '00' + dev: '18' + fn: '1' + id: '1461' + name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + Data Fabric: Device 18h; Function 1' +- bus: '00' + dev: '18' + fn: '2' + id: '1462' + name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + Data Fabric: Device 18h; Function 2' +- bus: '00' + dev: '18' + fn: '3' + id: '1463' + name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + Data Fabric: Device 18h; Function 3' +- bus: '00' + dev: '18' + fn: '4' + id: '1464' + name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + Data Fabric: Device 18h; Function 4' +- bus: '00' + dev: '18' + fn: '5' + id: '1465' + name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + Data Fabric: Device 18h; Function 5' +- bus: '00' + dev: '18' + fn: '6' + id: '1466' + name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + Data Fabric: Device 18h; Function 6' +- bus: '00' + dev: '18' + fn: '7' + id: '0001' + name: 'Host bridge: Arista Networks, Inc. Device 0001' +- bus: '04' + dev: '00' + fn: '0' + id: '8717' + name: 'PCI bridge: PLX Technology, Inc. PEX 8717 16-lane, 8-Port PCI Express Gen + 3 (8.0 GT/s) Switch with DMA (rev ca)' +- bus: '05' + dev: '03' + fn: '0' + id: '8717' + name: 'PCI bridge: PLX Technology, Inc. PEX 8717 16-lane, 8-Port PCI Express Gen + 3 (8.0 GT/s) Switch with DMA (rev ca)' +- bus: '05' + dev: '05' + fn: '0' + id: '8717' + name: 'PCI bridge: PLX Technology, Inc. PEX 8717 16-lane, 8-Port PCI Express Gen + 3 (8.0 GT/s) Switch with DMA (rev ca)' +- bus: '06' + dev: '00' + fn: '0' + id: '8694' + name: 'Ethernet controller: Broadcom Inc. and subsidiaries Device 8694 (rev 12)' +- bus: '07' + dev: '00' + fn: '0' + id: '0001' + name: 'System peripheral: Arista Networks, Inc. Device 0001 (rev 01)' +- bus: '10' + dev: '00' + fn: '0' + id: '1682' + name: 'Ethernet controller: Broadcom Inc. and subsidiaries NetXtreme BCM57762 Gigabit + Ethernet PCIe (rev 01)' +- bus: '11' + dev: '00' + fn: '0' + id: 145a + name: 'Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] + Zeppelin/Raven/Raven2 PCIe Dummy Function' +- bus: '11' + dev: '00' + fn: '2' + id: '1456' + name: 'Encryption controller: Advanced Micro Devices, Inc. [AMD] Family 17h (Models + 00h-0fh) Platform Security Processor' +- bus: '11' + dev: '00' + fn: '3' + id: 145f + name: 'USB controller: Advanced Micro Devices, Inc. [AMD] Zeppelin USB 3.0 Host + controller' +- bus: '12' + dev: '00' + fn: '0' + id: '1455' + name: 'Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] + Zeppelin/Renoir PCIe Dummy Function' +- bus: '12' + dev: '00' + fn: '1' + id: '1468' + name: 'Encryption controller: Advanced Micro Devices, Inc. [AMD] Zeppelin Cryptographic + Coprocessor NTBCCP' +- bus: '12' + dev: '00' + fn: '2' + id: '7901' + name: 'SATA controller: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI + mode] (rev 51)' +- bus: '12' + dev: '00' + fn: '3' + id: '1457' + name: 'Audio device: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + HD Audio Controller' diff --git a/device/arista/x86_64-arista_7800r3_48cqm2_lc/sensors.conf b/device/arista/x86_64-arista_7800r3_48cqm2_lc/sensors.conf index e69de29bb2d1..0cafd27bcf88 100644 --- a/device/arista/x86_64-arista_7800r3_48cqm2_lc/sensors.conf +++ b/device/arista/x86_64-arista_7800r3_48cqm2_lc/sensors.conf @@ -0,0 +1,27 @@ +# autogenerated by arista + +bus "i2c-17" "SCD 0000:07:00.0 SMBus master 1 bus 0" + +chip "k10temp-pci-00c3" + label temp1 "Cpu temp sensor" + set temp1_max 90 + set temp1_crit 95 + +chip "tmp464-i2c-17-48" + label temp1 "Center back" + set temp1_max 85 + set temp1_crit 95 + label temp2 "Fap0 core0" + set temp2_max 100 + set temp2_crit 105 + label temp3 "Fap0 core1" + set temp3_max 100 + set temp3_crit 105 + label temp4 "PCIE" + set temp4_max 85 + set temp4_crit 90 + ignore temp5 + ignore temp6 + ignore temp7 + ignore temp8 + ignore temp9 diff --git a/device/arista/x86_64-arista_7800r3_48cqm2_lc/system_health_monitoring_config.json b/device/arista/x86_64-arista_7800r3_48cqm2_lc/system_health_monitoring_config.json index 1185f771fa8e..035cde619cd9 120000 --- a/device/arista/x86_64-arista_7800r3_48cqm2_lc/system_health_monitoring_config.json +++ b/device/arista/x86_64-arista_7800r3_48cqm2_lc/system_health_monitoring_config.json @@ -1 +1 @@ -../x86_64-arista_common/system_health_monitoring_config.json \ No newline at end of file +../x86_64-arista_common/system_health_monitoring_config_linecard.json \ No newline at end of file diff --git a/device/arista/x86_64-arista_common/system_health_monitoring_config_linecard.json b/device/arista/x86_64-arista_common/system_health_monitoring_config_linecard.json new file mode 100644 index 000000000000..ea6443556062 --- /dev/null +++ b/device/arista/x86_64-arista_common/system_health_monitoring_config_linecard.json @@ -0,0 +1,15 @@ +{ + "services_to_ignore": [], + "devices_to_ignore": [ + "asic", + "fan", + "psu" + ], + "user_defined_checkers": [], + "polling_interval": 60, + "led_color": { + "fault": "amber", + "normal": "green", + "booting": "amber_blink" + } +} From 4a5f81dcb8c0f741f650d2f6010a9679ae583d97 Mon Sep 17 00:00:00 2001 From: Sudharsan Dhamal Gopalarathnam Date: Mon, 9 May 2022 12:04:01 -0700 Subject: [PATCH 171/251] [Template]Update template to point to configuration.md in yang-models folder (#10777) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit … folder #### Why I did it Update template to point to configuration.md in yang-model folder. --- .github/pull_request_template.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index c02d193fbeb4..62b8d0b2afca 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -42,7 +42,7 @@ pull request for inclusion in the changelog: #### A picture of a cute animal (not mandatory but encouraged) From dc6f3252aa8004ba54fdbb6dfbe4de5fd481e353 Mon Sep 17 00:00:00 2001 From: Saikrishna Arcot Date: Mon, 9 May 2022 12:05:57 -0700 Subject: [PATCH 172/251] Fix calculation of $(1)_DEP_PKGS_SHA in Makefile.cache (#10764) In Makefile.cache, for $(1)_DEP_PKGS_SHA, the intention is to include the DEP_MOD_SHA and MOD_HASH of each of the current package's dependencies. However, there's a level of dereferencing missing; instead of grabbing the value of $(dfile)_DEP_MOD_SHA, it is literally using the variable name $(dfile)_DEP_MOD_SHA. This means that the value of this variable will not change when some dependency changes. The impact of this is in transitive dependencies. For a specific example, if there is some change in sairedis, then sairedis will be rebuilt (because there's a change within that component), and swss will be rebuilt (because it's a direct dependency), but docker-swss-layer-buster will not get rebuilt, because only the direct dependencies are effectively being checked, and those aren't changing. Signed-off-by: Saikrishna Arcot --- Makefile.cache | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile.cache b/Makefile.cache index 2a47c9427eb3..50fac768a599 100644 --- a/Makefile.cache +++ b/Makefile.cache @@ -186,7 +186,7 @@ define GET_MOD_DEP_SHA $(if $($(1)_DEP_FILES_MISSING), $(warning "[ DPKG ] Dependecy file(s) are not found for $(1) : $($(1)_DEP_FILES_MISSING))) # Include package dependencies hash values into package hash calculation - $(eval $(1)_DEP_PKGS_SHA := $(foreach dfile,$(1)_MOD_DEP_PKGS,$(dfile)_DEP_MOD_SHA $(dfile)_MOD_HASH)) + $(eval $(1)_DEP_PKGS_SHA := $(foreach dfile,$($(1)_MOD_DEP_PKGS),$($(dfile)_DEP_MOD_SHA) $($(dfile)_MOD_HASH))) $(eval $(1)_DEP_MOD_SHA := $(shell bash -c "git hash-object $($(1)_DEP_MOD_SHA_FILES) && echo $($(1)_DEP_PKGS_SHA)" \ | sha1sum | awk '{print substr($$1,0,23);}')) From f579f61e4cfd1750d3bd01a5fbe6b0a0c8a701fe Mon Sep 17 00:00:00 2001 From: FuzailBrcm <51665572+FuzailBrcm@users.noreply.github.com> Date: Tue, 10 May 2022 00:47:38 +0530 Subject: [PATCH 173/251] Fix for Accton platform build failure when doing incremental build (#10541) --- platform/broadcom/platform-modules-accton.mk | 2 +- platform/pddf/i2c/debian/control | 3 +++ platform/pddf/i2c/debian/sonic-platform-pddf-sym.install | 1 + platform/pddf/i2c/debian/sonic-platform-pddf-sym.postinst | 2 ++ platform/pddf/platform-modules-pddf.mk | 3 +++ 5 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 platform/pddf/i2c/debian/sonic-platform-pddf-sym.install create mode 100644 platform/pddf/i2c/debian/sonic-platform-pddf-sym.postinst diff --git a/platform/broadcom/platform-modules-accton.mk b/platform/broadcom/platform-modules-accton.mk index 1e2bfdcf82de..85e7ff1f5641 100755 --- a/platform/broadcom/platform-modules-accton.mk +++ b/platform/broadcom/platform-modules-accton.mk @@ -44,7 +44,7 @@ export ACCTON_AS7315_27XB_PLATFORM_MODULE_VERSION ACCTON_AS7712_32X_PLATFORM_MODULE = sonic-platform-accton-as7712-32x_$(ACCTON_AS7712_32X_PLATFORM_MODULE_VERSION)_amd64.deb $(ACCTON_AS7712_32X_PLATFORM_MODULE)_SRC_PATH = $(PLATFORM_PATH)/sonic-platform-modules-accton -$(ACCTON_AS7712_32X_PLATFORM_MODULE)_DEPENDS += $(LINUX_HEADERS) $(LINUX_HEADERS_COMMON) +$(ACCTON_AS7712_32X_PLATFORM_MODULE)_DEPENDS += $(LINUX_HEADERS) $(LINUX_HEADERS_COMMON) $(PDDF_PLATFORM_MODULE_SYM) $(ACCTON_AS7712_32X_PLATFORM_MODULE)_PLATFORM = x86_64-accton_as7712_32x-r0 SONIC_DPKG_DEBS += $(ACCTON_AS7712_32X_PLATFORM_MODULE) diff --git a/platform/pddf/i2c/debian/control b/platform/pddf/i2c/debian/control index afd96c3d260a..a6056598dd6e 100755 --- a/platform/pddf/i2c/debian/control +++ b/platform/pddf/i2c/debian/control @@ -9,4 +9,7 @@ Package: sonic-platform-pddf Architecture: amd64 Description: kernel modules for platform devices such as psu, fan, sfp, led +Package: sonic-platform-pddf-sym +Architecture: amd64 +Description: PDDF kernel modules symbols which could be used for other platform modules build diff --git a/platform/pddf/i2c/debian/sonic-platform-pddf-sym.install b/platform/pddf/i2c/debian/sonic-platform-pddf-sym.install new file mode 100644 index 000000000000..a655ef1f64e8 --- /dev/null +++ b/platform/pddf/i2c/debian/sonic-platform-pddf-sym.install @@ -0,0 +1 @@ +Module.symvers.PDDF sonic/platform/pddf/i2c diff --git a/platform/pddf/i2c/debian/sonic-platform-pddf-sym.postinst b/platform/pddf/i2c/debian/sonic-platform-pddf-sym.postinst new file mode 100644 index 000000000000..0b34c29eed90 --- /dev/null +++ b/platform/pddf/i2c/debian/sonic-platform-pddf-sym.postinst @@ -0,0 +1,2 @@ +chmod 777 sonic/platform/pddf/i2c/Module.symvers.PDDF +chown $(stat -c "%u:%g" sonic/platform/pddf/i2c) sonic/platform/pddf/i2c/Module.symvers.PDDF diff --git a/platform/pddf/platform-modules-pddf.mk b/platform/pddf/platform-modules-pddf.mk index 5947c1806565..33d97e7fb50e 100644 --- a/platform/pddf/platform-modules-pddf.mk +++ b/platform/pddf/platform-modules-pddf.mk @@ -9,4 +9,7 @@ $(PDDF_PLATFORM_MODULE)_SRC_PATH = $(PLATFORM_PDDF_PATH)/i2c $(PDDF_PLATFORM_MODULE)_DEPENDS += $(LINUX_HEADERS) $(LINUX_HEADERS_COMMON) SONIC_DPKG_DEBS += $(PDDF_PLATFORM_MODULE) +PDDF_PLATFORM_MODULE_SYM = sonic-platform-pddf-sym_$(PDDF_PLATFORM_MODULE_VERSION)_amd64.deb +$(eval $(call add_derived_package,$(PDDF_PLATFORM_MODULE),$(PDDF_PLATFORM_MODULE_SYM))) + SONIC_STRETCH_DEBS += $(PDDF_PLATFORM_MODULE) From d202bf26d7ee8077997e8a1df3bcb3dc5c63377c Mon Sep 17 00:00:00 2001 From: Alexander Allen Date: Tue, 10 May 2022 05:45:28 -0400 Subject: [PATCH 174/251] Upgrade mellanox platform containers (syncd / saiserver / syncd-rpc) and pmon to bullseye (#10580) Fixes #9279 - Why I did it Part of larger effort to move all SONiC systems to bullseye - How I did it 1. Update container makefiles with correct dependencies 2. Update container Dockerfile with correct base image 3. Update container Dockerfile with correct apt dependencies 4. Update any other makefiles with dependencies to remove python2 support 5. Minor changes to support bullseye / python3 - How to verify it Run regression on the switch: 1. Verify PTF community tests work 2. Verify syncd runs and all ports come up / pass traffic 3. Verify all platform tests succeed --- dockers/docker-platform-monitor/Dockerfile.j2 | 2 +- platform/mellanox/docker-saiserver-mlnx.mk | 7 ++-- .../docker-saiserver-mlnx/Dockerfile.j2 | 4 +-- platform/mellanox/docker-syncd-mlnx-rpc.mk | 4 +-- .../docker-syncd-mlnx-rpc/Dockerfile.j2 | 31 ++++++++++------- .../docker-syncd-mlnx-rpc/ptf_nn_agent.conf | 2 +- platform/mellanox/docker-syncd-mlnx.mk | 2 +- .../mellanox/docker-syncd-mlnx/Dockerfile.j2 | 11 ++++--- platform/mellanox/issu-version.mk | 2 -- platform/mellanox/issu-version/Makefile | 5 --- platform/mellanox/libsaithrift-dev.mk | 7 +--- platform/mellanox/mft.mk | 2 -- platform/mellanox/mft/Makefile | 2 -- platform/template/docker-syncd-bullseye.mk | 33 +++++++++++++++++++ rules/docker-platform-monitor.mk | 10 +++--- rules/lm-sensors.mk | 10 +++--- rules/sonic-ledd.mk | 2 +- rules/sonic-psud.mk | 2 +- rules/sonic-syseepromd.mk | 2 +- rules/sonic-thermalctld.mk | 2 +- rules/sonic-xcvrd.mk | 2 +- sonic-slave-bullseye/Dockerfile.j2 | 4 +++ 22 files changed, 87 insertions(+), 61 deletions(-) create mode 100644 platform/template/docker-syncd-bullseye.mk diff --git a/dockers/docker-platform-monitor/Dockerfile.j2 b/dockers/docker-platform-monitor/Dockerfile.j2 index 739933aaf1e5..1e8c28b0682e 100755 --- a/dockers/docker-platform-monitor/Dockerfile.j2 +++ b/dockers/docker-platform-monitor/Dockerfile.j2 @@ -1,5 +1,5 @@ {% from "dockers/dockerfile-macros.j2" import install_debian_packages, install_python_wheels, copy_files %} -FROM docker-config-engine-buster-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} +FROM docker-config-engine-bullseye-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ARG docker_container_name ARG image_version diff --git a/platform/mellanox/docker-saiserver-mlnx.mk b/platform/mellanox/docker-saiserver-mlnx.mk index d71349a28ae7..74fb96f91d1b 100644 --- a/platform/mellanox/docker-saiserver-mlnx.mk +++ b/platform/mellanox/docker-saiserver-mlnx.mk @@ -20,15 +20,12 @@ DOCKER_SAISERVER_MLNX = docker-saiserver$(SAITHRIFT_VER)-mlnx.gz $(DOCKER_SAISERVER_MLNX)_PATH = $(PLATFORM_PATH)/docker-saiserver-mlnx $(DOCKER_SAISERVER_MLNX)_DEPENDS += $(SAISERVER) $(PYTHON_SDK_API) $(DOCKER_SAISERVER_MLNX)_PYTHON_DEBS += $(MLNX_SFPD) -$(DOCKER_SAISERVER_MLNX)_LOAD_DOCKERS += $(DOCKER_CONFIG_ENGINE_BUSTER) +$(DOCKER_SAISERVER_MLNX)_LOAD_DOCKERS += $(DOCKER_CONFIG_ENGINE_BULLSEYE) SONIC_DOCKER_IMAGES += $(DOCKER_SAISERVER_MLNX) -SONIC_BUSTER_DOCKERS += $(DOCKER_SAISERVER_MLNX) - $(DOCKER_SAISERVER_MLNX)_CONTAINER_NAME = saiserver$(SAITHRIFT_VER) +SONIC_BULLSEYE_DOCKERS += $(DOCKER_SAISERVER_MLNX) $(DOCKER_SAISERVER_MLNX)_RUN_OPT += --privileged -t $(DOCKER_SAISERVER_MLNX)_RUN_OPT += -v /host/machine.conf:/etc/machine.conf $(DOCKER_SAISERVER_MLNX)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro $(DOCKER_SYNCD_BASE)_RUN_OPT += --tmpfs /run/criu - -SONIC_BUSTER_DOCKERS += $(DOCKER_SAISERVER_MLNX) diff --git a/platform/mellanox/docker-saiserver-mlnx/Dockerfile.j2 b/platform/mellanox/docker-saiserver-mlnx/Dockerfile.j2 index 7ad0355886e3..20f966eb3e83 100644 --- a/platform/mellanox/docker-saiserver-mlnx/Dockerfile.j2 +++ b/platform/mellanox/docker-saiserver-mlnx/Dockerfile.j2 @@ -15,7 +15,7 @@ ## limitations under the License. ## {% from "dockers/dockerfile-macros.j2" import install_debian_packages %} -FROM docker-config-engine-buster-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} +FROM docker-config-engine-bullseye-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ARG docker_container_name RUN [ -f /etc/rsyslog.conf ] && sed -ri "s/%syslogtag%/$docker_container_name#%syslogtag%/;" /etc/rsyslog.conf @@ -41,7 +41,7 @@ python-debs/{{ deb }}{{' '}} {%- endfor -%} debs/ -RUN apt-get install -y --no-install-recommends libxml2 iptables libbsd0 protobuf-c-compiler protobuf-compiler python-protobuf libprotobuf-c1 python-future python-ipaddr libnet1 pkg-config asciidoc xmlto +RUN apt-get install -y --no-install-recommends libxml2 iptables libbsd0 protobuf-c-compiler protobuf-compiler python3-protobuf libprotobuf-c1 python3-future python3-ipaddr libnet1 pkg-config asciidoc xmlto {{ install_debian_packages(docker_saiserver_mlnx_debs.split(' ')) }} diff --git a/platform/mellanox/docker-syncd-mlnx-rpc.mk b/platform/mellanox/docker-syncd-mlnx-rpc.mk index fb740cdee4e9..9d6ce4bc6f1b 100644 --- a/platform/mellanox/docker-syncd-mlnx-rpc.mk +++ b/platform/mellanox/docker-syncd-mlnx-rpc.mk @@ -30,7 +30,7 @@ endif $(DOCKER_SYNCD_MLNX_RPC)_PYTHON_DEBS += $(MLNX_SFPD) $(DOCKER_SYNCD_MLNX_RPC)_LOAD_DOCKERS += $(DOCKER_SYNCD_BASE) SONIC_DOCKER_IMAGES += $(DOCKER_SYNCD_MLNX_RPC) -SONIC_BUSTER_DOCKERS += $(DOCKER_SYNCD_MLNX_RPC) +SONIC_BULLSEYE_DOCKERS += $(DOCKER_SYNCD_MLNX_RPC) ifeq ($(ENABLE_SYNCD_RPC),y) SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_SYNCD_MLNX_RPC) endif @@ -42,5 +42,3 @@ $(DOCKER_SYNCD_MLNX_RPC)_RUN_OPT += --privileged -t $(DOCKER_SYNCD_MLNX_RPC)_RUN_OPT += -v /host/machine.conf:/etc/machine.conf $(DOCKER_SYNCD_MLNX_RPC)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro $(DOCKER_SYNCD_MLNX_RPC)_RUN_OPT += -v /host/warmboot:/var/warmboot - -SONIC_BUSTER_DOCKERS += $(DOCKER_SYNCD_MLNX_RPC) diff --git a/platform/mellanox/docker-syncd-mlnx-rpc/Dockerfile.j2 b/platform/mellanox/docker-syncd-mlnx-rpc/Dockerfile.j2 index 0c93e327d3c5..d10d560110c6 100644 --- a/platform/mellanox/docker-syncd-mlnx-rpc/Dockerfile.j2 +++ b/platform/mellanox/docker-syncd-mlnx-rpc/Dockerfile.j2 @@ -24,21 +24,10 @@ RUN mkdir -p /var/run/sx_sdk RUN apt-get purge -y syncd -{% if docker_syncd_mlnx_rpc_debs.strip() -%} -# Copy locally-built Debian package dependencies -{{ copy_files("debs/", docker_syncd_mlnx_rpc_debs.split(' '), "/debs/") }} -{% endif %} - -{% if docker_syncd_mlnx_rpc_pydebs.strip() -%} -# Copy locally-built Debian package dependencies -{{ copy_files("python-debs/", docker_syncd_mlnx_rpc_pydebs.split(' '), "/debs/") }} -{% endif %} - ## Pre-install the fundamental packages RUN apt-get update \ && apt-get -y install \ net-tools \ - python-pip \ python-setuptools \ build-essential \ libssl-dev \ @@ -48,7 +37,22 @@ RUN apt-get update \ cmake \ libqt5core5a \ libqt5network5 \ - libboost-atomic1.71.0 + libboost-atomic1.74.0 + +# Build and install python-scapy +RUN curl http://ftp.us.debian.org/debian/pool/main/s/scapy/python-scapy_2.4.0-2_all.deb --output python-scapy_2.4.0-2_all.deb \ + && dpkg -i python-scapy_2.4.0-2_all.deb \ + && apt install -f + +{% if docker_syncd_mlnx_rpc_debs.strip() -%} +# Copy locally-built Debian package dependencies +{{ copy_files("debs/", docker_syncd_mlnx_rpc_debs.split(' '), "/debs/") }} +{% endif %} + +{% if docker_syncd_mlnx_rpc_pydebs.strip() -%} +# Copy locally-built Debian package dependencies +{{ copy_files("python-debs/", docker_syncd_mlnx_rpc_pydebs.split(' '), "/debs/") }} +{% endif %} {% if docker_syncd_mlnx_rpc_debs.strip() -%} # Install locally-built Debian packages and implicitly install their dependencies @@ -60,6 +64,9 @@ RUN apt-get update \ {{ install_debian_packages(docker_syncd_mlnx_rpc_pydebs.split(' ')) }} {% endif %} +# Install pip2 since it is no longer in the APT upstream +RUN curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py \ + && python2 get-pip.py RUN wget https://github.com/nanomsg/nanomsg/archive/1.0.0.tar.gz \ && tar xvfz 1.0.0.tar.gz \ diff --git a/platform/mellanox/docker-syncd-mlnx-rpc/ptf_nn_agent.conf b/platform/mellanox/docker-syncd-mlnx-rpc/ptf_nn_agent.conf index cd6a7d4db75d..80812464a19e 100644 --- a/platform/mellanox/docker-syncd-mlnx-rpc/ptf_nn_agent.conf +++ b/platform/mellanox/docker-syncd-mlnx-rpc/ptf_nn_agent.conf @@ -1,5 +1,5 @@ [program:ptf_nn_agent] -command=/usr/bin/python /opt/ptf_nn_agent.py --device-socket 1@tcp://0.0.0.0:10900 -i 1-3@Ethernet12 --set-nn-rcv-buffer=109430400 --set-iface-rcv-buffer=109430400 --set-nn-snd-buffer=109430400 --set-iface-snd-buffer=109430400 +command=/usr/bin/python2 /opt/ptf_nn_agent.py --device-socket 1@tcp://0.0.0.0:10900 -i 1-3@Ethernet12 --set-nn-rcv-buffer=109430400 --set-iface-rcv-buffer=109430400 --set-nn-snd-buffer=109430400 --set-iface-snd-buffer=109430400 process_name=ptf_nn_agent stdout_logfile=/tmp/ptf_nn_agent.out.log stderr_logfile=/tmp/ptf_nn_agent.err.log diff --git a/platform/mellanox/docker-syncd-mlnx.mk b/platform/mellanox/docker-syncd-mlnx.mk index a2e733782b9e..1328d0e0d0dd 100644 --- a/platform/mellanox/docker-syncd-mlnx.mk +++ b/platform/mellanox/docker-syncd-mlnx.mk @@ -17,7 +17,7 @@ # docker image for mlnx syncd DOCKER_SYNCD_PLATFORM_CODE = mlnx -include $(PLATFORM_PATH)/../template/docker-syncd-base.mk +include $(PLATFORM_PATH)/../template/docker-syncd-bullseye.mk $(DOCKER_SYNCD_BASE)_DEPENDS += $(SYNCD) $(PYTHON_SDK_API) $(MFT) diff --git a/platform/mellanox/docker-syncd-mlnx/Dockerfile.j2 b/platform/mellanox/docker-syncd-mlnx/Dockerfile.j2 index e3487c058b58..70c8795fb9e0 100755 --- a/platform/mellanox/docker-syncd-mlnx/Dockerfile.j2 +++ b/platform/mellanox/docker-syncd-mlnx/Dockerfile.j2 @@ -15,7 +15,7 @@ ## limitations under the License. ## {% from "dockers/dockerfile-macros.j2" import install_debian_packages, install_python_wheels, copy_files %} -FROM docker-config-engine-buster-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} +FROM docker-config-engine-bullseye-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ARG docker_container_name @@ -29,14 +29,15 @@ ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && \ apt-get install -y \ libxml2 \ - python-pip \ - python-dev \ + python3-pip \ + python3-dev \ + python-is-python3 \ {%- if ENABLE_ASAN == "y" %} libasan5 \ {%- endif %} - python-setuptools + python3-setuptools -RUN pip2 install --upgrade pip +RUN pip3 install --upgrade pip RUN apt-get purge -y python-pip {% if docker_syncd_mlnx_debs.strip() -%} diff --git a/platform/mellanox/issu-version.mk b/platform/mellanox/issu-version.mk index d369ec600236..ee0855c56ced 100644 --- a/platform/mellanox/issu-version.mk +++ b/platform/mellanox/issu-version.mk @@ -19,9 +19,7 @@ ISSU_VERSION_FILE = issu-version $(ISSU_VERSION_FILE)_SRC_PATH = $(PLATFORM_PATH)/issu-version -ifeq ($(BLDENV), buster) $(ISSU_VERSION_FILE)_DEPENDS += $(APPLIBS) -endif SONIC_MAKE_FILES += $(ISSU_VERSION_FILE) diff --git a/platform/mellanox/issu-version/Makefile b/platform/mellanox/issu-version/Makefile index 2578e9ff060b..fbb21af74902 100644 --- a/platform/mellanox/issu-version/Makefile +++ b/platform/mellanox/issu-version/Makefile @@ -19,15 +19,10 @@ SHELL = /bin/bash .SHELLFLAGS += -e MAIN_TARGET = issu-version -BUSTER_FILES_PATH = /sonic/target/files/buster $(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% : -ifneq (,$(findstring buster,$(DEST))) sx_sdk --version | egrep -o 'ISSU [0-9]+' > $(DEST)/$(MAIN_TARGET) || { echo "ISSU version is undefined: $(sx_sdk --version)" rm $(DEST)/$(MAIN_TARGET) exit 1 } -else - cp $(BUSTER_FILES_PATH)/$(MAIN_TARGET) $(DEST)/$(MAIN_TARGET) -endif diff --git a/platform/mellanox/libsaithrift-dev.mk b/platform/mellanox/libsaithrift-dev.mk index 579a41f02a24..4ee241eab4c7 100644 --- a/platform/mellanox/libsaithrift-dev.mk +++ b/platform/mellanox/libsaithrift-dev.mk @@ -20,14 +20,9 @@ SAI_VER = 0.9.4 LIBSAITHRIFT_DEV = libsaithrift$(SAITHRIFT_VER)-dev_$(SAI_VER)_amd64.deb $(LIBSAITHRIFT_DEV)_SRC_PATH = $(SRC_PATH)/sonic-sairedis/SAI -ifeq ($(SAITHRIFT_V2),y) -$(LIBSAITHRIFT_DEV)_DEPENDS += $(LIBTHRIFT_0_14_1) $(LIBTHRIFT_0_14_1_DEV) $(PYTHON3_THRIFT_0_14_1) $(THRIFT_0_14_1_COMPILER) -$(LIBSAITHRIFT_DEV)_RDEPENDS += $(LIBTHRIFT_0_14_1) -$(LIBSAITHRIFT_DEV)_BUILD_ENV = SAITHRIFTV2=true SAITHRIFT_VER=v2 -else $(LIBSAITHRIFT_DEV)_DEPENDS += $(LIBTHRIFT) $(LIBTHRIFT_DEV) $(PYTHON_THRIFT) $(THRIFT_COMPILER) $(LIBSAITHRIFT_DEV)_RDEPENDS += $(LIBTHRIFT) -endif +$(LIBSAITHRIFT_DEV)_BUILD_ENV = SAITHRIFT_VER=v2 # Workaround to use python3 in build $(LIBSAITHRIFT_DEV)_DEPENDS += $(MLNX_SAI) $(MLNX_SAI_DEV) $(LIBSAITHRIFT_DEV)_RDEPENDS += $(MLNX_SAI) diff --git a/platform/mellanox/mft.mk b/platform/mellanox/mft.mk index 981c456906b3..7dc654381f5a 100644 --- a/platform/mellanox/mft.mk +++ b/platform/mellanox/mft.mk @@ -25,12 +25,10 @@ MFT = mft_$(MFT_VERSION)-$(MFT_REVISION)_amd64.deb $(MFT)_SRC_PATH = $(PLATFORM_PATH)/mft SONIC_MAKE_DEBS += $(MFT) -ifeq ($(BLDENV), bullseye) $(MFT)_DEPENDS += $(LINUX_HEADERS) $(LINUX_HEADERS_COMMON) KERNEL_MFT = kernel-mft-dkms-modules-$(KVERSION)_$(MFT_VERSION)_amd64.deb $(eval $(call add_derived_package,$(MFT),$(KERNEL_MFT))) -endif MFT_OEM = mft-oem_$(MFT_VERSION)-$(MFT_REVISION)_amd64.deb $(eval $(call add_derived_package,$(MFT),$(MFT_OEM))) diff --git a/platform/mellanox/mft/Makefile b/platform/mellanox/mft/Makefile index ed2fe7b1d1a1..755ef4afc220 100644 --- a/platform/mellanox/mft/Makefile +++ b/platform/mellanox/mft/Makefile @@ -35,7 +35,6 @@ $(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% : wget -O $(MFT_TGZ) http://www.mellanox.com/downloads/MFT/$(MFT_TGZ) tar xzf $(MFT_TGZ) -ifneq (,$(findstring bullseye,$(DEST))) pushd $(MFT_NAME)/SDEBS # put a lock here because dpkg does not allow installing packages in parallel @@ -63,7 +62,6 @@ ifneq (,$(findstring bullseye,$(DEST))) popd rm -rf $(DKMS_TMP) -endif # fix timestamp because we do not actually build tools, only kernel touch $(MFT_NAME)/DEBS/*.deb diff --git a/platform/template/docker-syncd-bullseye.mk b/platform/template/docker-syncd-bullseye.mk new file mode 100644 index 000000000000..d98d351acae5 --- /dev/null +++ b/platform/template/docker-syncd-bullseye.mk @@ -0,0 +1,33 @@ +# docker image for syncd + + +DOCKER_SYNCD_BASE_STEM = docker-syncd-$(DOCKER_SYNCD_PLATFORM_CODE) +DOCKER_SYNCD_BASE = $(DOCKER_SYNCD_BASE_STEM).gz +DOCKER_SYNCD_BASE_DBG = $(DOCKER_SYNCD_BASE_STEM)-$(DBG_IMAGE_MARK).gz + +$(DOCKER_SYNCD_BASE)_PATH = $(PLATFORM_PATH)/docker-syncd-$(DOCKER_SYNCD_PLATFORM_CODE) + +$(DOCKER_SYNCD_BASE)_FILES += $(SUPERVISOR_PROC_EXIT_LISTENER_SCRIPT) + +$(DOCKER_SYNCD_BASE)_LOAD_DOCKERS += $(DOCKER_CONFIG_ENGINE_BULLSEYE) +$(DOCKER_SYNCD_BASE)_DBG_DEPENDS += $($(DOCKER_CONFIG_ENGINE_BULLSEYE)_DBG_DEPENDS) +$(DOCKER_SYNCD_BASE)_DBG_IMAGE_PACKAGES = $($(DOCKER_CONFIG_ENGINE_BULLSEYE)_DBG_IMAGE_PACKAGES) + +SONIC_DOCKER_IMAGES += $(DOCKER_SYNCD_BASE) +ifneq ($(ENABLE_SYNCD_RPC),y) +SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_SYNCD_BASE) +endif + +SONIC_DOCKER_DBG_IMAGES += $(DOCKER_SYNCD_BASE_DBG) +ifneq ($(ENABLE_SYNCD_RPC),y) +SONIC_INSTALL_DOCKER_DBG_IMAGES += $(DOCKER_SYNCD_BASE_DBG) +endif + +$(DOCKER_SYNCD_BASE)_CONTAINER_NAME = syncd +$(DOCKER_SYNCD_BASE)_RUN_OPT += --privileged -t +$(DOCKER_SYNCD_BASE)_RUN_OPT += -v /host/machine.conf:/etc/machine.conf +$(DOCKER_SYNCD_BASE)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro + +SONIC_BULLSEYE_DOCKERS += $(DOCKER_SYNCD_BASE) +SONIC_BULLSEYE_DBG_DOCKERS += $(DOCKER_SYNCD_BASE_DBG) + diff --git a/rules/docker-platform-monitor.mk b/rules/docker-platform-monitor.mk index 21babbcb49f4..bcfd6000fa00 100644 --- a/rules/docker-platform-monitor.mk +++ b/rules/docker-platform-monitor.mk @@ -27,13 +27,13 @@ ifeq ($(PDDF_SUPPORT),y) $(DOCKER_PLATFORM_MONITOR)_PYTHON_WHEELS += $(PDDF_PLATFORM_API_BASE_PY3) endif -$(DOCKER_PLATFORM_MONITOR)_DBG_DEPENDS = $($(DOCKER_CONFIG_ENGINE_BUSTER)_DBG_DEPENDS) +$(DOCKER_PLATFORM_MONITOR)_DBG_DEPENDS = $($(DOCKER_CONFIG_ENGINE_BULLSEYE)_DBG_DEPENDS) $(DOCKER_PLATFORM_MONITOR)_DBG_DEPENDS += $(LIBSWSSCOMMON_DBG) $(LIBSENSORS_DBG) $(DOCKER_PLATFORM_MONITOR)_DBG_DEPENDS += $(LM_SENSORS_DBG) $(SENSORD_DBG) -$(DOCKER_PLATFORM_MONITOR)_DBG_IMAGE_PACKAGES = $($(DOCKER_CONFIG_ENGINE_BUSTER)_DBG_IMAGE_PACKAGES) +$(DOCKER_PLATFORM_MONITOR)_DBG_IMAGE_PACKAGES = $($(DOCKER_CONFIG_ENGINE_BULLSEYE)_DBG_IMAGE_PACKAGES) -$(DOCKER_PLATFORM_MONITOR)_LOAD_DOCKERS = $(DOCKER_CONFIG_ENGINE_BUSTER) +$(DOCKER_PLATFORM_MONITOR)_LOAD_DOCKERS = $(DOCKER_CONFIG_ENGINE_BULLSEYE) $(DOCKER_PLATFORM_MONITOR)_VERSION = 1.0.0 $(DOCKER_PLATFORM_MONITOR)_PACKAGE_NAME = pmon @@ -66,5 +66,5 @@ $(DOCKER_PLATFORM_MONITOR)_BASE_IMAGE_FILES += cmd_wrapper:/usr/sbin/SmartCmd $(DOCKER_PLATFORM_MONITOR)_BASE_IMAGE_FILES += cmd_wrapper:/usr/bin/ethtool $(DOCKER_PLATFORM_MONITOR)_FILES += $(SUPERVISOR_PROC_EXIT_LISTENER_SCRIPT) -SONIC_BUSTER_DOCKERS += $(DOCKER_PLATFORM_MONITOR) -SONIC_BUSTER_DBG_DOCKERS += $(DOCKER_PLATFORM_MONITOR_DBG) +SONIC_BULLSEYE_DOCKERS += $(DOCKER_PLATFORM_MONITOR) +SONIC_BULLSEYE_DBG_DOCKERS += $(DOCKER_PLATFORM_MONITOR_DBG) diff --git a/rules/lm-sensors.mk b/rules/lm-sensors.mk index 414aeb72b229..b33f7cc3a61c 100644 --- a/rules/lm-sensors.mk +++ b/rules/lm-sensors.mk @@ -1,11 +1,13 @@ # lm-senensors package LM_SENSORS_MAJOR_VERSION = 3 -LM_SENSORS_MINOR_VERSION = 5 +LM_SENSORS_MINOR_VERSION = 6 LM_SENSORS_PATCH_VERSION = 0 +LIBSENSORS_VERSION = 5 + LM_SENSORS_VERSION=$(LM_SENSORS_MAJOR_VERSION).$(LM_SENSORS_MINOR_VERSION).$(LM_SENSORS_PATCH_VERSION) -LM_SENSORS_VERSION_FULL=$(LM_SENSORS_VERSION)-3 +LM_SENSORS_VERSION_FULL=$(LM_SENSORS_VERSION)-7 LM_SENSORS = lm-sensors_$(LM_SENSORS_VERSION_FULL)_$(CONFIGURED_ARCH).deb $(LM_SENSORS)_SRC_PATH = $(SRC_PATH)/lm-sensors @@ -16,10 +18,10 @@ $(eval $(call add_derived_package,$(LM_SENSORS),$(LM_SENSORS_DBG))) FANCONTROL = fancontrol_$(LM_SENSORS_VERSION_FULL)_all.deb $(eval $(call add_derived_package,$(LM_SENSORS),$(FANCONTROL))) -LIBSENSORS = libsensors$(LM_SENSORS_MINOR_VERSION)_$(LM_SENSORS_VERSION_FULL)_$(CONFIGURED_ARCH).deb +LIBSENSORS = libsensors$(LIBSENSORS_VERSION)_$(LM_SENSORS_VERSION_FULL)_$(CONFIGURED_ARCH).deb $(eval $(call add_derived_package,$(LM_SENSORS),$(LIBSENSORS))) -LIBSENSORS_DBG = libsensors$(LM_SENSORS_MINOR_VERSION)-dbgsym_$(LM_SENSORS_VERSION_FULL)_$(CONFIGURED_ARCH).deb +LIBSENSORS_DBG = libsensors$(LIBSENSORS_VERSION)-dbgsym_$(LM_SENSORS_VERSION_FULL)_$(CONFIGURED_ARCH).deb $(eval $(call add_derived_package,$(LM_SENSORS),$(LIBSENSORS_DBG))) SENSORD = sensord_$(LM_SENSORS_VERSION_FULL)_$(CONFIGURED_ARCH).deb diff --git a/rules/sonic-ledd.mk b/rules/sonic-ledd.mk index 1439d2c506b0..6abd3eda11cc 100644 --- a/rules/sonic-ledd.mk +++ b/rules/sonic-ledd.mk @@ -13,7 +13,7 @@ SONIC_PYTHON_WHEELS += $(SONIC_LEDD_PY2) SONIC_LEDD_PY3 = sonic_ledd-1.1-py3-none-any.whl $(SONIC_LEDD_PY3)_SRC_PATH = $(SRC_PATH)/sonic-platform-daemons/sonic-ledd -$(SONIC_LEDD_PY3)_DEPENDS = $(SONIC_PY_COMMON_PY3) $(SONIC_LEDD_PY2) +$(SONIC_LEDD_PY3)_DEPENDS = $(SONIC_PY_COMMON_PY3) $(SONIC_LEDD_PY3)_DEBS_DEPENDS = $(LIBSWSSCOMMON) $(PYTHON3_SWSSCOMMON) $(SONIC_LEDD_PY3)_PYTHON_VERSION = 3 SONIC_PYTHON_WHEELS += $(SONIC_LEDD_PY3) diff --git a/rules/sonic-psud.mk b/rules/sonic-psud.mk index a576be3ea03a..1c878f7e7ecf 100644 --- a/rules/sonic-psud.mk +++ b/rules/sonic-psud.mk @@ -13,7 +13,7 @@ SONIC_PYTHON_WHEELS += $(SONIC_PSUD_PY2) SONIC_PSUD_PY3 = sonic_psud-1.0-py3-none-any.whl $(SONIC_PSUD_PY3)_SRC_PATH = $(SRC_PATH)/sonic-platform-daemons/sonic-psud -$(SONIC_PSUD_PY3)_DEPENDS = $(SONIC_PY_COMMON_PY3) $(SONIC_PLATFORM_COMMON_PY3) $(SONIC_PSUD_PY2) +$(SONIC_PSUD_PY3)_DEPENDS = $(SONIC_PY_COMMON_PY3) $(SONIC_PLATFORM_COMMON_PY3) $(SONIC_PSUD_PY3)_DEBS_DEPENDS = $(LIBSWSSCOMMON) $(PYTHON3_SWSSCOMMON) $(SONIC_PSUD_PY3)_PYTHON_VERSION = 3 SONIC_PYTHON_WHEELS += $(SONIC_PSUD_PY3) diff --git a/rules/sonic-syseepromd.mk b/rules/sonic-syseepromd.mk index 03cc20a38f7a..9f1ba5907128 100644 --- a/rules/sonic-syseepromd.mk +++ b/rules/sonic-syseepromd.mk @@ -13,7 +13,7 @@ SONIC_PYTHON_WHEELS += $(SONIC_SYSEEPROMD_PY2) SONIC_SYSEEPROMD_PY3 = sonic_syseepromd-1.0-py3-none-any.whl $(SONIC_SYSEEPROMD_PY3)_SRC_PATH = $(SRC_PATH)/sonic-platform-daemons/sonic-syseepromd -$(SONIC_SYSEEPROMD_PY3)_DEPENDS = $(SONIC_PY_COMMON_PY3) $(SONIC_PLATFORM_COMMON_PY3) $(SONIC_SYSEEPROMD_PY2) +$(SONIC_SYSEEPROMD_PY3)_DEPENDS = $(SONIC_PY_COMMON_PY3) $(SONIC_PLATFORM_COMMON_PY3) $(SONIC_SYSEEPROMD_PY3)_DEBS_DEPENDS = $(LIBSWSSCOMMON) $(PYTHON3_SWSSCOMMON) $(SONIC_SYSEEPROMD_PY3)_PYTHON_VERSION = 3 SONIC_PYTHON_WHEELS += $(SONIC_SYSEEPROMD_PY3) diff --git a/rules/sonic-thermalctld.mk b/rules/sonic-thermalctld.mk index a73196e674c0..eb17d3eb1aa1 100644 --- a/rules/sonic-thermalctld.mk +++ b/rules/sonic-thermalctld.mk @@ -13,7 +13,7 @@ SONIC_PYTHON_WHEELS += $(SONIC_THERMALCTLD_PY2) SONIC_THERMALCTLD_PY3 = sonic_thermalctld-1.0-py3-none-any.whl $(SONIC_THERMALCTLD_PY3)_SRC_PATH = $(SRC_PATH)/sonic-platform-daemons/sonic-thermalctld -$(SONIC_THERMALCTLD_PY3)_DEPENDS = $(SONIC_PY_COMMON_PY3) $(SONIC_PLATFORM_COMMON_PY3) $(SONIC_THERMALCTLD_PY2) +$(SONIC_THERMALCTLD_PY3)_DEPENDS = $(SONIC_PY_COMMON_PY3) $(SONIC_PLATFORM_COMMON_PY3) $(SONIC_THERMALCTLD_PY3)_DEBS_DEPENDS = $(LIBSWSSCOMMON) $(PYTHON3_SWSSCOMMON) $(SONIC_THERMALCTLD_PY3)_PYTHON_VERSION = 3 SONIC_PYTHON_WHEELS += $(SONIC_THERMALCTLD_PY3) diff --git a/rules/sonic-xcvrd.mk b/rules/sonic-xcvrd.mk index 018363f367fd..a322fbd4e1b3 100644 --- a/rules/sonic-xcvrd.mk +++ b/rules/sonic-xcvrd.mk @@ -13,7 +13,7 @@ SONIC_PYTHON_WHEELS += $(SONIC_XCVRD_PY2) SONIC_XCVRD_PY3 = sonic_xcvrd-1.0-py3-none-any.whl $(SONIC_XCVRD_PY3)_SRC_PATH = $(SRC_PATH)/sonic-platform-daemons/sonic-xcvrd -$(SONIC_XCVRD_PY3)_DEPENDS = $(SONIC_PY_COMMON_PY3) $(SONIC_XCVRD_PY2) $(SONIC_PLATFORM_COMMON_PY3) +$(SONIC_XCVRD_PY3)_DEPENDS = $(SONIC_PY_COMMON_PY3) $(SONIC_PLATFORM_COMMON_PY3) $(SONIC_XCVRD_PY3)_DEBS_DEPENDS = $(LIBSWSSCOMMON) $(PYTHON3_SWSSCOMMON) $(SONIC_XCVRD_PY3)_PYTHON_VERSION = 3 SONIC_PYTHON_WHEELS += $(SONIC_XCVRD_PY3) diff --git a/sonic-slave-bullseye/Dockerfile.j2 b/sonic-slave-bullseye/Dockerfile.j2 index 2d91a3f836c9..f190f0b35e3d 100644 --- a/sonic-slave-bullseye/Dockerfile.j2 +++ b/sonic-slave-bullseye/Dockerfile.j2 @@ -65,6 +65,9 @@ RUN apt-get update && apt-get install -y \ dh-exec \ kmod \ libtinyxml2-dev \ + python-all \ + python-dev \ + python-setuptools \ python3 \ python3-pip \ libncurses5-dev \ @@ -74,6 +77,7 @@ RUN apt-get update && apt-get install -y \ devscripts \ git-buildpackage \ perl-modules \ + libclass-accessor-perl \ libswitch-perl \ libzmq5 \ libzmq3-dev \ From 949e76a00fc156fb703d8d342d0429397f03ce16 Mon Sep 17 00:00:00 2001 From: Saikrishna Arcot Date: Tue, 10 May 2022 13:46:31 -0700 Subject: [PATCH 175/251] Update Linux kernel from 5.10.46 to 5.10.103 (#10634) Signed-off-by: Saikrishna Arcot --- build_debian.sh | 2 +- installer/x86_64/install.sh | 4 +-- platform/barefoot/bfn-modules/debian/control | 2 +- .../debian/control | 2 +- .../debian/control | 4 +-- .../sonic-platform-modules-bfn/debian/control | 2 +- .../debian/control | 2 +- platform/broadcom/saibcm-modules-dnx | 2 +- .../broadcom/saibcm-modules/debian/control | 2 +- .../debian/opennsl-modules.dirs | 2 +- .../debian/opennsl-modules.install | 14 +++++----- platform/broadcom/saibcm-modules/debian/rules | 4 +-- .../sonic-platform-modules-cel/debian/control | 8 +++--- .../debian/control | 24 ++++++++-------- .../debian/control | 8 +++--- platform/centec-arm64/sonic_fit.its | 4 +-- .../centec-arm64/tsingma-bsp/debian/control | 2 +- .../tsingma-bsp/debian/tsingma-bsp.install | 28 +++++++++---------- .../debian/control | 4 +-- .../debian/control | 2 +- .../debian/control | 6 ++-- platform/marvell-armhf/platform.conf | 4 +-- rules/linux-kernel.mk | 6 ++-- src/sonic-linux-kernel | 2 +- 24 files changed, 70 insertions(+), 70 deletions(-) diff --git a/build_debian.sh b/build_debian.sh index d99ba9d877ad..1e05f33ea350 100755 --- a/build_debian.sh +++ b/build_debian.sh @@ -33,7 +33,7 @@ CONFIGURED_ARCH=$([ -f .arch ] && cat .arch || echo amd64) ## docker engine version (with platform) DOCKER_VERSION=5:20.10.14~3-0~debian-$IMAGE_DISTRO CONTAINERD_IO_VERSION=1.5.11-1 -LINUX_KERNEL_VERSION=5.10.0-8-2 +LINUX_KERNEL_VERSION=5.10.0-12-2 ## Working directory to prepare the file system FILESYSTEM_ROOT=./fsroot diff --git a/installer/x86_64/install.sh b/installer/x86_64/install.sh index 4411e74edab0..f41a671543e8 100755 --- a/installer/x86_64/install.sh +++ b/installer/x86_64/install.sh @@ -679,13 +679,13 @@ menuentry '$demo_grub_entry' { if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi insmod part_msdos insmod ext2 - linux /$image_dir/boot/vmlinuz-5.10.0-8-2-amd64 root=$grub_cfg_root rw $GRUB_CMDLINE_LINUX \ + linux /$image_dir/boot/vmlinuz-5.10.0-12-2-amd64 root=$grub_cfg_root rw $GRUB_CMDLINE_LINUX \ net.ifnames=0 biosdevname=0 \ loop=$image_dir/$FILESYSTEM_SQUASHFS loopfstype=squashfs \ systemd.unified_cgroup_hierarchy=0 \ apparmor=1 security=apparmor varlog_size=$VAR_LOG_SIZE usbcore.autosuspend=-1 $ONIE_PLATFORM_EXTRA_CMDLINE_LINUX echo 'Loading $demo_volume_label $demo_type initial ramdisk ...' - initrd /$image_dir/boot/initrd.img-5.10.0-8-2-amd64 + initrd /$image_dir/boot/initrd.img-5.10.0-12-2-amd64 } EOF diff --git a/platform/barefoot/bfn-modules/debian/control b/platform/barefoot/bfn-modules/debian/control index 9023bdd63474..20b3a60600bc 100644 --- a/platform/barefoot/bfn-modules/debian/control +++ b/platform/barefoot/bfn-modules/debian/control @@ -7,6 +7,6 @@ Standards-Version: 3.9.3 Package: bfn-modules Architecture: amd64 -Depends: linux-image-5.10.0-8-2-amd64-unsigned +Depends: linux-image-5.10.0-12-2-amd64-unsigned Description: kernel modules for bfn asic for mmap diff --git a/platform/barefoot/sonic-platform-modules-bfn-montara/debian/control b/platform/barefoot/sonic-platform-modules-bfn-montara/debian/control index 5c5d58b9bd53..1976ad4f483e 100644 --- a/platform/barefoot/sonic-platform-modules-bfn-montara/debian/control +++ b/platform/barefoot/sonic-platform-modules-bfn-montara/debian/control @@ -7,6 +7,6 @@ Standards-Version: 3.9.3 Package: sonic-platform-modules-bfn-montara Architecture: amd64 -Depends: linux-image-5.10.0-8-2-amd64-unsigned +Depends: linux-image-5.10.0-12-2-amd64-unsigned Description: kernel modules for platform devices such as fan, led, sfp diff --git a/platform/barefoot/sonic-platform-modules-bfn-newport/debian/control b/platform/barefoot/sonic-platform-modules-bfn-newport/debian/control index 9663cc3f644a..43c4280447d6 100644 --- a/platform/barefoot/sonic-platform-modules-bfn-newport/debian/control +++ b/platform/barefoot/sonic-platform-modules-bfn-newport/debian/control @@ -7,11 +7,11 @@ Standards-Version: 3.9.3 Package: sonic-platform-modules-bfn-newport-as9516 Architecture: amd64 -Depends: linux-image-5.10.0-8-2-amd64-unsigned +Depends: linux-image-5.10.0-12-2-amd64-unsigned Description: kernel module for bfn platform fpga and scripts for the devices such as fan, led, sfp Package: sonic-platform-modules-bfn-newport-as9516bf Architecture: amd64 -Depends: linux-image-5.10.0-8-2-amd64-unsigned +Depends: linux-image-5.10.0-12-2-amd64-unsigned Description: kernel module for bfn platform fpga and scripts for the devices such as fan, led, sfp diff --git a/platform/barefoot/sonic-platform-modules-bfn/debian/control b/platform/barefoot/sonic-platform-modules-bfn/debian/control index de1a22fdb1b5..1cc22bb4684f 100644 --- a/platform/barefoot/sonic-platform-modules-bfn/debian/control +++ b/platform/barefoot/sonic-platform-modules-bfn/debian/control @@ -7,6 +7,6 @@ Standards-Version: 3.9.3 Package: sonic-platform-modules-bfn Architecture: amd64 -Depends: linux-image-5.10.0-8-2-amd64-unsigned +Depends: linux-image-5.10.0-12-2-amd64-unsigned Description: kernel modules for platform devices such as fan, led, sfp diff --git a/platform/barefoot/sonic-platform-modules-wnc-osw1800/debian/control b/platform/barefoot/sonic-platform-modules-wnc-osw1800/debian/control index bed8117da850..6449aecd5a9e 100644 --- a/platform/barefoot/sonic-platform-modules-wnc-osw1800/debian/control +++ b/platform/barefoot/sonic-platform-modules-wnc-osw1800/debian/control @@ -7,6 +7,6 @@ Standards-Version: 3.9.3 Package: platform-modules-wnc-osw1800 Architecture: amd64 -Depends: linux-image-5.10.0-8-2-amd64-unsigned +Depends: linux-image-5.10.0-12-2-amd64-unsigned Description: kernel modules for platform devices such as fan, led, sfp diff --git a/platform/broadcom/saibcm-modules-dnx b/platform/broadcom/saibcm-modules-dnx index fb4cf12529bc..8771baa40be8 160000 --- a/platform/broadcom/saibcm-modules-dnx +++ b/platform/broadcom/saibcm-modules-dnx @@ -1 +1 @@ -Subproject commit fb4cf12529bc27fffc1c988029f4db100138f133 +Subproject commit 8771baa40be8392c2cf662648fc166929efa4b64 diff --git a/platform/broadcom/saibcm-modules/debian/control b/platform/broadcom/saibcm-modules/debian/control index 37cf1213432e..341033b9fdfd 100644 --- a/platform/broadcom/saibcm-modules/debian/control +++ b/platform/broadcom/saibcm-modules/debian/control @@ -10,5 +10,5 @@ Standards-Version: 3.9.3 Package: opennsl-modules Architecture: amd64 Section: main -Depends: linux-image-5.10.0-8-2-amd64-unsigned +Depends: linux-image-5.10.0-12-2-amd64-unsigned Description: kernel modules for broadcom SAI diff --git a/platform/broadcom/saibcm-modules/debian/opennsl-modules.dirs b/platform/broadcom/saibcm-modules/debian/opennsl-modules.dirs index 2b3124646272..23d2a41500e5 100644 --- a/platform/broadcom/saibcm-modules/debian/opennsl-modules.dirs +++ b/platform/broadcom/saibcm-modules/debian/opennsl-modules.dirs @@ -1 +1 @@ -lib/modules/5.10.0-8-2-amd64/extra +lib/modules/5.10.0-12-2-amd64/extra diff --git a/platform/broadcom/saibcm-modules/debian/opennsl-modules.install b/platform/broadcom/saibcm-modules/debian/opennsl-modules.install index c739b6a5fc40..87a1453c12ac 100644 --- a/platform/broadcom/saibcm-modules/debian/opennsl-modules.install +++ b/platform/broadcom/saibcm-modules/debian/opennsl-modules.install @@ -1,8 +1,8 @@ -systems/linux/user/x86-smp_generic_64-2_6/linux-bcm-knet.ko lib/modules/5.10.0-8-2-amd64/extra -systems/linux/user/x86-smp_generic_64-2_6/linux-kernel-bde.ko lib/modules/5.10.0-8-2-amd64/extra -systems/linux/user/x86-smp_generic_64-2_6/linux-user-bde.ko lib/modules/5.10.0-8-2-amd64/extra -systems/linux/user/x86-smp_generic_64-2_6/linux-knet-cb.ko lib/modules/5.10.0-8-2-amd64/extra +systems/linux/user/x86-smp_generic_64-2_6/linux-bcm-knet.ko lib/modules/5.10.0-12-2-amd64/extra +systems/linux/user/x86-smp_generic_64-2_6/linux-kernel-bde.ko lib/modules/5.10.0-12-2-amd64/extra +systems/linux/user/x86-smp_generic_64-2_6/linux-user-bde.ko lib/modules/5.10.0-12-2-amd64/extra +systems/linux/user/x86-smp_generic_64-2_6/linux-knet-cb.ko lib/modules/5.10.0-12-2-amd64/extra systemd/opennsl-modules.service lib/systemd/system -sdklt/linux/bde/linux_ngbde.ko lib/modules/5.10.0-8-2-amd64/extra -sdklt/linux/knet/linux_ngknet.ko lib/modules/5.10.0-8-2-amd64/extra -sdklt/linux/knetcb/linux_ngknetcb.ko lib/modules/5.10.0-8-2-amd64/extra +sdklt/linux/bde/linux_ngbde.ko lib/modules/5.10.0-12-2-amd64/extra +sdklt/linux/knet/linux_ngknet.ko lib/modules/5.10.0-12-2-amd64/extra +sdklt/linux/knetcb/linux_ngknetcb.ko lib/modules/5.10.0-12-2-amd64/extra diff --git a/platform/broadcom/saibcm-modules/debian/rules b/platform/broadcom/saibcm-modules/debian/rules index b092d3d0c635..e013317233bc 100755 --- a/platform/broadcom/saibcm-modules/debian/rules +++ b/platform/broadcom/saibcm-modules/debian/rules @@ -34,8 +34,8 @@ sname:=opennsl PACKAGE=opennsl-modules # modifieable for experiments or debugging m-a MA_DIR ?= /usr/share/modass -KVERSION ?= 5.10.0-8-2-amd64 -KERNVERSION ?= 5.10.0-8-2 +KVERSION ?= 5.10.0-12-2-amd64 +KERNVERSION ?= 5.10.0-12-2 # load generic variable handling -include $(MA_DIR)/include/generic.make diff --git a/platform/broadcom/sonic-platform-modules-cel/debian/control b/platform/broadcom/sonic-platform-modules-cel/debian/control index 48ae0ed83735..605a3cd0a834 100644 --- a/platform/broadcom/sonic-platform-modules-cel/debian/control +++ b/platform/broadcom/sonic-platform-modules-cel/debian/control @@ -7,21 +7,21 @@ Standards-Version: 3.9.3 Package: platform-modules-dx010 Architecture: amd64 -Depends: linux-image-5.10.0-8-2-amd64-unsigned +Depends: linux-image-5.10.0-12-2-amd64-unsigned Description: kernel modules for platform devices such as fan, led, sfp Package: platform-modules-haliburton Architecture: amd64 -Depends: linux-image-5.10.0-8-2-amd64-unsigned +Depends: linux-image-5.10.0-12-2-amd64-unsigned Description: kernel modules for platform devices such as fan, led, sfp Package: platform-modules-seastone2 Architecture: amd64 -Depends: linux-image-5.10.0-8-2-amd64-unsigned +Depends: linux-image-5.10.0-12-2-amd64-unsigned Description: kernel modules for platform devices such as led, sfp Package: platform-modules-silverstone Architecture: amd64 -Depends: linux-image-5.10.0-8-2-amd64-unsigned +Depends: linux-image-5.10.0-12-2-amd64-unsigned Description: kernel modules for platform devices such as led, sfp. diff --git a/platform/broadcom/sonic-platform-modules-dell/debian/control b/platform/broadcom/sonic-platform-modules-dell/debian/control index da3f2da58625..b16a3d790462 100644 --- a/platform/broadcom/sonic-platform-modules-dell/debian/control +++ b/platform/broadcom/sonic-platform-modules-dell/debian/control @@ -7,60 +7,60 @@ Standards-Version: 3.9.3 Package: platform-modules-s6000 Architecture: amd64 -Depends: linux-image-5.10.0-8-2-amd64-unsigned +Depends: linux-image-5.10.0-12-2-amd64-unsigned Description: kernel modules for platform devices such as fan, led, sfp Package: platform-modules-z9100 Architecture: amd64 -Depends: linux-image-5.10.0-8-2-amd64-unsigned +Depends: linux-image-5.10.0-12-2-amd64-unsigned Description: kernel modules for platform devices such as fan, led, sfp Package: platform-modules-s6100 Architecture: amd64 -Depends: linux-image-5.10.0-8-2-amd64-unsigned +Depends: linux-image-5.10.0-12-2-amd64-unsigned Description: kernel modules for platform devices such as fan, led, sfp Package: platform-modules-z9264f Architecture: amd64 -Depends: linux-image-5.10.0-8-2-amd64-unsigned +Depends: linux-image-5.10.0-12-2-amd64-unsigned Description: kernel modules for platform devices such as fan, led, sfp Package: platform-modules-s5212f Architecture: amd64 -Depends: linux-image-5.10.0-8-2-amd64-unsigned +Depends: linux-image-5.10.0-12-2-amd64-unsigned Description: kernel modules for platform devices such as fan, led, sfp Package: platform-modules-s5224f Architecture: amd64 -Depends: linux-image-5.10.0-8-2-amd64-unsigned +Depends: linux-image-5.10.0-12-2-amd64-unsigned Description: kernel modules for platform devices such as fan, led, sfp Package: platform-modules-s5232f Architecture: amd64 -Depends: linux-image-5.10.0-8-2-amd64-unsigned +Depends: linux-image-5.10.0-12-2-amd64-unsigned Description: kernel modules for platform devices such as fan, led, sfp Package: platform-modules-s5248f Architecture: amd64 -Depends: linux-image-5.10.0-8-2-amd64-unsigned +Depends: linux-image-5.10.0-12-2-amd64-unsigned Description: kernel modules for platform devices such as fan, led, sfp Package: platform-modules-n3248te Architecture: amd64 -Depends: linux-image-5.10.0-8-2-amd64-unsigned +Depends: linux-image-5.10.0-12-2-amd64-unsigned Description: kernel modules for platform devices such as fan, led, sfp Package: platform-modules-z9332f Architecture: amd64 -Depends: linux-image-5.10.0-8-2-amd64-unsigned +Depends: linux-image-5.10.0-12-2-amd64-unsigned Description: kernel modules for platform devices such as fan, led, sfp Package: platform-modules-n3248pxe Architecture: amd64 -Depends: linux-image-5.10.0-8-2-amd64-unsigned +Depends: linux-image-5.10.0-12-2-amd64-unsigned Description: kernel modules for platform devices such as fan, led, sfp Package: platform-modules-s5296f Architecture: amd64 -Depends: linux-image-5.10.0-8-2-amd64-unsigned +Depends: linux-image-5.10.0-12-2-amd64-unsigned Description: kernel modules for platform devices such as fan, led, sfp diff --git a/platform/centec-arm64/sonic-platform-modules-e530/debian/control b/platform/centec-arm64/sonic-platform-modules-e530/debian/control index 2e8becc2c718..5b9903c28bb3 100644 --- a/platform/centec-arm64/sonic-platform-modules-e530/debian/control +++ b/platform/centec-arm64/sonic-platform-modules-e530/debian/control @@ -7,20 +7,20 @@ Standards-Version: 3.9.3 Package: platform-modules-e530-48t4x-p Architecture: arm64 -Depends: linux-image-5.10.0-8-2-arm64-unsigned +Depends: linux-image-5.10.0-12-2-arm64-unsigned Description: kernel modules for platform devices such as fan, led, sfp Package: platform-modules-e530-24x2c Architecture: arm64 -Depends: linux-image-5.10.0-8-2-arm64-unsigned +Depends: linux-image-5.10.0-12-2-arm64-unsigned Description: kernel modules for platform devices such as fan, led, sfp Package: platform-modules-e530-48s4x Architecture: arm64 -Depends: linux-image-5.10.0-8-2-arm64-unsigned +Depends: linux-image-5.10.0-12-2-arm64-unsigned Description: kernel modules for platform devices such as fan, led, sfp Package: platform-modules-e530-24x2q Architecture: arm64 -Depends: linux-image-5.10.0-8-2-arm64-unsigned +Depends: linux-image-5.10.0-12-2-arm64-unsigned Description: kernel modules for platform devices such as fan, led, sfp diff --git a/platform/centec-arm64/sonic_fit.its b/platform/centec-arm64/sonic_fit.its index 71b013ab3221..ef59411b653e 100644 --- a/platform/centec-arm64/sonic_fit.its +++ b/platform/centec-arm64/sonic_fit.its @@ -12,7 +12,7 @@ images { kernel_ctc { description = "ARM64 Kernel"; - data = /incbin/("./vmlinuz-5.10.0-8-2-arm64"); + data = /incbin/("./vmlinuz-5.10.0-12-2-arm64"); type = "kernel"; arch = "arm64"; os = "linux"; @@ -25,7 +25,7 @@ }; initramfs { description = "initramfs"; - data = /incbin/("./initrd.img-5.10.0-8-2-arm64"); + data = /incbin/("./initrd.img-5.10.0-12-2-arm64"); type = "ramdisk"; arch = "arm64"; os = "linux"; diff --git a/platform/centec-arm64/tsingma-bsp/debian/control b/platform/centec-arm64/tsingma-bsp/debian/control index 9be7aa41d47e..6710cf311551 100644 --- a/platform/centec-arm64/tsingma-bsp/debian/control +++ b/platform/centec-arm64/tsingma-bsp/debian/control @@ -7,5 +7,5 @@ Standards-Version: 3.9.3 Package: tsingma-bsp Architecture: arm64 -Depends: linux-image-5.10.0-8-2-arm64-unsigned +Depends: linux-image-5.10.0-12-2-arm64-unsigned Description: kernel modules for tsingma bsp diff --git a/platform/centec-arm64/tsingma-bsp/debian/tsingma-bsp.install b/platform/centec-arm64/tsingma-bsp/debian/tsingma-bsp.install index ea3262bff452..64fdb498e0bd 100644 --- a/platform/centec-arm64/tsingma-bsp/debian/tsingma-bsp.install +++ b/platform/centec-arm64/tsingma-bsp/debian/tsingma-bsp.install @@ -1,17 +1,17 @@ -src/ctc5236-mc/ctc5236-mc.ko /lib/modules/5.10.0-8-2-arm64/kernel/extra -src/pwm-ctc/pwm-ctc.ko /lib/modules/5.10.0-8-2-arm64/kernel/extra -src/ctc5236_switch/ctc5236_switch.ko /lib/modules/5.10.0-8-2-arm64/kernel/extra -src/pinctrl-ctc/pinctrl-ctc.ko /lib/modules/5.10.0-8-2-arm64/kernel/extra -src/ctc_wdt/ctc_wdt.ko /lib/modules/5.10.0-8-2-arm64/kernel/extra -src/ctcmac/ctcmac.ko /lib/modules/5.10.0-8-2-arm64/kernel/extra -src/ctcmac/ctc5236_mdio.ko /lib/modules/5.10.0-8-2-arm64/kernel/extra -src/ctc-phy/mars.ko /lib/modules/5.10.0-8-2-arm64/kernel/extra -src/i2c-ctc/i2c-ctc.ko /lib/modules/5.10.0-8-2-arm64/kernel/extra -src/gpio-ctc/gpio-ctc.ko /lib/modules/5.10.0-8-2-arm64/kernel/extra -src/ehci-ctc/ehci-ctc.ko /lib/modules/5.10.0-8-2-arm64/kernel/extra -src/rtc-sd2405/rtc-sd2405.ko /lib/modules/5.10.0-8-2-arm64/kernel/extra -src/sdhci-ctc5236/sdhci-ctc5236.ko /lib/modules/5.10.0-8-2-arm64/kernel/extra -src/spi-ctc-qspi/spi-ctc-qspi.ko /lib/modules/5.10.0-8-2-arm64/kernel/extra +src/ctc5236-mc/ctc5236-mc.ko /lib/modules/5.10.0-12-2-arm64/kernel/extra +src/pwm-ctc/pwm-ctc.ko /lib/modules/5.10.0-12-2-arm64/kernel/extra +src/ctc5236_switch/ctc5236_switch.ko /lib/modules/5.10.0-12-2-arm64/kernel/extra +src/pinctrl-ctc/pinctrl-ctc.ko /lib/modules/5.10.0-12-2-arm64/kernel/extra +src/ctc_wdt/ctc_wdt.ko /lib/modules/5.10.0-12-2-arm64/kernel/extra +src/ctcmac/ctcmac.ko /lib/modules/5.10.0-12-2-arm64/kernel/extra +src/ctcmac/ctc5236_mdio.ko /lib/modules/5.10.0-12-2-arm64/kernel/extra +src/ctc-phy/mars.ko /lib/modules/5.10.0-12-2-arm64/kernel/extra +src/i2c-ctc/i2c-ctc.ko /lib/modules/5.10.0-12-2-arm64/kernel/extra +src/gpio-ctc/gpio-ctc.ko /lib/modules/5.10.0-12-2-arm64/kernel/extra +src/ehci-ctc/ehci-ctc.ko /lib/modules/5.10.0-12-2-arm64/kernel/extra +src/rtc-sd2405/rtc-sd2405.ko /lib/modules/5.10.0-12-2-arm64/kernel/extra +src/sdhci-ctc5236/sdhci-ctc5236.ko /lib/modules/5.10.0-12-2-arm64/kernel/extra +src/spi-ctc-qspi/spi-ctc-qspi.ko /lib/modules/5.10.0-12-2-arm64/kernel/extra src/ctc-dts/e530-ctc5236.dtb /boot/ src/config/fw_env.config /etc/ src/config/tsingma-bsp.service /lib/systemd/system diff --git a/platform/centec/sonic-platform-modules-e582/debian/control b/platform/centec/sonic-platform-modules-e582/debian/control index cfd5e45d891c..3ae51924f155 100644 --- a/platform/centec/sonic-platform-modules-e582/debian/control +++ b/platform/centec/sonic-platform-modules-e582/debian/control @@ -7,11 +7,11 @@ Standards-Version: 3.9.3 Package: platform-modules-e582-48x2q4z Architecture: amd64 -Depends: linux-image-5.10.0-8-2-amd64-unsigned +Depends: linux-image-5.10.0-12-2-amd64-unsigned Description: kernel modules for platform devices such as fan, led, sfp Package: platform-modules-e582-48x6q Architecture: amd64 -Depends: linux-image-5.10.0-8-2-amd64-unsigned +Depends: linux-image-5.10.0-12-2-amd64-unsigned Description: kernel modules for platform devices such as fan, led, sfp diff --git a/platform/centec/sonic-platform-modules-embedway/debian/control b/platform/centec/sonic-platform-modules-embedway/debian/control index 1e51f7bc05c9..0292565ecca5 100644 --- a/platform/centec/sonic-platform-modules-embedway/debian/control +++ b/platform/centec/sonic-platform-modules-embedway/debian/control @@ -7,6 +7,6 @@ Standards-Version: 3.9.3 Package: platform-modules-embedway-es6220 Architecture: amd64 -Depends: linux-image-5.10.0-8-2-amd64-unsigned +Depends: linux-image-5.10.0-12-2-amd64-unsigned Description: kernel modules for platform devices such as fan, led, sfp diff --git a/platform/centec/sonic-platform-modules-v682/debian/control b/platform/centec/sonic-platform-modules-v682/debian/control index 3460d4b00ba5..d4101a48d2cb 100644 --- a/platform/centec/sonic-platform-modules-v682/debian/control +++ b/platform/centec/sonic-platform-modules-v682/debian/control @@ -7,15 +7,15 @@ Standards-Version: 3.9.3 Package: platform-modules-v682-48y8c-d Architecture: amd64 -Depends: linux-image-5.10.0-8-2-amd64-unsigned +Depends: linux-image-5.10.0-12-2-amd64-unsigned Description: kernel modules for platform devices such as fan, led, sfp Package: platform-modules-v682-48y8c Architecture: amd64 -Depends: linux-image-5.10.0-8-2-amd64-unsigned +Depends: linux-image-5.10.0-12-2-amd64-unsigned Description: kernel modules for platform devices such as fan, led, sfp Package: platform-modules-v682-48x8c Architecture: amd64 -Depends: linux-image-5.10.0-8-2-amd64-unsigned +Depends: linux-image-5.10.0-12-2-amd64-unsigned Description: kernel modules for platform devices such as fan, led, sfp diff --git a/platform/marvell-armhf/platform.conf b/platform/marvell-armhf/platform.conf index 0ef500e16e4f..6dd8e238f98e 100644 --- a/platform/marvell-armhf/platform.conf +++ b/platform/marvell-armhf/platform.conf @@ -11,8 +11,8 @@ fdt_high=0x10fffff initrd_addr=0x2000000 VAR_LOG=512 -kernel_fname="/boot/vmlinuz-5.10.0-8-2-armmp" -initrd_fname="/boot/initrd.img-5.10.0-8-2-armmp" +kernel_fname="/boot/vmlinuz-5.10.0-12-2-armmp" +initrd_fname="/boot/initrd.img-5.10.0-12-2-armmp" fdt_fname="/boot/armada-385-ET6448M_4G_Nand.dtb" if [ "$install_env" = "onie" ]; then diff --git a/rules/linux-kernel.mk b/rules/linux-kernel.mk index b8fb093dd318..b51c4d12d05f 100644 --- a/rules/linux-kernel.mk +++ b/rules/linux-kernel.mk @@ -1,9 +1,9 @@ # linux kernel package -KVERSION_SHORT = 5.10.0-8-2 +KVERSION_SHORT = 5.10.0-12-2 KVERSION = $(KVERSION_SHORT)-$(CONFIGURED_ARCH) -KERNEL_VERSION = 5.10.46 -KERNEL_SUBVERSION = 4 +KERNEL_VERSION = 5.10.103 +KERNEL_SUBVERSION = 1 ifeq ($(CONFIGURED_ARCH), armhf) # Override kernel version for ARMHF as it uses arm MP (multi-platform) for short version KVERSION = $(KVERSION_SHORT)-armmp diff --git a/src/sonic-linux-kernel b/src/sonic-linux-kernel index 10ef3904d940..b9083b1a271e 160000 --- a/src/sonic-linux-kernel +++ b/src/sonic-linux-kernel @@ -1 +1 @@ -Subproject commit 10ef3904d9401954b66915b7f5466e3f7591e7fb +Subproject commit b9083b1a271e63757bef4fcd914ed524bd3c35c9 From 04175eb34ab10b861281476d59ea49f15a553da3 Mon Sep 17 00:00:00 2001 From: rajendra-dendukuri <47423477+rajendra-dendukuri@users.noreply.github.com> Date: Wed, 11 May 2022 02:25:06 -0400 Subject: [PATCH 176/251] SONiC Yang model support for Kdump (#10786) #### Why I did it Created SONiC Yang model for Kdump Tables: KDUMP #### How I did it Defined Yang models for NAT based on Guideline doc: https://github.com/Azure/SONiC/blob/master/doc/mgmt/SONiC_YANG_Model_Guidelines.md and https://github.com/Azure/sonic-utilities/blob/master/doc/Command-Reference.md #### How to verify it Added test cases to verify it. --- src/sonic-yang-models/doc/Configuration.md | 15 +++++ src/sonic-yang-models/setup.py | 2 + .../tests/files/sample_config_db.json | 10 +++- .../tests/yang_model_tests/tests/kdump.json | 19 ++++++ .../yang_model_tests/tests_config/kdump.json | 57 ++++++++++++++++++ .../yang-models/sonic-kdump.yang | 60 +++++++++++++++++++ 6 files changed, 162 insertions(+), 1 deletion(-) create mode 100644 src/sonic-yang-models/tests/yang_model_tests/tests/kdump.json create mode 100644 src/sonic-yang-models/tests/yang_model_tests/tests_config/kdump.json create mode 100644 src/sonic-yang-models/yang-models/sonic-kdump.yang diff --git a/src/sonic-yang-models/doc/Configuration.md b/src/sonic-yang-models/doc/Configuration.md index b5890681ce41..9a8f2a9fe285 100644 --- a/src/sonic-yang-models/doc/Configuration.md +++ b/src/sonic-yang-models/doc/Configuration.md @@ -25,6 +25,7 @@ Table of Contents * [Device neighbor metada](#device-neighbor-metada) * [DSCP_TO_TC_MAP](#dscp_to_tc_map) * [FLEX_COUNTER_TABLE](#flex_counter_table) + * [KDUMP](#kdump) * [L2 Neighbors](#l2-neighbors) * [Loopback Interface](#loopback-interface) * [LOSSLESS_TRAFFIC_PATTERN](#LOSSLESS_TRAFFIC_PATTERN) @@ -861,6 +862,20 @@ instance is supported in SONiC. ``` +### KDUMP + +``` +{ + "KDUMP": { + "config": { + "enabled": "true", + "num_dumps": "3", + "memory": "0M-2G:256M,2G-4G:256M,4G-8G:384M,8G-:448M" + } + } +} + +``` ### L2 Neighbors diff --git a/src/sonic-yang-models/setup.py b/src/sonic-yang-models/setup.py index 2b55946cc144..1298b768bafb 100644 --- a/src/sonic-yang-models/setup.py +++ b/src/sonic-yang-models/setup.py @@ -105,6 +105,7 @@ def run(self): './yang-models/sonic-flex_counter.yang', './yang-models/sonic-feature.yang', './yang-models/sonic-interface.yang', + './yang-models/sonic-kdump.yang', './yang-models/sonic-loopback-interface.yang', './yang-models/sonic-mgmt_interface.yang', './yang-models/sonic-mgmt_port.yang', @@ -164,6 +165,7 @@ def run(self): './cvlyang-models/sonic-flex_counter.yang', './cvlyang-models/sonic-feature.yang', './cvlyang-models/sonic-interface.yang', + './cvlyang-models/sonic-kdump.yang', './cvlyang-models/sonic-loopback-interface.yang', './cvlyang-models/sonic-mgmt_interface.yang', './cvlyang-models/sonic-mgmt_port.yang', diff --git a/src/sonic-yang-models/tests/files/sample_config_db.json b/src/sonic-yang-models/tests/files/sample_config_db.json index a214560de759..5af414359b29 100644 --- a/src/sonic-yang-models/tests/files/sample_config_db.json +++ b/src/sonic-yang-models/tests/files/sample_config_db.json @@ -1792,7 +1792,15 @@ "rrclient": "0", "admin_status": "up" } - } + }, + + "KDUMP": { + "config": { + "enabled": "true", + "num_dumps": "3", + "memory": "0M-2G:256M,2G-4G:256M,4G-8G:384M,8G-:448M" + } + } }, "SAMPLE_CONFIG_DB_UNKNOWN": { "UNKNOWN_TABLE": { diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests/kdump.json b/src/sonic-yang-models/tests/yang_model_tests/tests/kdump.json new file mode 100644 index 000000000000..29f026133527 --- /dev/null +++ b/src/sonic-yang-models/tests/yang_model_tests/tests/kdump.json @@ -0,0 +1,19 @@ +{ + "KDUMP_WITH_VALID_VALUES": { + "desc": "Configuring the kdump with valid values." + }, + "KDUMP_WITH_VALID_VALUES_2": { + "desc": "Configuring the kdump with valid values." + }, + "KDUMP_WITH_VALID_VALUES_3": { + "desc": "Configuring the kdump with valid values." + }, + "KDUMP_WITH_INVALID_NUM_DUMPS": { + "desc": "Configuring kdump config with a invalid number of allowed kdumps.", + "eStr": ["pattern", "does not satisfy"] + }, + "KDUMP_WITH_INVALID_MEMORY": { + "desc": "Configuring kdump config with invalid memory config.", + "eStr": ["pattern", "does not satisfy"] + } +} diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests_config/kdump.json b/src/sonic-yang-models/tests/yang_model_tests/tests_config/kdump.json new file mode 100644 index 000000000000..fe31148f50ae --- /dev/null +++ b/src/sonic-yang-models/tests/yang_model_tests/tests_config/kdump.json @@ -0,0 +1,57 @@ +{ + "KDUMP_WITH_VALID_VALUES": { + "sonic-kdump:sonic-kdump": { + "sonic-kdump:KDUMP": { + "config": { + "enabled": "true", + "num_dumps": "3", + "memory": "0M-2G:256M,2G-4G:256M,4G-8G:384M,8G-:448M" + } + } + } + }, + "KDUMP_WITH_VALID_VALUES_2": { + "sonic-kdump:sonic-kdump": { + "sonic-kdump:KDUMP": { + "config": { + "enabled": "true", + "num_dumps": "9", + "memory": "512M" + } + } + } + }, + "KDUMP_WITH_VALID_VALUES_3": { + "sonic-kdump:sonic-kdump": { + "sonic-kdump:KDUMP": { + "config": { + "enabled": "false", + "num_dumps": "1", + "memory": "512M" + } + } + } + }, + "KDUMP_WITH_INVALID_NUM_DUMPS": { + "sonic-kdump:sonic-kdump": { + "sonic-kdump:KDUMP": { + "config": { + "enabled": "true", + "num_dumps": "100", + "memory": "0M-2G:256M,2G-4G:256M,4G-8G:384M,8G-:448M" + } + } + } + }, + "KDUMP_WITH_INVALID_MEMORY": { + "sonic-kdump:sonic-kdump": { + "sonic-kdump:KDUMP": { + "config": { + "enabled": "true", + "num_dumps": "3", + "memory": "666" + } + } + } + } +} diff --git a/src/sonic-yang-models/yang-models/sonic-kdump.yang b/src/sonic-yang-models/yang-models/sonic-kdump.yang new file mode 100644 index 000000000000..c7640ee0c754 --- /dev/null +++ b/src/sonic-yang-models/yang-models/sonic-kdump.yang @@ -0,0 +1,60 @@ +module sonic-kdump { + namespace "http://github.com/Azure/sonic-kdump"; + prefix kdump; + yang-version 1.1; + + organization + "SONiC"; + + contact + "SONiC"; + + description + "This module contains a collection of YANG definitions for the + Linux Kernel crash dumping (Kdump) mechanism. The Kdump feature + is used to detect and record Linux kernel crash events."; + + revision 2022-05-09 { + description + "Initial revision."; + } + + container sonic-kdump { + container KDUMP { + description + "Kdump configuration parameters"; + container config { + description "Top level grouping for attributes for Kdump."; + leaf enabled { + type boolean; + description + "Enable or Disable the Kdump mechanism"; + } + + leaf memory { + type string { + pattern "(((([0-9]+[MG])?(-([0-9]+[MG])?):)?[0-9]+[MG],?)+)"; + } + description + "Memory reserved for loading the crash handler kernel. The amount + of reserved memory can be variable, depending on the total amount + of installed memory. The syntax for variable memory reservation is + :,:. For example, 512M-2G:64M,2G-:128M, + where a memory of 64MB is reserved for the crash kernel for systems + with installed memory between 512MB and 2GB, 128MB is reserved for + systems that have more than 2GB installed memory. An absolute memory + value can also be specified in the format M or G. + For example, 512M."; + } + + leaf num_dumps { + type uint8 { + range "1 .. 9"; + } + description + "Maximum number of Kernel Core files Stored"; + } + } + } + } +} From dee7655526699e3f66bf3744e098f03203345449 Mon Sep 17 00:00:00 2001 From: "Marty Y. Lok" <76118573+mlok-nokia@users.noreply.github.com> Date: Wed, 11 May 2022 13:07:04 -0400 Subject: [PATCH 177/251] [reboiot-cause] Fix a broken symlink of previous-reboot-cause file removal issue (#10751) Signed-off-by: mlok --- src/sonic-host-services/scripts/determine-reboot-cause | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-host-services/scripts/determine-reboot-cause b/src/sonic-host-services/scripts/determine-reboot-cause index 1408ad0e2952..21b13d86aad8 100755 --- a/src/sonic-host-services/scripts/determine-reboot-cause +++ b/src/sonic-host-services/scripts/determine-reboot-cause @@ -174,7 +174,7 @@ def main(): os.makedirs(REBOOT_CAUSE_DIR) # Remove stale PREVIOUS_REBOOT_CAUSE_FILE if it exists - if os.path.exists(PREVIOUS_REBOOT_CAUSE_FILE): + if os.path.exists(PREVIOUS_REBOOT_CAUSE_FILE) or os.path.islink(PREVIOUS_REBOOT_CAUSE_FILE): os.remove(PREVIOUS_REBOOT_CAUSE_FILE) # This variable is kept for future-use purpose. When proc_cmd_line/vendor/software provides From 9887e76ca2aa85424b531267ba43c84b99640a58 Mon Sep 17 00:00:00 2001 From: Junchao-Mellanox <57339448+Junchao-Mellanox@users.noreply.github.com> Date: Thu, 12 May 2022 12:36:59 +0800 Subject: [PATCH 178/251] [submodule] Advance sonic-utilities pointer (#10670) 288c2d8 Revert "[scripts/fast-reboot] Shutdown remaining containers through systemd (#2133)" (#2161) bce4694 [autoneg] add support for remote speed advertisement (#2124) a73f156 [show][vrf]Fixing show vrf to include vlan subinterface (#2158) 7a06457 [auto_ts] Enable register/de-register auto_ts config for APP Extension (#2139) 083ebcc Add transceiver-info items advertised for cmis-supported moddules (#2135) 0811214 Validate destination port is not LAG (#2053) 6ab1c51 [minigraph] Consume golden_config_db.json while loading minigraph (#2140) c37a957 [Kdump] Remove the duplicate logic if Kdump was disabled (#2128) 1143869 Ordering fix for sfpshow eeprom (#2113) fdb79b8 Allow fw update for other boot type against on the previous "none" boot fw update (#2040) a54a091 [GCU] Supressing YANG errors from libyang while sorting (#1991) fbfa8bc [GCU] Enabling AddRack and adding RemoveRack tests (#2143) d012be9 [Command-Reference] Add CLI docs for route flow counter (#2069) 8c07d59 [Mellanox] [reboot] [asan] stop asan-enabled containers on reboot (#2107) 697aae3 Fix speed parsing when speed is NOT fetched from APPL_DB (#2138) 22a388b [show] fix get routing stack routine (#2137) cb3a047 Support option --ports of config qos reload for reloading ports' QoS and buffer configuration to default (#2125) 154a801 Enhance "config interface type/advertised-type" to be blocked on RJ45 ports (#2112) 3732ac5 Add CLI for route flow counter feature (#2031) 29771e7 [techsupport] improve robustness (#2117) f9dc681 [intfutil] Display RJ45 port and portchannel speed in 'M' instead of 'G' when it's <= 1000M (#2110) 781ae9f [config] Do not enable pfcwd for BmcMgmtToRRouter (#2136) 23e9398 [scripts/fast-reboot] Shutdown remaining containers through systemd (#2133) 576c9ef [scripts/fast-reboot] stop timers in advance (#2131) 4dad79c bugfix: incorrect command for portchannel creation (#2134) c17b1f4 [show][muxcable] Decrease the timeout for show mux status/hwmode (#2130) 49d61f8 [scripts/fast-reboot] cleanup (#2132) 52ca324 [config/config_mgmt.py]: Fix dpb issue with upper case mac in (#2066) 9e2fbf4 Update db_migrator to support `pfcwd_sw_enable` (#2087) 4010bd0 FGNHG CLI changes (#1588) 6bd54d0 Fix 'show mac' output when FDB entry for default vlan is None instead of 1 (#2126) --- src/sonic-utilities | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-utilities b/src/sonic-utilities index f70dc27827a8..288c2d8d9328 160000 --- a/src/sonic-utilities +++ b/src/sonic-utilities @@ -1 +1 @@ -Subproject commit f70dc27827a88d70e91e15ecdcde2ebbc446116d +Subproject commit 288c2d8d932899c71c34d360983cee640a9694fd From 992d233090e120bd503b3ee6dde5828aec18674f Mon Sep 17 00:00:00 2001 From: Ze Gan Date: Thu, 12 May 2022 13:21:25 +0800 Subject: [PATCH 179/251] Add pool: sonictest-sonic-t0 (#10635) Signed-off-by: Ze Gan Existing pools cannot test MACsec scenario, So I add sonictest-sonic-t0 pool that can run MACsec testcases. --- .azure-pipelines/run-test-template.yml | 5 ++++- azure-pipelines.yml | 14 ++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/.azure-pipelines/run-test-template.yml b/.azure-pipelines/run-test-template.yml index 2ab707287c7c..2a75d1bc32dc 100644 --- a/.azure-pipelines/run-test-template.yml +++ b/.azure-pipelines/run-test-template.yml @@ -7,6 +7,9 @@ parameters: type: string - name: ptf_name type: string +- name: vmtype + type: string + default: 'ceos' - name: section type: string default: '' @@ -41,7 +44,7 @@ steps: git reset --hard origin/master sed -i s/use_own_value/${username}/ ansible/veos_vtb echo aaa > ansible/password.txt - docker exec sonic-mgmt bash -c "pushd /data/sonic-mgmt/ansible;./testbed-cli.sh -d /data/sonic-vm -m $(inventory) -t $(testbed_file) -k ceos refresh-dut ${{ parameters.tbname }} password.txt" && sleep 180 + docker exec sonic-mgmt bash -c "pushd /data/sonic-mgmt/ansible;./testbed-cli.sh -d /data/sonic-vm -m $(inventory) -t $(testbed_file) -k ${{ parameters.vmtype }} refresh-dut ${{ parameters.tbname }} password.txt" && sleep 180 displayName: "Setup testbed" - script: | diff --git a/azure-pipelines.yml b/azure-pipelines.yml index f44704592c9b..7936f8f4f6f2 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -193,3 +193,17 @@ stages: tbname: vms-kvm-t1-lag ptf_name: ptf_vms6-2 tbtype: t1-lag + + - job: + pool: sonictest-sonic-t0 + displayName: "kvmtest-t0-sonic" + timeoutInMinutes: 360 + + steps: + - template: .azure-pipelines/run-test-template.yml + parameters: + dut: vlab-02 + tbname: vms-kvm-t0-64-32 + ptf_name: ptf_vms6-1 + tbtype: t0-sonic + vmtype: vsonic From f4b22f67a419ce7e8ac346fe262a5dde8a78aa77 Mon Sep 17 00:00:00 2001 From: Arun Saravanan Balachandran <52521751+ArunSaravananBalachandran@users.noreply.github.com> Date: Thu, 12 May 2022 20:41:02 +0530 Subject: [PATCH 180/251] [initramfs]: SSD firmware upgrade in initramfs (#10748) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Why I did it To upgrade SSD firmware in initramfs while rebooting from SONiC to SONiC and during NOS to SONiC migration. How I did it New option 'ssd-upgrader-part’ is introduced in grub command line, to indicate the partition and its filesystem type in which the SSD firmware updater is present. ‘ssd-upgrader-part’ syntax is ssd-upgrader-part=,. Example: ssd-upgrader-part=/dev/sda8,ext4 A new initramfs script ‘ssd-upgrade’ is included in init-premount and it invokes the SSD firmware updater (ssd-fw-upgrade) present in the partition indicated by the boot option 'ssd-upgrader-part' How to verify it In SONiC, the SSD firmware updater is copied to “/host/” directory. Fast-reboot is to be initiated with the ‘-u’ option ([scripts/fast-reboot] Add option to include ssd-upgrader-part boot option with SONiC partition sonic-utilities#2150) After reboot, while booting into SONiC the SSD firmware updater will be executed in initramfs. --- build_debian.sh | 4 ++++ files/image_config/platform/rc.local | 3 +++ files/initramfs-tools/ssd-upgrade | 35 ++++++++++++++++++++++++++++ files/initramfs-tools/union-mount.j2 | 5 ++++ 4 files changed, 47 insertions(+) create mode 100644 files/initramfs-tools/ssd-upgrade diff --git a/build_debian.sh b/build_debian.sh index 1e05f33ea350..676c0298ec7d 100755 --- a/build_debian.sh +++ b/build_debian.sh @@ -189,6 +189,10 @@ sudo chmod +x $FILESYSTEM_ROOT/etc/initramfs-tools/scripts/init-premount/arista- sudo cp files/initramfs-tools/resize-rootfs $FILESYSTEM_ROOT/etc/initramfs-tools/scripts/init-premount/resize-rootfs sudo chmod +x $FILESYSTEM_ROOT/etc/initramfs-tools/scripts/init-premount/resize-rootfs +# Hook into initramfs: upgrade SSD from initramfs +sudo cp files/initramfs-tools/ssd-upgrade $FILESYSTEM_ROOT/etc/initramfs-tools/scripts/init-premount/ssd-upgrade +sudo chmod +x $FILESYSTEM_ROOT/etc/initramfs-tools/scripts/init-premount/ssd-upgrade + # Hook into initramfs: run fsck to repair a non-clean filesystem prior to be mounted sudo cp files/initramfs-tools/fsck-rootfs $FILESYSTEM_ROOT/etc/initramfs-tools/scripts/init-premount/fsck-rootfs sudo chmod +x $FILESYSTEM_ROOT/etc/initramfs-tools/scripts/init-premount/fsck-rootfs diff --git a/files/image_config/platform/rc.local b/files/image_config/platform/rc.local index 7043da9fe143..647d552427ac 100755 --- a/files/image_config/platform/rc.local +++ b/files/image_config/platform/rc.local @@ -114,6 +114,9 @@ migrate_nos_configuration() # remove nos-config-part from cmdline sed -r -i.bak "s/nos-config-part=[^[:space:]]+//" /host/grub/grub.cfg + # remove ssd-upgrader-part from cmdline + sed -r -i.bak "s/ssd-upgrader-part=[^[:space:]]+//" /host/grub/grub.cfg + # Mount the previous NOS's partition NOS_DIR=/mnt/nos_migration MG_GZFILE=$NOS_DIR/minigraph.xml.gz.base64.txt diff --git a/files/initramfs-tools/ssd-upgrade b/files/initramfs-tools/ssd-upgrade new file mode 100644 index 000000000000..92139d7b114e --- /dev/null +++ b/files/initramfs-tools/ssd-upgrade @@ -0,0 +1,35 @@ +#!/bin/sh + +case $1 in + prereqs) + exit 0 + ;; +esac + +# Extract kernel parameters +set -- $(cat /proc/cmdline) +for x in "$@"; do + case "$x" in + ssd-upgrader-part=*) + ssd_upgrader_part="${x#ssd-upgrader-part=}" + ;; + esac +done + +if [ ! -z "$ssd_upgrader_part" ]; then + echo "ssd-upgrader-part found in /proc/cmdline" > /tmp/ssd-fw-upgrade.log + mkdir -p /mnt/ssd_upgrader_part + mount -t "${ssd_upgrader_part#*,}" "${ssd_upgrader_part%,*}" /mnt/ssd_upgrader_part + if [ -x /mnt/ssd_upgrader_part/ssd-fw-upgrade ]; then + cp /mnt/ssd_upgrader_part/ssd-fw-upgrade /tmp/ + cd /tmp/ + umount /mnt/ssd_upgrader_part + rm -r /mnt/ssd_upgrader_part + ./ssd-fw-upgrade >> /tmp/ssd-fw-upgrade.log 2>&1 + else + echo "ssd-fw-upgrade not found" >> /tmp/ssd-fw-upgrade.log + umount /mnt/ssd_upgrader_part + rm -r /mnt/ssd_upgrader_part + fi + gzip /tmp/ssd-fw-upgrade.log +fi diff --git a/files/initramfs-tools/union-mount.j2 b/files/initramfs-tools/union-mount.j2 index c9dd19204406..291806f951e6 100644 --- a/files/initramfs-tools/union-mount.j2 +++ b/files/initramfs-tools/union-mount.j2 @@ -190,3 +190,8 @@ fi if [ -f /tmp/fsck.log.gz ]; then mv /tmp/fsck.log.gz ${rootmnt}/var/log fi + +## ssd-fw-upgrade log file: /tmp will be lost when overlayfs is mounted +if [ -f /tmp/ssd-fw-upgrade.log.gz ]; then + mv /tmp/ssd-fw-upgrade.log.gz ${rootmnt}/var/log +fi From 942bef4475fa6ce936a75a7240207422ce837479 Mon Sep 17 00:00:00 2001 From: Arun Saravanan Balachandran <52521751+ArunSaravananBalachandran@users.noreply.github.com> Date: Thu, 12 May 2022 21:54:06 +0530 Subject: [PATCH 181/251] DellEMC: S6100, Z9332f - Include ONIE version in 'show platform firmware status' (#10493) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Why I did it To include ONIE version in show platform firmware status command output in DellEMC S6100 and Z9332f platforms. How I did it Include ‘ONIE’ in the list of components provided by platform APIs in DellEMC S6100 and Z9332f. Unmount ONIE-BOOT if mounted using fast/soft/warm-reboot plugins in DellEMC S6100. --- .../x86_64-dell_s6100_c2538-r0/platform.json | 3 ++ .../platform.json | 3 ++ .../common/onie_version | 28 +++++++++++++++++++ .../debian/platform-modules-s6100.install | 1 + .../debian/platform-modules-z9332f.install | 1 + .../s6100/scripts/fast-reboot_plugin | 7 +++++ .../s6100/sonic_platform/chassis.py | 2 +- .../s6100/sonic_platform/component.py | 9 +++++- .../z9332f/sonic_platform/chassis.py | 2 +- .../z9332f/sonic_platform/component.py | 11 ++++++++ 10 files changed, 64 insertions(+), 3 deletions(-) create mode 100755 platform/broadcom/sonic-platform-modules-dell/common/onie_version diff --git a/device/dell/x86_64-dell_s6100_c2538-r0/platform.json b/device/dell/x86_64-dell_s6100_c2538-r0/platform.json index e9fbeaeff804..819f104aa53a 100644 --- a/device/dell/x86_64-dell_s6100_c2538-r0/platform.json +++ b/device/dell/x86_64-dell_s6100_c2538-r0/platform.json @@ -18,6 +18,9 @@ }, { "name": "SSD" + }, + { + "name": "ONIE" } ], "fans": [ diff --git a/device/dell/x86_64-dellemc_z9332f_d1508-r0/platform.json b/device/dell/x86_64-dellemc_z9332f_d1508-r0/platform.json index 98a3322bf334..694f3e41d7c4 100644 --- a/device/dell/x86_64-dellemc_z9332f_d1508-r0/platform.json +++ b/device/dell/x86_64-dellemc_z9332f_d1508-r0/platform.json @@ -30,6 +30,9 @@ }, { "name": "PCIe" + }, + { + "name": "ONIE" } ], "fans": [ diff --git a/platform/broadcom/sonic-platform-modules-dell/common/onie_version b/platform/broadcom/sonic-platform-modules-dell/common/onie_version new file mode 100755 index 000000000000..e30a041ba8a5 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-dell/common/onie_version @@ -0,0 +1,28 @@ +#!/bin/bash +# script to get the ONIE version from NOS + +ONIEPATH="/mnt/onie-boot" + +# Exit if not superuser +if [[ "$EUID" -ne 0 ]]; then + echo "This command must be run as root" >&2 + exit 1 +fi + +# Mount ONIE partition if not already mounted +if ! grep -qs ${ONIEPATH} /proc/mounts; then + mkdir -p ${ONIEPATH} + mount LABEL=ONIE-BOOT ${ONIEPATH} || ERR=$? + if [[ ${ERR} -ne 0 ]]; then + exit 1 + fi +fi + +# Get ONIE version +onie_version=$(${ONIEPATH}/onie/tools/bin/onie-version | grep "ONIE version") || ERR=$? +if [[ ${ERR} -ne 0 ]]; then + exit 1 +fi + +onie_version=$(echo ${onie_version} | awk '{print $NF}') +echo ${onie_version} diff --git a/platform/broadcom/sonic-platform-modules-dell/debian/platform-modules-s6100.install b/platform/broadcom/sonic-platform-modules-dell/debian/platform-modules-s6100.install index 4770ac7c2caf..22378cf0eb8b 100644 --- a/platform/broadcom/sonic-platform-modules-dell/debian/platform-modules-s6100.install +++ b/platform/broadcom/sonic-platform-modules-dell/debian/platform-modules-s6100.install @@ -37,3 +37,4 @@ s6100/systemd/s6100-platform-startup.service etc/systemd/system s6100/scripts/s6100_serial_getty_monitor etc/monit/conf.d common/fw-updater usr/local/bin common/onie_mode_set usr/local/bin +common/onie_version usr/local/bin diff --git a/platform/broadcom/sonic-platform-modules-dell/debian/platform-modules-z9332f.install b/platform/broadcom/sonic-platform-modules-dell/debian/platform-modules-z9332f.install index d668116c7445..ad25015472da 100644 --- a/platform/broadcom/sonic-platform-modules-dell/debian/platform-modules-z9332f.install +++ b/platform/broadcom/sonic-platform-modules-dell/debian/platform-modules-z9332f.install @@ -10,3 +10,4 @@ common/io_rd_wr.py usr/local/bin common/fw-updater usr/local/bin common/onie_mode_set usr/local/bin common/onie_stage_fwpkg usr/local/bin +common/onie_version usr/local/bin diff --git a/platform/broadcom/sonic-platform-modules-dell/s6100/scripts/fast-reboot_plugin b/platform/broadcom/sonic-platform-modules-dell/s6100/scripts/fast-reboot_plugin index 20a5d8cf5ac2..e38184ecff27 100755 --- a/platform/broadcom/sonic-platform-modules-dell/s6100/scripts/fast-reboot_plugin +++ b/platform/broadcom/sonic-platform-modules-dell/s6100/scripts/fast-reboot_plugin @@ -1,5 +1,12 @@ #!/bin/bash +ONIE_PATH="/mnt/onie-boot" + +# Unmount ONIE partition if mounted +if grep -qs ${ONIE_PATH} /proc/mounts; then + umount ${ONIE_PATH} +fi + if [[ -d /sys/devices/platform/SMF.512/hwmon/ ]]; then cd /sys/devices/platform/SMF.512/hwmon/* echo 0xcc > mb_poweron_reason diff --git a/platform/broadcom/sonic-platform-modules-dell/s6100/sonic_platform/chassis.py b/platform/broadcom/sonic-platform-modules-dell/s6100/sonic_platform/chassis.py index 47e63f52a17d..b3d258f32e8f 100755 --- a/platform/broadcom/sonic-platform-modules-dell/s6100/sonic_platform/chassis.py +++ b/platform/broadcom/sonic-platform-modules-dell/s6100/sonic_platform/chassis.py @@ -28,7 +28,7 @@ MAX_S6100_FANTRAY = 4 MAX_S6100_PSU = 2 MAX_S6100_THERMAL = 10 -MAX_S6100_COMPONENT = 4 +MAX_S6100_COMPONENT = 5 class Chassis(ChassisBase): diff --git a/platform/broadcom/sonic-platform-modules-dell/s6100/sonic_platform/component.py b/platform/broadcom/sonic-platform-modules-dell/s6100/sonic_platform/component.py index a50028d3cb5a..0c605871b5a2 100644 --- a/platform/broadcom/sonic-platform-modules-dell/s6100/sonic_platform/component.py +++ b/platform/broadcom/sonic-platform-modules-dell/s6100/sonic_platform/component.py @@ -23,6 +23,7 @@ SSD_VERSION_COMMAND = "ssdutil -v" SSD_UPGRADE_SCHEDULE = "/usr/local/bin/ssd_upgrade_schedule" PCI_VERSION_COMMAND = "lspci -s 0:0.0" +ONIE_VERSION_COMMAND = "/usr/local/bin/onie_version" class Component(ComponentBase): @@ -38,7 +39,8 @@ class Component(ComponentBase): ["FPGA", ("Platform management controller for on-board temperature " "monitoring, in-chassis power, Fan and LED control")], ["CPLD", "Used for managing IO modules, SFP+ modules and system LEDs"], - ["SSD", "Solid State Drive that stores data persistently"] + ["SSD", "Solid State Drive that stores data persistently"], + ["ONIE", "Open Network Install Environment"] ] MODULE_COMPONENT = [ "IOM{}-CPLD", @@ -261,6 +263,11 @@ def get_firmware_version(self): return self._get_cpld_version() elif self.index == 3: #SSD return self._get_ssd_version() + elif self.index == 4: # ONIE + try: + return subprocess.check_output(ONIE_VERSION_COMMAND, text=True).strip() + except (FileNotFoundError, subprocess.CalledProcessError): + return 'NA' def get_available_firmware_version(self, image_path): """ diff --git a/platform/broadcom/sonic-platform-modules-dell/z9332f/sonic_platform/chassis.py b/platform/broadcom/sonic-platform-modules-dell/z9332f/sonic_platform/chassis.py index 451a51f7b611..d59deb8b0a9e 100755 --- a/platform/broadcom/sonic-platform-modules-dell/z9332f/sonic_platform/chassis.py +++ b/platform/broadcom/sonic-platform-modules-dell/z9332f/sonic_platform/chassis.py @@ -28,7 +28,7 @@ MAX_Z9332F_FAN = 2 MAX_Z9332F_PSU = 2 MAX_Z9332F_THERMAL = 14 -MAX_Z9332F_COMPONENT = 8 # BIOS,FPGA,BMC,BB CPLD,2 Switch CPLDs,SSD and PCIe +MAX_Z9332F_COMPONENT = 9 # BIOS,FPGA,BMC,BB CPLD,2 Switch CPLDs,SSD,PCIe and ONIE media_part_num_list = set([ \ "8T47V","XTY28","MHVPK","GF76J","J6FGD","F1KMV","9DN5J","H4DHD","6MCNV","0WRX0","X7F70","5R2PT","WTRD1","WTRD1","WTRD1","WTRD1","5250G","WTRD1","C5RNH","C5RNH","FTLX8571D3BCL-FC", diff --git a/platform/broadcom/sonic-platform-modules-dell/z9332f/sonic_platform/component.py b/platform/broadcom/sonic-platform-modules-dell/z9332f/sonic_platform/component.py index 214467f8c35d..24619a481c4b 100644 --- a/platform/broadcom/sonic-platform-modules-dell/z9332f/sonic_platform/component.py +++ b/platform/broadcom/sonic-platform-modules-dell/z9332f/sonic_platform/component.py @@ -91,6 +91,12 @@ def get_pciephy_version(): return val +def get_onie_version(): + try: + return subprocess.check_output('/usr/local/bin/onie_version', text=True).strip() + except (FileNotFoundError, subprocess.CalledProcessError): + return 'NA' + class Component(ComponentBase): """DellEMC Platform-specific Component class""" @@ -134,6 +140,11 @@ class Component(ComponentBase): ['PCIe', 'ASIC PCIe firmware', get_pciephy_version + ], + + ['ONIE', + 'Open Network Install Environment', + get_onie_version ] ] From 4a1e7d8581cb2871a417154f85f1db06e5e6f0a8 Mon Sep 17 00:00:00 2001 From: arlakshm <55814491+arlakshm@users.noreply.github.com> Date: Thu, 12 May 2022 15:56:11 -0700 Subject: [PATCH 182/251] remove voq chassis check (#10805) Why I did it Fixes #10793 How I did it Removed the switch_type validation from the Yang model. How to verify it compile sonic_yang_mgmt-1.0-py3-none-any.whl and sonic_yang_mgmt-1.0-py3-none-any.whl Signed-off-by: Arvindsrinivasan Lakshmi Narasimhan --- .../tests/bgp_voq_chassis_neighbor.json | 4 -- .../bgp_voq_chassis_neighbor.json | 41 ------------------- .../sonic-bgp-voq-chassis-neighbor.yang | 3 -- 3 files changed, 48 deletions(-) diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests/bgp_voq_chassis_neighbor.json b/src/sonic-yang-models/tests/yang_model_tests/tests/bgp_voq_chassis_neighbor.json index 3d575bb9759a..5c98b867e1b2 100644 --- a/src/sonic-yang-models/tests/yang_model_tests/tests/bgp_voq_chassis_neighbor.json +++ b/src/sonic-yang-models/tests/yang_model_tests/tests/bgp_voq_chassis_neighbor.json @@ -2,10 +2,6 @@ "BGP_VOQ_CHASSIS_NEIGHBOR_TEST" : { "desc": "Load bgp voq chassis neighbor" }, - "BGP_VOQ_CHASSIS_WITH_INVALID_SWITCH_TYPE_TEST" : { - "desc": "Load bgp voq chassis on non voq chassis switch", - "eStr": ["Bgp voq neighbor are applicable only when switch_type is voq"] - }, "BGP_VOQ_CHASSIS_ABSENT_LOCAL_ADDRESS_TEST" : { "desc": "Load bgp voq chassis with no local address", "eStrKey" : "Mandatory" diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests_config/bgp_voq_chassis_neighbor.json b/src/sonic-yang-models/tests/yang_model_tests/tests_config/bgp_voq_chassis_neighbor.json index 877903912383..f7ceb1d209ad 100644 --- a/src/sonic-yang-models/tests/yang_model_tests/tests_config/bgp_voq_chassis_neighbor.json +++ b/src/sonic-yang-models/tests/yang_model_tests/tests_config/bgp_voq_chassis_neighbor.json @@ -40,47 +40,6 @@ } } }, - "BGP_VOQ_CHASSIS_WITH_INVALID_SWITCH_TYPE_TEST": { - "sonic-bgp-voq-chassis-neighbor:sonic-bgp-voq-chassis-neighbor": { - "sonic-bgp-voq-chassis-neighbor:BGP_VOQ_CHASSIS_NEIGHBOR": { - "BGP_VOQ_CHASSIS_NEIGHBOR_LIST": [ - { - "neighbor": "10.0.0.1", - "asn": "65001", - "holdtime": "180", - "keepalive": "60", - "local_addr": "10.0.0.2", - "name": "sonic-chassis-lc3", - "nhopself": "0", - "rrclient": "0", - "admin_status": "up" - }, - { - "neighbor": "3333::3:6", - "asn": "65001", - "holdtime": "180", - "keepalive": "60", - "local_addr": "3333::3:3", - "name": "sonic-chassis-lc3", - "nhopself": "0", - "rrclient": "0", - "admin_status": "up" - } - ] - } - }, - "sonic-device_metadata:sonic-device_metadata": { - "sonic-device_metadata:DEVICE_METADATA": { - "localhost": { - "bgp_asn": "65001", - "default_bgp_status": "up", - "hostname": "sonic-chassis", - "platform": "voq-chassis", - "switch_type": "chassis-packet" - } - } - } - }, "BGP_VOQ_CHASSIS_ABSENT_LOCAL_ADDRESS_TEST": { "sonic-bgp-voq-chassis-neighbor:sonic-bgp-voq-chassis-neighbor": { "sonic-bgp-voq-chassis-neighbor:BGP_VOQ_CHASSIS_NEIGHBOR": { diff --git a/src/sonic-yang-models/yang-models/sonic-bgp-voq-chassis-neighbor.yang b/src/sonic-yang-models/yang-models/sonic-bgp-voq-chassis-neighbor.yang index 0a7c6c9f1929..662f77c3c899 100644 --- a/src/sonic-yang-models/yang-models/sonic-bgp-voq-chassis-neighbor.yang +++ b/src/sonic-yang-models/yang-models/sonic-bgp-voq-chassis-neighbor.yang @@ -54,9 +54,6 @@ module sonic-bgp-voq-chassis-neighbor { } } } - must "(/dm:sonic-device_metadata/dm:DEVICE_METADATA/dm:localhost/dm:switch_type = 'voq')" { - error-message "Bgp voq neighbor are applicable only when switch_type is voq"; - } } } } From 5ea244cac84e7d8d204d40e6706db79bd60d25f4 Mon Sep 17 00:00:00 2001 From: Vivek R Date: Sat, 14 May 2022 05:20:57 -0700 Subject: [PATCH 183/251] Removed platform specific reboot files for mellanox simx platforms (#10806) - Why I did it Platform_reboot files for simx doesn't do aything different apart from calling /sbin/reboot. which is anyway done in the /usr/local/bin/reboot script i.e. the parent script which calls the platform specific reboot scripts if present. Moreover, /sbin/reboot invoked in the platform specific reboot script is a non-blocking call and thus it returns back to the original script (although /sbin/reboot does it job in the background) and we see messages like this. Signed-off-by: Vivek Reddy Karri --- .../platform_reboot | 21 ------------------- .../platform_reboot | 1 - .../platform_reboot | 1 - .../platform_reboot | 1 - .../platform_reboot | 1 - 5 files changed, 25 deletions(-) delete mode 100755 device/mellanox/x86_64-mlnx_msn2700_simx-r0/platform_reboot delete mode 120000 device/mellanox/x86_64-mlnx_msn3700_simx-r0/platform_reboot delete mode 120000 device/mellanox/x86_64-mlnx_msn4700_simx-r0/platform_reboot delete mode 120000 device/mellanox/x86_64-nvidia_sn4800_simx-r0/platform_reboot delete mode 120000 device/mellanox/x86_64-nvidia_sn5600_simx-r0/platform_reboot diff --git a/device/mellanox/x86_64-mlnx_msn2700_simx-r0/platform_reboot b/device/mellanox/x86_64-mlnx_msn2700_simx-r0/platform_reboot deleted file mode 100755 index 5b9809e10423..000000000000 --- a/device/mellanox/x86_64-mlnx_msn2700_simx-r0/platform_reboot +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash - -declare -r EXIT_SUCCESS="0" -declare -r EXIT_ERROR="1" - -FORCE_REBOOT="no" - -function ParseArguments() { - while [ $# -ge 1 ]; do - case "$1" in - -f|--force) - FORCE_REBOOT="yes" - ;; - esac - shift - done -} - -ParseArguments "$@" - -exec /sbin/reboot $@ diff --git a/device/mellanox/x86_64-mlnx_msn3700_simx-r0/platform_reboot b/device/mellanox/x86_64-mlnx_msn3700_simx-r0/platform_reboot deleted file mode 120000 index dfaf53417665..000000000000 --- a/device/mellanox/x86_64-mlnx_msn3700_simx-r0/platform_reboot +++ /dev/null @@ -1 +0,0 @@ -../x86_64-mlnx_msn2700_simx-r0/platform_reboot \ No newline at end of file diff --git a/device/mellanox/x86_64-mlnx_msn4700_simx-r0/platform_reboot b/device/mellanox/x86_64-mlnx_msn4700_simx-r0/platform_reboot deleted file mode 120000 index dfaf53417665..000000000000 --- a/device/mellanox/x86_64-mlnx_msn4700_simx-r0/platform_reboot +++ /dev/null @@ -1 +0,0 @@ -../x86_64-mlnx_msn2700_simx-r0/platform_reboot \ No newline at end of file diff --git a/device/mellanox/x86_64-nvidia_sn4800_simx-r0/platform_reboot b/device/mellanox/x86_64-nvidia_sn4800_simx-r0/platform_reboot deleted file mode 120000 index dfaf53417665..000000000000 --- a/device/mellanox/x86_64-nvidia_sn4800_simx-r0/platform_reboot +++ /dev/null @@ -1 +0,0 @@ -../x86_64-mlnx_msn2700_simx-r0/platform_reboot \ No newline at end of file diff --git a/device/mellanox/x86_64-nvidia_sn5600_simx-r0/platform_reboot b/device/mellanox/x86_64-nvidia_sn5600_simx-r0/platform_reboot deleted file mode 120000 index dfaf53417665..000000000000 --- a/device/mellanox/x86_64-nvidia_sn5600_simx-r0/platform_reboot +++ /dev/null @@ -1 +0,0 @@ -../x86_64-mlnx_msn2700_simx-r0/platform_reboot \ No newline at end of file From 5eda219bdc6b30173c31349b03b1e203f0d29a75 Mon Sep 17 00:00:00 2001 From: Longxiang Lyu <35479537+lolyu@users.noreply.github.com> Date: Sun, 15 May 2022 13:02:49 +0800 Subject: [PATCH 184/251] [sonic-config-gen] Modify lag names to enforce 15 chars limit (#10792) Why I did it Previous subport unit tests uses port channel names like PortChannel01, so for subport name generated PortChannel01.10, it exceeds Linux network interface name 15 char limit. Signed-off-by: Longxiang Lyu lolv@microsoft.com How I did it Modify PortChannel01 to PortChannel1. --- .../tests/sample-graph-resource-type.xml | 8 ++++---- src/sonic-config-engine/tests/sample-graph-subintf.xml | 8 ++++---- src/sonic-config-engine/tests/simple-sample-graph.xml | 8 ++++---- src/sonic-config-engine/tests/test_cfggen.py | 10 +++++----- 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/sonic-config-engine/tests/sample-graph-resource-type.xml b/src/sonic-config-engine/tests/sample-graph-resource-type.xml index 62c2dfd64f3b..987d24358438 100644 --- a/src/sonic-config-engine/tests/sample-graph-resource-type.xml +++ b/src/sonic-config-engine/tests/sample-graph-resource-type.xml @@ -176,7 +176,7 @@ switch-t0 - PortChannel01 + PortChannel1 fortyGigE0/4 @@ -228,12 +228,12 @@ - PortChannel01 + PortChannel1 10.0.0.56/31 - PortChannel01 + PortChannel1 FC00::71/126 @@ -265,7 +265,7 @@ - PortChannel01 + PortChannel1 DataAcl DataPlane diff --git a/src/sonic-config-engine/tests/sample-graph-subintf.xml b/src/sonic-config-engine/tests/sample-graph-subintf.xml index a23b668c2c2f..7fa35c44cbe4 100644 --- a/src/sonic-config-engine/tests/sample-graph-subintf.xml +++ b/src/sonic-config-engine/tests/sample-graph-subintf.xml @@ -176,7 +176,7 @@ switch-t0 - PortChannel01 + PortChannel1 fortyGigE0/4 @@ -245,12 +245,12 @@ - PortChannel01 + PortChannel1 10.0.0.56/31 - PortChannel01 + PortChannel1 FC00::71/126 @@ -272,7 +272,7 @@ - PortChannel01 + PortChannel1 DataAcl DataPlane diff --git a/src/sonic-config-engine/tests/simple-sample-graph.xml b/src/sonic-config-engine/tests/simple-sample-graph.xml index 8d7800686c7a..c8cd3eacdc31 100644 --- a/src/sonic-config-engine/tests/simple-sample-graph.xml +++ b/src/sonic-config-engine/tests/simple-sample-graph.xml @@ -176,7 +176,7 @@ switch-t0 - PortChannel01 + PortChannel1 fortyGigE0/4 @@ -228,12 +228,12 @@ - PortChannel01 + PortChannel1 10.0.0.56/31 - PortChannel01 + PortChannel1 FC00::71/126 @@ -265,7 +265,7 @@ - PortChannel01 + PortChannel1 DataAcl DataPlane diff --git a/src/sonic-config-engine/tests/test_cfggen.py b/src/sonic-config-engine/tests/test_cfggen.py index 29773dffc628..023f13c2f234 100644 --- a/src/sonic-config-engine/tests/test_cfggen.py +++ b/src/sonic-config-engine/tests/test_cfggen.py @@ -325,7 +325,7 @@ def test_minigraph_portchannels(self, **kwargs): output = self.run_script(argument) self.assertEqual( utils.to_dict(output.strip()), - utils.to_dict("{'PortChannel01': {'admin_status': 'up', 'min_links': '1', 'members': ['Ethernet4'], 'mtu': '9100', 'tpid': '0x8100'}}") + utils.to_dict("{'PortChannel1': {'admin_status': 'up', 'min_links': '1', 'members': ['Ethernet4'], 'mtu': '9100', 'tpid': '0x8100'}}") ) def test_minigraph_portchannel_with_more_member(self): @@ -349,7 +349,7 @@ def test_minigraph_portchannel_interfaces(self): output = self.run_script(argument) self.assertEqual( utils.liststr_to_dict(output.strip()), - utils.liststr_to_dict("['PortChannel01', ('PortChannel01', '10.0.0.56/31'), ('PortChannel01', 'FC00::71/126')]") + utils.liststr_to_dict("['PortChannel1', ('PortChannel1', '10.0.0.56/31'), ('PortChannel1', 'FC00::71/126')]") ) def test_minigraph_neighbors(self): @@ -803,11 +803,11 @@ def verify_sub_intf(self, **kwargs): self.assertEqual( utils.to_dict(output.strip()), utils.to_dict( - "{('PortChannel01.10', '10.0.0.56/31'): {}, " + "{('PortChannel1.10', '10.0.0.56/31'): {}, " "'Ethernet0.10': {'admin_status': 'up'}, " "('Ethernet0.10', '10.0.0.58/31'): {}, " - "('PortChannel01.10', 'FC00::71/126'): {}, " - "'PortChannel01.10': {'admin_status': 'up'}, " + "('PortChannel1.10', 'FC00::71/126'): {}, " + "'PortChannel1.10': {'admin_status': 'up'}, " "('Ethernet0.10', 'FC00::75/126'): {}}" ) ) From 4b581f1e9d35b354dce3a77c9ce76f99b9ebcaa3 Mon Sep 17 00:00:00 2001 From: "Dante (Kuo-Jung) Su" Date: Mon, 16 May 2022 03:52:22 +0800 Subject: [PATCH 185/251] sonic-port.yang: add link training support (#10025) This is part of HLD Azure/SONiC#925 #### Why I did it Add link-training support #### How I did it Update SONiC YANG for port link-training support #### Description for the changelog Add "link_training" to sonic-port.yang #### Link to config_db schema for YANG module changes https://github.com/sonic-net/SONiC/wiki/Configuration#port --- src/sonic-yang-models/doc/Configuration.md | 8 +-- .../tests/files/sample_config_db.json | 6 ++- .../tests/yang_model_tests/tests/port.json | 11 ++++ .../yang_model_tests/tests_config/port.json | 51 +++++++++++++++++++ .../yang-models/sonic-port.yang | 8 +++ 5 files changed, 79 insertions(+), 5 deletions(-) diff --git a/src/sonic-yang-models/doc/Configuration.md b/src/sonic-yang-models/doc/Configuration.md index 9a8f2a9fe285..9a1adcab9c48 100644 --- a/src/sonic-yang-models/doc/Configuration.md +++ b/src/sonic-yang-models/doc/Configuration.md @@ -1167,7 +1167,8 @@ optional attributes. "description": "fortyGigE1/1/1", "mtu": "9100", "alias": "fortyGigE1/1/1", - "speed": "40000" + "speed": "40000", + "link_training": "off" }, "Ethernet1": { "index": "1", @@ -1176,9 +1177,10 @@ optional attributes. "mtu": "9100", "alias": "fortyGigE1/1/2", "admin_status": "up", - "speed": "40000" + "speed": "40000", + "link_training": "on" }, - "Ethernet63": { + "Ethernet63": { "index": "63", "lanes": "87,88", "description": "fortyGigE1/4/16", diff --git a/src/sonic-yang-models/tests/files/sample_config_db.json b/src/sonic-yang-models/tests/files/sample_config_db.json index 5af414359b29..e19c8aeb8d68 100644 --- a/src/sonic-yang-models/tests/files/sample_config_db.json +++ b/src/sonic-yang-models/tests/files/sample_config_db.json @@ -438,7 +438,8 @@ "index": "0", "asic_port_name": "Eth0-ASIC1", "role": "Ext", - "macsec": "test" + "macsec": "test", + "link_training": "off" }, "Ethernet1": { "alias": "Eth1/2", @@ -449,7 +450,8 @@ "admin_status": "up", "autoneg": "on", "adv_speeds": "100000,50000", - "adv_interface_types": "CR,CR4" + "adv_interface_types": "CR,CR4", + "link_training": "on" }, "Ethernet2": { "alias": "Eth1/3", diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests/port.json b/src/sonic-yang-models/tests/yang_model_tests/tests/port.json index db9b432714eb..0d67a73148b3 100644 --- a/src/sonic-yang-models/tests/yang_model_tests/tests/port.json +++ b/src/sonic-yang-models/tests/yang_model_tests/tests/port.json @@ -69,6 +69,17 @@ "desc": "PORT_INVALID_ADVTYPES_TEST_2 must condition failure.", "eStrKey" : "Must" }, + "PORT_VALID_LINK_TRAINING_TEST_1": { + "desc": "PORT_VALID_LINK_TRAINING_TEST_1 no failure." + }, + "PORT_VALID_LINK_TRAINING_TEST_2": { + "desc": "PORT_VALID_LINK_TRAINING_TEST_2 no failure." + }, + "PORT_INVALID_LINK_TRAINING_TEST": { + "desc": "PORT_INVALID_LINK_TRAINING_TEST must condition failure.", + "eStrKey" : "Pattern", + "eStr": ["on|off"] + }, "PORT_INVALID_TPID_TEST": { "desc": "PORT_INVALID_TPID_TEST invalid tpid value failure.", "eStrKey" : "Pattern", diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests_config/port.json b/src/sonic-yang-models/tests/yang_model_tests/tests_config/port.json index db3334e80d2b..7f5c91230df8 100644 --- a/src/sonic-yang-models/tests/yang_model_tests/tests_config/port.json +++ b/src/sonic-yang-models/tests/yang_model_tests/tests_config/port.json @@ -311,6 +311,57 @@ } }, + "PORT_VALID_LINK_TRAINING_TEST_1": { + "sonic-port:sonic-port": { + "sonic-port:PORT": { + "PORT_LIST": [ + { + "name": "Ethernet8", + "alias": "eth8", + "lanes": "65", + "speed": 25000, + "tpid": "0x8100", + "link_training": "on" + } + ] + } + } + }, + + "PORT_VALID_LINK_TRAINING_TEST_2": { + "sonic-port:sonic-port": { + "sonic-port:PORT": { + "PORT_LIST": [ + { + "name": "Ethernet8", + "alias": "eth8", + "lanes": "65", + "speed": 25000, + "tpid": "0x8100", + "link_training": "off" + } + ] + } + } + }, + + "PORT_INVALID_LINK_TRAINING_TEST": { + "sonic-port:sonic-port": { + "sonic-port:PORT": { + "PORT_LIST": [ + { + "name": "Ethernet8", + "alias": "eth8", + "lanes": "65", + "speed": 25000, + "tpid": "0x8100", + "link_training": 0 + } + ] + } + } + }, + "PORT_INVALID_TPID_TEST": { "sonic-port:sonic-port": { "sonic-port:PORT": { diff --git a/src/sonic-yang-models/yang-models/sonic-port.yang b/src/sonic-yang-models/yang-models/sonic-port.yang index eab52996fb00..6921613624ff 100644 --- a/src/sonic-yang-models/yang-models/sonic-port.yang +++ b/src/sonic-yang-models/yang-models/sonic-port.yang @@ -65,6 +65,14 @@ module sonic-port{ } } + leaf link_training { + description "Port link training mode"; + + type string { + pattern "on|off"; + } + } + leaf autoneg { description "Port auto negotiation mode"; From 3567888b03910aca207c05f13de492b446eac581 Mon Sep 17 00:00:00 2001 From: xumia <59720581+xumia@users.noreply.github.com> Date: Mon, 16 May 2022 08:57:26 +0800 Subject: [PATCH 186/251] [Ci] Support to trigger a pipeline to download and publish artifacts to storage (#10820) Why I did it Support to trigger a pipeline to download and publish artifacts to storage and container registry. Support to specify the patterns which docker images to upload. How I did it Pass the pipeline information and the artifact information by pipeline parameters to the pipeline which will be triggered a new build. It is to decouple the artifacts generation and the publish logic, how and where the artifacts/docker images will be published, depends on the triggered pipeline. How to verify it --- .../azure-pipelines-image-template.yml | 6 +- .../trigger-publish-artifacts-build.yml | 64 +++++++++++++++++++ 2 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 .azure-pipelines/trigger-publish-artifacts-build.yml diff --git a/.azure-pipelines/azure-pipelines-image-template.yml b/.azure-pipelines/azure-pipelines-image-template.yml index 7f2874024740..20bedc8d8084 100644 --- a/.azure-pipelines/azure-pipelines-image-template.yml +++ b/.azure-pipelines/azure-pipelines-image-template.yml @@ -48,7 +48,7 @@ jobs: ENABLE_DOCKER_BASE_PULL=y make PLATFORM=$(PLATFORM_AZP) PLATFORM_ARCH=$(PLATFORM_ARCH) $(BUILD_OPTIONS) configure displayName: 'Make configure' postSteps: - - script: cp target -r $(Build.ArtifactStagingDirectory)/ + - script: mv target $(Build.ArtifactStagingDirectory)/ displayName: Copy Artifacts condition: always() - publish: $(Build.ArtifactStagingDirectory) @@ -58,6 +58,10 @@ jobs: condition: failed() artifact: 'sonic-buildimage.$(GROUP_NAME)$(GROUP_EXTNAME)$(System.JobAttempt)' displayName: "Archive failed sonic image" + - template: trigger-publish-artifacts-build.yml + parameters: + artifactName: 'sonic-buildimage.$(GROUP_NAME)$(GROUP_EXTNAME)' + publishPrefix: '$(Build.DefinitionName)/$(Build.SourceBranchName)/$(GROUP_NAME)' - ${{ parameters.postSteps }} - template: cleanup.yml jobGroups: ${{ parameters.jobGroups }} diff --git a/.azure-pipelines/trigger-publish-artifacts-build.yml b/.azure-pipelines/trigger-publish-artifacts-build.yml new file mode 100644 index 000000000000..83bbfc1150ce --- /dev/null +++ b/.azure-pipelines/trigger-publish-artifacts-build.yml @@ -0,0 +1,64 @@ +# The steps to trigger the pipeline to publish the artifacts + +parameters: +- name: artifactName + type: string + default: "" +- name: publishPrefix + type: string + default: "$(Build.DefinitionName)/$(Build.SourceBranchName)" + +steps: +- script: | + . functions.sh + sonic_version=$(sonic_get_version) + latest_tag=$(git describe --tags --abbrev=0) + docker_tags="$sonic_version $(Build.SourceBranchName)" + if [ "$(Build.SourceBranchName)" == "master" ]; then + docker_tags="$docker_tags latest" + fi + echo "##vso[task.setvariable variable=sonic_version]$sonic_version" + echo "##vso[task.setvariable variable=latest_tag]$latest_tag" + echo "##vso[task.setvariable variable=docker_tags]$docker_tags" + condition: ne(variables['Build.Reason'], 'PullRequest') + displayName: 'Set trigger build variables' +- task: TriggerBuild@4 + condition: ne(variables['Build.Reason'], 'PullRequest') + inputs: + definitionIsInCurrentTeamProject: false + teamProject: internal + tfsServer: $(System.CollectionUri) + buildDefinition: 'publish-artifacts' + queueBuildForUserThatTriggeredBuild: true + ignoreSslCertificateErrors: false + useSameSourceVersion: false + useCustomSourceVersion: false + useSameBranch: false + waitForQueuedBuildsToFinish: false + storeInEnvironmentVariable: true + authenticationMethod: 'Personal Access Token' + password: '$(system.accesstoken)' + enableBuildInQueueCondition: false + dependentOnSuccessfulBuildCondition: false + dependentOnFailedBuildCondition: false + checkbuildsoncurrentbranch: false + failTaskIfConditionsAreNotFulfilled: false + buildParameters: '' + templateParameters: | + pipelineContext: {"buildId":"$(Build.BuildId)", + "pipelineId":"$(System.DefinitionId)", + "project": "$(System.TeamProject)", + "branchName":"$(Build.SourceBranchName)"}, + artifactContext: {"artifactName":"${{ parameters.artifactName }}", + "artifactPatterns":"**/*.bin\n + **/*.swi\n + **/*.raw\n + **/*.img.gz\n + **/*-rpc.gz\n + **/python-saithrift*.deb"}, + publishContext: {"publishPrefix":"${{ parameters.publishPrefix }}", + "keepArtifactName":false, + "dockerImagePatterns":"target/*-rpc.gz", + "dockerTags":"$(docker_tags)", + "version":"$(sonic_version)", + "latestTag":"$(latest_tag)"} From 1db50e54c830bd8539075eb36a7bb91f47115998 Mon Sep 17 00:00:00 2001 From: ganglv <88995770+ganglyu@users.noreply.github.com> Date: Mon, 16 May 2022 11:42:20 +0800 Subject: [PATCH 187/251] [sonic-cfggen]: Update UT to run yang validation (#9700) Why I did it Config db schema generated by minigraph should run yang validation. How I did it Modify run_script to add yang validation. How to verify it Run sonic-config-engine unit test. Signed-off-by: Gang Lv ganglv@microsoft.com --- src/sonic-config-engine/tests/common_utils.py | 51 ++++++++++++++++++- src/sonic-config-engine/tests/test_cfggen.py | 3 ++ .../tests/test_minigraph_case.py | 3 ++ .../tests/test_multinpu_cfggen.py | 3 ++ 4 files changed, 59 insertions(+), 1 deletion(-) diff --git a/src/sonic-config-engine/tests/common_utils.py b/src/sonic-config-engine/tests/common_utils.py index 47fe9f37f2a4..7b8d2b4e27a4 100644 --- a/src/sonic-config-engine/tests/common_utils.py +++ b/src/sonic-config-engine/tests/common_utils.py @@ -3,10 +3,14 @@ import os import re import sys +import subprocess +import argparse +import shlex PY3x = sys.version_info >= (3, 0) PYvX_DIR = "py3" if PY3x else "py2" PYTHON_INTERPRETTER = "python3" if PY3x else "python2" +YANG_MODELS_DIR = "/usr/local/yang-models" def tuple_to_str(tuplestr): """ Convert Python tuple '('elem1', 'elem2')' representation into string on the for "elem1|elem2" """ @@ -33,6 +37,52 @@ def liststr_to_dict(liststr): return list_obj +class YangWrapper(object): + def __init__(self, path=YANG_MODELS_DIR): + """ + sonic_yang only supports python3 + """ + if PY3x: + import sonic_yang + self.yang_parser = sonic_yang.SonicYang(path) + self.yang_parser.loadYangModel() + self.test_dir = os.path.dirname(os.path.realpath(__file__)) + self.script_file = PYTHON_INTERPRETTER + ' ' + os.path.join(self.test_dir, '..', 'sonic-cfggen') + + def validate(self, argument): + """ + Raise exception when yang validation failed + """ + if PY3x and "-m" in argument: + import sonic_yang + parser=argparse.ArgumentParser(description="Render configuration file from minigraph data and jinja2 template.") + parser.add_argument("-m", "--minigraph", help="minigraph xml file", nargs='?', const='/etc/sonic/minigraph.xml') + parser.add_argument("-k", "--hwsku", help="HwSKU") + parser.add_argument("-n", "--namespace", help="namespace name", nargs='?', const=None, default=None) + parser.add_argument("-p", "--port-config", help="port config file, used with -m or -k", nargs='?', const=None) + parser.add_argument("-S", "--hwsku-config", help="hwsku config file, used with -p and -m or -k", nargs='?', const=None) + args, unknown = parser.parse_known_args(shlex.split(argument)) + + print('\n Validating yang schema') + cmd = self.script_file + ' -m ' + args.minigraph + if args.hwsku is not None: + cmd += ' -k ' + args.hwsku + if args.hwsku_config is not None: + cmd += ' -S ' + args.hwsku_config + if args.port_config is not None: + cmd += ' -p ' + args.port_config + if args.namespace is not None: + cmd += ' -n ' + args.namespace + cmd += ' --print-data' + output = subprocess.check_output(cmd, shell=True).decode() + try: + self.yang_parser.loadData(configdbJson=json.loads(output)) + self.yang_parser.validate_data_tree() + except sonic_yang.SonicYangException as e: + print("yang data generated from %s is not valid: %s"%(args.minigraph, str(e))) + return False + return True + def cmp(file1, file2): """ compare files """ try: @@ -43,4 +93,3 @@ def cmp(file1, file2): return obj1 == obj2 except: return filecmp.cmp(file1, file2) - diff --git a/src/sonic-config-engine/tests/test_cfggen.py b/src/sonic-config-engine/tests/test_cfggen.py index 023f13c2f234..22ce5671ee85 100644 --- a/src/sonic-config-engine/tests/test_cfggen.py +++ b/src/sonic-config-engine/tests/test_cfggen.py @@ -14,6 +14,7 @@ class TestCfgGen(TestCase): def setUp(self): + self.yang = utils.YangWrapper() self.test_dir = os.path.dirname(os.path.realpath(__file__)) self.script_file = utils.PYTHON_INTERPRETTER + ' ' + os.path.join(self.test_dir, '..', 'sonic-cfggen') self.sample_graph = os.path.join(self.test_dir, 'sample_graph.xml') @@ -50,6 +51,8 @@ def tearDown(self): def run_script(self, argument, check_stderr=False, verbose=False): print('\n Running sonic-cfggen ' + argument) + self.assertTrue(self.yang.validate(argument)) + if check_stderr: output = subprocess.check_output(self.script_file + ' ' + argument, stderr=subprocess.STDOUT, shell=True) else: diff --git a/src/sonic-config-engine/tests/test_minigraph_case.py b/src/sonic-config-engine/tests/test_minigraph_case.py index d18dd0499dab..a6db6f37c591 100644 --- a/src/sonic-config-engine/tests/test_minigraph_case.py +++ b/src/sonic-config-engine/tests/test_minigraph_case.py @@ -14,6 +14,7 @@ class TestCfgGenCaseInsensitive(TestCase): def setUp(self): + self.yang = utils.YangWrapper() self.test_dir = os.path.dirname(os.path.realpath(__file__)) self.script_file = utils.PYTHON_INTERPRETTER + ' ' + os.path.join(self.test_dir, '..', 'sonic-cfggen') self.sample_graph = os.path.join(self.test_dir, 'simple-sample-graph-case.xml') @@ -24,6 +25,8 @@ def setUp(self): def run_script(self, argument, check_stderr=False): print('\n Running sonic-cfggen ' + argument) + self.assertTrue(self.yang.validate(argument)) + if check_stderr: output = subprocess.check_output(self.script_file + ' ' + argument, stderr=subprocess.STDOUT, shell=True) else: diff --git a/src/sonic-config-engine/tests/test_multinpu_cfggen.py b/src/sonic-config-engine/tests/test_multinpu_cfggen.py index f39cc9dce1b8..35c2000c0e4e 100644 --- a/src/sonic-config-engine/tests/test_multinpu_cfggen.py +++ b/src/sonic-config-engine/tests/test_multinpu_cfggen.py @@ -20,6 +20,7 @@ class TestMultiNpuCfgGen(TestCase): def setUp(self): + self.yang = utils.YangWrapper() self.test_dir = os.path.dirname(os.path.realpath(__file__)) self.test_data_dir = os.path.join(self.test_dir, 'multi_npu_data') self.script_file = utils.PYTHON_INTERPRETTER + ' ' + os.path.join(self.test_dir, '..', 'sonic-cfggen') @@ -34,6 +35,8 @@ def setUp(self): def run_script(self, argument, check_stderr=False): print('\n Running sonic-cfggen ' + argument) + self.assertTrue(self.yang.validate(argument)) + if check_stderr: output = subprocess.check_output(self.script_file + ' ' + argument, stderr=subprocess.STDOUT, shell=True) else: From 59e11f6e79d059c7545f6119a78337bd0a026607 Mon Sep 17 00:00:00 2001 From: Qi Luo Date: Tue, 17 May 2022 09:38:12 -0700 Subject: [PATCH 188/251] Update Configuration doc: fix separator and indentation (#10839) Update Configuration doc: fix separator and indentation --- src/sonic-yang-models/doc/Configuration.md | 46 +++++++++++----------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/src/sonic-yang-models/doc/Configuration.md b/src/sonic-yang-models/doc/Configuration.md index 9a1adcab9c48..d8904ae5e828 100644 --- a/src/sonic-yang-models/doc/Configuration.md +++ b/src/sonic-yang-models/doc/Configuration.md @@ -105,17 +105,18 @@ redis and json, correspondingly: ***Redis format*** + ``` -127.0.0.1:6379[4]> keys BGP_NEIGHBOR:* +127.0.0.1:6379[4]> keys BGP_NEIGHBOR|* -1) "BGP_NEIGHBOR:10.0.0.31" -2) "BGP_NEIGHBOR:10.0.0.39" -3) "BGP_NEIGHBOR:10.0.0.11" -4) "BGP_NEIGHBOR:10.0.0.7" +1) "BGP_NEIGHBOR|10.0.0.31" +2) "BGP_NEIGHBOR|10.0.0.39" +3) "BGP_NEIGHBOR|10.0.0.11" +4) "BGP_NEIGHBOR|10.0.0.7" ... -127.0.0.1:6379[4]> hgetall BGP_NEIGHBOR:10.0.0.3 +127.0.0.1:6379[4]> hgetall BGP_NEIGHBOR|10.0.0.3 1) "admin_status" 2) "up" @@ -128,26 +129,27 @@ redis and json, correspondingly: ``` ***Json format*** + ``` "BGP_NEIGHBOR": { - "10.0.0.57": { - "rrclient": "0", - "name": "ARISTA01T1", - "local_addr": "10.0.0.56", - "nhopself": "0", - "holdtime": "10", - "asn": "64600", - "keepalive": "3" - }, + "10.0.0.57": { + "rrclient": "0", + "name": "ARISTA01T1", + "local_addr": "10.0.0.56", + "nhopself": "0", + "holdtime": "10", + "asn": "64600", + "keepalive": "3" + }, "10.0.0.59": { - "rrclient": "0", - "name": "ARISTA02T1", - "local_addr": "10.0.0.58", - "nhopself": "0", - "holdtime": "10", - "asn": "64600", + "rrclient": "0", + "name": "ARISTA02T1", + "local_addr": "10.0.0.58", + "nhopself": "0", + "holdtime": "10", + "asn": "64600", "keepalive": "3" - }, + }, } ``` From 0eeb249fd85668b6d26a1a3401f43b81375afeb3 Mon Sep 17 00:00:00 2001 From: Lawrence Lee Date: Tue, 17 May 2022 13:55:59 -0700 Subject: [PATCH 189/251] [swss]: Convert swss docker to bullseye (#10484) * [swss]: Convert swss docker to bullseye Signed-off-by: Lawrence Lee --- dockers/docker-orchagent/Dockerfile.j2 | 13 +++-------- .../docker-swss-layer-bullseye/Dockerfile.j2 | 22 +++++++++++++++++++ rules/docker-orchagent.mk | 9 +++----- rules/docker-swss-layer-bullseye.dep | 9 ++++++++ rules/docker-swss-layer-bullseye.mk | 14 ++++++++++++ 5 files changed, 51 insertions(+), 16 deletions(-) create mode 100644 dockers/docker-swss-layer-bullseye/Dockerfile.j2 create mode 100644 rules/docker-swss-layer-bullseye.dep create mode 100644 rules/docker-swss-layer-bullseye.mk diff --git a/dockers/docker-orchagent/Dockerfile.j2 b/dockers/docker-orchagent/Dockerfile.j2 index adb084cf2271..a023862c1d9d 100755 --- a/dockers/docker-orchagent/Dockerfile.j2 +++ b/dockers/docker-orchagent/Dockerfile.j2 @@ -1,5 +1,5 @@ {% from "dockers/dockerfile-macros.j2" import install_debian_packages, install_python_wheels, copy_files %} -FROM docker-swss-layer-buster-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} +FROM docker-swss-layer-bullseye-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ARG docker_container_name RUN [ -f /etc/rsyslog.conf ] && sed -ri "s/%syslogtag%/$docker_container_name#%syslogtag%/;" /etc/rsyslog.conf @@ -26,17 +26,10 @@ RUN apt-get update && \ {% if ( CONFIGURED_ARCH == "armhf" or CONFIGURED_ARCH == "arm64" ) %} # Fix for gcc/python/iputils-ping not found in arm docker -RUN apt-get install -f -y python2.7 python2.7-dev RUN apt-get install -y \ - gcc-8 \ + gcc \ iputils-ping {% endif %} -{% if CONFIGURED_ARCH == "armhf" %} -RUN ln -s -f /usr/bin/gcc-8 /usr/bin/arm-linux-gnueabihf-gcc -{% endif %} -{% if CONFIGURED_ARCH == "arm64" %} -RUN ln -s -f /usr/bin/gcc-8 /usr/bin/aarch64-linux-gnu-gcc -{% endif %} # Dependencies of restore_neighbors.py RUN pip3 install \ @@ -45,7 +38,7 @@ RUN pip3 install \ {% if ( CONFIGURED_ARCH == "armhf" or CONFIGURED_ARCH == "arm64" ) %} # Remove installed gcc -RUN apt-get remove -y gcc-8 +RUN apt-get remove -y gcc {% endif %} {% if docker_orchagent_debs.strip() -%} diff --git a/dockers/docker-swss-layer-bullseye/Dockerfile.j2 b/dockers/docker-swss-layer-bullseye/Dockerfile.j2 new file mode 100644 index 000000000000..15f0e0edcc4a --- /dev/null +++ b/dockers/docker-swss-layer-bullseye/Dockerfile.j2 @@ -0,0 +1,22 @@ +{% from "dockers/dockerfile-macros.j2" import install_debian_packages, install_python_wheels, copy_files %} +FROM docker-config-engine-bullseye-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} + +## Make apt-get non-interactive +ENV DEBIAN_FRONTEND=noninteractive + +RUN apt-get update + +{% if docker_swss_layer_bullseye_debs.strip() -%} +# Copy locally-built Debian package dependencies +{{ copy_files("debs/", docker_swss_layer_bullseye_debs.split(' '), "/debs/") }} + +# Install locally-built Debian packages and implicitly install their dependencies +{{ install_debian_packages(docker_swss_layer_bullseye_debs.split(' ')) }} +{%- endif %} + +RUN apt-get clean -y && \ + apt-get autoclean -y && \ + apt-get autoremove -y && \ + rm -rf /debs + +ENTRYPOINT ["/usr/local/bin/supervisord"] diff --git a/rules/docker-orchagent.mk b/rules/docker-orchagent.mk index ef0c203877d8..917fe0b13661 100644 --- a/rules/docker-orchagent.mk +++ b/rules/docker-orchagent.mk @@ -6,17 +6,17 @@ DOCKER_ORCHAGENT_DBG = $(DOCKER_ORCHAGENT_STEM)-$(DBG_IMAGE_MARK).gz $(DOCKER_ORCHAGENT)_DEPENDS += $(SWSS) -$(DOCKER_ORCHAGENT)_DBG_DEPENDS = $($(DOCKER_SWSS_LAYER_BUSTER)_DBG_DEPENDS) +$(DOCKER_ORCHAGENT)_DBG_DEPENDS = $($(DOCKER_SWSS_LAYER_BULLSEYE)_DBG_DEPENDS) $(DOCKER_ORCHAGENT)_DBG_DEPENDS += $(SWSS_DBG) \ $(LIBSWSSCOMMON_DBG) \ $(LIBSAIREDIS_DBG) $(DOCKER_ORCHAGENT)_PYTHON_WHEELS += $(SCAPY) -$(DOCKER_ORCHAGENT)_DBG_IMAGE_PACKAGES = $($(DOCKER_SWSS_LAYER_BUSTER)_DBG_IMAGE_PACKAGES) +$(DOCKER_ORCHAGENT)_DBG_IMAGE_PACKAGES = $($(DOCKER_SWSS_LAYER_BULLSEYE)_DBG_IMAGE_PACKAGES) $(DOCKER_ORCHAGENT)_PATH = $(DOCKERS_PATH)/$(DOCKER_ORCHAGENT_STEM) -$(DOCKER_ORCHAGENT)_LOAD_DOCKERS += $(DOCKER_SWSS_LAYER_BUSTER) +$(DOCKER_ORCHAGENT)_LOAD_DOCKERS += $(DOCKER_SWSS_LAYER_BULLSEYE) $(DOCKER_ORCHAGENT)_VERSION = 1.0.0 $(DOCKER_ORCHAGENT)_PACKAGE_NAME = swss @@ -39,6 +39,3 @@ $(DOCKER_ORCHAGENT)_RUN_OPT += -v /var/log/swss:/var/log/swss:rw $(DOCKER_ORCHAGENT)_BASE_IMAGE_FILES += swssloglevel:/usr/bin/swssloglevel $(DOCKER_ORCHAGENT)_FILES += $(ARP_UPDATE_SCRIPT) $(ARP_UPDATE_VARS_TEMPLATE) $(SUPERVISOR_PROC_EXIT_LISTENER_SCRIPT) - -SONIC_BUSTER_DOCKERS += $(DOCKER_ORCHAGENT) -SONIC_BUSTER_DBG_DOCKERS += $(DOCKER_ORCHAGENT_DBG) diff --git a/rules/docker-swss-layer-bullseye.dep b/rules/docker-swss-layer-bullseye.dep new file mode 100644 index 000000000000..102405a467ed --- /dev/null +++ b/rules/docker-swss-layer-bullseye.dep @@ -0,0 +1,9 @@ + +DPATH := $($(DOCKER_SWSS_LAYER_BULLSEYE)_PATH) +DEP_FILES := $(SONIC_COMMON_FILES_LIST) rules/docker-swss-layer-bullseye.mk rules/docker-swss-layer-bullseye.dep +DEP_FILES += $(SONIC_COMMON_BASE_FILES_LIST) +DEP_FILES += $(shell git ls-files $(DPATH)) + +$(DOCKER_SWSS_LAYER_BULLSEYE)_CACHE_MODE := GIT_CONTENT_SHA +$(DOCKER_SWSS_LAYER_BULLSEYE)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST) +$(DOCKER_SWSS_LAYER_BULLSEYE)_DEP_FILES := $(DEP_FILES) diff --git a/rules/docker-swss-layer-bullseye.mk b/rules/docker-swss-layer-bullseye.mk new file mode 100644 index 000000000000..aebbbc122a68 --- /dev/null +++ b/rules/docker-swss-layer-bullseye.mk @@ -0,0 +1,14 @@ +# bullseye-based docker image for sonic swss layer + +DOCKER_SWSS_LAYER_BULLSEYE= docker-swss-layer-bullseye.gz +$(DOCKER_SWSS_LAYER_BULLSEYE)_PATH = $(DOCKERS_PATH)/docker-swss-layer-bullseye + +$(DOCKER_SWSS_LAYER_BULLSEYE)_DEPENDS += $(SWSS) +$(DOCKER_SWSS_LAYER_BULLSEYE)_LOAD_DOCKERS += $(DOCKER_CONFIG_ENGINE_BULLSEYE) + +$(DOCKER_SWSS_LAYER_BULLSEYE)_DBG_DEPENDS = $($(DOCKER_CONFIG_ENGINE_BULLSEYE)_DBG_DEPENDS) \ + $(SWSS) +$(DOCKER_SWSS_LAYER_BULLSEYE)_DBG_IMAGE_PACKAGES = $($(DOCKER_CONFIG_ENGINE_BULLSEYE)_DBG_IMAGE_PACKAGES) + +SONIC_DOCKER_IMAGES += $(DOCKER_SWSS_LAYER_BULLSEYE) +SONIC_BULLSEYE_DOCKERS += $(DOCKER_SWSS_LAYER_BULLSEYE) From 9e3f1c791457c5666257c9534d4a9ec608e038df Mon Sep 17 00:00:00 2001 From: lizhuhuams <103542826+lizhuhuams@users.noreply.github.com> Date: Wed, 18 May 2022 10:37:32 -0700 Subject: [PATCH 190/251] Revert "[reboiot-cause] Fix a broken symlink of previous-reboot-cause file removal issue (#10751)" (#10849) This reverts commit dee7655526699e3f66bf3744e098f03203345449. Co-authored-by: Ubuntu --- src/sonic-host-services/scripts/determine-reboot-cause | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-host-services/scripts/determine-reboot-cause b/src/sonic-host-services/scripts/determine-reboot-cause index 21b13d86aad8..1408ad0e2952 100755 --- a/src/sonic-host-services/scripts/determine-reboot-cause +++ b/src/sonic-host-services/scripts/determine-reboot-cause @@ -174,7 +174,7 @@ def main(): os.makedirs(REBOOT_CAUSE_DIR) # Remove stale PREVIOUS_REBOOT_CAUSE_FILE if it exists - if os.path.exists(PREVIOUS_REBOOT_CAUSE_FILE) or os.path.islink(PREVIOUS_REBOOT_CAUSE_FILE): + if os.path.exists(PREVIOUS_REBOOT_CAUSE_FILE): os.remove(PREVIOUS_REBOOT_CAUSE_FILE) # This variable is kept for future-use purpose. When proc_cmd_line/vendor/software provides From 70e8ad325d3a47dfa4308a2ec8878ab1df399b14 Mon Sep 17 00:00:00 2001 From: Lawrence Lee Date: Wed, 18 May 2022 13:01:27 -0700 Subject: [PATCH 191/251] [scapy]: Patch scapy 2.4.5 for sniffing on intfs (#10644) Apply scapy fix (https://github.com/secdev/scapy/pull/3240) since it is not available in release yet Signed-off-by: Lawrence Lee --- ...-resolve-the-interface-name-globally.patch | 112 ++++++++++++++++++ src/scapy.patch/series | 1 + 2 files changed, 113 insertions(+) create mode 100644 src/scapy.patch/0003-Do-not-resolve-the-interface-name-globally.patch diff --git a/src/scapy.patch/0003-Do-not-resolve-the-interface-name-globally.patch b/src/scapy.patch/0003-Do-not-resolve-the-interface-name-globally.patch new file mode 100644 index 000000000000..daaa182b641a --- /dev/null +++ b/src/scapy.patch/0003-Do-not-resolve-the-interface-name-globally.patch @@ -0,0 +1,112 @@ +From 430f8942fe086553fcd6ad1444e886a343bfd658 Mon Sep 17 00:00:00 2001 +From: Guillaume Valadon +Date: Mon, 10 May 2021 12:02:32 +0200 +Subject: [PATCH] Do not resolve the interface name globally + +--- + doc/scapy/usage.rst | 2 ++ + scapy/sendrecv.py | 16 ++++++++-------- + test/regression.uts | 31 +++++++++++++++++++++++++++++-- + 3 files changed, 39 insertions(+), 10 deletions(-) + +diff --git a/doc/scapy/usage.rst b/doc/scapy/usage.rst +index 45266430fe..c6cb273f62 100644 +--- a/doc/scapy/usage.rst ++++ b/doc/scapy/usage.rst +@@ -711,6 +711,8 @@ We can sniff and do passive OS fingerprinting:: + + The number before the OS guess is the accuracy of the guess. + ++.. note:: When sniffing on several interfaces (e.g. ``iface=["eth0", ...]``), you can check what interface a packet was sniffed on by using the ``sniffed_on`` attribute, as shown in one of the examples above. ++ + Asynchronous Sniffing + --------------------- + +diff --git a/scapy/sendrecv.py b/scapy/sendrecv.py +index 503c6a3b15..f97fc4153e 100644 +--- a/scapy/sendrecv.py ++++ b/scapy/sendrecv.py +@@ -1108,24 +1108,24 @@ def _run(self, + quiet=quiet) + )] = offline + if not sniff_sockets or iface is not None: +- iface = resolve_iface(iface or conf.iface) +- if L2socket is None: +- L2socket = iface.l2listen() ++ # The _RL2 function resolves the L2socket of an iface ++ _RL2 = lambda i: L2socket or resolve_iface(i).l2listen() # type: Callable[[_GlobInterfaceType], Callable[..., SuperSocket]] # noqa: E501 + if isinstance(iface, list): + sniff_sockets.update( +- (L2socket(type=ETH_P_ALL, iface=ifname, **karg), ++ (_RL2(ifname)(type=ETH_P_ALL, iface=ifname, **karg), + ifname) + for ifname in iface + ) + elif isinstance(iface, dict): + sniff_sockets.update( +- (L2socket(type=ETH_P_ALL, iface=ifname, **karg), ++ (_RL2(ifname)(type=ETH_P_ALL, iface=ifname, **karg), + iflabel) + for ifname, iflabel in six.iteritems(iface) + ) + else: +- sniff_sockets[L2socket(type=ETH_P_ALL, iface=iface, +- **karg)] = iface ++ iface = iface or conf.iface ++ sniff_sockets[_RL2(iface)(type=ETH_P_ALL, iface=iface, ++ **karg)] = iface + + # Get select information from the sockets + _main_socket = next(iter(sniff_sockets)) +@@ -1248,7 +1248,7 @@ def stop(self, join=True): + return self.results + return None + else: +- raise Scapy_Exception("Not started !") ++ raise Scapy_Exception("Not running ! (check .running attr)") + + def join(self, *args, **kwargs): + # type: (*Any, **Any) -> None +diff --git a/test/regression.uts b/test/regression.uts +index 38644b7d75..972af2f8cd 100644 +--- a/test/regression.uts ++++ b/test/regression.uts +@@ -1379,9 +1379,36 @@ def _test(): + assert (ans.time - req.sent_time) >= 0 + assert (ans.time - req.sent_time) <= 1e-3 + +-retry_test(_test) ++try: ++ retry_test(_test) ++finally: ++ conf.L3socket = sock ++ ++= Test sniffing on multiple sockets ++~ netaccess needs_root sniff ++ ++# This test sniffs on the same interface twice at the same time, to ++# simulate sniffing on multiple interfaces. ++ ++iface = conf.route.route("www.google.com")[0] ++port = int(RandShort()) ++pkt = IP(dst="www.google.com")/TCP(sport=port, dport=80, flags="S") ++ ++def cb(): ++ sr1(pkt, timeout=3) ++ ++sniffer = AsyncSniffer(started_callback=cb, ++ iface=[iface, iface], ++ lfilter=lambda x: TCP in x and x[TCP].dport == port, ++ prn=lambda x: x.summary(), ++ count=2) ++sniffer.start() ++sniffer.join(timeout=3) ++ ++assert len(sniffer.results) == 2 + +-conf.L3socket = sock ++for pkt in sniffer.results: ++ assert pkt.sniffed_on == iface + + = Sending a TCP syn 'forever' at layer 2 and layer 3 + ~ netaccess IP diff --git a/src/scapy.patch/series b/src/scapy.patch/series index d64f20f136c1..7b231848ac1f 100644 --- a/src/scapy.patch/series +++ b/src/scapy.patch/series @@ -1,2 +1,3 @@ 0001-Fix-version-string-generation-when-scapy-is-a-submod.patch 0002-Check-if-the-network-interface-still-exists.patch +0003-Do-not-resolve-the-interface-name-globally.patch From 0cc9fdc69bd01ef11b69120bfcbeb0a2ba7d286b Mon Sep 17 00:00:00 2001 From: StormLiangMS <89824293+StormLiangMS@users.noreply.github.com> Date: Thu, 19 May 2022 10:07:31 +0800 Subject: [PATCH 192/251] [bgpcfgd] ECMP overlay VxLan with BGP support (#10716) Why I did it https://github.com/Azure/SONiC/blob/master/doc/vxlan/Overlay%20ECMP%20with%20BFD.md From the design, need to advertise the route with community string, the PR is to implement this. How I did it To use the route-map as the profile for the community string, all advertised routes can be associated with one route-map. Add one file, mangers_rm.py, which is to add/update/del the route-map. Modified the managers_advertise_rt.py file to associate profile with IP route. The route-map usage is very flexible, by this PR, we only support one fixed usage to add community string for route to simplify this design. How to verify it Implement new unit tests for mangers_rm.py and updated unit test for managers_advertise_rt.py. Manually verified the test case in the test plan section, will add testcase in sonic-mgmt later. Azure/sonic-mgmt#5581 --- src/sonic-bgpcfgd/bgpcfgd/main.py | 2 + .../bgpcfgd/managers_advertise_rt.py | 83 ++++++++++++------- src/sonic-bgpcfgd/bgpcfgd/managers_rm.py | 78 +++++++++++++++++ src/sonic-bgpcfgd/tests/test_advertise_rt.py | 72 ++++++++++++++-- src/sonic-bgpcfgd/tests/test_rm.py | 62 ++++++++++++++ 5 files changed, 263 insertions(+), 34 deletions(-) create mode 100644 src/sonic-bgpcfgd/bgpcfgd/managers_rm.py create mode 100644 src/sonic-bgpcfgd/tests/test_rm.py diff --git a/src/sonic-bgpcfgd/bgpcfgd/main.py b/src/sonic-bgpcfgd/bgpcfgd/main.py index 28359dd62eb8..7b4291b4d4a3 100644 --- a/src/sonic-bgpcfgd/bgpcfgd/main.py +++ b/src/sonic-bgpcfgd/bgpcfgd/main.py @@ -17,6 +17,7 @@ from .managers_intf import InterfaceMgr from .managers_setsrc import ZebraSetSrc from .managers_static_rt import StaticRouteMgr +from .managers_rm import RouteMapMgr from .runner import Runner, signal_handler from .template import TemplateFabric from .utils import read_constants @@ -62,6 +63,7 @@ def do_work(): StaticRouteMgr(common_objs, "CONFIG_DB", "STATIC_ROUTE"), # Route Advertisement Managers AdvertiseRouteMgr(common_objs, "STATE_DB", swsscommon.STATE_ADVERTISE_NETWORK_TABLE_NAME), + RouteMapMgr(common_objs, "APPL_DB", swsscommon.APP_BGP_PROFILE_TABLE_NAME), ] runner = Runner(common_objs['cfg_mgr']) for mgr in managers: diff --git a/src/sonic-bgpcfgd/bgpcfgd/managers_advertise_rt.py b/src/sonic-bgpcfgd/bgpcfgd/managers_advertise_rt.py index 352b89f7286c..68c48b044f61 100644 --- a/src/sonic-bgpcfgd/bgpcfgd/managers_advertise_rt.py +++ b/src/sonic-bgpcfgd/bgpcfgd/managers_advertise_rt.py @@ -1,10 +1,14 @@ from .manager import Manager from .template import TemplateFabric from swsscommon import swsscommon +from .managers_rm import ROUTE_MAPS +import ipaddress +from .log import log_info, log_err, log_debug class AdvertiseRouteMgr(Manager): """ This class Advertises routes when ADVERTISE_NETWORK_TABLE in STATE_DB is updated """ + def __init__(self, common_objs, db, table): """ Initialize the object @@ -18,82 +22,105 @@ def __init__(self, common_objs, db, table): db, table, ) - + self.directory.subscribe([("CONFIG_DB", swsscommon.CFG_DEVICE_METADATA_TABLE_NAME, "localhost/bgp_asn"),], self.on_bgp_asn_change) self.advertised_routes = dict() - OP_DELETE = 'DELETE' - OP_ADD = 'ADD' - + OP_DELETE = "DELETE" + OP_ADD = "ADD" def set_handler(self, key, data): + log_debug("AdvertiseRouteMgr:: set handler") + if not self.__set_handler_validate(key, data): + return True vrf, ip_prefix = self.split_key(key) - self.add_route_advertisement(vrf, ip_prefix) + self.add_route_advertisement(vrf, ip_prefix, data) return True - def del_handler(self, key): + log_debug("AdvertiseRouteMgr:: del handler") vrf, ip_prefix = self.split_key(key) self.remove_route_advertisement(vrf, ip_prefix) - - def add_route_advertisement(self, vrf, ip_prefix): + def __set_handler_validate(self, key, data): + if data: + if ("profile" in data and data["profile"] in ROUTE_MAPS) or data == {"":""}: + """ + APP which config the data should be responsible to pass a valid IP prefix + """ + return True + + log_err("BGPAdvertiseRouteMgr:: Invalid data %s for advertised route %s" % (data, key)) + return False + + def add_route_advertisement(self, vrf, ip_prefix, data): if self.directory.path_exist("CONFIG_DB", swsscommon.CFG_DEVICE_METADATA_TABLE_NAME, "localhost/bgp_asn"): - if not self.advertised_routes.get(vrf, set()): + if not self.advertised_routes.get(vrf, dict()): self.bgp_network_import_check_commands(vrf, self.OP_ADD) - self.advertise_route_commands(ip_prefix, vrf, self.OP_ADD) - - self.advertised_routes.setdefault(vrf, set()).add(ip_prefix) + self.advertise_route_commands(ip_prefix, vrf, self.OP_ADD, data) + self.advertised_routes.setdefault(vrf, dict()).update({ip_prefix: data}) def remove_route_advertisement(self, vrf, ip_prefix): - self.advertised_routes.setdefault(vrf, set()).discard(ip_prefix) - if not self.advertised_routes.get(vrf, set()): + if ip_prefix not in self.advertised_routes.get(vrf, dict()): + log_info("BGPAdvertiseRouteMgr:: %s|%s does not exist" % (vrf, ip_prefix)) + return + self.advertised_routes.get(vrf, dict()).pop(ip_prefix) + if not self.advertised_routes.get(vrf, dict()): self.advertised_routes.pop(vrf, None) if self.directory.path_exist("CONFIG_DB", swsscommon.CFG_DEVICE_METADATA_TABLE_NAME, "localhost/bgp_asn"): - if not self.advertised_routes.get(vrf, set()): + if not self.advertised_routes.get(vrf, dict()): self.bgp_network_import_check_commands(vrf, self.OP_DELETE) self.advertise_route_commands(ip_prefix, vrf, self.OP_DELETE) - - def advertise_route_commands(self, ip_prefix, vrf, op): + def advertise_route_commands(self, ip_prefix, vrf, op, data=None): is_ipv6 = TemplateFabric.is_ipv6(ip_prefix) bgp_asn = self.directory.get_slot("CONFIG_DB", swsscommon.CFG_DEVICE_METADATA_TABLE_NAME)["localhost"]["bgp_asn"] cmd_list = [] - if vrf == 'default': + if vrf == "default": cmd_list.append("router bgp %s" % bgp_asn) else: cmd_list.append("router bgp %s vrf %s" % (bgp_asn, vrf)) cmd_list.append(" address-family %s unicast" % ("ipv6" if is_ipv6 else "ipv4")) - cmd_list.append(" %snetwork %s" % ('no ' if op == self.OP_DELETE else '', ip_prefix)) - self.cfg_mgr.push_list(cmd_list) + if data and "profile" in data: + cmd_list.append(" network %s route-map %s" % (ip_prefix, "%s_RM" % data["profile"])) + log_debug( + "BGPAdvertiseRouteMgr:: Update bgp %s network %s with route-map %s" + % (bgp_asn, vrf + "|" + ip_prefix, "%s_RM" % data["profile"]) + ) + else: + cmd_list.append(" %snetwork %s" % ("no " if op == self.OP_DELETE else "", ip_prefix)) + log_debug( + "BGPAdvertiseRouteMgr:: %sbgp %s network %s" + % ("Remove " if op == self.OP_DELETE else "Update ", bgp_asn, vrf + "|" + ip_prefix) + ) + self.cfg_mgr.push_list(cmd_list) + log_debug("BGPAdvertiseRouteMgr::Done") def bgp_network_import_check_commands(self, vrf, op): bgp_asn = self.directory.get_slot("CONFIG_DB", swsscommon.CFG_DEVICE_METADATA_TABLE_NAME)["localhost"]["bgp_asn"] cmd_list = [] - if vrf == 'default': + if vrf == "default": cmd_list.append("router bgp %s" % bgp_asn) else: cmd_list.append("router bgp %s vrf %s" % (bgp_asn, vrf)) - cmd_list.append(" %sbgp network import-check" % ('' if op == self.OP_DELETE else 'no ')) + cmd_list.append(" %sbgp network import-check" % ("" if op == self.OP_DELETE else "no ")) self.cfg_mgr.push_list(cmd_list) - def on_bgp_asn_change(self): if self.directory.path_exist("CONFIG_DB", swsscommon.CFG_DEVICE_METADATA_TABLE_NAME, "localhost/bgp_asn"): for vrf, ip_prefixes in self.advertised_routes.items(): self.bgp_network_import_check_commands(vrf, self.OP_ADD) for ip_prefix in ip_prefixes: - self.add_route_advertisement(vrf, ip_prefix) - + self.add_route_advertisement(vrf, ip_prefix, ip_prefixes[ip_prefix]) @staticmethod def split_key(key): @@ -102,7 +129,7 @@ def split_key(key): :param key: key to split :return: vrf name extracted from the key, ip prefix extracted from the key """ - if '|' not in key: - return 'default', key + if "|" not in key: + return "default", key else: - return tuple(key.split('|', 1)) + return tuple(key.split("|", 1)) diff --git a/src/sonic-bgpcfgd/bgpcfgd/managers_rm.py b/src/sonic-bgpcfgd/bgpcfgd/managers_rm.py new file mode 100644 index 000000000000..08609c68f9a6 --- /dev/null +++ b/src/sonic-bgpcfgd/bgpcfgd/managers_rm.py @@ -0,0 +1,78 @@ +from .manager import Manager +from .log import log_err, log_debug + +ROUTE_MAPS = ["FROM_SDN_SLB_ROUTES"] + + +class RouteMapMgr(Manager): + """This class add route-map when BGP_PROFILE_TABLE in APPL_DB is updated""" + + def __init__(self, common_objs, db, table): + """ + Initialize the object + :param common_objs: common object dictionary + :param db: name of the db + :param table: name of the table in the db + """ + super(RouteMapMgr, self).__init__( + common_objs, + [], + db, + table, + ) + + def set_handler(self, key, data): + log_debug("BGPRouteMapMgr:: set handler") + """Only need a name as the key, and community id as the data""" + if not self.__set_handler_validate(key, data): + return True + + self.__update_rm(key, data) + return True + + def del_handler(self, key): + log_debug("BGPRouteMapMgr:: del handler") + if not self.__del_handler_validate(key): + return + self.__remove_rm(key) + + def __remove_rm(self, rm): + cmds = ["no route-map %s permit 100" % ("%s_RM" % rm)] + log_debug("BGPRouteMapMgr:: remove route-map %s" % ("%s_RM" % rm)) + self.cfg_mgr.push_list(cmds) + log_debug("BGPRouteMapMgr::Done") + + def __set_handler_validate(self, key, data): + if key not in ROUTE_MAPS: + log_err("BGPRouteMapMgr:: Invalid key for route-map %s" % key) + return False + + if not data: + log_err("BGPRouteMapMgr:: data is None") + return False + community_ids = data["community_id"].split(":") + try: + if ( + len(community_ids) != 2 + or int(community_ids[0]) not in range(0, 65536) + or int(community_ids[1]) not in range(0, 65536) + ): + log_err("BGPRouteMapMgr:: data %s doesn't include valid community id %s" % (data, community_ids)) + return False + except ValueError: + log_err("BGPRouteMapMgr:: data %s includes illegal input" % (data)) + return False + + return True + + def __del_handler_validate(self, key): + if key not in ROUTE_MAPS: + log_err("BGPRouteMapMgr:: Invalid key for route-map %s" % key) + return False + return True + + def __update_rm(self, rm, data): + cmds = ["route-map %s permit 100" % ("%s_RM" % rm), " set community %s" % data["community_id"]] + log_debug("BGPRouteMapMgr:: update route-map %s community %s" % ("%s_RM" % rm, data["community_id"])) + self.cfg_mgr.push_list(cmds) + log_debug("BGPRouteMapMgr::Done") diff --git a/src/sonic-bgpcfgd/tests/test_advertise_rt.py b/src/sonic-bgpcfgd/tests/test_advertise_rt.py index 26f7b6617650..751540600006 100644 --- a/src/sonic-bgpcfgd/tests/test_advertise_rt.py +++ b/src/sonic-bgpcfgd/tests/test_advertise_rt.py @@ -48,7 +48,7 @@ def test_set_del(): set_del_test( mgr, "SET", - ("10.1.0.0/24", {}), + ("10.1.0.0/24", {"":""}), True, [ ["router bgp 65100", @@ -62,7 +62,7 @@ def test_set_del(): set_del_test( mgr, "SET", - ("fc00:10::/64", {}), + ("fc00:10::/64", {"":""}), True, [ ["router bgp 65100", @@ -103,7 +103,7 @@ def test_set_del_vrf(): set_del_test( mgr, "SET", - ("vrfRED|10.2.0.0/24", {}), + ("vrfRED|10.2.0.0/24", {"":""}), True, [ ["router bgp 65100 vrf vrfRED", @@ -117,7 +117,7 @@ def test_set_del_vrf(): set_del_test( mgr, "SET", - ("vrfRED|fc00:20::/64", {}), + ("vrfRED|fc00:20::/64", {"":""}), True, [ ["router bgp 65100 vrf vrfRED", @@ -158,7 +158,9 @@ def test_set_del_bgp_asn_change(): set_del_test( mgr, "SET", - ("vrfRED|10.3.0.0/24", {}), + ("vrfRED|10.3.0.0/24", { + "profile": "FROM_SDN_SLB_ROUTES" + }), True, [] ) @@ -170,7 +172,7 @@ def test_set_del_bgp_asn_change(): " no bgp network import-check"], ["router bgp 65100 vrf vrfRED", " address-family ipv4 unicast", - " network 10.3.0.0/24"] + " network 10.3.0.0/24 route-map FROM_SDN_SLB_ROUTES_RM"] ] def push_list(cmds): test_set_del_bgp_asn_change.push_list_called = True @@ -183,3 +185,61 @@ def push_list(cmds): mgr.directory.put("CONFIG_DB", swsscommon.CFG_DEVICE_METADATA_TABLE_NAME, "localhost", {"bgp_asn": "65100"}) assert test_set_del_bgp_asn_change.push_list_called + +def test_set_del_with_community(): + mgr = constructor() + set_del_test( + mgr, + "SET", + ("10.1.0.0/24", { + "profile": "FROM_SDN_SLB_ROUTES" + }), + True, + [ + ["router bgp 65100", + " no bgp network import-check"], + ["router bgp 65100", + " address-family ipv4 unicast", + " network 10.1.0.0/24 route-map FROM_SDN_SLB_ROUTES_RM"] + ] + ) + + set_del_test( + mgr, + "SET", + ("fc00:10::/64", { + "profile": "FROM_SDN_SLB_ROUTES" + }), + True, + [ + ["router bgp 65100", + " address-family ipv6 unicast", + " network fc00:10::/64 route-map FROM_SDN_SLB_ROUTES_RM"] + ] + ) + + set_del_test( + mgr, + "DEL", + ("10.1.0.0/24",), + True, + [ + ["router bgp 65100", + " address-family ipv4 unicast", + " no network 10.1.0.0/24"] + ] + ) + + set_del_test( + mgr, + "DEL", + ("fc00:10::/64",), + True, + [ + ["router bgp 65100", + " bgp network import-check"], + ["router bgp 65100", + " address-family ipv6 unicast", + " no network fc00:10::/64"] + ] + ) \ No newline at end of file diff --git a/src/sonic-bgpcfgd/tests/test_rm.py b/src/sonic-bgpcfgd/tests/test_rm.py new file mode 100644 index 000000000000..fe89055d27f4 --- /dev/null +++ b/src/sonic-bgpcfgd/tests/test_rm.py @@ -0,0 +1,62 @@ +from unittest.mock import MagicMock +from bgpcfgd.directory import Directory +from bgpcfgd.managers_rm import RouteMapMgr +from swsscommon import swsscommon + +def constructor(): + cfg_mgr = MagicMock() + + common_objs = { + 'directory': Directory(), + 'cfg_mgr': cfg_mgr, + 'constants': {}, + } + + mgr = RouteMapMgr(common_objs, "APPL_DB", "BGP_PROFILE_TABLE") + return mgr + +def set_del_test(mgr, op, args, expected_ret, expected_cmds): + set_del_test.push_list_called = False + def push_list(cmds): + set_del_test.push_list_called = True + assert cmds in expected_cmds + return True + mgr.cfg_mgr.push_list = push_list + + if op == "SET": + ret = mgr.set_handler(*args) + assert ret == expected_ret + elif op == "DEL": + mgr.del_handler(*args) + else: + assert False, "Wrong operation" + + if expected_cmds: + assert set_del_test.push_list_called, "cfg_mgr.push_list wasn't called" + else: + assert not set_del_test.push_list_called, "cfg_mgr.push_list was called" + +def test_set_del(): + mgr = constructor() + set_del_test( + mgr, + "SET", + ("FROM_SDN_SLB_ROUTES", { + "community_id": "1234:1234" + }), + True, + [ + ["route-map FROM_SDN_SLB_ROUTES_RM permit 100", + " set community 1234:1234"] + ] + ) + + set_del_test( + mgr, + "DEL", + ("FROM_SDN_SLB_ROUTES",), + True, + [ + ["no route-map FROM_SDN_SLB_ROUTES_RM permit 100"] + ] + ) From 910e1c6eb48ce6b6235068a65b76cf792c3631aa Mon Sep 17 00:00:00 2001 From: Ze Gan Date: Thu, 19 May 2022 21:59:37 +0800 Subject: [PATCH 193/251] [docker-macsec]: MACsec CLI Plugin (#9390) #### Why I did it To provide MACsec config and show CLI for manipulating MACsec #### How I did it Add `config macsec` and `show macsec`. #### How to verify it This PR includes unittest for MACsec CLI, check Azp status. - Add MACsec profile ``` admin@sonic:~$ sudo config macsec profile add --help Usage: config macsec profile add [OPTIONS] Add MACsec profile Options: --priority For Key server election. In 0-255 range with 0 being the highest priority. [default: 255] --cipher_suite The cipher suite for MACsec. [default: GCM- AES-128] --primary_cak Primary Connectivity Association Key. [required] --primary_ckn Primary CAK Name. [required] --policy MACsec policy. INTEGRITY_ONLY: All traffic, except EAPOL, will be converted to MACsec packets without encryption. SECURITY: All traffic, except EAPOL, will be encrypted by SecY. [default: security] --enable_replay_protect / --disable_replay_protect Whether enable replay protect. [default: False] --replay_window Replay window size that is the number of packets that could be out of order. This field works only if ENABLE_REPLAY_PROTECT is true. [default: 0] --send_sci / --no_send_sci Send SCI in SecTAG field of MACsec header. [default: True] --rekey_period The period of proactively refresh (Unit second). [default: 0] -?, -h, --help Show this message and exit. ``` - Delete MACsec profile ``` admin@sonic:~$ sudo config macsec profile del --help Usage: config macsec profile del [OPTIONS] Delete MACsec profile Options: -?, -h, --help Show this message and exit. ``` - Enable MACsec on the port ``` admin@sonic:~$ sudo config macsec port add --help Usage: config macsec port add [OPTIONS] Add MACsec port Options: -?, -h, --help Show this message and exit. ``` - Disable MACsec on the port ``` admin@sonic:~$ sudo config macsec port del --help Usage: config macsec port del [OPTIONS] Delete MACsec port Options: -?, -h, --help Show this message and exit. ``` Show MACsec ``` MACsec port(Ethernet0) --------------------- ----------- cipher_suite GCM-AES-256 enable true enable_encrypt true enable_protect true enable_replay_protect false replay_window 0 send_sci true --------------------- ----------- MACsec Egress SC (5254008f4f1c0001) ----------- - encoding_an 2 ----------- - MACsec Egress SA (1) ------------------------------------- ---------------------------------------------------------------- auth_key 849B69D363E2B0AA154BEBBD7C1D9487 next_pn 1 sak AE8C9BB36EA44B60375E84BC8E778596289E79240FDFA6D7BA33D3518E705A5E salt 000000000000000000000000 ssci 0 SAI_MACSEC_SA_ATTR_CURRENT_XPN 179 SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED 0 SAI_MACSEC_SA_STAT_OCTETS_PROTECTED 0 SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED 0 SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED 0 ------------------------------------- ---------------------------------------------------------------- MACsec Egress SA (2) ------------------------------------- ---------------------------------------------------------------- auth_key 5A8B8912139551D3678B43DD0F10FFA5 next_pn 1 sak 7F2651140F12C434F782EF9AD7791EE2CFE2BF315A568A48785E35FC803C9DB6 salt 000000000000000000000000 ssci 0 SAI_MACSEC_SA_ATTR_CURRENT_XPN 87185 SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED 0 SAI_MACSEC_SA_STAT_OCTETS_PROTECTED 0 SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED 0 SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED 0 ------------------------------------- ---------------------------------------------------------------- MACsec Ingress SC (525400edac5b0001) MACsec Ingress SA (1) --------------------------------------- ---------------------------------------------------------------- active true auth_key 849B69D363E2B0AA154BEBBD7C1D9487 lowest_acceptable_pn 1 sak AE8C9BB36EA44B60375E84BC8E778596289E79240FDFA6D7BA33D3518E705A5E salt 000000000000000000000000 ssci 0 SAI_MACSEC_SA_ATTR_CURRENT_XPN 103 SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED 0 SAI_MACSEC_SA_STAT_IN_PKTS_INVALID 0 SAI_MACSEC_SA_STAT_IN_PKTS_LATE 0 SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA 0 SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID 0 SAI_MACSEC_SA_STAT_IN_PKTS_OK 0 SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED 0 SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA 0 SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED 0 SAI_MACSEC_SA_STAT_OCTETS_PROTECTED 0 --------------------------------------- ---------------------------------------------------------------- MACsec Ingress SA (2) --------------------------------------- ---------------------------------------------------------------- active true auth_key 5A8B8912139551D3678B43DD0F10FFA5 lowest_acceptable_pn 1 sak 7F2651140F12C434F782EF9AD7791EE2CFE2BF315A568A48785E35FC803C9DB6 salt 000000000000000000000000 ssci 0 SAI_MACSEC_SA_ATTR_CURRENT_XPN 91824 SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED 0 SAI_MACSEC_SA_STAT_IN_PKTS_INVALID 0 SAI_MACSEC_SA_STAT_IN_PKTS_LATE 0 SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA 0 SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID 0 SAI_MACSEC_SA_STAT_IN_PKTS_OK 0 SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED 0 SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA 0 SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED 0 SAI_MACSEC_SA_STAT_OCTETS_PROTECTED 0 --------------------------------------- ---------------------------------------------------------------- MACsec port(Ethernet1) --------------------- ----------- cipher_suite GCM-AES-256 enable true enable_encrypt true enable_protect true enable_replay_protect false replay_window 0 send_sci true --------------------- ----------- MACsec Egress SC (5254008f4f1c0001) ----------- - encoding_an 1 ----------- - MACsec Egress SA (1) ------------------------------------- ---------------------------------------------------------------- auth_key 35FC8F2C81BCA28A95845A4D2A1EE6EF next_pn 1 sak 1EC8572B75A840BA6B3833DC550C620D2C65BBDDAD372D27A1DFEB0CD786671B salt 000000000000000000000000 ssci 0 SAI_MACSEC_SA_ATTR_CURRENT_XPN 4809 SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED 0 SAI_MACSEC_SA_STAT_OCTETS_PROTECTED 0 SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED 0 SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED 0 ------------------------------------- ---------------------------------------------------------------- MACsec Ingress SC (525400edac5b0001) MACsec Ingress SA (1) --------------------------------------- ---------------------------------------------------------------- active true auth_key 35FC8F2C81BCA28A95845A4D2A1EE6EF lowest_acceptable_pn 1 sak 1EC8572B75A840BA6B3833DC550C620D2C65BBDDAD372D27A1DFEB0CD786671B salt 000000000000000000000000 ssci 0 SAI_MACSEC_SA_ATTR_CURRENT_XPN 5033 SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED 0 SAI_MACSEC_SA_STAT_IN_PKTS_INVALID 0 SAI_MACSEC_SA_STAT_IN_PKTS_LATE 0 SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA 0 SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID 0 SAI_MACSEC_SA_STAT_IN_PKTS_OK 0 SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED 0 SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA 0 SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED 0 SAI_MACSEC_SA_STAT_OCTETS_PROTECTED 0 --------------------------------------- ---------------------------------------------------------------- ``` --- Makefile.work | 1 + dockers/docker-macsec/Dockerfile.j2 | 1 + .../cli-plugin-tests/appl_db.json | 247 + .../cli-plugin-tests/conftest.py | 33 + .../cli-plugin-tests/counters_db.json | 56923 ++++++++++++++++ .../cli-plugin-tests/mock_tables.py | 124 + .../docker-macsec/cli-plugin-tests/pytest.ini | 2 + .../cli-plugin-tests/test_config_macsec.py | 146 + .../cli-plugin-tests/test_show_macsec.py | 25 + .../cli/config/plugins/macsec.py | 181 + .../cli/show/plugins/show_macsec.py | 217 + rules/docker-macsec.mk | 27 +- 12 files changed, 57919 insertions(+), 8 deletions(-) create mode 100644 dockers/docker-macsec/cli-plugin-tests/appl_db.json create mode 100644 dockers/docker-macsec/cli-plugin-tests/conftest.py create mode 100644 dockers/docker-macsec/cli-plugin-tests/counters_db.json create mode 100644 dockers/docker-macsec/cli-plugin-tests/mock_tables.py create mode 100644 dockers/docker-macsec/cli-plugin-tests/pytest.ini create mode 100644 dockers/docker-macsec/cli-plugin-tests/test_config_macsec.py create mode 100644 dockers/docker-macsec/cli-plugin-tests/test_show_macsec.py create mode 100644 dockers/docker-macsec/cli/config/plugins/macsec.py create mode 100644 dockers/docker-macsec/cli/show/plugins/show_macsec.py diff --git a/Makefile.work b/Makefile.work index 9ecd611e92c6..9fe410a2ef48 100644 --- a/Makefile.work +++ b/Makefile.work @@ -354,6 +354,7 @@ SONIC_BUILD_INSTRUCTION := make \ SONIC_CONFIG_USE_NATIVE_DOCKERD_FOR_BUILD=$(SONIC_CONFIG_USE_NATIVE_DOCKERD_FOR_BUILD) \ SONIC_INCLUDE_SYSTEM_TELEMETRY=$(INCLUDE_SYSTEM_TELEMETRY) \ INCLUDE_DHCP_RELAY=$(INCLUDE_DHCP_RELAY) \ + INCLUDE_MACSEC=$(INCLUDE_MACSEC) \ SONIC_INCLUDE_RESTAPI=$(INCLUDE_RESTAPI) \ SONIC_INCLUDE_MUX=$(INCLUDE_MUX) \ TELEMETRY_WRITABLE=$(TELEMETRY_WRITABLE) \ diff --git a/dockers/docker-macsec/Dockerfile.j2 b/dockers/docker-macsec/Dockerfile.j2 index 481e79aa02d0..2e7a412466a5 100644 --- a/dockers/docker-macsec/Dockerfile.j2 +++ b/dockers/docker-macsec/Dockerfile.j2 @@ -27,5 +27,6 @@ COPY ["supervisord.conf", "/etc/supervisor/conf.d/"] COPY ["files/supervisor-proc-exit-listener", "/usr/bin"] COPY ["critical_processes", "/etc/supervisor"] COPY ["etc/wpa_supplicant.conf", "/etc/wpa_supplicant.conf"] +COPY ["cli", "/cli/"] ENTRYPOINT ["/usr/local/bin/supervisord"] diff --git a/dockers/docker-macsec/cli-plugin-tests/appl_db.json b/dockers/docker-macsec/cli-plugin-tests/appl_db.json new file mode 100644 index 000000000000..ec53af8fd4f0 --- /dev/null +++ b/dockers/docker-macsec/cli-plugin-tests/appl_db.json @@ -0,0 +1,247 @@ +{ + "MACSEC_EGRESS_SA_TABLE:Ethernet1:5254008f4f1c0001:1": { + "type": "hash", + "value": { + "sak": "1EC8572B75A840BA6B3833DC550C620D2C65BBDDAD372D27A1DFEB0CD786671B", + "auth_key": "35FC8F2C81BCA28A95845A4D2A1EE6EF", + "next_pn": "1", + "ssci": "0", + "salt": "000000000000000000000000" + }, + "ttl": -0.001, + "expireat": 1651807960.2301455 + }, + "MACSEC_PORT_TABLE:Ethernet5": { + "type": "hash", + "value": { + "enable": "true", + "cipher_suite": "GCM-AES-256", + "send_sci": "true", + "enable_protect": "true", + "enable_encrypt": "true", + "enable_replay_protect": "false", + "replay_window": "0" + }, + "ttl": -0.001, + "expireat": 1651807960.2302043 + }, + "MACSEC_EGRESS_SC_TABLE:Ethernet1:5254008f4f1c0001": { + "type": "hash", + "value": { + "encoding_an": "1" + }, + "ttl": -0.001, + "expireat": 1651807960.2302194 + }, + "MACSEC_INGRESS_SA_TABLE:Ethernet1:525400edac5b0001:1": { + "type": "hash", + "value": { + "active": "true", + "sak": "1EC8572B75A840BA6B3833DC550C620D2C65BBDDAD372D27A1DFEB0CD786671B", + "auth_key": "35FC8F2C81BCA28A95845A4D2A1EE6EF", + "lowest_acceptable_pn": "1", + "ssci": "0", + "salt": "000000000000000000000000" + }, + "ttl": -0.001, + "expireat": 1651807960.2302353 + }, + "MACSEC_INGRESS_SC_TABLE:Ethernet1:525400edac5b0001": { + "type": "hash", + "value": { + "Null": "Null" + }, + "ttl": -0.001, + "expireat": 1651807960.2302475 + }, + "MACSEC_INGRESS_SC_TABLE:Ethernet0:525400edac5b0001": { + "type": "hash", + "value": { + "Null": "Null" + }, + "ttl": -0.001, + "expireat": 1651807960.230258 + }, + "MACSEC_EGRESS_SA_TABLE:Ethernet5:5254008f4f1c0001:2": { + "type": "hash", + "value": { + "sak": "3BEBB5BB2539D7231EB95F312B843966180B6C941750B9F1A08AF71BA4508599", + "auth_key": "7C59E0CD393A3BA36B8DDC4C663A11FC", + "next_pn": "1", + "ssci": "0", + "salt": "000000000000000000000000" + }, + "ttl": -0.001, + "expireat": 1651807960.2302718 + }, + "MACSEC_INGRESS_SA_TABLE:Ethernet0:525400edac5b0001:2": { + "type": "hash", + "value": { + "active": "true", + "sak": "7F2651140F12C434F782EF9AD7791EE2CFE2BF315A568A48785E35FC803C9DB6", + "auth_key": "5A8B8912139551D3678B43DD0F10FFA5", + "lowest_acceptable_pn": "1", + "ssci": "0", + "salt": "000000000000000000000000" + }, + "ttl": -0.001, + "expireat": 1651807960.230298 + }, + "MACSEC_EGRESS_SC_TABLE:Ethernet5:5254008f4f1c0001": { + "type": "hash", + "value": { + "encoding_an": "2" + }, + "ttl": -0.001, + "expireat": 1651807960.2303102 + }, + "MACSEC_PORT_TABLE:Ethernet0": { + "type": "hash", + "value": { + "enable": "true", + "cipher_suite": "GCM-AES-256", + "send_sci": "true", + "enable_protect": "true", + "enable_encrypt": "true", + "enable_replay_protect": "false", + "replay_window": "0" + }, + "ttl": -0.001, + "expireat": 1651807960.23036 + }, + "MACSEC_INGRESS_SA_TABLE:Ethernet5:5254002003660001:2": { + "type": "hash", + "value": { + "active": "true", + "sak": "3BEBB5BB2539D7231EB95F312B843966180B6C941750B9F1A08AF71BA4508599", + "auth_key": "7C59E0CD393A3BA36B8DDC4C663A11FC", + "lowest_acceptable_pn": "1", + "ssci": "0", + "salt": "000000000000000000000000" + }, + "ttl": -0.001, + "expireat": 1651807960.2304032 + }, + "MACSEC_PORT_TABLE:Ethernet4": { + "type": "hash", + "value": { + "enable": "true", + "cipher_suite": "GCM-AES-256", + "send_sci": "true", + "enable_protect": "true", + "enable_encrypt": "true", + "enable_replay_protect": "false", + "replay_window": "0" + }, + "ttl": -0.001, + "expireat": 1651807960.2304454 + }, + "MACSEC_EGRESS_SA_TABLE:Ethernet4:5254008f4f1c0001:1": { + "type": "hash", + "value": { + "sak": "234128B1F6A679E02759D521C1FF448D5CE47B2E691852281EE8E34690B348DD", + "auth_key": "575FC253C395DFC3E1EE42C3DB665913", + "next_pn": "1", + "ssci": "0", + "salt": "000000000000000000000000" + }, + "ttl": -0.001, + "expireat": 1651807960.2304764 + }, + "MACSEC_INGRESS_SA_TABLE:Ethernet0:525400edac5b0001:1": { + "type": "hash", + "value": { + "active": "true", + "sak": "AE8C9BB36EA44B60375E84BC8E778596289E79240FDFA6D7BA33D3518E705A5E", + "auth_key": "849B69D363E2B0AA154BEBBD7C1D9487", + "lowest_acceptable_pn": "1", + "ssci": "0", + "salt": "000000000000000000000000" + }, + "ttl": -0.001, + "expireat": 1651807960.230506 + }, + "MACSEC_EGRESS_SC_TABLE:Ethernet0:5254008f4f1c0001": { + "type": "hash", + "value": { + "encoding_an": "2" + }, + "ttl": -0.001, + "expireat": 1651807960.2305164 + }, + "MACSEC_INGRESS_SA_TABLE:Ethernet4:5254002003660001:1": { + "type": "hash", + "value": { + "active": "true", + "sak": "234128B1F6A679E02759D521C1FF448D5CE47B2E691852281EE8E34690B348DD", + "auth_key": "575FC253C395DFC3E1EE42C3DB665913", + "lowest_acceptable_pn": "1", + "ssci": "0", + "salt": "000000000000000000000000" + }, + "ttl": -0.001, + "expireat": 1651807960.2305293 + }, + "MACSEC_EGRESS_SA_TABLE:Ethernet0:5254008f4f1c0001:2": { + "type": "hash", + "value": { + "sak": "7F2651140F12C434F782EF9AD7791EE2CFE2BF315A568A48785E35FC803C9DB6", + "auth_key": "5A8B8912139551D3678B43DD0F10FFA5", + "next_pn": "1", + "ssci": "0", + "salt": "000000000000000000000000" + }, + "ttl": -0.001, + "expireat": 1651807960.2305422 + }, + "MACSEC_INGRESS_SC_TABLE:Ethernet5:5254002003660001": { + "type": "hash", + "value": { + "Null": "Null" + }, + "ttl": -0.001, + "expireat": 1651807960.2305527 + }, + "MACSEC_INGRESS_SC_TABLE:Ethernet4:5254002003660001": { + "type": "hash", + "value": { + "Null": "Null" + }, + "ttl": -0.001, + "expireat": 1651807960.2305627 + }, + "MACSEC_PORT_TABLE:Ethernet1": { + "type": "hash", + "value": { + "enable": "true", + "cipher_suite": "GCM-AES-256", + "send_sci": "true", + "enable_protect": "true", + "enable_encrypt": "true", + "enable_replay_protect": "false", + "replay_window": "0" + }, + "ttl": -0.001, + "expireat": 1651807960.2305753 + }, + "MACSEC_EGRESS_SA_TABLE:Ethernet0:5254008f4f1c0001:1": { + "type": "hash", + "value": { + "sak": "AE8C9BB36EA44B60375E84BC8E778596289E79240FDFA6D7BA33D3518E705A5E", + "auth_key": "849B69D363E2B0AA154BEBBD7C1D9487", + "next_pn": "1", + "ssci": "0", + "salt": "000000000000000000000000" + }, + "ttl": -0.001, + "expireat": 1651807960.2305882 + }, + "MACSEC_EGRESS_SC_TABLE:Ethernet4:5254008f4f1c0001": { + "type": "hash", + "value": { + "encoding_an": "1" + }, + "ttl": -0.001, + "expireat": 1651807960.2305987 + } +} diff --git a/dockers/docker-macsec/cli-plugin-tests/conftest.py b/dockers/docker-macsec/cli-plugin-tests/conftest.py new file mode 100644 index 000000000000..56dcc3f3023a --- /dev/null +++ b/dockers/docker-macsec/cli-plugin-tests/conftest.py @@ -0,0 +1,33 @@ +import pytest +import mock_tables # lgtm [py/unused-import] +from unittest import mock + + +@pytest.fixture() +def mock_cfgdb(): + cfgdb = mock.Mock() + CONFIG = { + 'PORT': { + 'Ethernet0': { + } + } + } + + def get_entry(table, key): + if table not in CONFIG or key not in CONFIG[table]: + return {} + return CONFIG[table][key] + + def set_entry(table, key, data): + CONFIG.setdefault(table, {}) + CONFIG[table].setdefault(key, {}) + CONFIG[table][key] = data + + def get_keys(table): + return CONFIG[table].keys() + + cfgdb.get_entry = mock.Mock(side_effect=get_entry) + cfgdb.set_entry = mock.Mock(side_effect=set_entry) + cfgdb.get_keys = mock.Mock(side_effect=get_keys) + + yield cfgdb diff --git a/dockers/docker-macsec/cli-plugin-tests/counters_db.json b/dockers/docker-macsec/cli-plugin-tests/counters_db.json new file mode 100644 index 000000000000..f872e7888af3 --- /dev/null +++ b/dockers/docker-macsec/cli-plugin-tests/counters_db.json @@ -0,0 +1,56923 @@ +{ + "COUNTERS_MACSEC_SA_RX_NAME_MAP": { + "type": "hash", + "value": { + "Ethernet0:525400edac5b0001:1": "oid:0x5c0000000027f9", + "Ethernet1:525400edac5b0001:1": "oid:0x5c0000000027fb", + "Ethernet4:5254002003660001:1": "oid:0x5c0000000027fd", + "Ethernet5:5254002003660001:2": "oid:0x5c0000000027ff", + "Ethernet0:525400edac5b0001:2": "oid:0x5c000000002801" + }, + "ttl": -0.001, + "expireat": 1651809068.9579792 + }, + "COUNTERS_MACSEC_NAME_MAP": { + "type": "hash", + "value": { + "Ethernet0:525400edac5b0001:1": "oid:0x5c0000000027f9", + "Ethernet0:5254008f4f1c0001:1": "oid:0x5c0000000027fa", + "Ethernet1:525400edac5b0001:1": "oid:0x5c0000000027fb", + "Ethernet1:5254008f4f1c0001:1": "oid:0x5c0000000027fc", + "Ethernet4:5254002003660001:1": "oid:0x5c0000000027fd", + "Ethernet4:5254008f4f1c0001:1": "oid:0x5c0000000027fe", + "Ethernet5:5254002003660001:2": "oid:0x5c0000000027ff", + "Ethernet5:5254008f4f1c0001:2": "oid:0x5c000000002800", + "Ethernet0:525400edac5b0001:2": "oid:0x5c000000002801", + "Ethernet0:5254008f4f1c0001:2": "oid:0x5c000000002802" + }, + "ttl": -0.001, + "expireat": 1651809068.9580717 + }, + "COUNTERS_MACSEC_SA_TX_NAME_MAP": { + "type": "hash", + "value": { + "Ethernet0:5254008f4f1c0001:1": "oid:0x5c0000000027fa", + "Ethernet1:5254008f4f1c0001:1": "oid:0x5c0000000027fc", + "Ethernet4:5254008f4f1c0001:1": "oid:0x5c0000000027fe", + "Ethernet5:5254008f4f1c0001:2": "oid:0x5c000000002800", + "Ethernet0:5254008f4f1c0001:2": "oid:0x5c000000002802" + }, + "ttl": -0.001, + "expireat": 1651809068.9580936 + }, + "COUNTERS:oid:0x5c00000000251d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "301" + }, + "ttl": -0.001, + "expireat": 1651808848.006698 + }, + "COUNTERS:oid:0x5c000000002615": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "301", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0067422 + }, + "COUNTERS:oid:0x5c0000000016d5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "313" + }, + "ttl": -0.001, + "expireat": 1651808848.006761 + }, + "COUNTERS:oid:0x5c000000002302": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "5", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.006775 + }, + "COUNTERS:oid:0x5c000000001ba2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.006798 + }, + "COUNTERS:oid:0x5c00000000165d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0068138 + }, + "COUNTERS:oid:0x5c000000001697": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.006829 + }, + "COUNTERS:oid:0x5c0000000016de": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0068412 + }, + "COUNTERS:oid:0x5c000000001a19": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1314" + }, + "ttl": -0.001, + "expireat": 1651808848.0068521 + }, + "COUNTERS:oid:0x5c000000001f99": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "159" + }, + "ttl": -0.001, + "expireat": 1651808848.0068626 + }, + "COUNTERS:oid:0x5c000000001e46": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "20" + }, + "ttl": -0.001, + "expireat": 1651808848.0068734 + }, + "COUNTERS:oid:0x5c000000001455": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1295", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.006884 + }, + "COUNTERS:oid:0x5c000000001e33": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0068977 + }, + "COUNTERS:oid:0x5c0000000013ef": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "118" + }, + "ttl": -0.001, + "expireat": 1651808848.0069118 + }, + "COUNTERS:oid:0x5c000000001e57": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0069232 + }, + "COUNTERS:oid:0x5c0000000014f5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "3541" + }, + "ttl": -0.001, + "expireat": 1651808848.0069337 + }, + "COUNTERS:oid:0x5c000000001d33": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0069473 + }, + "COUNTERS:oid:0x5c000000002171": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0069616 + }, + "COUNTERS:oid:0x5c00000000248b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "739", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.006973 + }, + "COUNTERS:oid:0x5c000000001d86": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "465", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0069835 + }, + "COUNTERS:oid:0x5c0000000022f0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "51" + }, + "ttl": -0.001, + "expireat": 1651808848.0070834 + }, + "COUNTERS:oid:0x5c000000001595": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0071015 + }, + "COUNTERS:oid:0x5c000000001d63": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "20" + }, + "ttl": -0.001, + "expireat": 1651808848.0071144 + }, + "COUNTERS:oid:0x5c000000002130": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0071256 + }, + "COUNTERS:oid:0x5c000000001c34": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.0071363 + }, + "COUNTERS:oid:0x5c0000000018a5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "301", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.00715 + }, + "COUNTERS:oid:0x5c000000001375": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1355" + }, + "ttl": -0.001, + "expireat": 1651808848.007161 + }, + "COUNTERS:oid:0x5c00000000165c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "189" + }, + "ttl": -0.001, + "expireat": 1651808848.007189 + }, + "COUNTERS:oid:0x5c00000000226a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1507", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0072176 + }, + "COUNTERS:oid:0x5c000000001d87": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "37", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.007346 + }, + "COUNTERS:oid:0x5c000000001ab4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "126" + }, + "ttl": -0.001, + "expireat": 1651808848.0073662 + }, + "COUNTERS:oid:0x5c000000001be8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0073798 + }, + "COUNTERS:oid:0x5c000000001e41": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "32" + }, + "ttl": -0.001, + "expireat": 1651808848.0073972 + }, + "COUNTERS:oid:0x5c000000001979": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "27" + }, + "ttl": -0.001, + "expireat": 1651808848.007411 + }, + "COUNTERS:oid:0x5c0000000015c7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "29", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0074277 + }, + "COUNTERS:oid:0x5c0000000025a4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "177", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0074422 + }, + "COUNTERS:oid:0x5c000000001d32": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "121" + }, + "ttl": -0.001, + "expireat": 1651808848.0074558 + }, + "COUNTERS:oid:0x5c000000001641": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "132" + }, + "ttl": -0.001, + "expireat": 1651808848.0074692 + }, + "COUNTERS:oid:0x5c000000001818": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "171" + }, + "ttl": -0.001, + "expireat": 1651808848.0074859 + }, + "COUNTERS:oid:0x5c0000000025dc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "177" + }, + "ttl": -0.001, + "expireat": 1651808848.0074997 + }, + "COUNTERS:oid:0x5c0000000014e2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11932", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0075166 + }, + "COUNTERS:oid:0x5c000000001c48": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0076163 + }, + "COUNTERS:oid:0x5c000000001b92": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "110" + }, + "ttl": -0.001, + "expireat": 1651808848.0076487 + }, + "COUNTERS:oid:0x5c000000002310": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "50", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0076768 + }, + "COUNTERS:oid:0x5c000000001ff3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0077043 + }, + "COUNTERS:oid:0x5c000000001d51": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1290" + }, + "ttl": -0.001, + "expireat": 1651808848.0077152 + }, + "COUNTERS:oid:0x5c000000001c8f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "238" + }, + "ttl": -0.001, + "expireat": 1651808848.00773 + }, + "COUNTERS:oid:0x5c000000001ccf": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0077415 + }, + "COUNTERS:oid:0x5c000000001c21": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "15", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0077553 + }, + "COUNTERS:oid:0x5c000000002436": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0077693 + }, + "COUNTERS:oid:0x5c000000001eed": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0077808 + }, + "COUNTERS:oid:0x5c000000001c27": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "289" + }, + "ttl": -0.001, + "expireat": 1651808848.0077944 + }, + "COUNTERS:oid:0x5c0000000014cf": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0078056 + }, + "COUNTERS:oid:0x5c0000000026e0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.0078194 + }, + "COUNTERS:oid:0x5c000000001997": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0078342 + }, + "COUNTERS:oid:0x5c000000002598": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0078454 + }, + "COUNTERS:oid:0x5c0000000017ee": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "270" + }, + "ttl": -0.001, + "expireat": 1651808848.0078592 + }, + "COUNTERS:oid:0x5c00000000247a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0078733 + }, + "COUNTERS:oid:0x5c000000001cd3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "20", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.007884 + }, + "COUNTERS:oid:0x5c00000000162e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0078948 + }, + "COUNTERS:oid:0x5c00000000164e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0079055 + }, + "COUNTERS:oid:0x5c000000001772": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0079195 + }, + "COUNTERS:oid:0x5c0000000015ea": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "218" + }, + "ttl": -0.001, + "expireat": 1651808848.0079744 + }, + "COUNTERS:oid:0x5c000000001c10": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0079923 + }, + "COUNTERS:oid:0x5c0000000013cd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0080047 + }, + "COUNTERS:oid:0x5c0000000019b0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "179" + }, + "ttl": -0.001, + "expireat": 1651808848.0080156 + }, + "COUNTERS:oid:0x5c00000000233d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "6", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.00803 + }, + "COUNTERS:oid:0x5c00000000232c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "61", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.008044 + }, + "COUNTERS:oid:0x5c000000001d2c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1333" + }, + "ttl": -0.001, + "expireat": 1651808848.008055 + }, + "COUNTERS:oid:0x5c0000000020ae": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1260" + }, + "ttl": -0.001, + "expireat": 1651808848.008066 + }, + "COUNTERS:oid:0x5c000000001def": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0080767 + }, + "COUNTERS:oid:0x5c00000000276f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "15", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0080903 + }, + "COUNTERS:oid:0x5c0000000017f4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0081048 + }, + "COUNTERS:oid:0x5c000000001654": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.0081162 + }, + "COUNTERS:oid:0x5c0000000022d2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "6", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.008127 + }, + "COUNTERS:oid:0x5c000000001651": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0081377 + }, + "COUNTERS:oid:0x5c000000001d5a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0081515 + }, + "COUNTERS:oid:0x5c000000001a02": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "184" + }, + "ttl": -0.001, + "expireat": 1651808848.008163 + }, + "COUNTERS:oid:0x5c0000000018fc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "16" + }, + "ttl": -0.001, + "expireat": 1651808848.008174 + }, + "COUNTERS:oid:0x5c000000002311": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "6" + }, + "ttl": -0.001, + "expireat": 1651808848.0081873 + }, + "COUNTERS:oid:0x5c000000002172": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.008199 + }, + "COUNTERS:oid:0x5c000000001a33": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "28" + }, + "ttl": -0.001, + "expireat": 1651808848.0082095 + }, + "COUNTERS:oid:0x5c00000000233e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "5", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.00822 + }, + "COUNTERS:oid:0x5c000000002473": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0082731 + }, + "COUNTERS:oid:0x5c000000002566": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1267" + }, + "ttl": -0.001, + "expireat": 1651808848.008287 + }, + "COUNTERS:oid:0x5c0000000013fe": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0083017 + }, + "COUNTERS:oid:0x5c000000001d7a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0083144 + }, + "COUNTERS:oid:0x5c000000001ae0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "181", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0083287 + }, + "COUNTERS:oid:0x5c000000001e3b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.008344 + }, + "COUNTERS:oid:0x5c000000001a4a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0083551 + }, + "COUNTERS:oid:0x5c0000000017f6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "258" + }, + "ttl": -0.001, + "expireat": 1651808848.0083692 + }, + "COUNTERS:oid:0x5c000000001479": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "341", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.008384 + }, + "COUNTERS:oid:0x5c000000001761": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0083954 + }, + "COUNTERS:oid:0x5c000000002349": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "6", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0084262 + }, + "COUNTERS:oid:0x5c0000000025fa": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.008456 + }, + "COUNTERS:oid:0x5c00000000138c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0084674 + }, + "COUNTERS:oid:0x5c000000001741": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0084789 + }, + "COUNTERS:oid:0x5c000000001a32": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "37" + }, + "ttl": -0.001, + "expireat": 1651808848.0085113 + }, + "COUNTERS:oid:0x5c000000001ec2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "97" + }, + "ttl": -0.001, + "expireat": 1651808848.0085275 + }, + "COUNTERS:oid:0x5c000000002155": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "299", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0085428 + }, + "COUNTERS:oid:0x5c000000002570": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0085552 + }, + "COUNTERS:oid:0x5c0000000017d2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "310" + }, + "ttl": -0.001, + "expireat": 1651808848.0085704 + }, + "COUNTERS:oid:0x5c0000000015e5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0085826 + }, + "COUNTERS:oid:0x5c00000000258c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "177" + }, + "ttl": -0.001, + "expireat": 1651808848.0086384 + }, + "COUNTERS:oid:0x5c00000000208a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "111" + }, + "ttl": -0.001, + "expireat": 1651808848.0086534 + }, + "COUNTERS:oid:0x5c000000001705": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0086818 + }, + "COUNTERS:oid:0x5c000000001b10": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "429", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0086935 + }, + "COUNTERS:oid:0x5c000000001f30": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "176", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0087092 + }, + "COUNTERS:oid:0x5c000000001e42": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "25" + }, + "ttl": -0.001, + "expireat": 1651808848.0087218 + }, + "COUNTERS:oid:0x5c000000001570": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1582" + }, + "ttl": -0.001, + "expireat": 1651808848.0087335 + }, + "COUNTERS:oid:0x5c0000000018d4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.008748 + }, + "COUNTERS:oid:0x5c000000002544": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0087597 + }, + "COUNTERS:oid:0x5c000000001796": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0087752 + }, + "COUNTERS:oid:0x5c000000001650": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.008807 + }, + "COUNTERS:oid:0x5c0000000024f7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.008819 + }, + "COUNTERS:oid:0x5c000000001e7e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0088463 + }, + "COUNTERS:oid:0x5c00000000250a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0088778 + }, + "COUNTERS:oid:0x5c00000000174c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0088916 + }, + "COUNTERS:oid:0x5c00000000145f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0089054 + }, + "COUNTERS:oid:0x5c00000000212e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1252" + }, + "ttl": -0.001, + "expireat": 1651808848.0089164 + }, + "COUNTERS:oid:0x5c0000000023ec": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "143", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.00893 + }, + "COUNTERS:oid:0x5c0000000018a2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "144", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0089438 + }, + "COUNTERS:oid:0x5c0000000013b4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.008955 + }, + "COUNTERS:oid:0x5c000000001682": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0090425 + }, + "COUNTERS:oid:0x5c000000001e9a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0090604 + }, + "COUNTERS:oid:0x5c0000000022d3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "6", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0090756 + }, + "COUNTERS:oid:0x5c000000001d85": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "110", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0090904 + }, + "COUNTERS:oid:0x5c000000001d67": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "20", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.009102 + }, + "COUNTERS:oid:0x5c000000001fef": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0091136 + }, + "COUNTERS:oid:0x5c00000000171c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0091271 + }, + "COUNTERS:oid:0x5c00000000156f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "304" + }, + "ttl": -0.001, + "expireat": 1651808848.0091414 + }, + "COUNTERS:oid:0x5c000000001f48": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "18", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0091553 + }, + "COUNTERS:oid:0x5c000000002619": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0091696 + }, + "COUNTERS:oid:0x5c0000000013d5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13" + }, + "ttl": -0.001, + "expireat": 1651808848.0091813 + }, + "COUNTERS:oid:0x5c0000000026e8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0091953 + }, + "COUNTERS:oid:0x5c00000000200a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.009227 + }, + "COUNTERS:oid:0x5c000000001df3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0092382 + }, + "COUNTERS:oid:0x5c000000002095": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "262" + }, + "ttl": -0.001, + "expireat": 1651808848.0092518 + }, + "COUNTERS:oid:0x5c000000001631": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "61" + }, + "ttl": -0.001, + "expireat": 1651808848.0092654 + }, + "COUNTERS:oid:0x5c000000002158": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0092764 + }, + "COUNTERS:oid:0x5c000000001a24": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.00929 + }, + "COUNTERS:oid:0x5c000000001563": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.009364 + }, + "COUNTERS:oid:0x5c000000001723": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "155" + }, + "ttl": -0.001, + "expireat": 1651808848.0093815 + }, + "COUNTERS:oid:0x5c000000001dea": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "118", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0093954 + }, + "COUNTERS:oid:0x5c0000000016c1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "67", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0094092 + }, + "COUNTERS:oid:0x5c0000000026ad": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "180" + }, + "ttl": -0.001, + "expireat": 1651808848.009421 + }, + "COUNTERS:oid:0x5c0000000020ba": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "179" + }, + "ttl": -0.001, + "expireat": 1651808848.0094318 + }, + "COUNTERS:oid:0x5c000000001ff7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0094597 + }, + "COUNTERS:oid:0x5c0000000023e6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0094738 + }, + "COUNTERS:oid:0x5c0000000021f6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "304", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.00951 + }, + "COUNTERS:oid:0x5c0000000020aa": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1401", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0095222 + }, + "COUNTERS:oid:0x5c000000001b08": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0095332 + }, + "COUNTERS:oid:0x5c000000002447": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0095444 + }, + "COUNTERS:oid:0x5c000000001d9d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.009573 + }, + "COUNTERS:oid:0x5c0000000014ed": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11796" + }, + "ttl": -0.001, + "expireat": 1651808848.0095847 + }, + "COUNTERS:oid:0x5c00000000211f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0096002 + }, + "COUNTERS:oid:0x5c000000001707": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0096123 + }, + "COUNTERS:oid:0x5c000000001cf4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "20", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0096238 + }, + "COUNTERS:oid:0x5c000000001a61": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "202" + }, + "ttl": -0.001, + "expireat": 1651808848.0096354 + }, + "COUNTERS:oid:0x5c000000001c55": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0096498 + }, + "COUNTERS:oid:0x5c000000001d8f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "198" + }, + "ttl": -0.001, + "expireat": 1651808848.0096648 + }, + "COUNTERS:oid:0x5c0000000013cb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175" + }, + "ttl": -0.001, + "expireat": 1651808848.0097172 + }, + "COUNTERS:oid:0x5c000000001b70": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "15" + }, + "ttl": -0.001, + "expireat": 1651808848.0097353 + }, + "COUNTERS:oid:0x5c000000002459": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1276", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.009748 + }, + "COUNTERS:oid:0x5c000000001abe": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.00976 + }, + "COUNTERS:oid:0x5c000000001a6c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1305" + }, + "ttl": -0.001, + "expireat": 1651808848.0097873 + }, + "COUNTERS:oid:0x5c0000000020ea": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "176", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0098143 + }, + "COUNTERS:oid:0x5c000000002667": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "295", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.009828 + }, + "COUNTERS:oid:0x5c0000000022c2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "71" + }, + "ttl": -0.001, + "expireat": 1651808848.0098393 + }, + "COUNTERS:oid:0x5c000000001c2f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0098534 + }, + "COUNTERS:oid:0x5c0000000016e6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "265" + }, + "ttl": -0.001, + "expireat": 1651808848.0098648 + }, + "COUNTERS:oid:0x5c00000000256d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "297", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0098786 + }, + "COUNTERS:oid:0x5c000000002557": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0098925 + }, + "COUNTERS:oid:0x5c0000000026ee": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "85" + }, + "ttl": -0.001, + "expireat": 1651808848.0099065 + }, + "COUNTERS:oid:0x5c000000001a4c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "182" + }, + "ttl": -0.001, + "expireat": 1651808848.0099177 + }, + "COUNTERS:oid:0x5c000000001f08": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0099287 + }, + "COUNTERS:oid:0x5c000000002337": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "40", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0099428 + }, + "COUNTERS:oid:0x5c000000001ee4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0099568 + }, + "COUNTERS:oid:0x5c000000001c2b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0099711 + }, + "COUNTERS:oid:0x5c000000001883": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0099826 + }, + "COUNTERS:oid:0x5c000000001e1a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "104", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0100317 + }, + "COUNTERS:oid:0x5c00000000191c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "249", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0100493 + }, + "COUNTERS:oid:0x5c0000000025e3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "176", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.010064 + }, + "COUNTERS:oid:0x5c000000001673": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0100787 + }, + "COUNTERS:oid:0x5c000000001608": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0100904 + }, + "COUNTERS:oid:0x5c00000000231c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "512", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0101016 + }, + "COUNTERS:oid:0x5c0000000017a3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22" + }, + "ttl": -0.001, + "expireat": 1651808848.0101154 + }, + "COUNTERS:oid:0x5c0000000017ab": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "122" + }, + "ttl": -0.001, + "expireat": 1651808848.0101266 + }, + "COUNTERS:oid:0x5c0000000013bc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0101402 + }, + "COUNTERS:oid:0x5c0000000025c1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0101542 + }, + "COUNTERS:oid:0x5c000000001c0d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0101655 + }, + "COUNTERS:oid:0x5c0000000014c0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "344", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.010179 + }, + "COUNTERS:oid:0x5c000000001fed": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1383", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0101902 + }, + "COUNTERS:oid:0x5c000000001f03": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "165", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0102015 + }, + "COUNTERS:oid:0x5c000000002583": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "16" + }, + "ttl": -0.001, + "expireat": 1651808848.0102148 + }, + "COUNTERS:oid:0x5c000000001d01": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0102262 + }, + "COUNTERS:oid:0x5c000000001783": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1301" + }, + "ttl": -0.001, + "expireat": 1651808848.010237 + }, + "COUNTERS:oid:0x5c00000000173a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "302" + }, + "ttl": -0.001, + "expireat": 1651808848.0102506 + }, + "COUNTERS:oid:0x5c0000000015fd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "300" + }, + "ttl": -0.001, + "expireat": 1651808848.0102646 + }, + "COUNTERS:oid:0x5c0000000018d8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "182" + }, + "ttl": -0.001, + "expireat": 1651808848.0103133 + }, + "COUNTERS:oid:0x5c000000002318": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "52", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0103283 + }, + "COUNTERS:oid:0x5c00000000217c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0103395 + }, + "COUNTERS:oid:0x5c0000000016fa": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "297", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0103536 + }, + "COUNTERS:oid:0x5c00000000175e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "298" + }, + "ttl": -0.001, + "expireat": 1651808848.0103683 + }, + "COUNTERS:oid:0x5c000000002604": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0103796 + }, + "COUNTERS:oid:0x5c00000000156d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.010395 + }, + "COUNTERS:oid:0x5c000000001e35": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "185", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0104089 + }, + "COUNTERS:oid:0x5c0000000019b7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "152" + }, + "ttl": -0.001, + "expireat": 1651808848.0104227 + }, + "COUNTERS:oid:0x5c00000000162f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0104368 + }, + "COUNTERS:oid:0x5c0000000022ed": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "6", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0105639 + }, + "COUNTERS:oid:0x5c0000000019e9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "24" + }, + "ttl": -0.001, + "expireat": 1651808848.0106716 + }, + "COUNTERS:oid:0x5c000000002549": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "159", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0106924 + }, + "COUNTERS:oid:0x5c000000001baa": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "18", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0107076 + }, + "COUNTERS:oid:0x5c0000000019a7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "196" + }, + "ttl": -0.001, + "expireat": 1651808848.0107214 + }, + "COUNTERS:oid:0x5c000000001769": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "15" + }, + "ttl": -0.001, + "expireat": 1651808848.0107348 + }, + "COUNTERS:oid:0x5c0000000017bf": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "401" + }, + "ttl": -0.001, + "expireat": 1651808848.0107481 + }, + "COUNTERS:oid:0x5c00000000170b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "218" + }, + "ttl": -0.001, + "expireat": 1651808848.0107615 + }, + "COUNTERS:oid:0x5c0000000024fc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0107746 + }, + "COUNTERS:oid:0x5c000000001e5e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0107923 + }, + "COUNTERS:oid:0x5c000000001e56": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.010874 + }, + "COUNTERS:oid:0x5c000000001b53": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0109105 + }, + "COUNTERS:oid:0x5c000000001f45": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "21" + }, + "ttl": -0.001, + "expireat": 1651808848.0109417 + }, + "COUNTERS:oid:0x5c000000001a77": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0109575 + }, + "COUNTERS:oid:0x5c000000001367": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1502" + }, + "ttl": -0.001, + "expireat": 1651808848.0109868 + }, + "COUNTERS:oid:0x5c000000001e58": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "17" + }, + "ttl": -0.001, + "expireat": 1651808848.011002 + }, + "COUNTERS:oid:0x5c000000001b31": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.0110145 + }, + "COUNTERS:oid:0x5c000000001fc3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1330", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0110264 + }, + "COUNTERS:oid:0x5c0000000017aa": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "177" + }, + "ttl": -0.001, + "expireat": 1651808848.0110419 + }, + "COUNTERS:oid:0x5c000000001f0d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "289" + }, + "ttl": -0.001, + "expireat": 1651808848.0110571 + }, + "COUNTERS:oid:0x5c00000000244b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1280", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0110698 + }, + "COUNTERS:oid:0x5c000000001e61": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.0110817 + }, + "COUNTERS:oid:0x5c000000001ce7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "152" + }, + "ttl": -0.001, + "expireat": 1651808848.011113 + }, + "COUNTERS:oid:0x5c000000001820": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0111492 + }, + "COUNTERS:oid:0x5c000000001754": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "27" + }, + "ttl": -0.001, + "expireat": 1651808848.0111637 + }, + "COUNTERS:oid:0x5c000000002330": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "53", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0111752 + }, + "COUNTERS:oid:0x5c000000001863": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "306" + }, + "ttl": -0.001, + "expireat": 1651808848.0112135 + }, + "COUNTERS:oid:0x5c0000000020fa": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0112798 + }, + "COUNTERS:oid:0x5c000000001a8c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0113647 + }, + "COUNTERS:oid:0x5c000000002089": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175" + }, + "ttl": -0.001, + "expireat": 1651808848.0113833 + }, + "COUNTERS:oid:0x5c000000001484": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1278" + }, + "ttl": -0.001, + "expireat": 1651808848.0113957 + }, + "COUNTERS:oid:0x5c0000000013a1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1240" + }, + "ttl": -0.001, + "expireat": 1651808848.0114076 + }, + "COUNTERS:oid:0x5c000000001d15": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0114348 + }, + "COUNTERS:oid:0x5c0000000019de": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0114489 + }, + "COUNTERS:oid:0x5c000000001963": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0114605 + }, + "COUNTERS:oid:0x5c00000000206a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "16", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0114715 + }, + "COUNTERS:oid:0x5c0000000020c4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0114825 + }, + "COUNTERS:oid:0x5c000000001904": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.0114934 + }, + "COUNTERS:oid:0x5c0000000026ef": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "80" + }, + "ttl": -0.001, + "expireat": 1651808848.0115201 + }, + "COUNTERS:oid:0x5c00000000227f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "24" + }, + "ttl": -0.001, + "expireat": 1651808848.011531 + }, + "COUNTERS:oid:0x5c0000000016c2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "246" + }, + "ttl": -0.001, + "expireat": 1651808848.0115416 + }, + "COUNTERS:oid:0x5c0000000025e2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.011552 + }, + "COUNTERS:oid:0x5c0000000014a9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1285" + }, + "ttl": -0.001, + "expireat": 1651808848.0115628 + }, + "COUNTERS:oid:0x5c0000000026e2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "299" + }, + "ttl": -0.001, + "expireat": 1651808848.0115764 + }, + "COUNTERS:oid:0x5c000000001c4d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "234", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0115907 + }, + "COUNTERS:oid:0x5c00000000217e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1296", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0116017 + }, + "COUNTERS:oid:0x5c000000001a2c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0116155 + }, + "COUNTERS:oid:0x5c00000000248a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "6", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0116265 + }, + "COUNTERS:oid:0x5c000000001727": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0116377 + }, + "COUNTERS:oid:0x5c000000001e19": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0116496 + }, + "COUNTERS:oid:0x5c000000001b7a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0117068 + }, + "COUNTERS:oid:0x5c000000001e85": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.011725 + }, + "COUNTERS:oid:0x5c000000002277": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "124", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.011737 + }, + "COUNTERS:oid:0x5c0000000019bb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0117512 + }, + "COUNTERS:oid:0x5c000000001b77": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.01178 + }, + "COUNTERS:oid:0x5c00000000146e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.011795 + }, + "COUNTERS:oid:0x5c000000002309": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "5", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0118093 + }, + "COUNTERS:oid:0x5c00000000200d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "127", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0118208 + }, + "COUNTERS:oid:0x5c000000002186": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1411" + }, + "ttl": -0.001, + "expireat": 1651808848.011832 + }, + "COUNTERS:oid:0x5c00000000145b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "5475" + }, + "ttl": -0.001, + "expireat": 1651808848.011843 + }, + "COUNTERS:oid:0x5c000000001eee": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "169" + }, + "ttl": -0.001, + "expireat": 1651808848.0118568 + }, + "COUNTERS:oid:0x5c0000000015a3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "29", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0118713 + }, + "COUNTERS:oid:0x5c000000001c60": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "18" + }, + "ttl": -0.001, + "expireat": 1651808848.0118828 + }, + "COUNTERS:oid:0x5c00000000171b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "136" + }, + "ttl": -0.001, + "expireat": 1651808848.0118935 + }, + "COUNTERS:oid:0x5c000000001c7f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.0119042 + }, + "COUNTERS:oid:0x5c0000000018a9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.011918 + }, + "COUNTERS:oid:0x5c000000001d78": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "15" + }, + "ttl": -0.001, + "expireat": 1651808848.011929 + }, + "COUNTERS:oid:0x5c000000001d07": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1295" + }, + "ttl": -0.001, + "expireat": 1651808848.0119398 + }, + "COUNTERS:oid:0x5c00000000172a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0119536 + }, + "COUNTERS:oid:0x5c0000000013df": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1199" + }, + "ttl": -0.001, + "expireat": 1651808848.0119653 + }, + "COUNTERS:oid:0x5c00000000144c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0120466 + }, + "COUNTERS:oid:0x5c00000000265a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0120609 + }, + "COUNTERS:oid:0x5c0000000026e6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "177" + }, + "ttl": -0.001, + "expireat": 1651808848.0120754 + }, + "COUNTERS:oid:0x5c000000001830": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0121067 + }, + "COUNTERS:oid:0x5c000000001c06": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0121214 + }, + "COUNTERS:oid:0x5c00000000256b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0121353 + }, + "COUNTERS:oid:0x5c000000001751": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.0121467 + }, + "COUNTERS:oid:0x5c0000000018b1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0121603 + }, + "COUNTERS:oid:0x5c000000002457": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0121713 + }, + "COUNTERS:oid:0x5c0000000025b9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13" + }, + "ttl": -0.001, + "expireat": 1651808848.012185 + }, + "COUNTERS:oid:0x5c0000000027f7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.012199 + }, + "COUNTERS:oid:0x5c00000000188e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "128", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0122135 + }, + "COUNTERS:oid:0x5c00000000233a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "5" + }, + "ttl": -0.001, + "expireat": 1651808848.0122254 + }, + "COUNTERS:oid:0x5c0000000020f4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "178" + }, + "ttl": -0.001, + "expireat": 1651808848.0122364 + }, + "COUNTERS:oid:0x5c000000001ce4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0122466 + }, + "COUNTERS:oid:0x5c000000001349": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "210" + }, + "ttl": -0.001, + "expireat": 1651808848.0122602 + }, + "COUNTERS:oid:0x5c000000001e79": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "262", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0122967 + }, + "COUNTERS:oid:0x5c000000002563": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.012311 + }, + "COUNTERS:oid:0x5c000000001888": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "309" + }, + "ttl": -0.001, + "expireat": 1651808848.012374 + }, + "COUNTERS:oid:0x5c000000001d14": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.012392 + }, + "COUNTERS:oid:0x5c0000000015d8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0124042 + }, + "COUNTERS:oid:0x5c00000000199f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "20" + }, + "ttl": -0.001, + "expireat": 1651808848.0124154 + }, + "COUNTERS:oid:0x5c000000002126": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1268" + }, + "ttl": -0.001, + "expireat": 1651808848.0124266 + }, + "COUNTERS:oid:0x5c000000001a3e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1305" + }, + "ttl": -0.001, + "expireat": 1651808848.0124376 + }, + "COUNTERS:oid:0x5c000000001434": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "24" + }, + "ttl": -0.001, + "expireat": 1651808848.0124516 + }, + "COUNTERS:oid:0x5c000000001753": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "307" + }, + "ttl": -0.001, + "expireat": 1651808848.012463 + }, + "COUNTERS:oid:0x5c000000001df8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "24" + }, + "ttl": -0.001, + "expireat": 1651808848.0124738 + }, + "COUNTERS:oid:0x5c00000000183a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.012488 + }, + "COUNTERS:oid:0x5c0000000021eb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1377" + }, + "ttl": -0.001, + "expireat": 1651808848.012499 + }, + "COUNTERS:oid:0x5c0000000024fd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "304", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.012513 + }, + "COUNTERS:oid:0x5c00000000189e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22" + }, + "ttl": -0.001, + "expireat": 1651808848.012537 + }, + "COUNTERS:oid:0x5c0000000014f4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "3559" + }, + "ttl": -0.001, + "expireat": 1651808848.012551 + }, + "COUNTERS:oid:0x5c00000000191a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "171", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0125654 + }, + "COUNTERS:oid:0x5c000000002653": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "180" + }, + "ttl": -0.001, + "expireat": 1651808848.0125794 + }, + "COUNTERS:oid:0x5c000000002541": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "153" + }, + "ttl": -0.001, + "expireat": 1651808848.0125933 + }, + "COUNTERS:oid:0x5c0000000013e1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0126045 + }, + "COUNTERS:oid:0x5c0000000014e4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "327", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0126336 + }, + "COUNTERS:oid:0x5c000000002127": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0127077 + }, + "COUNTERS:oid:0x5c00000000214f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1215", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.012723 + }, + "COUNTERS:oid:0x5c000000001d8b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0127378 + }, + "COUNTERS:oid:0x5c000000002351": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "4", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.012752 + }, + "COUNTERS:oid:0x5c00000000186d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0127664 + }, + "COUNTERS:oid:0x5c000000001fe0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "263", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0127983 + }, + "COUNTERS:oid:0x5c00000000172d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.012826 + }, + "COUNTERS:oid:0x5c000000002007": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0128372 + }, + "COUNTERS:oid:0x5c000000001a8f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175" + }, + "ttl": -0.001, + "expireat": 1651808848.012848 + }, + "COUNTERS:oid:0x5c000000001ccd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "455" + }, + "ttl": -0.001, + "expireat": 1651808848.0128589 + }, + "COUNTERS:oid:0x5c0000000025d8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.01287 + }, + "COUNTERS:oid:0x5c0000000014ac": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0129013 + }, + "COUNTERS:oid:0x5c00000000255e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1283", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.012932 + }, + "COUNTERS:oid:0x5c000000001e83": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0129468 + }, + "COUNTERS:oid:0x5c000000001786": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "140" + }, + "ttl": -0.001, + "expireat": 1651808848.012962 + }, + "COUNTERS:oid:0x5c000000001c78": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "111", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0130646 + }, + "COUNTERS:oid:0x5c0000000019dc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "181" + }, + "ttl": -0.001, + "expireat": 1651808848.0130816 + }, + "COUNTERS:oid:0x5c000000001a6d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0130968 + }, + "COUNTERS:oid:0x5c00000000263c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0131576 + }, + "COUNTERS:oid:0x5c00000000243f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0131726 + }, + "COUNTERS:oid:0x5c000000001775": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.0131848 + }, + "COUNTERS:oid:0x5c0000000013dc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1359" + }, + "ttl": -0.001, + "expireat": 1651808848.0131965 + }, + "COUNTERS:oid:0x5c000000002138": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0132084 + }, + "COUNTERS:oid:0x5c000000001789": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0132535 + }, + "COUNTERS:oid:0x5c000000002774": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1505" + }, + "ttl": -0.001, + "expireat": 1651808848.0132802 + }, + "COUNTERS:oid:0x5c000000001782": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "266", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0132957 + }, + "COUNTERS:oid:0x5c0000000014d5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0133076 + }, + "COUNTERS:oid:0x5c000000001d92": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "264", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.013321 + }, + "COUNTERS:oid:0x5c00000000180e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "195" + }, + "ttl": -0.001, + "expireat": 1651808848.0133348 + }, + "COUNTERS:oid:0x5c0000000014a6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0133486 + }, + "COUNTERS:oid:0x5c00000000141a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0133796 + }, + "COUNTERS:oid:0x5c0000000016a0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "25" + }, + "ttl": -0.001, + "expireat": 1651808848.01339 + }, + "COUNTERS:oid:0x5c000000001f1e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "477", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0134006 + }, + "COUNTERS:oid:0x5c000000001465": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0134106 + }, + "COUNTERS:oid:0x5c000000001701": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0134208 + }, + "COUNTERS:oid:0x5c000000001d17": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "467" + }, + "ttl": -0.001, + "expireat": 1651808848.013431 + }, + "COUNTERS:oid:0x5c000000001e8c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0134413 + }, + "COUNTERS:oid:0x5c0000000020a0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0134513 + }, + "COUNTERS:oid:0x5c000000001cb7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0134616 + }, + "COUNTERS:oid:0x5c000000001e6f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "200", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0134716 + }, + "COUNTERS:oid:0x5c000000002509": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "152" + }, + "ttl": -0.001, + "expireat": 1651808848.0134842 + }, + "COUNTERS:oid:0x5c00000000260b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "179" + }, + "ttl": -0.001, + "expireat": 1651808848.013533 + }, + "COUNTERS:oid:0x5c000000001c83": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "442" + }, + "ttl": -0.001, + "expireat": 1651808848.013548 + }, + "COUNTERS:oid:0x5c00000000180d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22" + }, + "ttl": -0.001, + "expireat": 1651808848.0135584 + }, + "COUNTERS:oid:0x5c0000000017cb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1295" + }, + "ttl": -0.001, + "expireat": 1651808848.0135694 + }, + "COUNTERS:oid:0x5c00000000253a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "179", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0135796 + }, + "COUNTERS:oid:0x5c000000002596": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1263", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.01359 + }, + "COUNTERS:oid:0x5c00000000247d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0136 + }, + "COUNTERS:oid:0x5c000000001497": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11794", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0136132 + }, + "COUNTERS:oid:0x5c000000001e9d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175" + }, + "ttl": -0.001, + "expireat": 1651808848.0136244 + }, + "COUNTERS:oid:0x5c000000001f0e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1330" + }, + "ttl": -0.001, + "expireat": 1651808848.0136342 + }, + "COUNTERS:oid:0x5c000000001d3a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0136445 + }, + "COUNTERS:oid:0x5c000000001b6d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "159" + }, + "ttl": -0.001, + "expireat": 1651808848.0136547 + }, + "COUNTERS:oid:0x5c000000001443": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0136678 + }, + "COUNTERS:oid:0x5c00000000232f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "39", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0136812 + }, + "COUNTERS:oid:0x5c00000000139c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "217", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0136945 + }, + "COUNTERS:oid:0x5c000000002107": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0137076 + }, + "COUNTERS:oid:0x5c000000001a01": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "183" + }, + "ttl": -0.001, + "expireat": 1651808848.0137203 + }, + "COUNTERS:oid:0x5c000000002510": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0137484 + }, + "COUNTERS:oid:0x5c000000001816": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0137618 + }, + "COUNTERS:oid:0x5c000000001af9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.013775 + }, + "COUNTERS:oid:0x5c000000001750": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0138237 + }, + "COUNTERS:oid:0x5c000000001f5f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.013841 + }, + "COUNTERS:oid:0x5c0000000015a7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "193", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0138547 + }, + "COUNTERS:oid:0x5c0000000026e7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "176" + }, + "ttl": -0.001, + "expireat": 1651808848.0138662 + }, + "COUNTERS:oid:0x5c000000001d56": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "182", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0138795 + }, + "COUNTERS:oid:0x5c000000001b1a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "200", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0138905 + }, + "COUNTERS:oid:0x5c000000002576": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1284", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.013901 + }, + "COUNTERS:oid:0x5c00000000253f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0139143 + }, + "COUNTERS:oid:0x5c000000002518": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.013925 + }, + "COUNTERS:oid:0x5c000000001461": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0139353 + }, + "COUNTERS:oid:0x5c00000000189f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0139456 + }, + "COUNTERS:oid:0x5c000000001814": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.013959 + }, + "COUNTERS:oid:0x5c000000001b11": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "36", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0139723 + }, + "COUNTERS:oid:0x5c000000001887": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "176" + }, + "ttl": -0.001, + "expireat": 1651808848.0139832 + }, + "COUNTERS:oid:0x5c0000000025a8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0139935 + }, + "COUNTERS:oid:0x5c0000000014f6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "164", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0140066 + }, + "COUNTERS:oid:0x5c000000002666": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0140173 + }, + "COUNTERS:oid:0x5c000000002018": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "806" + }, + "ttl": -0.001, + "expireat": 1651808848.0140307 + }, + "COUNTERS:oid:0x5c0000000015fc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0140417 + }, + "COUNTERS:oid:0x5c000000002646": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.014052 + }, + "COUNTERS:oid:0x5c000000001569": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0140998 + }, + "COUNTERS:oid:0x5c000000002567": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0141168 + }, + "COUNTERS:oid:0x5c000000001cb4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "261" + }, + "ttl": -0.001, + "expireat": 1651808848.0141304 + }, + "COUNTERS:oid:0x5c000000001b95": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.014144 + }, + "COUNTERS:oid:0x5c0000000023dc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0141575 + }, + "COUNTERS:oid:0x5c00000000254a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "177", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0141683 + }, + "COUNTERS:oid:0x5c000000001e00": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "176" + }, + "ttl": -0.001, + "expireat": 1651808848.0141788 + }, + "COUNTERS:oid:0x5c0000000019b9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.014192 + }, + "COUNTERS:oid:0x5c0000000018d3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1294" + }, + "ttl": -0.001, + "expireat": 1651808848.014203 + }, + "COUNTERS:oid:0x5c000000002321": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "6", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0142164 + }, + "COUNTERS:oid:0x5c000000001ebb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "273" + }, + "ttl": -0.001, + "expireat": 1651808848.01423 + }, + "COUNTERS:oid:0x5c00000000245b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0142407 + }, + "COUNTERS:oid:0x5c0000000015de": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "114" + }, + "ttl": -0.001, + "expireat": 1651808848.014251 + }, + "COUNTERS:oid:0x5c0000000015b1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175" + }, + "ttl": -0.001, + "expireat": 1651808848.0142643 + }, + "COUNTERS:oid:0x5c0000000023fe": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.014275 + }, + "COUNTERS:oid:0x5c000000001ec5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13" + }, + "ttl": -0.001, + "expireat": 1651808848.014288 + }, + "COUNTERS:oid:0x5c000000002010": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1528" + }, + "ttl": -0.001, + "expireat": 1651808848.0143013 + }, + "COUNTERS:oid:0x5c00000000245d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "140", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.014312 + }, + "COUNTERS:oid:0x5c000000001a70": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "15" + }, + "ttl": -0.001, + "expireat": 1651808848.014356 + }, + "COUNTERS:oid:0x5c000000001833": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "173", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0143726 + }, + "COUNTERS:oid:0x5c00000000253d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "299", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.014387 + }, + "COUNTERS:oid:0x5c000000001d30": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0143979 + }, + "COUNTERS:oid:0x5c00000000147e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0144112 + }, + "COUNTERS:oid:0x5c000000001ce0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "179" + }, + "ttl": -0.001, + "expireat": 1651808848.014422 + }, + "COUNTERS:oid:0x5c000000001ca5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0144353 + }, + "COUNTERS:oid:0x5c000000001fff": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0144465 + }, + "COUNTERS:oid:0x5c000000001a46": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1370" + }, + "ttl": -0.001, + "expireat": 1651808848.0144567 + }, + "COUNTERS:oid:0x5c000000001984": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1279" + }, + "ttl": -0.001, + "expireat": 1651808848.0144675 + }, + "COUNTERS:oid:0x5c00000000210f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0144808 + }, + "COUNTERS:oid:0x5c000000001804": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0144942 + }, + "COUNTERS:oid:0x5c0000000019f1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "204" + }, + "ttl": -0.001, + "expireat": 1651808848.0145051 + }, + "COUNTERS:oid:0x5c000000001399": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0145328 + }, + "COUNTERS:oid:0x5c000000002442": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0145457 + }, + "COUNTERS:oid:0x5c000000002429": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0145588 + }, + "COUNTERS:oid:0x5c000000001b04": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0145693 + }, + "COUNTERS:oid:0x5c000000001919": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0145793 + }, + "COUNTERS:oid:0x5c00000000216e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1258", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0145893 + }, + "COUNTERS:oid:0x5c0000000013cf": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1268" + }, + "ttl": -0.001, + "expireat": 1651808848.014599 + }, + "COUNTERS:oid:0x5c000000001ce9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0146122 + }, + "COUNTERS:oid:0x5c0000000019bc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.014657 + }, + "COUNTERS:oid:0x5c00000000251f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.014673 + }, + "COUNTERS:oid:0x5c000000001b2e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0146873 + }, + "COUNTERS:oid:0x5c0000000023de": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "154" + }, + "ttl": -0.001, + "expireat": 1651808848.0147007 + }, + "COUNTERS:oid:0x5c0000000015fb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.014714 + }, + "COUNTERS:oid:0x5c000000001765": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.014725 + }, + "COUNTERS:oid:0x5c0000000018bc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0147347 + }, + "COUNTERS:oid:0x5c00000000143e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0147474 + }, + "COUNTERS:oid:0x5c000000001f4f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "281", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0147603 + }, + "COUNTERS:oid:0x5c0000000015a1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "61" + }, + "ttl": -0.001, + "expireat": 1651808848.0147736 + }, + "COUNTERS:oid:0x5c000000001c2e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "185" + }, + "ttl": -0.001, + "expireat": 1651808848.0147839 + }, + "COUNTERS:oid:0x5c00000000189a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "36" + }, + "ttl": -0.001, + "expireat": 1651808848.0147965 + }, + "COUNTERS:oid:0x5c00000000184b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.014807 + }, + "COUNTERS:oid:0x5c000000001aed": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "24" + }, + "ttl": -0.001, + "expireat": 1651808848.014817 + }, + "COUNTERS:oid:0x5c000000002444": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "144", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0148299 + }, + "COUNTERS:oid:0x5c00000000142c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "221", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0148432 + }, + "COUNTERS:oid:0x5c000000001ce3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.014856 + }, + "COUNTERS:oid:0x5c0000000017af": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1317" + }, + "ttl": -0.001, + "expireat": 1651808848.0148666 + }, + "COUNTERS:oid:0x5c00000000232b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "496", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.014911 + }, + "COUNTERS:oid:0x5c000000001925": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0149238 + }, + "COUNTERS:oid:0x5c000000002555": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "301" + }, + "ttl": -0.001, + "expireat": 1651808848.0149374 + }, + "COUNTERS:oid:0x5c000000001cfc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "141", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0149486 + }, + "COUNTERS:oid:0x5c000000001ada": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "286" + }, + "ttl": -0.001, + "expireat": 1651808848.014962 + }, + "COUNTERS:oid:0x5c000000001e51": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0149724 + }, + "COUNTERS:oid:0x5c000000001b33": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0149825 + }, + "COUNTERS:oid:0x5c000000002274": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.014995 + }, + "COUNTERS:oid:0x5c0000000016d8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "97" + }, + "ttl": -0.001, + "expireat": 1651808848.0150054 + }, + "COUNTERS:oid:0x5c000000001ca1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0150185 + }, + "COUNTERS:oid:0x5c00000000230b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "63" + }, + "ttl": -0.001, + "expireat": 1651808848.015032 + }, + "COUNTERS:oid:0x5c0000000016bb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.015045 + }, + "COUNTERS:oid:0x5c000000001844": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "182", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0150754 + }, + "COUNTERS:oid:0x5c000000002624": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "177", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0150862 + }, + "COUNTERS:oid:0x5c000000001819": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "106" + }, + "ttl": -0.001, + "expireat": 1651808848.0150967 + }, + "COUNTERS:oid:0x5c00000000250b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.015107 + }, + "COUNTERS:oid:0x5c000000002133": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175" + }, + "ttl": -0.001, + "expireat": 1651808848.0151198 + }, + "COUNTERS:oid:0x5c000000002188": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "9", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.015131 + }, + "COUNTERS:oid:0x5c0000000027c3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "188" + }, + "ttl": -0.001, + "expireat": 1651808848.01516 + }, + "COUNTERS:oid:0x5c00000000165b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "187" + }, + "ttl": -0.001, + "expireat": 1651808848.0151737 + }, + "COUNTERS:oid:0x5c00000000156e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0153139 + }, + "COUNTERS:oid:0x5c00000000169b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0153334 + }, + "COUNTERS:oid:0x5c000000001aa6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.01535 + }, + "COUNTERS:oid:0x5c000000002165": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "220" + }, + "ttl": -0.001, + "expireat": 1651808848.0153813 + }, + "COUNTERS:oid:0x5c0000000013dd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0153933 + }, + "COUNTERS:oid:0x5c0000000013c4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "321", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0154076 + }, + "COUNTERS:oid:0x5c00000000166a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1304" + }, + "ttl": -0.001, + "expireat": 1651808848.015436 + }, + "COUNTERS:oid:0x5c000000002626": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0154471 + }, + "COUNTERS:oid:0x5c00000000277f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "6" + }, + "ttl": -0.001, + "expireat": 1651808848.015458 + }, + "COUNTERS:oid:0x5c00000000216b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "174", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0154722 + }, + "COUNTERS:oid:0x5c00000000149d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "18", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0154834 + }, + "COUNTERS:oid:0x5c00000000158e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0154943 + }, + "COUNTERS:oid:0x5c00000000191e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0155084 + }, + "COUNTERS:oid:0x5c000000002092": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1173" + }, + "ttl": -0.001, + "expireat": 1651808848.01552 + }, + "COUNTERS:oid:0x5c00000000145c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.015534 + }, + "COUNTERS:oid:0x5c000000001d6e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1295" + }, + "ttl": -0.001, + "expireat": 1651808848.0155604 + }, + "COUNTERS:oid:0x5c00000000189b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "27", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.015571 + }, + "COUNTERS:oid:0x5c0000000025db": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "177" + }, + "ttl": -0.001, + "expireat": 1651808848.0155852 + }, + "COUNTERS:oid:0x5c000000001a3a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "199" + }, + "ttl": -0.001, + "expireat": 1651808848.015599 + }, + "COUNTERS:oid:0x5c00000000245e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0156312 + }, + "COUNTERS:oid:0x5c00000000215d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "245" + }, + "ttl": -0.001, + "expireat": 1651808848.0156808 + }, + "COUNTERS:oid:0x5c00000000213b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0156949 + }, + "COUNTERS:oid:0x5c00000000194d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0157084 + }, + "COUNTERS:oid:0x5c000000001c6b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1322" + }, + "ttl": -0.001, + "expireat": 1651808848.0157194 + }, + "COUNTERS:oid:0x5c000000002592": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0157328 + }, + "COUNTERS:oid:0x5c0000000016ce": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1260" + }, + "ttl": -0.001, + "expireat": 1651808848.0157435 + }, + "COUNTERS:oid:0x5c00000000195f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1278" + }, + "ttl": -0.001, + "expireat": 1651808848.0157537 + }, + "COUNTERS:oid:0x5c0000000023f4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "165" + }, + "ttl": -0.001, + "expireat": 1651808848.0157669 + }, + "COUNTERS:oid:0x5c00000000217f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0157807 + }, + "COUNTERS:oid:0x5c0000000020ef": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0157943 + }, + "COUNTERS:oid:0x5c000000001be9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0158079 + }, + "COUNTERS:oid:0x5c00000000258d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "295", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0158212 + }, + "COUNTERS:oid:0x5c0000000015ce": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0158317 + }, + "COUNTERS:oid:0x5c00000000242a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.015842 + }, + "COUNTERS:oid:0x5c000000001671": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.015855 + }, + "COUNTERS:oid:0x5c00000000255b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "132", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0158687 + }, + "COUNTERS:oid:0x5c000000001380": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0158823 + }, + "COUNTERS:oid:0x5c0000000023ae": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "15", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0158956 + }, + "COUNTERS:oid:0x5c000000001cdf": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "126", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0159426 + }, + "COUNTERS:oid:0x5c000000001e73": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.0159595 + }, + "COUNTERS:oid:0x5c000000001614": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "161" + }, + "ttl": -0.001, + "expireat": 1651808848.0159712 + }, + "COUNTERS:oid:0x5c000000001f24": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22" + }, + "ttl": -0.001, + "expireat": 1651808848.015982 + }, + "COUNTERS:oid:0x5c0000000013ce": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "303", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0159948 + }, + "COUNTERS:oid:0x5c00000000164b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0160084 + }, + "COUNTERS:oid:0x5c00000000178c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.016022 + }, + "COUNTERS:oid:0x5c000000001713": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "18" + }, + "ttl": -0.001, + "expireat": 1651808848.016033 + }, + "COUNTERS:oid:0x5c000000001c9b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0160463 + }, + "COUNTERS:oid:0x5c000000001dd5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "17" + }, + "ttl": -0.001, + "expireat": 1651808848.0160599 + }, + "COUNTERS:oid:0x5c000000001de4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "257", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0160735 + }, + "COUNTERS:oid:0x5c0000000018dc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0160868 + }, + "COUNTERS:oid:0x5c000000001668": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.016098 + }, + "COUNTERS:oid:0x5c000000001b01": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0161111 + }, + "COUNTERS:oid:0x5c000000001a05": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0161245 + }, + "COUNTERS:oid:0x5c00000000178f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "143" + }, + "ttl": -0.001, + "expireat": 1651808848.016135 + }, + "COUNTERS:oid:0x5c00000000214a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0161455 + }, + "COUNTERS:oid:0x5c000000001bc6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0161588 + }, + "COUNTERS:oid:0x5c0000000025ae": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1290" + }, + "ttl": -0.001, + "expireat": 1651808848.0162232 + }, + "COUNTERS:oid:0x5c0000000023d5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0162368 + }, + "COUNTERS:oid:0x5c0000000015e0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0162475 + }, + "COUNTERS:oid:0x5c00000000254f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.016261 + }, + "COUNTERS:oid:0x5c0000000023d7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "104" + }, + "ttl": -0.001, + "expireat": 1651808848.016273 + }, + "COUNTERS:oid:0x5c000000002488": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "89", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0162861 + }, + "COUNTERS:oid:0x5c000000001c81": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0163147 + }, + "COUNTERS:oid:0x5c000000001f06": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1278" + }, + "ttl": -0.001, + "expireat": 1651808848.0163252 + }, + "COUNTERS:oid:0x5c000000001bd9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0163386 + }, + "COUNTERS:oid:0x5c000000001703": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0163498 + }, + "COUNTERS:oid:0x5c0000000019c1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "99" + }, + "ttl": -0.001, + "expireat": 1651808848.0163639 + }, + "COUNTERS:oid:0x5c000000001c42": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "151" + }, + "ttl": -0.001, + "expireat": 1651808848.0163777 + }, + "COUNTERS:oid:0x5c0000000018a3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "202", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.016389 + }, + "COUNTERS:oid:0x5c000000002589": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0164025 + }, + "COUNTERS:oid:0x5c0000000026d7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1456" + }, + "ttl": -0.001, + "expireat": 1651808848.0164137 + }, + "COUNTERS:oid:0x5c000000001749": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "16" + }, + "ttl": -0.001, + "expireat": 1651808848.016424 + }, + "COUNTERS:oid:0x5c00000000230f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "48", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0164375 + }, + "COUNTERS:oid:0x5c000000001466": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "303" + }, + "ttl": -0.001, + "expireat": 1651808848.0164516 + }, + "COUNTERS:oid:0x5c0000000013c8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22" + }, + "ttl": -0.001, + "expireat": 1651808848.0164652 + }, + "COUNTERS:oid:0x5c0000000016da": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0164924 + }, + "COUNTERS:oid:0x5c00000000183f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1276" + }, + "ttl": -0.001, + "expireat": 1651808848.016537 + }, + "COUNTERS:oid:0x5c0000000017f1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.01655 + }, + "COUNTERS:oid:0x5c000000001371": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0165606 + }, + "COUNTERS:oid:0x5c0000000026e9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.016571 + }, + "COUNTERS:oid:0x5c000000001e2b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0165849 + }, + "COUNTERS:oid:0x5c000000001a69": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "95" + }, + "ttl": -0.001, + "expireat": 1651808848.0165997 + }, + "COUNTERS:oid:0x5c000000001a28": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0166132 + }, + "COUNTERS:oid:0x5c000000001951": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "103" + }, + "ttl": -0.001, + "expireat": 1651808848.0166266 + }, + "COUNTERS:oid:0x5c000000001d66": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "18" + }, + "ttl": -0.001, + "expireat": 1651808848.0166574 + }, + "COUNTERS:oid:0x5c000000001b80": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "36", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0166705 + }, + "COUNTERS:oid:0x5c000000001fe3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0166814 + }, + "COUNTERS:oid:0x5c000000001e0d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0166914 + }, + "COUNTERS:oid:0x5c00000000158a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0167015 + }, + "COUNTERS:oid:0x5c000000001969": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.0167115 + }, + "COUNTERS:oid:0x5c000000001f0f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.0167246 + }, + "COUNTERS:oid:0x5c00000000137a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0167375 + }, + "COUNTERS:oid:0x5c0000000018b5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0167506 + }, + "COUNTERS:oid:0x5c0000000019f6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.016761 + }, + "COUNTERS:oid:0x5c000000001490": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1359" + }, + "ttl": -0.001, + "expireat": 1651808848.0167713 + }, + "COUNTERS:oid:0x5c000000001af8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1305" + }, + "ttl": -0.001, + "expireat": 1651808848.0167813 + }, + "COUNTERS:oid:0x5c00000000211e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1247" + }, + "ttl": -0.001, + "expireat": 1651808848.0168242 + }, + "COUNTERS:oid:0x5c0000000020e3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "171" + }, + "ttl": -0.001, + "expireat": 1651808848.0168757 + }, + "COUNTERS:oid:0x5c000000002550": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.016888 + }, + "COUNTERS:oid:0x5c000000001de7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0168989 + }, + "COUNTERS:oid:0x5c000000001bbe": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "159" + }, + "ttl": -0.001, + "expireat": 1651808848.0169125 + }, + "COUNTERS:oid:0x5c00000000276c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1385", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.016924 + }, + "COUNTERS:oid:0x5c000000001482": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0169377 + }, + "COUNTERS:oid:0x5c000000001d9e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0169518 + }, + "COUNTERS:oid:0x5c00000000194f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.01699 + }, + "COUNTERS:oid:0x5c000000001c8d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "200" + }, + "ttl": -0.001, + "expireat": 1651808848.0170283 + }, + "COUNTERS:oid:0x5c00000000163f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0170429 + }, + "COUNTERS:oid:0x5c00000000210a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.0170577 + }, + "COUNTERS:oid:0x5c0000000018e8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "18", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0170953 + }, + "COUNTERS:oid:0x5c00000000168b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0171092 + }, + "COUNTERS:oid:0x5c0000000018c8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "204" + }, + "ttl": -0.001, + "expireat": 1651808848.0171208 + }, + "COUNTERS:oid:0x5c0000000025f7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "303", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0171347 + }, + "COUNTERS:oid:0x5c000000001422": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0171485 + }, + "COUNTERS:oid:0x5c00000000148c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.017162 + }, + "COUNTERS:oid:0x5c0000000013ca": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0171974 + }, + "COUNTERS:oid:0x5c0000000017e0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0172138 + }, + "COUNTERS:oid:0x5c00000000227c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0172439 + }, + "COUNTERS:oid:0x5c0000000016f6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "171" + }, + "ttl": -0.001, + "expireat": 1651808848.0172575 + }, + "COUNTERS:oid:0x5c000000002103": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0173068 + }, + "COUNTERS:oid:0x5c000000001e17": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.0173364 + }, + "COUNTERS:oid:0x5c000000001396": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.017366 + }, + "COUNTERS:oid:0x5c0000000025ea": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0173771 + }, + "COUNTERS:oid:0x5c0000000013a9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175" + }, + "ttl": -0.001, + "expireat": 1651808848.0173876 + }, + "COUNTERS:oid:0x5c000000002112": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0174005 + }, + "COUNTERS:oid:0x5c000000001d11": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0174112 + }, + "COUNTERS:oid:0x5c000000001890": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0174425 + }, + "COUNTERS:oid:0x5c000000002481": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0174565 + }, + "COUNTERS:oid:0x5c00000000136e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "300", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0174701 + }, + "COUNTERS:oid:0x5c000000001957": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "18" + }, + "ttl": -0.001, + "expireat": 1651808848.017484 + }, + "COUNTERS:oid:0x5c000000002620": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0174944 + }, + "COUNTERS:oid:0x5c000000002551": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0175078 + }, + "COUNTERS:oid:0x5c000000001864": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1313" + }, + "ttl": -0.001, + "expireat": 1651808848.0175388 + }, + "COUNTERS:oid:0x5c000000002651": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.017555 + }, + "COUNTERS:oid:0x5c0000000017b0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.017569 + }, + "COUNTERS:oid:0x5c000000001406": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "28", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0175831 + }, + "COUNTERS:oid:0x5c000000001cbb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "171" + }, + "ttl": -0.001, + "expireat": 1651808848.017594 + }, + "COUNTERS:oid:0x5c000000001d29": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "179", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0176077 + }, + "COUNTERS:oid:0x5c000000001952": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "451" + }, + "ttl": -0.001, + "expireat": 1651808848.0176187 + }, + "COUNTERS:oid:0x5c000000001eb0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "33", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0176322 + }, + "COUNTERS:oid:0x5c000000002539": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "138", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0176637 + }, + "COUNTERS:oid:0x5c0000000027fa": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "179" + }, + "ttl": -0.001, + "expireat": 1651808848.0176747 + }, + "COUNTERS:oid:0x5c00000000259d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "301" + }, + "ttl": -0.001, + "expireat": 1651808848.0176883 + }, + "COUNTERS:oid:0x5c000000001e34": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0176992 + }, + "COUNTERS:oid:0x5c0000000025a5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "302", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.017712 + }, + "COUNTERS:oid:0x5c00000000136d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "685" + }, + "ttl": -0.001, + "expireat": 1651808848.0177228 + }, + "COUNTERS:oid:0x5c000000001d2f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0177357 + }, + "COUNTERS:oid:0x5c0000000014b4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0177495 + }, + "COUNTERS:oid:0x5c000000001fd0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "258" + }, + "ttl": -0.001, + "expireat": 1651808848.017763 + }, + "COUNTERS:oid:0x5c00000000174d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0177736 + }, + "COUNTERS:oid:0x5c0000000020ce": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "2406", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0178092 + }, + "COUNTERS:oid:0x5c000000001ff1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1202", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0178216 + }, + "COUNTERS:oid:0x5c000000001615": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22" + }, + "ttl": -0.001, + "expireat": 1651808848.0178354 + }, + "COUNTERS:oid:0x5c000000001c72": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "233", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0178494 + }, + "COUNTERS:oid:0x5c0000000020ca": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0178602 + }, + "COUNTERS:oid:0x5c000000001db8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1287" + }, + "ttl": -0.001, + "expireat": 1651808848.017898 + }, + "COUNTERS:oid:0x5c000000001c6c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.0179286 + }, + "COUNTERS:oid:0x5c000000001457": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "18" + }, + "ttl": -0.001, + "expireat": 1651808848.01794 + }, + "COUNTERS:oid:0x5c000000001fd2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0179543 + }, + "COUNTERS:oid:0x5c000000001960": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0179884 + }, + "COUNTERS:oid:0x5c00000000164f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.018003 + }, + "COUNTERS:oid:0x5c000000001f56": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "177" + }, + "ttl": -0.001, + "expireat": 1651808848.018015 + }, + "COUNTERS:oid:0x5c0000000019af": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "96" + }, + "ttl": -0.001, + "expireat": 1651808848.018029 + }, + "COUNTERS:oid:0x5c000000001974": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0180612 + }, + "COUNTERS:oid:0x5c000000001f51": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "16" + }, + "ttl": -0.001, + "expireat": 1651808848.0180762 + }, + "COUNTERS:oid:0x5c000000001688": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "172" + }, + "ttl": -0.001, + "expireat": 1651808848.018128 + }, + "COUNTERS:oid:0x5c000000001590": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1297" + }, + "ttl": -0.001, + "expireat": 1651808848.0181403 + }, + "COUNTERS:oid:0x5c00000000252f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.018157 + }, + "COUNTERS:oid:0x5c000000002131": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "15" + }, + "ttl": -0.001, + "expireat": 1651808848.0182145 + }, + "COUNTERS:oid:0x5c000000001bb6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "96", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0182338 + }, + "COUNTERS:oid:0x5c000000001a0e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "24" + }, + "ttl": -0.001, + "expireat": 1651808848.0182629 + }, + "COUNTERS:oid:0x5c000000001d35": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0182946 + }, + "COUNTERS:oid:0x5c000000001b76": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0183258 + }, + "COUNTERS:oid:0x5c00000000161a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1266" + }, + "ttl": -0.001, + "expireat": 1651808848.018338 + }, + "COUNTERS:oid:0x5c000000001d03": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0183496 + }, + "COUNTERS:oid:0x5c00000000167e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "163", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0183613 + }, + "COUNTERS:oid:0x5c0000000015b0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "16" + }, + "ttl": -0.001, + "expireat": 1651808848.0183728 + }, + "COUNTERS:oid:0x5c000000001fd9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1281" + }, + "ttl": -0.001, + "expireat": 1651808848.0184069 + }, + "COUNTERS:oid:0x5c000000001a60": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "192" + }, + "ttl": -0.001, + "expireat": 1651808848.0184584 + }, + "COUNTERS:oid:0x5c0000000018db": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0184884 + }, + "COUNTERS:oid:0x5c000000001ffa": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0185041 + }, + "COUNTERS:oid:0x5c0000000023d6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "15", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0185206 + }, + "COUNTERS:oid:0x5c000000002014": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "125" + }, + "ttl": -0.001, + "expireat": 1651808848.0185368 + }, + "COUNTERS:oid:0x5c000000001ea4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "181" + }, + "ttl": -0.001, + "expireat": 1651808848.0185723 + }, + "COUNTERS:oid:0x5c0000000014b3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1359" + }, + "ttl": -0.001, + "expireat": 1651808848.0185854 + }, + "COUNTERS:oid:0x5c000000001573": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "647", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0186017 + }, + "COUNTERS:oid:0x5c00000000201a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "9" + }, + "ttl": -0.001, + "expireat": 1651808848.0186186 + }, + "COUNTERS:oid:0x5c000000002137": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0186572 + }, + "COUNTERS:oid:0x5c00000000265b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175" + }, + "ttl": -0.001, + "expireat": 1651808848.0186765 + }, + "COUNTERS:oid:0x5c0000000025b0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.01869 + }, + "COUNTERS:oid:0x5c0000000014ea": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0187063 + }, + "COUNTERS:oid:0x5c0000000013c9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "18", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.01872 + }, + "COUNTERS:oid:0x5c000000002184": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "157", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0187328 + }, + "COUNTERS:oid:0x5c000000001f41": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0187457 + }, + "COUNTERS:oid:0x5c000000002139": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175" + }, + "ttl": -0.001, + "expireat": 1651808848.018762 + }, + "COUNTERS:oid:0x5c000000001c7e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0187795 + }, + "COUNTERS:oid:0x5c0000000018f7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "229", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0187962 + }, + "COUNTERS:oid:0x5c0000000013f9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0188096 + }, + "COUNTERS:oid:0x5c000000001b89": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "200", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.01884 + }, + "COUNTERS:oid:0x5c000000001ed5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "33", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.018856 + }, + "COUNTERS:oid:0x5c000000001bdb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "171", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0188954 + }, + "COUNTERS:oid:0x5c0000000016cd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "294", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.018911 + }, + "COUNTERS:oid:0x5c000000001bad": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "140", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0189266 + }, + "COUNTERS:oid:0x5c0000000020a8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0189388 + }, + "COUNTERS:oid:0x5c00000000234a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "5", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.018951 + }, + "COUNTERS:oid:0x5c000000001d5c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0189662 + }, + "COUNTERS:oid:0x5c0000000022f3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "83", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0205345 + }, + "COUNTERS:oid:0x5c000000001867": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0205562 + }, + "COUNTERS:oid:0x5c000000001647": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0205715 + }, + "COUNTERS:oid:0x5c0000000027f9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "103" + }, + "ttl": -0.001, + "expireat": 1651808848.020586 + }, + "COUNTERS:oid:0x5c000000001e04": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.0206006 + }, + "COUNTERS:oid:0x5c000000002119": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175" + }, + "ttl": -0.001, + "expireat": 1651808848.0227287 + }, + "COUNTERS:oid:0x5c000000001494": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0241034 + }, + "COUNTERS:oid:0x5c000000001dad": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "20", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0241227 + }, + "COUNTERS:oid:0x5c00000000144f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "18", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0241756 + }, + "COUNTERS:oid:0x5c000000001d49": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1303" + }, + "ttl": -0.001, + "expireat": 1651808848.0241892 + }, + "COUNTERS:oid:0x5c0000000020af": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0242062 + }, + "COUNTERS:oid:0x5c00000000240c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "144", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0242236 + }, + "COUNTERS:oid:0x5c000000001c31": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.024256 + }, + "COUNTERS:oid:0x5c000000001577": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "295" + }, + "ttl": -0.001, + "expireat": 1651808848.0242732 + }, + "COUNTERS:oid:0x5c000000001b05": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "182", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0242891 + }, + "COUNTERS:oid:0x5c00000000143a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "304" + }, + "ttl": -0.001, + "expireat": 1651808848.0243044 + }, + "COUNTERS:oid:0x5c000000002471": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1264" + }, + "ttl": -0.001, + "expireat": 1651808848.024317 + }, + "COUNTERS:oid:0x5c000000002401": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1267", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.024565 + }, + "COUNTERS:oid:0x5c000000001758": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "141", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.02458 + }, + "COUNTERS:oid:0x5c000000002162": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0245924 + }, + "COUNTERS:oid:0x5c0000000023e5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0246038 + }, + "COUNTERS:oid:0x5c00000000214c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "173" + }, + "ttl": -0.001, + "expireat": 1651808848.0246155 + }, + "COUNTERS:oid:0x5c0000000025bc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175" + }, + "ttl": -0.001, + "expireat": 1651808848.0246272 + }, + "COUNTERS:oid:0x5c0000000020c1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175" + }, + "ttl": -0.001, + "expireat": 1651808848.0246427 + }, + "COUNTERS:oid:0x5c000000002134": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "176" + }, + "ttl": -0.001, + "expireat": 1651808848.0246673 + }, + "COUNTERS:oid:0x5c0000000017e3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "303" + }, + "ttl": -0.001, + "expireat": 1651808848.0246794 + }, + "COUNTERS:oid:0x5c000000001b4a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1305" + }, + "ttl": -0.001, + "expireat": 1651808848.0246909 + }, + "COUNTERS:oid:0x5c000000001576": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "729" + }, + "ttl": -0.001, + "expireat": 1651808848.0247025 + }, + "COUNTERS:oid:0x5c000000001aae": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1291" + }, + "ttl": -0.001, + "expireat": 1651808848.0247138 + }, + "COUNTERS:oid:0x5c0000000022fb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "78", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0247288 + }, + "COUNTERS:oid:0x5c000000001964": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175" + }, + "ttl": -0.001, + "expireat": 1651808848.0247443 + }, + "COUNTERS:oid:0x5c000000001e1d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "25" + }, + "ttl": -0.001, + "expireat": 1651808848.0247731 + }, + "COUNTERS:oid:0x5c0000000027f8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0247848 + }, + "COUNTERS:oid:0x5c0000000015e3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0248 + }, + "COUNTERS:oid:0x5c0000000025e9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0248156 + }, + "COUNTERS:oid:0x5c00000000276a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0248306 + }, + "COUNTERS:oid:0x5c00000000193b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "16" + }, + "ttl": -0.001, + "expireat": 1651808848.0248454 + }, + "COUNTERS:oid:0x5c00000000234d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "6", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0248804 + }, + "COUNTERS:oid:0x5c0000000019e1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.02496 + }, + "COUNTERS:oid:0x5c000000001a2d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.0250642 + }, + "COUNTERS:oid:0x5c00000000173e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "127" + }, + "ttl": -0.001, + "expireat": 1651808848.025083 + }, + "COUNTERS:oid:0x5c0000000016c6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "23" + }, + "ttl": -0.001, + "expireat": 1651808848.0251117 + }, + "COUNTERS:oid:0x5c000000001c09": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "181" + }, + "ttl": -0.001, + "expireat": 1651808848.0251245 + }, + "COUNTERS:oid:0x5c000000002644": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "178" + }, + "ttl": -0.001, + "expireat": 1651808848.0251367 + }, + "COUNTERS:oid:0x5c0000000019f0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "203" + }, + "ttl": -0.001, + "expireat": 1651808848.0251515 + }, + "COUNTERS:oid:0x5c000000001440": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "97" + }, + "ttl": -0.001, + "expireat": 1651808848.0251641 + }, + "COUNTERS:oid:0x5c0000000025a7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0251794 + }, + "COUNTERS:oid:0x5c000000001384": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1390" + }, + "ttl": -0.001, + "expireat": 1651808848.025212 + }, + "COUNTERS:oid:0x5c0000000018be": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "455", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0252242 + }, + "COUNTERS:oid:0x5c000000001b81": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "27", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0252354 + }, + "COUNTERS:oid:0x5c0000000016f5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0252466 + }, + "COUNTERS:oid:0x5c000000001419": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1249" + }, + "ttl": -0.001, + "expireat": 1651808848.0252726 + }, + "COUNTERS:oid:0x5c000000001a99": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0252848 + }, + "COUNTERS:oid:0x5c0000000023f1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1283", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0252964 + }, + "COUNTERS:oid:0x5c000000001968": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0253112 + }, + "COUNTERS:oid:0x5c0000000022f9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "5", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0253272 + }, + "COUNTERS:oid:0x5c000000002529": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "150", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0253425 + }, + "COUNTERS:oid:0x5c000000001c8c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "152" + }, + "ttl": -0.001, + "expireat": 1651808848.0253575 + }, + "COUNTERS:oid:0x5c000000001e07": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0253694 + }, + "COUNTERS:oid:0x5c0000000017f3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "144" + }, + "ttl": -0.001, + "expireat": 1651808848.0254302 + }, + "COUNTERS:oid:0x5c000000001c4e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1351" + }, + "ttl": -0.001, + "expireat": 1651808848.0254452 + }, + "COUNTERS:oid:0x5c000000001be0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0254567 + }, + "COUNTERS:oid:0x5c000000001736": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "20" + }, + "ttl": -0.001, + "expireat": 1651808848.0254717 + }, + "COUNTERS:oid:0x5c0000000015f0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "182", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0254846 + }, + "COUNTERS:oid:0x5c000000001ca4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.025496 + }, + "COUNTERS:oid:0x5c000000001b2b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "159" + }, + "ttl": -0.001, + "expireat": 1651808848.0255077 + }, + "COUNTERS:oid:0x5c000000001afd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "176", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0255222 + }, + "COUNTERS:oid:0x5c000000001fb1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "16" + }, + "ttl": -0.001, + "expireat": 1651808848.0255678 + }, + "COUNTERS:oid:0x5c0000000016e4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.0255806 + }, + "COUNTERS:oid:0x5c0000000024f9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "174" + }, + "ttl": -0.001, + "expireat": 1651808848.0256083 + }, + "COUNTERS:oid:0x5c00000000266d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.025624 + }, + "COUNTERS:oid:0x5c0000000025c3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175" + }, + "ttl": -0.001, + "expireat": 1651808848.0256398 + }, + "COUNTERS:oid:0x5c000000001b36": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "33", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.025655 + }, + "COUNTERS:oid:0x5c0000000017c6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "21" + }, + "ttl": -0.001, + "expireat": 1651808848.0256674 + }, + "COUNTERS:oid:0x5c00000000199c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "397", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.025679 + }, + "COUNTERS:oid:0x5c000000001773": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.025704 + }, + "COUNTERS:oid:0x5c00000000199e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "31" + }, + "ttl": -0.001, + "expireat": 1651808848.0257196 + }, + "COUNTERS:oid:0x5c000000001c70": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "110" + }, + "ttl": -0.001, + "expireat": 1651808848.025749 + }, + "COUNTERS:oid:0x5c0000000017ff": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0257618 + }, + "COUNTERS:oid:0x5c000000001e12": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0258236 + }, + "COUNTERS:oid:0x5c000000001cd9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "267" + }, + "ttl": -0.001, + "expireat": 1651808848.0258431 + }, + "COUNTERS:oid:0x5c0000000015f7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.025859 + }, + "COUNTERS:oid:0x5c00000000142d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "178" + }, + "ttl": -0.001, + "expireat": 1651808848.0258715 + }, + "COUNTERS:oid:0x5c000000001d9c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0259078 + }, + "COUNTERS:oid:0x5c000000001b7c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0259242 + }, + "COUNTERS:oid:0x5c000000001681": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "23", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0259397 + }, + "COUNTERS:oid:0x5c000000002301": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "5", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0259554 + }, + "COUNTERS:oid:0x5c000000001cfe": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "277" + }, + "ttl": -0.001, + "expireat": 1651808848.025971 + }, + "COUNTERS:oid:0x5c000000001ebf": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.025986 + }, + "COUNTERS:oid:0x5c0000000021fd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "4", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0259986 + }, + "COUNTERS:oid:0x5c00000000208f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0260139 + }, + "COUNTERS:oid:0x5c000000001dcc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.0260386 + }, + "COUNTERS:oid:0x5c0000000017b9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.026051 + }, + "COUNTERS:oid:0x5c0000000016b8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0260625 + }, + "COUNTERS:oid:0x5c000000002552": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0260882 + }, + "COUNTERS:oid:0x5c000000001c59": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0261037 + }, + "COUNTERS:oid:0x5c000000001e0a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "276", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0261192 + }, + "COUNTERS:oid:0x5c000000001ac3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0261817 + }, + "COUNTERS:oid:0x5c000000002313": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "64", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0262008 + }, + "COUNTERS:oid:0x5c000000001ad8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "176", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.026217 + }, + "COUNTERS:oid:0x5c0000000013e5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "217", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0262296 + }, + "COUNTERS:oid:0x5c000000001d7d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0262446 + }, + "COUNTERS:oid:0x5c000000001c36": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0262568 + }, + "COUNTERS:oid:0x5c00000000181a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "298", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0262718 + }, + "COUNTERS:oid:0x5c0000000023d1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1596" + }, + "ttl": -0.001, + "expireat": 1651808848.0262938 + }, + "COUNTERS:oid:0x5c000000002161": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0263097 + }, + "COUNTERS:oid:0x5c0000000018b2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0263216 + }, + "COUNTERS:oid:0x5c0000000014f2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.026351 + }, + "COUNTERS:oid:0x5c000000001b43": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "16" + }, + "ttl": -0.001, + "expireat": 1651808848.026367 + }, + "COUNTERS:oid:0x5c000000001ecd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0263824 + }, + "COUNTERS:oid:0x5c000000001944": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0263946 + }, + "COUNTERS:oid:0x5c000000002280": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "4" + }, + "ttl": -0.001, + "expireat": 1651808848.02641 + }, + "COUNTERS:oid:0x5c000000002617": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.026422 + }, + "COUNTERS:oid:0x5c000000002647": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "301" + }, + "ttl": -0.001, + "expireat": 1651808848.02645 + }, + "COUNTERS:oid:0x5c0000000015a4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0264623 + }, + "COUNTERS:oid:0x5c00000000135c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "339" + }, + "ttl": -0.001, + "expireat": 1651808848.026525 + }, + "COUNTERS:oid:0x5c000000001d70": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0265405 + }, + "COUNTERS:oid:0x5c000000001d90": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "161" + }, + "ttl": -0.001, + "expireat": 1651808848.026553 + }, + "COUNTERS:oid:0x5c0000000013ab": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1318" + }, + "ttl": -0.001, + "expireat": 1651808848.0265646 + }, + "COUNTERS:oid:0x5c000000002012": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.02658 + }, + "COUNTERS:oid:0x5c000000002120": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0265923 + }, + "COUNTERS:oid:0x5c00000000199b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "110", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.026607 + }, + "COUNTERS:oid:0x5c000000002465": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "143" + }, + "ttl": -0.001, + "expireat": 1651808848.0266192 + }, + "COUNTERS:oid:0x5c000000001dbb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0266337 + }, + "COUNTERS:oid:0x5c000000001dc2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0266743 + }, + "COUNTERS:oid:0x5c0000000027f2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "4", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0266864 + }, + "COUNTERS:oid:0x5c0000000015bd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.026701 + }, + "COUNTERS:oid:0x5c000000002110": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.026713 + }, + "COUNTERS:oid:0x5c000000001a12": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "18", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.026724 + }, + "COUNTERS:oid:0x5c000000002118": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0267353 + }, + "COUNTERS:oid:0x5c0000000023fd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13" + }, + "ttl": -0.001, + "expireat": 1651808848.0267498 + }, + "COUNTERS:oid:0x5c0000000013bf": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "21" + }, + "ttl": -0.001, + "expireat": 1651808848.0267618 + }, + "COUNTERS:oid:0x5c0000000021fc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "5", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0267904 + }, + "COUNTERS:oid:0x5c000000001e76": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0268154 + }, + "COUNTERS:oid:0x5c000000001653": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0268328 + }, + "COUNTERS:oid:0x5c000000001c25": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "172", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.026863 + }, + "COUNTERS:oid:0x5c000000002627": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "306" + }, + "ttl": -0.001, + "expireat": 1651808848.0269246 + }, + "COUNTERS:oid:0x5c000000001687": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0269434 + }, + "COUNTERS:oid:0x5c000000002418": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "303", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0269587 + }, + "COUNTERS:oid:0x5c0000000025d5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "301", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0269732 + }, + "COUNTERS:oid:0x5c000000001885": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0269997 + }, + "COUNTERS:oid:0x5c000000001b47": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "173" + }, + "ttl": -0.001, + "expireat": 1651808848.0270152 + }, + "COUNTERS:oid:0x5c000000001fdd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1323", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0270271 + }, + "COUNTERS:oid:0x5c0000000013be": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "29", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0270414 + }, + "COUNTERS:oid:0x5c000000001808": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "36", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0270565 + }, + "COUNTERS:oid:0x5c000000001dee": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.027072 + }, + "COUNTERS:oid:0x5c000000001ed1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0270872 + }, + "COUNTERS:oid:0x5c0000000024c8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "135" + }, + "ttl": -0.001, + "expireat": 1651808848.0271184 + }, + "COUNTERS:oid:0x5c0000000023f0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "301", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0271335 + }, + "COUNTERS:oid:0x5c000000001ccc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "110", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.027148 + }, + "COUNTERS:oid:0x5c000000001aa3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "27", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0271595 + }, + "COUNTERS:oid:0x5c000000002590": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.027171 + }, + "COUNTERS:oid:0x5c0000000024fe": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1606", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.027182 + }, + "COUNTERS:oid:0x5c000000001e10": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "177", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0271966 + }, + "COUNTERS:oid:0x5c00000000198a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "109" + }, + "ttl": -0.001, + "expireat": 1651808848.0272977 + }, + "COUNTERS:oid:0x5c000000001764": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0273175 + }, + "COUNTERS:oid:0x5c000000001942": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1308" + }, + "ttl": -0.001, + "expireat": 1651808848.0273309 + }, + "COUNTERS:oid:0x5c000000001e09": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "121" + }, + "ttl": -0.001, + "expireat": 1651808848.0273426 + }, + "COUNTERS:oid:0x5c000000001a63": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "270" + }, + "ttl": -0.001, + "expireat": 1651808848.027357 + }, + "COUNTERS:oid:0x5c000000002586": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1277" + }, + "ttl": -0.001, + "expireat": 1651808848.0273693 + }, + "COUNTERS:oid:0x5c000000002611": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0273836 + }, + "COUNTERS:oid:0x5c000000001840": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0273986 + }, + "COUNTERS:oid:0x5c0000000016e0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0274105 + }, + "COUNTERS:oid:0x5c0000000018c3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "18" + }, + "ttl": -0.001, + "expireat": 1651808848.0274253 + }, + "COUNTERS:oid:0x5c000000002093": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13" + }, + "ttl": -0.001, + "expireat": 1651808848.0274544 + }, + "COUNTERS:oid:0x5c000000002802": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "85552" + }, + "ttl": -0.001, + "expireat": 1651808848.0274673 + }, + "COUNTERS:oid:0x5c000000002535": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "306" + }, + "ttl": -0.001, + "expireat": 1651808848.0274823 + }, + "COUNTERS:oid:0x5c000000001cce": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "29", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.027498 + }, + "COUNTERS:oid:0x5c00000000157f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "298", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.027513 + }, + "COUNTERS:oid:0x5c000000001d9f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0275252 + }, + "COUNTERS:oid:0x5c000000001ca0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0275366 + }, + "COUNTERS:oid:0x5c000000001a65": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.0275514 + }, + "COUNTERS:oid:0x5c00000000169f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "28" + }, + "ttl": -0.001, + "expireat": 1651808848.0275667 + }, + "COUNTERS:oid:0x5c0000000026bf": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0276008 + }, + "COUNTERS:oid:0x5c000000002610": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1258", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0276144 + }, + "COUNTERS:oid:0x5c000000002395": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "147" + }, + "ttl": -0.001, + "expireat": 1651808848.0276263 + }, + "COUNTERS:oid:0x5c0000000019d4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "161" + }, + "ttl": -0.001, + "expireat": 1651808848.027641 + }, + "COUNTERS:oid:0x5c000000001bf3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22" + }, + "ttl": -0.001, + "expireat": 1651808848.0276566 + }, + "COUNTERS:oid:0x5c0000000022f5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "5" + }, + "ttl": -0.001, + "expireat": 1651808848.0276723 + }, + "COUNTERS:oid:0x5c000000002167": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0276968 + }, + "COUNTERS:oid:0x5c000000001f19": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0277123 + }, + "COUNTERS:oid:0x5c00000000138f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1646" + }, + "ttl": -0.001, + "expireat": 1651808848.027724 + }, + "COUNTERS:oid:0x5c000000001480": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11523" + }, + "ttl": -0.001, + "expireat": 1651808848.0277355 + }, + "COUNTERS:oid:0x5c000000001b41": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "266", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0277505 + }, + "COUNTERS:oid:0x5c0000000015f9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "169" + }, + "ttl": -0.001, + "expireat": 1651808848.0277653 + }, + "COUNTERS:oid:0x5c000000002170": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.027777 + }, + "COUNTERS:oid:0x5c00000000250d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "301", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0277917 + }, + "COUNTERS:oid:0x5c000000002621": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0278063 + }, + "COUNTERS:oid:0x5c0000000020fc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "173" + }, + "ttl": -0.001, + "expireat": 1651808848.027818 + }, + "COUNTERS:oid:0x5c000000002408": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "302", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0278323 + }, + "COUNTERS:oid:0x5c000000001c68": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "199" + }, + "ttl": -0.001, + "expireat": 1651808848.0278442 + }, + "COUNTERS:oid:0x5c000000001a81": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "23" + }, + "ttl": -0.001, + "expireat": 1651808848.0278587 + }, + "COUNTERS:oid:0x5c00000000244e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "16" + }, + "ttl": -0.001, + "expireat": 1651808848.0278935 + }, + "COUNTERS:oid:0x5c000000002628": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1277" + }, + "ttl": -0.001, + "expireat": 1651808848.0279083 + }, + "COUNTERS:oid:0x5c000000001450": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "243" + }, + "ttl": -0.001, + "expireat": 1651808848.0279427 + }, + "COUNTERS:oid:0x5c0000000026c0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0279725 + }, + "COUNTERS:oid:0x5c000000002108": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0279846 + }, + "COUNTERS:oid:0x5c000000002090": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0279965 + }, + "COUNTERS:oid:0x5c000000001420": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0280075 + }, + "COUNTERS:oid:0x5c000000002800": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "4401", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.028019 + }, + "COUNTERS:oid:0x5c000000001a23": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0280302 + }, + "COUNTERS:oid:0x5c000000002524": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13" + }, + "ttl": -0.001, + "expireat": 1651808848.0280418 + }, + "COUNTERS:oid:0x5c000000001928": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0280564 + }, + "COUNTERS:oid:0x5c00000000252c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0280685 + }, + "COUNTERS:oid:0x5c00000000167c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "19", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0280805 + }, + "COUNTERS:oid:0x5c000000001e0b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1359" + }, + "ttl": -0.001, + "expireat": 1651808848.0280917 + }, + "COUNTERS:oid:0x5c000000001a22": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0281065 + }, + "COUNTERS:oid:0x5c000000001bc4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.028122 + }, + "COUNTERS:oid:0x5c0000000018cb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1264" + }, + "ttl": -0.001, + "expireat": 1651808848.0281339 + }, + "COUNTERS:oid:0x5c000000001f1b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.028149 + }, + "COUNTERS:oid:0x5c000000001c98": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1337" + }, + "ttl": -0.001, + "expireat": 1651808848.028161 + }, + "COUNTERS:oid:0x5c00000000250e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1375", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0281727 + }, + "COUNTERS:oid:0x5c000000002016": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "8" + }, + "ttl": -0.001, + "expireat": 1651808848.0281878 + }, + "COUNTERS:oid:0x5c00000000195b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "164" + }, + "ttl": -0.001, + "expireat": 1651808848.0282598 + }, + "COUNTERS:oid:0x5c0000000026ec": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.028278 + }, + "COUNTERS:oid:0x5c000000001b1d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1306" + }, + "ttl": -0.001, + "expireat": 1651808848.0282907 + }, + "COUNTERS:oid:0x5c0000000025b8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.028303 + }, + "COUNTERS:oid:0x5c000000002622": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0283308 + }, + "COUNTERS:oid:0x5c000000002406": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0283427 + }, + "COUNTERS:oid:0x5c000000002500": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0283544 + }, + "COUNTERS:oid:0x5c000000001c04": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.028398 + }, + "COUNTERS:oid:0x5c000000001b75": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "138" + }, + "ttl": -0.001, + "expireat": 1651808848.0284104 + }, + "COUNTERS:oid:0x5c000000001b6b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0284219 + }, + "COUNTERS:oid:0x5c0000000025a1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "177", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0284586 + }, + "COUNTERS:oid:0x5c000000001981": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "198", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0284712 + }, + "COUNTERS:oid:0x5c000000001fd7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.028483 + }, + "COUNTERS:oid:0x5c000000001d4c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0284977 + }, + "COUNTERS:oid:0x5c000000001a6e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0285096 + }, + "COUNTERS:oid:0x5c00000000241b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.028521 + }, + "COUNTERS:oid:0x5c000000001b49": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "314" + }, + "ttl": -0.001, + "expireat": 1651808848.0285356 + }, + "COUNTERS:oid:0x5c000000001c24": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0285475 + }, + "COUNTERS:oid:0x5c000000001fd8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "271" + }, + "ttl": -0.001, + "expireat": 1651808848.028562 + }, + "COUNTERS:oid:0x5c00000000256c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0285857 + }, + "COUNTERS:oid:0x5c000000001391": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0285978 + }, + "COUNTERS:oid:0x5c00000000260c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "178" + }, + "ttl": -0.001, + "expireat": 1651808848.0286534 + }, + "COUNTERS:oid:0x5c000000001d4b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.028666 + }, + "COUNTERS:oid:0x5c00000000168d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "309", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.028681 + }, + "COUNTERS:oid:0x5c000000002015": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "105" + }, + "ttl": -0.001, + "expireat": 1651808848.028693 + }, + "COUNTERS:oid:0x5c000000001ff8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "996" + }, + "ttl": -0.001, + "expireat": 1651808848.0287073 + }, + "COUNTERS:oid:0x5c00000000241c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "135", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0287218 + }, + "COUNTERS:oid:0x5c00000000146c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0287368 + }, + "COUNTERS:oid:0x5c0000000014de": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "31", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0287511 + }, + "COUNTERS:oid:0x5c0000000020d7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0287654 + }, + "COUNTERS:oid:0x5c000000001f52": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "16" + }, + "ttl": -0.001, + "expireat": 1651808848.0287771 + }, + "COUNTERS:oid:0x5c000000002009": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "2326", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0287886 + }, + "COUNTERS:oid:0x5c000000001af1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "18" + }, + "ttl": -0.001, + "expireat": 1651808848.0287995 + }, + "COUNTERS:oid:0x5c0000000015fa": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "123" + }, + "ttl": -0.001, + "expireat": 1651808848.0288105 + }, + "COUNTERS:oid:0x5c000000001ba6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "24", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0288215 + }, + "COUNTERS:oid:0x5c000000001ad5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "15" + }, + "ttl": -0.001, + "expireat": 1651808848.0288322 + }, + "COUNTERS:oid:0x5c0000000025f1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0288465 + }, + "COUNTERS:oid:0x5c0000000025f5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13" + }, + "ttl": -0.001, + "expireat": 1651808848.028861 + }, + "COUNTERS:oid:0x5c000000001c93": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0288754 + }, + "COUNTERS:oid:0x5c000000001895": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.0288866 + }, + "COUNTERS:oid:0x5c0000000025e4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "177", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0288973 + }, + "COUNTERS:oid:0x5c000000002558": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0289447 + }, + "COUNTERS:oid:0x5c000000001776": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "83", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0303493 + }, + "COUNTERS:oid:0x5c000000002538": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.031661 + }, + "COUNTERS:oid:0x5c0000000022f8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "49", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0316818 + }, + "COUNTERS:oid:0x5c000000001f40": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0316997 + }, + "COUNTERS:oid:0x5c000000001d53": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0317268 + }, + "COUNTERS:oid:0x5c00000000193e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0317392 + }, + "COUNTERS:oid:0x5c000000001464": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12134" + }, + "ttl": -0.001, + "expireat": 1651808848.0317507 + }, + "COUNTERS:oid:0x5c000000001598": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "949" + }, + "ttl": -0.001, + "expireat": 1651808848.0317624 + }, + "COUNTERS:oid:0x5c0000000025c8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0317738 + }, + "COUNTERS:oid:0x5c000000001d39": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0318015 + }, + "COUNTERS:oid:0x5c000000001766": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "306" + }, + "ttl": -0.001, + "expireat": 1651808848.0318172 + }, + "COUNTERS:oid:0x5c00000000183c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "179" + }, + "ttl": -0.001, + "expireat": 1651808848.031833 + }, + "COUNTERS:oid:0x5c000000001d84": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0318449 + }, + "COUNTERS:oid:0x5c000000001bff": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0318723 + }, + "COUNTERS:oid:0x5c000000001b8b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "257", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0318875 + }, + "COUNTERS:oid:0x5c000000002140": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0318995 + }, + "COUNTERS:oid:0x5c000000001ff6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0319147 + }, + "COUNTERS:oid:0x5c000000002344": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "427" + }, + "ttl": -0.001, + "expireat": 1651808848.0319264 + }, + "COUNTERS:oid:0x5c000000001987": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.031941 + }, + "COUNTERS:oid:0x5c0000000025d1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0319555 + }, + "COUNTERS:oid:0x5c000000001c58": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0320706 + }, + "COUNTERS:oid:0x5c0000000013fc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0320847 + }, + "COUNTERS:oid:0x5c00000000136f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1399" + }, + "ttl": -0.001, + "expireat": 1651808848.0321093 + }, + "COUNTERS:oid:0x5c000000001ff5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "500" + }, + "ttl": -0.001, + "expireat": 1651808848.032128 + }, + "COUNTERS:oid:0x5c0000000014d9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0321395 + }, + "COUNTERS:oid:0x5c0000000026de": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "178" + }, + "ttl": -0.001, + "expireat": 1651808848.032154 + }, + "COUNTERS:oid:0x5c0000000017be": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "94" + }, + "ttl": -0.001, + "expireat": 1651808848.0321698 + }, + "COUNTERS:oid:0x5c000000002772": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.032181 + }, + "COUNTERS:oid:0x5c0000000013c2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "173" + }, + "ttl": -0.001, + "expireat": 1651808848.032208 + }, + "COUNTERS:oid:0x5c000000001803": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.0322196 + }, + "COUNTERS:oid:0x5c0000000015ad": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "287", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.032255 + }, + "COUNTERS:oid:0x5c000000001bd8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.032267 + }, + "COUNTERS:oid:0x5c000000001873": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "88", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0322816 + }, + "COUNTERS:oid:0x5c000000001b25": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1339" + }, + "ttl": -0.001, + "expireat": 1651808848.032293 + }, + "COUNTERS:oid:0x5c000000001de2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "105" + }, + "ttl": -0.001, + "expireat": 1651808848.0323071 + }, + "COUNTERS:oid:0x5c000000001901": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0323222 + }, + "COUNTERS:oid:0x5c000000001996": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0323336 + }, + "COUNTERS:oid:0x5c000000001c45": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "239", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.032348 + }, + "COUNTERS:oid:0x5c000000001362": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0323627 + }, + "COUNTERS:oid:0x5c000000001aff": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "280", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.032377 + }, + "COUNTERS:oid:0x5c00000000168f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "17", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0324132 + }, + "COUNTERS:oid:0x5c000000002614": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "176" + }, + "ttl": -0.001, + "expireat": 1651808848.0324273 + }, + "COUNTERS:oid:0x5c000000001767": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1281" + }, + "ttl": -0.001, + "expireat": 1651808848.0324576 + }, + "COUNTERS:oid:0x5c000000001a18": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "282" + }, + "ttl": -0.001, + "expireat": 1651808848.0324724 + }, + "COUNTERS:oid:0x5c000000001771": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.032484 + }, + "COUNTERS:oid:0x5c00000000212f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0324984 + }, + "COUNTERS:oid:0x5c0000000015f8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0325098 + }, + "COUNTERS:oid:0x5c000000002515": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "304", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.032524 + }, + "COUNTERS:oid:0x5c0000000019e7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "455" + }, + "ttl": -0.001, + "expireat": 1651808848.0325434 + }, + "COUNTERS:oid:0x5c000000001827": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.0325553 + }, + "COUNTERS:oid:0x5c0000000023cf": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0325713 + }, + "COUNTERS:oid:0x5c000000001f2f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.032583 + }, + "COUNTERS:oid:0x5c00000000142b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "29", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0325942 + }, + "COUNTERS:oid:0x5c000000002088": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0326085 + }, + "COUNTERS:oid:0x5c000000001d2d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0326233 + }, + "COUNTERS:oid:0x5c00000000185f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.032638 + }, + "COUNTERS:oid:0x5c00000000181b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1329" + }, + "ttl": -0.001, + "expireat": 1651808848.0326495 + }, + "COUNTERS:oid:0x5c0000000016c5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "215", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.032679 + }, + "COUNTERS:oid:0x5c000000001861": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "180", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0326931 + }, + "COUNTERS:oid:0x5c000000002504": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0327044 + }, + "COUNTERS:oid:0x5c0000000022c3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "62" + }, + "ttl": -0.001, + "expireat": 1651808848.032744 + }, + "COUNTERS:oid:0x5c000000001ab2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0327578 + }, + "COUNTERS:oid:0x5c000000001748": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "16" + }, + "ttl": -0.001, + "expireat": 1651808848.0327718 + }, + "COUNTERS:oid:0x5c00000000217b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0327861 + }, + "COUNTERS:oid:0x5c00000000194e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.032797 + }, + "COUNTERS:oid:0x5c000000001a9d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.0328078 + }, + "COUNTERS:oid:0x5c000000001ded": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0328186 + }, + "COUNTERS:oid:0x5c0000000020a7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0328321 + }, + "COUNTERS:oid:0x5c000000001695": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0328467 + }, + "COUNTERS:oid:0x5c0000000020b5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "2059" + }, + "ttl": -0.001, + "expireat": 1651808848.0328577 + }, + "COUNTERS:oid:0x5c0000000023c6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "317" + }, + "ttl": -0.001, + "expireat": 1651808848.0328712 + }, + "COUNTERS:oid:0x5c0000000023f6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0328972 + }, + "COUNTERS:oid:0x5c00000000190a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "25" + }, + "ttl": -0.001, + "expireat": 1651808848.0329182 + }, + "COUNTERS:oid:0x5c000000001ead": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0329297 + }, + "COUNTERS:oid:0x5c000000001729": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0329401 + }, + "COUNTERS:oid:0x5c0000000017c0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "39" + }, + "ttl": -0.001, + "expireat": 1651808848.032954 + }, + "COUNTERS:oid:0x5c000000001e3f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "108", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.032999 + }, + "COUNTERS:oid:0x5c000000001743": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1285" + }, + "ttl": -0.001, + "expireat": 1651808848.0330155 + }, + "COUNTERS:oid:0x5c000000002449": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0330296 + }, + "COUNTERS:oid:0x5c000000002326": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "5", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0330415 + }, + "COUNTERS:oid:0x5c000000001d02": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0331714 + }, + "COUNTERS:oid:0x5c000000001bb9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1290" + }, + "ttl": -0.001, + "expireat": 1651808848.033187 + }, + "COUNTERS:oid:0x5c0000000015df": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0332026 + }, + "COUNTERS:oid:0x5c0000000027db": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13" + }, + "ttl": -0.001, + "expireat": 1651808848.0332148 + }, + "COUNTERS:oid:0x5c000000001e18": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.03323 + }, + "COUNTERS:oid:0x5c000000001e4c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "296" + }, + "ttl": -0.001, + "expireat": 1651808848.0332458 + }, + "COUNTERS:oid:0x5c00000000231e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "6" + }, + "ttl": -0.001, + "expireat": 1651808848.033258 + }, + "COUNTERS:oid:0x5c000000001849": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.03327 + }, + "COUNTERS:oid:0x5c000000001b74": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "182", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.033285 + }, + "COUNTERS:oid:0x5c000000002179": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0333169 + }, + "COUNTERS:oid:0x5c0000000013f6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0333338 + }, + "COUNTERS:oid:0x5c0000000014db": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.033347 + }, + "COUNTERS:oid:0x5c000000002656": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0333593 + }, + "COUNTERS:oid:0x5c000000001c1c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "168" + }, + "ttl": -0.001, + "expireat": 1651808848.0333903 + }, + "COUNTERS:oid:0x5c000000002404": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "143" + }, + "ttl": -0.001, + "expireat": 1651808848.0334053 + }, + "COUNTERS:oid:0x5c00000000231f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "40" + }, + "ttl": -0.001, + "expireat": 1651808848.0334203 + }, + "COUNTERS:oid:0x5c00000000159d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0334508 + }, + "COUNTERS:oid:0x5c0000000020ec": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0334625 + }, + "COUNTERS:oid:0x5c0000000015e7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0335147 + }, + "COUNTERS:oid:0x5c000000001ea5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "181" + }, + "ttl": -0.001, + "expireat": 1651808848.0335286 + }, + "COUNTERS:oid:0x5c00000000234b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "70", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0335426 + }, + "COUNTERS:oid:0x5c000000001fd6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13" + }, + "ttl": -0.001, + "expireat": 1651808848.0335572 + }, + "COUNTERS:oid:0x5c000000001c26": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "171" + }, + "ttl": -0.001, + "expireat": 1651808848.0335686 + }, + "COUNTERS:oid:0x5c000000001a79": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.033582 + }, + "COUNTERS:oid:0x5c000000001adb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1334" + }, + "ttl": -0.001, + "expireat": 1651808848.0335937 + }, + "COUNTERS:oid:0x5c0000000020ed": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "299" + }, + "ttl": -0.001, + "expireat": 1651808848.0336077 + }, + "COUNTERS:oid:0x5c00000000164a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "146" + }, + "ttl": -0.001, + "expireat": 1651808848.033619 + }, + "COUNTERS:oid:0x5c000000001a82": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22" + }, + "ttl": -0.001, + "expireat": 1651808848.03363 + }, + "COUNTERS:oid:0x5c0000000018cc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0336611 + }, + "COUNTERS:oid:0x5c000000001b45": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0336888 + }, + "COUNTERS:oid:0x5c000000002174": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "180" + }, + "ttl": -0.001, + "expireat": 1651808848.033701 + }, + "COUNTERS:oid:0x5c000000001735": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "205" + }, + "ttl": -0.001, + "expireat": 1651808848.0337121 + }, + "COUNTERS:oid:0x5c000000001cb9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.033723 + }, + "COUNTERS:oid:0x5c000000001e9b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0337346 + }, + "COUNTERS:oid:0x5c000000001855": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22" + }, + "ttl": -0.001, + "expireat": 1651808848.0337458 + }, + "COUNTERS:oid:0x5c000000001ea8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0337605 + }, + "COUNTERS:oid:0x5c000000001dfb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "18", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.033775 + }, + "COUNTERS:oid:0x5c0000000026eb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1295" + }, + "ttl": -0.001, + "expireat": 1651808848.0337987 + }, + "COUNTERS:oid:0x5c000000001de8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "17", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0338326 + }, + "COUNTERS:oid:0x5c0000000018ef": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "221", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0338497 + }, + "COUNTERS:oid:0x5c0000000019fe": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0338614 + }, + "COUNTERS:oid:0x5c000000001596": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0338726 + }, + "COUNTERS:oid:0x5c000000001c9e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "181" + }, + "ttl": -0.001, + "expireat": 1651808848.0338843 + }, + "COUNTERS:oid:0x5c000000001fe4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1167" + }, + "ttl": -0.001, + "expireat": 1651808848.0338984 + }, + "COUNTERS:oid:0x5c00000000176a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "183" + }, + "ttl": -0.001, + "expireat": 1651808848.033913 + }, + "COUNTERS:oid:0x5c000000002241": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "195" + }, + "ttl": -0.001, + "expireat": 1651808848.0339372 + }, + "COUNTERS:oid:0x5c0000000018e1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.033949 + }, + "COUNTERS:oid:0x5c00000000170c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "36" + }, + "ttl": -0.001, + "expireat": 1651808848.033963 + }, + "COUNTERS:oid:0x5c000000002451": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0339775 + }, + "COUNTERS:oid:0x5c000000001f2a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "262" + }, + "ttl": -0.001, + "expireat": 1651808848.0339923 + }, + "COUNTERS:oid:0x5c000000001cc6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.034007 + }, + "COUNTERS:oid:0x5c000000001b8e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0340188 + }, + "COUNTERS:oid:0x5c000000001728": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0340328 + }, + "COUNTERS:oid:0x5c000000001db7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "271", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0340476 + }, + "COUNTERS:oid:0x5c0000000017c4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "150" + }, + "ttl": -0.001, + "expireat": 1651808848.0340621 + }, + "COUNTERS:oid:0x5c0000000016b4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "179", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0341015 + }, + "COUNTERS:oid:0x5c000000001954": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "24" + }, + "ttl": -0.001, + "expireat": 1651808848.0341158 + }, + "COUNTERS:oid:0x5c0000000020c0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0341275 + }, + "COUNTERS:oid:0x5c000000002175": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "218" + }, + "ttl": -0.001, + "expireat": 1651808848.0341415 + }, + "COUNTERS:oid:0x5c000000001397": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1199" + }, + "ttl": -0.001, + "expireat": 1651808848.034153 + }, + "COUNTERS:oid:0x5c000000002597": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0341673 + }, + "COUNTERS:oid:0x5c000000001e2f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "265", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0341816 + }, + "COUNTERS:oid:0x5c000000001ad9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "116" + }, + "ttl": -0.001, + "expireat": 1651808848.0341935 + }, + "COUNTERS:oid:0x5c00000000138a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0342238 + }, + "COUNTERS:oid:0x5c000000001c5c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0342362 + }, + "COUNTERS:oid:0x5c000000002432": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0342505 + }, + "COUNTERS:oid:0x5c0000000022e9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "97" + }, + "ttl": -0.001, + "expireat": 1651808848.034265 + }, + "COUNTERS:oid:0x5c000000001c01": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175" + }, + "ttl": -0.001, + "expireat": 1651808848.034277 + }, + "COUNTERS:oid:0x5c00000000157b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1340", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0342908 + }, + "COUNTERS:oid:0x5c0000000017ad": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0343022 + }, + "COUNTERS:oid:0x5c000000001418": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0343132 + }, + "COUNTERS:oid:0x5c00000000192d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "361" + }, + "ttl": -0.001, + "expireat": 1651808848.0343244 + }, + "COUNTERS:oid:0x5c000000001f14": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "134" + }, + "ttl": -0.001, + "expireat": 1651808848.034336 + }, + "COUNTERS:oid:0x5c000000001c3e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22" + }, + "ttl": -0.001, + "expireat": 1651808848.0343506 + }, + "COUNTERS:oid:0x5c00000000159e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0343623 + }, + "COUNTERS:oid:0x5c000000001d4e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "106", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0344057 + }, + "COUNTERS:oid:0x5c00000000154a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.03442 + }, + "COUNTERS:oid:0x5c0000000017d0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0344348 + }, + "COUNTERS:oid:0x5c0000000016f9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0344462 + }, + "COUNTERS:oid:0x5c000000001eeb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0344577 + }, + "COUNTERS:oid:0x5c000000001a74": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0344687 + }, + "COUNTERS:oid:0x5c000000002455": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "144", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0344796 + }, + "COUNTERS:oid:0x5c000000001730": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "32" + }, + "ttl": -0.001, + "expireat": 1651808848.0344942 + }, + "COUNTERS:oid:0x5c00000000243a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0345087 + }, + "COUNTERS:oid:0x5c000000001742": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "305" + }, + "ttl": -0.001, + "expireat": 1651808848.0345235 + }, + "COUNTERS:oid:0x5c0000000023ef": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.034535 + }, + "COUNTERS:oid:0x5c000000001842": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.034549 + }, + "COUNTERS:oid:0x5c000000001b7b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.034574 + }, + "COUNTERS:oid:0x5c000000001381": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0345862 + }, + "COUNTERS:oid:0x5c000000002574": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "179", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0346134 + }, + "COUNTERS:oid:0x5c000000002645": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0346277 + }, + "COUNTERS:oid:0x5c0000000026ed": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0346391 + }, + "COUNTERS:oid:0x5c000000002168": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0346498 + }, + "COUNTERS:oid:0x5c000000001c47": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0346637 + }, + "COUNTERS:oid:0x5c00000000232a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "5" + }, + "ttl": -0.001, + "expireat": 1651808848.0346751 + }, + "COUNTERS:oid:0x5c000000001481": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0346859 + }, + "COUNTERS:oid:0x5c00000000141d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13" + }, + "ttl": -0.001, + "expireat": 1651808848.0347188 + }, + "COUNTERS:oid:0x5c000000002013": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0347316 + }, + "COUNTERS:oid:0x5c000000001451": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "185", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0347426 + }, + "COUNTERS:oid:0x5c000000001897": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0347533 + }, + "COUNTERS:oid:0x5c0000000013aa": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "289" + }, + "ttl": -0.001, + "expireat": 1651808848.034785 + }, + "COUNTERS:oid:0x5c000000001de5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1334" + }, + "ttl": -0.001, + "expireat": 1651808848.0347974 + }, + "COUNTERS:oid:0x5c000000001de1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0348086 + }, + "COUNTERS:oid:0x5c000000001b06": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "101" + }, + "ttl": -0.001, + "expireat": 1651808848.0348196 + }, + "COUNTERS:oid:0x5c000000001c0f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.0348308 + }, + "COUNTERS:oid:0x5c000000001619": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "288" + }, + "ttl": -0.001, + "expireat": 1651808848.0348637 + }, + "COUNTERS:oid:0x5c000000001f3c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0349185 + }, + "COUNTERS:oid:0x5c000000001669": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "292", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0349576 + }, + "COUNTERS:oid:0x5c0000000018b0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13" + }, + "ttl": -0.001, + "expireat": 1651808848.03497 + }, + "COUNTERS:oid:0x5c000000002641": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "15", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.034985 + }, + "COUNTERS:oid:0x5c000000002182": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "10", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.034997 + }, + "COUNTERS:oid:0x5c0000000017b8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0350122 + }, + "COUNTERS:oid:0x5c000000001aa1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "445", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0350246 + }, + "COUNTERS:oid:0x5c0000000019e0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.03504 + }, + "COUNTERS:oid:0x5c0000000020c9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0350554 + }, + "COUNTERS:oid:0x5c000000001b90": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0350676 + }, + "COUNTERS:oid:0x5c00000000177d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "189", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0350795 + }, + "COUNTERS:oid:0x5c0000000020ac": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0351257 + }, + "COUNTERS:oid:0x5c0000000013f8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "179" + }, + "ttl": -0.001, + "expireat": 1651808848.035139 + }, + "COUNTERS:oid:0x5c000000001417": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.035169 + }, + "COUNTERS:oid:0x5c00000000142a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "32" + }, + "ttl": -0.001, + "expireat": 1651808848.0351846 + }, + "COUNTERS:oid:0x5c000000001d13": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.035197 + }, + "COUNTERS:oid:0x5c000000001625": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "185", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0352793 + }, + "COUNTERS:oid:0x5c0000000016d6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1294" + }, + "ttl": -0.001, + "expireat": 1651808848.035303 + }, + "COUNTERS:oid:0x5c000000001584": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1142", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.035332 + }, + "COUNTERS:oid:0x5c000000001bc5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.0353599 + }, + "COUNTERS:oid:0x5c000000001706": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0353749 + }, + "COUNTERS:oid:0x5c00000000232d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "5" + }, + "ttl": -0.001, + "expireat": 1651808848.035408 + }, + "COUNTERS:oid:0x5c000000001d23": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "282" + }, + "ttl": -0.001, + "expireat": 1651808848.0354393 + }, + "COUNTERS:oid:0x5c000000001cda": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1293" + }, + "ttl": -0.001, + "expireat": 1651808848.0354512 + }, + "COUNTERS:oid:0x5c0000000019b3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0354652 + }, + "COUNTERS:oid:0x5c000000002141": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "177", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0354798 + }, + "COUNTERS:oid:0x5c00000000176f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0354912 + }, + "COUNTERS:oid:0x5c000000001872": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0355024 + }, + "COUNTERS:oid:0x5c0000000013d8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0355167 + }, + "COUNTERS:oid:0x5c0000000019e3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.035546 + }, + "COUNTERS:oid:0x5c0000000024e1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13" + }, + "ttl": -0.001, + "expireat": 1651808848.0355577 + }, + "COUNTERS:oid:0x5c000000001c90": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1314" + }, + "ttl": -0.001, + "expireat": 1651808848.0355923 + }, + "COUNTERS:oid:0x5c000000002511": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "145", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.035609 + }, + "COUNTERS:oid:0x5c000000001467": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0356243 + }, + "COUNTERS:oid:0x5c0000000021f9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0356357 + }, + "COUNTERS:oid:0x5c0000000025c7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0356636 + }, + "COUNTERS:oid:0x5c00000000257e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1265", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0356753 + }, + "COUNTERS:oid:0x5c000000001bb2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.03569 + }, + "COUNTERS:oid:0x5c0000000016e5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "66" + }, + "ttl": -0.001, + "expireat": 1651808848.0357046 + }, + "COUNTERS:oid:0x5c000000001692": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "16" + }, + "ttl": -0.001, + "expireat": 1651808848.0357158 + }, + "COUNTERS:oid:0x5c0000000017db": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.035727 + }, + "COUNTERS:oid:0x5c000000001a64": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1317" + }, + "ttl": -0.001, + "expireat": 1651808848.0357382 + }, + "COUNTERS:oid:0x5c000000001d1d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0357494 + }, + "COUNTERS:oid:0x5c00000000215e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1256", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0357606 + }, + "COUNTERS:oid:0x5c00000000200c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.035775 + }, + "COUNTERS:oid:0x5c000000002097": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.035789 + }, + "COUNTERS:oid:0x5c0000000020ab": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0358164 + }, + "COUNTERS:oid:0x5c0000000024c9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "198" + }, + "ttl": -0.001, + "expireat": 1651808848.0358315 + }, + "COUNTERS:oid:0x5c000000001414": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "161" + }, + "ttl": -0.001, + "expireat": 1651808848.0358431 + }, + "COUNTERS:oid:0x5c000000001ca7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "107", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.035857 + }, + "COUNTERS:oid:0x5c00000000157a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.035888 + }, + "COUNTERS:oid:0x5c0000000019f8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0359013 + }, + "COUNTERS:oid:0x5c00000000213a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0359159 + }, + "COUNTERS:oid:0x5c000000001a31": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "395" + }, + "ttl": -0.001, + "expireat": 1651808848.0359275 + }, + "COUNTERS:oid:0x5c000000001aec": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "33" + }, + "ttl": -0.001, + "expireat": 1651808848.035942 + }, + "COUNTERS:oid:0x5c00000000190d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22" + }, + "ttl": -0.001, + "expireat": 1651808848.0359573 + }, + "COUNTERS:oid:0x5c000000002782": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "5", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0359817 + }, + "COUNTERS:oid:0x5c00000000263a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0359933 + }, + "COUNTERS:oid:0x5c0000000018e5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "24", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0360043 + }, + "COUNTERS:oid:0x5c0000000014df": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "24", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.036016 + }, + "COUNTERS:oid:0x5c00000000166b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0360303 + }, + "COUNTERS:oid:0x5c00000000214b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "173" + }, + "ttl": -0.001, + "expireat": 1651808848.0360448 + }, + "COUNTERS:oid:0x5c0000000022f4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "430", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0360565 + }, + "COUNTERS:oid:0x5c000000001da9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.036068 + }, + "COUNTERS:oid:0x5c00000000259f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0360823 + }, + "COUNTERS:oid:0x5c0000000020d0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0360937 + }, + "COUNTERS:oid:0x5c000000001ed3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "103", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0361078 + }, + "COUNTERS:oid:0x5c000000002536": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1275" + }, + "ttl": -0.001, + "expireat": 1651808848.0361192 + }, + "COUNTERS:oid:0x5c000000002315": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "5" + }, + "ttl": -0.001, + "expireat": 1651808848.0361335 + }, + "COUNTERS:oid:0x5c000000002353": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "43", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0361478 + }, + "COUNTERS:oid:0x5c000000001499": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "21" + }, + "ttl": -0.001, + "expireat": 1651808848.0361803 + }, + "COUNTERS:oid:0x5c0000000016b1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "303", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0361967 + }, + "COUNTERS:oid:0x5c000000001ef8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "112", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0362282 + }, + "COUNTERS:oid:0x5c000000001af7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "279" + }, + "ttl": -0.001, + "expireat": 1651808848.0362437 + }, + "COUNTERS:oid:0x5c000000001395": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1359" + }, + "ttl": -0.001, + "expireat": 1651808848.0362554 + }, + "COUNTERS:oid:0x5c0000000015dd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "177" + }, + "ttl": -0.001, + "expireat": 1651808848.03627 + }, + "COUNTERS:oid:0x5c000000001fc4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "320", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0362844 + }, + "COUNTERS:oid:0x5c0000000017da": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0362988 + }, + "COUNTERS:oid:0x5c0000000023da": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.036323 + }, + "COUNTERS:oid:0x5c000000001bbf": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "174" + }, + "ttl": -0.001, + "expireat": 1651808848.036336 + }, + "COUNTERS:oid:0x5c00000000177f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "18", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0363474 + }, + "COUNTERS:oid:0x5c000000001c05": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0363588 + }, + "COUNTERS:oid:0x5c0000000018bb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.036373 + }, + "COUNTERS:oid:0x5c00000000185c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1236" + }, + "ttl": -0.001, + "expireat": 1651808848.0363848 + }, + "COUNTERS:oid:0x5c000000001678": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.036396 + }, + "COUNTERS:oid:0x5c000000001918": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.03641 + }, + "COUNTERS:oid:0x5c000000001ec0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.036422 + }, + "COUNTERS:oid:0x5c000000002094": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.036433 + }, + "COUNTERS:oid:0x5c0000000016fd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "16" + }, + "ttl": -0.001, + "expireat": 1651808848.0364442 + }, + "COUNTERS:oid:0x5c000000002659": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0364583 + }, + "COUNTERS:oid:0x5c000000002480": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "303", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0366292 + }, + "COUNTERS:oid:0x5c000000001feb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0366461 + }, + "COUNTERS:oid:0x5c00000000266a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "16", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0366712 + }, + "COUNTERS:oid:0x5c000000002485": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "54" + }, + "ttl": -0.001, + "expireat": 1651808848.0366828 + }, + "COUNTERS:oid:0x5c00000000210c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13" + }, + "ttl": -0.001, + "expireat": 1651808848.036694 + }, + "COUNTERS:oid:0x5c00000000174b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.036705 + }, + "COUNTERS:oid:0x5c0000000018a7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0367193 + }, + "COUNTERS:oid:0x5c000000001a9f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.036731 + }, + "COUNTERS:oid:0x5c000000002521": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "155", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0367446 + }, + "COUNTERS:oid:0x5c000000002142": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0367591 + }, + "COUNTERS:oid:0x5c000000001a66": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.0367706 + }, + "COUNTERS:oid:0x5c00000000188b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.0367815 + }, + "COUNTERS:oid:0x5c00000000178e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "162" + }, + "ttl": -0.001, + "expireat": 1651808848.0368118 + }, + "COUNTERS:oid:0x5c000000001b66": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "271", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0368266 + }, + "COUNTERS:oid:0x5c000000001aab": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "201" + }, + "ttl": -0.001, + "expireat": 1651808848.036838 + }, + "COUNTERS:oid:0x5c000000001624": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0368485 + }, + "COUNTERS:oid:0x5c00000000167d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "216", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.036863 + }, + "COUNTERS:oid:0x5c00000000136b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "728", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.036877 + }, + "COUNTERS:oid:0x5c000000001759": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "197" + }, + "ttl": -0.001, + "expireat": 1651808848.0368907 + }, + "COUNTERS:oid:0x5c00000000147f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11539" + }, + "ttl": -0.001, + "expireat": 1651808848.0369048 + }, + "COUNTERS:oid:0x5c000000001880": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "299" + }, + "ttl": -0.001, + "expireat": 1651808848.036941 + }, + "COUNTERS:oid:0x5c0000000018ac": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "167" + }, + "ttl": -0.001, + "expireat": 1651808848.0369546 + }, + "COUNTERS:oid:0x5c000000002166": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1279" + }, + "ttl": -0.001, + "expireat": 1651808848.0369658 + }, + "COUNTERS:oid:0x5c000000001ac8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "24", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0370321 + }, + "COUNTERS:oid:0x5c00000000185b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "291", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.03706 + }, + "COUNTERS:oid:0x5c000000001cba": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "144" + }, + "ttl": -0.001, + "expireat": 1651808848.037076 + }, + "COUNTERS:oid:0x5c000000001cb1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "182", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0370905 + }, + "COUNTERS:oid:0x5c000000001d25": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.037105 + }, + "COUNTERS:oid:0x5c000000001fdf": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.037117 + }, + "COUNTERS:oid:0x5c000000001d28": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0371282 + }, + "COUNTERS:oid:0x5c000000002553": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "137" + }, + "ttl": -0.001, + "expireat": 1651808848.0371425 + }, + "COUNTERS:oid:0x5c000000001e05": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.0371695 + }, + "COUNTERS:oid:0x5c0000000015ff": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0371838 + }, + "COUNTERS:oid:0x5c0000000020db": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.037195 + }, + "COUNTERS:oid:0x5c000000001b99": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "186" + }, + "ttl": -0.001, + "expireat": 1651808848.0372086 + }, + "COUNTERS:oid:0x5c00000000148a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "310", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0372226 + }, + "COUNTERS:oid:0x5c0000000022e8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "492" + }, + "ttl": -0.001, + "expireat": 1651808848.0372338 + }, + "COUNTERS:oid:0x5c000000001338": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "15" + }, + "ttl": -0.001, + "expireat": 1651808848.037248 + }, + "COUNTERS:oid:0x5c000000001f12": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0372593 + }, + "COUNTERS:oid:0x5c00000000190e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22" + }, + "ttl": -0.001, + "expireat": 1651808848.0372908 + }, + "COUNTERS:oid:0x5c0000000016d3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0373068 + }, + "COUNTERS:oid:0x5c000000002483": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1282", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.037319 + }, + "COUNTERS:oid:0x5c000000002320": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "50" + }, + "ttl": -0.001, + "expireat": 1651808848.0373297 + }, + "COUNTERS:oid:0x5c000000002474": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "180", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0373433 + }, + "COUNTERS:oid:0x5c00000000246b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1269" + }, + "ttl": -0.001, + "expireat": 1651808848.0373545 + }, + "COUNTERS:oid:0x5c0000000016ed": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "155" + }, + "ttl": -0.001, + "expireat": 1651808848.0373654 + }, + "COUNTERS:oid:0x5c000000001d38": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.0373762 + }, + "COUNTERS:oid:0x5c000000001a26": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "181" + }, + "ttl": -0.001, + "expireat": 1651808848.0373898 + }, + "COUNTERS:oid:0x5c000000001acb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "23", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0374048 + }, + "COUNTERS:oid:0x5c0000000018c7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "170", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0374188 + }, + "COUNTERS:oid:0x5c00000000179c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "32", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.037433 + }, + "COUNTERS:oid:0x5c0000000015d5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "112" + }, + "ttl": -0.001, + "expireat": 1651808848.0374444 + }, + "COUNTERS:oid:0x5c0000000016c9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "17" + }, + "ttl": -0.001, + "expireat": 1651808848.0374582 + }, + "COUNTERS:oid:0x5c00000000169c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.0374694 + }, + "COUNTERS:oid:0x5c000000002306": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "5" + }, + "ttl": -0.001, + "expireat": 1651808848.0374808 + }, + "COUNTERS:oid:0x5c000000001802": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0374944 + }, + "COUNTERS:oid:0x5c0000000016b7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0375235 + }, + "COUNTERS:oid:0x5c000000002458": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "299" + }, + "ttl": -0.001, + "expireat": 1651808848.0375383 + }, + "COUNTERS:oid:0x5c0000000013da": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0375729 + }, + "COUNTERS:oid:0x5c0000000015e8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.0375867 + }, + "COUNTERS:oid:0x5c00000000144a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0376012 + }, + "COUNTERS:oid:0x5c0000000020cc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175" + }, + "ttl": -0.001, + "expireat": 1651808848.0376124 + }, + "COUNTERS:oid:0x5c000000001400": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0376263 + }, + "COUNTERS:oid:0x5c000000001bcf": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22" + }, + "ttl": -0.001, + "expireat": 1651808848.0376375 + }, + "COUNTERS:oid:0x5c000000001cb8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0376515 + }, + "COUNTERS:oid:0x5c00000000247e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.037666 + }, + "COUNTERS:oid:0x5c000000001e14": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0377095 + }, + "COUNTERS:oid:0x5c000000001672": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0377233 + }, + "COUNTERS:oid:0x5c000000002594": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "177", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0377367 + }, + "COUNTERS:oid:0x5c000000001e1c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "35" + }, + "ttl": -0.001, + "expireat": 1651808848.0377533 + }, + "COUNTERS:oid:0x5c000000001d3c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "438", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0377672 + }, + "COUNTERS:oid:0x5c000000001b15": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "20", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.037784 + }, + "COUNTERS:oid:0x5c0000000017fa": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0378017 + }, + "COUNTERS:oid:0x5c000000001e67": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22" + }, + "ttl": -0.001, + "expireat": 1651808848.0378153 + }, + "COUNTERS:oid:0x5c00000000177c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "168", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.037832 + }, + "COUNTERS:oid:0x5c0000000017eb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "16" + }, + "ttl": -0.001, + "expireat": 1651808848.0378458 + }, + "COUNTERS:oid:0x5c0000000017d4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0378623 + }, + "COUNTERS:oid:0x5c000000001862": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "138" + }, + "ttl": -0.001, + "expireat": 1651808848.037923 + }, + "COUNTERS:oid:0x5c0000000017e5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "26" + }, + "ttl": -0.001, + "expireat": 1651808848.0379398 + }, + "COUNTERS:oid:0x5c00000000178a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "237" + }, + "ttl": -0.001, + "expireat": 1651808848.0379574 + }, + "COUNTERS:oid:0x5c0000000017bc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0379755 + }, + "COUNTERS:oid:0x5c0000000013b7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0380046 + }, + "COUNTERS:oid:0x5c00000000227a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "301" + }, + "ttl": -0.001, + "expireat": 1651808848.038019 + }, + "COUNTERS:oid:0x5c000000001ae3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.03803 + }, + "COUNTERS:oid:0x5c0000000017a6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "268", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0380437 + }, + "COUNTERS:oid:0x5c000000001700": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0380578 + }, + "COUNTERS:oid:0x5c00000000266b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "143" + }, + "ttl": -0.001, + "expireat": 1651808848.0380726 + }, + "COUNTERS:oid:0x5c0000000021ff": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "435" + }, + "ttl": -0.001, + "expireat": 1651808848.0380838 + }, + "COUNTERS:oid:0x5c000000001be1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.038098 + }, + "COUNTERS:oid:0x5c000000001ec4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1321" + }, + "ttl": -0.001, + "expireat": 1651808848.0381093 + }, + "COUNTERS:oid:0x5c000000001622": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1281" + }, + "ttl": -0.001, + "expireat": 1651808848.0381327 + }, + "COUNTERS:oid:0x5c000000001dd9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "204" + }, + "ttl": -0.001, + "expireat": 1651808848.0381477 + }, + "COUNTERS:oid:0x5c000000001a73": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.038162 + }, + "COUNTERS:oid:0x5c000000002281": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "3" + }, + "ttl": -0.001, + "expireat": 1651808848.038174 + }, + "COUNTERS:oid:0x5c000000002655": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.038188 + }, + "COUNTERS:oid:0x5c000000001726": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.038202 + }, + "COUNTERS:oid:0x5c000000001e9c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "176", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0382378 + }, + "COUNTERS:oid:0x5c000000001929": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.0382516 + }, + "COUNTERS:oid:0x5c000000001adc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.038266 + }, + "COUNTERS:oid:0x5c000000001db0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22" + }, + "ttl": -0.001, + "expireat": 1651808848.03828 + }, + "COUNTERS:oid:0x5c00000000148d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0382912 + }, + "COUNTERS:oid:0x5c000000001a15": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "186" + }, + "ttl": -0.001, + "expireat": 1651808848.0383048 + }, + "COUNTERS:oid:0x5c0000000014cd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0383162 + }, + "COUNTERS:oid:0x5c000000001d74": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "121" + }, + "ttl": -0.001, + "expireat": 1651808848.0383272 + }, + "COUNTERS:oid:0x5c0000000014e8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "19" + }, + "ttl": -0.001, + "expireat": 1651808848.0383413 + }, + "COUNTERS:oid:0x5c00000000168c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.038353 + }, + "COUNTERS:oid:0x5c000000001989": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0383668 + }, + "COUNTERS:oid:0x5c0000000023ce": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0383816 + }, + "COUNTERS:oid:0x5c0000000017ef": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1302" + }, + "ttl": -0.001, + "expireat": 1651808848.0383928 + }, + "COUNTERS:oid:0x5c000000001a9b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0384037 + }, + "COUNTERS:oid:0x5c000000001a55": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "110", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0384178 + }, + "COUNTERS:oid:0x5c0000000015da": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1253" + }, + "ttl": -0.001, + "expireat": 1651808848.0384293 + }, + "COUNTERS:oid:0x5c000000001e3d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.038443 + }, + "COUNTERS:oid:0x5c000000001447": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0384543 + }, + "COUNTERS:oid:0x5c000000001cf2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "449" + }, + "ttl": -0.001, + "expireat": 1651808848.038465 + }, + "COUNTERS:oid:0x5c000000001e31": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0384789 + }, + "COUNTERS:oid:0x5c000000001bfd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.0385106 + }, + "COUNTERS:oid:0x5c000000001cea": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0385237 + }, + "COUNTERS:oid:0x5c000000001905": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0385556 + }, + "COUNTERS:oid:0x5c000000001cf3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "31", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0385702 + }, + "COUNTERS:oid:0x5c000000001ab9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.038584 + }, + "COUNTERS:oid:0x5c000000001c6f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0386128 + }, + "COUNTERS:oid:0x5c000000001ba9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "20" + }, + "ttl": -0.001, + "expireat": 1651808848.0386262 + }, + "COUNTERS:oid:0x5c000000001b2c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.038658 + }, + "COUNTERS:oid:0x5c0000000025bf": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0386724 + }, + "COUNTERS:oid:0x5c000000001ade": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0387046 + }, + "COUNTERS:oid:0x5c000000001428": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0387168 + }, + "COUNTERS:oid:0x5c0000000014ca": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0387313 + }, + "COUNTERS:oid:0x5c00000000169a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0387743 + }, + "COUNTERS:oid:0x5c00000000257c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0388205 + }, + "COUNTERS:oid:0x5c00000000160b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0388358 + }, + "COUNTERS:oid:0x5c000000002111": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "176", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0388513 + }, + "COUNTERS:oid:0x5c000000001a47": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13" + }, + "ttl": -0.001, + "expireat": 1651808848.0388672 + }, + "COUNTERS:oid:0x5c0000000014d8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0388827 + }, + "COUNTERS:oid:0x5c000000001c4f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.038935 + }, + "COUNTERS:oid:0x5c0000000019fc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1326" + }, + "ttl": -0.001, + "expireat": 1651808848.0389693 + }, + "COUNTERS:oid:0x5c000000002670": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1360", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0389817 + }, + "COUNTERS:oid:0x5c000000001ec7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0389962 + }, + "COUNTERS:oid:0x5c000000001e80": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "116" + }, + "ttl": -0.001, + "expireat": 1651808848.0390084 + }, + "COUNTERS:oid:0x5c000000001ee1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1299" + }, + "ttl": -0.001, + "expireat": 1651808848.0390363 + }, + "COUNTERS:oid:0x5c000000001a6b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "268" + }, + "ttl": -0.001, + "expireat": 1651808848.0390508 + }, + "COUNTERS:oid:0x5c000000001a1a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.0390809 + }, + "COUNTERS:oid:0x5c000000001a8b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0391126 + }, + "COUNTERS:oid:0x5c000000001d36": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0391417 + }, + "COUNTERS:oid:0x5c000000001385": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0391524 + }, + "COUNTERS:oid:0x5c000000002437": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0391793 + }, + "COUNTERS:oid:0x5c00000000184a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0391932 + }, + "COUNTERS:oid:0x5c000000001716": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "301" + }, + "ttl": -0.001, + "expireat": 1651808848.0392072 + }, + "COUNTERS:oid:0x5c0000000015f5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "307", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0392215 + }, + "COUNTERS:oid:0x5c00000000243d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "156", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0393317 + }, + "COUNTERS:oid:0x5c00000000257f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0393486 + }, + "COUNTERS:oid:0x5c000000002650": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1276", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0393612 + }, + "COUNTERS:oid:0x5c0000000016e2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.039373 + }, + "COUNTERS:oid:0x5c000000001906": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0393846 + }, + "COUNTERS:oid:0x5c0000000025d3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "173" + }, + "ttl": -0.001, + "expireat": 1651808848.0393994 + }, + "COUNTERS:oid:0x5c00000000243e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.039455 + }, + "COUNTERS:oid:0x5c000000002332": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "5", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0394692 + }, + "COUNTERS:oid:0x5c0000000023f5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0394843 + }, + "COUNTERS:oid:0x5c0000000017ce": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "107" + }, + "ttl": -0.001, + "expireat": 1651808848.039499 + }, + "COUNTERS:oid:0x5c000000002464": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "158" + }, + "ttl": -0.001, + "expireat": 1651808848.0395133 + }, + "COUNTERS:oid:0x5c0000000016b2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1242" + }, + "ttl": -0.001, + "expireat": 1651808848.0395248 + }, + "COUNTERS:oid:0x5c0000000015cd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0395539 + }, + "COUNTERS:oid:0x5c00000000240f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.039566 + }, + "COUNTERS:oid:0x5c000000002145": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "261", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0395806 + }, + "COUNTERS:oid:0x5c000000001d9a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "256" + }, + "ttl": -0.001, + "expireat": 1651808848.0395956 + }, + "COUNTERS:oid:0x5c0000000025af": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0396264 + }, + "COUNTERS:oid:0x5c000000001b84": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "20" + }, + "ttl": -0.001, + "expireat": 1651808848.0396407 + }, + "COUNTERS:oid:0x5c0000000019c7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22" + }, + "ttl": -0.001, + "expireat": 1651808848.039666 + }, + "COUNTERS:oid:0x5c0000000018ad": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "313", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0396807 + }, + "COUNTERS:oid:0x5c00000000177e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "20", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0396948 + }, + "COUNTERS:oid:0x5c000000001c02": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "266" + }, + "ttl": -0.001, + "expireat": 1651808848.0397089 + }, + "COUNTERS:oid:0x5c000000002104": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0397203 + }, + "COUNTERS:oid:0x5c000000001588": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1410", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0397558 + }, + "COUNTERS:oid:0x5c000000001e24": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "190", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0397725 + }, + "COUNTERS:oid:0x5c0000000014d1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11990" + }, + "ttl": -0.001, + "expireat": 1651808848.039797 + }, + "COUNTERS:oid:0x5c000000001822": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0398118 + }, + "COUNTERS:oid:0x5c000000001c5a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.0398233 + }, + "COUNTERS:oid:0x5c00000000183d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "96" + }, + "ttl": -0.001, + "expireat": 1651808848.0398343 + }, + "COUNTERS:oid:0x5c000000001d34": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0398452 + }, + "COUNTERS:oid:0x5c000000001487": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11976" + }, + "ttl": -0.001, + "expireat": 1651808848.039859 + }, + "COUNTERS:oid:0x5c0000000023db": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0398703 + }, + "COUNTERS:oid:0x5c0000000016ef": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "20" + }, + "ttl": -0.001, + "expireat": 1651808848.0398815 + }, + "COUNTERS:oid:0x5c000000001ae6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0399134 + }, + "COUNTERS:oid:0x5c000000001add": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0399256 + }, + "COUNTERS:oid:0x5c000000001caa": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "27", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0399368 + }, + "COUNTERS:oid:0x5c000000001637": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "218" + }, + "ttl": -0.001, + "expireat": 1651808848.039951 + }, + "COUNTERS:oid:0x5c000000001cc5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0399632 + }, + "COUNTERS:oid:0x5c0000000016b0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0399742 + }, + "COUNTERS:oid:0x5c00000000262d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0399883 + }, + "COUNTERS:oid:0x5c0000000015ec": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "24", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.04 + }, + "COUNTERS:oid:0x5c0000000013b5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.040032 + }, + "COUNTERS:oid:0x5c000000002562": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "177", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0400438 + }, + "COUNTERS:oid:0x5c000000001e40": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "466" + }, + "ttl": -0.001, + "expireat": 1651808848.0400553 + }, + "COUNTERS:oid:0x5c0000000017b1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.041949 + }, + "COUNTERS:oid:0x5c000000001b6e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "286" + }, + "ttl": -0.001, + "expireat": 1651808848.0419736 + }, + "COUNTERS:oid:0x5c000000001e78": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "171" + }, + "ttl": -0.001, + "expireat": 1651808848.0419888 + }, + "COUNTERS:oid:0x5c000000001a3f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0420046 + }, + "COUNTERS:oid:0x5c00000000258b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0420172 + }, + "COUNTERS:oid:0x5c000000001f57": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "311" + }, + "ttl": -0.001, + "expireat": 1651808848.0420322 + }, + "COUNTERS:oid:0x5c00000000254b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13" + }, + "ttl": -0.001, + "expireat": 1651808848.0420475 + }, + "COUNTERS:oid:0x5c000000001725": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.04206 + }, + "COUNTERS:oid:0x5c0000000025ec": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "179" + }, + "ttl": -0.001, + "expireat": 1651808848.0420716 + }, + "COUNTERS:oid:0x5c000000001deb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "185" + }, + "ttl": -0.001, + "expireat": 1651808848.042083 + }, + "COUNTERS:oid:0x5c000000001a25": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0420947 + }, + "COUNTERS:oid:0x5c000000001d96": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0421097 + }, + "COUNTERS:oid:0x5c000000001c32": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0421216 + }, + "COUNTERS:oid:0x5c000000001601": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "182", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0421367 + }, + "COUNTERS:oid:0x5c000000002163": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "177", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0421515 + }, + "COUNTERS:oid:0x5c000000001b28": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.042166 + }, + "COUNTERS:oid:0x5c0000000021ec": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "320" + }, + "ttl": -0.001, + "expireat": 1651808848.0421808 + }, + "COUNTERS:oid:0x5c000000001806": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "86", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.042196 + }, + "COUNTERS:oid:0x5c000000001b9f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0422108 + }, + "COUNTERS:oid:0x5c00000000193f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "180" + }, + "ttl": -0.001, + "expireat": 1651808848.0422647 + }, + "COUNTERS:oid:0x5c000000001a91": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1336" + }, + "ttl": -0.001, + "expireat": 1651808848.0422845 + }, + "COUNTERS:oid:0x5c000000001ea1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "17" + }, + "ttl": -0.001, + "expireat": 1651808848.0422976 + }, + "COUNTERS:oid:0x5c000000001a89": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1290" + }, + "ttl": -0.001, + "expireat": 1651808848.0423272 + }, + "COUNTERS:oid:0x5c0000000018ec": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "130", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.04236 + }, + "COUNTERS:oid:0x5c0000000023e7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "156", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0423734 + }, + "COUNTERS:oid:0x5c000000001f23": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22" + }, + "ttl": -0.001, + "expireat": 1651808848.042405 + }, + "COUNTERS:oid:0x5c00000000149f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1362" + }, + "ttl": -0.001, + "expireat": 1651808848.042417 + }, + "COUNTERS:oid:0x5c00000000261f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0424323 + }, + "COUNTERS:oid:0x5c000000001b4c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0424452 + }, + "COUNTERS:oid:0x5c000000002526": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1253" + }, + "ttl": -0.001, + "expireat": 1651808848.0424733 + }, + "COUNTERS:oid:0x5c000000001998": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.0424848 + }, + "COUNTERS:oid:0x5c00000000184c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0424995 + }, + "COUNTERS:oid:0x5c000000001869": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "181", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0425327 + }, + "COUNTERS:oid:0x5c000000001dcf": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "109" + }, + "ttl": -0.001, + "expireat": 1651808848.0425487 + }, + "COUNTERS:oid:0x5c000000001bca": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "36" + }, + "ttl": -0.001, + "expireat": 1651808848.0425644 + }, + "COUNTERS:oid:0x5c000000001485": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0425768 + }, + "COUNTERS:oid:0x5c0000000020da": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "179" + }, + "ttl": -0.001, + "expireat": 1651808848.0425923 + }, + "COUNTERS:oid:0x5c000000001e45": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "18", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0426085 + }, + "COUNTERS:oid:0x5c0000000013f3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1271" + }, + "ttl": -0.001, + "expireat": 1651808848.042641 + }, + "COUNTERS:oid:0x5c000000001876": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "20", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0426733 + }, + "COUNTERS:oid:0x5c0000000017ac": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0427935 + }, + "COUNTERS:oid:0x5c00000000255d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "302", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0428298 + }, + "COUNTERS:oid:0x5c000000001a3d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "266" + }, + "ttl": -0.001, + "expireat": 1651808848.0428467 + }, + "COUNTERS:oid:0x5c000000002338": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "49", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.042884 + }, + "COUNTERS:oid:0x5c000000001c94": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0428958 + }, + "COUNTERS:oid:0x5c0000000019e4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0429108 + }, + "COUNTERS:oid:0x5c0000000015bf": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0429256 + }, + "COUNTERS:oid:0x5c000000002152": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "177", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0429375 + }, + "COUNTERS:oid:0x5c00000000251a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "133", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0429487 + }, + "COUNTERS:oid:0x5c00000000250f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0429635 + }, + "COUNTERS:oid:0x5c000000001d20": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "199", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.042978 + }, + "COUNTERS:oid:0x5c000000001d81": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.042993 + }, + "COUNTERS:oid:0x5c000000002532": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "171" + }, + "ttl": -0.001, + "expireat": 1651808848.0430048 + }, + "COUNTERS:oid:0x5c0000000017d6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "129" + }, + "ttl": -0.001, + "expireat": 1651808848.0430193 + }, + "COUNTERS:oid:0x5c000000001932": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "18" + }, + "ttl": -0.001, + "expireat": 1651808848.043034 + }, + "COUNTERS:oid:0x5c000000001e4a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "200", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.043046 + }, + "COUNTERS:oid:0x5c000000001f35": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0430572 + }, + "COUNTERS:oid:0x5c000000001437": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0430892 + }, + "COUNTERS:oid:0x5c0000000015e4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0431068 + }, + "COUNTERS:oid:0x5c00000000252a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0431192 + }, + "COUNTERS:oid:0x5c000000001ee2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0431337 + }, + "COUNTERS:oid:0x5c0000000016f8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0431495 + }, + "COUNTERS:oid:0x5c00000000256a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0431616 + }, + "COUNTERS:oid:0x5c000000002335": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "5", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.043176 + }, + "COUNTERS:oid:0x5c000000001d3d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "32" + }, + "ttl": -0.001, + "expireat": 1651808848.0431907 + }, + "COUNTERS:oid:0x5c0000000025ad": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "306" + }, + "ttl": -0.001, + "expireat": 1651808848.0432057 + }, + "COUNTERS:oid:0x5c000000001dba": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.0432172 + }, + "COUNTERS:oid:0x5c000000001a52": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.0433064 + }, + "COUNTERS:oid:0x5c0000000015aa": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "18", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0433228 + }, + "COUNTERS:oid:0x5c000000002801": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "90191" + }, + "ttl": -0.001, + "expireat": 1651808848.0433385 + }, + "COUNTERS:oid:0x5c000000001e60": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0433547 + }, + "COUNTERS:oid:0x5c0000000023e9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1270", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.043367 + }, + "COUNTERS:oid:0x5c000000001dc9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0433817 + }, + "COUNTERS:oid:0x5c00000000163e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1282" + }, + "ttl": -0.001, + "expireat": 1651808848.0433943 + }, + "COUNTERS:oid:0x5c00000000197d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "16" + }, + "ttl": -0.001, + "expireat": 1651808848.0434062 + }, + "COUNTERS:oid:0x5c000000002177": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0434215 + }, + "COUNTERS:oid:0x5c0000000014ef": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1226" + }, + "ttl": -0.001, + "expireat": 1651808848.043456 + }, + "COUNTERS:oid:0x5c00000000255a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0434704 + }, + "COUNTERS:oid:0x5c000000002334": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "500", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.043482 + }, + "COUNTERS:oid:0x5c000000001b73": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.043494 + }, + "COUNTERS:oid:0x5c000000001f5e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "39" + }, + "ttl": -0.001, + "expireat": 1651808848.0435216 + }, + "COUNTERS:oid:0x5c0000000025c6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1273", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0435328 + }, + "COUNTERS:oid:0x5c000000001639": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "17", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0435479 + }, + "COUNTERS:oid:0x5c000000001970": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0435643 + }, + "COUNTERS:oid:0x5c0000000015a0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.043576 + }, + "COUNTERS:oid:0x5c000000002501": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "147" + }, + "ttl": -0.001, + "expireat": 1651808848.0435905 + }, + "COUNTERS:oid:0x5c0000000025e0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0436027 + }, + "COUNTERS:oid:0x5c000000001568": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1420" + }, + "ttl": -0.001, + "expireat": 1651808848.0436144 + }, + "COUNTERS:oid:0x5c0000000013d6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "309", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0436287 + }, + "COUNTERS:oid:0x5c000000001a43": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175" + }, + "ttl": -0.001, + "expireat": 1651808848.0436437 + }, + "COUNTERS:oid:0x5c0000000018b8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0436554 + }, + "COUNTERS:oid:0x5c000000001abd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0436697 + }, + "COUNTERS:oid:0x5c000000001c22": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "15" + }, + "ttl": -0.001, + "expireat": 1651808848.0436814 + }, + "COUNTERS:oid:0x5c0000000018fe": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "181" + }, + "ttl": -0.001, + "expireat": 1651808848.0436933 + }, + "COUNTERS:oid:0x5c000000001d77": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.0437076 + }, + "COUNTERS:oid:0x5c000000001633": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "27" + }, + "ttl": -0.001, + "expireat": 1651808848.0437224 + }, + "COUNTERS:oid:0x5c0000000014c9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11615" + }, + "ttl": -0.001, + "expireat": 1651808848.043734 + }, + "COUNTERS:oid:0x5c000000001a7c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "449" + }, + "ttl": -0.001, + "expireat": 1651808848.0437639 + }, + "COUNTERS:oid:0x5c0000000020d9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.043781 + }, + "COUNTERS:oid:0x5c00000000247c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "160", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0437968 + }, + "COUNTERS:oid:0x5c000000001c3f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22" + }, + "ttl": -0.001, + "expireat": 1651808848.0438087 + }, + "COUNTERS:oid:0x5c000000001c3b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "27" + }, + "ttl": -0.001, + "expireat": 1651808848.0438318 + }, + "COUNTERS:oid:0x5c00000000158f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "298", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0438466 + }, + "COUNTERS:oid:0x5c000000001e89": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "102", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0438616 + }, + "COUNTERS:oid:0x5c0000000020ee": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1204" + }, + "ttl": -0.001, + "expireat": 1651808848.0438735 + }, + "COUNTERS:oid:0x5c0000000026f1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "7", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0438848 + }, + "COUNTERS:oid:0x5c000000002149": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0438993 + }, + "COUNTERS:oid:0x5c000000001993": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0439258 + }, + "COUNTERS:oid:0x5c000000001f34": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0439594 + }, + "COUNTERS:oid:0x5c00000000159a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.043971 + }, + "COUNTERS:oid:0x5c000000001610": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "18" + }, + "ttl": -0.001, + "expireat": 1651808848.043999 + }, + "COUNTERS:oid:0x5c000000002438": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "299" + }, + "ttl": -0.001, + "expireat": 1651808848.0440137 + }, + "COUNTERS:oid:0x5c0000000024f8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0440288 + }, + "COUNTERS:oid:0x5c0000000020c5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1273" + }, + "ttl": -0.001, + "expireat": 1651808848.0440438 + }, + "COUNTERS:oid:0x5c000000001cdd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0440586 + }, + "COUNTERS:oid:0x5c000000001bc8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "99", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0440938 + }, + "COUNTERS:oid:0x5c000000001b58": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0441256 + }, + "COUNTERS:oid:0x5c00000000179a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "87", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0441525 + }, + "COUNTERS:oid:0x5c000000001dff": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "197" + }, + "ttl": -0.001, + "expireat": 1651808848.0441682 + }, + "COUNTERS:oid:0x5c000000002475": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "142", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.04418 + }, + "COUNTERS:oid:0x5c000000001df1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.0441918 + }, + "COUNTERS:oid:0x5c000000001c15": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "29", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.044206 + }, + "COUNTERS:oid:0x5c00000000208e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1520" + }, + "ttl": -0.001, + "expireat": 1651808848.0442178 + }, + "COUNTERS:oid:0x5c0000000018b6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.044229 + }, + "COUNTERS:oid:0x5c00000000156c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "179" + }, + "ttl": -0.001, + "expireat": 1651808848.0442407 + }, + "COUNTERS:oid:0x5c000000001ef7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.044252 + }, + "COUNTERS:oid:0x5c000000001d42": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "23", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0442631 + }, + "COUNTERS:oid:0x5c000000002665": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0442777 + }, + "COUNTERS:oid:0x5c000000001ced": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0442924 + }, + "COUNTERS:oid:0x5c000000001bb1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1301" + }, + "ttl": -0.001, + "expireat": 1651808848.0443041 + }, + "COUNTERS:oid:0x5c000000001a45": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "294" + }, + "ttl": -0.001, + "expireat": 1651808848.0443184 + }, + "COUNTERS:oid:0x5c00000000194a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.04433 + }, + "COUNTERS:oid:0x5c000000001c1f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "275" + }, + "ttl": -0.001, + "expireat": 1651808848.0443447 + }, + "COUNTERS:oid:0x5c00000000242b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1265" + }, + "ttl": -0.001, + "expireat": 1651808848.044356 + }, + "COUNTERS:oid:0x5c00000000182b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "359", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0443676 + }, + "COUNTERS:oid:0x5c000000001dbf": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "276", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0443928 + }, + "COUNTERS:oid:0x5c00000000192b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0444245 + }, + "COUNTERS:oid:0x5c000000001ffb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0444374 + }, + "COUNTERS:oid:0x5c000000001f37": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.044449 + }, + "COUNTERS:oid:0x5c0000000016ba": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0444605 + }, + "COUNTERS:oid:0x5c000000001ed2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0444717 + }, + "COUNTERS:oid:0x5c000000002427": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0444834 + }, + "COUNTERS:oid:0x5c000000002734": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "200" + }, + "ttl": -0.001, + "expireat": 1651808848.0444946 + }, + "COUNTERS:oid:0x5c000000002439": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1279" + }, + "ttl": -0.001, + "expireat": 1651808848.0445056 + }, + "COUNTERS:oid:0x5c00000000198f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0445204 + }, + "COUNTERS:oid:0x5c000000001708": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.044536 + }, + "COUNTERS:oid:0x5c000000001ee5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0445476 + }, + "COUNTERS:oid:0x5c0000000018e2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "103" + }, + "ttl": -0.001, + "expireat": 1651808848.0445623 + }, + "COUNTERS:oid:0x5c0000000013f4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0445776 + }, + "COUNTERS:oid:0x5c00000000241a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0445929 + }, + "COUNTERS:oid:0x5c000000001dd2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "24", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.044605 + }, + "COUNTERS:oid:0x5c0000000025a2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.044635 + }, + "COUNTERS:oid:0x5c000000001cbe": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13" + }, + "ttl": -0.001, + "expireat": 1651808848.0446494 + }, + "COUNTERS:oid:0x5c000000001fe6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13" + }, + "ttl": -0.001, + "expireat": 1651808848.044664 + }, + "COUNTERS:oid:0x5c000000002635": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.044678 + }, + "COUNTERS:oid:0x5c0000000014c4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "19" + }, + "ttl": -0.001, + "expireat": 1651808848.0446925 + }, + "COUNTERS:oid:0x5c00000000176b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "135" + }, + "ttl": -0.001, + "expireat": 1651808848.0447218 + }, + "COUNTERS:oid:0x5c00000000173f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "159" + }, + "ttl": -0.001, + "expireat": 1651808848.044735 + }, + "COUNTERS:oid:0x5c000000002304": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "469", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0447462 + }, + "COUNTERS:oid:0x5c0000000024fa": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "130" + }, + "ttl": -0.001, + "expireat": 1651808848.0447574 + }, + "COUNTERS:oid:0x5c000000001ea9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0447686 + }, + "COUNTERS:oid:0x5c000000001c0a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.044783 + }, + "COUNTERS:oid:0x5c000000001c4c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "179" + }, + "ttl": -0.001, + "expireat": 1651808848.0447946 + }, + "COUNTERS:oid:0x5c000000001a1c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0448086 + }, + "COUNTERS:oid:0x5c000000002630": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1285", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0448203 + }, + "COUNTERS:oid:0x5c000000001426": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0448346 + }, + "COUNTERS:oid:0x5c0000000018f4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0448458 + }, + "COUNTERS:oid:0x5c00000000193a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1299" + }, + "ttl": -0.001, + "expireat": 1651808848.044857 + }, + "COUNTERS:oid:0x5c0000000020b7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0448709 + }, + "COUNTERS:oid:0x5c000000001791": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0448823 + }, + "COUNTERS:oid:0x5c000000001af0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "20" + }, + "ttl": -0.001, + "expireat": 1651808848.0448961 + }, + "COUNTERS:oid:0x5c00000000181f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "185" + }, + "ttl": -0.001, + "expireat": 1651808848.0449076 + }, + "COUNTERS:oid:0x5c0000000019e2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0449212 + }, + "COUNTERS:oid:0x5c0000000018c4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "20" + }, + "ttl": -0.001, + "expireat": 1651808848.0449326 + }, + "COUNTERS:oid:0x5c0000000025b2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0449467 + }, + "COUNTERS:oid:0x5c000000001471": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0449586 + }, + "COUNTERS:oid:0x5c000000001ea6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0450222 + }, + "COUNTERS:oid:0x5c00000000242c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "139", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0450613 + }, + "COUNTERS:oid:0x5c0000000015b4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0450754 + }, + "COUNTERS:oid:0x5c000000002164": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "177", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0451033 + }, + "COUNTERS:oid:0x5c00000000210d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "305" + }, + "ttl": -0.001, + "expireat": 1651808848.0451171 + }, + "COUNTERS:oid:0x5c000000001383": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1387", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0451317 + }, + "COUNTERS:oid:0x5c0000000016d0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "94" + }, + "ttl": -0.001, + "expireat": 1651808848.0451434 + }, + "COUNTERS:oid:0x5c000000002328": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "49", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0451717 + }, + "COUNTERS:oid:0x5c0000000026dc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0451858 + }, + "COUNTERS:oid:0x5c000000002565": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "301" + }, + "ttl": -0.001, + "expireat": 1651808848.0452003 + }, + "COUNTERS:oid:0x5c0000000023cd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "99" + }, + "ttl": -0.001, + "expireat": 1651808848.0452123 + }, + "COUNTERS:oid:0x5c000000001d54": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0452416 + }, + "COUNTERS:oid:0x5c000000002327": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "38", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0452573 + }, + "COUNTERS:oid:0x5c0000000016d7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "182" + }, + "ttl": -0.001, + "expireat": 1651808848.045288 + }, + "COUNTERS:oid:0x5c000000001cc4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0453026 + }, + "COUNTERS:oid:0x5c000000001c2d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "186", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0453172 + }, + "COUNTERS:oid:0x5c000000001b9e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0453289 + }, + "COUNTERS:oid:0x5c000000001f0c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "133" + }, + "ttl": -0.001, + "expireat": 1651808848.0453396 + }, + "COUNTERS:oid:0x5c000000001621": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "311" + }, + "ttl": -0.001, + "expireat": 1651808848.0453537 + }, + "COUNTERS:oid:0x5c000000001c82": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "106" + }, + "ttl": -0.001, + "expireat": 1651808848.0454154 + }, + "COUNTERS:oid:0x5c000000001e82": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0454304 + }, + "COUNTERS:oid:0x5c000000001ab1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.045445 + }, + "COUNTERS:oid:0x5c0000000016d4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.045456 + }, + "COUNTERS:oid:0x5c00000000241f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.045467 + }, + "COUNTERS:oid:0x5c000000001d4f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175" + }, + "ttl": -0.001, + "expireat": 1651808848.0454957 + }, + "COUNTERS:oid:0x5c00000000247f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0455072 + }, + "COUNTERS:oid:0x5c000000001390": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0455213 + }, + "COUNTERS:oid:0x5c000000002336": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "5", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0455332 + }, + "COUNTERS:oid:0x5c0000000016c3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "23", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0455477 + }, + "COUNTERS:oid:0x5c000000002735": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "160" + }, + "ttl": -0.001, + "expireat": 1651808848.0455632 + }, + "COUNTERS:oid:0x5c0000000023ee": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13" + }, + "ttl": -0.001, + "expireat": 1651808848.0455935 + }, + "COUNTERS:oid:0x5c000000001f17": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0456073 + }, + "COUNTERS:oid:0x5c000000001629": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0456219 + }, + "COUNTERS:oid:0x5c000000001d18": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "34", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.045636 + }, + "COUNTERS:oid:0x5c000000001388": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0456505 + }, + "COUNTERS:oid:0x5c00000000277a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.045662 + }, + "COUNTERS:oid:0x5c00000000227e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "25" + }, + "ttl": -0.001, + "expireat": 1651808848.045676 + }, + "COUNTERS:oid:0x5c000000001a8e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "176" + }, + "ttl": -0.001, + "expireat": 1651808848.0457482 + }, + "COUNTERS:oid:0x5c0000000016d2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.0457637 + }, + "COUNTERS:oid:0x5c00000000254d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "297" + }, + "ttl": -0.001, + "expireat": 1651808848.0457785 + }, + "COUNTERS:oid:0x5c000000002525": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "296" + }, + "ttl": -0.001, + "expireat": 1651808848.0457933 + }, + "COUNTERS:oid:0x5c000000001d27": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0458078 + }, + "COUNTERS:oid:0x5c0000000015f2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "23", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.04582 + }, + "COUNTERS:oid:0x5c000000001f4c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "198", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0458343 + }, + "COUNTERS:oid:0x5c0000000016be": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.045846 + }, + "COUNTERS:oid:0x5c000000001bee": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "426", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0458572 + }, + "COUNTERS:oid:0x5c000000001b51": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0458717 + }, + "COUNTERS:oid:0x5c00000000160c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.0458834 + }, + "COUNTERS:oid:0x5c000000001ea2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0458977 + }, + "COUNTERS:oid:0x5c000000001dc1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.045912 + }, + "COUNTERS:oid:0x5c000000001da1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "121" + }, + "ttl": -0.001, + "expireat": 1651808848.0459232 + }, + "COUNTERS:oid:0x5c000000001cc2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "115" + }, + "ttl": -0.001, + "expireat": 1651808848.0459378 + }, + "COUNTERS:oid:0x5c000000001d2e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0459492 + }, + "COUNTERS:oid:0x5c0000000017b3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0459604 + }, + "COUNTERS:oid:0x5c0000000020ff": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0459745 + }, + "COUNTERS:oid:0x5c000000001ff0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "265", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.045989 + }, + "COUNTERS:oid:0x5c000000001e06": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.046046 + }, + "COUNTERS:oid:0x5c000000001a7e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "21" + }, + "ttl": -0.001, + "expireat": 1651808848.046061 + }, + "COUNTERS:oid:0x5c000000002561": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "137", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0460753 + }, + "COUNTERS:oid:0x5c000000002056": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "171" + }, + "ttl": -0.001, + "expireat": 1651808848.0460877 + }, + "COUNTERS:oid:0x5c00000000195e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "297" + }, + "ttl": -0.001, + "expireat": 1651808848.0461018 + }, + "COUNTERS:oid:0x5c000000001ede": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "200", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0461311 + }, + "COUNTERS:oid:0x5c000000001403": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1199" + }, + "ttl": -0.001, + "expireat": 1651808848.0461428 + }, + "COUNTERS:oid:0x5c000000001937": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "181" + }, + "ttl": -0.001, + "expireat": 1651808848.046154 + }, + "COUNTERS:oid:0x5c000000001903": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0461688 + }, + "COUNTERS:oid:0x5c000000001693": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.046184 + }, + "COUNTERS:oid:0x5c00000000136a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.046215 + }, + "COUNTERS:oid:0x5c000000002019": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1727" + }, + "ttl": -0.001, + "expireat": 1651808848.0462267 + }, + "COUNTERS:oid:0x5c000000001b50": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "119" + }, + "ttl": -0.001, + "expireat": 1651808848.0462377 + }, + "COUNTERS:oid:0x5c000000001f3a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0462701 + }, + "COUNTERS:oid:0x5c0000000025e5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "303" + }, + "ttl": -0.001, + "expireat": 1651808848.0462856 + }, + "COUNTERS:oid:0x5c000000002055": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "206" + }, + "ttl": -0.001, + "expireat": 1651808848.0463006 + }, + "COUNTERS:oid:0x5c0000000019f3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "270" + }, + "ttl": -0.001, + "expireat": 1651808848.0463164 + }, + "COUNTERS:oid:0x5c000000001b24": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "283" + }, + "ttl": -0.001, + "expireat": 1651808848.0463314 + }, + "COUNTERS:oid:0x5c0000000025b4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "176" + }, + "ttl": -0.001, + "expireat": 1651808848.0464015 + }, + "COUNTERS:oid:0x5c000000001908": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "439" + }, + "ttl": -0.001, + "expireat": 1651808848.0464163 + }, + "COUNTERS:oid:0x5c000000001813": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1306" + }, + "ttl": -0.001, + "expireat": 1651808848.046428 + }, + "COUNTERS:oid:0x5c000000001b9b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0464427 + }, + "COUNTERS:oid:0x5c000000001be4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "166" + }, + "ttl": -0.001, + "expireat": 1651808848.0464559 + }, + "COUNTERS:oid:0x5c0000000016bc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0464668 + }, + "COUNTERS:oid:0x5c0000000016bf": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0464814 + }, + "COUNTERS:oid:0x5c000000002279": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13" + }, + "ttl": -0.001, + "expireat": 1651808848.0464935 + }, + "COUNTERS:oid:0x5c0000000023fb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0465045 + }, + "COUNTERS:oid:0x5c000000001b68": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.046519 + }, + "COUNTERS:oid:0x5c00000000213f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0465333 + }, + "COUNTERS:oid:0x5c000000001b69": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0465453 + }, + "COUNTERS:oid:0x5c000000002773": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "306" + }, + "ttl": -0.001, + "expireat": 1651808848.0465593 + }, + "COUNTERS:oid:0x5c000000002114": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "179" + }, + "ttl": -0.001, + "expireat": 1651808848.0465705 + }, + "COUNTERS:oid:0x5c000000001fd4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1103" + }, + "ttl": -0.001, + "expireat": 1651808848.0465848 + }, + "COUNTERS:oid:0x5c0000000013d7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1352" + }, + "ttl": -0.001, + "expireat": 1651808848.0466142 + }, + "COUNTERS:oid:0x5c000000001539": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "141" + }, + "ttl": -0.001, + "expireat": 1651808848.0466287 + }, + "COUNTERS:oid:0x5c000000001eab": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.0466404 + }, + "COUNTERS:oid:0x5c0000000019d3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0466518 + }, + "COUNTERS:oid:0x5c000000001a59": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "24", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0466793 + }, + "COUNTERS:oid:0x5c000000001c6a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "237", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0466936 + }, + "COUNTERS:oid:0x5c0000000019d1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.046776 + }, + "COUNTERS:oid:0x5c0000000023f2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.046794 + }, + "COUNTERS:oid:0x5c0000000018cd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.0468066 + }, + "COUNTERS:oid:0x5c000000001412": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0468214 + }, + "COUNTERS:oid:0x5c000000001f07": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0468364 + }, + "COUNTERS:oid:0x5c000000001acc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0468483 + }, + "COUNTERS:oid:0x5c000000001ae4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0468717 + }, + "COUNTERS:oid:0x5c0000000020b9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "179" + }, + "ttl": -0.001, + "expireat": 1651808848.0468864 + }, + "COUNTERS:oid:0x5c000000001911": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "203", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0469015 + }, + "COUNTERS:oid:0x5c000000001892": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0469167 + }, + "COUNTERS:oid:0x5c0000000014d4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0469444 + }, + "COUNTERS:oid:0x5c0000000019cb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "123" + }, + "ttl": -0.001, + "expireat": 1651808848.0469596 + }, + "COUNTERS:oid:0x5c0000000022f6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "5" + }, + "ttl": -0.001, + "expireat": 1651808848.0469716 + }, + "COUNTERS:oid:0x5c000000001e50": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0469866 + }, + "COUNTERS:oid:0x5c00000000192c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "92", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0470014 + }, + "COUNTERS:oid:0x5c000000002572": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.047013 + }, + "COUNTERS:oid:0x5c000000002668": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1243", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0470247 + }, + "COUNTERS:oid:0x5c000000001ff2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.047039 + }, + "COUNTERS:oid:0x5c000000001900": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0470707 + }, + "COUNTERS:oid:0x5c0000000014a2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11688" + }, + "ttl": -0.001, + "expireat": 1651808848.0470874 + }, + "COUNTERS:oid:0x5c000000001afa": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0470994 + }, + "COUNTERS:oid:0x5c000000001666": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.047111 + }, + "COUNTERS:oid:0x5c000000001917": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.047122 + }, + "COUNTERS:oid:0x5c000000001c54": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "177" + }, + "ttl": -0.001, + "expireat": 1651808848.0471332 + }, + "COUNTERS:oid:0x5c0000000016a3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "212" + }, + "ttl": -0.001, + "expireat": 1651808848.0471473 + }, + "COUNTERS:oid:0x5c0000000017a7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1314" + }, + "ttl": -0.001, + "expireat": 1651808848.047159 + }, + "COUNTERS:oid:0x5c000000001369": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0471702 + }, + "COUNTERS:oid:0x5c000000001401": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0471811 + }, + "COUNTERS:oid:0x5c0000000020e6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1233" + }, + "ttl": -0.001, + "expireat": 1651808848.0472105 + }, + "COUNTERS:oid:0x5c0000000017b5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "120" + }, + "ttl": -0.001, + "expireat": 1651808848.0472214 + }, + "COUNTERS:oid:0x5c000000001f31": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175" + }, + "ttl": -0.001, + "expireat": 1651808848.0473077 + }, + "COUNTERS:oid:0x5c000000002456": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0473413 + }, + "COUNTERS:oid:0x5c000000001a04": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0473535 + }, + "COUNTERS:oid:0x5c00000000172e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "69" + }, + "ttl": -0.001, + "expireat": 1651808848.0473676 + }, + "COUNTERS:oid:0x5c000000001e7f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "185" + }, + "ttl": -0.001, + "expireat": 1651808848.047383 + }, + "COUNTERS:oid:0x5c000000001709": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.0474148 + }, + "COUNTERS:oid:0x5c000000001478": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "19" + }, + "ttl": -0.001, + "expireat": 1651808848.047429 + }, + "COUNTERS:oid:0x5c00000000165e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0474584 + }, + "COUNTERS:oid:0x5c000000001ec1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0474732 + }, + "COUNTERS:oid:0x5c0000000017e2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "79" + }, + "ttl": -0.001, + "expireat": 1651808848.047527 + }, + "COUNTERS:oid:0x5c0000000017fb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.047541 + }, + "COUNTERS:oid:0x5c000000002006": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0475554 + }, + "COUNTERS:oid:0x5c00000000258e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1249", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0475671 + }, + "COUNTERS:oid:0x5c000000001967": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1346" + }, + "ttl": -0.001, + "expireat": 1651808848.0475783 + }, + "COUNTERS:oid:0x5c000000001a5c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22" + }, + "ttl": -0.001, + "expireat": 1651808848.0475924 + }, + "COUNTERS:oid:0x5c000000001439": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "107" + }, + "ttl": -0.001, + "expireat": 1651808848.0476205 + }, + "COUNTERS:oid:0x5c000000002609": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0476358 + }, + "COUNTERS:oid:0x5c000000001ee9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1354" + }, + "ttl": -0.001, + "expireat": 1651808848.0476477 + }, + "COUNTERS:oid:0x5c000000001839": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0476592 + }, + "COUNTERS:oid:0x5c00000000169d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "66", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.047674 + }, + "COUNTERS:oid:0x5c0000000013f5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0476856 + }, + "COUNTERS:oid:0x5c0000000020fd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "299" + }, + "ttl": -0.001, + "expireat": 1651808848.0477164 + }, + "COUNTERS:oid:0x5c00000000144b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0477319 + }, + "COUNTERS:oid:0x5c000000001bc0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0477471 + }, + "COUNTERS:oid:0x5c0000000016af": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0477622 + }, + "COUNTERS:oid:0x5c0000000025ee": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1279", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0477743 + }, + "COUNTERS:oid:0x5c0000000023e0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "296", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0477889 + }, + "COUNTERS:oid:0x5c00000000245f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0478237 + }, + "COUNTERS:oid:0x5c0000000013ec": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "23" + }, + "ttl": -0.001, + "expireat": 1651808848.0478592 + }, + "COUNTERS:oid:0x5c0000000018ae": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1323" + }, + "ttl": -0.001, + "expireat": 1651808848.0478735 + }, + "COUNTERS:oid:0x5c0000000018ce": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0479069 + }, + "COUNTERS:oid:0x5c000000001747": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "139" + }, + "ttl": -0.001, + "expireat": 1651808848.0479352 + }, + "COUNTERS:oid:0x5c000000001b96": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0479481 + }, + "COUNTERS:oid:0x5c00000000262f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "303", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0479794 + }, + "COUNTERS:oid:0x5c0000000019bd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.048011 + }, + "COUNTERS:oid:0x5c000000002584": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "15" + }, + "ttl": -0.001, + "expireat": 1651808848.0480232 + }, + "COUNTERS:oid:0x5c000000001d71": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.048038 + }, + "COUNTERS:oid:0x5c000000001b63": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "196", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.048053 + }, + "COUNTERS:oid:0x5c000000001893": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.048065 + }, + "COUNTERS:oid:0x5c000000001a92": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "16" + }, + "ttl": -0.001, + "expireat": 1651808848.0480812 + }, + "COUNTERS:oid:0x5c0000000015d2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1237" + }, + "ttl": -0.001, + "expireat": 1651808848.048093 + }, + "COUNTERS:oid:0x5c0000000016a6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0481048 + }, + "COUNTERS:oid:0x5c000000001bbb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0481162 + }, + "COUNTERS:oid:0x5c000000001575": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13" + }, + "ttl": -0.001, + "expireat": 1651808848.0481277 + }, + "COUNTERS:oid:0x5c0000000025da": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0481393 + }, + "COUNTERS:oid:0x5c000000002400": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "299", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0481544 + }, + "COUNTERS:oid:0x5c000000001e53": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175" + }, + "ttl": -0.001, + "expireat": 1651808848.0481665 + }, + "COUNTERS:oid:0x5c000000001c9a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "15" + }, + "ttl": -0.001, + "expireat": 1651808848.048178 + }, + "COUNTERS:oid:0x5c0000000015b3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0481927 + }, + "COUNTERS:oid:0x5c00000000174f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0482254 + }, + "COUNTERS:oid:0x5c000000001afb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0482423 + }, + "COUNTERS:oid:0x5c00000000168a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.048255 + }, + "COUNTERS:oid:0x5c000000001b91": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "171" + }, + "ttl": -0.001, + "expireat": 1651808848.0482695 + }, + "COUNTERS:oid:0x5c000000001865": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0482845 + }, + "COUNTERS:oid:0x5c0000000017d9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0482967 + }, + "COUNTERS:oid:0x5c000000001db9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.048311 + }, + "COUNTERS:oid:0x5c000000001711": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "182" + }, + "ttl": -0.001, + "expireat": 1651808848.048323 + }, + "COUNTERS:oid:0x5c000000001b42": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1292" + }, + "ttl": -0.001, + "expireat": 1651808848.0483344 + }, + "COUNTERS:oid:0x5c000000001404": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0483496 + }, + "COUNTERS:oid:0x5c000000001cae": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "20", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.048362 + }, + "COUNTERS:oid:0x5c000000001662": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1286" + }, + "ttl": -0.001, + "expireat": 1651808848.0483735 + }, + "COUNTERS:oid:0x5c0000000017a1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "143" + }, + "ttl": -0.001, + "expireat": 1651808848.0483854 + }, + "COUNTERS:oid:0x5c000000001b78": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0484 + }, + "COUNTERS:oid:0x5c000000001dac": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "31", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0484152 + }, + "COUNTERS:oid:0x5c000000001848": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0484302 + }, + "COUNTERS:oid:0x5c0000000015b6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1342" + }, + "ttl": -0.001, + "expireat": 1651808848.048442 + }, + "COUNTERS:oid:0x5c000000001b7d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0484533 + }, + "COUNTERS:oid:0x5c000000001da6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0484684 + }, + "COUNTERS:oid:0x5c00000000156a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0484805 + }, + "COUNTERS:oid:0x5c000000001adf": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.04851 + }, + "COUNTERS:oid:0x5c000000002512": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13" + }, + "ttl": -0.001, + "expireat": 1651808848.048527 + }, + "COUNTERS:oid:0x5c0000000019d7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1292" + }, + "ttl": -0.001, + "expireat": 1651808848.0485399 + }, + "COUNTERS:oid:0x5c00000000213e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1286", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0485518 + }, + "COUNTERS:oid:0x5c0000000018dd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0485637 + }, + "COUNTERS:oid:0x5c0000000017bb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.048575 + }, + "COUNTERS:oid:0x5c000000001737": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "18" + }, + "ttl": -0.001, + "expireat": 1651808848.0485866 + }, + "COUNTERS:oid:0x5c000000001690": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "186", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0486014 + }, + "COUNTERS:oid:0x5c0000000013de": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.048617 + }, + "COUNTERS:oid:0x5c0000000023d4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "176", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0486326 + }, + "COUNTERS:oid:0x5c000000002517": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0486476 + }, + "COUNTERS:oid:0x5c000000001d98": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "171", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0486624 + }, + "COUNTERS:oid:0x5c000000001cca": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0486784 + }, + "COUNTERS:oid:0x5c0000000023d8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "303", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0486934 + }, + "COUNTERS:oid:0x5c0000000020f1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175" + }, + "ttl": -0.001, + "expireat": 1651808848.0487084 + }, + "COUNTERS:oid:0x5c000000001c52": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0487206 + }, + "COUNTERS:oid:0x5c000000001a41": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.048735 + }, + "COUNTERS:oid:0x5c000000001d7b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "182", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0487502 + }, + "COUNTERS:oid:0x5c0000000020e1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13" + }, + "ttl": -0.001, + "expireat": 1651808848.0497327 + }, + "COUNTERS:oid:0x5c000000001cad": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "18", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.049759 + }, + "COUNTERS:oid:0x5c0000000018d1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "176" + }, + "ttl": -0.001, + "expireat": 1651808848.0497742 + }, + "COUNTERS:oid:0x5c000000002765": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "42" + }, + "ttl": -0.001, + "expireat": 1651808848.0497906 + }, + "COUNTERS:oid:0x5c000000001a2f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0498035 + }, + "COUNTERS:oid:0x5c00000000184e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "91" + }, + "ttl": -0.001, + "expireat": 1651808848.0498195 + }, + "COUNTERS:oid:0x5c000000001e0c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0498352 + }, + "COUNTERS:oid:0x5c000000001afe": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "124" + }, + "ttl": -0.001, + "expireat": 1651808848.049848 + }, + "COUNTERS:oid:0x5c000000002637": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "303" + }, + "ttl": -0.001, + "expireat": 1651808848.0498784 + }, + "COUNTERS:oid:0x5c000000001a2b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.049892 + }, + "COUNTERS:oid:0x5c000000001851": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "20", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0499253 + }, + "COUNTERS:oid:0x5c000000001c63": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0499415 + }, + "COUNTERS:oid:0x5c000000001923": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "112" + }, + "ttl": -0.001, + "expireat": 1651808848.049954 + }, + "COUNTERS:oid:0x5c0000000020a6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1290" + }, + "ttl": -0.001, + "expireat": 1651808848.0499663 + }, + "COUNTERS:oid:0x5c000000001483": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "297" + }, + "ttl": -0.001, + "expireat": 1651808848.0499816 + }, + "COUNTERS:oid:0x5c000000001e39": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0499978 + }, + "COUNTERS:oid:0x5c000000001ed9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22" + }, + "ttl": -0.001, + "expireat": 1651808848.0500143 + }, + "COUNTERS:oid:0x5c000000001431": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1305", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0500274 + }, + "COUNTERS:oid:0x5c0000000013e4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "219", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.050057 + }, + "COUNTERS:oid:0x5c00000000263e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0500927 + }, + "COUNTERS:oid:0x5c000000001f5d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "41", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.050111 + }, + "COUNTERS:oid:0x5c0000000018fb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "16", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0501273 + }, + "COUNTERS:oid:0x5c000000001e93": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "201", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.050143 + }, + "COUNTERS:oid:0x5c0000000017dd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0501556 + }, + "COUNTERS:oid:0x5c000000001e02": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "229", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0501711 + }, + "COUNTERS:oid:0x5c0000000025ef": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0501876 + }, + "COUNTERS:oid:0x5c00000000258f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0502572 + }, + "COUNTERS:oid:0x5c000000001efb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "25", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.050286 + }, + "COUNTERS:oid:0x5c000000001658": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "24", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0502982 + }, + "COUNTERS:oid:0x5c000000001493": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.050313 + }, + "COUNTERS:oid:0x5c00000000210e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1264" + }, + "ttl": -0.001, + "expireat": 1651808848.0503252 + }, + "COUNTERS:oid:0x5c000000001c88": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "18", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0503402 + }, + "COUNTERS:oid:0x5c0000000015c3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0503552 + }, + "COUNTERS:oid:0x5c0000000013ba": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0503712 + }, + "COUNTERS:oid:0x5c000000001dec": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.050386 + }, + "COUNTERS:oid:0x5c000000001a0a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0503979 + }, + "COUNTERS:oid:0x5c000000001591": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0504131 + }, + "COUNTERS:oid:0x5c000000001c75": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0560358 + }, + "COUNTERS:oid:0x5c000000001805": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0561626 + }, + "COUNTERS:oid:0x5c000000002781": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "6", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0561829 + }, + "COUNTERS:oid:0x5c000000002123": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0562165 + }, + "COUNTERS:oid:0x5c0000000020bc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "15" + }, + "ttl": -0.001, + "expireat": 1651808848.0562294 + }, + "COUNTERS:oid:0x5c000000002477": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "15" + }, + "ttl": -0.001, + "expireat": 1651808848.056242 + }, + "COUNTERS:oid:0x5c0000000025d0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0562847 + }, + "COUNTERS:oid:0x5c0000000025ac": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "178", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.056298 + }, + "COUNTERS:oid:0x5c000000002769": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0563097 + }, + "COUNTERS:oid:0x5c000000001445": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1272" + }, + "ttl": -0.001, + "expireat": 1651808848.056322 + }, + "COUNTERS:oid:0x5c00000000260a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.056334 + }, + "COUNTERS:oid:0x5c0000000016ac": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "179", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0563498 + }, + "COUNTERS:oid:0x5c0000000019cc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "198" + }, + "ttl": -0.001, + "expireat": 1651808848.0563624 + }, + "COUNTERS:oid:0x5c00000000213c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0563745 + }, + "COUNTERS:oid:0x5c000000002173": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "179" + }, + "ttl": -0.001, + "expireat": 1651808848.0564055 + }, + "COUNTERS:oid:0x5c0000000023ea": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0564544 + }, + "COUNTERS:oid:0x5c000000002616": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.056471 + }, + "COUNTERS:oid:0x5c0000000022fe": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "5", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.056528 + }, + "COUNTERS:oid:0x5c000000001594": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "967" + }, + "ttl": -0.001, + "expireat": 1651808848.0565405 + }, + "COUNTERS:oid:0x5c00000000187d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "132", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0565555 + }, + "COUNTERS:oid:0x5c000000001dab": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "407", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.056568 + }, + "COUNTERS:oid:0x5c00000000187a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "18" + }, + "ttl": -0.001, + "expireat": 1651808848.0565796 + }, + "COUNTERS:oid:0x5c0000000016e8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "27", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.056624 + }, + "COUNTERS:oid:0x5c000000001674": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0566597 + }, + "COUNTERS:oid:0x5c000000001dc5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "177", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0566893 + }, + "COUNTERS:oid:0x5c000000002783": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "88" + }, + "ttl": -0.001, + "expireat": 1651808848.0567052 + }, + "COUNTERS:oid:0x5c000000001e94": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "200", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.056735 + }, + "COUNTERS:oid:0x5c0000000020b0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0567472 + }, + "COUNTERS:oid:0x5c0000000013db": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0567627 + }, + "COUNTERS:oid:0x5c00000000240a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0567787 + }, + "COUNTERS:oid:0x5c000000001bc3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0567913 + }, + "COUNTERS:oid:0x5c000000002124": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "179" + }, + "ttl": -0.001, + "expireat": 1651808848.0568037 + }, + "COUNTERS:oid:0x5c0000000020c8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0568285 + }, + "COUNTERS:oid:0x5c0000000019ed": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22" + }, + "ttl": -0.001, + "expireat": 1651808848.0568407 + }, + "COUNTERS:oid:0x5c0000000024f2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1461" + }, + "ttl": -0.001, + "expireat": 1651808848.0568707 + }, + "COUNTERS:oid:0x5c00000000148b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1388" + }, + "ttl": -0.001, + "expireat": 1651808848.0569005 + }, + "COUNTERS:oid:0x5c000000002323": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "63", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.056933 + }, + "COUNTERS:oid:0x5c000000001b3e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "200" + }, + "ttl": -0.001, + "expireat": 1651808848.056965 + }, + "COUNTERS:oid:0x5c000000001ef2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.057101 + }, + "COUNTERS:oid:0x5c000000001f1c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0571156 + }, + "COUNTERS:oid:0x5c000000001b9c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0571284 + }, + "COUNTERS:oid:0x5c00000000143d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1256" + }, + "ttl": -0.001, + "expireat": 1651808848.0571413 + }, + "COUNTERS:oid:0x5c000000002546": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1273" + }, + "ttl": -0.001, + "expireat": 1651808848.057194 + }, + "COUNTERS:oid:0x5c0000000014f1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0572093 + }, + "COUNTERS:oid:0x5c000000001c37": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "147" + }, + "ttl": -0.001, + "expireat": 1651808848.057242 + }, + "COUNTERS:oid:0x5c00000000181d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0572555 + }, + "COUNTERS:oid:0x5c00000000158d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0572891 + }, + "COUNTERS:oid:0x5c000000001976": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "98", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0573065 + }, + "COUNTERS:oid:0x5c0000000027fd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "154367" + }, + "ttl": -0.001, + "expireat": 1651808848.0573235 + }, + "COUNTERS:oid:0x5c000000001c1a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22" + }, + "ttl": -0.001, + "expireat": 1651808848.057337 + }, + "COUNTERS:oid:0x5c000000001c89": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "20", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.057365 + }, + "COUNTERS:oid:0x5c00000000200e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.057382 + }, + "COUNTERS:oid:0x5c000000001ad7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0573952 + }, + "COUNTERS:oid:0x5c000000002453": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1261", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0574086 + }, + "COUNTERS:oid:0x5c000000001bdc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "92" + }, + "ttl": -0.001, + "expireat": 1651808848.057437 + }, + "COUNTERS:oid:0x5c000000001de9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "20" + }, + "ttl": -0.001, + "expireat": 1651808848.0574496 + }, + "COUNTERS:oid:0x5c000000001f2b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1309" + }, + "ttl": -0.001, + "expireat": 1651808848.0574615 + }, + "COUNTERS:oid:0x5c0000000025eb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "179" + }, + "ttl": -0.001, + "expireat": 1651808848.057478 + }, + "COUNTERS:oid:0x5c000000002777": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0575035 + }, + "COUNTERS:oid:0x5c0000000026d8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "311" + }, + "ttl": -0.001, + "expireat": 1651808848.0575204 + }, + "COUNTERS:oid:0x5c00000000164c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.057545 + }, + "COUNTERS:oid:0x5c000000001d46": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "205", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0575576 + }, + "COUNTERS:oid:0x5c00000000139d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "212", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0575697 + }, + "COUNTERS:oid:0x5c000000001f1f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "34" + }, + "ttl": -0.001, + "expireat": 1651808848.0576074 + }, + "COUNTERS:oid:0x5c00000000145d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.0576382 + }, + "COUNTERS:oid:0x5c000000001eb9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "140", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.05765 + }, + "COUNTERS:oid:0x5c000000001b02": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.0576777 + }, + "COUNTERS:oid:0x5c0000000022ff": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "45", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.057693 + }, + "COUNTERS:oid:0x5c000000001fc8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "15" + }, + "ttl": -0.001, + "expireat": 1651808848.0577052 + }, + "COUNTERS:oid:0x5c00000000258a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0577352 + }, + "COUNTERS:oid:0x5c000000001657": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "32", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0577517 + }, + "COUNTERS:oid:0x5c0000000016dd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0577877 + }, + "COUNTERS:oid:0x5c000000001f60": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0578 + }, + "COUNTERS:oid:0x5c000000001cfb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "197", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0578153 + }, + "COUNTERS:oid:0x5c000000001846": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0578313 + }, + "COUNTERS:oid:0x5c000000001b32": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0578473 + }, + "COUNTERS:oid:0x5c000000001f54": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0578597 + }, + "COUNTERS:oid:0x5c000000001b85": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "18", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0578718 + }, + "COUNTERS:oid:0x5c0000000017e4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "36" + }, + "ttl": -0.001, + "expireat": 1651808848.0578873 + }, + "COUNTERS:oid:0x5c000000001a4b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "181" + }, + "ttl": -0.001, + "expireat": 1651808848.0579157 + }, + "COUNTERS:oid:0x5c000000002642": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0579288 + }, + "COUNTERS:oid:0x5c000000001744": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0579443 + }, + "COUNTERS:oid:0x5c00000000240d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "147", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0579765 + }, + "COUNTERS:oid:0x5c000000001b8c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.0579906 + }, + "COUNTERS:oid:0x5c000000001cc9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.058003 + }, + "COUNTERS:oid:0x5c000000001cf8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0580332 + }, + "COUNTERS:oid:0x5c0000000013e2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22" + }, + "ttl": -0.001, + "expireat": 1651808848.0580652 + }, + "COUNTERS:oid:0x5c00000000143b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0580816 + }, + "COUNTERS:oid:0x5c000000001875": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "31", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0580971 + }, + "COUNTERS:oid:0x5c000000001640": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "178" + }, + "ttl": -0.001, + "expireat": 1651808848.0581286 + }, + "COUNTERS:oid:0x5c000000002634": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "177", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.058141 + }, + "COUNTERS:oid:0x5c0000000015b8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0581527 + }, + "COUNTERS:oid:0x5c0000000020ad": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "288" + }, + "ttl": -0.001, + "expireat": 1651808848.058168 + }, + "COUNTERS:oid:0x5c000000001a6f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "16", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0581832 + }, + "COUNTERS:oid:0x5c000000002433": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0582132 + }, + "COUNTERS:oid:0x5c0000000014c6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11896" + }, + "ttl": -0.001, + "expireat": 1651808848.058229 + }, + "COUNTERS:oid:0x5c0000000013ff": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1359" + }, + "ttl": -0.001, + "expireat": 1651808848.0582418 + }, + "COUNTERS:oid:0x5c000000001a6a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175" + }, + "ttl": -0.001, + "expireat": 1651808848.058254 + }, + "COUNTERS:oid:0x5c000000001e72": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1325" + }, + "ttl": -0.001, + "expireat": 1651808848.0582938 + }, + "COUNTERS:oid:0x5c0000000020b3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "504" + }, + "ttl": -0.001, + "expireat": 1651808848.0583105 + }, + "COUNTERS:oid:0x5c000000001477": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11707" + }, + "ttl": -0.001, + "expireat": 1651808848.0583234 + }, + "COUNTERS:oid:0x5c0000000014b9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1199" + }, + "ttl": -0.001, + "expireat": 1651808848.0583363 + }, + "COUNTERS:oid:0x5c000000002005": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "104", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.058349 + }, + "COUNTERS:oid:0x5c000000001446": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.058401 + }, + "COUNTERS:oid:0x5c000000001ca6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0584166 + }, + "COUNTERS:oid:0x5c000000001bc9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "437", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.05843 + }, + "COUNTERS:oid:0x5c000000002319": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "10" + }, + "ttl": -0.001, + "expireat": 1651808848.058446 + }, + "COUNTERS:oid:0x5c000000001f05": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "265" + }, + "ttl": -0.001, + "expireat": 1651808848.0584624 + }, + "COUNTERS:oid:0x5c0000000017d1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.058475 + }, + "COUNTERS:oid:0x5c000000001491": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0584877 + }, + "COUNTERS:oid:0x5c0000000019ff": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "17" + }, + "ttl": -0.001, + "expireat": 1651808848.0585032 + }, + "COUNTERS:oid:0x5c00000000175b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22" + }, + "ttl": -0.001, + "expireat": 1651808848.0585165 + }, + "COUNTERS:oid:0x5c0000000018b9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0585327 + }, + "COUNTERS:oid:0x5c000000002331": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "5", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0585644 + }, + "COUNTERS:oid:0x5c000000001c00": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0585806 + }, + "COUNTERS:oid:0x5c000000001364": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "176", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0585961 + }, + "COUNTERS:oid:0x5c0000000025a0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.058609 + }, + "COUNTERS:oid:0x5c000000001a2a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.058624 + }, + "COUNTERS:oid:0x5c000000001985": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0586524 + }, + "COUNTERS:oid:0x5c000000002128": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0586658 + }, + "COUNTERS:oid:0x5c000000002148": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0586777 + }, + "COUNTERS:oid:0x5c000000001b27": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0587063 + }, + "COUNTERS:oid:0x5c0000000014aa": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12159", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0587409 + }, + "COUNTERS:oid:0x5c0000000015ae": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1306" + }, + "ttl": -0.001, + "expireat": 1651808848.058755 + }, + "COUNTERS:oid:0x5c000000002591": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "180", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0587702 + }, + "COUNTERS:oid:0x5c000000002613": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "176" + }, + "ttl": -0.001, + "expireat": 1651808848.0587862 + }, + "COUNTERS:oid:0x5c000000001d76": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1305" + }, + "ttl": -0.001, + "expireat": 1651808848.058798 + }, + "COUNTERS:oid:0x5c0000000014e3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11938" + }, + "ttl": -0.001, + "expireat": 1651808848.0588098 + }, + "COUNTERS:oid:0x5c0000000019c2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "407" + }, + "ttl": -0.001, + "expireat": 1651808848.058822 + }, + "COUNTERS:oid:0x5c000000001ec9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "166" + }, + "ttl": -0.001, + "expireat": 1651808848.0588365 + }, + "COUNTERS:oid:0x5c000000001a3b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "202" + }, + "ttl": -0.001, + "expireat": 1651808848.0588486 + }, + "COUNTERS:oid:0x5c000000001b93": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "275" + }, + "ttl": -0.001, + "expireat": 1651808848.0588634 + }, + "COUNTERS:oid:0x5c0000000016ae": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0588756 + }, + "COUNTERS:oid:0x5c00000000246e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0588906 + }, + "COUNTERS:oid:0x5c000000001d7e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0589023 + }, + "COUNTERS:oid:0x5c000000001d1c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0589275 + }, + "COUNTERS:oid:0x5c0000000016f3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1239" + }, + "ttl": -0.001, + "expireat": 1651808848.0589404 + }, + "COUNTERS:oid:0x5c000000001449": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1359" + }, + "ttl": -0.001, + "expireat": 1651808848.058952 + }, + "COUNTERS:oid:0x5c000000001fc9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "16", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.058984 + }, + "COUNTERS:oid:0x5c000000001b0e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0589962 + }, + "COUNTERS:oid:0x5c000000001b0b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.059026 + }, + "COUNTERS:oid:0x5c00000000178b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1362" + }, + "ttl": -0.001, + "expireat": 1651808848.0590515 + }, + "COUNTERS:oid:0x5c00000000171e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "311" + }, + "ttl": -0.001, + "expireat": 1651808848.0590863 + }, + "COUNTERS:oid:0x5c000000001e54": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "294", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.059104 + }, + "COUNTERS:oid:0x5c000000001a09": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0591617 + }, + "COUNTERS:oid:0x5c0000000020f9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175" + }, + "ttl": -0.001, + "expireat": 1651808848.0591786 + }, + "COUNTERS:oid:0x5c000000001f50": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1281" + }, + "ttl": -0.001, + "expireat": 1651808848.0591908 + }, + "COUNTERS:oid:0x5c000000001828": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0592062 + }, + "COUNTERS:oid:0x5c000000001e30": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1338" + }, + "ttl": -0.001, + "expireat": 1651808848.0592184 + }, + "COUNTERS:oid:0x5c000000001978": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "36" + }, + "ttl": -0.001, + "expireat": 1651808848.0593085 + }, + "COUNTERS:oid:0x5c00000000255f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.059329 + }, + "COUNTERS:oid:0x5c000000001724": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0593562 + }, + "COUNTERS:oid:0x5c000000001916": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.059372 + }, + "COUNTERS:oid:0x5c0000000013fd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1269" + }, + "ttl": -0.001, + "expireat": 1651808848.0593848 + }, + "COUNTERS:oid:0x5c000000001600": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0593963 + }, + "COUNTERS:oid:0x5c000000002416": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0594113 + }, + "COUNTERS:oid:0x5c000000001787": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "144" + }, + "ttl": -0.001, + "expireat": 1651808848.0594413 + }, + "COUNTERS:oid:0x5c000000002105": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "303" + }, + "ttl": -0.001, + "expireat": 1651808848.059457 + }, + "COUNTERS:oid:0x5c000000001b8d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.059472 + }, + "COUNTERS:oid:0x5c000000001fd5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1023" + }, + "ttl": -0.001, + "expireat": 1651808848.059507 + }, + "COUNTERS:oid:0x5c000000002101": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175" + }, + "ttl": -0.001, + "expireat": 1651808848.0595248 + }, + "COUNTERS:oid:0x5c0000000017cc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0595412 + }, + "COUNTERS:oid:0x5c000000002135": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "290" + }, + "ttl": -0.001, + "expireat": 1651808848.0595572 + }, + "COUNTERS:oid:0x5c0000000019ab": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.059573 + }, + "COUNTERS:oid:0x5c000000001d62": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "31", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0595887 + }, + "COUNTERS:oid:0x5c000000001801": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0596008 + }, + "COUNTERS:oid:0x5c0000000015c8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "21", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.059613 + }, + "COUNTERS:oid:0x5c0000000019c4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "29" + }, + "ttl": -0.001, + "expireat": 1651808848.0596247 + }, + "COUNTERS:oid:0x5c000000001a78": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.059637 + }, + "COUNTERS:oid:0x5c00000000264c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "173", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.059649 + }, + "COUNTERS:oid:0x5c000000001eec": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0597005 + }, + "COUNTERS:oid:0x5c0000000025d4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "173" + }, + "ttl": -0.001, + "expireat": 1651808848.0597131 + }, + "COUNTERS:oid:0x5c0000000013f2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "304" + }, + "ttl": -0.001, + "expireat": 1651808848.0597281 + }, + "COUNTERS:oid:0x5c0000000022ef": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "41" + }, + "ttl": -0.001, + "expireat": 1651808848.0597436 + }, + "COUNTERS:oid:0x5c000000001df4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "108" + }, + "ttl": -0.001, + "expireat": 1651808848.0597749 + }, + "COUNTERS:oid:0x5c0000000013cc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "123" + }, + "ttl": -0.001, + "expireat": 1651808848.059787 + }, + "COUNTERS:oid:0x5c000000002470": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "298" + }, + "ttl": -0.001, + "expireat": 1651808848.0598018 + }, + "COUNTERS:oid:0x5c000000001994": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0598319 + }, + "COUNTERS:oid:0x5c000000001cf0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0599067 + }, + "COUNTERS:oid:0x5c000000001a9e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0599253 + }, + "COUNTERS:oid:0x5c0000000025de": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1278", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0599546 + }, + "COUNTERS:oid:0x5c000000002004": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0599697 + }, + "COUNTERS:oid:0x5c000000001f16": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0599813 + }, + "COUNTERS:oid:0x5c000000001eb1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "26", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0599928 + }, + "COUNTERS:oid:0x5c000000002354": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "614", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.060004 + }, + "COUNTERS:oid:0x5c00000000212d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "257" + }, + "ttl": -0.001, + "expireat": 1651808848.0600486 + }, + "COUNTERS:oid:0x5c000000001df5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "401", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0600615 + }, + "COUNTERS:oid:0x5c0000000014dd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1199" + }, + "ttl": -0.001, + "expireat": 1651808848.060073 + }, + "COUNTERS:oid:0x5c000000001ab7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13" + }, + "ttl": -0.001, + "expireat": 1651808848.0600882 + }, + "COUNTERS:oid:0x5c00000000157d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0601037 + }, + "COUNTERS:oid:0x5c0000000018ba": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.0601158 + }, + "COUNTERS:oid:0x5c0000000016f7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "107" + }, + "ttl": -0.001, + "expireat": 1651808848.0601277 + }, + "COUNTERS:oid:0x5c00000000157c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1358" + }, + "ttl": -0.001, + "expireat": 1651808848.0601392 + }, + "COUNTERS:oid:0x5c00000000140b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "161", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.060167 + }, + "COUNTERS:oid:0x5c000000001a2e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.060182 + }, + "COUNTERS:oid:0x5c000000002640": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1235" + }, + "ttl": -0.001, + "expireat": 1651808848.0601938 + }, + "COUNTERS:oid:0x5c000000001606": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.060205 + }, + "COUNTERS:oid:0x5c000000001e65": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "518", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0602162 + }, + "COUNTERS:oid:0x5c000000002303": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "59", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0602436 + }, + "COUNTERS:oid:0x5c000000001fe8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "269", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0603402 + }, + "COUNTERS:oid:0x5c0000000019b6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0603566 + }, + "COUNTERS:oid:0x5c000000001977": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "401" + }, + "ttl": -0.001, + "expireat": 1651808848.0603898 + }, + "COUNTERS:oid:0x5c0000000017d7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "183" + }, + "ttl": -0.001, + "expireat": 1651808848.0604012 + }, + "COUNTERS:oid:0x5c0000000018da": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.060432 + }, + "COUNTERS:oid:0x5c0000000014ce": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0604656 + }, + "COUNTERS:oid:0x5c000000002405": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0604813 + }, + "COUNTERS:oid:0x5c000000001ffe": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0605102 + }, + "COUNTERS:oid:0x5c000000002347": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "38", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0605357 + }, + "COUNTERS:oid:0x5c00000000138b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1043", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0605516 + }, + "COUNTERS:oid:0x5c000000001592": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.060564 + }, + "COUNTERS:oid:0x5c000000001646": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1308" + }, + "ttl": -0.001, + "expireat": 1651808848.060576 + }, + "COUNTERS:oid:0x5c0000000015cb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "184", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0606072 + }, + "COUNTERS:oid:0x5c000000002106": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1201" + }, + "ttl": -0.001, + "expireat": 1651808848.0606203 + }, + "COUNTERS:oid:0x5c0000000015d7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0606353 + }, + "COUNTERS:oid:0x5c000000001e66": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "30" + }, + "ttl": -0.001, + "expireat": 1651808848.0606513 + }, + "COUNTERS:oid:0x5c000000001c12": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "109", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0606844 + }, + "COUNTERS:oid:0x5c000000001845": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "101" + }, + "ttl": -0.001, + "expireat": 1651808848.0606978 + }, + "COUNTERS:oid:0x5c000000001366": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "299" + }, + "ttl": -0.001, + "expireat": 1651808848.060772 + }, + "COUNTERS:oid:0x5c000000001689": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "101" + }, + "ttl": -0.001, + "expireat": 1651808848.0608037 + }, + "COUNTERS:oid:0x5c00000000192e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "33" + }, + "ttl": -0.001, + "expireat": 1651808848.0608191 + }, + "COUNTERS:oid:0x5c000000002623": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "176", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0608346 + }, + "COUNTERS:oid:0x5c00000000259e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1284" + }, + "ttl": -0.001, + "expireat": 1651808848.0608473 + }, + "COUNTERS:oid:0x5c00000000172f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "255" + }, + "ttl": -0.001, + "expireat": 1651808848.060859 + }, + "COUNTERS:oid:0x5c000000002533": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13" + }, + "ttl": -0.001, + "expireat": 1651808848.0608737 + }, + "COUNTERS:oid:0x5c000000002478": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "301", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.060889 + }, + "COUNTERS:oid:0x5c000000001d26": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0609016 + }, + "COUNTERS:oid:0x5c000000001698": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.060924 + }, + "COUNTERS:oid:0x5c000000001924": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0609398 + }, + "COUNTERS:oid:0x5c000000001667": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.060955 + }, + "COUNTERS:oid:0x5c000000001dd1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "34" + }, + "ttl": -0.001, + "expireat": 1651808848.0609987 + }, + "COUNTERS:oid:0x5c0000000017f0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13" + }, + "ttl": -0.001, + "expireat": 1651808848.0610175 + }, + "COUNTERS:oid:0x5c000000001812": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "275", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0610332 + }, + "COUNTERS:oid:0x5c000000002355": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "3" + }, + "ttl": -0.001, + "expireat": 1651808848.0610485 + }, + "COUNTERS:oid:0x5c0000000013f0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175" + }, + "ttl": -0.001, + "expireat": 1651808848.0610611 + }, + "COUNTERS:oid:0x5c00000000246c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "141", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0610762 + }, + "COUNTERS:oid:0x5c000000001a06": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0611107 + }, + "COUNTERS:oid:0x5c00000000196b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0611246 + }, + "COUNTERS:oid:0x5c000000001c23": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0611575 + }, + "COUNTERS:oid:0x5c000000001941": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "307" + }, + "ttl": -0.001, + "expireat": 1651808848.0612855 + }, + "COUNTERS:oid:0x5c000000001da8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0613062 + }, + "COUNTERS:oid:0x5c000000001889": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1262" + }, + "ttl": -0.001, + "expireat": 1651808848.0613213 + }, + "COUNTERS:oid:0x5c000000001788": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.06137 + }, + "COUNTERS:oid:0x5c00000000176c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13" + }, + "ttl": -0.001, + "expireat": 1651808848.061389 + }, + "COUNTERS:oid:0x5c000000001593": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "967", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0614076 + }, + "COUNTERS:oid:0x5c0000000025be": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1272", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0614223 + }, + "COUNTERS:oid:0x5c00000000263b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0614524 + }, + "COUNTERS:oid:0x5c000000001e20": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "23", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0614707 + }, + "COUNTERS:oid:0x5c000000002520": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.061485 + }, + "COUNTERS:oid:0x5c000000001aa2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "36", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0615149 + }, + "COUNTERS:oid:0x5c000000001a11": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "20", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0615337 + }, + "COUNTERS:oid:0x5c0000000020bf": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0615516 + }, + "COUNTERS:oid:0x5c00000000170a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "75" + }, + "ttl": -0.001, + "expireat": 1651808848.0615692 + }, + "COUNTERS:oid:0x5c0000000018aa": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.061625 + }, + "COUNTERS:oid:0x5c0000000018a8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.061641 + }, + "COUNTERS:oid:0x5c00000000244c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "132", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.061658 + }, + "COUNTERS:oid:0x5c0000000023fc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "165" + }, + "ttl": -0.001, + "expireat": 1651808848.0616758 + }, + "COUNTERS:oid:0x5c000000001413": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0616925 + }, + "COUNTERS:oid:0x5c00000000244a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0617263 + }, + "COUNTERS:oid:0x5c00000000265c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175" + }, + "ttl": -0.001, + "expireat": 1651808848.0617392 + }, + "COUNTERS:oid:0x5c000000002100": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0617688 + }, + "COUNTERS:oid:0x5c000000002595": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "303", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0617843 + }, + "COUNTERS:oid:0x5c000000001899": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "399", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0617974 + }, + "COUNTERS:oid:0x5c000000001456": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "21" + }, + "ttl": -0.001, + "expireat": 1651808848.061813 + }, + "COUNTERS:oid:0x5c00000000274d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0618289 + }, + "COUNTERS:oid:0x5c000000001572": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0618653 + }, + "COUNTERS:oid:0x5c000000001e5c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0618777 + }, + "COUNTERS:oid:0x5c00000000234c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "428", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0618904 + }, + "COUNTERS:oid:0x5c000000001a68": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.061918 + }, + "COUNTERS:oid:0x5c000000001e2e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "102" + }, + "ttl": -0.001, + "expireat": 1651808848.06193 + }, + "COUNTERS:oid:0x5c000000001ecc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0619419 + }, + "COUNTERS:oid:0x5c00000000240e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.061957 + }, + "COUNTERS:oid:0x5c000000002312": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "5" + }, + "ttl": -0.001, + "expireat": 1651808848.061969 + }, + "COUNTERS:oid:0x5c00000000261c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175" + }, + "ttl": -0.001, + "expireat": 1651808848.061981 + }, + "COUNTERS:oid:0x5c000000001cbd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1323" + }, + "ttl": -0.001, + "expireat": 1651808848.0620134 + }, + "COUNTERS:oid:0x5c000000001e75": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0620308 + }, + "COUNTERS:oid:0x5c000000001d16": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "113", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0620477 + }, + "COUNTERS:oid:0x5c00000000148e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0620635 + }, + "COUNTERS:oid:0x5c000000001988": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0620751 + }, + "COUNTERS:oid:0x5c00000000146f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1199" + }, + "ttl": -0.001, + "expireat": 1651808848.062087 + }, + "COUNTERS:oid:0x5c000000001a97": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "186" + }, + "ttl": -0.001, + "expireat": 1651808848.0620992 + }, + "COUNTERS:oid:0x5c00000000200b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0621157 + }, + "COUNTERS:oid:0x5c00000000194b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0621328 + }, + "COUNTERS:oid:0x5c000000001488": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11907" + }, + "ttl": -0.001, + "expireat": 1651808848.0621455 + }, + "COUNTERS:oid:0x5c000000001470": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.062161 + }, + "COUNTERS:oid:0x5c0000000018e4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "33", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0621896 + }, + "COUNTERS:oid:0x5c000000002346": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "5", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0622022 + }, + "COUNTERS:oid:0x5c0000000016bd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.062218 + }, + "COUNTERS:oid:0x5c0000000025f9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.062234 + }, + "COUNTERS:oid:0x5c0000000018ff": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0622494 + }, + "COUNTERS:oid:0x5c00000000240b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.062263 + }, + "COUNTERS:oid:0x5c000000001d4d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0622754 + }, + "COUNTERS:oid:0x5c000000001ae1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "114" + }, + "ttl": -0.001, + "expireat": 1651808848.062287 + }, + "COUNTERS:oid:0x5c000000001642": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0622995 + }, + "COUNTERS:oid:0x5c00000000274c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0623324 + }, + "COUNTERS:oid:0x5c00000000181c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0623498 + }, + "COUNTERS:oid:0x5c00000000234e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "6", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0623627 + }, + "COUNTERS:oid:0x5c000000001933": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "20" + }, + "ttl": -0.001, + "expireat": 1651808848.0623744 + }, + "COUNTERS:oid:0x5c000000001602": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "103" + }, + "ttl": -0.001, + "expireat": 1651808848.0623863 + }, + "COUNTERS:oid:0x5c000000001b26": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0624013 + }, + "COUNTERS:oid:0x5c000000002599": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "173", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0624168 + }, + "COUNTERS:oid:0x5c000000001fd3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.062429 + }, + "COUNTERS:oid:0x5c000000001eb8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "192", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0624444 + }, + "COUNTERS:oid:0x5c000000001634": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "21" + }, + "ttl": -0.001, + "expireat": 1651808848.062457 + }, + "COUNTERS:oid:0x5c000000001599": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.062472 + }, + "COUNTERS:oid:0x5c000000002125": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "280" + }, + "ttl": -0.001, + "expireat": 1651808848.0624876 + }, + "COUNTERS:oid:0x5c000000001398": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0625026 + }, + "COUNTERS:oid:0x5c00000000206b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "17", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.062518 + }, + "COUNTERS:oid:0x5c00000000215c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.06253 + }, + "COUNTERS:oid:0x5c00000000145a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "5546", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0625446 + }, + "COUNTERS:oid:0x5c0000000015b9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "183" + }, + "ttl": -0.001, + "expireat": 1651808848.06256 + }, + "COUNTERS:oid:0x5c000000001ad2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "258", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0625753 + }, + "COUNTERS:oid:0x5c000000001fcf": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0626075 + }, + "COUNTERS:oid:0x5c0000000025b3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0626223 + }, + "COUNTERS:oid:0x5c0000000021f2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "179" + }, + "ttl": -0.001, + "expireat": 1651808848.062648 + }, + "COUNTERS:oid:0x5c000000001ddc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "263", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0626645 + }, + "COUNTERS:oid:0x5c00000000241e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0626805 + }, + "COUNTERS:oid:0x5c000000001d88": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "28", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0626934 + }, + "COUNTERS:oid:0x5c000000001800": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0627089 + }, + "COUNTERS:oid:0x5c00000000178d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0627208 + }, + "COUNTERS:oid:0x5c0000000019b5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0627356 + }, + "COUNTERS:oid:0x5c000000002341": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "5" + }, + "ttl": -0.001, + "expireat": 1651808848.0627513 + }, + "COUNTERS:oid:0x5c000000001a88": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "258" + }, + "ttl": -0.001, + "expireat": 1651808848.0627666 + }, + "COUNTERS:oid:0x5c0000000013d1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0627797 + }, + "COUNTERS:oid:0x5c000000001755": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22" + }, + "ttl": -0.001, + "expireat": 1651808848.0627913 + }, + "COUNTERS:oid:0x5c0000000014d0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12006" + }, + "ttl": -0.001, + "expireat": 1651808848.0628068 + }, + "COUNTERS:oid:0x5c000000001e36": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "100" + }, + "ttl": -0.001, + "expireat": 1651808848.062819 + }, + "COUNTERS:oid:0x5c0000000017d8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0628343 + }, + "COUNTERS:oid:0x5c000000002154": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0628467 + }, + "COUNTERS:oid:0x5c0000000014e5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1225" + }, + "ttl": -0.001, + "expireat": 1651808848.0628583 + }, + "COUNTERS:oid:0x5c000000001b59": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "95", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0628736 + }, + "COUNTERS:oid:0x5c000000001bf4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22" + }, + "ttl": -0.001, + "expireat": 1651808848.0629067 + }, + "COUNTERS:oid:0x5c0000000025e6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1281" + }, + "ttl": -0.001, + "expireat": 1651808848.0629206 + }, + "COUNTERS:oid:0x5c000000001dda": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "204" + }, + "ttl": -0.001, + "expireat": 1651808848.0629323 + }, + "COUNTERS:oid:0x5c000000001cdb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0629597 + }, + "COUNTERS:oid:0x5c00000000209e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1187", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0629728 + }, + "COUNTERS:oid:0x5c000000001bbd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0629983 + }, + "COUNTERS:oid:0x5c0000000020cd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1507", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0630136 + }, + "COUNTERS:oid:0x5c000000001b1c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "277", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0630302 + }, + "COUNTERS:oid:0x5c000000001ac1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0630457 + }, + "COUNTERS:oid:0x5c000000002240": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "147" + }, + "ttl": -0.001, + "expireat": 1651808848.063058 + }, + "COUNTERS:oid:0x5c000000001a93": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "16" + }, + "ttl": -0.001, + "expireat": 1651808848.06307 + }, + "COUNTERS:oid:0x5c000000001ac0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0630817 + }, + "COUNTERS:oid:0x5c0000000016f4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.063111 + }, + "COUNTERS:oid:0x5c00000000140a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "201" + }, + "ttl": -0.001, + "expireat": 1651808848.0631273 + }, + "COUNTERS:oid:0x5c000000001c49": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.063142 + }, + "COUNTERS:oid:0x5c000000001da3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.063154 + }, + "COUNTERS:oid:0x5c000000001cd7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "168", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.063166 + }, + "COUNTERS:oid:0x5c00000000173d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.063178 + }, + "COUNTERS:oid:0x5c0000000025f0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0631897 + }, + "COUNTERS:oid:0x5c00000000253c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0632014 + }, + "COUNTERS:oid:0x5c000000001710": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "194", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.063217 + }, + "COUNTERS:oid:0x5c00000000198d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0657375 + }, + "COUNTERS:oid:0x5c00000000262e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.065758 + }, + "COUNTERS:oid:0x5c0000000017a0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "198" + }, + "ttl": -0.001, + "expireat": 1651808848.0657752 + }, + "COUNTERS:oid:0x5c000000001f5b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "5" + }, + "ttl": -0.001, + "expireat": 1651808848.0657918 + }, + "COUNTERS:oid:0x5c000000001a36": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "18" + }, + "ttl": -0.001, + "expireat": 1651808848.065807 + }, + "COUNTERS:oid:0x5c000000001ac5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "100", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0658238 + }, + "COUNTERS:oid:0x5c00000000141f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0658398 + }, + "COUNTERS:oid:0x5c00000000244d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "147", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0658524 + }, + "COUNTERS:oid:0x5c000000001b64": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "157" + }, + "ttl": -0.001, + "expireat": 1651808848.0658646 + }, + "COUNTERS:oid:0x5c0000000015b7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0658798 + }, + "COUNTERS:oid:0x5c00000000184d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0658922 + }, + "COUNTERS:oid:0x5c0000000015e2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.065904 + }, + "COUNTERS:oid:0x5c00000000259a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175" + }, + "ttl": -0.001, + "expireat": 1651808848.0659153 + }, + "COUNTERS:oid:0x5c000000001762": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175" + }, + "ttl": -0.001, + "expireat": 1651808848.0659306 + }, + "COUNTERS:oid:0x5c0000000019f4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1265" + }, + "ttl": -0.001, + "expireat": 1651808848.0659423 + }, + "COUNTERS:oid:0x5c0000000019db": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0659537 + }, + "COUNTERS:oid:0x5c000000001b97": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0659688 + }, + "COUNTERS:oid:0x5c0000000021fb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0659811 + }, + "COUNTERS:oid:0x5c0000000013f1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.0659924 + }, + "COUNTERS:oid:0x5c000000001b0d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0660074 + }, + "COUNTERS:oid:0x5c000000001e99": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0660417 + }, + "COUNTERS:oid:0x5c000000001f32": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "263" + }, + "ttl": -0.001, + "expireat": 1651808848.0660596 + }, + "COUNTERS:oid:0x5c00000000216f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0660753 + }, + "COUNTERS:oid:0x5c0000000015ef": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "179", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.066091 + }, + "COUNTERS:oid:0x5c00000000198c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1257" + }, + "ttl": -0.001, + "expireat": 1651808848.0661027 + }, + "COUNTERS:oid:0x5c000000001792": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0661182 + }, + "COUNTERS:oid:0x5c000000001fe2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0661335 + }, + "COUNTERS:oid:0x5c000000002629": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0661483 + }, + "COUNTERS:oid:0x5c000000001e96": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "242" + }, + "ttl": -0.001, + "expireat": 1651808848.0661638 + }, + "COUNTERS:oid:0x5c0000000015b5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "304", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0661788 + }, + "COUNTERS:oid:0x5c000000001bb5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.066191 + }, + "COUNTERS:oid:0x5c000000001c9f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0662057 + }, + "COUNTERS:oid:0x5c000000001bd2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "201", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.066221 + }, + "COUNTERS:oid:0x5c000000001a67": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0662367 + }, + "COUNTERS:oid:0x5c000000002083": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "337" + }, + "ttl": -0.001, + "expireat": 1651808848.0662518 + }, + "COUNTERS:oid:0x5c000000002339": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "5" + }, + "ttl": -0.001, + "expireat": 1651808848.0662673 + }, + "COUNTERS:oid:0x5c0000000013bb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1199" + }, + "ttl": -0.001, + "expireat": 1651808848.0662787 + }, + "COUNTERS:oid:0x5c000000001648": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0663085 + }, + "COUNTERS:oid:0x5c000000001fdb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.066322 + }, + "COUNTERS:oid:0x5c000000001fdc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1407" + }, + "ttl": -0.001, + "expireat": 1651808848.0663378 + }, + "COUNTERS:oid:0x5c000000002324": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "486", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0663505 + }, + "COUNTERS:oid:0x5c000000001416": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "304", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0663657 + }, + "COUNTERS:oid:0x5c000000001dbd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "178", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0663805 + }, + "COUNTERS:oid:0x5c00000000137c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1052", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0663958 + }, + "COUNTERS:oid:0x5c0000000027dc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0664105 + }, + "COUNTERS:oid:0x5c000000002342": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "5" + }, + "ttl": -0.001, + "expireat": 1651808848.0664225 + }, + "COUNTERS:oid:0x5c0000000022fa": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "5", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0664344 + }, + "COUNTERS:oid:0x5c0000000023f7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "141", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0664458 + }, + "COUNTERS:oid:0x5c000000002450": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "302", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0664604 + }, + "COUNTERS:oid:0x5c0000000026dd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0664728 + }, + "COUNTERS:oid:0x5c000000001ab0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0664842 + }, + "COUNTERS:oid:0x5c0000000014f0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0664985 + }, + "COUNTERS:oid:0x5c000000001e74": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.0665104 + }, + "COUNTERS:oid:0x5c000000001605": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.066525 + }, + "COUNTERS:oid:0x5c000000001d12": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.06654 + }, + "COUNTERS:oid:0x5c0000000020d5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "913" + }, + "ttl": -0.001, + "expireat": 1651808848.0665548 + }, + "COUNTERS:oid:0x5c000000001578": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1429" + }, + "ttl": -0.001, + "expireat": 1651808848.0665853 + }, + "COUNTERS:oid:0x5c000000001368": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.066602 + }, + "COUNTERS:oid:0x5c00000000246a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.066614 + }, + "COUNTERS:oid:0x5c000000001411": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "18" + }, + "ttl": -0.001, + "expireat": 1651808848.0666256 + }, + "COUNTERS:oid:0x5c0000000014d6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0666404 + }, + "COUNTERS:oid:0x5c000000002430": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "301" + }, + "ttl": -0.001, + "expireat": 1651808848.0666554 + }, + "COUNTERS:oid:0x5c0000000023cc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "179" + }, + "ttl": -0.001, + "expireat": 1651808848.0666704 + }, + "COUNTERS:oid:0x5c0000000013e0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0666854 + }, + "COUNTERS:oid:0x5c0000000027ed": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1472" + }, + "ttl": -0.001, + "expireat": 1651808848.0666971 + }, + "COUNTERS:oid:0x5c000000001d05": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "91" + }, + "ttl": -0.001, + "expireat": 1651808848.0667088 + }, + "COUNTERS:oid:0x5c000000002639": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0667233 + }, + "COUNTERS:oid:0x5c000000001dc0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1347" + }, + "ttl": -0.001, + "expireat": 1651808848.0667353 + }, + "COUNTERS:oid:0x5c0000000017ba": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0667498 + }, + "COUNTERS:oid:0x5c000000001c80": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.066765 + }, + "COUNTERS:oid:0x5c0000000023e3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0667768 + }, + "COUNTERS:oid:0x5c000000002150": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0667884 + }, + "COUNTERS:oid:0x5c000000001645": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "265", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0668204 + }, + "COUNTERS:oid:0x5c0000000014bb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22" + }, + "ttl": -0.001, + "expireat": 1651808848.0668325 + }, + "COUNTERS:oid:0x5c0000000019df": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0668445 + }, + "COUNTERS:oid:0x5c0000000026e3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1571" + }, + "ttl": -0.001, + "expireat": 1651808848.0668561 + }, + "COUNTERS:oid:0x5c00000000256e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1244", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0668862 + }, + "COUNTERS:oid:0x5c0000000019ec": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22" + }, + "ttl": -0.001, + "expireat": 1651808848.0669038 + }, + "COUNTERS:oid:0x5c0000000017cf": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175" + }, + "ttl": -0.001, + "expireat": 1651808848.0669165 + }, + "COUNTERS:oid:0x5c0000000013c3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "201" + }, + "ttl": -0.001, + "expireat": 1651808848.0669444 + }, + "COUNTERS:oid:0x5c000000001ca2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0669556 + }, + "COUNTERS:oid:0x5c0000000014cc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1279" + }, + "ttl": -0.001, + "expireat": 1651808848.0669672 + }, + "COUNTERS:oid:0x5c00000000179b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "317" + }, + "ttl": -0.001, + "expireat": 1651808848.0669782 + }, + "COUNTERS:oid:0x5c000000001821": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13" + }, + "ttl": -0.001, + "expireat": 1651808848.0669904 + }, + "COUNTERS:oid:0x5c0000000020f5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "301" + }, + "ttl": -0.001, + "expireat": 1651808848.0670047 + }, + "COUNTERS:oid:0x5c00000000196e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0670195 + }, + "COUNTERS:oid:0x5c000000001d9b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1316" + }, + "ttl": -0.001, + "expireat": 1651808848.0670311 + }, + "COUNTERS:oid:0x5c000000002581": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "164" + }, + "ttl": -0.001, + "expireat": 1651808848.067046 + }, + "COUNTERS:oid:0x5c000000001ea0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "16" + }, + "ttl": -0.001, + "expireat": 1651808848.0670607 + }, + "COUNTERS:oid:0x5c00000000265d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0670755 + }, + "COUNTERS:oid:0x5c000000001d6b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "200", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0670874 + }, + "COUNTERS:oid:0x5c0000000015fe": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1294" + }, + "ttl": -0.001, + "expireat": 1651808848.0670986 + }, + "COUNTERS:oid:0x5c000000001ce1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "245", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0671134 + }, + "COUNTERS:oid:0x5c000000001de6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0671282 + }, + "COUNTERS:oid:0x5c000000001e87": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0671425 + }, + "COUNTERS:oid:0x5c00000000188a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0671573 + }, + "COUNTERS:oid:0x5c000000001469": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1301" + }, + "ttl": -0.001, + "expireat": 1651808848.0671866 + }, + "COUNTERS:oid:0x5c000000001f58": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1393" + }, + "ttl": -0.001, + "expireat": 1651808848.0672002 + }, + "COUNTERS:oid:0x5c000000001ec6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.067212 + }, + "COUNTERS:oid:0x5c000000001f27": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "202" + }, + "ttl": -0.001, + "expireat": 1651808848.0673006 + }, + "COUNTERS:oid:0x5c000000001909": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "31" + }, + "ttl": -0.001, + "expireat": 1651808848.0673263 + }, + "COUNTERS:oid:0x5c000000001c50": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13" + }, + "ttl": -0.001, + "expireat": 1651808848.0673554 + }, + "COUNTERS:oid:0x5c000000001b55": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.06737 + }, + "COUNTERS:oid:0x5c000000001ce8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "181" + }, + "ttl": -0.001, + "expireat": 1651808848.0673978 + }, + "COUNTERS:oid:0x5c0000000023f3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0674102 + }, + "COUNTERS:oid:0x5c000000002440": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "307", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0674253 + }, + "COUNTERS:oid:0x5c000000001373": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1386", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0674584 + }, + "COUNTERS:oid:0x5c0000000014a8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "300", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0674908 + }, + "COUNTERS:oid:0x5c000000001995": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0675066 + }, + "COUNTERS:oid:0x5c00000000191d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1352" + }, + "ttl": -0.001, + "expireat": 1651808848.0675185 + }, + "COUNTERS:oid:0x5c00000000246f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0675297 + }, + "COUNTERS:oid:0x5c00000000216d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "217", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0675607 + }, + "COUNTERS:oid:0x5c00000000139b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "18", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.067572 + }, + "COUNTERS:oid:0x5c0000000026f3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1067", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0675836 + }, + "COUNTERS:oid:0x5c00000000172c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.067598 + }, + "COUNTERS:oid:0x5c000000001d21": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "192", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0676103 + }, + "COUNTERS:oid:0x5c000000001927": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0676434 + }, + "COUNTERS:oid:0x5c0000000025a6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1268", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0676572 + }, + "COUNTERS:oid:0x5c000000001b4d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0676718 + }, + "COUNTERS:oid:0x5c000000001914": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "228" + }, + "ttl": -0.001, + "expireat": 1651808848.0676877 + }, + "COUNTERS:oid:0x5c000000001ef3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0676997 + }, + "COUNTERS:oid:0x5c000000001632": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "178" + }, + "ttl": -0.001, + "expireat": 1651808848.0677114 + }, + "COUNTERS:oid:0x5c000000001c03": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1309" + }, + "ttl": -0.001, + "expireat": 1651808848.0677226 + }, + "COUNTERS:oid:0x5c0000000014cb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "292" + }, + "ttl": -0.001, + "expireat": 1651808848.0677369 + }, + "COUNTERS:oid:0x5c0000000014f7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1194" + }, + "ttl": -0.001, + "expireat": 1651808848.0677483 + }, + "COUNTERS:oid:0x5c000000002522": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "136" + }, + "ttl": -0.001, + "expireat": 1651808848.06776 + }, + "COUNTERS:oid:0x5c000000001871": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0677745 + }, + "COUNTERS:oid:0x5c000000001b94": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1314" + }, + "ttl": -0.001, + "expireat": 1651808848.0677862 + }, + "COUNTERS:oid:0x5c0000000015d3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0678008 + }, + "COUNTERS:oid:0x5c0000000019ae": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0678124 + }, + "COUNTERS:oid:0x5c000000001785": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.067824 + }, + "COUNTERS:oid:0x5c0000000016db": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.067838 + }, + "COUNTERS:oid:0x5c00000000188f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "181" + }, + "ttl": -0.001, + "expireat": 1651808848.0678682 + }, + "COUNTERS:oid:0x5c00000000277b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "299", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0679007 + }, + "COUNTERS:oid:0x5c000000001efa": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "34" + }, + "ttl": -0.001, + "expireat": 1651808848.067944 + }, + "COUNTERS:oid:0x5c00000000173b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1254" + }, + "ttl": -0.001, + "expireat": 1651808848.0679567 + }, + "COUNTERS:oid:0x5c000000001bfb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1268" + }, + "ttl": -0.001, + "expireat": 1651808848.06797 + }, + "COUNTERS:oid:0x5c000000001e7a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1345" + }, + "ttl": -0.001, + "expireat": 1651808848.068002 + }, + "COUNTERS:oid:0x5c0000000025f3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "172", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0680363 + }, + "COUNTERS:oid:0x5c000000001c7d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0680494 + }, + "COUNTERS:oid:0x5c0000000018f3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0680647 + }, + "COUNTERS:oid:0x5c0000000020fb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.068078 + }, + "COUNTERS:oid:0x5c00000000217d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "220", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0680935 + }, + "COUNTERS:oid:0x5c000000001bd5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "233" + }, + "ttl": -0.001, + "expireat": 1651808848.0681093 + }, + "COUNTERS:oid:0x5c000000002648": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1275" + }, + "ttl": -0.001, + "expireat": 1651808848.0681221 + }, + "COUNTERS:oid:0x5c0000000013b9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1359" + }, + "ttl": -0.001, + "expireat": 1651808848.0681336 + }, + "COUNTERS:oid:0x5c00000000217a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.068146 + }, + "COUNTERS:oid:0x5c000000001b35": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "423", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0681577 + }, + "COUNTERS:oid:0x5c000000001bde": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1322" + }, + "ttl": -0.001, + "expireat": 1651808848.0681698 + }, + "COUNTERS:oid:0x5c0000000019a9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "297", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0681853 + }, + "COUNTERS:oid:0x5c00000000187e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "204", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0681982 + }, + "COUNTERS:oid:0x5c0000000020e4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175" + }, + "ttl": -0.001, + "expireat": 1651808848.06821 + }, + "COUNTERS:oid:0x5c000000002276": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0682251 + }, + "COUNTERS:oid:0x5c00000000139a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0682406 + }, + "COUNTERS:oid:0x5c000000001bc2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0682719 + }, + "COUNTERS:oid:0x5c000000002571": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0683029 + }, + "COUNTERS:oid:0x5c000000001dde": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.068337 + }, + "COUNTERS:oid:0x5c000000001aad": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "295", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.068371 + }, + "COUNTERS:oid:0x5c000000001c74": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0683887 + }, + "COUNTERS:oid:0x5c0000000025df": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0684202 + }, + "COUNTERS:oid:0x5c000000001492": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0684352 + }, + "COUNTERS:oid:0x5c000000001476": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11662" + }, + "ttl": -0.001, + "expireat": 1651808848.06845 + }, + "COUNTERS:oid:0x5c000000001a21": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1305" + }, + "ttl": -0.001, + "expireat": 1651808848.0684621 + }, + "COUNTERS:oid:0x5c000000002462": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.068477 + }, + "COUNTERS:oid:0x5c0000000025fc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "178", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0684886 + }, + "COUNTERS:oid:0x5c0000000013e3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "18" + }, + "ttl": -0.001, + "expireat": 1651808848.0685005 + }, + "COUNTERS:oid:0x5c000000001b5b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "33", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0685148 + }, + "COUNTERS:oid:0x5c000000001936": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "195" + }, + "ttl": -0.001, + "expireat": 1651808848.0685296 + }, + "COUNTERS:oid:0x5c00000000143c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0685413 + }, + "COUNTERS:oid:0x5c0000000025f6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0685523 + }, + "COUNTERS:oid:0x5c0000000014d3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1276" + }, + "ttl": -0.001, + "expireat": 1651808848.0685637 + }, + "COUNTERS:oid:0x5c000000001894": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0685778 + }, + "COUNTERS:oid:0x5c000000001d60": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "113", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0685923 + }, + "COUNTERS:oid:0x5c000000001d0a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0686073 + }, + "COUNTERS:oid:0x5c000000002446": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0686219 + }, + "COUNTERS:oid:0x5c000000002603": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0686734 + }, + "COUNTERS:oid:0x5c0000000018b3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "181", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0686915 + }, + "COUNTERS:oid:0x5c000000001f15": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0687068 + }, + "COUNTERS:oid:0x5c000000002443": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0687194 + }, + "COUNTERS:oid:0x5c000000001cb2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "201" + }, + "ttl": -0.001, + "expireat": 1651808848.0687308 + }, + "COUNTERS:oid:0x5c00000000160a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0687428 + }, + "COUNTERS:oid:0x5c00000000161b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.0687575 + }, + "COUNTERS:oid:0x5c000000001ba5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "33", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.068773 + }, + "COUNTERS:oid:0x5c000000001363": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0687847 + }, + "COUNTERS:oid:0x5c0000000025d2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0687969 + }, + "COUNTERS:oid:0x5c000000002554": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "154" + }, + "ttl": -0.001, + "expireat": 1651808848.0688086 + }, + "COUNTERS:oid:0x5c000000002153": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0688233 + }, + "COUNTERS:oid:0x5c000000001393": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0688353 + }, + "COUNTERS:oid:0x5c000000001435": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22" + }, + "ttl": -0.001, + "expireat": 1651808848.068847 + }, + "COUNTERS:oid:0x5c000000002452": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0688589 + }, + "COUNTERS:oid:0x5c00000000250c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "144", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0688708 + }, + "COUNTERS:oid:0x5c000000001d0b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0688822 + }, + "COUNTERS:oid:0x5c000000001d52": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0688975 + }, + "COUNTERS:oid:0x5c000000001496": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "26" + }, + "ttl": -0.001, + "expireat": 1651808848.068912 + }, + "COUNTERS:oid:0x5c00000000143f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "184", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.068927 + }, + "COUNTERS:oid:0x5c00000000251c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0690112 + }, + "COUNTERS:oid:0x5c000000002176": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1277" + }, + "ttl": -0.001, + "expireat": 1651808848.0690265 + }, + "COUNTERS:oid:0x5c000000001585": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.06906 + }, + "COUNTERS:oid:0x5c00000000265f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "303", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.069077 + }, + "COUNTERS:oid:0x5c0000000014c5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "21", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0690897 + }, + "COUNTERS:oid:0x5c0000000025fb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "178", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0691056 + }, + "COUNTERS:oid:0x5c000000001b54": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0691178 + }, + "COUNTERS:oid:0x5c000000001a1e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "176", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.069133 + }, + "COUNTERS:oid:0x5c000000002402": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0691488 + }, + "COUNTERS:oid:0x5c0000000023e8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "303", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0691643 + }, + "COUNTERS:oid:0x5c000000001836": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "274", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0691803 + }, + "COUNTERS:oid:0x5c0000000018ca": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "278", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0692127 + }, + "COUNTERS:oid:0x5c000000001387": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1312" + }, + "ttl": -0.001, + "expireat": 1651808848.0692258 + }, + "COUNTERS:oid:0x5c000000001379": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0692382 + }, + "COUNTERS:oid:0x5c0000000024f3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "311" + }, + "ttl": -0.001, + "expireat": 1651808848.0692544 + }, + "COUNTERS:oid:0x5c0000000018fa": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "15" + }, + "ttl": -0.001, + "expireat": 1651808848.069283 + }, + "COUNTERS:oid:0x5c000000001495": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1199" + }, + "ttl": -0.001, + "expireat": 1651808848.069295 + }, + "COUNTERS:oid:0x5c0000000016d9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.069339 + }, + "COUNTERS:oid:0x5c000000001472": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "27" + }, + "ttl": -0.001, + "expireat": 1651808848.0693676 + }, + "COUNTERS:oid:0x5c0000000013a4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "21", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0694473 + }, + "COUNTERS:oid:0x5c00000000149c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0694673 + }, + "COUNTERS:oid:0x5c0000000017de": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0694997 + }, + "COUNTERS:oid:0x5c00000000215b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "15" + }, + "ttl": -0.001, + "expireat": 1651808848.0695152 + }, + "COUNTERS:oid:0x5c00000000230d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "6" + }, + "ttl": -0.001, + "expireat": 1651808848.069531 + }, + "COUNTERS:oid:0x5c000000001604": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0695431 + }, + "COUNTERS:oid:0x5c000000002448": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "299", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0695589 + }, + "COUNTERS:oid:0x5c0000000027ff": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "4401", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0695744 + }, + "COUNTERS:oid:0x5c0000000019d0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0695899 + }, + "COUNTERS:oid:0x5c00000000171d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0696025 + }, + "COUNTERS:oid:0x5c000000001696": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0696142 + }, + "COUNTERS:oid:0x5c000000001874": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "391" + }, + "ttl": -0.001, + "expireat": 1651808848.069626 + }, + "COUNTERS:oid:0x5c000000001b72": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0696404 + }, + "COUNTERS:oid:0x5c000000001fb2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.069653 + }, + "COUNTERS:oid:0x5c000000001d10": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.069668 + }, + "COUNTERS:oid:0x5c000000001740": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0696836 + }, + "COUNTERS:oid:0x5c000000002503": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0696986 + }, + "COUNTERS:oid:0x5c000000001a20": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "310" + }, + "ttl": -0.001, + "expireat": 1651808848.0697577 + }, + "COUNTERS:oid:0x5c000000001df0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0697773 + }, + "COUNTERS:oid:0x5c0000000018df": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.06979 + }, + "COUNTERS:oid:0x5c00000000147a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1246", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0698018 + }, + "COUNTERS:oid:0x5c000000002424": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "134" + }, + "ttl": -0.001, + "expireat": 1651808848.069817 + }, + "COUNTERS:oid:0x5c000000001ffc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "179", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0698333 + }, + "COUNTERS:oid:0x5c000000001c4a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0698454 + }, + "COUNTERS:oid:0x5c00000000160f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "24" + }, + "ttl": -0.001, + "expireat": 1651808848.0698607 + }, + "COUNTERS:oid:0x5c000000001ae8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0698755 + }, + "COUNTERS:oid:0x5c000000001ab5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "306" + }, + "ttl": -0.001, + "expireat": 1651808848.0698905 + }, + "COUNTERS:oid:0x5c000000001ed0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.069903 + }, + "COUNTERS:oid:0x5c000000001731": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "24" + }, + "ttl": -0.001, + "expireat": 1651808848.0699148 + }, + "COUNTERS:oid:0x5c0000000025ba": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0699265 + }, + "COUNTERS:oid:0x5c0000000014f8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "8", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0699422 + }, + "COUNTERS:oid:0x5c000000001799": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.0699544 + }, + "COUNTERS:oid:0x5c000000001a76": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0699658 + }, + "COUNTERS:oid:0x5c0000000014a4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0699809 + }, + "COUNTERS:oid:0x5c0000000014af": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0699933 + }, + "COUNTERS:oid:0x5c00000000137f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1381", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.070005 + }, + "COUNTERS:oid:0x5c000000001f11": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0700202 + }, + "COUNTERS:oid:0x5c000000001663": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.070079 + }, + "COUNTERS:oid:0x5c000000001884": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0700982 + }, + "COUNTERS:oid:0x5c000000001aaa": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "180" + }, + "ttl": -0.001, + "expireat": 1651808848.0701141 + }, + "COUNTERS:oid:0x5c000000001628": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0701263 + }, + "COUNTERS:oid:0x5c00000000166e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.070138 + }, + "COUNTERS:oid:0x5c000000001c92": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.07015 + }, + "COUNTERS:oid:0x5c0000000015a9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "20", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0701652 + }, + "COUNTERS:oid:0x5c000000002307": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "47" + }, + "ttl": -0.001, + "expireat": 1651808848.0701807 + }, + "COUNTERS:oid:0x5c000000001dd0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "457", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0701928 + }, + "COUNTERS:oid:0x5c000000001a51": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0702085 + }, + "COUNTERS:oid:0x5c000000002201": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "4", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.070221 + }, + "COUNTERS:oid:0x5c000000001e8b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "29", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.070236 + }, + "COUNTERS:oid:0x5c0000000021f5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0702477 + }, + "COUNTERS:oid:0x5c000000002146": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1285", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0702598 + }, + "COUNTERS:oid:0x5c000000001424": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1359" + }, + "ttl": -0.001, + "expireat": 1651808848.070271 + }, + "COUNTERS:oid:0x5c0000000025cb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "180" + }, + "ttl": -0.001, + "expireat": 1651808848.0702863 + }, + "COUNTERS:oid:0x5c0000000018d2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "311", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0703201 + }, + "COUNTERS:oid:0x5c00000000260f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "297", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0703359 + }, + "COUNTERS:oid:0x5c0000000015d4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "179" + }, + "ttl": -0.001, + "expireat": 1651808848.0703514 + }, + "COUNTERS:oid:0x5c000000001d72": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0704012 + }, + "COUNTERS:oid:0x5c0000000025cf": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0704203 + }, + "COUNTERS:oid:0x5c000000001ba1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.070437 + }, + "COUNTERS:oid:0x5c000000002314": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "467", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.070449 + }, + "COUNTERS:oid:0x5c000000001ef4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0704646 + }, + "COUNTERS:oid:0x5c0000000025cd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "302", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0704803 + }, + "COUNTERS:oid:0x5c0000000025aa": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0704966 + }, + "COUNTERS:oid:0x5c000000001e0f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0705094 + }, + "COUNTERS:oid:0x5c0000000018b7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0705242 + }, + "COUNTERS:oid:0x5c0000000025ff": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "301", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.07054 + }, + "COUNTERS:oid:0x5c000000002593": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0705528 + }, + "COUNTERS:oid:0x5c0000000019f7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0705688 + }, + "COUNTERS:oid:0x5c000000001868": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.070581 + }, + "COUNTERS:oid:0x5c0000000013a0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "311", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0705967 + }, + "COUNTERS:oid:0x5c000000001fe1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1227", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.070625 + }, + "COUNTERS:oid:0x5c000000002396": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "208" + }, + "ttl": -0.001, + "expireat": 1651808848.0706403 + }, + "COUNTERS:oid:0x5c0000000017fd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "176" + }, + "ttl": -0.001, + "expireat": 1651808848.0706522 + }, + "COUNTERS:oid:0x5c000000001760": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0706673 + }, + "COUNTERS:oid:0x5c000000001583": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1080", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0707185 + }, + "COUNTERS:oid:0x5c000000001745": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.070734 + }, + "COUNTERS:oid:0x5c0000000013fa": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "309" + }, + "ttl": -0.001, + "expireat": 1651808848.0707495 + }, + "COUNTERS:oid:0x5c000000001ee8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "273" + }, + "ttl": -0.001, + "expireat": 1651808848.0707655 + }, + "COUNTERS:oid:0x5c000000001b4b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.070781 + }, + "COUNTERS:oid:0x5c000000001961": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0707936 + }, + "COUNTERS:oid:0x5c000000002543": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.070809 + }, + "COUNTERS:oid:0x5c000000002129": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "180" + }, + "ttl": -0.001, + "expireat": 1651808848.0708241 + }, + "COUNTERS:oid:0x5c00000000262c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "177", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0708365 + }, + "COUNTERS:oid:0x5c000000002099": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1403" + }, + "ttl": -0.001, + "expireat": 1651808848.070852 + }, + "COUNTERS:oid:0x5c00000000166f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0708673 + }, + "COUNTERS:oid:0x5c00000000156b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "93" + }, + "ttl": -0.001, + "expireat": 1651808848.0708826 + }, + "COUNTERS:oid:0x5c0000000013ee": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0708978 + }, + "COUNTERS:oid:0x5c0000000017d5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0709102 + }, + "COUNTERS:oid:0x5c000000001815": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0709217 + }, + "COUNTERS:oid:0x5c0000000023ca": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13" + }, + "ttl": -0.001, + "expireat": 1651808848.0709333 + }, + "COUNTERS:oid:0x5c000000001798": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.070948 + }, + "COUNTERS:oid:0x5c000000002528": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0709598 + }, + "COUNTERS:oid:0x5c00000000211a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13" + }, + "ttl": -0.001, + "expireat": 1651808848.0710185 + }, + "COUNTERS:oid:0x5c000000001627": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0710385 + }, + "COUNTERS:oid:0x5c000000002000": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1509" + }, + "ttl": -0.001, + "expireat": 1651808848.0710545 + }, + "COUNTERS:oid:0x5c000000001950": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0710669 + }, + "COUNTERS:oid:0x5c00000000141b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "180" + }, + "ttl": -0.001, + "expireat": 1651808848.0710814 + }, + "COUNTERS:oid:0x5c000000001ff4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "562" + }, + "ttl": -0.001, + "expireat": 1651808848.0710967 + }, + "COUNTERS:oid:0x5c0000000013af": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0711086 + }, + "COUNTERS:oid:0x5c000000002115": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "299" + }, + "ttl": -0.001, + "expireat": 1651808848.071124 + }, + "COUNTERS:oid:0x5c000000001d82": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.0711358 + }, + "COUNTERS:oid:0x5c00000000161f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0711505 + }, + "COUNTERS:oid:0x5c000000001402": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0711656 + }, + "COUNTERS:oid:0x5c000000001bed": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "100", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0711808 + }, + "COUNTERS:oid:0x5c000000002282": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "33" + }, + "ttl": -0.001, + "expireat": 1651808848.0711956 + }, + "COUNTERS:oid:0x5c000000001c73": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1364" + }, + "ttl": -0.001, + "expireat": 1651808848.0712078 + }, + "COUNTERS:oid:0x5c0000000025d9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0712228 + }, + "COUNTERS:oid:0x5c0000000015dc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13" + }, + "ttl": -0.001, + "expireat": 1651808848.0720153 + }, + "COUNTERS:oid:0x5c000000002096": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1359" + }, + "ttl": -0.001, + "expireat": 1651808848.0720346 + }, + "COUNTERS:oid:0x5c0000000021c7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "151" + }, + "ttl": -0.001, + "expireat": 1651808848.0720642 + }, + "COUNTERS:oid:0x5c000000001a0c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "442" + }, + "ttl": -0.001, + "expireat": 1651808848.0721555 + }, + "COUNTERS:oid:0x5c000000002441": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1287", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0721714 + }, + "COUNTERS:oid:0x5c000000001da4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0721886 + }, + "COUNTERS:oid:0x5c0000000014a7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0722024 + }, + "COUNTERS:oid:0x5c000000002479": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1299", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0722148 + }, + "COUNTERS:oid:0x5c000000001d45": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "161", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0722306 + }, + "COUNTERS:oid:0x5c000000001be2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0722435 + }, + "COUNTERS:oid:0x5c000000001795": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0722556 + }, + "COUNTERS:oid:0x5c0000000015a2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "152", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.072267 + }, + "COUNTERS:oid:0x5c000000001f02": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "195", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0722826 + }, + "COUNTERS:oid:0x5c000000001ee7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175" + }, + "ttl": -0.001, + "expireat": 1651808848.072295 + }, + "COUNTERS:oid:0x5c000000002652": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0723069 + }, + "COUNTERS:oid:0x5c0000000020d2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175" + }, + "ttl": -0.001, + "expireat": 1651808848.0723188 + }, + "COUNTERS:oid:0x5c000000001acf": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "183", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0723336 + }, + "COUNTERS:oid:0x5c000000001e62": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0723488 + }, + "COUNTERS:oid:0x5c00000000141c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "179" + }, + "ttl": -0.001, + "expireat": 1651808848.0723608 + }, + "COUNTERS:oid:0x5c0000000020cf": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0723763 + }, + "COUNTERS:oid:0x5c0000000015d1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "299", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0723925 + }, + "COUNTERS:oid:0x5c00000000211b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0724044 + }, + "COUNTERS:oid:0x5c000000001468": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0724165 + }, + "COUNTERS:oid:0x5c000000001e11": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "105" + }, + "ttl": -0.001, + "expireat": 1651808848.072428 + }, + "COUNTERS:oid:0x5c000000002169": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.073023 + }, + "COUNTERS:oid:0x5c000000001c29": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0730498 + }, + "COUNTERS:oid:0x5c0000000014b5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0730648 + }, + "COUNTERS:oid:0x5c000000001e1b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "393", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0731122 + }, + "COUNTERS:oid:0x5c000000002664": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "180" + }, + "ttl": -0.001, + "expireat": 1651808848.0731251 + }, + "COUNTERS:oid:0x5c0000000019e6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "107" + }, + "ttl": -0.001, + "expireat": 1651808848.0731416 + }, + "COUNTERS:oid:0x5c000000001dcd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0731575 + }, + "COUNTERS:oid:0x5c000000002283": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "457" + }, + "ttl": -0.001, + "expireat": 1651808848.0731704 + }, + "COUNTERS:oid:0x5c000000001b4e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0731828 + }, + "COUNTERS:oid:0x5c00000000211c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "171" + }, + "ttl": -0.001, + "expireat": 1651808848.073195 + }, + "COUNTERS:oid:0x5c0000000016ad": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "105" + }, + "ttl": -0.001, + "expireat": 1651808848.073207 + }, + "COUNTERS:oid:0x5c000000001bfe": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0732222 + }, + "COUNTERS:oid:0x5c0000000026f5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "9" + }, + "ttl": -0.001, + "expireat": 1651808848.073235 + }, + "COUNTERS:oid:0x5c000000002582": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0732472 + }, + "COUNTERS:oid:0x5c000000001b56": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.0732594 + }, + "COUNTERS:oid:0x5c00000000261a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0732715 + }, + "COUNTERS:oid:0x5c0000000027f3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "5", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0732915 + }, + "COUNTERS:oid:0x5c000000001bb8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "315", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.073324 + }, + "COUNTERS:oid:0x5c0000000013fb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0733397 + }, + "COUNTERS:oid:0x5c00000000146a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.073355 + }, + "COUNTERS:oid:0x5c000000001fea": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0733938 + }, + "COUNTERS:oid:0x5c000000001587": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "306" + }, + "ttl": -0.001, + "expireat": 1651808848.073413 + }, + "COUNTERS:oid:0x5c0000000020c3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0734293 + }, + "COUNTERS:oid:0x5c000000001538": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "192" + }, + "ttl": -0.001, + "expireat": 1651808848.0734415 + }, + "COUNTERS:oid:0x5c000000001d4a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.0734568 + }, + "COUNTERS:oid:0x5c0000000020eb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0734725 + }, + "COUNTERS:oid:0x5c00000000167a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "233", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0734847 + }, + "COUNTERS:oid:0x5c000000001943": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0734997 + }, + "COUNTERS:oid:0x5c000000001643": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.073515 + }, + "COUNTERS:oid:0x5c000000001cbc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "263", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.073531 + }, + "COUNTERS:oid:0x5c000000001442": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "313" + }, + "ttl": -0.001, + "expireat": 1651808848.0735462 + }, + "COUNTERS:oid:0x5c000000001838": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0735967 + }, + "COUNTERS:oid:0x5c000000002660": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1269", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0736098 + }, + "COUNTERS:oid:0x5c000000001fcd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "101" + }, + "ttl": -0.001, + "expireat": 1651808848.0736399 + }, + "COUNTERS:oid:0x5c000000002780": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "72" + }, + "ttl": -0.001, + "expireat": 1651808848.073653 + }, + "COUNTERS:oid:0x5c0000000023d2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0736694 + }, + "COUNTERS:oid:0x5c000000001ef5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.073683 + }, + "COUNTERS:oid:0x5c000000002573": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "137", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0736992 + }, + "COUNTERS:oid:0x5c0000000016aa": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1270" + }, + "ttl": -0.001, + "expireat": 1651808848.073733 + }, + "COUNTERS:oid:0x5c00000000209c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0737486 + }, + "COUNTERS:oid:0x5c000000002575": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "307", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0737653 + }, + "COUNTERS:oid:0x5c000000001b52": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0737798 + }, + "COUNTERS:oid:0x5c000000001794": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.073797 + }, + "COUNTERS:oid:0x5c0000000017b7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0738106 + }, + "COUNTERS:oid:0x5c000000002420": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "301" + }, + "ttl": -0.001, + "expireat": 1651808848.0738273 + }, + "COUNTERS:oid:0x5c00000000145e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "306" + }, + "ttl": -0.001, + "expireat": 1651808848.073845 + }, + "COUNTERS:oid:0x5c000000001e4f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0738757 + }, + "COUNTERS:oid:0x5c0000000015db": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.073893 + }, + "COUNTERS:oid:0x5c000000001630": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.0739067 + }, + "COUNTERS:oid:0x5c000000001af5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "194", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.07392 + }, + "COUNTERS:oid:0x5c000000001e28": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1318" + }, + "ttl": -0.001, + "expireat": 1651808848.0739334 + }, + "COUNTERS:oid:0x5c0000000026ea": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "301" + }, + "ttl": -0.001, + "expireat": 1651808848.0739663 + }, + "COUNTERS:oid:0x5c000000001e13": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.07398 + }, + "COUNTERS:oid:0x5c000000001a27": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "141" + }, + "ttl": -0.001, + "expireat": 1651808848.0739927 + }, + "COUNTERS:oid:0x5c000000001991": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "181" + }, + "ttl": -0.001, + "expireat": 1651808848.0740092 + }, + "COUNTERS:oid:0x5c000000001949": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0740263 + }, + "COUNTERS:oid:0x5c000000002113": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0740395 + }, + "COUNTERS:oid:0x5c000000001a95": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.074053 + }, + "COUNTERS:oid:0x5c00000000209f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0740862 + }, + "COUNTERS:oid:0x5c00000000256f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.07417 + }, + "COUNTERS:oid:0x5c000000001bf8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "200", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0741875 + }, + "COUNTERS:oid:0x5c000000001e7c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0742004 + }, + "COUNTERS:oid:0x5c0000000016fc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "16" + }, + "ttl": -0.001, + "expireat": 1651808848.0742316 + }, + "COUNTERS:oid:0x5c00000000253e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1261", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0742443 + }, + "COUNTERS:oid:0x5c0000000016cf": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "176", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.07426 + }, + "COUNTERS:oid:0x5c000000001cf1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "109", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0742755 + }, + "COUNTERS:oid:0x5c000000001fda": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0742915 + }, + "COUNTERS:oid:0x5c000000001ae5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0743039 + }, + "COUNTERS:oid:0x5c000000001870": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.074316 + }, + "COUNTERS:oid:0x5c000000001567": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "308" + }, + "ttl": -0.001, + "expireat": 1651808848.0743308 + }, + "COUNTERS:oid:0x5c000000002663": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "178", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0743463 + }, + "COUNTERS:oid:0x5c00000000266e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "23", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0743585 + }, + "COUNTERS:oid:0x5c000000001425": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0743704 + }, + "COUNTERS:oid:0x5c0000000026f4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "7" + }, + "ttl": -0.001, + "expireat": 1651808848.0743854 + }, + "COUNTERS:oid:0x5c0000000015b2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "147" + }, + "ttl": -0.001, + "expireat": 1651808848.074398 + }, + "COUNTERS:oid:0x5c0000000019c8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22" + }, + "ttl": -0.001, + "expireat": 1651808848.0744102 + }, + "COUNTERS:oid:0x5c000000002482": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0744221 + }, + "COUNTERS:oid:0x5c0000000016ee": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "18" + }, + "ttl": -0.001, + "expireat": 1651808848.0744371 + }, + "COUNTERS:oid:0x5c0000000025bd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "303", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0744524 + }, + "COUNTERS:oid:0x5c00000000192f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "24" + }, + "ttl": -0.001, + "expireat": 1651808848.0745275 + }, + "COUNTERS:oid:0x5c0000000016f2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "299", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0745468 + }, + "COUNTERS:oid:0x5c000000001394": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0745635 + }, + "COUNTERS:oid:0x5c000000002187": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "10", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.07458 + }, + "COUNTERS:oid:0x5c000000001e98": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0745962 + }, + "COUNTERS:oid:0x5c00000000211d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "301", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0746124 + }, + "COUNTERS:oid:0x5c000000001831": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0746245 + }, + "COUNTERS:oid:0x5c0000000020d8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0746367 + }, + "COUNTERS:oid:0x5c000000001e77": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "149" + }, + "ttl": -0.001, + "expireat": 1651808848.0746524 + }, + "COUNTERS:oid:0x5c000000001a00": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "21" + }, + "ttl": -0.001, + "expireat": 1651808848.0746653 + }, + "COUNTERS:oid:0x5c00000000213d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "267", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0746808 + }, + "COUNTERS:oid:0x5c00000000208c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.074694 + }, + "COUNTERS:oid:0x5c0000000020e5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "298" + }, + "ttl": -0.001, + "expireat": 1651808848.0747087 + }, + "COUNTERS:oid:0x5c000000001d0e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0747247 + }, + "COUNTERS:oid:0x5c000000002183": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "158", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0747752 + }, + "COUNTERS:oid:0x5c0000000018d5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0747886 + }, + "COUNTERS:oid:0x5c000000001734": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "130" + }, + "ttl": -0.001, + "expireat": 1651808848.0748057 + }, + "COUNTERS:oid:0x5c000000001d79": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0748227 + }, + "COUNTERS:oid:0x5c00000000263f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "297" + }, + "ttl": -0.001, + "expireat": 1651808848.0748613 + }, + "COUNTERS:oid:0x5c000000002180": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13" + }, + "ttl": -0.001, + "expireat": 1651808848.0748773 + }, + "COUNTERS:oid:0x5c00000000242d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "142", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0748906 + }, + "COUNTERS:oid:0x5c00000000231a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "10" + }, + "ttl": -0.001, + "expireat": 1651808848.0749035 + }, + "COUNTERS:oid:0x5c000000002778": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "147", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0749164 + }, + "COUNTERS:oid:0x5c000000001374": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0749454 + }, + "COUNTERS:oid:0x5c000000001bbc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0749786 + }, + "COUNTERS:oid:0x5c000000002003": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0750086 + }, + "COUNTERS:oid:0x5c0000000017f5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0750213 + }, + "COUNTERS:oid:0x5c000000001d0d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "103" + }, + "ttl": -0.001, + "expireat": 1651808848.0750341 + }, + "COUNTERS:oid:0x5c000000001947": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "181", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0750666 + }, + "COUNTERS:oid:0x5c000000001c56": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0750792 + }, + "COUNTERS:oid:0x5c0000000020b6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1002" + }, + "ttl": -0.001, + "expireat": 1651808848.0750945 + }, + "COUNTERS:oid:0x5c00000000183b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0751073 + }, + "COUNTERS:oid:0x5c000000001562": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "5", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0751197 + }, + "COUNTERS:oid:0x5c00000000214e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0751352 + }, + "COUNTERS:oid:0x5c000000001da7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.0751483 + }, + "COUNTERS:oid:0x5c000000001a8a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0751638 + }, + "COUNTERS:oid:0x5c000000002340": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "52" + }, + "ttl": -0.001, + "expireat": 1651808848.0751762 + }, + "COUNTERS:oid:0x5c00000000208b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.075192 + }, + "COUNTERS:oid:0x5c000000001361": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0752075 + }, + "COUNTERS:oid:0x5c00000000172b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0753057 + }, + "COUNTERS:oid:0x5c000000001e6e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "173", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0753255 + }, + "COUNTERS:oid:0x5c00000000188c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0753424 + }, + "COUNTERS:oid:0x5c000000001886": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "115", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0753586 + }, + "COUNTERS:oid:0x5c000000001b1f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.075371 + }, + "COUNTERS:oid:0x5c000000001c71": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175" + }, + "ttl": -0.001, + "expireat": 1651808848.0753837 + }, + "COUNTERS:oid:0x5c000000001677": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0753994 + }, + "COUNTERS:oid:0x5c000000001ae2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0754156 + }, + "COUNTERS:oid:0x5c00000000146d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0754282 + }, + "COUNTERS:oid:0x5c00000000180c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22" + }, + "ttl": -0.001, + "expireat": 1651808848.0754437 + }, + "COUNTERS:oid:0x5c0000000017fc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "162" + }, + "ttl": -0.001, + "expireat": 1651808848.0754604 + }, + "COUNTERS:oid:0x5c000000001ef6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0754764 + }, + "COUNTERS:oid:0x5c000000001ddd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1299" + }, + "ttl": -0.001, + "expireat": 1651808848.0754895 + }, + "COUNTERS:oid:0x5c000000001ad4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "15", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.075505 + }, + "COUNTERS:oid:0x5c0000000013d2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0755208 + }, + "COUNTERS:oid:0x5c000000001e29": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.075537 + }, + "COUNTERS:oid:0x5c000000001427": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0755527 + }, + "COUNTERS:oid:0x5c00000000260e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.075612 + }, + "COUNTERS:oid:0x5c000000001b79": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0756278 + }, + "COUNTERS:oid:0x5c000000002770": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0756404 + }, + "COUNTERS:oid:0x5c0000000020a4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1144" + }, + "ttl": -0.001, + "expireat": 1651808848.0756526 + }, + "COUNTERS:oid:0x5c000000001999": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0756683 + }, + "COUNTERS:oid:0x5c000000002422": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.075685 + }, + "COUNTERS:oid:0x5c000000001e38": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0756977 + }, + "COUNTERS:oid:0x5c000000001d99": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "92" + }, + "ttl": -0.001, + "expireat": 1651808848.07571 + }, + "COUNTERS:oid:0x5c0000000013b1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175" + }, + "ttl": -0.001, + "expireat": 1651808848.0757217 + }, + "COUNTERS:oid:0x5c00000000162a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0757337 + }, + "COUNTERS:oid:0x5c00000000245c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "137" + }, + "ttl": -0.001, + "expireat": 1651808848.0757494 + }, + "COUNTERS:oid:0x5c0000000015cc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "184", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0757623 + }, + "COUNTERS:oid:0x5c0000000020bd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1504" + }, + "ttl": -0.001, + "expireat": 1651808848.0757775 + }, + "COUNTERS:oid:0x5c00000000136c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0757904 + }, + "COUNTERS:oid:0x5c000000001448": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0758057 + }, + "COUNTERS:oid:0x5c000000001850": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "31", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0758219 + }, + "COUNTERS:oid:0x5c000000002658": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1278", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.075835 + }, + "COUNTERS:oid:0x5c000000001db1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22" + }, + "ttl": -0.001, + "expireat": 1651808848.075847 + }, + "COUNTERS:oid:0x5c0000000016a5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0758626 + }, + "COUNTERS:oid:0x5c000000001e84": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.075875 + }, + "COUNTERS:oid:0x5c0000000017d3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1319" + }, + "ttl": -0.001, + "expireat": 1651808848.0758874 + }, + "COUNTERS:oid:0x5c000000002638": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1275" + }, + "ttl": -0.001, + "expireat": 1651808848.075938 + }, + "COUNTERS:oid:0x5c0000000018a6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1240" + }, + "ttl": -0.001, + "expireat": 1651808848.075953 + }, + "COUNTERS:oid:0x5c0000000014f9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "9" + }, + "ttl": -0.001, + "expireat": 1651808848.0759652 + }, + "COUNTERS:oid:0x5c00000000186f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0759811 + }, + "COUNTERS:oid:0x5c000000001ba3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "102", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.075998 + }, + "COUNTERS:oid:0x5c0000000025bb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0760138 + }, + "COUNTERS:oid:0x5c0000000017f7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1317" + }, + "ttl": -0.001, + "expireat": 1651808848.0760267 + }, + "COUNTERS:oid:0x5c000000001376": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "298" + }, + "ttl": -0.001, + "expireat": 1651808848.0760424 + }, + "COUNTERS:oid:0x5c000000001d3b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "104", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0760589 + }, + "COUNTERS:oid:0x5c00000000191b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "99" + }, + "ttl": -0.001, + "expireat": 1651808848.0760715 + }, + "COUNTERS:oid:0x5c000000001ef0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0760872 + }, + "COUNTERS:oid:0x5c00000000264a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0761003 + }, + "COUNTERS:oid:0x5c0000000020a2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0761125 + }, + "COUNTERS:oid:0x5c000000001965": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "135" + }, + "ttl": -0.001, + "expireat": 1651808848.0761244 + }, + "COUNTERS:oid:0x5c0000000022f1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "5" + }, + "ttl": -0.001, + "expireat": 1651808848.0761397 + }, + "COUNTERS:oid:0x5c0000000025ed": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "302", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0761554 + }, + "COUNTERS:oid:0x5c0000000015c6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "238", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0761685 + }, + "COUNTERS:oid:0x5c0000000020c2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175" + }, + "ttl": -0.001, + "expireat": 1651808848.0761805 + }, + "COUNTERS:oid:0x5c0000000019c3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "38" + }, + "ttl": -0.001, + "expireat": 1651808848.076196 + }, + "COUNTERS:oid:0x5c00000000179d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "24", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0762084 + }, + "COUNTERS:oid:0x5c0000000022f7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "38", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.076269 + }, + "COUNTERS:oid:0x5c0000000027fe": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "616626" + }, + "ttl": -0.001, + "expireat": 1651808848.076285 + }, + "COUNTERS:oid:0x5c000000001c43": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "196" + }, + "ttl": -0.001, + "expireat": 1651808848.0762978 + }, + "COUNTERS:oid:0x5c0000000014ad": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.07631 + }, + "COUNTERS:oid:0x5c000000002568": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0763223 + }, + "COUNTERS:oid:0x5c000000001bea": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.0763347 + }, + "COUNTERS:oid:0x5c000000002454": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "138", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.07635 + }, + "COUNTERS:oid:0x5c000000001c79": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "185" + }, + "ttl": -0.001, + "expireat": 1651808848.0763626 + }, + "COUNTERS:oid:0x5c000000002410": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "301", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0763779 + }, + "COUNTERS:oid:0x5c000000002643": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "178" + }, + "ttl": -0.001, + "expireat": 1651808848.076394 + }, + "COUNTERS:oid:0x5c000000001372": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0764098 + }, + "COUNTERS:oid:0x5c000000002121": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175" + }, + "ttl": -0.001, + "expireat": 1651808848.0764258 + }, + "COUNTERS:oid:0x5c0000000014b6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0764415 + }, + "COUNTERS:oid:0x5c000000002425": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "135" + }, + "ttl": -0.001, + "expireat": 1651808848.0764542 + }, + "COUNTERS:oid:0x5c000000001ef9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "442", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.076466 + }, + "COUNTERS:oid:0x5c00000000257a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "132", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0764816 + }, + "COUNTERS:oid:0x5c000000001986": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0764937 + }, + "COUNTERS:oid:0x5c000000002469": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0765095 + }, + "COUNTERS:oid:0x5c00000000241d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "141", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0765219 + }, + "COUNTERS:oid:0x5c000000002102": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "179" + }, + "ttl": -0.001, + "expireat": 1651808848.076534 + }, + "COUNTERS:oid:0x5c00000000144e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "25" + }, + "ttl": -0.001, + "expireat": 1651808848.0765867 + }, + "COUNTERS:oid:0x5c0000000020dd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "304" + }, + "ttl": -0.001, + "expireat": 1651808848.0766063 + }, + "COUNTERS:oid:0x5c000000001ca9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "36", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0766222 + }, + "COUNTERS:oid:0x5c000000001879": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "20" + }, + "ttl": -0.001, + "expireat": 1651808848.0766382 + }, + "COUNTERS:oid:0x5c0000000017ea": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "17" + }, + "ttl": -0.001, + "expireat": 1651808848.0766544 + }, + "COUNTERS:oid:0x5c00000000160d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "59" + }, + "ttl": -0.001, + "expireat": 1651808848.0766702 + }, + "COUNTERS:oid:0x5c000000001f49": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "20", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0766828 + }, + "COUNTERS:oid:0x5c000000001a44": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175" + }, + "ttl": -0.001, + "expireat": 1651808848.076695 + }, + "COUNTERS:oid:0x5c000000001649": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "179", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0767105 + }, + "COUNTERS:oid:0x5c000000001b2d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0767226 + }, + "COUNTERS:oid:0x5c0000000024e0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0767379 + }, + "COUNTERS:oid:0x5c000000001e03": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1311" + }, + "ttl": -0.001, + "expireat": 1651808848.0767503 + }, + "COUNTERS:oid:0x5c0000000016d1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "15", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0767658 + }, + "COUNTERS:oid:0x5c000000001a86": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "202" + }, + "ttl": -0.001, + "expireat": 1651808848.0767782 + }, + "COUNTERS:oid:0x5c00000000174e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0767937 + }, + "COUNTERS:oid:0x5c000000001430": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "339", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0768094 + }, + "COUNTERS:oid:0x5c000000001d37": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0768254 + }, + "COUNTERS:oid:0x5c00000000162b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0768774 + }, + "COUNTERS:oid:0x5c000000001af4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "192", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0768967 + }, + "COUNTERS:oid:0x5c0000000016e9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "24" + }, + "ttl": -0.001, + "expireat": 1651808848.0769098 + }, + "COUNTERS:oid:0x5c0000000023fa": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0769258 + }, + "COUNTERS:oid:0x5c0000000014ab": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12078" + }, + "ttl": -0.001, + "expireat": 1651808848.0769382 + }, + "COUNTERS:oid:0x5c000000002322": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "6", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.076951 + }, + "COUNTERS:oid:0x5c000000001f3d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0769632 + }, + "COUNTERS:oid:0x5c000000002305": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "5" + }, + "ttl": -0.001, + "expireat": 1651808848.077011 + }, + "COUNTERS:oid:0x5c000000001b21": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0770247 + }, + "COUNTERS:oid:0x5c0000000023f8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "301", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.077041 + }, + "COUNTERS:oid:0x5c000000001460": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1307" + }, + "ttl": -0.001, + "expireat": 1651808848.0770538 + }, + "COUNTERS:oid:0x5c000000001926": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0770688 + }, + "COUNTERS:oid:0x5c000000001463": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12185" + }, + "ttl": -0.001, + "expireat": 1651808848.077085 + }, + "COUNTERS:oid:0x5c0000000013e8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "315", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0771008 + }, + "COUNTERS:oid:0x5c0000000015c2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0771136 + }, + "COUNTERS:oid:0x5c00000000186b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0771294 + }, + "COUNTERS:oid:0x5c0000000014be": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11665", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0771456 + }, + "COUNTERS:oid:0x5c000000001720": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0771794 + }, + "COUNTERS:oid:0x5c000000002413": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0772316 + }, + "COUNTERS:oid:0x5c0000000013d0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.077267 + }, + "COUNTERS:oid:0x5c000000002431": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1271", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0772805 + }, + "COUNTERS:oid:0x5c000000001c51": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0772965 + }, + "COUNTERS:oid:0x5c000000001b88": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "184", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.077313 + }, + "COUNTERS:oid:0x5c0000000017cd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0773256 + }, + "COUNTERS:oid:0x5c000000002329": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "5" + }, + "ttl": -0.001, + "expireat": 1651808848.0773416 + }, + "COUNTERS:oid:0x5c000000001e7d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0773575 + }, + "COUNTERS:oid:0x5c0000000018bf": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "33", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0773735 + }, + "COUNTERS:oid:0x5c000000001cc0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0773895 + }, + "COUNTERS:oid:0x5c000000001953": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "33" + }, + "ttl": -0.001, + "expireat": 1651808848.077406 + }, + "COUNTERS:oid:0x5c00000000188d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13" + }, + "ttl": -0.001, + "expireat": 1651808848.0774188 + }, + "COUNTERS:oid:0x5c000000001b03": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0774343 + }, + "COUNTERS:oid:0x5c00000000232e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "5" + }, + "ttl": -0.001, + "expireat": 1651808848.0774472 + }, + "COUNTERS:oid:0x5c000000001a9a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.077463 + }, + "COUNTERS:oid:0x5c0000000014ae": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0774784 + }, + "COUNTERS:oid:0x5c0000000017c5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "205" + }, + "ttl": -0.001, + "expireat": 1651808848.077491 + }, + "COUNTERS:oid:0x5c000000001c84": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "29" + }, + "ttl": -0.001, + "expireat": 1651808848.0775065 + }, + "COUNTERS:oid:0x5c0000000015bb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0775585 + }, + "COUNTERS:oid:0x5c0000000022f2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "5" + }, + "ttl": -0.001, + "expireat": 1651808848.0775752 + }, + "COUNTERS:oid:0x5c000000001d8c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "23", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0775876 + }, + "COUNTERS:oid:0x5c0000000016fb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1270" + }, + "ttl": -0.001, + "expireat": 1651808848.0776 + }, + "COUNTERS:oid:0x5c000000001efd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "16" + }, + "ttl": -0.001, + "expireat": 1651808848.0776117 + }, + "COUNTERS:oid:0x5c0000000020a1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.077628 + }, + "COUNTERS:oid:0x5c00000000245a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0776443 + }, + "COUNTERS:oid:0x5c0000000020a5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "297" + }, + "ttl": -0.001, + "expireat": 1651808848.0776603 + }, + "COUNTERS:oid:0x5c0000000019b8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "157" + }, + "ttl": -0.001, + "expireat": 1651808848.077673 + }, + "COUNTERS:oid:0x5c000000002317": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "39", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0776892 + }, + "COUNTERS:oid:0x5c00000000252d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "301", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0777051 + }, + "COUNTERS:oid:0x5c000000001e3c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.077718 + }, + "COUNTERS:oid:0x5c000000001626": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "155" + }, + "ttl": -0.001, + "expireat": 1651808848.0777304 + }, + "COUNTERS:oid:0x5c00000000192a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0777462 + }, + "COUNTERS:oid:0x5c0000000013a8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "176" + }, + "ttl": -0.001, + "expireat": 1651808848.0777793 + }, + "COUNTERS:oid:0x5c0000000017b4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "182" + }, + "ttl": -0.001, + "expireat": 1651808848.0777943 + }, + "COUNTERS:oid:0x5c0000000019aa": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1255" + }, + "ttl": -0.001, + "expireat": 1651808848.0778062 + }, + "COUNTERS:oid:0x5c000000001aa7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0778186 + }, + "COUNTERS:oid:0x5c000000002098": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.07783 + }, + "COUNTERS:oid:0x5c000000001f38": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "150", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.077845 + }, + "COUNTERS:oid:0x5c000000001be7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.077896 + }, + "COUNTERS:oid:0x5c0000000023cb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13" + }, + "ttl": -0.001, + "expireat": 1651808848.0779152 + }, + "COUNTERS:oid:0x5c0000000013a5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "18" + }, + "ttl": -0.001, + "expireat": 1651808848.0779278 + }, + "COUNTERS:oid:0x5c000000001aeb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "403" + }, + "ttl": -0.001, + "expireat": 1651808848.0779397 + }, + "COUNTERS:oid:0x5c0000000018ed": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "202", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0779514 + }, + "COUNTERS:oid:0x5c0000000020f7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0779667 + }, + "COUNTERS:oid:0x5c000000001a85": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "198" + }, + "ttl": -0.001, + "expireat": 1651808848.0779824 + }, + "COUNTERS:oid:0x5c0000000023e4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "143", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.077998 + }, + "COUNTERS:oid:0x5c0000000016ff": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "133" + }, + "ttl": -0.001, + "expireat": 1651808848.0780098 + }, + "COUNTERS:oid:0x5c00000000185e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "17" + }, + "ttl": -0.001, + "expireat": 1651808848.0780215 + }, + "COUNTERS:oid:0x5c00000000146b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1359" + }, + "ttl": -0.001, + "expireat": 1651808848.0780332 + }, + "COUNTERS:oid:0x5c000000001571": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0780485 + }, + "COUNTERS:oid:0x5c000000002600": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1297", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0780606 + }, + "COUNTERS:oid:0x5c000000001ac4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0780723 + }, + "COUNTERS:oid:0x5c000000001b6f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1303" + }, + "ttl": -0.001, + "expireat": 1651808848.0780845 + }, + "COUNTERS:oid:0x5c0000000016df": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0781167 + }, + "COUNTERS:oid:0x5c000000001bb0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "298", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0781507 + }, + "COUNTERS:oid:0x5c0000000017c1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "27" + }, + "ttl": -0.001, + "expireat": 1651808848.0781639 + }, + "COUNTERS:oid:0x5c000000001e5a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "103" + }, + "ttl": -0.001, + "expireat": 1651808848.078198 + }, + "COUNTERS:oid:0x5c00000000159c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0782113 + }, + "COUNTERS:oid:0x5c00000000257b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.078304 + }, + "COUNTERS:oid:0x5c0000000014da": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0783243 + }, + "COUNTERS:oid:0x5c0000000025fe": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0783386 + }, + "COUNTERS:oid:0x5c000000001a8d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.078352 + }, + "COUNTERS:oid:0x5c000000001779": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "25", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0783646 + }, + "COUNTERS:oid:0x5c000000001cef": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.078381 + }, + "COUNTERS:oid:0x5c000000001719": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0783944 + }, + "COUNTERS:oid:0x5c00000000246d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "173" + }, + "ttl": -0.001, + "expireat": 1651808848.0784068 + }, + "COUNTERS:oid:0x5c000000001c95": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "94" + }, + "ttl": -0.001, + "expireat": 1651808848.078423 + }, + "COUNTERS:oid:0x5c0000000020f3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0784364 + }, + "COUNTERS:oid:0x5c0000000027fb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "4947", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0784528 + }, + "COUNTERS:oid:0x5c000000001a1d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.078466 + }, + "COUNTERS:oid:0x5c000000002519": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "169" + }, + "ttl": -0.001, + "expireat": 1651808848.078498 + }, + "COUNTERS:oid:0x5c0000000021f7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1511", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0785265 + }, + "COUNTERS:oid:0x5c0000000021da": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "17" + }, + "ttl": -0.001, + "expireat": 1651808848.078542 + }, + "COUNTERS:oid:0x5c0000000025b6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1264", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0785546 + }, + "COUNTERS:oid:0x5c000000001cbf": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0785666 + }, + "COUNTERS:oid:0x5c00000000196f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0785787 + }, + "COUNTERS:oid:0x5c00000000175f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1253" + }, + "ttl": -0.001, + "expireat": 1651808848.0785906 + }, + "COUNTERS:oid:0x5c000000002132": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.0786026 + }, + "COUNTERS:oid:0x5c00000000209b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0786338 + }, + "COUNTERS:oid:0x5c00000000171a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "172", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0787086 + }, + "COUNTERS:oid:0x5c00000000176e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0787296 + }, + "COUNTERS:oid:0x5c0000000013d4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "169" + }, + "ttl": -0.001, + "expireat": 1651808848.0787427 + }, + "COUNTERS:oid:0x5c000000002537": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0787587 + }, + "COUNTERS:oid:0x5c000000001ab3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0787742 + }, + "COUNTERS:oid:0x5c000000001dd6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "16" + }, + "ttl": -0.001, + "expireat": 1651808848.0787873 + }, + "COUNTERS:oid:0x5c000000001c19": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "21" + }, + "ttl": -0.001, + "expireat": 1651808848.0788026 + }, + "COUNTERS:oid:0x5c000000002270": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "4", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0788183 + }, + "COUNTERS:oid:0x5c00000000234f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "28", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0788345 + }, + "COUNTERS:oid:0x5c000000001a08": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.078847 + }, + "COUNTERS:oid:0x5c000000002409": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1260", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0788596 + }, + "COUNTERS:oid:0x5c000000001c5f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "28" + }, + "ttl": -0.001, + "expireat": 1651808848.0788746 + }, + "COUNTERS:oid:0x5c00000000144d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1199" + }, + "ttl": -0.001, + "expireat": 1651808848.078887 + }, + "COUNTERS:oid:0x5c00000000251b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.078902 + }, + "COUNTERS:oid:0x5c000000002527": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0789187 + }, + "COUNTERS:oid:0x5c000000001c16": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.078931 + }, + "COUNTERS:oid:0x5c000000001aa0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "103", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0789468 + }, + "COUNTERS:oid:0x5c000000001975": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0789592 + }, + "COUNTERS:oid:0x5c0000000024ff": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.079019 + }, + "COUNTERS:oid:0x5c0000000019f5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.0790384 + }, + "COUNTERS:oid:0x5c000000002489": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "6", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.079055 + }, + "COUNTERS:oid:0x5c00000000264e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0790677 + }, + "COUNTERS:oid:0x5c0000000019be": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.07908 + }, + "COUNTERS:oid:0x5c000000001841": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0790925 + }, + "COUNTERS:oid:0x5c0000000022fc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "470", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0791044 + }, + "COUNTERS:oid:0x5c000000001616": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22" + }, + "ttl": -0.001, + "expireat": 1651808848.079117 + }, + "COUNTERS:oid:0x5c000000001675": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.079129 + }, + "COUNTERS:oid:0x5c000000001e5f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0791411 + }, + "COUNTERS:oid:0x5c000000001360": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0791526 + }, + "COUNTERS:oid:0x5c000000001a7d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "31" + }, + "ttl": -0.001, + "expireat": 1651808848.0791678 + }, + "COUNTERS:oid:0x5c000000002661": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0791843 + }, + "COUNTERS:oid:0x5c000000002082": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1412" + }, + "ttl": -0.001, + "expireat": 1651808848.079197 + }, + "COUNTERS:oid:0x5c000000002316": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "5" + }, + "ttl": -0.001, + "expireat": 1651808848.0792089 + }, + "COUNTERS:oid:0x5c000000001e2c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.079221 + }, + "COUNTERS:oid:0x5c000000002506": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1272", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0792966 + }, + "COUNTERS:oid:0x5c00000000134a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "158" + }, + "ttl": -0.001, + "expireat": 1651808848.0793111 + }, + "COUNTERS:oid:0x5c0000000014c7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "16" + }, + "ttl": -0.001, + "expireat": 1651808848.0793452 + }, + "COUNTERS:oid:0x5c00000000193c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "16" + }, + "ttl": -0.001, + "expireat": 1651808848.0793588 + }, + "COUNTERS:oid:0x5c000000001915": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1294" + }, + "ttl": -0.001, + "expireat": 1651808848.079371 + }, + "COUNTERS:oid:0x5c000000001655": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "64", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0793877 + }, + "COUNTERS:oid:0x5c000000001cb5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1305" + }, + "ttl": -0.001, + "expireat": 1651808848.07945 + }, + "COUNTERS:oid:0x5c000000001ea7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0794656 + }, + "COUNTERS:oid:0x5c000000001e59": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "18" + }, + "ttl": -0.001, + "expireat": 1651808848.0794783 + }, + "COUNTERS:oid:0x5c000000002587": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0794945 + }, + "COUNTERS:oid:0x5c00000000257d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "300", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.079512 + }, + "COUNTERS:oid:0x5c000000001b37": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "24", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0795248 + }, + "COUNTERS:oid:0x5c0000000018e9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "20", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0795376 + }, + "COUNTERS:oid:0x5c000000002633": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "177", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.079569 + }, + "COUNTERS:oid:0x5c0000000019fb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "278", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0795848 + }, + "COUNTERS:oid:0x5c000000001990": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0795972 + }, + "COUNTERS:oid:0x5c00000000185d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "17", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0796125 + }, + "COUNTERS:oid:0x5c000000001abf": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0796292 + }, + "COUNTERS:oid:0x5c00000000242e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0796452 + }, + "COUNTERS:oid:0x5c00000000160e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "205" + }, + "ttl": -0.001, + "expireat": 1651808848.0796578 + }, + "COUNTERS:oid:0x5c0000000023c5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1492" + }, + "ttl": -0.001, + "expireat": 1651808848.0796697 + }, + "COUNTERS:oid:0x5c000000002116": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1218" + }, + "ttl": -0.001, + "expireat": 1651808848.0796816 + }, + "COUNTERS:oid:0x5c000000001b2f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0796933 + }, + "COUNTERS:oid:0x5c000000001e3e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0797057 + }, + "COUNTERS:oid:0x5c000000001d3e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "20" + }, + "ttl": -0.001, + "expireat": 1651808848.0797174 + }, + "COUNTERS:oid:0x5c0000000019d5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175" + }, + "ttl": -0.001, + "expireat": 1651808848.0797286 + }, + "COUNTERS:oid:0x5c000000001847": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0797403 + }, + "COUNTERS:oid:0x5c000000002476": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "15" + }, + "ttl": -0.001, + "expireat": 1651808848.0798004 + }, + "COUNTERS:oid:0x5c000000001597": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "246" + }, + "ttl": -0.001, + "expireat": 1651808848.0798202 + }, + "COUNTERS:oid:0x5c00000000154b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0798366 + }, + "COUNTERS:oid:0x5c000000001d6d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "272", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0798523 + }, + "COUNTERS:oid:0x5c0000000016b9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0798683 + }, + "COUNTERS:oid:0x5c0000000025e7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0798845 + }, + "COUNTERS:oid:0x5c0000000015bc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.079897 + }, + "COUNTERS:oid:0x5c000000001858": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "198", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0799124 + }, + "COUNTERS:oid:0x5c000000001623": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0799282 + }, + "COUNTERS:oid:0x5c000000002764": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "208" + }, + "ttl": -0.001, + "expireat": 1651808848.0799403 + }, + "COUNTERS:oid:0x5c0000000025d7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0799563 + }, + "COUNTERS:oid:0x5c0000000023f9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1282", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0799694 + }, + "COUNTERS:oid:0x5c00000000276e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "177", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0799813 + }, + "COUNTERS:oid:0x5c00000000264d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0799968 + }, + "COUNTERS:oid:0x5c000000002601": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0800126 + }, + "COUNTERS:oid:0x5c00000000215f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.080029 + }, + "COUNTERS:oid:0x5c0000000020b4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "504" + }, + "ttl": -0.001, + "expireat": 1651808848.0800412 + }, + "COUNTERS:oid:0x5c000000001d09": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "16" + }, + "ttl": -0.001, + "expireat": 1651808848.080091 + }, + "COUNTERS:oid:0x5c000000001aea": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "102", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0801098 + }, + "COUNTERS:oid:0x5c000000001eb3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "20", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0801232 + }, + "COUNTERS:oid:0x5c000000002468": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "302" + }, + "ttl": -0.001, + "expireat": 1651808848.0801392 + }, + "COUNTERS:oid:0x5c000000001410": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "21" + }, + "ttl": -0.001, + "expireat": 1651808848.0801556 + }, + "COUNTERS:oid:0x5c00000000264f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "301", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0801713 + }, + "COUNTERS:oid:0x5c000000001da5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0801835 + }, + "COUNTERS:oid:0x5c000000002559": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0801995 + }, + "COUNTERS:oid:0x5c0000000020c7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0802162 + }, + "COUNTERS:oid:0x5c000000002091": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1169" + }, + "ttl": -0.001, + "expireat": 1651808848.0802321 + }, + "COUNTERS:oid:0x5c00000000196a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0802479 + }, + "COUNTERS:oid:0x5c000000001826": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0802639 + }, + "COUNTERS:oid:0x5c0000000013a6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0802798 + }, + "COUNTERS:oid:0x5c000000002578": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0802925 + }, + "COUNTERS:oid:0x5c000000001e0e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.080308 + }, + "COUNTERS:oid:0x5c000000001d2a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "126" + }, + "ttl": -0.001, + "expireat": 1651808848.0803206 + }, + "COUNTERS:oid:0x5c000000001945": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0803375 + }, + "COUNTERS:oid:0x5c000000002523": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13" + }, + "ttl": -0.001, + "expireat": 1651808848.0803974 + }, + "COUNTERS:oid:0x5c000000002542": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "164" + }, + "ttl": -0.001, + "expireat": 1651808848.0804317 + }, + "COUNTERS:oid:0x5c000000001a58": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "33", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0804663 + }, + "COUNTERS:oid:0x5c00000000266c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "142" + }, + "ttl": -0.001, + "expireat": 1651808848.0804799 + }, + "COUNTERS:oid:0x5c000000001407": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22" + }, + "ttl": -0.001, + "expireat": 1651808848.0804927 + }, + "COUNTERS:oid:0x5c000000001579": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0805094 + }, + "COUNTERS:oid:0x5c000000001da0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "186", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0805264 + }, + "COUNTERS:oid:0x5c000000001bce": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22" + }, + "ttl": -0.001, + "expireat": 1651808848.0805433 + }, + "COUNTERS:oid:0x5c00000000242f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0805564 + }, + "COUNTERS:oid:0x5c000000001939": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "295" + }, + "ttl": -0.001, + "expireat": 1651808848.0805728 + }, + "COUNTERS:oid:0x5c000000001971": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.080586 + }, + "COUNTERS:oid:0x5c000000002143": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0805986 + }, + "COUNTERS:oid:0x5c0000000018e3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "417", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0806112 + }, + "COUNTERS:oid:0x5c000000001722": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "185" + }, + "ttl": -0.001, + "expireat": 1651808848.080624 + }, + "COUNTERS:oid:0x5c000000001603": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.080656 + }, + "COUNTERS:oid:0x5c0000000020d6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1857" + }, + "ttl": -0.001, + "expireat": 1651808848.0806694 + }, + "COUNTERS:oid:0x5c000000001ffd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "95", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0806818 + }, + "COUNTERS:oid:0x5c000000002407": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "148" + }, + "ttl": -0.001, + "expireat": 1651808848.080694 + }, + "COUNTERS:oid:0x5c00000000161e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "91" + }, + "ttl": -0.001, + "expireat": 1651808848.0807064 + }, + "COUNTERS:oid:0x5c000000001e5b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "181" + }, + "ttl": -0.001, + "expireat": 1651808848.080719 + }, + "COUNTERS:oid:0x5c00000000262b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "177", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0807347 + }, + "COUNTERS:oid:0x5c000000001b0a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0807853 + }, + "COUNTERS:oid:0x5c000000001fee": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0808046 + }, + "COUNTERS:oid:0x5c00000000251e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1266" + }, + "ttl": -0.001, + "expireat": 1651808848.0808182 + }, + "COUNTERS:oid:0x5c000000002534": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.080831 + }, + "COUNTERS:oid:0x5c000000001436": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.080847 + }, + "COUNTERS:oid:0x5c000000001c99": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "15", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0808637 + }, + "COUNTERS:oid:0x5c0000000019b1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "310" + }, + "ttl": -0.001, + "expireat": 1651808848.0808806 + }, + "COUNTERS:oid:0x5c0000000025c2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.080894 + }, + "COUNTERS:oid:0x5c0000000013f7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "104", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0809107 + }, + "COUNTERS:oid:0x5c00000000166c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "172", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0809271 + }, + "COUNTERS:oid:0x5c000000001ff9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "2019" + }, + "ttl": -0.001, + "expireat": 1651808848.0809402 + }, + "COUNTERS:oid:0x5c000000002602": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0809526 + }, + "COUNTERS:oid:0x5c00000000214d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "254" + }, + "ttl": -0.001, + "expireat": 1651808848.0809956 + }, + "COUNTERS:oid:0x5c000000001902": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0810132 + }, + "COUNTERS:oid:0x5c00000000230e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "6" + }, + "ttl": -0.001, + "expireat": 1651808848.0810258 + }, + "COUNTERS:oid:0x5c000000001441": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.081038 + }, + "COUNTERS:oid:0x5c000000001ce5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0810537 + }, + "COUNTERS:oid:0x5c000000001454": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "337" + }, + "ttl": -0.001, + "expireat": 1651808848.0810704 + }, + "COUNTERS:oid:0x5c000000001c46": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1340" + }, + "ttl": -0.001, + "expireat": 1651808848.0810833 + }, + "COUNTERS:oid:0x5c000000001f2e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0810995 + }, + "COUNTERS:oid:0x5c000000001866": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0811517 + }, + "COUNTERS:oid:0x5c0000000023e1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1306", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0811675 + }, + "COUNTERS:oid:0x5c0000000018d0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "154" + }, + "ttl": -0.001, + "expireat": 1651808848.0811837 + }, + "COUNTERS:oid:0x5c000000001ebd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0812013 + }, + "COUNTERS:oid:0x5c000000001e64": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "108", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0812182 + }, + "COUNTERS:oid:0x5c000000001f10": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.0812309 + }, + "COUNTERS:oid:0x5c000000001dc6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "99" + }, + "ttl": -0.001, + "expireat": 1651808848.0812435 + }, + "COUNTERS:oid:0x5c000000001e08": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "179" + }, + "ttl": -0.001, + "expireat": 1651808848.081259 + }, + "COUNTERS:oid:0x5c000000001dc3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0812752 + }, + "COUNTERS:oid:0x5c0000000020b1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0812912 + }, + "COUNTERS:oid:0x5c000000001382": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0813074 + }, + "COUNTERS:oid:0x5c000000002356": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "4" + }, + "ttl": -0.001, + "expireat": 1651808848.0813203 + }, + "COUNTERS:oid:0x5c000000001bfa": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "270" + }, + "ttl": -0.001, + "expireat": 1651808848.081336 + }, + "COUNTERS:oid:0x5c000000001378": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0813522 + }, + "COUNTERS:oid:0x5c0000000020de": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1238" + }, + "ttl": -0.001, + "expireat": 1651808848.0813653 + }, + "COUNTERS:oid:0x5c0000000020cb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175" + }, + "ttl": -0.001, + "expireat": 1651808848.0813813 + }, + "COUNTERS:oid:0x5c000000001c2c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0813942 + }, + "COUNTERS:oid:0x5c00000000212a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0814106 + }, + "COUNTERS:oid:0x5c000000001ee3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.0814607 + }, + "COUNTERS:oid:0x5c000000001d83": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0814805 + }, + "COUNTERS:oid:0x5c0000000014a5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.081494 + }, + "COUNTERS:oid:0x5c0000000015c4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.0815063 + }, + "COUNTERS:oid:0x5c000000001992": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "156" + }, + "ttl": -0.001, + "expireat": 1651808848.0815997 + }, + "COUNTERS:oid:0x5c000000002181": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0816247 + }, + "COUNTERS:oid:0x5c000000001d5e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0816453 + }, + "COUNTERS:oid:0x5c000000001882": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0816638 + }, + "COUNTERS:oid:0x5c000000001d95": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0816784 + }, + "COUNTERS:oid:0x5c000000001582": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13" + }, + "ttl": -0.001, + "expireat": 1651808848.0816922 + }, + "COUNTERS:oid:0x5c000000001702": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0817099 + }, + "COUNTERS:oid:0x5c0000000018b4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "117" + }, + "ttl": -0.001, + "expireat": 1651808848.081724 + }, + "COUNTERS:oid:0x5c000000001423": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0817416 + }, + "COUNTERS:oid:0x5c000000001c3a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "36" + }, + "ttl": -0.001, + "expireat": 1651808848.0817595 + }, + "COUNTERS:oid:0x5c0000000016c0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.0817735 + }, + "COUNTERS:oid:0x5c000000001c4b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "179" + }, + "ttl": -0.001, + "expireat": 1651808848.081791 + }, + "COUNTERS:oid:0x5c000000001ba4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "436", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0818102 + }, + "COUNTERS:oid:0x5c00000000182d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "27" + }, + "ttl": -0.001, + "expireat": 1651808848.0818245 + }, + "COUNTERS:oid:0x5c000000001e7b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0818427 + }, + "COUNTERS:oid:0x5c000000002775": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "143" + }, + "ttl": -0.001, + "expireat": 1651808848.0818608 + }, + "COUNTERS:oid:0x5c00000000186e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0819557 + }, + "COUNTERS:oid:0x5c0000000017a2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22" + }, + "ttl": -0.001, + "expireat": 1651808848.0819714 + }, + "COUNTERS:oid:0x5c00000000261b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175" + }, + "ttl": -0.001, + "expireat": 1651808848.0819879 + }, + "COUNTERS:oid:0x5c000000002417": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0820017 + }, + "COUNTERS:oid:0x5c000000001c33": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.082018 + }, + "COUNTERS:oid:0x5c000000001a07": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0820339 + }, + "COUNTERS:oid:0x5c00000000215a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0820467 + }, + "COUNTERS:oid:0x5c000000001712": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "20" + }, + "ttl": -0.001, + "expireat": 1651808848.0820622 + }, + "COUNTERS:oid:0x5c000000002545": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "303" + }, + "ttl": -0.001, + "expireat": 1651808848.0820787 + }, + "COUNTERS:oid:0x5c000000001dfc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "20" + }, + "ttl": -0.001, + "expireat": 1651808848.0820916 + }, + "COUNTERS:oid:0x5c0000000016ab": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0821073 + }, + "COUNTERS:oid:0x5c000000001752": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "80" + }, + "ttl": -0.001, + "expireat": 1651808848.0821238 + }, + "COUNTERS:oid:0x5c000000001415": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13" + }, + "ttl": -0.001, + "expireat": 1651808848.0821362 + }, + "COUNTERS:oid:0x5c000000001b34": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "105", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0821521 + }, + "COUNTERS:oid:0x5c0000000014d7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1359" + }, + "ttl": -0.001, + "expireat": 1651808848.0821652 + }, + "COUNTERS:oid:0x5c0000000016c4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "150", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0821774 + }, + "COUNTERS:oid:0x5c000000001d55": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0821896 + }, + "COUNTERS:oid:0x5c0000000018f5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "101", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0822053 + }, + "COUNTERS:oid:0x5c000000001ac7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "33", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0822215 + }, + "COUNTERS:oid:0x5c0000000024fb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0822592 + }, + "COUNTERS:oid:0x5c000000001d08": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "16", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0822783 + }, + "COUNTERS:oid:0x5c0000000020bb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "15" + }, + "ttl": -0.001, + "expireat": 1651808848.0822947 + }, + "COUNTERS:oid:0x5c0000000021f3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "104" + }, + "ttl": -0.001, + "expireat": 1651808848.0823078 + }, + "COUNTERS:oid:0x5c0000000023d3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0823202 + }, + "COUNTERS:oid:0x5c000000001b30": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.082336 + }, + "COUNTERS:oid:0x5c00000000163d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "272", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.082352 + }, + "COUNTERS:oid:0x5c00000000197c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "17" + }, + "ttl": -0.001, + "expireat": 1651808848.082368 + }, + "COUNTERS:oid:0x5c0000000017b6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0823839 + }, + "COUNTERS:oid:0x5c00000000231d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "5" + }, + "ttl": -0.001, + "expireat": 1651808848.0824003 + }, + "COUNTERS:oid:0x5c00000000166d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "144" + }, + "ttl": -0.001, + "expireat": 1651808848.0824127 + }, + "COUNTERS:oid:0x5c0000000014b1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1326" + }, + "ttl": -0.001, + "expireat": 1651808848.0824258 + }, + "COUNTERS:oid:0x5c0000000019b2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1298" + }, + "ttl": -0.001, + "expireat": 1651808848.082438 + }, + "COUNTERS:oid:0x5c000000001be3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "186" + }, + "ttl": -0.001, + "expireat": 1651808848.0824537 + }, + "COUNTERS:oid:0x5c000000001d94": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0824695 + }, + "COUNTERS:oid:0x5c000000001b7e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "105", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0824854 + }, + "COUNTERS:oid:0x5c0000000016a4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "153" + }, + "ttl": -0.001, + "expireat": 1651808848.0824983 + }, + "COUNTERS:oid:0x5c000000001fec": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1384", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0825143 + }, + "COUNTERS:oid:0x5c00000000173c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.0825686 + }, + "COUNTERS:oid:0x5c000000001dc7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0825882 + }, + "COUNTERS:oid:0x5c00000000201b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "9" + }, + "ttl": -0.001, + "expireat": 1651808848.0826013 + }, + "COUNTERS:oid:0x5c000000001c97": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "269", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0826182 + }, + "COUNTERS:oid:0x5c0000000015c5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "69", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.082634 + }, + "COUNTERS:oid:0x5c000000001a4f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.08265 + }, + "COUNTERS:oid:0x5c000000002588": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.082662 + }, + "COUNTERS:oid:0x5c000000001c0c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0826776 + }, + "COUNTERS:oid:0x5c0000000027c4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "123" + }, + "ttl": -0.001, + "expireat": 1651808848.0826938 + }, + "COUNTERS:oid:0x5c000000002348": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "47", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.082707 + }, + "COUNTERS:oid:0x5c000000001bc7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0827193 + }, + "COUNTERS:oid:0x5c000000002585": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "303" + }, + "ttl": -0.001, + "expireat": 1651808848.082735 + }, + "COUNTERS:oid:0x5c00000000231b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "65", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0827513 + }, + "COUNTERS:oid:0x5c000000001b07": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0827675 + }, + "COUNTERS:oid:0x5c0000000019d9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13" + }, + "ttl": -0.001, + "expireat": 1651808848.0827796 + }, + "COUNTERS:oid:0x5c000000001cc3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "185" + }, + "ttl": -0.001, + "expireat": 1651808848.0827923 + }, + "COUNTERS:oid:0x5c00000000226b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "326", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0828075 + }, + "COUNTERS:oid:0x5c000000001aaf": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0828238 + }, + "COUNTERS:oid:0x5c000000001d5b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0828726 + }, + "COUNTERS:oid:0x5c000000001efc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "17" + }, + "ttl": -0.001, + "expireat": 1651808848.0828917 + }, + "COUNTERS:oid:0x5c0000000023dd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0829048 + }, + "COUNTERS:oid:0x5c000000001704": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0829203 + }, + "COUNTERS:oid:0x5c000000001be5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0829368 + }, + "COUNTERS:oid:0x5c000000001b0c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.0829496 + }, + "COUNTERS:oid:0x5c0000000022ee": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "6", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0829654 + }, + "COUNTERS:oid:0x5c0000000026ae": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "180" + }, + "ttl": -0.001, + "expireat": 1651808848.082981 + }, + "COUNTERS:oid:0x5c00000000209a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1395" + }, + "ttl": -0.001, + "expireat": 1651808848.0829937 + }, + "COUNTERS:oid:0x5c000000001b60": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "18", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0830061 + }, + "COUNTERS:oid:0x5c000000001b48": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "91" + }, + "ttl": -0.001, + "expireat": 1651808848.0830185 + }, + "COUNTERS:oid:0x5c0000000017ca": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "249" + }, + "ttl": -0.001, + "expireat": 1651808848.083034 + }, + "COUNTERS:oid:0x5c000000001ce2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1353" + }, + "ttl": -0.001, + "expireat": 1651808848.0830467 + }, + "COUNTERS:oid:0x5c000000001db4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "162", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0830622 + }, + "COUNTERS:oid:0x5c00000000266f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "247", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0830777 + }, + "COUNTERS:oid:0x5c000000001c28": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1326" + }, + "ttl": -0.001, + "expireat": 1651808848.0830905 + }, + "COUNTERS:oid:0x5c000000001580": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1260" + }, + "ttl": -0.001, + "expireat": 1651808848.0831025 + }, + "COUNTERS:oid:0x5c000000001ab6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1340" + }, + "ttl": -0.001, + "expireat": 1651808848.083115 + }, + "COUNTERS:oid:0x5c0000000023ed": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "179" + }, + "ttl": -0.001, + "expireat": 1651808848.083127 + }, + "COUNTERS:oid:0x5c000000001b8f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0831425 + }, + "COUNTERS:oid:0x5c000000001770": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0831952 + }, + "COUNTERS:oid:0x5c000000001370": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0832143 + }, + "COUNTERS:oid:0x5c0000000025c9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0832837 + }, + "COUNTERS:oid:0x5c000000002147": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0833097 + }, + "COUNTERS:oid:0x5c000000002136": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1276" + }, + "ttl": -0.001, + "expireat": 1651808848.083324 + }, + "COUNTERS:oid:0x5c000000001a5d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22" + }, + "ttl": -0.001, + "expireat": 1651808848.0833364 + }, + "COUNTERS:oid:0x5c000000001b44": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "16" + }, + "ttl": -0.001, + "expireat": 1651808848.0833488 + }, + "COUNTERS:oid:0x5c000000001c6e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0833642 + }, + "COUNTERS:oid:0x5c000000001581": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0833848 + }, + "COUNTERS:oid:0x5c00000000198b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "303" + }, + "ttl": -0.001, + "expireat": 1651808848.083401 + }, + "COUNTERS:oid:0x5c000000001ed6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "24", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0834134 + }, + "COUNTERS:oid:0x5c0000000016b5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "153" + }, + "ttl": -0.001, + "expireat": 1651808848.083426 + }, + "COUNTERS:oid:0x5c0000000025f2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0834377 + }, + "COUNTERS:oid:0x5c000000001c07": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0834498 + }, + "COUNTERS:oid:0x5c000000001f3e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0834653 + }, + "COUNTERS:oid:0x5c00000000186a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "181" + }, + "ttl": -0.001, + "expireat": 1651808848.0834777 + }, + "COUNTERS:oid:0x5c000000002002": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0834928 + }, + "COUNTERS:oid:0x5c000000001b5f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "20", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0835085 + }, + "COUNTERS:oid:0x5c0000000025c5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "301", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.083524 + }, + "COUNTERS:oid:0x5c000000001881": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1273" + }, + "ttl": -0.001, + "expireat": 1651808848.083577 + }, + "COUNTERS:oid:0x5c000000001eef": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "181" + }, + "ttl": -0.001, + "expireat": 1651808848.083592 + }, + "COUNTERS:oid:0x5c000000001699": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.083608 + }, + "COUNTERS:oid:0x5c000000001abc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "123" + }, + "ttl": -0.001, + "expireat": 1651808848.0836203 + }, + "COUNTERS:oid:0x5c000000001946": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0836327 + }, + "COUNTERS:oid:0x5c000000001cec": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0836449 + }, + "COUNTERS:oid:0x5c0000000020c6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "2350", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.083657 + }, + "COUNTERS:oid:0x5c000000002484": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "53" + }, + "ttl": -0.001, + "expireat": 1651808848.0836728 + }, + "COUNTERS:oid:0x5c0000000013ad": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0836856 + }, + "COUNTERS:oid:0x5c000000002278": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.0837007 + }, + "COUNTERS:oid:0x5c000000001a98": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.083717 + }, + "COUNTERS:oid:0x5c000000001365": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "138" + }, + "ttl": -0.001, + "expireat": 1651808848.08373 + }, + "COUNTERS:oid:0x5c00000000149e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "321" + }, + "ttl": -0.001, + "expireat": 1651808848.0837452 + }, + "COUNTERS:oid:0x5c000000001be6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0837576 + }, + "COUNTERS:oid:0x5c000000002486": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "6" + }, + "ttl": -0.001, + "expireat": 1651808848.0837727 + }, + "COUNTERS:oid:0x5c000000001fe7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.083785 + }, + "COUNTERS:oid:0x5c000000001ee0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "280" + }, + "ttl": -0.001, + "expireat": 1651808848.0838 + }, + "COUNTERS:oid:0x5c0000000020e9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "180", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0838156 + }, + "COUNTERS:oid:0x5c00000000195c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "180" + }, + "ttl": -0.001, + "expireat": 1651808848.0838282 + }, + "COUNTERS:oid:0x5c000000001e52": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "93" + }, + "ttl": -0.001, + "expireat": 1651808848.0838437 + }, + "COUNTERS:oid:0x5c0000000017f8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0838969 + }, + "COUNTERS:oid:0x5c000000001638": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "181" + }, + "ttl": -0.001, + "expireat": 1651808848.0839126 + }, + "COUNTERS:oid:0x5c000000001ab8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0839255 + }, + "COUNTERS:oid:0x5c000000001bae": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "196", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0839376 + }, + "COUNTERS:oid:0x5c0000000021f0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13" + }, + "ttl": -0.001, + "expireat": 1651808848.08395 + }, + "COUNTERS:oid:0x5c000000001958": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "20" + }, + "ttl": -0.001, + "expireat": 1651808848.0839622 + }, + "COUNTERS:oid:0x5c00000000244f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "15" + }, + "ttl": -0.001, + "expireat": 1651808848.0839748 + }, + "COUNTERS:oid:0x5c00000000138e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "494" + }, + "ttl": -0.001, + "expireat": 1651808848.0839903 + }, + "COUNTERS:oid:0x5c0000000020be": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "2456" + }, + "ttl": -0.001, + "expireat": 1651808848.0840027 + }, + "COUNTERS:oid:0x5c0000000014a3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11606" + }, + "ttl": -0.001, + "expireat": 1651808848.0840151 + }, + "COUNTERS:oid:0x5c000000001e81": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0840466 + }, + "COUNTERS:oid:0x5c0000000013b8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0840628 + }, + "COUNTERS:oid:0x5c000000001d80": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0840755 + }, + "COUNTERS:oid:0x5c000000001bd7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.084091 + }, + "COUNTERS:oid:0x5c0000000019cf": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1319" + }, + "ttl": -0.001, + "expireat": 1651808848.0841029 + }, + "COUNTERS:oid:0x5c0000000026df": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "178" + }, + "ttl": -0.001, + "expireat": 1651808848.0841148 + }, + "COUNTERS:oid:0x5c0000000025c4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175" + }, + "ttl": -0.001, + "expireat": 1651808848.0841262 + }, + "COUNTERS:oid:0x5c000000001a49": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0841415 + }, + "COUNTERS:oid:0x5c000000001ef1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0841541 + }, + "COUNTERS:oid:0x5c000000001e27": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "265" + }, + "ttl": -0.001, + "expireat": 1651808848.0841691 + }, + "COUNTERS:oid:0x5c000000001a30": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "102" + }, + "ttl": -0.001, + "expireat": 1651808848.0841851 + }, + "COUNTERS:oid:0x5c000000001790": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0842376 + }, + "COUNTERS:oid:0x5c000000001edd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "124", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0842564 + }, + "COUNTERS:oid:0x5c000000001ae7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.08427 + }, + "COUNTERS:oid:0x5c000000002507": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0842855 + }, + "COUNTERS:oid:0x5c000000002784": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "802" + }, + "ttl": -0.001, + "expireat": 1651808848.0842977 + }, + "COUNTERS:oid:0x5c000000001940": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "103" + }, + "ttl": -0.001, + "expireat": 1651808848.0843096 + }, + "COUNTERS:oid:0x5c000000001b19": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0843246 + }, + "COUNTERS:oid:0x5c0000000019ba": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0843368 + }, + "COUNTERS:oid:0x5c000000002122": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0843515 + }, + "COUNTERS:oid:0x5c00000000259c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.084364 + }, + "COUNTERS:oid:0x5c000000001ddf": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0843756 + }, + "COUNTERS:oid:0x5c000000001f3f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.084387 + }, + "COUNTERS:oid:0x5c00000000233c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "81" + }, + "ttl": -0.001, + "expireat": 1651808848.084402 + }, + "COUNTERS:oid:0x5c0000000019e8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "34" + }, + "ttl": -0.001, + "expireat": 1651808848.0844173 + }, + "COUNTERS:oid:0x5c000000002414": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "140", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0844326 + }, + "COUNTERS:oid:0x5c000000002467": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0844448 + }, + "COUNTERS:oid:0x5c000000001d5f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0844562 + }, + "COUNTERS:oid:0x5c000000001e9e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "266" + }, + "ttl": -0.001, + "expireat": 1651808848.084471 + }, + "COUNTERS:oid:0x5c000000001a9c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0844867 + }, + "COUNTERS:oid:0x5c000000002625": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0845368 + }, + "COUNTERS:oid:0x5c000000001c85": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22" + }, + "ttl": -0.001, + "expireat": 1651808848.084553 + }, + "COUNTERS:oid:0x5c000000001a4d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.084568 + }, + "COUNTERS:oid:0x5c000000002771": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0845845 + }, + "COUNTERS:oid:0x5c000000001a72": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "181" + }, + "ttl": -0.001, + "expireat": 1651808848.0845964 + }, + "COUNTERS:oid:0x5c0000000021f8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0846112 + }, + "COUNTERS:oid:0x5c0000000014e9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "20", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0846236 + }, + "COUNTERS:oid:0x5c000000001f39": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "170" + }, + "ttl": -0.001, + "expireat": 1651808848.0846355 + }, + "COUNTERS:oid:0x5c0000000013d9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0846474 + }, + "COUNTERS:oid:0x5c000000001a40": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0846596 + }, + "COUNTERS:oid:0x5c000000001a29": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.084671 + }, + "COUNTERS:oid:0x5c0000000020d3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.084686 + }, + "COUNTERS:oid:0x5c000000001807": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "349", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0846984 + }, + "COUNTERS:oid:0x5c000000002185": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "192", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0847135 + }, + "COUNTERS:oid:0x5c000000001686": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1253" + }, + "ttl": -0.001, + "expireat": 1651808848.0847256 + }, + "COUNTERS:oid:0x5c0000000017c7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "18" + }, + "ttl": -0.001, + "expireat": 1651808848.0847406 + }, + "COUNTERS:oid:0x5c000000001980": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "202" + }, + "ttl": -0.001, + "expireat": 1651808848.084756 + }, + "COUNTERS:oid:0x5c000000001860": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0847683 + }, + "COUNTERS:oid:0x5c000000001da2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0847836 + }, + "COUNTERS:oid:0x5c0000000019ad": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.084799 + }, + "COUNTERS:oid:0x5c0000000019d6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "285" + }, + "ttl": -0.001, + "expireat": 1651808848.0848494 + }, + "COUNTERS:oid:0x5c000000001613": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "216" + }, + "ttl": -0.001, + "expireat": 1651808848.084868 + }, + "COUNTERS:oid:0x5c000000001c77": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.08488 + }, + "COUNTERS:oid:0x5c0000000019bf": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0848958 + }, + "COUNTERS:oid:0x5c000000002612": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.084908 + }, + "COUNTERS:oid:0x5c00000000181e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "185", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0849235 + }, + "COUNTERS:oid:0x5c000000002109": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "179" + }, + "ttl": -0.001, + "expireat": 1651808848.084939 + }, + "COUNTERS:oid:0x5c0000000013a7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.0849512 + }, + "COUNTERS:oid:0x5c000000002531": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "162", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0849936 + }, + "COUNTERS:oid:0x5c000000002421": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1271" + }, + "ttl": -0.001, + "expireat": 1651808848.0850112 + }, + "COUNTERS:oid:0x5c000000002466": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0850267 + }, + "COUNTERS:oid:0x5c000000001fd1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1507" + }, + "ttl": -0.001, + "expireat": 1651808848.0850394 + }, + "COUNTERS:oid:0x5c000000001e9f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1356" + }, + "ttl": -0.001, + "expireat": 1651808848.085051 + }, + "COUNTERS:oid:0x5c000000001f43": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "539", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.085063 + }, + "COUNTERS:oid:0x5c000000001c67": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "120" + }, + "ttl": -0.001, + "expireat": 1651808848.0850778 + }, + "COUNTERS:oid:0x5c0000000025f8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1278", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0850904 + }, + "COUNTERS:oid:0x5c0000000019f9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "173", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0851219 + }, + "COUNTERS:oid:0x5c00000000147b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "17" + }, + "ttl": -0.001, + "expireat": 1651808848.0851343 + }, + "COUNTERS:oid:0x5c000000002419": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0851629 + }, + "COUNTERS:oid:0x5c000000001f5c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "6" + }, + "ttl": -0.001, + "expireat": 1651808848.0851746 + }, + "COUNTERS:oid:0x5c0000000014b8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.085223 + }, + "COUNTERS:oid:0x5c00000000243b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.085238 + }, + "COUNTERS:oid:0x5c000000001e21": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.08525 + }, + "COUNTERS:oid:0x5c000000001afc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0852616 + }, + "COUNTERS:oid:0x5c00000000193d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0852766 + }, + "COUNTERS:oid:0x5c000000002117": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.085293 + }, + "COUNTERS:oid:0x5c000000001a16": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "161", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0853055 + }, + "COUNTERS:oid:0x5c00000000260d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0853202 + }, + "COUNTERS:oid:0x5c000000002333": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "72", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.085336 + }, + "COUNTERS:oid:0x5c000000001ee6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "94", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.085352 + }, + "COUNTERS:oid:0x5c000000001389": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0853636 + }, + "COUNTERS:oid:0x5c000000001ec8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.0853753 + }, + "COUNTERS:oid:0x5c000000001f2c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0853903 + }, + "COUNTERS:oid:0x5c000000002160": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0854025 + }, + "COUNTERS:oid:0x5c000000002350": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "40", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.085414 + }, + "COUNTERS:oid:0x5c000000001a7a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0854254 + }, + "COUNTERS:oid:0x5c00000000254c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0854368 + }, + "COUNTERS:oid:0x5c000000001444": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0854487 + }, + "COUNTERS:oid:0x5c0000000020f8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.08546 + }, + "COUNTERS:oid:0x5c000000001c35": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0854747 + }, + "COUNTERS:oid:0x5c000000001e3a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0854871 + }, + "COUNTERS:oid:0x5c000000001b00": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1315" + }, + "ttl": -0.001, + "expireat": 1651808848.0855334 + }, + "COUNTERS:oid:0x5c000000002530": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0855477 + }, + "COUNTERS:oid:0x5c000000001586": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0855594 + }, + "COUNTERS:oid:0x5c000000001f1a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.085571 + }, + "COUNTERS:oid:0x5c000000001b9d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0855865 + }, + "COUNTERS:oid:0x5c000000001cde": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0855997 + }, + "COUNTERS:oid:0x5c0000000017dc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0856147 + }, + "COUNTERS:oid:0x5c0000000020f2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13" + }, + "ttl": -0.001, + "expireat": 1651808848.0856302 + }, + "COUNTERS:oid:0x5c000000001e16": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0856454 + }, + "COUNTERS:oid:0x5c000000001829": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0856578 + }, + "COUNTERS:oid:0x5c0000000022fd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "6", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0856729 + }, + "COUNTERS:oid:0x5c0000000013b3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1285" + }, + "ttl": -0.001, + "expireat": 1651808848.085685 + }, + "COUNTERS:oid:0x5c0000000019e5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0856967 + }, + "COUNTERS:oid:0x5c000000001c91": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0857284 + }, + "COUNTERS:oid:0x5c000000002178": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0857403 + }, + "COUNTERS:oid:0x5c000000001de3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "172" + }, + "ttl": -0.001, + "expireat": 1651808848.0857518 + }, + "COUNTERS:oid:0x5c000000001809": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "27", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.085763 + }, + "COUNTERS:oid:0x5c000000002636": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.085775 + }, + "COUNTERS:oid:0x5c000000001a0d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "33" + }, + "ttl": -0.001, + "expireat": 1651808848.0857894 + }, + "COUNTERS:oid:0x5c000000001589": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0858047 + }, + "COUNTERS:oid:0x5c000000001cd6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "196", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0858195 + }, + "COUNTERS:oid:0x5c000000002428": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "298" + }, + "ttl": -0.001, + "expireat": 1651808848.085869 + }, + "COUNTERS:oid:0x5c0000000014b0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "286", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0858872 + }, + "COUNTERS:oid:0x5c000000001f59": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "5", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0859027 + }, + "COUNTERS:oid:0x5c000000001907": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "96" + }, + "ttl": -0.001, + "expireat": 1651808848.0859175 + }, + "COUNTERS:oid:0x5c000000002159": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0859325 + }, + "COUNTERS:oid:0x5c0000000025ce": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1269", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0859447 + }, + "COUNTERS:oid:0x5c0000000014dc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0859597 + }, + "COUNTERS:oid:0x5c0000000017e1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.085972 + }, + "COUNTERS:oid:0x5c0000000013ed": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "23" + }, + "ttl": -0.001, + "expireat": 1651808848.0859833 + }, + "COUNTERS:oid:0x5c000000002252": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0859952 + }, + "COUNTERS:oid:0x5c000000001daa": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "113", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.08601 + }, + "COUNTERS:oid:0x5c0000000019ce": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "246" + }, + "ttl": -0.001, + "expireat": 1651808848.086025 + }, + "COUNTERS:oid:0x5c000000001793": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0860367 + }, + "COUNTERS:oid:0x5c000000001b0f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "103", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0860696 + }, + "COUNTERS:oid:0x5c000000002579": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.086085 + }, + "COUNTERS:oid:0x5c00000000162c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0860972 + }, + "COUNTERS:oid:0x5c0000000023ad": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.086109 + }, + "COUNTERS:oid:0x5c000000001664": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "176", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.086124 + }, + "COUNTERS:oid:0x5c000000001eaa": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0861742 + }, + "COUNTERS:oid:0x5c0000000020f6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1186" + }, + "ttl": -0.001, + "expireat": 1651808848.0861893 + }, + "COUNTERS:oid:0x5c000000001a0b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "103" + }, + "ttl": -0.001, + "expireat": 1651808848.0862048 + }, + "COUNTERS:oid:0x5c000000001c0b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0862172 + }, + "COUNTERS:oid:0x5c000000001dbc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0862467 + }, + "COUNTERS:oid:0x5c000000002605": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.086262 + }, + "COUNTERS:oid:0x5c0000000017b2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0862784 + }, + "COUNTERS:oid:0x5c000000001d19": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "23", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0862906 + }, + "COUNTERS:oid:0x5c000000001d6f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0863063 + }, + "COUNTERS:oid:0x5c0000000015c1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0863218 + }, + "COUNTERS:oid:0x5c00000000252b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0863545 + }, + "COUNTERS:oid:0x5c00000000157e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0863662 + }, + "COUNTERS:oid:0x5c0000000015e6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0863774 + }, + "COUNTERS:oid:0x5c000000001e71": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "243" + }, + "ttl": -0.001, + "expireat": 1651808848.0863922 + }, + "COUNTERS:oid:0x5c000000001823": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0864043 + }, + "COUNTERS:oid:0x5c000000001b5c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "24" + }, + "ttl": -0.001, + "expireat": 1651808848.0864158 + }, + "COUNTERS:oid:0x5c000000001c7a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0864303 + }, + "COUNTERS:oid:0x5c0000000015d6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.086442 + }, + "COUNTERS:oid:0x5c0000000019dd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "181" + }, + "ttl": -0.001, + "expireat": 1651808848.0864532 + }, + "COUNTERS:oid:0x5c000000001bf0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "24", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0864654 + }, + "COUNTERS:oid:0x5c0000000017e9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "173" + }, + "ttl": -0.001, + "expireat": 1651808848.086511 + }, + "COUNTERS:oid:0x5c00000000262a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0865252 + }, + "COUNTERS:oid:0x5c000000001784": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0865402 + }, + "COUNTERS:oid:0x5c00000000168e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1283" + }, + "ttl": -0.001, + "expireat": 1651808848.0865533 + }, + "COUNTERS:oid:0x5c0000000017bd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.086565 + }, + "COUNTERS:oid:0x5c00000000216a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0865767 + }, + "COUNTERS:oid:0x5c000000001c2a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0865877 + }, + "COUNTERS:oid:0x5c000000001d73": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "179", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0866022 + }, + "COUNTERS:oid:0x5c0000000013ae": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0866168 + }, + "COUNTERS:oid:0x5c00000000210b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175" + }, + "ttl": -0.001, + "expireat": 1651808848.0866468 + }, + "COUNTERS:oid:0x5c000000002463": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0866745 + }, + "COUNTERS:oid:0x5c00000000209d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "300", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.086695 + }, + "COUNTERS:oid:0x5c0000000026f2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "133", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.08671 + }, + "COUNTERS:oid:0x5c00000000176d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13" + }, + "ttl": -0.001, + "expireat": 1651808848.086722 + }, + "COUNTERS:oid:0x5c0000000016b3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0867367 + }, + "COUNTERS:oid:0x5c000000001948": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "105" + }, + "ttl": -0.001, + "expireat": 1651808848.0867488 + }, + "COUNTERS:oid:0x5c000000001dc8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0867603 + }, + "COUNTERS:oid:0x5c000000001cc7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0867717 + }, + "COUNTERS:oid:0x5c000000001b20": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.086786 + }, + "COUNTERS:oid:0x5c0000000015f6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1266" + }, + "ttl": -0.001, + "expireat": 1651808848.0867972 + }, + "COUNTERS:oid:0x5c000000001825": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0868087 + }, + "COUNTERS:oid:0x5c00000000135b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1446" + }, + "ttl": -0.001, + "expireat": 1651808848.086854 + }, + "COUNTERS:oid:0x5c000000002275": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0868678 + }, + "COUNTERS:oid:0x5c000000001e15": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0868797 + }, + "COUNTERS:oid:0x5c000000002460": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "304" + }, + "ttl": -0.001, + "expireat": 1651808848.0868948 + }, + "COUNTERS:oid:0x5c0000000019fa": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "173" + }, + "ttl": -0.001, + "expireat": 1651808848.0869584 + }, + "COUNTERS:oid:0x5c0000000018fd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "116" + }, + "ttl": -0.001, + "expireat": 1651808848.0869737 + }, + "COUNTERS:oid:0x5c0000000023df": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "137", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.086986 + }, + "COUNTERS:oid:0x5c00000000164d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.087001 + }, + "COUNTERS:oid:0x5c0000000019da": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0870168 + }, + "COUNTERS:oid:0x5c0000000025c0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.087029 + }, + "COUNTERS:oid:0x5c00000000252e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1268", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0870402 + }, + "COUNTERS:oid:0x5c000000001b7f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "433", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.087052 + }, + "COUNTERS:oid:0x5c0000000019a6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "121" + }, + "ttl": -0.001, + "expireat": 1651808848.0870836 + }, + "COUNTERS:oid:0x5c0000000015e1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0871153 + }, + "COUNTERS:oid:0x5c0000000016dc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0871446 + }, + "COUNTERS:oid:0x5c000000001ea3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0871575 + }, + "COUNTERS:oid:0x5c0000000014c1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1278", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0871701 + }, + "COUNTERS:oid:0x5c000000001f36": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.087186 + }, + "COUNTERS:oid:0x5c0000000019a2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22" + }, + "ttl": -0.001, + "expireat": 1651808848.087202 + }, + "COUNTERS:oid:0x5c000000001bd6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1308" + }, + "ttl": -0.001, + "expireat": 1651808848.0872147 + }, + "COUNTERS:oid:0x5c000000001eaf": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "530", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0872748 + }, + "COUNTERS:oid:0x5c0000000013c5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1285", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0873172 + }, + "COUNTERS:oid:0x5c000000001f28": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "203", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0873318 + }, + "COUNTERS:oid:0x5c000000001429": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1199" + }, + "ttl": -0.001, + "expireat": 1651808848.087345 + }, + "COUNTERS:oid:0x5c000000001f2d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0873575 + }, + "COUNTERS:oid:0x5c000000001a1f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "113" + }, + "ttl": -0.001, + "expireat": 1651808848.0873702 + }, + "COUNTERS:oid:0x5c0000000016b6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0873828 + }, + "COUNTERS:oid:0x5c0000000026f0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "6", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0874002 + }, + "COUNTERS:oid:0x5c000000001bdf": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13" + }, + "ttl": -0.001, + "expireat": 1651808848.0874171 + }, + "COUNTERS:oid:0x5c000000002508": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0874295 + }, + "COUNTERS:oid:0x5c0000000018f9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "15" + }, + "ttl": -0.001, + "expireat": 1651808848.0874774 + }, + "COUNTERS:oid:0x5c0000000025b7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.08751 + }, + "COUNTERS:oid:0x5c000000001fcc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "176" + }, + "ttl": -0.001, + "expireat": 1651808848.0875251 + }, + "COUNTERS:oid:0x5c0000000021d9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "16" + }, + "ttl": -0.001, + "expireat": 1651808848.0875366 + }, + "COUNTERS:oid:0x5c000000001859": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "147", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.087548 + }, + "COUNTERS:oid:0x5c0000000018d6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0875628 + }, + "COUNTERS:oid:0x5c0000000018f1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.087578 + }, + "COUNTERS:oid:0x5c000000001d2b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "306" + }, + "ttl": -0.001, + "expireat": 1651808848.0875933 + }, + "COUNTERS:oid:0x5c0000000025cc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "179" + }, + "ttl": -0.001, + "expireat": 1651808848.087605 + }, + "COUNTERS:oid:0x5c0000000021c8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "194" + }, + "ttl": -0.001, + "expireat": 1651808848.087674 + }, + "COUNTERS:oid:0x5c000000001f44": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "32" + }, + "ttl": -0.001, + "expireat": 1651808848.0876908 + }, + "COUNTERS:oid:0x5c000000002151": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "180", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0877268 + }, + "COUNTERS:oid:0x5c000000001c5d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "103" + }, + "ttl": -0.001, + "expireat": 1651808848.0877445 + }, + "COUNTERS:oid:0x5c000000001ad0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "202", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.087757 + }, + "COUNTERS:oid:0x5c00000000183e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "270", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0877726 + }, + "COUNTERS:oid:0x5c000000001ac6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "437", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0877843 + }, + "COUNTERS:oid:0x5c00000000247b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0877955 + }, + "COUNTERS:oid:0x5c00000000169e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "244", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.087807 + }, + "COUNTERS:oid:0x5c000000001768": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "15", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0878212 + }, + "COUNTERS:oid:0x5c00000000277d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "68" + }, + "ttl": -0.001, + "expireat": 1651808848.0878367 + }, + "COUNTERS:oid:0x5c0000000015e9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "57" + }, + "ttl": -0.001, + "expireat": 1651808848.0878518 + }, + "COUNTERS:oid:0x5c000000001cc8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0878675 + }, + "COUNTERS:oid:0x5c000000001607": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0878825 + }, + "COUNTERS:oid:0x5c000000001c11": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0878942 + }, + "COUNTERS:oid:0x5c000000001b98": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0879061 + }, + "COUNTERS:oid:0x5c000000001ceb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0879202 + }, + "COUNTERS:oid:0x5c000000002345": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "5", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.087935 + }, + "COUNTERS:oid:0x5c000000001a42": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0879467 + }, + "COUNTERS:oid:0x5c0000000018e0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0879614 + }, + "COUNTERS:oid:0x5c000000001a50": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0879912 + }, + "COUNTERS:oid:0x5c000000001a03": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0880082 + }, + "COUNTERS:oid:0x5c000000001a53": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0880241 + }, + "COUNTERS:oid:0x5c000000001837": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1283" + }, + "ttl": -0.001, + "expireat": 1651808848.0880358 + }, + "COUNTERS:oid:0x5c000000001e90": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.088048 + }, + "COUNTERS:oid:0x5c0000000021f1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0880625 + }, + "COUNTERS:oid:0x5c000000001c38": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "460", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0880742 + }, + "COUNTERS:oid:0x5c00000000140d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1284" + }, + "ttl": -0.001, + "expireat": 1651808848.0880857 + }, + "COUNTERS:oid:0x5c000000002325": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "5", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0881004 + }, + "COUNTERS:oid:0x5c000000001d31": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "181", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0881157 + }, + "COUNTERS:oid:0x5c000000001a90": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "278" + }, + "ttl": -0.001, + "expireat": 1651808848.0881305 + }, + "COUNTERS:oid:0x5c00000000212b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0881424 + }, + "COUNTERS:oid:0x5c0000000021fa": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "20", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0881572 + }, + "COUNTERS:oid:0x5c000000001ebe": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0881693 + }, + "COUNTERS:oid:0x5c000000001bb4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0887208 + }, + "COUNTERS:oid:0x5c000000002606": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0887482 + }, + "COUNTERS:oid:0x5c000000001665": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "109" + }, + "ttl": -0.001, + "expireat": 1651808848.088761 + }, + "COUNTERS:oid:0x5c000000001d6a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "167", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0887768 + }, + "COUNTERS:oid:0x5c000000001eea": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0888107 + }, + "COUNTERS:oid:0x5c000000001c7c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0888515 + }, + "COUNTERS:oid:0x5c000000001ba0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.0888672 + }, + "COUNTERS:oid:0x5c000000001405": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0888798 + }, + "COUNTERS:oid:0x5c0000000025dd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "301", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.088895 + }, + "COUNTERS:oid:0x5c00000000276d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "131", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0889106 + }, + "COUNTERS:oid:0x5c000000001ecb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.088926 + }, + "COUNTERS:oid:0x5c000000001e55": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1319" + }, + "ttl": -0.001, + "expireat": 1651808848.0889382 + }, + "COUNTERS:oid:0x5c000000001f55": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "176", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.088953 + }, + "COUNTERS:oid:0x5c000000001d0f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.089015 + }, + "COUNTERS:oid:0x5c000000001777": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "302", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0890293 + }, + "COUNTERS:oid:0x5c000000001661": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "305", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0890446 + }, + "COUNTERS:oid:0x5c000000002472": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0890598 + }, + "COUNTERS:oid:0x5c00000000163a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "17", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.089072 + }, + "COUNTERS:oid:0x5c000000001ad3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1310" + }, + "ttl": -0.001, + "expireat": 1651808848.0890837 + }, + "COUNTERS:oid:0x5c000000001f09": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0890985 + }, + "COUNTERS:oid:0x5c00000000137d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1048", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0891106 + }, + "COUNTERS:oid:0x5c0000000014b7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0891254 + }, + "COUNTERS:oid:0x5c000000001abb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "181" + }, + "ttl": -0.001, + "expireat": 1651808848.089141 + }, + "COUNTERS:oid:0x5c00000000264b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "172", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0891562 + }, + "COUNTERS:oid:0x5c000000001b6a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0891929 + }, + "COUNTERS:oid:0x5c0000000017f9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0892074 + }, + "COUNTERS:oid:0x5c0000000017e8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "166" + }, + "ttl": -0.001, + "expireat": 1651808848.0892224 + }, + "COUNTERS:oid:0x5c000000002001": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "2433" + }, + "ttl": -0.001, + "expireat": 1651808848.0892346 + }, + "COUNTERS:oid:0x5c000000001676": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0892463 + }, + "COUNTERS:oid:0x5c000000001a71": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "103" + }, + "ttl": -0.001, + "expireat": 1651808848.0892606 + }, + "COUNTERS:oid:0x5c0000000020d1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "176" + }, + "ttl": -0.001, + "expireat": 1651808848.089276 + }, + "COUNTERS:oid:0x5c000000001b1e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0892913 + }, + "COUNTERS:oid:0x5c000000001de0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0893064 + }, + "COUNTERS:oid:0x5c0000000017fe": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0893219 + }, + "COUNTERS:oid:0x5c0000000018d7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.089334 + }, + "COUNTERS:oid:0x5c00000000263d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0893483 + }, + "COUNTERS:oid:0x5c000000001966": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "307" + }, + "ttl": -0.001, + "expireat": 1651808848.0893638 + }, + "COUNTERS:oid:0x5c000000002540": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0893757 + }, + "COUNTERS:oid:0x5c000000002502": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "132" + }, + "ttl": -0.001, + "expireat": 1651808848.0893874 + }, + "COUNTERS:oid:0x5c000000001cb6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0894022 + }, + "COUNTERS:oid:0x5c0000000019d8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13" + }, + "ttl": -0.001, + "expireat": 1651808848.0894167 + }, + "COUNTERS:oid:0x5c00000000277c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1225", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0894284 + }, + "COUNTERS:oid:0x5c000000001377": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1194" + }, + "ttl": -0.001, + "expireat": 1651808848.0894582 + }, + "COUNTERS:oid:0x5c000000002403": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0894716 + }, + "COUNTERS:oid:0x5c000000001f0b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "179", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0894866 + }, + "COUNTERS:oid:0x5c000000001ac2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.089499 + }, + "COUNTERS:oid:0x5c00000000186c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0895104 + }, + "COUNTERS:oid:0x5c0000000014ba": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "27", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0895257 + }, + "COUNTERS:oid:0x5c000000001d00": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.089541 + }, + "COUNTERS:oid:0x5c0000000015a8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "195", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0895526 + }, + "COUNTERS:oid:0x5c000000002200": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "4", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.089567 + }, + "COUNTERS:oid:0x5c000000001eb2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "19" + }, + "ttl": -0.001, + "expireat": 1651808848.0895827 + }, + "COUNTERS:oid:0x5c0000000020fe": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1186" + }, + "ttl": -0.001, + "expireat": 1651808848.0895944 + }, + "COUNTERS:oid:0x5c000000001489": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.0896058 + }, + "COUNTERS:oid:0x5c00000000140c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "327", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0896206 + }, + "COUNTERS:oid:0x5c000000001e4d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1280" + }, + "ttl": -0.001, + "expireat": 1651808848.0896323 + }, + "COUNTERS:oid:0x5c000000001fce": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0896468 + }, + "COUNTERS:oid:0x5c000000001d24": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1316" + }, + "ttl": -0.001, + "expireat": 1651808848.0896583 + }, + "COUNTERS:oid:0x5c0000000014b2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0896733 + }, + "COUNTERS:oid:0x5c0000000015c0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0896852 + }, + "COUNTERS:oid:0x5c000000001bf7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "201", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0896995 + }, + "COUNTERS:oid:0x5c000000001f42": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "114", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0897152 + }, + "COUNTERS:oid:0x5c000000001a96": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "127" + }, + "ttl": -0.001, + "expireat": 1651808848.0897682 + }, + "COUNTERS:oid:0x5c000000002618": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1254", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0897832 + }, + "COUNTERS:oid:0x5c000000001920": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "17", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0897987 + }, + "COUNTERS:oid:0x5c000000002300": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "51", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0898104 + }, + "COUNTERS:oid:0x5c000000001c13": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "405" + }, + "ttl": -0.001, + "expireat": 1651808848.089822 + }, + "COUNTERS:oid:0x5c0000000023ff": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "141" + }, + "ttl": -0.001, + "expireat": 1651808848.0898333 + }, + "COUNTERS:oid:0x5c0000000025b5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "296", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.089848 + }, + "COUNTERS:oid:0x5c00000000184f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "417" + }, + "ttl": -0.001, + "expireat": 1651808848.0898595 + }, + "COUNTERS:oid:0x5c00000000167b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22" + }, + "ttl": -0.001, + "expireat": 1651808848.0898743 + }, + "COUNTERS:oid:0x5c000000001c1d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "201", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0898862 + }, + "COUNTERS:oid:0x5c000000001e63": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0898974 + }, + "COUNTERS:oid:0x5c0000000025ca": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0899088 + }, + "COUNTERS:oid:0x5c000000002011": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "2473", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0899198 + }, + "COUNTERS:oid:0x5c0000000020b8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13" + }, + "ttl": -0.001, + "expireat": 1651808848.0899315 + }, + "COUNTERS:oid:0x5c000000002608": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1278", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0899427 + }, + "COUNTERS:oid:0x5c000000001746": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "168" + }, + "ttl": -0.001, + "expireat": 1651808848.089958 + }, + "COUNTERS:oid:0x5c000000002631": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0899732 + }, + "COUNTERS:oid:0x5c000000001b22": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "179", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0899885 + }, + "COUNTERS:oid:0x5c000000002487": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "20" + }, + "ttl": -0.001, + "expireat": 1651808848.0900004 + }, + "COUNTERS:oid:0x5c000000001679": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "66", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0900152 + }, + "COUNTERS:oid:0x5c00000000227b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1478" + }, + "ttl": -0.001, + "expireat": 1651808848.090027 + }, + "COUNTERS:oid:0x5c00000000182c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "38", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0900953 + }, + "COUNTERS:oid:0x5c0000000020e2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0901113 + }, + "COUNTERS:oid:0x5c000000001dc4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.090123 + }, + "COUNTERS:oid:0x5c000000001694": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0901346 + }, + "COUNTERS:oid:0x5c000000001c20": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1301" + }, + "ttl": -0.001, + "expireat": 1651808848.090146 + }, + "COUNTERS:oid:0x5c0000000025f4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "172", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0901575 + }, + "COUNTERS:oid:0x5c000000001ec3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "305" + }, + "ttl": -0.001, + "expireat": 1651808848.0901725 + }, + "COUNTERS:oid:0x5c000000001d50": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "309" + }, + "ttl": -0.001, + "expireat": 1651808848.0901875 + }, + "COUNTERS:oid:0x5c000000001f33": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1308" + }, + "ttl": -0.001, + "expireat": 1651808848.0901992 + }, + "COUNTERS:oid:0x5c000000001f3b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0902114 + }, + "COUNTERS:oid:0x5c00000000233f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "39" + }, + "ttl": -0.001, + "expireat": 1651808848.0902433 + }, + "COUNTERS:oid:0x5c0000000020dc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "179" + }, + "ttl": -0.001, + "expireat": 1651808848.0902734 + }, + "COUNTERS:oid:0x5c000000001eae": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "107", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.090288 + }, + "COUNTERS:oid:0x5c000000001f18": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0902998 + }, + "COUNTERS:oid:0x5c000000001e49": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "177", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0903144 + }, + "COUNTERS:oid:0x5c000000001ca8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "404" + }, + "ttl": -0.001, + "expireat": 1651808848.0903263 + }, + "COUNTERS:oid:0x5c000000001b5a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "427", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0903382 + }, + "COUNTERS:oid:0x5c000000001896": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0903535 + }, + "COUNTERS:oid:0x5c0000000018f6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175" + }, + "ttl": -0.001, + "expireat": 1651808848.0903652 + }, + "COUNTERS:oid:0x5c000000001e4e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0903807 + }, + "COUNTERS:oid:0x5c000000001824": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0903955 + }, + "COUNTERS:oid:0x5c000000001891": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0904431 + }, + "COUNTERS:oid:0x5c000000001cdc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.0904574 + }, + "COUNTERS:oid:0x5c000000001bdd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "260" + }, + "ttl": -0.001, + "expireat": 1651808848.0904725 + }, + "COUNTERS:oid:0x5c000000001854": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "23" + }, + "ttl": -0.001, + "expireat": 1651808848.0904887 + }, + "COUNTERS:oid:0x5c000000001b09": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.090504 + }, + "COUNTERS:oid:0x5c0000000020df": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0905554 + }, + "COUNTERS:oid:0x5c0000000020f0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0905688 + }, + "COUNTERS:oid:0x5c000000001cee": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.0905814 + }, + "COUNTERS:oid:0x5c000000001d93": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1299" + }, + "ttl": -0.001, + "expireat": 1651808848.0905943 + }, + "COUNTERS:oid:0x5c000000001beb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0906105 + }, + "COUNTERS:oid:0x5c000000002669": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0906267 + }, + "COUNTERS:oid:0x5c000000002008": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1305", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.090644 + }, + "COUNTERS:oid:0x5c000000001797": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0906568 + }, + "COUNTERS:oid:0x5c000000001386": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "297", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.090673 + }, + "COUNTERS:oid:0x5c0000000020a9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1405" + }, + "ttl": -0.001, + "expireat": 1651808848.0907052 + }, + "COUNTERS:oid:0x5c000000002564": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0907335 + }, + "COUNTERS:oid:0x5c000000002632": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0907454 + }, + "COUNTERS:oid:0x5c000000001a54": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0907571 + }, + "COUNTERS:oid:0x5c0000000018bd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "102" + }, + "ttl": -0.001, + "expireat": 1651808848.0907717 + }, + "COUNTERS:oid:0x5c0000000017ae": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "284", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.090823 + }, + "COUNTERS:oid:0x5c000000001bec": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.090839 + }, + "COUNTERS:oid:0x5c000000002516": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1273", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0908508 + }, + "COUNTERS:oid:0x5c000000001bda": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0908628 + }, + "COUNTERS:oid:0x5c000000002445": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "145", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0908911 + }, + "COUNTERS:oid:0x5c000000001eda": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22" + }, + "ttl": -0.001, + "expireat": 1651808848.0909023 + }, + "COUNTERS:oid:0x5c0000000015eb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "31", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.090917 + }, + "COUNTERS:oid:0x5c000000001b3a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "19", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0909321 + }, + "COUNTERS:oid:0x5c0000000018f8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1332" + }, + "ttl": -0.001, + "expireat": 1651808848.090944 + }, + "COUNTERS:oid:0x5c000000001eac": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0909588 + }, + "COUNTERS:oid:0x5c0000000021fe": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "31", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0909736 + }, + "COUNTERS:oid:0x5c00000000255c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "162", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0909858 + }, + "COUNTERS:oid:0x5c0000000023e2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0910003 + }, + "COUNTERS:oid:0x5c000000001685": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "303", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0910153 + }, + "COUNTERS:oid:0x5c000000002560": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0910273 + }, + "COUNTERS:oid:0x5c0000000015ba": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "149" + }, + "ttl": -0.001, + "expireat": 1651808848.0910382 + }, + "COUNTERS:oid:0x5c000000002657": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "302", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.091053 + }, + "COUNTERS:oid:0x5c000000001a4e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0910652 + }, + "COUNTERS:oid:0x5c000000001c0e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0910792 + }, + "COUNTERS:oid:0x5c000000002505": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "295", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0910938 + }, + "COUNTERS:oid:0x5c000000001962": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0911427 + }, + "COUNTERS:oid:0x5c000000001a7b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "104" + }, + "ttl": -0.001, + "expireat": 1651808848.0911615 + }, + "COUNTERS:oid:0x5c00000000230a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "5", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.091174 + }, + "COUNTERS:oid:0x5c000000001c5b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.091189 + }, + "COUNTERS:oid:0x5c000000001cff": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1289" + }, + "ttl": -0.001, + "expireat": 1651808848.091201 + }, + "COUNTERS:oid:0x5c000000001f1d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "103", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0912158 + }, + "COUNTERS:oid:0x5c000000002580": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0912766 + }, + "COUNTERS:oid:0x5c000000001cf7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0913014 + }, + "COUNTERS:oid:0x5c0000000018c0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "24" + }, + "ttl": -0.001, + "expireat": 1651808848.0913146 + }, + "COUNTERS:oid:0x5c000000001898": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "93", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0913293 + }, + "COUNTERS:oid:0x5c000000001bfc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0913444 + }, + "COUNTERS:oid:0x5c000000001b57": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0913591 + }, + "COUNTERS:oid:0x5c000000001a75": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0913742 + }, + "COUNTERS:oid:0x5c000000001b12": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "27", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0913863 + }, + "COUNTERS:oid:0x5c0000000013d3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "179", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0914006 + }, + "COUNTERS:oid:0x5c000000001912": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "172", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0914128 + }, + "COUNTERS:oid:0x5c000000001763": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "91" + }, + "ttl": -0.001, + "expireat": 1651808848.0914245 + }, + "COUNTERS:oid:0x5c000000001c30": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0914364 + }, + "COUNTERS:oid:0x5c000000001b6c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "179", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0914512 + }, + "COUNTERS:oid:0x5c000000001b71": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "15" + }, + "ttl": -0.001, + "expireat": 1651808848.0915003 + }, + "COUNTERS:oid:0x5c000000001620": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0915148 + }, + "COUNTERS:oid:0x5c000000002577": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0915303 + }, + "COUNTERS:oid:0x5c000000001652": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.091543 + }, + "COUNTERS:oid:0x5c0000000014d2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "305" + }, + "ttl": -0.001, + "expireat": 1651808848.0915582 + }, + "COUNTERS:oid:0x5c000000002411": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0915701 + }, + "COUNTERS:oid:0x5c000000001cd2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "18", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0915847 + }, + "COUNTERS:oid:0x5c000000001bb3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.0915966 + }, + "COUNTERS:oid:0x5c000000001843": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0916145 + }, + "COUNTERS:oid:0x5c000000001c08": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "137" + }, + "ttl": -0.001, + "expireat": 1651808848.0916917 + }, + "COUNTERS:oid:0x5c00000000226f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "4" + }, + "ttl": -0.001, + "expireat": 1651808848.0917614 + }, + "COUNTERS:oid:0x5c0000000014ec": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11827", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0917823 + }, + "COUNTERS:oid:0x5c000000002569": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "135" + }, + "ttl": -0.001, + "expireat": 1651808848.0918021 + }, + "COUNTERS:oid:0x5c000000001d04": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "171", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0918202 + }, + "COUNTERS:oid:0x5c00000000243c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "134", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.091838 + }, + "COUNTERS:oid:0x5c0000000020e0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0918522 + }, + "COUNTERS:oid:0x5c000000002157": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.09187 + }, + "COUNTERS:oid:0x5c00000000230c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "519" + }, + "ttl": -0.001, + "expireat": 1651808848.0918846 + }, + "COUNTERS:oid:0x5c000000001718": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.091902 + }, + "COUNTERS:oid:0x5c000000001486": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.0919707 + }, + "COUNTERS:oid:0x5c0000000016a9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "296" + }, + "ttl": -0.001, + "expireat": 1651808848.0919926 + }, + "COUNTERS:oid:0x5c0000000026e5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.092007 + }, + "COUNTERS:oid:0x5c000000002352": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "5", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0920362 + }, + "COUNTERS:oid:0x5c000000001d48": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "266", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0920525 + }, + "COUNTERS:oid:0x5c000000001609": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0920846 + }, + "COUNTERS:oid:0x5c000000001b3b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "18", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0920975 + }, + "COUNTERS:oid:0x5c0000000020d4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0921092 + }, + "COUNTERS:oid:0x5c00000000216c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "174", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.092121 + }, + "COUNTERS:oid:0x5c0000000016e1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0921361 + }, + "COUNTERS:oid:0x5c000000001e2d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "172" + }, + "ttl": -0.001, + "expireat": 1651808848.0921519 + }, + "COUNTERS:oid:0x5c000000001c6d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.0921643 + }, + "COUNTERS:oid:0x5c00000000175a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22" + }, + "ttl": -0.001, + "expireat": 1651808848.0921793 + }, + "COUNTERS:oid:0x5c000000001e2a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.0921912 + }, + "COUNTERS:oid:0x5c000000001f20": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "23" + }, + "ttl": -0.001, + "expireat": 1651808848.0922034 + }, + "COUNTERS:oid:0x5c000000001c7b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0922306 + }, + "COUNTERS:oid:0x5c000000002423": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.092242 + }, + "COUNTERS:oid:0x5c0000000020e8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0922534 + }, + "COUNTERS:oid:0x5c000000001b2a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "181", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.092284 + }, + "COUNTERS:oid:0x5c0000000014bf": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11856" + }, + "ttl": -0.001, + "expireat": 1651808848.0922954 + }, + "COUNTERS:oid:0x5c0000000025fd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0923095 + }, + "COUNTERS:oid:0x5c000000001b3f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "164" + }, + "ttl": -0.001, + "expireat": 1651808848.0923562 + }, + "COUNTERS:oid:0x5c000000001df2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0923743 + }, + "COUNTERS:oid:0x5c000000001922": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "185", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.09239 + }, + "COUNTERS:oid:0x5c0000000019d2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.092405 + }, + "COUNTERS:oid:0x5c000000001ca3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0924199 + }, + "COUNTERS:oid:0x5c000000001dbe": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "134" + }, + "ttl": -0.001, + "expireat": 1651808848.0924313 + }, + "COUNTERS:oid:0x5c000000001ad6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0924456 + }, + "COUNTERS:oid:0x5c000000001fe9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1337", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0924573 + }, + "COUNTERS:oid:0x5c000000001e68": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "23", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0924716 + }, + "COUNTERS:oid:0x5c000000002343": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "74" + }, + "ttl": -0.001, + "expireat": 1651808848.0924866 + }, + "COUNTERS:oid:0x5c000000001d61": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "409", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0924978 + }, + "COUNTERS:oid:0x5c0000000017a9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.0925093 + }, + "COUNTERS:oid:0x5c00000000137b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0925202 + }, + "COUNTERS:oid:0x5c000000001c96": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "175" + }, + "ttl": -0.001, + "expireat": 1651808848.0925317 + }, + "COUNTERS:oid:0x5c0000000016ca": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "16" + }, + "ttl": -0.001, + "expireat": 1651808848.0925424 + }, + "COUNTERS:oid:0x5c000000001a1b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.0925534 + }, + "COUNTERS:oid:0x5c000000001a56": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "393", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0925648 + }, + "COUNTERS:oid:0x5c0000000027fc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "4726", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0925758 + }, + "COUNTERS:oid:0x5c000000001df7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "33" + }, + "ttl": -0.001, + "expireat": 1651808848.09259 + }, + "COUNTERS:oid:0x5c000000001e25": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "199" + }, + "ttl": -0.001, + "expireat": 1651808848.0926015 + }, + "COUNTERS:oid:0x5c00000000208d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "268" + }, + "ttl": -0.001, + "expireat": 1651808848.0926158 + }, + "COUNTERS:oid:0x5c00000000259b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "15" + }, + "ttl": -0.001, + "expireat": 1651808848.092665 + }, + "COUNTERS:oid:0x5c000000002156": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1195", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0926797 + }, + "COUNTERS:oid:0x5c0000000017df": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.092691 + }, + "COUNTERS:oid:0x5c000000002435": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "154", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.092702 + }, + "COUNTERS:oid:0x5c000000001e69": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0927129 + }, + "COUNTERS:oid:0x5c000000001ece": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0927236 + }, + "COUNTERS:oid:0x5c000000002426": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13" + }, + "ttl": -0.001, + "expireat": 1651808848.0927382 + }, + "COUNTERS:oid:0x5c000000002649": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0927532 + }, + "COUNTERS:oid:0x5c000000001973": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.0927646 + }, + "COUNTERS:oid:0x5c0000000015d9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "305" + }, + "ttl": -0.001, + "expireat": 1651808848.092779 + }, + "COUNTERS:oid:0x5c000000001d7c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "103" + }, + "ttl": -0.001, + "expireat": 1651808848.0927904 + }, + "COUNTERS:oid:0x5c0000000016e3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0928044 + }, + "COUNTERS:oid:0x5c00000000199a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0928156 + }, + "COUNTERS:oid:0x5c000000001e97": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1312" + }, + "ttl": -0.001, + "expireat": 1651808848.0928266 + }, + "COUNTERS:oid:0x5c000000001778": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "34", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.092841 + }, + "COUNTERS:oid:0x5c0000000019fd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0928562 + }, + "COUNTERS:oid:0x5c0000000019b4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0928676 + }, + "COUNTERS:oid:0x5c0000000018d9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "141" + }, + "ttl": -0.001, + "expireat": 1651808848.0928788 + }, + "COUNTERS:oid:0x5c0000000018f0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1319" + }, + "ttl": -0.001, + "expireat": 1651808848.0928898 + }, + "COUNTERS:oid:0x5c000000001817": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.092901 + }, + "COUNTERS:oid:0x5c000000002776": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0929153 + }, + "COUNTERS:oid:0x5c000000001337": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.0929606 + }, + "COUNTERS:oid:0x5c000000001f13": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "182" + }, + "ttl": -0.001, + "expireat": 1651808848.093027 + }, + "COUNTERS:oid:0x5c00000000233b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "498" + }, + "ttl": -0.001, + "expireat": 1651808848.093058 + }, + "COUNTERS:oid:0x5c000000001bef": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "33", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0930736 + }, + "COUNTERS:oid:0x5c00000000200f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0930862 + }, + "COUNTERS:oid:0x5c00000000196c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "182" + }, + "ttl": -0.001, + "expireat": 1651808848.0931015 + }, + "COUNTERS:oid:0x5c0000000015f1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0931172 + }, + "COUNTERS:oid:0x5c00000000191f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0931294 + }, + "COUNTERS:oid:0x5c0000000025b1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "179", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0931444 + }, + "COUNTERS:oid:0x5c000000001ebc": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1304" + }, + "ttl": -0.001, + "expireat": 1651808848.0931563 + }, + "COUNTERS:oid:0x5c000000001421": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1301" + }, + "ttl": -0.001, + "expireat": 1651808848.0931847 + }, + "COUNTERS:oid:0x5c0000000025a3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0931962 + }, + "COUNTERS:oid:0x5c00000000137e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "299", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0932102 + }, + "COUNTERS:oid:0x5c0000000018af": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.0932252 + }, + "COUNTERS:oid:0x5c000000001ae9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0932364 + }, + "COUNTERS:oid:0x5c0000000019a3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "23" + }, + "ttl": -0.001, + "expireat": 1651808848.0932474 + }, + "COUNTERS:oid:0x5c000000001d57": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "181" + }, + "ttl": -0.001, + "expireat": 1651808848.0932586 + }, + "COUNTERS:oid:0x5c000000001691": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "100" + }, + "ttl": -0.001, + "expireat": 1651808848.0932696 + }, + "COUNTERS:oid:0x5c000000001ccb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0932808 + }, + "COUNTERS:oid:0x5c00000000253b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0932949 + }, + "COUNTERS:oid:0x5c000000001dce": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0933058 + }, + "COUNTERS:oid:0x5c000000001f53": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0933561 + }, + "COUNTERS:oid:0x5c000000001d7f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0933738 + }, + "COUNTERS:oid:0x5c00000000254e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1256" + }, + "ttl": -0.001, + "expireat": 1651808848.0933855 + }, + "COUNTERS:oid:0x5c00000000261d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "301" + }, + "ttl": -0.001, + "expireat": 1651808848.0933998 + }, + "COUNTERS:oid:0x5c00000000276b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "304", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0934148 + }, + "COUNTERS:oid:0x5c0000000014f3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "10" + }, + "ttl": -0.001, + "expireat": 1651808848.0934265 + }, + "COUNTERS:oid:0x5c000000001717": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1236" + }, + "ttl": -0.001, + "expireat": 1651808848.0934374 + }, + "COUNTERS:oid:0x5c000000002087": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0934486 + }, + "COUNTERS:oid:0x5c000000002412": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.09348 + }, + "COUNTERS:oid:0x5c000000001f9a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "216" + }, + "ttl": -0.001, + "expireat": 1651808848.0934958 + }, + "COUNTERS:oid:0x5c000000001c9d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "111", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.093527 + }, + "COUNTERS:oid:0x5c00000000158b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1376", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0935602 + }, + "COUNTERS:oid:0x5c00000000198e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0935721 + }, + "COUNTERS:oid:0x5c0000000027ee": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "306" + }, + "ttl": -0.001, + "expireat": 1651808848.093604 + }, + "COUNTERS:oid:0x5c0000000025a9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "176", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0936356 + }, + "COUNTERS:oid:0x5c000000001bb7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "179" + }, + "ttl": -0.001, + "expireat": 1651808848.0936475 + }, + "COUNTERS:oid:0x5c000000001c9c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0936587 + }, + "COUNTERS:oid:0x5c00000000227d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0936697 + }, + "COUNTERS:oid:0x5c000000001f4d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "200", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.093681 + }, + "COUNTERS:oid:0x5c000000001774": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0937297 + }, + "COUNTERS:oid:0x5c000000001c76": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0937486 + }, + "COUNTERS:oid:0x5c000000001972": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.093764 + }, + "COUNTERS:oid:0x5c0000000018cf": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0937762 + }, + "COUNTERS:oid:0x5c000000001b23": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "136" + }, + "ttl": -0.001, + "expireat": 1651808848.0937877 + }, + "COUNTERS:oid:0x5c0000000023d0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "299" + }, + "ttl": -0.001, + "expireat": 1651808848.0938025 + }, + "COUNTERS:oid:0x5c000000001dca": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0938144 + }, + "COUNTERS:oid:0x5c000000001bd3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "149", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0938258 + }, + "COUNTERS:oid:0x5c0000000017f2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "135" + }, + "ttl": -0.001, + "expireat": 1651808848.0938401 + }, + "COUNTERS:oid:0x5c0000000020b2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0938525 + }, + "COUNTERS:oid:0x5c000000001498": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11730" + }, + "ttl": -0.001, + "expireat": 1651808848.093864 + }, + "COUNTERS:oid:0x5c00000000180f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "158" + }, + "ttl": -0.001, + "expireat": 1651808848.0938754 + }, + "COUNTERS:oid:0x5c0000000019c0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.093887 + }, + "COUNTERS:oid:0x5c0000000018de": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0939014 + }, + "COUNTERS:oid:0x5c00000000196d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "106" + }, + "ttl": -0.001, + "expireat": 1651808848.0939288 + }, + "COUNTERS:oid:0x5c000000001644": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.09394 + }, + "COUNTERS:oid:0x5c0000000015af": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "16", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.093954 + }, + "COUNTERS:oid:0x5c000000001d06": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "264", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0939686 + }, + "COUNTERS:oid:0x5c000000001eca": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "167" + }, + "ttl": -0.001, + "expireat": 1651808848.0939803 + }, + "COUNTERS:oid:0x5c000000001e88": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1366" + }, + "ttl": -0.001, + "expireat": 1651808848.0940087 + }, + "COUNTERS:oid:0x5c000000001438": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "171" + }, + "ttl": -0.001, + "expireat": 1651808848.0940235 + }, + "COUNTERS:oid:0x5c00000000161c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.0940695 + }, + "COUNTERS:oid:0x5c000000002308": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "52" + }, + "ttl": -0.001, + "expireat": 1651808848.0940835 + }, + "COUNTERS:oid:0x5c000000001656": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "213", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0940952 + }, + "COUNTERS:oid:0x5c000000001bc1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0941064 + }, + "COUNTERS:oid:0x5c000000002779": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.094122 + }, + "COUNTERS:oid:0x5c000000001fe5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1148" + }, + "ttl": -0.001, + "expireat": 1651808848.0941346 + }, + "COUNTERS:oid:0x5c000000001dcb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.094149 + }, + "COUNTERS:oid:0x5c000000001c64": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22" + }, + "ttl": -0.001, + "expireat": 1651808848.0941613 + }, + "COUNTERS:oid:0x5c000000001e32": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0941722 + }, + "COUNTERS:oid:0x5c000000001e37": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.094187 + }, + "COUNTERS:oid:0x5c0000000025e1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.094202 + }, + "COUNTERS:oid:0x5c000000002253": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0942178 + }, + "COUNTERS:oid:0x5c0000000013ac": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13" + }, + "ttl": -0.001, + "expireat": 1651808848.0942507 + }, + "COUNTERS:oid:0x5c000000001a94": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.094266 + }, + "COUNTERS:oid:0x5c0000000023eb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0942972 + }, + "COUNTERS:oid:0x5c0000000013bd": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0943093 + }, + "COUNTERS:oid:0x5c0000000025d6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1270", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.094337 + }, + "COUNTERS:oid:0x5c000000001473": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "23" + }, + "ttl": -0.001, + "expireat": 1651808848.094349 + }, + "COUNTERS:oid:0x5c00000000161d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "176" + }, + "ttl": -0.001, + "expireat": 1651808848.0943804 + }, + "COUNTERS:oid:0x5c0000000017a8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "15", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0943952 + }, + "COUNTERS:oid:0x5c000000001670": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.094441 + }, + "COUNTERS:oid:0x5c000000001ecf": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0944588 + }, + "COUNTERS:oid:0x5c0000000020a3": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1140" + }, + "ttl": -0.001, + "expireat": 1651808848.0944746 + }, + "COUNTERS:oid:0x5c0000000014eb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0944865 + }, + "COUNTERS:oid:0x5c000000001574": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.0945008 + }, + "COUNTERS:oid:0x5c000000002654": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "178" + }, + "ttl": -0.001, + "expireat": 1651808848.094513 + }, + "COUNTERS:oid:0x5c00000000162d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0945272 + }, + "COUNTERS:oid:0x5c000000002547": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.094542 + }, + "COUNTERS:oid:0x5c00000000159f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0945575 + }, + "COUNTERS:oid:0x5c000000001d59": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0945692 + }, + "COUNTERS:oid:0x5c000000001e86": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.0945807 + }, + "COUNTERS:oid:0x5c000000001ed4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "471", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0945923 + }, + "COUNTERS:oid:0x5c000000001392": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0946066 + }, + "COUNTERS:oid:0x5c0000000025ab": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0946183 + }, + "COUNTERS:oid:0x5c000000001d58": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0946324 + }, + "COUNTERS:oid:0x5c000000001aba": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0946443 + }, + "COUNTERS:oid:0x5c000000002556": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1264" + }, + "ttl": -0.001, + "expireat": 1651808848.09469 + }, + "COUNTERS:oid:0x5c000000001bcb": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "27" + }, + "ttl": -0.001, + "expireat": 1651808848.0947013 + }, + "COUNTERS:oid:0x5c0000000013b2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "304" + }, + "ttl": -0.001, + "expireat": 1651808848.0947158 + }, + "COUNTERS:oid:0x5c0000000014c8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "16" + }, + "ttl": -0.001, + "expireat": 1651808848.0947278 + }, + "COUNTERS:oid:0x5c000000001983": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "300" + }, + "ttl": -0.001, + "expireat": 1651808848.094775 + }, + "COUNTERS:oid:0x5c000000001d0c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "187" + }, + "ttl": -0.001, + "expireat": 1651808848.094793 + }, + "COUNTERS:oid:0x5c000000001834": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "185", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0948052 + }, + "COUNTERS:oid:0x5c000000001b4f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "185", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0948203 + }, + "COUNTERS:oid:0x5c00000000170d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "27" + }, + "ttl": -0.001, + "expireat": 1651808848.0948327 + }, + "COUNTERS:oid:0x5c00000000261e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1295" + }, + "ttl": -0.001, + "expireat": 1651808848.094844 + }, + "COUNTERS:oid:0x5c000000001e8f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0948591 + }, + "COUNTERS:oid:0x5c0000000023d9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1314", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0948708 + }, + "COUNTERS:oid:0x5c000000001721": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0948822 + }, + "COUNTERS:oid:0x5c0000000025e8": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0948937 + }, + "COUNTERS:oid:0x5c00000000148f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0949078 + }, + "COUNTERS:oid:0x5c000000001f0a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0949194 + }, + "COUNTERS:oid:0x5c00000000158c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1380" + }, + "ttl": -0.001, + "expireat": 1651808848.0949306 + }, + "COUNTERS:oid:0x5c00000000141e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "308" + }, + "ttl": -0.001, + "expireat": 1651808848.094945 + }, + "COUNTERS:oid:0x5c0000000021f4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0949602 + }, + "COUNTERS:oid:0x5c00000000182a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "87", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0949755 + }, + "COUNTERS:oid:0x5c000000002461": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1295" + }, + "ttl": -0.001, + "expireat": 1651808848.0949872 + }, + "COUNTERS:oid:0x5c00000000138d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1015" + }, + "ttl": -0.001, + "expireat": 1651808848.0949988 + }, + "COUNTERS:oid:0x5c000000001c57": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.0950131 + }, + "COUNTERS:oid:0x5c000000002144": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "179", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.095025 + }, + "COUNTERS:oid:0x5c0000000016fe": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "183" + }, + "ttl": -0.001, + "expireat": 1651808848.0950725 + }, + "COUNTERS:oid:0x5c00000000171f": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1290" + }, + "ttl": -0.001, + "expireat": 1651808848.0950878 + }, + "COUNTERS:oid:0x5c000000001ce6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0951 + }, + "COUNTERS:oid:0x5c00000000159b": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0951152 + }, + "COUNTERS:oid:0x5c000000001b16": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "18", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0951273 + }, + "COUNTERS:oid:0x5c0000000015be": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0951385 + }, + "COUNTERS:oid:0x5c00000000277e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "5" + }, + "ttl": -0.001, + "expireat": 1651808848.095153 + }, + "COUNTERS:oid:0x5c0000000016ec": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "219" + }, + "ttl": -0.001, + "expireat": 1651808848.0951684 + }, + "COUNTERS:oid:0x5c000000001d75": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "292" + }, + "ttl": -0.001, + "expireat": 1651808848.095183 + }, + "COUNTERS:oid:0x5c0000000019ac": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "14" + }, + "ttl": -0.001, + "expireat": 1651808848.0951943 + }, + "COUNTERS:oid:0x5c0000000020e7": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0952086 + }, + "COUNTERS:oid:0x5c0000000026e1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "13" + }, + "ttl": -0.001, + "expireat": 1651808848.0952206 + }, + "COUNTERS:oid:0x5c0000000018f2": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0952861 + }, + "COUNTERS:oid:0x5c00000000194c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0953012 + }, + "COUNTERS:oid:0x5c000000001a37": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "16" + }, + "ttl": -0.001, + "expireat": 1651808848.0953126 + }, + "COUNTERS:oid:0x5c000000002548": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0953236 + }, + "COUNTERS:oid:0x5c000000001c53": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "177", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0953388 + }, + "COUNTERS:oid:0x5c000000001bba": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.095354 + }, + "COUNTERS:oid:0x5c000000001b9a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "125" + }, + "ttl": -0.001, + "expireat": 1651808848.0953662 + }, + "COUNTERS:oid:0x5c000000001fde": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.095381 + }, + "COUNTERS:oid:0x5c000000001d5d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1274" + }, + "ttl": -0.001, + "expireat": 1651808848.095433 + }, + "COUNTERS:oid:0x5c0000000018ab": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "154" + }, + "ttl": -0.001, + "expireat": 1651808848.095451 + }, + "COUNTERS:oid:0x5c0000000013e9": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1258" + }, + "ttl": -0.001, + "expireat": 1651808848.0954638 + }, + "COUNTERS:oid:0x5c000000001e5d": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0954783 + }, + "COUNTERS:oid:0x5c00000000174a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.095493 + }, + "COUNTERS:oid:0x5c000000001e8a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "486" + }, + "ttl": -0.001, + "expireat": 1651808848.0955057 + }, + "COUNTERS:oid:0x5c000000001c5e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "446" + }, + "ttl": -0.001, + "expireat": 1651808848.095517 + }, + "COUNTERS:oid:0x5c000000002017": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "9" + }, + "ttl": -0.001, + "expireat": 1651808848.0955286 + }, + "COUNTERS:oid:0x5c000000002415": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "144" + }, + "ttl": -0.001, + "expireat": 1651808848.09554 + }, + "COUNTERS:oid:0x5c00000000265e": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.095552 + }, + "COUNTERS:oid:0x5c00000000212c": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "176", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0955634 + }, + "COUNTERS:oid:0x5c000000001cc1": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.095575 + }, + "COUNTERS:oid:0x5c0000000013b0": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "176" + }, + "ttl": -0.001, + "expireat": 1651808848.0955892 + }, + "COUNTERS:oid:0x5c000000001b67": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1324" + }, + "ttl": -0.001, + "expireat": 1651808848.095601 + }, + "COUNTERS:oid:0x5c000000002514": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "134" + }, + "ttl": -0.001, + "expireat": 1651808848.0956125 + }, + "COUNTERS:oid:0x5c000000002434": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "137", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.095627 + }, + "COUNTERS:oid:0x5c000000002607": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "301", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0956416 + }, + "COUNTERS:oid:0x5c000000001b29": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0956533 + }, + "COUNTERS:oid:0x5c0000000014ee": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "299" + }, + "ttl": -0.001, + "expireat": 1651808848.0956678 + }, + "COUNTERS:oid:0x5c000000002513": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.0956795 + }, + "COUNTERS:oid:0x5c000000001d97": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0956905 + }, + "COUNTERS:oid:0x5c000000001f5a": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "5" + }, + "ttl": -0.001, + "expireat": 1651808848.095725 + }, + "COUNTERS:oid:0x5c000000001462": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0957417 + }, + "COUNTERS:oid:0x5c000000001a48": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "12" + }, + "ttl": -0.001, + "expireat": 1651808848.095754 + }, + "COUNTERS:oid:0x5c000000001921": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "18" + }, + "ttl": -0.001, + "expireat": 1651808848.0957656 + }, + "COUNTERS:oid:0x5c000000001db5": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "196", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0957773 + }, + "COUNTERS:oid:0x5c0000000013b6": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "1" + }, + "ttl": -0.001, + "expireat": 1651808848.095808 + }, + "COUNTERS:oid:0x5c000000001b46": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.0958195 + }, + "COUNTERS:oid:0x5c000000002662": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11", + "SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0958307 + }, + "COUNTERS:oid:0x5c000000001d41": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "22", + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0" + }, + "ttl": -0.001, + "expireat": 1651808848.0958455 + }, + "COUNTERS:oid:0x5c0000000026e4": { + "type": "hash", + "value": { + "SAI_MACSEC_SA_STAT_IN_PKTS_OK": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA": "0", + "SAI_MACSEC_SA_STAT_OCTETS_PROTECTED": "0", + "SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_LATE": "0", + "SAI_MACSEC_SA_STAT_IN_PKTS_INVALID": "0", + "SAI_MACSEC_SA_ATTR_CURRENT_XPN": "11" + }, + "ttl": -0.001, + "expireat": 1651808848.09586 + } +} diff --git a/dockers/docker-macsec/cli-plugin-tests/mock_tables.py b/dockers/docker-macsec/cli-plugin-tests/mock_tables.py new file mode 100644 index 000000000000..2e88297597b3 --- /dev/null +++ b/dockers/docker-macsec/cli-plugin-tests/mock_tables.py @@ -0,0 +1,124 @@ +# MONKEY PATCH!!! +import json +import os +from unittest import mock + +import mockredis +import redis +import swsssdk +from sonic_py_common import multi_asic +from swsssdk import SonicV2Connector, ConfigDBConnector, ConfigDBPipeConnector +from swsscommon import swsscommon + + +dedicated_dbs = {} + + +_old_connect_SonicV2Connector = SonicV2Connector.connect + +def connect_SonicV2Connector(self, db_name, retry_on=True): + # add the namespace to kwargs for testing multi asic + self.dbintf.redis_kwargs['namespace'] = self.namespace + # Mock DB filename for unit-test + global dedicated_dbs + if dedicated_dbs and dedicated_dbs.get(db_name): + self.dbintf.redis_kwargs['db_name'] = dedicated_dbs[db_name] + else: + self.dbintf.redis_kwargs['db_name'] = db_name + self.dbintf.redis_kwargs['decode_responses'] = True + _old_connect_SonicV2Connector(self, db_name, retry_on) + +def _subscribe_keyspace_notification(self, db_name, client): + pass + + +def config_set(self, *args): + pass + + +class MockPubSub: + def get_message(self): + return None + + def psubscribe(self, *args, **kwargs): + pass + + def __call__(self, *args, **kwargs): + return self + + def listen(self): + return [] + + def punsubscribe(self, *args, **kwargs): + pass + + def clear(self): + pass + +INPUT_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class SwssSyncClient(mockredis.MockRedis): + def __init__(self, *args, **kwargs): + super(SwssSyncClient, self).__init__(strict=True, *args, **kwargs) + # Namespace is added in kwargs specifically for unit-test + # to identify the file path to load the db json files. + namespace = kwargs.pop('namespace') + db_name = kwargs.pop('db_name') + self.decode_responses = kwargs.pop('decode_responses', False) == True + fname = db_name.lower() + ".json" + self.pubsub = MockPubSub() + + if namespace is not None and namespace is not multi_asic.DEFAULT_NAMESPACE: + fname = os.path.join(INPUT_DIR, namespace, fname) + else: + fname = os.path.join(INPUT_DIR, fname) + + if os.path.exists(fname): + with open(fname) as f: + js = json.load(f) + for k, v in js.items(): + if 'expireat' in v and 'ttl' in v and 'type' in v and 'value' in v: + # database is in redis-dump format + if v['type'] == 'hash': + # ignore other types for now since sonic has hset keys only in the db + for attr, value in v['value'].items(): + self.hset(k, attr, value) + else: + for attr, value in v.items(): + self.hset(k, attr, value) + + # Patch mockredis/mockredis/client.py + # The offical implementation assume decode_responses=False + # Here we detect the option and decode after doing encode + def _encode(self, value): + "Return a bytestring representation of the value. Taken from redis-py connection.py" + + value = super(SwssSyncClient, self)._encode(value) + + if self.decode_responses: + return value.decode('utf-8') + + # Patch mockredis/mockredis/client.py + # The official implementation will filter out keys with a slash '/' + # ref: https://github.com/locationlabs/mockredis/blob/master/mockredis/client.py + def keys(self, pattern='*'): + """Emulate keys.""" + import fnmatch + import re + + # Make regex out of glob styled pattern. + regex = fnmatch.translate(pattern) + regex = re.compile(regex) + + # Find every key that matches the pattern + return [key for key in self.redis if regex.match(key)] + + +swsssdk.interface.DBInterface._subscribe_keyspace_notification = _subscribe_keyspace_notification +mockredis.MockRedis.config_set = config_set +redis.StrictRedis = SwssSyncClient +SonicV2Connector.connect = connect_SonicV2Connector +swsscommon.SonicV2Connector = SonicV2Connector +swsscommon.ConfigDBConnector = ConfigDBConnector +swsscommon.ConfigDBPipeConnector = ConfigDBPipeConnector diff --git a/dockers/docker-macsec/cli-plugin-tests/pytest.ini b/dockers/docker-macsec/cli-plugin-tests/pytest.ini new file mode 100644 index 000000000000..50dac9146b5a --- /dev/null +++ b/dockers/docker-macsec/cli-plugin-tests/pytest.ini @@ -0,0 +1,2 @@ +[pytest] +addopts = --cov-config=.coveragerc --cov --cov-report html --cov-report term --cov-report xml --junitxml=test-results.xml -vv \ No newline at end of file diff --git a/dockers/docker-macsec/cli-plugin-tests/test_config_macsec.py b/dockers/docker-macsec/cli-plugin-tests/test_config_macsec.py new file mode 100644 index 000000000000..4635092386ac --- /dev/null +++ b/dockers/docker-macsec/cli-plugin-tests/test_config_macsec.py @@ -0,0 +1,146 @@ +import sys + +from unittest import mock +from click.testing import CliRunner +from utilities_common.db import Db + +sys.path.append('../cli/config/plugins/') +import macsec + + +profile_name = "test" +primary_cak = "01234567890123456789012345678912" +primary_ckn = "01234567890123456789012345678912" + + +class TestConfigMACsec(object): + def test_plugin_registration(self): + cli = mock.MagicMock() + macsec.register(cli) + cli.add_command.assert_called_once_with(macsec.macsec) + + def test_default_profile(self, mock_cfgdb): + runner = CliRunner() + db = Db() + db.cfgdb = mock_cfgdb + result = runner.invoke(macsec.macsec.commands["profile"].commands["add"], + [profile_name, "--primary_cak=" + primary_cak,"--primary_ckn=" + primary_ckn], + obj=db) + assert result.exit_code == 0 + profile_table = db.cfgdb.get_entry("MACSEC_PROFILE", profile_name) + assert profile_table + assert profile_table["priority"] == "255" + assert profile_table["cipher_suite"] == "GCM-AES-128" + assert profile_table["primary_cak"] == primary_cak + assert profile_table["primary_ckn"] == primary_ckn + assert profile_table["policy"] == "security" + assert "enable_replay_protect" not in profile_table + assert "replay_window" not in profile_table + assert profile_table["send_sci"] == "true" + assert "rekey_period" not in profile_table + + result = runner.invoke(macsec.macsec.commands["profile"].commands["del"], [profile_name], obj=db) + assert result.exit_code == 0, "exit code: {}, Exception: {}, Traceback: {}".format(result.exit_code, result.exception, result.exc_info) + profile_table = db.cfgdb.get_entry("MACSEC_PROFILE", profile_name) + assert not profile_table + + def test_macsec_valid_profile(self, mock_cfgdb): + runner = CliRunner() + db = Db() + db.cfgdb = mock_cfgdb + + profile_name = "test" + profile_map = { + "primary_cak": "0123456789012345678901234567891201234567890123456789012345678912", + "primary_ckn": "01234567890123456789012345678912", + "priority": 64, + "cipher_suite": "GCM-AES-XPN-256", + "policy": "integrity_only", + "enable_replay_protect": None, + "replay_window": 100, + "no_send_sci": None, + "rekey_period": 30 * 60, + } + options = [profile_name] + for k, v in profile_map.items(): + options.append("--" + k) + if v is not None: + options[-1] += "=" + str(v) + + result = runner.invoke(macsec.macsec.commands["profile"].commands["add"], options, obj=db) + assert result.exit_code == 0, "exit code: {}, Exception: {}, Traceback: {}".format(result.exit_code, result.exception, result.exc_info) + profile_table = db.cfgdb.get_entry("MACSEC_PROFILE", profile_name) + assert profile_table + assert profile_table["priority"] == str(profile_map["priority"]) + assert profile_table["cipher_suite"] == profile_map["cipher_suite"] + assert profile_table["primary_cak"] == profile_map["primary_cak"] + assert profile_table["primary_ckn"] == profile_map["primary_ckn"] + assert profile_table["policy"] == profile_map["policy"] + if "enable_replay_protect" in profile_map: + assert "enable_replay_protect" in profile_table and profile_table["enable_replay_protect"] == "true" + assert profile_table["replay_window"] == str(profile_map["replay_window"]) + if "send_sci" in profile_map: + assert profile_table["send_sci"] == "true" + if "no_send_sci" in profile_map: + assert profile_table["send_sci"] == "false" + if "rekey_period" in profile_map: + assert profile_table["rekey_period"] == str(profile_map["rekey_period"]) + + def test_macsec_invalid_profile(self, mock_cfgdb): + runner = CliRunner() + db = Db() + db.cfgdb = mock_cfgdb + + # Loss primary cak and primary ckn + result = runner.invoke(macsec.macsec.commands["profile"].commands["add"], ["test"], obj=db) + assert result.exit_code != 0 + + # Invalid primary cak + result = runner.invoke(macsec.macsec.commands["profile"].commands["add"], ["test", "--primary_cak=abcdfghjk90123456789012345678912","--primary_ckn=01234567890123456789012345678912", "--cipher_suite=GCM-AES-128"], obj=db) + assert result.exit_code != 0 + + # Invalid primary cak length + result = runner.invoke(macsec.macsec.commands["profile"].commands["add"], ["test", "--primary_cak=01234567890123456789012345678912","--primary_ckn=01234567890123456789012345678912", "--cipher_suite=GCM-AES-256"], obj=db) + assert result.exit_code != 0 + + + def test_macsec_port(self, mock_cfgdb): + runner = CliRunner() + db = Db() + db.cfgdb = mock_cfgdb + + result = runner.invoke(macsec.macsec.commands["profile"].commands["add"], ["test", "--primary_cak=01234567890123456789012345678912","--primary_ckn=01234567890123456789012345678912"], obj=db) + assert result.exit_code == 0, "exit code: {}, Exception: {}, Traceback: {}".format(result.exit_code, result.exception, result.exc_info) + result = runner.invoke(macsec.macsec.commands["port"].commands["add"], ["Ethernet0", "test"], obj=db) + assert result.exit_code == 0, "exit code: {}, Exception: {}, Traceback: {}".format(result.exit_code, result.exception, result.exc_info) + port_table = db.cfgdb.get_entry("PORT", "Ethernet0") + assert port_table + assert port_table["macsec"] == "test" + + result = runner.invoke(macsec.macsec.commands["profile"].commands["del"], ["test"], obj=db) + assert result.exit_code != 0 + + result = runner.invoke(macsec.macsec.commands["port"].commands["del"], ["Ethernet0"], obj=db) + assert result.exit_code == 0, "exit code: {}, Exception: {}, Traceback: {}".format(result.exit_code, result.exception, result.exc_info) + port_table = db.cfgdb.get_entry("PORT", "Ethernet0") + assert not port_table["macsec"] + + + def test_macsec_invalid_operation(self, mock_cfgdb): + runner = CliRunner() + db = Db() + db.cfgdb = mock_cfgdb + + # Enable nonexisted profile + result = runner.invoke(macsec.macsec.commands["port"].commands["add"], ["Ethernet0", "test"], obj=db) + assert result.exit_code != 0 + + # Delete nonexisted profile + result = runner.invoke(macsec.macsec.commands["profile"].commands["del"], ["test"], obj=db) + assert result.exit_code != 0 + + result = runner.invoke(macsec.macsec.commands["profile"].commands["add"], ["test", "--primary_cak=01234567890123456789012345678912","--primary_ckn=01234567890123456789012345678912"], obj=db) + assert result.exit_code == 0, "exit code: {}, Exception: {}, Traceback: {}".format(result.exit_code, result.exception, result.exc_info) + # Repeat add profile + result = runner.invoke(macsec.macsec.commands["profile"].commands["add"], ["test", "--primary_cak=01234567890123456789012345678912","--primary_ckn=01234567890123456789012345678912"], obj=db) + assert result.exit_code != 0 diff --git a/dockers/docker-macsec/cli-plugin-tests/test_show_macsec.py b/dockers/docker-macsec/cli-plugin-tests/test_show_macsec.py new file mode 100644 index 000000000000..39b3a39ea7a9 --- /dev/null +++ b/dockers/docker-macsec/cli-plugin-tests/test_show_macsec.py @@ -0,0 +1,25 @@ +import sys +from unittest import mock + +from click.testing import CliRunner + +sys.path.append('../cli/show/plugins/') +import show_macsec + + +class TestShowMACsec(object): + def test_plugin_registration(self): + cli = mock.MagicMock() + show_macsec.register(cli) + cli.add_command.assert_called_once_with(show_macsec.macsec) + + def test_show_all(self): + runner = CliRunner() + result = runner.invoke(show_macsec.macsec,[]) + assert result.exit_code == 0, "exit code: {}, Exception: {}, Traceback: {}".format(result.exit_code, result.exception, result.exc_info) + + def test_show_one_port(self): + runner = CliRunner() + result = runner.invoke(show_macsec.macsec,["Ethernet1"]) + assert result.exit_code == 0, "exit code: {}, Exception: {}, Traceback: {}".format(result.exit_code, result.exception, result.exc_info) + diff --git a/dockers/docker-macsec/cli/config/plugins/macsec.py b/dockers/docker-macsec/cli/config/plugins/macsec.py new file mode 100644 index 000000000000..e5bc628b8cd0 --- /dev/null +++ b/dockers/docker-macsec/cli/config/plugins/macsec.py @@ -0,0 +1,181 @@ +import click +import utilities_common.cli as clicommon + +# +# 'macsec' group ('config macsec ...') +# +@click.group(cls=clicommon.AbbreviationGroup, name='macsec') +def macsec(): + """MACsec-related configuration tasks""" + pass + + +# +# 'port' group ('config macsec port ...') +# +@macsec.group(cls=clicommon.AbbreviationGroup, name='port') +def macsec_port(): + """Enable MACsec or disable MACsec on the specified port""" + pass + +# +# 'add' command ('config macsec port add ...') +# +@macsec_port.command('add') +@click.argument('port', metavar='', required=True) +@click.argument('profile', metavar='', required=True) +@clicommon.pass_db +def add_port(db, port, profile): + """ + Add MACsec port + """ + ctx = click.get_current_context() + + if clicommon.get_interface_naming_mode() == "alias": + alias = port + iface_alias_converter = clicommon.InterfaceAliasConverter(db) + port = iface_alias_converter.alias_to_name(alias) + if port is None: + ctx.fail("cannot find port name for alias {}".format(alias)) + + profile_entry = db.cfgdb.get_entry('MACSEC_PROFILE', profile) + if len(profile_entry) == 0: + ctx.fail("profile {} doesn't exist".format(profile)) + + db.cfgdb.set_entry("PORT", port, {'macsec': profile}) + + +# +# 'del' command ('config macsec port del ...') +# +@macsec_port.command('del') +@click.argument('port', metavar='', required=True) +@clicommon.pass_db +def del_port(db, port): + """ + Delete MACsec port + """ + ctx = click.get_current_context() + + if clicommon.get_interface_naming_mode() == "alias": + alias = port + iface_alias_converter = clicommon.InterfaceAliasConverter(db) + port = iface_alias_converter.alias_to_name(alias) + if port is None: + ctx.fail("cannot find port name for alias {}".format(alias)) + + db.cfgdb.set_entry("PORT", port, {'macsec': ""}) + + +# +# 'profile' group ('config macsec profile ...') +# +@macsec.group(cls=clicommon.AbbreviationGroup, name='profile') +def macsec_profile(): + pass + + +def is_hexstring(hexstring: str): + try: + int(hexstring, 16) + return True + except ValueError: + return False + + +# +# 'add' command ('config macsec profile add ...') +# +@macsec_profile.command('add') +@click.argument('profile', metavar='', required=True) +@click.option('--priority', metavar='', required=False, default=255, show_default=True, type=click.IntRange(0, 255), help="For Key server election. In 0-255 range with 0 being the highest priority.") +@click.option('--cipher_suite', metavar='', required=False, default="GCM-AES-128", show_default=True, type=click.Choice(["GCM-AES-128", "GCM-AES-256", "GCM-AES-XPN-128", "GCM-AES-XPN-256"]), help="The cipher suite for MACsec.") +@click.option('--primary_cak', metavar='', required=True, type=str, help="Primary Connectivity Association Key.") +@click.option('--primary_ckn', metavar='', required=True, type=str, help="Primary CAK Name.") +@click.option('--policy', metavar='', required=False, default="security", show_default=True, type=click.Choice(["integrity_only", "security"]), help="MACsec policy. INTEGRITY_ONLY: All traffic, except EAPOL, will be converted to MACsec packets without encryption. SECURITY: All traffic, except EAPOL, will be encrypted by SecY.") +@click.option('--enable_replay_protect/--disable_replay_protect', metavar='', required=False, default=False, show_default=True, is_flag=True, help="Whether enable replay protect.") +@click.option('--replay_window', metavar='', required=False, default=0, show_default=True, type=click.IntRange(0, 2**32), help="Replay window size that is the number of packets that could be out of order. This field works only if ENABLE_REPLAY_PROTECT is true.") +@click.option('--send_sci/--no_send_sci', metavar='', required=False, default=True, show_default=True, is_flag=True, help="Send SCI in SecTAG field of MACsec header.") +@click.option('--rekey_period', metavar='', required=False, default=0, show_default=True, type=click.IntRange(min=0), help="The period of proactively refresh (Unit second).") +@clicommon.pass_db +def add_profile(db, profile, priority, cipher_suite, primary_cak, primary_ckn, policy, enable_replay_protect, replay_window, send_sci, rekey_period): + """ + Add MACsec profile + """ + ctx = click.get_current_context() + profile_entry = db.cfgdb.get_entry('MACSEC_PROFILE', profile) + if not len(profile_entry) == 0: + ctx.fail("{} already exists".format(profile)) + + profile_table = {} + + profile_table["priority"] = priority + + profile_table["cipher_suite"] = cipher_suite + + if "128" in cipher_suite: + if len(primary_cak) != 32: + ctx.fail("Expect the length of CAK is 32, but got {}".format(len(primary_cak))) + elif "256" in cipher_suite: + if len(primary_cak) != 64: + ctx.fail("Expect the length of CAK is 64, but got {}".format(len(primary_cak))) + if not is_hexstring(primary_cak): + ctx.fail("Expect the primary_cak is valid hex string") + if not is_hexstring(primary_ckn): + ctx.fail("Expect the primary_ckn is valid hex string") + profile_table["primary_cak"] = primary_cak + profile_table["primary_ckn"] = primary_ckn + + profile_table["policy"] = policy + + if enable_replay_protect and replay_window > 0: + profile_table["enable_replay_protect"] = enable_replay_protect + profile_table["replay_window"] = replay_window + + profile_table["send_sci"] = send_sci + + if rekey_period > 0: + profile_table["rekey_period"] = rekey_period + + for k, v in profile_table.items(): + if isinstance(v, bool): + if v: + profile_table[k] = "true" + else: + profile_table[k] = "false" + else: + profile_table[k] = str(v) + db.cfgdb.set_entry("MACSEC_PROFILE", profile, profile_table) + + +# +# 'del' command ('config macsec profile del ...') +# +@macsec_profile.command('del') +@click.argument('profile', metavar='', required=True) +@clicommon.pass_db +def del_profile(db, profile): + """ + Delete MACsec profile + """ + ctx = click.get_current_context() + + profile_entry = db.cfgdb.get_entry('MACSEC_PROFILE', profile) + if len(profile_entry) == 0: + ctx.fail("{} doesn't exist".format(profile)) + + # Check if the profile is being used by any port + for port in db.cfgdb.get_keys('PORT'): + attr = db.cfgdb.get_entry('PORT', port) + if 'macsec' in attr and attr['macsec'] == profile: + ctx.fail("{} is being used by port {}, Please remove the MACsec from the port firstly".format(profile, port)) + + db.cfgdb.set_entry("MACSEC_PROFILE", profile, None) + + +def register(cli): + cli.add_command(macsec) + + +if __name__ == '__main__': + macsec() diff --git a/dockers/docker-macsec/cli/show/plugins/show_macsec.py b/dockers/docker-macsec/cli/show/plugins/show_macsec.py new file mode 100644 index 000000000000..538b8947f91d --- /dev/null +++ b/dockers/docker-macsec/cli/show/plugins/show_macsec.py @@ -0,0 +1,217 @@ +import typing +from natsort import natsorted + +import click +from tabulate import tabulate + +from swsscommon.swsscommon import SonicV2Connector + + +DB_CONNECTOR = SonicV2Connector(use_unix_socket_path=False) +DB_CONNECTOR.connect(DB_CONNECTOR.APPL_DB) +DB_CONNECTOR.connect(DB_CONNECTOR.COUNTERS_DB) + + +class MACsecAppMeta(object): + SEPARATOR = DB_CONNECTOR.get_db_separator(DB_CONNECTOR.APPL_DB) + + def __init__(self, *args) -> None: + key = self.__class__.get_appl_table_name() + MACsecAppMeta.SEPARATOR + \ + MACsecAppMeta.SEPARATOR.join(args) + self.meta = DB_CONNECTOR.get_all( + DB_CONNECTOR.APPL_DB, key) + if len(self.meta) == 0: + raise ValueError("No such MACsecAppMeta: {}".format(key)) + for k, v in self.meta.items(): + setattr(self, k, v) + + +class MACsecCounters(object): + def __init__(self, *args) -> None: + key = ":".join(args) + counters_id = DB_CONNECTOR.get( + DB_CONNECTOR.COUNTERS_DB, self.__class__.get_counter_table_name(), key) + counter_key = "COUNTERS:" + counters_id + self.counters = DB_CONNECTOR.get_all( + DB_CONNECTOR.COUNTERS_DB, counter_key) + + +class MACsecSA(MACsecAppMeta, MACsecCounters): + def __init__(self, port_name: str, sci: str, an: str) -> None: + self.port_name = port_name + self.sci = sci + self.an = an + MACsecAppMeta.__init__(self, port_name, sci, an) + MACsecCounters.__init__(self, port_name, sci, an) + + def dump_str(self) -> str: + buffer = self.get_header() + meta = sorted(self.meta.items(), key=lambda x: x[0]) + counters = sorted(self.counters.items(), key=lambda x: x[0]) + buffer += tabulate(meta + counters) + buffer = "\n".join(["\t\t" + line for line in buffer.splitlines()]) + return buffer + + +class MACsecIngressSA(MACsecSA): + def __init__(self, port_name: str, sci: str, an: str) -> None: + super(MACsecIngressSA, self).__init__(port_name, sci, an) + + @classmethod + def get_appl_table_name(cls) -> str: + return "MACSEC_INGRESS_SA_TABLE" + + @classmethod + def get_counter_table_name(cls) -> str: + return "COUNTERS_MACSEC_SA_RX_NAME_MAP" + + def get_header(self): + return "MACsec Ingress SA ({})\n".format(self.an) + + +class MACsecEgressSA(MACsecSA): + def __init__(self, port_name: str, sci: str, an: str) -> None: + super(MACsecEgressSA, self).__init__(port_name, sci, an) + + @classmethod + def get_appl_table_name(cls) -> str: + return "MACSEC_EGRESS_SA_TABLE" + + @classmethod + def get_counter_table_name(cls) -> str: + return "COUNTERS_MACSEC_SA_TX_NAME_MAP" + + def get_header(self): + return "MACsec Egress SA ({})\n".format(self.an) + + +class MACsecSC(MACsecAppMeta): + def __init__(self, port_name: str, sci: str) -> None: + self.port_name = port_name + self.sci = sci + super(MACsecSC, self).__init__(port_name, sci) + + +class MACsecIngressSC(MACsecSC): + def __init__(self, port_name: str, sci: str) -> None: + super(MACsecIngressSC, self).__init__(port_name, sci) + + @classmethod + def get_appl_table_name(cls) -> str: + return "MACSEC_INGRESS_SC_TABLE" + + def dump_str(self) -> str: + buffer = self.get_header() + buffer = "\n".join(["\t" + line for line in buffer.splitlines()]) + return buffer + + def get_header(self): + return "MACsec Ingress SC ({})\n".format(self.sci) + + +class MACsecEgressSC(MACsecSC): + def __init__(self, port_name: str, sci: str) -> None: + super(MACsecEgressSC, self).__init__(port_name, sci) + + @classmethod + def get_appl_table_name(cls) -> str: + return "MACSEC_EGRESS_SC_TABLE" + + def dump_str(self) -> str: + buffer = self.get_header() + buffer += tabulate(sorted(self.meta.items(), key=lambda x: x[0])) + buffer = "\n".join(["\t" + line for line in buffer.splitlines()]) + return buffer + + def get_header(self): + return "MACsec Egress SC ({})\n".format(self.sci) + + +class MACsecPort(MACsecAppMeta): + def __init__(self, port_name: str) -> None: + self.port_name = port_name + super(MACsecPort, self).__init__(port_name) + + @classmethod + def get_appl_table_name(cls) -> str: + return "MACSEC_PORT_TABLE" + + def dump_str(self) -> str: + buffer = self.get_header() + buffer += tabulate(sorted(self.meta.items(), key=lambda x: x[0])) + return buffer + + def get_header(self) -> str: + return "MACsec port({})\n".format(self.port_name) + + +def create_macsec_obj(key: str) -> MACsecAppMeta: + attr = key.split(":") + try: + if attr[0] == MACsecPort.get_appl_table_name(): + return MACsecPort(attr[1]) + elif attr[0] == MACsecIngressSC.get_appl_table_name(): + return MACsecIngressSC(attr[1], attr[2]) + elif attr[0] == MACsecEgressSC.get_appl_table_name(): + return MACsecEgressSC(attr[1], attr[2]) + elif attr[0] == MACsecIngressSA.get_appl_table_name(): + return MACsecIngressSA(attr[1], attr[2], attr[3]) + elif attr[0] == MACsecEgressSA.get_appl_table_name(): + return MACsecEgressSA(attr[1], attr[2], attr[3]) + raise TypeError("Unknown MACsec object type") + except ValueError as e: + return None + +def create_macsec_objs(interface_name: str) -> typing.List[MACsecAppMeta]: + objs = [] + objs.append(create_macsec_obj(MACsecPort.get_appl_table_name() + ":" + interface_name)) + egress_scs = DB_CONNECTOR.keys(DB_CONNECTOR.APPL_DB, MACsecEgressSC.get_appl_table_name() + ":" + interface_name + ":*") + for sc_name in natsorted(egress_scs): + sc = create_macsec_obj(sc_name) + if sc is None: + continue + objs.append(sc) + egress_sas = DB_CONNECTOR.keys(DB_CONNECTOR.APPL_DB, MACsecEgressSA.get_appl_table_name() + ":" + ":".join(sc_name.split(":")[1:]) + ":*") + for sa_name in natsorted(egress_sas): + sa = create_macsec_obj(sa_name) + if sa is None: + continue + objs.append(sa) + ingress_scs = DB_CONNECTOR.keys(DB_CONNECTOR.APPL_DB, MACsecIngressSC.get_appl_table_name() + ":" + interface_name + ":*") + for sc_name in natsorted(ingress_scs): + sc = create_macsec_obj(sc_name) + if sc is None: + continue + objs.append(sc) + ingress_sas = DB_CONNECTOR.keys(DB_CONNECTOR.APPL_DB, MACsecIngressSA.get_appl_table_name() + ":" + ":".join(sc_name.split(":")[1:]) + ":*") + for sa_name in natsorted(ingress_sas): + sa = create_macsec_obj(sa_name) + if sa is None: + continue + objs.append(sa) + return objs + + +@click.command() +@click.argument('interface_name', required=False) +def macsec(interface_name): + ctx = click.get_current_context() + objs = [] + interface_names = [name.split(":")[1] for name in DB_CONNECTOR.keys(DB_CONNECTOR.APPL_DB, "MACSEC_PORT*")] + if interface_name is not None: + if interface_name not in interface_names: + ctx.fail("Cannot find the port {} in MACsec port lists {}".format(interface_name, interface_names)) + else: + interface_names = [interface_name] + for interface_name in natsorted(interface_names): + objs += create_macsec_objs(interface_name) + for obj in objs: + print(obj.dump_str()) + + +def register(cli): + cli.add_command(macsec) + + +if __name__ == '__main__': + macsec(None) diff --git a/rules/docker-macsec.mk b/rules/docker-macsec.mk index 7bea7ef321b8..3a6e9a558577 100644 --- a/rules/docker-macsec.mk +++ b/rules/docker-macsec.mk @@ -14,14 +14,25 @@ $(DOCKER_MACSEC)_DBG_IMAGE_PACKAGES = $($(DOCKER_CONFIG_ENGINE_BULLSEYE)_DBG_IMA $(DOCKER_MACSEC)_LOAD_DOCKERS += $(DOCKER_CONFIG_ENGINE_BULLSEYE) +$(DOCKER_MACSEC)_INSTALL_PYTHON_WHEELS = $(SONIC_UTILITIES_PY3) +$(DOCKER_MACSEC)_INSTALL_DEBS = $(PYTHON3_SWSSCOMMON) $(LIBYANG_PY3) + SONIC_DOCKER_IMAGES += $(DOCKER_MACSEC) -ifeq ($(INCLUDE_MACSEC), y) -SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_MACSEC) +SONIC_DOCKER_DBG_IMAGES += $(DOCKER_MACSEC_DBG) + +ifeq ($(INCLUDE_KUBERNETES),y) +$(DOCKER_MACSEC)_DEFAULT_FEATURE_OWNER = kube endif -SONIC_DOCKER_DBG_IMAGES += $(DOCKER_MACSEC_DBG) -ifeq ($(INCLUDE_MACSEC), y) -SONIC_INSTALL_DOCKER_DBG_IMAGES += $(DOCKER_MACSEC_DBG) +$(DOCKER_MACSEC)_DEFAULT_FEATURE_STATE_ENABLED = y + + +ifeq ($(INCLUDE_MACSEC),y) +ifeq ($(INSTALL_DEBUG_TOOLS),y) +SONIC_PACKAGES_LOCAL += $(DOCKER_MACSEC_DBG) +else +SONIC_PACKAGES_LOCAL += $(DOCKER_MACSEC) +endif endif $(DOCKER_MACSEC)_CONTAINER_NAME = macsec @@ -31,7 +42,7 @@ $(DOCKER_MACSEC)_RUN_OPT += --privileged -t $(DOCKER_MACSEC)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro $(DOCKER_MACSEC)_RUN_OPT += -v /host/warmboot:/var/warmboot -$(DOCKER_MACSEC)_FILES += $(SUPERVISOR_PROC_EXIT_LISTENER_SCRIPT) +$(DOCKER_MACSEC)_CLI_CONFIG_PLUGIN = /cli/config/plugins/macsec.py +$(DOCKER_MACSEC)_CLI_SHOW_PLUGIN = /cli/show/plugins/show_macsec.py -SONIC_BULLSEYE_DOCKERS += $(DOCKER_MACSEC) -SONIC_BULLSEYE_DBG_DOCKERS += $(DOCKER_MACSEC_DBG) +$(DOCKER_MACSEC)_FILES += $(SUPERVISOR_PROC_EXIT_LISTENER_SCRIPT) From 70d71f99f573979669808fd89a605832d04f1827 Mon Sep 17 00:00:00 2001 From: Andriy Yurkiv <70649192+ayurkiv-nvda@users.noreply.github.com> Date: Thu, 19 May 2022 17:36:02 +0300 Subject: [PATCH 194/251] [Mellanox] Credo Y-cable | add more log info, checks, fix exception message (#10779) - Why I did it Script fails when there is an exception while reading - How I did it Add more logs and checks. Fix wrong variable naming and messages. - How to verify it Provoke exception while read_eeprom() and check that it is handled properly --- platform/mellanox/mlnx-platform-api/sonic_platform/sfp.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/platform/mellanox/mlnx-platform-api/sonic_platform/sfp.py b/platform/mellanox/mlnx-platform-api/sonic_platform/sfp.py index 7ebe9d5e5e57..efaf3479b6ed 100644 --- a/platform/mellanox/mlnx-platform-api/sonic_platform/sfp.py +++ b/platform/mellanox/mlnx-platform-api/sonic_platform/sfp.py @@ -187,7 +187,7 @@ def write_mlxreg_eeprom(self, num_bytes, dword, device_address, page): --set {} -y".format(self.mst_pci_device, self.slot_id, self.sdk_index, device_address, page, num_bytes, dword) subprocess.check_call(cmd, shell=True, universal_newlines=True, stdout=subprocess.DEVNULL) except subprocess.CalledProcessError as e: - logger.log_error("Error! Unable to write data for {} port, page {} offset {}, rc = {}, err msg: {}".format(self.sdk_index, page, device_address, e.returncode, e.output)) + logger.log_error("Error! Unable to write data dword={} for {} port, page {} offset {}, rc = {}, err msg: {}".format(dword, self.sdk_index, page, device_address, e.returncode, e.output)) return False return True @@ -198,11 +198,14 @@ def read_mlxred_eeprom(self, offset, page, num_bytes): --get".format(self.mst_pci_device, self.slot_id, self.sdk_index, offset, page, num_bytes) result = subprocess.check_output(cmd, universal_newlines=True, shell=True) except subprocess.CalledProcessError as e: - logger.log_error("Error! Unable to write data for {} port, page {} offset {}, rc = {}, err msg: {}".format(self.sdk_index, page, device_address, e.returncode, e.output)) + logger.log_error("Error! Unable to read data for {} port, page {} offset {}, rc = {}, err msg: {}".format(self.sdk_index, page, offset, e.returncode, e.output)) return None return result def parse_mlxreg_read_output(self, read_output, num_bytes): + if not read_output: + return None + res = "" dword_num = num_bytes // BYTES_IN_DWORD used_bytes_in_dword = num_bytes % BYTES_IN_DWORD From b21cd709551f87473221a971cfce55a9bf4e4f90 Mon Sep 17 00:00:00 2001 From: Ze Gan Date: Fri, 20 May 2022 01:21:11 +0800 Subject: [PATCH 195/251] [Submodule]: update submodule for sonic-swss and sonic-wpa-supplicant (#10842) Signed-off-by: Ze Gan --- src/sonic-swss | 2 +- src/wpasupplicant/sonic-wpa-supplicant | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sonic-swss b/src/sonic-swss index 2ea8581da4ba..97b4387ca9f5 160000 --- a/src/sonic-swss +++ b/src/sonic-swss @@ -1 +1 @@ -Subproject commit 2ea8581da4ba6f97bebde4845a234d7c810e5515 +Subproject commit 97b4387ca9f527c074878f40a598acad7460a96e diff --git a/src/wpasupplicant/sonic-wpa-supplicant b/src/wpasupplicant/sonic-wpa-supplicant index f36c8c87702f..639a051357d0 160000 --- a/src/wpasupplicant/sonic-wpa-supplicant +++ b/src/wpasupplicant/sonic-wpa-supplicant @@ -1 +1 @@ -Subproject commit f36c8c87702fa1bc6d1f9b7193872285a41bd630 +Subproject commit 639a051357d0e3712c54f7fa975d4ff64733cc38 From f7882b38850f50842103d6b6cad78a3f93a36c6b Mon Sep 17 00:00:00 2001 From: vmittal-msft <46945843+vmittal-msft@users.noreply.github.com> Date: Thu, 19 May 2022 11:15:34 -0700 Subject: [PATCH 196/251] Fix for libsaithrift build for BRCM image (#10852) Updated libsaibcm to fix libsaithrift compile issue on BRCM image --- platform/broadcom/sai.mk | 2 +- slave.mk | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/platform/broadcom/sai.mk b/platform/broadcom/sai.mk index 872c51276fe5..876c7af83850 100644 --- a/platform/broadcom/sai.mk +++ b/platform/broadcom/sai.mk @@ -1,4 +1,4 @@ -LIBSAIBCM_VERSION = 7.1.0.0 +LIBSAIBCM_VERSION = 7.1.0.0-1 LIBSAIBCM_BRANCH_NAME = REL_7.0 LIBSAIBCM_URL_PREFIX = "https://sonicstorage.blob.core.windows.net/public/sai/bcmsai/$(LIBSAIBCM_BRANCH_NAME)/$(LIBSAIBCM_VERSION)" diff --git a/slave.mk b/slave.mk index 4858e290cd3a..44d9e0ed8849 100644 --- a/slave.mk +++ b/slave.mk @@ -2,7 +2,7 @@ ## Presettings ############################################################################### -# Select bash for commands +# Select bash for commands .ONESHELL: SHELL = /bin/bash .SHELLFLAGS += -e From 937bf09c9207341f9738d7caeca43f102351c11a Mon Sep 17 00:00:00 2001 From: "Marty Y. Lok" <76118573+mlok-nokia@users.noreply.github.com> Date: Thu, 19 May 2022 14:38:34 -0400 Subject: [PATCH 197/251] {nokia] Update Nokia IXR7250e supervisor card device data (#10595) Signed-off-by: mlok --- device/nokia/x86_64-nokia_ixr7250e_sup-r0/installer.conf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/device/nokia/x86_64-nokia_ixr7250e_sup-r0/installer.conf b/device/nokia/x86_64-nokia_ixr7250e_sup-r0/installer.conf index 21bc03a020bc..6b58d6663580 100644 --- a/device/nokia/x86_64-nokia_ixr7250e_sup-r0/installer.conf +++ b/device/nokia/x86_64-nokia_ixr7250e_sup-r0/installer.conf @@ -1,4 +1,4 @@ -CONSOLE_PORT=0x3f8 +CONSOLE_PORT=0x2f8 CONSOLE_DEV=0 CONSOLE_SPEED=115200 -ONIE_PLATFORM_EXTRA_CMDLINE_LINUX="amd_iommu=off pci=resource_alignment=26@00:01.4" \ No newline at end of file +ONIE_PLATFORM_EXTRA_CMDLINE_LINUX="amd_iommu=off pci=resource_alignment=26@00:01.4" From 4fd629c021de2fb6982cf29a0509169aade2b5e7 Mon Sep 17 00:00:00 2001 From: abdosi <58047199+abdosi@users.noreply.github.com> Date: Thu, 19 May 2022 22:51:02 -0700 Subject: [PATCH 198/251] Added Support for BGP allow list feature to have route-map action of setting tag (#10731) What I did: Added support to create route-map action set tag when the the allow prefix list matches. The tag can ben define by user in constants.yml. Why I did: Since for Allow List feature we call from base route-map allow-list route-map having set tag option provides way for base route-map to do match tag and take any further action if needed. Adding tag provide metadata that can used by base route-map --- .../bgpcfgd/managers_allow_list.py | 17 ++++ src/sonic-bgpcfgd/tests/test_allow_list.py | 87 ++++++++++++++++++- 2 files changed, 102 insertions(+), 2 deletions(-) diff --git a/src/sonic-bgpcfgd/bgpcfgd/managers_allow_list.py b/src/sonic-bgpcfgd/bgpcfgd/managers_allow_list.py index e03bb19c163f..209d12fd2f97 100644 --- a/src/sonic-bgpcfgd/bgpcfgd/managers_allow_list.py +++ b/src/sonic-bgpcfgd/bgpcfgd/managers_allow_list.py @@ -40,6 +40,7 @@ def __init__(self, common_objs, db, table): ) self.key_re = re.compile(r"^DEPLOYMENT_ID\|\d+\|\S+$|^DEPLOYMENT_ID\|\d+$") self.enabled = self.__get_enabled() + self.prefix_match_tag = self.__get_routemap_tag() self.__load_constant_lists() def set_handler(self, key, data): @@ -396,6 +397,8 @@ def __update_allow_route_map_entry(self, af, allow_address_pl_name, community_na ] if not community_name.endswith(self.EMPTY_COMMUNITY): cmds.append(" match community %s" % community_name) + elif self.prefix_match_tag: + cmds.append(" set tag %s" % self.prefix_match_tag) return cmds def __update_default_route_map_entry(self, route_map_name, default_action_community): @@ -612,6 +615,20 @@ def __get_route_map_calls(self, rms): inside_name = result.group(1) return rm_2_call + def __get_routemap_tag(self): + """ + Find if any user define tag is provided to be used when allow prefifx list is matched + :return: string: prefix mix tag if define in constants.yml else None + """ + prefix_match_tag = None + if 'bgp' in self.constants and \ + 'allow_list' in self.constants["bgp"] and \ + 'prefix_match_tag' in \ + self.constants["bgp"]["allow_list"]: + prefix_match_tag = \ + self.constants["bgp"]["allow_list"]["prefix_match_tag"] + return prefix_match_tag + @staticmethod def __get_peer_group_to_restart(deployment_id, pg_2_rm, rm_2_call): """ diff --git a/src/sonic-bgpcfgd/tests/test_allow_list.py b/src/sonic-bgpcfgd/tests/test_allow_list.py index 5207c6283462..e77c692ee593 100644 --- a/src/sonic-bgpcfgd/tests/test_allow_list.py +++ b/src/sonic-bgpcfgd/tests/test_allow_list.py @@ -26,8 +26,26 @@ } } +global_constants_with_prefix_match_tag = { + "bgp": { + "allow_list": { + "enabled": True, + "default_pl_rules": { + "v4": [ "deny 0.0.0.0/0 le 17" ], + "v6": [ + "deny 0::/0 le 59", + "deny 0::/0 ge 65" + ] + }, + "default_action": "permit", + "drop_community": "123:123", + "prefix_match_tag": "1001" + } + } +} + @patch.dict("sys.modules", swsscommon=swsscommon_module_mock) -def set_del_test(op, args, currect_config, expected_config, update_global_default_action=None): +def set_del_test(op, args, currect_config, expected_config, update_global_default_action=None, update_constant_prefix_match_tag=False): from bgpcfgd.managers_allow_list import BGPAllowListMgr set_del_test.push_list_called = False def push_list(args): @@ -45,7 +63,7 @@ def push_list(args): 'directory': Directory(), 'cfg_mgr': cfg_mgr, 'tf': TemplateFabric(), - 'constants': deepcopy(global_constants), + 'constants': deepcopy(global_constants) if not update_constant_prefix_match_tag else deepcopy(global_constants_with_prefix_match_tag) } mgr = BGPAllowListMgr(common_objs, "CONFIG_DB", "BGP_ALLOWED_PREFIXES") @@ -92,6 +110,39 @@ def test_set_handler_with_community(): ' match community COMMUNITY_ALLOW_LIST_DEPLOYMENT_ID_5_COMMUNITY_1010:2020', ] ) + +def test_set_handler_with_community_and_prefix_match_tag(): + set_del_test( + "SET", + ("DEPLOYMENT_ID|5|1010:2020", { + "prefixes_v4": "10.20.30.0/24,30.50.0.0/16", + "prefixes_v6": "fc00:20::/64,fc00:30::/64", + }), + [ + 'route-map ALLOW_LIST_DEPLOYMENT_ID_5_V4 permit 65535', + ' set community 123:123 additive', + 'route-map ALLOW_LIST_DEPLOYMENT_ID_5_V6 permit 65535', + ' set community 123:123 additive' + ], + [ + 'ip prefix-list PL_ALLOW_LIST_DEPLOYMENT_ID_5_COMMUNITY_1010:2020_V4 seq 10 deny 0.0.0.0/0 le 17', + 'ip prefix-list PL_ALLOW_LIST_DEPLOYMENT_ID_5_COMMUNITY_1010:2020_V4 seq 20 permit 10.20.30.0/24 le 32', + 'ip prefix-list PL_ALLOW_LIST_DEPLOYMENT_ID_5_COMMUNITY_1010:2020_V4 seq 30 permit 30.50.0.0/16 le 32', + 'ipv6 prefix-list PL_ALLOW_LIST_DEPLOYMENT_ID_5_COMMUNITY_1010:2020_V6 seq 10 deny ::/0 le 59', + 'ipv6 prefix-list PL_ALLOW_LIST_DEPLOYMENT_ID_5_COMMUNITY_1010:2020_V6 seq 20 deny ::/0 ge 65', + 'ipv6 prefix-list PL_ALLOW_LIST_DEPLOYMENT_ID_5_COMMUNITY_1010:2020_V6 seq 30 permit fc00:20::/64 le 128', + 'ipv6 prefix-list PL_ALLOW_LIST_DEPLOYMENT_ID_5_COMMUNITY_1010:2020_V6 seq 40 permit fc00:30::/64 le 128', + 'bgp community-list standard COMMUNITY_ALLOW_LIST_DEPLOYMENT_ID_5_COMMUNITY_1010:2020 permit 1010:2020', + 'route-map ALLOW_LIST_DEPLOYMENT_ID_5_V4 permit 10', + ' match ip address prefix-list PL_ALLOW_LIST_DEPLOYMENT_ID_5_COMMUNITY_1010:2020_V4', + ' match community COMMUNITY_ALLOW_LIST_DEPLOYMENT_ID_5_COMMUNITY_1010:2020', + 'route-map ALLOW_LIST_DEPLOYMENT_ID_5_V6 permit 10', + ' match ipv6 address prefix-list PL_ALLOW_LIST_DEPLOYMENT_ID_5_COMMUNITY_1010:2020_V6', + ' match community COMMUNITY_ALLOW_LIST_DEPLOYMENT_ID_5_COMMUNITY_1010:2020', + ], + None, True + ) + def test_set_handler_with_community_and_permit_action(): set_del_test( "SET", @@ -188,6 +239,38 @@ def test_set_handler_no_community(): ' match ipv6 address prefix-list PL_ALLOW_LIST_DEPLOYMENT_ID_5_COMMUNITY_empty_V6', ] ) + +def test_set_handler_no_community_and_prefix_match_tag(): + set_del_test( + "SET", + ("DEPLOYMENT_ID|5", { + "prefixes_v4": "20.20.30.0/24,40.50.0.0/16", + "prefixes_v6": "fc01:20::/64,fc01:30::/64", + }), + [ + 'route-map ALLOW_LIST_DEPLOYMENT_ID_5_V4 permit 65535', + ' set community 123:123 additive', + 'route-map ALLOW_LIST_DEPLOYMENT_ID_5_V6 permit 65535', + ' set community 123:123 additive', + ], + [ + 'ip prefix-list PL_ALLOW_LIST_DEPLOYMENT_ID_5_COMMUNITY_empty_V4 seq 10 deny 0.0.0.0/0 le 17', + 'ip prefix-list PL_ALLOW_LIST_DEPLOYMENT_ID_5_COMMUNITY_empty_V4 seq 20 permit 20.20.30.0/24 le 32', + 'ip prefix-list PL_ALLOW_LIST_DEPLOYMENT_ID_5_COMMUNITY_empty_V4 seq 30 permit 40.50.0.0/16 le 32', + 'ipv6 prefix-list PL_ALLOW_LIST_DEPLOYMENT_ID_5_COMMUNITY_empty_V6 seq 10 deny ::/0 le 59', + 'ipv6 prefix-list PL_ALLOW_LIST_DEPLOYMENT_ID_5_COMMUNITY_empty_V6 seq 20 deny ::/0 ge 65', + 'ipv6 prefix-list PL_ALLOW_LIST_DEPLOYMENT_ID_5_COMMUNITY_empty_V6 seq 30 permit fc01:20::/64 le 128', + 'ipv6 prefix-list PL_ALLOW_LIST_DEPLOYMENT_ID_5_COMMUNITY_empty_V6 seq 40 permit fc01:30::/64 le 128', + 'route-map ALLOW_LIST_DEPLOYMENT_ID_5_V4 permit 30000', + ' match ip address prefix-list PL_ALLOW_LIST_DEPLOYMENT_ID_5_COMMUNITY_empty_V4', + ' set tag 1001', + 'route-map ALLOW_LIST_DEPLOYMENT_ID_5_V6 permit 30000', + ' match ipv6 address prefix-list PL_ALLOW_LIST_DEPLOYMENT_ID_5_COMMUNITY_empty_V6', + ' set tag 1001', + ], + None,True + ) + def test_set_handler_no_community_with_permit_action(): set_del_test( "SET", From f6927606b3720d4f526b9e734b4431f012d21ee3 Mon Sep 17 00:00:00 2001 From: xumia <59720581+xumia@users.noreply.github.com> Date: Fri, 20 May 2022 14:32:53 +0800 Subject: [PATCH 199/251] [Ci]: Fix to trigger the publish pipeline in failure build issue (#10847) Why I did it It is not necessary to trigger the publish pipeline when build is failed. How I did it Remove the condition in the azp task, change to use template condition. --- .azure-pipelines/azure-pipelines-image-template.yml | 9 +++++---- .azure-pipelines/trigger-publish-artifacts-build.yml | 2 -- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/.azure-pipelines/azure-pipelines-image-template.yml b/.azure-pipelines/azure-pipelines-image-template.yml index 20bedc8d8084..ae103ed28868 100644 --- a/.azure-pipelines/azure-pipelines-image-template.yml +++ b/.azure-pipelines/azure-pipelines-image-template.yml @@ -58,10 +58,11 @@ jobs: condition: failed() artifact: 'sonic-buildimage.$(GROUP_NAME)$(GROUP_EXTNAME)$(System.JobAttempt)' displayName: "Archive failed sonic image" - - template: trigger-publish-artifacts-build.yml - parameters: - artifactName: 'sonic-buildimage.$(GROUP_NAME)$(GROUP_EXTNAME)' - publishPrefix: '$(Build.DefinitionName)/$(Build.SourceBranchName)/$(GROUP_NAME)' + - ${{ if ne(variables['Build.Reason'], 'PullRequest') }}: + - template: trigger-publish-artifacts-build.yml + parameters: + artifactName: 'sonic-buildimage.$(GROUP_NAME)$(GROUP_EXTNAME)' + publishPrefix: '$(Build.DefinitionName)/$(Build.SourceBranchName)/$(GROUP_NAME)' - ${{ parameters.postSteps }} - template: cleanup.yml jobGroups: ${{ parameters.jobGroups }} diff --git a/.azure-pipelines/trigger-publish-artifacts-build.yml b/.azure-pipelines/trigger-publish-artifacts-build.yml index 83bbfc1150ce..7a6676e0f1ba 100644 --- a/.azure-pipelines/trigger-publish-artifacts-build.yml +++ b/.azure-pipelines/trigger-publish-artifacts-build.yml @@ -20,10 +20,8 @@ steps: echo "##vso[task.setvariable variable=sonic_version]$sonic_version" echo "##vso[task.setvariable variable=latest_tag]$latest_tag" echo "##vso[task.setvariable variable=docker_tags]$docker_tags" - condition: ne(variables['Build.Reason'], 'PullRequest') displayName: 'Set trigger build variables' - task: TriggerBuild@4 - condition: ne(variables['Build.Reason'], 'PullRequest') inputs: definitionIsInCurrentTeamProject: false teamProject: internal From f37dd770cd28607337aaaadfc4277a8522587141 Mon Sep 17 00:00:00 2001 From: Senthil Kumar Guruswamy <75792349+sg893052@users.noreply.github.com> Date: Sat, 21 May 2022 01:55:11 +0530 Subject: [PATCH 200/251] System Ready (#10479) Why I did it At present, there is no mechanism in an event driven model to know that the system is up with all the essential sonic services and also, all the docker apps are ready along with port ready status to start the network traffic. With the asynchronous architecture of SONiC, we will not be able to verify if the config has been applied all the way down to the HW. But we can get the closest up status of each app and arrive at the system readiness. How I did it A new python based system monitor tool is introduced under system-health framework to monitor all the essential system host services including docker wrapper services on an event based model and declare the system is ready. This framework gives provision for docker apps to notify its closest up status. CLIs are provided to fetch the current system status and also service running status and its app ready status along with failure reason if any. How to verify it "show system-health sysready-status" click CLI Syslogs for system ready --- files/build_templates/init_cfg.json.j2 | 6 + .../build_templates/sonic_debian_extension.j2 | 3 + ...rvices-data.determine-reboot-cause.service | 1 + .../yang-models/sonic-feature.yang | 7 + .../health_checker/sysmonitor.py | 436 ++++++++++++++++++ src/system-health/scripts/healthd | 5 + src/system-health/tests/mock_connector.py | 9 + src/system-health/tests/test_system_health.py | 215 +++++++++ 8 files changed, 682 insertions(+) create mode 100755 src/system-health/health_checker/sysmonitor.py diff --git a/files/build_templates/init_cfg.json.j2 b/files/build_templates/init_cfg.json.j2 index b51aaf2f0c14..5d44b0a64b9d 100644 --- a/files/build_templates/init_cfg.json.j2 +++ b/files/build_templates/init_cfg.json.j2 @@ -57,6 +57,12 @@ "has_global_scope": {% if feature + '.service' in installer_services.split(' ') %}true{% else %}false{% endif %}, "has_per_asic_scope": {% if feature + '@.service' in installer_services.split(' ') %}true{% else %}false{% endif %}, "auto_restart": "{{autorestart}}", +{# Set check_up_status to true here when app readiness will be marked in state db #} +{# For now, to support the infrastrucure, setting the check_up_status to false for bgp,swss,pmon #} +{# Once apps like bgp,synd supports app readiness, then bgp,syncd can set check_up_status to true #} +{%- if feature in ["bgp", "swss", "pmon"] %} + "check_up_status" : "false", +{%- endif %} {%- if include_kubernetes == "y" %} {%- if feature in ["lldp", "pmon", "radv", "snmp", "telemetry"] %} "set_owner": "kube", {% else %} diff --git a/files/build_templates/sonic_debian_extension.j2 b/files/build_templates/sonic_debian_extension.j2 index aebd6b2fcd0d..185184fb91d5 100644 --- a/files/build_templates/sonic_debian_extension.j2 +++ b/files/build_templates/sonic_debian_extension.j2 @@ -890,3 +890,6 @@ sudo cp $BUILD_SCRIPTS_DIR/mask_disabled_services.py $FILESYSTEM_ROOT/tmp/ sudo chmod a+x $FILESYSTEM_ROOT/tmp/mask_disabled_services.py sudo LANG=C chroot $FILESYSTEM_ROOT /tmp/mask_disabled_services.py sudo rm -rf $FILESYSTEM_ROOT/tmp/mask_disabled_services.py + + +sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install python3-dbus diff --git a/src/sonic-host-services-data/debian/sonic-host-services-data.determine-reboot-cause.service b/src/sonic-host-services-data/debian/sonic-host-services-data.determine-reboot-cause.service index f0d9e91fe991..50d79b3e7639 100644 --- a/src/sonic-host-services-data/debian/sonic-host-services-data.determine-reboot-cause.service +++ b/src/sonic-host-services-data/debian/sonic-host-services-data.determine-reboot-cause.service @@ -5,6 +5,7 @@ After=rc-local.service database.service [Service] Type=simple +RemainAfterExit=yes ExecStart=/usr/local/bin/determine-reboot-cause [Install] diff --git a/src/sonic-yang-models/yang-models/sonic-feature.yang b/src/sonic-yang-models/yang-models/sonic-feature.yang index be46bef19853..54133ef10612 100644 --- a/src/sonic-yang-models/yang-models/sonic-feature.yang +++ b/src/sonic-yang-models/yang-models/sonic-feature.yang @@ -86,6 +86,13 @@ module sonic-feature{ type feature-owner; default "local"; } + + leaf check_up_status { + description "This configuration controls the system ready tool to check + the app ready/up status"; + type boolean; + default false; + } } } } diff --git a/src/system-health/health_checker/sysmonitor.py b/src/system-health/health_checker/sysmonitor.py new file mode 100755 index 000000000000..a4058f8c09d3 --- /dev/null +++ b/src/system-health/health_checker/sysmonitor.py @@ -0,0 +1,436 @@ +#!/usr/bin/python3 + +import os +import sys +import glob +import multiprocessing +from datetime import datetime +from swsscommon import swsscommon +from sonic_py_common.logger import Logger +from . import utils +from sonic_py_common.task_base import ProcessTaskBase +from .config import Config + +SYSLOG_IDENTIFIER = "system#monitor" +REDIS_TIMEOUT_MS = 0 +system_allsrv_state = "DOWN" +spl_srv_list = ['database-chassis', 'gbsyncd'] +SELECT_TIMEOUT_MSECS = 1000 +QUEUE_TIMEOUT = 15 +TASK_STOP_TIMEOUT = 10 +mpmgr = multiprocessing.Manager() +logger = Logger(log_identifier=SYSLOG_IDENTIFIER) + + +#Subprocess which subscribes to STATE_DB FEATURE table for any update +#and push service events to main process via queue +class MonitorStateDbTask(ProcessTaskBase): + + def __init__(self,myQ): + ProcessTaskBase.__init__(self) + self.task_queue = myQ + + def subscribe_statedb(self): + state_db = swsscommon.DBConnector("STATE_DB", REDIS_TIMEOUT_MS, True) + sel = swsscommon.Select() + cst = swsscommon.SubscriberStateTable(state_db, "FEATURE") + sel.addSelectable(cst) + + while not self.task_stopping_event.is_set(): + (state, c) = sel.select(SELECT_TIMEOUT_MSECS) + if state == swsscommon.Select.TIMEOUT: + continue + if state != swsscommon.Select.OBJECT: + logger.log_warning("sel.select() did not return swsscommon.Select.OBJECT") + continue + (key, op, cfvs) = cst.pop() + key_ext = key + ".service" + timestamp = "{}".format(datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S")) + msg={"unit": key_ext, "evt_src":"feature", "time":timestamp} + self.task_notify(msg) + + + def task_worker(self): + if self.task_stopping_event.is_set(): + return + try: + self.subscribe_statedb() + except Exception as e: + logger.log_error("subscribe_statedb exited- {}".format(str(e))) + + def task_notify(self, msg): + if self.task_stopping_event.is_set(): + return + self.task_queue.put(msg) + + +#Subprocess which subscribes to system dbus to listen for systemd events +#and push service events to main process via queue +class MonitorSystemBusTask(ProcessTaskBase): + + def __init__(self,myQ): + ProcessTaskBase.__init__(self) + self.task_queue = myQ + + def on_job_removed(self, id, job, unit, result): + if result == "done": + timestamp = "{}".format(datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S")) + msg = {"unit": unit, "evt_src":"sysbus", "time":timestamp} + self.task_notify(msg) + return + + #Function for listening the systemd event on dbus + def subscribe_sysbus(self): + import dbus + from gi.repository import GLib + from dbus.mainloop.glib import DBusGMainLoop + + DBusGMainLoop(set_as_default=True) + bus = dbus.SystemBus() + systemd = bus.get_object('org.freedesktop.systemd1', '/org/freedesktop/systemd1') + manager = dbus.Interface(systemd, 'org.freedesktop.systemd1.Manager') + manager.Subscribe() + manager.connect_to_signal('JobRemoved', self.on_job_removed) + + loop = GLib.MainLoop() + loop.run() + + def task_worker(self): + if self.task_stopping_event.is_set(): + return + logger.log_info("Start Listening to systemd bus (pid {0})".format(os.getpid())) + self.subscribe_sysbus() + + def task_notify(self, msg): + if self.task_stopping_event.is_set(): + return + self.task_queue.put(msg) + +#Mainprocess which launches 2 subtasks - systembus task and statedb task +#and on receiving events, checks and updates the system ready status to state db +class Sysmonitor(ProcessTaskBase): + + def __init__(self): + ProcessTaskBase.__init__(self) + self._stop_timeout_secs = TASK_STOP_TIMEOUT + self.dnsrvs_name = set() + self.state_db = None + self.config_db = None + self.config = Config() + + #Sets system ready status to state db + def post_system_status(self, state): + try: + if not self.state_db: + self.state_db = swsscommon.SonicV2Connector(host='127.0.0.1') + self.state_db.connect(self.state_db.STATE_DB) + + self.state_db.set(self.state_db.STATE_DB, "SYSTEM_READY|SYSTEM_STATE", "Status", state) + logger.log_info("Posting system ready status {} to statedb".format(state)) + + except Exception as e: + logger.log_error("Unable to post system ready status: {}".format(str(e))) + + #Forms the service list to be monitored + def get_all_service_list(self): + + if not self.config_db: + self.config_db = swsscommon.ConfigDBConnector() + self.config_db.connect() + + dir_list = [] + #add the services from the below targets + targets= ["/etc/systemd/system/multi-user.target.wants", "/etc/systemd/system/sonic.target.wants"] + for path in targets: + dir_list += [os.path.basename(i) for i in glob.glob('{}/*.service'.format(path))] + + #add the enabled docker services from config db feature table + feature_table = self.config_db.get_table("FEATURE") + for srv in feature_table.keys(): + if feature_table[srv]["state"] not in ["disabled", "always_disabled"]: + srvext = srv + ".service" + if srvext not in dir_list: + dir_list.append(srvext) + + self.config.load_config() + if self.config and self.config.ignore_services: + for srv in self.config.ignore_services: + if srv in dir_list: + dir_list.remove(srv) + + dir_list.sort() + return dir_list + + + #Checks FEATURE table from config db for the service' check_up_status flag + #if marked to true, then read the service up_status from FEATURE table of state db. + #else, just return Up + def get_app_ready_status(self, service): + if not self.state_db: + self.state_db = swsscommon.SonicV2Connector(host='127.0.0.1') + self.state_db.connect(self.state_db.STATE_DB) + if not self.config_db: + self.config_db = swsscommon.ConfigDBConnector() + self.config_db.connect() + + fail_reason = "" + check_app_up_status = "" + up_status_flag = "" + configdb_feature_table = self.config_db.get_table('FEATURE') + update_time = "-" + + if service not in configdb_feature_table.keys(): + pstate = "Up" + else: + check_app_up_status = configdb_feature_table[service].get('check_up_status') + if check_app_up_status is not None and (check_app_up_status.lower()) == "true": + up_status_flag = self.state_db.get(self.state_db.STATE_DB, 'FEATURE|{}'.format(service), 'up_status') + if up_status_flag is not None and (up_status_flag.lower()) == "true": + pstate = "Up" + else: + fail_reason = self.state_db.get(self.state_db.STATE_DB, 'FEATURE|{}'.format(service), 'fail_reason') + if fail_reason is None: + fail_reason = "NA" + pstate = "Down" + + update_time = self.state_db.get(self.state_db.STATE_DB, 'FEATURE|{}'.format(service), 'update_time') + if update_time is None: + update_time = "-" + else: + #Either check_up_status marked False or entry does not exist + pstate = "Up" + + return pstate,fail_reason,update_time + + #Gets the service properties + def run_systemctl_show(self, service): + command = ('systemctl show {} --property=Id,LoadState,UnitFileState,Type,ActiveState,SubState,Result'.format(service)) + output = utils.run_command(command) + srv_properties = output.split('\n') + prop_dict = {} + for prop in srv_properties: + kv = prop.split("=", 1) + if len(kv) == 2: + prop_dict[kv[0]] = kv[1] + + return prop_dict + + #Sets the service status to state db + def post_unit_status(self, srv_name, srv_status, app_status, fail_reason, update_time): + if not self.state_db: + self.state_db = swsscommon.SonicV2Connector(host='127.0.0.1') + self.state_db.connect(self.state_db.STATE_DB) + + key = 'ALL_SERVICE_STATUS|{}'.format(srv_name) + statusvalue = {} + statusvalue['service_status'] = srv_status + statusvalue['app_ready_status'] = app_status + statusvalue['fail_reason'] = fail_reason + statusvalue['update_time'] = update_time + self.state_db.hmset(self.state_db.STATE_DB, key, statusvalue) + + #Reads the current status of the service and posts it to state db + def get_unit_status(self, event): + """ Get a unit status""" + global spl_srv_list + unit_status = "NOT OK" + update_time = "-" + + try: + service_status = "Down" + service_up_status = "Down" + service_name,last_name = event.split('.') + + sysctl_show = self.run_systemctl_show(event) + + load_state = sysctl_show['LoadState'] + if load_state == "loaded": + status = sysctl_show['UnitFileState'] + fail_reason = sysctl_show['Result'] + active_state = sysctl_show['ActiveState'] + sub_state = sysctl_show['SubState'] + srv_type = sysctl_show['Type'] + + #Raise syslog for service state change + logger.log_info("{} service state changed to [{}/{}]".format(event, active_state, sub_state)) + + if status == "enabled" or status == "enabled-runtime" or status == "static": + if fail_reason == "success": + fail_reason = "-" + if (active_state == "active" and sub_state == "exited"): + service_status = "OK" + service_up_status = "OK" + unit_status = "OK" + elif active_state == "active" and sub_state == "running": + service_status = "OK" + init_state,app_fail_reason,update_time = self.get_app_ready_status(service_name) + if init_state == "Up": + service_up_status = "OK" + unit_status = "OK" + else: + fail_reason = app_fail_reason + unit_status = "NOT OK" + if fail_reason == "docker start": + service_up_status = "Starting" + fail_reason = "-" + elif active_state == "activating": + service_status = "Starting" + service_up_status = "Starting" + elif active_state == "deactivating": + service_status = "Stopping" + service_up_status = "Stopping" + elif active_state == "inactive": + if srv_type == "oneshot" or service_name in spl_srv_list: + service_status = "OK" + service_up_status = "OK" + unit_status = "OK" + else: + unit_status = "NOT OK" + if fail_reason == "-": + fail_reason = "Inactive" + else: + unit_status = "NOT OK" + + self.post_unit_status(service_name, service_status, service_up_status, fail_reason, update_time) + + return unit_status + + except Exception as e: + logger.log_error("Get unit status {}-{}".format(service_name, str(e))) + + + #Gets status of all the services from service list + def get_all_system_status(self): + """ Shows the system ready status""" + #global dnsrvs_name + scan_srv_list = [] + + scan_srv_list = self.get_all_service_list() + for service in scan_srv_list: + ustate = self.get_unit_status(service) + if ustate == "NOT OK": + if service not in self.dnsrvs_name: + self.dnsrvs_name.add(service) + + if len(self.dnsrvs_name) == 0: + return "UP" + else: + return "DOWN" + + #Displays the system ready status message on console + def print_console_message(self, message): + with open('/dev/console', 'w') as console: + console.write("\n{} {}\n".format(datetime.now().strftime("%b %d %H:%M:%S.%f"), message)) + + #Publish the system ready status message on logger,console and state db + def publish_system_status(self, astate): + global system_allsrv_state + if system_allsrv_state != astate: + system_allsrv_state = astate + if astate == "DOWN": + msg = "System is not ready - one or more services are not up" + elif astate == "UP": + msg = "System is ready" + logger.log_notice(msg) + self.print_console_message(msg) + self.post_system_status(astate) + + #Checks all the services and updates the current system status + def update_system_status(self): + try: + astate = self.get_all_system_status() + self.publish_system_status(astate) + + except Exception as e: + logger.log_error("update system status exception:{}".format(str(e))) + + #Checks a service status and updates the system status + def check_unit_status(self, event): + #global dnsrvs_name + if not self.state_db: + self.state_db = swsscommon.SonicV2Connector(host='127.0.0.1') + self.state_db.connect(self.state_db.STATE_DB) + astate = "DOWN" + + full_srv_list = self.get_all_service_list() + if event in full_srv_list: + ustate = self.get_unit_status(event) + if ustate == "OK" and system_allsrv_state == "UP": + astate = "UP" + elif ustate == "OK" and system_allsrv_state == "DOWN": + if event in self.dnsrvs_name: + self.dnsrvs_name.remove(event) + if len(self.dnsrvs_name) == 0: + astate = "UP" + else: + astate = "DOWN" + else: + if event not in self.dnsrvs_name: + self.dnsrvs_name.add(event) + astate = "DOWN" + + self.publish_system_status(astate) + else: + #if received event is not in current full service list but exists in STATE_DB & set, + #then it should be removed from STATE_DB & set + if event in self.dnsrvs_name: + self.dnsrvs_name.remove(event) + + srv_name,last = event.split('.') + key = 'ALL_SERVICE_STATUS|{}'.format(srv_name) + key_exists = self.state_db.exists(self.state_db.STATE_DB, key) + if key_exists == 1: + self.state_db.delete(self.state_db.STATE_DB, key) + + return 0 + + def system_service(self): + if not self.state_db: + self.state_db = swsscommon.SonicV2Connector(host='127.0.0.1') + self.state_db.connect(self.state_db.STATE_DB) + + myQ = mpmgr.Queue() + try: + monitor_system_bus = MonitorSystemBusTask(myQ) + monitor_system_bus.task_run() + + monitor_statedb_table = MonitorStateDbTask(myQ) + monitor_statedb_table.task_run() + + except Exception as e: + logger.log_error("SubProcess-{}".format(str(e))) + sys.exit(1) + + + self.update_system_status() + + from queue import Empty + # Queue to receive the STATEDB and Systemd state change event + while not self.task_stopping_event.is_set(): + try: + msg = myQ.get(timeout=QUEUE_TIMEOUT) + event = msg["unit"] + event_src = msg["evt_src"] + event_time = msg["time"] + logger.log_debug("Main process- received event:{} from source:{} time:{}".format(event,event_src,event_time)) + logger.log_info("check_unit_status for [ "+event+" ] ") + self.check_unit_status(event) + except Empty: + pass + except Exception as e: + logger.log_error("system_service"+str(e)) + + #cleanup tables "'ALL_SERVICE_STATUS*', 'SYSTEM_READY*'" from statedb + self.state_db.delete_all_by_pattern(self.state_db.STATE_DB, "ALL_SERVICE_STATUS|*") + self.state_db.delete_all_by_pattern(self.state_db.STATE_DB, "SYSTEM_READY|*") + + monitor_system_bus.task_stop() + monitor_statedb_table.task_stop() + + def task_worker(self): + if self.task_stopping_event.is_set(): + return + self.system_service() + + + diff --git a/src/system-health/scripts/healthd b/src/system-health/scripts/healthd index dd276df2fafd..df52969d3aff 100644 --- a/src/system-health/scripts/healthd +++ b/src/system-health/scripts/healthd @@ -12,6 +12,8 @@ from sonic_py_common.daemon_base import DaemonBase from swsscommon.swsscommon import SonicV2Connector from health_checker.manager import HealthCheckerManager +from health_checker.sysmonitor import Sysmonitor + SYSLOG_IDENTIFIER = 'healthd' @@ -75,6 +77,8 @@ class HealthDaemon(DaemonBase): if not manager.config.config_file_exists(): self.log_warning("System health configuration file not found, exit...") return + sysmon = Sysmonitor() + sysmon.task_run() while 1: stat = manager.check(chassis) self._process_stat(chassis, manager.config, stat) @@ -85,6 +89,7 @@ class HealthDaemon(DaemonBase): self.log_warning("sonic_platform package not installed. Cannot start system-health daemon") self.deinit() + sysmon.task_stop() def _process_stat(self, chassis, config, stat): from health_checker.health_checker import HealthChecker diff --git a/src/system-health/tests/mock_connector.py b/src/system-health/tests/mock_connector.py index d32017ff8485..d602c8eaf165 100644 --- a/src/system-health/tests/mock_connector.py +++ b/src/system-health/tests/mock_connector.py @@ -22,3 +22,12 @@ def keys(self, db_id, pattern): def get_all(self, db_id, key): return MockConnector.data[key] + + def set(self, db_id, key, field, value): + self.data[key] = {} + self.data[key][field] = value + + def hmset(self, db_id, key, fieldsvalues): + self.data[key] = {} + for field,value in fieldsvalues.items(): + self.data[key][field] = value diff --git a/src/system-health/tests/test_system_health.py b/src/system-health/tests/test_system_health.py index 14d58c0f44b5..76f3ceea5d3f 100644 --- a/src/system-health/tests/test_system_health.py +++ b/src/system-health/tests/test_system_health.py @@ -3,6 +3,7 @@ 1. test_user_defined_checker mocks the output of a user defined checker and verify class UserDefinedChecker 2. test_service_checker mocks the output of monit service and verify class ServiceChecker 3. test_hardware_checker mocks the hardware status data in db and verify class HardwareChecker + 4. Mocks and tests the system ready status and verify class Sysmonitor And there are class that are not covered by unit test. These class will be covered by sonic-mgmt regression test. 1. HealthDaemon 2. HealthCheckerManager @@ -30,6 +31,9 @@ from health_checker.manager import HealthCheckerManager from health_checker.service_checker import ServiceChecker from health_checker.user_defined_checker import UserDefinedChecker +from health_checker.sysmonitor import Sysmonitor +from health_checker.sysmonitor import MonitorStateDbTask +from health_checker.sysmonitor import MonitorSystemBusTask mock_supervisorctl_output = """ snmpd RUNNING pid 67, uptime 1:03:56 @@ -505,3 +509,214 @@ def test_utils(): output = utils.run_command('ls') assert output + + +@patch('swsscommon.swsscommon.ConfigDBConnector.connect', MagicMock()) +@patch('sonic_py_common.multi_asic.is_multi_asic', MagicMock(return_value=False)) +@patch('docker.DockerClient') +@patch('health_checker.utils.run_command') +@patch('swsscommon.swsscommon.ConfigDBConnector') +def test_get_all_service_list(mock_config_db, mock_run, mock_docker_client): + mock_db_data = MagicMock() + mock_get_table = MagicMock() + mock_db_data.get_table = mock_get_table + mock_config_db.return_value = mock_db_data + mock_get_table.return_value = { + 'radv': { + 'state': 'enabled', + 'has_global_scope': 'True', + 'has_per_asic_scope': 'False', + }, + 'bgp': { + 'state': 'enabled', + 'has_global_scope': 'True', + 'has_per_asic_scope': 'False', + }, + 'pmon': { + 'state': 'disabled', + 'has_global_scope': 'True', + 'has_per_asic_scope': 'False', + } + } + sysmon = Sysmonitor() + print("mock get table:{}".format(mock_get_table.return_value)) + result = sysmon.get_all_service_list() + print("result get all service list:{}".format(result)) + assert 'radv.service' in result + assert 'pmon.service' not in result + + +@patch('swsscommon.swsscommon.ConfigDBConnector.connect', MagicMock()) +@patch('sonic_py_common.multi_asic.is_multi_asic', MagicMock(return_value=False)) +@patch('docker.DockerClient') +@patch('health_checker.utils.run_command') +@patch('swsscommon.swsscommon.ConfigDBConnector') +def test_get_app_ready_status(mock_config_db, mock_run, mock_docker_client): + mock_db_data = MagicMock() + mock_get_table = MagicMock() + mock_db_data.get_table = mock_get_table + mock_config_db.return_value = mock_db_data + mock_get_table.return_value = { + 'radv': { + 'state': 'enabled', + 'has_global_scope': 'True', + 'has_per_asic_scope': 'False', + 'check_up_status': 'True' + }, + 'bgp': { + 'state': 'enabled', + 'has_global_scope': 'True', + 'has_per_asic_scope': 'False', + 'check_up_status': 'True' + }, + 'snmp': { + 'state': 'enabled', + 'has_global_scope': 'True', + 'has_per_asic_scope': 'False', + 'check_up_status': 'False' + } + } + + MockConnector.data.update({ + 'FEATURE|radv': { + 'up_status': 'True', + 'fail_reason': '-', + 'update_time': '-' + }, + 'FEATURE|bgp': { + 'up_status': 'False', + 'fail_reason': 'some error', + 'update_time': '-' + }}) + + sysmon = Sysmonitor() + result = sysmon.get_app_ready_status('radv') + print(result) + assert 'Up' in result + result = sysmon.get_app_ready_status('bgp') + print(result) + assert 'Down' in result + result = sysmon.get_app_ready_status('snmp') + print(result) + assert 'Up' in result + + +mock_srv_props={ +'mock_radv.service':{'Type': 'simple', 'Result': 'success', 'Id': 'mock_radv.service', 'LoadState': 'loaded', 'ActiveState': 'active', 'SubState': 'running', 'UnitFileState': 'enabled'}, +'mock_bgp.service':{'Type': 'simple', 'Result': 'success', 'Id': 'mock_bgp.service', 'LoadState': 'loaded', 'ActiveState': 'inactive', 'SubState': 'dead', 'UnitFileState': 'enabled'} +} + +@patch('health_checker.sysmonitor.Sysmonitor.get_all_service_list', MagicMock(return_value=['mock_snmp.service', 'mock_bgp.service', 'mock_ns.service'])) +@patch('health_checker.sysmonitor.Sysmonitor.run_systemctl_show', MagicMock(return_value=mock_srv_props['mock_bgp.service'])) +@patch('health_checker.sysmonitor.Sysmonitor.get_app_ready_status', MagicMock(return_value=('Down','-','-'))) +@patch('health_checker.sysmonitor.Sysmonitor.post_unit_status', MagicMock()) +def test_check_unit_status(): + sysmon = Sysmonitor() + sysmon.check_unit_status('mock_bgp.service') + assert 'mock_bgp.service' in sysmon.dnsrvs_name + + + +@patch('health_checker.sysmonitor.Sysmonitor.run_systemctl_show', MagicMock(return_value=mock_srv_props['mock_radv.service'])) +@patch('health_checker.sysmonitor.Sysmonitor.get_app_ready_status', MagicMock(return_value=('Up','-','-'))) +@patch('health_checker.sysmonitor.Sysmonitor.post_unit_status', MagicMock()) +def test_get_unit_status_ok(): + sysmon = Sysmonitor() + result = sysmon.get_unit_status('mock_radv.service') + print("get_unit_status:{}".format(result)) + assert result == 'OK' + + +@patch('health_checker.sysmonitor.Sysmonitor.run_systemctl_show', MagicMock(return_value=mock_srv_props['mock_bgp.service'])) +@patch('health_checker.sysmonitor.Sysmonitor.get_app_ready_status', MagicMock(return_value=('Up','-','-'))) +@patch('health_checker.sysmonitor.Sysmonitor.post_unit_status', MagicMock()) +def test_get_unit_status_not_ok(): + sysmon = Sysmonitor() + result = sysmon.get_unit_status('mock_bgp.service') + print("get_unit_status:{}".format(result)) + assert result == 'NOT OK' + + +@patch('health_checker.sysmonitor.Sysmonitor.get_all_service_list', MagicMock(return_value=['mock_snmp.service', 'mock_ns.service'])) +@patch('health_checker.sysmonitor.Sysmonitor.get_unit_status', MagicMock(return_value= 'OK')) +@patch('health_checker.sysmonitor.Sysmonitor.publish_system_status', MagicMock()) +@patch('health_checker.sysmonitor.Sysmonitor.post_unit_status', MagicMock()) +@patch('health_checker.sysmonitor.Sysmonitor.get_app_ready_status', MagicMock(return_value='Up')) +def test_get_all_system_status_ok(): + sysmon = Sysmonitor() + result = sysmon.get_all_system_status() + print("result:{}".format(result)) + assert result == 'UP' + + +@patch('health_checker.sysmonitor.Sysmonitor.get_all_service_list', MagicMock(return_value=['mock_snmp.service', 'mock_ns.service'])) +@patch('health_checker.sysmonitor.Sysmonitor.get_unit_status', MagicMock(return_value= 'NOT OK')) +@patch('health_checker.sysmonitor.Sysmonitor.publish_system_status', MagicMock()) +@patch('health_checker.sysmonitor.Sysmonitor.post_unit_status', MagicMock()) +@patch('health_checker.sysmonitor.Sysmonitor.get_app_ready_status', MagicMock(return_value='Up')) +def test_get_all_system_status_not_ok(): + sysmon = Sysmonitor() + result = sysmon.get_all_system_status() + print("result:{}".format(result)) + assert result == 'DOWN' + +def test_post_unit_status(): + sysmon = Sysmonitor() + sysmon.post_unit_status("mock_bgp", 'OK', 'Down', 'mock reason', '-') + result = swsscommon.SonicV2Connector.get_all(MockConnector, 0, 'ALL_SERVICE_STATUS|mock_bgp') + print(result) + assert result['service_status'] == 'OK' + assert result['app_ready_status'] == 'Down' + assert result['fail_reason'] == 'mock reason' + +def test_post_system_status(): + sysmon = Sysmonitor() + sysmon.post_system_status("UP") + result = swsscommon.SonicV2Connector.get(MockConnector, 0, "SYSTEM_READY|SYSTEM_STATE", 'Status') + print("post system status result:{}".format(result)) + assert result == "UP" + +@patch('health_checker.sysmonitor.Sysmonitor.publish_system_status', MagicMock()) +@patch('health_checker.sysmonitor.Sysmonitor.post_system_status', test_post_system_status()) +@patch('health_checker.sysmonitor.Sysmonitor.print_console_message', MagicMock()) +def test_publish_system_status(): + sysmon = Sysmonitor() + sysmon.publish_system_status('UP') + result = swsscommon.SonicV2Connector.get(MockConnector, 0, "SYSTEM_READY|SYSTEM_STATE", 'Status') + assert result == "UP" + +@patch('health_checker.sysmonitor.Sysmonitor.get_all_system_status', test_get_all_system_status_ok()) +@patch('health_checker.sysmonitor.Sysmonitor.publish_system_status', test_publish_system_status()) +def test_update_system_status(): + sysmon = Sysmonitor() + sysmon.update_system_status() + result = swsscommon.SonicV2Connector.get(MockConnector, 0, "SYSTEM_READY|SYSTEM_STATE", 'Status') + assert result == "UP" + +from sonic_py_common.task_base import ProcessTaskBase +import multiprocessing +mpmgr = multiprocessing.Manager() + +myQ = mpmgr.Queue() +def test_monitor_statedb_task(): + sysmon = MonitorStateDbTask(myQ) + sysmon.SubscriberStateTable = MagicMock() + sysmon.task_run() + assert sysmon._task_process is not None + sysmon.task_stop() + +@patch('health_checker.sysmonitor.MonitorSystemBusTask.subscribe_sysbus', MagicMock()) +def test_monitor_sysbus_task(): + sysmon = MonitorSystemBusTask(myQ) + sysmon.SubscriberStateTable = MagicMock() + sysmon.task_run() + assert sysmon._task_process is not None + sysmon.task_stop() + +@patch('health_checker.sysmonitor.MonitorSystemBusTask.subscribe_sysbus', MagicMock()) +@patch('health_checker.sysmonitor.MonitorStateDbTask.subscribe_statedb', MagicMock()) +def test_system_service(): + sysmon = Sysmonitor() + sysmon.task_run() + assert sysmon._task_process is not None + sysmon.task_stop() From 392899682f0d8b5f84f5635b0868a51f64177198 Mon Sep 17 00:00:00 2001 From: Maxime Lorrillere Date: Fri, 20 May 2022 14:11:06 -0700 Subject: [PATCH 201/251] [Arista] Add support for Wolverine linecards (#8887) Add support for WolverineQCpu, WolverineQCpuMs, WolverineQCpuBk, WolverineQCpuBkMs Co-authored-by: Maxime Lorrillere --- .../Arista-7800R3A-36D-C72 | 1 + .../0/context_config.json | 25 + .../0/j2p-a7800r3a-36d-36x400G.config.bcm | 996 ++++++++++++++++++ .../Arista-7800R3A-36D2-C72/0/port_config.ini | 39 + .../Arista-7800R3A-36D2-C72/0/sai.profile | 2 + .../1/context_config.json | 1 + .../1/j2p-a7800r3a-36d-36x400G.config.bcm | 996 ++++++++++++++++++ .../Arista-7800R3A-36D2-C72/1/port_config.ini | 39 + .../Arista-7800R3A-36D2-C72/1/sai.profile | 1 + .../Arista-7800R3A-36D2-C72/port_config.ini | 77 ++ .../Arista-7800R3A-36DM2-C72 | 1 + .../Arista-7800R3A-36P-C72 | 1 + .../Arista-7800R3AK-36D2-C72 | 1 + .../Arista-7800R3AK-36DM2-C72 | 1 + .../x86_64-arista_7800r3a_36d2_lc/asic.conf | 3 + .../chassisdb.conf | 2 + .../x86_64-arista_7800r3a_36d2_lc/pcie.yaml | 246 +++++ .../platform_asic | 1 + .../platform_env.conf | 2 + .../x86_64-arista_7800r3a_36d2_lc/plugins | 1 + .../pmon_daemon_control.json | 1 + .../sensors.conf | 6 + .../system_health_monitoring_config.json | 1 + .../thermal_policy.json | 1 + device/arista/x86_64-arista_7800r3a_36d_lc | 1 + device/arista/x86_64-arista_7800r3a_36dm2_lc | 1 + device/arista/x86_64-arista_7800r3a_36p_lc | 1 + device/arista/x86_64-arista_7800r3ak_36d2_lc | 1 + device/arista/x86_64-arista_7800r3ak_36dm2_lc | 1 + files/Aboot/boot0.j2 | 16 + 30 files changed, 2466 insertions(+) create mode 120000 device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36D-C72 create mode 100644 device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36D2-C72/0/context_config.json create mode 100644 device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36D2-C72/0/j2p-a7800r3a-36d-36x400G.config.bcm create mode 100644 device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36D2-C72/0/port_config.ini create mode 100644 device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36D2-C72/0/sai.profile create mode 120000 device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36D2-C72/1/context_config.json create mode 100644 device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36D2-C72/1/j2p-a7800r3a-36d-36x400G.config.bcm create mode 100644 device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36D2-C72/1/port_config.ini create mode 120000 device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36D2-C72/1/sai.profile create mode 100644 device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36D2-C72/port_config.ini create mode 120000 device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36DM2-C72 create mode 120000 device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36P-C72 create mode 120000 device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3AK-36D2-C72 create mode 120000 device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3AK-36DM2-C72 create mode 100644 device/arista/x86_64-arista_7800r3a_36d2_lc/asic.conf create mode 100644 device/arista/x86_64-arista_7800r3a_36d2_lc/chassisdb.conf create mode 100644 device/arista/x86_64-arista_7800r3a_36d2_lc/pcie.yaml create mode 100644 device/arista/x86_64-arista_7800r3a_36d2_lc/platform_asic create mode 100644 device/arista/x86_64-arista_7800r3a_36d2_lc/platform_env.conf create mode 120000 device/arista/x86_64-arista_7800r3a_36d2_lc/plugins create mode 120000 device/arista/x86_64-arista_7800r3a_36d2_lc/pmon_daemon_control.json create mode 100644 device/arista/x86_64-arista_7800r3a_36d2_lc/sensors.conf create mode 120000 device/arista/x86_64-arista_7800r3a_36d2_lc/system_health_monitoring_config.json create mode 120000 device/arista/x86_64-arista_7800r3a_36d2_lc/thermal_policy.json create mode 120000 device/arista/x86_64-arista_7800r3a_36d_lc create mode 120000 device/arista/x86_64-arista_7800r3a_36dm2_lc create mode 120000 device/arista/x86_64-arista_7800r3a_36p_lc create mode 120000 device/arista/x86_64-arista_7800r3ak_36d2_lc create mode 120000 device/arista/x86_64-arista_7800r3ak_36dm2_lc diff --git a/device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36D-C72 b/device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36D-C72 new file mode 120000 index 000000000000..762deebff6a7 --- /dev/null +++ b/device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36D-C72 @@ -0,0 +1 @@ +Arista-7800R3A-36D2-C72 \ No newline at end of file diff --git a/device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36D2-C72/0/context_config.json b/device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36D2-C72/0/context_config.json new file mode 100644 index 000000000000..2c126e71899e --- /dev/null +++ b/device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36D2-C72/0/context_config.json @@ -0,0 +1,25 @@ +{ + "CONTEXTS": [ + { + "guid" : 0, + "name" : "syncd", + "dbAsic" : "ASIC_DB", + "dbCounters" : "COUNTERS_DB", + "dbFlex": "FLEX_COUNTER_DB", + "dbState" : "STATE_DB", + "zmq_enable": false, + "zmq_endpoint": "tcp://127.0.0.1:5555", + "zmq_ntf_endpoint": "tcp://127.0.0.1:5556", + "switches": [ + { + "index" : 0, + "hwinfo" : "06:00.0" + }, + { + "index" : 1, + "hwinfo" : "07:00.0" + } + ] + } + ] +} diff --git a/device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36D2-C72/0/j2p-a7800r3a-36d-36x400G.config.bcm b/device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36D2-C72/0/j2p-a7800r3a-36d-36x400G.config.bcm new file mode 100644 index 000000000000..8d13e2ca43f3 --- /dev/null +++ b/device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36D2-C72/0/j2p-a7800r3a-36d-36x400G.config.bcm @@ -0,0 +1,996 @@ +soc_family=BCM8885X + +dpp_db_path=/usr/share/bcm/db + +#################################################### +##Reference applications related properties - Start +#################################################### + +## PMF small EXEM connected stage: +# Options: IPMF2 - Ingress PMF 2 stage can perform small EXEM lookups. +# IPMF3 - Ingress PMF 3 stage can perform small EXEM lookups. +## PMF small EXEM connected stage: +# Options: IPMF2 - Ingress PMF 2 stage can perform small EXEM lookups. +# IPMF3 - Ingress PMF 3 stage can perform small EXEM lookups. +pmf_sexem3_stage=IPMF2 + +#################################################### +##Reference applications related properties - End +#################################################### + +# Jericho2-mode (description 0x1 used for Jericho 2 mode) +system_headers_mode=1 + +# Disable link-training +port_init_cl72=0 + +###Default interfaces for Jericho2Plus +#CPU interfaces +ucode_port_0=CPU.0:core_0.0 +ucode_port_200=CPU.8:core_1.200 +ucode_port_201=CPU.16:core_0.201 +ucode_port_202=CPU.24:core_1.202 +ucode_port_203=CPU.32:core_0.203 + +#NIF ETH interfaces on device +ucode_port_1=CGE18:core_1.1 +ucode_port_2=CGE19:core_1.2 +ucode_port_3=CGE20:core_1.3 +ucode_port_4=CGE21:core_1.4 +ucode_port_5=CGE22:core_1.5 +ucode_port_6=CGE23:core_1.6 +ucode_port_7=CGE24:core_1.7 +ucode_port_8=CGE25:core_1.8 +ucode_port_9=CGE26:core_1.9 +ucode_port_10=CGE27:core_1.10 +ucode_port_11=CGE28:core_1.11 +ucode_port_12=CGE29:core_1.12 +ucode_port_13=CGE30:core_1.13 +ucode_port_14=CGE31:core_1.14 +ucode_port_15=CGE32:core_1.15 +ucode_port_16=CGE33:core_1.16 +ucode_port_17=CGE34:core_1.17 +ucode_port_18=CGE35:core_1.18 + +ucode_port_19=CGE16:core_0.19 +ucode_port_20=CGE17:core_0.20 +ucode_port_21=CGE14:core_0.21 +ucode_port_22=CGE15:core_0.22 +ucode_port_23=CGE12:core_0.23 +ucode_port_24=CGE13:core_0.24 +ucode_port_25=CGE10:core_0.25 +ucode_port_26=CGE11:core_0.26 +ucode_port_27=CGE8:core_0.27 +ucode_port_28=CGE9:core_0.28 +ucode_port_29=CGE6:core_0.29 +ucode_port_30=CGE7:core_0.30 +ucode_port_31=CGE4:core_0.31 +ucode_port_32=CGE5:core_0.32 +ucode_port_33=CGE2:core_0.33 +ucode_port_34=CGE3:core_0.34 +ucode_port_35=CGE0:core_0.35 +ucode_port_36=CGE1:core_0.36 + +#NIF default speeds +port_init_speed_xe=10000 +port_init_speed_xl=40000 +port_init_speed_le=50000 +port_init_speed_ce=100000 +port_init_speed_cc=200000 +port_init_speed_cd=400000 +port_init_speed_il=10312 + +port_priorities=8 + +#special ports +ucode_port_240=OLP:core_0.240 + +# NIF lane mapping +lane_to_serdes_map_nif_lane0=rx3:tx4 +lane_to_serdes_map_nif_lane1=rx6:tx1 +lane_to_serdes_map_nif_lane2=rx7:tx5 +lane_to_serdes_map_nif_lane3=rx4:tx7 +lane_to_serdes_map_nif_lane4=rx1:tx2 +lane_to_serdes_map_nif_lane5=rx0:tx0 +lane_to_serdes_map_nif_lane6=rx5:tx3 +lane_to_serdes_map_nif_lane7=rx2:tx6 +lane_to_serdes_map_nif_lane8=rx10:tx11 +lane_to_serdes_map_nif_lane9=rx8:tx8 +lane_to_serdes_map_nif_lane10=rx14:tx12 +lane_to_serdes_map_nif_lane11=rx15:tx15 +lane_to_serdes_map_nif_lane12=rx13:tx10 +lane_to_serdes_map_nif_lane13=rx9:tx9 +lane_to_serdes_map_nif_lane14=rx11:tx13 +lane_to_serdes_map_nif_lane15=rx12:tx14 +lane_to_serdes_map_nif_lane16=rx16:tx17 +lane_to_serdes_map_nif_lane17=rx19:tx21 +lane_to_serdes_map_nif_lane18=rx21:tx18 +lane_to_serdes_map_nif_lane19=rx18:tx16 +lane_to_serdes_map_nif_lane20=rx17:tx23 +lane_to_serdes_map_nif_lane21=rx20:tx22 +lane_to_serdes_map_nif_lane22=rx22:tx20 +lane_to_serdes_map_nif_lane23=rx23:tx19 +lane_to_serdes_map_nif_lane24=rx26:tx28 +lane_to_serdes_map_nif_lane25=rx29:tx31 +lane_to_serdes_map_nif_lane26=rx31:tx29 +lane_to_serdes_map_nif_lane27=rx28:tx27 +lane_to_serdes_map_nif_lane28=rx25:tx25 +lane_to_serdes_map_nif_lane29=rx24:tx30 +lane_to_serdes_map_nif_lane30=rx30:tx24 +lane_to_serdes_map_nif_lane31=rx27:tx26 +lane_to_serdes_map_nif_lane32=rx32:tx39 +lane_to_serdes_map_nif_lane33=rx33:tx38 +lane_to_serdes_map_nif_lane34=rx38:tx32 +lane_to_serdes_map_nif_lane35=rx39:tx33 +lane_to_serdes_map_nif_lane36=rx35:tx37 +lane_to_serdes_map_nif_lane37=rx34:tx36 +lane_to_serdes_map_nif_lane38=rx36:tx34 +lane_to_serdes_map_nif_lane39=rx37:tx35 +lane_to_serdes_map_nif_lane40=rx40:tx41 +lane_to_serdes_map_nif_lane41=rx43:tx45 +lane_to_serdes_map_nif_lane42=rx45:tx42 +lane_to_serdes_map_nif_lane43=rx42:tx40 +lane_to_serdes_map_nif_lane44=rx41:tx47 +lane_to_serdes_map_nif_lane45=rx44:tx46 +lane_to_serdes_map_nif_lane46=rx46:tx44 +lane_to_serdes_map_nif_lane47=rx47:tx43 +lane_to_serdes_map_nif_lane48=rx50:tx52 +lane_to_serdes_map_nif_lane49=rx53:tx55 +lane_to_serdes_map_nif_lane50=rx55:tx53 +lane_to_serdes_map_nif_lane51=rx52:tx51 +lane_to_serdes_map_nif_lane52=rx49:tx49 +lane_to_serdes_map_nif_lane53=rx48:tx54 +lane_to_serdes_map_nif_lane54=rx54:tx48 +lane_to_serdes_map_nif_lane55=rx51:tx50 +lane_to_serdes_map_nif_lane56=rx56:tx63 +lane_to_serdes_map_nif_lane57=rx57:tx62 +lane_to_serdes_map_nif_lane58=rx62:tx56 +lane_to_serdes_map_nif_lane59=rx63:tx57 +lane_to_serdes_map_nif_lane60=rx59:tx61 +lane_to_serdes_map_nif_lane61=rx58:tx60 +lane_to_serdes_map_nif_lane62=rx60:tx58 +lane_to_serdes_map_nif_lane63=rx61:tx59 +lane_to_serdes_map_nif_lane64=rx64:tx65 +lane_to_serdes_map_nif_lane65=rx67:tx69 +lane_to_serdes_map_nif_lane66=rx69:tx66 +lane_to_serdes_map_nif_lane67=rx66:tx64 +lane_to_serdes_map_nif_lane68=rx65:tx71 +lane_to_serdes_map_nif_lane69=rx68:tx70 +lane_to_serdes_map_nif_lane70=rx70:tx68 +lane_to_serdes_map_nif_lane71=rx71:tx67 +lane_to_serdes_map_nif_lane72=rx79:tx74 +lane_to_serdes_map_nif_lane73=rx76:tx75 +lane_to_serdes_map_nif_lane74=rx72:tx76 +lane_to_serdes_map_nif_lane75=rx74:tx73 +lane_to_serdes_map_nif_lane76=rx77:tx79 +lane_to_serdes_map_nif_lane77=rx78:tx78 +lane_to_serdes_map_nif_lane78=rx73:tx77 +lane_to_serdes_map_nif_lane79=rx75:tx72 +lane_to_serdes_map_nif_lane80=rx86:tx86 +lane_to_serdes_map_nif_lane81=rx83:tx87 +lane_to_serdes_map_nif_lane82=rx82:tx81 +lane_to_serdes_map_nif_lane83=rx85:tx80 +lane_to_serdes_map_nif_lane84=rx87:tx85 +lane_to_serdes_map_nif_lane85=rx84:tx84 +lane_to_serdes_map_nif_lane86=rx80:tx82 +lane_to_serdes_map_nif_lane87=rx81:tx83 +lane_to_serdes_map_nif_lane88=rx95:tx90 +lane_to_serdes_map_nif_lane89=rx92:tx88 +lane_to_serdes_map_nif_lane90=rx88:tx92 +lane_to_serdes_map_nif_lane91=rx91:tx95 +lane_to_serdes_map_nif_lane92=rx94:tx89 +lane_to_serdes_map_nif_lane93=rx93:tx91 +lane_to_serdes_map_nif_lane94=rx89:tx93 +lane_to_serdes_map_nif_lane95=rx90:tx94 +lane_to_serdes_map_nif_lane96=rx103:tx97 +lane_to_serdes_map_nif_lane97=rx100:tx96 +lane_to_serdes_map_nif_lane98=rx96:tx100 +lane_to_serdes_map_nif_lane99=rx99:tx103 +lane_to_serdes_map_nif_lane100=rx102:tx99 +lane_to_serdes_map_nif_lane101=rx101:tx98 +lane_to_serdes_map_nif_lane102=rx97:tx101 +lane_to_serdes_map_nif_lane103=rx98:tx102 +lane_to_serdes_map_nif_lane104=rx110:tx107 +lane_to_serdes_map_nif_lane105=rx108:tx105 +lane_to_serdes_map_nif_lane106=rx104:tx108 +lane_to_serdes_map_nif_lane107=rx107:tx110 +lane_to_serdes_map_nif_lane108=rx111:tx106 +lane_to_serdes_map_nif_lane109=rx109:tx104 +lane_to_serdes_map_nif_lane110=rx105:tx109 +lane_to_serdes_map_nif_lane111=rx106:tx111 +lane_to_serdes_map_nif_lane112=rx119:tx114 +lane_to_serdes_map_nif_lane113=rx116:tx112 +lane_to_serdes_map_nif_lane114=rx112:tx116 +lane_to_serdes_map_nif_lane115=rx115:tx119 +lane_to_serdes_map_nif_lane116=rx118:tx113 +lane_to_serdes_map_nif_lane117=rx117:tx115 +lane_to_serdes_map_nif_lane118=rx113:tx117 +lane_to_serdes_map_nif_lane119=rx114:tx118 +lane_to_serdes_map_nif_lane120=rx127:tx121 +lane_to_serdes_map_nif_lane121=rx124:tx120 +lane_to_serdes_map_nif_lane122=rx120:tx124 +lane_to_serdes_map_nif_lane123=rx123:tx127 +lane_to_serdes_map_nif_lane124=rx126:tx123 +lane_to_serdes_map_nif_lane125=rx125:tx122 +lane_to_serdes_map_nif_lane126=rx121:tx125 +lane_to_serdes_map_nif_lane127=rx122:tx126 +lane_to_serdes_map_nif_lane128=rx134:tx131 +lane_to_serdes_map_nif_lane129=rx132:tx129 +lane_to_serdes_map_nif_lane130=rx128:tx132 +lane_to_serdes_map_nif_lane131=rx131:tx134 +lane_to_serdes_map_nif_lane132=rx135:tx130 +lane_to_serdes_map_nif_lane133=rx133:tx128 +lane_to_serdes_map_nif_lane134=rx129:tx133 +lane_to_serdes_map_nif_lane135=rx130:tx135 +lane_to_serdes_map_nif_lane136=rx143:tx138 +lane_to_serdes_map_nif_lane137=rx140:tx136 +lane_to_serdes_map_nif_lane138=rx136:tx140 +lane_to_serdes_map_nif_lane139=rx139:tx143 +lane_to_serdes_map_nif_lane140=rx142:tx137 +lane_to_serdes_map_nif_lane141=rx141:tx139 +lane_to_serdes_map_nif_lane142=rx137:tx141 +lane_to_serdes_map_nif_lane143=rx138:tx142 + +######################### +### High Availability ### +######################### + +sw_state_max_size=750000000 + +#location of warmboot NV memory +#Allowed options for dnx are - 3:external storage in filesystem 4:driver will save the state directly in shared memory +stable_location=4 + +# Note that each unit should have a unique filename and that adapter does not play well with tmp and dev/shm folders. +stable_filename=/dev/shm/warmboot_data_0 +stable_filename.1=/dev/shm/warmboot_data_1 +stable_filename.2=/dev/shm/warmboot_data_2 + +#Maximum size for NVM used for WB storage, must be larger than sw_state_max_size.BCM8885X +stable_size=800000000 + +######################### +######################### +######################### + +tm_port_header_type_in_0=INJECTED_2_PP +tm_port_header_type_out_0=CPU + +tm_port_header_type_in_200=INJECTED_2_PP +tm_port_header_type_out_200=ETH +tm_port_header_type_in_201=INJECTED_2_PP +tm_port_header_type_out_201=ETH +tm_port_header_type_in_202=INJECTED_2_PP +tm_port_header_type_out_202=ETH +tm_port_header_type_in_203=INJECTED_2_PP +tm_port_header_type_out_203=ETH + +### SAT +## Enable SAT Interface. 0 - Disable, 1 - Enable (Default) +sat_enable=1 +ucode_port_218=SAT:core_0.218 +tm_port_header_type_out_218=CPU +tm_port_header_type_in_218=INJECTED_2 +ucode_port_219=SAT:core_1.219 +tm_port_header_type_out_219=CPU +tm_port_header_type_in_219=INJECTED_2 +port_init_speed_sat=400000 + +### RCY +sai_recycle_port_lane_base=0 +ucode_port_221=RCY.21:core_0.221 +ucode_port_222=RCY.22:core_1.222 +tm_port_header_type_out_221=ETH +tm_port_header_type_in_221=ETH +tm_port_header_type_out_222=ETH +tm_port_header_type_in_222=ETH +port_init_speed_221=400000 +port_init_speed_222=400000 + +#OLP port +tm_port_header_type_in_240=INJECTED_2 +tm_port_header_type_out_240=RAW + +# Set statically the region mode per region id +dtm_flow_mapping_mode_region_257=3 +dtm_flow_mapping_mode_region_258=3 +dtm_flow_mapping_mode_region_259=3 +dtm_flow_mapping_mode_region_260=3 +dtm_flow_mapping_mode_region_261=3 +dtm_flow_mapping_mode_region_262=3 +dtm_flow_mapping_mode_region_263=3 +dtm_flow_mapping_mode_region_264=3 +dtm_flow_mapping_mode_region_265=3 +dtm_flow_mapping_mode_region_266=7 +dtm_flow_mapping_mode_region_267=3 +dtm_flow_mapping_mode_region_268=3 +dtm_flow_mapping_mode_region_269=3 +dtm_flow_mapping_mode_region_270=3 +dtm_flow_mapping_mode_region_271=3 +dtm_flow_mapping_mode_region_272=3 +dtm_flow_mapping_mode_region_273=3 +dtm_flow_mapping_mode_region_274=3 +dtm_flow_mapping_mode_region_275=3 +dtm_flow_mapping_mode_region_276=3 +dtm_flow_mapping_mode_region_277=3 +dtm_flow_mapping_mode_region_278=3 +dtm_flow_mapping_mode_region_279=3 +dtm_flow_mapping_mode_region_280=3 +dtm_flow_mapping_mode_region_281=3 +dtm_flow_mapping_mode_region_282=3 +dtm_flow_mapping_mode_region_283=3 +dtm_flow_mapping_mode_region_284=3 +dtm_flow_mapping_mode_region_285=3 +dtm_flow_mapping_mode_region_286=3 +dtm_flow_mapping_mode_region_287=3 + +## Configure number of symmetric cores each region supports ## +dtm_flow_nof_remote_cores_region_1=2 +dtm_flow_nof_remote_cores_region_2=2 +dtm_flow_nof_remote_cores_region_3=2 +dtm_flow_nof_remote_cores_region_4=2 +dtm_flow_nof_remote_cores_region_5=2 +dtm_flow_nof_remote_cores_region_6=2 +dtm_flow_nof_remote_cores_region_7=2 +dtm_flow_nof_remote_cores_region_8=2 +dtm_flow_nof_remote_cores_region_9=2 +dtm_flow_nof_remote_cores_region_10=2 +dtm_flow_nof_remote_cores_region_11=2 +dtm_flow_nof_remote_cores_region_12=2 +dtm_flow_nof_remote_cores_region_13=2 +dtm_flow_nof_remote_cores_region_14=2 +dtm_flow_nof_remote_cores_region_15=2 +dtm_flow_nof_remote_cores_region_16=2 +dtm_flow_nof_remote_cores_region_17=2 +dtm_flow_nof_remote_cores_region_18=2 +dtm_flow_nof_remote_cores_region_19=2 +dtm_flow_nof_remote_cores_region_20=2 +dtm_flow_nof_remote_cores_region_21=2 +dtm_flow_nof_remote_cores_region_22=2 +dtm_flow_nof_remote_cores_region_23=2 +dtm_flow_nof_remote_cores_region_24=2 +dtm_flow_nof_remote_cores_region_25=2 +dtm_flow_nof_remote_cores_region_26=2 +dtm_flow_nof_remote_cores_region_27=2 +dtm_flow_nof_remote_cores_region_28=2 +dtm_flow_nof_remote_cores_region_29=2 +dtm_flow_nof_remote_cores_region_30=2 +dtm_flow_nof_remote_cores_region_31=2 +dtm_flow_nof_remote_cores_region_32=2 +dtm_flow_nof_remote_cores_region_33=2 +dtm_flow_nof_remote_cores_region_34=2 +dtm_flow_nof_remote_cores_region_35=2 +dtm_flow_nof_remote_cores_region_36=2 +dtm_flow_nof_remote_cores_region_37=2 +dtm_flow_nof_remote_cores_region_38=2 +dtm_flow_nof_remote_cores_region_39=2 +dtm_flow_nof_remote_cores_region_40=2 +dtm_flow_nof_remote_cores_region_41=2 +dtm_flow_nof_remote_cores_region_42=2 +dtm_flow_nof_remote_cores_region_43=2 +dtm_flow_nof_remote_cores_region_44=2 +dtm_flow_nof_remote_cores_region_45=2 +dtm_flow_nof_remote_cores_region_46=2 +dtm_flow_nof_remote_cores_region_47=2 +dtm_flow_nof_remote_cores_region_48=2 +dtm_flow_nof_remote_cores_region_49=2 +dtm_flow_nof_remote_cores_region_50=2 +dtm_flow_nof_remote_cores_region_51=2 +dtm_flow_nof_remote_cores_region_52=2 +dtm_flow_nof_remote_cores_region_53=2 +dtm_flow_nof_remote_cores_region_54=2 +dtm_flow_nof_remote_cores_region_55=2 +dtm_flow_nof_remote_cores_region_56=2 +dtm_flow_nof_remote_cores_region_57=2 +dtm_flow_nof_remote_cores_region_58=2 +dtm_flow_nof_remote_cores_region_59=2 +dtm_flow_nof_remote_cores_region_60=2 + +### MDB configuration ### +mdb_profile=balanced-exem + +### Descriptor-DMA configuration ### +dma_desc_aggregator_chain_length_max=1000 +dma_desc_aggregator_buff_size_kb=100 +dma_desc_aggregator_timeout_usec=1000 +dma_desc_aggregator_enable_specific_MDB_LPM=1 +dma_desc_aggregator_enable_specific_MDB_FEC=1 + +### Outlif configuarion ### +outlif_logical_to_physical_phase_map_1=S1 +outlif_logical_to_physical_phase_map_2=L1 +outlif_logical_to_physical_phase_map_3=XL +outlif_logical_to_physical_phase_map_4=L2 +outlif_logical_to_physical_phase_map_5=M1 +outlif_logical_to_physical_phase_map_6=M2 +outlif_logical_to_physical_phase_map_7=M3 +outlif_logical_to_physical_phase_map_8=S2 + +### Outlif data granularity configuration ### +outlif_physical_phase_data_granularity_S1=60 +outlif_physical_phase_data_granularity_S2=60 +outlif_physical_phase_data_granularity_M1=60 +outlif_physical_phase_data_granularity_M2=60 +outlif_physical_phase_data_granularity_M3=60 +outlif_physical_phase_data_granularity_L1=60 +outlif_physical_phase_data_granularity_L2=60 +outlif_physical_phase_data_granularity_XL=60 + +### Fabric configuration ### +# Enable link-training +port_init_cl72_sfi=1 +serdes_lane_config_cl72_auto_polarity_en=0 +serdes_lane_config_cl72_auto_polarity_en_sfi=1 +serdes_lane_config_cl72_restart_timeout_en=0 + +#SFI speed rate +port_init_speed_fabric=53125 + +## Fabric transmission mode +# Set the Connect mode to the Fabric +# Options: FE - presence of a Fabric device (single stage) +# SINGLE_FAP - stand-alone device +# MESH - devices in Mesh +# Note: If 'diag_chassis' is on, value will be override in dnx.soc +# to be FE instead of SINGLE_FAP. +fabric_connect_mode=FE + +fabric_logical_port_base=512 + +# Fabric lane mapping +lane_to_serdes_map_fabric_lane0=rx0:tx0 +lane_to_serdes_map_fabric_lane1=rx1:tx1 +lane_to_serdes_map_fabric_lane2=rx2:tx2 +lane_to_serdes_map_fabric_lane3=rx3:tx3 +lane_to_serdes_map_fabric_lane4=rx4:tx4 +lane_to_serdes_map_fabric_lane5=rx5:tx5 +lane_to_serdes_map_fabric_lane6=rx6:tx6 +lane_to_serdes_map_fabric_lane7=rx7:tx7 +lane_to_serdes_map_fabric_lane8=rx8:tx10 +lane_to_serdes_map_fabric_lane9=rx9:tx11 +lane_to_serdes_map_fabric_lane10=rx10:tx9 +lane_to_serdes_map_fabric_lane11=rx11:tx8 +lane_to_serdes_map_fabric_lane12=rx12:tx12 +lane_to_serdes_map_fabric_lane13=rx13:tx15 +lane_to_serdes_map_fabric_lane14=rx14:tx14 +lane_to_serdes_map_fabric_lane15=rx15:tx13 +lane_to_serdes_map_fabric_lane16=rx16:tx17 +lane_to_serdes_map_fabric_lane17=rx17:tx18 +lane_to_serdes_map_fabric_lane18=rx18:tx16 +lane_to_serdes_map_fabric_lane19=rx19:tx19 +lane_to_serdes_map_fabric_lane20=rx20:tx21 +lane_to_serdes_map_fabric_lane21=rx21:tx23 +lane_to_serdes_map_fabric_lane22=rx22:tx20 +lane_to_serdes_map_fabric_lane23=rx23:tx22 +lane_to_serdes_map_fabric_lane24=rx24:tx26 +lane_to_serdes_map_fabric_lane25=rx25:tx24 +lane_to_serdes_map_fabric_lane26=rx26:tx25 +lane_to_serdes_map_fabric_lane27=rx27:tx27 +lane_to_serdes_map_fabric_lane28=rx28:tx31 +lane_to_serdes_map_fabric_lane29=rx29:tx30 +lane_to_serdes_map_fabric_lane30=rx30:tx29 +lane_to_serdes_map_fabric_lane31=rx31:tx28 +lane_to_serdes_map_fabric_lane32=rx32:tx32 +lane_to_serdes_map_fabric_lane33=rx33:tx33 +lane_to_serdes_map_fabric_lane34=rx34:tx34 +lane_to_serdes_map_fabric_lane35=rx35:tx35 +lane_to_serdes_map_fabric_lane36=rx36:tx36 +lane_to_serdes_map_fabric_lane37=rx37:tx37 +lane_to_serdes_map_fabric_lane38=rx38:tx38 +lane_to_serdes_map_fabric_lane39=rx39:tx39 +lane_to_serdes_map_fabric_lane40=rx40:tx43 +lane_to_serdes_map_fabric_lane41=rx41:tx42 +lane_to_serdes_map_fabric_lane42=rx42:tx41 +lane_to_serdes_map_fabric_lane43=rx43:tx40 +lane_to_serdes_map_fabric_lane44=rx44:tx47 +lane_to_serdes_map_fabric_lane45=rx45:tx46 +lane_to_serdes_map_fabric_lane46=rx46:tx45 +lane_to_serdes_map_fabric_lane47=rx47:tx44 +lane_to_serdes_map_fabric_lane48=rx48:tx48 +lane_to_serdes_map_fabric_lane49=rx49:tx49 +lane_to_serdes_map_fabric_lane50=rx50:tx50 +lane_to_serdes_map_fabric_lane51=rx51:tx51 +lane_to_serdes_map_fabric_lane52=rx52:tx52 +lane_to_serdes_map_fabric_lane53=rx53:tx53 +lane_to_serdes_map_fabric_lane54=rx54:tx54 +lane_to_serdes_map_fabric_lane55=rx55:tx55 +lane_to_serdes_map_fabric_lane56=rx56:tx59 +lane_to_serdes_map_fabric_lane57=rx57:tx58 +lane_to_serdes_map_fabric_lane58=rx58:tx57 +lane_to_serdes_map_fabric_lane59=rx59:tx56 +lane_to_serdes_map_fabric_lane60=rx60:tx63 +lane_to_serdes_map_fabric_lane61=rx61:tx62 +lane_to_serdes_map_fabric_lane62=rx62:tx61 +lane_to_serdes_map_fabric_lane63=rx63:tx60 +lane_to_serdes_map_fabric_lane64=rx64:tx64 +lane_to_serdes_map_fabric_lane65=rx65:tx65 +lane_to_serdes_map_fabric_lane66=rx66:tx66 +lane_to_serdes_map_fabric_lane67=rx67:tx67 +lane_to_serdes_map_fabric_lane68=rx68:tx68 +lane_to_serdes_map_fabric_lane69=rx69:tx69 +lane_to_serdes_map_fabric_lane70=rx70:tx70 +lane_to_serdes_map_fabric_lane71=rx71:tx71 +lane_to_serdes_map_fabric_lane72=rx72:tx75 +lane_to_serdes_map_fabric_lane73=rx73:tx74 +lane_to_serdes_map_fabric_lane74=rx74:tx73 +lane_to_serdes_map_fabric_lane75=rx75:tx72 +lane_to_serdes_map_fabric_lane76=rx76:tx79 +lane_to_serdes_map_fabric_lane77=rx77:tx78 +lane_to_serdes_map_fabric_lane78=rx78:tx77 +lane_to_serdes_map_fabric_lane79=rx79:tx76 +lane_to_serdes_map_fabric_lane80=rx80:tx80 +lane_to_serdes_map_fabric_lane81=rx81:tx81 +lane_to_serdes_map_fabric_lane82=rx82:tx83 +lane_to_serdes_map_fabric_lane83=rx83:tx82 +lane_to_serdes_map_fabric_lane84=rx84:tx85 +lane_to_serdes_map_fabric_lane85=rx85:tx86 +lane_to_serdes_map_fabric_lane86=rx86:tx84 +lane_to_serdes_map_fabric_lane87=rx87:tx87 +lane_to_serdes_map_fabric_lane88=rx88:tx90 +lane_to_serdes_map_fabric_lane89=rx89:tx88 +lane_to_serdes_map_fabric_lane90=rx90:tx91 +lane_to_serdes_map_fabric_lane91=rx91:tx89 +lane_to_serdes_map_fabric_lane92=rx92:tx93 +lane_to_serdes_map_fabric_lane93=rx93:tx92 +lane_to_serdes_map_fabric_lane94=rx94:tx94 +lane_to_serdes_map_fabric_lane95=rx95:tx95 +lane_to_serdes_map_fabric_lane96=rx96:tx96 +lane_to_serdes_map_fabric_lane97=rx97:tx97 +lane_to_serdes_map_fabric_lane98=rx98:tx98 +lane_to_serdes_map_fabric_lane99=rx99:tx99 +lane_to_serdes_map_fabric_lane100=rx100:tx100 +lane_to_serdes_map_fabric_lane101=rx101:tx101 +lane_to_serdes_map_fabric_lane102=rx102:tx102 +lane_to_serdes_map_fabric_lane103=rx103:tx103 +lane_to_serdes_map_fabric_lane104=rx104:tx105 +lane_to_serdes_map_fabric_lane105=rx105:tx106 +lane_to_serdes_map_fabric_lane106=rx106:tx107 +lane_to_serdes_map_fabric_lane107=rx107:tx104 +lane_to_serdes_map_fabric_lane108=rx108:tx111 +lane_to_serdes_map_fabric_lane109=rx109:tx109 +lane_to_serdes_map_fabric_lane110=rx110:tx110 +lane_to_serdes_map_fabric_lane111=rx111:tx108 +lane_to_serdes_map_fabric_lane112=rx112:tx114 +lane_to_serdes_map_fabric_lane113=rx113:tx113 +lane_to_serdes_map_fabric_lane114=rx114:tx112 +lane_to_serdes_map_fabric_lane115=rx115:tx115 +lane_to_serdes_map_fabric_lane116=rx116:tx117 +lane_to_serdes_map_fabric_lane117=rx117:tx116 +lane_to_serdes_map_fabric_lane118=rx118:tx119 +lane_to_serdes_map_fabric_lane119=rx119:tx118 +lane_to_serdes_map_fabric_lane120=rx120:tx123 +lane_to_serdes_map_fabric_lane121=rx121:tx120 +lane_to_serdes_map_fabric_lane122=rx122:tx122 +lane_to_serdes_map_fabric_lane123=rx123:tx121 +lane_to_serdes_map_fabric_lane124=rx124:tx127 +lane_to_serdes_map_fabric_lane125=rx125:tx125 +lane_to_serdes_map_fabric_lane126=rx126:tx124 +lane_to_serdes_map_fabric_lane127=rx127:tx126 +lane_to_serdes_map_fabric_lane128=rx128:tx128 +lane_to_serdes_map_fabric_lane129=rx129:tx129 +lane_to_serdes_map_fabric_lane130=rx130:tx130 +lane_to_serdes_map_fabric_lane131=rx131:tx131 +lane_to_serdes_map_fabric_lane132=rx132:tx132 +lane_to_serdes_map_fabric_lane133=rx133:tx133 +lane_to_serdes_map_fabric_lane134=rx134:tx134 +lane_to_serdes_map_fabric_lane135=rx135:tx135 +lane_to_serdes_map_fabric_lane136=rx136:tx139 +lane_to_serdes_map_fabric_lane137=rx137:tx138 +lane_to_serdes_map_fabric_lane138=rx138:tx137 +lane_to_serdes_map_fabric_lane139=rx139:tx136 +lane_to_serdes_map_fabric_lane140=rx140:tx140 +lane_to_serdes_map_fabric_lane141=rx141:tx142 +lane_to_serdes_map_fabric_lane142=rx142:tx141 +lane_to_serdes_map_fabric_lane143=rx143:tx143 +lane_to_serdes_map_fabric_lane144=rx144:tx144 +lane_to_serdes_map_fabric_lane145=rx145:tx145 +lane_to_serdes_map_fabric_lane146=rx146:tx146 +lane_to_serdes_map_fabric_lane147=rx147:tx147 +lane_to_serdes_map_fabric_lane148=rx148:tx148 +lane_to_serdes_map_fabric_lane149=rx149:tx149 +lane_to_serdes_map_fabric_lane150=rx150:tx150 +lane_to_serdes_map_fabric_lane151=rx151:tx151 +lane_to_serdes_map_fabric_lane152=rx152:tx155 +lane_to_serdes_map_fabric_lane153=rx153:tx154 +lane_to_serdes_map_fabric_lane154=rx154:tx153 +lane_to_serdes_map_fabric_lane155=rx155:tx152 +lane_to_serdes_map_fabric_lane156=rx156:tx159 +lane_to_serdes_map_fabric_lane157=rx157:tx158 +lane_to_serdes_map_fabric_lane158=rx158:tx157 +lane_to_serdes_map_fabric_lane159=rx159:tx156 +lane_to_serdes_map_fabric_lane160=rx160:tx160 +lane_to_serdes_map_fabric_lane161=rx161:tx161 +lane_to_serdes_map_fabric_lane162=rx162:tx162 +lane_to_serdes_map_fabric_lane163=rx163:tx163 +lane_to_serdes_map_fabric_lane164=rx164:tx164 +lane_to_serdes_map_fabric_lane165=rx165:tx165 +lane_to_serdes_map_fabric_lane166=rx166:tx166 +lane_to_serdes_map_fabric_lane167=rx167:tx167 +lane_to_serdes_map_fabric_lane168=rx168:tx171 +lane_to_serdes_map_fabric_lane169=rx169:tx170 +lane_to_serdes_map_fabric_lane170=rx170:tx169 +lane_to_serdes_map_fabric_lane171=rx171:tx168 +lane_to_serdes_map_fabric_lane172=rx172:tx175 +lane_to_serdes_map_fabric_lane173=rx173:tx174 +lane_to_serdes_map_fabric_lane174=rx174:tx173 +lane_to_serdes_map_fabric_lane175=rx175:tx172 +lane_to_serdes_map_fabric_lane176=rx176:tx176 +lane_to_serdes_map_fabric_lane177=rx177:tx177 +lane_to_serdes_map_fabric_lane178=rx178:tx179 +lane_to_serdes_map_fabric_lane179=rx179:tx178 +lane_to_serdes_map_fabric_lane180=rx180:tx181 +lane_to_serdes_map_fabric_lane181=rx181:tx182 +lane_to_serdes_map_fabric_lane182=rx182:tx180 +lane_to_serdes_map_fabric_lane183=rx183:tx183 +lane_to_serdes_map_fabric_lane184=rx184:tx186 +lane_to_serdes_map_fabric_lane185=rx185:tx184 +lane_to_serdes_map_fabric_lane186=rx186:tx185 +lane_to_serdes_map_fabric_lane187=rx187:tx187 +lane_to_serdes_map_fabric_lane188=rx188:tx188 +lane_to_serdes_map_fabric_lane189=rx189:tx189 +lane_to_serdes_map_fabric_lane190=rx190:tx190 +lane_to_serdes_map_fabric_lane191=rx191:tx191 + +# +##Protocol trap look-up mode: +# Options: IN_LIF - Look-ups in the profile table are done by IN-LIF +# IN_PORT - Look-ups in the profile table are done by IN-PORT +protocol_traps_mode=IN_LIF + +# access definitions +schan_intr_enable=0 +tdma_intr_enable=0 +tslam_intr_enable=0 +miim_intr_enable=0 +schan_timeout_usec=300000 +tdma_timeout_usec=1000000 +tslam_timeout_usec=1000000 + +### Interrupts +appl_enable_intr_init=1 +polled_irq_mode=1 +# reduce CPU load, configure delay 100ms +polled_irq_delay=1000 + +# reduce the CPU load over adapter (caused by counter thread) +bcm_stat_interval=1000 + +# shadow memory +mem_cache_enable_ecc=1 +mem_cache_enable_parity=1 + +# serdes_nif/fabric_clk_freq_in/out configuration +serdes_nif_clk_freq_in=2 +serdes_nif_clk_freq_out=1 +serdes_fabric_clk_freq_in=2 +serdes_fabric_clk_freq_out=1 + +dport_map_direct=1 + +rif_id_max=0x6000 + +phy_rx_polarity_flip_phy0=0 +phy_rx_polarity_flip_phy1=0 +phy_rx_polarity_flip_phy2=0 +phy_rx_polarity_flip_phy3=0 +phy_rx_polarity_flip_phy4=0 +phy_rx_polarity_flip_phy5=0 +phy_rx_polarity_flip_phy6=0 +phy_rx_polarity_flip_phy7=0 +phy_rx_polarity_flip_phy8=1 +phy_rx_polarity_flip_phy9=1 +phy_rx_polarity_flip_phy10=0 +phy_rx_polarity_flip_phy11=1 +phy_rx_polarity_flip_phy12=1 +phy_rx_polarity_flip_phy13=1 +phy_rx_polarity_flip_phy14=1 +phy_rx_polarity_flip_phy15=1 +phy_rx_polarity_flip_phy16=0 +phy_rx_polarity_flip_phy17=0 +phy_rx_polarity_flip_phy18=0 +phy_rx_polarity_flip_phy19=0 +phy_rx_polarity_flip_phy20=0 +phy_rx_polarity_flip_phy21=0 +phy_rx_polarity_flip_phy22=0 +phy_rx_polarity_flip_phy23=0 +phy_rx_polarity_flip_phy24=0 +phy_rx_polarity_flip_phy25=0 +phy_rx_polarity_flip_phy26=0 +phy_rx_polarity_flip_phy27=0 +phy_rx_polarity_flip_phy28=0 +phy_rx_polarity_flip_phy29=0 +phy_rx_polarity_flip_phy30=0 +phy_rx_polarity_flip_phy31=0 +phy_rx_polarity_flip_phy32=0 +phy_rx_polarity_flip_phy33=0 +phy_rx_polarity_flip_phy34=0 +phy_rx_polarity_flip_phy35=0 +phy_rx_polarity_flip_phy36=0 +phy_rx_polarity_flip_phy37=0 +phy_rx_polarity_flip_phy38=0 +phy_rx_polarity_flip_phy39=0 +phy_rx_polarity_flip_phy40=0 +phy_rx_polarity_flip_phy41=0 +phy_rx_polarity_flip_phy42=0 +phy_rx_polarity_flip_phy43=0 +phy_rx_polarity_flip_phy44=0 +phy_rx_polarity_flip_phy45=0 +phy_rx_polarity_flip_phy46=0 +phy_rx_polarity_flip_phy47=0 +phy_rx_polarity_flip_phy48=0 +phy_rx_polarity_flip_phy49=0 +phy_rx_polarity_flip_phy50=0 +phy_rx_polarity_flip_phy51=0 +phy_rx_polarity_flip_phy52=0 +phy_rx_polarity_flip_phy53=0 +phy_rx_polarity_flip_phy54=0 +phy_rx_polarity_flip_phy55=0 +phy_rx_polarity_flip_phy56=0 +phy_rx_polarity_flip_phy57=0 +phy_rx_polarity_flip_phy58=0 +phy_rx_polarity_flip_phy59=0 +phy_rx_polarity_flip_phy60=0 +phy_rx_polarity_flip_phy61=0 +phy_rx_polarity_flip_phy62=0 +phy_rx_polarity_flip_phy63=0 +phy_rx_polarity_flip_phy64=0 +phy_rx_polarity_flip_phy65=0 +phy_rx_polarity_flip_phy66=0 +phy_rx_polarity_flip_phy67=0 +phy_rx_polarity_flip_phy68=0 +phy_rx_polarity_flip_phy69=0 +phy_rx_polarity_flip_phy70=0 +phy_rx_polarity_flip_phy71=0 +phy_rx_polarity_flip_phy72=1 +phy_rx_polarity_flip_phy73=1 +phy_rx_polarity_flip_phy74=1 +phy_rx_polarity_flip_phy75=1 +phy_rx_polarity_flip_phy76=1 +phy_rx_polarity_flip_phy77=1 +phy_rx_polarity_flip_phy78=1 +phy_rx_polarity_flip_phy79=1 +phy_rx_polarity_flip_phy80=0 +phy_rx_polarity_flip_phy81=0 +phy_rx_polarity_flip_phy82=0 +phy_rx_polarity_flip_phy83=0 +phy_rx_polarity_flip_phy84=0 +phy_rx_polarity_flip_phy85=0 +phy_rx_polarity_flip_phy86=0 +phy_rx_polarity_flip_phy87=0 +phy_rx_polarity_flip_phy88=0 +phy_rx_polarity_flip_phy89=0 +phy_rx_polarity_flip_phy90=1 +phy_rx_polarity_flip_phy91=0 +phy_rx_polarity_flip_phy92=0 +phy_rx_polarity_flip_phy93=0 +phy_rx_polarity_flip_phy94=0 +phy_rx_polarity_flip_phy95=0 +phy_rx_polarity_flip_phy96=0 +phy_rx_polarity_flip_phy97=0 +phy_rx_polarity_flip_phy98=0 +phy_rx_polarity_flip_phy99=0 +phy_rx_polarity_flip_phy100=0 +phy_rx_polarity_flip_phy101=0 +phy_rx_polarity_flip_phy102=0 +phy_rx_polarity_flip_phy103=0 +phy_rx_polarity_flip_phy104=0 +phy_rx_polarity_flip_phy105=0 +phy_rx_polarity_flip_phy106=0 +phy_rx_polarity_flip_phy107=0 +phy_rx_polarity_flip_phy108=0 +phy_rx_polarity_flip_phy109=0 +phy_rx_polarity_flip_phy110=0 +phy_rx_polarity_flip_phy111=0 +phy_rx_polarity_flip_phy112=0 +phy_rx_polarity_flip_phy113=0 +phy_rx_polarity_flip_phy114=0 +phy_rx_polarity_flip_phy115=0 +phy_rx_polarity_flip_phy116=0 +phy_rx_polarity_flip_phy117=0 +phy_rx_polarity_flip_phy118=0 +phy_rx_polarity_flip_phy119=0 +phy_rx_polarity_flip_phy120=0 +phy_rx_polarity_flip_phy121=0 +phy_rx_polarity_flip_phy122=0 +phy_rx_polarity_flip_phy123=0 +phy_rx_polarity_flip_phy124=0 +phy_rx_polarity_flip_phy125=0 +phy_rx_polarity_flip_phy126=0 +phy_rx_polarity_flip_phy127=0 +phy_rx_polarity_flip_phy128=0 +phy_rx_polarity_flip_phy129=0 +phy_rx_polarity_flip_phy130=0 +phy_rx_polarity_flip_phy131=0 +phy_rx_polarity_flip_phy132=0 +phy_rx_polarity_flip_phy133=0 +phy_rx_polarity_flip_phy134=0 +phy_rx_polarity_flip_phy135=0 +phy_rx_polarity_flip_phy136=0 +phy_rx_polarity_flip_phy137=0 +phy_rx_polarity_flip_phy138=0 +phy_rx_polarity_flip_phy139=0 +phy_rx_polarity_flip_phy140=0 +phy_rx_polarity_flip_phy141=0 +phy_rx_polarity_flip_phy142=0 +phy_rx_polarity_flip_phy143=0 +phy_tx_polarity_flip_phy0=1 +phy_tx_polarity_flip_phy1=1 +phy_tx_polarity_flip_phy2=1 +phy_tx_polarity_flip_phy3=1 +phy_tx_polarity_flip_phy4=1 +phy_tx_polarity_flip_phy5=1 +phy_tx_polarity_flip_phy6=1 +phy_tx_polarity_flip_phy7=1 +phy_tx_polarity_flip_phy8=1 +phy_tx_polarity_flip_phy9=0 +phy_tx_polarity_flip_phy10=1 +phy_tx_polarity_flip_phy11=1 +phy_tx_polarity_flip_phy12=1 +phy_tx_polarity_flip_phy13=1 +phy_tx_polarity_flip_phy14=1 +phy_tx_polarity_flip_phy15=1 +phy_tx_polarity_flip_phy16=1 +phy_tx_polarity_flip_phy17=1 +phy_tx_polarity_flip_phy18=1 +phy_tx_polarity_flip_phy19=1 +phy_tx_polarity_flip_phy20=1 +phy_tx_polarity_flip_phy21=1 +phy_tx_polarity_flip_phy22=1 +phy_tx_polarity_flip_phy23=1 +phy_tx_polarity_flip_phy24=1 +phy_tx_polarity_flip_phy25=1 +phy_tx_polarity_flip_phy26=1 +phy_tx_polarity_flip_phy27=1 +phy_tx_polarity_flip_phy28=1 +phy_tx_polarity_flip_phy29=1 +phy_tx_polarity_flip_phy30=1 +phy_tx_polarity_flip_phy31=1 +phy_tx_polarity_flip_phy32=1 +phy_tx_polarity_flip_phy33=1 +phy_tx_polarity_flip_phy34=1 +phy_tx_polarity_flip_phy35=1 +phy_tx_polarity_flip_phy36=1 +phy_tx_polarity_flip_phy37=1 +phy_tx_polarity_flip_phy38=1 +phy_tx_polarity_flip_phy39=1 +phy_tx_polarity_flip_phy40=1 +phy_tx_polarity_flip_phy41=1 +phy_tx_polarity_flip_phy42=1 +phy_tx_polarity_flip_phy43=1 +phy_tx_polarity_flip_phy44=1 +phy_tx_polarity_flip_phy45=1 +phy_tx_polarity_flip_phy46=1 +phy_tx_polarity_flip_phy47=1 +phy_tx_polarity_flip_phy48=1 +phy_tx_polarity_flip_phy49=1 +phy_tx_polarity_flip_phy50=1 +phy_tx_polarity_flip_phy51=1 +phy_tx_polarity_flip_phy52=1 +phy_tx_polarity_flip_phy53=1 +phy_tx_polarity_flip_phy54=1 +phy_tx_polarity_flip_phy55=1 +phy_tx_polarity_flip_phy56=1 +phy_tx_polarity_flip_phy57=1 +phy_tx_polarity_flip_phy58=1 +phy_tx_polarity_flip_phy59=1 +phy_tx_polarity_flip_phy60=1 +phy_tx_polarity_flip_phy61=1 +phy_tx_polarity_flip_phy62=1 +phy_tx_polarity_flip_phy63=1 +phy_tx_polarity_flip_phy64=1 +phy_tx_polarity_flip_phy65=1 +phy_tx_polarity_flip_phy66=1 +phy_tx_polarity_flip_phy67=1 +phy_tx_polarity_flip_phy68=1 +phy_tx_polarity_flip_phy69=1 +phy_tx_polarity_flip_phy70=1 +phy_tx_polarity_flip_phy71=1 +phy_tx_polarity_flip_phy72=0 +phy_tx_polarity_flip_phy73=0 +phy_tx_polarity_flip_phy74=0 +phy_tx_polarity_flip_phy75=0 +phy_tx_polarity_flip_phy76=0 +phy_tx_polarity_flip_phy77=0 +phy_tx_polarity_flip_phy78=0 +phy_tx_polarity_flip_phy79=0 +phy_tx_polarity_flip_phy80=0 +phy_tx_polarity_flip_phy81=0 +phy_tx_polarity_flip_phy82=0 +phy_tx_polarity_flip_phy83=0 +phy_tx_polarity_flip_phy84=0 +phy_tx_polarity_flip_phy85=0 +phy_tx_polarity_flip_phy86=0 +phy_tx_polarity_flip_phy87=0 +phy_tx_polarity_flip_phy88=1 +phy_tx_polarity_flip_phy89=1 +phy_tx_polarity_flip_phy90=1 +phy_tx_polarity_flip_phy91=1 +phy_tx_polarity_flip_phy92=1 +phy_tx_polarity_flip_phy93=1 +phy_tx_polarity_flip_phy94=1 +phy_tx_polarity_flip_phy95=1 +phy_tx_polarity_flip_phy96=1 +phy_tx_polarity_flip_phy97=1 +phy_tx_polarity_flip_phy98=1 +phy_tx_polarity_flip_phy99=1 +phy_tx_polarity_flip_phy100=1 +phy_tx_polarity_flip_phy101=1 +phy_tx_polarity_flip_phy102=1 +phy_tx_polarity_flip_phy103=1 +phy_tx_polarity_flip_phy104=1 +phy_tx_polarity_flip_phy105=1 +phy_tx_polarity_flip_phy106=1 +phy_tx_polarity_flip_phy107=1 +phy_tx_polarity_flip_phy108=1 +phy_tx_polarity_flip_phy109=1 +phy_tx_polarity_flip_phy110=1 +phy_tx_polarity_flip_phy111=1 +phy_tx_polarity_flip_phy112=1 +phy_tx_polarity_flip_phy113=1 +phy_tx_polarity_flip_phy114=1 +phy_tx_polarity_flip_phy115=1 +phy_tx_polarity_flip_phy116=1 +phy_tx_polarity_flip_phy117=1 +phy_tx_polarity_flip_phy118=1 +phy_tx_polarity_flip_phy119=1 +phy_tx_polarity_flip_phy120=1 +phy_tx_polarity_flip_phy121=1 +phy_tx_polarity_flip_phy122=1 +phy_tx_polarity_flip_phy123=1 +phy_tx_polarity_flip_phy124=1 +phy_tx_polarity_flip_phy125=1 +phy_tx_polarity_flip_phy126=1 +phy_tx_polarity_flip_phy127=1 +phy_tx_polarity_flip_phy128=1 +phy_tx_polarity_flip_phy129=1 +phy_tx_polarity_flip_phy130=1 +phy_tx_polarity_flip_phy131=1 +phy_tx_polarity_flip_phy132=1 +phy_tx_polarity_flip_phy133=1 +phy_tx_polarity_flip_phy134=1 +phy_tx_polarity_flip_phy135=1 +phy_tx_polarity_flip_phy136=1 +phy_tx_polarity_flip_phy137=1 +phy_tx_polarity_flip_phy138=1 +phy_tx_polarity_flip_phy139=1 +phy_tx_polarity_flip_phy140=1 +phy_tx_polarity_flip_phy141=1 +phy_tx_polarity_flip_phy142=1 +phy_tx_polarity_flip_phy143=1 + +serdes_tx_taps_1=nrz:-8:89:-29:0:0:0 +serdes_tx_taps_2=nrz:-7:85:-25:0:0:0 +serdes_tx_taps_3=nrz:-5:75:-20:0:0:0 +serdes_tx_taps_4=nrz:-5:78:-22:0:0:0 +serdes_tx_taps_5=nrz:-5:80:-23:0:0:0 +serdes_tx_taps_6=nrz:-7:85:-25:0:0:0 +serdes_tx_taps_7=nrz:-8:89:-29:0:0:0 +serdes_tx_taps_8=nrz:-8:89:-29:0:0:0 +serdes_tx_taps_9=nrz:-8:89:-29:0:0:0 +serdes_tx_taps_10=nrz:-8:89:-29:0:0:0 +serdes_tx_taps_11=nrz:-8:89:-29:0:0:0 +serdes_tx_taps_12=nrz:-8:89:-29:0:0:0 +serdes_tx_taps_13=nrz:-8:89:-29:0:0:0 +serdes_tx_taps_14=nrz:-8:89:-29:0:0:0 +serdes_tx_taps_15=nrz:-8:89:-29:0:0:0 +serdes_tx_taps_16=nrz:-8:89:-29:0:0:0 +serdes_tx_taps_17=nrz:-8:89:-29:0:0:0 +serdes_tx_taps_18=nrz:-8:89:-29:0:0:0 +serdes_tx_taps_19=nrz:-6:85:-21:0:0:0 +serdes_tx_taps_20=nrz:-5:83:-22:0:0:0 +serdes_tx_taps_21=nrz:-4:75:-21:0:0:0 +serdes_tx_taps_22=nrz:-8:89:-29:0:0:0 +serdes_tx_taps_23=nrz:-6:85:-21:0:0:0 +serdes_tx_taps_24=nrz:-5:83:-22:0:0:0 +serdes_tx_taps_25=nrz:-5:78:-22:0:0:0 +serdes_tx_taps_26=nrz:-5:75:-20:0:0:0 +serdes_tx_taps_27=nrz:-7:85:-25:0:0:0 +serdes_tx_taps_28=nrz:-5:80:-23:0:0:0 +serdes_tx_taps_29=nrz:-5:78:-22:0:0:0 +serdes_tx_taps_30=nrz:-5:75:-20:0:0:0 +serdes_tx_taps_31=nrz:-7:85:-25:0:0:0 +serdes_tx_taps_32=nrz:-5:80:-23:0:0:0 +serdes_tx_taps_33=nrz:-5:83:-22:0:0:0 +serdes_tx_taps_34=nrz:-5:83:-22:0:0:0 +serdes_tx_taps_35=nrz:-4:75:-21:0:0:0 +serdes_tx_taps_36=nrz:-8:89:-29:0:0:0 diff --git a/device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36D2-C72/0/port_config.ini b/device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36D2-C72/0/port_config.ini new file mode 100644 index 000000000000..25e9fb6226b1 --- /dev/null +++ b/device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36D2-C72/0/port_config.ini @@ -0,0 +1,39 @@ +# name lanes alias index role speed asic_port_name coreId corePortId numVoq +Ethernet0 72,73,74,75 Ethernet1/1 1 Ext 100000 Eth0-ASIC0 1 1 8 +Ethernet4 76,77,78,79 Ethernet1/5 1 Ext 100000 Eth4-ASIC0 1 2 8 +Ethernet8 80,81,82,83 Ethernet2/1 2 Ext 100000 Eth8-ASIC0 1 3 8 +Ethernet12 84,85,86,87 Ethernet2/5 2 Ext 100000 Eth12-ASIC0 1 4 8 +Ethernet16 88,89,90,91 Ethernet3/1 3 Ext 100000 Eth16-ASIC0 1 5 8 +Ethernet20 92,93,94,95 Ethernet3/5 3 Ext 100000 Eth20-ASIC0 1 6 8 +Ethernet24 96,97,98,99 Ethernet4/1 4 Ext 100000 Eth24-ASIC0 1 7 8 +Ethernet28 100,101,102,103 Ethernet4/5 4 Ext 100000 Eth28-ASIC0 1 8 8 +Ethernet32 104,105,106,107 Ethernet5/1 5 Ext 100000 Eth32-ASIC0 1 9 8 +Ethernet36 108,109,110,111 Ethernet5/5 5 Ext 100000 Eth36-ASIC0 1 10 8 +Ethernet40 112,113,114,115 Ethernet6/1 6 Ext 100000 Eth40-ASIC0 1 11 8 +Ethernet44 116,117,118,119 Ethernet6/5 6 Ext 100000 Eth44-ASIC0 1 12 8 +Ethernet48 120,121,122,123 Ethernet7/1 7 Ext 100000 Eth48-ASIC0 1 13 8 +Ethernet52 124,125,126,127 Ethernet7/5 7 Ext 100000 Eth52-ASIC0 1 14 8 +Ethernet56 128,129,130,131 Ethernet8/1 8 Ext 100000 Eth56-ASIC0 1 15 8 +Ethernet60 132,133,134,135 Ethernet8/5 8 Ext 100000 Eth60-ASIC0 1 16 8 +Ethernet64 136,137,138,139 Ethernet9/1 9 Ext 100000 Eth64-ASIC0 1 17 8 +Ethernet68 140,141,142,143 Ethernet9/5 9 Ext 100000 Eth68-ASIC0 1 18 8 +Ethernet72 64,65,66,67 Ethernet10/1 10 Ext 100000 Eth72-ASIC0 0 19 8 +Ethernet76 68,69,70,71 Ethernet10/5 10 Ext 100000 Eth76-ASIC0 0 20 8 +Ethernet80 56,57,58,59 Ethernet11/1 11 Ext 100000 Eth80-ASIC0 0 21 8 +Ethernet84 60,61,62,63 Ethernet11/5 11 Ext 100000 Eth84-ASIC0 0 22 8 +Ethernet88 48,49,50,51 Ethernet12/1 12 Ext 100000 Eth88-ASIC0 0 23 8 +Ethernet92 52,53,54,55 Ethernet12/5 12 Ext 100000 Eth92-ASIC0 0 24 8 +Ethernet96 40,41,42,43 Ethernet13/1 13 Ext 100000 Eth96-ASIC0 0 25 8 +Ethernet100 44,45,46,47 Ethernet13/5 13 Ext 100000 Eth100-ASIC0 0 26 8 +Ethernet104 32,33,34,35 Ethernet14/1 14 Ext 100000 Eth104-ASIC0 0 27 8 +Ethernet108 36,37,38,39 Ethernet14/5 14 Ext 100000 Eth108-ASIC0 0 28 8 +Ethernet112 24,25,26,27 Ethernet15/1 15 Ext 100000 Eth112-ASIC0 0 29 8 +Ethernet116 28,29,30,31 Ethernet15/5 15 Ext 100000 Eth116-ASIC0 0 30 8 +Ethernet120 16,17,18,19 Ethernet16/1 16 Ext 100000 Eth120-ASIC0 0 31 8 +Ethernet124 20,21,22,23 Ethernet16/5 16 Ext 100000 Eth124-ASIC0 0 32 8 +Ethernet128 8,9,10,11 Ethernet17/1 17 Ext 100000 Eth128-ASIC0 0 33 8 +Ethernet132 12,13,14,15 Ethernet17/5 17 Ext 100000 Eth132-ASIC0 0 34 8 +Ethernet136 0,1,2,3 Ethernet18/1 18 Ext 100000 Eth136-ASIC0 0 35 8 +Ethernet140 4,5,6,7 Ethernet18/5 18 Ext 100000 Eth140-ASIC0 0 36 8 +Ethernet-Rec0 221 Recirc0/0 19 Rec 400000 Rcy0-ASIC0 0 221 8 +Ethernet-IB0 222 Recirc0/1 20 Inb 400000 Rcy1-ASIC0 1 222 8 diff --git a/device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36D2-C72/0/sai.profile b/device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36D2-C72/0/sai.profile new file mode 100644 index 000000000000..894b300ad733 --- /dev/null +++ b/device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36D2-C72/0/sai.profile @@ -0,0 +1,2 @@ +SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/j2p-a7800r3a-36d-36x400G.config.bcm + diff --git a/device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36D2-C72/1/context_config.json b/device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36D2-C72/1/context_config.json new file mode 120000 index 000000000000..3db0e8ed3d9b --- /dev/null +++ b/device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36D2-C72/1/context_config.json @@ -0,0 +1 @@ +../0/context_config.json \ No newline at end of file diff --git a/device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36D2-C72/1/j2p-a7800r3a-36d-36x400G.config.bcm b/device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36D2-C72/1/j2p-a7800r3a-36d-36x400G.config.bcm new file mode 100644 index 000000000000..84b62055b92b --- /dev/null +++ b/device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36D2-C72/1/j2p-a7800r3a-36d-36x400G.config.bcm @@ -0,0 +1,996 @@ +soc_family=BCM8885X + +dpp_db_path=/usr/share/bcm/db + +#################################################### +##Reference applications related properties - Start +#################################################### + +## PMF small EXEM connected stage: +# Options: IPMF2 - Ingress PMF 2 stage can perform small EXEM lookups. +# IPMF3 - Ingress PMF 3 stage can perform small EXEM lookups. +## PMF small EXEM connected stage: +# Options: IPMF2 - Ingress PMF 2 stage can perform small EXEM lookups. +# IPMF3 - Ingress PMF 3 stage can perform small EXEM lookups. +pmf_sexem3_stage=IPMF2 + +#################################################### +##Reference applications related properties - End +#################################################### + +# Jericho2-mode (description 0x1 used for Jericho 2 mode) +system_headers_mode=1 + +# Disable link-training +port_init_cl72=0 + +###Default interfaces for Jericho2Plus +#CPU interfaces +ucode_port_0=CPU.0:core_0.0 +ucode_port_200=CPU.8:core_1.200 +ucode_port_201=CPU.16:core_0.201 +ucode_port_202=CPU.24:core_1.202 +ucode_port_203=CPU.32:core_0.203 + +#NIF ETH interfaces on device +ucode_port_1=CGE18:core_1.1 +ucode_port_2=CGE19:core_1.2 +ucode_port_3=CGE20:core_1.3 +ucode_port_4=CGE21:core_1.4 +ucode_port_5=CGE22:core_1.5 +ucode_port_6=CGE23:core_1.6 +ucode_port_7=CGE24:core_1.7 +ucode_port_8=CGE25:core_1.8 +ucode_port_9=CGE26:core_1.9 +ucode_port_10=CGE27:core_1.10 +ucode_port_11=CGE28:core_1.11 +ucode_port_12=CGE29:core_1.12 +ucode_port_13=CGE30:core_1.13 +ucode_port_14=CGE31:core_1.14 +ucode_port_15=CGE32:core_1.15 +ucode_port_16=CGE33:core_1.16 +ucode_port_17=CGE34:core_1.17 +ucode_port_18=CGE35:core_1.18 + +ucode_port_19=CGE16:core_0.19 +ucode_port_20=CGE17:core_0.20 +ucode_port_21=CGE14:core_0.21 +ucode_port_22=CGE15:core_0.22 +ucode_port_23=CGE12:core_0.23 +ucode_port_24=CGE13:core_0.24 +ucode_port_25=CGE10:core_0.25 +ucode_port_26=CGE11:core_0.26 +ucode_port_27=CGE8:core_0.27 +ucode_port_28=CGE9:core_0.28 +ucode_port_29=CGE6:core_0.29 +ucode_port_30=CGE7:core_0.30 +ucode_port_31=CGE4:core_0.31 +ucode_port_32=CGE5:core_0.32 +ucode_port_33=CGE2:core_0.33 +ucode_port_34=CGE3:core_0.34 +ucode_port_35=CGE0:core_0.35 +ucode_port_36=CGE1:core_0.36 + +#NIF default speeds +port_init_speed_xe=10000 +port_init_speed_xl=40000 +port_init_speed_le=50000 +port_init_speed_ce=100000 +port_init_speed_cc=200000 +port_init_speed_cd=400000 +port_init_speed_il=10312 + +port_priorities=8 + +#special ports +ucode_port_240=OLP:core_0.240 + +# NIF lane mapping +lane_to_serdes_map_nif_lane0=rx3:tx4 +lane_to_serdes_map_nif_lane1=rx6:tx1 +lane_to_serdes_map_nif_lane2=rx7:tx5 +lane_to_serdes_map_nif_lane3=rx4:tx7 +lane_to_serdes_map_nif_lane4=rx1:tx2 +lane_to_serdes_map_nif_lane5=rx0:tx0 +lane_to_serdes_map_nif_lane6=rx5:tx3 +lane_to_serdes_map_nif_lane7=rx2:tx6 +lane_to_serdes_map_nif_lane8=rx10:tx11 +lane_to_serdes_map_nif_lane9=rx8:tx8 +lane_to_serdes_map_nif_lane10=rx14:tx12 +lane_to_serdes_map_nif_lane11=rx15:tx15 +lane_to_serdes_map_nif_lane12=rx13:tx10 +lane_to_serdes_map_nif_lane13=rx9:tx9 +lane_to_serdes_map_nif_lane14=rx11:tx13 +lane_to_serdes_map_nif_lane15=rx12:tx14 +lane_to_serdes_map_nif_lane16=rx16:tx17 +lane_to_serdes_map_nif_lane17=rx19:tx21 +lane_to_serdes_map_nif_lane18=rx21:tx18 +lane_to_serdes_map_nif_lane19=rx18:tx16 +lane_to_serdes_map_nif_lane20=rx17:tx23 +lane_to_serdes_map_nif_lane21=rx20:tx22 +lane_to_serdes_map_nif_lane22=rx22:tx20 +lane_to_serdes_map_nif_lane23=rx23:tx19 +lane_to_serdes_map_nif_lane24=rx26:tx28 +lane_to_serdes_map_nif_lane25=rx29:tx31 +lane_to_serdes_map_nif_lane26=rx31:tx29 +lane_to_serdes_map_nif_lane27=rx28:tx27 +lane_to_serdes_map_nif_lane28=rx25:tx25 +lane_to_serdes_map_nif_lane29=rx24:tx30 +lane_to_serdes_map_nif_lane30=rx30:tx24 +lane_to_serdes_map_nif_lane31=rx27:tx26 +lane_to_serdes_map_nif_lane32=rx32:tx39 +lane_to_serdes_map_nif_lane33=rx33:tx38 +lane_to_serdes_map_nif_lane34=rx38:tx32 +lane_to_serdes_map_nif_lane35=rx39:tx33 +lane_to_serdes_map_nif_lane36=rx35:tx37 +lane_to_serdes_map_nif_lane37=rx34:tx36 +lane_to_serdes_map_nif_lane38=rx36:tx34 +lane_to_serdes_map_nif_lane39=rx37:tx35 +lane_to_serdes_map_nif_lane40=rx40:tx41 +lane_to_serdes_map_nif_lane41=rx43:tx45 +lane_to_serdes_map_nif_lane42=rx45:tx42 +lane_to_serdes_map_nif_lane43=rx42:tx40 +lane_to_serdes_map_nif_lane44=rx41:tx47 +lane_to_serdes_map_nif_lane45=rx44:tx46 +lane_to_serdes_map_nif_lane46=rx46:tx44 +lane_to_serdes_map_nif_lane47=rx47:tx43 +lane_to_serdes_map_nif_lane48=rx50:tx52 +lane_to_serdes_map_nif_lane49=rx53:tx55 +lane_to_serdes_map_nif_lane50=rx55:tx53 +lane_to_serdes_map_nif_lane51=rx52:tx51 +lane_to_serdes_map_nif_lane52=rx49:tx49 +lane_to_serdes_map_nif_lane53=rx48:tx54 +lane_to_serdes_map_nif_lane54=rx54:tx48 +lane_to_serdes_map_nif_lane55=rx51:tx50 +lane_to_serdes_map_nif_lane56=rx56:tx63 +lane_to_serdes_map_nif_lane57=rx57:tx62 +lane_to_serdes_map_nif_lane58=rx62:tx56 +lane_to_serdes_map_nif_lane59=rx63:tx57 +lane_to_serdes_map_nif_lane60=rx59:tx61 +lane_to_serdes_map_nif_lane61=rx58:tx60 +lane_to_serdes_map_nif_lane62=rx60:tx58 +lane_to_serdes_map_nif_lane63=rx61:tx59 +lane_to_serdes_map_nif_lane64=rx64:tx65 +lane_to_serdes_map_nif_lane65=rx67:tx69 +lane_to_serdes_map_nif_lane66=rx69:tx66 +lane_to_serdes_map_nif_lane67=rx66:tx64 +lane_to_serdes_map_nif_lane68=rx65:tx71 +lane_to_serdes_map_nif_lane69=rx68:tx70 +lane_to_serdes_map_nif_lane70=rx70:tx68 +lane_to_serdes_map_nif_lane71=rx71:tx67 +lane_to_serdes_map_nif_lane72=rx79:tx74 +lane_to_serdes_map_nif_lane73=rx76:tx75 +lane_to_serdes_map_nif_lane74=rx72:tx76 +lane_to_serdes_map_nif_lane75=rx74:tx73 +lane_to_serdes_map_nif_lane76=rx77:tx79 +lane_to_serdes_map_nif_lane77=rx78:tx78 +lane_to_serdes_map_nif_lane78=rx73:tx77 +lane_to_serdes_map_nif_lane79=rx75:tx72 +lane_to_serdes_map_nif_lane80=rx86:tx86 +lane_to_serdes_map_nif_lane81=rx83:tx87 +lane_to_serdes_map_nif_lane82=rx82:tx81 +lane_to_serdes_map_nif_lane83=rx85:tx80 +lane_to_serdes_map_nif_lane84=rx87:tx85 +lane_to_serdes_map_nif_lane85=rx84:tx84 +lane_to_serdes_map_nif_lane86=rx80:tx82 +lane_to_serdes_map_nif_lane87=rx81:tx83 +lane_to_serdes_map_nif_lane88=rx95:tx90 +lane_to_serdes_map_nif_lane89=rx92:tx88 +lane_to_serdes_map_nif_lane90=rx88:tx92 +lane_to_serdes_map_nif_lane91=rx91:tx95 +lane_to_serdes_map_nif_lane92=rx94:tx89 +lane_to_serdes_map_nif_lane93=rx93:tx91 +lane_to_serdes_map_nif_lane94=rx89:tx93 +lane_to_serdes_map_nif_lane95=rx90:tx94 +lane_to_serdes_map_nif_lane96=rx103:tx97 +lane_to_serdes_map_nif_lane97=rx100:tx96 +lane_to_serdes_map_nif_lane98=rx96:tx100 +lane_to_serdes_map_nif_lane99=rx99:tx103 +lane_to_serdes_map_nif_lane100=rx102:tx99 +lane_to_serdes_map_nif_lane101=rx101:tx98 +lane_to_serdes_map_nif_lane102=rx97:tx101 +lane_to_serdes_map_nif_lane103=rx98:tx102 +lane_to_serdes_map_nif_lane104=rx110:tx107 +lane_to_serdes_map_nif_lane105=rx108:tx105 +lane_to_serdes_map_nif_lane106=rx104:tx108 +lane_to_serdes_map_nif_lane107=rx107:tx110 +lane_to_serdes_map_nif_lane108=rx111:tx106 +lane_to_serdes_map_nif_lane109=rx109:tx104 +lane_to_serdes_map_nif_lane110=rx105:tx109 +lane_to_serdes_map_nif_lane111=rx106:tx111 +lane_to_serdes_map_nif_lane112=rx119:tx114 +lane_to_serdes_map_nif_lane113=rx116:tx112 +lane_to_serdes_map_nif_lane114=rx112:tx116 +lane_to_serdes_map_nif_lane115=rx115:tx119 +lane_to_serdes_map_nif_lane116=rx118:tx113 +lane_to_serdes_map_nif_lane117=rx117:tx115 +lane_to_serdes_map_nif_lane118=rx113:tx117 +lane_to_serdes_map_nif_lane119=rx114:tx118 +lane_to_serdes_map_nif_lane120=rx127:tx121 +lane_to_serdes_map_nif_lane121=rx124:tx120 +lane_to_serdes_map_nif_lane122=rx120:tx124 +lane_to_serdes_map_nif_lane123=rx123:tx127 +lane_to_serdes_map_nif_lane124=rx126:tx123 +lane_to_serdes_map_nif_lane125=rx125:tx122 +lane_to_serdes_map_nif_lane126=rx121:tx125 +lane_to_serdes_map_nif_lane127=rx122:tx126 +lane_to_serdes_map_nif_lane128=rx134:tx131 +lane_to_serdes_map_nif_lane129=rx132:tx129 +lane_to_serdes_map_nif_lane130=rx128:tx132 +lane_to_serdes_map_nif_lane131=rx131:tx134 +lane_to_serdes_map_nif_lane132=rx135:tx130 +lane_to_serdes_map_nif_lane133=rx133:tx128 +lane_to_serdes_map_nif_lane134=rx129:tx133 +lane_to_serdes_map_nif_lane135=rx130:tx135 +lane_to_serdes_map_nif_lane136=rx143:tx138 +lane_to_serdes_map_nif_lane137=rx140:tx136 +lane_to_serdes_map_nif_lane138=rx136:tx140 +lane_to_serdes_map_nif_lane139=rx139:tx143 +lane_to_serdes_map_nif_lane140=rx142:tx137 +lane_to_serdes_map_nif_lane141=rx141:tx139 +lane_to_serdes_map_nif_lane142=rx137:tx141 +lane_to_serdes_map_nif_lane143=rx138:tx142 + +######################### +### High Availability ### +######################### + +sw_state_max_size=750000000 + +#location of warmboot NV memory +#Allowed options for dnx are - 3:external storage in filesystem 4:driver will save the state directly in shared memory +stable_location=4 + +# Note that each unit should have a unique filename and that adapter does not play well with tmp and dev/shm folders. +stable_filename=/dev/shm/warmboot_data_0 +stable_filename.1=/dev/shm/warmboot_data_1 +stable_filename.2=/dev/shm/warmboot_data_2 + +#Maximum size for NVM used for WB storage, must be larger than sw_state_max_size.BCM8885X +stable_size=800000000 + +######################### +######################### +######################### + +tm_port_header_type_in_0=INJECTED_2_PP +tm_port_header_type_out_0=CPU + +tm_port_header_type_in_200=INJECTED_2_PP +tm_port_header_type_out_200=ETH +tm_port_header_type_in_201=INJECTED_2_PP +tm_port_header_type_out_201=ETH +tm_port_header_type_in_202=INJECTED_2_PP +tm_port_header_type_out_202=ETH +tm_port_header_type_in_203=INJECTED_2_PP +tm_port_header_type_out_203=ETH + +### SAT +## Enable SAT Interface. 0 - Disable, 1 - Enable (Default) +sat_enable=1 +ucode_port_218=SAT:core_0.218 +tm_port_header_type_out_218=CPU +tm_port_header_type_in_218=INJECTED_2 +ucode_port_219=SAT:core_1.219 +tm_port_header_type_out_219=CPU +tm_port_header_type_in_219=INJECTED_2 +port_init_speed_sat=400000 + +### RCY +sai_recycle_port_lane_base=0 +ucode_port_221=RCY.21:core_0.221 +ucode_port_222=RCY.22:core_1.222 +tm_port_header_type_out_221=ETH +tm_port_header_type_in_221=ETH +tm_port_header_type_out_222=ETH +tm_port_header_type_in_222=ETH +port_init_speed_221=400000 +port_init_speed_222=400000 + +#OLP port +tm_port_header_type_in_240=INJECTED_2 +tm_port_header_type_out_240=RAW + +# Set statically the region mode per region id +dtm_flow_mapping_mode_region_257=3 +dtm_flow_mapping_mode_region_258=3 +dtm_flow_mapping_mode_region_259=3 +dtm_flow_mapping_mode_region_260=3 +dtm_flow_mapping_mode_region_261=3 +dtm_flow_mapping_mode_region_262=3 +dtm_flow_mapping_mode_region_263=3 +dtm_flow_mapping_mode_region_264=3 +dtm_flow_mapping_mode_region_265=3 +dtm_flow_mapping_mode_region_266=7 +dtm_flow_mapping_mode_region_267=3 +dtm_flow_mapping_mode_region_268=3 +dtm_flow_mapping_mode_region_269=3 +dtm_flow_mapping_mode_region_270=3 +dtm_flow_mapping_mode_region_271=3 +dtm_flow_mapping_mode_region_272=3 +dtm_flow_mapping_mode_region_273=3 +dtm_flow_mapping_mode_region_274=3 +dtm_flow_mapping_mode_region_275=3 +dtm_flow_mapping_mode_region_276=3 +dtm_flow_mapping_mode_region_277=3 +dtm_flow_mapping_mode_region_278=3 +dtm_flow_mapping_mode_region_279=3 +dtm_flow_mapping_mode_region_280=3 +dtm_flow_mapping_mode_region_281=3 +dtm_flow_mapping_mode_region_282=3 +dtm_flow_mapping_mode_region_283=3 +dtm_flow_mapping_mode_region_284=3 +dtm_flow_mapping_mode_region_285=3 +dtm_flow_mapping_mode_region_286=3 +dtm_flow_mapping_mode_region_287=3 + +## Configure number of symmetric cores each region supports ## +dtm_flow_nof_remote_cores_region_1=2 +dtm_flow_nof_remote_cores_region_2=2 +dtm_flow_nof_remote_cores_region_3=2 +dtm_flow_nof_remote_cores_region_4=2 +dtm_flow_nof_remote_cores_region_5=2 +dtm_flow_nof_remote_cores_region_6=2 +dtm_flow_nof_remote_cores_region_7=2 +dtm_flow_nof_remote_cores_region_8=2 +dtm_flow_nof_remote_cores_region_9=2 +dtm_flow_nof_remote_cores_region_10=2 +dtm_flow_nof_remote_cores_region_11=2 +dtm_flow_nof_remote_cores_region_12=2 +dtm_flow_nof_remote_cores_region_13=2 +dtm_flow_nof_remote_cores_region_14=2 +dtm_flow_nof_remote_cores_region_15=2 +dtm_flow_nof_remote_cores_region_16=2 +dtm_flow_nof_remote_cores_region_17=2 +dtm_flow_nof_remote_cores_region_18=2 +dtm_flow_nof_remote_cores_region_19=2 +dtm_flow_nof_remote_cores_region_20=2 +dtm_flow_nof_remote_cores_region_21=2 +dtm_flow_nof_remote_cores_region_22=2 +dtm_flow_nof_remote_cores_region_23=2 +dtm_flow_nof_remote_cores_region_24=2 +dtm_flow_nof_remote_cores_region_25=2 +dtm_flow_nof_remote_cores_region_26=2 +dtm_flow_nof_remote_cores_region_27=2 +dtm_flow_nof_remote_cores_region_28=2 +dtm_flow_nof_remote_cores_region_29=2 +dtm_flow_nof_remote_cores_region_30=2 +dtm_flow_nof_remote_cores_region_31=2 +dtm_flow_nof_remote_cores_region_32=2 +dtm_flow_nof_remote_cores_region_33=2 +dtm_flow_nof_remote_cores_region_34=2 +dtm_flow_nof_remote_cores_region_35=2 +dtm_flow_nof_remote_cores_region_36=2 +dtm_flow_nof_remote_cores_region_37=2 +dtm_flow_nof_remote_cores_region_38=2 +dtm_flow_nof_remote_cores_region_39=2 +dtm_flow_nof_remote_cores_region_40=2 +dtm_flow_nof_remote_cores_region_41=2 +dtm_flow_nof_remote_cores_region_42=2 +dtm_flow_nof_remote_cores_region_43=2 +dtm_flow_nof_remote_cores_region_44=2 +dtm_flow_nof_remote_cores_region_45=2 +dtm_flow_nof_remote_cores_region_46=2 +dtm_flow_nof_remote_cores_region_47=2 +dtm_flow_nof_remote_cores_region_48=2 +dtm_flow_nof_remote_cores_region_49=2 +dtm_flow_nof_remote_cores_region_50=2 +dtm_flow_nof_remote_cores_region_51=2 +dtm_flow_nof_remote_cores_region_52=2 +dtm_flow_nof_remote_cores_region_53=2 +dtm_flow_nof_remote_cores_region_54=2 +dtm_flow_nof_remote_cores_region_55=2 +dtm_flow_nof_remote_cores_region_56=2 +dtm_flow_nof_remote_cores_region_57=2 +dtm_flow_nof_remote_cores_region_58=2 +dtm_flow_nof_remote_cores_region_59=2 +dtm_flow_nof_remote_cores_region_60=2 + +### MDB configuration ### +mdb_profile=balanced-exem + +### Descriptor-DMA configuration ### +dma_desc_aggregator_chain_length_max=1000 +dma_desc_aggregator_buff_size_kb=100 +dma_desc_aggregator_timeout_usec=1000 +dma_desc_aggregator_enable_specific_MDB_LPM=1 +dma_desc_aggregator_enable_specific_MDB_FEC=1 + +### Outlif configuarion ### +outlif_logical_to_physical_phase_map_1=S1 +outlif_logical_to_physical_phase_map_2=L1 +outlif_logical_to_physical_phase_map_3=XL +outlif_logical_to_physical_phase_map_4=L2 +outlif_logical_to_physical_phase_map_5=M1 +outlif_logical_to_physical_phase_map_6=M2 +outlif_logical_to_physical_phase_map_7=M3 +outlif_logical_to_physical_phase_map_8=S2 + +### Outlif data granularity configuration ### +outlif_physical_phase_data_granularity_S1=60 +outlif_physical_phase_data_granularity_S2=60 +outlif_physical_phase_data_granularity_M1=60 +outlif_physical_phase_data_granularity_M2=60 +outlif_physical_phase_data_granularity_M3=60 +outlif_physical_phase_data_granularity_L1=60 +outlif_physical_phase_data_granularity_L2=60 +outlif_physical_phase_data_granularity_XL=60 + +### Fabric configuration ### +# Enable link-training +port_init_cl72_sfi=1 +serdes_lane_config_cl72_auto_polarity_en=0 +serdes_lane_config_cl72_auto_polarity_en_sfi=1 +serdes_lane_config_cl72_restart_timeout_en=0 + +#SFI speed rate +port_init_speed_fabric=53125 + +## Fabric transmission mode +# Set the Connect mode to the Fabric +# Options: FE - presence of a Fabric device (single stage) +# SINGLE_FAP - stand-alone device +# MESH - devices in Mesh +# Note: If 'diag_chassis' is on, value will be override in dnx.soc +# to be FE instead of SINGLE_FAP. +fabric_connect_mode=FE + +fabric_logical_port_base=512 + +# Fabric lane mapping +lane_to_serdes_map_fabric_lane0=rx0:tx0 +lane_to_serdes_map_fabric_lane1=rx1:tx1 +lane_to_serdes_map_fabric_lane2=rx2:tx2 +lane_to_serdes_map_fabric_lane3=rx3:tx3 +lane_to_serdes_map_fabric_lane4=rx4:tx4 +lane_to_serdes_map_fabric_lane5=rx5:tx5 +lane_to_serdes_map_fabric_lane6=rx6:tx6 +lane_to_serdes_map_fabric_lane7=rx7:tx7 +lane_to_serdes_map_fabric_lane8=rx8:tx10 +lane_to_serdes_map_fabric_lane9=rx9:tx11 +lane_to_serdes_map_fabric_lane10=rx10:tx9 +lane_to_serdes_map_fabric_lane11=rx11:tx8 +lane_to_serdes_map_fabric_lane12=rx12:tx12 +lane_to_serdes_map_fabric_lane13=rx13:tx15 +lane_to_serdes_map_fabric_lane14=rx14:tx14 +lane_to_serdes_map_fabric_lane15=rx15:tx13 +lane_to_serdes_map_fabric_lane16=rx16:tx17 +lane_to_serdes_map_fabric_lane17=rx17:tx18 +lane_to_serdes_map_fabric_lane18=rx18:tx16 +lane_to_serdes_map_fabric_lane19=rx19:tx19 +lane_to_serdes_map_fabric_lane20=rx20:tx21 +lane_to_serdes_map_fabric_lane21=rx21:tx23 +lane_to_serdes_map_fabric_lane22=rx22:tx20 +lane_to_serdes_map_fabric_lane23=rx23:tx22 +lane_to_serdes_map_fabric_lane24=rx24:tx26 +lane_to_serdes_map_fabric_lane25=rx25:tx24 +lane_to_serdes_map_fabric_lane26=rx26:tx25 +lane_to_serdes_map_fabric_lane27=rx27:tx27 +lane_to_serdes_map_fabric_lane28=rx28:tx31 +lane_to_serdes_map_fabric_lane29=rx29:tx30 +lane_to_serdes_map_fabric_lane30=rx30:tx29 +lane_to_serdes_map_fabric_lane31=rx31:tx28 +lane_to_serdes_map_fabric_lane32=rx32:tx32 +lane_to_serdes_map_fabric_lane33=rx33:tx33 +lane_to_serdes_map_fabric_lane34=rx34:tx34 +lane_to_serdes_map_fabric_lane35=rx35:tx35 +lane_to_serdes_map_fabric_lane36=rx36:tx36 +lane_to_serdes_map_fabric_lane37=rx37:tx37 +lane_to_serdes_map_fabric_lane38=rx38:tx38 +lane_to_serdes_map_fabric_lane39=rx39:tx39 +lane_to_serdes_map_fabric_lane40=rx40:tx43 +lane_to_serdes_map_fabric_lane41=rx41:tx42 +lane_to_serdes_map_fabric_lane42=rx42:tx41 +lane_to_serdes_map_fabric_lane43=rx43:tx40 +lane_to_serdes_map_fabric_lane44=rx44:tx47 +lane_to_serdes_map_fabric_lane45=rx45:tx46 +lane_to_serdes_map_fabric_lane46=rx46:tx45 +lane_to_serdes_map_fabric_lane47=rx47:tx44 +lane_to_serdes_map_fabric_lane48=rx48:tx48 +lane_to_serdes_map_fabric_lane49=rx49:tx49 +lane_to_serdes_map_fabric_lane50=rx50:tx50 +lane_to_serdes_map_fabric_lane51=rx51:tx51 +lane_to_serdes_map_fabric_lane52=rx52:tx52 +lane_to_serdes_map_fabric_lane53=rx53:tx53 +lane_to_serdes_map_fabric_lane54=rx54:tx54 +lane_to_serdes_map_fabric_lane55=rx55:tx55 +lane_to_serdes_map_fabric_lane56=rx56:tx59 +lane_to_serdes_map_fabric_lane57=rx57:tx58 +lane_to_serdes_map_fabric_lane58=rx58:tx57 +lane_to_serdes_map_fabric_lane59=rx59:tx56 +lane_to_serdes_map_fabric_lane60=rx60:tx63 +lane_to_serdes_map_fabric_lane61=rx61:tx62 +lane_to_serdes_map_fabric_lane62=rx62:tx61 +lane_to_serdes_map_fabric_lane63=rx63:tx60 +lane_to_serdes_map_fabric_lane64=rx64:tx64 +lane_to_serdes_map_fabric_lane65=rx65:tx65 +lane_to_serdes_map_fabric_lane66=rx66:tx66 +lane_to_serdes_map_fabric_lane67=rx67:tx67 +lane_to_serdes_map_fabric_lane68=rx68:tx68 +lane_to_serdes_map_fabric_lane69=rx69:tx69 +lane_to_serdes_map_fabric_lane70=rx70:tx70 +lane_to_serdes_map_fabric_lane71=rx71:tx71 +lane_to_serdes_map_fabric_lane72=rx72:tx75 +lane_to_serdes_map_fabric_lane73=rx73:tx74 +lane_to_serdes_map_fabric_lane74=rx74:tx73 +lane_to_serdes_map_fabric_lane75=rx75:tx72 +lane_to_serdes_map_fabric_lane76=rx76:tx79 +lane_to_serdes_map_fabric_lane77=rx77:tx78 +lane_to_serdes_map_fabric_lane78=rx78:tx77 +lane_to_serdes_map_fabric_lane79=rx79:tx76 +lane_to_serdes_map_fabric_lane80=rx80:tx80 +lane_to_serdes_map_fabric_lane81=rx81:tx81 +lane_to_serdes_map_fabric_lane82=rx82:tx83 +lane_to_serdes_map_fabric_lane83=rx83:tx82 +lane_to_serdes_map_fabric_lane84=rx84:tx85 +lane_to_serdes_map_fabric_lane85=rx85:tx86 +lane_to_serdes_map_fabric_lane86=rx86:tx84 +lane_to_serdes_map_fabric_lane87=rx87:tx87 +lane_to_serdes_map_fabric_lane88=rx88:tx90 +lane_to_serdes_map_fabric_lane89=rx89:tx88 +lane_to_serdes_map_fabric_lane90=rx90:tx91 +lane_to_serdes_map_fabric_lane91=rx91:tx89 +lane_to_serdes_map_fabric_lane92=rx92:tx93 +lane_to_serdes_map_fabric_lane93=rx93:tx92 +lane_to_serdes_map_fabric_lane94=rx94:tx94 +lane_to_serdes_map_fabric_lane95=rx95:tx95 +lane_to_serdes_map_fabric_lane96=rx96:tx96 +lane_to_serdes_map_fabric_lane97=rx97:tx97 +lane_to_serdes_map_fabric_lane98=rx98:tx98 +lane_to_serdes_map_fabric_lane99=rx99:tx99 +lane_to_serdes_map_fabric_lane100=rx100:tx100 +lane_to_serdes_map_fabric_lane101=rx101:tx101 +lane_to_serdes_map_fabric_lane102=rx102:tx102 +lane_to_serdes_map_fabric_lane103=rx103:tx103 +lane_to_serdes_map_fabric_lane104=rx104:tx105 +lane_to_serdes_map_fabric_lane105=rx105:tx106 +lane_to_serdes_map_fabric_lane106=rx106:tx107 +lane_to_serdes_map_fabric_lane107=rx107:tx104 +lane_to_serdes_map_fabric_lane108=rx108:tx111 +lane_to_serdes_map_fabric_lane109=rx109:tx109 +lane_to_serdes_map_fabric_lane110=rx110:tx110 +lane_to_serdes_map_fabric_lane111=rx111:tx108 +lane_to_serdes_map_fabric_lane112=rx112:tx114 +lane_to_serdes_map_fabric_lane113=rx113:tx113 +lane_to_serdes_map_fabric_lane114=rx114:tx112 +lane_to_serdes_map_fabric_lane115=rx115:tx115 +lane_to_serdes_map_fabric_lane116=rx116:tx117 +lane_to_serdes_map_fabric_lane117=rx117:tx116 +lane_to_serdes_map_fabric_lane118=rx118:tx119 +lane_to_serdes_map_fabric_lane119=rx119:tx118 +lane_to_serdes_map_fabric_lane120=rx120:tx123 +lane_to_serdes_map_fabric_lane121=rx121:tx120 +lane_to_serdes_map_fabric_lane122=rx122:tx122 +lane_to_serdes_map_fabric_lane123=rx123:tx121 +lane_to_serdes_map_fabric_lane124=rx124:tx127 +lane_to_serdes_map_fabric_lane125=rx125:tx125 +lane_to_serdes_map_fabric_lane126=rx126:tx124 +lane_to_serdes_map_fabric_lane127=rx127:tx126 +lane_to_serdes_map_fabric_lane128=rx128:tx128 +lane_to_serdes_map_fabric_lane129=rx129:tx129 +lane_to_serdes_map_fabric_lane130=rx130:tx130 +lane_to_serdes_map_fabric_lane131=rx131:tx131 +lane_to_serdes_map_fabric_lane132=rx132:tx132 +lane_to_serdes_map_fabric_lane133=rx133:tx133 +lane_to_serdes_map_fabric_lane134=rx134:tx134 +lane_to_serdes_map_fabric_lane135=rx135:tx135 +lane_to_serdes_map_fabric_lane136=rx136:tx139 +lane_to_serdes_map_fabric_lane137=rx137:tx138 +lane_to_serdes_map_fabric_lane138=rx138:tx137 +lane_to_serdes_map_fabric_lane139=rx139:tx136 +lane_to_serdes_map_fabric_lane140=rx140:tx140 +lane_to_serdes_map_fabric_lane141=rx141:tx142 +lane_to_serdes_map_fabric_lane142=rx142:tx141 +lane_to_serdes_map_fabric_lane143=rx143:tx143 +lane_to_serdes_map_fabric_lane144=rx144:tx144 +lane_to_serdes_map_fabric_lane145=rx145:tx145 +lane_to_serdes_map_fabric_lane146=rx146:tx146 +lane_to_serdes_map_fabric_lane147=rx147:tx147 +lane_to_serdes_map_fabric_lane148=rx148:tx148 +lane_to_serdes_map_fabric_lane149=rx149:tx149 +lane_to_serdes_map_fabric_lane150=rx150:tx150 +lane_to_serdes_map_fabric_lane151=rx151:tx151 +lane_to_serdes_map_fabric_lane152=rx152:tx155 +lane_to_serdes_map_fabric_lane153=rx153:tx154 +lane_to_serdes_map_fabric_lane154=rx154:tx153 +lane_to_serdes_map_fabric_lane155=rx155:tx152 +lane_to_serdes_map_fabric_lane156=rx156:tx159 +lane_to_serdes_map_fabric_lane157=rx157:tx158 +lane_to_serdes_map_fabric_lane158=rx158:tx157 +lane_to_serdes_map_fabric_lane159=rx159:tx156 +lane_to_serdes_map_fabric_lane160=rx160:tx160 +lane_to_serdes_map_fabric_lane161=rx161:tx161 +lane_to_serdes_map_fabric_lane162=rx162:tx162 +lane_to_serdes_map_fabric_lane163=rx163:tx163 +lane_to_serdes_map_fabric_lane164=rx164:tx164 +lane_to_serdes_map_fabric_lane165=rx165:tx165 +lane_to_serdes_map_fabric_lane166=rx166:tx166 +lane_to_serdes_map_fabric_lane167=rx167:tx167 +lane_to_serdes_map_fabric_lane168=rx168:tx171 +lane_to_serdes_map_fabric_lane169=rx169:tx170 +lane_to_serdes_map_fabric_lane170=rx170:tx169 +lane_to_serdes_map_fabric_lane171=rx171:tx168 +lane_to_serdes_map_fabric_lane172=rx172:tx175 +lane_to_serdes_map_fabric_lane173=rx173:tx174 +lane_to_serdes_map_fabric_lane174=rx174:tx173 +lane_to_serdes_map_fabric_lane175=rx175:tx172 +lane_to_serdes_map_fabric_lane176=rx176:tx176 +lane_to_serdes_map_fabric_lane177=rx177:tx177 +lane_to_serdes_map_fabric_lane178=rx178:tx179 +lane_to_serdes_map_fabric_lane179=rx179:tx178 +lane_to_serdes_map_fabric_lane180=rx180:tx181 +lane_to_serdes_map_fabric_lane181=rx181:tx182 +lane_to_serdes_map_fabric_lane182=rx182:tx180 +lane_to_serdes_map_fabric_lane183=rx183:tx183 +lane_to_serdes_map_fabric_lane184=rx184:tx186 +lane_to_serdes_map_fabric_lane185=rx185:tx184 +lane_to_serdes_map_fabric_lane186=rx186:tx185 +lane_to_serdes_map_fabric_lane187=rx187:tx187 +lane_to_serdes_map_fabric_lane188=rx188:tx188 +lane_to_serdes_map_fabric_lane189=rx189:tx189 +lane_to_serdes_map_fabric_lane190=rx190:tx190 +lane_to_serdes_map_fabric_lane191=rx191:tx191 + +# +##Protocol trap look-up mode: +# Options: IN_LIF - Look-ups in the profile table are done by IN-LIF +# IN_PORT - Look-ups in the profile table are done by IN-PORT +protocol_traps_mode=IN_LIF + +# access definitions +schan_intr_enable=0 +tdma_intr_enable=0 +tslam_intr_enable=0 +miim_intr_enable=0 +schan_timeout_usec=300000 +tdma_timeout_usec=1000000 +tslam_timeout_usec=1000000 + +### Interrupts +appl_enable_intr_init=1 +polled_irq_mode=1 +# reduce CPU load, configure delay 100ms +polled_irq_delay=1000 + +# reduce the CPU load over adapter (caused by counter thread) +bcm_stat_interval=1000 + +# shadow memory +mem_cache_enable_ecc=1 +mem_cache_enable_parity=1 + +# serdes_nif/fabric_clk_freq_in/out configuration +serdes_nif_clk_freq_in=2 +serdes_nif_clk_freq_out=1 +serdes_fabric_clk_freq_in=2 +serdes_fabric_clk_freq_out=1 + +dport_map_direct=1 + +rif_id_max=0x6000 + +phy_rx_polarity_flip_phy0=0 +phy_rx_polarity_flip_phy1=0 +phy_rx_polarity_flip_phy2=0 +phy_rx_polarity_flip_phy3=0 +phy_rx_polarity_flip_phy4=0 +phy_rx_polarity_flip_phy5=0 +phy_rx_polarity_flip_phy6=0 +phy_rx_polarity_flip_phy7=0 +phy_rx_polarity_flip_phy8=1 +phy_rx_polarity_flip_phy9=1 +phy_rx_polarity_flip_phy10=0 +phy_rx_polarity_flip_phy11=0 +phy_rx_polarity_flip_phy12=1 +phy_rx_polarity_flip_phy13=1 +phy_rx_polarity_flip_phy14=0 +phy_rx_polarity_flip_phy15=1 +phy_rx_polarity_flip_phy16=0 +phy_rx_polarity_flip_phy17=0 +phy_rx_polarity_flip_phy18=0 +phy_rx_polarity_flip_phy19=0 +phy_rx_polarity_flip_phy20=0 +phy_rx_polarity_flip_phy21=0 +phy_rx_polarity_flip_phy22=0 +phy_rx_polarity_flip_phy23=0 +phy_rx_polarity_flip_phy24=0 +phy_rx_polarity_flip_phy25=0 +phy_rx_polarity_flip_phy26=0 +phy_rx_polarity_flip_phy27=0 +phy_rx_polarity_flip_phy28=0 +phy_rx_polarity_flip_phy29=0 +phy_rx_polarity_flip_phy30=0 +phy_rx_polarity_flip_phy31=0 +phy_rx_polarity_flip_phy32=0 +phy_rx_polarity_flip_phy33=0 +phy_rx_polarity_flip_phy34=0 +phy_rx_polarity_flip_phy35=0 +phy_rx_polarity_flip_phy36=0 +phy_rx_polarity_flip_phy37=0 +phy_rx_polarity_flip_phy38=0 +phy_rx_polarity_flip_phy39=0 +phy_rx_polarity_flip_phy40=0 +phy_rx_polarity_flip_phy41=0 +phy_rx_polarity_flip_phy42=0 +phy_rx_polarity_flip_phy43=0 +phy_rx_polarity_flip_phy44=0 +phy_rx_polarity_flip_phy45=0 +phy_rx_polarity_flip_phy46=0 +phy_rx_polarity_flip_phy47=0 +phy_rx_polarity_flip_phy48=0 +phy_rx_polarity_flip_phy49=0 +phy_rx_polarity_flip_phy50=0 +phy_rx_polarity_flip_phy51=0 +phy_rx_polarity_flip_phy52=0 +phy_rx_polarity_flip_phy53=0 +phy_rx_polarity_flip_phy54=0 +phy_rx_polarity_flip_phy55=0 +phy_rx_polarity_flip_phy56=0 +phy_rx_polarity_flip_phy57=0 +phy_rx_polarity_flip_phy58=0 +phy_rx_polarity_flip_phy59=0 +phy_rx_polarity_flip_phy60=0 +phy_rx_polarity_flip_phy61=0 +phy_rx_polarity_flip_phy62=0 +phy_rx_polarity_flip_phy63=0 +phy_rx_polarity_flip_phy64=0 +phy_rx_polarity_flip_phy65=0 +phy_rx_polarity_flip_phy66=0 +phy_rx_polarity_flip_phy67=0 +phy_rx_polarity_flip_phy68=0 +phy_rx_polarity_flip_phy69=0 +phy_rx_polarity_flip_phy70=0 +phy_rx_polarity_flip_phy71=0 +phy_rx_polarity_flip_phy72=1 +phy_rx_polarity_flip_phy73=1 +phy_rx_polarity_flip_phy74=0 +phy_rx_polarity_flip_phy75=1 +phy_rx_polarity_flip_phy76=1 +phy_rx_polarity_flip_phy77=1 +phy_rx_polarity_flip_phy78=1 +phy_rx_polarity_flip_phy79=1 +phy_rx_polarity_flip_phy80=0 +phy_rx_polarity_flip_phy81=0 +phy_rx_polarity_flip_phy82=0 +phy_rx_polarity_flip_phy83=0 +phy_rx_polarity_flip_phy84=0 +phy_rx_polarity_flip_phy85=0 +phy_rx_polarity_flip_phy86=0 +phy_rx_polarity_flip_phy87=0 +phy_rx_polarity_flip_phy88=0 +phy_rx_polarity_flip_phy89=0 +phy_rx_polarity_flip_phy90=0 +phy_rx_polarity_flip_phy91=0 +phy_rx_polarity_flip_phy92=0 +phy_rx_polarity_flip_phy93=0 +phy_rx_polarity_flip_phy94=0 +phy_rx_polarity_flip_phy95=0 +phy_rx_polarity_flip_phy96=0 +phy_rx_polarity_flip_phy97=0 +phy_rx_polarity_flip_phy98=0 +phy_rx_polarity_flip_phy99=0 +phy_rx_polarity_flip_phy100=0 +phy_rx_polarity_flip_phy101=0 +phy_rx_polarity_flip_phy102=0 +phy_rx_polarity_flip_phy103=0 +phy_rx_polarity_flip_phy104=0 +phy_rx_polarity_flip_phy105=0 +phy_rx_polarity_flip_phy106=0 +phy_rx_polarity_flip_phy107=0 +phy_rx_polarity_flip_phy108=0 +phy_rx_polarity_flip_phy109=0 +phy_rx_polarity_flip_phy110=0 +phy_rx_polarity_flip_phy111=0 +phy_rx_polarity_flip_phy112=0 +phy_rx_polarity_flip_phy113=0 +phy_rx_polarity_flip_phy114=0 +phy_rx_polarity_flip_phy115=0 +phy_rx_polarity_flip_phy116=0 +phy_rx_polarity_flip_phy117=0 +phy_rx_polarity_flip_phy118=0 +phy_rx_polarity_flip_phy119=0 +phy_rx_polarity_flip_phy120=0 +phy_rx_polarity_flip_phy121=0 +phy_rx_polarity_flip_phy122=0 +phy_rx_polarity_flip_phy123=0 +phy_rx_polarity_flip_phy124=0 +phy_rx_polarity_flip_phy125=0 +phy_rx_polarity_flip_phy126=0 +phy_rx_polarity_flip_phy127=0 +phy_rx_polarity_flip_phy128=0 +phy_rx_polarity_flip_phy129=0 +phy_rx_polarity_flip_phy130=0 +phy_rx_polarity_flip_phy131=0 +phy_rx_polarity_flip_phy132=0 +phy_rx_polarity_flip_phy133=0 +phy_rx_polarity_flip_phy134=0 +phy_rx_polarity_flip_phy135=0 +phy_rx_polarity_flip_phy136=0 +phy_rx_polarity_flip_phy137=0 +phy_rx_polarity_flip_phy138=0 +phy_rx_polarity_flip_phy139=0 +phy_rx_polarity_flip_phy140=0 +phy_rx_polarity_flip_phy141=0 +phy_rx_polarity_flip_phy142=0 +phy_rx_polarity_flip_phy143=0 +phy_tx_polarity_flip_phy0=1 +phy_tx_polarity_flip_phy1=1 +phy_tx_polarity_flip_phy2=1 +phy_tx_polarity_flip_phy3=1 +phy_tx_polarity_flip_phy4=1 +phy_tx_polarity_flip_phy5=1 +phy_tx_polarity_flip_phy6=1 +phy_tx_polarity_flip_phy7=1 +phy_tx_polarity_flip_phy8=1 +phy_tx_polarity_flip_phy9=1 +phy_tx_polarity_flip_phy10=1 +phy_tx_polarity_flip_phy11=1 +phy_tx_polarity_flip_phy12=1 +phy_tx_polarity_flip_phy13=1 +phy_tx_polarity_flip_phy14=1 +phy_tx_polarity_flip_phy15=1 +phy_tx_polarity_flip_phy16=1 +phy_tx_polarity_flip_phy17=1 +phy_tx_polarity_flip_phy18=1 +phy_tx_polarity_flip_phy19=1 +phy_tx_polarity_flip_phy20=1 +phy_tx_polarity_flip_phy21=1 +phy_tx_polarity_flip_phy22=1 +phy_tx_polarity_flip_phy23=1 +phy_tx_polarity_flip_phy24=1 +phy_tx_polarity_flip_phy25=1 +phy_tx_polarity_flip_phy26=1 +phy_tx_polarity_flip_phy27=1 +phy_tx_polarity_flip_phy28=1 +phy_tx_polarity_flip_phy29=1 +phy_tx_polarity_flip_phy30=1 +phy_tx_polarity_flip_phy31=1 +phy_tx_polarity_flip_phy32=1 +phy_tx_polarity_flip_phy33=1 +phy_tx_polarity_flip_phy34=1 +phy_tx_polarity_flip_phy35=1 +phy_tx_polarity_flip_phy36=1 +phy_tx_polarity_flip_phy37=1 +phy_tx_polarity_flip_phy38=1 +phy_tx_polarity_flip_phy39=1 +phy_tx_polarity_flip_phy40=1 +phy_tx_polarity_flip_phy41=1 +phy_tx_polarity_flip_phy42=1 +phy_tx_polarity_flip_phy43=1 +phy_tx_polarity_flip_phy44=1 +phy_tx_polarity_flip_phy45=1 +phy_tx_polarity_flip_phy46=1 +phy_tx_polarity_flip_phy47=1 +phy_tx_polarity_flip_phy48=1 +phy_tx_polarity_flip_phy49=1 +phy_tx_polarity_flip_phy50=1 +phy_tx_polarity_flip_phy51=1 +phy_tx_polarity_flip_phy52=1 +phy_tx_polarity_flip_phy53=1 +phy_tx_polarity_flip_phy54=1 +phy_tx_polarity_flip_phy55=1 +phy_tx_polarity_flip_phy56=1 +phy_tx_polarity_flip_phy57=1 +phy_tx_polarity_flip_phy58=1 +phy_tx_polarity_flip_phy59=1 +phy_tx_polarity_flip_phy60=1 +phy_tx_polarity_flip_phy61=1 +phy_tx_polarity_flip_phy62=1 +phy_tx_polarity_flip_phy63=1 +phy_tx_polarity_flip_phy64=1 +phy_tx_polarity_flip_phy65=1 +phy_tx_polarity_flip_phy66=1 +phy_tx_polarity_flip_phy67=1 +phy_tx_polarity_flip_phy68=1 +phy_tx_polarity_flip_phy69=1 +phy_tx_polarity_flip_phy70=1 +phy_tx_polarity_flip_phy71=1 +phy_tx_polarity_flip_phy72=0 +phy_tx_polarity_flip_phy73=0 +phy_tx_polarity_flip_phy74=0 +phy_tx_polarity_flip_phy75=0 +phy_tx_polarity_flip_phy76=0 +phy_tx_polarity_flip_phy77=0 +phy_tx_polarity_flip_phy78=0 +phy_tx_polarity_flip_phy79=0 +phy_tx_polarity_flip_phy80=0 +phy_tx_polarity_flip_phy81=0 +phy_tx_polarity_flip_phy82=0 +phy_tx_polarity_flip_phy83=0 +phy_tx_polarity_flip_phy84=0 +phy_tx_polarity_flip_phy85=0 +phy_tx_polarity_flip_phy86=0 +phy_tx_polarity_flip_phy87=0 +phy_tx_polarity_flip_phy88=1 +phy_tx_polarity_flip_phy89=1 +phy_tx_polarity_flip_phy90=1 +phy_tx_polarity_flip_phy91=1 +phy_tx_polarity_flip_phy92=1 +phy_tx_polarity_flip_phy93=1 +phy_tx_polarity_flip_phy94=1 +phy_tx_polarity_flip_phy95=1 +phy_tx_polarity_flip_phy96=1 +phy_tx_polarity_flip_phy97=1 +phy_tx_polarity_flip_phy98=1 +phy_tx_polarity_flip_phy99=1 +phy_tx_polarity_flip_phy100=1 +phy_tx_polarity_flip_phy101=1 +phy_tx_polarity_flip_phy102=1 +phy_tx_polarity_flip_phy103=1 +phy_tx_polarity_flip_phy104=1 +phy_tx_polarity_flip_phy105=1 +phy_tx_polarity_flip_phy106=1 +phy_tx_polarity_flip_phy107=1 +phy_tx_polarity_flip_phy108=1 +phy_tx_polarity_flip_phy109=1 +phy_tx_polarity_flip_phy110=1 +phy_tx_polarity_flip_phy111=1 +phy_tx_polarity_flip_phy112=1 +phy_tx_polarity_flip_phy113=1 +phy_tx_polarity_flip_phy114=1 +phy_tx_polarity_flip_phy115=1 +phy_tx_polarity_flip_phy116=1 +phy_tx_polarity_flip_phy117=1 +phy_tx_polarity_flip_phy118=1 +phy_tx_polarity_flip_phy119=1 +phy_tx_polarity_flip_phy120=1 +phy_tx_polarity_flip_phy121=1 +phy_tx_polarity_flip_phy122=1 +phy_tx_polarity_flip_phy123=1 +phy_tx_polarity_flip_phy124=1 +phy_tx_polarity_flip_phy125=1 +phy_tx_polarity_flip_phy126=1 +phy_tx_polarity_flip_phy127=1 +phy_tx_polarity_flip_phy128=1 +phy_tx_polarity_flip_phy129=1 +phy_tx_polarity_flip_phy130=1 +phy_tx_polarity_flip_phy131=1 +phy_tx_polarity_flip_phy132=1 +phy_tx_polarity_flip_phy133=1 +phy_tx_polarity_flip_phy134=1 +phy_tx_polarity_flip_phy135=1 +phy_tx_polarity_flip_phy136=1 +phy_tx_polarity_flip_phy137=1 +phy_tx_polarity_flip_phy138=1 +phy_tx_polarity_flip_phy139=1 +phy_tx_polarity_flip_phy140=1 +phy_tx_polarity_flip_phy141=1 +phy_tx_polarity_flip_phy142=1 +phy_tx_polarity_flip_phy143=1 + +serdes_tx_taps_1=nrz:-7:85:-25:0:0:0 +serdes_tx_taps_2=nrz:-7:85:-25:0:0:0 +serdes_tx_taps_3=nrz:-5:75:-20:0:0:0 +serdes_tx_taps_4=nrz:-5:78:-22:0:0:0 +serdes_tx_taps_5=nrz:-5:80:-23:0:0:0 +serdes_tx_taps_6=nrz:-7:85:-25:0:0:0 +serdes_tx_taps_7=nrz:-8:89:-29:0:0:0 +serdes_tx_taps_8=nrz:-8:89:-29:0:0:0 +serdes_tx_taps_9=nrz:-8:89:-29:0:0:0 +serdes_tx_taps_10=nrz:-8:89:-29:0:0:0 +serdes_tx_taps_11=nrz:-8:89:-29:0:0:0 +serdes_tx_taps_12=nrz:-8:89:-29:0:0:0 +serdes_tx_taps_13=nrz:-8:89:-29:0:0:0 +serdes_tx_taps_14=nrz:-8:89:-29:0:0:0 +serdes_tx_taps_15=nrz:-8:89:-29:0:0:0 +serdes_tx_taps_16=nrz:-8:89:-29:0:0:0 +serdes_tx_taps_17=nrz:-8:89:-29:0:0:0 +serdes_tx_taps_18=nrz:-8:89:-29:0:0:0 +serdes_tx_taps_19=nrz:-5:78:-22:0:0:0 +serdes_tx_taps_20=nrz:-5:75:-20:0:0:0 +serdes_tx_taps_21=nrz:-4:75:-21:0:0:0 +serdes_tx_taps_22=nrz:-7:85:-25:0:0:0 +serdes_tx_taps_23=nrz:-5:78:-22:0:0:0 +serdes_tx_taps_24=nrz:-5:75:-20:0:0:0 +serdes_tx_taps_25=nrz:-5:78:-22:0:0:0 +serdes_tx_taps_26=nrz:-5:75:-20:0:0:0 +serdes_tx_taps_27=nrz:-7:85:-25:0:0:0 +serdes_tx_taps_28=nrz:-5:80:-23:0:0:0 +serdes_tx_taps_29=nrz:-5:78:-22:0:0:0 +serdes_tx_taps_30=nrz:-5:75:-20:0:0:0 +serdes_tx_taps_31=nrz:-7:85:-25:0:0:0 +serdes_tx_taps_32=nrz:-5:80:-23:0:0:0 +serdes_tx_taps_33=nrz:-5:75:-20:0:0:0 +serdes_tx_taps_34=nrz:-5:75:-20:0:0:0 +serdes_tx_taps_35=nrz:-5:80:-23:0:0:0 +serdes_tx_taps_36=nrz:-7:85:-25:0:0:0 diff --git a/device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36D2-C72/1/port_config.ini b/device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36D2-C72/1/port_config.ini new file mode 100644 index 000000000000..d5b9419c950f --- /dev/null +++ b/device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36D2-C72/1/port_config.ini @@ -0,0 +1,39 @@ +# name lanes alias index role speed asic_port_name coreId corePortId numVoq +Ethernet144 72,73,74,75 Ethernet19/1 19 Ext 100000 Eth144-ASIC1 1 1 8 +Ethernet148 76,77,78,79 Ethernet19/5 19 Ext 100000 Eth148-ASIC1 1 2 8 +Ethernet152 80,81,82,83 Ethernet20/1 20 Ext 100000 Eth152-ASIC1 1 3 8 +Ethernet156 84,85,86,87 Ethernet20/5 20 Ext 100000 Eth156-ASIC1 1 4 8 +Ethernet160 88,89,90,91 Ethernet21/1 21 Ext 100000 Eth160-ASIC1 1 5 8 +Ethernet164 92,93,94,95 Ethernet21/5 21 Ext 100000 Eth164-ASIC1 1 6 8 +Ethernet168 96,97,98,99 Ethernet22/1 22 Ext 100000 Eth168-ASIC1 1 7 8 +Ethernet172 100,101,102,103 Ethernet22/5 22 Ext 100000 Eth172-ASIC1 1 8 8 +Ethernet176 104,105,106,107 Ethernet23/1 23 Ext 100000 Eth176-ASIC1 1 9 8 +Ethernet180 108,109,110,111 Ethernet23/5 23 Ext 100000 Eth180-ASIC1 1 10 8 +Ethernet184 112,113,114,115 Ethernet24/1 24 Ext 100000 Eth184-ASIC1 1 11 8 +Ethernet188 116,117,118,119 Ethernet24/5 24 Ext 100000 Eth188-ASIC1 1 12 8 +Ethernet192 120,121,122,123 Ethernet25/1 25 Ext 100000 Eth192-ASIC1 1 13 8 +Ethernet196 124,125,126,127 Ethernet25/5 25 Ext 100000 Eth196-ASIC1 1 14 8 +Ethernet200 128,129,130,131 Ethernet26/1 26 Ext 100000 Eth200-ASIC1 1 15 8 +Ethernet204 132,133,134,135 Ethernet26/5 26 Ext 100000 Eth204-ASIC1 1 16 8 +Ethernet208 136,137,138,139 Ethernet27/1 27 Ext 100000 Eth208-ASIC1 1 17 8 +Ethernet212 140,141,142,143 Ethernet27/5 27 Ext 100000 Eth212-ASIC1 1 18 8 +Ethernet216 64,65,66,67 Ethernet28/1 28 Ext 100000 Eth216-ASIC1 0 19 8 +Ethernet220 68,69,70,71 Ethernet28/5 28 Ext 100000 Eth220-ASIC1 0 20 8 +Ethernet224 56,57,58,59 Ethernet29/1 29 Ext 100000 Eth224-ASIC1 0 21 8 +Ethernet228 60,61,62,63 Ethernet29/5 29 Ext 100000 Eth228-ASIC1 0 22 8 +Ethernet232 48,49,50,51 Ethernet30/1 30 Ext 100000 Eth232-ASIC1 0 23 8 +Ethernet236 52,53,54,55 Ethernet30/5 30 Ext 100000 Eth236-ASIC1 0 24 8 +Ethernet240 40,41,42,43 Ethernet31/1 31 Ext 100000 Eth240-ASIC1 0 25 8 +Ethernet244 44,45,46,47 Ethernet31/5 31 Ext 100000 Eth244-ASIC1 0 26 8 +Ethernet248 32,33,34,35 Ethernet32/1 32 Ext 100000 Eth248-ASIC1 0 27 8 +Ethernet252 36,37,38,39 Ethernet32/5 32 Ext 100000 Eth252-ASIC1 0 28 8 +Ethernet256 24,25,26,27 Ethernet33/1 33 Ext 100000 Eth256-ASIC1 0 29 8 +Ethernet260 28,29,30,31 Ethernet33/5 33 Ext 100000 Eth260-ASIC1 0 30 8 +Ethernet264 16,17,18,19 Ethernet34/1 34 Ext 100000 Eth264-ASIC1 0 31 8 +Ethernet268 20,21,22,23 Ethernet34/5 34 Ext 100000 Eth268-ASIC1 0 32 8 +Ethernet272 8,9,10,11 Ethernet35/1 35 Ext 100000 Eth272-ASIC1 0 33 8 +Ethernet276 12,13,14,15 Ethernet35/5 35 Ext 100000 Eth276-ASIC1 0 34 8 +Ethernet280 0,1,2,3 Ethernet36/1 36 Ext 100000 Eth280-ASIC1 0 35 8 +Ethernet284 4,5,6,7 Ethernet36/5 36 Ext 100000 Eth284-ASIC1 0 36 8 +Ethernet-Rec1 221 Recirc0/0 19 Rec 400000 Rcy0-ASIC1 0 221 8 +Ethernet-IB1 222 Recirc0/1 20 Inb 400000 Rcy1-ASIC1 1 222 8 diff --git a/device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36D2-C72/1/sai.profile b/device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36D2-C72/1/sai.profile new file mode 120000 index 000000000000..1e172f3e0765 --- /dev/null +++ b/device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36D2-C72/1/sai.profile @@ -0,0 +1 @@ +../0/sai.profile \ No newline at end of file diff --git a/device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36D2-C72/port_config.ini b/device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36D2-C72/port_config.ini new file mode 100644 index 000000000000..11446286191d --- /dev/null +++ b/device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36D2-C72/port_config.ini @@ -0,0 +1,77 @@ +# name lanes alias index role speed asic_port_name coreId corePortId numVoq +Ethernet0 72,73,74,75 Ethernet1/1 1 Ext 100000 Eth0-ASIC0 1 1 8 +Ethernet4 76,77,78,79 Ethernet1/5 1 Ext 100000 Eth4-ASIC0 1 2 8 +Ethernet8 80,81,82,83 Ethernet2/1 2 Ext 100000 Eth8-ASIC0 1 3 8 +Ethernet12 84,85,86,87 Ethernet2/5 2 Ext 100000 Eth12-ASIC0 1 4 8 +Ethernet16 88,89,90,91 Ethernet3/1 3 Ext 100000 Eth16-ASIC0 1 5 8 +Ethernet20 92,93,94,95 Ethernet3/5 3 Ext 100000 Eth20-ASIC0 1 6 8 +Ethernet24 96,97,98,99 Ethernet4/1 4 Ext 100000 Eth24-ASIC0 1 7 8 +Ethernet28 100,101,102,103 Ethernet4/5 4 Ext 100000 Eth28-ASIC0 1 8 8 +Ethernet32 104,105,106,107 Ethernet5/1 5 Ext 100000 Eth32-ASIC0 1 9 8 +Ethernet36 108,109,110,111 Ethernet5/5 5 Ext 100000 Eth36-ASIC0 1 10 8 +Ethernet40 112,113,114,115 Ethernet6/1 6 Ext 100000 Eth40-ASIC0 1 11 8 +Ethernet44 116,117,118,119 Ethernet6/5 6 Ext 100000 Eth44-ASIC0 1 12 8 +Ethernet48 120,121,122,123 Ethernet7/1 7 Ext 100000 Eth48-ASIC0 1 13 8 +Ethernet52 124,125,126,127 Ethernet7/5 7 Ext 100000 Eth52-ASIC0 1 14 8 +Ethernet56 128,129,130,131 Ethernet8/1 8 Ext 100000 Eth56-ASIC0 1 15 8 +Ethernet60 132,133,134,135 Ethernet8/5 8 Ext 100000 Eth60-ASIC0 1 16 8 +Ethernet64 136,137,138,139 Ethernet9/1 9 Ext 100000 Eth64-ASIC0 1 17 8 +Ethernet68 140,141,142,143 Ethernet9/5 9 Ext 100000 Eth68-ASIC0 1 18 8 +Ethernet72 64,65,66,67 Ethernet10/1 10 Ext 100000 Eth72-ASIC0 0 19 8 +Ethernet76 68,69,70,71 Ethernet10/5 10 Ext 100000 Eth76-ASIC0 0 20 8 +Ethernet80 56,57,58,59 Ethernet11/1 11 Ext 100000 Eth80-ASIC0 0 21 8 +Ethernet84 60,61,62,63 Ethernet11/5 11 Ext 100000 Eth84-ASIC0 0 22 8 +Ethernet88 48,49,50,51 Ethernet12/1 12 Ext 100000 Eth88-ASIC0 0 23 8 +Ethernet92 52,53,54,55 Ethernet12/5 12 Ext 100000 Eth92-ASIC0 0 24 8 +Ethernet96 40,41,42,43 Ethernet13/1 13 Ext 100000 Eth96-ASIC0 0 25 8 +Ethernet100 44,45,46,47 Ethernet13/5 13 Ext 100000 Eth100-ASIC0 0 26 8 +Ethernet104 32,33,34,35 Ethernet14/1 14 Ext 100000 Eth104-ASIC0 0 27 8 +Ethernet108 36,37,38,39 Ethernet14/5 14 Ext 100000 Eth108-ASIC0 0 28 8 +Ethernet112 24,25,26,27 Ethernet15/1 15 Ext 100000 Eth112-ASIC0 0 29 8 +Ethernet116 28,29,30,31 Ethernet15/5 15 Ext 100000 Eth116-ASIC0 0 30 8 +Ethernet120 16,17,18,19 Ethernet16/1 16 Ext 100000 Eth120-ASIC0 0 31 8 +Ethernet124 20,21,22,23 Ethernet16/5 16 Ext 100000 Eth124-ASIC0 0 32 8 +Ethernet128 8,9,10,11 Ethernet17/1 17 Ext 100000 Eth128-ASIC0 0 33 8 +Ethernet132 12,13,14,15 Ethernet17/5 17 Ext 100000 Eth132-ASIC0 0 34 8 +Ethernet136 0,1,2,3 Ethernet18/1 18 Ext 100000 Eth136-ASIC0 0 35 8 +Ethernet140 4,5,6,7 Ethernet18/5 18 Ext 100000 Eth140-ASIC0 0 36 8 +Ethernet-Rec0 221 Recirc0/0 19 Rec 400000 Rcy0-ASIC0 0 221 8 +Ethernet-IB0 222 Recirc0/1 20 Inb 400000 Rcy1-ASIC0 1 222 8 +Ethernet144 72,73,74,75 Ethernet19/1 19 Ext 100000 Eth144-ASIC1 1 1 8 +Ethernet148 76,77,78,79 Ethernet19/5 19 Ext 100000 Eth148-ASIC1 1 2 8 +Ethernet152 80,81,82,83 Ethernet20/1 20 Ext 100000 Eth152-ASIC1 1 3 8 +Ethernet156 84,85,86,87 Ethernet20/5 20 Ext 100000 Eth156-ASIC1 1 4 8 +Ethernet160 88,89,90,91 Ethernet21/1 21 Ext 100000 Eth160-ASIC1 1 5 8 +Ethernet164 92,93,94,95 Ethernet21/5 21 Ext 100000 Eth164-ASIC1 1 6 8 +Ethernet168 96,97,98,99 Ethernet22/1 22 Ext 100000 Eth168-ASIC1 1 7 8 +Ethernet172 100,101,102,103 Ethernet22/5 22 Ext 100000 Eth172-ASIC1 1 8 8 +Ethernet176 104,105,106,107 Ethernet23/1 23 Ext 100000 Eth176-ASIC1 1 9 8 +Ethernet180 108,109,110,111 Ethernet23/5 23 Ext 100000 Eth180-ASIC1 1 10 8 +Ethernet184 112,113,114,115 Ethernet24/1 24 Ext 100000 Eth184-ASIC1 1 11 8 +Ethernet188 116,117,118,119 Ethernet24/5 24 Ext 100000 Eth188-ASIC1 1 12 8 +Ethernet192 120,121,122,123 Ethernet25/1 25 Ext 100000 Eth192-ASIC1 1 13 8 +Ethernet196 124,125,126,127 Ethernet25/5 25 Ext 100000 Eth196-ASIC1 1 14 8 +Ethernet200 128,129,130,131 Ethernet26/1 26 Ext 100000 Eth200-ASIC1 1 15 8 +Ethernet204 132,133,134,135 Ethernet26/5 26 Ext 100000 Eth204-ASIC1 1 16 8 +Ethernet208 136,137,138,139 Ethernet27/1 27 Ext 100000 Eth208-ASIC1 1 17 8 +Ethernet212 140,141,142,143 Ethernet27/5 27 Ext 100000 Eth212-ASIC1 1 18 8 +Ethernet216 64,65,66,67 Ethernet28/1 28 Ext 100000 Eth216-ASIC1 0 19 8 +Ethernet220 68,69,70,71 Ethernet28/5 28 Ext 100000 Eth220-ASIC1 0 20 8 +Ethernet224 56,57,58,59 Ethernet29/1 29 Ext 100000 Eth224-ASIC1 0 21 8 +Ethernet228 60,61,62,63 Ethernet29/5 29 Ext 100000 Eth228-ASIC1 0 22 8 +Ethernet232 48,49,50,51 Ethernet30/1 30 Ext 100000 Eth232-ASIC1 0 23 8 +Ethernet236 52,53,54,55 Ethernet30/5 30 Ext 100000 Eth236-ASIC1 0 24 8 +Ethernet240 40,41,42,43 Ethernet31/1 31 Ext 100000 Eth240-ASIC1 0 25 8 +Ethernet244 44,45,46,47 Ethernet31/5 31 Ext 100000 Eth244-ASIC1 0 26 8 +Ethernet248 32,33,34,35 Ethernet32/1 32 Ext 100000 Eth248-ASIC1 0 27 8 +Ethernet252 36,37,38,39 Ethernet32/5 32 Ext 100000 Eth252-ASIC1 0 28 8 +Ethernet256 24,25,26,27 Ethernet33/1 33 Ext 100000 Eth256-ASIC1 0 29 8 +Ethernet260 28,29,30,31 Ethernet33/5 33 Ext 100000 Eth260-ASIC1 0 30 8 +Ethernet264 16,17,18,19 Ethernet34/1 34 Ext 100000 Eth264-ASIC1 0 31 8 +Ethernet268 20,21,22,23 Ethernet34/5 34 Ext 100000 Eth268-ASIC1 0 32 8 +Ethernet272 8,9,10,11 Ethernet35/1 35 Ext 100000 Eth272-ASIC1 0 33 8 +Ethernet276 12,13,14,15 Ethernet35/5 35 Ext 100000 Eth276-ASIC1 0 34 8 +Ethernet280 0,1,2,3 Ethernet36/1 36 Ext 100000 Eth280-ASIC1 0 35 8 +Ethernet284 4,5,6,7 Ethernet36/5 36 Ext 100000 Eth284-ASIC1 0 36 8 +Ethernet-Rec1 221 Recirc0/0 19 Rec 400000 Rcy0-ASIC1 0 221 8 +Ethernet-IB1 222 Recirc0/1 20 Inb 400000 Rcy1-ASIC1 1 222 8 diff --git a/device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36DM2-C72 b/device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36DM2-C72 new file mode 120000 index 000000000000..762deebff6a7 --- /dev/null +++ b/device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36DM2-C72 @@ -0,0 +1 @@ +Arista-7800R3A-36D2-C72 \ No newline at end of file diff --git a/device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36P-C72 b/device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36P-C72 new file mode 120000 index 000000000000..762deebff6a7 --- /dev/null +++ b/device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3A-36P-C72 @@ -0,0 +1 @@ +Arista-7800R3A-36D2-C72 \ No newline at end of file diff --git a/device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3AK-36D2-C72 b/device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3AK-36D2-C72 new file mode 120000 index 000000000000..762deebff6a7 --- /dev/null +++ b/device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3AK-36D2-C72 @@ -0,0 +1 @@ +Arista-7800R3A-36D2-C72 \ No newline at end of file diff --git a/device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3AK-36DM2-C72 b/device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3AK-36DM2-C72 new file mode 120000 index 000000000000..762deebff6a7 --- /dev/null +++ b/device/arista/x86_64-arista_7800r3a_36d2_lc/Arista-7800R3AK-36DM2-C72 @@ -0,0 +1 @@ +Arista-7800R3A-36D2-C72 \ No newline at end of file diff --git a/device/arista/x86_64-arista_7800r3a_36d2_lc/asic.conf b/device/arista/x86_64-arista_7800r3a_36d2_lc/asic.conf new file mode 100644 index 000000000000..3e123ed50a13 --- /dev/null +++ b/device/arista/x86_64-arista_7800r3a_36d2_lc/asic.conf @@ -0,0 +1,3 @@ +NUM_ASIC=2 +DEV_ID_ASIC_0=06:00.0 +DEV_ID_ASIC_1=07:00.0 diff --git a/device/arista/x86_64-arista_7800r3a_36d2_lc/chassisdb.conf b/device/arista/x86_64-arista_7800r3a_36d2_lc/chassisdb.conf new file mode 100644 index 000000000000..e259cf742191 --- /dev/null +++ b/device/arista/x86_64-arista_7800r3a_36d2_lc/chassisdb.conf @@ -0,0 +1,2 @@ +midplane_subnet=127.100.0.0/16 +chassis_db_address=127.100.1.1 diff --git a/device/arista/x86_64-arista_7800r3a_36d2_lc/pcie.yaml b/device/arista/x86_64-arista_7800r3a_36d2_lc/pcie.yaml new file mode 100644 index 000000000000..4b4481f3154d --- /dev/null +++ b/device/arista/x86_64-arista_7800r3a_36d2_lc/pcie.yaml @@ -0,0 +1,246 @@ +- bus: '00' + dev: '00' + fn: '0' + id: '1450' + name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + Root Complex' +- bus: '00' + dev: '00' + fn: '2' + id: '1451' + name: 'IOMMU: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) I/O + Memory Management Unit' +- bus: '00' + dev: '01' + fn: '0' + id: '1452' + name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-1fh) + PCIe Dummy Host Bridge' +- bus: '00' + dev: '01' + fn: '4' + id: '1453' + name: 'PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + PCIe GPP Bridge' +- bus: '00' + dev: '01' + fn: '5' + id: '1453' + name: 'PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + PCIe GPP Bridge' +- bus: '00' + dev: '01' + fn: '6' + id: '1453' + name: 'PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + PCIe GPP Bridge' +- bus: '00' + dev: '02' + fn: '0' + id: '1452' + name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-1fh) + PCIe Dummy Host Bridge' +- bus: '00' + dev: '03' + fn: '0' + id: '1452' + name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-1fh) + PCIe Dummy Host Bridge' +- bus: '00' + dev: '03' + fn: '1' + id: '1453' + name: 'PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + PCIe GPP Bridge' +- bus: '00' + dev: '03' + fn: '2' + id: '1453' + name: 'PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + PCIe GPP Bridge' +- bus: '00' + dev: '03' + fn: '3' + id: '1453' + name: 'PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + PCIe GPP Bridge' +- bus: '00' + dev: '03' + fn: '4' + id: '1453' + name: 'PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + PCIe GPP Bridge' +- bus: '00' + dev: '04' + fn: '0' + id: '1452' + name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-1fh) + PCIe Dummy Host Bridge' +- bus: '00' + dev: '07' + fn: '0' + id: '1452' + name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-1fh) + PCIe Dummy Host Bridge' +- bus: '00' + dev: '07' + fn: '1' + id: '1454' + name: 'PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + Internal PCIe GPP Bridge 0 to Bus B' +- bus: '00' + dev: 08 + fn: '0' + id: '1452' + name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-1fh) + PCIe Dummy Host Bridge' +- bus: '00' + dev: 08 + fn: '1' + id: '1454' + name: 'PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + Internal PCIe GPP Bridge 0 to Bus B' +- bus: '00' + dev: '14' + fn: '0' + id: 790b + name: 'SMBus: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller (rev 59)' +- bus: '00' + dev: '14' + fn: '3' + id: 790e + name: 'ISA bridge: Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge (rev 51)' +- bus: '00' + dev: '18' + fn: '0' + id: '1460' + name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + Data Fabric: Device 18h; Function 0' +- bus: '00' + dev: '18' + fn: '1' + id: '1461' + name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + Data Fabric: Device 18h; Function 1' +- bus: '00' + dev: '18' + fn: '2' + id: '1462' + name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + Data Fabric: Device 18h; Function 2' +- bus: '00' + dev: '18' + fn: '3' + id: '1463' + name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + Data Fabric: Device 18h; Function 3' +- bus: '00' + dev: '18' + fn: '4' + id: '1464' + name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + Data Fabric: Device 18h; Function 4' +- bus: '00' + dev: '18' + fn: '5' + id: '1465' + name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + Data Fabric: Device 18h; Function 5' +- bus: '00' + dev: '18' + fn: '6' + id: '1466' + name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + Data Fabric: Device 18h; Function 6' +- bus: '00' + dev: '18' + fn: '7' + id: '0001' + name: 'Host bridge: Arista Networks, Inc. Device 0001' +- bus: '04' + dev: '00' + fn: '0' + id: '8717' + name: 'PCI bridge: PLX Technology, Inc. PEX 8717 16-lane, 8-Port PCI Express Gen + 3 (8.0 GT/s) Switch with DMA (rev ca)' +- bus: '05' + dev: '03' + fn: '0' + id: '8717' + name: 'PCI bridge: PLX Technology, Inc. PEX 8717 16-lane, 8-Port PCI Express Gen + 3 (8.0 GT/s) Switch with DMA (rev ca)' +- bus: '05' + dev: '04' + fn: '0' + id: '8717' + name: 'PCI bridge: PLX Technology, Inc. PEX 8717 16-lane, 8-Port PCI Express Gen + 3 (8.0 GT/s) Switch with DMA (rev ca)' +- bus: '05' + dev: '05' + fn: '0' + id: '8717' + name: 'PCI bridge: PLX Technology, Inc. PEX 8717 16-lane, 8-Port PCI Express Gen + 3 (8.0 GT/s) Switch with DMA (rev ca)' +- bus: '06' + dev: '00' + fn: '0' + id: '8852' + name: 'Ethernet controller: Broadcom Inc. and subsidiaries Device 8852 (rev 02)' +- bus: '07' + dev: '00' + fn: '0' + id: '8852' + name: 'Ethernet controller: Broadcom Inc. and subsidiaries Device 8852 (rev 02)' +- bus: 08 + dev: '00' + fn: '0' + id: '0001' + name: 'System peripheral: Arista Networks, Inc. Device 0001 (rev 01)' +- bus: '10' + dev: '00' + fn: '0' + id: '1682' + name: 'Ethernet controller: Broadcom Inc. and subsidiaries NetXtreme BCM57762 Gigabit + Ethernet PCIe (rev 01)' +- bus: '11' + dev: '00' + fn: '0' + id: 145a + name: 'Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] + Zeppelin/Raven/Raven2 PCIe Dummy Function' +- bus: '11' + dev: '00' + fn: '2' + id: '1456' + name: 'Encryption controller: Advanced Micro Devices, Inc. [AMD] Family 17h (Models + 00h-0fh) Platform Security Processor' +- bus: '11' + dev: '00' + fn: '3' + id: 145f + name: 'USB controller: Advanced Micro Devices, Inc. [AMD] Zeppelin USB 3.0 Host + controller' +- bus: '12' + dev: '00' + fn: '0' + id: '1455' + name: 'Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] + Zeppelin/Renoir PCIe Dummy Function' +- bus: '12' + dev: '00' + fn: '1' + id: '1468' + name: 'Encryption controller: Advanced Micro Devices, Inc. [AMD] Zeppelin Cryptographic + Coprocessor NTBCCP' +- bus: '12' + dev: '00' + fn: '2' + id: '7901' + name: 'SATA controller: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI + mode] (rev 51)' +- bus: '12' + dev: '00' + fn: '3' + id: '1457' + name: 'Audio device: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) + HD Audio Controller' diff --git a/device/arista/x86_64-arista_7800r3a_36d2_lc/platform_asic b/device/arista/x86_64-arista_7800r3a_36d2_lc/platform_asic new file mode 100644 index 000000000000..9ba24ca3e753 --- /dev/null +++ b/device/arista/x86_64-arista_7800r3a_36d2_lc/platform_asic @@ -0,0 +1 @@ +broadcom-dnx diff --git a/device/arista/x86_64-arista_7800r3a_36d2_lc/platform_env.conf b/device/arista/x86_64-arista_7800r3a_36d2_lc/platform_env.conf new file mode 100644 index 000000000000..558fb7393f62 --- /dev/null +++ b/device/arista/x86_64-arista_7800r3a_36d2_lc/platform_env.conf @@ -0,0 +1,2 @@ +usemsi=1 +dmasize=64M diff --git a/device/arista/x86_64-arista_7800r3a_36d2_lc/plugins b/device/arista/x86_64-arista_7800r3a_36d2_lc/plugins new file mode 120000 index 000000000000..5fbbf98a6284 --- /dev/null +++ b/device/arista/x86_64-arista_7800r3a_36d2_lc/plugins @@ -0,0 +1 @@ +../x86_64-arista_common/plugins/ \ No newline at end of file diff --git a/device/arista/x86_64-arista_7800r3a_36d2_lc/pmon_daemon_control.json b/device/arista/x86_64-arista_7800r3a_36d2_lc/pmon_daemon_control.json new file mode 120000 index 000000000000..26ee0d4d1384 --- /dev/null +++ b/device/arista/x86_64-arista_7800r3a_36d2_lc/pmon_daemon_control.json @@ -0,0 +1 @@ +../x86_64-arista_common/pmon_daemon_control_linecard.json \ No newline at end of file diff --git a/device/arista/x86_64-arista_7800r3a_36d2_lc/sensors.conf b/device/arista/x86_64-arista_7800r3a_36d2_lc/sensors.conf new file mode 100644 index 000000000000..d2b272483eee --- /dev/null +++ b/device/arista/x86_64-arista_7800r3a_36d2_lc/sensors.conf @@ -0,0 +1,6 @@ +# autogenerated by arista + +chip "k10temp-pci-00c3" + label temp1 "Cpu temp sensor" + set temp1_max 90 + set temp1_crit 95 diff --git a/device/arista/x86_64-arista_7800r3a_36d2_lc/system_health_monitoring_config.json b/device/arista/x86_64-arista_7800r3a_36d2_lc/system_health_monitoring_config.json new file mode 120000 index 000000000000..035cde619cd9 --- /dev/null +++ b/device/arista/x86_64-arista_7800r3a_36d2_lc/system_health_monitoring_config.json @@ -0,0 +1 @@ +../x86_64-arista_common/system_health_monitoring_config_linecard.json \ No newline at end of file diff --git a/device/arista/x86_64-arista_7800r3a_36d2_lc/thermal_policy.json b/device/arista/x86_64-arista_7800r3a_36d2_lc/thermal_policy.json new file mode 120000 index 000000000000..7c7982deaffa --- /dev/null +++ b/device/arista/x86_64-arista_7800r3a_36d2_lc/thermal_policy.json @@ -0,0 +1 @@ +../x86_64-arista_common/thermal_policy_linecard.json \ No newline at end of file diff --git a/device/arista/x86_64-arista_7800r3a_36d_lc b/device/arista/x86_64-arista_7800r3a_36d_lc new file mode 120000 index 000000000000..50e843fb3105 --- /dev/null +++ b/device/arista/x86_64-arista_7800r3a_36d_lc @@ -0,0 +1 @@ +x86_64-arista_7800r3a_36d2_lc \ No newline at end of file diff --git a/device/arista/x86_64-arista_7800r3a_36dm2_lc b/device/arista/x86_64-arista_7800r3a_36dm2_lc new file mode 120000 index 000000000000..50e843fb3105 --- /dev/null +++ b/device/arista/x86_64-arista_7800r3a_36dm2_lc @@ -0,0 +1 @@ +x86_64-arista_7800r3a_36d2_lc \ No newline at end of file diff --git a/device/arista/x86_64-arista_7800r3a_36p_lc b/device/arista/x86_64-arista_7800r3a_36p_lc new file mode 120000 index 000000000000..50e843fb3105 --- /dev/null +++ b/device/arista/x86_64-arista_7800r3a_36p_lc @@ -0,0 +1 @@ +x86_64-arista_7800r3a_36d2_lc \ No newline at end of file diff --git a/device/arista/x86_64-arista_7800r3ak_36d2_lc b/device/arista/x86_64-arista_7800r3ak_36d2_lc new file mode 120000 index 000000000000..50e843fb3105 --- /dev/null +++ b/device/arista/x86_64-arista_7800r3ak_36d2_lc @@ -0,0 +1 @@ +x86_64-arista_7800r3a_36d2_lc \ No newline at end of file diff --git a/device/arista/x86_64-arista_7800r3ak_36dm2_lc b/device/arista/x86_64-arista_7800r3ak_36dm2_lc new file mode 120000 index 000000000000..50e843fb3105 --- /dev/null +++ b/device/arista/x86_64-arista_7800r3ak_36dm2_lc @@ -0,0 +1 @@ +x86_64-arista_7800r3a_36d2_lc \ No newline at end of file diff --git a/files/Aboot/boot0.j2 b/files/Aboot/boot0.j2 index 2510695d1363..5fe64b6884a4 100644 --- a/files/Aboot/boot0.j2 +++ b/files/Aboot/boot0.j2 @@ -558,6 +558,22 @@ write_platform_specific_cmdline() { aboot_machine=arista_7800r3_48cqm2_lc sonic_mode="$linecard_mode" fi + if [ "$sid" = "WolverineQCpu" ]; then + aboot_machine=arista_7800r3a_36d2_lc + sonic_mode="$linecard_mode" + fi + if [ "$sid" = "WolverineQCpuBk" ]; then + aboot_machine=arista_7800r3ak_36d2_lc + sonic_mode="$linecard_mode" + fi + if [ "$sid" = "WolverineQCpuMs" ]; then + aboot_machine=arista_7800r3a_36dm2_lc + sonic_mode="$linecard_mode" + fi + if [ "$sid" = "WolverineQCpuBkMs" ]; then + aboot_machine=arista_7800r3ak_36dm2_lc + sonic_mode="$linecard_mode" + fi if [ "$sid" = "OtterLake" ]; then aboot_machine=arista_7800_sup flash_size=30000 From b313563986a71b478e8bae486950cdcccb518c0f Mon Sep 17 00:00:00 2001 From: Shilong Liu Date: Mon, 23 May 2022 17:52:56 +0800 Subject: [PATCH 202/251] [ci] Add arm artifacts in common lib azure pipeline (#10817) * [ci] Add arm artifacts in common lib azure pipeline --- .azure-pipelines/template-commonlib.yml | 91 ++++++++++++++----------- slave.mk | 4 ++ 2 files changed, 56 insertions(+), 39 deletions(-) diff --git a/.azure-pipelines/template-commonlib.yml b/.azure-pipelines/template-commonlib.yml index 61a801e3f526..cd7551d83823 100644 --- a/.azure-pipelines/template-commonlib.yml +++ b/.azure-pipelines/template-commonlib.yml @@ -1,40 +1,53 @@ -jobs: -- job: Build - timeoutInMinutes: 120 - pool: sonicbld - variables: - - template: template-variables.yml - steps: - - checkout: self - clean: true - submodules: recursive - - script: | - set -ex - branch=$(Build.SourceBranchName) - # DIST_MASTER is set in variable. - BRANCH=DIST_${branch^^} - bldenvs=${!BRANCH} - [ "$bldenvs" == "" ] && bldenvs="$(COMMON_LIB_BUILD_ENVS)" - for bldenv in $bldenvs - do - BLDENV=$bldenv make -f Makefile.work configure PLATFORM=vs ENABLE_DOCKER_BASE_PULL=y - done - set +x - echo "##vso[task.setvariable variable=bldenvs;]$bldenvs" - displayName: Make configure - - script: | - set -ex - for bldenv in $(bldenvs) - do - LIBNL3_VERSION_BASE=$(grep "LIBNL3_VERSION_BASE =" rules/libnl3.mk | awk '{print$3}') - LIBNL3_VERSION=$(grep "LIBNL3_VERSION =" rules/libnl3.mk | awk '{print$3}' | sed -e "s/(//" -e "s/)//" -e "s/\\$//" -e "s/LIBNL3_VERSION_BASE/$LIBNL3_VERSION_BASE/") - SONIC_BUILD_JOBS=$(nproc) BLDENV=$bldenv make -f Makefile.work target/debs/$bldenv/libnl-3-200_${LIBNL3_VERSION}_amd64.deb ENABLE_DOCKER_BASE_PULL=y +parameters: +- name: archs + type: object + default: + - amd64 + - armhf + - arm64 - LIBYANG_VERSION_BASE=$(grep "LIBYANG_VERSION_BASE =" rules/libyang.mk | awk '{print$3}') - LIBYANG_VERSION=$(grep "LIBYANG_VERSION =" rules/libyang.mk | awk '{print$3}' | sed -e "s/\\$//" -e "s/(//" -e "s/)//" -e "s/LIBYANG_VERSION_BASE/$LIBYANG_VERSION_BASE/") - SONIC_BUILD_JOBS=$(nproc) BLDENV=$bldenv make -f Makefile.work target/debs/$bldenv/libyang_${LIBYANG_VERSION}_amd64.deb - done - mv target $(Build.ArtifactStagingDirectory) - displayName: Make common lib packages - - publish: $(Build.ArtifactStagingDirectory) - artifact: common-lib +jobs: +- ${{ each arch in parameters.archs }}: + - job: Build_${{ arch }} + timeoutInMinutes: 120 + ${{ if eq(arch,'amd64') }}: + pool: sonicbld + ${{ else }}: + pool: sonicbld-${{ arch }} + variables: + - template: template-variables.yml + steps: + - checkout: self + clean: true + submodules: recursive + - script: | + set -ex + branch=$(Build.SourceBranchName) + # replace all: '-' -> '_' + branch=${branch//-/_} + # replace all: 'a' -> 'A', DIST_MASTER is set in variable. + BRANCH=DIST_${branch^^} + # variable name is dynamic + bldenvs=${!BRANCH} + [ "$bldenvs" == "" ] && bldenvs="$(COMMON_LIB_BUILD_ENVS)" + for bldenv in $bldenvs + do + BLDENV=$bldenv make -f Makefile.work configure PLATFORM_ARCH=${{ arch }} PLATFORM=vs ENABLE_DOCKER_BASE_PULL=y + done + set +x + echo "##vso[task.setvariable variable=bldenvs;]$bldenvs" + displayName: Make configure + - script: | + set -ex + for bldenv in $(bldenvs) + do + SONIC_BUILD_JOBS=$(nproc) BLDENV=$bldenv make -f Makefile.work lib-packages ENABLE_DOCKER_BASE_PULL=y + done + mv target $(Build.ArtifactStagingDirectory) + displayName: Make common lib packages + - ${{ if eq(arch,'amd64') }}: + - publish: $(Build.ArtifactStagingDirectory) + artifact: common-lib + - ${{ else }}: + - publish: $(Build.ArtifactStagingDirectory) + artifact: common-lib.${{ arch }} diff --git a/slave.mk b/slave.mk index 44d9e0ed8849..7b91ba0384c0 100644 --- a/slave.mk +++ b/slave.mk @@ -1377,3 +1377,7 @@ jessie : $$(addprefix $(TARGET_PATH)/,$$(JESSIE_DOCKER_IMAGES)) \ .PHONY : $(SONIC_CLEAN_DEBS) $(SONIC_CLEAN_FILES) $(SONIC_CLEAN_TARGETS) $(SONIC_CLEAN_STDEB_DEBS) $(SONIC_CLEAN_WHEELS) $(SONIC_PHONY_TARGETS) clean distclean configure .INTERMEDIATE : $(SONIC_INSTALL_DEBS) $(SONIC_INSTALL_WHEELS) $(DOCKER_LOAD_TARGETS) docker-start .platform + +## To build some commonly used libs. Some submodules depend on these libs. +## It is used in component pipelines. For example: swss needs libnl, libyang +lib-packages: $(addprefix $(DEBS_PATH)/,$(LIBNL3) $(LIBYANG)) From e8aa6063fb387ba460c4356f7740a28af6a89ad0 Mon Sep 17 00:00:00 2001 From: Oleksandr Ivantsiv Date: Mon, 23 May 2022 13:17:24 +0300 Subject: [PATCH 203/251] [build] Use upstream sonic-swss-common and sonic-utilities. --- .gitmodules | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index 574f5e88e665..b75cf03f2912 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,6 +1,6 @@ [submodule "sonic-swss-common"] path = src/sonic-swss-common - url = ssh://git@github.com/nvidia-sonic/sonic-swss-common + url = https://github.com/Azure/sonic-swss-common [submodule "sonic-linux-kernel"] path = src/sonic-linux-kernel url = ssh://git@github.com/nvidia-sonic/sonic-linux-kernel @@ -30,7 +30,7 @@ url = https://github.com/p4lang/ptf.git [submodule "src/sonic-utilities"] path = src/sonic-utilities - url = ssh://git@github.com/nvidia-sonic/sonic-utilities + url = https://github.com/Azure/sonic-utilities [submodule "platform/broadcom/sonic-platform-modules-arista"] path = platform/broadcom/sonic-platform-modules-arista url = https://github.com/aristanetworks/sonic From 70e2727b02429ec54e85232d382e6f2aa9d44bc7 Mon Sep 17 00:00:00 2001 From: Samuel Angebault Date: Mon, 23 May 2022 13:28:13 -0700 Subject: [PATCH 204/251] [Arista] Update platform submodules (#10800) This update has following changes Refactor pci topology logic for chassis (fixes some chassis commands and chassisd on linecard) Introduce new cooling algorithm Fix linecard poweroff logic when supervisor is going down Fix linecard status led leading to system-health crashing Misc fixes --- platform/barefoot/sonic-platform-modules-arista | 2 +- platform/broadcom/sonic-platform-modules-arista | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/platform/barefoot/sonic-platform-modules-arista b/platform/barefoot/sonic-platform-modules-arista index 9b61f8bdbe65..6e6f1f904f28 160000 --- a/platform/barefoot/sonic-platform-modules-arista +++ b/platform/barefoot/sonic-platform-modules-arista @@ -1 +1 @@ -Subproject commit 9b61f8bdbe657e8798bc40c09039a6e0a7f5d150 +Subproject commit 6e6f1f904f28df7fa06c169a71a1d77e739f431a diff --git a/platform/broadcom/sonic-platform-modules-arista b/platform/broadcom/sonic-platform-modules-arista index 9b61f8bdbe65..6e6f1f904f28 160000 --- a/platform/broadcom/sonic-platform-modules-arista +++ b/platform/broadcom/sonic-platform-modules-arista @@ -1 +1 @@ -Subproject commit 9b61f8bdbe657e8798bc40c09039a6e0a7f5d150 +Subproject commit 6e6f1f904f28df7fa06c169a71a1d77e739f431a From b23ad6748af04964c3c67f4069514f5cd8e5794d Mon Sep 17 00:00:00 2001 From: Song Yuan <64041228+ysmanman@users.noreply.github.com> Date: Mon, 23 May 2022 13:50:04 -0700 Subject: [PATCH 205/251] [Arista] Add QOS and buffer profiles for SKU Arista-7800R3-48CQM2-C48 (#10752) * Add QOS and buffer profiles for Arista SKU. * Add unit test for SKU Arista-7800R3-48CQM2-C48. --- .../Arista-7800R3-48CQM2-C48/buffers.json.j2 | 2 + .../buffers_defaults_t2.j2 | 65 +++++++++++++++++++ .../pg_profile_lookup.ini | 23 +++++++ .../Arista-7800R3-48CQM2-C48/qos.json.j2 | 21 ++++++ src/sonic-config-engine/tests/test_j2files.py | 10 ++- 5 files changed, 119 insertions(+), 2 deletions(-) create mode 100644 device/arista/x86_64-arista_7800r3_48cqm2_lc/Arista-7800R3-48CQM2-C48/buffers.json.j2 create mode 100644 device/arista/x86_64-arista_7800r3_48cqm2_lc/Arista-7800R3-48CQM2-C48/buffers_defaults_t2.j2 create mode 100644 device/arista/x86_64-arista_7800r3_48cqm2_lc/Arista-7800R3-48CQM2-C48/pg_profile_lookup.ini create mode 100644 device/arista/x86_64-arista_7800r3_48cqm2_lc/Arista-7800R3-48CQM2-C48/qos.json.j2 diff --git a/device/arista/x86_64-arista_7800r3_48cqm2_lc/Arista-7800R3-48CQM2-C48/buffers.json.j2 b/device/arista/x86_64-arista_7800r3_48cqm2_lc/Arista-7800R3-48CQM2-C48/buffers.json.j2 new file mode 100644 index 000000000000..f34a844f4a87 --- /dev/null +++ b/device/arista/x86_64-arista_7800r3_48cqm2_lc/Arista-7800R3-48CQM2-C48/buffers.json.j2 @@ -0,0 +1,2 @@ +{%- set default_topo = 't2' %} +{%- include 'buffers_config.j2' %} diff --git a/device/arista/x86_64-arista_7800r3_48cqm2_lc/Arista-7800R3-48CQM2-C48/buffers_defaults_t2.j2 b/device/arista/x86_64-arista_7800r3_48cqm2_lc/Arista-7800R3-48CQM2-C48/buffers_defaults_t2.j2 new file mode 100644 index 000000000000..b292a354b55a --- /dev/null +++ b/device/arista/x86_64-arista_7800r3_48cqm2_lc/Arista-7800R3-48CQM2-C48/buffers_defaults_t2.j2 @@ -0,0 +1,65 @@ +{%- set default_cable = '5m' %} + +{%- macro generate_port_lists(PORT_ALL) %} + {# Generate list of ports #} + {%- for port_idx in range(0,192,4) %} + {%- if PORT_ALL.append("Ethernet%d" % (port_idx)) %}{%- endif %} + {%- endfor %} +{%- endmacro %} + +{%- macro generate_buffer_pool_and_profiles() %} + "BUFFER_POOL": { + "ingress_lossless_pool": { + "size": "3220805000", + "type": "both", + "mode": "dynamic", + "xoff": "2102272" + } + }, + "BUFFER_PROFILE": { + "ingress_lossless_profile": { + "pool":"ingress_lossless_pool", + "size":"1280", + "dynamic_th":"-2", + "xon_offset":"2560", + "xon":"0", + "xoff":"66048" + }, + "ingress_lossy_profile": { + "pool":"ingress_lossless_pool", + "size":"0", + "xon_offset":"0", + "static_th":"30535680" + }, + "egress_lossless_profile": { + "pool":"ingress_lossless_pool", + "size":"0", + "static_th":"33030144" + }, + "egress_lossy_profile": { + "pool":"ingress_lossless_pool", + "size":"0", + "dynamic_th":"-1" + } + }, +{%- endmacro %} + +{%- macro generate_queue_buffers(port_names) %} + "BUFFER_QUEUE": { +{% for port in port_names.split(',') %} + "{{ port }}|3-4": { + "profile" : "ingress_lossless_profile" + }, +{% endfor %} +{% for port in port_names.split(',') %} + "{{ port }}|0-2": { + "profile" : "egress_lossy_profile" + }, +{% endfor %} +{% for port in port_names.split(',') %} + "{{ port }}|5-6": { + "profile" : "egress_lossy_profile" + }{% if not loop.last %},{% endif %} +{% endfor %} + } +{%- endmacro %} diff --git a/device/arista/x86_64-arista_7800r3_48cqm2_lc/Arista-7800R3-48CQM2-C48/pg_profile_lookup.ini b/device/arista/x86_64-arista_7800r3_48cqm2_lc/Arista-7800R3-48CQM2-C48/pg_profile_lookup.ini new file mode 100644 index 000000000000..887b6a493291 --- /dev/null +++ b/device/arista/x86_64-arista_7800r3_48cqm2_lc/Arista-7800R3-48CQM2-C48/pg_profile_lookup.ini @@ -0,0 +1,23 @@ +# PG lossless profiles. +# speed cable size xon xoff threshold xon_offset + 10000 5m 1280 2560 45506 0 1280 + 25000 5m 1280 2560 49152 0 1280 + 40000 5m 1280 2560 49152 0 1280 + 50000 5m 1280 2560 53248 0 1280 + 100000 5m 1280 2560 65536 0 1280 + 200000 5m 1280 2560 90112 0 1280 + 400000 5m 1280 2560 135168 0 1280 + 10000 40m 1280 2560 45506 0 1280 + 25000 40m 1280 2560 49152 0 1280 + 40000 40m 1280 2560 53248 0 1280 + 50000 40m 1280 2560 57344 0 1280 + 100000 40m 1280 2560 69632 0 1280 + 200000 40m 1280 2560 102400 0 1280 + 400000 40m 1280 2560 159744 0 1280 + 10000 300m 1280 2560 49152 0 1280 + 25000 300m 1280 2560 61440 0 1280 + 40000 300m 1280 2560 69632 0 1280 + 50000 300m 1280 2560 77824 0 1280 + 100000 300m 1280 2560 114688 0 1280 + 200000 300m 1280 2560 188416 0 1280 + 400000 300m 1280 2560 331776 0 1280 diff --git a/device/arista/x86_64-arista_7800r3_48cqm2_lc/Arista-7800R3-48CQM2-C48/qos.json.j2 b/device/arista/x86_64-arista_7800r3_48cqm2_lc/Arista-7800R3-48CQM2-C48/qos.json.j2 new file mode 100644 index 000000000000..34002048afdb --- /dev/null +++ b/device/arista/x86_64-arista_7800r3_48cqm2_lc/Arista-7800R3-48CQM2-C48/qos.json.j2 @@ -0,0 +1,21 @@ +{%- macro generate_wred_profiles() %} + "WRED_PROFILE": { + "AZURE_LOSSLESS" : { + "wred_green_enable" : "true", + "wred_yellow_enable" : "true", + "wred_red_enable" : "true", + "ecn" : "ecn_all", + "green_max_threshold" : "2097152", + "green_min_threshold" : "250000", + "yellow_max_threshold" : "2097152", + "yellow_min_threshold" : "1048576", + "red_max_threshold" : "2097152", + "red_min_threshold" : "1048576", + "green_drop_probability" : "5", + "yellow_drop_probability": "5", + "red_drop_probability" : "5" + } + }, +{%- endmacro %} + +{%- include 'qos_config.j2' %} diff --git a/src/sonic-config-engine/tests/test_j2files.py b/src/sonic-config-engine/tests/test_j2files.py index 52d4260dba77..af66af8eb59e 100644 --- a/src/sonic-config-engine/tests/test_j2files.py +++ b/src/sonic-config-engine/tests/test_j2files.py @@ -212,8 +212,8 @@ def test_qos_arista7050_render_template(self): sample_output_file = os.path.join(self.test_dir, 'sample_output', utils.PYvX_DIR, 'qos-arista7050.json') assert utils.cmp(sample_output_file, self.output_file), self.run_diff(sample_output_file, self.output_file) - def test_qos_and_buffer_arista7800r3_48cq2_lc_render_template(self): - arista_dir_path = os.path.join(self.test_dir, '..', '..', '..', 'device', 'arista', 'x86_64-arista_7800r3_48cq2_lc', 'Arista-7800R3-48CQ2-C48') + def do_test_qos_and_buffer_arista7800r3_48cq2_lc_render_template(self, platform, hwsku): + arista_dir_path = os.path.join(self.test_dir, '..', '..', '..', 'device', 'arista', platform, hwsku) qos_file = os.path.join(arista_dir_path, 'qos.json.j2') buffer_file = os.path.join(arista_dir_path, 'buffers.json.j2') port_config_ini_file = os.path.join(arista_dir_path, 'port_config.ini') @@ -236,6 +236,12 @@ def test_qos_and_buffer_arista7800r3_48cq2_lc_render_template(self): sample_output_file = os.path.join(self.test_dir, 'sample_output', utils.PYvX_DIR, sample_output_file) assert utils.cmp(sample_output_file, self.output_file), self.run_diff(sample_output_file, self.output_file) + def test_qos_and_buffer_arista7800r3_48cq2_lc_render_template(self): + self.do_test_qos_and_buffer_arista7800r3_48cq2_lc_render_template('x86_64-arista_7800r3_48cq2_lc', 'Arista-7800R3-48CQ2-C48') + + def test_qos_and_buffer_arista7800r3_48cqm2_lc_render_template(self): + self.do_test_qos_and_buffer_arista7800r3_48cq2_lc_render_template('x86_64-arista_7800r3_48cqm2_lc', 'Arista-7800R3-48CQM2-C48') + def test_qos_dell9332_render_template(self): dell_dir_path = os.path.join(self.test_dir, '..', '..', '..', 'device', 'dell', 'x86_64-dellemc_z9332f_d1508-r0', 'DellEMC-Z9332f-O32') qos_file = os.path.join(dell_dir_path, 'qos.json.j2') From c92bfe0728ff1809603e255e782dc717f3550f4c Mon Sep 17 00:00:00 2001 From: jerseyang <48576574+jerseyang@users.noreply.github.com> Date: Tue, 24 May 2022 09:45:37 +0800 Subject: [PATCH 206/251] Add belgite support (#9511) Why I did it add celestica belgite platform How I did it add belgite platform in celestica Co-authored-by: nicwu-cel Co-authored-by: anjian Co-authored-by: sandycelestica --- .../CELESTICA-BELGITE/belgite.config.bcm | 169 ++++ .../CELESTICA-BELGITE/port_config.ini | 57 ++ .../CELESTICA-BELGITE/sai.profile | 1 + .../x86_64-cel_belgite-r0/custom_led.bin | Bin 0 -> 216 bytes .../x86_64-cel_belgite-r0/default_sku | 1 + .../x86_64-cel_belgite-r0/installer.conf | 4 + .../led-source-code/cmicx/Makefile | 24 + .../led-source-code/cmicx/custom_led.c | 171 ++++ .../led-source-code/cmicx/custom_led.lds | 21 + .../x86_64-cel_belgite-r0/led_proc_init.soc | 3 + .../x86_64-cel_belgite-r0/media_settings.json | 49 ++ .../celestica/x86_64-cel_belgite-r0/pcie.yaml | 121 +++ .../x86_64-cel_belgite-r0/pddf/pd-plugin.json | 61 ++ .../pddf/pddf-device.json | 685 ++++++++++++++++ .../pddf/pddf-device.json.original | 686 ++++++++++++++++ .../x86_64-cel_belgite-r0/pddf_support | 0 .../x86_64-cel_belgite-r0/platform.json | 395 ++++++++++ .../x86_64-cel_belgite-r0/platform_asic | 1 + .../x86_64-cel_belgite-r0/plugins/eeprom.py | 14 + .../pmon_daemon_control.json | 4 + .../system_health_monitoring_config.json | 16 + platform/broadcom/one-image.mk | 1 + platform/broadcom/platform-modules-cel.mk | 5 + .../belgite/modules/Makefile | 1 + .../belgite/modules/mc24lc64t.c | 174 ++++ .../belgite/modules/pddf_custom_psu.c | 125 +++ .../belgite/modules/pddf_custom_wdt.c | 741 ++++++++++++++++++ .../belgite/pddf/sonic_platform/__init__.py | 4 + .../belgite/pddf/sonic_platform/chassis.py | 162 ++++ .../belgite/pddf/sonic_platform/component.py | 142 ++++ .../belgite/pddf/sonic_platform/eeprom.py | 75 ++ .../belgite/pddf/sonic_platform/fan.py | 146 ++++ .../belgite/pddf/sonic_platform/fan_drawer.py | 33 + .../belgite/pddf/sonic_platform/platform.py | 21 + .../belgite/pddf/sonic_platform/psu.py | 55 ++ .../belgite/pddf/sonic_platform/sfp.py | 15 + .../belgite/pddf/sonic_platform/thermal.py | 111 +++ .../belgite/pddf/sonic_platform/watchdog.py | 229 ++++++ .../belgite/pddf/sonic_platform_setup.py | 27 + .../scripts/pddf_post_device_create.sh | 10 + .../scripts/pddf_pre_driver_install.sh | 5 + .../belgite-pddf-platform-monitor.service | 16 + .../systemd/pddf-platform-init.service | 15 + .../belgite/utils/belgite_pddf_monitor.py | 272 +++++++ .../sonic-platform-modules-cel/debian/control | 5 + .../debian/platform-modules-belgite.install | 7 + .../debian/platform-modules-belgite.postinst | 6 + .../sonic-platform-modules-cel/debian/rules | 17 +- .../platform_api/platform_api_mgnt.sh | 5 + 49 files changed, 4907 insertions(+), 1 deletion(-) create mode 100644 device/celestica/x86_64-cel_belgite-r0/CELESTICA-BELGITE/belgite.config.bcm create mode 100644 device/celestica/x86_64-cel_belgite-r0/CELESTICA-BELGITE/port_config.ini create mode 100644 device/celestica/x86_64-cel_belgite-r0/CELESTICA-BELGITE/sai.profile create mode 100644 device/celestica/x86_64-cel_belgite-r0/custom_led.bin create mode 100644 device/celestica/x86_64-cel_belgite-r0/default_sku create mode 100644 device/celestica/x86_64-cel_belgite-r0/installer.conf create mode 100755 device/celestica/x86_64-cel_belgite-r0/led-source-code/cmicx/Makefile create mode 100755 device/celestica/x86_64-cel_belgite-r0/led-source-code/cmicx/custom_led.c create mode 100755 device/celestica/x86_64-cel_belgite-r0/led-source-code/cmicx/custom_led.lds create mode 100644 device/celestica/x86_64-cel_belgite-r0/led_proc_init.soc create mode 100644 device/celestica/x86_64-cel_belgite-r0/media_settings.json create mode 100644 device/celestica/x86_64-cel_belgite-r0/pcie.yaml create mode 100644 device/celestica/x86_64-cel_belgite-r0/pddf/pd-plugin.json create mode 100644 device/celestica/x86_64-cel_belgite-r0/pddf/pddf-device.json create mode 100644 device/celestica/x86_64-cel_belgite-r0/pddf/pddf-device.json.original create mode 100644 device/celestica/x86_64-cel_belgite-r0/pddf_support create mode 100644 device/celestica/x86_64-cel_belgite-r0/platform.json create mode 100644 device/celestica/x86_64-cel_belgite-r0/platform_asic create mode 100644 device/celestica/x86_64-cel_belgite-r0/plugins/eeprom.py create mode 100644 device/celestica/x86_64-cel_belgite-r0/pmon_daemon_control.json create mode 100644 device/celestica/x86_64-cel_belgite-r0/system_health_monitoring_config.json create mode 100644 platform/broadcom/sonic-platform-modules-cel/belgite/modules/Makefile create mode 100644 platform/broadcom/sonic-platform-modules-cel/belgite/modules/mc24lc64t.c create mode 100644 platform/broadcom/sonic-platform-modules-cel/belgite/modules/pddf_custom_psu.c create mode 100644 platform/broadcom/sonic-platform-modules-cel/belgite/modules/pddf_custom_wdt.c create mode 100644 platform/broadcom/sonic-platform-modules-cel/belgite/pddf/sonic_platform/__init__.py create mode 100644 platform/broadcom/sonic-platform-modules-cel/belgite/pddf/sonic_platform/chassis.py create mode 100644 platform/broadcom/sonic-platform-modules-cel/belgite/pddf/sonic_platform/component.py create mode 100644 platform/broadcom/sonic-platform-modules-cel/belgite/pddf/sonic_platform/eeprom.py create mode 100644 platform/broadcom/sonic-platform-modules-cel/belgite/pddf/sonic_platform/fan.py create mode 100644 platform/broadcom/sonic-platform-modules-cel/belgite/pddf/sonic_platform/fan_drawer.py create mode 100644 platform/broadcom/sonic-platform-modules-cel/belgite/pddf/sonic_platform/platform.py create mode 100644 platform/broadcom/sonic-platform-modules-cel/belgite/pddf/sonic_platform/psu.py create mode 100644 platform/broadcom/sonic-platform-modules-cel/belgite/pddf/sonic_platform/sfp.py create mode 100644 platform/broadcom/sonic-platform-modules-cel/belgite/pddf/sonic_platform/thermal.py create mode 100644 platform/broadcom/sonic-platform-modules-cel/belgite/pddf/sonic_platform/watchdog.py create mode 100644 platform/broadcom/sonic-platform-modules-cel/belgite/pddf/sonic_platform_setup.py create mode 100755 platform/broadcom/sonic-platform-modules-cel/belgite/scripts/pddf_post_device_create.sh create mode 100755 platform/broadcom/sonic-platform-modules-cel/belgite/scripts/pddf_pre_driver_install.sh create mode 100644 platform/broadcom/sonic-platform-modules-cel/belgite/service/belgite-pddf-platform-monitor.service create mode 100644 platform/broadcom/sonic-platform-modules-cel/belgite/systemd/pddf-platform-init.service create mode 100755 platform/broadcom/sonic-platform-modules-cel/belgite/utils/belgite_pddf_monitor.py create mode 100644 platform/broadcom/sonic-platform-modules-cel/debian/platform-modules-belgite.install create mode 100644 platform/broadcom/sonic-platform-modules-cel/debian/platform-modules-belgite.postinst diff --git a/device/celestica/x86_64-cel_belgite-r0/CELESTICA-BELGITE/belgite.config.bcm b/device/celestica/x86_64-cel_belgite-r0/CELESTICA-BELGITE/belgite.config.bcm new file mode 100644 index 000000000000..a249804582c9 --- /dev/null +++ b/device/celestica/x86_64-cel_belgite-r0/CELESTICA-BELGITE/belgite.config.bcm @@ -0,0 +1,169 @@ +## 48xGE+4x10G+2xHGd[21] +phy_chain_rx_polarity_flip_physical{29.0}=1 +bcm_num_cos=8 +stable_size=0x5500000 +ifp_inports_support_enable=1 +ipv6_lpm_128b_enable=0x1 +l2xmsg_mode=1 +l2_mem_entries=32768 +l3_mem_entries=16384 +lpm_scaling_enable=0 +l3_alpm_enable=0 +riot_enable=0 +port_flex_enable=1 + +#Core clock Frequency +core_clock_frequency=266 + + +#GPORT0 +portmap_25=2:1 +phy_port_primary_and_offset_25=0x0100 +portmap_26=1:1 +phy_port_primary_and_offset_26=0x0101 +portmap_27=4:1 +phy_port_primary_and_offset_27=0x0102 +portmap_28=3:1 +phy_port_primary_and_offset_28=0x0103 +portmap_29=6:1 +phy_port_primary_and_offset_29=0x0500 +portmap_30=5:1 +phy_port_primary_and_offset_30=0x0501 +portmap_31=8:1 +phy_port_primary_and_offset_31=0x0502 +portmap_32=7:1 +phy_port_primary_and_offset_32=0x0503 + +#GPORT1 +portmap_33=10:1 +phy_port_primary_and_offset_33=0x0900 +portmap_34=9:1 +phy_port_primary_and_offset_34=0x0901 +portmap_35=12:1 +phy_port_primary_and_offset_35=0x0902 +portmap_36=11:1 +phy_port_primary_and_offset_36=0x0903 +portmap_37=14:1 +phy_port_primary_and_offset_37=0x0d00 +portmap_38=13:1 +phy_port_primary_and_offset_38=0x0d01 +portmap_39=16:1 +phy_port_primary_and_offset_39=0x0d02 +portmap_40=15:1 +phy_port_primary_and_offset_40=0x0d03 + +#GPORT2 +portmap_41=18:1 +phy_port_primary_and_offset_41=0x1101 +portmap_42=17:1 +phy_port_primary_and_offset_42=0x1100 +portmap_43=20:1 +phy_port_primary_and_offset_43=0x1103 +portmap_44=19:1 +phy_port_primary_and_offset_44=0x1102 +portmap_45=22:1 +phy_port_primary_and_offset_45=0x1501 +portmap_46=21:1 +phy_port_primary_and_offset_46=0x1500 +portmap_47=24:1 +phy_port_primary_and_offset_47=0x1503 +portmap_48=23:1 +phy_port_primary_and_offset_48=0x1502 + +#PM4x10Q0 +port_gmii_mode{25}=1 +portmap_1=26:1 +portmap_2=25:1 +portmap_3=28:1 +portmap_4=27:1 +portmap_5=30:1 +portmap_6=29:1 +portmap_7=32:1 +portmap_8=31:1 +phy_port_primary_and_offset_2=0x1900 +phy_port_primary_and_offset_1=0x1901 +phy_port_primary_and_offset_4=0x1902 +phy_port_primary_and_offset_3=0x1903 +phy_port_primary_and_offset_6=0x1904 +phy_port_primary_and_offset_5=0x1905 +phy_port_primary_and_offset_8=0x1906 +phy_port_primary_and_offset_7=0x1907 +port_phy_addr_2=0x01 +port_phy_addr_1=0x02 +port_phy_addr_4=0x03 +port_phy_addr_3=0x04 +port_phy_addr_6=0x05 +port_phy_addr_5=0x06 +port_phy_addr_8=0x07 +port_phy_addr_7=0x08 + +portmap_9=34:1 +portmap_10=33:1 +portmap_11=36:1 +portmap_12=35:1 +portmap_13=38:1 +portmap_14=37:1 +portmap_15=40:1 +portmap_16=39:1 + +phy_port_primary_and_offset_10=0x2100 +phy_port_primary_and_offset_9=0x2101 +phy_port_primary_and_offset_12=0x2102 +phy_port_primary_and_offset_11=0x2103 +phy_port_primary_and_offset_14=0x2104 +phy_port_primary_and_offset_13=0x2105 +phy_port_primary_and_offset_16=0x2106 +phy_port_primary_and_offset_15=0x2107 +port_phy_addr_10=0x2a +port_phy_addr_9=0x2b +port_phy_addr_12=0x2c +port_phy_addr_11=0x2d +port_phy_addr_14=0x2e +port_phy_addr_13=0x2f +port_phy_addr_16=0x30 +port_phy_addr_15=0x31 + +#PM4x10Q1 +port_gmii_mode{41}=1 +portmap_17=42:1 +portmap_18=41:1 +portmap_19=44:1 +portmap_20=43:1 +portmap_21=50:1 +portmap_22=49:1 +portmap_23=52:1 +portmap_24=51:1 + +phy_port_primary_and_offset_18=0x2900 +phy_port_primary_and_offset_17=0x2901 +phy_port_primary_and_offset_20=0x2902 +phy_port_primary_and_offset_19=0x2903 +phy_port_primary_and_offset_22=0x2904 +phy_port_primary_and_offset_21=0x2905 +phy_port_primary_and_offset_24=0x2906 +phy_port_primary_and_offset_23=0x2907 +port_phy_addr_18=0x53 +port_phy_addr_17=0x54 +port_phy_addr_20=0x55 +port_phy_addr_19=0x56 +port_phy_addr_22=0x57 +port_phy_addr_21=0x58 +port_phy_addr_24=0x59 +port_phy_addr_23=0x5a + +#PM4x25 +portmap_49=60:10 +portmap_50=58:10 +portmap_51=59:10 +portmap_52=57:10 + +##PM4x10HG +portmap_53=62:10 +portmap_54=64:10 +portmap_55=61:10 +portmap_56=63:10 + + +pbmp_xport_xe=0x01FFFFFFFFFFFFFE + +# \ No newline at end of file diff --git a/device/celestica/x86_64-cel_belgite-r0/CELESTICA-BELGITE/port_config.ini b/device/celestica/x86_64-cel_belgite-r0/CELESTICA-BELGITE/port_config.ini new file mode 100644 index 000000000000..90ecfa4859ad --- /dev/null +++ b/device/celestica/x86_64-cel_belgite-r0/CELESTICA-BELGITE/port_config.ini @@ -0,0 +1,57 @@ +# name lanes alias index speed autoneg +Ethernet0 26 Ethernet1/0/1 1 1000 1 +Ethernet1 25 Ethernet1/0/2 2 1000 1 +Ethernet2 28 Ethernet1/0/3 3 1000 1 +Ethernet3 27 Ethernet1/0/4 4 1000 1 +Ethernet4 30 Ethernet1/0/5 5 1000 1 +Ethernet5 29 Ethernet1/0/6 6 1000 1 +Ethernet6 32 Ethernet1/0/7 7 1000 1 +Ethernet7 31 Ethernet1/0/8 8 1000 1 +Ethernet8 34 Ethernet1/0/9 9 1000 1 +Ethernet9 33 Ethernet1/0/10 10 1000 1 +Ethernet10 36 Ethernet1/0/11 11 1000 1 +Ethernet11 35 Ethernet1/0/12 12 1000 1 +Ethernet12 38 Ethernet1/0/13 13 1000 1 +Ethernet13 37 Ethernet1/0/14 14 1000 1 +Ethernet14 40 Ethernet1/0/15 15 1000 1 +Ethernet15 39 Ethernet1/0/16 16 1000 1 +Ethernet16 42 Ethernet1/0/17 17 1000 1 +Ethernet17 41 Ethernet1/0/18 18 1000 1 +Ethernet18 44 Ethernet1/0/19 19 1000 1 +Ethernet19 43 Ethernet1/0/20 20 1000 1 +Ethernet20 50 Ethernet1/0/21 21 1000 1 +Ethernet21 49 Ethernet1/0/22 22 1000 1 +Ethernet22 52 Ethernet1/0/23 23 1000 1 +Ethernet23 51 Ethernet1/0/24 24 1000 1 +Ethernet24 2 Ethernet1/0/25 25 1000 1 +Ethernet25 1 Ethernet1/0/26 26 1000 1 +Ethernet26 4 Ethernet1/0/27 27 1000 1 +Ethernet27 3 Ethernet1/0/28 28 1000 1 +Ethernet28 6 Ethernet1/0/29 29 1000 1 +Ethernet29 5 Ethernet1/0/30 30 1000 1 +Ethernet30 8 Ethernet1/0/31 31 1000 1 +Ethernet31 7 Ethernet1/0/32 32 1000 1 +Ethernet32 10 Ethernet1/0/33 33 1000 1 +Ethernet33 9 Ethernet1/0/34 34 1000 1 +Ethernet34 12 Ethernet1/0/35 35 1000 1 +Ethernet35 11 Ethernet1/0/36 36 1000 1 +Ethernet36 14 Ethernet1/0/37 37 1000 1 +Ethernet37 13 Ethernet1/0/38 38 1000 1 +Ethernet38 16 Ethernet1/0/39 39 1000 1 +Ethernet39 15 Ethernet1/0/40 40 1000 1 +Ethernet40 18 Ethernet1/0/41 41 1000 1 +Ethernet41 17 Ethernet1/0/42 42 1000 1 +Ethernet42 20 Ethernet1/0/43 43 1000 1 +Ethernet43 19 Ethernet1/0/44 44 1000 1 +Ethernet44 22 Ethernet1/0/45 45 1000 1 +Ethernet45 21 Ethernet1/0/46 46 1000 1 +Ethernet46 24 Ethernet1/0/47 47 1000 1 +Ethernet47 23 Ethernet1/0/48 48 1000 1 +Ethernet48 60 Ethernet1/0/49 49 10000 0 +Ethernet49 58 Ethernet1/0/50 50 10000 0 +Ethernet50 59 Ethernet1/0/51 51 10000 0 +Ethernet51 57 Ethernet1/0/52 52 10000 0 +Ethernet52 62 Ethernet1/0/53 53 10000 0 +Ethernet53 64 Ethernet1/0/54 54 10000 0 +Ethernet54 61 Ethernet1/0/55 55 10000 0 +Ethernet55 63 Ethernet1/0/56 56 10000 0 diff --git a/device/celestica/x86_64-cel_belgite-r0/CELESTICA-BELGITE/sai.profile b/device/celestica/x86_64-cel_belgite-r0/CELESTICA-BELGITE/sai.profile new file mode 100644 index 000000000000..2e5979fd112c --- /dev/null +++ b/device/celestica/x86_64-cel_belgite-r0/CELESTICA-BELGITE/sai.profile @@ -0,0 +1 @@ +SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/belgite.config.bcm diff --git a/device/celestica/x86_64-cel_belgite-r0/custom_led.bin b/device/celestica/x86_64-cel_belgite-r0/custom_led.bin new file mode 100644 index 0000000000000000000000000000000000000000..6973a4c9a73a6d0ee9eaac6150be92d1933ddf5b GIT binary patch literal 216 zcmV~$J5B;o06@_@A5t83?KOo>M$ga#MTOJbTnZ~R$z#gB_)Zh!bk_z z+kh;CjwN``X5JU$-{?bxQJt)o8=F({VHx&JguWE(8^wEmN;=wKk)hyPUv-6H51c_) zE%&_Gqgv5xKhAoknDP}q3<8`GCBiXbLL70(0YUcJqfLhv7B+X>bIU&z Cd?#W6 literal 0 HcmV?d00001 diff --git a/device/celestica/x86_64-cel_belgite-r0/default_sku b/device/celestica/x86_64-cel_belgite-r0/default_sku new file mode 100644 index 000000000000..3eeb370889f9 --- /dev/null +++ b/device/celestica/x86_64-cel_belgite-r0/default_sku @@ -0,0 +1 @@ +CELESTICA-BELGITE t1 diff --git a/device/celestica/x86_64-cel_belgite-r0/installer.conf b/device/celestica/x86_64-cel_belgite-r0/installer.conf new file mode 100644 index 000000000000..61846e4455e0 --- /dev/null +++ b/device/celestica/x86_64-cel_belgite-r0/installer.conf @@ -0,0 +1,4 @@ +CONSOLE_PORT=0x3f8 +CONSOLE_DEV=0 +CONSOLE_SPEED=9600 +ONIE_PLATFORM_EXTRA_CMDLINE_LINUX="intel_iommu=off module_blacklist=gpio_ich crashkernel=0M-2G:256M,2G-4G:320M,4G-8G:384M,8G-:448M acpi_no_watchdog" diff --git a/device/celestica/x86_64-cel_belgite-r0/led-source-code/cmicx/Makefile b/device/celestica/x86_64-cel_belgite-r0/led-source-code/cmicx/Makefile new file mode 100755 index 000000000000..ddc700bfb87e --- /dev/null +++ b/device/celestica/x86_64-cel_belgite-r0/led-source-code/cmicx/Makefile @@ -0,0 +1,24 @@ +# +# Copyright: (c) 2012 Broadcom Corp. +# All Rights Reserved. +# + +SDK = ../../../../sdk-all-6.5.16/ +export SDK + +ifeq (${SDK},) +# { +$(error environment variable SDK not set) +# } +endif + +INCDIR = -I${SDK}/include + +all: + arm-linux-gcc -O1 -g ${INCDIR} -mthumb -mcpu=cortex-m0 -c -o custom_led.o custom_led.c + arm-linux-ld -T custom_led.lds -Bstatic -nostdlib --entry 0 -EL -Map custom_led.map -o custom_led.elf custom_led.o + arm-linux-objcopy -O binary custom_led.elf custom_led.bin + +clean: + rm -rf *.elf *.o *.map *.bin + diff --git a/device/celestica/x86_64-cel_belgite-r0/led-source-code/cmicx/custom_led.c b/device/celestica/x86_64-cel_belgite-r0/led-source-code/cmicx/custom_led.c new file mode 100755 index 000000000000..92fe25f5b898 --- /dev/null +++ b/device/celestica/x86_64-cel_belgite-r0/led-source-code/cmicx/custom_led.c @@ -0,0 +1,171 @@ +/* + * $Id: custom_led.c$ + * $Copyright: (c) 2019 Broadcom + * Broadcom Proprietary and Confidential. All rights reserved.$ + */ + +/****************************************************************************** +CMICX LED Interface has two RAM Banks, as shown below, Bank0(ACCUMULATION RAM) +for accumulation of status from ports and Bank1(PATTERN RAM) for writing +LED pattern. Both Bank0 and Bank1 are of 1024x16-bit, each row representing +one port. + + ACCUMULATION RAM (Bank 0) Pattern RAM (Bank1) + 15 0 15 0 + ------------------------------ ----------------------------- +Row 0 | Port1 status | | Port1 LED Pattern | + ------------------------------ ----------------------------- +Row 1 | Port2 status | | Port2 LED Pattern | + ------------------------------ ----------------------------- + | | | | + ------------------------------ ----------------------------- + | | | | + ------------------------------ ----------------------------- + | | | | + ------------------------------ ----------------------------- + | | | | + ------------------------------ ----------------------------- + | | | | + ------------------------------ ----------------------------- +Row 127 | Port128 status | | Port128 LED Pattern | + ------------------------------ ----------------------------- +Row 128 | | | | + ------------------------------ ----------------------------- + | | | | + ------------------------------ ----------------------------- + | | | | + ------------------------------ ----------------------------- +Row x | Port(x+1) status | | Port(x+1) LED Pattern | + ------------------------------ ----------------------------- + | | | | + ------------------------------ ----------------------------- + | | | | + ------------------------------ ----------------------------- +Row 1022| Port1023 status | | Port1023 LED Pattern | + ------------------------------ ----------------------------- +Row 1023| Port1024 status | | Port1024 LED Pattern | + ------------------------------ ----------------------------- + +Format of Accumulation RAM: + + +Bits 15:9 8 7 6 5 4:3 2 1 0 + ------------------------------------------------------------------------ + | Reserved | Link | Link Up | Flow | Duplex | Speed | Col | Tx | Rx | + | | Enable| Status | Control| | | | | | + ------------------------------------------------------------------------ + +The custom handler in this file should read port status, for each port used, +from accumulation ram, and form required LED bit pattern in the Bank1 RAM +(pattern RAM) location corresponding to the port of interest. Note that +physical port numbers may differ from row number of LED RAM Banks. For +Trident3, Physical port numbers spread from 1 to 128 in 128x25G configuration + and corresponding LED rows spread from Row 0 to Row 127. + +There are five LED interfaces in CMICX based devices. Although single +interface can be used to output LED pattern for all ports, it is possible +that more than one interface can be used in the end system, e.g., LEDs for +some ports are connected to one LED interface-0 (i.e LED_CLK and LED_DATA), +while the rest of the ports are connected to LED interface-1. Accordingly, +custom handler MUST fill in start port, end port and width of pattern in the +soc_led_custom_handler_ctrl_t structure passsed to custom handler. The +example custom handler provided in this file has reference code for forming +two different LED patterns. Please refer to these patterns before writing your +own custom handler code. + +The soc_led_custom_handler_ctrl_t structure definition is available in +$SDK/include/shared/cmicfw/cmicx_led_public.h + +soc_led_custom_handler_ctrl_t structure also carries a point to array +port_speed[] of size equal to maximum ports in the system, e.g 128 in Trident3. +This array would have port speed for each port, as per bit mapping defined in +"soc_led_speed_t" in $SDK/include/shared/cmicfw/cmicx_led_public.h file. + +Here is an exception, please keep in mind: +1. For TH3, port status/speed of xe1 (physical port 258) is located in the + accumulation entry/speed array of physical port 259. + +******************************************************************************/ +#include + +#define ACTIVITY_TICKS 2 +#define READ_LED_ACCU_DATA(base, port) (*((uint16 *)(base + ((port - 1) * sizeof(uint32))))) +#define WRITE_LED_SEND_DATA(base, port, val) (*((uint16 *)(base + ((port - 1) * sizeof(uint32)))) = val) + +#define PORT_NUM_TOTAL 56 + +#define LED_GREEN_BICOLOR 0x2 //bit : 10 +#define LED_AMBER_BICOLOR 0x1 //bit : 01 +#define LED_OFF_BICOLOR 0x3 //bit : 11 + +unsigned short portmap[] = { + 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 49, 50, 51, 52, + 1, 2, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 24, 23, 22, 21, + 20, 19, 18, 17, 16, 15, 14, 13, + 58, 60, 57, 59, 64, 62, 63, 61 +}; + + +/* + * Function: + * custom_led_handler + * Purpose: + * Timer event handler to accumulate, process and transmit led status + * Parameters: + * param - parameter added while registering the timer event. + * Returns: + * 0 on success + * Error code on failure + */ +void custom_led_handler(soc_led_custom_handler_ctrl_t *ctrl, + uint32 activity_count) +{ + unsigned short accu_val = 0, send_val = 0; + unsigned short port, physical_port; + + /* Physical port numbers to be used */ + for(port = 1; port <= PORT_NUM_TOTAL; port++) { + + physical_port = portmap[port-1]; + + /* Read value from led_ram bank0 */ + accu_val = READ_LED_ACCU_DATA(ctrl->accu_ram_base, physical_port); + + send_val = 0xff; + + if (((accu_val & LED_OUTPUT_RX) || (accu_val & LED_OUTPUT_TX)) && (activity_count & ACTIVITY_TICKS)) + { + send_val = LED_OFF_BICOLOR; + } + else if ( accu_val & LED_OUTPUT_LINK_UP) + { + send_val = LED_GREEN_BICOLOR; + } + else + { + send_val = LED_OFF_BICOLOR; + } + + /* Write value to led_ram bank1 */ + WRITE_LED_SEND_DATA(ctrl->pat_ram_base, port, send_val); + } /* for */ + + /* Send the pattern over LED interface 1 for ports 1 - 56*/ + ctrl->intf_ctrl[1].valid = 1; + ctrl->intf_ctrl[1].start_row = 0; + ctrl->intf_ctrl[1].end_row = 55; + ctrl->intf_ctrl[1].pat_width = 2; + + /* Invalidate rest of the interfaces */ + ctrl->intf_ctrl[0].valid = 0; + ctrl->intf_ctrl[2].valid = 0; + ctrl->intf_ctrl[3].valid = 0; + ctrl->intf_ctrl[4].valid = 0; + + return; + +} + diff --git a/device/celestica/x86_64-cel_belgite-r0/led-source-code/cmicx/custom_led.lds b/device/celestica/x86_64-cel_belgite-r0/led-source-code/cmicx/custom_led.lds new file mode 100755 index 000000000000..8f585404e6b5 --- /dev/null +++ b/device/celestica/x86_64-cel_belgite-r0/led-source-code/cmicx/custom_led.lds @@ -0,0 +1,21 @@ +OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") +OUTPUT_ARCH(arm) +ENTRY(custom_led_handler) +SECTIONS +{ + . = 0x3800; + + . = ALIGN(4); + .text : + { + *(.text) + *(.data) + *(.bss) + } + + /DISCARD/ : { *(.dynstr*) } + /DISCARD/ : { *(.dynamic*) } + /DISCARD/ : { *(.plt*) } + /DISCARD/ : { *(.interp*) } + /DISCARD/ : { *(.gnu*) } +} diff --git a/device/celestica/x86_64-cel_belgite-r0/led_proc_init.soc b/device/celestica/x86_64-cel_belgite-r0/led_proc_init.soc new file mode 100644 index 000000000000..f7192c5b081c --- /dev/null +++ b/device/celestica/x86_64-cel_belgite-r0/led_proc_init.soc @@ -0,0 +1,3 @@ +m0 load 0 0x3800 /usr/share/sonic/platform/custom_led.bin +led start + diff --git a/device/celestica/x86_64-cel_belgite-r0/media_settings.json b/device/celestica/x86_64-cel_belgite-r0/media_settings.json new file mode 100644 index 000000000000..50f7c545f09e --- /dev/null +++ b/device/celestica/x86_64-cel_belgite-r0/media_settings.json @@ -0,0 +1,49 @@ +{ + "GLOBAL_MEDIA_SETTINGS": { + "49-52": { + "Default": { + "preemphasis": { + "lane0": "0x14410a" + } + }, + "TERALUX-ABS022,SFP+-CR-1.0,TERALUX-ABS023,SFP+-CR-3.0,TERALUX-ABS074,SFP+-CR-5.0": { + "preemphasis": { + "lane0": "0x14410a" + } + }, + "TERALUX-ABS661,SFP+-CR-7.0": { + "preemphasis": { + "lane0": "0x14410a" + } + }, + "FINISAR CORP.-FTLX8571D3BCV,SFP+-SR": { + "preemphasis": { + "lane0": "0x0c4104" + } + } + }, + "53-56": { + "Default": { + "preemphasis": { + "lane0": "0x0a3200" + } + }, + "TERALUX-ABS022,SFP+-CR-1.0,TERALUX-ABS023,SFP+-CR-3.0,TERALUX-ABS074,SFP+-CR-5.0": { + "preemphasis": { + "lane0": "0x0a280a" + } + }, + "TERALUX-ABS661,SFP+-CR-7.0": { + "preemphasis": { + "lane0": "0x0f2805" + } + }, + "FINISAR CORP.-FTLX8571D3BCV,SFP+-SR": { + "preemphasis": { + "lane0": "0x0a3200" + } + } + } + } +} + diff --git a/device/celestica/x86_64-cel_belgite-r0/pcie.yaml b/device/celestica/x86_64-cel_belgite-r0/pcie.yaml new file mode 100644 index 000000000000..46e202526716 --- /dev/null +++ b/device/celestica/x86_64-cel_belgite-r0/pcie.yaml @@ -0,0 +1,121 @@ +- bus: '00' + dev: '00' + fn: '0' + id: 1980 + name: 'Host bridge: Intel Corporation Atom Processor C3000 Series System Agent' +- bus: '00' + dev: '04' + fn: '0' + id: 19a1 + name: 'Host bridge: Intel Corporation Atom Processor C3000 Series Error Registers' +- bus: '00' + dev: '05' + fn: '0' + id: 19a2 + name: 'Generic system peripheral [0807]: Intel Corporation Atom Processor C3000 Series Root Complex Event Collector' +- bus: '00' + dev: '06' + fn: '0' + id: 19e2 + name: 'PCI bridge: Intel Corporation Atom Processor C3000 Series Integrated QAT Root Port' +- bus: '00' + dev: '09' + fn: '0' + id: b277 + name: 'PCI bridge: Intel Corporation Atom Processor C3000 Series PCI Express Root Port' +- bus: '00' + dev: '0b' + fn: '0' + id: 1533 + name: 'PCI bridge: Intel Corporation Atom Processor C3000 Series PCI Express Root Port' +- bus: '00' + dev: '0e' + fn: '0' + id: 19a8 + name: 'PCI bridge: Intel Corporation Atom Processor C3000 Series PCI Express Root Port' +- bus: '00' + dev: '12' + fn: '0' + id: 19ac + name: 'System peripheral: Intel Corporation DNV SMBus Contoller - Host' +- bus: '00' + dev: '14' + fn: '0' + id: 19c2 + name: 'SATA controller: Intel Corporation DNV SATA Controller 1' +- bus: '00' + dev: '15' + fn: '0' + id: 19d0 + name: 'USB controller: Intel Corporation Atom Processor C3000 Series USB 3.0 xHCI Controller' +- bus: '00' + dev: '16' + fn: '0' + id: 15ce + name: 'PCI bridge: Intel Corporation Atom Processor C3000 Series Integrated LAN Root Port' +- bus: '00' + dev: '18' + fn: '0' + id: 19d3 + name: 'Communication controller: Intel Corporation Atom Processor C3000 Series ME HECI 1' +- bus: '00' + dev: '1a' + fn: '0' + id: 19d8 + name: 'Serial controller: Intel Corporation Atom Processor C3000 Series HSUART Controller' +- bus: '00' + dev: '1a' + fn: '1' + id: 19d8 + name: 'Serial controller: Intel Corporation Atom Processor C3000 Series HSUART Controller' +- bus: '00' + dev: '1a' + fn: '2' + id: 19d8 + name: 'Serial controller: Intel Corporation Atom Processor C3000 Series HSUART Controller' +- bus: '00' + dev: '1f' + fn: '0' + id: 19dc + name: 'ISA bridge: Intel Corporation DNV LPC or eSPI' +- bus: '00' + dev: '1f' + fn: '2' + id: 19de + name: 'Memory controller: Intel Corporation Atom Processor C3000 Series Power Management Controller' +- bus: '00' + dev: '1f' + fn: '4' + id: 19df + name: 'SMBus: Intel Corporation DNV SMBus controller' +- bus: '00' + dev: '1f' + fn: '5' + id: 19e0 + name: 'Serial bus controller [0c80]: Intel Corporation DNV SPI Controller' +- bus: '01' + dev: '00' + fn: '0' + id: 19e2 + name: 'Co-processor: Intel Corporation Atom Processor C3000 Series QuickAssist Technology' +- bus: '02' + dev: '00' + fn: '0' + id: b277 + name: 'Ethernet controller: Broadcom Limited Device b277' +- bus: '03' + dev: '00' + fn: '0' + id: 1533 + name: 'Ethernet controller: Intel Corporation I210 Gigabit Network Connection' +- bus: '05' + dev: '00' + fn: '0' + id: 15ce + name: 'Ethernet controller: Intel Corporation Ethernet Connection X553 10 GbE SFP+' +- bus: '05' + dev: '00' + fn: '1' + id: 15ce + name: 'Ethernet controller: Intel Corporation Ethernet Connection X553 10 GbE SFP+' + diff --git a/device/celestica/x86_64-cel_belgite-r0/pddf/pd-plugin.json b/device/celestica/x86_64-cel_belgite-r0/pddf/pd-plugin.json new file mode 100644 index 000000000000..05d724f3622b --- /dev/null +++ b/device/celestica/x86_64-cel_belgite-r0/pddf/pd-plugin.json @@ -0,0 +1,61 @@ +{ + "XCVR": + { + "xcvr_present": + { + "i2c": + { + "valmap-SFP28": {"1":false, "0":true } + } + } + }, + "PSU": + { + "psu_present": + { + "i2c": + { + "valmap": { "1":true, "0":false } + } + }, + "psu_power_good": + { + "i2c": + { + "valmap": { "0": true, "1":false } + } + }, + "psu_fan_dir": + { + "i2c": + { + "valmap": { "F2B":"INTAKE", "B2F":"EXHAUST" } + } + }, + "PSU_FAN_MAX_SPEED":"18000" + }, + "FAN": + { + "direction": + { + "i2c": + { + "valmap": {"1":"EXHAUST", "0":"INTAKE"} + } + }, + "present": + { + "i2c": + { + "valmap": {"1":false, "0":true} + } + }, + "fan_master_led_color": + { + "colmap": {"green":"green", "red":"amber"} + }, + "duty_cycle_to_pwm": "lambda dc: dc*255/100", + + "pwm_to_duty_cycle": "lambda pwm: pwm/255*100" + } +} diff --git a/device/celestica/x86_64-cel_belgite-r0/pddf/pddf-device.json b/device/celestica/x86_64-cel_belgite-r0/pddf/pddf-device.json new file mode 100644 index 000000000000..7ccbd41fffea --- /dev/null +++ b/device/celestica/x86_64-cel_belgite-r0/pddf/pddf-device.json @@ -0,0 +1,685 @@ +{ + "PLATFORM": + { + "num_psus":2, + "num_fantrays":3, + "num_fans_pertray":1, + "num_ports":56, + "num_temps":4, + "pddf_dev_types": + { + "description":"Belgite - Below is the list of supported PDDF device types (chip names) for various components. If any component uses some other driver, we will create the client using 'echo > /new_device' method", + "CPLD": + [ + "i2c_cpld" + ], + "PSU": + [ + "psu_eeprom", + "psu_pmbus" + ], + "FAN": + [ + "fan_ctrl", + "fan_eeprom", + "fan_cpld" + ], + "PORT_MODULE": + [ + "pddf_xcvr" + ] + }, + "std_perm_kos": + [ + "i2c-ismt", + "i2c-i801" + ], + "std_kos": + [ + "i2c_dev", + "i2c_mux_pca954x force_deselect_on_exit=1", + "gpio_pca953x", + "mc24lc64t", + "optoe" + ], + "pddf_kos": + [ + "pddf_client_module", + "pddf_mux_module", + "pddf_psu_driver_module", + "pddf_psu_module", + "pddf_gpio_module", + "pddf_xcvr_module", + "pddf_xcvr_driver_module", + "pddf_led_module", + "pddf_fan_driver_module", + "pddf_fan_module", + "pddf_led_module" + ], + "custom_kos": + [ + "pddf_custom_psu", + "pddf_custom_wdt" + ] + }, + "SYSTEM": + { + "dev_info": {"device_type":"CPU", "device_name":"ROOT_COMPLEX", "device_parent":null}, + "i2c": + { + "CONTROLLERS": + [ + { "dev_name":"i2c-0", "dev":"SMBUS0" } + ] + } + }, + "SMBUS0": + { + "dev_info": {"device_type": "SMBUS", "device_name": "SMBUS0", "device_parent": "SYSTEM"}, + "i2c": + { + "topo_info": {"dev_addr": "0x0"}, + "DEVICES": + [ + {"dev": "EEPROM1"}, + {"dev": "MUX1"} + ] + } + }, + "EEPROM1": + { + "dev_info": {"device_type": "EEPROM", "device_name": "EEPROM1", "device_parent": "SMBUS0"}, + "i2c": + { + "topo_info": {"parent_bus": "0x0", "dev_addr": "0x52", "dev_type": "24lc64t"}, + "dev_attr": {"access_mode": "BLOCK"}, + "attr_list": + [ + {"attr_name": "eeprom"} + ] + } + }, + "MUX1": + { + "dev_info": { "device_type":"MUX", "device_name":"MUX1", "device_parent":"SMBUS0"}, + "i2c": + { + "topo_info": { "parent_bus":"0x0", "dev_addr":"0x70", "dev_type":"pca9548"}, + "dev_attr": { "virt_bus":"0x2"}, + "channel": + [ + {"chn":"0", "dev":"CPLD1" }, + {"chn":"0", "dev":"FAN-CTRL" }, + {"chn":"2", "dev":"PSU1" }, + {"chn":"2", "dev":"PSU2" }, + {"chn":"3", "dev":"TEMP1"}, + {"chn":"3", "dev":"TEMP2"}, + {"chn":"4", "dev":"TEMP3"}, + {"chn":"4", "dev":"TEMP4"}, + {"chn":"7", "dev":"MUX2"} + ] + } + }, + "MUX2": + { + "dev_info": { "device_type":"MUX", "device_name":"MUX2", "device_parent":"MUX1"}, + "i2c": + { + "topo_info": { "parent_bus":"0x9", "dev_addr":"0x71", "dev_type":"pca9548"}, + "dev_attr": { "virt_bus":"0xA"}, + "channel": + [ + {"chn":"0", "dev":"PORT49"}, + {"chn":"1", "dev":"PORT50"}, + {"chn":"2", "dev":"PORT51"}, + {"chn":"3", "dev":"PORT52"}, + {"chn":"4", "dev":"PORT53"}, + {"chn":"5", "dev":"PORT54"}, + {"chn":"6", "dev":"PORT55"}, + {"chn":"7", "dev":"PORT56"} + ] + } + }, + "CPLD1": + { + "dev_info": {"device_type": "CPLD", "device_name": "CPLD1", "device_parent": "MUX1"}, + "i2c": + { + "topo_info": {"parent_bus": "0x2", "dev_addr": "0x32", "dev_type": "i2c_cpld"}, + "dev_attr": {} + } + }, + "PSU1": + { + "dev_info": { "device_type":"PSU", "device_name":"PSU1", "device_parent":"MUX1"}, + "dev_attr": { "dev_idx":"1", "num_psu_fans": "1"}, + "i2c": + { + "interface": + [ + { "itf":"pmbus", "dev":"PSU1-PMBUS" } + ] + } + }, + "PSU1-PMBUS": + { + "dev_info": { "device_type":"PSU-PMBUS", "device_name":"PSU1-PMBUS", "device_parent":"MUX1", "virt_parent":"PSU1"}, + "i2c": + { + "topo_info":{ "parent_bus":"0x4", "dev_addr":"0x58", "dev_type":"psu_pmbus"}, + "attr_list": + [ + { "attr_name":"psu_present", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x41", "attr_mask":"0x10", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"psu_power_good", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x41", "attr_mask":"0x4", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"psu_model_name", "attr_devaddr":"0x58", "attr_devtype":"pmbus", "attr_offset":"0x9a", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"13" }, + { "attr_name":"psu_mfr_id", "attr_devaddr":"0x58", "attr_devtype":"pmbus", "attr_offset":"0x99", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"11" }, + { "attr_name":"psu_serial_num", "attr_devaddr":"0x58", "attr_devtype":"pmbus", "attr_offset":"0x9e", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"14" }, + { "attr_name":"psu_v_in", "attr_devaddr":"0x58", "attr_devtype":"pmbus", "attr_offset":"0x88", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"}, + { "attr_name":"psu_i_in", "attr_devaddr":"0x58", "attr_devtype":"pmbus", "attr_offset":"0x89", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"}, + { "attr_name":"psu_v_out", "attr_devaddr":"0x58", "attr_devtype":"pmbus", "attr_offset":"0x8b", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"}, + { "attr_name":"psu_i_out", "attr_devaddr":"0x58", "attr_devtype":"pmbus", "attr_offset":"0x8c", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"}, + { "attr_name":"psu_p_out", "attr_devaddr":"0x58", "attr_devtype":"pmbus", "attr_offset":"0x96", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"}, + { "attr_name":"psu_fan_dir", "attr_devaddr":"0x58", "attr_devtype":"pmbus", "attr_offset":"0xc5", "attr_mask":"0x18", "attr_cmpval":"0x08", "attr_len":"1"}, + { "attr_name":"psu_fan1_speed_rpm", "attr_devaddr":"0x58", "attr_devtype":"pmbus", "attr_offset":"0x90", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"}, + { "attr_name":"psu_temp1_input", "attr_devaddr":"0x58", "attr_devtype":"pmbus", "attr_offset":"0x8d", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"} + ] + } + }, + "PSU2": + { + "dev_info": { "device_type":"PSU", "device_name":"PSU2", "device_parent":"MUX1" }, + "dev_attr": { "dev_idx":"2", "num_psu_fans":"1"}, + "i2c": + { + "interface": + [ + { "itf":"pmbus", "dev":"PSU2-PMBUS"} + ] + } + }, + "PSU2-PMBUS": + { + "dev_info": {"device_type":"PSU-PMBUS", "device_name":"PSU2-PMBUS", "device_parent":"MUX1", "virt_parent":"PSU2"}, + "i2c": + { + "topo_info": { "parent_bus":"0x4", "dev_addr":"0x59", "dev_type":"psu_pmbus"}, + "attr_list": + [ + { "attr_name":"psu_present", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x41", "attr_mask":"0x20", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"psu_power_good", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x41", "attr_mask":"0x8", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"psu_model_name", "attr_devaddr":"0x59", "attr_devtype":"pmbus", "attr_offset":"0x9a", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"13" }, + { "attr_name":"psu_mfr_id", "attr_devaddr":"0x59", "attr_devtype":"pmbus", "attr_offset":"0x99", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"11" }, + { "attr_name":"psu_serial_num", "attr_devaddr":"0x59", "attr_devtype":"pmbus", "attr_offset":"0x9e", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"14" }, + { "attr_name":"psu_v_in", "attr_devaddr":"0x59", "attr_devtype":"pmbus", "attr_offset":"0x88", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"}, + { "attr_name":"psu_i_in", "attr_devaddr":"0x59", "attr_devtype":"pmbus", "attr_offset":"0x89", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"}, + { "attr_name":"psu_v_out", "attr_devaddr":"0x59", "attr_devtype":"pmbus", "attr_offset":"0x8b", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"}, + { "attr_name":"psu_i_out", "attr_devaddr":"0x59", "attr_devtype":"pmbus", "attr_offset":"0x8c", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"}, + { "attr_name":"psu_p_out", "attr_devaddr":"0x59", "attr_devtype":"pmbus", "attr_offset":"0x96", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"}, + { "attr_name":"psu_fan_dir", "attr_devaddr":"0x59", "attr_devtype":"pmbus", "attr_offset":"0xc5", "attr_mask":"0x18", "attr_cmpval":"0x08", "attr_len":"1"}, + { "attr_name":"psu_fan1_speed_rpm", "attr_devaddr":"0x59", "attr_devtype":"pmbus", "attr_offset":"0x90", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"}, + { "attr_name":"psu_temp1_input", "attr_devaddr":"0x59", "attr_devtype":"pmbus", "attr_offset":"0x8d", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"} + ] + } + }, + "TEMP1": + { + "dev_info": { "device_type":"TEMP_SENSOR", "device_name":"TEMP1", "device_parent":"MUX1"}, + "dev_attr": { "display_name":"LM75_U10"}, + "i2c": + { + "topo_info": { "parent_bus":"0x5", "dev_addr":"0x48", "dev_type":"lm75"}, + "attr_list": + [ + { "attr_name": "temp1_high_threshold", "drv_attr_name":"temp1_max"}, + { "attr_name": "temp1_max_hyst"}, + { "attr_name": "temp1_input"} + ] + } + }, + "TEMP2": + { + "dev_info": { "device_type":"TEMP_SENSOR", "device_name":"TEMP2", "device_parent":"MUX1"}, + "dev_attr": { "display_name":"LM75_U4"}, + "i2c": + { + "topo_info": { "parent_bus":"0x5", "dev_addr":"0x49", "dev_type":"lm75"}, + "attr_list": + [ + { "attr_name": "temp1_high_threshold", "drv_attr_name":"temp1_max"}, + { "attr_name": "temp1_max_hyst"}, + { "attr_name": "temp1_input"} + ] + } + }, + "TEMP3": + { + "dev_info": { "device_type":"TEMP_SENSOR", "device_name":"TEMP3", "device_parent":"MUX1"}, + "dev_attr": { "display_name":"LM75_U7"}, + "i2c": + { + "topo_info": { "parent_bus":"0x6", "dev_addr":"0x4a", "dev_type":"lm75"}, + "attr_list": + [ + { "attr_name": "temp1_high_threshold", "drv_attr_name":"temp1_max"}, + { "attr_name": "temp1_max_hyst"}, + { "attr_name": "temp1_input"} + ] + } + }, + "TEMP4": + { + "dev_info": { "device_type":"TEMP_SENSOR", "device_name":"TEMP4", "device_parent":"MUX1"}, + "dev_attr": { "display_name":"LM75_U60"}, + "i2c": + { + "topo_info": { "parent_bus":"0x6", "dev_addr":"0x49", "dev_type":"lm75"}, + "attr_list": + [ + { "attr_name": "temp1_high_threshold", "drv_attr_name":"temp1_max"}, + { "attr_name": "temp1_max_hyst"}, + { "attr_name": "temp1_input"} + ] + } + }, + "PORT49": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT49", "device_parent":"MUX2"}, + "dev_attr": { "dev_idx":"49"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT49-EEPROM" }, + { "itf":"control", "dev":"PORT49-CTRL" } + ] + } + }, + "PORT49-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT49-EEPROM", "device_parent":"MUX2", "virt_parent":"PORT49"}, + "i2c": + { + "topo_info": { "parent_bus":"0xA", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT49-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT49-CTRL", "device_parent":"MUX2", "virt_parent":"PORT49"}, + "i2c": + { + "topo_info": { "parent_bus":"0xA", "dev_addr":"0x66", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x47", "attr_mask":"0x0", "attr_cmpval":"0x1", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x4a", "attr_mask":"0x0", "attr_cmpval":"0x1", "attr_len":"1"}, + { "attr_name":"xcvr_lpmode", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x4a", "attr_mask":"0x0", "attr_cmpval":"0x1", "attr_len":"1"}, + { "attr_name":"xcvr_present", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x49", "attr_mask":"0x0", "attr_cmpval":"0x1", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x48", "attr_mask":"0x0", "attr_cmpval":"0x1", "attr_len":"1"} + ] + } + }, + "PORT50": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT50", "device_parent":"MUX2"}, + "dev_attr": { "dev_idx":"50"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT50-EEPROM" }, + { "itf":"control", "dev":"PORT50-CTRL" } + ] + } + }, + "PORT50-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT50-EEPROM", "device_parent":"MUX2", "virt_parent":"PORT50"}, + "i2c": + { + "topo_info": { "parent_bus":"0xB", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT50-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT50-CTRL", "device_parent":"MUX2", "virt_parent":"PORT50"}, + "i2c": + { + "topo_info": { "parent_bus":"0xB", "dev_addr":"0x66", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x47", "attr_mask":"0x1", "attr_cmpval":"0x2", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x4a", "attr_mask":"0x1", "attr_cmpval":"0x2", "attr_len":"1"}, + { "attr_name":"xcvr_lpmode", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x4a", "attr_mask":"0x1", "attr_cmpval":"0x2", "attr_len":"1"}, + { "attr_name":"xcvr_present", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x49", "attr_mask":"0x1", "attr_cmpval":"0x2", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x48", "attr_mask":"0x1", "attr_cmpval":"0x2", "attr_len":"1"} + + ] + } + }, + "PORT51": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT51", "device_parent":"MUX2"}, + "dev_attr": { "dev_idx":"51"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT51-EEPROM" }, + { "itf":"control", "dev":"PORT51-CTRL" } + ] + } + }, + "PORT51-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT51-EEPROM", "device_parent":"MUX2", "virt_parent":"PORT51"}, + "i2c": + { + "topo_info": { "parent_bus":"0xC", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT51-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT51-CTRL", "device_parent":"MUX2", "virt_parent":"PORT51"}, + "i2c": + { + "topo_info": { "parent_bus":"0xC", "dev_addr":"0x66", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x47", "attr_mask":"0x2", "attr_cmpval":"0x4", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x4a", "attr_mask":"0x2", "attr_cmpval":"0x4", "attr_len":"1"}, + { "attr_name":"xcvr_lpmode", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x4a", "attr_mask":"0x2", "attr_cmpval":"0x4", "attr_len":"1"}, + { "attr_name":"xcvr_present", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x49", "attr_mask":"0x2", "attr_cmpval":"0x4", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x48", "attr_mask":"0x2", "attr_cmpval":"0x4", "attr_len":"1"} + ] + } + }, + "PORT52": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT52", "device_parent":"MUX2"}, + "dev_attr": { "dev_idx":"52"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT52-EEPROM" }, + { "itf":"control", "dev":"PORT52-CTRL" } + ] + } + }, + "PORT52-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT52-EEPROM", "device_parent":"MUX2", "virt_parent":"PORT52"}, + "i2c": + { + "topo_info": { "parent_bus":"0xD", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT52-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT52-CTRL", "device_parent":"MUX2", "virt_parent":"PORT52"}, + "i2c": + { + "topo_info": { "parent_bus":"0xD", "dev_addr":"0x66", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x47", "attr_mask":"0x3", "attr_cmpval":"0x8", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x4a", "attr_mask":"0x3", "attr_cmpval":"0x8", "attr_len":"1"}, + { "attr_name":"xcvr_lpmode", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x4a", "attr_mask":"0x3", "attr_cmpval":"0x8", "attr_len":"1"}, + { "attr_name":"xcvr_present", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x49", "attr_mask":"0x3", "attr_cmpval":"0x8", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x48", "attr_mask":"0x3", "attr_cmpval":"0x8", "attr_len":"1"} + + ] + } + }, + "PORT53": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT53", "device_parent":"MUX2"}, + "dev_attr": { "dev_idx":"53"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT53-EEPROM" }, + { "itf":"control", "dev":"PORT53-CTRL" } + ] + } + }, + "PORT53-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT53-EEPROM", "device_parent":"MUX2", "virt_parent":"PORT53"}, + "i2c": + { + "topo_info": { "parent_bus":"0xE", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT53-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT53-CTRL", "device_parent":"MUX2", "virt_parent":"PORT53"}, + "i2c": + { + "topo_info": { "parent_bus":"0xE", "dev_addr":"0x66", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x47", "attr_mask":"0x4", "attr_cmpval":"0x10", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x4a", "attr_mask":"0x4", "attr_cmpval":"0x10", "attr_len":"1"}, + { "attr_name":"xcvr_lpmode", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x4a", "attr_mask":"0x4", "attr_cmpval":"0x10", "attr_len":"1"}, + { "attr_name":"xcvr_present", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x49", "attr_mask":"0x4", "attr_cmpval":"0x10", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x48", "attr_mask":"0x4", "attr_cmpval":"0x10", "attr_len":"1"} + + ] + } + }, + "PORT54": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT54", "device_parent":"MUX2"}, + "dev_attr": { "dev_idx":"54"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT54-EEPROM" }, + { "itf":"control", "dev":"PORT54-CTRL" } + ] + } + }, + "PORT54-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT54-EEPROM", "device_parent":"MUX2", "virt_parent":"PORT54"}, + "i2c": + { + "topo_info": { "parent_bus":"0xF", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT54-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT54-CTRL", "device_parent":"MUX2", "virt_parent":"PORT54"}, + "i2c": + { + "topo_info": { "parent_bus":"0xF", "dev_addr":"0x66", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x47", "attr_mask":"0x5", "attr_cmpval":"0x20", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x4a", "attr_mask":"0x5", "attr_cmpval":"0x20", "attr_len":"1"}, + { "attr_name":"xcvr_lpmode", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x4a", "attr_mask":"0x5", "attr_cmpval":"0x20", "attr_len":"1"}, + { "attr_name":"xcvr_present", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x49", "attr_mask":"0x5", "attr_cmpval":"0x20", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x48", "attr_mask":"0x5", "attr_cmpval":"0x20", "attr_len":"1"} + ] + } + }, + "PORT55": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT55", "device_parent":"MUX2"}, + "dev_attr": { "dev_idx":"55"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT55-EEPROM" }, + { "itf":"control", "dev":"PORT55-CTRL" } + ] + } + }, + "PORT55-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT55-EEPROM", "device_parent":"MUX2", "virt_parent":"PORT55"}, + "i2c": + { + "topo_info": { "parent_bus":"0x10", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT55-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT55-CTRL", "device_parent":"MUX2", "virt_parent":"PORT55"}, + "i2c": + { + "topo_info": { "parent_bus":"0x10", "dev_addr":"0x66", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x47", "attr_mask":"0x6", "attr_cmpval":"0x40", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x4a", "attr_mask":"0x6", "attr_cmpval":"0x40", "attr_len":"1"}, + { "attr_name":"xcvr_lpmode", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x4a", "attr_mask":"0x6", "attr_cmpval":"0x40", "attr_len":"1"}, + { "attr_name":"xcvr_present", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x49", "attr_mask":"0x6", "attr_cmpval":"0x40", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x48", "attr_mask":"0x6", "attr_cmpval":"0x40", "attr_len":"1"} + ] + } + }, + "PORT56": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT56", "device_parent":"MUX2"}, + "dev_attr": { "dev_idx":"56"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT56-EEPROM" }, + { "itf":"control", "dev":"PORT56-CTRL" } + ] + } + }, + "PORT56-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT56-EEPROM", "device_parent":"MUX2", "virt_parent":"PORT56"}, + "i2c": + { + "topo_info": { "parent_bus":"0x11", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT56-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT56-CTRL", "device_parent":"MUX2", "virt_parent":"PORT56"}, + "i2c": + { + "topo_info": { "parent_bus":"0x11", "dev_addr":"0x66", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x47", "attr_mask":"0x7", "attr_cmpval":"0x80", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x4a", "attr_mask":"0x7", "attr_cmpval":"0x80", "attr_len":"1"}, + { "attr_name":"xcvr_lpmode", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x4a", "attr_mask":"0x7", "attr_cmpval":"0x80", "attr_len":"1"}, + { "attr_name":"xcvr_present", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x49", "attr_mask":"0x7", "attr_cmpval":"0x80", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x48", "attr_mask":"0x7", "attr_cmpval":"0x80", "attr_len":"1"} + ] + } + }, + "FAN-CTRL": + { + "dev_info": { "device_type":"FAN", "device_name":"FAN-CTRL", "device_parent":"MUX1"}, + "i2c": + { + "topo_info": { "parent_bus":"0x2", "dev_addr":"0x66", "dev_type":"fan_cpld"}, + "dev_attr": { "num_fantrays":"3"}, + "attr_list": + [ + { "attr_name":"fan1_pwm", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x32", "attr_mask":"0xff", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"fan2_pwm", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x36", "attr_mask":"0xff", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"fan3_pwm", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x3a", "attr_mask":"0xff", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"fan1_direction", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x88", "attr_mask":"0x4", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"fan2_direction", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x88", "attr_mask":"0x2", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"fan3_direction", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x88", "attr_mask":"0x1", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"fan1_input", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x31", "attr_mask":"0xff", "attr_len":"1", "attr_mult":"150", "attr_is_divisor":0}, + { "attr_name":"fan2_input", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x35", "attr_mask":"0xff", "attr_len":"1", "attr_mult":"150" , "attr_is_divisor":0}, + { "attr_name":"fan3_input", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x39", "attr_mask":"0xff", "attr_len":"1", "attr_mult":"150", "attr_is_divisor":0} + ] + } + }, + "SYS_LED": + { + "dev_info": { "device_type":"LED", "device_name":"SYS_LED"}, + "dev_attr": { "index":"0"}, + "i2c" : { + "attr_list": + [ + {"attr_name":"STATUS_LED_COLOR_AMBER","swpld_addr":"0x32","attr_devtype":"cpld","attr_devname":"CPLD1", "bits":"5:4","descr":"","value":"0x1","swpld_addr_offset":"0x43"}, + {"attr_name":"STATUS_LED_COLOR_GREEN","swpld_addr":"0x32","attr_devtype":"cpld","attr_devname":"CPLD1", "bits":"5:4","descr":"","value":"0x2","swpld_addr_offset":"0x43"}, + {"attr_name":"STATUS_LED_COLOR_OFF","swpld_addr":"0x32","attr_devtype":"cpld","attr_devname":"CPLD1", "bits":"5:4","descr":"","value":"0x0","swpld_addr_offset":"0x43"} + ] + } + }, + "FANTRAY1_LED": + { + "dev_info": { "device_type":"LED", "device_name":"FANTRAY_LED"}, + "dev_attr": { "index":"0"}, + "i2c" : { + "attr_list": + [ + {"attr_name":"STATUS_LED_COLOR_GREEN","attr_devtype":"cpld","attr_devname":"CPLD1","bits":"1:0","descr":"","value":"0x1","swpld_addr":"0x32","swpld_addr_offset":"0x33"}, + {"attr_name":"STATUS_LED_COLOR_AMBER","attr_devtype":"cpld","attr_devname":"CPLD1","bits":"1:0","descr":"","value":"0x2","swpld_addr":"0x32","swpld_addr_offset":"0x33"} + ] + } + }, + "FANTRAY2_LED": + { + "dev_info": { "device_type":"LED", "device_name":"FANTRAY_LED"}, + "dev_attr": { "index":"1"}, + "i2c" : { + "attr_list": + [ + {"attr_name":"STATUS_LED_COLOR_GREEN","attr_devtype":"cpld","attr_devname":"CPLD1","bits":"1:0","descr":"","value":"0x1","swpld_addr":"0x32","swpld_addr_offset":"0x37"}, + {"attr_name":"STATUS_LED_COLOR_AMBER","attr_devtype":"cpld","attr_devname":"CPLD1B","bits":"1:0","descr":"","value":"0x2","swpld_addr":"0x32","swpld_addr_offset":"0x37"} + ] + } + }, + "FANTRAY3_LED": + { + "dev_info": { "device_type":"LED", "device_name":"FANTRAY_LED"}, + "dev_attr": { "index":"2"}, + "i2c" : { + "attr_list": + [ + {"attr_name":"STATUS_LED_COLOR_GREEN","attr_devtype":"cpld","attr_devname":"CPLD1","bits":"1:0","descr":"","value":"0x1","swpld_addr":"0x32","swpld_addr_offset":"0x3b"}, + {"attr_name":"STATUS_LED_COLOR_AMBER","attr_devtype":"cpld","attr_devname":"CPLD1","bits":"1:0","descr":"","value":"0x2","swpld_addr":"0x32","swpld_addr_offset":"0x3b"} + ] + } + } +} diff --git a/device/celestica/x86_64-cel_belgite-r0/pddf/pddf-device.json.original b/device/celestica/x86_64-cel_belgite-r0/pddf/pddf-device.json.original new file mode 100644 index 000000000000..8f43a3f6090d --- /dev/null +++ b/device/celestica/x86_64-cel_belgite-r0/pddf/pddf-device.json.original @@ -0,0 +1,686 @@ +{ + "PLATFORM": + { + "num_psus":2, + "num_fantrays":3, + "num_fans_pertray":1, + "num_ports":56, + "num_temps":4, + "pddf_dev_types": + { + "description":"Belgite - Below is the list of supported PDDF device types (chip names) for various components. If any component uses some other driver, we will create the client using 'echo > /new_device' method", + "CPLD": + [ + "i2c_cpld" + ], + "PSU": + [ + "psu_eeprom", + "psu_pmbus" + ], + "FAN": + [ + "fan_ctrl", + "fan_eeprom", + "fan_cpld" + ], + "PORT_MODULE": + [ + "pddf_xcvr" + ] + }, + "std_perm_kos": + [ + "i2c-ismt", + "i2c-i801" + ], + "std_kos": + [ + "i2c_dev", + "i2c_mux_pca954x", + "gpio_pca953x", + "mc24lc64t", + "optoe" + ], + "pddf_kos": + [ + "pddf_client_module", + "pddf_mux_module", + "pddf_psu_driver_module", + "pddf_psu_module", + "pddf_gpio_module", + "pddf_xcvr_module", + "pddf_xcvr_driver_module", + "pddf_led_module", + "pddf_fan_driver_module", + "pddf_fan_module", + "pddf_led_module" + ], + "custom_kos": + [ + "pddf_custom_psu" + ] + }, + "SYSTEM": + { + "dev_info": {"device_type":"CPU", "device_name":"ROOT_COMPLEX", "device_parent":null}, + "i2c": + { + "CONTROLLERS": + [ + { "dev_name":"i2c-0", "dev":"SMBUS0" } + ] + } + }, + "SMBUS0": + { + "dev_info": {"device_type": "SMBUS", "device_name": "SMBUS0", "device_parent": "SYSTEM"}, + "i2c": + { + "topo_info": {"dev_addr": "0x0"}, + "DEVICES": + [ + {"dev": "EEPROM1"}, + {"dev": "MUX1"} + ] + } + }, + "EEPROM1": + { + "dev_info": {"device_type": "EEPROM", "device_name": "EEPROM1", "device_parent": "SMBUS0"}, + "i2c": + { + "topo_info": {"parent_bus": "0x0", "dev_addr": "0x52", "dev_type": "24lc64t"}, + "dev_attr": {"access_mode": "BLOCK"}, + "attr_list": + [ + {"attr_name": "eeprom"} + ] + } + }, + "MUX1": + { + "dev_info": { "device_type":"MUX", "device_name":"MUX1", "device_parent":"SMBUS0"}, + "i2c": + { + "topo_info": { "parent_bus":"0x0", "dev_addr":"0x70", "dev_type":"pca9548"}, + "dev_attr": { "virt_bus":"0x2"}, + "channel": + [ + {"chn":"0", "dev":"CPLD1" }, + {"chn":"0", "dev":"FAN-CTRL1" }, + {"chn":"2", "dev":"PSU1" }, + {"chn":"2", "dev":"PSU2" }, + {"chn":"3", "dev":"TEMP1"}, + {"chn":"3", "dev":"TEMP2"}, + {"chn":"4", "dev":"TEMP3"}, + {"chn":"4", "dev":"TEMP4"}, + {"chn":"7", "dev":"MUX2"} + ] + } + }, + "MUX2": + { + "dev_info": { "device_type":"MUX", "device_name":"MUX2", "device_parent":"MUX1"}, + "i2c": + { + "topo_info": { "parent_bus":"0x9", "dev_addr":"0x71", "dev_type":"pca9548"}, + "dev_attr": { "virt_bus":"0x10"}, + "channel": + [ + {"chn":"0", "dev":"PORT49"}, + {"chn":"1", "dev":"PORT50"}, + {"chn":"2", "dev":"PORT51"}, + {"chn":"3", "dev":"PORT52"}, + {"chn":"4", "dev":"PORT53"}, + {"chn":"5", "dev":"PORT54"}, + {"chn":"6", "dev":"PORT55"}, + {"chn":"7", "dev":"PORT56"} + ] + } + }, + "CPLD1": + { + "dev_info": {"device_type": "CPLD", "device_name": "CPLD1", "device_parent": "MUX1"}, + "i2c": + { + "topo_info": {"parent_bus": "0x2", "dev_addr": "0x32", "dev_type": "i2c_cpld"}, + "dev_attr": {} + } + }, + "PSU1": + { + "dev_info": { "device_type":"PSU", "device_name":"PSU1", "device_parent":"MUX1"}, + "dev_attr": { "dev_idx":"1", "num_psu_fans": "1"}, + "i2c": + { + "interface": + [ + { "itf":"pmbus", "dev":"PSU1-PMBUS" } + ] + } + }, + "PSU1-PMBUS": + { + "dev_info": { "device_type":"PSU-PMBUS", "device_name":"PSU1-PMBUS", "device_parent":"MUX1", "virt_parent":"PSU1"}, + "i2c": + { + "topo_info":{ "parent_bus":"0x4", "dev_addr":"0x58", "dev_type":"psu_pmbus"}, + "attr_list": + [ + { "attr_name":"psu_present", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x41", "attr_mask":"0x10", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"psu_power_good", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x41", "attr_mask":"0x4", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"psu_model_name", "attr_devaddr":"0x58", "attr_devtype":"pmbus", "attr_offset":"0x9a", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"16" }, + { "attr_name":"psu_mfr_id", "attr_devaddr":"0x58", "attr_devtype":"pmbus", "attr_offset":"0x99", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"7" }, + { "attr_name":"psu_serial_num", "attr_devaddr":"0x58", "attr_devtype":"pmbus", "attr_offset":"0x9e", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"16" }, + { "attr_name":"psu_v_in", "attr_devaddr":"0x58", "attr_devtype":"pmbus", "attr_offset":"0x88", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"}, + { "attr_name":"psu_i_in", "attr_devaddr":"0x58", "attr_devtype":"pmbus", "attr_offset":"0x89", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"}, + { "attr_name":"psu_p_in", "attr_devaddr":"0x58", "attr_devtype":"pmbus", "attr_offset":"0xa7", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"}, + { "attr_name":"psu_v_out", "attr_devaddr":"0x58", "attr_devtype":"pmbus", "attr_offset":"0x8b", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"}, + { "attr_name":"psu_i_out", "attr_devaddr":"0x58", "attr_devtype":"pmbus", "attr_offset":"0x8c", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"}, + { "attr_name":"psu_p_out", "attr_devaddr":"0x58", "attr_devtype":"pmbus", "attr_offset":"0x96", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"}, + { "attr_name":"psu_fan_dir", "attr_devaddr":"0x58", "attr_devtype":"pmbus", "attr_offset":"0xc5", "attr_mask":"0x18", "attr_cmpval":"0x08", "attr_len":"1"}, + { "attr_name":"psu_fan1_speed_rpm", "attr_devaddr":"0x58", "attr_devtype":"pmbus", "attr_offset":"0x90", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"}, + { "attr_name":"psu_temp1_input", "attr_devaddr":"0x58", "attr_devtype":"pmbus", "attr_offset":"0x8d", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"} + ] + } + }, + "PSU2": + { + "dev_info": { "device_type":"PSU", "device_name":"PSU2", "device_parent":"MUX1" }, + "dev_attr": { "dev_idx":"2", "num_psu_fans":"1"}, + "i2c": + { + "interface": + [ + { "itf":"pmbus", "dev":"PSU2-PMBUS"} + ] + } + }, + "PSU2-PMBUS": + { + "dev_info": {"device_type":"PSU-PMBUS", "device_name":"PSU2-PMBUS", "device_parent":"MUX1", "virt_parent":"PSU2"}, + "i2c": + { + "topo_info": { "parent_bus":"0x4", "dev_addr":"0x59", "dev_type":"psu_pmbus"}, + "attr_list": + [ + { "attr_name":"psu_present", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x41", "attr_mask":"0x20", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"psu_power_good", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x41", "attr_mask":"0x8", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"psu_model_name", "attr_devaddr":"0x59", "attr_devtype":"pmbus", "attr_offset":"0x9a", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"16" }, + { "attr_name":"psu_mfr_id", "attr_devaddr":"0x59", "attr_devtype":"pmbus", "attr_offset":"0x99", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"7" }, + { "attr_name":"psu_serial_num", "attr_devaddr":"0x59", "attr_devtype":"pmbus", "attr_offset":"0x9e", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"16" }, + { "attr_name":"psu_v_in", "attr_devaddr":"0x59", "attr_devtype":"pmbus", "attr_offset":"0x88", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"}, + { "attr_name":"psu_i_in", "attr_devaddr":"0x59", "attr_devtype":"pmbus", "attr_offset":"0x89", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"}, + { "attr_name":"psu_p_in", "attr_devaddr":"0x59", "attr_devtype":"pmbus", "attr_offset":"0xa7", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"}, + { "attr_name":"psu_v_out", "attr_devaddr":"0x59", "attr_devtype":"pmbus", "attr_offset":"0x8b", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"}, + { "attr_name":"psu_i_out", "attr_devaddr":"0x59", "attr_devtype":"pmbus", "attr_offset":"0x8c", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"}, + { "attr_name":"psu_p_out", "attr_devaddr":"0x59", "attr_devtype":"pmbus", "attr_offset":"0x96", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"}, + { "attr_name":"psu_fan_dir", "attr_devaddr":"0x59", "attr_devtype":"pmbus", "attr_offset":"0xc5", "attr_mask":"0x18", "attr_cmpval":"0x08", "attr_len":"1"}, + { "attr_name":"psu_fan1_speed_rpm", "attr_devaddr":"0x59", "attr_devtype":"pmbus", "attr_offset":"0x90", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"}, + { "attr_name":"psu_temp1_input", "attr_devaddr":"0x59", "attr_devtype":"pmbus", "attr_offset":"0x8d", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"} + ] + } + }, + "TEMP1": + { + "dev_info": { "device_type":"TEMP_SENSOR", "device_name":"TEMP1", "device_parent":"MUX1"}, + "dev_attr": { "display_name":"LM75_U10"}, + "i2c": + { + "topo_info": { "parent_bus":"0x5", "dev_addr":"0x48", "dev_type":"lm75"}, + "attr_list": + [ + { "attr_name": "temp1_high_threshold", "drv_attr_name":"temp1_max"}, + { "attr_name": "temp1_max_hyst"}, + { "attr_name": "temp1_input"} + ] + } + }, + "TEMP2": + { + "dev_info": { "device_type":"TEMP_SENSOR", "device_name":"TEMP2", "device_parent":"MUX1"}, + "dev_attr": { "display_name":"LM75_U4"}, + "i2c": + { + "topo_info": { "parent_bus":"0x5", "dev_addr":"0x49", "dev_type":"lm75"}, + "attr_list": + [ + { "attr_name": "temp1_high_threshold", "drv_attr_name":"temp1_max"}, + { "attr_name": "temp1_max_hyst"}, + { "attr_name": "temp1_input"} + ] + } + }, + "TEMP3": + { + "dev_info": { "device_type":"TEMP_SENSOR", "device_name":"TEMP3", "device_parent":"MUX1"}, + "dev_attr": { "display_name":"LM75_U7"}, + "i2c": + { + "topo_info": { "parent_bus":"0x6", "dev_addr":"0x4a", "dev_type":"lm75"}, + "attr_list": + [ + { "attr_name": "temp1_high_threshold", "drv_attr_name":"temp1_max"}, + { "attr_name": "temp1_max_hyst"}, + { "attr_name": "temp1_input"} + ] + } + }, + "TEMP4": + { + "dev_info": { "device_type":"TEMP_SENSOR", "device_name":"TEMP4", "device_parent":"MUX1"}, + "dev_attr": { "display_name":"LM75_U60"}, + "i2c": + { + "topo_info": { "parent_bus":"0x6", "dev_addr":"0x49", "dev_type":"lm75"}, + "attr_list": + [ + { "attr_name": "temp1_high_threshold", "drv_attr_name":"temp1_max"}, + { "attr_name": "temp1_max_hyst"}, + { "attr_name": "temp1_input"} + ] + } + }, + "PORT49": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT49", "device_parent":"MUX2"}, + "dev_attr": { "dev_idx":"49"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT49-EEPROM" }, + { "itf":"control", "dev":"PORT49-CTRL" } + ] + } + }, + "PORT49-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT49-EEPROM", "device_parent":"MUX2", "virt_parent":"PORT49"}, + "i2c": + { + "topo_info": { "parent_bus":"0x10", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT49-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT49-CTRL", "device_parent":"MUX2", "virt_parent":"PORT49"}, + "i2c": + { + "topo_info": { "parent_bus":"0x10", "dev_addr":"0x66", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x47", "attr_mask":"0x0", "attr_cmpval":"0x1", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x4a", "attr_mask":"0x0", "attr_cmpval":"0x1", "attr_len":"1"}, + { "attr_name":"xcvr_lpmode", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x4a", "attr_mask":"0x0", "attr_cmpval":"0x1", "attr_len":"1"}, + { "attr_name":"xcvr_present", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x49", "attr_mask":"0x0", "attr_cmpval":"0x1", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x48", "attr_mask":"0x0", "attr_cmpval":"0x1", "attr_len":"1"} + ] + } + }, + "PORT50": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT50", "device_parent":"MUX2"}, + "dev_attr": { "dev_idx":"50"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT50-EEPROM" }, + { "itf":"control", "dev":"PORT50-CTRL" } + ] + } + }, + "PORT50-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT50-EEPROM", "device_parent":"MUX2", "virt_parent":"PORT50"}, + "i2c": + { + "topo_info": { "parent_bus":"0x11", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT50-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT50-CTRL", "device_parent":"MUX2", "virt_parent":"PORT50"}, + "i2c": + { + "topo_info": { "parent_bus":"0x11", "dev_addr":"0x66", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x47", "attr_mask":"0x1", "attr_cmpval":"0x2", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x4a", "attr_mask":"0x1", "attr_cmpval":"0x2", "attr_len":"1"}, + { "attr_name":"xcvr_lpmode", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x4a", "attr_mask":"0x1", "attr_cmpval":"0x2", "attr_len":"1"}, + { "attr_name":"xcvr_present", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x49", "attr_mask":"0x1", "attr_cmpval":"0x2", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x48", "attr_mask":"0x1", "attr_cmpval":"0x2", "attr_len":"1"} + + ] + } + }, + "PORT51": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT51", "device_parent":"MUX2"}, + "dev_attr": { "dev_idx":"51"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT51-EEPROM" }, + { "itf":"control", "dev":"PORT51-CTRL" } + ] + } + }, + "PORT51-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT51-EEPROM", "device_parent":"MUX2", "virt_parent":"PORT51"}, + "i2c": + { + "topo_info": { "parent_bus":"0x12", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT51-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT51-CTRL", "device_parent":"MUX2", "virt_parent":"PORT51"}, + "i2c": + { + "topo_info": { "parent_bus":"0x12", "dev_addr":"0x66", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x47", "attr_mask":"0x2", "attr_cmpval":"0x4", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x4a", "attr_mask":"0x2", "attr_cmpval":"0x4", "attr_len":"1"}, + { "attr_name":"xcvr_lpmode", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x4a", "attr_mask":"0x2", "attr_cmpval":"0x4", "attr_len":"1"}, + { "attr_name":"xcvr_present", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x49", "attr_mask":"0x2", "attr_cmpval":"0x4", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x48", "attr_mask":"0x2", "attr_cmpval":"0x4", "attr_len":"1"} + ] + } + }, + "PORT52": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT52", "device_parent":"MUX2"}, + "dev_attr": { "dev_idx":"52"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT52-EEPROM" }, + { "itf":"control", "dev":"PORT52-CTRL" } + ] + } + }, + "PORT52-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT52-EEPROM", "device_parent":"MUX2", "virt_parent":"PORT52"}, + "i2c": + { + "topo_info": { "parent_bus":"0x13", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT52-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT52-CTRL", "device_parent":"MUX2", "virt_parent":"PORT52"}, + "i2c": + { + "topo_info": { "parent_bus":"0x13", "dev_addr":"0x66", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x47", "attr_mask":"0x3", "attr_cmpval":"0x8", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x4a", "attr_mask":"0x3", "attr_cmpval":"0x8", "attr_len":"1"}, + { "attr_name":"xcvr_lpmode", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x4a", "attr_mask":"0x3", "attr_cmpval":"0x8", "attr_len":"1"}, + { "attr_name":"xcvr_present", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x49", "attr_mask":"0x3", "attr_cmpval":"0x8", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x48", "attr_mask":"0x3", "attr_cmpval":"0x8", "attr_len":"1"} + + ] + } + }, + "PORT53": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT53", "device_parent":"MUX2"}, + "dev_attr": { "dev_idx":"53"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT53-EEPROM" }, + { "itf":"control", "dev":"PORT53-CTRL" } + ] + } + }, + "PORT53-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT53-EEPROM", "device_parent":"MUX2", "virt_parent":"PORT53"}, + "i2c": + { + "topo_info": { "parent_bus":"0x14", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT53-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT53-CTRL", "device_parent":"MUX2", "virt_parent":"PORT53"}, + "i2c": + { + "topo_info": { "parent_bus":"0x14", "dev_addr":"0x66", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x47", "attr_mask":"0x4", "attr_cmpval":"0x10", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x4a", "attr_mask":"0x4", "attr_cmpval":"0x10", "attr_len":"1"}, + { "attr_name":"xcvr_lpmode", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x4a", "attr_mask":"0x4", "attr_cmpval":"0x10", "attr_len":"1"}, + { "attr_name":"xcvr_present", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x49", "attr_mask":"0x4", "attr_cmpval":"0x10", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x48", "attr_mask":"0x4", "attr_cmpval":"0x10", "attr_len":"1"} + + ] + } + }, + "PORT54": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT54", "device_parent":"MUX2"}, + "dev_attr": { "dev_idx":"54"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT54-EEPROM" }, + { "itf":"control", "dev":"PORT54-CTRL" } + ] + } + }, + "PORT54-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT54-EEPROM", "device_parent":"MUX2", "virt_parent":"PORT54"}, + "i2c": + { + "topo_info": { "parent_bus":"0x15", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT54-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT54-CTRL", "device_parent":"MUX2", "virt_parent":"PORT54"}, + "i2c": + { + "topo_info": { "parent_bus":"0x15", "dev_addr":"0x66", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x47", "attr_mask":"0x5", "attr_cmpval":"0x20", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x4a", "attr_mask":"0x5", "attr_cmpval":"0x20", "attr_len":"1"}, + { "attr_name":"xcvr_lpmode", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x4a", "attr_mask":"0x5", "attr_cmpval":"0x20", "attr_len":"1"}, + { "attr_name":"xcvr_present", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x49", "attr_mask":"0x5", "attr_cmpval":"0x20", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x48", "attr_mask":"0x5", "attr_cmpval":"0x20", "attr_len":"1"} + ] + } + }, + "PORT55": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT55", "device_parent":"MUX2"}, + "dev_attr": { "dev_idx":"55"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT55-EEPROM" }, + { "itf":"control", "dev":"PORT55-CTRL" } + ] + } + }, + "PORT55-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT55-EEPROM", "device_parent":"MUX2", "virt_parent":"PORT55"}, + "i2c": + { + "topo_info": { "parent_bus":"0x16", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT55-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT55-CTRL", "device_parent":"MUX2", "virt_parent":"PORT55"}, + "i2c": + { + "topo_info": { "parent_bus":"0x16", "dev_addr":"0x66", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x47", "attr_mask":"0x6", "attr_cmpval":"0x40", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x4a", "attr_mask":"0x6", "attr_cmpval":"0x40", "attr_len":"1"}, + { "attr_name":"xcvr_lpmode", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x4a", "attr_mask":"0x6", "attr_cmpval":"0x40", "attr_len":"1"}, + { "attr_name":"xcvr_present", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x49", "attr_mask":"0x6", "attr_cmpval":"0x40", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x48", "attr_mask":"0x6", "attr_cmpval":"0x40", "attr_len":"1"} + ] + } + }, + "PORT56": + { + "dev_info": { "device_type":"SFP28", "device_name":"PORT56", "device_parent":"MUX2"}, + "dev_attr": { "dev_idx":"56"}, + "i2c": + { + "interface": + [ + { "itf":"eeprom", "dev":"PORT56-EEPROM" }, + { "itf":"control", "dev":"PORT56-CTRL" } + ] + } + }, + "PORT56-EEPROM": + { + "dev_info": { "device_type":"", "device_name":"PORT56-EEPROM", "device_parent":"MUX2", "virt_parent":"PORT56"}, + "i2c": + { + "topo_info": { "parent_bus":"0x17", "dev_addr":"0x50", "dev_type":"optoe2"}, + "attr_list": + [ + { "attr_name":"eeprom"} + ] + } + }, + "PORT56-CTRL": + { + "dev_info": { "device_type":"", "device_name":"PORT56-CTRL", "device_parent":"MUX2", "virt_parent":"PORT56"}, + "i2c": + { + "topo_info": { "parent_bus":"0x17", "dev_addr":"0x66", "dev_type":"pddf_xcvr"}, + "attr_list": + [ + { "attr_name":"xcvr_txfault", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x47", "attr_mask":"0x7", "attr_cmpval":"0x80", "attr_len":"1"}, + { "attr_name":"xcvr_txdisable", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x4a", "attr_mask":"0x7", "attr_cmpval":"0x80", "attr_len":"1"}, + { "attr_name":"xcvr_lpmode", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x4a", "attr_mask":"0x7", "attr_cmpval":"0x80", "attr_len":"1"}, + { "attr_name":"xcvr_present", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x49", "attr_mask":"0x7", "attr_cmpval":"0x80", "attr_len":"1"}, + { "attr_name":"xcvr_rxlos", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x48", "attr_mask":"0x7", "attr_cmpval":"0x80", "attr_len":"1"} + ] + } + }, + "FAN-CTRL1": + { + "dev_info": { "device_type":"FAN", "device_name":"FAN-CTRL1", "device_parent":"MUX1"}, + "i2c": + { + "topo_info": { "parent_bus":"0x2", "dev_addr":"0x66", "dev_type":"fan_cpld"}, + "dev_attr": { "num_fantrays":"3"}, + "attr_list": + [ + { "attr_name":"fan1_pwm", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x32", "attr_mask":"0xff", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"fan2_pwm", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x36", "attr_mask":"0xff", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"fan3_pwm", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x3a", "attr_mask":"0xff", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"fan1_direction", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x88", "attr_mask":"0x4", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"fan2_direction", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x88", "attr_mask":"0x2", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"fan3_direction", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x88", "attr_mask":"0x1", "attr_cmpval":"0x0", "attr_len":"1"}, + { "attr_name":"fan1_input", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x31", "attr_mask":"0xff", "attr_len":"1", "attr_mult":"150", "attr_is_divisor":0}, + { "attr_name":"fan2_input", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x35", "attr_mask":"0xff", "attr_len":"1", "attr_mult":"150" , "attr_is_divisor":0}, + { "attr_name":"fan3_input", "attr_devaddr":"0x32", "attr_devtype":"cpld", "attr_devname":"CPLD1", "attr_offset":"0x39", "attr_mask":"0xff", "attr_len":"1", "attr_mult":"150", "attr_is_divisor":0} + ] + } + }, + "SYS_LED": + { + "dev_info": { "device_type":"LED", "device_name":"SYS_LED"}, + "dev_attr": { "index":"0", "flag": "rw"}, + "i2c" : { + "attr_list": + [ + {"attr_name":"amber","swpld_addr":"0x32","attr_devtype":"cpld","attr_devname":"CPLD1", "bits":"5:4","descr":"","value":"0x1","swpld_addr_offset":"0x43"}, + {"attr_name":"green","swpld_addr":"0x32","attr_devtype":"cpld","attr_devname":"CPLD1", "bits":"5:4","descr":"","value":"0x2","swpld_addr_offset":"0x43"}, + {"attr_name":"off","swpld_addr":"0x32","attr_devtype":"cpld","attr_devname":"CPLD1", "bits":"5:4","descr":"","value":"0x0","swpld_addr_offset":"0x43"} + ] + } + }, + "FANTRAY1_LED": + { + "dev_info": { "device_type":"LED", "device_name":"FANTRAY_LED"}, + "dev_attr": { "index":"0", "flag": "rw"}, + "i2c" : { + "attr_list": + [ + {"attr_name":"green","attr_devtype":"cpld","attr_devname":"CPLD1","bits":"1:0","descr":"","value":"0x1","swpld_addr":"0x32","swpld_addr_offset":"0x33"}, + {"attr_name":"red","attr_devtype":"cpld","attr_devname":"CPLD1","bits":"1:0","descr":"","value":"0x2","swpld_addr":"0x32","swpld_addr_offset":"0x33"} + ] + } + }, + "FANTRAY2_LED": + { + "dev_info": { "device_type":"LED", "device_name":"FANTRAY_LED"}, + "dev_attr": { "index":"1", "flag": "rw"}, + "i2c" : { + "attr_list": + [ + {"attr_name":"green","attr_devtype":"cpld","attr_devname":"CPLD1","bits":"1:0","descr":"","value":"0x1","swpld_addr":"0x32","swpld_addr_offset":"0x37"}, + {"attr_name":"red","attr_devtype":"cpld","attr_devname":"CPLD1B","bits":"1:0","descr":"","value":"0x2","swpld_addr":"0x32","swpld_addr_offset":"0x37"} + ] + } + }, + "FANTRAY3_LED": + { + "dev_info": { "device_type":"LED", "device_name":"FANTRAY_LED"}, + "dev_attr": { "index":"2", "flag": "rw"}, + "i2c" : { + "attr_list": + [ + {"attr_name":"green","attr_devtype":"cpld","attr_devname":"CPLD1","bits":"1:0","descr":"","value":"0x1","swpld_addr":"0x32","swpld_addr_offset":"0x3b"}, + {"attr_name":"red","attr_devtype":"cpld","attr_devname":"CPLD1","bits":"1:0","descr":"","value":"0x2","swpld_addr":"0x32","swpld_addr_offset":"0x3b"} + ] + } + } +} diff --git a/device/celestica/x86_64-cel_belgite-r0/pddf_support b/device/celestica/x86_64-cel_belgite-r0/pddf_support new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/device/celestica/x86_64-cel_belgite-r0/platform.json b/device/celestica/x86_64-cel_belgite-r0/platform.json new file mode 100644 index 000000000000..1d4a1f9e3420 --- /dev/null +++ b/device/celestica/x86_64-cel_belgite-r0/platform.json @@ -0,0 +1,395 @@ +{ + "chassis": { + "name": "E1070", + "status_led": { + "controllable": true, + "colors": ["green", "amber", "off"] + }, + "thermal_manager": false, + "components": [ + { + "name": "SWCPLD" + }, + { + "name": "Main_BIOS" + }, + { + "name": "Backup_BIOS" + } + ], + "fans": [ + { + "name": "Fantray1_1", + "speed": { + "controllable": true + }, + "status_led": { + "controllable": true, + "colors": ["green", "amber","off"] + } + }, + { + "name": "Fantray2_1", + "speed": { + "controllable": true + }, + "status_led": { + "controllable": true, + "colors": ["green", "amber","off"] + } + }, + { + "name": "Fantray3_1", + "speed": { + "controllable": true + }, + "status_led": { + "controllable": true, + "colors": ["green", "amber","off"] + } + }, + { + "name": "Fantray1_1", + "speed": { + "controllable": true + }, + "status_led": { + "controllable": true, + "colors": ["green", "amber","off"] + } + }, + { + "name": "Fantray2_1", + "speed": { + "controllable": true + }, + "status_led": { + "controllable": true, + "colors": ["green", "amber","off"] + } + }, + { + "name": "Fantray3_1", + "speed": { + "controllable": true + }, + "status_led": { + "controllable": true, + "colors": ["green", "amber","off"] + } + } + ], + "fan_drawers": [ + { + "name": "Fantray1", + "speed": { + "controllable": false + }, + "status_led": { + "controllable": false + }, + "max_consumed_power": false, + "fans": [ + { + "name": "Fantray1_1", + "speed": { + "controllable": false + }, + "status_led": { + "controllable": false + } + } + ] + }, + { + "name": "Fantray2", + "speed": { + "controllable": false + }, + "status_led": { + "controllable": false + }, + "max_consumed_power": false, + "fans": [ + { + "name": "Fantray2_1", + "speed": { + "controllable": false + }, + "status_led": { + "controllable": false + } + } + ] + }, + { + "name": "Fantray3", + "speed": { + "controllable": false + }, + "status_led": { + "controllable": false + }, + "max_consumed_power": false, + "fans": [ + { + "name": "Fantray3_1", + "speed": { + "controllable": false + }, + "status_led": { + "controllable": false + } + } + ] + } + ], + "psus": [ + { + "name": "PSU1", + "fans": [ + { + "name": "PSU1_FAN1", + "speed": { + "controllable": false + }, + "status_led": { + "controllable": false + } + } + ], + "current": true, + "power": true, + "max_power": false, + "voltage_high_threshold": false, + "voltage_low_threshold": false, + "temperature": false, + "fans_target_speed": false, + "status_led": { + "controllable": false + } + }, + { + "name": "PSU2", + "fans": [ + { + "name": "PSU2_FAN1", + "speed": { + "controllable": false + }, + "status_led": { + "controllable": false + } + } + ], + "current": true, + "power": true, + "max_power": false, + "voltage_high_threshold": false, + "voltage_low_threshold": false, + "temperature": false, + "fans_target_speed": false, + "status_led": { + "controllable": false + } + } + ], + "thermals": [ + { + "name": "LM75_U10", + "controllable": false, + "low-threshold": false, + "low-crit-threshold": true + }, + { + "name": "LM75_U4", + "controllable": false, + "low-threshold": false, + "low-crit-threshold": true + }, + { + "name": "LM75_U7", + "controllable": false, + "low-threshold": false, + "low-crit-threshold": true + }, + { + "name": "LM75_U60", + "controllable": false, + "low-threshold": false, + "low-crit-threshold": true + } + ], + "sfps": [ + { + "name": "PORT0" + }, + { + "name": "PORT1" + }, + { + "name": "PORT2" + }, + { + "name": "PORT3" + }, + { + "name": "PORT4" + }, + { + "name": "PORT5" + }, + { + "name": "PORT6" + }, + { + "name": "PORT7" + }, + { + "name": "PORT8" + }, + { + "name": "PORT9" + }, + { + "name": "PORT10" + }, + { + "name": "PORT11" + }, + { + "name": "PORT12" + }, + { + "name": "PORT13" + }, + { + "name": "PORT14" + }, + { + "name": "PORT15" + }, + { + "name": "PORT16" + }, + { + "name": "PORT17" + }, + { + "name": "PORT18" + }, + { + "name": "PORT19" + }, + { + "name": "PORT20" + }, + { + "name": "PORT21" + }, + { + "name": "PORT22" + }, + { + "name": "PORT23" + }, + { + "name": "PORT24" + }, + { + "name": "PORT25" + }, + { + "name": "PORT26" + }, + { + "name": "PORT27" + }, + { + "name": "PORT28" + }, + { + "name": "PORT29" + }, + { + "name": "PORT30" + }, + { + "name": "PORT31" + }, + { + "name": "PORT32" + }, + { + "name": "PORT33" + }, + { + "name": "PORT34" + }, + { + "name": "PORT35" + }, + { + "name": "PORT36" + }, + { + "name": "PORT37" + }, + { + "name": "PORT38" + }, + { + "name": "PORT39" + }, + { + "name": "PORT40" + }, + { + "name": "PORT41" + }, + { + "name": "PORT42" + }, + { + "name": "PORT43" + }, + { + "name": "PORT44" + }, + { + "name": "PORT45" + }, + { + "name": "PORT46" + }, + { + "name": "PORT47" + }, + { + "name": "PORT48" + }, + { + "name": "PORT49" + }, + { + "name": "PORT50" + }, + { + "name": "PORT51" + }, + { + "name": "PORT52" + }, + { + "name": "PORT53" + }, + { + "name": "PORT54" + }, + { + "name": "PORT55" + } + ] + }, + "interfaces": {} +} diff --git a/device/celestica/x86_64-cel_belgite-r0/platform_asic b/device/celestica/x86_64-cel_belgite-r0/platform_asic new file mode 100644 index 000000000000..960467652765 --- /dev/null +++ b/device/celestica/x86_64-cel_belgite-r0/platform_asic @@ -0,0 +1 @@ +broadcom diff --git a/device/celestica/x86_64-cel_belgite-r0/plugins/eeprom.py b/device/celestica/x86_64-cel_belgite-r0/plugins/eeprom.py new file mode 100644 index 000000000000..d28ff1d0cddb --- /dev/null +++ b/device/celestica/x86_64-cel_belgite-r0/plugins/eeprom.py @@ -0,0 +1,14 @@ +try: + import os + from sonic_eeprom import eeprom_tlvinfo +except ImportError as 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:12.0/i2c-0/0-0052/eeprom" + #Two i2c buses might get flipped order, check them both. + if not os.path.exists(self.eeprom_path): + self.eeprom_path = "/sys/devices/pci0000:00/0000:00:12.0/i2c-1/1-0052/eeprom" + super(board, self).__init__(self.eeprom_path, 0, '', True) diff --git a/device/celestica/x86_64-cel_belgite-r0/pmon_daemon_control.json b/device/celestica/x86_64-cel_belgite-r0/pmon_daemon_control.json new file mode 100644 index 000000000000..689def2c1e25 --- /dev/null +++ b/device/celestica/x86_64-cel_belgite-r0/pmon_daemon_control.json @@ -0,0 +1,4 @@ +{ + "skip_ledd": true, + "skip_pcied": true +} diff --git a/device/celestica/x86_64-cel_belgite-r0/system_health_monitoring_config.json b/device/celestica/x86_64-cel_belgite-r0/system_health_monitoring_config.json new file mode 100644 index 000000000000..4dc38d035ab4 --- /dev/null +++ b/device/celestica/x86_64-cel_belgite-r0/system_health_monitoring_config.json @@ -0,0 +1,16 @@ +{ + "services_to_ignore": [], + "devices_to_ignore": [ + "asic", + "psu.temperature", + "PSU2 Fan", + "PSU1 Fan" + ], + "user_defined_checkers": [], + "polling_interval": 60, + "led_color": { + "fault": "orange", + "normal": "green", + "booting": "orange_blink" + } +} \ No newline at end of file diff --git a/platform/broadcom/one-image.mk b/platform/broadcom/one-image.mk index 4405070460ad..00b3716c06eb 100644 --- a/platform/broadcom/one-image.mk +++ b/platform/broadcom/one-image.mk @@ -52,6 +52,7 @@ $(SONIC_ONE_IMAGE)_LAZY_INSTALLS += $(DELL_S6000_PLATFORM_MODULE) \ $(CEL_DX010_PLATFORM_MODULE) \ $(CEL_HALIBURTON_PLATFORM_MODULE) \ $(CEL_SEASTONE2_PLATFORM_MODULE) \ + $(CEL_BELGITE_PLATFORM_MODULE) \ $(DELTA_AG9032V1_PLATFORM_MODULE) \ $(DELTA_AG9064_PLATFORM_MODULE) \ $(DELTA_AG5648_PLATFORM_MODULE) \ diff --git a/platform/broadcom/platform-modules-cel.mk b/platform/broadcom/platform-modules-cel.mk index de021df7e4db..d485f128c6c2 100644 --- a/platform/broadcom/platform-modules-cel.mk +++ b/platform/broadcom/platform-modules-cel.mk @@ -4,11 +4,13 @@ CEL_DX010_PLATFORM_MODULE_VERSION = 0.9 CEL_HALIBURTON_PLATFORM_MODULE_VERSION = 0.9 CEL_SEASTONE2_PLATFORM_MODULE_VERSION = 0.9 CEL_SILVERSTONE_PLATFORM_MODULE_VERSION = 0.9 +CEL_BELGITE_PLATFORM_MODULE_VERSION = 0.9 export CEL_DX010_PLATFORM_MODULE_VERSION export CEL_HALIBURTON_PLATFORM_MODULE_VERSION export CEL_SEASTONE2_PLATFORM_MODULE_VERSION export CEL_SILVERSTONE_PLATFORM_MODULE_VERSION +export CEL_BELGITE_PLATFORM_MODULE_VERSION CEL_DX010_PLATFORM_MODULE = platform-modules-dx010_$(CEL_DX010_PLATFORM_MODULE_VERSION)_amd64.deb $(CEL_DX010_PLATFORM_MODULE)_SRC_PATH = $(PLATFORM_PATH)/sonic-platform-modules-cel @@ -28,3 +30,6 @@ CEL_SILVERSTONE_PLATFORM_MODULE = platform-modules-silverstone_$(CEL_SILVERSTONE $(CEL_SILVERSTONE_PLATFORM_MODULE)_PLATFORM = x86_64-cel_silverstone-r0 $(eval $(call add_extra_package,$(CEL_DX010_PLATFORM_MODULE),$(CEL_SILVERSTONE_PLATFORM_MODULE))) +CEL_BELGITE_PLATFORM_MODULE = platform-modules-belgite_$(CEL_BELGITE_PLATFORM_MODULE_VERSION)_amd64.deb +$(CEL_BELGITE_PLATFORM_MODULE)_PLATFORM = x86_64-cel_belgite-r0 +$(eval $(call add_extra_package,$(CEL_DX010_PLATFORM_MODULE),$(CEL_BELGITE_PLATFORM_MODULE))) diff --git a/platform/broadcom/sonic-platform-modules-cel/belgite/modules/Makefile b/platform/broadcom/sonic-platform-modules-cel/belgite/modules/Makefile new file mode 100644 index 000000000000..0e3d1284778d --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-cel/belgite/modules/Makefile @@ -0,0 +1 @@ +obj-m:= mc24lc64t.o pddf_custom_wdt.o pddf_custom_psu.o diff --git a/platform/broadcom/sonic-platform-modules-cel/belgite/modules/mc24lc64t.c b/platform/broadcom/sonic-platform-modules-cel/belgite/modules/mc24lc64t.c new file mode 100644 index 000000000000..e71e551438eb --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-cel/belgite/modules/mc24lc64t.c @@ -0,0 +1,174 @@ +/* + * mc24lc64t.c - driver for Microchip 24LC64T(TLV Eeprom) + * + * Copyright (C) 2017 Celestica Corp. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#define EEPROM_SIZE 256 //mc24lt64t eeprom size in bytes. + +struct mc24lc64t_data { + struct mutex update_lock; +}; + +static ssize_t mc24lc64t_read(struct file *filp, struct kobject *kobj, + struct bin_attribute *bin_attr, + char *buf, loff_t off, size_t count) +{ + struct i2c_client *client = kobj_to_i2c_client(kobj); + struct mc24lc64t_data *drvdata = i2c_get_clientdata(client); + unsigned long timeout, read_time, i = 0; + int status; + + mutex_lock(&drvdata->update_lock); + + if (i2c_smbus_write_byte_data(client, off>>8, off)) + { + status = -EIO; + goto exit; + } + + msleep(1); + +begin: + + if (i < count) + { + timeout = jiffies + msecs_to_jiffies(25); /* 25 mS timeout*/ + do { + read_time = jiffies; + + status = i2c_smbus_read_byte(client); + if (status >= 0) + { + buf[i++] = status; + goto begin; + } + } while (time_before(read_time, timeout)); + + status = -ETIMEDOUT; + goto exit; + } + + status = count; + +exit: + mutex_unlock(&drvdata->update_lock); + + return status; +} + +static ssize_t mc24lc64t_write (struct file *filp, struct kobject *kobj, + struct bin_attribute *bin_attr, + char *buf, loff_t off, size_t count){ + + struct i2c_client *client = kobj_to_i2c_client(kobj); + struct mc24lc64t_data *drvdata = i2c_get_clientdata(client); + unsigned long timeout, write_time, i = 0; + int status; + u16 value; + + mutex_lock(&drvdata->update_lock); + +begin: + if (i < count){ + timeout = jiffies + msecs_to_jiffies(25); /* 25 mS timeout*/ + value = (buf[i] << 8 | ( off &0xff)); + do { + write_time = jiffies; + status = i2c_smbus_write_word_data(client, off>>8, value); + if (status >= 0) + { + // increase offset + off++; + // increase buffer index + i++; + goto begin; + } + } while (time_before(write_time, timeout)); + status = -ETIMEDOUT; + goto exit; + } + status = count; + +exit: + mutex_unlock(&drvdata->update_lock); + return status; +} + + +static struct bin_attribute mc24lc64t_bit_attr = { + .attr = { + .name = "eeprom", + .mode = S_IRUGO | S_IWUGO, + }, + .size = EEPROM_SIZE, + .read = mc24lc64t_read, + .write = mc24lc64t_write, +}; + +static int mc24lc64t_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ + struct i2c_adapter *adapter = client->adapter; + struct mc24lc64t_data *drvdata; + int err; + + if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_WRITE_BYTE_DATA + | I2C_FUNC_SMBUS_READ_BYTE)) + return -EPFNOSUPPORT; + + if (!(drvdata = devm_kzalloc(&client->dev, + sizeof(struct mc24lc64t_data), GFP_KERNEL))) + return -ENOMEM; + + i2c_set_clientdata(client, drvdata); + mutex_init(&drvdata->update_lock); + + err = sysfs_create_bin_file(&client->dev.kobj, &mc24lc64t_bit_attr); + return err; +} + +static int mc24lc64t_remove(struct i2c_client *client) +{ + struct mc24lc64t_data *drvdata = i2c_get_clientdata(client); + sysfs_remove_bin_file(&client->dev.kobj, &mc24lc64t_bit_attr); + + return 0; +} + +static const struct i2c_device_id mc24lc64t_id[] = { + { "24lc64t", 0 }, + { } +}; +MODULE_DEVICE_TABLE(i2c, mc24lc64t_id); + +static struct i2c_driver mc24lc64t_driver = { + .driver = { + .name = "mc24lc64t", + .owner = THIS_MODULE, + }, + .probe = mc24lc64t_probe, + .remove = mc24lc64t_remove, + .id_table = mc24lc64t_id, +}; + +module_i2c_driver(mc24lc64t_driver); + +MODULE_AUTHOR("Abhisit Sangjan "); +MODULE_DESCRIPTION("Microchip 24LC64T Driver"); +MODULE_LICENSE("GPL"); + diff --git a/platform/broadcom/sonic-platform-modules-cel/belgite/modules/pddf_custom_psu.c b/platform/broadcom/sonic-platform-modules-cel/belgite/modules/pddf_custom_psu.c new file mode 100644 index 000000000000..3c5e5872aa2e --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-cel/belgite/modules/pddf_custom_psu.c @@ -0,0 +1,125 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "../../../../pddf/i2c/modules/include/pddf_psu_defs.h" + +#define PSU_REG_VOUT_MODE 0x20 +#define PSU_REG_READ_VOUT 0x8b + +ssize_t pddf_show_custom_psu_v_out(struct device *dev, struct device_attribute *da, char *buf); +extern PSU_SYSFS_ATTR_DATA access_psu_v_out; + +static int two_complement_to_int(u16 data, u8 valid_bit, int mask) +{ + u16 valid_data = data & mask; + bool is_negative = valid_data >> (valid_bit - 1); + + return is_negative ? (-(((~valid_data) & mask) + 1)) : valid_data; +} + +static u8 psu_get_vout_mode(struct i2c_client *client) +{ + u8 status = 0, retry = 10; + uint8_t offset = PSU_REG_VOUT_MODE; + + while (retry) { + status = i2c_smbus_read_byte_data((struct i2c_client *)client, offset); + if (unlikely(status < 0)) { + msleep(60); + retry--; + continue; + } + break; + } + + if (status < 0) + { + printk(KERN_ERR "%s: Get PSU Vout mode failed\n", __func__); + return 0; + } + else + { + /*printk(KERN_ERR "%s: vout_mode reg value 0x%x\n", __func__, status);*/ + return status; + } +} + +static u16 psu_get_v_out(struct i2c_client *client) +{ + u16 status = 0, retry = 10; + uint8_t offset = PSU_REG_READ_VOUT; + + while (retry) { + status = i2c_smbus_read_word_data((struct i2c_client *)client, offset); + if (unlikely(status < 0)) { + msleep(60); + retry--; + continue; + } + break; + } + + if (status < 0) + { + printk(KERN_ERR "%s: Get PSU Vout failed\n", __func__); + return 0; + } + else + { + /*printk(KERN_ERR "%s: vout reg value 0x%x\n", __func__, status);*/ + return status; + } +} + +ssize_t pddf_show_custom_psu_v_out(struct device *dev, struct device_attribute *da, char *buf) +{ + struct i2c_client *client = to_i2c_client(dev); + struct sensor_device_attribute *attr = to_sensor_dev_attr(da); + int exponent, mantissa; + int multiplier = 1000; + + u16 value = psu_get_v_out(client); + u8 vout_mode = psu_get_vout_mode(client); + + if ((vout_mode >> 5) == 0) + exponent = two_complement_to_int(vout_mode & 0x1f, 5, 0x1f); + else + { + /*printk(KERN_ERR "%s: Only support linear mode for vout mode\n", __func__);*/ + exponent = 0; + } + mantissa = value; + if (exponent >= 0) + return sprintf(buf, "%d\n", (mantissa << exponent) * multiplier); + else + return sprintf(buf, "%d\n", (mantissa * multiplier) / (1 << -exponent)); +} + + + +static int __init pddf_custom_psu_init(void) +{ + access_psu_v_out.show = pddf_show_custom_psu_v_out; + access_psu_v_out.do_get = NULL; + return 0; +} + +static void __exit pddf_custom_psu_exit(void) +{ + return; +} + +MODULE_AUTHOR("Broadcom"); +MODULE_DESCRIPTION("pddf custom psu api"); +MODULE_LICENSE("GPL"); + +module_init(pddf_custom_psu_init); +module_exit(pddf_custom_psu_exit); diff --git a/platform/broadcom/sonic-platform-modules-cel/belgite/modules/pddf_custom_wdt.c b/platform/broadcom/sonic-platform-modules-cel/belgite/modules/pddf_custom_wdt.c new file mode 100644 index 000000000000..a73a6f6eb143 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-cel/belgite/modules/pddf_custom_wdt.c @@ -0,0 +1,741 @@ +/*************************************************************************** + * Copyright (C) 2021 Celestica Corp * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ + +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define WDT_CONTROL_BASE 0xA100 +#define TEST_SCRATCH_REG 0xA101 +#define REBOOT_CAUSE_REG 0xA105 +#define WDT_SET_TIMER_H_BIT_REG 0xA161 +#define WDT_SET_TIMER_M_BIT_REG 0xA162 +#define WDT_SET_TIMER_L_BIT_REG 0xA163 +#define WDT_TIMER_H_BIT_REG 0xA164 +#define WDT_TIMER_M_BIT_REG 0xA165 +#define WDT_TIMER_L_BIT_REG 0xA166 +#define WDT_ENABLE_REG 0xA167 +#define WDT_FEED_REG 0xA168 +#define WDT_PUNCH_REG 0xA169 +#define WDT_START_FEED 0x01 +#define WDT_STOP_FEED 0x00 + +#define POWER_CYCLE_RESET 0x00 +#define POWER_ON_RESET 0x11 +#define SOFT_SET_WARM_RESET 0x22 +#define SOFT_SET_COLD_RESET 0x33 +#define CPU_WARM_RESET 0x44 +#define CPU_COLD_RESET 0x55 +#define CPU_GPIO_WARM_RESET 0x66 +#define WDT_RESET 0x77 +#define CPU_OVERLOAD_RESET 0x88 +#define INSUFFICIENT_FAN_SPEED_RESET 0xAA + + +#define MAX_TIMER_VALUE 0xffffff +#define DEFUALT_TIMER_VALUE 180000 /* 180s */ +#define WDT_ENABLE 0x01 +#define WDT_DISABLE 0x00 +#define WDT_RESTART 0x00 +#define DRV_NAME "cpld_wdt" +#define DRV_VERSION "1.0.0" +#define DEV_NAME "cpld_wdt" + +struct wdt_data { + unsigned long opened; + struct mutex lock; + char expect_close; + struct watchdog_info ident; + int timeout; + int timer_val; + char caused_reboot; /* last reboot was by the watchdog */ + struct resource *res; +}; + +struct cpld_wdt_private { + struct platform_device *pdev; + struct watchdog_device wddev; + struct cdev cdev; + bool suspended; + struct wdt_data wdat; +}; + +//struct class *cpld_wdt; +static const int max_timeout = MAX_TIMER_VALUE; + +static int timeout = DEFUALT_TIMER_VALUE; /* default 180s */ +module_param(timeout, int, 0); +MODULE_PARM_DESC(timeout, "Start watchdog timer on module load with" + " given initial timeout(unit: ms)." + " Zero (default) disables this feature."); + +static bool nowayout = WATCHDOG_NOWAYOUT; +module_param(nowayout, bool, 0444); +MODULE_PARM_DESC(nowayout, "Disable watchdog shutdown on close"); + +static unsigned int watchdog_get_timeleft(struct cpld_wdt_private *wdt) +{ + int time = 0; + + mutex_lock(&wdt->wdat.lock); + + time = inb(WDT_TIMER_H_BIT_REG); + time = time << 8 | inb(WDT_TIMER_M_BIT_REG); + time = time << 8 | inb(WDT_TIMER_L_BIT_REG); + time = time/1000; + mutex_unlock(&wdt->wdat.lock); + //pr_crit("Watchdog Get Timeleft:%u\n", time); + return time; +} +static int watchdog_get_timeout(struct cpld_wdt_private *wdt) +{ + int timeout = 0; + if(!wdt) + return -EINVAL; + + mutex_lock(&wdt->wdat.lock); + timeout = inb(WDT_SET_TIMER_H_BIT_REG); + timeout = timeout << 8 | inb(WDT_SET_TIMER_M_BIT_REG); + timeout = timeout << 8 | inb(WDT_SET_TIMER_L_BIT_REG); + timeout=timeout/1000; + mutex_unlock(&wdt->wdat.lock); + + return timeout; +} +static int watchdog_set_timeout(struct cpld_wdt_private *wdt, unsigned int timeout) +{ + unsigned char val = 0; + if(!wdt) + return -EINVAL; + + if (timeout <= 0 + || timeout > max_timeout) { + pr_err("watchdog timeout out of range\n"); + return -EINVAL; + } + + mutex_lock(&wdt->wdat.lock); + + wdt->wdat.timeout = timeout; + if (timeout > MAX_TIMER_VALUE) { + wdt->wdat.timer_val = MAX_TIMER_VALUE; + } else { + wdt->wdat.timer_val = timeout; + } + /* Set timer value */ + //pr_crit("Watchdog Timeout:0x%06x\n", wdt->wdat.timer_val); + + outb((wdt->wdat.timer_val >> 16) & 0xff, WDT_SET_TIMER_H_BIT_REG); + outb((wdt->wdat.timer_val >> 8) & 0xff, WDT_SET_TIMER_M_BIT_REG); + outb(wdt->wdat.timer_val & 0xff, WDT_SET_TIMER_L_BIT_REG); + + mutex_unlock(&wdt->wdat.lock); + + return 0; +} + +static int watchdog_ping(struct cpld_wdt_private *wdt) +{ + if(!wdt) + return -EINVAL; + + mutex_lock(&wdt->wdat.lock); + + /* start feed watchdog */ + outb(WDT_START_FEED, WDT_FEED_REG); + /* stop feed watchdog */ + outb(WDT_STOP_FEED, WDT_FEED_REG); + //pr_crit("Watchdog Ping\n"); + mutex_unlock(&wdt->wdat.lock); + + return 0; +} + +static void watchdog_keepalive(struct cpld_wdt_private *wdt) +{ + unsigned char val = 0; + if(!wdt) + return; + + mutex_lock(&wdt->wdat.lock); + + val = inb(WDT_FEED_REG); + + val &= 0x1; + + val = ~val; + + val &= 0x1; + /* start feed watchdog */ + outb(val, WDT_FEED_REG); + //pr_crit("Watchdog Keepalive\n"); + mutex_unlock(&wdt->wdat.lock); + return; +} + +static int watchdog_start(struct cpld_wdt_private *wdt) +{ + if(!wdt) + return -EINVAL; + + /* Make sure we don't die as soon as the watchdog is enabled below */ + //watchdog_keepalive(); + mutex_lock(&wdt->wdat.lock); + outb(WDT_ENABLE, WDT_ENABLE_REG); + outb(WDT_RESTART, WDT_PUNCH_REG); + mutex_unlock(&wdt->wdat.lock); + //pr_crit("Watchdog Start:Enable and PUNCH\n"); + return 0; +} + +static int watchdog_stop(struct cpld_wdt_private *wdt) +{ + if(!wdt) + return -EINVAL; + + mutex_lock(&wdt->wdat.lock); + outb(WDT_DISABLE, WDT_ENABLE_REG); + mutex_unlock(&wdt->wdat.lock); + //pr_crit("Watchdog Stop\n"); + return 0; +} + +static char watchdog_get_reason(struct cpld_wdt_private *p) +{ + char status = 0; + + if (!p) + return -1; + mutex_lock(&p->wdat.lock); + status = inb(REBOOT_CAUSE_REG); + mutex_unlock(&p->wdat.lock); + + return status; +} + +static bool watchdog_is_running(struct cpld_wdt_private *wdt) +{ + /* + * if we fail to determine the watchdog's status assume it to be + * running to be on the safe side + */ + + bool is_running = true; + + mutex_lock(&wdt->wdat.lock); + is_running = inb(WDT_ENABLE_REG); + mutex_unlock(&wdt->wdat.lock); + + return is_running; +} + +static const struct watchdog_info ident = { + .options = WDIOF_SETTIMEOUT | + WDIOF_KEEPALIVEPING | + WDIOF_MAGICCLOSE, + .firmware_version = 0, + .identity = DRV_NAME, +}; + +static ssize_t identity_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + struct cpld_wdt_private *wdt = dev_get_drvdata(dev); + if(!wdt) + return -EINVAL; + return sprintf(buf, "%s\n", wdt->wdat.ident.identity); +} + +static DEVICE_ATTR_RO(identity); + + +static ssize_t state_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + struct cpld_wdt_private *wdt = dev_get_drvdata(dev); + bool state = watchdog_is_running(wdt); + if(true == state) + return sprintf(buf, "active\n"); + else + return sprintf(buf, "inactive\n"); +} + +static DEVICE_ATTR_RO(state); + +static ssize_t status_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + unsigned int status; + struct cpld_wdt_private *wdt = dev_get_drvdata(dev); + if(!wdt) + return -EINVAL; + + return sprintf(buf, "0x%x\n", status); +} + +static DEVICE_ATTR_RO(status); + +static ssize_t reason_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + char bootstatus; + struct cpld_wdt_private *wdt = dev_get_drvdata(dev); + if(!wdt) + return -EINVAL; + + bootstatus = watchdog_get_reason(wdt); + + return sprintf(buf, "0x%02x\n", bootstatus); +} + +static DEVICE_ATTR_RO(reason); + +static ssize_t timeleft_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + unsigned int timeleft; + struct cpld_wdt_private *wdt = dev_get_drvdata(dev); + if(!wdt) + return -EINVAL; + + timeleft = watchdog_get_timeleft(wdt); + + return sprintf(buf, "%u\n", timeleft); + +} + +static DEVICE_ATTR_RO(timeleft); + + +static ssize_t timeout_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + unsigned int timeout; + struct cpld_wdt_private *wdt = dev_get_drvdata(dev); + if(!wdt) + return -EINVAL; + + timeout = watchdog_get_timeout(wdt); + + return sprintf(buf, "%u\n", timeout); +} +static DEVICE_ATTR_RO(timeout); + + +static struct attribute *wdt_attrs[] = { + &dev_attr_state.attr, + &dev_attr_identity.attr, + &dev_attr_status.attr, + &dev_attr_reason.attr, + &dev_attr_timeleft.attr, + &dev_attr_timeout.attr, + NULL, +}; + +static const struct attribute_group wdt_group = { + .attrs = wdt_attrs, +}; + +static int watchdog_open(struct inode *inode, struct file *file) +{ + struct cpld_wdt_private *wdt; + + wdt = container_of(inode->i_cdev, struct cpld_wdt_private, cdev); + + /* If the watchdog is alive we don't need to start it again */ + + if (test_and_set_bit(0, &wdt->wdat.opened)) + return -EBUSY; + + //watchdog_start(wdt); + + if (nowayout) + __module_get(THIS_MODULE); + + wdt->wdat.expect_close = 0; + + file->private_data = wdt; + return nonseekable_open(inode, file); +} + +static int watchdog_release(struct inode *inode, struct file *file) +{ + struct cpld_wdt_private *p; + p = (struct cpld_wdt_private *)file->private_data; + + if(!p) + return -EINVAL; + + clear_bit(0, &p->wdat.opened); + + if (!p->wdat.expect_close) { + //watchdog_keepalive(p); + //pr_crit("Unexpected close, Not stopping watchdog!\n"); + } else if (!nowayout) { + //pr_crit("Cpld Watchdog Stopped!\n"); + watchdog_stop(p); + } + return 0; +} + +/* + * watchdog_write: + * @file: file handle to the watchdog + * @buf: buffer to write + * @count: count of bytes + * @ppos: pointer to the position to write. No seeks allowed + * + * A write to a watchdog device is defined as a keepalive signal. Any + * write of data will do, as we we don't define content meaning. + */ + +static ssize_t watchdog_write(struct file *file, const char __user *buf, + size_t count, loff_t *ppos) +{ + struct cpld_wdt_private *p; + p = (struct cpld_wdt_private *)file->private_data; + + if(!p) + return -EINVAL; + + + if (count) { + if (!nowayout) { + size_t i; + + /* In case it was set long ago */ + bool expect_close = false; + + for (i = 0; i != count; i++) { + char c; + if (get_user(c, buf + i)) + return -EFAULT; + expect_close = (c == 'V'); + } + + /* Properly order writes across fork()ed processes */ + mutex_lock(&p->wdat.lock); + p->wdat.expect_close = expect_close; + mutex_unlock(&p->wdat.lock); + } + + /* someone wrote to us, we should restart timer */ + watchdog_keepalive(p); + } + return count; +} + +/* + * watchdog_ioctl: + * @inode: inode of the device + * @file: file handle to the device + * @cmd: watchdog command + * @arg: argument pointer + * + * The watchdog API defines a common set of functions for all watchdogs + * according to their available features. + */ +static long watchdog_ioctl(struct file *file, unsigned int cmd, + unsigned long arg) +{ + int status; + int new_options; + int new_timeout; + unsigned int val; + union { + struct watchdog_info __user *ident; + int __user *i; + } uarg; + + uarg.i = (int __user *)arg; + + struct cpld_wdt_private *p; + p = (struct cpld_wdt_private *)file->private_data; + if(!p) + return -EINVAL; + + switch (cmd) { + case WDIOC_GETSUPPORT: + return copy_to_user(uarg.ident, &p->wdat.ident, + sizeof(p->wdat.ident)) ? -EFAULT : 0; + + case WDIOC_GETSTATUS: + status = watchdog_is_running(p); + return put_user(status, uarg.i); + + case WDIOC_GETBOOTSTATUS: + //status = watchdog_get_bootstatus(p); + return put_user(status, uarg.i); + + case WDIOC_SETOPTIONS: + if (get_user(new_options, uarg.i)){ + return -EFAULT; + } + + if (new_options & WDIOS_DISABLECARD){ + return watchdog_stop(p); + } + + if (new_options & WDIOS_ENABLECARD){ + return watchdog_start(p); + } + + return 0; + + case WDIOC_KEEPALIVE: + watchdog_keepalive(p); + return 0; + + case WDIOC_SETTIMEOUT: + if (get_user(new_timeout, uarg.i)) + return -EFAULT; + new_timeout = new_timeout*1000; + if (watchdog_set_timeout(p, new_timeout)) + return -EINVAL; + + val = watchdog_get_timeout(p); + return put_user(val, uarg.i); + case WDIOC_GETTIMEOUT: + val = watchdog_get_timeout(p); + return put_user(val, uarg.i); + + case WDIOC_GETTIMELEFT: + val = watchdog_get_timeleft(p); + return put_user(val, uarg.i); + default: + return -ENOTTY; + + } +} + +static int watchdog_notify_sys(struct notifier_block *this, unsigned long code, + void *unused) +{ + if (code == SYS_DOWN || code == SYS_HALT) + //watchdog_stop(p); + + pr_err("CPLD Watchdog did not Stop!\n"); + return NOTIFY_DONE; +} + +static const struct file_operations watchdog_fops = { + .owner = THIS_MODULE, + .llseek = no_llseek, + .open = watchdog_open, + .release = watchdog_release, + .write = watchdog_write, + .unlocked_ioctl = watchdog_ioctl, +}; + +static struct miscdevice watchdog_miscdev = { + //.minor = WATCHDOG_MINOR, + .name = DEV_NAME, + .fops = &watchdog_fops, +}; + +static struct notifier_block watchdog_notifier = { + .notifier_call = watchdog_notify_sys, +}; + +static int cpld_wdt_probe(struct platform_device *pdev) +{ + int wdt_reboot_cause, err = 0; + unsigned char ver = 0; + struct device *dev = &pdev->dev; + + struct cpld_wdt_private *p; + + p = devm_kzalloc(dev, sizeof(*p), GFP_KERNEL); + if (!p) + return -ENOMEM; + + + mutex_init(&(p->wdat.lock)); + + p->wdat.ident.options = WDIOC_SETTIMEOUT + | WDIOF_MAGICCLOSE + | WDIOF_KEEPALIVEPING + | WDIOC_GETTIMELEFT; + + snprintf(p->wdat.ident.identity, + sizeof(p->wdat.ident.identity), "%s", DRV_NAME); + + wdt_reboot_cause = inb(REBOOT_CAUSE_REG); // REBOOT_CAUSE + p->wdat.caused_reboot = wdt_reboot_cause; + ver = inb(WDT_CONTROL_BASE); + pr_info("Watchdog CPLD Version:0x%02x\n", + ver); + + if (timeout) { + if (timeout <= 0 + || timeout > max_timeout) { + pr_err("starting timeout out of range\n"); + err = -EINVAL; + return err; + } + + //watchdog_start(p); + + + if (timeout > MAX_TIMER_VALUE) { + watchdog_set_timeout(p, MAX_TIMER_VALUE); + } else { + watchdog_set_timeout(p, timeout); + } + + if (nowayout) + __module_get(THIS_MODULE); + + pr_info("watchdog started with initial timeout of %u Second(s)\n", + timeout/1000); + } + + err = watchdog_set_timeout(p, timeout); + if (err) + return err; + + err = register_reboot_notifier(&watchdog_notifier); + if (err) + return err; + + err = misc_register(&watchdog_miscdev); + if (err) { + pr_err("cannot register miscdev on minor=%d\n", + watchdog_miscdev.minor); + return err;; + } + + /*p->wdat.res = platform_get_resource(pdev, IORESOURCE_IO, WDT_CONTROL_BASE); + if (!p->wdat.res) + return -ENODEV; + + if (!devm_request_region(dev, p->wdat.res->start, + resource_size(p->wdat.res), + pdev->name)) { + return -EBUSY; + } + */ + err = sysfs_create_group(&pdev->dev.kobj, &wdt_group); + if (err) { + printk(KERN_ERR "Cannot create sysfs for cpld_wdt.\n"); + return err; + } + + platform_set_drvdata(pdev, p); + dev_set_drvdata(dev, p); + + pr_info("initialized. sec (nowayout=%d)\n", + nowayout); + + return 0; +} + +static int cpld_wdt_remove(struct platform_device *pdev) +{ + struct cpld_wdt_private *p = platform_get_drvdata(pdev); + /* + if (!nowayout) + watchdog_stop(&p->wddev); + */ + if(!p) + return 0; + + sysfs_remove_group(&pdev->dev.kobj, &wdt_group); + + misc_deregister(&watchdog_miscdev); + + unregister_reboot_notifier(&watchdog_notifier); + + return 0; + +} + +static struct platform_driver cpld_wdt_driver = { + .probe = cpld_wdt_probe, + .remove = cpld_wdt_remove, + .driver = { + .name = DRV_NAME, + }, +}; + +static struct resource cpld_wdt_resources[] = { + { + .start = 0xA100, + .end = 0xA1F2, + .flags = IORESOURCE_IO, + }, +}; + +static void wdt_dev_release( struct device * dev) +{ + return; +} + +static struct platform_device cpld_wdt_dev = { + .name = DRV_NAME, + .id = -1, + .num_resources = ARRAY_SIZE(cpld_wdt_resources), + .resource = cpld_wdt_resources, + .dev = { + .release = wdt_dev_release, + } +}; + +static int __init cpld_wdt_init_module(void) +{ + int err = 0; + + err = platform_device_register(&cpld_wdt_dev); + err += platform_driver_register(&cpld_wdt_driver); + if(err < 0) + pr_info("Platform Device/Driver Register Failed. err:%d\n", err); + + pr_info("CPLD WatchDog Timer Driver v%s\n", DRV_VERSION); + return err; +} + +static void __exit cpld_wdt_cleanup_module(void) +{ + platform_driver_unregister(&cpld_wdt_driver); + platform_device_unregister(&cpld_wdt_dev); + pr_info("Watchdog Module Unloaded\n"); +} + +module_init(cpld_wdt_init_module); +module_exit(cpld_wdt_cleanup_module); + + +MODULE_DESCRIPTION("Cpld Watchdog Driver"); +MODULE_VERSION(DRV_VERSION); +MODULE_AUTHOR("Nicholas "); +MODULE_LICENSE("GPL"); diff --git a/platform/broadcom/sonic-platform-modules-cel/belgite/pddf/sonic_platform/__init__.py b/platform/broadcom/sonic-platform-modules-cel/belgite/pddf/sonic_platform/__init__.py new file mode 100644 index 000000000000..0533d11584e1 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-cel/belgite/pddf/sonic_platform/__init__.py @@ -0,0 +1,4 @@ +# All the derived classes for PDDF +__all__ = ["platform", "chassis", "sfp", "psu", "thermal"] +from sonic_platform import * #[py/polluting-import] + diff --git a/platform/broadcom/sonic-platform-modules-cel/belgite/pddf/sonic_platform/chassis.py b/platform/broadcom/sonic-platform-modules-cel/belgite/pddf/sonic_platform/chassis.py new file mode 100644 index 000000000000..5e2b204e3d0b --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-cel/belgite/pddf/sonic_platform/chassis.py @@ -0,0 +1,162 @@ +############################################################################# +# PDDF +# Module contains an implementation of SONiC Chassis API +# +############################################################################# +import os + +try: + from sonic_platform_pddf_base.pddf_chassis import PddfChassis + from sonic_platform_pddf_base.pddf_eeprom import PddfEeprom + from sonic_platform_base.chassis_base import ChassisBase + from sonic_platform.fan_drawer import FanDrawer + from sonic_platform.watchdog import Watchdog + import sys + import subprocess + from sonic_py_common import device_info +except ImportError as e: + raise ImportError(str(e) + "- required module not found") + +NUM_COMPONENT = 3 +FAN_DIRECTION_FILE_PATH = "/var/fan_direction" + +class Chassis(PddfChassis): + """ + PDDF Platform-specific Chassis class + """ + + def __init__(self, pddf_data=None, pddf_plugin_data=None): + + PddfChassis.__init__(self, pddf_data, pddf_plugin_data) + vendor_ext = self._eeprom.vendor_ext_str() + with open(FAN_DIRECTION_FILE_PATH, "w+") as f: + f.write(vendor_ext) + (self.platform, self.hwsku) = device_info.get_platform_and_hwsku() + + self.__initialize_components() + + def __initialize_components(self): + from sonic_platform.component import Component + for index in range(0, NUM_COMPONENT): + component = Component(index) + self._component_list.append(component) + + # Provide the functions/variables below for which implementation is to be overwritten + + def initizalize_system_led(self): + return True + + def get_sfp(self, index): + """ + Retrieves sfp represented by (1-based) index + For Quanta the index in sfputil.py starts from 1, so override + Args: + index: An integer, the index (1-based) of the sfp to retrieve. + The index should be the sequence of a physical port in a chassis, + starting from 1. + Returns: + An object dervied from SfpBase representing the specified sfp + """ + sfp = None + + try: + if index == 0: + raise IndexError + sfp = self._sfp_list[index - 1] + except IndexError: + sys.stderr.write("override: SFP index {} out of range (1-{})\n".format( + index, len(self._sfp_list))) + + return sfp + + def get_watchdog(self): + """ + Retreives hardware watchdog device on this chassis + Returns: + An object derived from WatchdogBase representing the hardware + watchdog device + """ + if self._watchdog is None: + self._watchdog = Watchdog() + + return self._watchdog + + def get_reboot_cause(self): + """ + Retrieves the cause of the previous reboot + Returns: + A tuple (string, string) where the first element is a string + containing the cause of the previous reboot. This string must be + one of the predefined strings in this class. If the first string + is "REBOOT_CAUSE_HARDWARE_OTHER", the second string can be used + to pass a description of the reboot cause. + """ + hw_reboot_cause = "" + with open("/sys/devices/platform/cpld_wdt/reason", "r") as f: + hw_reboot_cause = f.read().strip() + + if hw_reboot_cause == "0x77": + reboot_cause = self.REBOOT_CAUSE_WATCHDOG + description = 'Hardware Watchdog Reset' + elif hw_reboot_cause == "0x66": + reboot_cause = self.REBOOT_CAUSE_HARDWARE_OTHER + description = 'GPIO Request Warm Reset' + elif hw_reboot_cause == "0x55": + reboot_cause = self.REBOOT_CAUSE_HARDWARE_OTHER + description = 'CPU Cold Reset' + elif hw_reboot_cause == "0x44": + reboot_cause = self.REBOOT_CAUSE_NON_HARDWARE + description = 'CPU Warm Reset' + elif hw_reboot_cause == "0x33": + reboot_cause = self.REBOOT_CAUSE_NON_HARDWARE + description = 'Soft-Set Cold Reset' + elif hw_reboot_cause == "0x22": + reboot_cause = self.REBOOT_CAUSE_NON_HARDWARE + description = 'Soft-Set Warm Reset' + elif hw_reboot_cause == "0x11": + reboot_cause = self.REBOOT_CAUSE_POWER_LOSS + description = 'Power Loss' + else: + reboot_cause = self.REBOOT_CAUSE_NON_HARDWARE + description = 'Unkown Reason' + + return (reboot_cause, description) + + def get_serial(self): + return self._eeprom.serial_number_str() + + def get_revision(self): + return self._eeprom.revision_str() + + @staticmethod + def get_position_in_parent(): + return -1 + + @staticmethod + def is_replaceable(): + return True + + def get_base_mac(self): + return self._eeprom.base_mac_addr() + + def get_system_eeprom_info(self): + return self._eeprom.system_eeprom_info() + + def get_name(self): + return self.modelstr() + + def get_model(self): + return self._eeprom.part_number_str() + + def set_status_led(self, color): + color_dict = { + 'green': "STATUS_LED_COLOR_GREEN", + 'red': "STATUS_LED_COLOR_AMBER", + 'amber': "STATUS_LED_COLOR_AMBER", + 'off': "STATUS_LED_COLOR_OFF" + } + return self.set_system_led("SYS_LED", color_dict.get(color, "off")) + + def get_status_led(self): + return self.get_system_led("SYS_LED") + diff --git a/platform/broadcom/sonic-platform-modules-cel/belgite/pddf/sonic_platform/component.py b/platform/broadcom/sonic-platform-modules-cel/belgite/pddf/sonic_platform/component.py new file mode 100644 index 000000000000..e4f3e1257da8 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-cel/belgite/pddf/sonic_platform/component.py @@ -0,0 +1,142 @@ +#!/usr/bin/env python + +############################################################################# +# Celestica +# +# Component contains an implementation of SONiC Platform Base API and +# provides the components firmware management function +# +############################################################################# + +import os.path +import subprocess +import time +import os + +try: + from sonic_platform_base.component_base import ComponentBase + #from helper import APIHelper +except ImportError as e: + raise ImportError(str(e) + "- required module not found") + +SWCPLD_VERSION_PATH = "i2cget -y -f 2 0x32 0" +BIOS_VERSION_PATH = "dmidecode -t bios | grep Version" +COMPONENT_NAME_LIST = ["SWCPLD", "Main_BIOS", "Backup_BIOS"] +COMPONENT_DES_LIST = ["Use for boot control and BIOS switch", + "Main basic Input/Output System", + "Backup basic Input/Output System"] + + +class Component(ComponentBase): + """Platform-specific Component class""" + + DEVICE_TYPE = "component" + + def __init__(self, component_index): + ComponentBase.__init__(self) + self.index = component_index + #self._api_helper = APIHelper() + self.name = self.get_name() + + def run_command(self,cmd): + responses = os.popen(cmd).read() + return responses + + def __get_bios_version(self): + # Retrieves the BIOS firmware version + result = self.run_command("i2cget -y -f 2 0x32 0x19") + if result.strip() == "0x01": + if self.name == "Main_BIOS": + version = self.run_command(BIOS_VERSION_PATH) + bios_version = version.strip().split(" ")[1] + return str(bios_version) + elif self.name == "Backup_BIOS": + bios_version = "na" + return bios_version + + elif result.strip() == "0x03": + if self.name == "Backup_BIOS": + version = self.run_command(BIOS_VERSION_PATH) + bios_version = version.strip().split(" ")[1] + return str(bios_version) + elif self.name == "Main_BIOS": + bios_version = "na" + return bios_version + + def __get_cpld_version(self): + if self.name == "SWCPLD": + ver = self.run_command(SWCPLD_VERSION_PATH) + print("ver is %s" % ver) + ver = ver.strip().split("x")[1] + print("ver2 is %s" % ver) + version = int(ver.strip()) / 10 + return str(version) + + + def get_name(self): + """ + Retrieves the name of the component + Returns: + A string containing the name of the component + """ + return COMPONENT_NAME_LIST[self.index] + + def get_description(self): + """ + Retrieves the description of the component + Returns: + A string containing the description of the component + """ + return COMPONENT_DES_LIST[self.index] + + def get_firmware_version(self): + """ + Retrieves the firmware version of module + Returns: + string: The firmware versions of the module + """ + fw_version = None + + if "BIOS" in self.name: + fw_version = self.__get_bios_version() + elif "CPLD" in self.name: + fw_version = self.__get_cpld_version() + + return fw_version + + def install_firmware(self, image_path): + """ + Install firmware to module + Args: + image_path: A string, path to firmware image + Returns: + A boolean, True if install successfully, False if not + """ + return False + + def update_firmware(self, image_path): + return False + + def get_available_firmware_version(self, image_path): + return 'N/A' + + def get_firmware_update_notification(self, image_path): + return "None" + + def get_model(self): + return 'N/A' + + def get_position_in_parent(self): + return -1 + + def get_presence(self): + return True + + def get_serial(self): + return 'N/A' + + def get_status(self): + return True + + def is_replaceable(self): + return False diff --git a/platform/broadcom/sonic-platform-modules-cel/belgite/pddf/sonic_platform/eeprom.py b/platform/broadcom/sonic-platform-modules-cel/belgite/pddf/sonic_platform/eeprom.py new file mode 100644 index 000000000000..bc1ef6420b68 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-cel/belgite/pddf/sonic_platform/eeprom.py @@ -0,0 +1,75 @@ +try: + from sonic_platform_pddf_base.pddf_eeprom import PddfEeprom +except ImportError as e: + raise ImportError(str(e) + "- required module not found") + + +class Eeprom(PddfEeprom): + + _TLV_DISPLAY_VENDOR_EXT = True + _TLV_INFO_MAX_LEN = 256 + pddf_obj = {} + plugin_data = {} + + def __init__(self, pddf_data=None, pddf_plugin_data=None): + if not pddf_data or not pddf_plugin_data: + raise ValueError('PDDF JSON data error') + + self.pddf_obj = pddf_data + self.plugin_data = pddf_plugin_data + + # system EEPROM always has device name EEPROM1 + self.eeprom_path = self.pddf_obj.get_path("EEPROM1", "eeprom") + if self.eeprom_path is None: + return + + super(PddfEeprom, self).__init__(self.eeprom_path, 0, '', True) + #super().__init__(self.pddf_obj, self.plugin_data) + self.eeprom_tlv_dict = dict() + try: + self.eeprom_data = self.read_eeprom() + except Exception as e: + self.eeprom_data = "N/A" + raise RuntimeError("PddfEeprom is not Programmed - Error: {}".format(str(e))) + else: + eeprom = self.eeprom_data + + if not self.is_valid_tlvinfo_header(eeprom): + return + + total_length = ((eeprom[9]) << 8) | (eeprom[10]) + tlv_index = self._TLV_INFO_HDR_LEN + tlv_end = self._TLV_INFO_HDR_LEN + total_length + + while (tlv_index + 2) < self._TLV_INFO_MAX_LEN and tlv_index < tlv_end: + if not self.is_valid_tlv(eeprom[tlv_index:]): + break + + tlv = eeprom[tlv_index:tlv_index + 2 + + (eeprom[tlv_index + 1])] + code = "0x%02X" % ((tlv[0])) + + if (tlv[0]) == self._TLV_CODE_VENDOR_EXT: + name = "Vendor Extension" #lgtm [py/multiple-definition] + value = "" + if self._TLV_DISPLAY_VENDOR_EXT: + for c in tlv[2:2 + tlv[1]]: + value += "0x%02X " % c + else: + name, value = self.decoder(None, tlv) + + self.eeprom_tlv_dict[code] = value + if (eeprom[tlv_index]) == self._TLV_CODE_CRC_32: + break + + tlv_index += (eeprom[tlv_index+1]) + 2 + + def vendor_ext_str(self): + """ + :return: the direction of fan(FB or BF, string) + """ + (is_valid, results) = self.get_tlv_field(self.eeprom_data, self._TLV_CODE_VENDOR_EXT) + if not is_valid: + return "N/A" + return str(hex(int(results[2][2]))).replace("0x", "").upper() + # Provide the functions/variables below for which implementation is to be overwritten diff --git a/platform/broadcom/sonic-platform-modules-cel/belgite/pddf/sonic_platform/fan.py b/platform/broadcom/sonic-platform-modules-cel/belgite/pddf/sonic_platform/fan.py new file mode 100644 index 000000000000..36e95f2c0c08 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-cel/belgite/pddf/sonic_platform/fan.py @@ -0,0 +1,146 @@ +try: + from sonic_platform_pddf_base.pddf_fan import PddfFan + import os +except ImportError as e: + raise ImportError(str(e) + "- required module not found") +# ------------------------------------------------------------------ +# HISTORY: +# 5/1/2022 (A.D.) +# add function:set_status_led, +# Solve the problem that when a fan is pulled out, the Fan LED on the front panel is still green Issue-#11525 +# ------------------------------------------------------------------ +FAN_DIRECTION_FILE_PATH = "/var/fan_direction" + + +class Fan(PddfFan): + """PDDF Platform-Specific Fan class""" + + def __init__(self, tray_idx, fan_idx=0, pddf_data=None, pddf_plugin_data=None, is_psu_fan=False, psu_index=0): + # idx is 0-based + PddfFan.__init__(self, tray_idx, fan_idx, pddf_data, pddf_plugin_data, is_psu_fan, psu_index) + + + def get_speed_tolerance(self): + """ + Retrieves the speed tolerance of the fan + + Returns: + An integer, the percentage of variance from target speed which is + considered tolerable + """ + # Fix the speed vairance to 10 percent. If it changes based on platforms, overwrite + # this value in derived pddf fan class + return 20 + + + def get_presence(self): + #Overwirte the PDDF Common since the FANs on Belgite are all Fixed and present + return True + + def get_direction(self): + """ + Retrieves the direction of fan + + Returns: + A string, either FAN_DIRECTION_INTAKE or FAN_DIRECTION_EXHAUST + depending on fan direction + """ + if self.is_psu_fan: + cmd_num = "58" if self.fans_psu_index == 1 else "59" + cmd = "i2cget -y -f 4 0x%s 0x80" % cmd_num + res = os.popen(cmd).read() + # F2B + if res.strip() == "0x01": + direction = "EXHAUST" + else: + direction = "INTAKE" + else: + direction = "INTAKE" + with open(FAN_DIRECTION_FILE_PATH, "r") as f: + fan_direction = f.read() + if fan_direction.strip() == "FB": + direction = "EXHAUST" + return direction + + + def get_status(self): + speed = self.get_speed_rpm() + status = True if (speed != 0) else False + return status + + def get_target_speed(self): + """ + Retrieves the target (expected) speed of the fan + + Returns: + An integer, the percentage of full fan speed, in the range 0 (off) + to 100 (full speed) + """ + target_speed = 0 + if self.is_psu_fan: + # Target speed not usually supported for PSU fans + target_speed = "N/A" + else: + idx = (self.fantray_index - 1) * 1 + self.fan_index + attr = "fan" + str(idx) + "_pwm" + pwm_path = "/sys/devices/pci0000:00/0000:00:12.0/i2c-0/i2c-2/2-0066/" + attr + pwm = 0 + with open(pwm_path, "r") as f: + pwm = f.read() + + percentage = int(pwm.strip()) + speed_percentage = int(round(percentage / 255 * 100)) + target_speed = speed_percentage + + return target_speed + + def set_status_led(self, color): + color_dict = {"green": "STATUS_LED_COLOR_GREEN", + "red": "STATUS_LED_COLOR_AMBER"} + color = color_dict.get(color, "off") + index = str(self.fantray_index - 1) + led_device_name = "FANTRAY{}".format(self.fantray_index) + "_LED" + + result, msg = self.pddf_obj.is_supported_sysled_state(led_device_name, color) + if result is False: + return False + device_name = self.pddf_obj.data[led_device_name]['dev_info']['device_name'] + self.pddf_obj.create_attr('device_name', device_name, self.pddf_obj.get_led_path()) + self.pddf_obj.create_attr('index', index, self.pddf_obj.get_led_path()) + self.pddf_obj.create_attr('color', color, self.pddf_obj.get_led_cur_state_path()) + + self.pddf_obj.create_attr('dev_ops', 'set_status', self.pddf_obj.get_led_path()) + return True + + @staticmethod + def get_model(): + """ + Retrieves the model number (or part number) of the device + Returns: + string: Model/part number of device + """ + model = "Unknown" + return model + + @staticmethod + def get_serial(): + """ + Retrieves the serial number of the device + Returns: + string: Serial number of device + """ + serial = "Unknown" + return serial + + def get_position_in_parent(self): + """ + Retrieves the fan/psu fan index number + """ + return self.fantray_index if not self.is_psu_fan else self.fans_psu_index + 4 + + @staticmethod + def is_replaceable(): + """ + Retrieves whether the device is replaceable + """ + return False diff --git a/platform/broadcom/sonic-platform-modules-cel/belgite/pddf/sonic_platform/fan_drawer.py b/platform/broadcom/sonic-platform-modules-cel/belgite/pddf/sonic_platform/fan_drawer.py new file mode 100644 index 000000000000..ac80aad4b1eb --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-cel/belgite/pddf/sonic_platform/fan_drawer.py @@ -0,0 +1,33 @@ +############################################################################# +# PDDF +# +# PDDF fan_drawer base class inherited from the common base class fan_drawer.py +# +############################################################################# + +try: + from sonic_platform_pddf_base.pddf_fan_drawer import PddfFanDrawer +except ImportError as e: + raise ImportError(str(e) + "- required module not found") + +class FanDrawer(PddfFanDrawer): + """PDDF Platform-Specific Fan-Drawer class""" + + def __init__(self, tray_idx, pddf_data=None, pddf_plugin_data=None): + # idx is 0-based + PddfFanDrawer.__init__(self, tray_idx, pddf_data, pddf_plugin_data) + + + def set_status_led(self, color): + return self._fan_list[0].set_status_led(color) + + def get_status_led(self, color=None): + return self._fan_list[0].get_status_led() + + def get_serial(self): + serial = "Unknown" + return serial + + def get_model(self): + model = "Unknown" + return model diff --git a/platform/broadcom/sonic-platform-modules-cel/belgite/pddf/sonic_platform/platform.py b/platform/broadcom/sonic-platform-modules-cel/belgite/pddf/sonic_platform/platform.py new file mode 100644 index 000000000000..d6fee81bea31 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-cel/belgite/pddf/sonic_platform/platform.py @@ -0,0 +1,21 @@ +############################################################################# +# PDDF +# Module contains an implementation of SONiC Platform Base API and +# provides the platform information +# +############################################################################# + +try: + from sonic_platform_pddf_base.pddf_platform import PddfPlatform +except ImportError as e: + raise ImportError(str(e) + "- required module not found") + +class Platform(PddfPlatform): + """ + PDDF Platform-Specific Platform Class + """ + + def __init__(self): + PddfPlatform.__init__(self) + + # Provide the functions/variables below for which implementation is to be overwritten diff --git a/platform/broadcom/sonic-platform-modules-cel/belgite/pddf/sonic_platform/psu.py b/platform/broadcom/sonic-platform-modules-cel/belgite/pddf/sonic_platform/psu.py new file mode 100644 index 000000000000..9616d030012f --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-cel/belgite/pddf/sonic_platform/psu.py @@ -0,0 +1,55 @@ +try: + from sonic_platform_pddf_base.pddf_psu import PddfPsu +except ImportError as e: + raise ImportError (str(e) + "- required module not found") + + +class Psu(PddfPsu): + """PDDF Platform-Specific PSU class""" + + PLATFORM_PSU_CAPACITY = 550 + + def __init__(self, index, pddf_data=None, pddf_plugin_data=None): + PddfPsu.__init__(self, index, pddf_data, pddf_plugin_data) + + # Provide the functions/variables below for which implementation is to be overwritten + def get_capacity(self): + """ + Gets the capacity (maximum output power) of the PSU in watts + + Returns: + An integer, the capacity of PSU + """ + return (self.PLATFORM_PSU_CAPACITY) + + def get_type(self): + """ + Gets the type of the PSU + + Returns: + A string, the type of PSU (AC/DC) + """ + ptype = "AC" + + # This platform supports AC PSU + return ptype + + def is_replaceable(self): + """ + Indicate whether this device is replaceable. + Returns: + bool: True if it is replaceable. + """ + return True + + def get_position_in_parent(self): + """ + Retrieves the psu index number + """ + return self.psu_index + + def get_revision(self): + return "N/A" + + def temperature(self): + return self.get_temperature() diff --git a/platform/broadcom/sonic-platform-modules-cel/belgite/pddf/sonic_platform/sfp.py b/platform/broadcom/sonic-platform-modules-cel/belgite/pddf/sonic_platform/sfp.py new file mode 100644 index 000000000000..a216a37afcf8 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-cel/belgite/pddf/sonic_platform/sfp.py @@ -0,0 +1,15 @@ +try: + from sonic_platform_pddf_base.pddf_sfp import PddfSfp +except ImportError as e: + raise ImportError (str(e) + "- required module not found") + + +class Sfp(PddfSfp): + """ + PDDF Platform-Specific Sfp class + """ + + def __init__(self, index, pddf_data=None, pddf_plugin_data=None): + PddfSfp.__init__(self, index, pddf_data, pddf_plugin_data) + + # Provide the functions/variables below for which implementation is to be overwritten diff --git a/platform/broadcom/sonic-platform-modules-cel/belgite/pddf/sonic_platform/thermal.py b/platform/broadcom/sonic-platform-modules-cel/belgite/pddf/sonic_platform/thermal.py new file mode 100644 index 000000000000..7dd294fb8475 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-cel/belgite/pddf/sonic_platform/thermal.py @@ -0,0 +1,111 @@ +try: + from sonic_platform_pddf_base.pddf_thermal import PddfThermal +except ImportError as e: + raise ImportError(str(e) + "- required module not found") + + + +class Thermal(PddfThermal): + """PDDF Platform-Specific Thermal class""" + + def __init__(self, index, pddf_data=None, pddf_plugin_data=None, is_psu_thermal=False, psu_index=0): + PddfThermal.__init__(self, index, pddf_data, pddf_plugin_data, is_psu_thermal, psu_index) + self.minimum_thermal = self.get_temperature() + self.maximum_thermal = self.get_temperature() + # Provide the functions/variables below for which implementation is to be overwritten + + def get_low_critical_threshold(self): + """ + Retrieves the low critical threshold temperature of thermal + Returns: + A float number, the low critical threshold temperature of thermal in Celsius + up to nearest thousandth of one degree Celsius, e.g. 30.125 + """ + return 0.001 + + def get_high_critical_threshold(self): + """ + Retrieves the high critical threshold temperature of thermal + Returns: + A float number, the high critical threshold temperature of thermal in Celsius + up to nearest thousandth of one degree Celsius, e.g. 30.125 + """ + + return 100.000 + + def get_minimum_recorded(self): + """ + Retrieves the minimum recorded temperature of thermal + Returns: + A float number, the minimum recorded temperature of thermal in Celsius + up to nearest thousandth of one degree Celsius, e.g. 30.125 + """ + tmp = self.get_temperature() + if tmp < self.minimum_thermal: + self.minimum_thermal = tmp + + return self.minimum_thermal + + def get_maximum_recorded(self): + """ + Retrieves the maximum recorded temperature of thermal + Returns: + A float number, the maximum recorded temperature of thermal in Celsius + up to nearest thousandth of one degree Celsius, e.g. 30.125 + """ + tmp = self.get_temperature() + if tmp > self.maximum_thermal: + self.maximum_thermal = tmp + + return self.maximum_thermal + + def get_presence(self): + """ + Retrieves the presence of the PSU + Returns: + bool: True if Thermal is present, False if not + """ + return True + + def get_model(self): + """ + Retrieves the model number (or part number) of the device + Returns: + string: Model/part number of device + """ + return "N/A" + + def get_serial(self): + """ + Retrieves the serial number of the device + Returns: + string: Serial number of device + """ + return "N/A" + + def get_status(self): + """ + Retrieves the operational status of the device + Returns: + A boolean value, True if device is operating properly, False if not + """ + if not self.get_presence(): + return False + + return True + + def is_replaceable(self): + """ + Retrieves whether thermal module is replaceable + Returns: + A boolean value, True if replaceable, False if not + """ + return False + + def get_position_in_parent(self): + """ + Retrieves the thermal position information + Returns: + A int value, 0 represent ASIC thermal, 1 represent CPU thermal info + """ + return 0 diff --git a/platform/broadcom/sonic-platform-modules-cel/belgite/pddf/sonic_platform/watchdog.py b/platform/broadcom/sonic-platform-modules-cel/belgite/pddf/sonic_platform/watchdog.py new file mode 100644 index 000000000000..7973e8a3cfad --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-cel/belgite/pddf/sonic_platform/watchdog.py @@ -0,0 +1,229 @@ +#!/usr/bin/env python + +############################################################################# +# +# Watchdog contains an implementation of SONiC Platform Base Watchdog API +# +############################################################################# +import fcntl +import os +import array + +try: + from sonic_platform_base.watchdog_base import WatchdogBase +except ImportError as e: + raise ImportError(str(e) + "- required module not found") + +""" ioctl constants """ +IO_WRITE = 0x40000000 +IO_READ = 0x80000000 +IO_READ_WRITE = 0xC0000000 +IO_SIZE_INT = 0x00040000 +IO_SIZE_40 = 0x00280000 +IO_TYPE_WATCHDOG = ord('W') << 8 + +WDR_INT = IO_READ | IO_SIZE_INT | IO_TYPE_WATCHDOG +WDR_40 = IO_READ | IO_SIZE_40 | IO_TYPE_WATCHDOG +WDWR_INT = IO_READ_WRITE | IO_SIZE_INT | IO_TYPE_WATCHDOG + +""" Watchdog ioctl commands """ +WDIOC_GETSUPPORT = 0 | WDR_40 +WDIOC_GETSTATUS = 1 | WDR_INT +WDIOC_GETBOOTSTATUS = 2 | WDR_INT +WDIOC_GETTEMP = 3 | WDR_INT +WDIOC_SETOPTIONS = 4 | WDR_INT +WDIOC_KEEPALIVE = 5 | WDR_INT +WDIOC_SETTIMEOUT = 6 | WDWR_INT +WDIOC_GETTIMEOUT = 7 | WDR_INT +WDIOC_SETPRETIMEOUT = 8 | WDWR_INT +WDIOC_GETPRETIMEOUT = 9 | WDR_INT +WDIOC_GETTIMELEFT = 10 | WDR_INT + +""" Watchdog status constants """ +WDIOS_DISABLECARD = 0x0001 +WDIOS_ENABLECARD = 0x0002 + +WDT_COMMON_ERROR = -1 +WD_MAIN_IDENTITY = "cpld_wdt" +WDT_SYSFS_PATH = "/sys/class/watchdog/" + +DEFAULT_TIMEOUT=180 +watchdog = 0 + +class CpldWatchdog(WatchdogBase): + + watchdog = None + def __init__(self): + global watchdog + self.status_path = "/sys/devices/platform/cpld_wdt/status" + self.state_path = "/sys/devices/platform/cpld_wdt/state" + self.timeout_path = "/sys/devices/platform/cpld_wdt/timeout" + # Set default value + with open("/sys/devices/platform/cpld_wdt/state", "r") as fd: + txt = fd.read() + state = txt.strip() + self.armed = True if state == "active" else False + self.timeout = DEFAULT_TIMEOUT + if not watchdog: + watchdog = os.open("/dev/cpld_wdt", os.O_RDWR) + + self.watchdog = watchdog + #self._disable() + + + def _read_file(self, file_path): + """ + Read text file + """ + try: + with open(file_path, "r") as fd: + txt = fd.read() + except IOError: + return WDT_COMMON_ERROR + return txt.strip() + + def _enable(self): + """ + Turn on the watchdog timer + """ + req = array.array('h', [WDIOS_ENABLECARD]) + fcntl.ioctl(self.watchdog, WDIOC_SETOPTIONS, req, False) + + def _disable(self): + """ + Turn off the watchdog timer + """ + req = array.array('h', [WDIOS_DISABLECARD]) + fcntl.ioctl(self.watchdog, WDIOC_SETOPTIONS, req, False) + + def _keepalive(self): + """ + Keep alive watchdog timer + """ + fcntl.ioctl(self.watchdog, WDIOC_KEEPALIVE) + + def _settimeout(self, seconds): + """ + Set watchdog timer timeout + @param seconds - timeout in seconds + @return is the actual set timeout + """ + req = array.array('I', [seconds]) + fcntl.ioctl(self.watchdog, WDIOC_SETTIMEOUT, req, True) + return int(req[0]) + + def _gettimeout(self, timeout_path): + """ + Get watchdog timeout + @return watchdog timeout + """ + req = array.array('I', [0]) + fcntl.ioctl(self.watchdog, WDIOC_GETTIMEOUT, req, True) + + return int(req[0]) + + def _gettimeleft(self): + """ + Get time left before watchdog timer expires + @return time left in seconds + """ + req = array.array('I', [0]) + fcntl.ioctl(self.watchdog, WDIOC_GETTIMELEFT, req, True) + + return int(req[0]) + + ################################################################# + + def arm(self, seconds): + """ + Arm the hardware watchdog with a timeout of seconds. + If the watchdog is currently armed, calling this function will + simply reset the timer to the provided value. If the underlying + hardware does not support the value provided in , this + method should arm the watchdog with the *next greater* available + value. + Returns: + An integer specifying the *actual* number of seconds the watchdog + was armed with. On failure returns -1. + """ + + ret = WDT_COMMON_ERROR + if seconds < 0: + return ret + + try: + if self.timeout != seconds: + self.timeout = self._settimeout(seconds) + + if self.armed: + self._keepalive() + else: + self._enable() + self.armed = True + + ret = self.timeout + except IOError as e: + pass + return ret + + def disarm(self): + """ + Disarm the hardware watchdog + Returns: + A boolean, True if watchdog is disarmed successfully, False if not + """ + disarmed = False + if self.is_armed(): + try: + self._disable() + self.armed = False + disarmed = True + except IOError: + pass + + return disarmed + + def is_armed(self): + """ + Retrieves the armed state of the hardware watchdog. + Returns: + A boolean, True if watchdog is armed, False if not + """ + + return self.armed + + def get_remaining_time(self): + """ + If the watchdog is armed, retrieve the number of seconds remaining on + the watchdog timer + Returns: + An integer specifying the number of seconds remaining on thei + watchdog timer. If the watchdog is not armed, returns -1. + """ + + timeleft = WDT_COMMON_ERROR + + if self.armed: + try: + timeleft = self._gettimeleft() + except IOError: + pass + + return timeleft + + def __del__(self): + """ + Close watchdog + """ + + if self.watchdog is not None : + os.close(self.watchdog) + +class Watchdog(CpldWatchdog): + """PDDF Platform-Specific Watchdog Class""" + + def __init__(self): + CpldWatchdog.__init__(self) + + # Provide the functions/variables below for which implementation is to be overwritten + diff --git a/platform/broadcom/sonic-platform-modules-cel/belgite/pddf/sonic_platform_setup.py b/platform/broadcom/sonic-platform-modules-cel/belgite/pddf/sonic_platform_setup.py new file mode 100644 index 000000000000..159e26656138 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-cel/belgite/pddf/sonic_platform_setup.py @@ -0,0 +1,27 @@ +import os +from setuptools import setup +os.listdir + +setup( + name='sonic-platform', + version='1.0', + description='SONiC platform API implementation on Celestica Platforms based on PDDF', + license='Apache 2.0', + author='SONiC Team', + author_email='linuxnetdev@microsoft.com', + url='https://github.com/Azure/sonic-buildimage', + packages=['sonic_platform'], + classifiers=[ + 'Development Status :: 3 - Alpha', + 'Environment :: Plugins', + 'Intended Audience :: Developers', + 'Intended Audience :: Information Technology', + 'Intended Audience :: System Administrators', + 'License :: OSI Approved :: Apache Software License', + 'Natural Language :: English', + 'Operating System :: POSIX :: Linux', + 'Programming Language :: Python :: 3.7', + 'Topic :: Utilities', + ], + keywords='sonic SONiC platform PLATFORM', +) diff --git a/platform/broadcom/sonic-platform-modules-cel/belgite/scripts/pddf_post_device_create.sh b/platform/broadcom/sonic-platform-modules-cel/belgite/scripts/pddf_post_device_create.sh new file mode 100755 index 000000000000..414eea7a2b40 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-cel/belgite/scripts/pddf_post_device_create.sh @@ -0,0 +1,10 @@ +#!/bin/bash +# Set U60 shutdown threhold 80 +sudo i2cset -y -f 6 0x49 0x3 0x4e 0x00 i +sleep 0.1 +sudo i2cset -y -f 6 0x49 0x1 0x2 +sleep 0.1 +#Set LM75 shutdown enable +sudo i2cset -y -f 2 0x32 0x45 0x1 + +echo -2 | tee /sys/bus/i2c/drivers/pca954x/*-00*/idle_state diff --git a/platform/broadcom/sonic-platform-modules-cel/belgite/scripts/pddf_pre_driver_install.sh b/platform/broadcom/sonic-platform-modules-cel/belgite/scripts/pddf_pre_driver_install.sh new file mode 100755 index 000000000000..2b37a5d5f6ff --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-cel/belgite/scripts/pddf_pre_driver_install.sh @@ -0,0 +1,5 @@ +#!/bin/bash +modprobe -r i2c_ismt +sleep 0.1 +modprobe -r i2c-i801 +sleep 0.1 diff --git a/platform/broadcom/sonic-platform-modules-cel/belgite/service/belgite-pddf-platform-monitor.service b/platform/broadcom/sonic-platform-modules-cel/belgite/service/belgite-pddf-platform-monitor.service new file mode 100644 index 000000000000..233971ae784d --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-cel/belgite/service/belgite-pddf-platform-monitor.service @@ -0,0 +1,16 @@ +[Unit] +Description=Belgite Platform Monitoring service +Before=pmon.service +After=pddf-platform-init.service +DefaultDependencies=no + +[Service] +ExecStart=/usr/local/bin/belgite_pddf_monitor.py +KillSignal=SIGKILL +SuccessExitStatus=SIGKILL + +# Resource Limitations +LimitCORE=infinity + +[Install] +WantedBy=multi-user.target diff --git a/platform/broadcom/sonic-platform-modules-cel/belgite/systemd/pddf-platform-init.service b/platform/broadcom/sonic-platform-modules-cel/belgite/systemd/pddf-platform-init.service new file mode 100644 index 000000000000..249fa2e89764 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-cel/belgite/systemd/pddf-platform-init.service @@ -0,0 +1,15 @@ +[Unit] +Description=PDDF module and device initialization service +Before=pmon.service watchdog-control.service +Before=opennsl-modules.service +DefaultDependencies=no + +[Service] +Type=oneshot +ExecStart=/usr/local/bin/pddf_util.py install +ExecStop=/usr/local/bin/pddf_util.py clean +RemainAfterExit=yes + +[Install] +WantedBy=multi-user.target +WantedBy=opennsl-modules.service diff --git a/platform/broadcom/sonic-platform-modules-cel/belgite/utils/belgite_pddf_monitor.py b/platform/broadcom/sonic-platform-modules-cel/belgite/utils/belgite_pddf_monitor.py new file mode 100755 index 000000000000..017a04709f3c --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-cel/belgite/utils/belgite_pddf_monitor.py @@ -0,0 +1,272 @@ +#!/usr/bin/env python3 +# +# Copyright (C) Celestica Technology Corporation +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# ------------------------------------------------------------------ +# HISTORY: +# 9/16/2021 (A.D.) +# ------------------------------------------------------------------ + +try: + import sys + import getopt + import subprocess + import logging + import logging.config + import time # this is only being used as part of the example + import signal + import math + from sonic_platform import platform +except ImportError as e: + raise ImportError('%s - required module not found' % str(e)) + +# Deafults +FUNCTION_NAME = 'cel_belgite_monitor' +DUTY_MAX = 100 +FAN_NUMBER = 3 +SENSOR_NUMBER = 4 +CPU_CORE_TEMP = r"/sys/devices/platform/coretemp.0/hwmon/hwmon1/temp1_input" + + +class cel_belgite_monitor(object): + """ + Make a class we can use to capture stdout and sterr in the log + """ + # static temp var + _ori_temp = 0 + _new_perc = DUTY_MAX / 2 + syslog = logging.getLogger("[" + FUNCTION_NAME + "]") + init_fan_temperature = [0, 0, 0, 0] + + def __init__(self, log_file, log_level): + """Needs a logger and a logger level.""" + formatter = logging.Formatter('%(name)s %(message)s') + sys_handler = logging.handlers.SysLogHandler(address='/dev/log') + sys_handler.setFormatter(formatter) + sys_handler.ident = 'common' + self.syslog.setLevel(logging.WARNING) + self.syslog.addHandler(sys_handler) + self.platform_chassis_obj = platform.Platform().get_chassis() + # set up logging to file + logging.basicConfig( + filename=log_file, + filemode='w', + level=log_level, + format='[%(asctime)s] {%(pathname)s:%(lineno)d} %(levelname)s - %(message)s', + datefmt='%H:%M:%S' + ) + + # set up logging to console + if log_level == logging.DEBUG: + console = logging.StreamHandler() + console.setLevel(log_level) + formatter = logging.Formatter('%(name)-12s: %(levelname)-8s %(message)s') + console.setFormatter(formatter) + logging.getLogger('').addHandler(console) + logging.debug('SET. logfile:%s / loglevel:%d' % (log_file, log_level)) + + def get_all_temperature(self): + """ + return: all temperature + """ + all_temperature_list = list() + for sensor_index in range(SENSOR_NUMBER): + temp = self.platform_chassis_obj.get_thermal(sensor_index).get_temperature() + if temp is None or str(temp).strip() == "": + return False + temp = temp*1000 + all_temperature_list.append(temp) + u4_temperature = all_temperature_list[0] + u7_temperature = all_temperature_list[1] + # default CPU temperature 70 + cpu_temperature = 70000 + try: + with open(CPU_CORE_TEMP, "r") as f: + cpu_temperature = float(f.read().strip()) + except Exception as E: + logging.debug('Error: %s' % E) + u60_temperature = all_temperature_list[3] + return [u4_temperature, u7_temperature, cpu_temperature, u60_temperature] + + def get_fan_speed_by_temperature(self, temp_list): + fan1_direction = self.platform_chassis_obj.get_fan(0).get_direction() + logging.debug('INFO: fan direction: %s' % str(fan1_direction)) + all_temp = self.get_all_temperature() + logging.debug('INFO: all_temp: %s' % str(all_temp)) + # B2F=intake: U7 temperature, F2B-EXHAUST: U4 temperature + a = 1 if fan1_direction.lower() == "intake" else 0 + sensor_temp = all_temp[a] + cup_temp = all_temp[2] + u60_temp = all_temp[3] + logging.debug('sensor_temp:%d cup_temp:%d u60_temp:%d' % (sensor_temp, cup_temp, u60_temp)) + update_temp_sensor, update_temp_cpu, update_temp_u60 = True, True, True + if all_temp[a] - temp_list[a] < 0: + update_temp_sensor = False + if cup_temp - temp_list[2] < 0: + update_temp_cpu = False + if u60_temp - temp_list[3] < 0: + update_temp_u60 = False + + # U4 U7 + if not update_temp_sensor: # temperature down + b = math.trunc(1400/13) + if sensor_temp <= 32000: + sensor_temp_speed = 40 + elif sensor_temp >= 45000: + sensor_temp_speed = 100 + else: + sensor_temp_speed = int(math.trunc(60 / 13) * math.trunc(sensor_temp / 1000) - b) + else: # temperature up + b = math.trunc(1580 / 13) + if sensor_temp <= 35000: + sensor_temp_speed = 40 + elif sensor_temp >= 48000: + sensor_temp_speed = 100 + else: + sensor_temp_speed = int(math.trunc(60/13) * math.trunc(sensor_temp/1000) - b) + + # CPU + if not update_temp_cpu: # temperature down + b = 228 + if cup_temp <= 67000: + cpu_temp_speed = 40 + elif cup_temp >= 82000: + cpu_temp_speed = 100 + else: + cpu_temp_speed = int(4 * (cup_temp / 1000) - b) + else: # temperature up + b = 240 + if cup_temp <= 70000: + cpu_temp_speed = 40 + elif cup_temp >= 85000: + cpu_temp_speed = 100 + else: + cpu_temp_speed = int(4 * (cup_temp / 1000) - b) + + # U60 + if not update_temp_u60: # temperature down + b = 168 + if u60_temp <= 52000: + u60_temp_speed = 40 + elif u60_temp >= 67000: + u60_temp_speed = 100 + else: + u60_temp_speed = int(4 * (u60_temp / 1000) - b) + else: # temperature up + b = 180 + if u60_temp <= 55000: + u60_temp_speed = 40 + elif u60_temp >= 70000: + u60_temp_speed = 100 + else: + u60_temp_speed = int(4 * (u60_temp / 1000) - b) + return max([sensor_temp_speed, cpu_temp_speed, u60_temp_speed]) + + def manage_fans(self): + fan_presence_list = [True, True, True] # whether fan is absent or not + for fan_index in range(FAN_NUMBER): + if not self.platform_chassis_obj.get_fan(fan_index).get_presence() or not \ + self.platform_chassis_obj.get_fan(fan_index).get_status(): + fan_presence_list[fan_index] = False + logging.debug('self.platform_chassis_obj.get_fan(fan_index).get_presence():%s' + % str(self.platform_chassis_obj.get_fan(fan_index).get_presence())) + logging.debug('self.platform_chassis_obj.get_fan(fan_index).get_status():%s' + % str(self.platform_chassis_obj.get_fan(fan_index).get_status())) + else: + fan_presence_list[fan_index] = True + + fans_inserted_num = FAN_NUMBER - fan_presence_list.count(False) + if fans_inserted_num == 0: # all fans broken, power off + self.syslog.critical("No fans inserted. Severe overheating hazard. " + "Please insert Fans immediately or power off the device\n") + + # power off + elif fans_inserted_num in [1, 2]: # 1 or 2 present, full speed + self._new_perc = DUTY_MAX + else: # 3 fans normal, manage the fans follow thermal policy + self._new_perc = self.get_fan_speed_by_temperature(self.init_fan_temperature) + logging.debug('INFO: 3 fans inserted: self._new_perc: %s' % str(self._new_perc)) + self.init_fan_temperature = self.get_all_temperature() + + for i in range(FAN_NUMBER): + aa = self.platform_chassis_obj.get_fan(i).get_speed() + logging.debug("INFO: Get before setting fan speed: %s" % aa) + if self._new_perc < 40: + self._new_perc = 40 + if self._new_perc > 100: + self._new_perc = 100 + set_stat = self.platform_chassis_obj.get_fan(i).set_speed(self._new_perc) + if set_stat is True: + logging.debug('INFO: PASS. set_fan%d_duty_cycle (%d)' % (i, self._new_perc)) + else: + logging.debug('INFO: FAIL. set_fan%d_duty_cycle (%d)' % (i, self._new_perc)) + + +def handler(signum, frame): + platform_chassis = platform.Platform().get_chassis() + for _ in range(FAN_NUMBER): + set_stat = platform_chassis.get_fan(_).set_speed(DUTY_MAX) + if set_stat is True: + logging.debug('INFO:Cause signal %d, set fan speed max.' % signum) + else: + logging.debug('INFO: FAIL. set_fan_duty_cycle (%d)' % DUTY_MAX) + # Enable the CPLD Heartbeat back + status, output = subprocess.getstatusoutput('i2cset -f -y 75 0x40 0x22 0x00') + if status == 0: + logging.debug('INFO: CPLD Heartbeat check is enabled back') + sys.exit(0) + + +def main(argv): + global test_temp + + log_file = '/home/admin/%s.log' % FUNCTION_NAME + log_level = logging.INFO + if len(sys.argv) != 1: + try: + opts, args = getopt.getopt(argv, 'hdlt:', ['lfile=']) + except getopt.GetoptError: + print('Usage: %s [-d] [-l ]' % sys.argv[0]) + return 0 + for opt, arg in opts: + if opt == '-h': + print('Usage: %s [-d] [-l ]' % sys.argv[0]) + return 0 + elif opt in ('-d', '--debug'): + log_level = logging.DEBUG + elif opt in ('-l', '--lfile'): + log_file = arg + + if sys.argv[1] == '-t': + if len(sys.argv) != 6: + print("temp test, need input 4 temp") + return 0 + + signal.signal(signal.SIGINT, handler) + signal.signal(signal.SIGTERM, handler) + # Disaable the CPLD Heartbeat check to control Fan speed from CPU via ADT7470 + subprocess.getstatusoutput('i2cset -f -y 2 0x32 0x30 0x01') + + monitor = cel_belgite_monitor(log_file, log_level) + + # Loop forever, doing something useful hopefully: + while True: + monitor.manage_fans() + time.sleep(10) + + +if __name__ == '__main__': + main(sys.argv[1:]) diff --git a/platform/broadcom/sonic-platform-modules-cel/debian/control b/platform/broadcom/sonic-platform-modules-cel/debian/control index 605a3cd0a834..2ba492829d26 100644 --- a/platform/broadcom/sonic-platform-modules-cel/debian/control +++ b/platform/broadcom/sonic-platform-modules-cel/debian/control @@ -25,3 +25,8 @@ Package: platform-modules-silverstone Architecture: amd64 Depends: linux-image-5.10.0-12-2-amd64-unsigned Description: kernel modules for platform devices such as led, sfp. + +Package: platform-modules-belgite +Architecture: amd64 +Depends: linux-image-5.10.0-8-2-amd64-unsigned +Description: kernel modules for platform devices such as led, sfp diff --git a/platform/broadcom/sonic-platform-modules-cel/debian/platform-modules-belgite.install b/platform/broadcom/sonic-platform-modules-cel/debian/platform-modules-belgite.install new file mode 100644 index 000000000000..6f9f8f267ed9 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-cel/debian/platform-modules-belgite.install @@ -0,0 +1,7 @@ +belgite/systemd/pddf-platform-init.service etc/systemd/system +belgite/service/belgite-pddf-platform-monitor.service lib/systemd/system +belgite/scripts/pddf_pre_driver_install.sh usr/local/bin +belgite/scripts/pddf_post_device_create.sh usr/local/bin +belgite/utils/belgite_pddf_monitor.py usr/local/bin +belgite/pddf/sonic_platform-1.0-py3-none-any.whl usr/share/sonic/device/x86_64-cel_belgite-r0/pddf +services/platform_api/platform_api_mgnt.sh usr/local/bin diff --git a/platform/broadcom/sonic-platform-modules-cel/debian/platform-modules-belgite.postinst b/platform/broadcom/sonic-platform-modules-cel/debian/platform-modules-belgite.postinst new file mode 100644 index 000000000000..4abd671baec9 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-cel/debian/platform-modules-belgite.postinst @@ -0,0 +1,6 @@ +depmod -a +/usr/local/bin/platform_api_mgnt.sh install +systemctl enable pddf-platform-init.service +systemctl start pddf-platform-init.service +systemctl enable belgite-pddf-platform-monitor.service +systemctl start belgite-pddf-platform-monitor.service diff --git a/platform/broadcom/sonic-platform-modules-cel/debian/rules b/platform/broadcom/sonic-platform-modules-cel/debian/rules index 97d383fcfa28..29b2b7913ade 100755 --- a/platform/broadcom/sonic-platform-modules-cel/debian/rules +++ b/platform/broadcom/sonic-platform-modules-cel/debian/rules @@ -1,11 +1,12 @@ #!/usr/bin/make -f export INSTALL_MOD_DIR:=extra +export KBUILD_EXTRA_SYMBOLS := /sonic/platform/pddf/i2c/Module.symvers.PDDF KVERSION ?= $(shell uname -r) KERNEL_SRC := /lib/modules/$(KVERSION) MOD_SRC_DIR:= $(shell pwd) -MODULE_DIRS:= dx010 haliburton silverstone seastone2 +MODULE_DIRS:= dx010 haliburton silverstone seastone2 belgite %: dh $@ @@ -18,6 +19,17 @@ override_dh_auto_build: python3 setup.py bdist_wheel -d $(MOD_SRC_DIR)/$${mod}/modules; \ continue; \ fi; \ + if [ $$mod = "belgite" ]; then \ + cd $(MOD_SRC_DIR); \ + if [ -d $(MOD_SRC_DIR)/$${mod}/pddf ]; then \ + cd $(MOD_SRC_DIR)/$${mod}/pddf; \ + if [ -f sonic_platform_setup.py ]; then \ + python3 sonic_platform_setup.py bdist_wheel -d $(MOD_SRC_DIR)/$${mod}/pddf; \ + echo "Finished makig pddf whl package for $$mod"; \ + fi; \ + fi; \ + continue; \ + fi; \ cd $(MOD_SRC_DIR)/$${mod}; \ python3 setup.py bdist_wheel -d $(MOD_SRC_DIR)/$${mod}/modules; \ done) @@ -36,4 +48,7 @@ override_dh_clean: dh_clean (for mod in $(MODULE_DIRS); do \ make -C $(KERNEL_SRC)/build M=$(MOD_SRC_DIR)/$${mod}/modules clean; \ + if [ -f $(MOD_SRC_DIR)/$${mod}/pddf/*.whl ]; then \ + rm -f $(MOD_SRC_DIR)/$${mod}/pddf/*.whl; \ + fi; \ done) diff --git a/platform/broadcom/sonic-platform-modules-cel/services/platform_api/platform_api_mgnt.sh b/platform/broadcom/sonic-platform-modules-cel/services/platform_api/platform_api_mgnt.sh index 7515b81784b4..0f648246ad33 100755 --- a/platform/broadcom/sonic-platform-modules-cel/services/platform_api/platform_api_mgnt.sh +++ b/platform/broadcom/sonic-platform-modules-cel/services/platform_api/platform_api_mgnt.sh @@ -11,6 +11,11 @@ install() { if [ -e $PY3_PACK ]; then pip3 install $PY3_PACK fi + + if [ -e $DEVICE/$PLATFORM/pddf/sonic_platform-1.0-py3-none-any.whl ]; then + PY3_PACK=$DEVICE/$PLATFORM/pddf/sonic_platform-1.0-py3-none-any.whl + pip3 install $PY3_PACK + fi } init() { From 2faa69eed23dd17b488d49c927288decc9d0632f Mon Sep 17 00:00:00 2001 From: Ze Gan Date: Tue, 24 May 2022 10:42:09 +0800 Subject: [PATCH 207/251] [Azp]: Ignore the result of t0-sonic pool (#10905) Signed-off-by: Ze Gan --- .azure-pipelines/run-test-template.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.azure-pipelines/run-test-template.yml b/.azure-pipelines/run-test-template.yml index 2a75d1bc32dc..7d3a6c8dd612 100644 --- a/.azure-pipelines/run-test-template.yml +++ b/.azure-pipelines/run-test-template.yml @@ -51,6 +51,8 @@ steps: rm -rf $(Build.ArtifactStagingDirectory)/* docker exec sonic-mgmt bash -c "/data/sonic-mgmt/tests/kvmtest.sh -en -T ${{ parameters.tbtype }} ${{ parameters.tbname }} ${{ parameters.dut }} ${{ parameters.section }}" displayName: "Run tests" + ${{ if eq(parameters.tbtype, 't0-sonic') }}: + continueOnError: true - script: | # save dut state if test fails From 8f7ef1e593aa07145021ab711e6de99662d41ef2 Mon Sep 17 00:00:00 2001 From: Longxiang Lyu <35479537+lolyu@users.noreply.github.com> Date: Tue, 24 May 2022 15:10:48 +0800 Subject: [PATCH 208/251] [dualtor][minigraph.py] Add `soc_ipv4` and `cable_type` to `MUX_CABLE` (#10776) Why I did it To further add cable_type and soc_ipv4 field to table MUX_CABLE, this PR tries to parse the minigraph like the following: ``` SmartCable active-active
192.168.0.3/21
::/0 0.0.0.0/0 ::/0 svcstr-7050-acs-1-Servers0-SC
Server
192.168.0.2/21
fc02:1000::2/64 0.0.0.0/0 Servers0
``` Signed-off-by: Longxiang Lyu lolv@microsoft.com How I did it get_mux_cable_entries will try to get the mux cable device from the devices list and get the cable type and soc ip address from the device definition. How to verify it Pass the unit-test --- src/sonic-config-engine/minigraph.py | 41 +++++++++++++++---- .../tests/simple-sample-graph-case.xml | 41 ++++++++++++++++++- .../tests/test_minigraph_case.py | 19 ++++++++- 3 files changed, 90 insertions(+), 11 deletions(-) diff --git a/src/sonic-config-engine/minigraph.py b/src/sonic-config-engine/minigraph.py index 35a6f564568f..e950e7912292 100644 --- a/src/sonic-config-engine/minigraph.py +++ b/src/sonic-config-engine/minigraph.py @@ -44,6 +44,8 @@ FRONTEND_ASIC_SUB_ROLE = 'FrontEnd' BACKEND_ASIC_SUB_ROLE = 'BackEnd' +dualtor_cable_types = ["active-active", "active-standby"] + # Default Virtual Network Index (VNI) vni_default = 8000 @@ -76,6 +78,7 @@ def get_peer_switch_info(link_metadata, devices): return peer_switch_table + def parse_device(device): lo_prefix = None lo_prefix_v6 = None @@ -85,6 +88,7 @@ def parse_device(device): name = None deployment_id = None cluster = None + d_subtype = None for node in device: if node.tag == str(QName(ns, "Address")): @@ -103,11 +107,14 @@ def parse_device(device): d_type = node.text elif node.tag == str(QName(ns, "ClusterName")): cluster = node.text + elif node.tag == str(QName(ns, "SubType")): + d_subtype = node.text if d_type is None and str(QName(ns3, "type")) in device.attrib: d_type = device.attrib[str(QName(ns3, "type"))] - return (lo_prefix, lo_prefix_v6, mgmt_prefix, name, hwsku, d_type, deployment_id, cluster) + return (lo_prefix, lo_prefix_v6, mgmt_prefix, name, hwsku, d_type, deployment_id, cluster, d_subtype) + def calculate_lcm_for_ecmp (nhdevices_bank_map, nhip_bank_map): banks_enumerated = {} @@ -243,14 +250,16 @@ def parse_png(png, hname, dpg_ecmp_content = None): if child.tag == str(QName(ns, "Devices")): for device in child.findall(str(QName(ns, "Device"))): - (lo_prefix, lo_prefix_v6, mgmt_prefix, name, hwsku, d_type, deployment_id, cluster) = parse_device(device) - device_data = {'lo_addr': lo_prefix, 'type': d_type, 'mgmt_addr': mgmt_prefix, 'hwsku': hwsku } + (lo_prefix, lo_prefix_v6, mgmt_prefix, name, hwsku, d_type, deployment_id, cluster, d_subtype) = parse_device(device) + device_data = {'lo_addr': lo_prefix, 'type': d_type, 'mgmt_addr': mgmt_prefix, 'hwsku': hwsku} if cluster: device_data['cluster'] = cluster if deployment_id: device_data['deployment_id'] = deployment_id if lo_prefix_v6: device_data['lo_addr_v6'] = lo_prefix_v6 + if d_subtype: + device_data['subtype'] = d_subtype devices[name] = device_data if child.tag == str(QName(ns, "DeviceInterfaceLinks")): @@ -275,10 +284,11 @@ def parse_png(png, hname, dpg_ecmp_content = None): for link in child.findall(str(QName(ns, 'DeviceLinkBase'))): if link.find(str(QName(ns, "ElementType"))).text == "LogicalLink": intf_name = link.find(str(QName(ns, "EndPort"))).text + start_device = link.find(str(QName(ns, "StartDevice"))).text if intf_name in port_alias_map: intf_name = port_alias_map[intf_name] - mux_cable_ports[intf_name] = "true" + mux_cable_ports[intf_name] = start_device if dpg_ecmp_content and (len(dpg_ecmp_content)): for version, content in dpg_ecmp_content.items(): # version is ipv4 or ipv6 @@ -373,7 +383,7 @@ def parse_asic_png(png, asic_name, hostname): if child.tag == str(QName(ns, "Devices")): for device in child.findall(str(QName(ns, "Device"))): - (lo_prefix, lo_prefix_v6, mgmt_prefix, name, hwsku, d_type, deployment_id, cluster) = parse_device(device) + (lo_prefix, lo_prefix_v6, mgmt_prefix, name, hwsku, d_type, deployment_id, cluster, _) = parse_device(device) device_data = {'lo_addr': lo_prefix, 'type': d_type, 'mgmt_addr': mgmt_prefix, 'hwsku': hwsku } if cluster: device_data['cluster'] = cluster @@ -1475,7 +1485,7 @@ def parse_xml(filename, platform=None, port_config_file=None, asic_name=None, hw # If connected to a smart cable, get the connection position for port_name, port in ports.items(): if port_name in mux_cable_ports: - port['mux_cable'] = mux_cable_ports[port_name] + port['mux_cable'] = "true" # set port description if parsed from deviceinfo for port_name in port_descriptions: @@ -1720,7 +1730,7 @@ def get_tunnel_entries(tunnel_intfs, lo_intfs, hostname): def get_mux_cable_entries(mux_cable_ports, neighbors, devices): mux_cable_table = {} - for intf in mux_cable_ports: + for intf, cable_name in mux_cable_ports.items(): if intf in neighbors: entry = {} neighbor = neighbors[intf]['name'] @@ -1740,11 +1750,26 @@ def get_mux_cable_entries(mux_cable_ports, neighbors, devices): else: print("Warning: no server IPv4 loopback found for {}, skipping mux cable table entry".format(neighbor)) + if cable_name in devices: + cable_type = devices[cable_name].get('subtype') + if cable_type is None: + continue + if cable_type in dualtor_cable_types: + mux_cable_table[intf]['cable_type'] = cable_type + if cable_type == 'active-active': + soc_ipv4 = devices[cable_name]['lo_addr'].split('/')[0] + soc_ipv4_prefix = ipaddress.ip_network(UNICODE_TYPE(soc_ipv4)) + mux_cable_table[intf]['soc_ipv4'] = str(soc_ipv4_prefix) + else: + print("Warning: skip parsing device %s for mux cable entry, cable type %s not supported" % (cable_name, cable_type)) + else: + print("Warning: skip parsing device %s for mux cable entry, device definition not found" % cable_name) + return mux_cable_table def parse_device_desc_xml(filename): root = ET.parse(filename).getroot() - (lo_prefix, lo_prefix_v6, mgmt_prefix, hostname, hwsku, d_type, _, _) = parse_device(root) + (lo_prefix, lo_prefix_v6, mgmt_prefix, hostname, hwsku, d_type, _, _, _) = parse_device(root) results = {} results['DEVICE_METADATA'] = {'localhost': { diff --git a/src/sonic-config-engine/tests/simple-sample-graph-case.xml b/src/sonic-config-engine/tests/simple-sample-graph-case.xml index d6a8c394f604..7bbef28aaa38 100644 --- a/src/sonic-config-engine/tests/simple-sample-graph-case.xml +++ b/src/sonic-config-engine/tests/simple-sample-graph-case.xml @@ -258,7 +258,7 @@ switch-t0 fortyGigE0/4 true - mux-cable + server1-SC L true @@ -269,7 +269,7 @@ switch-t0 fortyGigE0/8 true - mux-cable + server2-SC U true @@ -317,6 +317,24 @@ Force10-S6000 + + SmartCable +
+ 0.0.0.0/0 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + server1-SC + smartcable-sku +
Server
@@ -331,6 +349,25 @@ server1 server-sku + + SmartCable + active-active +
+ 10.10.10.3/32 +
+ + ::/0 + + + 0.0.0.0/0 + + + ::/0 + + + server2-SC + smartcable-sku +
Server
diff --git a/src/sonic-config-engine/tests/test_minigraph_case.py b/src/sonic-config-engine/tests/test_minigraph_case.py index a6db6f37c591..d5fe3aad7535 100644 --- a/src/sonic-config-engine/tests/test_minigraph_case.py +++ b/src/sonic-config-engine/tests/test_minigraph_case.py @@ -226,6 +226,21 @@ def test_minigraph_neighbor_metadata(self): 'lo_addr_v6': 'fe80::0002/128', 'mgmt_addr': '10.0.0.2/32', 'type': 'Server' + }, + 'server1-SC': { + 'hwsku': 'smartcable-sku', + 'lo_addr': '0.0.0.0/0', + 'lo_addr_v6': '::/0', + 'mgmt_addr': '0.0.0.0/0', + 'type': 'SmartCable' + }, + 'server2-SC': { + 'hwsku': 'smartcable-sku', + 'lo_addr': '10.10.10.3/32', + 'lo_addr_v6': '::/0', + 'mgmt_addr': '0.0.0.0/0', + 'type': 'SmartCable', + 'subtype': 'active-active' } } output = self.run_script(argument) @@ -365,7 +380,9 @@ def test_minigraph_mux_cable_table(self): 'Ethernet8': { 'state': 'auto', 'server_ipv4': '10.10.10.2/32', - 'server_ipv6': 'fe80::2/128' + 'server_ipv6': 'fe80::2/128', + 'soc_ipv4': '10.10.10.3/32', + 'cable_type': 'active-active' } } From 0156c21eff95a8feab7e0af0bf0dcf070d8d368b Mon Sep 17 00:00:00 2001 From: Ze Gan Date: Tue, 24 May 2022 18:42:54 +0800 Subject: [PATCH 209/251] [macsec-cli]: Fixing to config MACsec on the port will clear port attributes in config db (#10903) Why I did it There is a bug that the Port attributes in CONFIG_DB will be cleared if using sudo config macsec port add Ethernet0 or sudo config macsec port del Ethernet0 How I did it To fetch the port attributes before set/remove MACsec field in port table. Signed-off-by: Ze Gan --- .../docker-macsec/cli-plugin-tests/conftest.py | 1 + .../cli-plugin-tests/test_config_macsec.py | 4 +++- .../docker-macsec/cli/config/plugins/macsec.py | 16 ++++++++++++++-- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/dockers/docker-macsec/cli-plugin-tests/conftest.py b/dockers/docker-macsec/cli-plugin-tests/conftest.py index 56dcc3f3023a..e6608ce71265 100644 --- a/dockers/docker-macsec/cli-plugin-tests/conftest.py +++ b/dockers/docker-macsec/cli-plugin-tests/conftest.py @@ -9,6 +9,7 @@ def mock_cfgdb(): CONFIG = { 'PORT': { 'Ethernet0': { + "admin_status": "up" } } } diff --git a/dockers/docker-macsec/cli-plugin-tests/test_config_macsec.py b/dockers/docker-macsec/cli-plugin-tests/test_config_macsec.py index 4635092386ac..425ca2afa433 100644 --- a/dockers/docker-macsec/cli-plugin-tests/test_config_macsec.py +++ b/dockers/docker-macsec/cli-plugin-tests/test_config_macsec.py @@ -116,6 +116,7 @@ def test_macsec_port(self, mock_cfgdb): port_table = db.cfgdb.get_entry("PORT", "Ethernet0") assert port_table assert port_table["macsec"] == "test" + assert port_table["admin_status"] == "up" result = runner.invoke(macsec.macsec.commands["profile"].commands["del"], ["test"], obj=db) assert result.exit_code != 0 @@ -123,7 +124,8 @@ def test_macsec_port(self, mock_cfgdb): result = runner.invoke(macsec.macsec.commands["port"].commands["del"], ["Ethernet0"], obj=db) assert result.exit_code == 0, "exit code: {}, Exception: {}, Traceback: {}".format(result.exit_code, result.exception, result.exc_info) port_table = db.cfgdb.get_entry("PORT", "Ethernet0") - assert not port_table["macsec"] + assert "macsec" not in port_table or not port_table["macsec"] + assert port_table["admin_status"] == "up" def test_macsec_invalid_operation(self, mock_cfgdb): diff --git a/dockers/docker-macsec/cli/config/plugins/macsec.py b/dockers/docker-macsec/cli/config/plugins/macsec.py index e5bc628b8cd0..b76de8c98c7f 100644 --- a/dockers/docker-macsec/cli/config/plugins/macsec.py +++ b/dockers/docker-macsec/cli/config/plugins/macsec.py @@ -42,7 +42,13 @@ def add_port(db, port, profile): if len(profile_entry) == 0: ctx.fail("profile {} doesn't exist".format(profile)) - db.cfgdb.set_entry("PORT", port, {'macsec': profile}) + port_entry = db.cfgdb.get_entry('PORT', port) + if len(port_entry) == 0: + ctx.fail("port {} doesn't exist".format(port)) + + port_entry['macsec'] = profile + + db.cfgdb.set_entry("PORT", port, port_entry) # @@ -64,7 +70,13 @@ def del_port(db, port): if port is None: ctx.fail("cannot find port name for alias {}".format(alias)) - db.cfgdb.set_entry("PORT", port, {'macsec': ""}) + port_entry = db.cfgdb.get_entry('PORT', port) + if len(port_entry) == 0: + ctx.fail("port {} doesn't exist".format(port)) + + del port_entry['macsec'] + + db.cfgdb.set_entry("PORT", port, port_entry) # From a6b1b0a968283f884260b5d2a8143045d2be41ef Mon Sep 17 00:00:00 2001 From: Ze Gan Date: Wed, 25 May 2022 05:25:57 +0800 Subject: [PATCH 210/251] [submodule]: Update submodule for sonic-wpa-supplicant (#10904) 64caafe38 [driver_macsec_sonic]: Fixing missing zeros at the beginning of SCI (#52) Signed-off-by: Ze Gan --- src/wpasupplicant/sonic-wpa-supplicant | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/wpasupplicant/sonic-wpa-supplicant b/src/wpasupplicant/sonic-wpa-supplicant index 639a051357d0..64caafe38339 160000 --- a/src/wpasupplicant/sonic-wpa-supplicant +++ b/src/wpasupplicant/sonic-wpa-supplicant @@ -1 +1 @@ -Subproject commit 639a051357d0e3712c54f7fa975d4ff64733cc38 +Subproject commit 64caafe3833914f4838fa2e2db290ad676ad8dda From 915f2834b0c455277e9a58090b889ba653e1bc88 Mon Sep 17 00:00:00 2001 From: arlakshm <55814491+arlakshm@users.noreply.github.com> Date: Tue, 24 May 2022 14:36:09 -0700 Subject: [PATCH 211/251] [voq][chassis]fix recirc port admin status (#10769) Signed-off-by: Arvindsrinivasan Lakshmi Narasimhan arlakshm@microsoft.com Why I did it resolves #10761. For VOQ chassis, the Recirc port, which was added for the Everflow, stays admin down after load minigraph. This PR add the fix to make the recirc port as admin up How I did it The PR adds a change in minigraph.py, if port has role as Rec make the the port as admin-status up. How to verify it UT Signed-off-by: Arvindsrinivasan Lakshmi Narasimhan --- src/sonic-config-engine/minigraph.py | 6 +++ src/sonic-config-engine/tests/test_cfggen.py | 42 ++++++++++++----- .../tests/voq-sample-port-config.ini | 45 +++++-------------- 3 files changed, 47 insertions(+), 46 deletions(-) diff --git a/src/sonic-config-engine/minigraph.py b/src/sonic-config-engine/minigraph.py index e950e7912292..1446457eb513 100644 --- a/src/sonic-config-engine/minigraph.py +++ b/src/sonic-config-engine/minigraph.py @@ -1540,6 +1540,12 @@ def parse_xml(filename, platform=None, port_config_file=None, asic_name=None, hw if inband_port in ports.keys(): ports[inband_port]['admin_status'] = 'up' + # bring up the recirc port for voq chassis + for port, port_attributes in ports.items(): + port_role = port_attributes.get('role', None) + if port_role == 'Rec': + ports[port]['admin_status'] = 'up' + results['PORT'] = ports results['CONSOLE_PORT'] = console_ports diff --git a/src/sonic-config-engine/tests/test_cfggen.py b/src/sonic-config-engine/tests/test_cfggen.py index 22ce5671ee85..175aefff8da4 100644 --- a/src/sonic-config-engine/tests/test_cfggen.py +++ b/src/sonic-config-engine/tests/test_cfggen.py @@ -896,18 +896,36 @@ def test_minigraph_voq_inband_port(self): output = self.run_script(argument) output_dict = utils.to_dict(output.strip()) self.assertDictEqual( - output_dict['Ethernet-IB0'], - {'lanes': '133', - 'alias': 'Recycle0', - 'description': 'Recycle0', - 'mtu': '9100', - 'tpid': '0x8100', - 'pfc_asym': 'off', - 'admin_status': 'up', - 'fec': 'rs', - 'speed': '100000' - } - ) + output_dict['Ethernet-IB0'], { + "lanes": "222", + "alias": "Recirc0/1", + "index": "52", + "role": "Inb", + "speed": "400000", + "description": "Recirc0/1", + "mtu": "9100", + "tpid": "0x8100", + "pfc_asym": "off", + "admin_status": "up" + }) + + def test_minigraph_voq_recirc_ports(self): + argument = "-m {} -p {} --var-json PORT".format(self.sample_graph_voq, self.voq_port_config) + output = self.run_script(argument) + output_dict = utils.to_dict(output.strip()) + self.assertDictEqual( + output_dict['Ethernet-Rec0'], { + "lanes": "221", + "alias": "Recirc0/0", + "index": "51", + "role": "Rec", + "speed": "400000", + "description": "Recirc0/0", + "mtu": "9100", + "tpid": "0x8100", + "pfc_asym": "off", + "admin_status": "up" + }) def test_minigraph_dhcp(self): argument = '-m "' + self.sample_graph_simple_case + '" -p "' + self.port_config + '" -v DHCP_RELAY' diff --git a/src/sonic-config-engine/tests/voq-sample-port-config.ini b/src/sonic-config-engine/tests/voq-sample-port-config.ini index 3910e29de0a3..a0ea4e451267 100644 --- a/src/sonic-config-engine/tests/voq-sample-port-config.ini +++ b/src/sonic-config-engine/tests/voq-sample-port-config.ini @@ -1,34 +1,11 @@ -# name lanes alias -Ethernet0 29,30,31,32 fortyGigE0/0 -Ethernet4 25,26,27,28 fortyGigE0/4 -Ethernet8 37,38,39,40 fortyGigE0/8 -Ethernet12 33,34,35,36 fortyGigE0/12 -Ethernet16 41,42,43,44 fortyGigE0/16 -Ethernet20 45,46,47,48 fortyGigE0/20 -Ethernet24 5,6,7,8 fortyGigE0/24 -Ethernet28 1,2,3,4 fortyGigE0/28 -Ethernet32 9,10,11,12 fortyGigE0/32 -Ethernet36 13,14,15,16 fortyGigE0/36 -Ethernet40 21,22,23,24 fortyGigE0/40 -Ethernet44 17,18,19,20 fortyGigE0/44 -Ethernet48 49,50,51,52 fortyGigE0/48 -Ethernet52 53,54,55,56 fortyGigE0/52 -Ethernet56 61,62,63,64 fortyGigE0/56 -Ethernet60 57,58,59,60 fortyGigE0/60 -Ethernet64 65,66,67,68 fortyGigE0/64 -Ethernet68 69,70,71,72 fortyGigE0/68 -Ethernet72 77,78,79,80 fortyGigE0/72 -Ethernet76 73,74,75,76 fortyGigE0/76 -Ethernet80 105,106,107,108 fortyGigE0/80 -Ethernet84 109,110,111,112 fortyGigE0/84 -Ethernet88 117,118,119,120 fortyGigE0/88 -Ethernet92 113,114,115,116 fortyGigE0/92 -Ethernet96 121,122,123,124 fortyGigE0/96 -Ethernet100 125,126,127,128 fortyGigE0/100 -Ethernet104 85,86,87,88 fortyGigE0/104 -Ethernet108 81,82,83,84 fortyGigE0/108 -Ethernet112 89,90,91,92 fortyGigE0/112 -Ethernet116 93,94,95,96 fortyGigE0/116 -Ethernet120 97,98,99,100 fortyGigE0/120 -Ethernet124 101,102,103,104 fortyGigE0/124 -Ethernet-IB0 133 Recycle0 +# name lanes alias index role speed +Ethernet0 6,7 Ethernet1/1 1 Ext 100000 +Ethernet4 2,3 Ethernet2/1 2 Ext 100000 +Ethernet12 0,1 Ethernet4/1 4 Ext 100000 +Ethernet8 4,5 Ethernet3/1 3 Ext 100000 +Ethernet16 14,15 Ethernet5/1 5 Ext 100000 +Ethernet20 10,11 Ethernet6/1 6 Ext 100000 +Ethernet24 12,13 Ethernet7/1 7 Ext 100000 +Ethernet28 8,9 Ethernet8/1 8 Ext 100000 +Ethernet-Rec0 221 Recirc0/0 51 Rec 400000 +Ethernet-IB0 222 Recirc0/1 52 Inb 400000 \ No newline at end of file From 2ead3aaefc1c20ff987faab6133accdff43de122 Mon Sep 17 00:00:00 2001 From: kellyyeh <42761586+kellyyeh@users.noreply.github.com> Date: Tue, 24 May 2022 14:37:16 -0700 Subject: [PATCH 212/251] [dhcp6relay] Fix option parsing and add dhcpv6 client messages (#10819) --- .../test_show_dhcp6relay_counters.py | 32 ++++++++++--------- .../cli/show/plugins/show_dhcp_relay.py | 2 +- src/dhcp6relay/src/relay.cpp | 24 ++++++++------ src/dhcp6relay/src/relay.h | 3 ++ 4 files changed, 36 insertions(+), 25 deletions(-) diff --git a/dockers/docker-dhcp-relay/cli-plugin-tests/test_show_dhcp6relay_counters.py b/dockers/docker-dhcp-relay/cli-plugin-tests/test_show_dhcp6relay_counters.py index d818fa9c69a3..3cb2d2bb5443 100644 --- a/dockers/docker-dhcp-relay/cli-plugin-tests/test_show_dhcp6relay_counters.py +++ b/dockers/docker-dhcp-relay/cli-plugin-tests/test_show_dhcp6relay_counters.py @@ -18,21 +18,23 @@ pass expected_counts = """\ - Message Type Vlan1000 --------------- ----------- - Unknown - Solicit - Advertise - Request - Confirm - Renew - Rebind - Reply - Release - Decline - Relay-Forward - Relay-Reply - Malformed + Message Type Vlan1000 +------------------- ----------- + Unknown + Solicit + Advertise + Request + Confirm + Renew + Rebind + Reply + Release + Decline + Reconfigure +Information-Request + Relay-Forward + Relay-Reply + Malformed """ diff --git a/dockers/docker-dhcp-relay/cli/show/plugins/show_dhcp_relay.py b/dockers/docker-dhcp-relay/cli/show/plugins/show_dhcp_relay.py index 91d5082e8f0c..4178915fe0b2 100644 --- a/dockers/docker-dhcp-relay/cli/show/plugins/show_dhcp_relay.py +++ b/dockers/docker-dhcp-relay/cli/show/plugins/show_dhcp_relay.py @@ -12,7 +12,7 @@ DHCPv6_COUNTER_TABLE = 'DHCPv6_COUNTER_TABLE' # DHCPv6 Counter Messages -messages = ["Unknown", "Solicit", "Advertise", "Request", "Confirm", "Renew", "Rebind", "Reply", "Release", "Decline", "Relay-Forward", "Relay-Reply", "Malformed"] +messages = ["Unknown", "Solicit", "Advertise", "Request", "Confirm", "Renew", "Rebind", "Reply", "Release", "Decline", "Reconfigure", "Information-Request", "Relay-Forward", "Relay-Reply", "Malformed"] # DHCP_RELAY Config Table DHCP_RELAY = 'DHCP_RELAY' diff --git a/src/dhcp6relay/src/relay.cpp b/src/dhcp6relay/src/relay.cpp index f9c7900c2690..4b3b4d4010bf 100644 --- a/src/dhcp6relay/src/relay.cpp +++ b/src/dhcp6relay/src/relay.cpp @@ -59,6 +59,8 @@ std::map counterMap = {{DHCPv6_MESSAGE_TYPE_UNKNOWN, "Unknown" {DHCPv6_MESSAGE_TYPE_REPLY, "Reply"}, {DHCPv6_MESSAGE_TYPE_RELEASE, "Release"}, {DHCPv6_MESSAGE_TYPE_DECLINE, "Decline"}, + {DHCPv6_MESSAGE_TYPE_RECONFIGURE, "Reconfigure"}, + {DHCPv6_MESSAGE_TYPE_INFORMATION_REQUEST, "Information-Request"}, {DHCPv6_MESSAGE_TYPE_RELAY_FORW, "Relay-Forward"}, {DHCPv6_MESSAGE_TYPE_RELAY_REPL, "Relay-Reply"}, {DHCPv6_MESSAGE_TYPE_MALFORMED, "Malformed"}}; @@ -84,6 +86,8 @@ void initialize_counter(swss::DBConnector *db, std::string counterVlan) { db->hset(counterVlan, "Reply", toString(counters[DHCPv6_MESSAGE_TYPE_REPLY])); db->hset(counterVlan, "Release", toString(counters[DHCPv6_MESSAGE_TYPE_RELEASE])); db->hset(counterVlan, "Decline", toString(counters[DHCPv6_MESSAGE_TYPE_DECLINE])); + db->hset(counterVlan, "Reconfigure", toString(counters[DHCPv6_MESSAGE_TYPE_RECONFIGURE])); + db->hset(counterVlan, "Information-Request", toString(counters[DHCPv6_MESSAGE_TYPE_INFORMATION_REQUEST])); db->hset(counterVlan, "Relay-Forward", toString(counters[DHCPv6_MESSAGE_TYPE_RELAY_FORW])); db->hset(counterVlan, "Relay-Reply", toString(counters[DHCPv6_MESSAGE_TYPE_RELAY_REPL])); db->hset(counterVlan, "Malformed", toString(counters[DHCPv6_MESSAGE_TYPE_MALFORMED])); @@ -204,11 +208,12 @@ const struct dhcpv6_relay_msg *parse_dhcpv6_relay(const uint8_t *buffer) { * @return dhcpv6_option end of dhcpv6 message option */ const struct dhcpv6_option *parse_dhcpv6_opt(const uint8_t *buffer, const uint8_t **out_end) { - uint32_t size = 4; // option-code + option-len - size += ntohs(*(uint16_t *)(buffer + 2)); - (*out_end) = buffer + size; + auto option = (const struct dhcpv6_option *)buffer; + uint8_t size = 4; // option-code + option-len + size += *(uint16_t *)(buffer); + (*out_end) = buffer + size + ntohs(option->option_length); - return (const struct dhcpv6_option *)buffer; + return option; } /** @@ -589,6 +594,7 @@ void relay_relay_forw(int sock, const uint8_t *msg, int32_t len, const ip6_hdr * void callback(evutil_socket_t fd, short event, void *arg) { struct relay_config *config = (struct relay_config *)arg; static uint8_t message_buffer[4096]; + std::string counterVlan = counter_table; int32_t len = recv(config->filter, message_buffer, 4096, 0); if (len <= 0) { syslog(LOG_WARNING, "recv: Failed to receive data at filter socket: %s\n", strerror(errno)); @@ -626,10 +632,6 @@ void callback(evutil_socket_t fd, short event, void *arg) { auto msg = parse_dhcpv6_hdr(current_position); auto option_position = current_position + sizeof(struct dhcpv6_msg); - counters[msg->msg_type]++; - std::string counterVlan = counter_table; - update_counter(config->db, counterVlan.append(config->interface), msg->msg_type); - switch (msg->msg_type) { case DHCPv6_MESSAGE_TYPE_RELAY_FORW: { @@ -638,21 +640,25 @@ void callback(evutil_socket_t fd, short event, void *arg) { } case DHCPv6_MESSAGE_TYPE_SOLICIT: case DHCPv6_MESSAGE_TYPE_REQUEST: + case DHCPv6_MESSAGE_TYPE_CONFIRM: case DHCPv6_MESSAGE_TYPE_RENEW: case DHCPv6_MESSAGE_TYPE_REBIND: case DHCPv6_MESSAGE_TYPE_RELEASE: case DHCPv6_MESSAGE_TYPE_DECLINE: + case DHCPv6_MESSAGE_TYPE_INFORMATION_REQUEST: { while (option_position - message_buffer < len) { auto option = parse_dhcpv6_opt(option_position, &tmp); option_position = tmp; - if(ntohs(option->option_code) > DHCPv6_OPTION_LIMIT) { + if (ntohs(option->option_code) > DHCPv6_OPTION_LIMIT) { counters[DHCPv6_MESSAGE_TYPE_MALFORMED]++; update_counter(config->db, counterVlan.append(config->interface), DHCPv6_MESSAGE_TYPE_MALFORMED); syslog(LOG_WARNING, "DHCPv6 option is invalid or contains malformed payload\n"); return; } } + counters[msg->msg_type]++; + update_counter(config->db, counterVlan.append(config->interface), msg->msg_type); relay_client(config->local_sock, current_position, ntohs(udp_header->len) - sizeof(udphdr), ip_header, ether_header, config); break; } diff --git a/src/dhcp6relay/src/relay.h b/src/dhcp6relay/src/relay.h index 29e365bb5d83..c5b07325421c 100644 --- a/src/dhcp6relay/src/relay.h +++ b/src/dhcp6relay/src/relay.h @@ -36,6 +36,8 @@ typedef enum DHCPv6_MESSAGE_TYPE_REPLY = 7, DHCPv6_MESSAGE_TYPE_RELEASE = 8, DHCPv6_MESSAGE_TYPE_DECLINE = 9, + DHCPv6_MESSAGE_TYPE_RECONFIGURE = 10, + DHCPv6_MESSAGE_TYPE_INFORMATION_REQUEST = 11, DHCPv6_MESSAGE_TYPE_RELAY_FORW = 12, DHCPv6_MESSAGE_TYPE_RELAY_REPL = 13, DHCPv6_MESSAGE_TYPE_MALFORMED = 14, @@ -60,6 +62,7 @@ struct relay_config { struct dhcpv6_msg { uint8_t msg_type; + uint8_t xid[3]; }; struct PACKED dhcpv6_relay_msg { From a477dbb1751b741ac2762b4328da08b37eb400db Mon Sep 17 00:00:00 2001 From: Hasan Naqvi <56742004+hasan-brcm@users.noreply.github.com> Date: Tue, 24 May 2022 14:47:09 -0700 Subject: [PATCH 213/251] Frr 8.2 upgrade (#10691) Why I did it Upgrade FRR to version 8.2.2. Build libyang2 required by FRR. How I did it Update FRR version and tag. How to verify it Following tests were performed on sonic-vs: BGP docker status check BGP configuration and session establishment Route redistribution and ping Issued show commands to check the bgp neighbor and routes Checked app-db to ensure bgp routes are installed with correct interface and nexthop. Create VRF and check FRR knows the VRF Check VRF routes are installed in app-db with correct Vrf name and next-hop Establish BGP Evpn session and check if Evpn routes (multicast, mac, prefix) are exchanged and installed correctly in app-db. --- .gitmodules | 2 +- rules/docker-fpm-frr.mk | 4 +- rules/frr.mk | 12 +- rules/libyang.mk | 4 +- rules/libyang2.dep | 10 + rules/libyang2.mk | 43 +++ sonic-slave-buster/Dockerfile.j2 | 2 +- src/libyang2/.gitignore | 3 + src/libyang2/Makefile | 40 ++ src/sonic-frr/Makefile | 2 +- ...01-Add-support-of-bgp-tcp-DSCP-value.patch | 47 ++- ...verity-of-Vty-connected-from-message.patch | 16 +- ...003-Use-vrf_id-for-vrf-not-tabled_id.patch | 14 +- ...EXT_HOP-to-be-0.0.0.0-due-to-allevia.patch | 13 +- ...nexthops-compare-vrf-only-if-ip-type.patch | 18 +- ...r-log-outchannel-to-var-log-frr.log.patch} | 8 +- ... 0007-Add-support-of-bgp-l3vni-evpn.patch} | 107 +++--- ...et-for-bgp-ipv6-link-local-neighbors.patch | 29 ++ ...p-bestpath-peer-type-multipath-relax.patch | 346 ------------------ ...et-for-bgp-ipv6-link-local-neighbors.patch | 44 --- .../patch/0010-remove-doc-png-install.patch | 21 -- ...-address-for-Ipv6-linl-local-nexthop.patch | 55 --- ...ble-ipv6-src-address-test-in-pceplib.patch | 27 ++ src/sonic-frr/patch/series | 10 +- 24 files changed, 281 insertions(+), 596 deletions(-) create mode 100644 rules/libyang2.dep create mode 100644 rules/libyang2.mk create mode 100644 src/libyang2/.gitignore create mode 100644 src/libyang2/Makefile rename src/sonic-frr/patch/{0007-frr-remove-frr-log-outchannel-to-var-log-frr.log.patch => 0006-frr-remove-frr-log-outchannel-to-var-log-frr.log.patch} (88%) rename src/sonic-frr/patch/{0008-Add-support-of-bgp-l3vni-evpn.patch => 0007-Add-support-of-bgp-l3vni-evpn.patch} (57%) create mode 100644 src/sonic-frr/patch/0008-Link-local-scope-was-not-set-while-binding-socket-for-bgp-ipv6-link-local-neighbors.patch delete mode 100644 src/sonic-frr/patch/0009-Add-bgp-bestpath-peer-type-multipath-relax.patch delete mode 100644 src/sonic-frr/patch/0009-Link-local-scope-was-not-set-while-binding-socket-for-bgp-ipv6-link-local-neighbors.patch delete mode 100644 src/sonic-frr/patch/0010-remove-doc-png-install.patch delete mode 100644 src/sonic-frr/patch/0011-Ipv4-Link-local-address-for-Ipv6-linl-local-nexthop.patch create mode 100644 src/sonic-frr/patch/Disable-ipv6-src-address-test-in-pceplib.patch diff --git a/.gitmodules b/.gitmodules index 59cddea4a8f2..3d1a042fb025 100644 --- a/.gitmodules +++ b/.gitmodules @@ -46,7 +46,7 @@ [submodule "src/sonic-frr/frr"] path = src/sonic-frr/frr url = https://github.com/Azure/sonic-frr.git - branch = frr/7.5 + branch = frr/8.2 [submodule "platform/p4/p4-hlir/p4-hlir-v1.1"] path = platform/p4/p4-hlir/p4-hlir-v1.1 url = https://github.com/p4lang/p4-hlir.git diff --git a/rules/docker-fpm-frr.mk b/rules/docker-fpm-frr.mk index 2249f828a48c..ff594288419c 100644 --- a/rules/docker-fpm-frr.mk +++ b/rules/docker-fpm-frr.mk @@ -7,10 +7,10 @@ DOCKER_FPM_FRR_DBG = $(DOCKER_FPM_FRR_STEM)-$(DBG_IMAGE_MARK).gz $(DOCKER_FPM_FRR)_PATH = $(DOCKERS_PATH)/$(DOCKER_FPM_FRR_STEM) $(DOCKER_FPM_FRR)_PYTHON_WHEELS += $(SONIC_BGPCFGD) $(SONIC_FRR_MGMT_FRAMEWORK) -$(DOCKER_FPM_FRR)_DEPENDS += $(FRR) $(FRR_SNMP) $(SWSS) $(LIBYANG1) +$(DOCKER_FPM_FRR)_DEPENDS += $(FRR) $(FRR_SNMP) $(SWSS) $(LIBYANG2) $(DOCKER_FPM_FRR)_DBG_DEPENDS = $($(DOCKER_SWSS_LAYER_BUSTER)_DBG_DEPENDS) $(DOCKER_FPM_FRR)_DBG_DEPENDS += $(SWSS_DBG) $(LIBSWSSCOMMON_DBG) \ - $(FRR_DBG) $(FRR_SNMP_DBG) $(LIBYANG1_DBG) + $(FRR_DBG) $(FRR_SNMP_DBG) $(LIBYANG2_DBG) $(DOCKER_FPM_FRR)_DBG_IMAGE_PACKAGES = $($(DOCKER_SWSS_LAYER_BUSTER)_DBG_IMAGE_PACKAGES) diff --git a/rules/frr.mk b/rules/frr.mk index 72cde12ebf75..7bc5cc8024f0 100644 --- a/rules/frr.mk +++ b/rules/frr.mk @@ -1,16 +1,16 @@ # FRRouting (frr) package -FRR_VERSION = 7.5.1 +FRR_VERSION = 8.2.2 FRR_SUBVERSION = 0 -FRR_BRANCH = frr/7.5 -FRR_TAG = frr-7.5.1-s1 +FRR_BRANCH = frr/8.2 +FRR_TAG = frr-8.2.2 export FRR_VERSION FRR_SUBVERSION FRR_BRANCH FRR_TAG FRR = frr_$(FRR_VERSION)-sonic-$(FRR_SUBVERSION)_$(CONFIGURED_ARCH).deb -$(FRR)_DEPENDS += $(LIBSNMP_DEV) $(LIBYANG1) $(LIBYANG1_DEV) -$(FRR)_RDEPENDS += $(LIBYANG1) -$(FRR)_UNINSTALLS = $(LIBYANG1_DEV) $(LIBYANG1) +$(FRR)_DEPENDS += $(LIBSNMP_DEV) $(LIBYANG2) $(LIBYANG2_DEV) +$(FRR)_RDEPENDS += $(LIBYANG2) +$(FRR)_UNINSTALLS = $(LIBYANG2_DEV) $(LIBYANG2) $(FRR)_SRC_PATH = $(SRC_PATH)/sonic-frr SONIC_MAKE_DEBS += $(FRR) diff --git a/rules/libyang.mk b/rules/libyang.mk index c8873c3b3231..b361c9796b92 100644 --- a/rules/libyang.mk +++ b/rules/libyang.mk @@ -29,7 +29,7 @@ LIBYANG_PY3 = python3-yang_$(LIBYANG_VERSION)_$(CONFIGURED_ARCH).deb $(LIBYANG_PY3)_DEPENDS += $(LIBYANG) $(LIBYANG_CPP) $(eval $(call add_derived_package,$(LIBYANG),$(LIBYANG_PY3))) -$(eval $(call add_conflict_package,$(LIBYANG),$(LIBYANG1))) -$(eval $(call add_conflict_package,$(LIBYANG_DEV),$(LIBYANG1_DEV))) +$(eval $(call add_conflict_package,$(LIBYANG),$(LIBYANG1),$(LIBYANG2))) +$(eval $(call add_conflict_package,$(LIBYANG_DEV),$(LIBYANG1_DEV),$(LIBYANG2_DEV))) export LIBYANG LIBYANG_DBG LIBYANG_DEV LIBYANG_CPP LIBYANG_PY3 diff --git a/rules/libyang2.dep b/rules/libyang2.dep new file mode 100644 index 000000000000..a1b3977f2d86 --- /dev/null +++ b/rules/libyang2.dep @@ -0,0 +1,10 @@ + +SPATH := $($(LIBYANG2)_SRC_PATH) +DEP_FILES := $(SONIC_COMMON_FILES_LIST) rules/libyang2.mk rules/libyang2.dep +DEP_FILES += $(SONIC_COMMON_BASE_FILES_LIST) +DEP_FILES += $(shell git ls-files $(SPATH)) + +$(LIBYANG2)_CACHE_MODE := GIT_CONTENT_SHA +$(LIBYANG2)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST) +$(LIBYANG2)_DEP_FILES := $(DEP_FILES) + diff --git a/rules/libyang2.mk b/rules/libyang2.mk new file mode 100644 index 000000000000..1e181b2a30eb --- /dev/null +++ b/rules/libyang2.mk @@ -0,0 +1,43 @@ +# libyang2 + +LIBYANG2_VERSION_BASE = 2.0 +LIBYANG2_VERSION = $(LIBYANG2_VERSION_BASE).112 +LIBYANG2_SUBVERSION = 6 +LIBYANG2_FULLVERSION = $(LIBYANG2_VERSION)-$(LIBYANG2_SUBVERSION) + +export LIBYANG2_VERSION_BASE +export LIBYANG2_VERSION +export LIBYANG2_SUBVERSION +export LIBYANG2_FULLVERSION + +LIBYANG2 = libyang2_$(LIBYANG2_FULLVERSION)_$(CONFIGURED_ARCH).deb +$(LIBYANG2)_SRC_PATH = $(SRC_PATH)/libyang2 +SONIC_MAKE_DEBS += $(LIBYANG2) + +LIBYANG2_DEV = libyang2-dev_$(LIBYANG2_FULLVERSION)_$(CONFIGURED_ARCH).deb +$(eval $(call add_derived_package,$(LIBYANG2),$(LIBYANG2_DEV))) + +LIBYANG2_DBG = libyang2-dbgsym_$(LIBYANG2_FULLVERSION)_$(CONFIGURED_ARCH).deb +$(eval $(call add_derived_package,$(LIBYANG2),$(LIBYANG2_DBG))) + +LIBYANG2_CPP = libyang2-cpp1_$(LIBYANG2_FULLVERSION)_$(CONFIGURED_ARCH).deb +$(LIBYANG2_CPP)_DEPENDS += $(LIBYANG2) +$(eval $(call add_derived_package,$(LIBYANG2),$(LIBYANG2_CPP))) + +LIBYANG2_CPP_DEV = libyang2-cpp-dev_$(LIBYANG2_FULLVERSION)_$(CONFIGURED_ARCH).deb +$(eval $(call add_derived_package,$(LIBYANG2),$(LIBYANG2_CPP_DEV))) + +LIBYANG2_CPP_DBG = libyang2-cpp1-dbgsym_$(LIBYANG2_FULLVERSION)_$(CONFIGURED_ARCH).deb +$(eval $(call add_derived_package,$(LIBYANG2),$(LIBYANG2_CPP_DBG))) + +YANG_TOOLS = yang-tools_$(LIBYANG2_FULLVERSION)_all.deb +$(YANG_TOOLS)_DEPENDS += $(LIBYANG2) +$(eval $(call add_derived_package,$(LIBYANG2),$(YANG_TOOLS))) + +LIBYANG2_TOOLS = libyang2-tools_$(LIBYANG2_FULLVERSION)_$(CONFIGURED_ARCH).deb +$(eval $(call add_derived_package,$(LIBYANG2),$(LIBYANG2_TOOLS))) + +LIBYANG2_TOOLS_DBG = libyang2-tools-dbgsym_$(LIBYANG2_FULLVERSION)_$(CONFIGURED_ARCH).deb +$(eval $(call add_derived_package,$(LIBYANG2),$(LIBYANG2_TOOLS_DBG))) + +export LIBYANG2 LIBYANG2_DBG LIBYANG2_DEV LIBYANG2_CPP LIBYANG2_CPP_DEV LIBYANG2_CPP_DBG YANG_TOOLS LIBYANG2_TOOLS LIBYANG2_TOOLS_DBG diff --git a/sonic-slave-buster/Dockerfile.j2 b/sonic-slave-buster/Dockerfile.j2 index 401f032725cf..2a9b49b82811 100644 --- a/sonic-slave-buster/Dockerfile.j2 +++ b/sonic-slave-buster/Dockerfile.j2 @@ -90,7 +90,7 @@ RUN apt-get update && apt-get install -y \ imagemagick \ ghostscript \ groff \ - libpcre3-dev \ + libpcre2-dev \ gawk \ chrpath \ # For frr build diff --git a/src/libyang2/.gitignore b/src/libyang2/.gitignore new file mode 100644 index 000000000000..a0991ff4402b --- /dev/null +++ b/src/libyang2/.gitignore @@ -0,0 +1,3 @@ +* +!.gitignore +!Makefile diff --git a/src/libyang2/Makefile b/src/libyang2/Makefile new file mode 100644 index 000000000000..621717521972 --- /dev/null +++ b/src/libyang2/Makefile @@ -0,0 +1,40 @@ +.ONESHELL: +SHELL = /bin/bash +.SHELLFLAGS += -e + +LIBYANG_URL = https://sonicstorage.blob.core.windows.net/debian/pool/main/liby/libyang + +DSC_FILE = libyang2_$(LIBYANG2_FULLVERSION).dsc +ORIG_FILE = libyang2_$(LIBYANG2_VERSION).orig.tar.gz +DEBIAN_FILE = libyang2_$(LIBYANG2_FULLVERSION).debian.tar.xz + +DSC_FILE_URL = $(LIBYANG_URL)/$(DSC_FILE) +ORIG_FILE_URL = $(LIBYANG_URL)/$(ORIG_FILE) +DEBIAN_FILE_URL = $(LIBYANG_URL)/$(DEBIAN_FILE) + +MAIN_TARGET = $(LIBYANG2) +DERIVED_TARGETS = $(LIBYANG2_DEV) $(LIBYANG2_DBG) $(LIBYANG2_TOOLS) $(LIBYANG2_TOOLS_DBG) + +$(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% : + # Obtaining the libyang + rm -fr ./libyang2-$(LIBYANG2_VERSION) + + # download debian libyang + wget -NO "$(DSC_FILE)" $(DSC_FILE_URL) + wget -NO "$(ORIG_FILE)" $(ORIG_FILE_URL) + wget -NO "$(DEBIAN_FILE)" $(DEBIAN_FILE_URL) + dpkg-source -x libyang2_$(LIBYANG2_FULLVERSION).dsc + + pushd libyang2-$(LIBYANG2_VERSION) + #sed -i 's/set(LIBYANG_MAJOR_SOVERSION 1)/set(LIBYANG_MAJOR_SOVERSION 2)/' CMakeLists.txt + #sed -i 's/libyang2/libyang2/' debian/libyang2.install + # Enable large file support for 32-bit arch + echo 'add_definitions(-D_FILE_OFFSET_BITS=64)' >> CMakeLists.txt + + dpkg-buildpackage -rfakeroot -b -us -uc -j$(SONIC_CONFIG_MAKE_JOBS) --admindir $(SONIC_DPKG_ADMINDIR) + popd + + # Move the newly-built .deb packages to the destination directory + mv $* $(DERIVED_TARGETS) $(DEST)/ + +$(addprefix $(DEST)/, $(DERIVED_TARGETS)): $(DEST)/% : $(DEST)/$(MAIN_TARGET) diff --git a/src/sonic-frr/Makefile b/src/sonic-frr/Makefile index 45f37e52781e..a2e2c12885db 100644 --- a/src/sonic-frr/Makefile +++ b/src/sonic-frr/Makefile @@ -13,7 +13,7 @@ $(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% : git checkout -b $(FRR_BRANCH) origin/$(FRR_BRANCH) || git checkout $(FRR_BRANCH) stg branch --create $(STG_BRANCH) $(FRR_TAG) stg import -s ../patch/series - tools/tarsource.sh -V -e '-sonic' + gbp dch --ignore-branch --new-version=$(FRR_VERSION)-sonic-$(FRR_SUBVERSION) --dch-opt="--force-bad-version" --commit --git-author dpkg-buildpackage -rfakeroot -b -us -uc -Ppkg.frr.nortrlib -j$(SONIC_CONFIG_MAKE_JOBS) --admindir $(SONIC_DPKG_ADMINDIR) stg undo || true git clean -xfdf diff --git a/src/sonic-frr/patch/0001-Add-support-of-bgp-tcp-DSCP-value.patch b/src/sonic-frr/patch/0001-Add-support-of-bgp-tcp-DSCP-value.patch index 5f4ce04d3ff5..ba5668394385 100644 --- a/src/sonic-frr/patch/0001-Add-support-of-bgp-tcp-DSCP-value.patch +++ b/src/sonic-frr/patch/0001-Add-support-of-bgp-tcp-DSCP-value.patch @@ -1,20 +1,20 @@ -From 71415ae851357025a99b8ead7edf5755a55b6fbb Mon Sep 17 00:00:00 2001 +From 4ab192df23362e64d1a11441fae82329388f103e Mon Sep 17 00:00:00 2001 From: Pavel Shirshov Date: Mon, 16 Nov 2020 18:00:12 -0800 -Subject: [PATCH 1/5] Add support of bgp tcp DSCP value +Subject: [PATCH 1/8] Add support of bgp tcp DSCP value --- bgpd/bgp_network.c | 11 ++++------- bgpd/bgp_vty.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ - bgpd/bgpd.c | 2 +- + bgpd/bgpd.c | 1 + bgpd/bgpd.h | 3 +++ - 4 files changed, 52 insertions(+), 8 deletions(-) + 4 files changed, 52 insertions(+), 7 deletions(-) diff --git a/bgpd/bgp_network.c b/bgpd/bgp_network.c -index cae11ae7b..f1d96664d 100644 +index 3fb7619ed..70c771683 100644 --- a/bgpd/bgp_network.c +++ b/bgpd/bgp_network.c -@@ -721,11 +721,9 @@ int bgp_connect(struct peer *peer) +@@ -743,11 +743,9 @@ int bgp_connect(struct peer *peer) #ifdef IPTOS_PREC_INTERNETCONTROL frr_with_privs(&bgpd_privs) { if (sockunion_family(&peer->su) == AF_INET) @@ -28,7 +28,7 @@ index cae11ae7b..f1d96664d 100644 } #endif -@@ -801,10 +799,9 @@ static int bgp_listener(int sock, struct sockaddr *sa, socklen_t salen, +@@ -824,10 +822,9 @@ static int bgp_listener(int sock, struct sockaddr *sa, socklen_t salen, #ifdef IPTOS_PREC_INTERNETCONTROL if (sa->sa_family == AF_INET) @@ -42,10 +42,10 @@ index cae11ae7b..f1d96664d 100644 sockopt_v6only(sa->sa_family, sock); diff --git a/bgpd/bgp_vty.c b/bgpd/bgp_vty.c -index bb2f89f9e..33662b08e 100644 +index 4df2abef8..950d1d25c 100644 --- a/bgpd/bgp_vty.c +++ b/bgpd/bgp_vty.c -@@ -1330,6 +1330,42 @@ DEFUN (no_router_bgp, +@@ -1558,6 +1558,42 @@ DEFUN (no_router_bgp, return CMD_SUCCESS; } @@ -88,7 +88,7 @@ index bb2f89f9e..33662b08e 100644 /* BGP router-id. */ -@@ -15549,6 +15585,10 @@ int bgp_config_write(struct vty *vty) +@@ -17053,6 +17089,10 @@ int bgp_config_write(struct vty *vty) if (CHECK_FLAG(bgp->flags, BGP_FLAG_NO_FAST_EXT_FAILOVER)) vty_out(vty, " no bgp fast-external-failover\n"); @@ -97,9 +97,9 @@ index bb2f89f9e..33662b08e 100644 + vty_out(vty, " bgp session-dscp %02X\n", bgp->tcp_dscp >> 2); + /* BGP router ID. */ - if (bgp->router_id_static.s_addr != 0) - vty_out(vty, " bgp router-id %s\n", -@@ -16057,6 +16097,10 @@ void bgp_vty_init(void) + if (bgp->router_id_static.s_addr != INADDR_ANY) + vty_out(vty, " bgp router-id %pI4\n", +@@ -17662,6 +17702,10 @@ void bgp_vty_init(void) /* "no router bgp" commands. */ install_element(CONFIG_NODE, &no_router_bgp_cmd); @@ -111,32 +111,31 @@ index bb2f89f9e..33662b08e 100644 install_element(BGP_NODE, &bgp_router_id_cmd); install_element(BGP_NODE, &no_bgp_router_id_cmd); diff --git a/bgpd/bgpd.c b/bgpd/bgpd.c -index cf9ff038d..0e8579843 100644 +index 7e528b219..005523544 100644 --- a/bgpd/bgpd.c +++ b/bgpd/bgpd.c -@@ -3069,7 +3069,7 @@ static struct bgp *bgp_create(as_t *as, const char *name, - +@@ -3229,6 +3229,7 @@ static struct bgp *bgp_create(as_t *as, const char *name, bgp->evpn_info = XCALLOC(MTYPE_BGP_EVPN_INFO, sizeof(struct bgp_evpn_info)); -- + + bgp->tcp_dscp = IPTOS_PREC_INTERNETCONTROL; bgp_evpn_init(bgp); + bgp_evpn_vrf_es_init(bgp); bgp_pbr_init(bgp); - diff --git a/bgpd/bgpd.h b/bgpd/bgpd.h -index 2aa069002..914f296e5 100644 +index 8b93c450e..e780d8a03 100644 --- a/bgpd/bgpd.h +++ b/bgpd/bgpd.h -@@ -678,6 +678,9 @@ struct bgp { +@@ -743,6 +743,9 @@ struct bgp { /* Weighted ECMP related config. */ enum bgp_link_bw_handling lb_handling; + /* dscp value for tcp sessions */ + uint8_t tcp_dscp; + - QOBJ_FIELDS - }; - DECLARE_QOBJ_TYPE(bgp) + /* Process Queue for handling routes */ + struct work_queue *process_queue; + -- -2.29.2.windows.2 +2.12.2 diff --git a/src/sonic-frr/patch/0002-Reduce-severity-of-Vty-connected-from-message.patch b/src/sonic-frr/patch/0002-Reduce-severity-of-Vty-connected-from-message.patch index 5e4daafae2d0..764d38463289 100644 --- a/src/sonic-frr/patch/0002-Reduce-severity-of-Vty-connected-from-message.patch +++ b/src/sonic-frr/patch/0002-Reduce-severity-of-Vty-connected-from-message.patch @@ -1,25 +1,25 @@ -From a81d37fc1558c33426a4fb59ff25c6d73a20f210 Mon Sep 17 00:00:00 2001 +From 15274a197e4d3b7ac0f11ca63a5274f1168739f5 Mon Sep 17 00:00:00 2001 From: Pavel Shirshov Date: Mon, 16 Nov 2020 18:11:47 -0800 -Subject: [PATCH 2/5] Reduce severity of 'Vty connected from' message +Subject: [PATCH 2/8] Reduce severity of 'Vty connected from' message --- lib/vty.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/vty.c b/lib/vty.c -index 077c6f621..3204948b8 100644 +index 8eaf13619..7edeb5538 100644 --- a/lib/vty.c +++ b/lib/vty.c -@@ -1859,7 +1859,7 @@ static int vty_accept(struct thread *thread) +@@ -1814,7 +1814,7 @@ static int vty_accept(struct thread *thread) zlog_info("can't set sockopt to vty_sock : %s", safe_strerror(errno)); -- zlog_info("Vty connection from %s", -+ zlog_debug("Vty connection from %s", - sockunion2str(&su, buf, SU_ADDRSTRLEN)); +- zlog_info("Vty connection from %pSU", &su); ++ zlog_debug("Vty connection from %pSU", &su); vty_create(vty_sock, &su); + -- -2.29.2.windows.2 +2.12.2 diff --git a/src/sonic-frr/patch/0003-Use-vrf_id-for-vrf-not-tabled_id.patch b/src/sonic-frr/patch/0003-Use-vrf_id-for-vrf-not-tabled_id.patch index cefeca769c6d..f815cf38455e 100644 --- a/src/sonic-frr/patch/0003-Use-vrf_id-for-vrf-not-tabled_id.patch +++ b/src/sonic-frr/patch/0003-Use-vrf_id-for-vrf-not-tabled_id.patch @@ -1,25 +1,25 @@ -From ecc9aa458a34f49744a2b90d3a7ebcce951a8478 Mon Sep 17 00:00:00 2001 +From 39bb40dc4bad4462e4ae9c98580d75fa2c92e032 Mon Sep 17 00:00:00 2001 From: Pavel Shirshov Date: Mon, 16 Nov 2020 18:29:46 -0800 -Subject: [PATCH 3/5] Use vrf_id for vrf, not tabled_id +Subject: [PATCH 3/8] Use vrf_id for vrf, not tabled_id --- zebra/zebra_fpm_netlink.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zebra/zebra_fpm_netlink.c b/zebra/zebra_fpm_netlink.c -index 2c0741363..0ab92398f 100644 +index ec22c5dd4..aad0156b3 100644 --- a/zebra/zebra_fpm_netlink.c +++ b/zebra/zebra_fpm_netlink.c -@@ -286,7 +286,7 @@ static int netlink_route_info_fill(struct netlink_route_info *ri, int cmd, - ri->af = rib_dest_af(dest); +@@ -287,7 +287,7 @@ static int netlink_route_info_fill(struct netlink_route_info *ri, int cmd, + ri->nlmsg_pid = zvrf->zns->netlink_dplane_out.snl.nl_pid; ri->nlmsg_type = cmd; -- ri->rtm_table = rib_table_info(rib_dest_table(dest))->table_id; +- ri->rtm_table = table_info->table_id; + ri->rtm_table = zvrf_id(rib_dest_vrf(dest)); ri->rtm_protocol = RTPROT_UNSPEC; /* -- -2.29.2.windows.2 +2.12.2 diff --git a/src/sonic-frr/patch/0004-Allow-BGP-attr-NEXT_HOP-to-be-0.0.0.0-due-to-allevia.patch b/src/sonic-frr/patch/0004-Allow-BGP-attr-NEXT_HOP-to-be-0.0.0.0-due-to-allevia.patch index df92c8d65738..9d2f08efb191 100644 --- a/src/sonic-frr/patch/0004-Allow-BGP-attr-NEXT_HOP-to-be-0.0.0.0-due-to-allevia.patch +++ b/src/sonic-frr/patch/0004-Allow-BGP-attr-NEXT_HOP-to-be-0.0.0.0-due-to-allevia.patch @@ -1,17 +1,18 @@ -From 70739436fc8ab4d5e507a0185fbc58eca298f7eb Mon Sep 17 00:00:00 2001 +From afff474c79e0c177e090d1b45d68c9f816a52e3e Mon Sep 17 00:00:00 2001 From: Pavel Shirshov Date: Mon, 16 Nov 2020 18:33:46 -0800 -Subject: [PATCH 4/5] Allow BGP attr NEXT_HOP to be 0.0.0.0 due to alleviate -the vendor bug +Subject: [PATCH 4/8] Allow BGP attr NEXT_HOP to be 0.0.0.0 due to + alleviate + --- bgpd/bgp_route.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c -index 1c646c03e..df2aa1b4c 100644 +index b297ca006..d4b5066c6 100644 --- a/bgpd/bgp_route.c +++ b/bgpd/bgp_route.c -@@ -3354,8 +3354,7 @@ bool bgp_update_martian_nexthop(struct bgp *bgp, afi_t afi, safi_t safi, +@@ -3625,8 +3625,7 @@ bool bgp_update_martian_nexthop(struct bgp *bgp, afi_t afi, safi_t safi, /* If NEXT_HOP is present, validate it. */ if (attr->flag & ATTR_FLAG_BIT(BGP_ATTR_NEXT_HOP)) { @@ -22,5 +23,5 @@ index 1c646c03e..df2aa1b4c 100644 return true; } -- -2.29.2.windows.2 +2.12.2 diff --git a/src/sonic-frr/patch/0005-nexthops-compare-vrf-only-if-ip-type.patch b/src/sonic-frr/patch/0005-nexthops-compare-vrf-only-if-ip-type.patch index 1ca955d175d5..2db1105622eb 100644 --- a/src/sonic-frr/patch/0005-nexthops-compare-vrf-only-if-ip-type.patch +++ b/src/sonic-frr/patch/0005-nexthops-compare-vrf-only-if-ip-type.patch @@ -1,7 +1,7 @@ -From dd66532a0e73b0c3ae6375e795b3b47f16196d09 Mon Sep 17 00:00:00 2001 +From 786087468520db44c55e3566f77438b41f52763f Mon Sep 17 00:00:00 2001 From: Pavel Shirshov Date: Mon, 16 Nov 2020 18:35:01 -0800 -Subject: [PATCH 5/5] nexthops compare vrf only if ip type +Subject: [PATCH 5/8] nexthops compare vrf only if ip type --- lib/nexthop.c | 12 ++++++------ @@ -9,10 +9,10 @@ Subject: [PATCH 5/5] nexthops compare vrf only if ip type 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/lib/nexthop.c b/lib/nexthop.c -index 0ea72d03e..50552df60 100644 +index e17eeb830..a1ce22e3b 100644 --- a/lib/nexthop.c +++ b/lib/nexthop.c -@@ -105,12 +105,6 @@ static int _nexthop_cmp_no_labels(const struct nexthop *next1, +@@ -140,12 +140,6 @@ static int _nexthop_cmp_no_labels(const struct nexthop *next1, { int ret = 0; @@ -25,7 +25,7 @@ index 0ea72d03e..50552df60 100644 if (next1->type < next2->type) return -1; -@@ -126,6 +120,12 @@ static int _nexthop_cmp_no_labels(const struct nexthop *next1, +@@ -161,6 +155,12 @@ static int _nexthop_cmp_no_labels(const struct nexthop *next1, switch (next1->type) { case NEXTHOP_TYPE_IPV4: case NEXTHOP_TYPE_IPV6: @@ -39,10 +39,10 @@ index 0ea72d03e..50552df60 100644 if (ret != 0) return ret; diff --git a/lib/zclient.c b/lib/zclient.c -index fb48d4a12..39132465f 100644 +index 445837017..c104623b7 100644 --- a/lib/zclient.c +++ b/lib/zclient.c -@@ -822,12 +822,6 @@ static int zapi_nexthop_cmp_no_labels(const struct zapi_nexthop *next1, +@@ -864,12 +864,6 @@ static int zapi_nexthop_cmp_no_labels(const struct zapi_nexthop *next1, { int ret = 0; @@ -55,7 +55,7 @@ index fb48d4a12..39132465f 100644 if (next1->type < next2->type) return -1; -@@ -843,6 +837,12 @@ static int zapi_nexthop_cmp_no_labels(const struct zapi_nexthop *next1, +@@ -885,6 +879,12 @@ static int zapi_nexthop_cmp_no_labels(const struct zapi_nexthop *next1, switch (next1->type) { case NEXTHOP_TYPE_IPV4: case NEXTHOP_TYPE_IPV6: @@ -69,5 +69,5 @@ index fb48d4a12..39132465f 100644 &next2->gate); if (ret != 0) -- -2.29.2.windows.2 +2.12.2 diff --git a/src/sonic-frr/patch/0007-frr-remove-frr-log-outchannel-to-var-log-frr.log.patch b/src/sonic-frr/patch/0006-frr-remove-frr-log-outchannel-to-var-log-frr.log.patch similarity index 88% rename from src/sonic-frr/patch/0007-frr-remove-frr-log-outchannel-to-var-log-frr.log.patch rename to src/sonic-frr/patch/0006-frr-remove-frr-log-outchannel-to-var-log-frr.log.patch index de5064885191..6d3db6d518e9 100644 --- a/src/sonic-frr/patch/0007-frr-remove-frr-log-outchannel-to-var-log-frr.log.patch +++ b/src/sonic-frr/patch/0006-frr-remove-frr-log-outchannel-to-var-log-frr.log.patch @@ -1,14 +1,12 @@ -From 31464e3fd0f677bc15286e99d4a30e2e33480c53 Mon Sep 17 00:00:00 2001 +From 0417036a3aece862c95111d4646ca7508a028165 Mon Sep 17 00:00:00 2001 From: Ying Xie Date: Wed, 25 Nov 2020 22:28:43 +0000 -Subject: [PATCH] [frr] remove frr log outchannel to /var/log/frr.log - +Subject: [PATCH] [PATCH 6/8] [frr] remove frr log outchannel to /var/log/frr.log SONiC runs frr inside a docker and the logs are sent to base image via rsyslog and recorded already. There is no need to keep the frr.log inside the docker. It will grow and take all harddrive space eventually. -Signed-off-by: Ying Xie --- tools/etc/rsyslog.d/45-frr.conf | 19 ------------------- 1 file changed, 19 deletions(-) @@ -44,5 +42,5 @@ index feeeb13f1..fcd23d23a 100644 $programname == 'bgpd' or $programname == 'eigrpd' or -- -2.17.1 +2.12.2 diff --git a/src/sonic-frr/patch/0008-Add-support-of-bgp-l3vni-evpn.patch b/src/sonic-frr/patch/0007-Add-support-of-bgp-l3vni-evpn.patch similarity index 57% rename from src/sonic-frr/patch/0008-Add-support-of-bgp-l3vni-evpn.patch rename to src/sonic-frr/patch/0007-Add-support-of-bgp-l3vni-evpn.patch index 8a32e77a825e..5097ad513ef0 100644 --- a/src/sonic-frr/patch/0008-Add-support-of-bgp-l3vni-evpn.patch +++ b/src/sonic-frr/patch/0007-Add-support-of-bgp-l3vni-evpn.patch @@ -1,34 +1,36 @@ -From 2e9ed539d29f13d874c6a5ab3120bf4bb26ab2bb Mon Sep 17 00:00:00 2001 +From 74ee34e4990dbd168b7b8072894eb0cf8927f9d1 Mon Sep 17 00:00:00 2001 From: Kishore Kunal Date: Fri, 15 Jan 2021 15:52:13 -0800 -Subject: [PATCH] This is temp patch till Prefix to ARP indirection is add in neighorch +Subject: [PATCH 7/8] This is temp patch till Prefix to ARP indirection is + add in neighorch --- - lib/nexthop.c | 1 + - lib/nexthop.h | 7 ++++++- + lib/nexthop.c | 2 ++ + lib/nexthop.h | 6 ++++++ zebra/rt_netlink.c | 2 +- - zebra/zapi_msg.c | 2 ++ - zebra/zebra_dplane.c | 2 +- - zebra/zebra_fpm_netlink.c | 19 +++++++++++++++++++ - 6 files changed, 30 insertions(+), 3 deletions(-) + zebra/zapi_msg.c | 4 ++++ + zebra/zebra_dplane.c | 1 + + zebra/zebra_fpm_netlink.c | 20 ++++++++++++++++++++ + 6 files changed, 34 insertions(+), 1 deletion(-) diff --git a/lib/nexthop.c b/lib/nexthop.c -index 0ea72d03e..02e826048 100644 +index a1ce22e3b..6f3fe2a5f 100644 --- a/lib/nexthop.c +++ b/lib/nexthop.c -@@ -657,6 +657,7 @@ void nexthop_copy_no_recurse(struct nexthop *copy, +@@ -813,6 +813,8 @@ void nexthop_copy_no_recurse(struct nexthop *copy, + memcpy(©->src, &nexthop->src, sizeof(nexthop->src)); + memcpy(©->rmap_src, &nexthop->rmap_src, sizeof(nexthop->rmap_src)); + copy->rparent = rparent; ++ memcpy(©->nh_encap.encap_data.rmac, &nexthop->nh_encap.encap_data.rmac, ETH_ALEN); ++ + if (nexthop->nh_label) nexthop_add_labels(copy, nexthop->nh_label_type, nexthop->nh_label->num_labels, - &nexthop->nh_label->label[0]); -+ memcpy(©->nh_encap.encap_data.rmac, &nexthop->nh_encap.encap_data.rmac, ETH_ALEN); - } - - void nexthop_copy(struct nexthop *copy, const struct nexthop *nexthop, diff --git a/lib/nexthop.h b/lib/nexthop.h -index cadcea1f4..fd959eb9e 100644 +index 320b46315..0f98dc3c2 100644 --- a/lib/nexthop.h +++ b/lib/nexthop.h -@@ -71,6 +71,11 @@ enum nh_encap_type { +@@ -66,6 +66,11 @@ enum nh_encap_type { /* Backup index value is limited */ #define NEXTHOP_BACKUP_IDX_MAX 255 @@ -40,20 +42,19 @@ index cadcea1f4..fd959eb9e 100644 /* Nexthop structure. */ struct nexthop { struct nexthop *next; -@@ -140,7 +145,7 @@ struct nexthop { - /* Encapsulation information. */ +@@ -136,6 +141,7 @@ struct nexthop { enum nh_encap_type nh_encap_type; union { -- vni_t vni; + vni_t vni; + struct vxlan_nh_encap encap_data; } nh_encap; /* SR-TE color used for matching SR-TE policies */ diff --git a/zebra/rt_netlink.c b/zebra/rt_netlink.c -index 50b1a62d8..d8249f8e0 100644 +index 24c01b7f5..5e0f4cd8f 100644 --- a/zebra/rt_netlink.c +++ b/zebra/rt_netlink.c -@@ -1590,7 +1590,7 @@ static int netlink_route_nexthop_encap(struct nlmsghdr *n, size_t nlen, +@@ -1856,7 +1856,7 @@ static int netlink_route_nexthop_encap(struct nlmsghdr *n, size_t nlen, return false; if (!nl_attr_put32(n, nlen, 0 /* VXLAN_VNI */, @@ -63,43 +64,44 @@ index 50b1a62d8..d8249f8e0 100644 nl_attr_nest_end(n, nest); break; diff --git a/zebra/zapi_msg.c b/zebra/zapi_msg.c -index e436e5a28..c10d50797 100644 +index 5cf7d815d..529cbb44b 100644 --- a/zebra/zapi_msg.c +++ b/zebra/zapi_msg.c -@@ -1477,6 +1477,7 @@ static struct nexthop *nexthop_from_zapi(struct route_entry *re, - zebra_vxlan_evpn_vrf_route_add( - api_nh->vrf_id, &api_nh->rmac, - &vtep_ip, &api->prefix); -+ memcpy(&(nexthop->nh_encap.encap_data.rmac), &api_nh->rmac, ETH_ALEN); +@@ -1577,6 +1577,8 @@ static struct nexthop *nexthop_from_zapi(const struct zapi_nexthop *api_nh, + vtep_ip.ipa_type = IPADDR_V4; + memcpy(&(vtep_ip.ipaddr_v4), &(api_nh->gate.ipv4), + sizeof(struct in_addr)); ++ memcpy(&(nexthop->nh_encap.encap_data.rmac), ++ &api_nh->rmac, ETH_ALEN); + zebra_rib_queue_evpn_route_add( + api_nh->vrf_id, &api_nh->rmac, &vtep_ip, p); } - break; - case NEXTHOP_TYPE_IPV6: -@@ -1511,6 +1512,7 @@ static struct nexthop *nexthop_from_zapi(struct route_entry *re, - zebra_vxlan_evpn_vrf_route_add( - api_nh->vrf_id, &api_nh->rmac, - &vtep_ip, &api->prefix); -+ memcpy(&(nexthop->nh_encap.encap_data.rmac), &api_nh->rmac, ETH_ALEN); +@@ -1610,6 +1612,8 @@ static struct nexthop *nexthop_from_zapi(const struct zapi_nexthop *api_nh, + vtep_ip.ipa_type = IPADDR_V6; + memcpy(&vtep_ip.ipaddr_v6, &(api_nh->gate.ipv6), + sizeof(struct in6_addr)); ++ memcpy(&(nexthop->nh_encap.encap_data.rmac), ++ &api_nh->rmac, ETH_ALEN); + zebra_rib_queue_evpn_route_add( + api_nh->vrf_id, &api_nh->rmac, &vtep_ip, p); } - break; - case NEXTHOP_TYPE_BLACKHOLE: diff --git a/zebra/zebra_dplane.c b/zebra/zebra_dplane.c -index abd0adb64..e66d7aae5 100644 +index 656ebcf3b..8d125d77e 100644 --- a/zebra/zebra_dplane.c +++ b/zebra/zebra_dplane.c -@@ -1891,7 +1891,7 @@ int dplane_ctx_route_init(struct zebra_dplane_ctx *ctx, enum dplane_op_e op, - zl3vni = zl3vni_from_vrf(nexthop->vrf_id); +@@ -2421,6 +2421,7 @@ int dplane_ctx_route_init(struct zebra_dplane_ctx *ctx, enum dplane_op_e op, if (zl3vni && is_l3vni_oper_up(zl3vni)) { nexthop->nh_encap_type = NET_VXLAN; -- nexthop->nh_encap.vni = zl3vni->vni; + nexthop->nh_encap.vni = zl3vni->vni; + nexthop->nh_encap.encap_data.vni = zl3vni->vni; } } diff --git a/zebra/zebra_fpm_netlink.c b/zebra/zebra_fpm_netlink.c -index 2c0741363..2731f64fb 100644 +index aad0156b3..34be9fb39 100644 --- a/zebra/zebra_fpm_netlink.c +++ b/zebra/zebra_fpm_netlink.c -@@ -129,10 +129,12 @@ static const char *fpm_nh_encap_type_to_str(enum fpm_nh_encap_type_t encap_type) +@@ -95,10 +95,12 @@ static const char *fpm_nh_encap_type_to_str(enum fpm_nh_encap_type_t encap_type) struct vxlan_encap_info_t { vni_t vni; @@ -112,16 +114,17 @@ index 2c0741363..2731f64fb 100644 }; struct fpm_nh_encap_info_t { -@@ -238,6 +240,8 @@ static int netlink_route_info_add_nh(struct netlink_route_info *ri, - - /* Add VNI to VxLAN encap info */ - nhi.encap_info.vxlan_encap.vni = zl3vni->vni; -+ memcpy(&nhi.encap_info.vxlan_encap.rmac, &(nexthop->nh_encap.encap_data.rmac), -+ ETH_ALEN); +@@ -234,6 +236,9 @@ static int netlink_route_info_add_nh(struct netlink_route_info *ri, } + + nhi.encap_info.vxlan_encap.vni = vni; ++ memcpy(&nhi.encap_info.vxlan_encap.rmac, ++ &(nexthop->nh_encap.encap_data.rmac), ++ ETH_ALEN); } -@@ -454,9 +458,16 @@ static int netlink_route_info_encode(struct netlink_route_info *ri, + /* +@@ -456,9 +461,16 @@ static int netlink_route_info_encode(struct netlink_route_info *ri, nl_attr_put16(&req->n, in_buf_len, RTA_ENCAP_TYPE, encap); vxlan = &nhi->encap_info.vxlan_encap; @@ -138,7 +141,7 @@ index 2c0741363..2731f64fb 100644 nl_attr_nest_end(&req->n, nest); break; } -@@ -490,10 +501,18 @@ static int netlink_route_info_encode(struct netlink_route_info *ri, +@@ -494,10 +506,18 @@ static int netlink_route_info_encode(struct netlink_route_info *ri, nl_attr_put16(&req->n, in_buf_len, RTA_ENCAP_TYPE, encap); vxlan = &nhi->encap_info.vxlan_encap; @@ -158,5 +161,5 @@ index 2c0741363..2731f64fb 100644 break; } -- -2.18.0 +2.12.2 diff --git a/src/sonic-frr/patch/0008-Link-local-scope-was-not-set-while-binding-socket-for-bgp-ipv6-link-local-neighbors.patch b/src/sonic-frr/patch/0008-Link-local-scope-was-not-set-while-binding-socket-for-bgp-ipv6-link-local-neighbors.patch new file mode 100644 index 000000000000..c2ff17dab88c --- /dev/null +++ b/src/sonic-frr/patch/0008-Link-local-scope-was-not-set-while-binding-socket-for-bgp-ipv6-link-local-neighbors.patch @@ -0,0 +1,29 @@ +From 92ab2d74fca06f86c00d886ac249f7f2d89e93fe Mon Sep 17 00:00:00 2001 +From: Akhilesh Samineni +Date: Mon, 5 Apr 2021 13:21:40 -0700 +Subject: [PATCH 8/8] Link local scope was not set while binding socket + with local address causing socket errors for bgp ipv6 link local neighbors. + +--- + bgpd/bgp_network.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/bgpd/bgp_network.c b/bgpd/bgp_network.c +index 70c771683..dbc9870a5 100644 +--- a/bgpd/bgp_network.c ++++ b/bgpd/bgp_network.c +@@ -662,6 +662,11 @@ static int bgp_update_address(struct interface *ifp, const union sockunion *dst, + return 1; + + prefix2sockunion(sel, addr); ++ ++ if (IN6_IS_ADDR_LINKLOCAL(&addr->sin6.sin6_addr)) { ++ addr->sin6.sin6_scope_id = ifp->ifindex; ++ } ++ + return 0; + } + +-- +2.12.2 + diff --git a/src/sonic-frr/patch/0009-Add-bgp-bestpath-peer-type-multipath-relax.patch b/src/sonic-frr/patch/0009-Add-bgp-bestpath-peer-type-multipath-relax.patch deleted file mode 100644 index 0e9af83aa864..000000000000 --- a/src/sonic-frr/patch/0009-Add-bgp-bestpath-peer-type-multipath-relax.patch +++ /dev/null @@ -1,346 +0,0 @@ -From a70c630a504e041da1c2441337b2d47e8fdd3d30 Mon Sep 17 00:00:00 2001 -From: Joanne Mikkelson -Date: Mon, 29 Jun 2020 13:31:49 -0700 -Subject: [PATCH] Add "bgp bestpath peer-type multipath-relax" - -This new BGP configuration is akin to "bgp bestpath aspath -multipath-relax". When applied, paths learned from different peer types -will be eligible to be considered for multipath (ECMP). Paths from all -of eBGP, iBGP, and confederation peers may be included in multipaths -if they are otherwise equal cost. - -This change preserves the existing bestpath behavior of step 10's result -being returned, not the result from steps 8 and 9, in the case where -both 8+9 and 10 determine a winner. - -When "bgp bestpath peer-type multipath-relax" is enabled, multipaths -with both eBGP and iBGP learned routes may exist. It is not desirable -for the iBGP next hops to be discarded from the FIB because they are not -directly connected. When publishing a nexthop group to zebra, the -ZEBRA_FLAG_ALLOW_RECURSION flag is normally not set when the best path -is eBGP; when "bgp bestpath aspath multipath-relax" is configured, the -flag will now be set if any paths are from iBGP peers. This leaves -all-eBGP multipaths still requiring nexthops over connected routes. ---- - bgpd/bgp_route.c | 76 ++++++++++++++++++++++++++++++++++-------------- - bgpd/bgp_vty.c | 43 +++++++++++++++++++++++++++ - bgpd/bgp_zebra.c | 15 +++++++++- - bgpd/bgpd.h | 1 + - doc/user/bgp.rst | 7 +++++ - 5 files changed, 119 insertions(+), 23 deletions(-) - -diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c -index 1c646c03e..73dbf3c5f 100644 ---- a/bgpd/bgp_route.c -+++ b/bgpd/bgp_route.c -@@ -540,6 +540,8 @@ static int bgp_path_info_cmp(struct bgp *bgp, struct bgp_path_info *new, - int internal_as_route; - int confed_as_route; - int ret = 0; -+ int igp_metric_ret = 0; -+ int peer_sort_ret = -1; - char new_buf[PATH_ADDPATH_STR_BUFFER]; - char exist_buf[PATH_ADDPATH_STR_BUFFER]; - uint32_t new_mm_seq; -@@ -940,7 +942,9 @@ static int bgp_path_info_cmp(struct bgp *bgp, struct bgp_path_info *new, - zlog_debug( - "%s: %s wins over %s due to eBGP peer > iBGP peer", - pfx_buf, new_buf, exist_buf); -- return 1; -+ if (!CHECK_FLAG(bgp->flags, BGP_FLAG_PEERTYPE_MULTIPATH_RELAX)) -+ return 1; -+ peer_sort_ret = 1; - } - - if (exist_sort == BGP_PEER_EBGP -@@ -950,7 +954,9 @@ static int bgp_path_info_cmp(struct bgp *bgp, struct bgp_path_info *new, - zlog_debug( - "%s: %s loses to %s due to iBGP peer < eBGP peer", - pfx_buf, new_buf, exist_buf); -- return 0; -+ if (!CHECK_FLAG(bgp->flags, BGP_FLAG_PEERTYPE_MULTIPATH_RELAX)) -+ return 0; -+ peer_sort_ret = 0; - } - - /* 8. IGP metric check. */ -@@ -962,19 +968,19 @@ static int bgp_path_info_cmp(struct bgp *bgp, struct bgp_path_info *new, - existm = exist->extra->igpmetric; - - if (newm < existm) { -- if (debug) -+ if (debug && peer_sort_ret < 0) - zlog_debug( - "%s: %s wins over %s due to IGP metric %d < %d", - pfx_buf, new_buf, exist_buf, newm, existm); -- ret = 1; -+ igp_metric_ret = 1; - } - - if (newm > existm) { -- if (debug) -+ if (debug && peer_sort_ret < 0) - zlog_debug( - "%s: %s loses to %s due to IGP metric %d > %d", - pfx_buf, new_buf, exist_buf, newm, existm); -- ret = 0; -+ igp_metric_ret = 0; - } - - /* 9. Same IGP metric. Compare the cluster list length as -@@ -992,21 +998,21 @@ static int bgp_path_info_cmp(struct bgp *bgp, struct bgp_path_info *new, - existm = BGP_CLUSTER_LIST_LENGTH(exist->attr); - - if (newm < existm) { -- if (debug) -+ if (debug && peer_sort_ret < 0) - zlog_debug( - "%s: %s wins over %s due to CLUSTER_LIST length %d < %d", - pfx_buf, new_buf, exist_buf, - newm, existm); -- ret = 1; -+ igp_metric_ret = 1; - } - - if (newm > existm) { -- if (debug) -+ if (debug && peer_sort_ret < 0) - zlog_debug( - "%s: %s loses to %s due to CLUSTER_LIST length %d > %d", - pfx_buf, new_buf, exist_buf, - newm, existm); -- ret = 0; -+ igp_metric_ret = 0; - } - } - } -@@ -1020,7 +1026,10 @@ static int bgp_path_info_cmp(struct bgp *bgp, struct bgp_path_info *new, - zlog_debug( - "%s: %s wins over %s due to confed-external peer > confed-internal peer", - pfx_buf, new_buf, exist_buf); -- return 1; -+ if (!CHECK_FLAG(bgp->flags, -+ BGP_FLAG_PEERTYPE_MULTIPATH_RELAX)) -+ return 1; -+ peer_sort_ret = 1; - } - - if (exist_sort == BGP_PEER_CONFED -@@ -1030,7 +1039,10 @@ static int bgp_path_info_cmp(struct bgp *bgp, struct bgp_path_info *new, - zlog_debug( - "%s: %s loses to %s due to confed-internal peer < confed-external peer", - pfx_buf, new_buf, exist_buf); -- return 0; -+ if (!CHECK_FLAG(bgp->flags, -+ BGP_FLAG_PEERTYPE_MULTIPATH_RELAX)) -+ return 0; -+ peer_sort_ret = 0; - } - } - -@@ -1091,20 +1103,40 @@ static int bgp_path_info_cmp(struct bgp *bgp, struct bgp_path_info *new, - * TODO: If unequal cost ibgp multipath is enabled we can - * mark the paths as equal here instead of returning - */ -- if (debug) { -- if (ret == 1) -- zlog_debug( -- "%s: %s wins over %s after IGP metric comparison", -- pfx_buf, new_buf, exist_buf); -- else -- zlog_debug( -- "%s: %s loses to %s after IGP metric comparison", -- pfx_buf, new_buf, exist_buf); -+ -+ /* Prior to the addition of BGP_FLAG_PEERTYPE_MULTIPATH_RELAX, -+ * if either step 7 or 10 (peer type checks) yielded a winner, -+ * that result was returned immediately. Returning from step 10 -+ * ignored the return value computed in steps 8 and 9 (IGP -+ * metric checks). In order to preserve that behavior, if -+ * peer_sort_ret is set, return that rather than igp_metric_ret. -+ */ -+ ret = peer_sort_ret; -+ if (peer_sort_ret < 0) { -+ ret = igp_metric_ret; -+ if (debug) { -+ if (ret == 1) -+ zlog_debug( -+ "%s: %s wins over %s after IGP metric comparison", -+ pfx_buf, new_buf, exist_buf); -+ else -+ zlog_debug( -+ "%s: %s loses to %s after IGP metric comparison", -+ pfx_buf, new_buf, exist_buf); -+ } -+ *reason = bgp_path_selection_igp_metric; - } -- *reason = bgp_path_selection_igp_metric; - return ret; - } - -+ /* -+ * At this point, the decision whether to set *paths_eq = 1 has been -+ * completed. If we deferred returning because of bestpath peer-type -+ * relax configuration, return now. -+ */ -+ if (peer_sort_ret >= 0) -+ return peer_sort_ret; -+ - /* 12. If both paths are external, prefer the path that was received - first (the oldest one). This step minimizes route-flap, since a - newer path won't displace an older one, even if it was the -diff --git a/bgpd/bgp_vty.c b/bgpd/bgp_vty.c -index bb2f89f9e..4d1ce5a46 100644 ---- a/bgpd/bgp_vty.c -+++ b/bgpd/bgp_vty.c -@@ -3009,6 +3009,37 @@ DEFUN (no_bgp_bestpath_aspath_multipath_relax, - return CMD_SUCCESS; - } - -+/* "bgp bestpath peer-type multipath-relax" configuration. */ -+DEFUN(bgp_bestpath_peer_type_multipath_relax, -+ bgp_bestpath_peer_type_multipath_relax_cmd, -+ "bgp bestpath peer-type multipath-relax", -+ BGP_STR -+ "Change the default bestpath selection\n" -+ "Peer type\n" -+ "Allow load sharing across routes learned from different peer types\n") -+{ -+ VTY_DECLVAR_CONTEXT(bgp, bgp); -+ SET_FLAG(bgp->flags, BGP_FLAG_PEERTYPE_MULTIPATH_RELAX); -+ bgp_recalculate_all_bestpaths(bgp); -+ -+ return CMD_SUCCESS; -+} -+ -+DEFUN(no_bgp_bestpath_peer_type_multipath_relax, -+ no_bgp_bestpath_peer_type_multipath_relax_cmd, -+ "no bgp bestpath peer-type multipath-relax", -+ NO_STR BGP_STR -+ "Change the default bestpath selection\n" -+ "Peer type\n" -+ "Allow load sharing across routes learned from different peer types\n") -+{ -+ VTY_DECLVAR_CONTEXT(bgp, bgp); -+ UNSET_FLAG(bgp->flags, BGP_FLAG_PEERTYPE_MULTIPATH_RELAX); -+ bgp_recalculate_all_bestpaths(bgp); -+ -+ return CMD_SUCCESS; -+} -+ - /* "bgp log-neighbor-changes" configuration. */ - DEFUN (bgp_log_neighbor_changes, - bgp_log_neighbor_changes_cmd, -@@ -8999,6 +9030,9 @@ static void bgp_show_bestpath_json(struct bgp *bgp, json_object *json) - } else - json_object_string_add(bestpath, "multiPathRelax", "false"); - -+ if (CHECK_FLAG(bgp->flags, BGP_FLAG_PEERTYPE_MULTIPATH_RELAX)) -+ json_object_boolean_true_add(bestpath, "peerTypeRelax"); -+ - if (CHECK_FLAG(bgp->flags, BGP_FLAG_COMPARE_ROUTER_ID)) - json_object_string_add(bestpath, "compareRouterId", "true"); - if (CHECK_FLAG(bgp->flags, BGP_FLAG_MED_CONFED) -@@ -15750,6 +15784,10 @@ int bgp_config_write(struct vty *vty) - vty_out(vty, "\n"); - } - -+ if (CHECK_FLAG(bgp->flags, BGP_FLAG_PEERTYPE_MULTIPATH_RELAX)) -+ vty_out(vty, -+ " bgp bestpath peer-type multipath-relax\n"); -+ - /* Link bandwidth handling. */ - if (bgp->lb_handling == BGP_LINK_BW_IGNORE_BW) - vty_out(vty, " bgp bestpath bandwidth ignore\n"); -@@ -16214,6 +16252,11 @@ void bgp_vty_init(void) - install_element(BGP_NODE, &bgp_bestpath_aspath_multipath_relax_cmd); - install_element(BGP_NODE, &no_bgp_bestpath_aspath_multipath_relax_cmd); - -+ /* "bgp bestpath peer-type multipath-relax" commands */ -+ install_element(BGP_NODE, &bgp_bestpath_peer_type_multipath_relax_cmd); -+ install_element(BGP_NODE, -+ &no_bgp_bestpath_peer_type_multipath_relax_cmd); -+ - /* "bgp log-neighbor-changes" commands */ - install_element(BGP_NODE, &bgp_log_neighbor_changes_cmd); - install_element(BGP_NODE, &no_bgp_log_neighbor_changes_cmd); -diff --git a/bgpd/bgp_zebra.c b/bgpd/bgp_zebra.c -index b20323852..4f7cfeaa2 100644 ---- a/bgpd/bgp_zebra.c -+++ b/bgpd/bgp_zebra.c -@@ -1184,6 +1184,7 @@ void bgp_zebra_announce(struct bgp_dest *dest, const struct prefix *p, - int nh_family; - unsigned int valid_nh_count = 0; - int has_valid_label = 0; -+ bool allow_recursion = false; - uint8_t distance; - struct peer *peer; - struct bgp_path_info *mpinfo; -@@ -1259,7 +1260,7 @@ void bgp_zebra_announce(struct bgp_dest *dest, const struct prefix *p, - || CHECK_FLAG(peer->flags, PEER_FLAG_DISABLE_CONNECTED_CHECK) - || CHECK_FLAG(bgp->flags, BGP_FLAG_DISABLE_NH_CONNECTED_CHK)) - -- SET_FLAG(api.flags, ZEBRA_FLAG_ALLOW_RECURSION); -+ allow_recursion = true; - - if (info->attr->rmap_table_id) { - SET_FLAG(api.message, ZAPI_MESSAGE_TABLEID); -@@ -1397,6 +1398,15 @@ void bgp_zebra_announce(struct bgp_dest *dest, const struct prefix *p, - if (!nh_updated) - continue; - -+ /* Allow recursion if it is a multipath group with both -+ * eBGP and iBGP paths. -+ */ -+ if (!allow_recursion -+ && CHECK_FLAG(bgp->flags, BGP_FLAG_PEERTYPE_MULTIPATH_RELAX) -+ && (mpinfo->peer->sort == BGP_PEER_IBGP -+ || mpinfo->peer->sort == BGP_PEER_CONFED)) -+ allow_recursion = true; -+ - if (mpinfo->extra - && bgp_is_valid_label(&mpinfo->extra->label[0]) - && !CHECK_FLAG(api.flags, ZEBRA_FLAG_EVPN_ROUTE)) { -@@ -1415,6 +1425,9 @@ void bgp_zebra_announce(struct bgp_dest *dest, const struct prefix *p, - valid_nh_count++; - } - -+ if (allow_recursion) -+ SET_FLAG(api.flags, ZEBRA_FLAG_ALLOW_RECURSION); -+ - /* - * When we create an aggregate route we must also - * install a Null0 route in the RIB, so overwrite -diff --git a/bgpd/bgpd.h b/bgpd/bgpd.h -index 2aa069002..e268d5b1e 100644 ---- a/bgpd/bgpd.h -+++ b/bgpd/bgpd.h -@@ -456,6 +456,7 @@ struct bgp { - #define BGP_FLAG_GR_DISABLE_EOR (1 << 24) - #define BGP_FLAG_EBGP_REQUIRES_POLICY (1 << 25) - #define BGP_FLAG_SHOW_NEXTHOP_HOSTNAME (1 << 26) -+#define BGP_FLAG_PEERTYPE_MULTIPATH_RELAX (1 << 31) - - /* This flag is set if the instance is in administrative shutdown */ - #define BGP_FLAG_SHUTDOWN (1 << 27) -diff --git a/doc/user/bgp.rst b/doc/user/bgp.rst -index b58030212..e248ffceb 100644 ---- a/doc/user/bgp.rst -+++ b/doc/user/bgp.rst -@@ -386,6 +386,13 @@ Route Selection - other measures were taken to avoid these. The exact behaviour will be - sensitive to the iBGP and reflection topology. - -+.. clicmd:: bgp bestpath peer-type multipath-relax -+ -+ This command specifies that BGP decision process should consider paths -+ from all peers for multipath computation. If this option is enabled, -+ paths learned from any of eBGP, iBGP, or confederation neighbors will -+ be multipath if they are otherwise considered equal cost. -+ - .. _bgp-distance: - - Administrative Distance Metrics --- -2.29.2 - diff --git a/src/sonic-frr/patch/0009-Link-local-scope-was-not-set-while-binding-socket-for-bgp-ipv6-link-local-neighbors.patch b/src/sonic-frr/patch/0009-Link-local-scope-was-not-set-while-binding-socket-for-bgp-ipv6-link-local-neighbors.patch deleted file mode 100644 index 82a1b26fb98f..000000000000 --- a/src/sonic-frr/patch/0009-Link-local-scope-was-not-set-while-binding-socket-for-bgp-ipv6-link-local-neighbors.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 4b45abcdb107c8c5d58fd63a2616c54c800305b3 Mon Sep 17 00:00:00 2001 -From: Akhilesh Samineni -Date: Mon, 5 Apr 2021 13:21:40 -0700 -Subject: [PATCH] Link local scope was not set while binding socket with local - address causing socket errors for bgp ipv6 link local neighbors. - ---- - bgpd/bgp_network.c | 5 +++++ - bgpd/bgp_zebra.c | 3 +++ - 2 files changed, 8 insertions(+) - -diff --git a/bgpd/bgp_network.c b/bgpd/bgp_network.c -index 6a5c2c4b3..d7047a154 100644 ---- a/bgpd/bgp_network.c -+++ b/bgpd/bgp_network.c -@@ -556,6 +556,11 @@ static int bgp_update_address(struct interface *ifp, const union sockunion *dst, - return 1; - - prefix2sockunion(sel, addr); -+ -+ if (IN6_IS_ADDR_LINKLOCAL(&addr->sin6.sin6_addr)) { -+ addr->sin6.sin6_scope_id = ifp->ifindex; -+ } -+ - return 0; - } - -diff --git a/bgpd/bgp_zebra.c b/bgpd/bgp_zebra.c -index e42d6ee26..8e9fa8903 100644 ---- a/bgpd/bgp_zebra.c -+++ b/bgpd/bgp_zebra.c -@@ -814,6 +814,9 @@ bool bgp_zebra_nexthop_set(union sockunion *local, union sockunion *remote, - ? peer->conf_if - : peer->ifname, - peer->bgp->vrf_id); -+ else if (peer->update_if) -+ ifp = if_lookup_by_name(peer->update_if, -+ peer->bgp->vrf_id); - } else if (peer->update_if) - ifp = if_lookup_by_name(peer->update_if, - peer->bgp->vrf_id); --- -2.18.0 - diff --git a/src/sonic-frr/patch/0010-remove-doc-png-install.patch b/src/sonic-frr/patch/0010-remove-doc-png-install.patch deleted file mode 100644 index c911d43eaa29..000000000000 --- a/src/sonic-frr/patch/0010-remove-doc-png-install.patch +++ /dev/null @@ -1,21 +0,0 @@ -Remove the *.png file installation from the frr-doc package. It doesn't look -like it's installed there with Bullseye's tools. - -From: Saikrishna Arcot - ---- - debian/frr-doc.install | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/debian/frr-doc.install b/debian/frr-doc.install -index c48dc5a8d..955c8fc5a 100644 ---- a/debian/frr-doc.install -+++ b/debian/frr-doc.install -@@ -3,7 +3,6 @@ usr/share/doc/frr/html - - # info + images referenced by it - usr/share/info/ --doc/user/_build/texinfo/*.png usr/share/info - - # other - README.md usr/share/doc/frr diff --git a/src/sonic-frr/patch/0011-Ipv4-Link-local-address-for-Ipv6-linl-local-nexthop.patch b/src/sonic-frr/patch/0011-Ipv4-Link-local-address-for-Ipv6-linl-local-nexthop.patch deleted file mode 100644 index 7a041c02fe15..000000000000 --- a/src/sonic-frr/patch/0011-Ipv4-Link-local-address-for-Ipv6-linl-local-nexthop.patch +++ /dev/null @@ -1,55 +0,0 @@ -diff --git a/zebra/zebra_fpm.c b/zebra/zebra_fpm.c -index 7b0611bf9..b5582ea35 100644 ---- a/zebra/zebra_fpm.c -+++ b/zebra/zebra_fpm.c -@@ -288,6 +288,9 @@ static void zfpm_start_connect_timer(const char *reason); - static void zfpm_start_stats_timer(void); - static void zfpm_mac_info_del(struct fpm_mac_info_t *fpm_mac); - -+static const char ipv4_ll_buf[16] = "169.254.0.1"; -+union g_addr ipv4ll_gateway; -+ - /* - * zfpm_thread_should_yield - */ -@@ -1988,6 +1991,9 @@ static int zfpm_init(struct thread_master *master) - zfpm_stats_init(&zfpm_g->last_ivl_stats); - zfpm_stats_init(&zfpm_g->cumulative_stats); - -+ memset(&ipv4ll_gateway, 0, sizeof(ipv4ll_gateway)); -+ inet_pton(AF_INET, ipv4_ll_buf, &ipv4ll_gateway.ipv4); -+ - install_node(&zebra_node); - install_element(ENABLE_NODE, &show_zebra_fpm_stats_cmd); - install_element(ENABLE_NODE, &clear_zebra_fpm_stats_cmd); -diff --git a/zebra/zebra_fpm_netlink.c b/zebra/zebra_fpm_netlink.c -index 60ea7f97e..0f8ba5413 100644 ---- a/zebra/zebra_fpm_netlink.c -+++ b/zebra/zebra_fpm_netlink.c -@@ -221,7 +221,12 @@ static int netlink_route_info_add_nh(struct netlink_route_info *ri, - - if (nexthop->type == NEXTHOP_TYPE_IPV6 - || nexthop->type == NEXTHOP_TYPE_IPV6_IFINDEX) { -- nhi.gateway = &nexthop->gate; -+ /* Special handling for IPv4 route with IPv6 Link Local next hop -+ */ -+ if (ri->af == AF_INET) -+ nhi.gateway = &ipv4ll_gateway; -+ else -+ nhi.gateway = &nexthop->gate; - } - - if (nexthop->type == NEXTHOP_TYPE_IFINDEX) { -diff --git a/zebra/zebra_fpm_private.h b/zebra/zebra_fpm_private.h -index c169ee8c2..13415c7e1 100644 ---- a/zebra/zebra_fpm_private.h -+++ b/zebra/zebra_fpm_private.h -@@ -97,6 +97,8 @@ extern int zfpm_netlink_encode_mac(struct fpm_mac_info_t *mac, char *in_buf, - - extern struct route_entry *zfpm_route_for_update(rib_dest_t *dest); - -+extern union g_addr ipv4ll_gateway; -+ - #ifdef __cplusplus - } - #endif diff --git a/src/sonic-frr/patch/Disable-ipv6-src-address-test-in-pceplib.patch b/src/sonic-frr/patch/Disable-ipv6-src-address-test-in-pceplib.patch new file mode 100644 index 000000000000..b924b9a66fc4 --- /dev/null +++ b/src/sonic-frr/patch/Disable-ipv6-src-address-test-in-pceplib.patch @@ -0,0 +1,27 @@ +From dfe0158344ea581370dd2dba8e4db189cf369147 Mon Sep 17 00:00:00 2001 +From: Syed Hasan Raza Naqvi +Date: Wed, 4 May 2022 05:11:01 +0000 +Subject: [PATCH] Disable ipv6 src address test in pcep. Docker lo interface + doesn't have ipv6 enabled. Socket bind returns cannot assign requested + address. + +--- + pceplib/test/pcep_socket_comm_test.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/pceplib/test/pcep_socket_comm_test.c b/pceplib/test/pcep_socket_comm_test.c +index 116531f12..8b71a5090 100644 +--- a/pceplib/test/pcep_socket_comm_test.c ++++ b/pceplib/test/pcep_socket_comm_test.c +@@ -92,7 +92,7 @@ void pcep_socket_comm_test_setup() + inet_pton(AF_INET, "127.0.0.1", &(test_host_ip)); + inet_pton(AF_INET, "127.0.0.1", &(test_src_ip)); + inet_pton(AF_INET6, "::1", &(test_host_ipv6)); +- inet_pton(AF_INET6, "::1", &(test_src_ipv6)); ++ inet_pton(AF_INET6, "::", &(test_src_ipv6)); + } + + void pcep_socket_comm_test_teardown() +-- +2.20.1 + diff --git a/src/sonic-frr/patch/series b/src/sonic-frr/patch/series index b77931d57e9a..43e407a3c952 100644 --- a/src/sonic-frr/patch/series +++ b/src/sonic-frr/patch/series @@ -3,9 +3,7 @@ 0003-Use-vrf_id-for-vrf-not-tabled_id.patch 0004-Allow-BGP-attr-NEXT_HOP-to-be-0.0.0.0-due-to-allevia.patch 0005-nexthops-compare-vrf-only-if-ip-type.patch -0007-frr-remove-frr-log-outchannel-to-var-log-frr.log.patch -0008-Add-support-of-bgp-l3vni-evpn.patch -0009-Add-bgp-bestpath-peer-type-multipath-relax.patch -0009-Link-local-scope-was-not-set-while-binding-socket-for-bgp-ipv6-link-local-neighbors.patch -0010-remove-doc-png-install.patch -0011-Ipv4-Link-local-address-for-Ipv6-linl-local-nexthop.patch +0006-frr-remove-frr-log-outchannel-to-var-log-frr.log.patch +0007-Add-support-of-bgp-l3vni-evpn.patch +0008-Link-local-scope-was-not-set-while-binding-socket-for-bgp-ipv6-link-local-neighbors.patch +Disable-ipv6-src-address-test-in-pceplib.patch From 0285bfe42ea6673e94d56416e3330c13608ab6f1 Mon Sep 17 00:00:00 2001 From: abdosi <58047199+abdosi@users.noreply.github.com> Date: Tue, 24 May 2022 16:54:12 -0700 Subject: [PATCH 214/251] [chassis] Fix issues regarding database service failure handling and mid-plane connectivity for namespace. (#10500) What/Why I did: Issue1: By setting up of ipvlan interface in interface-config.sh we are not tolerant to failures. Reason being interface-config.service is one-shot and do not have restart capability. Scenario: For example if let's say database service goes in fail state then interface-services also gets failed because of dependency check but later database service gets restart but interface service will remain in stuck state and the ipvlan interface nevers get created. Solution: Moved all the logic in database service from interface-config service which looks more align logically also since the namespace is created here and all the network setting (sysctl) are happening here.With this if database starts we recreate the interface. Issue 2: Use of IPVLAN vs MACVLAN Currently we are using ipvlan mode. However above failure scenario is not handle correctly by ipvlan mode. Once the ipvlan interface is created and ip address assign to it and if we restart interface-config or database (new PR) service Linux Kernel gives error "Error: Address already assigned to an ipvlan device." based on this:https://github.com/torvalds/linux/blob/master/drivers/net/ipvlan/ipvlan_main.c#L978Reason being if we do not do cleanup of ip address assignment (need to be unique for IPVLAN) it remains in Kernel Database and never goes to free pool even though namespace is deleted. Solution: Considering this hard dependency of unique ip macvlan mode is better for us and since everything is managed by Linux Kernel and no dependency for on user configured IP address. Issue3: Namespace database Service do not check reachability to Supervisor Redis Chassis Server. Currently there is no explicit check as we never do Redis PING from namespace to Supervisor Redis Chassis Server. With this check it's possible we will start database and all other docker even though there is no connectivity and will hit the error/failure late in cycle Solution: Added explicit PING from namespace that will check this reachability. Issue 4:flushdb give exception when trying to accces Chassis Server DB over Unix Sokcet. Solution: Handle gracefully via try..except and log the message. --- .../chassisdb.conf | 1 - dockers/docker-database/flush_unused_database | 8 +++- files/build_templates/docker_image_ctl.j2 | 42 +++++++++++++++---- .../interfaces/interfaces-config.sh | 42 ------------------- 4 files changed, 40 insertions(+), 53 deletions(-) diff --git a/device/nokia/x86_64-nokia_ixr7250e_sup-r0/chassisdb.conf b/device/nokia/x86_64-nokia_ixr7250e_sup-r0/chassisdb.conf index a2daf40b9fef..3296a7929a81 100644 --- a/device/nokia/x86_64-nokia_ixr7250e_sup-r0/chassisdb.conf +++ b/device/nokia/x86_64-nokia_ixr7250e_sup-r0/chassisdb.conf @@ -2,4 +2,3 @@ start_chassis_db=1 chassis_db_address=10.6.0.100 lag_id_start=1 lag_id_end=512 -midplane_subnet=10.6.0.0/16 diff --git a/dockers/docker-database/flush_unused_database b/dockers/docker-database/flush_unused_database index b1d4af063860..e1f7394d9776 100755 --- a/dockers/docker-database/flush_unused_database +++ b/dockers/docker-database/flush_unused_database @@ -3,6 +3,7 @@ import swsssdk import redis import subprocess import time +import syslog while(True): output = subprocess.Popen(['sonic-db-cli', 'PING'], stdout=subprocess.PIPE, text=True).communicate()[0] @@ -24,5 +25,8 @@ for instname, v in instlists.items(): if dbinst == instname: continue - r = redis.Redis(host=insthost, unix_socket_path=instsocket, db=dbid) - r.flushdb() + try: + r = redis.Redis(host=insthost, unix_socket_path=instsocket, db=dbid) + r.flushdb() + except (redis.exceptions.ConnectionError): + syslog.syslog(syslog.LOG_INFO,"flushdb:Redis Unix Socket connection error for path {} and dbaname {}".format(instsocket, dbname)) diff --git a/files/build_templates/docker_image_ctl.j2 b/files/build_templates/docker_image_ctl.j2 index 9e4cb65b7050..f0a1dcccbaae 100644 --- a/files/build_templates/docker_image_ctl.j2 +++ b/files/build_templates/docker_image_ctl.j2 @@ -118,12 +118,8 @@ function preStartAction() function setPlatformLagIdBoundaries() { - CHASSIS_CONF=/usr/share/sonic/device/$PLATFORM/chassisdb.conf - if [ -f "$CHASSIS_CONF" ]; then - source $CHASSIS_CONF - docker exec -i ${DOCKERNAME} $SONIC_DB_CLI CHASSIS_APP_DB SET "SYSTEM_LAG_ID_START" "$lag_id_start" - docker exec -i ${DOCKERNAME} $SONIC_DB_CLI CHASSIS_APP_DB SET "SYSTEM_LAG_ID_END" "$lag_id_end" - fi + docker exec -i ${DOCKERNAME} $SONIC_DB_CLI CHASSIS_APP_DB SET "SYSTEM_LAG_ID_START" "$lag_id_start" + docker exec -i ${DOCKERNAME} $SONIC_DB_CLI CHASSIS_APP_DB SET "SYSTEM_LAG_ID_END" "$lag_id_end" } function waitForAllInstanceDatabaseConfigJsonFilesReady() { @@ -158,6 +154,8 @@ sleep 1 function postStartAction() { {%- if docker_container_name == "database" %} + CHASSISDB_CONF="/usr/share/sonic/device/$PLATFORM/chassisdb.conf" + [ -f $CHASSISDB_CONF ] && source $CHASSISDB_CONF if [ "$DEV" ]; then # Enable the forwarding on eth0 interface in namespace. SYSCTL_NET_CONFIG="/etc/sysctl.d/sysctl-net.conf" @@ -165,6 +163,31 @@ function postStartAction() s/^net.ipv6.conf.eth0.forwarding=0/net.ipv6.conf.eth0.forwarding=1/" $SYSCTL_NET_CONFIG docker exec -i database$DEV sysctl --system -e link_namespace $DEV + + + if [[ -n "$midplane_subnet" ]]; then + # Use /16 for loopback interface + ip netns exec "$NET_NS" ip addr add 127.0.0.1/16 dev lo + ip netns exec "$NET_NS" ip addr del 127.0.0.1/8 dev lo + + # Create eth1 in database instance + ip link add name ns-eth1"$NET_NS" link eth1-midplane type macvlan mode bridge + ip link set dev ns-eth1"$NET_NS" netns "$NET_NS" + ip netns exec "$NET_NS" ip link set ns-eth1"$NET_NS" name eth1 + + # Configure IP address and enable eth1 + lc_slot_id=$(python3 -c 'import sonic_platform.platform; platform_chassis = sonic_platform.platform.Platform().get_chassis(); print(platform_chassis.get_my_slot())' 2>/dev/null) + lc_ip_address=`echo $midplane_subnet | awk -F. '{print $1 "." $2}'`.$lc_slot_id.$(($DEV + 10)) + lc_subnet_mask=${midplane_subnet#*/} + ip netns exec "$NET_NS" ip addr add $lc_ip_address/$lc_subnet_mask dev eth1 + ip netns exec "$NET_NS" ip link set dev eth1 up + + # Allow localnet routing on the new interfaces if midplane is using a + # subnet in the 127/8 range. + if [[ "${midplane_subnet#127}" != "$midplane_subnet" ]]; then + ip netns exec "$NET_NS" bash -c "echo 1 > /proc/sys/net/ipv4/conf/eth1/route_localnet" + fi + fi fi # Setup ebtables configuration ebtables_config @@ -180,7 +203,8 @@ function postStartAction() # then we catch python exception of file not valid # that comes to syslog which is unwanted so wait till database # config is ready and then ping - until [[ ($(docker exec -i database$DEV pgrep -x -c supervisord) -gt 0) && ($($SONIC_DB_CLI PING | grep -c PONG) -gt 0) ]]; do + until [[ ($(docker exec -i database$DEV pgrep -x -c supervisord) -gt 0) && ($($SONIC_DB_CLI PING | grep -c PONG) -gt 0) && + ($(docker exec -i database$DEV sonic-db-cli PING | grep -c PONG) -gt 0) ]]; do sleep 1; done if [[ ("$BOOT_TYPE" == "warm" || "$BOOT_TYPE" == "fastfast") && -f $WARM_DIR/dump.rdb ]]; then @@ -222,7 +246,9 @@ function postStartAction() ($(docker exec -i ${DOCKERNAME} $SONIC_DB_CLI CHASSIS_APP_DB PING | grep -c True) -gt 0) ]]; do sleep 1 done - setPlatformLagIdBoundaries + if [[ -n "$lag_id_start" && -n "$lag_id_end" ]]; then + setPlatformLagIdBoundaries + fi REDIS_SOCK="/var/run/redis-chassis/redis_chassis.sock" fi chgrp -f redis $REDIS_SOCK && chmod -f 0760 $REDIS_SOCK diff --git a/files/image_config/interfaces/interfaces-config.sh b/files/image_config/interfaces/interfaces-config.sh index 8c8a4e205875..f6aa4147a4e4 100755 --- a/files/image_config/interfaces/interfaces-config.sh +++ b/files/image_config/interfaces/interfaces-config.sh @@ -60,48 +60,6 @@ for intf_pid in $(ls -1 /var/run/dhclient*.Ethernet*.pid 2> /dev/null); do [[ -f ${intf_pid} ]] && kill `cat ${intf_pid}` && rm -f ${intf_pid} done - -# Setup eth1 if we connect to a remote chassis DB. -PLATFORM=${PLATFORM:-`sonic-cfggen -H -v DEVICE_METADATA.localhost.platform`} -CHASSISDB_CONF="/usr/share/sonic/device/$PLATFORM/chassisdb.conf" -[[ -f $CHASSISDB_CONF ]] && source $CHASSISDB_CONF - -ASIC_CONF="/usr/share/sonic/device/$PLATFORM/asic.conf" -[[ -f $ASIC_CONF ]] && source $ASIC_CONF - -if [[ -n "$midplane_subnet" && ($NUM_ASIC -gt 1) ]]; then - for asic_id in `seq 0 $((NUM_ASIC - 1))`; do - NET_NS="asic$asic_id" - - PIDS=`ip netns pids "$NET_NS" 2>/dev/null` - if [[ "$?" -ne "0" ]]; then # namespace doesn't exist - continue - fi - - # Use /16 for loopback interface - ip netns exec $NET_NS ip addr add 127.0.0.1/16 dev lo - ip netns exec $NET_NS ip addr del 127.0.0.1/8 dev lo - - # Create eth1 in database instance - ip link add name ns-eth1 link eth1-midplane type ipvlan mode l2 - ip link set dev ns-eth1 netns $NET_NS - ip netns exec $NET_NS ip link set ns-eth1 name eth1 - - # Configure IP address and enable eth1 - lc_slot_id=$(python3 -c 'import sonic_platform.platform; platform_chassis = sonic_platform.platform.Platform().get_chassis(); print(platform_chassis.get_my_slot())' 2>/dev/null) - lc_ip_address=`echo $midplane_subnet | awk -F. '{print $1 "." $2}'`.$lc_slot_id.$((asic_id + 10)) - lc_subnet_mask=${midplane_subnet#*/} - ip netns exec $NET_NS ip addr add $lc_ip_address/$lc_subnet_mask dev eth1 - ip netns exec $NET_NS ip link set dev eth1 up - - # Allow localnet routing on the new interfaces if midplane is using a - # subnet in the 127/8 range. - if [[ "${midplane_subnet#127}" != "$midplane_subnet" ]]; then - ip netns exec $NET_NS bash -c "echo 1 > /proc/sys/net/ipv4/conf/eth1/route_localnet" - fi - done -fi - # Read sysctl conf files again sysctl -p /etc/sysctl.d/90-dhcp6-systcl.conf From 11f0bffe13d5b43d84695d71a0382b0dea3fbb79 Mon Sep 17 00:00:00 2001 From: Taylor Cai <103631396+cel-taylor@users.noreply.github.com> Date: Thu, 26 May 2022 00:06:50 +0800 Subject: [PATCH 215/251] [device/celestica]:Fix failed test case of Haliburton snmp (#10844) --- device/celestica/x86_64-cel_e1031-r0/sonic_platform/psu.py | 2 +- .../celestica/x86_64-cel_e1031-r0/sonic_platform/thermal.py | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/device/celestica/x86_64-cel_e1031-r0/sonic_platform/psu.py b/device/celestica/x86_64-cel_e1031-r0/sonic_platform/psu.py index 136010802233..0ea4aceeba7b 100644 --- a/device/celestica/x86_64-cel_e1031-r0/sonic_platform/psu.py +++ b/device/celestica/x86_64-cel_e1031-r0/sonic_platform/psu.py @@ -234,7 +234,7 @@ def get_position_in_parent(self): Returns: integer: The 1-based relative physical position in parent device or -1 if cannot determine the position """ - return -1 + return self.index + 1 def is_replaceable(self): """ diff --git a/device/celestica/x86_64-cel_e1031-r0/sonic_platform/thermal.py b/device/celestica/x86_64-cel_e1031-r0/sonic_platform/thermal.py index d224281a5935..ab702d02d095 100644 --- a/device/celestica/x86_64-cel_e1031-r0/sonic_platform/thermal.py +++ b/device/celestica/x86_64-cel_e1031-r0/sonic_platform/thermal.py @@ -324,6 +324,5 @@ def get_position_in_parent(self): Returns: A int value, 0 represent ASIC thermal, 1 represent CPU thermal info """ - if self.postion == "cpu": - return 1 - return 0 + + return self.index + 1 From 8315d119599a562dbad6f0e71ba41fb77992a17e Mon Sep 17 00:00:00 2001 From: Zain Budhwani <99770260+zbud-msft@users.noreply.github.com> Date: Wed, 25 May 2022 10:17:47 -0700 Subject: [PATCH 216/251] Add YANG model and unit tests for sonic-telemetry (#10840) - Why I did it YANG schema is missing for sonic-telemetry - How I did it Added YANG schema to sonic-yang-models and appropriate unit tests inside of test and test_config - How to verify it Build sonic-yang-models python wheels target and verify that unit tests are passing --- src/sonic-yang-models/doc/Configuration.md | 22 +++++- src/sonic-yang-models/setup.py | 2 + .../tests/files/sample_config_db.json | 14 +++- .../yang_model_tests/tests/telemetry.json | 17 ++++ .../tests_config/telemetry.json | 66 ++++++++++++++++ .../yang-models/sonic-telemetry.yang | 78 +++++++++++++++++++ 6 files changed, 197 insertions(+), 2 deletions(-) create mode 100644 src/sonic-yang-models/tests/yang_model_tests/tests/telemetry.json create mode 100644 src/sonic-yang-models/tests/yang_model_tests/tests_config/telemetry.json create mode 100644 src/sonic-yang-models/yang-models/sonic-telemetry.yang diff --git a/src/sonic-yang-models/doc/Configuration.md b/src/sonic-yang-models/doc/Configuration.md index d8904ae5e828..47ccb2a3e4ee 100644 --- a/src/sonic-yang-models/doc/Configuration.md +++ b/src/sonic-yang-models/doc/Configuration.md @@ -44,7 +44,8 @@ Table of Contents * [Queue](#queue) * [Tacplus Server](#tacplus-server) * [TC to Priority group map](#tc-to-priority-group-map) - * [TC to Queue map](#tc-to-queue-map) + * [TC to Queue map](#tc-to-queue-map) + * [Telemetry](#telemetry) * [Versions](#versions) * [VLAN](#vlan) * [VLAN_MEMBER](#vlan_member) @@ -1355,6 +1356,25 @@ name as object key and member list as attribute. } ``` +### Telemetry + +``` +{ + "TELEMETRY": { + "certs": { + "ca_crt": "/etc/sonic/telemetry/dsmsroot.cer", + "server_crt": "/etc/sonic/telemetry/streamingtelemetryserver.cer", + "server_key": "/etc/sonic/telemetry/streamingtelemetryserver.key" + }, + "gnmi": { + "client_auth": "true", + "log_level": "2", + "port": "50051" + } + } +} +``` + ### Versions This table is where the curret version of the software is recorded. diff --git a/src/sonic-yang-models/setup.py b/src/sonic-yang-models/setup.py index 1298b768bafb..52cf020f4491 100644 --- a/src/sonic-yang-models/setup.py +++ b/src/sonic-yang-models/setup.py @@ -126,6 +126,7 @@ def run(self): './yang-models/sonic-syslog.yang', './yang-models/sonic-system-aaa.yang', './yang-models/sonic-system-tacacs.yang', + './yang-models/sonic-telemetry.yang', './yang-models/sonic-types.yang', './yang-models/sonic-versions.yang', './yang-models/sonic-vlan.yang', @@ -184,6 +185,7 @@ def run(self): './cvlyang-models/sonic-sflow.yang', './cvlyang-models/sonic-system-aaa.yang', './cvlyang-models/sonic-system-tacacs.yang', + './cvlyang-models/sonic-telemetry.yang', './cvlyang-models/sonic-types.yang', './cvlyang-models/sonic-versions.yang', './cvlyang-models/sonic-vlan.yang', diff --git a/src/sonic-yang-models/tests/files/sample_config_db.json b/src/sonic-yang-models/tests/files/sample_config_db.json index e19c8aeb8d68..e284794616a7 100644 --- a/src/sonic-yang-models/tests/files/sample_config_db.json +++ b/src/sonic-yang-models/tests/files/sample_config_db.json @@ -1045,6 +1045,18 @@ "VERSION": "version_1_0_3" } }, + "TELEMETRY": { + "certs": { + "ca_crt": "/etc/sonic/telemetry/dsmsroot.cer", + "server_crt": "/etc/sonic/telemetry/streamingtelemetryserver.cer", + "server_key": "/etc/sonic/telemetry/streamingtelemetryserver.key" + }, + "gnmi": { + "client_auth": "true", + "log_level": "2", + "port": "50051" + } + }, "FLEX_COUNTER_TABLE": { "PFCWD": { "FLEX_COUNTER_STATUS": "enable" @@ -1516,7 +1528,7 @@ "pir": "2560000", "type": "STRICT" } - }, + }, "WRED_PROFILE": { "Wred1": { diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests/telemetry.json b/src/sonic-yang-models/tests/yang_model_tests/tests/telemetry.json new file mode 100644 index 000000000000..f79e8ea73272 --- /dev/null +++ b/src/sonic-yang-models/tests/yang_model_tests/tests/telemetry.json @@ -0,0 +1,17 @@ +{ + "TELEMETRY_TABLE_WITH_INCORRECT_CERT": { + "desc": "TABLE_WITH_INCORRECT_CERT failure.", + "eStrKey": "Pattern" + }, + "TELEMETRY_TABLE_WITH_INCORRECT_CLIENT_AUTH": { + "desc": "TABLE_WITH_INCORRECT_CLIENT_AUTH failure", + "eStrKey": "InvalidValue" + }, + "TELEMETRY_TABLE_WITH_INCORRECT_PORT": { + "desc": "TABLE_WITH_INCORRECT_PORT failure.", + "eStrKey": "InvalidValue" + }, + "TELEMETRY_TABLE_WITH_VALID_CONFIG": { + "desc": "TABLE WITH VALID CONFIG." + } +} diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests_config/telemetry.json b/src/sonic-yang-models/tests/yang_model_tests/tests_config/telemetry.json new file mode 100644 index 000000000000..1231a4cee662 --- /dev/null +++ b/src/sonic-yang-models/tests/yang_model_tests/tests_config/telemetry.json @@ -0,0 +1,66 @@ +{ + "TELEMETRY_TABLE_WITH_INCORRECT_CERT": { + "sonic-telemetry:sonic-telemetry": { + "sonic-telemetry:TELEMETRY": { + "certs": { + "ca_crt": "abcd.config", + "server_crt": "a/b/c", + "server_key": "123" + }, + "gnmi": { + "client_auth": "true", + "log_level": "2", + "port": "50051" + } + } + } + }, + "TELEMETRY_TABLE_WITH_INCORRECT_CLIENT_AUTH": { + "sonic-telemetry:sonic-telemetry": { + "sonic-telemetry:TELEMETRY": { + "certs": { + "ca_crt": "/etc/sonic/telemetry/dsmsroot.cer", + "server_crt": "/etc/sonic/telemetry/streamingtelemetryserver.cer", + "server_key": "/etc/sonic/telemetry/streamingtelemetryserver.key" + }, + "gnmi": { + "client_auth": "up", + "log_level": "2", + "port": "50051" + } + } + } + }, + "TELEMETRY_TABLE_WITH_INCORRECT_PORT": { + "sonic-telemetry:sonic-telemetry": { + "sonic-telemetry:TELEMETRY": { + "certs": { + "ca_crt": "/etc/sonic/telemetry/dsmsroot.cer", + "server_crt": "/etc/sonic/telemetry/streamingtelemetryserver.cer", + "server_key": "/etc/sonic/telemetry/streamingtelemetryserver.key" + }, + "gnmi": { + "client_auth": "true", + "log_level": "2", + "port": "abc" + } + } + } + }, + "TELEMETRY_TABLE_WITH_VALID_CONFIG": { + "sonic-telemetry:sonic-telemetry": { + "sonic-telemetry:TELEMETRY": { + "certs": { + "ca_crt": "/etc/sonic/telemetry/dsmsroot.cer", + "server_crt": "/etc/sonic/telemetry/streamingtelemetryserver.cer", + "server_key": "/etc/sonic/telemetry/streamingtelemetryserver.key" + }, + "gnmi": { + "client_auth": "true", + "log_level": "2", + "port": "50051" + } + } + } + } +} diff --git a/src/sonic-yang-models/yang-models/sonic-telemetry.yang b/src/sonic-yang-models/yang-models/sonic-telemetry.yang new file mode 100644 index 000000000000..0164da5157eb --- /dev/null +++ b/src/sonic-yang-models/yang-models/sonic-telemetry.yang @@ -0,0 +1,78 @@ +module sonic-telemetry { + + yang-version 1.1; + + namespace "http://github.com/Azure/sonic-telemetry"; + prefix telemetry; + + import ietf-inet-types { + prefix inet; + } + + organization + "SONiC"; + + contact + "SONiC"; + + description "TELEMETRY YANG Module for SONiC OS"; + + revision 2022-05-13 { + description "First Revision"; + } + + container sonic-telemetry { + + container TELEMETRY { + + description "TELEMETRY TABLE part of config_db.json"; + + container certs { + + leaf ca_crt { + type string { + pattern '(/[a-zA-Z0-9_-]+)*/([a-zA-Z0-9_-]+).cer'; + } + description "Local path for ca_crt."; + } + + leaf server_crt { + type string { + pattern '(/[a-zA-Z0-9_-]+)*/([a-zA-Z0-9_-]+).cer'; + } + description "Local path for server_crt."; + } + + leaf server_key { + type string { + pattern '(/[a-zA-Z0-9_-]+)*/([a-zA-Z0-9_-]+).key'; + } + description "Local path for server_key."; + } + + } + + container gnmi { + + leaf client_auth { + type boolean; + description "Flag for requiring client auth."; + } + + leaf log_level { + type uint8 { + range 0..100; + } + description "Log level for gnmi."; + } + + leaf port { + type inet:port-number; + description "Port gnmi runs on."; + } + + } + + } + } +} From b5e59a1355b48e15801694953f103e9720b34ef8 Mon Sep 17 00:00:00 2001 From: Neetha John Date: Wed, 25 May 2022 15:48:02 -0700 Subject: [PATCH 217/251] [sonic-config-engine] Change hwsku for sample graph in unit tests (#10889) #### Why I did it To ensure that some internal testcases do not break due to external changes #### How to verify it Ran test_cfggen.py with the changes and it passed --- .../tests/sample-graph-resource-type.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/sonic-config-engine/tests/sample-graph-resource-type.xml b/src/sonic-config-engine/tests/sample-graph-resource-type.xml index 987d24358438..5d07e04fb03a 100644 --- a/src/sonic-config-engine/tests/sample-graph-resource-type.xml +++ b/src/sonic-config-engine/tests/sample-graph-resource-type.xml @@ -314,7 +314,7 @@ switch-t0 - Force10-S6000 + Arista-7050QX-32S AAA00PrdStr00 @@ -751,7 +751,7 @@ true 0 - Force10-S6000 + Arista-7050QX-32S DeviceInterface @@ -786,5 +786,5 @@ switch-t0 - Force10-S6000 + Arista-7050QX-32S From f0dfd398a6ed425034d8a80231d7bfd4880a4a50 Mon Sep 17 00:00:00 2001 From: xumia <59720581+xumia@users.noreply.github.com> Date: Thu, 26 May 2022 09:39:48 +0800 Subject: [PATCH 218/251] Revert "Reduce image size for lazy installation packages (#10775)" (#10916) This reverts commit 15cf9b0d70b3d839a40a06cec6b6fc10124017ae. Why I did it Revert the PR #10775, for it has impact on onie installation. It is caused by the symbol links not supported in some of the onie unzip. We will enable after fixing the issue, see #10914 --- build_debian.sh | 2 +- files/build_templates/sonic_debian_extension.j2 | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/build_debian.sh b/build_debian.sh index 676c0298ec7d..25f039c90697 100755 --- a/build_debian.sh +++ b/build_debian.sh @@ -647,5 +647,5 @@ fi pushd $FILESYSTEM_ROOT && sudo tar czf $OLDPWD/$FILESYSTEM_DOCKERFS -C ${DOCKERFS_PATH}var/lib/docker .; popd ## Compress together with /boot, /var/lib/docker and $PLATFORM_DIR as an installer payload zip file -pushd $FILESYSTEM_ROOT && sudo zip --symlinks $OLDPWD/$ONIE_INSTALLER_PAYLOAD -r boot/ $PLATFORM_DIR/; popd +pushd $FILESYSTEM_ROOT && sudo zip $OLDPWD/$ONIE_INSTALLER_PAYLOAD -r boot/ $PLATFORM_DIR/; popd sudo zip -g -n .squashfs:.gz $ONIE_INSTALLER_PAYLOAD $FILESYSTEM_SQUASHFS $FILESYSTEM_DOCKERFS diff --git a/files/build_templates/sonic_debian_extension.j2 b/files/build_templates/sonic_debian_extension.j2 index 185184fb91d5..659921d50aa9 100644 --- a/files/build_templates/sonic_debian_extension.j2 +++ b/files/build_templates/sonic_debian_extension.j2 @@ -610,9 +610,7 @@ sudo LANG=C chroot $FILESYSTEM_ROOT depmod -a {{kversion}} sudo dpkg --root=$FILESYSTEM_ROOT -i {{deb}} || sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install -f --download-only sudo mkdir -p $FILESYSTEM_ROOT/$PLATFORM_DIR/{{dev}} -sudo mkdir -p $FILESYSTEM_ROOT/$PLATFORM_DIR/common -sudo cp {{ deb }} $FILESYSTEM_ROOT/$PLATFORM_DIR/common/ -sudo ln -sf "../common/{{ debfilename }}" "$FILESYSTEM_ROOT/$PLATFORM_DIR/{{dev}}/{{ debfilename }}" +sudo cp {{ deb }} $FILESYSTEM_ROOT/$PLATFORM_DIR/{{dev}}/ for f in $(find $FILESYSTEM_ROOT/var/cache/apt/archives -name "*.deb"); do sudo mv $f $FILESYSTEM_ROOT/$PLATFORM_DIR/{{dev}}/ done From cc9a4beb0c0712c149f5139e3911017b42348a64 Mon Sep 17 00:00:00 2001 From: xumia <59720581+xumia@users.noreply.github.com> Date: Thu, 26 May 2022 21:55:13 +0800 Subject: [PATCH 219/251] Touch the donwload files to change the modified time (#10929) Why I did it It is to improve the build performance, when building multiple targets. The modified time of downloaded files should be not older than the file .platform. If not, the file will be downloaded again, when building any dependent targets. How I did it When downloading the packages from web site, the modified time will be changed by the command "touch". --- src/sonic-fips/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/src/sonic-fips/Makefile b/src/sonic-fips/Makefile index f38583e2f6c8..3ee9f46fc509 100644 --- a/src/sonic-fips/Makefile +++ b/src/sonic-fips/Makefile @@ -24,6 +24,7 @@ $(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% : url=$(FIPS_URL_PREFIX)/$$filename mkdir -p "$$(dirname $(DEST)/$$target)" wget -O "$(DEST)/$$target" "$$url" + touch "$(DEST)/$$target" done $(addprefix $(DEST)/, $(FIPS_DERIVED_TARGET)): $(DEST)/% : $(DEST)/$(MAIN_TARGET) From c618a653a14071fdfe9cb8962f117d5e53fa6eaa Mon Sep 17 00:00:00 2001 From: Kebo Liu Date: Thu, 26 May 2022 23:16:23 +0800 Subject: [PATCH 220/251] [yang] Support new interface types CR8/SR8/KR8/LR8 (#10826) - Why I did it With SAI V.1.10.2, new interface types CR8/SR8/KR8/LR8 have been introduced, we should also support them from the CLI configuration. - How I did it Add new enum for the new interface types - How to verify it Run the "config interface type" command to verify new interface types can be accepted and handled correctly. Signed-off-by: Kebo Liu --- src/sonic-yang-models/yang-templates/sonic-types.yang.j2 | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/sonic-yang-models/yang-templates/sonic-types.yang.j2 b/src/sonic-yang-models/yang-templates/sonic-types.yang.j2 index da043fa8761d..29be032e8876 100644 --- a/src/sonic-yang-models/yang-templates/sonic-types.yang.j2 +++ b/src/sonic-yang-models/yang-templates/sonic-types.yang.j2 @@ -136,13 +136,17 @@ module sonic-types { enum CR; enum CR2; enum CR4; + enum CR8; enum SR; enum SR2; enum SR4; + enum SR8; enum LR; enum LR4; + enum LR8; enum KR; enum KR4; + enum KR8; enum CAUI; enum GMII; enum SFI; From a5932e326420950ca02cd5f5b4250cd588239d44 Mon Sep 17 00:00:00 2001 From: Dror Prital <76714716+dprital@users.noreply.github.com> Date: Thu, 26 May 2022 18:33:59 +0300 Subject: [PATCH 221/251] [submodule] Advanced sonic-swss pointer (#10926) [muxorch] Handling optional attributes in muxorch (#2288) Update netlink messages handler (#2233) Broadcast Unknown-multicast and Unknown-unicast Storm-control (#1306) [vstest]: Increase PollingConfig default timeout (#2285) [FDB] Fix fbdorch to properly handle syncd FDB FLUSH Notif (#2254) [macsecorch]: Support for non-default sa per sc (#2250) Migrating the NAT vs tests from Click to direct DB access (#2278) [neighsync] Ignoring IPv4 link local addresses (#2260) [IntfMgrd] Retry adding ipv6 prefix by setting disabled_ipv6 flag (#2267) Increase Redis Timeout value for Switch Create Opration for Packet (#2243) Update fdborch.cpp (#2261) Signed-off-by: dprital --- src/sonic-swss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-swss b/src/sonic-swss index 97b4387ca9f5..0e5e7ba5cb55 160000 --- a/src/sonic-swss +++ b/src/sonic-swss @@ -1 +1 @@ -Subproject commit 97b4387ca9f527c074878f40a598acad7460a96e +Subproject commit 0e5e7ba5cb5581c1ea4d470216cf3aadcd19fb94 From e61bfd7bb4d3fd7b0d4d86a3b99250dbd884d3a4 Mon Sep 17 00:00:00 2001 From: AmitKaushik7 <52193450+AmitKaushik7@users.noreply.github.com> Date: Fri, 27 May 2022 00:20:07 +0530 Subject: [PATCH 222/251] Add crm sample data for snat/dnat/ipmc entries for Yang Model (#10865) #### Why I did it For yang model, sample_config_db.json file was missing Sample data for the features SNAT/DNAT/IPMC #### How I did it Added the SNAT,DNAT,IPMC(low Threshold/high threshold/threshold_type)entries in CRM table. #### How to verify it With sanity Build/test only. --- src/sonic-yang-models/tests/files/sample_config_db.json | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/sonic-yang-models/tests/files/sample_config_db.json b/src/sonic-yang-models/tests/files/sample_config_db.json index e284794616a7..01bcf4ecf18c 100644 --- a/src/sonic-yang-models/tests/files/sample_config_db.json +++ b/src/sonic-yang-models/tests/files/sample_config_db.json @@ -1112,12 +1112,21 @@ "acl_counter_high_threshold": "85", "acl_counter_low_threshold": "70", "acl_counter_threshold_type": "percentage", + "dnat_entry_threshold_type": "percentage", + "dnat_entry_high_threshold": "85", + "dnat_entry_low_threshold": "70", + "ipmc_entry_threshold_type": "percentage", + "ipmc_entry_high_threshold": "85", + "ipmc_entry_low_threshold": "70", "ipv6_neighbor_high_threshold": "67", "ipv6_neighbor_low_threshold": "56", "ipv6_neighbor_threshold_type": "percentage", "nexthop_group_high_threshold": "67", "nexthop_group_low_threshold": "56", "nexthop_group_threshold_type": "percentage", + "snat_entry_threshold_type": "percentage", + "snat_entry_high_threshold": "85", + "snat_entry_low_threshold": "70", "polling_interval": "0" } }, From 054eb25c85c304339a136d22826e37ccbc825beb Mon Sep 17 00:00:00 2001 From: Hua Liu <58683130+liuh-80@users.noreply.github.com> Date: Fri, 27 May 2022 08:58:40 +0800 Subject: [PATCH 223/251] Update sonic-swss-common submodule (#10872) Updating sonic-utilities sub module with the following commits 84dbd93 Clear the fvs vector before popping the message out of notification a90b2b7 selectabletimer: add mutex to start() and stop() 7ae22be Fix SIGTERM can't terminate PubSub::listen issue #### Why I did it To fix hostcfgd can't terminate by sigint issue, need update sonic-swss-common submodule. #### How I did it #### How to verify it #### Which release branch to backport (provide reason below if selected) #### Description for the changelog 84dbd93 Clear the fvs vector before popping the message out of notification a90b2b7 selectabletimer: add mutex to start() and stop() 7ae22be Fix SIGTERM can't terminate PubSub::listen issue #### A picture of a cute animal (not mandatory but encouraged) --- src/sonic-swss-common | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-swss-common b/src/sonic-swss-common index 7a203b1b1fde..7ae22be4c1bf 160000 --- a/src/sonic-swss-common +++ b/src/sonic-swss-common @@ -1 +1 @@ -Subproject commit 7a203b1b1fdefcd588ec7a72c0db95b32e50f3a7 +Subproject commit 7ae22be4c1bf8dd7c5f697cdf2faf7317a02ba14 From 441cd1d283d12ad96c4c0bf0d2b17c31e27a9e8d Mon Sep 17 00:00:00 2001 From: Sudharsan Dhamal Gopalarathnam Date: Fri, 27 May 2022 09:45:29 -0700 Subject: [PATCH 224/251] [yang] add Sample configuration for ACL_TABLE_TYPE (#10937) Signed-off-by: Sudharsan Dhamal Gopalarathnam --- .../tests/files/sample_config_db.json | 33 ++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/src/sonic-yang-models/tests/files/sample_config_db.json b/src/sonic-yang-models/tests/files/sample_config_db.json index 01bcf4ecf18c..d6a4e8f2a9ee 100644 --- a/src/sonic-yang-models/tests/files/sample_config_db.json +++ b/src/sonic-yang-models/tests/files/sample_config_db.json @@ -302,6 +302,12 @@ "MIRROR_INGRESS_ACTION": "erspan", "DSCP": "10", "PRIORITY": "9999" + }, + "DATAACL|RULE0": { + "PRIORITY": "999", + "PACKET_ACTION": "DROP", + "IP_TYPE": "IPv4ANY", + "SRC_IP": "1.1.1.1/32" } }, "DEVICE_METADATA": { @@ -816,6 +822,14 @@ "Ethernet24" ], "stage": "ingress" + }, + "DATAACL": { + "stage": "INGRESS", + "type": "CUSTOM_L3", + "ports": [ + "Ethernet0", + "PortChannel0003" + ] } }, @@ -1823,7 +1837,24 @@ "num_dumps": "3", "memory": "0M-2G:256M,2G-4G:256M,4G-8G:384M,8G-:448M" } - } + }, + "ACL_TABLE_TYPE": { + "CUSTOM_L3": { + "matches": [ + "IN_PORTS", + "OUT_PORTS", + "SRC_IP" + ], + "actions": [ + "PACKET_ACTION", + "MIRROR_INGRESS_ACTION" + ], + "bind_points": [ + "PORT", + "LAG" + ] + } + } }, "SAMPLE_CONFIG_DB_UNKNOWN": { "UNKNOWN_TABLE": { From 1bce88ad29dc71327913d80f3afa1a803e7e0e21 Mon Sep 17 00:00:00 2001 From: Neetha John Date: Fri, 27 May 2022 09:46:23 -0700 Subject: [PATCH 225/251] [sonic-config-engine] Fix typo in hwsku name in sample graph (#10941) Signed-off-by: Neetha John Why I did it There was a typo in hwsku specified as part of #10889 How I did it Replaced with the correct hwsku How to verify it test_cfggen.py is passing --- .../tests/sample-graph-resource-type.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/sonic-config-engine/tests/sample-graph-resource-type.xml b/src/sonic-config-engine/tests/sample-graph-resource-type.xml index 5d07e04fb03a..93c9f01cd512 100644 --- a/src/sonic-config-engine/tests/sample-graph-resource-type.xml +++ b/src/sonic-config-engine/tests/sample-graph-resource-type.xml @@ -314,7 +314,7 @@ switch-t0 - Arista-7050QX-32S + Arista-7050-QX-32S AAA00PrdStr00 @@ -751,7 +751,7 @@ true 0 - Arista-7050QX-32S + Arista-7050-QX-32S DeviceInterface @@ -786,5 +786,5 @@ switch-t0 - Arista-7050QX-32S + Arista-7050-QX-32S From 71c868f56ae8c012b6813b5aa1337692e4c17b42 Mon Sep 17 00:00:00 2001 From: Alexander Allen Date: Fri, 27 May 2022 14:28:01 -0400 Subject: [PATCH 226/251] Upgrade libasan to version 6 in docker-syncd-mlnx to align with bullseye libasan (#10886) --- platform/mellanox/docker-syncd-mlnx/Dockerfile.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform/mellanox/docker-syncd-mlnx/Dockerfile.j2 b/platform/mellanox/docker-syncd-mlnx/Dockerfile.j2 index 70c8795fb9e0..cd3f74bcfaf3 100755 --- a/platform/mellanox/docker-syncd-mlnx/Dockerfile.j2 +++ b/platform/mellanox/docker-syncd-mlnx/Dockerfile.j2 @@ -33,7 +33,7 @@ RUN apt-get update && \ python3-dev \ python-is-python3 \ {%- if ENABLE_ASAN == "y" %} - libasan5 \ + libasan6 \ {%- endif %} python3-setuptools From 1ac60d39f056ff66f8ff9063e544b9e98543c981 Mon Sep 17 00:00:00 2001 From: Hasan Naqvi <56742004+hasan-brcm@users.noreply.github.com> Date: Fri, 27 May 2022 13:49:58 -0700 Subject: [PATCH 227/251] [frr]: fix official build break (#10947) Official build fails complaining missing below targets: 2022-05-25T10:50:38.0560306Z tar: target/debs/buster/libyang2-cpp1_2.0.112-6_amd64.deb: Cannot stat: No such file or directory 2022-05-25T10:50:38.0571392Z tar: target/debs/buster/libyang2-cpp-dev_2.0.112-6_amd64.deb: Cannot stat: No such file or directory 2022-05-25T10:50:38.0588893Z tar: target/debs/buster/libyang2-cpp1-dbgsym_2.0.112-6_amd64.deb: Cannot stat: No such file or directory 2022-05-25T10:50:38.0590887Z tar: target/debs/buster/yang-tools_2.0.112-6_all.deb: Cannot stat: No such file or directory --- rules/libyang2.mk | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/rules/libyang2.mk b/rules/libyang2.mk index 1e181b2a30eb..ca6d611b52ee 100644 --- a/rules/libyang2.mk +++ b/rules/libyang2.mk @@ -20,19 +20,6 @@ $(eval $(call add_derived_package,$(LIBYANG2),$(LIBYANG2_DEV))) LIBYANG2_DBG = libyang2-dbgsym_$(LIBYANG2_FULLVERSION)_$(CONFIGURED_ARCH).deb $(eval $(call add_derived_package,$(LIBYANG2),$(LIBYANG2_DBG))) -LIBYANG2_CPP = libyang2-cpp1_$(LIBYANG2_FULLVERSION)_$(CONFIGURED_ARCH).deb -$(LIBYANG2_CPP)_DEPENDS += $(LIBYANG2) -$(eval $(call add_derived_package,$(LIBYANG2),$(LIBYANG2_CPP))) - -LIBYANG2_CPP_DEV = libyang2-cpp-dev_$(LIBYANG2_FULLVERSION)_$(CONFIGURED_ARCH).deb -$(eval $(call add_derived_package,$(LIBYANG2),$(LIBYANG2_CPP_DEV))) - -LIBYANG2_CPP_DBG = libyang2-cpp1-dbgsym_$(LIBYANG2_FULLVERSION)_$(CONFIGURED_ARCH).deb -$(eval $(call add_derived_package,$(LIBYANG2),$(LIBYANG2_CPP_DBG))) - -YANG_TOOLS = yang-tools_$(LIBYANG2_FULLVERSION)_all.deb -$(YANG_TOOLS)_DEPENDS += $(LIBYANG2) -$(eval $(call add_derived_package,$(LIBYANG2),$(YANG_TOOLS))) LIBYANG2_TOOLS = libyang2-tools_$(LIBYANG2_FULLVERSION)_$(CONFIGURED_ARCH).deb $(eval $(call add_derived_package,$(LIBYANG2),$(LIBYANG2_TOOLS))) @@ -40,4 +27,5 @@ $(eval $(call add_derived_package,$(LIBYANG2),$(LIBYANG2_TOOLS))) LIBYANG2_TOOLS_DBG = libyang2-tools-dbgsym_$(LIBYANG2_FULLVERSION)_$(CONFIGURED_ARCH).deb $(eval $(call add_derived_package,$(LIBYANG2),$(LIBYANG2_TOOLS_DBG))) -export LIBYANG2 LIBYANG2_DBG LIBYANG2_DEV LIBYANG2_CPP LIBYANG2_CPP_DEV LIBYANG2_CPP_DBG YANG_TOOLS LIBYANG2_TOOLS LIBYANG2_TOOLS_DBG +export LIBYANG2 LIBYANG2_DBG LIBYANG2_DEV LIBYANG2_TOOLS LIBYANG2_TOOLS_DBG + From 9bf84fcad53e2e4c032a07d100700e278319fe54 Mon Sep 17 00:00:00 2001 From: Ze Gan Date: Fri, 27 May 2022 21:01:32 -0700 Subject: [PATCH 228/251] [submodule]: Update submodule for sonic-wpa-supplicant (#10957) 1069d2dd4 [sonic_operators.cpp]: Fixbug wait with false positive to return success Signed-off-by: Ze Gan --- src/wpasupplicant/sonic-wpa-supplicant | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/wpasupplicant/sonic-wpa-supplicant b/src/wpasupplicant/sonic-wpa-supplicant index 64caafe38339..1069d2dd4f71 160000 --- a/src/wpasupplicant/sonic-wpa-supplicant +++ b/src/wpasupplicant/sonic-wpa-supplicant @@ -1 +1 @@ -Subproject commit 64caafe3833914f4838fa2e2db290ad676ad8dda +Subproject commit 1069d2dd4f7108838246abe2b8f693180c972acd From b62526c46cb669c53b04bb4b1672bc6335aff6b8 Mon Sep 17 00:00:00 2001 From: bingwang-ms <66248323+bingwang-ms@users.noreply.github.com> Date: Sat, 28 May 2022 15:34:28 +0800 Subject: [PATCH 229/251] Define `SYSTEM_DEFAULTS` table to control tunnel_qos_remap (#10877) * Define SYSTEM_DEFAULTS table to control tunnel_qos_remap Signed-off-by: bingwang --- src/sonic-config-engine/minigraph.py | 87 +- ...imple-sample-graph-case-remap-disabled.xml | 894 ++++++++++++++++++ ...simple-sample-graph-case-remap-enabled.xml | 894 ++++++++++++++++++ .../tests/test_minigraph_case.py | 36 + 4 files changed, 1898 insertions(+), 13 deletions(-) create mode 100644 src/sonic-config-engine/tests/simple-sample-graph-case-remap-disabled.xml create mode 100644 src/sonic-config-engine/tests/simple-sample-graph-case-remap-enabled.xml diff --git a/src/sonic-config-engine/minigraph.py b/src/sonic-config-engine/minigraph.py index 1446457eb513..b1ad117d255c 100644 --- a/src/sonic-config-engine/minigraph.py +++ b/src/sonic-config-engine/minigraph.py @@ -66,7 +66,9 @@ def default(self, obj): def get_peer_switch_info(link_metadata, devices): peer_switch_table = {} - for data in link_metadata.values(): + peer_switch_ip = None + mux_tunnel_name = None + for port, data in link_metadata.items(): if "PeerSwitch" in data: peer_hostname = data["PeerSwitch"] peer_lo_addr_str = devices[peer_hostname]["lo_addr"] @@ -75,8 +77,10 @@ def get_peer_switch_info(link_metadata, devices): peer_switch_table[peer_hostname] = { 'address_ipv4': str(peer_lo_addr.network_address) if peer_lo_addr else peer_lo_addr_str } + mux_tunnel_name = port + peer_switch_ip = peer_switch_table[peer_hostname]['address_ipv4'] - return peer_switch_table + return peer_switch_table, mux_tunnel_name, peer_switch_ip def parse_device(device): @@ -410,6 +414,8 @@ def parse_dpg(dpg, hname): mgmtintfs = None subintfs = None tunnelintfs = defaultdict(dict) + tunnelintfs_qos_remap_config = defaultdict(dict) + for child in dpg: """ In Multi-NPU platforms the acl intfs are defined only for the host not for individual asic. @@ -717,6 +723,13 @@ def parse_dpg(dpg, hname): "ecn_mode": "EcnDecapsulationMode", "dscp_mode": "DifferentiatedServicesCodePointMode", "ttl_mode": "TtlMode"} + + tunnel_qos_remap_table_key_to_mg_key_map = { + "decap_dscp_to_tc_map": "DecapDscpToTcMap", + "decap_tc_to_pg_map": "DecapTcToPgMap", + "encap_tc_to_queue_map": "EncapTcToQueueMap", + "encap_tc_to_dscp_map": "EncapTcToDscpMap"} + for mg_tunnel in mg_tunnels.findall(str(QName(ns, "TunnelInterface"))): tunnel_type = mg_tunnel.attrib["Type"] tunnel_name = mg_tunnel.attrib["Name"] @@ -728,9 +741,17 @@ def parse_dpg(dpg, hname): # If the minigraph has the key, add the corresponding config DB key to the table if mg_key in mg_tunnel.attrib: tunnelintfs[tunnel_type][tunnel_name][table_key] = mg_tunnel.attrib[mg_key] + + tunnelintfs_qos_remap_config[tunnel_type][tunnel_name] = { + "tunnel_type": mg_tunnel.attrib["Type"].upper(), + } - return intfs, lo_intfs, mvrf, mgmt_intf, voq_inband_intfs, vlans, vlan_members, dhcp_relay_table, pcs, pc_members, acls, vni, tunnelintfs, dpg_ecmp_content, static_routes - return None, None, None, None, None, None, None, None, None, None, None, None, None, None, None + for table_key, mg_key in tunnel_qos_remap_table_key_to_mg_key_map.items(): + if mg_key in mg_tunnel.attrib: + tunnelintfs_qos_remap_config[tunnel_type][tunnel_name][table_key] = mg_tunnel.attrib[mg_key] + + return intfs, lo_intfs, mvrf, mgmt_intf, voq_inband_intfs, vlans, vlan_members, dhcp_relay_table, pcs, pc_members, acls, vni, tunnelintfs, dpg_ecmp_content, static_routes, tunnelintfs_qos_remap_config + return None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None @@ -909,6 +930,29 @@ def parse_meta(meta, hname): return syslog_servers, dhcp_servers, dhcpv6_servers, ntp_servers, tacacs_servers, mgmt_routes, erspan_dst, deployment_id, region, cloudtype, resource_type, downstream_subrole, switch_id, switch_type, max_cores, kube_data +def parse_system_defaults(meta): + system_default_values = {} + + system_defaults = meta.find(str(QName(ns1, "SystemDefaults"))) + + if system_defaults is None: + return system_default_values + + for system_default in system_defaults.findall(str(QName(ns1, "SystemDefault"))): + name = system_default.find(str(QName(ns1, "Name"))).text + value = system_default.find(str(QName(ns1, "Value"))).text + + # Tunnel Qos remapping + if name == "TunnelQosRemapEnabled": + if value.lower() == "true": + status = "enabled" + else: + status = "disabled" + system_default_values["tunnel_qos_remap"] = {"status": status} + + return system_default_values + + def parse_linkmeta(meta, hname): link = meta.find(str(QName(ns, "Link"))) linkmetas = {} @@ -1200,6 +1244,7 @@ def parse_xml(filename, platform=None, port_config_file=None, asic_name=None, hw vlan_intfs = None pc_intfs = None tunnel_intfs = None + tunnel_intfs_qos_remap_config = None vlans = None vlan_members = None dhcp_relay_table = None @@ -1240,6 +1285,7 @@ def parse_xml(filename, platform=None, port_config_file=None, asic_name=None, hw local_devices = [] kube_data = {} static_routes = {} + system_defaults = {} hwsku_qn = QName(ns, "HwSku") hostname_qn = QName(ns, "Hostname") @@ -1262,7 +1308,7 @@ def parse_xml(filename, platform=None, port_config_file=None, asic_name=None, hw for child in root: if asic_name is None: if child.tag == str(QName(ns, "DpgDec")): - (intfs, lo_intfs, mvrf, mgmt_intf, voq_inband_intfs, vlans, vlan_members, dhcp_relay_table, pcs, pc_members, acls, vni, tunnel_intfs, dpg_ecmp_content, static_routes) = parse_dpg(child, hostname) + (intfs, lo_intfs, mvrf, mgmt_intf, voq_inband_intfs, vlans, vlan_members, dhcp_relay_table, pcs, pc_members, acls, vni, tunnel_intfs, dpg_ecmp_content, static_routes, tunnel_intfs_qos_remap_config) = parse_dpg(child, hostname) elif child.tag == str(QName(ns, "CpgDec")): (bgp_sessions, bgp_internal_sessions, bgp_voq_chassis_sessions, bgp_asn, bgp_peers_with_range, bgp_monitors) = parse_cpg(child, hostname) elif child.tag == str(QName(ns, "PngDec")): @@ -1275,9 +1321,11 @@ def parse_xml(filename, platform=None, port_config_file=None, asic_name=None, hw linkmetas = parse_linkmeta(child, hostname) elif child.tag == str(QName(ns, "DeviceInfos")): (port_speeds_default, port_descriptions, sys_ports) = parse_deviceinfo(child, hwsku) + elif child.tag == str(QName(ns, "SystemDefaultsDeclaration")): + system_defaults = parse_system_defaults(child) else: if child.tag == str(QName(ns, "DpgDec")): - (intfs, lo_intfs, mvrf, mgmt_intf, voq_inband_intfs, vlans, vlan_members, dhcp_relay_table, pcs, pc_members, acls, vni, tunnel_intfs, dpg_ecmp_content, static_routes) = parse_dpg(child, asic_name) + (intfs, lo_intfs, mvrf, mgmt_intf, voq_inband_intfs, vlans, vlan_members, dhcp_relay_table, pcs, pc_members, acls, vni, tunnel_intfs, dpg_ecmp_content, static_routes, tunnel_intfs_qos_remap_config) = parse_dpg(child, asic_name) host_lo_intfs = parse_host_loopback(child, hostname) elif child.tag == str(QName(ns, "CpgDec")): (bgp_sessions, bgp_internal_sessions, bgp_voq_chassis_sessions, bgp_asn, bgp_peers_with_range, bgp_monitors) = parse_cpg(child, asic_name, local_devices) @@ -1289,6 +1337,8 @@ def parse_xml(filename, platform=None, port_config_file=None, asic_name=None, hw linkmetas = parse_linkmeta(child, hostname) elif child.tag == str(QName(ns, "DeviceInfos")): (port_speeds_default, port_descriptions, sys_ports) = parse_deviceinfo(child, hwsku) + elif child.tag == str(QName(ns, "SystemDefaultsDeclaration")): + system_defaults = parse_system_defaults(child) # set the host device type in asic metadata also device_type = [devices[key]['type'] for key in devices if key.lower() == hostname.lower()][0] @@ -1324,8 +1374,11 @@ def parse_xml(filename, platform=None, port_config_file=None, asic_name=None, hw 'ip': kube_data.get('ip', '') } } - - results['PEER_SWITCH'] = get_peer_switch_info(linkmetas, devices) + + if len(system_defaults) > 0: + results['SYSTEM_DEFAULTS'] = system_defaults + + results['PEER_SWITCH'], mux_tunnel_name, peer_switch_ip = get_peer_switch_info(linkmetas, devices) if bool(results['PEER_SWITCH']): results['DEVICE_METADATA']['localhost']['subtype'] = 'DualToR' @@ -1625,7 +1678,8 @@ def parse_xml(filename, platform=None, port_config_file=None, asic_name=None, hw results['VLAN'] = vlans results['VLAN_MEMBER'] = vlan_members - results['TUNNEL'] = get_tunnel_entries(tunnel_intfs, lo_intfs, hostname) + # Add src_ip and qos remapping config into TUNNEL table if tunnel_qos_remap is enabled + results['TUNNEL'] = get_tunnel_entries(tunnel_intfs, tunnel_intfs_qos_remap_config, lo_intfs, system_defaults.get('tunnel_qos_remap', {}), mux_tunnel_name, peer_switch_ip) results['MUX_CABLE'] = get_mux_cable_entries(mux_cable_ports, neighbors, devices) @@ -1717,7 +1771,7 @@ def parse_xml(filename, platform=None, port_config_file=None, asic_name=None, hw return results -def get_tunnel_entries(tunnel_intfs, lo_intfs, hostname): +def get_tunnel_entries(tunnel_intfs, tunnel_intfs_qos_remap_config, lo_intfs, tunnel_qos_remap, mux_tunnel_name, peer_switch_ip): lo_addr = '' # Use the first IPv4 loopback as the tunnel destination IP for addr in lo_intfs.keys(): @@ -1730,7 +1784,14 @@ def get_tunnel_entries(tunnel_intfs, lo_intfs, hostname): for type, tunnel_dict in tunnel_intfs.items(): for tunnel_key, tunnel_attr in tunnel_dict.items(): tunnel_attr['dst_ip'] = lo_addr + + if (tunnel_qos_remap.get('status') == 'enabled') and (mux_tunnel_name == tunnel_key) and (peer_switch_ip is not None): + tunnel_attr['src_ip'] = peer_switch_ip + if tunnel_key in tunnel_intfs_qos_remap_config[type]: + tunnel_attr.update(tunnel_intfs_qos_remap_config[type][tunnel_key].items()) + tunnels[tunnel_key] = tunnel_attr + return tunnels def get_mux_cable_entries(mux_cable_ports, neighbors, devices): @@ -1754,7 +1815,7 @@ def get_mux_cable_entries(mux_cable_ports, neighbors, devices): entry['server_ipv6'] = str(server_ipv6_lo_prefix) mux_cable_table[intf] = entry else: - print("Warning: no server IPv4 loopback found for {}, skipping mux cable table entry".format(neighbor)) + print("Warning: no server IPv4 loopback found for {}, skipping mux cable table entry".format(neighbor), file=sys.stderr) if cable_name in devices: cable_type = devices[cable_name].get('subtype') @@ -1767,9 +1828,9 @@ def get_mux_cable_entries(mux_cable_ports, neighbors, devices): soc_ipv4_prefix = ipaddress.ip_network(UNICODE_TYPE(soc_ipv4)) mux_cable_table[intf]['soc_ipv4'] = str(soc_ipv4_prefix) else: - print("Warning: skip parsing device %s for mux cable entry, cable type %s not supported" % (cable_name, cable_type)) + print("Warning: skip parsing device %s for mux cable entry, cable type %s not supported" % (cable_name, cable_type), file=sys.stderr) else: - print("Warning: skip parsing device %s for mux cable entry, device definition not found" % cable_name) + print("Warning: skip parsing device %s for mux cable entry, device definition not found" % cable_name, file=sys.stderr) return mux_cable_table diff --git a/src/sonic-config-engine/tests/simple-sample-graph-case-remap-disabled.xml b/src/sonic-config-engine/tests/simple-sample-graph-case-remap-disabled.xml new file mode 100644 index 000000000000..7d0be06e4e82 --- /dev/null +++ b/src/sonic-config-engine/tests/simple-sample-graph-case-remap-disabled.xml @@ -0,0 +1,894 @@ + + + + + + false + switch-t0 + 10.0.0.56 + ARISTA01T1 + 10.0.0.57 + 1 + 180 + 60 + + + switch-t0 + FC00::71 + ARISTA01T1 + FC00::72 + 1 + 180 + 60 + + + false + switch-t0 + 10.0.0.58 + ARISTA02T1 + 10.0.0.59 + 1 + 180 + 60 + + + switch-t0 + FC00::75 + ARISTA02T1 + FC00::76 + 1 + 180 + 60 + + + + + 65100 + switch-t0 + + +
10.0.0.57
+ + + +
+ +
10.0.0.59
+ + + +
+
+ +
+ + 64600 + ARISTA01T1 + + + + 64600 + ARISTA02T1 + + + + 64600 + ARISTA03T1 + + + + 64600 + ARISTA04T1 + + +
+
+ + + + + + HostIP + Loopback0 + + 10.1.0.32/32 + + 10.1.0.32/32 + + + HostIP1 + Loopback0 + + FC00:1::32/128 + + FC00:1::32/128 + + + + + HostIP + eth0 + + 10.0.0.100/24 + + 10.0.0.100/24 + + + + + + + switch-t0 + + + PortChannel01 + fortyGigE0/4 + + + + + + + + + ab1 + fortyGigE0/8 + 192.0.0.1;192.0.0.2 + fc02:2000::1;fc02:2000::2 + 1000 + 1000 + 192.168.0.0/27 + 00:aa:bb:cc:dd:ee + + + ab2 + fortyGigE0/4 + 192.0.0.1 + fc02:2000::3;fc02:2000::4 + 2000 + 2000 + + + + + + + PortChannel01 + 10.0.0.56/31 + + + + PortChannel01 + FC00::71/126 + + + + fortyGigE0/0 + 10.0.0.58/31 + + + + fortyGigE0/0 + FC00::75/126 + + + + ab1 + 192.168.0.1/27 + + + + + + PortChannel01 + DataAcl + DataPlane + + + SNMP + SNMP_ACL + SNMP + + + ERSPAN_DSCP + Everflow_dscp + Everflow_dscp + + + + + + + + + + DeviceSerialLink + 9600 + switch-t0 + console + true + switch-t1 + 1 + + + DeviceSerialLink + 9600 + switch-t0 + 1 + true + managed_device + console + + + DeviceInterfaceLink + 10000 + switch-t0 + fortyGigE0/0 + switch-01t1 + port1 + + + DeviceInterfaceLink + 10000 + switch-t0 + fortyGigE0/12 + switch-02t1 + port1 + + + DeviceInterfaceLink + 25000 + switch-t0 + fortyGigE0/4 + server1 + port1 + + + DeviceInterfaceLink + 40000 + switch-t0 + fortyGigE0/8 + server2 + port1 + + + LogicalLink + 10000 + false + switch-t0 + fortyGigE0/4 + true + mux-cable + L + true + + + LogicalLink + 10000 + false + switch-t0 + fortyGigE0/8 + true + mux-cable + U + true + + + LogicalLink + 0 + false + switch-t0 + MuxTunnel0 + false + switch2-t0 + MuxTunnel0 + true + + + + + ToRRouter +
+ 26.1.1.10/32 +
+ switch-t0 + Force10-S6000 + AAA00PrdStr00 +
+ +
+ 25.1.1.10/32 +
+ + 10.7.0.196/26 + + switch2-t0 + Force10-S6000 +
+ + switch-01t1 +
+ 10.1.0.186/32 +
+ 2 + + + 10.7.0.196/26 + + Force10-S6000 +
+ + Server +
+ 10.10.10.1/32 +
+ + fe80::0001/80 + + + 10.0.0.1/32 + + server1 + server-sku +
+ + Server +
+ 10.10.10.2/32 +
+ + fe80::0002/128 + + + 10.0.0.2/32 + + server2 + server-sku +
+
+
+ + + + + + + GeminiPeeringLink + + True + + + UpperTOR + + switch-t0 + + + LowerTOR + + switch2-t0 + + + switch2-t0:MuxTunnel0;switch-t0:MuxTunnel0 + + + + + + AutoNegotiation + + True + + + switch-01t1:port1;switch-t0:fortyGigE0/0 + + + + + + AutoNegotiation + + True + + + switch-02t1:port1;switch-t0:fortyGigE0/12 + + + + + + AutoNegotiation + + True + + + server1:port1;switch-t0:fortyGigE0/4 + + + + + + AutoNegotiation + + True + + + server2:port1;switch-t0:fortyGigE0/8 + + + + + + + switch-t0 + + + DeploymentId + + 1 + + + ErspanDestinationIpv4 + + 10.0.100.1 + + + NtpResources + + 10.0.10.1;10.0.10.2 + + + + SnmpResources + + 10.0.10.3;10.0.10.4 + + + + SyslogResources + + 10.0.10.5;10.0.10.6 + + + + TacacsServer + + 10.0.10.7;10.0.10.8 + + + KubernetesEnabled + + 0 + + + KubernetesServerIp + + 10.10.10.10 + + + ResourceType + + Storage + + + + + + + + + + TunnelQosRemapEnabled + False + + + + + + + + DeviceInterface + + true + 1 + fortyGigE0/0 + + false + 0 + 0 + 10000 + + + DeviceInterface + + true + 1 + fortyGigE0/4 + + false + 0 + 0 + 25000 + + + DeviceInterface + + true + 1 + fortyGigE0/8 + + false + 0 + 0 + 40000 + Interface description + + + DeviceInterface + + true + 1 + fortyGigE0/12 + + false + 0 + 0 + 100000 + Interface description + + + DeviceInterface + + true + 1 + fortyGigE0/16 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/20 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/24 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/28 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/32 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/36 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/40 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/44 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/48 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/52 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/56 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/60 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/64 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/68 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/72 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/76 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/80 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/84 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/88 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/92 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/96 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/100 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/104 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/108 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/112 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/116 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/120 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/124 + + false + 0 + 0 + 100000 + + + true + 0 + Force10-S6000 + + + DeviceInterface + + true + 1 + eth0 + false + eth0 + 1000 + + + + + switch-t0 + Force10-S6000 +
diff --git a/src/sonic-config-engine/tests/simple-sample-graph-case-remap-enabled.xml b/src/sonic-config-engine/tests/simple-sample-graph-case-remap-enabled.xml new file mode 100644 index 000000000000..d38f77774e9f --- /dev/null +++ b/src/sonic-config-engine/tests/simple-sample-graph-case-remap-enabled.xml @@ -0,0 +1,894 @@ + + + + + + false + switch-t0 + 10.0.0.56 + ARISTA01T1 + 10.0.0.57 + 1 + 180 + 60 + + + switch-t0 + FC00::71 + ARISTA01T1 + FC00::72 + 1 + 180 + 60 + + + false + switch-t0 + 10.0.0.58 + ARISTA02T1 + 10.0.0.59 + 1 + 180 + 60 + + + switch-t0 + FC00::75 + ARISTA02T1 + FC00::76 + 1 + 180 + 60 + + + + + 65100 + switch-t0 + + +
10.0.0.57
+ + + +
+ +
10.0.0.59
+ + + +
+
+ +
+ + 64600 + ARISTA01T1 + + + + 64600 + ARISTA02T1 + + + + 64600 + ARISTA03T1 + + + + 64600 + ARISTA04T1 + + +
+
+ + + + + + HostIP + Loopback0 + + 10.1.0.32/32 + + 10.1.0.32/32 + + + HostIP1 + Loopback0 + + FC00:1::32/128 + + FC00:1::32/128 + + + + + HostIP + eth0 + + 10.0.0.100/24 + + 10.0.0.100/24 + + + + + + + switch-t0 + + + PortChannel01 + fortyGigE0/4 + + + + + + + + + ab1 + fortyGigE0/8 + 192.0.0.1;192.0.0.2 + fc02:2000::1;fc02:2000::2 + 1000 + 1000 + 192.168.0.0/27 + 00:aa:bb:cc:dd:ee + + + ab2 + fortyGigE0/4 + 192.0.0.1 + fc02:2000::3;fc02:2000::4 + 2000 + 2000 + + + + + + + PortChannel01 + 10.0.0.56/31 + + + + PortChannel01 + FC00::71/126 + + + + fortyGigE0/0 + 10.0.0.58/31 + + + + fortyGigE0/0 + FC00::75/126 + + + + ab1 + 192.168.0.1/27 + + + + + + PortChannel01 + DataAcl + DataPlane + + + SNMP + SNMP_ACL + SNMP + + + ERSPAN_DSCP + Everflow_dscp + Everflow_dscp + + + + + + + + + + DeviceSerialLink + 9600 + switch-t0 + console + true + switch-t1 + 1 + + + DeviceSerialLink + 9600 + switch-t0 + 1 + true + managed_device + console + + + DeviceInterfaceLink + 10000 + switch-t0 + fortyGigE0/0 + switch-01t1 + port1 + + + DeviceInterfaceLink + 10000 + switch-t0 + fortyGigE0/12 + switch-02t1 + port1 + + + DeviceInterfaceLink + 25000 + switch-t0 + fortyGigE0/4 + server1 + port1 + + + DeviceInterfaceLink + 40000 + switch-t0 + fortyGigE0/8 + server2 + port1 + + + LogicalLink + 10000 + false + switch-t0 + fortyGigE0/4 + true + mux-cable + L + true + + + LogicalLink + 10000 + false + switch-t0 + fortyGigE0/8 + true + mux-cable + U + true + + + LogicalLink + 0 + false + switch-t0 + MuxTunnel0 + false + switch2-t0 + MuxTunnel0 + true + + + + + ToRRouter +
+ 26.1.1.10/32 +
+ switch-t0 + Force10-S6000 + AAA00PrdStr00 +
+ +
+ 25.1.1.10/32 +
+ + 10.7.0.196/26 + + switch2-t0 + Force10-S6000 +
+ + switch-01t1 +
+ 10.1.0.186/32 +
+ 2 + + + 10.7.0.196/26 + + Force10-S6000 +
+ + Server +
+ 10.10.10.1/32 +
+ + fe80::0001/80 + + + 10.0.0.1/32 + + server1 + server-sku +
+ + Server +
+ 10.10.10.2/32 +
+ + fe80::0002/128 + + + 10.0.0.2/32 + + server2 + server-sku +
+
+
+ + + + + + + GeminiPeeringLink + + True + + + UpperTOR + + switch-t0 + + + LowerTOR + + switch2-t0 + + + switch2-t0:MuxTunnel0;switch-t0:MuxTunnel0 + + + + + + AutoNegotiation + + True + + + switch-01t1:port1;switch-t0:fortyGigE0/0 + + + + + + AutoNegotiation + + True + + + switch-02t1:port1;switch-t0:fortyGigE0/12 + + + + + + AutoNegotiation + + True + + + server1:port1;switch-t0:fortyGigE0/4 + + + + + + AutoNegotiation + + True + + + server2:port1;switch-t0:fortyGigE0/8 + + + + + + + switch-t0 + + + DeploymentId + + 1 + + + ErspanDestinationIpv4 + + 10.0.100.1 + + + NtpResources + + 10.0.10.1;10.0.10.2 + + + + SnmpResources + + 10.0.10.3;10.0.10.4 + + + + SyslogResources + + 10.0.10.5;10.0.10.6 + + + + TacacsServer + + 10.0.10.7;10.0.10.8 + + + KubernetesEnabled + + 0 + + + KubernetesServerIp + + 10.10.10.10 + + + ResourceType + + Storage + + + + + + + + + + TunnelQosRemapEnabled + True + + + + + + + + DeviceInterface + + true + 1 + fortyGigE0/0 + + false + 0 + 0 + 10000 + + + DeviceInterface + + true + 1 + fortyGigE0/4 + + false + 0 + 0 + 25000 + + + DeviceInterface + + true + 1 + fortyGigE0/8 + + false + 0 + 0 + 40000 + Interface description + + + DeviceInterface + + true + 1 + fortyGigE0/12 + + false + 0 + 0 + 100000 + Interface description + + + DeviceInterface + + true + 1 + fortyGigE0/16 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/20 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/24 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/28 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/32 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/36 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/40 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/44 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/48 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/52 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/56 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/60 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/64 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/68 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/72 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/76 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/80 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/84 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/88 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/92 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/96 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/100 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/104 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/108 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/112 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/116 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/120 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + 1 + fortyGigE0/124 + + false + 0 + 0 + 100000 + + + true + 0 + Force10-S6000 + + + DeviceInterface + + true + 1 + eth0 + false + eth0 + 1000 + + + + + switch-t0 + Force10-S6000 +
diff --git a/src/sonic-config-engine/tests/test_minigraph_case.py b/src/sonic-config-engine/tests/test_minigraph_case.py index d5fe3aad7535..b4756219399d 100644 --- a/src/sonic-config-engine/tests/test_minigraph_case.py +++ b/src/sonic-config-engine/tests/test_minigraph_case.py @@ -369,6 +369,42 @@ def test_minigraph_tunnel_table(self): expected_tunnel ) + # Validate tunnel config is as before when tunnel_qos_remap = disabled + sample_graph_disabled_remap = os.path.join(self.test_dir, 'simple-sample-graph-case-remap-disabled.xml') + argument = '-m "' + sample_graph_disabled_remap + '" -p "' + self.port_config + '" -v "TUNNEL"' + + output = self.run_script(argument) + self.assertEqual( + utils.to_dict(output.strip()), + expected_tunnel + ) + + # Validate extra config is generated when tunnel_qos_remap = enabled + sample_graph_enabled_remap = os.path.join(self.test_dir, 'simple-sample-graph-case-remap-enabled.xml') + argument = '-m "' + sample_graph_enabled_remap + '" -p "' + self.port_config + '" -v "TUNNEL"' + expected_tunnel = { + "MuxTunnel0": { + "tunnel_type": "IPINIP", + "src_ip": "25.1.1.10", + "dst_ip": "10.1.0.32", + "dscp_mode": "uniform", + "encap_ecn_mode": "standard", + "ecn_mode": "copy_from_outer", + "ttl_mode": "pipe", + "decap_dscp_to_tc_map": "AZURE_TUNNEL", + "decap_tc_to_pg_map": "AZURE_TUNNEL", + "encap_tc_to_dscp_map": "AZURE_TUNNEL", + "encap_tc_to_queue_map": "AZURE_TUNNEL" + } + } + + output = self.run_script(argument) + self.assertEqual( + utils.to_dict(output.strip()), + expected_tunnel + ) + + def test_minigraph_mux_cable_table(self): argument = '-m "' + self.sample_graph + '" -p "' + self.port_config + '" -v "MUX_CABLE"' expected_table = { From 29043ff026a815e1fea338759ff05491c48e2f03 Mon Sep 17 00:00:00 2001 From: Andriy Yurkiv <70649192+ayurkiv-nvda@users.noreply.github.com> Date: Sat, 28 May 2022 15:45:02 +0300 Subject: [PATCH 230/251] [MFT] Update MFT version to MFT 4.20.0-34 (#10933) - Why I did it Update MFT to newer version - How I did it Update MFT_VERSION in platform/mellanox/mft.mk - How to verify it Check version via dpkg -l | grep mft Signed-off-by: Andriy Yurkiv --- platform/mellanox/mft.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/platform/mellanox/mft.mk b/platform/mellanox/mft.mk index 7dc654381f5a..c3ebdac356e7 100644 --- a/platform/mellanox/mft.mk +++ b/platform/mellanox/mft.mk @@ -16,8 +16,8 @@ # # Mellanox SAI -MFT_VERSION = 4.18.0 -MFT_REVISION = 106 +MFT_VERSION = 4.20.0 +MFT_REVISION = 34 export MFT_VERSION MFT_REVISION From ab0930313b34aa37819b4a5a325ed8b2f633e028 Mon Sep 17 00:00:00 2001 From: davidpil2002 <91657985+davidpil2002@users.noreply.github.com> Date: Sun, 29 May 2022 13:54:51 +0300 Subject: [PATCH 231/251] [YANG] Add support for Password Hardening (#10322) - Why I did it Yang Model about password hardening feature, the sonic CLI of this feature was autogenerated from this Yang model - How I did it Create new Yang model in src/sonic-yang-models/yang-models/sonic-passwh.yang. - How to verify it There are unitests(yang test) in this P.R covering all the passwords policies with good and bad values cases. Or is possible manually using the config/show password commands that were autogenerated from this Yang model. (this CLI code added in sonic-utilities) --- files/build_templates/init_cfg.json.j2 | 14 ++ src/sonic-yang-models/doc/Configuration.md | 35 +++++ src/sonic-yang-models/setup.py | 1 + .../tests/files/sample_config_db.json | 15 ++ .../tests/password_hardening.json | 32 ++++ .../tests_config/password_hardening.json | 146 ++++++++++++++++++ .../yang-models/sonic-passwh.yang | 76 +++++++++ 7 files changed, 319 insertions(+) create mode 100644 src/sonic-yang-models/tests/yang_model_tests/tests/password_hardening.json create mode 100644 src/sonic-yang-models/tests/yang_model_tests/tests_config/password_hardening.json create mode 100755 src/sonic-yang-models/yang-models/sonic-passwh.yang diff --git a/files/build_templates/init_cfg.json.j2 b/files/build_templates/init_cfg.json.j2 index 5d44b0a64b9d..a197c22a9020 100644 --- a/files/build_templates/init_cfg.json.j2 +++ b/files/build_templates/init_cfg.json.j2 @@ -91,5 +91,19 @@ "rate_limit_interval" : "600" }{%if not loop.last %},{% endif -%} {% endfor %} + }, + "PASSW_HARDENING": { + "POLICIES":{ + "state": "disabled", + "expiration": "180", + "expiration_warning": "15", + "history_cnt": "10", + "len_min": "8", + "reject_user_passw_match": "true", + "lower_class": "true", + "upper_class": "true", + "digits_class": "true", + "special_class": "true" + } } } diff --git a/src/sonic-yang-models/doc/Configuration.md b/src/sonic-yang-models/doc/Configuration.md index 47ccb2a3e4ee..3d5bf91db542 100644 --- a/src/sonic-yang-models/doc/Configuration.md +++ b/src/sonic-yang-models/doc/Configuration.md @@ -51,6 +51,7 @@ Table of Contents * [VLAN_MEMBER](#vlan_member) * [Virtual router](#virtual-router) * [WRED_PROFILE](#wred_profile) + * [PASSWORD_HARDENING](#password_hardening) * [For Developers](#for-developers) * [Generating Application Config by Jinja2 Template](#generating-application-config-by-jinja2-template) * [Incremental Configuration by Subscribing to ConfigDB](#incremental-configuration-by-subscribing-to-configdb) @@ -1506,6 +1507,40 @@ The packet action could be: } } ``` +### PASSWORD_HARDENING + +Password Hardening, a user password is the key credential used in order to verify the user accessing the switch and acts as the first line of defense in regards to securing the switch. PASSWORD_HARDENING - support the enforce strong policies. + +- state - Enable/Disable password hardening feature +- len_min - The minimum length of the PW should be subject to a user change. +- expiration - PW Age Change Once a PW change takes place - the DB record for said PW is updated with the new PW value and a fresh new age (=0). +- expiration_warning - The switch will provide a warning for PW change before and (this is to allow a sufficient warning for upgrading the PW which might be relevant to numerous switches). +- history_cnt - remember last passwords, and reject to use the old passw +- reject_user_passw_match - reject to set same username and passw +- PW classes - are the type of characters the user is required to enter when setting/updating a PW. +There are 4 classes + - lower_class - Small characters - a-z + - upper_class - Big characters - A-Z + - digits_class -Numbers - 0-9 + - special_class - Special Characters `~!@#$%^&*()-_+=|[{}];:',<.>/? and white space +``` +{ +"PASSW_HARDENING": { + "POLICIES": { + "state": "disabled", + "expiration": "180", + "expiration_warning": "15", + "history_cnt": "10", + "len_min": "8", + "reject_user_passw_match": "true", + "lower_class": "true", + "upper_class": "true", + "digits_class": "true", + "special_class": "true" + } + } +} +``` ### BREAKOUT_CFG diff --git a/src/sonic-yang-models/setup.py b/src/sonic-yang-models/setup.py index 52cf020f4491..3dfdde1cef89 100644 --- a/src/sonic-yang-models/setup.py +++ b/src/sonic-yang-models/setup.py @@ -114,6 +114,7 @@ def run(self): './yang-models/sonic-ntp.yang', './yang-models/sonic-nat.yang', './yang-models/sonic-nvgre-tunnel.yang', + './yang-models/sonic-passwh.yang', './yang-models/sonic-pbh.yang', './yang-models/sonic-port.yang', './yang-models/sonic-policer.yang', diff --git a/src/sonic-yang-models/tests/files/sample_config_db.json b/src/sonic-yang-models/tests/files/sample_config_db.json index d6a4e8f2a9ee..9be6d29e8922 100644 --- a/src/sonic-yang-models/tests/files/sample_config_db.json +++ b/src/sonic-yang-models/tests/files/sample_config_db.json @@ -1792,6 +1792,21 @@ } }, + "PASSW_HARDENING": { + "POLICIES": { + "state": "enabled", + "expiration": "180", + "expiration_warning": "15", + "history_cnt": "10", + "len_min": "8", + "reject_user_passw_match": "true", + "digits_class": "true", + "lower_class": "true", + "special_class": "true", + "upper_class": "true" + } + }, + "MACSEC_PROFILE": { "test": { "priority": "64", diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests/password_hardening.json b/src/sonic-yang-models/tests/yang_model_tests/tests/password_hardening.json new file mode 100644 index 000000000000..4bcde92849f1 --- /dev/null +++ b/src/sonic-yang-models/tests/yang_model_tests/tests/password_hardening.json @@ -0,0 +1,32 @@ +{ + "PASSWORD_TABLE": { + "desc": "Configure policer with all default fields." + }, + "PASSWORD_ENABLE_FEATURE_WITH_POLICIES": { + "desc": "Configure password policies and enabled feature." + }, + "PASSWORD_BAD_ENABLE_FEATURE": { + "desc": "Configure password policies enabled feature with a wrong value.", + "eStrKey" : "InvalidValue" + }, + "PASSWORD_BAD_DIGIT": { + "desc": "Configure password Digit Class policy with invalid value", + "eStrKey" : "InvalidValue" + }, + "PASSWORD_BAD_HISTORY_CNT": { + "desc": "Configure password history_cnt with out of range value", + "eStrKey" : "InvalidValue" + }, + "PASSWORD_BAD_LEN_MIN": { + "desc": "Configure password len-min with out of range value", + "eStrKey" : "Pattern" + }, + "PASSWORD_BAD_EXPIRATION": { + "desc": "Configure password expiration with out of range value", + "eStrKey" : "Pattern" + }, + "PASSWORD_BAD_EXPIRATION_WARN": { + "desc": "Configure password expiration-warning with out of range value", + "eStrKey" : "Pattern" + } +} \ No newline at end of file diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests_config/password_hardening.json b/src/sonic-yang-models/tests/yang_model_tests/tests_config/password_hardening.json new file mode 100644 index 000000000000..0b7eb5a3cb40 --- /dev/null +++ b/src/sonic-yang-models/tests/yang_model_tests/tests_config/password_hardening.json @@ -0,0 +1,146 @@ +{ + "PASSWORD_TABLE": { + "sonic-passwh:sonic-passwh": { + "sonic-passwh:PASSW_HARDENING": { + "POLICIES":{ + "state": "disabled", + "expiration": "180", + "expiration_warning": "15", + "history_cnt": "10", + "len_min": "8", + "reject_user_passw_match": true, + "lower_class": true, + "upper_class": true, + "digits_class": true, + "special_class": true + } + } + } + }, + "PASSWORD_ENABLE_FEATURE_WITH_POLICIES": { + "sonic-passwh:sonic-passwh": { + "sonic-passwh:PASSW_HARDENING": { + "POLICIES":{ + "state": "enabled", + "expiration": "180", + "expiration_warning": "15", + "history_cnt": "10", + "len_min": "8", + "reject_user_passw_match": true, + "lower_class": true, + "upper_class": true, + "digits_class": true, + "special_class": true + } + } + } + }, + "PASSWORD_BAD_ENABLE_FEATURE": { + "sonic-passwh:sonic-passwh": { + "sonic-passwh:PASSW_HARDENING": { + "POLICIES":{ + "state": "33", + "expiration": "180", + "expiration_warning": "15", + "history_cnt": "10", + "len_min": "8", + "reject_user_passw_match": true, + "lower_class": true, + "upper_class": true, + "digits_class": true, + "special_class": true + } + } + } + }, + "PASSWORD_BAD_DIGIT": { + "sonic-passwh:sonic-passwh": { + "sonic-passwh:PASSW_HARDENING": { + "POLICIES":{ + "state": "disabled", + "expiration": "180", + "expiration_warning": "15", + "history_cnt": "10", + "len_min": "8", + "reject_user_passw_match": true, + "lower_class": true, + "upper_class": true, + "digits_class": "1", + "special_class": true + } + } + } + }, + "PASSWORD_BAD_HISTORY_CNT": { + "sonic-passwh:sonic-passwh": { + "sonic-passwh:PASSW_HARDENING": { + "POLICIES":{ + "state": "enabled", + "expiration": "180", + "expiration_warning": "15", + "history_cnt": "300", + "len_min": "8", + "reject_user_passw_match": true, + "lower_class": true, + "upper_class": true, + "digits_class": true, + "special_class": true + } + } + } + }, + "PASSWORD_BAD_LEN_MIN": { + "sonic-passwh:sonic-passwh": { + "sonic-passwh:PASSW_HARDENING": { + "POLICIES":{ + "state": "enabled", + "expiration": "180", + "expiration_warning": "15", + "history_cnt": "50", + "len_min": "50", + "reject_user_passw_match": true, + "lower_class": true, + "upper_class": true, + "digits_class": true, + "special_class": true + } + } + } + }, + "PASSWORD_BAD_EXPIRATION": { + "sonic-passwh:sonic-passwh": { + "sonic-passwh:PASSW_HARDENING": { + "POLICIES":{ + "state": "enabled", + "expiration": "400", + "expiration_warning": "15", + "history_cnt": "50", + "len_min": "8", + "reject_user_passw_match": true, + "lower_class": true, + "upper_class": true, + "digits_class": true, + "special_class": true + } + } + } + }, + "PASSWORD_BAD_EXPIRATION_WARN": { + "sonic-passwh:sonic-passwh": { + "sonic-passwh:PASSW_HARDENING": { + "POLICIES":{ + "state": "enabled", + "expiration": "180", + "expiration_warning": "40", + "history_cnt": "10", + "len_min": "8", + "reject_user_passw_match": true, + "lower_class": true, + "upper_class": true, + "digits_class": true, + "special_class": true + } + } + } + } +} \ No newline at end of file diff --git a/src/sonic-yang-models/yang-models/sonic-passwh.yang b/src/sonic-yang-models/yang-models/sonic-passwh.yang new file mode 100755 index 000000000000..8814bc2e5a29 --- /dev/null +++ b/src/sonic-yang-models/yang-models/sonic-passwh.yang @@ -0,0 +1,76 @@ +module sonic-passwh { + yang-version 1.1; + namespace "http://github.com/Azure/sonic-passwh"; + prefix password; + + description "PASSWORD HARDENING YANG Module for SONiC OS"; + + revision 2022-05-03 { + description "First Revision"; + } + + container sonic-passwh { + + typedef feature_state { + type enumeration { + enum enabled; + enum disabled; + } + } + + container PASSW_HARDENING { + description "PASSWORD HARDENING part of config_db.json"; + container POLICIES { + leaf state { + description "state of the feature"; + type feature_state; + default "disabled"; + } + leaf expiration { + description "expiration time (days unit)"; + type uint16 { + range 1..365; + } + } + leaf expiration_warning { + description "expiration warning time (days unit)"; + type uint8 { + range 1..30; + } + } + leaf history_cnt { + description "num of old password that the system will recorded"; + type uint8 { + range 1..100; + } + } + leaf len_min { + description "password min length"; + type uint8 { + range 1..32; + } + } + leaf reject_user_passw_match{ + description "username password match"; + type boolean; + } + leaf lower_class{ + description "password lower chars policy"; + type boolean; + } + leaf upper_class{ + description "password upper chars policy"; + type boolean; + } + leaf digits_class{ + description "password digits chars policy"; + type boolean; + } + leaf special_class{ + description "password special chars policy"; + type boolean; + } + }/*container policies */ + } /* container PASSWH */ + }/* container sonic-passwh */ +}/* end of module sonic-passwh */ From ed27eff71fe4bff53fce995a52c45b56362ab340 Mon Sep 17 00:00:00 2001 From: Ying Xie Date: Sun, 29 May 2022 18:21:03 -0700 Subject: [PATCH 232/251] [swss] advance sonic-swss submodule head (#10959) * 910bfd4 2022-05-28 | [ACL] Add default action_list for default ACL table type (#2298) (github/master) [bingwang-ms] * 4d6fa42 2022-05-27 | [ci] Change artifact reference pipeline to common lib pipeline. (#2294) [Shilong Liu] * 583236f 2022-05-26 | [P4Orch] Lazy UDF match creation to avoid failure during warm reboot (#2282) [Yilan Ji] * d7b5ff7 2022-05-26 | [ci] Use correct branch when downloading artifact. (#2292) [Shilong Liu] * 2f13244 2022-05-26 | [ci] Improve azp trigger settings to automaticlly support new release branch. (#2289) [Shilong Liu] Signed-off-by: Ying Xie --- src/sonic-swss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-swss b/src/sonic-swss index 0e5e7ba5cb55..910bfd4d1778 160000 --- a/src/sonic-swss +++ b/src/sonic-swss @@ -1 +1 @@ -Subproject commit 0e5e7ba5cb5581c1ea4d470216cf3aadcd19fb94 +Subproject commit 910bfd4d17782a059daf2d81deb87673ae6ca58e From b9ecaa32349c0cd6f91aec3a294f3282279bb0af Mon Sep 17 00:00:00 2001 From: xumia <59720581+xumia@users.noreply.github.com> Date: Mon, 30 May 2022 12:06:32 +0800 Subject: [PATCH 233/251] [Build]: Support to use the base image version when a package version not specified (#10971) Why I did it It is to fix issue: #10952 [Build]: Support to use the base image version when a package version not specified --- .../scripts/buildinfo_base.sh | 53 +++++++++++++++++++ .../scripts/pre_run_buildinfo | 1 + 2 files changed, 54 insertions(+) diff --git a/src/sonic-build-hooks/scripts/buildinfo_base.sh b/src/sonic-build-hooks/scripts/buildinfo_base.sh index e1ef80b01162..ff249dfdfb91 100755 --- a/src/sonic-build-hooks/scripts/buildinfo_base.sh +++ b/src/sonic-build-hooks/scripts/buildinfo_base.sh @@ -264,6 +264,59 @@ release_apt_installation_lock() rm -f $DPKG_INSTALLTION_LOCK_FILE } +update_preference_deb() +{ + local version_file="$VERSION_PATH/versions-deb" + if [ -f "$version_file" ]; then + rm -f $VERSION_DEB_PREFERENCE + for pacakge_version in $(cat "$version_file"); do + package=$(echo $pacakge_version | awk -F"==" '{print $1}') + version=$(echo $pacakge_version | awk -F"==" '{print $2}') + echo -e "Package: $package\nPin: version $version\nPin-Priority: 999\n\n" >> $VERSION_DEB_PREFERENCE + done + fi +} + +update_version_file() +{ + local version_name=$1 + local pre_version_file="$(ls $PRE_VERSION_PATH/${version_name}-* 2>/dev/null | head -n 1)" + local version_file="$VERSION_PATH/$1" + if [ ! -f "$pre_version_file" ]; then + return 0 + fi + local pacakge_versions="$(cat $pre_version_file)" + [ -f "$version_file" ] && pacakge_versions="$pacakge_versions $(cat $version_file)" + declare -A versions + for pacakge_version in $pacakge_versions; do + package=$(echo $pacakge_version | awk -F"==" '{print $1}') + version=$(echo $pacakge_version | awk -F"==" '{print $2}') + if [ -z "$package" ] || [ -z "$version" ]; then + continue + fi + versions[$package]=$version + done + + tmp_file=$(mktemp) + for package in "${!versions[@]}"; do + echo "$package==${versions[$package]}" >> $tmp_file + done + sort -u $tmp_file > $version_file + rm -f $tmp_file + + if [[ "${version_name}" == *-deb ]]; then + update_preference_deb + fi +} + +update_version_files() +{ + local version_names="versions-deb versions-py2 versions-py3" + for version_name in $version_names; do + update_version_file $version_name + done +} + ENABLE_VERSION_CONTROL_DEB=$(check_version_control "deb") ENABLE_VERSION_CONTROL_PY2=$(check_version_control "py2") ENABLE_VERSION_CONTROL_PY3=$(check_version_control "py3") diff --git a/src/sonic-build-hooks/scripts/pre_run_buildinfo b/src/sonic-build-hooks/scripts/pre_run_buildinfo index d9b927ab42f9..5a8f00b55ecb 100755 --- a/src/sonic-build-hooks/scripts/pre_run_buildinfo +++ b/src/sonic-build-hooks/scripts/pre_run_buildinfo @@ -11,6 +11,7 @@ mkdir -p $LOG_PATH [ -d $POST_VERSION_PATH ] && rm -rf $POST_VERSION_PATH mkdir -p $POST_VERSION_PATH collect_version_files $PRE_VERSION_PATH +update_version_files symlink_build_hooks set_reproducible_mirrors From b3e33d4f45d80ae0002bb80c2d9aad4e3cd381cc Mon Sep 17 00:00:00 2001 From: Jing Zhang Date: Sun, 29 May 2022 22:53:46 -0700 Subject: [PATCH 234/251] [sonic-linkmgrd][master] submodule updates (#10925) [sonic-linkmgrd][master] submodule updates d744bfb Longxiang Lyu Wed May 25 08:40:42 2022 +0800 Support switch between using wellknown mac or server mac addr (#73) 684e989 Jing Zhang Wed May 18 09:59:02 2022 -0700 Avoid switching active when LinkState == Down (#77) e4aa4fd Longxiang Lyu Tue May 17 09:13:23 2022 +0800 [Makefile] Remove redundant optimization options (#75) 4ec7505 Jing Zhang Thu May 12 08:19:20 2022 -0700 [ci]: uplift diff coverage threshold to 80% (#71) sign-off: Jing Zhang zhangjing@microsoft.com --- src/linkmgrd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/linkmgrd b/src/linkmgrd index df5132254e10..d744bfb4a694 160000 --- a/src/linkmgrd +++ b/src/linkmgrd @@ -1 +1 @@ -Subproject commit df5132254e104343d099da3b95eaf1336ac485cd +Subproject commit d744bfb4a6947cacfde744fc73550a7b99d8e0c8 From 650b00e41ee4b489b2a8ebf627afdd029688de64 Mon Sep 17 00:00:00 2001 From: Shilong Liu Date: Mon, 30 May 2022 16:02:27 +0800 Subject: [PATCH 235/251] [ci] Publish logs when building image job is canceled by timeout. (#10919) --- .azure-pipelines/azure-pipelines-image-template.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.azure-pipelines/azure-pipelines-image-template.yml b/.azure-pipelines/azure-pipelines-image-template.yml index ae103ed28868..9df0b3ffa6ef 100644 --- a/.azure-pipelines/azure-pipelines-image-template.yml +++ b/.azure-pipelines/azure-pipelines-image-template.yml @@ -55,7 +55,7 @@ jobs: artifact: 'sonic-buildimage.$(GROUP_NAME)$(GROUP_EXTNAME)' displayName: "Archive sonic image" - publish: $(Build.ArtifactStagingDirectory) - condition: failed() + condition: or(failed(), canceled()) artifact: 'sonic-buildimage.$(GROUP_NAME)$(GROUP_EXTNAME)$(System.JobAttempt)' displayName: "Archive failed sonic image" - ${{ if ne(variables['Build.Reason'], 'PullRequest') }}: From 73c5ac11eea0752298c4ad1c3639efd5940c79fc Mon Sep 17 00:00:00 2001 From: Guohan Lu Date: Mon, 30 May 2022 01:25:51 -0700 Subject: [PATCH 236/251] [CODEOWNERS]: update code owners for various repos (#10980) Signed-off-by: Guohan Lu --- .github/CODEOWNERS | 74 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 73 insertions(+), 1 deletion(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 6482f6837d16..5a3aad7b8f69 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -19,6 +19,9 @@ /Makefile.work @qiluo-msft @xumia @lguohan /slave.mk @qiluo-msft @xumia @lguohan /scripts @qiluo-msft @xumia @lguohan +/src/sonic-build-hooks/ @Azure/sonic-build +/src/debootstrap/ @Azure/sonic-build +/src/sonic-fips/ @Azure/sonic-build # installer /installer/ @qiluo-msft @@ -31,8 +34,77 @@ /dockers/docker-config-engine*/ @qiluo-msft /dockers/docker-snmp/ @qiluo-msft -# src +# kernel +/src/sonic-linux-kernel/ @Azure/sonic-kernel + +# devices +/device/ @Azure/sonic-platform +/src/sonic-platform-common/ @Azure/sonic-platform +/src/sonic-platform-daemons/ @Azure/sonic-platform +/src/sonic-platform-pde/ @Azure/sonic-platform +/src/lm-sensors/ @Azure/sonic-platform +/src/flashrom/ @Azure/sonic-platform + +# common library /src/initramfs-tools/ @qiluo-msft +/src/redis-dump-load/ @Azure/sonic-management +/src/sonic-py-common/ @Azure/sonic-management +/src/sonic-py-swsssdk/ @Azure/sonic-management +/src/sonic-swss-common/ @Azure/sonic-management +/src/bash/ @Azure/sonic-management +/src/tacacs/ @Azure/sonic-management +/src/radius/ @Azure/sonic-management +/src/swig/ @Azure/sonic-management +/src/socat/ @Azure/sonic-management + +# redis +/src/redis/ @Azure/sonic-management +/src/hiredis/ @Azure/sonic-management # yang /src/sonic-yang-models/ @praveen-li @dgsudharsan @rathnasabapathyv @venkatmahalingam @qiluo-msft +/src/sonic-yang-mgmt/ @Azure/sonic-management +/src/libyang/ @Azure/sonic-management +/src/libyang1/ @Azure/sonic-management +/src/libyang2/ @Azure/sonic-management + +# bgpcfgd +/src/sonic-bgpcfgd/ @StormLiangMS + +# sonic-config-engine +/src/sonic-config-engine/ @Azure/sonic-management + +# sonic-utilities +/src/sonic-utilities/ @Azure/sonic-management + +# sonic-telemetry +/src/sonic-telemetry/ @Azure/sonic-management + +# snmp +/src/sonic-snmpagent/ @Azure/sonic-management +/src/snmpd/ @Azure/sonic-management + +# dhcp relay +/src/dhcp6relay/ @Azure/sonic-fundamentals +/src/dhcpmon/ @Azure/sonic-fundamentals +/src/isc-dhcp/ @Azure/sonic-fundamentals + +# sflow +/src/sflow/ @Azure/sonic-dataplane + +# sonic restapi +/src/sonic-restapi/ @Azure/sonic-dataplane + +# sonic swss +/src/sonic-swss/ @Azure/sonic-dataplane + +# linux networking, e.g., libnl3, iproute2, ifupdown2, ethtool +/src/libnl3/ @Azure/sonic-dataplane +/src/iproute2/ @Azure/sonic-dataplane +/src/ifupdown2/ @Azure/sonic-dataplane +/src/ethtool/ @Azure/sonic-dataplane + +# ptf +/src/ptf/ @Azure/sonic-fundamentals +/src/ptf-py3/ @Azure/sonic-fundamentals +/src/scapy/ @Azure/sonic-fundamentals From 5072315c897ad5681ad23774a62ca2e08f8fdb78 Mon Sep 17 00:00:00 2001 From: xumia <59720581+xumia@users.noreply.github.com> Date: Mon, 30 May 2022 16:50:06 +0800 Subject: [PATCH 237/251] [Ci]: Fix the target directory not empty issue when publishing artifacts #10972 Why I did it Fix the target directory not empty issue when publishing artifacts. Some of the artifacts are published to $(Build.ArtifactStagingDirectory)/target/ before source code checked out. --- .azure-pipelines/azure-pipelines-image-template.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.azure-pipelines/azure-pipelines-image-template.yml b/.azure-pipelines/azure-pipelines-image-template.yml index 9df0b3ffa6ef..6a9c2790572f 100644 --- a/.azure-pipelines/azure-pipelines-image-template.yml +++ b/.azure-pipelines/azure-pipelines-image-template.yml @@ -48,7 +48,9 @@ jobs: ENABLE_DOCKER_BASE_PULL=y make PLATFORM=$(PLATFORM_AZP) PLATFORM_ARCH=$(PLATFORM_ARCH) $(BUILD_OPTIONS) configure displayName: 'Make configure' postSteps: - - script: mv target $(Build.ArtifactStagingDirectory)/ + - script: | + mkdir -p $(Build.ArtifactStagingDirectory)/target + mv target/* $(Build.ArtifactStagingDirectory)/target/ displayName: Copy Artifacts condition: always() - publish: $(Build.ArtifactStagingDirectory) From 912923f47b4de90341047dd4da4946cf24ddc567 Mon Sep 17 00:00:00 2001 From: Samuel Angebault Date: Mon, 30 May 2022 13:34:55 -0700 Subject: [PATCH 238/251] [Arista] Update supervisor configurations (#10913) * Removed unused default_config.json * Remove asic.conf file from HW SKUs directories as they are not used by upstream code * Enable dynamic PCI ID identification on Otterlake2 Co-authored-by: Maxime Lorrillere --- .../Arista-7804R3-FM/0/default_config.json | 14 -------------- .../Arista-7804R3-FM/1/default_config.json | 14 -------------- .../Arista-7804R3-FM/10/default_config.json | 14 -------------- .../Arista-7804R3-FM/11/default_config.json | 14 -------------- .../Arista-7804R3-FM/2/default_config.json | 14 -------------- .../Arista-7804R3-FM/3/default_config.json | 14 -------------- .../Arista-7804R3-FM/4/default_config.json | 14 -------------- .../Arista-7804R3-FM/5/default_config.json | 14 -------------- .../Arista-7804R3-FM/6/default_config.json | 14 -------------- .../Arista-7804R3-FM/7/default_config.json | 14 -------------- .../Arista-7804R3-FM/8/default_config.json | 14 -------------- .../Arista-7804R3-FM/9/default_config.json | 14 -------------- .../Arista-7804R3-FM/asic.conf | 2 -- .../Arista-7808R3-FM/0/default_config.json | 14 -------------- .../Arista-7808R3-FM/1/default_config.json | 14 -------------- .../Arista-7808R3-FM/10/default_config.json | 14 -------------- .../Arista-7808R3-FM/11/default_config.json | 14 -------------- .../Arista-7808R3-FM/12/default_config.json | 14 -------------- .../Arista-7808R3-FM/13/default_config.json | 14 -------------- .../Arista-7808R3-FM/14/default_config.json | 14 -------------- .../Arista-7808R3-FM/15/default_config.json | 14 -------------- .../Arista-7808R3-FM/16/default_config.json | 14 -------------- .../Arista-7808R3-FM/17/default_config.json | 14 -------------- .../Arista-7808R3-FM/2/default_config.json | 14 -------------- .../Arista-7808R3-FM/3/default_config.json | 14 -------------- .../Arista-7808R3-FM/4/default_config.json | 14 -------------- .../Arista-7808R3-FM/5/default_config.json | 14 -------------- .../Arista-7808R3-FM/6/default_config.json | 14 -------------- .../Arista-7808R3-FM/7/default_config.json | 14 -------------- .../Arista-7808R3-FM/8/default_config.json | 14 -------------- .../Arista-7808R3-FM/9/default_config.json | 14 -------------- .../Arista-7808R3-FM/asic.conf | 2 -- .../Arista-7808R3A-FM/0/default_config.json | 14 -------------- .../Arista-7808R3A-FM/1/default_config.json | 14 -------------- .../Arista-7808R3A-FM/10/default_config.json | 14 -------------- .../Arista-7808R3A-FM/11/default_config.json | 14 -------------- .../Arista-7808R3A-FM/2/default_config.json | 14 -------------- .../Arista-7808R3A-FM/3/default_config.json | 14 -------------- .../Arista-7808R3A-FM/4/default_config.json | 14 -------------- .../Arista-7808R3A-FM/5/default_config.json | 14 -------------- .../Arista-7808R3A-FM/6/default_config.json | 14 -------------- .../Arista-7808R3A-FM/7/default_config.json | 14 -------------- .../Arista-7808R3A-FM/8/default_config.json | 14 -------------- .../Arista-7808R3A-FM/9/default_config.json | 14 -------------- .../Arista-7808R3A-FM/asic.conf | 2 -- .../x86_64-arista_7800_sup/use_pci_id_chassis | 0 .../default_config.json | 8 -------- 47 files changed, 602 deletions(-) delete mode 100644 device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/0/default_config.json delete mode 100644 device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/1/default_config.json delete mode 100644 device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/10/default_config.json delete mode 100644 device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/11/default_config.json delete mode 100644 device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/2/default_config.json delete mode 100644 device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/3/default_config.json delete mode 100644 device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/4/default_config.json delete mode 100644 device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/5/default_config.json delete mode 100644 device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/6/default_config.json delete mode 100644 device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/7/default_config.json delete mode 100644 device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/8/default_config.json delete mode 100644 device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/9/default_config.json delete mode 100644 device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/asic.conf delete mode 100644 device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/0/default_config.json delete mode 100644 device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/1/default_config.json delete mode 100644 device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/10/default_config.json delete mode 100644 device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/11/default_config.json delete mode 100644 device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/12/default_config.json delete mode 100644 device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/13/default_config.json delete mode 100644 device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/14/default_config.json delete mode 100644 device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/15/default_config.json delete mode 100644 device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/16/default_config.json delete mode 100644 device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/17/default_config.json delete mode 100644 device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/2/default_config.json delete mode 100644 device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/3/default_config.json delete mode 100644 device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/4/default_config.json delete mode 100644 device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/5/default_config.json delete mode 100644 device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/6/default_config.json delete mode 100644 device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/7/default_config.json delete mode 100644 device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/8/default_config.json delete mode 100644 device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/9/default_config.json delete mode 100644 device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/asic.conf delete mode 100644 device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/0/default_config.json delete mode 100644 device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/1/default_config.json delete mode 100644 device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/10/default_config.json delete mode 100644 device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/11/default_config.json delete mode 100644 device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/2/default_config.json delete mode 100644 device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/3/default_config.json delete mode 100644 device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/4/default_config.json delete mode 100644 device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/5/default_config.json delete mode 100644 device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/6/default_config.json delete mode 100644 device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/7/default_config.json delete mode 100644 device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/8/default_config.json delete mode 100644 device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/9/default_config.json delete mode 100644 device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/asic.conf create mode 100644 device/arista/x86_64-arista_7800_sup/use_pci_id_chassis delete mode 100644 device/arista/x86_64-arista_7800r3_48cq2_lc/default_config.json diff --git a/device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/0/default_config.json b/device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/0/default_config.json deleted file mode 100644 index 9e5c1c472d7d..000000000000 --- a/device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/0/default_config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "DEVICE_METADATA": { - "localhost": { - "instance_name": "Ramon1", - "switch_id": "300", - "switch_type": "fabric", - "chassis_db_address" : "240.127.1.1", - "start_chassis_db" : "1", - "connect_to_chassis_db" : "1", - "sub_role" : "None", - "asic_id" : "09:00.0" - } - } -} diff --git a/device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/1/default_config.json b/device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/1/default_config.json deleted file mode 100644 index 8113f6c1e6db..000000000000 --- a/device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/1/default_config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "DEVICE_METADATA": { - "localhost": { - "instance_name": "Ramon2", - "switch_id": "301", - "switch_type": "fabric", - "chassis_db_address" : "240.127.1.1", - "start_chassis_db" : "1", - "connect_to_chassis_db" : "1", - "sub_role" : "None", - "asic_id" : "10:00.0" - } - } -} diff --git a/device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/10/default_config.json b/device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/10/default_config.json deleted file mode 100644 index 94fe59532c63..000000000000 --- a/device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/10/default_config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "DEVICE_METADATA": { - "localhost": { - "instance_name": "Ramon11", - "switch_id": "310", - "switch_type": "fabric", - "chassis_db_address" : "240.127.1.1", - "start_chassis_db" : "1", - "connect_to_chassis_db" : "1", - "sub_role" : "None", - "asic_id" : "3b:00.0" - } - } -} diff --git a/device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/11/default_config.json b/device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/11/default_config.json deleted file mode 100644 index 3fea7772b027..000000000000 --- a/device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/11/default_config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "DEVICE_METADATA": { - "localhost": { - "instance_name": "Ramon12", - "switch_id": "311", - "switch_type": "fabric", - "chassis_db_address" : "240.127.1.1", - "start_chassis_db" : "1", - "connect_to_chassis_db" : "1", - "sub_role" : "None", - "asic_id" : "42:00.0" - } - } -} diff --git a/device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/2/default_config.json b/device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/2/default_config.json deleted file mode 100644 index 861b946ff979..000000000000 --- a/device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/2/default_config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "DEVICE_METADATA": { - "localhost": { - "instance_name": "Ramon3", - "switch_id": "302", - "switch_type": "fabric", - "chassis_db_address" : "240.127.1.1", - "start_chassis_db" : "1", - "connect_to_chassis_db" : "1", - "sub_role" : "None", - "asic_id" : "13:00.0" - } - } -} diff --git a/device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/3/default_config.json b/device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/3/default_config.json deleted file mode 100644 index a601e1e0013f..000000000000 --- a/device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/3/default_config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "DEVICE_METADATA": { - "localhost": { - "instance_name": "Ramon4", - "switch_id": "303", - "switch_type": "fabric", - "chassis_db_address" : "240.127.1.1", - "start_chassis_db" : "1", - "connect_to_chassis_db" : "1", - "sub_role" : "None", - "asic_id" : "1a:00.0" - } - } -} diff --git a/device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/4/default_config.json b/device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/4/default_config.json deleted file mode 100644 index 6aabfc6f325d..000000000000 --- a/device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/4/default_config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "DEVICE_METADATA": { - "localhost": { - "instance_name": "Ramon5", - "switch_id": "304", - "switch_type": "fabric", - "chassis_db_address" : "240.127.1.1", - "start_chassis_db" : "1", - "connect_to_chassis_db" : "1", - "sub_role" : "None", - "asic_id" : "1d:00.0" - } - } -} diff --git a/device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/5/default_config.json b/device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/5/default_config.json deleted file mode 100644 index 9a87905ec1c4..000000000000 --- a/device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/5/default_config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "DEVICE_METADATA": { - "localhost": { - "instance_name": "Ramon6", - "switch_id": "305", - "switch_type": "fabric", - "chassis_db_address" : "240.127.1.1", - "start_chassis_db" : "1", - "connect_to_chassis_db" : "1", - "sub_role" : "None", - "asic_id" : "24:00.0" - } - } -} diff --git a/device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/6/default_config.json b/device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/6/default_config.json deleted file mode 100644 index fd6e92231403..000000000000 --- a/device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/6/default_config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "DEVICE_METADATA": { - "localhost": { - "instance_name": "Ramon7", - "switch_id": "306", - "switch_type": "fabric", - "chassis_db_address" : "240.127.1.1", - "start_chassis_db" : "1", - "connect_to_chassis_db" : "1", - "sub_role" : "None", - "asic_id" : "27:00.0" - } - } -} diff --git a/device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/7/default_config.json b/device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/7/default_config.json deleted file mode 100644 index f0b41732e27c..000000000000 --- a/device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/7/default_config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "DEVICE_METADATA": { - "localhost": { - "instance_name": "Ramon8", - "switch_id": "307", - "switch_type": "fabric", - "chassis_db_address" : "240.127.1.1", - "start_chassis_db" : "1", - "connect_to_chassis_db" : "1", - "sub_role" : "None", - "asic_id" : "2e:00.0" - } - } -} diff --git a/device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/8/default_config.json b/device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/8/default_config.json deleted file mode 100644 index 3dfbe68c5260..000000000000 --- a/device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/8/default_config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "DEVICE_METADATA": { - "localhost": { - "instance_name": "Ramon9", - "switch_id": "308", - "switch_type": "fabric", - "chassis_db_address" : "240.127.1.1", - "start_chassis_db" : "1", - "connect_to_chassis_db" : "1", - "sub_role" : "None", - "asic_id" : "31:00.0" - } - } -} diff --git a/device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/9/default_config.json b/device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/9/default_config.json deleted file mode 100644 index e323ec82a29d..000000000000 --- a/device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/9/default_config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "DEVICE_METADATA": { - "localhost": { - "instance_name": "Ramon10", - "switch_id": "309", - "switch_type": "fabric", - "chassis_db_address" : "240.127.1.1", - "start_chassis_db" : "1", - "connect_to_chassis_db" : "1", - "sub_role" : "None", - "asic_id" : "38:00.0" - } - } -} diff --git a/device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/asic.conf b/device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/asic.conf deleted file mode 100644 index e1e6faadb80b..000000000000 --- a/device/arista/x86_64-arista_7800_sup/Arista-7804R3-FM/asic.conf +++ /dev/null @@ -1,2 +0,0 @@ -NUM_ASIC=12 -SYS_DMA_SIZE=512 diff --git a/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/0/default_config.json b/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/0/default_config.json deleted file mode 100644 index 9e5c1c472d7d..000000000000 --- a/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/0/default_config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "DEVICE_METADATA": { - "localhost": { - "instance_name": "Ramon1", - "switch_id": "300", - "switch_type": "fabric", - "chassis_db_address" : "240.127.1.1", - "start_chassis_db" : "1", - "connect_to_chassis_db" : "1", - "sub_role" : "None", - "asic_id" : "09:00.0" - } - } -} diff --git a/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/1/default_config.json b/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/1/default_config.json deleted file mode 100644 index 09870ad1b829..000000000000 --- a/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/1/default_config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "DEVICE_METADATA": { - "localhost": { - "instance_name": "Ramon2", - "switch_id": "301", - "switch_type": "fabric", - "chassis_db_address" : "240.127.1.1", - "start_chassis_db" : "1", - "connect_to_chassis_db" : "1", - "sub_role" : "None", - "asic_id" : "0b:00.0" - } - } -} diff --git a/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/10/default_config.json b/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/10/default_config.json deleted file mode 100644 index f10addbcda34..000000000000 --- a/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/10/default_config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "DEVICE_METADATA": { - "localhost": { - "instance_name": "Ramon11", - "switch_id": "310", - "switch_type": "fabric", - "chassis_db_address" : "240.127.1.1", - "start_chassis_db" : "1", - "connect_to_chassis_db" : "1", - "sub_role" : "None", - "asic_id" : "29:00.0" - } - } -} diff --git a/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/11/default_config.json b/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/11/default_config.json deleted file mode 100644 index 779fd99d457d..000000000000 --- a/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/11/default_config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "DEVICE_METADATA": { - "localhost": { - "instance_name": "Ramon12", - "switch_id": "311", - "switch_type": "fabric", - "chassis_db_address" : "240.127.1.1", - "start_chassis_db" : "1", - "connect_to_chassis_db" : "1", - "sub_role" : "None", - "asic_id" : "2a:00.0" - } - } -} diff --git a/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/12/default_config.json b/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/12/default_config.json deleted file mode 100644 index 1433edafb7d5..000000000000 --- a/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/12/default_config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "DEVICE_METADATA": { - "localhost": { - "instance_name": "Ramon13", - "switch_id": "312", - "switch_type": "fabric", - "chassis_db_address" : "240.127.1.1", - "start_chassis_db" : "1", - "connect_to_chassis_db" : "1", - "sub_role" : "None", - "asic_id" : "31:00.0" - } - } -} diff --git a/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/13/default_config.json b/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/13/default_config.json deleted file mode 100644 index 189497914a6a..000000000000 --- a/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/13/default_config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "DEVICE_METADATA": { - "localhost": { - "instance_name": "Ramon14", - "switch_id": "313", - "switch_type": "fabric", - "chassis_db_address" : "240.127.1.1", - "start_chassis_db" : "1", - "connect_to_chassis_db" : "1", - "sub_role" : "None", - "asic_id" : "33:00.0" - } - } -} diff --git a/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/14/default_config.json b/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/14/default_config.json deleted file mode 100644 index b427698ea7e6..000000000000 --- a/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/14/default_config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "DEVICE_METADATA": { - "localhost": { - "instance_name": "Ramon15", - "switch_id": "314", - "switch_type": "fabric", - "chassis_db_address" : "240.127.1.1", - "start_chassis_db" : "1", - "connect_to_chassis_db" : "1", - "sub_role" : "None", - "asic_id" : "34:00.0" - } - } -} diff --git a/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/15/default_config.json b/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/15/default_config.json deleted file mode 100644 index 8bcaaa65df0e..000000000000 --- a/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/15/default_config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "DEVICE_METADATA": { - "localhost": { - "instance_name": "Ramon16", - "switch_id": "315", - "switch_type": "fabric", - "chassis_db_address" : "240.127.1.1", - "start_chassis_db" : "1", - "connect_to_chassis_db" : "1", - "sub_role" : "None", - "asic_id" : "3b:00.0" - } - } -} diff --git a/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/16/default_config.json b/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/16/default_config.json deleted file mode 100644 index f93ae4f6e398..000000000000 --- a/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/16/default_config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "DEVICE_METADATA": { - "localhost": { - "instance_name": "Ramon17", - "switch_id": "316", - "switch_type": "fabric", - "chassis_db_address" : "240.127.1.1", - "start_chassis_db" : "1", - "connect_to_chassis_db" : "1", - "sub_role" : "None", - "asic_id" : "3d:00.0" - } - } -} diff --git a/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/17/default_config.json b/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/17/default_config.json deleted file mode 100644 index 7f22591dd367..000000000000 --- a/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/17/default_config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "DEVICE_METADATA": { - "localhost": { - "instance_name": "Ramon18", - "switch_id": "317", - "switch_type": "fabric", - "chassis_db_address" : "240.127.1.1", - "start_chassis_db" : "1", - "connect_to_chassis_db" : "1", - "sub_role" : "None", - "asic_id" : "3e:00.0" - } - } -} diff --git a/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/2/default_config.json b/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/2/default_config.json deleted file mode 100644 index 9f1e3753011f..000000000000 --- a/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/2/default_config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "DEVICE_METADATA": { - "localhost": { - "instance_name": "Ramon3", - "switch_id": "302", - "switch_type": "fabric", - "chassis_db_address" : "240.127.1.1", - "start_chassis_db" : "1", - "connect_to_chassis_db" : "1", - "sub_role" : "None", - "asic_id" : "0c:00.0" - } - } -} diff --git a/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/3/default_config.json b/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/3/default_config.json deleted file mode 100644 index 879b2ea5813c..000000000000 --- a/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/3/default_config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "DEVICE_METADATA": { - "localhost": { - "instance_name": "Ramon4", - "switch_id": "303", - "switch_type": "fabric", - "chassis_db_address" : "240.127.1.1", - "start_chassis_db" : "1", - "connect_to_chassis_db" : "1", - "sub_role" : "None", - "asic_id" : "13:00.0" - } - } -} diff --git a/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/4/default_config.json b/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/4/default_config.json deleted file mode 100644 index 02ba5d98fea6..000000000000 --- a/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/4/default_config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "DEVICE_METADATA": { - "localhost": { - "instance_name": "Ramon5", - "switch_id": "304", - "switch_type": "fabric", - "chassis_db_address" : "240.127.1.1", - "start_chassis_db" : "1", - "connect_to_chassis_db" : "1", - "sub_role" : "None", - "asic_id" : "15:00.0" - } - } -} diff --git a/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/5/default_config.json b/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/5/default_config.json deleted file mode 100644 index 8811a3c21580..000000000000 --- a/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/5/default_config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "DEVICE_METADATA": { - "localhost": { - "instance_name": "Ramon6", - "switch_id": "305", - "switch_type": "fabric", - "chassis_db_address" : "240.127.1.1", - "start_chassis_db" : "1", - "connect_to_chassis_db" : "1", - "sub_role" : "None", - "asic_id" : "16:00.0" - } - } -} diff --git a/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/6/default_config.json b/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/6/default_config.json deleted file mode 100644 index 99af78444fa3..000000000000 --- a/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/6/default_config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "DEVICE_METADATA": { - "localhost": { - "instance_name": "Ramon7", - "switch_id": "306", - "switch_type": "fabric", - "chassis_db_address" : "240.127.1.1", - "start_chassis_db" : "1", - "connect_to_chassis_db" : "1", - "sub_role" : "None", - "asic_id" : "1d:00.0" - } - } -} diff --git a/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/7/default_config.json b/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/7/default_config.json deleted file mode 100644 index 851c269035c2..000000000000 --- a/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/7/default_config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "DEVICE_METADATA": { - "localhost": { - "instance_name": "Ramon8", - "switch_id": "307", - "switch_type": "fabric", - "chassis_db_address" : "240.127.1.1", - "start_chassis_db" : "1", - "connect_to_chassis_db" : "1", - "sub_role" : "None", - "asic_id" : "1f:00.0" - } - } -} diff --git a/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/8/default_config.json b/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/8/default_config.json deleted file mode 100644 index 45539ac34a78..000000000000 --- a/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/8/default_config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "DEVICE_METADATA": { - "localhost": { - "instance_name": "Ramon9", - "switch_id": "308", - "switch_type": "fabric", - "chassis_db_address" : "240.127.1.1", - "start_chassis_db" : "1", - "connect_to_chassis_db" : "1", - "sub_role" : "None", - "asic_id" : "20:00.0" - } - } -} diff --git a/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/9/default_config.json b/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/9/default_config.json deleted file mode 100644 index 1e353321c405..000000000000 --- a/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/9/default_config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "DEVICE_METADATA": { - "localhost": { - "instance_name": "Ramon10", - "switch_id": "309", - "switch_type": "fabric", - "chassis_db_address" : "240.127.1.1", - "start_chassis_db" : "1", - "connect_to_chassis_db" : "1", - "sub_role" : "None", - "asic_id" : "27:00.0" - } - } -} diff --git a/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/asic.conf b/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/asic.conf deleted file mode 100644 index c5317c37721e..000000000000 --- a/device/arista/x86_64-arista_7800_sup/Arista-7808R3-FM/asic.conf +++ /dev/null @@ -1,2 +0,0 @@ -NUM_ASIC=18 -SYS_DMA_SIZE=512 diff --git a/device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/0/default_config.json b/device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/0/default_config.json deleted file mode 100644 index 9e5c1c472d7d..000000000000 --- a/device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/0/default_config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "DEVICE_METADATA": { - "localhost": { - "instance_name": "Ramon1", - "switch_id": "300", - "switch_type": "fabric", - "chassis_db_address" : "240.127.1.1", - "start_chassis_db" : "1", - "connect_to_chassis_db" : "1", - "sub_role" : "None", - "asic_id" : "09:00.0" - } - } -} diff --git a/device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/1/default_config.json b/device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/1/default_config.json deleted file mode 100644 index 09870ad1b829..000000000000 --- a/device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/1/default_config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "DEVICE_METADATA": { - "localhost": { - "instance_name": "Ramon2", - "switch_id": "301", - "switch_type": "fabric", - "chassis_db_address" : "240.127.1.1", - "start_chassis_db" : "1", - "connect_to_chassis_db" : "1", - "sub_role" : "None", - "asic_id" : "0b:00.0" - } - } -} diff --git a/device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/10/default_config.json b/device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/10/default_config.json deleted file mode 100644 index 94fe59532c63..000000000000 --- a/device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/10/default_config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "DEVICE_METADATA": { - "localhost": { - "instance_name": "Ramon11", - "switch_id": "310", - "switch_type": "fabric", - "chassis_db_address" : "240.127.1.1", - "start_chassis_db" : "1", - "connect_to_chassis_db" : "1", - "sub_role" : "None", - "asic_id" : "3b:00.0" - } - } -} diff --git a/device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/11/default_config.json b/device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/11/default_config.json deleted file mode 100644 index df58c1860e7c..000000000000 --- a/device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/11/default_config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "DEVICE_METADATA": { - "localhost": { - "instance_name": "Ramon12", - "switch_id": "311", - "switch_type": "fabric", - "chassis_db_address" : "240.127.1.1", - "start_chassis_db" : "1", - "connect_to_chassis_db" : "1", - "sub_role" : "None", - "asic_id" : "3d:00.0" - } - } -} diff --git a/device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/2/default_config.json b/device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/2/default_config.json deleted file mode 100644 index 861b946ff979..000000000000 --- a/device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/2/default_config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "DEVICE_METADATA": { - "localhost": { - "instance_name": "Ramon3", - "switch_id": "302", - "switch_type": "fabric", - "chassis_db_address" : "240.127.1.1", - "start_chassis_db" : "1", - "connect_to_chassis_db" : "1", - "sub_role" : "None", - "asic_id" : "13:00.0" - } - } -} diff --git a/device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/3/default_config.json b/device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/3/default_config.json deleted file mode 100644 index bc4ffa8940d2..000000000000 --- a/device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/3/default_config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "DEVICE_METADATA": { - "localhost": { - "instance_name": "Ramon4", - "switch_id": "303", - "switch_type": "fabric", - "chassis_db_address" : "240.127.1.1", - "start_chassis_db" : "1", - "connect_to_chassis_db" : "1", - "sub_role" : "None", - "asic_id" : "15:00.0" - } - } -} diff --git a/device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/4/default_config.json b/device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/4/default_config.json deleted file mode 100644 index 6aabfc6f325d..000000000000 --- a/device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/4/default_config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "DEVICE_METADATA": { - "localhost": { - "instance_name": "Ramon5", - "switch_id": "304", - "switch_type": "fabric", - "chassis_db_address" : "240.127.1.1", - "start_chassis_db" : "1", - "connect_to_chassis_db" : "1", - "sub_role" : "None", - "asic_id" : "1d:00.0" - } - } -} diff --git a/device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/5/default_config.json b/device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/5/default_config.json deleted file mode 100644 index c38256698e86..000000000000 --- a/device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/5/default_config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "DEVICE_METADATA": { - "localhost": { - "instance_name": "Ramon6", - "switch_id": "305", - "switch_type": "fabric", - "chassis_db_address" : "240.127.1.1", - "start_chassis_db" : "1", - "connect_to_chassis_db" : "1", - "sub_role" : "None", - "asic_id" : "1f:00.0" - } - } -} diff --git a/device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/6/default_config.json b/device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/6/default_config.json deleted file mode 100644 index fd6e92231403..000000000000 --- a/device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/6/default_config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "DEVICE_METADATA": { - "localhost": { - "instance_name": "Ramon7", - "switch_id": "306", - "switch_type": "fabric", - "chassis_db_address" : "240.127.1.1", - "start_chassis_db" : "1", - "connect_to_chassis_db" : "1", - "sub_role" : "None", - "asic_id" : "27:00.0" - } - } -} diff --git a/device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/7/default_config.json b/device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/7/default_config.json deleted file mode 100644 index 4620bb0f0a76..000000000000 --- a/device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/7/default_config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "DEVICE_METADATA": { - "localhost": { - "instance_name": "Ramon8", - "switch_id": "307", - "switch_type": "fabric", - "chassis_db_address" : "240.127.1.1", - "start_chassis_db" : "1", - "connect_to_chassis_db" : "1", - "sub_role" : "None", - "asic_id" : "29:00.0" - } - } -} diff --git a/device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/8/default_config.json b/device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/8/default_config.json deleted file mode 100644 index 3dfbe68c5260..000000000000 --- a/device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/8/default_config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "DEVICE_METADATA": { - "localhost": { - "instance_name": "Ramon9", - "switch_id": "308", - "switch_type": "fabric", - "chassis_db_address" : "240.127.1.1", - "start_chassis_db" : "1", - "connect_to_chassis_db" : "1", - "sub_role" : "None", - "asic_id" : "31:00.0" - } - } -} diff --git a/device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/9/default_config.json b/device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/9/default_config.json deleted file mode 100644 index 16c3ff70f18f..000000000000 --- a/device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/9/default_config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "DEVICE_METADATA": { - "localhost": { - "instance_name": "Ramon10", - "switch_id": "309", - "switch_type": "fabric", - "chassis_db_address" : "240.127.1.1", - "start_chassis_db" : "1", - "connect_to_chassis_db" : "1", - "sub_role" : "None", - "asic_id" : "33:00.0" - } - } -} diff --git a/device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/asic.conf b/device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/asic.conf deleted file mode 100644 index e1e6faadb80b..000000000000 --- a/device/arista/x86_64-arista_7800_sup/Arista-7808R3A-FM/asic.conf +++ /dev/null @@ -1,2 +0,0 @@ -NUM_ASIC=12 -SYS_DMA_SIZE=512 diff --git a/device/arista/x86_64-arista_7800_sup/use_pci_id_chassis b/device/arista/x86_64-arista_7800_sup/use_pci_id_chassis new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/device/arista/x86_64-arista_7800r3_48cq2_lc/default_config.json b/device/arista/x86_64-arista_7800r3_48cq2_lc/default_config.json deleted file mode 100644 index cda3ef93b03c..000000000000 --- a/device/arista/x86_64-arista_7800r3_48cq2_lc/default_config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "DEVICE_METADATA": { - "localhost": { - "chassis_db_address" : "127.100.1.1", - "connect_to_chassis_db" : "1" - } - } -} From 8c1ded61b05d608c6fce3a7af44b400b62a76016 Mon Sep 17 00:00:00 2001 From: Eric Zhu <79439153+cel-eric@users.noreply.github.com> Date: Tue, 31 May 2022 10:54:55 +0800 Subject: [PATCH 239/251] [SONiC-CEL]: fix platform fancontrol testcase failure issue (#10934) --- .../services/fancontrol/fancontrol | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/platform/broadcom/sonic-platform-modules-cel/services/fancontrol/fancontrol b/platform/broadcom/sonic-platform-modules-cel/services/fancontrol/fancontrol index da32acedd2f9..e625ce9a921e 100755 --- a/platform/broadcom/sonic-platform-modules-cel/services/fancontrol/fancontrol +++ b/platform/broadcom/sonic-platform-modules-cel/services/fancontrol/fancontrol @@ -348,8 +348,12 @@ CheckFiles || exit 1 if [ -f "$PIDFILE" ] then - echo "File $PIDFILE exists, is fancontrol already running?" >&2 - exit 1 + # Test if process is really running, if not, no need to exit + if ps -p $(echo $PIDFILE) > /dev/null + then + echo "File $PIDFILE exists, is fancontrol already running?" >&2 + exit 1 + fi fi echo $$ > "$PIDFILE" From bd91b2eef3644e5b58ac0f06a0b62ea0b3000910 Mon Sep 17 00:00:00 2001 From: Yakiv Huryk <62013282+Yakiv-Huryk@users.noreply.github.com> Date: Tue, 31 May 2022 09:24:18 +0300 Subject: [PATCH 240/251] [asan] add debug package for asan-enabled containers (#10953) This is to improve the readability of ASAN reports. The debug package adds function names and source code references to the backtrace (currently, there are only binary addresses of functions) Another way to address this issue is to build the image with "INSTALL_DEBUG_TOOLS=y". The downside of this approach is that the image size and compilation time are unnecessarily big. Also, the idea is to make the "ENABLE_ASAN" self-sufficient, which would not be the case for this approach. - Why I did it To improve the readability of asan logs. - How I did it Added SYNCD_DBG and SWSS_DBG to corresponding docker images for ASAN_ENABLE=y build - How to verify it Add artificial memory leak Build with ASAN_ENABLE=y Test the image and check the ASAN report Signed-off-by: Yakiv Huryk --- platform/mellanox/docker-syncd-mlnx.mk | 4 ++++ rules/docker-orchagent.mk | 4 ++++ rules/syncd.mk | 2 -- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/platform/mellanox/docker-syncd-mlnx.mk b/platform/mellanox/docker-syncd-mlnx.mk index 1328d0e0d0dd..37ffe1203f7d 100644 --- a/platform/mellanox/docker-syncd-mlnx.mk +++ b/platform/mellanox/docker-syncd-mlnx.mk @@ -21,6 +21,10 @@ include $(PLATFORM_PATH)/../template/docker-syncd-bullseye.mk $(DOCKER_SYNCD_BASE)_DEPENDS += $(SYNCD) $(PYTHON_SDK_API) $(MFT) +ifeq ($(ENABLE_ASAN), y) +$(DOCKER_SYNCD_BASE)_DEPENDS += $(SYNCD_DBG) +endif + $(DOCKER_SYNCD_BASE)_FILES += $(ISSU_VERSION_FILE) $(DOCKER_SYNCD_BASE)_DBG_DEPENDS += $(SYNCD_DBG) \ diff --git a/rules/docker-orchagent.mk b/rules/docker-orchagent.mk index 917fe0b13661..fed461290f4b 100644 --- a/rules/docker-orchagent.mk +++ b/rules/docker-orchagent.mk @@ -6,6 +6,10 @@ DOCKER_ORCHAGENT_DBG = $(DOCKER_ORCHAGENT_STEM)-$(DBG_IMAGE_MARK).gz $(DOCKER_ORCHAGENT)_DEPENDS += $(SWSS) +ifeq ($(ENABLE_ASAN), y) +$(DOCKER_ORCHAGENT)_DEPENDS += $(SWSS_DBG) +endif + $(DOCKER_ORCHAGENT)_DBG_DEPENDS = $($(DOCKER_SWSS_LAYER_BULLSEYE)_DBG_DEPENDS) $(DOCKER_ORCHAGENT)_DBG_DEPENDS += $(SWSS_DBG) \ $(LIBSWSSCOMMON_DBG) \ diff --git a/rules/syncd.mk b/rules/syncd.mk index 595e04671c30..2b7007d84d5b 100644 --- a/rules/syncd.mk +++ b/rules/syncd.mk @@ -21,12 +21,10 @@ $(SYNCD)_DEPENDS += $(LIBSWSSCOMMON_DEV) $(LIBTHRIFT_DEV) $(SYNCD)_DPKG_TARGET = binary-syncd-rpc endif -ifeq ($(INSTALL_DEBUG_TOOLS), y) SYNCD_DBG = syncd-dbg_1.0.0_$(CONFIGURED_ARCH).deb $(SYNCD_DBG)_DEPENDS += $(SYNCD) $(SYNCD_DBG)_RDEPENDS += $(SYNCD) $(eval $(call add_derived_package,$(SYNCD),$(SYNCD_DBG))) -endif ifeq ($(ENABLE_SYNCD_RPC),y) SYNCD_RPC_DBG = syncd-rpc-dbg_1.0.0_$(CONFIGURED_ARCH).deb From 7306d684113bd8dea8221433ee3ad74a78162c48 Mon Sep 17 00:00:00 2001 From: Yakiv Huryk <62013282+Yakiv-Huryk@users.noreply.github.com> Date: Tue, 31 May 2022 11:15:44 +0300 Subject: [PATCH 241/251] [build][asan] make dpkg cache asan-aware (#10750) Currently, the build with ASAN_ENABLE=y reuses the packages built with ASAN_ENABLE=n (and vice versa). To address this issue, ASAN_ENABLE is added to DEP_FLAGS for asan-enabled packages (docker-syncd-mlnx, syncd, docker-orchagent, swss). - Why I did it To make dpkg cache use/rebuild the packages for ASAN_ENABLE=y/n. - How I did it Added ASAN_ENABLE to the DEP_FLAGS for asan-enabled packages. - How to verify it Built with ASAN_ENABLE=y/n and checked the .flags .log files. Signed-off-by: Yakiv Huryk --- platform/mellanox/docker-syncd-mlnx.dep | 2 +- rules/docker-orchagent.dep | 2 +- rules/swss.dep | 2 +- rules/syncd.dep | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/platform/mellanox/docker-syncd-mlnx.dep b/platform/mellanox/docker-syncd-mlnx.dep index 659b09cec8f4..8f2ab723dd5c 100644 --- a/platform/mellanox/docker-syncd-mlnx.dep +++ b/platform/mellanox/docker-syncd-mlnx.dep @@ -6,7 +6,7 @@ DEP_FILES += $(SONIC_COMMON_BASE_FILES_LIST) DEP_FILES += $(shell git ls-files -- $(DPATH)) $(DOCKER_SYNCD_BASE)_CACHE_MODE := GIT_CONTENT_SHA -$(DOCKER_SYNCD_BASE)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST) +$(DOCKER_SYNCD_BASE)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST) $(ENABLE_ASAN) $(DOCKER_SYNCD_BASE)_DEP_FILES := $(DEP_FILES) $(eval $(call add_dbg_docker,$(DOCKER_SYNCD_BASE),$(DOCKER_SYNCD_BASE_DBG))) diff --git a/rules/docker-orchagent.dep b/rules/docker-orchagent.dep index 7aff4d0d9f23..a5fc67a65aa2 100644 --- a/rules/docker-orchagent.dep +++ b/rules/docker-orchagent.dep @@ -5,7 +5,7 @@ DEP_FILES += $(SONIC_COMMON_BASE_FILES_LIST) DEP_FILES += $(shell git ls-files $(DPATH)) $(DOCKER_ORCHAGENT)_CACHE_MODE := GIT_CONTENT_SHA -$(DOCKER_ORCHAGENT)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST) +$(DOCKER_ORCHAGENT)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST) $(ENABLE_ASAN) $(DOCKER_ORCHAGENT)_DEP_FILES := $(DEP_FILES) $(eval $(call add_dbg_docker,$(DOCKER_ORCHAGENT),$(DOCKER_ORCHAGENT_DBG))) diff --git a/rules/swss.dep b/rules/swss.dep index e57a9e7a6314..784d2ddd951e 100644 --- a/rules/swss.dep +++ b/rules/swss.dep @@ -5,7 +5,7 @@ DEP_FILES += $(SONIC_COMMON_BASE_FILES_LIST) SMDEP_FILES := $(addprefix $(SPATH)/,$(shell cd $(SPATH) && git ls-files)) $(SWSS)_CACHE_MODE := GIT_CONTENT_SHA -$(SWSS)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST) +$(SWSS)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST) $(ENABLE_ASAN) $(SWSS)_DEP_FILES := $(DEP_FILES) $(SWSS)_SMDEP_FILES := $(SMDEP_FILES) $(SWSS)_SMDEP_PATHS := $(SPATH) diff --git a/rules/syncd.dep b/rules/syncd.dep index d9f40a8a0210..fe0706ff9754 100644 --- a/rules/syncd.dep +++ b/rules/syncd.dep @@ -12,7 +12,7 @@ $(foreach path, $(SMDEP_PATHS), $(eval $(path) :=$(filter-out $(SMDEP_PATHS),$(a $(SYNCD)_CACHE_MODE := GIT_CONTENT_SHA -$(SYNCD)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST) +$(SYNCD)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST) $(ENABLE_ASAN) $(SYNCD)_DEP_FILES := $(DEP_FILES) $(SYNCD)_SMDEP_FILES := $(foreach path, $(SMDEP_PATHS), $($(path))) $(SYNCD)_SMDEP_PATHS := $(SMDEP_PATHS) From c9b27cde718de66e47d2bb82449ccfd3e052f7e8 Mon Sep 17 00:00:00 2001 From: Lukas Stockner Date: Tue, 31 May 2022 17:54:31 +0200 Subject: [PATCH 242/251] [swss] Clear VXLAN tunnel table from State DB on startup (#10822) * When reloading config after crashes, VTEP interfaces are sometimes not created since the tunnel still exists in the STATE_DB. * Adding VXLAN_TUNNEL_TABLE to the list of tables to be cleaned in swss.sh fixes the problem. --- files/scripts/swss.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/files/scripts/swss.sh b/files/scripts/swss.sh index 40acaa33c573..000790c6d051 100755 --- a/files/scripts/swss.sh +++ b/files/scripts/swss.sh @@ -176,7 +176,7 @@ start() { $SONIC_DB_CLI GB_ASIC_DB FLUSHDB $SONIC_DB_CLI GB_COUNTERS_DB FLUSHDB $SONIC_DB_CLI RESTAPI_DB FLUSHDB - clean_up_tables STATE_DB "'PORT_TABLE*', 'MGMT_PORT_TABLE*', 'VLAN_TABLE*', 'VLAN_MEMBER_TABLE*', 'LAG_TABLE*', 'LAG_MEMBER_TABLE*', 'INTERFACE_TABLE*', 'MIRROR_SESSION*', 'VRF_TABLE*', 'FDB_TABLE*', 'FG_ROUTE_TABLE*', 'BUFFER_POOL*', 'BUFFER_PROFILE*', 'MUX_CABLE_TABLE*', 'ADVERTISE_NETWORK_TABLE*'" + clean_up_tables STATE_DB "'PORT_TABLE*', 'MGMT_PORT_TABLE*', 'VLAN_TABLE*', 'VLAN_MEMBER_TABLE*', 'LAG_TABLE*', 'LAG_MEMBER_TABLE*', 'INTERFACE_TABLE*', 'MIRROR_SESSION*', 'VRF_TABLE*', 'FDB_TABLE*', 'FG_ROUTE_TABLE*', 'BUFFER_POOL*', 'BUFFER_PROFILE*', 'MUX_CABLE_TABLE*', 'ADVERTISE_NETWORK_TABLE*', 'VXLAN_TUNNEL_TABLE*'" $SONIC_DB_CLI APPL_STATE_DB FLUSHDB fi From b4bc05126716ffe500086d199114ff8270d8c858 Mon Sep 17 00:00:00 2001 From: Alexander Allen Date: Tue, 31 May 2022 12:59:52 -0400 Subject: [PATCH 243/251] Add logging for slave container builds (#10628) #### Why I did it No logs currently exist for sonic-save-X containers which makes it difficult to debug. #### How I did it Altered Makefile.work to create logs in the sonic-slave-X folder while still displaying the log to the screen to prevent interfering with any existing tooling. #### How to verify it Do `make configure` and verify that logs show up in `sonic-slave-buster/` and `sonic-slave-bullseye/` #### Description for the changelog Add logging for slave container builds #### A picture of a cute animal (not mandatory but encouraged) TBD --- .gitignore | 3 +++ Makefile.work | 10 ++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 49861324aa1d..5f6f41b1a09c 100644 --- a/.gitignore +++ b/.gitignore @@ -22,6 +22,9 @@ target/ *.img *.pyc +# Slave docker log files +sonic-slave*/*.log + # Autogenerated Dockerfiles sonic-slave*/Dockerfile sonic-slave*/Dockerfile.user diff --git a/Makefile.work b/Makefile.work index 9fe410a2ef48..c1a6555cc5bc 100644 --- a/Makefile.work +++ b/Makefile.work @@ -294,12 +294,18 @@ endif endif +SPLIT_LOG = | tee + +DOCKER_BASE_LOG = $(SLAVE_DIR)/$(SLAVE_BASE_IMAGE)_$(SLAVE_BASE_TAG).log +DOCKER_LOG = $(SLAVE_DIR)/$(SLAVE_IMAGE)_$(SLAVE_TAG).log + + DOCKER_BASE_BUILD = docker build --no-cache \ -t $(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG) \ --build-arg http_proxy=$(http_proxy) \ --build-arg https_proxy=$(https_proxy) \ --build-arg no_proxy=$(no_proxy) \ - $(SLAVE_DIR) + $(SLAVE_DIR) $(SPLIT_LOG) $(DOCKER_BASE_LOG) DOCKER_BASE_PULL = docker pull \ $(REGISTRY_SERVER):$(REGISTRY_PORT)/$(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG) @@ -312,7 +318,7 @@ DOCKER_BUILD = docker build --no-cache \ --build-arg slave_base_tag_ref=$(SLAVE_BASE_TAG) \ -t $(SLAVE_IMAGE):$(SLAVE_TAG) \ -f $(SLAVE_DIR)/Dockerfile.user \ - $(SLAVE_DIR) + $(SLAVE_DIR) $(SPLIT_LOG) $(DOCKER_LOG) SONIC_BUILD_INSTRUCTION := make \ -f slave.mk \ From 299e67a318ec65d1d4a060e8386477552cee29a9 Mon Sep 17 00:00:00 2001 From: Samuel Angebault Date: Tue, 31 May 2022 13:59:35 -0700 Subject: [PATCH 244/251] [Arista] Update platform library (#10922) - Implement Pcie plugin for chassis - Implement set_admin_status for chassis modules - Fix phy declaration for phy-credo --- platform/barefoot/sonic-platform-modules-arista | 2 +- platform/broadcom/sonic-platform-modules-arista | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/platform/barefoot/sonic-platform-modules-arista b/platform/barefoot/sonic-platform-modules-arista index 6e6f1f904f28..e4940f0937c1 160000 --- a/platform/barefoot/sonic-platform-modules-arista +++ b/platform/barefoot/sonic-platform-modules-arista @@ -1 +1 @@ -Subproject commit 6e6f1f904f28df7fa06c169a71a1d77e739f431a +Subproject commit e4940f0937c1425c5ba8248e524a5d753c223aca diff --git a/platform/broadcom/sonic-platform-modules-arista b/platform/broadcom/sonic-platform-modules-arista index 6e6f1f904f28..e4940f0937c1 160000 --- a/platform/broadcom/sonic-platform-modules-arista +++ b/platform/broadcom/sonic-platform-modules-arista @@ -1 +1 @@ -Subproject commit 6e6f1f904f28df7fa06c169a71a1d77e739f431a +Subproject commit e4940f0937c1425c5ba8248e524a5d753c223aca From 96954f0134cc1b134fdbeac1b51322433d9e2b8a Mon Sep 17 00:00:00 2001 From: Hua Liu <58683130+liuh-80@users.noreply.github.com> Date: Wed, 1 Jun 2022 08:05:53 +0800 Subject: [PATCH 245/251] [swsscommon] Add c++ version sonic-db-cli from sonic-swss-common (#10825) #### Why I did it Fix sonic-db-cli high CPU usage on SONiC startup issue: https://github.com/Azure/sonic-buildimage/issues/10218 ETA of this issue will be 2022/05/31 #### How I did it Re-write sonic-cli with c++ in sonic-swss-common: https://github.com/Azure/sonic-swss-common/pull/607 Modify swss-common rules and slave.mk to install c++ version sonic-db-cli. #### How to verify it Pass all E2E test scenario. #### Which release branch to backport (provide reason below if selected) - [ ] 201811 - [ ] 201911 - [ ] 202006 - [ ] 202012 - [ ] 202106 - [ ] 202111 #### Description for the changelog Build and install c++ version sonic-db-cli from swss-common. #### Link to config_db schema for YANG module changes #### A picture of a cute animal (not mandatory but encouraged) --- files/build_templates/sonic_debian_extension.j2 | 4 ++++ rules/docker-config-engine-bullseye.mk | 3 ++- rules/docker-config-engine-buster.mk | 3 ++- rules/docker-config-engine-stretch.mk | 4 +++- rules/docker-config-engine.mk | 2 ++ rules/docker-database.mk | 3 +++ rules/swss-common.mk | 3 +++ slave.mk | 1 + src/sonic-swss-common | 2 +- 9 files changed, 21 insertions(+), 4 deletions(-) diff --git a/files/build_templates/sonic_debian_extension.j2 b/files/build_templates/sonic_debian_extension.j2 index 659921d50aa9..fc66c74f8655 100644 --- a/files/build_templates/sonic_debian_extension.j2 +++ b/files/build_templates/sonic_debian_extension.j2 @@ -312,6 +312,10 @@ sudo dpkg --root=$FILESYSTEM_ROOT -i {{deb}} || sudo LANG=C DEBIAN_FRONTEND=noni {% endfor %} {% endif %} +# Install sonic-db-cli +sudo dpkg --root=$FILESYSTEM_ROOT -i $debs_path/sonic-db-cli_*.deb || \ + sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install -f + # Install custom-built monit package and SONiC configuration files sudo dpkg --root=$FILESYSTEM_ROOT -i $debs_path/monit_*.deb || \ sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install -f diff --git a/rules/docker-config-engine-bullseye.mk b/rules/docker-config-engine-bullseye.mk index eae426a111df..0c4aad67a8d7 100644 --- a/rules/docker-config-engine-bullseye.mk +++ b/rules/docker-config-engine-bullseye.mk @@ -7,7 +7,8 @@ $(DOCKER_CONFIG_ENGINE_BULLSEYE)_DEPENDS += $(LIBSWSSCOMMON) \ $(LIBYANG) \ $(LIBYANG_CPP) \ $(LIBYANG_PY3) \ - $(PYTHON3_SWSSCOMMON) + $(PYTHON3_SWSSCOMMON) \ + $(SONIC_DB_CLI) $(DOCKER_CONFIG_ENGINE_BULLSEYE)_PYTHON_WHEELS += $(SWSSSDK_PY3) $(DOCKER_CONFIG_ENGINE_BULLSEYE)_PYTHON_WHEELS += $(SONIC_PY_COMMON_PY3) \ $(SONIC_YANG_MGMT_PY3) \ diff --git a/rules/docker-config-engine-buster.mk b/rules/docker-config-engine-buster.mk index f3df95c36d74..079fc6dd074c 100644 --- a/rules/docker-config-engine-buster.mk +++ b/rules/docker-config-engine-buster.mk @@ -7,7 +7,8 @@ $(DOCKER_CONFIG_ENGINE_BUSTER)_DEPENDS += $(LIBSWSSCOMMON) \ $(LIBYANG) \ $(LIBYANG_CPP) \ $(LIBYANG_PY3) \ - $(PYTHON3_SWSSCOMMON) + $(PYTHON3_SWSSCOMMON) \ + $(SONIC_DB_CLI) $(DOCKER_CONFIG_ENGINE_BUSTER)_PYTHON_WHEELS += $(SWSSSDK_PY3) $(DOCKER_CONFIG_ENGINE_BUSTER)_PYTHON_WHEELS += $(SONIC_PY_COMMON_PY3) \ $(SONIC_YANG_MGMT_PY3) \ diff --git a/rules/docker-config-engine-stretch.mk b/rules/docker-config-engine-stretch.mk index 7e90c1587a9d..8644102abed3 100644 --- a/rules/docker-config-engine-stretch.mk +++ b/rules/docker-config-engine-stretch.mk @@ -2,7 +2,9 @@ DOCKER_CONFIG_ENGINE_STRETCH = docker-config-engine-stretch.gz $(DOCKER_CONFIG_ENGINE_STRETCH)_PATH = $(DOCKERS_PATH)/docker-config-engine-stretch -$(DOCKER_CONFIG_ENGINE_STRETCH)_DEPENDS += $(LIBSWSSCOMMON) $(PYTHON_SWSSCOMMON) +$(DOCKER_CONFIG_ENGINE_STRETCH)_DEPENDS += $(LIBSWSSCOMMON) \ + $(PYTHON_SWSSCOMMON) \ + $(SONIC_DB_CLI) $(DOCKER_CONFIG_ENGINE_STRETCH)_PYTHON_WHEELS += $(SWSSSDK_PY2) $(DOCKER_CONFIG_ENGINE_STRETCH)_PYTHON_WHEELS += $(SONIC_PY_COMMON_PY2) $(DOCKER_CONFIG_ENGINE_STRETCH)_PYTHON_WHEELS += $(SONIC_CONFIG_ENGINE_PY2) diff --git a/rules/docker-config-engine.mk b/rules/docker-config-engine.mk index 518e73415a6b..3923a970b4d6 100644 --- a/rules/docker-config-engine.mk +++ b/rules/docker-config-engine.mk @@ -2,6 +2,8 @@ DOCKER_CONFIG_ENGINE = docker-config-engine.gz $(DOCKER_CONFIG_ENGINE)_PATH = $(DOCKERS_PATH)/docker-config-engine +$(DOCKER_CONFIG_ENGINE)_DEPENDS += $(LIBSWSSCOMMON) \ + $(SONIC_DB_CLI) $(DOCKER_CONFIG_ENGINE)_PYTHON_WHEELS += $(SWSSSDK_PY2) $(DOCKER_CONFIG_ENGINE)_PYTHON_WHEELS += $(SONIC_PY_COMMON_PY2) $(DOCKER_CONFIG_ENGINE)_PYTHON_WHEELS += $(SONIC_CONFIG_ENGINE_PY2) diff --git a/rules/docker-database.mk b/rules/docker-database.mk index 707adc2d64cb..b66583b9bd2c 100644 --- a/rules/docker-database.mk +++ b/rules/docker-database.mk @@ -4,6 +4,9 @@ DOCKER_DATABASE_STEM = docker-database DOCKER_DATABASE = $(DOCKER_DATABASE_STEM).gz DOCKER_DATABASE_DBG = $(DOCKER_DATABASE_STEM)-$(DBG_IMAGE_MARK).gz +$(DOCKER_DATABASE)_DEPENDS += $(LIBSWSSCOMMON) \ + $(SONIC_DB_CLI) + $(DOCKER_DATABASE)_PATH = $(DOCKERS_PATH)/$(DOCKER_DATABASE_STEM) $(DOCKER_DATABASE)_DBG_DEPENDS = $($(DOCKER_CONFIG_ENGINE_BULLSEYE)_DBG_DEPENDS) diff --git a/rules/swss-common.mk b/rules/swss-common.mk index bbc37a8d632f..9ab49b672b6c 100644 --- a/rules/swss-common.mk +++ b/rules/swss-common.mk @@ -32,6 +32,9 @@ $(LIBSWSSCOMMON_DBG)_DEPENDS += $(LIBSWSSCOMMON) $(LIBSWSSCOMMON_DBG)_RDEPENDS += $(LIBSWSSCOMMON) $(eval $(call add_derived_package,$(LIBSWSSCOMMON),$(LIBSWSSCOMMON_DBG))) +SONIC_DB_CLI = sonic-db-cli_$(LIBSWSSCOMMON_VERSION)_$(CONFIGURED_ARCH).deb +$(eval $(call add_derived_package,$(LIBSWSSCOMMON),$(SONIC_DB_CLI))) + # The .c, .cpp, .h & .hpp files under src/{$DBG_SRC_ARCHIVE list} # are archived into debug one image to facilitate debugging. # diff --git a/slave.mk b/slave.mk index 7b91ba0384c0..c092ea0d2730 100644 --- a/slave.mk +++ b/slave.mk @@ -1048,6 +1048,7 @@ $(addprefix $(TARGET_PATH)/, $(SONIC_INSTALLERS)) : $(TARGET_PATH)/% : \ $(OPENSSH_SERVER) \ $(PYTHON_SWSSCOMMON) \ $(PYTHON3_SWSSCOMMON) \ + $(SONIC_DB_CLI) \ $(SONIC_UTILITIES_DATA) \ $(SONIC_HOST_SERVICES_DATA) \ $(BASH) \ diff --git a/src/sonic-swss-common b/src/sonic-swss-common index 7ae22be4c1bf..33afb9bee18e 160000 --- a/src/sonic-swss-common +++ b/src/sonic-swss-common @@ -1 +1 @@ -Subproject commit 7ae22be4c1bf8dd7c5f697cdf2faf7317a02ba14 +Subproject commit 33afb9bee18ea116665f231b396cab32258c98d8 From 3eea73cf3fcecfef4c30a8759e7409406b058ab0 Mon Sep 17 00:00:00 2001 From: roman_savchuk Date: Wed, 1 Jun 2022 15:31:41 +0300 Subject: [PATCH 246/251] [BFN] Update BFN sdk to SAI 1.10.2 (#10821) --- platform/barefoot/bfn-platform.mk | 2 +- platform/barefoot/bfn-sai.mk | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/platform/barefoot/bfn-platform.mk b/platform/barefoot/bfn-platform.mk index f12bbaa8a966..a35795dda6c2 100644 --- a/platform/barefoot/bfn-platform.mk +++ b/platform/barefoot/bfn-platform.mk @@ -1,4 +1,4 @@ -BFN_PLATFORM = bfnplatform_20220408_sai_1.9.1_deb10.deb +BFN_PLATFORM = bfnplatform_20220512_sai_1.10.2_deb10.deb $(BFN_PLATFORM)_URL = "https://github.com/barefootnetworks/sonic-release-pkgs/raw/dev/$(BFN_PLATFORM)" SONIC_ONLINE_DEBS += $(BFN_PLATFORM) diff --git a/platform/barefoot/bfn-sai.mk b/platform/barefoot/bfn-sai.mk index a0a1d2348dea..13f2800c0b9a 100644 --- a/platform/barefoot/bfn-sai.mk +++ b/platform/barefoot/bfn-sai.mk @@ -1,4 +1,4 @@ -BFN_SAI = bfnsdk_20220408_sai_1.9.1_deb10.deb +BFN_SAI = bfnsdk_20220512_sai_1.10.2_deb10.deb $(BFN_SAI)_URL = "https://github.com/barefootnetworks/sonic-release-pkgs/raw/dev/$(BFN_SAI)" $(BFN_SAI)_DEPENDS += $(LIBNL_GENL3_DEV) From 0552d6b1722f51c028b0c69d1b3d54f0b0e4268f Mon Sep 17 00:00:00 2001 From: xumia <59720581+xumia@users.noreply.github.com> Date: Thu, 2 Jun 2022 15:35:17 +0800 Subject: [PATCH 247/251] Support symcrypt fips config for aboot/uboot (#10729) Why I did it Support symcrypt fips config for aboot/uboot --- build_image.sh | 8 ++++++++ files/Aboot/boot0.j2 | 2 +- installer/arm64/install.sh | 3 +++ installer/armhf/install.sh | 3 +++ platform/centec-arm64/platform.conf | 6 ++++-- platform/marvell-arm64/platform.conf | 2 +- platform/marvell-armhf/platform.conf | 2 +- 7 files changed, 21 insertions(+), 5 deletions(-) diff --git a/build_image.sh b/build_image.sh index 71351dbfe7e0..0963ff4a4843 100755 --- a/build_image.sh +++ b/build_image.sh @@ -200,6 +200,14 @@ elif [ "$IMAGE_TYPE" = "aboot" ]; then generate_device_list ".platforms_asic" zip -g $OUTPUT_ABOOT_IMAGE .platforms_asic + if [ "$ENABLE_FIPS" = "y" ]; then + echo "sonic_fips=1" > kernel-cmdline + else + echo "sonic_fips=0" > kernel-cmdline + fi + zip -g $OUTPUT_ABOOT_IMAGE kernel-cmdline + rm kernel-cmdline + zip -g $OUTPUT_ABOOT_IMAGE $ABOOT_BOOT_IMAGE rm $ABOOT_BOOT_IMAGE if [ "$SONIC_ENABLE_IMAGE_SIGNATURE" = "y" ]; then diff --git a/files/Aboot/boot0.j2 b/files/Aboot/boot0.j2 index 5fe64b6884a4..ad7540df0946 100644 --- a/files/Aboot/boot0.j2 +++ b/files/Aboot/boot0.j2 @@ -86,7 +86,7 @@ installer_image_path="$image_path/$installer_image" boot_config="$target_path/boot-config" -cmdline_allowlist="crashkernel hwaddr_ma1" +cmdline_allowlist="crashkernel hwaddr_ma1 sonic_fips" # for backward compatibility with the sonic_upgrade= behavior install="${install:-${sonic_upgrade:-}}" diff --git a/installer/arm64/install.sh b/installer/arm64/install.sh index dee3ceec9038..445b2007faeb 100755 --- a/installer/arm64/install.sh +++ b/installer/arm64/install.sh @@ -181,6 +181,9 @@ if [ "$install_env" = "onie" ]; then fi fi +extra_cmdline_linux=%%EXTRA_CMDLINE_LINUX%% +echo "EXTRA_CMDLINE_LINUX=$extra_cmdline_linux" + # Update Bootloader Menu with installed image bootloader_menu_config diff --git a/installer/armhf/install.sh b/installer/armhf/install.sh index 9ade40d5149e..0dd6e48a08e7 100755 --- a/installer/armhf/install.sh +++ b/installer/armhf/install.sh @@ -181,6 +181,9 @@ if [ "$install_env" = "onie" ]; then fi fi +extra_cmdline_linux=%%EXTRA_CMDLINE_LINUX%% +echo "EXTRA_CMDLINE_LINUX=$extra_cmdline_linux" + # Update Bootloader Menu with installed image bootloader_menu_config diff --git a/platform/centec-arm64/platform.conf b/platform/centec-arm64/platform.conf index 39dc4b70239a..09cf9be6e8cc 100755 --- a/platform/centec-arm64/platform.conf +++ b/platform/centec-arm64/platform.conf @@ -16,9 +16,10 @@ mount_partition() { bootloader_menu_config() { if [ "$install_env" = "onie" ]; then + fw_setenv -f linuxargs "${extra_cmdline_linux}" fw_setenv -f nos_bootcmd "test -n \$boot_once && setenv do_boot_once \$boot_once && setenv boot_once && saveenv && run do_boot_once; run boot_next" - fw_setenv -f sonic_image_1 "ext4load mmc 0:1 \$loadaddr \$sonic_dir_1/boot/sonic_arm64.fit && setenv bootargs quiet console=\$consoledev,\$baudrate root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 loopfstype=squashfs loop=\$sonic_dir_1/fs.squashfs systemd.unified_cgroup_hierarchy=0 && bootm \$loadaddr" + fw_setenv -f sonic_image_1 "ext4load mmc 0:1 \$loadaddr \$sonic_dir_1/boot/sonic_arm64.fit && setenv bootargs quiet console=\$consoledev,\$baudrate root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 loopfstype=squashfs loop=\$sonic_dir_1/fs.squashfs systemd.unified_cgroup_hierarchy=0 \${linuxargs} && bootm \$loadaddr" fw_setenv -f sonic_image_2 "NONE" fw_setenv -f sonic_dir_1 $image_dir fw_setenv -f sonic_dir_2 "NONE" @@ -37,9 +38,10 @@ bootloader_menu_config() { fi done + fw_setenv linuxargs "${extra_cmdline_linux}" fw_setenv nos_bootcmd "test -n \$boot_once && setenv do_boot_once \$boot_once && setenv boot_once && saveenv && run do_boot_once; run boot_next" - fw_setenv sonic_image_$idx "ext4load mmc 0:1 \$loadaddr \$sonic_dir_$idx/boot/sonic_arm64.fit && setenv bootargs quiet console=\$consoledev,\$baudrate root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 loopfstype=squashfs loop=\$sonic_dir_$idx/fs.squashfs systemd.unified_cgroup_hierarchy=0 && bootm \$loadaddr" + fw_setenv sonic_image_$idx "ext4load mmc 0:1 \$loadaddr \$sonic_dir_$idx/boot/sonic_arm64.fit && setenv bootargs quiet console=\$consoledev,\$baudrate root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 loopfstype=squashfs loop=\$sonic_dir_$idx/fs.squashfs systemd.unified_cgroup_hierarchy=0 \${linuxargs} && bootm \$loadaddr" fw_setenv sonic_dir_$idx $image_dir fw_setenv sonic_version_$idx `echo $image_dir | sed "s/^image-/SONiC-OS-/g"` diff --git a/platform/marvell-arm64/platform.conf b/platform/marvell-arm64/platform.conf index 8ecdfa317425..4ef62d36b87e 100644 --- a/platform/marvell-arm64/platform.conf +++ b/platform/marvell-arm64/platform.conf @@ -108,7 +108,7 @@ prepare_boot_menu() { BORDER='echo "---------------------------------------------------";echo;' fw_setenv ${FW_ARG} print_menu $BORDER $BOOT1 $BOOT2 $BOOT3 $BORDER > /dev/null - fw_setenv ${FW_ARG} linuxargs "net.ifnames=0 loopfstype=squashfs loop=$image_dir/$FILESYSTEM_SQUASHFS systemd.unified_cgroup_hierarchy=0 varlog_size=$VAR_LOG" > /dev/null + fw_setenv ${FW_ARG} linuxargs "net.ifnames=0 loopfstype=squashfs loop=$image_dir/$FILESYSTEM_SQUASHFS systemd.unified_cgroup_hierarchy=0 varlog_size=$VAR_LOG ${extra_cmdline_linux}" > /dev/null fw_setenv ${FW_ARG} linuxargs_old "net.ifnames=0 loopfstype=squashfs loop=$image_dir_old/$FILESYSTEM_SQUASHFS systemd.unified_cgroup_hierarchy=0 varlog_size=$VAR_LOG" > /dev/null sonic_bootargs_old='setenv bootargs root='$demo_dev' rw rootwait rootfstype=ext4 panic=1 console=ttyS0,115200 ${othbootargs} ${mtdparts} ${linuxargs_old}' fw_setenv ${FW_ARG} sonic_bootargs_old $sonic_bootargs_old > /dev/null || true diff --git a/platform/marvell-armhf/platform.conf b/platform/marvell-armhf/platform.conf index 6dd8e238f98e..df71c5d1b128 100644 --- a/platform/marvell-armhf/platform.conf +++ b/platform/marvell-armhf/platform.conf @@ -147,7 +147,7 @@ prepare_boot_menu() { BORDER='echo "---------------------------------------------------";echo;' fw_setenv ${FW_ARG} print_menu $BORDER $BOOT1 $BOOT2 $BOOT3 $BORDER > /dev/null - fw_setenv ${FW_ARG} linuxargs "net.ifnames=0 loopfstype=squashfs loop=$image_dir/$FILESYSTEM_SQUASHFS systemd.unified_cgroup_hierarchy=0 varlog_size=$VAR_LOG loglevel=4" > /dev/null + fw_setenv ${FW_ARG} linuxargs "net.ifnames=0 loopfstype=squashfs loop=$image_dir/$FILESYSTEM_SQUASHFS systemd.unified_cgroup_hierarchy=0 varlog_size=$VAR_LOG loglevel=4 ${extra_cmdline_linux}" > /dev/null fw_setenv ${FW_ARG} linuxargs_old "net.ifnames=0 loopfstype=squashfs loop=$image_dir_old/$FILESYSTEM_SQUASHFS systemd.unified_cgroup_hierarchy=0 varlog_size=$VAR_LOG loglevel=4" > /dev/null # Set boot configs From f0b60e935a333696333ae01d684473e9726aca31 Mon Sep 17 00:00:00 2001 From: Oleksandr Ivantsiv Date: Fri, 17 Jun 2022 17:59:28 +0300 Subject: [PATCH 248/251] [linux-kernel, swss, sairedis] submodule update --- src/sonic-linux-kernel | 2 +- src/sonic-sairedis | 2 +- src/sonic-swss | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/sonic-linux-kernel b/src/sonic-linux-kernel index d21cd38bf4aa..cefc649e0979 160000 --- a/src/sonic-linux-kernel +++ b/src/sonic-linux-kernel @@ -1 +1 @@ -Subproject commit d21cd38bf4aaa8b3083778925982e1f507ee8f61 +Subproject commit cefc649e09795d8e3ac4a641155332de4d160d88 diff --git a/src/sonic-sairedis b/src/sonic-sairedis index cc69a0c0be5c..f18f40f4ad3a 160000 --- a/src/sonic-sairedis +++ b/src/sonic-sairedis @@ -1 +1 @@ -Subproject commit cc69a0c0be5cf6489f507ee2f80d8f862213e8c2 +Subproject commit f18f40f4ad3a798e8ee51509accee63e21b775ed diff --git a/src/sonic-swss b/src/sonic-swss index 910bfd4d1778..a65d74838738 160000 --- a/src/sonic-swss +++ b/src/sonic-swss @@ -1 +1 @@ -Subproject commit 910bfd4d17782a059daf2d81deb87673ae6ca58e +Subproject commit a65d7483873835ec36a057843ae5dc49957a1ad8 From 48b42f7ae3c260e2c2bf2c6c33f8071e36ca03f6 Mon Sep 17 00:00:00 2001 From: Oleksandr Ivantsiv Date: Sun, 19 Jun 2022 12:47:06 +0300 Subject: [PATCH 249/251] [bluefield] submodule update. - Update sai-dpu to version "0.0.2.1". --- platform/nvidia-bluefield/dpu-sai/sai-dpu | 2 +- platform/nvidia-bluefield/recipes/dpu-sai.mk | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/platform/nvidia-bluefield/dpu-sai/sai-dpu b/platform/nvidia-bluefield/dpu-sai/sai-dpu index 36c00cc2ca0d..7401a22005a4 160000 --- a/platform/nvidia-bluefield/dpu-sai/sai-dpu +++ b/platform/nvidia-bluefield/dpu-sai/sai-dpu @@ -1 +1 @@ -Subproject commit 36c00cc2ca0dee5ac111471f3372485cf5239517 +Subproject commit 7401a22005a4c54db5b76fe7b4a264e51515705f diff --git a/platform/nvidia-bluefield/recipes/dpu-sai.mk b/platform/nvidia-bluefield/recipes/dpu-sai.mk index d54e95f52d73..76fc6367833a 100644 --- a/platform/nvidia-bluefield/recipes/dpu-sai.mk +++ b/platform/nvidia-bluefield/recipes/dpu-sai.mk @@ -15,7 +15,7 @@ # limitations under the License. # -DPU_SAI_VERSION = SAIRel0.0.2.0 +DPU_SAI_VERSION = SAIRel0.0.2.1 export DPU_SAI_VERSION From 09f082bc395eb21680a81a3c114f2679d0c2bb90 Mon Sep 17 00:00:00 2001 From: Oleksandr Ivantsiv Date: Sun, 19 Jun 2022 12:50:04 +0300 Subject: [PATCH 250/251] [bluefield] Update syncd dockerfile template according to infrastructure changes. --- platform/nvidia-bluefield/docker-syncd-bluefield/Dockerfile.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform/nvidia-bluefield/docker-syncd-bluefield/Dockerfile.j2 b/platform/nvidia-bluefield/docker-syncd-bluefield/Dockerfile.j2 index 131fff55ba38..356b42fa4cc5 100644 --- a/platform/nvidia-bluefield/docker-syncd-bluefield/Dockerfile.j2 +++ b/platform/nvidia-bluefield/docker-syncd-bluefield/Dockerfile.j2 @@ -16,7 +16,7 @@ ## {% from "dockers/dockerfile-macros.j2" import install_debian_packages, install_python_wheels, copy_files %} -FROM docker-config-engine-bullseye +FROM docker-config-engine-bullseye-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} ARG docker_container_name From 17c3067997f79a957015fec94d8a2d235ad16b14 Mon Sep 17 00:00:00 2001 From: Oleksandr Ivantsiv Date: Sun, 19 Jun 2022 12:59:18 +0300 Subject: [PATCH 251/251] [sairedis] submodule update - Update SAI to v1.10.2 --- src/sonic-sairedis | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-sairedis b/src/sonic-sairedis index f18f40f4ad3a..fe54c2e66b8e 160000 --- a/src/sonic-sairedis +++ b/src/sonic-sairedis @@ -1 +1 @@ -Subproject commit f18f40f4ad3a798e8ee51509accee63e21b775ed +Subproject commit fe54c2e66b8e5d34532f8c5c143798d526369a9e