aristanetworks / openmgmt

Documentation and examples for using open network management tools such as OpenConfig
https://aristanetworks.github.io/openmgmt/
Apache License 2.0
68 stars 32 forks source link

Issue with Generating Python Bindings Using –deviation Flag #146

Open ndmitri opened 1 month ago

ndmitri commented 1 month ago

Hello,

I am encountering an issue when attempting to generate Python bindings using pyangbind with the --deviation flag. The command runs without errors when generating the tree output, but fails during the binding generation step.

Environment

pyang version: 2.6.1 pyangbind version: 0.8.5 Python version: 3.11.9 Operating System: Ubuntu 22.04.2 LTS

Steps to Reproduce

  1. Generate Tree Output: This command runs without any errors and produces the correct tree output:
pyang -V -p ./EOS-4.22.1F -f tree --strict \
  --deviation ./EOS-4.22.1F/arista-intf-deviations.yang \
  --deviation ./EOS-4.22.1F/arista-intf-augments.yang \
  ./EOS-4.22.1F/openconfig-interfaces.yang
  1. Generate Python Bindings: This command fails with errors:
    pyang -V -p ./EOS-4.22.1F -f pybind --strict \
    --plugindir ~/.pyang/plugins \
    --deviation ./EOS-4.22.1F/arista-intf-deviations.yang \
    --deviation ./EOS-4.22.1F/arista-intf-augments.yang \
    -o oc-interfaces.py \
    ./EOS-4.22.1F/openconfig-interfaces.yang

Error Message

Here is the error message I receive when attempting to generate the bindings:

# module search path: ./EOS-4.22.1F:.:/home/ubuntu/.cache/pypoetry/virtualenvs/eos-py-lKpwrY1E-py3.11/share/yang/modules
# read ./EOS-4.22.1F/openconfig-interfaces.yang (CL)
# read EOS-4.22.1F/ietf-interfaces.yang
# read /home/ubuntu/.cache/pypoetry/virtualenvs/eos-py-lKpwrY1E-py3.11/share/yang/modules/ietf/ietf-interfaces.yang
# read EOS-4.22.1F/ietf-yang-types.yang
# read /home/ubuntu/.cache/pypoetry/virtualenvs/eos-py-lKpwrY1E-py3.11/share/yang/modules/ietf/ietf-yang-types.yang
# read EOS-4.22.1F/openconfig-yang-types.yang
# read EOS-4.22.1F/openconfig-extensions.yang
# read EOS-4.22.1F/openconfig-types.yang
# READ EOS-4.22.1F/openconfig-interfaces.yang
# read EOS-4.22.1F/openconfig-if-ethernet.yang
# read EOS-4.22.1F/iana-if-type.yang
# read /home/ubuntu/.cache/pypoetry/virtualenvs/eos-py-lKpwrY1E-py3.11/share/yang/modules/iana/iana-if-type.yang
# read EOS-4.22.1F/openconfig-if-aggregate.yang
# read EOS-4.22.1F/openconfig-if-types.yang
# read EOS-4.22.1F/openconfig-vlan.yang
# read EOS-4.22.1F/openconfig-vlan-types.yang
# read EOS-4.22.1F/openconfig-if-ip.yang
# read EOS-4.22.1F/openconfig-inet-types.yang
# read EOS-4.22.1F/openconfig-if-tunnel.yang
./EOS-4.22.1F/arista-intf-augments.yang:159: warning: node "openconfig-interfaces::type" is not found in "openconfig-vlan::config"
./EOS-4.22.1F/arista-intf-augments.yang:169: warning: node "openconfig-interfaces::type" is not found in "openconfig-vlan::config"
EOS-4.22.1F/openconfig-if-aggregate.yang:205: warning: node "openconfig-interfaces::state" is config false and is not part of the accessible tree
EOS-4.22.1F/openconfig-if-ethernet.yang:427: warning: node "openconfig-interfaces::state" is config false and is not part of the accessible tree
INFO: encountered (<pyang.error.Position object at 0x7f8917312840>, 'XPATH_NODE_NOT_FOUND1', ('openconfig-interfaces', 'type', 'openconfig-vlan', 'config'))
FATAL: pyangbind cannot build module that pyang has found errors with.

Request

I am seeking assistance in understanding why the pyangbind command fails despite no errors being reported in the tree validation step. Any insights or guidance on how to resolve this issue would be greatly appreciated.

Thank you for your help!

noredistribution commented 1 month ago

hi @ndmitri The issue is that you are not loading all the dependencies, in your case the ietf types are missing so you also need to load ietf-interfaces.yang,iana-if-type.yang,ietf-yang-types.yang and then it'll work

basically you need to do something like this

get all yang files including 3rd party ones:

git clone https://github.com/openconfig/public.git
cp public/release/models/*.yang yang_modules/.
cp -R public/release/models/*/*.yang yang_modules/.
cp public/third_party/ietf/*.yang yang_modules/.

gen tree output:

pyang -V -p ./EOS-4.32.1F -f tree --strict   \
   --deviation ./EOS-4.32.1F/release/openconfig/models/interfaces/arista-intf-deviations.yang   \
   --deviation ./EOS-4.32.1F/release/openconfig/models/interfaces/arista-intf-augments.yang   \
   ./EOS-4.32.1F/openconfig/public/release/models/interfaces/openconfig-interfaces.yang

Generate Python Bindings

pyang -V -p ./EOS-4.32.1F -f pybind --strict   \
   --plugindir /home/tamas/.local/lib/python3.12/site-packages/pyangbind/plugin   \
   --deviation ./EOS-4.32.1F/release/openconfig/models/interfaces/arista-intf-deviations.yang   \
   --deviation ./EOS-4.32.1F/release/openconfig/models/interfaces/arista-intf-augments.yang   \
   -o oc-interfaces.py   ./EOS-4.32.1F/openconfig/public/release/models/interfaces/openconfig-interfaces.yang \
 ../yang_modules/ietf-interfaces.yang ../yang_modules/iana-if-type.yang ../yang_modules/ietf-yang-types.yang

HTH!

ndmitri commented 1 month ago

@noredistribution,

I tried following your steps and for the EOS-4.32.1F release a get a different error.

pyang -V -p ./EOS-4.32.1F -f pybind --strict   \
   --plugindir ~/.pyang/plugins \
   --deviation ./EOS-4.32.1F/release/openconfig/models/interfaces/arista-intf-deviations.yang   \
   --deviation ./EOS-4.32.1F/release/openconfig/models/interfaces/arista-intf-augments.yang   \
   -o oc-interfaces.py   ./EOS-4.32.1F/openconfig/public/release/models/interfaces/openconfig-interfaces.yang \
 ./yang_modules/ietf-interfaces.yang ./yang_modules/iana-if-type.yang ./yang_modules/ietf-yang-types.yang
# module search path: ./EOS-4.32.1F:.:/home/ubuntu/.cache/pypoetry/virtualenvs/eos-py-lKpwrY1E-py3.11/share/yang/modules
# read ./EOS-4.32.1F/openconfig/public/release/models/interfaces/openconfig-interfaces.yang (CL)
# read ./yang_modules/ietf-interfaces.yang (CL)
# read ./yang_modules/iana-if-type.yang (CL)
# read ./yang_modules/ietf-yang-types.yang (CL)
# read /home/ubuntu/.cache/pypoetry/virtualenvs/eos-py-lKpwrY1E-py3.11/share/yang/modules/ietf/ietf-interfaces.yang
# read /home/ubuntu/.cache/pypoetry/virtualenvs/eos-py-lKpwrY1E-py3.11/share/yang/modules/ietf/ietf-yang-types.yang
# read EOS-4.32.1F/openconfig/public/release/models/types/openconfig-yang-types.yang
# read EOS-4.32.1F/openconfig/public/release/models/openconfig-extensions.yang
# read EOS-4.32.1F/openconfig/public/release/models/types/openconfig-types.yang
# read EOS-4.32.1F/openconfig/public/release/models/optical-transport/openconfig-transport-types.yang
# read EOS-4.32.1F/openconfig/public/release/models/platform/openconfig-platform-types.yang
# READ EOS-4.32.1F/openconfig/public/release/models/interfaces/openconfig-interfaces.yang
# read EOS-4.32.1F/openconfig/public/release/models/interfaces/openconfig-if-ethernet.yang
# read /home/ubuntu/.cache/pypoetry/virtualenvs/eos-py-lKpwrY1E-py3.11/share/yang/modules/iana/iana-if-type.yang
# read EOS-4.32.1F/openconfig/public/release/models/interfaces/openconfig-if-aggregate.yang
# read EOS-4.32.1F/openconfig/public/release/models/vlan/openconfig-vlan.yang
# read EOS-4.32.1F/openconfig/public/release/models/vlan/openconfig-vlan-types.yang
# read EOS-4.32.1F/openconfig/public/release/models/interfaces/openconfig-if-ip.yang
# read EOS-4.32.1F/openconfig/public/release/models/types/openconfig-inet-types.yang
# read EOS-4.32.1F/openconfig/public/release/models/interfaces/openconfig-if-tunnel.yang
# read EOS-4.32.1F/openconfig/public/release/models/interfaces/openconfig-if-poe.yang
# read EOS-4.32.1F/release/openconfig/models/interfaces/arista-intf-deviations.yang
# read EOS-4.32.1F/release/openconfig/models/interfaces/arista-intf-augments.yang
FATAL: identityref with an unknown base
dict_keys(['boolean', 'binary', 'uint8', 'bits', 'uint16', 'uint32', 'uint64', 'string', 'decimal64', 'empty', 'int8', 'int16', 'int32', 'int64', 'ietf-interfaces:interface-type', 'interface-type', 'if:interface-type', 'ietf-if:interface-type', 'openconfig-types:ADDRESS_FAMILY', 'ADDRESS_FAMILY', 'oc-types:ADDRESS_FAMILY', 'openconfig-types:IPV4', 'IPV4', 'oc-types:IPV4', 'openconfig-types:IPV6', 'IPV6', 'oc-types:IPV6', 'openconfig-types:MPLS', 'MPLS', 'oc-types:MPLS', 'openconfig-types:L2_ETHERNET', 'L2_ETHERNET', 'oc-types:L2_ETHERNET', 'openconfig-transport-types:FRAME_MAPPING_PROTOCOL', 'FRAME_MAPPING_PROTOCOL', 'oc-opt-types:FRAME_MAPPING_PROTOCOL', 'openconfig-transport-types:AMP', 'AMP', 'oc-opt-types:AMP', 'openconfig-transport-types:GMP', 'GMP', 'oc-opt-types:GMP', 'openconfig-transport-types:BMP', 'BMP', 'oc-opt-types:BMP', 'openconfig-transport-types:CBR', 'CBR', 'oc-opt-types:CBR', 'openconfig-transport-types:GFP_T', 'GFP_T', 'oc-opt-types:GFP_T', 'openconfig-transport-types:GFP_F', 'GFP_F', 'oc-opt-types:GFP_F', 'openconfig-transport-types:TRIBUTARY_SLOT_GRANULARITY', 'TRIBUTARY_SLOT_GRANULARITY', 'oc-opt-types:TRIBUTARY_SLOT_GRANULARITY', 'openconfig-transport-types:TRIB_SLOT_1.25G', 'TRIB_SLOT_1.25G', 'oc-opt-types:TRIB_SLOT_1.25G', 'openconfig-transport-types:TRIB_SLOT_2.5G', 'TRIB_SLOT_2.5G', 'oc-opt-types:TRIB_SLOT_2.5G', 'openconfig-transport-types:TRIB_SLOT_5G', 'TRIB_SLOT_5G', 'oc-opt-types:TRIB_SLOT_5G', 'openconfig-transport-types:TRIBUTARY_PROTOCOL_TYPE', 'TRIBUTARY_PROTOCOL_TYPE', 'oc-opt-types:TRIBUTARY_PROTOCOL_TYPE', 'openconfig-transport-types:PROT_1GE', 'PROT_1GE', 'oc-opt-types:PROT_1GE', 'openconfig-transport-types:PROT_OC48', 'PROT_OC48', 'oc-opt-types:PROT_OC48', 'openconfig-transport-types:PROT_STM16', 'PROT_STM16', 'oc-opt-types:PROT_STM16', 'openconfig-transport-types:PROT_10GE_LAN', 'PROT_10GE_LAN', 'oc-opt-types:PROT_10GE_LAN', 'openconfig-transport-types:PROT_10GE_WAN', 'PROT_10GE_WAN', 'oc-opt-types:PROT_10GE_WAN', 'openconfig-transport-types:PROT_OC192', 'PROT_OC192', 'oc-opt-types:PROT_OC192', 'openconfig-transport-types:PROT_STM64', 'PROT_STM64', 'oc-opt-types:PROT_STM64', 'openconfig-transport-types:PROT_OTU2', 'PROT_OTU2', 'oc-opt-types:PROT_OTU2', 'openconfig-transport-types:PROT_OTU2E', 'PROT_OTU2E', 'oc-opt-types:PROT_OTU2E', 'openconfig-transport-types:PROT_OTU1E', 'PROT_OTU1E', 'oc-opt-types:PROT_OTU1E', 'openconfig-transport-types:PROT_ODU2', 'PROT_ODU2', 'oc-opt-types:PROT_ODU2', 'openconfig-transport-types:PROT_ODU2E', 'PROT_ODU2E', 'oc-opt-types:PROT_ODU2E', 'openconfig-transport-types:PROT_40GE', 'PROT_40GE', 'oc-opt-types:PROT_40GE', 'openconfig-transport-types:PROT_OC768', 'PROT_OC768', 'oc-opt-types:PROT_OC768', 'openconfig-transport-types:PROT_STM256', 'PROT_STM256', 'oc-opt-types:PROT_STM256', 'openconfig-transport-types:PROT_OTU3', 'PROT_OTU3', 'oc-opt-types:PROT_OTU3', 'openconfig-transport-types:PROT_ODU3', 'PROT_ODU3', 'oc-opt-types:PROT_ODU3', 'openconfig-transport-types:PROT_100GE', 'PROT_100GE', 'oc-opt-types:PROT_100GE', 'openconfig-transport-types:PROT_100G_MLG', 'PROT_100G_MLG', 'oc-opt-types:PROT_100G_MLG', 'openconfig-transport-types:PROT_OTU4', 'PROT_OTU4', 'oc-opt-types:PROT_OTU4', 'openconfig-transport-types:PROT_OTUCN', 'PROT_OTUCN', 'oc-opt-types:PROT_OTUCN', 'openconfig-transport-types:PROT_ODUCN', 'PROT_ODUCN', 'oc-opt-types:PROT_ODUCN', 'openconfig-transport-types:PROT_ODU4', 'PROT_ODU4', 'oc-opt-types:PROT_ODU4', 'openconfig-transport-types:PROT_400GE', 'PROT_400GE', 'oc-opt-types:PROT_400GE', 'openconfig-transport-types:PROT_800GE', 'PROT_800GE', 'oc-opt-types:PROT_800GE', 'openconfig-transport-types:PROT_OTSIG', 'PROT_OTSIG', 'oc-opt-types:PROT_OTSIG', 'openconfig-transport-types:PROT_ODUFLEX_CBR', 'PROT_ODUFLEX_CBR', 'oc-opt-types:PROT_ODUFLEX_CBR', 'openconfig-transport-types:PROT_FLEXO', 'PROT_FLEXO', 'oc-opt-types:PROT_FLEXO', 'openconfig-transport-types:PROT_ODUFLEX_GFP', 'PROT_ODUFLEX_GFP', 'oc-opt-types:PROT_ODUFLEX_GFP', 'openconfig-transport-types:TRANSCEIVER_FORM_FACTOR_TYPE', 'TRANSCEIVER_FORM_FACTOR_TYPE', 'oc-opt-types:TRANSCEIVER_FORM_FACTOR_TYPE', 'openconfig-transport-types:CFP', 'CFP', 'oc-opt-types:CFP', 'openconfig-transport-types:CFP2', 'CFP2', 'oc-opt-types:CFP2', 'openconfig-transport-types:CFP2_ACO', 'CFP2_ACO', 'oc-opt-types:CFP2_ACO', 'openconfig-transport-types:CFP4', 'CFP4', 'oc-opt-types:CFP4', 'openconfig-transport-types:QSFP', 'QSFP', 'oc-opt-types:QSFP', 'openconfig-transport-types:QSFP_PLUS', 'QSFP_PLUS', 'oc-opt-types:QSFP_PLUS', 'openconfig-transport-types:QSFP28', 'QSFP28', 'oc-opt-types:QSFP28', 'openconfig-transport-types:QSFP28_DD', 'QSFP28_DD', 'oc-opt-types:QSFP28_DD', 'openconfig-transport-types:QSFP56', 'QSFP56', 'oc-opt-types:QSFP56', 'openconfig-transport-types:QSFP56_DD', 'QSFP56_DD', 'oc-opt-types:QSFP56_DD', 'openconfig-transport-types:QSFP56_DD_TYPE1', 'QSFP56_DD_TYPE1', 'oc-opt-types:QSFP56_DD_TYPE1', 'openconfig-transport-types:QSFP56_DD_TYPE2', 'QSFP56_DD_TYPE2', 'oc-opt-types:QSFP56_DD_TYPE2', 'openconfig-transport-types:CPAK', 'CPAK', 'oc-opt-types:CPAK', 'openconfig-transport-types:SFP', 'SFP', 'oc-opt-types:SFP', 'openconfig-transport-types:SFP_PLUS', 'SFP_PLUS', 'oc-opt-types:SFP_PLUS', 'openconfig-transport-types:CSFP', 'CSFP', 'oc-opt-types:CSFP', 'openconfig-transport-types:SFP28', 'SFP28', 'oc-opt-types:SFP28', 'openconfig-transport-types:SFP56', 'SFP56', 'oc-opt-types:SFP56', 'openconfig-transport-types:SFP_DD', 'SFP_DD', 'oc-opt-types:SFP_DD', 'openconfig-transport-types:DSFP', 'DSFP', 'oc-opt-types:DSFP', 'openconfig-transport-types:XFP', 'XFP', 'oc-opt-types:XFP', 'openconfig-transport-types:X2', 'X2', 'oc-opt-types:X2', 'openconfig-transport-types:OSFP', 'OSFP', 'oc-opt-types:OSFP', 'openconfig-transport-types:NON_PLUGGABLE', 'NON_PLUGGABLE', 'oc-opt-types:NON_PLUGGABLE', 'openconfig-transport-types:OTHER', 'OTHER', 'oc-opt-types:OTHER', 'openconfig-transport-types:FIBER_CONNECTOR_TYPE', 'FIBER_CONNECTOR_TYPE', 'oc-opt-types:FIBER_CONNECTOR_TYPE', 'openconfig-transport-types:SC_CONNECTOR', 'SC_CONNECTOR', 'oc-opt-types:SC_CONNECTOR', 'openconfig-transport-types:LC_CONNECTOR', 'LC_CONNECTOR', 'oc-opt-types:LC_CONNECTOR', 'openconfig-transport-types:MPO_CONNECTOR', 'MPO_CONNECTOR', 'oc-opt-types:MPO_CONNECTOR', 'openconfig-transport-types:AOC_CONNECTOR', 'AOC_CONNECTOR', 'oc-opt-types:AOC_CONNECTOR', 'openconfig-transport-types:DAC_CONNECTOR', 'DAC_CONNECTOR', 'oc-opt-types:DAC_CONNECTOR', 'openconfig-transport-types:ETHERNET_PMD_TYPE', 'ETHERNET_PMD_TYPE', 'oc-opt-types:ETHERNET_PMD_TYPE', 'openconfig-transport-types:ETH_1000BASE_LX10', 'ETH_1000BASE_LX10', 'oc-opt-types:ETH_1000BASE_LX10', 'openconfig-transport-types:ETH_10GBASE_LRM', 'ETH_10GBASE_LRM', 'oc-opt-types:ETH_10GBASE_LRM', 'openconfig-transport-types:ETH_10GBASE_LR', 'ETH_10GBASE_LR', 'oc-opt-types:ETH_10GBASE_LR', 'openconfig-transport-types:ETH_10GBASE_ZR', 'ETH_10GBASE_ZR', 'oc-opt-types:ETH_10GBASE_ZR', 'openconfig-transport-types:ETH_10GBASE_ER', 'ETH_10GBASE_ER', 'oc-opt-types:ETH_10GBASE_ER', 'openconfig-transport-types:ETH_10GBASE_SR', 'ETH_10GBASE_SR', 'oc-opt-types:ETH_10GBASE_SR', 'openconfig-transport-types:ETH_40GBASE_CR4', 'ETH_40GBASE_CR4', 'oc-opt-types:ETH_40GBASE_CR4', 'openconfig-transport-types:ETH_40GBASE_SR4', 'ETH_40GBASE_SR4', 'oc-opt-types:ETH_40GBASE_SR4', 'openconfig-transport-types:ETH_40GBASE_LR4', 'ETH_40GBASE_LR4', 'oc-opt-types:ETH_40GBASE_LR4', 'openconfig-transport-types:ETH_40GBASE_ER4', 'ETH_40GBASE_ER4', 'oc-opt-types:ETH_40GBASE_ER4', 'openconfig-transport-types:ETH_40GBASE_PSM4', 'ETH_40GBASE_PSM4', 'oc-opt-types:ETH_40GBASE_PSM4', 'openconfig-transport-types:ETH_4X10GBASE_LR', 'ETH_4X10GBASE_LR', 'oc-opt-types:ETH_4X10GBASE_LR', 'openconfig-transport-types:ETH_4X10GBASE_SR', 'ETH_4X10GBASE_SR', 'oc-opt-types:ETH_4X10GBASE_SR', 'openconfig-transport-types:ETH_100G_AOC', 'ETH_100G_AOC', 'oc-opt-types:ETH_100G_AOC', 'openconfig-transport-types:ETH_100G_ACC', 'ETH_100G_ACC', 'oc-opt-types:ETH_100G_ACC', 'openconfig-transport-types:ETH_100GBASE_SR10', 'ETH_100GBASE_SR10', 'oc-opt-types:ETH_100GBASE_SR10', 'openconfig-transport-types:ETH_100GBASE_SR4', 'ETH_100GBASE_SR4', 'oc-opt-types:ETH_100GBASE_SR4', 'openconfig-transport-types:ETH_100GBASE_LR4', 'ETH_100GBASE_LR4', 'oc-opt-types:ETH_100GBASE_LR4', 'openconfig-transport-types:ETH_100GBASE_ER4L', 'ETH_100GBASE_ER4L', 'oc-opt-types:ETH_100GBASE_ER4L', 'openconfig-transport-types:ETH_100GBASE_ER4', 'ETH_100GBASE_ER4', 'oc-opt-types:ETH_100GBASE_ER4', 'openconfig-transport-types:ETH_100GBASE_CWDM4', 'ETH_100GBASE_CWDM4', 'oc-opt-types:ETH_100GBASE_CWDM4', 'openconfig-transport-types:ETH_100GBASE_CLR4', 'ETH_100GBASE_CLR4', 'oc-opt-types:ETH_100GBASE_CLR4', 'openconfig-transport-types:ETH_100GBASE_PSM4', 'ETH_100GBASE_PSM4', 'oc-opt-types:ETH_100GBASE_PSM4', 'openconfig-transport-types:ETH_100GBASE_CR4', 'ETH_100GBASE_CR4', 'oc-opt-types:ETH_100GBASE_CR4', 'openconfig-transport-types:ETH_100GBASE_FR', 'ETH_100GBASE_FR', 'oc-opt-types:ETH_100GBASE_FR', 'openconfig-transport-types:ETH_100GBASE_DR', 'ETH_100GBASE_DR', 'oc-opt-types:ETH_100GBASE_DR', 'openconfig-transport-types:ETH_400GBASE_ZR', 'ETH_400GBASE_ZR', 'oc-opt-types:ETH_400GBASE_ZR', 'openconfig-transport-types:ETH_400GBASE_LR4', 'ETH_400GBASE_LR4', 'oc-opt-types:ETH_400GBASE_LR4', 'openconfig-transport-types:ETH_400GBASE_FR4', 'ETH_400GBASE_FR4', 'oc-opt-types:ETH_400GBASE_FR4', 'openconfig-transport-types:ETH_400GBASE_LR8', 'ETH_400GBASE_LR8', 'oc-opt-types:ETH_400GBASE_LR8', 'openconfig-transport-types:ETH_400GBASE_DR4', 'ETH_400GBASE_DR4', 'oc-opt-types:ETH_400GBASE_DR4', 'openconfig-transport-types:ETH_400GMSA_PSM4', 'ETH_400GMSA_PSM4', 'oc-opt-types:ETH_400GMSA_PSM4', 'openconfig-transport-types:ETH_UNDEFINED', 'ETH_UNDEFINED', 'oc-opt-types:ETH_UNDEFINED', 'openconfig-transport-types:SONET_APPLICATION_CODE', 'SONET_APPLICATION_CODE', 'oc-opt-types:SONET_APPLICATION_CODE', 'openconfig-transport-types:VSR2000_3R2', 'VSR2000_3R2', 'oc-opt-types:VSR2000_3R2', 'openconfig-transport-types:VSR2000_3R3', 'VSR2000_3R3', 'oc-opt-types:VSR2000_3R3', 'openconfig-transport-types:VSR2000_3R5', 'VSR2000_3R5', 'oc-opt-types:VSR2000_3R5', 'openconfig-transport-types:SONET_UNDEFINED', 'SONET_UNDEFINED', 'oc-opt-types:SONET_UNDEFINED', 'openconfig-transport-types:OTN_APPLICATION_CODE', 'OTN_APPLICATION_CODE', 'oc-opt-types:OTN_APPLICATION_CODE', 'openconfig-transport-types:P1L1_2D1', 'P1L1_2D1', 'oc-opt-types:P1L1_2D1', 'openconfig-transport-types:P1S1_2D2', 'P1S1_2D2', 'oc-opt-types:P1S1_2D2', 'openconfig-transport-types:P1L1_2D2', 'P1L1_2D2', 'oc-opt-types:P1L1_2D2', 'openconfig-transport-types:OTN_UNDEFINED', 'OTN_UNDEFINED', 'oc-opt-types:OTN_UNDEFINED', 'openconfig-transport-types:TRIBUTARY_RATE_CLASS_TYPE', 'TRIBUTARY_RATE_CLASS_TYPE', 'oc-opt-types:TRIBUTARY_RATE_CLASS_TYPE', 'openconfig-transport-types:TRIB_RATE_1G', 'TRIB_RATE_1G', 'oc-opt-types:TRIB_RATE_1G', 'openconfig-transport-types:TRIB_RATE_2.5G', 'TRIB_RATE_2.5G', 'oc-opt-types:TRIB_RATE_2.5G', 'openconfig-transport-types:TRIB_RATE_10G', 'TRIB_RATE_10G', 'oc-opt-types:TRIB_RATE_10G', 'openconfig-transport-types:TRIB_RATE_40G', 'TRIB_RATE_40G', 'oc-opt-types:TRIB_RATE_40G', 'openconfig-transport-types:TRIB_RATE_100G', 'TRIB_RATE_100G', 'oc-opt-types:TRIB_RATE_100G', 'openconfig-transport-types:TRIB_RATE_150G', 'TRIB_RATE_150G', 'oc-opt-types:TRIB_RATE_150G', 'openconfig-transport-types:TRIB_RATE_200G', 'TRIB_RATE_200G', 'oc-opt-types:TRIB_RATE_200G', 'openconfig-transport-types:TRIB_RATE_250G', 'TRIB_RATE_250G', 'oc-opt-types:TRIB_RATE_250G', 'openconfig-transport-types:TRIB_RATE_300G', 'TRIB_RATE_300G', 'oc-opt-types:TRIB_RATE_300G', 'openconfig-transport-types:TRIB_RATE_350G', 'TRIB_RATE_350G', 'oc-opt-types:TRIB_RATE_350G', 'openconfig-transport-types:TRIB_RATE_400G', 'TRIB_RATE_400G', 'oc-opt-types:TRIB_RATE_400G', 'openconfig-transport-types:TRIB_RATE_450G', 'TRIB_RATE_450G', 'oc-opt-types:TRIB_RATE_450G', 'openconfig-transport-types:TRIB_RATE_500G', 'TRIB_RATE_500G', 'oc-opt-types:TRIB_RATE_500G', 'openconfig-transport-types:TRIB_RATE_550G', 'TRIB_RATE_550G', 'oc-opt-types:TRIB_RATE_550G', 'openconfig-transport-types:TRIB_RATE_600G', 'TRIB_RATE_600G', 'oc-opt-types:TRIB_RATE_600G', 'openconfig-transport-types:TRIB_RATE_650G', 'TRIB_RATE_650G', 'oc-opt-types:TRIB_RATE_650G', 'openconfig-transport-types:TRIB_RATE_700G', 'TRIB_RATE_700G', 'oc-opt-types:TRIB_RATE_700G', 'openconfig-transport-types:TRIB_RATE_750G', 'TRIB_RATE_750G', 'oc-opt-types:TRIB_RATE_750G', 'openconfig-transport-types:TRIB_RATE_800G', 'TRIB_RATE_800G', 'oc-opt-types:TRIB_RATE_800G', 'openconfig-transport-types:TRIB_RATE_850G', 'TRIB_RATE_850G', 'oc-opt-types:TRIB_RATE_850G', 'openconfig-transport-types:TRIB_RATE_900G', 'TRIB_RATE_900G', 'oc-opt-types:TRIB_RATE_900G', 'openconfig-transport-types:TRIB_RATE_950G', 'TRIB_RATE_950G', 'oc-opt-types:TRIB_RATE_950G', 'openconfig-transport-types:TRIB_RATE_1000G', 'TRIB_RATE_1000G', 'oc-opt-types:TRIB_RATE_1000G', 'openconfig-transport-types:TRIB_RATE_1050G', 'TRIB_RATE_1050G', 'oc-opt-types:TRIB_RATE_1050G', 'openconfig-transport-types:TRIB_RATE_1100G', 'TRIB_RATE_1100G', 'oc-opt-types:TRIB_RATE_1100G', 'openconfig-transport-types:TRIB_RATE_1150G', 'TRIB_RATE_1150G', 'oc-opt-types:TRIB_RATE_1150G', 'openconfig-transport-types:TRIB_RATE_1200G', 'TRIB_RATE_1200G', 'oc-opt-types:TRIB_RATE_1200G', 'openconfig-transport-types:TRIB_RATE_1250G', 'TRIB_RATE_1250G', 'oc-opt-types:TRIB_RATE_1250G', 'openconfig-transport-types:TRIB_RATE_1300G', 'TRIB_RATE_1300G', 'oc-opt-types:TRIB_RATE_1300G', 'openconfig-transport-types:TRIB_RATE_1350G', 'TRIB_RATE_1350G', 'oc-opt-types:TRIB_RATE_1350G', 'openconfig-transport-types:TRIB_RATE_1400G', 'TRIB_RATE_1400G', 'oc-opt-types:TRIB_RATE_1400G', 'openconfig-transport-types:TRIB_RATE_1450G', 'TRIB_RATE_1450G', 'oc-opt-types:TRIB_RATE_1450G', 'openconfig-transport-types:TRIB_RATE_1500G', 'TRIB_RATE_1500G', 'oc-opt-types:TRIB_RATE_1500G', 'openconfig-transport-types:TRIB_RATE_1550G', 'TRIB_RATE_1550G', 'oc-opt-types:TRIB_RATE_1550G', 'openconfig-transport-types:TRIB_RATE_1600G', 'TRIB_RATE_1600G', 'oc-opt-types:TRIB_RATE_1600G', 'openconfig-transport-types:TRIB_RATE_1650G', 'TRIB_RATE_1650G', 'oc-opt-types:TRIB_RATE_1650G', 'openconfig-transport-types:TRIB_RATE_1700G', 'TRIB_RATE_1700G', 'oc-opt-types:TRIB_RATE_1700G', 'openconfig-transport-types:TRIB_RATE_1750G', 'TRIB_RATE_1750G', 'oc-opt-types:TRIB_RATE_1750G', 'openconfig-transport-types:TRIB_RATE_1800G', 'TRIB_RATE_1800G', 'oc-opt-types:TRIB_RATE_1800G', 'openconfig-transport-types:TRIB_RATE_1850G', 'TRIB_RATE_1850G', 'oc-opt-types:TRIB_RATE_1850G', 'openconfig-transport-types:TRIB_RATE_1900G', 'TRIB_RATE_1900G', 'oc-opt-types:TRIB_RATE_1900G', 'openconfig-transport-types:TRIB_RATE_1950G', 'TRIB_RATE_1950G', 'oc-opt-types:TRIB_RATE_1950G', 'openconfig-transport-types:TRIB_RATE_2000G', 'TRIB_RATE_2000G', 'oc-opt-types:TRIB_RATE_2000G', 'openconfig-transport-types:TRIB_RATE_2050G', 'TRIB_RATE_2050G', 'oc-opt-types:TRIB_RATE_2050G', 'openconfig-transport-types:TRIB_RATE_2100G', 'TRIB_RATE_2100G', 'oc-opt-types:TRIB_RATE_2100G', 'openconfig-transport-types:TRIB_RATE_2150G', 'TRIB_RATE_2150G', 'oc-opt-types:TRIB_RATE_2150G', 'openconfig-transport-types:TRIB_RATE_2200G', 'TRIB_RATE_2200G', 'oc-opt-types:TRIB_RATE_2200G', 'openconfig-transport-types:TRIB_RATE_2250G', 'TRIB_RATE_2250G', 'oc-opt-types:TRIB_RATE_2250G', 'openconfig-transport-types:TRIB_RATE_2300G', 'TRIB_RATE_2300G', 'oc-opt-types:TRIB_RATE_2300G', 'openconfig-transport-types:TRIB_RATE_2350G', 'TRIB_RATE_2350G', 'oc-opt-types:TRIB_RATE_2350G', 'openconfig-transport-types:TRIB_RATE_2400G', 'TRIB_RATE_2400G', 'oc-opt-types:TRIB_RATE_2400G', 'openconfig-transport-types:TRIB_RATE_2450G', 'TRIB_RATE_2450G', 'oc-opt-types:TRIB_RATE_2450G', 'openconfig-transport-types:TRIB_RATE_2500G', 'TRIB_RATE_2500G', 'oc-opt-types:TRIB_RATE_2500G', 'openconfig-transport-types:TRIB_RATE_2550G', 'TRIB_RATE_2550G', 'oc-opt-types:TRIB_RATE_2550G', 'openconfig-transport-types:TRIB_RATE_2600G', 'TRIB_RATE_2600G', 'oc-opt-types:TRIB_RATE_2600G', 'openconfig-transport-types:TRIB_RATE_2650G', 'TRIB_RATE_2650G', 'oc-opt-types:TRIB_RATE_2650G', 'openconfig-transport-types:TRIB_RATE_2700G', 'TRIB_RATE_2700G', 'oc-opt-types:TRIB_RATE_2700G', 'openconfig-transport-types:TRIB_RATE_2750G', 'TRIB_RATE_2750G', 'oc-opt-types:TRIB_RATE_2750G', 'openconfig-transport-types:TRIB_RATE_2800G', 'TRIB_RATE_2800G', 'oc-opt-types:TRIB_RATE_2800G', 'openconfig-transport-types:TRIB_RATE_2850G', 'TRIB_RATE_2850G', 'oc-opt-types:TRIB_RATE_2850G', 'openconfig-transport-types:TRIB_RATE_2900G', 'TRIB_RATE_2900G', 'oc-opt-types:TRIB_RATE_2900G', 'openconfig-transport-types:TRIB_RATE_2950G', 'TRIB_RATE_2950G', 'oc-opt-types:TRIB_RATE_2950G', 'openconfig-transport-types:TRIB_RATE_3000G', 'TRIB_RATE_3000G', 'oc-opt-types:TRIB_RATE_3000G', 'openconfig-transport-types:TRIB_RATE_3050G', 'TRIB_RATE_3050G', 'oc-opt-types:TRIB_RATE_3050G', 'openconfig-transport-types:TRIB_RATE_3100G', 'TRIB_RATE_3100G', 'oc-opt-types:TRIB_RATE_3100G', 'openconfig-transport-types:TRIB_RATE_3150G', 'TRIB_RATE_3150G', 'oc-opt-types:TRIB_RATE_3150G', 'openconfig-transport-types:TRIB_RATE_3200G', 'TRIB_RATE_3200G', 'oc-opt-types:TRIB_RATE_3200G', 'openconfig-transport-types:LOGICAL_ELEMENT_PROTOCOL_TYPE', 'LOGICAL_ELEMENT_PROTOCOL_TYPE', 'oc-opt-types:LOGICAL_ELEMENT_PROTOCOL_TYPE', 'openconfig-transport-types:PROT_ETHERNET', 'PROT_ETHERNET', 'oc-opt-types:PROT_ETHERNET', 'openconfig-transport-types:PROT_OTN', 'PROT_OTN', 'oc-opt-types:PROT_OTN', 'openconfig-transport-types:FIBER_JUMPER_TYPE', 'FIBER_JUMPER_TYPE', 'oc-opt-types:FIBER_JUMPER_TYPE', 'openconfig-transport-types:FIBER_JUMPER_SIMPLEX', 'FIBER_JUMPER_SIMPLEX', 'oc-opt-types:FIBER_JUMPER_SIMPLEX', 'openconfig-transport-types:FIBER_JUMPER_MULTI_FIBER_STRAND', 'FIBER_JUMPER_MULTI_FIBER_STRAND', 'oc-opt-types:FIBER_JUMPER_MULTI_FIBER_STRAND', 'openconfig-transport-types:OPTICAL_PORT_TYPE', 'OPTICAL_PORT_TYPE', 'oc-opt-types:OPTICAL_PORT_TYPE', 'openconfig-transport-types:INGRESS', 'INGRESS', 'oc-opt-types:INGRESS', 'openconfig-transport-types:EGRESS', 'EGRESS', 'oc-opt-types:EGRESS', 'openconfig-transport-types:ADD', 'ADD', 'oc-opt-types:ADD', 'openconfig-transport-types:DROP', 'DROP', 'oc-opt-types:DROP', 'openconfig-transport-types:MONITOR', 'MONITOR', 'oc-opt-types:MONITOR', 'openconfig-transport-types:TERMINAL_CLIENT', 'TERMINAL_CLIENT', 'oc-opt-types:TERMINAL_CLIENT', 'openconfig-transport-types:TERMINAL_LINE', 'TERMINAL_LINE', 'oc-opt-types:TERMINAL_LINE', 'openconfig-transport-types:CLIENT_MAPPING_MODE', 'CLIENT_MAPPING_MODE', 'oc-opt-types:CLIENT_MAPPING_MODE', 'openconfig-transport-types:MODE_1X100G', 'MODE_1X100G', 'oc-opt-types:MODE_1X100G', 'openconfig-transport-types:MODE_1X200G', 'MODE_1X200G', 'oc-opt-types:MODE_1X200G', 'openconfig-transport-types:MODE_1X400G', 'MODE_1X400G', 'oc-opt-types:MODE_1X400G', 'openconfig-transport-types:MODE_2X100G', 'MODE_2X100G', 'oc-opt-types:MODE_2X100G', 'openconfig-transport-types:MODE_2X200G', 'MODE_2X200G', 'oc-opt-types:MODE_2X200G', 'openconfig-transport-types:MODE_3X100G', 'MODE_3X100G', 'oc-opt-types:MODE_3X100G', 'openconfig-transport-types:MODE_4X100G', 'MODE_4X100G', 'oc-opt-types:MODE_4X100G', 'openconfig-transport-types:TRANSCEIVER_MODULE_FUNCTIONAL_TYPE', 'TRANSCEIVER_MODULE_FUNCTIONAL_TYPE', 'oc-opt-types:TRANSCEIVER_MODULE_FUNCTIONAL_TYPE', 'openconfig-transport-types:TYPE_STANDARD_OPTIC', 'TYPE_STANDARD_OPTIC', 'oc-opt-types:TYPE_STANDARD_OPTIC', 'openconfig-transport-types:TYPE_DIGITAL_COHERENT_OPTIC', 'TYPE_DIGITAL_COHERENT_OPTIC', 'oc-opt-types:TYPE_DIGITAL_COHERENT_OPTIC', 'iana-if-type:iana-interface-type', 'iana-interface-type', 'ianaift:iana-interface-type', 'ift:iana-interface-type', 'iana-if-type:other', 'other', 'ianaift:other', 'ift:other', 'iana-if-type:regular1822', 'regular1822', 'ianaift:regular1822', 'ift:regular1822', 'iana-if-type:hdh1822', 'hdh1822', 'ianaift:hdh1822', 'ift:hdh1822', 'iana-if-type:ddnX25', 'ddnX25', 'ianaift:ddnX25', 'ift:ddnX25', 'iana-if-type:rfc877x25', 'rfc877x25', 'ianaift:rfc877x25', 'ift:rfc877x25', 'iana-if-type:ethernetCsmacd', 'ethernetCsmacd', 'ianaift:ethernetCsmacd', 'ift:ethernetCsmacd', 'iana-if-type:iso88023Csmacd', 'iso88023Csmacd', 'ianaift:iso88023Csmacd', 'ift:iso88023Csmacd', 'iana-if-type:iso88024TokenBus', 'iso88024TokenBus', 'ianaift:iso88024TokenBus', 'ift:iso88024TokenBus', 'iana-if-type:iso88025TokenRing', 'iso88025TokenRing', 'ianaift:iso88025TokenRing', 'ift:iso88025TokenRing', 'iana-if-type:iso88026Man', 'iso88026Man', 'ianaift:iso88026Man', 'ift:iso88026Man', 'iana-if-type:starLan', 'starLan', 'ianaift:starLan', 'ift:starLan', 'iana-if-type:proteon10Mbit', 'proteon10Mbit', 'ianaift:proteon10Mbit', 'ift:proteon10Mbit', 'iana-if-type:proteon80Mbit', 'proteon80Mbit', 'ianaift:proteon80Mbit', 'ift:proteon80Mbit', 'iana-if-type:hyperchannel', 'hyperchannel', 'ianaift:hyperchannel', 'ift:hyperchannel', 'iana-if-type:fddi', 'fddi', 'ianaift:fddi', 'ift:fddi', 'iana-if-type:lapb', 'lapb', 'ianaift:lapb', 'ift:lapb', 'iana-if-type:sdlc', 'sdlc', 'ianaift:sdlc', 'ift:sdlc', 'iana-if-type:ds1', 'ds1', 'ianaift:ds1', 'ift:ds1', 'iana-if-type:e1', 'e1', 'ianaift:e1', 'ift:e1', 'iana-if-type:basicISDN', 'basicISDN', 'ianaift:basicISDN', 'ift:basicISDN', 'iana-if-type:primaryISDN', 'primaryISDN', 'ianaift:primaryISDN', 'ift:primaryISDN', 'iana-if-type:propPointToPointSerial', 'propPointToPointSerial', 'ianaift:propPointToPointSerial', 'ift:propPointToPointSerial', 'iana-if-type:ppp', 'ppp', 'ianaift:ppp', 'ift:ppp', 'iana-if-type:softwareLoopback', 'softwareLoopback', 'ianaift:softwareLoopback', 'ift:softwareLoopback', 'iana-if-type:eon', 'eon', 'ianaift:eon', 'ift:eon', 'iana-if-type:ethernet3Mbit', 'ethernet3Mbit', 'ianaift:ethernet3Mbit', 'ift:ethernet3Mbit', 'iana-if-type:nsip', 'nsip', 'ianaift:nsip', 'ift:nsip', 'iana-if-type:slip', 'slip', 'ianaift:slip', 'ift:slip', 'iana-if-type:ultra', 'ultra', 'ianaift:ultra', 'ift:ultra', 'iana-if-type:ds3', 'ds3', 'ianaift:ds3', 'ift:ds3', 'iana-if-type:sip', 'sip', 'ianaift:sip', 'ift:sip', 'iana-if-type:frameRelay', 'frameRelay', 'ianaift:frameRelay', 'ift:frameRelay', 'iana-if-type:rs232', 'rs232', 'ianaift:rs232', 'ift:rs232', 'iana-if-type:para', 'para', 'ianaift:para', 'ift:para', 'iana-if-type:arcnet', 'arcnet', 'ianaift:arcnet', 'ift:arcnet', 'iana-if-type:arcnetPlus', 'arcnetPlus', 'ianaift:arcnetPlus', 'ift:arcnetPlus', 'iana-if-type:atm', 'atm', 'ianaift:atm', 'ift:atm', 'iana-if-type:miox25', 'miox25', 'ianaift:miox25', 'ift:miox25', 'iana-if-type:sonet', 'sonet', 'ianaift:sonet', 'ift:sonet', 'iana-if-type:x25ple', 'x25ple', 'ianaift:x25ple', 'ift:x25ple', 'iana-if-type:iso88022llc', 'iso88022llc', 'ianaift:iso88022llc', 'ift:iso88022llc', 'iana-if-type:localTalk', 'localTalk', 'ianaift:localTalk', 'ift:localTalk', 'iana-if-type:smdsDxi', 'smdsDxi', 'ianaift:smdsDxi', 'ift:smdsDxi', 'iana-if-type:frameRelayService', 'frameRelayService', 'ianaift:frameRelayService', 'ift:frameRelayService', 'iana-if-type:v35', 'v35', 'ianaift:v35', 'ift:v35', 'iana-if-type:hssi', 'hssi', 'ianaift:hssi', 'ift:hssi', 'iana-if-type:hippi', 'hippi', 'ianaift:hippi', 'ift:hippi', 'iana-if-type:modem', 'modem', 'ianaift:modem', 'ift:modem', 'iana-if-type:aal5', 'aal5', 'ianaift:aal5', 'ift:aal5', 'iana-if-type:sonetPath', 'sonetPath', 'ianaift:sonetPath', 'ift:sonetPath', 'iana-if-type:sonetVT', 'sonetVT', 'ianaift:sonetVT', 'ift:sonetVT', 'iana-if-type:smdsIcip', 'smdsIcip', 'ianaift:smdsIcip', 'ift:smdsIcip', 'iana-if-type:propVirtual', 'propVirtual', 'ianaift:propVirtual', 'ift:propVirtual', 'iana-if-type:propMultiplexor', 'propMultiplexor', 'ianaift:propMultiplexor', 'ift:propMultiplexor', 'iana-if-type:ieee80212', 'ieee80212', 'ianaift:ieee80212', 'ift:ieee80212', 'iana-if-type:fibreChannel', 'fibreChannel', 'ianaift:fibreChannel', 'ift:fibreChannel', 'iana-if-type:hippiInterface', 'hippiInterface', 'ianaift:hippiInterface', 'ift:hippiInterface', 'iana-if-type:frameRelayInterconnect', 'frameRelayInterconnect', 'ianaift:frameRelayInterconnect', 'ift:frameRelayInterconnect', 'iana-if-type:aflane8023', 'aflane8023', 'ianaift:aflane8023', 'ift:aflane8023', 'iana-if-type:aflane8025', 'aflane8025', 'ianaift:aflane8025', 'ift:aflane8025', 'iana-if-type:cctEmul', 'cctEmul', 'ianaift:cctEmul', 'ift:cctEmul', 'iana-if-type:fastEther', 'fastEther', 'ianaift:fastEther', 'ift:fastEther', 'iana-if-type:isdn', 'isdn', 'ianaift:isdn', 'ift:isdn', 'iana-if-type:v11', 'v11', 'ianaift:v11', 'ift:v11', 'iana-if-type:v36', 'v36', 'ianaift:v36', 'ift:v36', 'iana-if-type:g703at64k', 'g703at64k', 'ianaift:g703at64k', 'ift:g703at64k', 'iana-if-type:g703at2mb', 'g703at2mb', 'ianaift:g703at2mb', 'ift:g703at2mb', 'iana-if-type:qllc', 'qllc', 'ianaift:qllc', 'ift:qllc', 'iana-if-type:fastEtherFX', 'fastEtherFX', 'ianaift:fastEtherFX', 'ift:fastEtherFX', 'iana-if-type:channel', 'channel', 'ianaift:channel', 'ift:channel', 'iana-if-type:ieee80211', 'ieee80211', 'ianaift:ieee80211', 'ift:ieee80211', 'iana-if-type:ibm370parChan', 'ibm370parChan', 'ianaift:ibm370parChan', 'ift:ibm370parChan', 'iana-if-type:escon', 'escon', 'ianaift:escon', 'ift:escon', 'iana-if-type:dlsw', 'dlsw', 'ianaift:dlsw', 'ift:dlsw', 'iana-if-type:isdns', 'isdns', 'ianaift:isdns', 'ift:isdns', 'iana-if-type:isdnu', 'isdnu', 'ianaift:isdnu', 'ift:isdnu', 'iana-if-type:lapd', 'lapd', 'ianaift:lapd', 'ift:lapd', 'iana-if-type:ipSwitch', 'ipSwitch', 'ianaift:ipSwitch', 'ift:ipSwitch', 'iana-if-type:rsrb', 'rsrb', 'ianaift:rsrb', 'ift:rsrb', 'iana-if-type:atmLogical', 'atmLogical', 'ianaift:atmLogical', 'ift:atmLogical', 'iana-if-type:ds0', 'ds0', 'ianaift:ds0', 'ift:ds0', 'iana-if-type:ds0Bundle', 'ds0Bundle', 'ianaift:ds0Bundle', 'ift:ds0Bundle', 'iana-if-type:bsc', 'bsc', 'ianaift:bsc', 'ift:bsc', 'iana-if-type:async', 'async', 'ianaift:async', 'ift:async', 'iana-if-type:cnr', 'cnr', 'ianaift:cnr', 'ift:cnr', 'iana-if-type:iso88025Dtr', 'iso88025Dtr', 'ianaift:iso88025Dtr', 'ift:iso88025Dtr', 'iana-if-type:eplrs', 'eplrs', 'ianaift:eplrs', 'ift:eplrs', 'iana-if-type:arap', 'arap', 'ianaift:arap', 'ift:arap', 'iana-if-type:propCnls', 'propCnls', 'ianaift:propCnls', 'ift:propCnls', 'iana-if-type:hostPad', 'hostPad', 'ianaift:hostPad', 'ift:hostPad', 'iana-if-type:termPad', 'termPad', 'ianaift:termPad', 'ift:termPad', 'iana-if-type:frameRelayMPI', 'frameRelayMPI', 'ianaift:frameRelayMPI', 'ift:frameRelayMPI', 'iana-if-type:x213', 'x213', 'ianaift:x213', 'ift:x213', 'iana-if-type:adsl', 'adsl', 'ianaift:adsl', 'ift:adsl', 'iana-if-type:radsl', 'radsl', 'ianaift:radsl', 'ift:radsl', 'iana-if-type:sdsl', 'sdsl', 'ianaift:sdsl', 'ift:sdsl', 'iana-if-type:vdsl', 'vdsl', 'ianaift:vdsl', 'ift:vdsl', 'iana-if-type:iso88025CRFPInt', 'iso88025CRFPInt', 'ianaift:iso88025CRFPInt', 'ift:iso88025CRFPInt', 'iana-if-type:myrinet', 'myrinet', 'ianaift:myrinet', 'ift:myrinet', 'iana-if-type:voiceEM', 'voiceEM', 'ianaift:voiceEM', 'ift:voiceEM', 'iana-if-type:voiceFXO', 'voiceFXO', 'ianaift:voiceFXO', 'ift:voiceFXO', 'iana-if-type:voiceFXS', 'voiceFXS', 'ianaift:voiceFXS', 'ift:voiceFXS', 'iana-if-type:voiceEncap', 'voiceEncap', 'ianaift:voiceEncap', 'ift:voiceEncap', 'iana-if-type:voiceOverIp', 'voiceOverIp', 'ianaift:voiceOverIp', 'ift:voiceOverIp', 'iana-if-type:atmDxi', 'atmDxi', 'ianaift:atmDxi', 'ift:atmDxi', 'iana-if-type:atmFuni', 'atmFuni', 'ianaift:atmFuni', 'ift:atmFuni', 'iana-if-type:atmIma', 'atmIma', 'ianaift:atmIma', 'ift:atmIma', 'iana-if-type:pppMultilinkBundle', 'pppMultilinkBundle', 'ianaift:pppMultilinkBundle', 'ift:pppMultilinkBundle', 'iana-if-type:ipOverCdlc', 'ipOverCdlc', 'ianaift:ipOverCdlc', 'ift:ipOverCdlc', 'iana-if-type:ipOverClaw', 'ipOverClaw', 'ianaift:ipOverClaw', 'ift:ipOverClaw', 'iana-if-type:stackToStack', 'stackToStack', 'ianaift:stackToStack', 'ift:stackToStack', 'iana-if-type:virtualIpAddress', 'virtualIpAddress', 'ianaift:virtualIpAddress', 'ift:virtualIpAddress', 'iana-if-type:mpc', 'mpc', 'ianaift:mpc', 'ift:mpc', 'iana-if-type:ipOverAtm', 'ipOverAtm', 'ianaift:ipOverAtm', 'ift:ipOverAtm', 'iana-if-type:iso88025Fiber', 'iso88025Fiber', 'ianaift:iso88025Fiber', 'ift:iso88025Fiber', 'iana-if-type:tdlc', 'tdlc', 'ianaift:tdlc', 'ift:tdlc', 'iana-if-type:gigabitEthernet', 'gigabitEthernet', 'ianaift:gigabitEthernet', 'ift:gigabitEthernet', 'iana-if-type:hdlc', 'hdlc', 'ianaift:hdlc', 'ift:hdlc', 'iana-if-type:lapf', 'lapf', 'ianaift:lapf', 'ift:lapf', 'iana-if-type:v37', 'v37', 'ianaift:v37', 'ift:v37', 'iana-if-type:x25mlp', 'x25mlp', 'ianaift:x25mlp', 'ift:x25mlp', 'iana-if-type:x25huntGroup', 'x25huntGroup', 'ianaift:x25huntGroup', 'ift:x25huntGroup', 'iana-if-type:transpHdlc', 'transpHdlc', 'ianaift:transpHdlc', 'ift:transpHdlc', 'iana-if-type:interleave', 'interleave', 'ianaift:interleave', 'ift:interleave', 'iana-if-type:fast', 'fast', 'ianaift:fast', 'ift:fast', 'iana-if-type:ip', 'ip', 'ianaift:ip', 'ift:ip', 'iana-if-type:docsCableMaclayer', 'docsCableMaclayer', 'ianaift:docsCableMaclayer', 'ift:docsCableMaclayer', 'iana-if-type:docsCableDownstream', 'docsCableDownstream', 'ianaift:docsCableDownstream', 'ift:docsCableDownstream', 'iana-if-type:docsCableUpstream', 'docsCableUpstream', 'ianaift:docsCableUpstream', 'ift:docsCableUpstream', 'iana-if-type:a12MppSwitch', 'a12MppSwitch', 'ianaift:a12MppSwitch', 'ift:a12MppSwitch', 'iana-if-type:tunnel', 'tunnel', 'ianaift:tunnel', 'ift:tunnel', 'iana-if-type:coffee', 'coffee', 'ianaift:coffee', 'ift:coffee', 'iana-if-type:ces', 'ces', 'ianaift:ces', 'ift:ces', 'iana-if-type:atmSubInterface', 'atmSubInterface', 'ianaift:atmSubInterface', 'ift:atmSubInterface', 'iana-if-type:l2vlan', 'l2vlan', 'ianaift:l2vlan', 'ift:l2vlan', 'iana-if-type:l3ipvlan', 'l3ipvlan', 'ianaift:l3ipvlan', 'ift:l3ipvlan', 'iana-if-type:l3ipxvlan', 'l3ipxvlan', 'ianaift:l3ipxvlan', 'ift:l3ipxvlan', 'iana-if-type:digitalPowerline', 'digitalPowerline', 'ianaift:digitalPowerline', 'ift:digitalPowerline', 'iana-if-type:mediaMailOverIp', 'mediaMailOverIp', 'ianaift:mediaMailOverIp', 'ift:mediaMailOverIp', 'iana-if-type:dtm', 'dtm', 'ianaift:dtm', 'ift:dtm', 'iana-if-type:dcn', 'dcn', 'ianaift:dcn', 'ift:dcn', 'iana-if-type:ipForward', 'ipForward', 'ianaift:ipForward', 'ift:ipForward', 'iana-if-type:msdsl', 'msdsl', 'ianaift:msdsl', 'ift:msdsl', 'iana-if-type:ieee1394', 'ieee1394', 'ianaift:ieee1394', 'ift:ieee1394', 'iana-if-type:if-gsn', 'if-gsn', 'ianaift:if-gsn', 'ift:if-gsn', 'iana-if-type:dvbRccMacLayer', 'dvbRccMacLayer', 'ianaift:dvbRccMacLayer', 'ift:dvbRccMacLayer', 'iana-if-type:dvbRccDownstream', 'dvbRccDownstream', 'ianaift:dvbRccDownstream', 'ift:dvbRccDownstream', 'iana-if-type:dvbRccUpstream', 'dvbRccUpstream', 'ianaift:dvbRccUpstream', 'ift:dvbRccUpstream', 'iana-if-type:atmVirtual', 'atmVirtual', 'ianaift:atmVirtual', 'ift:atmVirtual', 'iana-if-type:mplsTunnel', 'mplsTunnel', 'ianaift:mplsTunnel', 'ift:mplsTunnel', 'iana-if-type:srp', 'srp', 'ianaift:srp', 'ift:srp', 'iana-if-type:voiceOverAtm', 'voiceOverAtm', 'ianaift:voiceOverAtm', 'ift:voiceOverAtm', 'iana-if-type:voiceOverFrameRelay', 'voiceOverFrameRelay', 'ianaift:voiceOverFrameRelay', 'ift:voiceOverFrameRelay', 'iana-if-type:idsl', 'idsl', 'ianaift:idsl', 'ift:idsl', 'iana-if-type:compositeLink', 'compositeLink', 'ianaift:compositeLink', 'ift:compositeLink', 'iana-if-type:ss7SigLink', 'ss7SigLink', 'ianaift:ss7SigLink', 'ift:ss7SigLink', 'iana-if-type:propWirelessP2P', 'propWirelessP2P', 'ianaift:propWirelessP2P', 'ift:propWirelessP2P', 'iana-if-type:frForward', 'frForward', 'ianaift:frForward', 'ift:frForward', 'iana-if-type:rfc1483', 'rfc1483', 'ianaift:rfc1483', 'ift:rfc1483', 'iana-if-type:usb', 'usb', 'ianaift:usb', 'ift:usb', 'iana-if-type:ieee8023adLag', 'ieee8023adLag', 'ianaift:ieee8023adLag', 'ift:ieee8023adLag', 'iana-if-type:bgppolicyaccounting', 'bgppolicyaccounting', 'ianaift:bgppolicyaccounting', 'ift:bgppolicyaccounting', 'iana-if-type:frf16MfrBundle', 'frf16MfrBundle', 'ianaift:frf16MfrBundle', 'ift:frf16MfrBundle', 'iana-if-type:h323Gatekeeper', 'h323Gatekeeper', 'ianaift:h323Gatekeeper', 'ift:h323Gatekeeper', 'iana-if-type:h323Proxy', 'h323Proxy', 'ianaift:h323Proxy', 'ift:h323Proxy', 'iana-if-type:mpls', 'mpls', 'ianaift:mpls', 'ift:mpls', 'iana-if-type:mfSigLink', 'mfSigLink', 'ianaift:mfSigLink', 'ift:mfSigLink', 'iana-if-type:hdsl2', 'hdsl2', 'ianaift:hdsl2', 'ift:hdsl2', 'iana-if-type:shdsl', 'shdsl', 'ianaift:shdsl', 'ift:shdsl', 'iana-if-type:ds1FDL', 'ds1FDL', 'ianaift:ds1FDL', 'ift:ds1FDL', 'iana-if-type:pos', 'pos', 'ianaift:pos', 'ift:pos', 'iana-if-type:dvbAsiIn', 'dvbAsiIn', 'ianaift:dvbAsiIn', 'ift:dvbAsiIn', 'iana-if-type:dvbAsiOut', 'dvbAsiOut', 'ianaift:dvbAsiOut', 'ift:dvbAsiOut', 'iana-if-type:plc', 'plc', 'ianaift:plc', 'ift:plc', 'iana-if-type:nfas', 'nfas', 'ianaift:nfas', 'ift:nfas', 'iana-if-type:tr008', 'tr008', 'ianaift:tr008', 'ift:tr008', 'iana-if-type:gr303RDT', 'gr303RDT', 'ianaift:gr303RDT', 'ift:gr303RDT', 'iana-if-type:gr303IDT', 'gr303IDT', 'ianaift:gr303IDT', 'ift:gr303IDT', 'iana-if-type:isup', 'isup', 'ianaift:isup', 'ift:isup', 'iana-if-type:propDocsWirelessMaclayer', 'propDocsWirelessMaclayer', 'ianaift:propDocsWirelessMaclayer', 'ift:propDocsWirelessMaclayer', 'iana-if-type:propDocsWirelessDownstream', 'propDocsWirelessDownstream', 'ianaift:propDocsWirelessDownstream', 'ift:propDocsWirelessDownstream', 'iana-if-type:propDocsWirelessUpstream', 'propDocsWirelessUpstream', 'ianaift:propDocsWirelessUpstream', 'ift:propDocsWirelessUpstream', 'iana-if-type:hiperlan2', 'hiperlan2', 'ianaift:hiperlan2', 'ift:hiperlan2', 'iana-if-type:propBWAp2Mp', 'propBWAp2Mp', 'ianaift:propBWAp2Mp', 'ift:propBWAp2Mp', 'iana-if-type:sonetOverheadChannel', 'sonetOverheadChannel', 'ianaift:sonetOverheadChannel', 'ift:sonetOverheadChannel', 'iana-if-type:digitalWrapperOverheadChannel', 'digitalWrapperOverheadChannel', 'ianaift:digitalWrapperOverheadChannel', 'ift:digitalWrapperOverheadChannel', 'iana-if-type:aal2', 'aal2', 'ianaift:aal2', 'ift:aal2', 'iana-if-type:radioMAC', 'radioMAC', 'ianaift:radioMAC', 'ift:radioMAC', 'iana-if-type:atmRadio', 'atmRadio', 'ianaift:atmRadio', 'ift:atmRadio', 'iana-if-type:imt', 'imt', 'ianaift:imt', 'ift:imt', 'iana-if-type:mvl', 'mvl', 'ianaift:mvl', 'ift:mvl', 'iana-if-type:reachDSL', 'reachDSL', 'ianaift:reachDSL', 'ift:reachDSL', 'iana-if-type:frDlciEndPt', 'frDlciEndPt', 'ianaift:frDlciEndPt', 'ift:frDlciEndPt', 'iana-if-type:atmVciEndPt', 'atmVciEndPt', 'ianaift:atmVciEndPt', 'ift:atmVciEndPt', 'iana-if-type:opticalChannel', 'opticalChannel', 'ianaift:opticalChannel', 'ift:opticalChannel', 'iana-if-type:opticalTransport', 'opticalTransport', 'ianaift:opticalTransport', 'ift:opticalTransport', 'iana-if-type:propAtm', 'propAtm', 'ianaift:propAtm', 'ift:propAtm', 'iana-if-type:voiceOverCable', 'voiceOverCable', 'ianaift:voiceOverCable', 'ift:voiceOverCable', 'iana-if-type:infiniband', 'infiniband', 'ianaift:infiniband', 'ift:infiniband', 'iana-if-type:teLink', 'teLink', 'ianaift:teLink', 'ift:teLink', 'iana-if-type:q2931', 'q2931', 'ianaift:q2931', 'ift:q2931', 'iana-if-type:virtualTg', 'virtualTg', 'ianaift:virtualTg', 'ift:virtualTg', 'iana-if-type:sipTg', 'sipTg', 'ianaift:sipTg', 'ift:sipTg', 'iana-if-type:sipSig', 'sipSig', 'ianaift:sipSig', 'ift:sipSig', 'iana-if-type:docsCableUpstreamChannel', 'docsCableUpstreamChannel', 'ianaift:docsCableUpstreamChannel', 'ift:docsCableUpstreamChannel', 'iana-if-type:econet', 'econet', 'ianaift:econet', 'ift:econet', 'iana-if-type:pon155', 'pon155', 'ianaift:pon155', 'ift:pon155', 'iana-if-type:pon622', 'pon622', 'ianaift:pon622', 'ift:pon622', 'iana-if-type:bridge', 'bridge', 'ianaift:bridge', 'ift:bridge', 'iana-if-type:linegroup', 'linegroup', 'ianaift:linegroup', 'ift:linegroup', 'iana-if-type:voiceEMFGD', 'voiceEMFGD', 'ianaift:voiceEMFGD', 'ift:voiceEMFGD', 'iana-if-type:voiceFGDEANA', 'voiceFGDEANA', 'ianaift:voiceFGDEANA', 'ift:voiceFGDEANA', 'iana-if-type:voiceDID', 'voiceDID', 'ianaift:voiceDID', 'ift:voiceDID', 'iana-if-type:mpegTransport', 'mpegTransport', 'ianaift:mpegTransport', 'ift:mpegTransport', 'iana-if-type:sixToFour', 'sixToFour', 'ianaift:sixToFour', 'ift:sixToFour', 'iana-if-type:gtp', 'gtp', 'ianaift:gtp', 'ift:gtp', 'iana-if-type:pdnEtherLoop1', 'pdnEtherLoop1', 'ianaift:pdnEtherLoop1', 'ift:pdnEtherLoop1', 'iana-if-type:pdnEtherLoop2', 'pdnEtherLoop2', 'ianaift:pdnEtherLoop2', 'ift:pdnEtherLoop2', 'iana-if-type:opticalChannelGroup', 'opticalChannelGroup', 'ianaift:opticalChannelGroup', 'ift:opticalChannelGroup', 'iana-if-type:homepna', 'homepna', 'ianaift:homepna', 'ift:homepna', 'iana-if-type:gfp', 'gfp', 'ianaift:gfp', 'ift:gfp', 'iana-if-type:ciscoISLvlan', 'ciscoISLvlan', 'ianaift:ciscoISLvlan', 'ift:ciscoISLvlan', 'iana-if-type:actelisMetaLOOP', 'actelisMetaLOOP', 'ianaift:actelisMetaLOOP', 'ift:actelisMetaLOOP', 'iana-if-type:fcipLink', 'fcipLink', 'ianaift:fcipLink', 'ift:fcipLink', 'iana-if-type:rpr', 'rpr', 'ianaift:rpr', 'ift:rpr', 'iana-if-type:qam', 'qam', 'ianaift:qam', 'ift:qam', 'iana-if-type:lmp', 'lmp', 'ianaift:lmp', 'ift:lmp', 'iana-if-type:cblVectaStar', 'cblVectaStar', 'ianaift:cblVectaStar', 'ift:cblVectaStar', 'iana-if-type:docsCableMCmtsDownstream', 'docsCableMCmtsDownstream', 'ianaift:docsCableMCmtsDownstream', 'ift:docsCableMCmtsDownstream', 'iana-if-type:adsl2', 'adsl2', 'ianaift:adsl2', 'ift:adsl2', 'iana-if-type:macSecControlledIF', 'macSecControlledIF', 'ianaift:macSecControlledIF', 'ift:macSecControlledIF', 'iana-if-type:macSecUncontrolledIF', 'macSecUncontrolledIF', 'ianaift:macSecUncontrolledIF', 'ift:macSecUncontrolledIF', 'iana-if-type:aviciOpticalEther', 'aviciOpticalEther', 'ianaift:aviciOpticalEther', 'ift:aviciOpticalEther', 'iana-if-type:atmbond', 'atmbond', 'ianaift:atmbond', 'ift:atmbond', 'iana-if-type:voiceFGDOS', 'voiceFGDOS', 'ianaift:voiceFGDOS', 'ift:voiceFGDOS', 'iana-if-type:mocaVersion1', 'mocaVersion1', 'ianaift:mocaVersion1', 'ift:mocaVersion1', 'iana-if-type:ieee80216WMAN', 'ieee80216WMAN', 'ianaift:ieee80216WMAN', 'ift:ieee80216WMAN', 'iana-if-type:adsl2plus', 'adsl2plus', 'ianaift:adsl2plus', 'ift:adsl2plus', 'iana-if-type:dvbRcsMacLayer', 'dvbRcsMacLayer', 'ianaift:dvbRcsMacLayer', 'ift:dvbRcsMacLayer', 'iana-if-type:dvbTdm', 'dvbTdm', 'ianaift:dvbTdm', 'ift:dvbTdm', 'iana-if-type:dvbRcsTdma', 'dvbRcsTdma', 'ianaift:dvbRcsTdma', 'ift:dvbRcsTdma', 'iana-if-type:x86Laps', 'x86Laps', 'ianaift:x86Laps', 'ift:x86Laps', 'iana-if-type:wwanPP', 'wwanPP', 'ianaift:wwanPP', 'ift:wwanPP', 'iana-if-type:wwanPP2', 'wwanPP2', 'ianaift:wwanPP2', 'ift:wwanPP2', 'iana-if-type:voiceEBS', 'voiceEBS', 'ianaift:voiceEBS', 'ift:voiceEBS', 'iana-if-type:ifPwType', 'ifPwType', 'ianaift:ifPwType', 'ift:ifPwType', 'iana-if-type:ilan', 'ilan', 'ianaift:ilan', 'ift:ilan', 'iana-if-type:pip', 'pip', 'ianaift:pip', 'ift:pip', 'iana-if-type:aluELP', 'aluELP', 'ianaift:aluELP', 'ift:aluELP', 'iana-if-type:gpon', 'gpon', 'ianaift:gpon', 'ift:gpon', 'iana-if-type:vdsl2', 'vdsl2', 'ianaift:vdsl2', 'ift:vdsl2', 'iana-if-type:capwapDot11Profile', 'capwapDot11Profile', 'ianaift:capwapDot11Profile', 'ift:capwapDot11Profile', 'iana-if-type:capwapDot11Bss', 'capwapDot11Bss', 'ianaift:capwapDot11Bss', 'ift:capwapDot11Bss', 'iana-if-type:capwapWtpVirtualRadio', 'capwapWtpVirtualRadio', 'ianaift:capwapWtpVirtualRadio', 'ift:capwapWtpVirtualRadio', 'iana-if-type:bits', 'ianaift:bits', 'ift:bits', 'iana-if-type:docsCableUpstreamRfPort', 'docsCableUpstreamRfPort', 'ianaift:docsCableUpstreamRfPort', 'ift:docsCableUpstreamRfPort', 'iana-if-type:cableDownstreamRfPort', 'cableDownstreamRfPort', 'ianaift:cableDownstreamRfPort', 'ift:cableDownstreamRfPort', 'iana-if-type:vmwareVirtualNic', 'vmwareVirtualNic', 'ianaift:vmwareVirtualNic', 'ift:vmwareVirtualNic', 'iana-if-type:ieee802154', 'ieee802154', 'ianaift:ieee802154', 'ift:ieee802154', 'iana-if-type:otnOdu', 'otnOdu', 'ianaift:otnOdu', 'ift:otnOdu', 'iana-if-type:otnOtu', 'otnOtu', 'ianaift:otnOtu', 'ift:otnOtu', 'iana-if-type:ifVfiType', 'ifVfiType', 'ianaift:ifVfiType', 'ift:ifVfiType', 'iana-if-type:g9981', 'g9981', 'ianaift:g9981', 'ift:g9981', 'iana-if-type:g9982', 'g9982', 'ianaift:g9982', 'ift:g9982', 'iana-if-type:g9983', 'g9983', 'ianaift:g9983', 'ift:g9983', 'iana-if-type:aluEpon', 'aluEpon', 'ianaift:aluEpon', 'ift:aluEpon', 'iana-if-type:aluEponOnu', 'aluEponOnu', 'ianaift:aluEponOnu', 'ift:aluEponOnu', 'iana-if-type:aluEponPhysicalUni', 'aluEponPhysicalUni', 'ianaift:aluEponPhysicalUni', 'ift:aluEponPhysicalUni', 'iana-if-type:aluEponLogicalLink', 'aluEponLogicalLink', 'ianaift:aluEponLogicalLink', 'ift:aluEponLogicalLink', 'iana-if-type:aluGponOnu', 'aluGponOnu', 'ianaift:aluGponOnu', 'ift:aluGponOnu', 'iana-if-type:aluGponPhysicalUni', 'aluGponPhysicalUni', 'ianaift:aluGponPhysicalUni', 'ift:aluGponPhysicalUni', 'iana-if-type:vmwareNicTeam', 'vmwareNicTeam', 'ianaift:vmwareNicTeam', 'ift:vmwareNicTeam', 'iana-if-type:docsOfdmDownstream', 'docsOfdmDownstream', 'ianaift:docsOfdmDownstream', 'ift:docsOfdmDownstream', 'iana-if-type:docsOfdmaUpstream', 'docsOfdmaUpstream', 'ianaift:docsOfdmaUpstream', 'ift:docsOfdmaUpstream', 'iana-if-type:gfast', 'gfast', 'ianaift:gfast', 'ift:gfast', 'iana-if-type:sdci', 'sdci', 'ianaift:sdci', 'ift:sdci', 'iana-if-type:xboxWireless', 'xboxWireless', 'ianaift:xboxWireless', 'ift:xboxWireless', 'iana-if-type:fastdsl', 'fastdsl', 'ianaift:fastdsl', 'ift:fastdsl', 'iana-if-type:docsCableScte55d1FwdOob', 'docsCableScte55d1FwdOob', 'ianaift:docsCableScte55d1FwdOob', 'ift:docsCableScte55d1FwdOob', 'iana-if-type:docsCableScte55d1RetOob', 'docsCableScte55d1RetOob', 'ianaift:docsCableScte55d1RetOob', 'ift:docsCableScte55d1RetOob', 'iana-if-type:docsCableScte55d2DsOob', 'docsCableScte55d2DsOob', 'ianaift:docsCableScte55d2DsOob', 'ift:docsCableScte55d2DsOob', 'iana-if-type:docsCableScte55d2UsOob', 'docsCableScte55d2UsOob', 'ianaift:docsCableScte55d2UsOob', 'ift:docsCableScte55d2UsOob', 'iana-if-type:docsCableNdf', 'docsCableNdf', 'ianaift:docsCableNdf', 'ift:docsCableNdf', 'iana-if-type:docsCableNdr', 'docsCableNdr', 'ianaift:docsCableNdr', 'ift:docsCableNdr', 'iana-if-type:ptm', 'ptm', 'ianaift:ptm', 'ift:ptm', 'openconfig-platform-types:OPENCONFIG_HARDWARE_COMPONENT', 'OPENCONFIG_HARDWARE_COMPONENT', 'oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT', 'openconfig-platform-types:OPENCONFIG_SOFTWARE_COMPONENT', 'OPENCONFIG_SOFTWARE_COMPONENT', 'oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT', 'openconfig-platform-types:CHASSIS', 'CHASSIS', 'oc-platform-types:CHASSIS', 'openconfig-platform-types:BACKPLANE', 'BACKPLANE', 'oc-platform-types:BACKPLANE', 'openconfig-platform-types:FABRIC', 'FABRIC', 'oc-platform-types:FABRIC', 'openconfig-platform-types:POWER_SUPPLY', 'POWER_SUPPLY', 'oc-platform-types:POWER_SUPPLY', 'openconfig-platform-types:FAN', 'FAN', 'oc-platform-types:FAN', 'openconfig-platform-types:SENSOR', 'SENSOR', 'oc-platform-types:SENSOR', 'openconfig-platform-types:FRU', 'FRU', 'oc-platform-types:FRU', 'openconfig-platform-types:LINECARD', 'LINECARD', 'oc-platform-types:LINECARD', 'openconfig-platform-types:CONTROLLER_CARD', 'CONTROLLER_CARD', 'oc-platform-types:CONTROLLER_CARD', 'openconfig-platform-types:PORT', 'PORT', 'oc-platform-types:PORT', 'openconfig-platform-types:TRANSCEIVER', 'TRANSCEIVER', 'oc-platform-types:TRANSCEIVER', 'openconfig-platform-types:CPU', 'CPU', 'oc-platform-types:CPU', 'openconfig-platform-types:STORAGE', 'STORAGE', 'oc-platform-types:STORAGE', 'openconfig-platform-types:INTEGRATED_CIRCUIT', 'INTEGRATED_CIRCUIT', 'oc-platform-types:INTEGRATED_CIRCUIT', 'openconfig-platform-types:WIFI_ACCESS_POINT', 'WIFI_ACCESS_POINT', 'oc-platform-types:WIFI_ACCESS_POINT', 'openconfig-platform-types:OPERATING_SYSTEM', 'OPERATING_SYSTEM', 'oc-platform-types:OPERATING_SYSTEM', 'openconfig-platform-types:OPERATING_SYSTEM_UPDATE', 'OPERATING_SYSTEM_UPDATE', 'oc-platform-types:OPERATING_SYSTEM_UPDATE', 'openconfig-platform-types:BIOS', 'BIOS', 'oc-platform-types:BIOS', 'openconfig-platform-types:BOOT_LOADER', 'BOOT_LOADER', 'oc-platform-types:BOOT_LOADER', 'openconfig-platform-types:SOFTWARE_MODULE', 'SOFTWARE_MODULE', 'oc-platform-types:SOFTWARE_MODULE', 'openconfig-platform-types:COMPONENT_OPER_STATUS', 'COMPONENT_OPER_STATUS', 'oc-platform-types:COMPONENT_OPER_STATUS', 'openconfig-platform-types:ACTIVE', 'ACTIVE', 'oc-platform-types:ACTIVE', 'openconfig-platform-types:INACTIVE', 'INACTIVE', 'oc-platform-types:INACTIVE', 'openconfig-platform-types:DISABLED', 'DISABLED', 'oc-platform-types:DISABLED', 'openconfig-platform-types:FEC_MODE_TYPE', 'FEC_MODE_TYPE', 'oc-platform-types:FEC_MODE_TYPE', 'openconfig-platform-types:FEC_ENABLED', 'FEC_ENABLED', 'oc-platform-types:FEC_ENABLED', 'openconfig-platform-types:FEC_DISABLED', 'FEC_DISABLED', 'oc-platform-types:FEC_DISABLED', 'openconfig-platform-types:FEC_AUTO', 'FEC_AUTO', 'oc-platform-types:FEC_AUTO', 'openconfig-platform-types:FEC_STATUS_TYPE', 'FEC_STATUS_TYPE', 'oc-platform-types:FEC_STATUS_TYPE', 'openconfig-platform-types:FEC_STATUS_LOCKED', 'FEC_STATUS_LOCKED', 'oc-platform-types:FEC_STATUS_LOCKED', 'openconfig-platform-types:FEC_STATUS_UNLOCKED', 'FEC_STATUS_UNLOCKED', 'oc-platform-types:FEC_STATUS_UNLOCKED', 'openconfig-platform-types:COMPONENT_REBOOT_REASON', 'COMPONENT_REBOOT_REASON', 'oc-platform-types:COMPONENT_REBOOT_REASON', 'openconfig-platform-types:REBOOT_USER_INITIATED', 'REBOOT_USER_INITIATED', 'oc-platform-types:REBOOT_USER_INITIATED', 'openconfig-platform-types:REBOOT_POWER_FAILURE', 'REBOOT_POWER_FAILURE', 'oc-platform-types:REBOOT_POWER_FAILURE', 'openconfig-platform-types:REBOOT_CRITICAL_ERROR', 'REBOOT_CRITICAL_ERROR', 'oc-platform-types:REBOOT_CRITICAL_ERROR', 'openconfig-transport-types:OPTICAL_CHANNEL', 'OPTICAL_CHANNEL', 'oc-opt-types:OPTICAL_CHANNEL', 'oc-if:base-interface-ref', 'base-interface-ref', 'oc-if:interface-id', 'interface-id', 'ietf-if:interface-ref', 'interface-ref', 'ietf-if:interface-state-ref', 'interface-state-ref', 'oc-yang:dotted-quad', 'dotted-quad', 'oc-yang:hex-string', 'hex-string', 'oc-yang:counter32', 'counter32', 'oc-yang:counter64', 'counter64', 'oc-yang:date-and-time', 'date-and-time', 'oc-yang:date', 'date', 'oc-yang:gauge64', 'gauge64', 'oc-yang:phys-address', 'phys-address', 'oc-yang:mac-address', 'mac-address', 'oc-types:percentage', 'percentage', 'oc-types:std-regexp', 'std-regexp', 'oc-types:posix-eregexp', 'posix-eregexp', 'oc-types:timeticks64', 'timeticks64', 'oc-types:ieeefloat32', 'ieeefloat32', 'oc-types:routing-password', 'routing-password', 'oc-types:stat-interval', 'stat-interval', 'oc-opt-types:frequency-type', 'frequency-type', 'oc-opt-types:admin-state-type', 'admin-state-type', 'oc-opt-types:loopback-mode-type', 'loopback-mode-type', 'if:interface-ref', 'if:interface-state-ref', 'yang:counter32', 'yang:zero-based-counter32', 'zero-based-counter32', 'yang:counter64', 'yang:zero-based-counter64', 'zero-based-counter64', 'yang:gauge32', 'gauge32', 'yang:gauge64', 'yang:object-identifier', 'object-identifier', 'yang:object-identifier-128', 'object-identifier-128', 'yang:yang-identifier', 'yang-identifier', 'yang:date-and-time', 'yang:timeticks', 'timeticks', 'yang:timestamp', 'timestamp', 'yang:phys-address', 'yang:mac-address', 'yang:xpath1.0', 'xpath1.0', 'yang:hex-string', 'yang:uuid', 'uuid', 'yang:dotted-quad', 'oc-platform-types:component-power-type', 'component-power-type', 'oc-platform-types:component-redundant-role', 'component-redundant-role', 'oc-platform-types:component-redundant-role-switchover-reason-trigger', 'component-redundant-role-switchover-reason-trigger'])
'identityref'
'oc-vlan-types:TPID_TYPES'
tree ./yang_modules/
./yang_modules/
├── iana-if-type.yang
├── ietf-inet-types.yang
├── ietf-interfaces.yang
├── ietf-yang-metadata.yang
├── ietf-yang-types.yang
├── openconfig-aaa-radius.yang
├── openconfig-aaa-tacacs.yang
├── openconfig-aaa-types.yang
├── openconfig-aaa.yang
├── openconfig-access-points.yang
├── openconfig-acl.yang
├── openconfig-aft-common.yang
├── openconfig-aft-ethernet.yang
├── openconfig-aft-ipv4.yang
├── openconfig-aft-ipv6.yang
├── openconfig-aft-mpls.yang
├── openconfig-aft-network-instance.yang
├── openconfig-aft-pf.yang
├── openconfig-aft-state-synced.yang
├── openconfig-aft-summary.yang
├── openconfig-aft-types.yang
├── openconfig-aft.yang
├── openconfig-alarms.yang
├── openconfig-alarm-types.yang
├── openconfig-ap-interfaces.yang
├── openconfig-ap-manager.yang
├── openconfig-ate-flow.yang
├── openconfig-ate-intf.yang
├── openconfig-bfd.yang
├── openconfig-bgp-common-multiprotocol.yang
├── openconfig-bgp-common-structure.yang
├── openconfig-bgp-common.yang
├── openconfig-bgp-errors.yang
├── openconfig-bgp-global.yang
├── openconfig-bgp-neighbor.yang
├── openconfig-bgp-peer-group.yang
├── openconfig-bgp-policy.yang
├── openconfig-bgp-types.yang
├── openconfig-bgp.yang
├── openconfig-catalog-types.yang
├── openconfig-channel-monitor.yang
├── openconfig-codegen-extensions.yang
├── openconfig-defined-sets.yang
├── openconfig-ethernet-segments.yang
├── openconfig-evpn-types.yang
├── openconfig-evpn.yang
├── openconfig-extensions.yang
├── openconfig-flexalgo.yang
├── openconfig-fw-high-availability.yang
├── openconfig-fw-link-monitoring.yang
├── openconfig-gnpsi-types.yang
├── openconfig-gnsi-acctz.yang
├── openconfig-gnsi-authz.yang
├── openconfig-gnsi-certz.yang
├── openconfig-gnsi-credentialz.yang
├── openconfig-gnsi-pathz.yang
├── openconfig-gnsi.yang
├── openconfig-gribi.yang
├── openconfig-grpc-types.yang
├── openconfig-hashing.yang
├── openconfig-icmpv4-types.yang
├── openconfig-icmpv6-types.yang
├── openconfig-if-8021x.yang
├── openconfig-if-aggregate.yang
├── openconfig-if-ethernet-ext.yang
├── openconfig-if-ethernet.yang
├── openconfig-if-ip-ext.yang
├── openconfig-if-ip.yang
├── openconfig-if-poe.yang
├── openconfig-if-rates.yang
├── openconfig-if-sdn-ext.yang
├── openconfig-if-tunnel.yang
├── openconfig-igmp-types.yang
├── openconfig-igmp.yang
├── openconfig-inet-types.yang
├── openconfig-interfaces.yang
├── openconfig-isis-lsdb-types.yang
├── openconfig-isis-lsp.yang
├── openconfig-isis-policy.yang
├── openconfig-isis-routing.yang
├── openconfig-isis-types.yang
├── openconfig-isis.yang
├── openconfig-keychain-types.yang
├── openconfig-keychain.yang
├── openconfig-lacp.yang
├── openconfig-license.yang
├── openconfig-lldp-types.yang
├── openconfig-lldp.yang
├── openconfig-local-routing.yang
├── openconfig-macsec-types.yang
├── openconfig-macsec.yang
├── openconfig-messages.yang
├── openconfig-metadata.yang
├── openconfig-module-catalog.yang
├── openconfig-mpls-igp.yang
├── openconfig-mpls-ldp.yang
├── openconfig-mpls-rsvp.yang
├── openconfig-mpls-sr.yang
├── openconfig-mpls-static.yang
├── openconfig-mpls-te.yang
├── openconfig-mpls-types.yang
├── openconfig-mpls.yang
├── openconfig-network-instance-l2.yang
├── openconfig-network-instance-l3.yang
├── openconfig-network-instance-policy.yang
├── openconfig-network-instance-types.yang
├── openconfig-network-instance.yang
├── openconfig-openflow-types.yang
├── openconfig-openflow.yang
├── openconfig-optical-amplifier.yang
├── openconfig-optical-attenuator.yang
├── openconfig-ospf-policy.yang
├── openconfig-ospf-types.yang
├── openconfig-ospfv2-area-interface.yang
├── openconfig-ospfv2-area.yang
├── openconfig-ospfv2-common.yang
├── openconfig-ospfv2-global.yang
├── openconfig-ospfv2-lsdb.yang
├── openconfig-ospfv2.yang
├── openconfig-p4rt.yang
├── openconfig-packet-match-types.yang
├── openconfig-packet-match.yang
├── openconfig-pcep.yang
├── openconfig-pf-forwarding-policies.yang
├── openconfig-pf-interfaces.yang
├── openconfig-pf-path-groups.yang
├── openconfig-pf-srte.yang
├── openconfig-pim-types.yang
├── openconfig-pim.yang
├── openconfig-platform-common.yang
├── openconfig-platform-controller-card.yang
├── openconfig-platform-cpu.yang
├── openconfig-platform-ext.yang
├── openconfig-platform-fabric.yang
├── openconfig-platform-fan.yang
├── openconfig-platform-healthz.yang
├── openconfig-platform-integrated-circuit.yang
├── openconfig-platform-linecard.yang
├── openconfig-platform-pipeline-counters.yang
├── openconfig-platform-port.yang
├── openconfig-platform-psu.yang
├── openconfig-platform-software.yang
├── openconfig-platform-transceiver.yang
├── openconfig-platform-types.yang
├── openconfig-platform.yang
├── openconfig-policy-forwarding.yang
├── openconfig-policy-types.yang
├── openconfig-probes-types.yang
├── openconfig-probes.yang
├── openconfig-procmon.yang
├── openconfig-programming-errors.yang
├── openconfig-qos-elements.yang
├── openconfig-qos-interfaces.yang
├── openconfig-qos-mem-mgmt.yang
├── openconfig-qos-types.yang
├── openconfig-qos.yang
├── openconfig-relay-agent.yang
├── openconfig-rib-bgp-attributes.yang
├── openconfig-rib-bgp-ext.yang
├── openconfig-rib-bgp-shared-attributes.yang
├── openconfig-rib-bgp-table-attributes.yang
├── openconfig-rib-bgp-tables.yang
├── openconfig-rib-bgp-types.yang
├── openconfig-rib-bgp.yang
├── openconfig-routing-policy.yang
├── openconfig-rsvp-sr-ext.yang
├── openconfig-sampling-sflow.yang
├── openconfig-sampling.yang
├── openconfig-segment-routing-types.yang
├── openconfig-segment-routing.yang
├── openconfig-spanning-tree-types.yang
├── openconfig-spanning-tree.yang
├── openconfig-srte-policy.yang
├── openconfig-system-bootz.yang
├── openconfig-system-controlplane.yang
├── openconfig-system-grpc.yang
├── openconfig-system-logging.yang
├── openconfig-system-terminal.yang
├── openconfig-system-utilization.yang
├── openconfig-system.yang
├── openconfig-telemetry-types.yang
├── openconfig-telemetry.yang
├── openconfig-terminal-device-properties.yang
├── openconfig-terminal-device-property-types.yang
├── openconfig-terminal-device.yang
├── openconfig-transport-line-common.yang
├── openconfig-transport-line-connectivity.yang
├── openconfig-transport-line-protection.yang
├── openconfig-transport-types.yang
├── openconfig-types.yang
├── openconfig-vlan-types.yang
├── openconfig-vlan.yang
├── openconfig-wavelength-router.yang
├── openconfig-wifi-mac.yang
├── openconfig-wifi-phy.yang
├── openconfig-wifi-types.yang
└── openconfig-yang-types.yang

0 directories, 197 files

Any ideas what could be wrong?

Thank you!

noredistribution commented 1 month ago

oh yes, it looks like I'm hitting the same, not yet sure what could be wrong, looks like similar to: https://github.com/robshakir/pyangbind/issues/8 I've added a few more files to that list one by one as it was complaining

pyang -V -p ./EOS-4.32.1F -f pybind --strict \
  --plugindir /home/tamas/.local/lib/python3.12/site-packages/pyangbind/plugin \
  --deviation ./EOS-4.32.1F/release/openconfig/models/interfaces/arista-intf-deviations.yang \
  --deviation ./EOS-4.32.1F/release/openconfig/models/interfaces/arista-intf-augments.yang \
  -o oc-interfaces.py \
  ./EOS-4.32.1F/openconfig/public/release/models/interfaces/openconfig-interfaces.yang \
  ../yang_modules/ietf-interfaces.yang \
  ../yang_modules/ietf-yang-types.yang \
  ../yang_modules/iana-if-type.yang \
  ./EOS-4.32.1F/openconfig/public/release/models/interfaces/openconfig-if-ethernet.yang \
  ./EOS-4.32.1F/openconfig/public/release/models/interfaces/openconfig-if-aggregate.yang \
  ./EOS-4.32.1F/openconfig/public/release/models/vlan/openconfig-vlan.yang \
  ./EOS-4.32.1F/openconfig/public/release/models/interfaces/openconfig-if-ip.yang

now I'm getting FATAL: unmapped type (arista-addr-type) which I see is in the arista-intf-augments.yang, so probably something else is missing, I'll do some digging.. I wonder if Rob knows though as it's his tool 🤔

ndmitri commented 1 month ago

@noredistribution,

Why do you believe it is necessary to include all other files for pyangbind to work? From the logs, we can see that all other models, which are part of the imports, are loaded by pyang.

# read ./EOS-4.32.1F/openconfig/public/release/models/interfaces/openconfig-interfaces.yang (CL)
# read ./yang_modules/ietf-interfaces.yang (CL)
# read ./yang_modules/iana-if-type.yang (CL)
# read ./yang_modules/ietf-yang-types.yang (CL)
# read /home/ubuntu/.cache/pypoetry/virtualenvs/eos-py-lKpwrY1E-py3.11/share/yang/modules/ietf/ietf-interfaces.yang
# read /home/ubuntu/.cache/pypoetry/virtualenvs/eos-py-lKpwrY1E-py3.11/share/yang/modules/ietf/ietf-yang-types.yang
# read EOS-4.32.1F/openconfig/public/release/models/types/openconfig-yang-types.yang
# read EOS-4.32.1F/openconfig/public/release/models/openconfig-extensions.yang
# read EOS-4.32.1F/openconfig/public/release/models/types/openconfig-types.yang
# read EOS-4.32.1F/openconfig/public/release/models/optical-transport/openconfig-transport-types.yang
# read EOS-4.32.1F/openconfig/public/release/models/platform/openconfig-platform-types.yang
# READ EOS-4.32.1F/openconfig/public/release/models/interfaces/openconfig-interfaces.yang
# read EOS-4.32.1F/openconfig/public/release/models/interfaces/openconfig-if-ethernet.yang
# read /home/ubuntu/.cache/pypoetry/virtualenvs/eos-py-lKpwrY1E-py3.11/share/yang/modules/iana/iana-if-type.yang
# read EOS-4.32.1F/openconfig/public/release/models/interfaces/openconfig-if-aggregate.yang
# read EOS-4.32.1F/openconfig/public/release/models/vlan/openconfig-vlan.yang
# read EOS-4.32.1F/openconfig/public/release/models/vlan/openconfig-vlan-types.yang
# read EOS-4.32.1F/openconfig/public/release/models/interfaces/openconfig-if-ip.yang
# read EOS-4.32.1F/openconfig/public/release/models/types/openconfig-inet-types.yang
# read EOS-4.32.1F/openconfig/public/release/models/interfaces/openconfig-if-tunnel.yang
# read EOS-4.32.1F/openconfig/public/release/models/interfaces/openconfig-if-poe.yang
# read EOS-4.32.1F/release/openconfig/models/interfaces/arista-intf-deviations.yang
# read EOS-4.32.1F/release/openconfig/models/interfaces/arista-intf-augments.yang
noredistribution commented 1 month ago

I don't see the same, for instance for me it cannot find the modules, if I omit the ../yang_modules/ietf-interfaces.yang file then it'll say

INFO: encountered (<pyang.error.Position object at 0x7f2c075b3700>, 'MODULE_NOT_FOUND', 'ietf-interfaces')
FATAL: pyangbind cannot build module that pyang has found errors with.

so after adding all of them that it needed it now complains about FATAL: unmapped type (arista-addr-type) which I'm not sure yet how to solve

ndmitri commented 1 month ago

@noredistribution,

I appreciate your support. Could someone on your team take a look at this issue?

Thank you.

noredistribution commented 1 month ago

to us it looks like this could be an issue on pyangbind, the arista-addr-type was created for a specific use case because the public models didn't have an equivalent one at the time, later when a public model was added we deprecated it but added an toggle for existing customers in case they wanted to still use it, so more than likely this conditional mapping is not handled in pyangbind, let me follow up here: https://github.com/robshakir/pyangbind/issues/352