diff --git a/plugins/org.etsi.mts.tdl.yang2tdl/samples/ietf-extra/ietf-interfaces@2018-02-20.yang b/plugins/org.etsi.mts.tdl.yang2tdl/samples/ietf-extra/ietf-interfaces@2018-02-20.yang new file mode 100644 index 0000000000000000000000000000000000000000..f66c205ce076e65b2ded1d388c944a91829a48b5 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.yang2tdl/samples/ietf-extra/ietf-interfaces@2018-02-20.yang @@ -0,0 +1,1123 @@ +module ietf-interfaces { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; + prefix if; + + import ietf-yang-types { + prefix yang; + } + + organization + "IETF NETMOD (Network Modeling) Working Group"; + + contact + "WG Web: <https://datatracker.ietf.org/wg/netmod/> + WG List: <mailto:netmod@ietf.org> + + Editor: Martin Bjorklund + <mailto:mbj@tail-f.com>"; + + description + "This module contains a collection of YANG definitions for + managing network interfaces. + + Copyright (c) 2018 IETF Trust and the persons identified as + authors of the code. All rights reserved. + + Redistribution and use in source and binary forms, with or + without modification, is permitted pursuant to, and subject + to the license terms contained in, the Simplified BSD License + set forth in Section 4.c of the IETF Trust's Legal Provisions + Relating to IETF Documents + (https://trustee.ietf.org/license-info). + + This version of this YANG module is part of RFC 8343; see + the RFC itself for full legal notices."; + + revision 2018-02-20 { + description + "Updated to support NMDA."; + reference + "RFC 8343: A YANG Data Model for Interface Management"; + } + + revision 2014-05-08 { + description + "Initial revision."; + reference + "RFC 7223: A YANG Data Model for Interface Management"; + } + + /* + * Typedefs + */ + + typedef interface-ref { + type leafref { + path "/if:interfaces/if:interface/if:name"; + } + description + "This type is used by data models that need to reference + interfaces."; + } + + /* + * Identities + */ + + identity interface-type { + description + "Base identity from which specific interface types are + derived."; + } + + /* + * Features + */ + + feature arbitrary-names { + description + "This feature indicates that the device allows user-controlled + interfaces to be named arbitrarily."; + } + feature pre-provisioning { + description + "This feature indicates that the device supports + pre-provisioning of interface configuration, i.e., it is + possible to configure an interface whose physical interface + hardware is not present on the device."; + } + feature if-mib { + description + "This feature indicates that the device implements + the IF-MIB."; + reference + "RFC 2863: The Interfaces Group MIB"; + } + + /* + * Data nodes + */ + + container interfaces { + description + "Interface parameters."; + + list interface { + key "name"; + + description + "The list of interfaces on the device. + + The status of an interface is available in this list in the + operational state. If the configuration of a + system-controlled interface cannot be used by the system + (e.g., the interface hardware present does not match the + interface type), then the configuration is not applied to + the system-controlled interface shown in the operational + state. If the configuration of a user-controlled interface + cannot be used by the system, the configured interface is + not instantiated in the operational state. + + System-controlled interfaces created by the system are + always present in this list in the operational state, + whether or not they are configured."; + + leaf name { + type string; + description + "The name of the interface. + + A device MAY restrict the allowed values for this leaf, + possibly depending on the type of the interface. + For system-controlled interfaces, this leaf is the + device-specific name of the interface. + + If a client tries to create configuration for a + system-controlled interface that is not present in the + operational state, the server MAY reject the request if + the implementation does not support pre-provisioning of + interfaces or if the name refers to an interface that can + never exist in the system. A Network Configuration + Protocol (NETCONF) server MUST reply with an rpc-error + with the error-tag 'invalid-value' in this case. + + If the device supports pre-provisioning of interface + configuration, the 'pre-provisioning' feature is + advertised. + + If the device allows arbitrarily named user-controlled + interfaces, the 'arbitrary-names' feature is advertised. + + When a configured user-controlled interface is created by + the system, it is instantiated with the same name in the + operational state. + + A server implementation MAY map this leaf to the ifName + MIB object. Such an implementation needs to use some + mechanism to handle the differences in size and characters + allowed between this leaf and ifName. The definition of + such a mechanism is outside the scope of this document."; + reference + "RFC 2863: The Interfaces Group MIB - ifName"; + } + + leaf description { + type string; + description + "A textual description of the interface. + + A server implementation MAY map this leaf to the ifAlias + MIB object. Such an implementation needs to use some + mechanism to handle the differences in size and characters + allowed between this leaf and ifAlias. The definition of + such a mechanism is outside the scope of this document. + + Since ifAlias is defined to be stored in non-volatile + storage, the MIB implementation MUST map ifAlias to the + value of 'description' in the persistently stored + configuration."; + reference + "RFC 2863: The Interfaces Group MIB - ifAlias"; + } + + leaf type { + type identityref { + base interface-type; + } + mandatory true; + description + "The type of the interface. + + When an interface entry is created, a server MAY + initialize the type leaf with a valid value, e.g., if it + is possible to derive the type from the name of the + interface. + + If a client tries to set the type of an interface to a + value that can never be used by the system, e.g., if the + type is not supported or if the type does not match the + name of the interface, the server MUST reject the request. + A NETCONF server MUST reply with an rpc-error with the + error-tag 'invalid-value' in this case."; + reference + "RFC 2863: The Interfaces Group MIB - ifType"; + } + + leaf enabled { + type boolean; + default "true"; + description + "This leaf contains the configured, desired state of the + interface. + + Systems that implement the IF-MIB use the value of this + leaf in the intended configuration to set + IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry + has been initialized, as described in RFC 2863. + + Changes in this leaf in the intended configuration are + reflected in ifAdminStatus."; + reference + "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; + } + + leaf link-up-down-trap-enable { + if-feature if-mib; + type enumeration { + enum enabled { + value 1; + description + "The device will generate linkUp/linkDown SNMP + notifications for this interface."; + } + enum disabled { + value 2; + description + "The device will not generate linkUp/linkDown SNMP + notifications for this interface."; + } + } + description + "Controls whether linkUp/linkDown SNMP notifications + should be generated for this interface. + + If this node is not configured, the value 'enabled' is + operationally used by the server for interfaces that do + not operate on top of any other interface (i.e., there are + no 'lower-layer-if' entries), and 'disabled' otherwise."; + reference + "RFC 2863: The Interfaces Group MIB - + ifLinkUpDownTrapEnable"; + } + + leaf admin-status { + if-feature if-mib; + type enumeration { + enum up { + value 1; + description + "Ready to pass packets."; + } + enum down { + value 2; + description + "Not ready to pass packets and not in some test mode."; + } + enum testing { + value 3; + description + "In some test mode."; + } + } + config false; + mandatory true; + description + "The desired state of the interface. + + This leaf has the same read semantics as ifAdminStatus."; + reference + "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; + } + + leaf oper-status { + type enumeration { + enum up { + value 1; + description + "Ready to pass packets."; + } + enum down { + value 2; + + description + "The interface does not pass any packets."; + } + enum testing { + value 3; + description + "In some test mode. No operational packets can + be passed."; + } + enum unknown { + value 4; + description + "Status cannot be determined for some reason."; + } + enum dormant { + value 5; + description + "Waiting for some external event."; + } + enum not-present { + value 6; + description + "Some component (typically hardware) is missing."; + } + enum lower-layer-down { + value 7; + description + "Down due to state of lower-layer interface(s)."; + } + } + config false; + mandatory true; + description + "The current operational state of the interface. + + This leaf has the same semantics as ifOperStatus."; + reference + "RFC 2863: The Interfaces Group MIB - ifOperStatus"; + } + + leaf last-change { + type yang:date-and-time; + config false; + description + "The time the interface entered its current operational + state. If the current state was entered prior to the + last re-initialization of the local network management + subsystem, then this node is not present."; + reference + "RFC 2863: The Interfaces Group MIB - ifLastChange"; + } + + leaf if-index { + if-feature if-mib; + type int32 { + range "1..2147483647"; + } + config false; + mandatory true; + description + "The ifIndex value for the ifEntry represented by this + interface."; + reference + "RFC 2863: The Interfaces Group MIB - ifIndex"; + } + + leaf phys-address { + type yang:phys-address; + config false; + description + "The interface's address at its protocol sub-layer. For + example, for an 802.x interface, this object normally + contains a Media Access Control (MAC) address. The + interface's media-specific modules must define the bit + and byte ordering and the format of the value of this + object. For interfaces that do not have such an address + (e.g., a serial line), this node is not present."; + reference + "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; + } + + leaf-list higher-layer-if { + type interface-ref; + config false; + description + "A list of references to interfaces layered on top of this + interface."; + reference + "RFC 2863: The Interfaces Group MIB - ifStackTable"; + } + + leaf-list lower-layer-if { + type interface-ref; + config false; + + description + "A list of references to interfaces layered underneath this + interface."; + reference + "RFC 2863: The Interfaces Group MIB - ifStackTable"; + } + + leaf speed { + type yang:gauge64; + units "bits/second"; + config false; + description + "An estimate of the interface's current bandwidth in bits + per second. For interfaces that do not vary in + bandwidth or for those where no accurate estimation can + be made, this node should contain the nominal bandwidth. + For interfaces that have no concept of bandwidth, this + node is not present."; + reference + "RFC 2863: The Interfaces Group MIB - + ifSpeed, ifHighSpeed"; + } + + container statistics { + config false; + description + "A collection of interface-related statistics objects."; + + leaf discontinuity-time { + type yang:date-and-time; + mandatory true; + description + "The time on the most recent occasion at which any one or + more of this interface's counters suffered a + discontinuity. If no such discontinuities have occurred + since the last re-initialization of the local management + subsystem, then this node contains the time the local + management subsystem re-initialized itself."; + } + + leaf in-octets { + type yang:counter64; + description + "The total number of octets received on the interface, + including framing characters. + + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; + } + + leaf in-unicast-pkts { + type yang:counter64; + description + "The number of packets, delivered by this sub-layer to a + higher (sub-)layer, that were not addressed to a + multicast or broadcast address at this sub-layer. + + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; + } + + leaf in-broadcast-pkts { + type yang:counter64; + description + "The number of packets, delivered by this sub-layer to a + higher (sub-)layer, that were addressed to a broadcast + address at this sub-layer. + + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - + ifHCInBroadcastPkts"; + } + + leaf in-multicast-pkts { + type yang:counter64; + description + "The number of packets, delivered by this sub-layer to a + higher (sub-)layer, that were addressed to a multicast + address at this sub-layer. For a MAC-layer protocol, + this includes both Group and Functional addresses. + + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - + ifHCInMulticastPkts"; + } + + leaf in-discards { + type yang:counter32; + description + "The number of inbound packets that were chosen to be + discarded even though no errors had been detected to + prevent their being deliverable to a higher-layer + protocol. One possible reason for discarding such a + packet could be to free up buffer space. + + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - ifInDiscards"; + } + + leaf in-errors { + type yang:counter32; + description + "For packet-oriented interfaces, the number of inbound + packets that contained errors preventing them from being + deliverable to a higher-layer protocol. For character- + oriented or fixed-length interfaces, the number of + inbound transmission units that contained errors + preventing them from being deliverable to a higher-layer + protocol. + + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - ifInErrors"; + } + + leaf in-unknown-protos { + type yang:counter32; + + description + "For packet-oriented interfaces, the number of packets + received via the interface that were discarded because + of an unknown or unsupported protocol. For + character-oriented or fixed-length interfaces that + support protocol multiplexing, the number of + transmission units received via the interface that were + discarded because of an unknown or unsupported protocol. + For any interface that does not support protocol + multiplexing, this counter is not present. + + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; + } + + leaf out-octets { + type yang:counter64; + description + "The total number of octets transmitted out of the + interface, including framing characters. + + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; + } + + leaf out-unicast-pkts { + type yang:counter64; + description + "The total number of packets that higher-level protocols + requested be transmitted and that were not addressed + to a multicast or broadcast address at this sub-layer, + including those that were discarded or not sent. + + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; + } + + leaf out-broadcast-pkts { + type yang:counter64; + description + "The total number of packets that higher-level protocols + requested be transmitted and that were addressed to a + broadcast address at this sub-layer, including those + that were discarded or not sent. + + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - + ifHCOutBroadcastPkts"; + } + + leaf out-multicast-pkts { + type yang:counter64; + description + "The total number of packets that higher-level protocols + requested be transmitted and that were addressed to a + multicast address at this sub-layer, including those + that were discarded or not sent. For a MAC-layer + protocol, this includes both Group and Functional + addresses. + + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - + ifHCOutMulticastPkts"; + } + + leaf out-discards { + type yang:counter32; + description + "The number of outbound packets that were chosen to be + discarded even though no errors had been detected to + prevent their being transmitted. One possible reason + for discarding such a packet could be to free up buffer + space. + + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; + } + + leaf out-errors { + type yang:counter32; + description + "For packet-oriented interfaces, the number of outbound + packets that could not be transmitted because of errors. + For character-oriented or fixed-length interfaces, the + number of outbound transmission units that could not be + transmitted because of errors. + + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - ifOutErrors"; + } + } + + } + } + + /* + * Legacy typedefs + */ + + typedef interface-state-ref { + type leafref { + path "/if:interfaces-state/if:interface/if:name"; + } + status deprecated; + description + "This type is used by data models that need to reference + the operationally present interfaces."; + } + + /* + * Legacy operational state data nodes + */ + + container interfaces-state { + config false; + status deprecated; + description + "Data nodes for the operational state of interfaces."; + + list interface { + key "name"; + status deprecated; + + description + "The list of interfaces on the device. + + System-controlled interfaces created by the system are + always present in this list, whether or not they are + configured."; + + leaf name { + type string; + status deprecated; + description + "The name of the interface. + + A server implementation MAY map this leaf to the ifName + MIB object. Such an implementation needs to use some + mechanism to handle the differences in size and characters + allowed between this leaf and ifName. The definition of + such a mechanism is outside the scope of this document."; + reference + "RFC 2863: The Interfaces Group MIB - ifName"; + } + + leaf type { + type identityref { + base interface-type; + } + mandatory true; + status deprecated; + description + "The type of the interface."; + reference + "RFC 2863: The Interfaces Group MIB - ifType"; + } + + leaf admin-status { + if-feature if-mib; + type enumeration { + enum up { + value 1; + description + "Ready to pass packets."; + } + enum down { + value 2; + description + "Not ready to pass packets and not in some test mode."; + } + enum testing { + value 3; + description + "In some test mode."; + } + } + mandatory true; + status deprecated; + description + "The desired state of the interface. + + This leaf has the same read semantics as ifAdminStatus."; + reference + "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; + } + + leaf oper-status { + type enumeration { + enum up { + value 1; + description + "Ready to pass packets."; + } + enum down { + value 2; + description + "The interface does not pass any packets."; + } + enum testing { + value 3; + description + "In some test mode. No operational packets can + be passed."; + } + enum unknown { + value 4; + description + "Status cannot be determined for some reason."; + } + enum dormant { + value 5; + description + "Waiting for some external event."; + } + enum not-present { + value 6; + description + "Some component (typically hardware) is missing."; + } + enum lower-layer-down { + value 7; + description + "Down due to state of lower-layer interface(s)."; + } + } + mandatory true; + status deprecated; + description + "The current operational state of the interface. + + This leaf has the same semantics as ifOperStatus."; + reference + "RFC 2863: The Interfaces Group MIB - ifOperStatus"; + } + + leaf last-change { + type yang:date-and-time; + status deprecated; + description + "The time the interface entered its current operational + state. If the current state was entered prior to the + last re-initialization of the local network management + subsystem, then this node is not present."; + reference + "RFC 2863: The Interfaces Group MIB - ifLastChange"; + } + + leaf if-index { + if-feature if-mib; + type int32 { + range "1..2147483647"; + } + mandatory true; + status deprecated; + description + "The ifIndex value for the ifEntry represented by this + interface."; + + reference + "RFC 2863: The Interfaces Group MIB - ifIndex"; + } + + leaf phys-address { + type yang:phys-address; + status deprecated; + description + "The interface's address at its protocol sub-layer. For + example, for an 802.x interface, this object normally + contains a Media Access Control (MAC) address. The + interface's media-specific modules must define the bit + and byte ordering and the format of the value of this + object. For interfaces that do not have such an address + (e.g., a serial line), this node is not present."; + reference + "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; + } + + leaf-list higher-layer-if { + type interface-state-ref; + status deprecated; + description + "A list of references to interfaces layered on top of this + interface."; + reference + "RFC 2863: The Interfaces Group MIB - ifStackTable"; + } + + leaf-list lower-layer-if { + type interface-state-ref; + status deprecated; + description + "A list of references to interfaces layered underneath this + interface."; + reference + "RFC 2863: The Interfaces Group MIB - ifStackTable"; + } + + leaf speed { + type yang:gauge64; + units "bits/second"; + status deprecated; + description + "An estimate of the interface's current bandwidth in bits + per second. For interfaces that do not vary in + bandwidth or for those where no accurate estimation can + + be made, this node should contain the nominal bandwidth. + For interfaces that have no concept of bandwidth, this + node is not present."; + reference + "RFC 2863: The Interfaces Group MIB - + ifSpeed, ifHighSpeed"; + } + + container statistics { + status deprecated; + description + "A collection of interface-related statistics objects."; + + leaf discontinuity-time { + type yang:date-and-time; + mandatory true; + status deprecated; + description + "The time on the most recent occasion at which any one or + more of this interface's counters suffered a + discontinuity. If no such discontinuities have occurred + since the last re-initialization of the local management + subsystem, then this node contains the time the local + management subsystem re-initialized itself."; + } + + leaf in-octets { + type yang:counter64; + status deprecated; + description + "The total number of octets received on the interface, + including framing characters. + + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; + } + + leaf in-unicast-pkts { + type yang:counter64; + status deprecated; + description + "The number of packets, delivered by this sub-layer to a + higher (sub-)layer, that were not addressed to a + multicast or broadcast address at this sub-layer. + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; + } + + leaf in-broadcast-pkts { + type yang:counter64; + status deprecated; + description + "The number of packets, delivered by this sub-layer to a + higher (sub-)layer, that were addressed to a broadcast + address at this sub-layer. + + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - + ifHCInBroadcastPkts"; + } + + leaf in-multicast-pkts { + type yang:counter64; + status deprecated; + description + "The number of packets, delivered by this sub-layer to a + higher (sub-)layer, that were addressed to a multicast + address at this sub-layer. For a MAC-layer protocol, + this includes both Group and Functional addresses. + + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - + ifHCInMulticastPkts"; + } + + leaf in-discards { + type yang:counter32; + status deprecated; + + description + "The number of inbound packets that were chosen to be + discarded even though no errors had been detected to + prevent their being deliverable to a higher-layer + protocol. One possible reason for discarding such a + packet could be to free up buffer space. + + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - ifInDiscards"; + } + + leaf in-errors { + type yang:counter32; + status deprecated; + description + "For packet-oriented interfaces, the number of inbound + packets that contained errors preventing them from being + deliverable to a higher-layer protocol. For character- + oriented or fixed-length interfaces, the number of + inbound transmission units that contained errors + preventing them from being deliverable to a higher-layer + protocol. + + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - ifInErrors"; + } + + leaf in-unknown-protos { + type yang:counter32; + status deprecated; + description + "For packet-oriented interfaces, the number of packets + received via the interface that were discarded because + of an unknown or unsupported protocol. For + character-oriented or fixed-length interfaces that + support protocol multiplexing, the number of + transmission units received via the interface that were + discarded because of an unknown or unsupported protocol. + For any interface that does not support protocol + multiplexing, this counter is not present. + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; + } + + leaf out-octets { + type yang:counter64; + status deprecated; + description + "The total number of octets transmitted out of the + interface, including framing characters. + + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; + } + + leaf out-unicast-pkts { + type yang:counter64; + status deprecated; + description + "The total number of packets that higher-level protocols + requested be transmitted and that were not addressed + to a multicast or broadcast address at this sub-layer, + including those that were discarded or not sent. + + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; + } + + leaf out-broadcast-pkts { + type yang:counter64; + status deprecated; + + description + "The total number of packets that higher-level protocols + requested be transmitted and that were addressed to a + broadcast address at this sub-layer, including those + that were discarded or not sent. + + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - + ifHCOutBroadcastPkts"; + } + + leaf out-multicast-pkts { + type yang:counter64; + status deprecated; + description + "The total number of packets that higher-level protocols + requested be transmitted and that were addressed to a + multicast address at this sub-layer, including those + that were discarded or not sent. For a MAC-layer + protocol, this includes both Group and Functional + addresses. + + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - + ifHCOutMulticastPkts"; + } + + leaf out-discards { + type yang:counter32; + status deprecated; + description + "The number of outbound packets that were chosen to be + discarded even though no errors had been detected to + prevent their being transmitted. One possible reason + for discarding such a packet could be to free up buffer + space. + + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; + } + + leaf out-errors { + type yang:counter32; + status deprecated; + description + "For packet-oriented interfaces, the number of outbound + packets that could not be transmitted because of errors. + For character-oriented or fixed-length interfaces, the + number of outbound transmission units that could not be + transmitted because of errors. + + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - ifOutErrors"; + } + } + } + } +} diff --git a/plugins/org.etsi.mts.tdl.yang2tdl/samples/mwt/iana-if-type@2023-01-26.yang b/plugins/org.etsi.mts.tdl.yang2tdl/samples/mwt/iana-if-type@2023-01-26.yang new file mode 100644 index 0000000000000000000000000000000000000000..036e1f9145d2092f6218b85f7d8553cfed1d6c95 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.yang2tdl/samples/mwt/iana-if-type@2023-01-26.yang @@ -0,0 +1,1852 @@ +module iana-if-type { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; + prefix ianaift; + + import ietf-interfaces { + prefix if; + } + + organization "IANA"; + contact + " Internet Assigned Numbers Authority + + Postal: ICANN + 12025 Waterfront Drive, Suite 300 + Los Angeles, CA 90094-2536 + United States + + Tel: +1 310 301 5800 + <mailto:iana@iana.org>"; + description + "This YANG module defines YANG identities for IANA-registered + interface types. + + This YANG module is maintained by IANA and reflects the + 'ifType definitions' registry. + + The latest revision of this YANG module can be obtained from + the IANA web site. + + Requests for new values should be made to IANA via + email (iana@iana.org). + + Copyright (c) 2014 IETF Trust and the persons identified as + authors of the code. All rights reserved. + + Redistribution and use in source and binary forms, with or + without modification, is permitted pursuant to, and subject + to the license terms contained in, the Simplified BSD License + set forth in Section 4.c of the IETF Trust's Legal Provisions + Relating to IETF Documents + (http://trustee.ietf.org/license-info). + + The initial version of this YANG module is part of RFC 7224; + see the RFC itself for full legal notices."; + reference + "IANA 'ifType definitions' registry. + <http://www.iana.org/assignments/smi-numbers>"; + + revision 2023-01-26 { + description + "Fix incorrect quotation for previous 3 revision statements."; + } + + revision 2022-08-24 { + description + "Updated reference for ifType 303."; + } + + revision 2022-08-17 { + description + "Changed gpon description to refer to G.984."; + } + + revision 2022-03-07 { + description + "Coalesced revision history entries for 2018-06-28."; + } + + revision 2021-06-21 { + description + "Corrected reference for ifType 303."; + } + + revision 2021-05-17 { + description + "Registered ifType 303."; + } + + revision 2021-04-22 { + description + "Registered ifType 302."; + } + + revision 2021-04-01 { + description + "Updated reference for 301."; + } + + revision 2021-02-18 { + description + "Registered ifType 301."; + } + + revision 2020-08-27 { + description + "Added missing references."; + } + + revision 2020-07-13 { + description + "Added identity cpri."; + } + + revision 2020-07-10 { + description + "Registered ifType 300."; + } + + revision 2020-01-10 { + description + "Registered ifType 299."; + } + + revision 2019-10-16 { + description + "Registered ifType 298."; + } + revision 2019-07-16 { + description + "Registered ifType 297."; + } + revision 2019-06-21 { + description + "Updated reference associated with ifTypes 295-296."; + } + + revision 2019-02-08 { + description + "Corrected formatting issue."; + } + + revision 2019-01-31 { + description + "Registered ifTypes 295-296."; + } + + revision 2018-07-03 { + description + "Corrected revision date."; + } + + revision 2018-06-29 { + description + "Corrected formatting issue."; + } + + revision 2018-06-28 { + description + "Registered ifTypes 293 and 294."; + } + + revision 2018-06-22 { + description + "Registered ifType 292."; + } + + revision 2018-06-21 { + description + "Registered ifType 291."; + } + + revision 2017-03-30 { + description + "Registered ifType 290."; + } + + revision 2017-01-19 { + description + "Registered ifType 289."; + } + + revision 2016-11-23 { + description + "Registered ifTypes 283-288."; + } + + revision 2016-06-09 { + description + "Registered ifType 282."; + } + revision 2016-05-03 { + description + "Registered ifType 281."; + } + revision 2015-06-12 { + description + "Corrected formatting issue."; + } + revision 2014-09-24 { + description + "Registered ifType 280."; + } + revision 2014-09-19 { + description + "Registered ifType 279."; + } + revision 2014-07-03 { + description + "Registered ifTypes 277-278."; + } + revision 2014-05-19 { + description + "Updated the contact address."; + } + revision 2014-05-08 { + description + "Initial revision."; + reference + "RFC 7224: IANA Interface Type YANG Module"; + } + + identity iana-interface-type { + base if:interface-type; + description + "This identity is used as a base for all interface types + defined in the 'ifType definitions' registry."; + } + + identity other { + base iana-interface-type; + } + identity regular1822 { + base iana-interface-type; + } + identity hdh1822 { + base iana-interface-type; + } + identity ddnX25 { + base iana-interface-type; + } + identity rfc877x25 { + base iana-interface-type; + reference + "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; + } + identity ethernetCsmacd { + base iana-interface-type; + description + "For all Ethernet-like interfaces, regardless of speed, + as per RFC 3635."; + reference + "RFC 3635 - Definitions of Managed Objects for the + Ethernet-like Interface Types"; + } + identity iso88023Csmacd { + base iana-interface-type; + status deprecated; + description + "Deprecated via RFC 3635. + Use ethernetCsmacd(6) instead."; + reference + "RFC 3635 - Definitions of Managed Objects for the + Ethernet-like Interface Types"; + } + identity iso88024TokenBus { + base iana-interface-type; + } + identity iso88025TokenRing { + base iana-interface-type; + } + identity iso88026Man { + base iana-interface-type; + } + identity starLan { + base iana-interface-type; + status deprecated; + description + "Deprecated via RFC 3635. + Use ethernetCsmacd(6) instead."; + reference + "RFC 3635 - Definitions of Managed Objects for the + Ethernet-like Interface Types"; + } + identity proteon10Mbit { + base iana-interface-type; + } + identity proteon80Mbit { + base iana-interface-type; + } + identity hyperchannel { + base iana-interface-type; + } + identity fddi { + base iana-interface-type; + reference + "RFC 1512 - FDDI Management Information Base"; + } + identity lapb { + base iana-interface-type; + reference + "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; + } + identity sdlc { + base iana-interface-type; + } + identity ds1 { + base iana-interface-type; + description + "DS1-MIB."; + reference + "RFC 4805 - Definitions of Managed Objects for the + DS1, J1, E1, DS2, and E2 Interface Types"; + } + identity e1 { + base iana-interface-type; + status obsolete; + description + "Obsolete; see DS1-MIB."; + reference + "RFC 4805 - Definitions of Managed Objects for the + DS1, J1, E1, DS2, and E2 Interface Types"; + } + identity basicISDN { + base iana-interface-type; + description + "No longer used. See also RFC 2127."; + } + identity primaryISDN { + base iana-interface-type; + description + "No longer used. See also RFC 2127."; + } + identity propPointToPointSerial { + base iana-interface-type; + description + "Proprietary serial."; + } + identity ppp { + base iana-interface-type; + } + identity softwareLoopback { + base iana-interface-type; + } + identity eon { + base iana-interface-type; + description + "CLNP over IP."; + } + identity ethernet3Mbit { + base iana-interface-type; + } + identity nsip { + base iana-interface-type; + description + "XNS over IP."; + } + identity slip { + base iana-interface-type; + description + "Generic SLIP."; + } + identity ultra { + base iana-interface-type; + description + "Ultra Technologies."; + } + identity ds3 { + base iana-interface-type; + description + "DS3-MIB."; + reference + "RFC 3896 - Definitions of Managed Objects for the + DS3/E3 Interface Type"; + } + identity sip { + base iana-interface-type; + description + "SMDS, coffee."; + reference + "RFC 1694 - Definitions of Managed Objects for SMDS + Interfaces using SMIv2"; + } + identity frameRelay { + base iana-interface-type; + description + "DTE only."; + reference + "RFC 2115 - Management Information Base for Frame Relay + DTEs Using SMIv2"; + } + identity rs232 { + base iana-interface-type; + reference + "RFC 1659 - Definitions of Managed Objects for RS-232-like + Hardware Devices using SMIv2"; + } + identity para { + base iana-interface-type; + description + "Parallel-port."; + reference + "RFC 1660 - Definitions of Managed Objects for + Parallel-printer-like Hardware Devices using + SMIv2"; + } + identity arcnet { + base iana-interface-type; + description + "ARCnet."; + } + identity arcnetPlus { + base iana-interface-type; + description + "ARCnet Plus."; + } + identity atm { + base iana-interface-type; + description + "ATM cells."; + } + identity miox25 { + base iana-interface-type; + reference + "RFC 1461 - SNMP MIB extension for Multiprotocol + Interconnect over X.25"; + } + identity sonet { + base iana-interface-type; + description + "SONET or SDH."; + } + identity x25ple { + base iana-interface-type; + reference + "RFC 2127 - ISDN Management Information Base using SMIv2"; + } + identity iso88022llc { + base iana-interface-type; + } + identity localTalk { + base iana-interface-type; + } + identity smdsDxi { + base iana-interface-type; + } + identity frameRelayService { + base iana-interface-type; + description + "FRNETSERV-MIB."; + reference + "RFC 2954 - Definitions of Managed Objects for Frame + Relay Service"; + } + identity v35 { + base iana-interface-type; + } + identity hssi { + base iana-interface-type; + } + identity hippi { + base iana-interface-type; + } + identity modem { + base iana-interface-type; + description + "Generic modem."; + } + identity aal5 { + base iana-interface-type; + description + "AAL5 over ATM."; + } + identity sonetPath { + base iana-interface-type; + } + identity sonetVT { + base iana-interface-type; + } + identity smdsIcip { + base iana-interface-type; + description + "SMDS InterCarrier Interface."; + } + identity propVirtual { + base iana-interface-type; + description + "Proprietary virtual/internal."; + reference + "RFC 2863 - The Interfaces Group MIB"; + } + identity propMultiplexor { + base iana-interface-type; + description + "Proprietary multiplexing."; + reference + "RFC 2863 - The Interfaces Group MIB"; + } + identity ieee80212 { + base iana-interface-type; + description + "100BaseVG."; + } + identity fibreChannel { + base iana-interface-type; + description + "Fibre Channel."; + } + identity hippiInterface { + base iana-interface-type; + description + "HIPPI interfaces."; + } + identity frameRelayInterconnect { + base iana-interface-type; + status obsolete; + description + "Obsolete; use either + frameRelay(32) or frameRelayService(44)."; + } + identity aflane8023 { + base iana-interface-type; + description + "ATM Emulated LAN for 802.3."; + } + identity aflane8025 { + base iana-interface-type; + description + "ATM Emulated LAN for 802.5."; + } + identity cctEmul { + base iana-interface-type; + description + "ATM Emulated circuit."; + } + identity fastEther { + base iana-interface-type; + status deprecated; + description + "Obsoleted via RFC 3635. + ethernetCsmacd(6) should be used instead."; + reference + "RFC 3635 - Definitions of Managed Objects for the + Ethernet-like Interface Types"; + } + identity isdn { + base iana-interface-type; + description + "ISDN and X.25."; + reference + "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN + in the Packet Mode"; + } + identity v11 { + base iana-interface-type; + description + "CCITT V.11/X.21."; + } + identity v36 { + base iana-interface-type; + description + "CCITT V.36."; + } + identity g703at64k { + base iana-interface-type; + description + "CCITT G703 at 64Kbps."; + } + identity g703at2mb { + base iana-interface-type; + status obsolete; + description + "Obsolete; see DS1-MIB."; + } + identity qllc { + base iana-interface-type; + description + "SNA QLLC."; + } + identity fastEtherFX { + base iana-interface-type; + status deprecated; + description + "Obsoleted via RFC 3635. + ethernetCsmacd(6) should be used instead."; + reference + "RFC 3635 - Definitions of Managed Objects for the + Ethernet-like Interface Types"; + } + identity channel { + base iana-interface-type; + description + "Channel."; + } + identity ieee80211 { + base iana-interface-type; + description + "Radio spread spectrum."; + } + identity ibm370parChan { + base iana-interface-type; + description + "IBM System 360/370 OEMI Channel."; + } + identity escon { + base iana-interface-type; + description + "IBM Enterprise Systems Connection."; + } + identity dlsw { + base iana-interface-type; + description + "Data Link Switching."; + } + identity isdns { + base iana-interface-type; + description + "ISDN S/T interface."; + } + identity isdnu { + base iana-interface-type; + description + "ISDN U interface."; + } + identity lapd { + base iana-interface-type; + description + "Link Access Protocol D."; + } + identity ipSwitch { + base iana-interface-type; + description + "IP Switching Objects."; + } + identity rsrb { + base iana-interface-type; + description + "Remote Source Route Bridging."; + } + identity atmLogical { + base iana-interface-type; + description + "ATM Logical Port."; + reference + "RFC 3606 - Definitions of Supplemental Managed Objects + for ATM Interface"; + } + identity ds0 { + base iana-interface-type; + description + "Digital Signal Level 0."; + reference + "RFC 2494 - Definitions of Managed Objects for the DS0 + and DS0 Bundle Interface Type"; + } + identity ds0Bundle { + base iana-interface-type; + description + "Group of ds0s on the same ds1."; + reference + "RFC 2494 - Definitions of Managed Objects for the DS0 + and DS0 Bundle Interface Type"; + } + identity bsc { + base iana-interface-type; + description + "Bisynchronous Protocol."; + } + identity async { + base iana-interface-type; + description + "Asynchronous Protocol."; + } + identity cnr { + base iana-interface-type; + description + "Combat Net Radio."; + } + identity iso88025Dtr { + base iana-interface-type; + description + "ISO 802.5r DTR."; + } + identity eplrs { + base iana-interface-type; + description + "Ext Pos Loc Report Sys."; + } + identity arap { + base iana-interface-type; + description + "Appletalk Remote Access Protocol."; + } + identity propCnls { + base iana-interface-type; + description + "Proprietary Connectionless Protocol."; + } + identity hostPad { + base iana-interface-type; + description + "CCITT-ITU X.29 PAD Protocol."; + } + identity termPad { + base iana-interface-type; + description + "CCITT-ITU X.3 PAD Facility."; + } + identity frameRelayMPI { + base iana-interface-type; + description + "Multiproto Interconnect over FR."; + } + identity x213 { + base iana-interface-type; + description + "CCITT-ITU X213."; + } + identity adsl { + base iana-interface-type; + description + "Asymmetric Digital Subscriber Loop."; + } + identity radsl { + base iana-interface-type; + description + "Rate-Adapt. Digital Subscriber Loop."; + } + identity sdsl { + base iana-interface-type; + description + "Symmetric Digital Subscriber Loop."; + } + identity vdsl { + base iana-interface-type; + description + "Very H-Speed Digital Subscrib. Loop."; + } + identity iso88025CRFPInt { + base iana-interface-type; + description + "ISO 802.5 CRFP."; + } + identity myrinet { + base iana-interface-type; + description + "Myricom Myrinet."; + } + identity voiceEM { + base iana-interface-type; + description + "Voice recEive and transMit."; + } + identity voiceFXO { + base iana-interface-type; + description + "Voice Foreign Exchange Office."; + } + identity voiceFXS { + base iana-interface-type; + description + "Voice Foreign Exchange Station."; + } + identity voiceEncap { + base iana-interface-type; + description + "Voice encapsulation."; + } + identity voiceOverIp { + base iana-interface-type; + description + "Voice over IP encapsulation."; + } + identity atmDxi { + base iana-interface-type; + description + "ATM DXI."; + } + identity atmFuni { + base iana-interface-type; + description + "ATM FUNI."; + } + identity atmIma { + base iana-interface-type; + description + "ATM IMA."; + } + identity pppMultilinkBundle { + base iana-interface-type; + description + "PPP Multilink Bundle."; + } + identity ipOverCdlc { + base iana-interface-type; + description + "IBM ipOverCdlc."; + } + identity ipOverClaw { + base iana-interface-type; + description + "IBM Common Link Access to Workstn."; + } + identity stackToStack { + base iana-interface-type; + description + "IBM stackToStack."; + } + identity virtualIpAddress { + base iana-interface-type; + description + "IBM VIPA."; + } + identity mpc { + base iana-interface-type; + description + "IBM multi-protocol channel support."; + } + identity ipOverAtm { + base iana-interface-type; + description + "IBM ipOverAtm."; + reference + "RFC 2320 - Definitions of Managed Objects for Classical IP + and ARP Over ATM Using SMIv2 (IPOA-MIB)"; + } + identity iso88025Fiber { + base iana-interface-type; + description + "ISO 802.5j Fiber Token Ring."; + } + identity tdlc { + base iana-interface-type; + description + "IBM twinaxial data link control."; + } + identity gigabitEthernet { + base iana-interface-type; + status deprecated; + description + "Obsoleted via RFC 3635. + ethernetCsmacd(6) should be used instead."; + reference + "RFC 3635 - Definitions of Managed Objects for the + Ethernet-like Interface Types"; + } + identity hdlc { + base iana-interface-type; + description + "HDLC."; + } + identity lapf { + base iana-interface-type; + description + "LAP F."; + } + identity v37 { + base iana-interface-type; + description + "V.37."; + } + identity x25mlp { + base iana-interface-type; + description + "Multi-Link Protocol."; + } + identity x25huntGroup { + base iana-interface-type; + description + "X25 Hunt Group."; + } + identity transpHdlc { + base iana-interface-type; + description + "Transp HDLC."; + } + identity interleave { + base iana-interface-type; + description + "Interleave channel."; + } + identity fast { + base iana-interface-type; + description + "Fast channel."; + } + identity ip { + base iana-interface-type; + description + "IP (for APPN HPR in IP networks)."; + } + identity docsCableMaclayer { + base iana-interface-type; + description + "CATV Mac Layer."; + } + identity docsCableDownstream { + base iana-interface-type; + description + "CATV Downstream interface."; + } + identity docsCableUpstream { + base iana-interface-type; + description + "CATV Upstream interface."; + } + identity a12MppSwitch { + base iana-interface-type; + description + "Avalon Parallel Processor."; + } + identity tunnel { + base iana-interface-type; + description + "Encapsulation interface."; + } + identity coffee { + base iana-interface-type; + description + "Coffee pot."; + reference + "RFC 2325 - Coffee MIB"; + } + identity ces { + base iana-interface-type; + description + "Circuit Emulation Service."; + } + identity atmSubInterface { + base iana-interface-type; + description + "ATM Sub Interface."; + } + identity l2vlan { + base iana-interface-type; + description + "Layer 2 Virtual LAN using 802.1Q."; + } + identity l3ipvlan { + base iana-interface-type; + description + "Layer 3 Virtual LAN using IP."; + } + identity l3ipxvlan { + base iana-interface-type; + description + "Layer 3 Virtual LAN using IPX."; + } + identity digitalPowerline { + base iana-interface-type; + description + "IP over Power Lines."; + } + identity mediaMailOverIp { + base iana-interface-type; + description + "Multimedia Mail over IP."; + } + identity dtm { + base iana-interface-type; + description + "Dynamic synchronous Transfer Mode."; + } + identity dcn { + base iana-interface-type; + description + "Data Communications Network."; + } + identity ipForward { + base iana-interface-type; + description + "IP Forwarding Interface."; + } + identity msdsl { + base iana-interface-type; + description + "Multi-rate Symmetric DSL."; + } + identity ieee1394 { + base iana-interface-type; + + description + "IEEE1394 High Performance Serial Bus."; + } + identity if-gsn { + base iana-interface-type; + description + "HIPPI-6400."; + } + identity dvbRccMacLayer { + base iana-interface-type; + description + "DVB-RCC MAC Layer."; + } + identity dvbRccDownstream { + base iana-interface-type; + description + "DVB-RCC Downstream Channel."; + } + identity dvbRccUpstream { + base iana-interface-type; + description + "DVB-RCC Upstream Channel."; + } + identity atmVirtual { + base iana-interface-type; + description + "ATM Virtual Interface."; + } + identity mplsTunnel { + base iana-interface-type; + description + "MPLS Tunnel Virtual Interface."; + } + identity srp { + base iana-interface-type; + description + "Spatial Reuse Protocol."; + } + identity voiceOverAtm { + base iana-interface-type; + description + "Voice over ATM."; + } + identity voiceOverFrameRelay { + base iana-interface-type; + description + "Voice Over Frame Relay."; + } + identity idsl { + base iana-interface-type; + description + "Digital Subscriber Loop over ISDN."; + } + identity compositeLink { + base iana-interface-type; + description + "Avici Composite Link Interface."; + } + identity ss7SigLink { + base iana-interface-type; + description + "SS7 Signaling Link."; + } + identity propWirelessP2P { + base iana-interface-type; + description + "Prop. P2P wireless interface."; + } + identity frForward { + base iana-interface-type; + description + "Frame Forward Interface."; + } + identity rfc1483 { + base iana-interface-type; + description + "Multiprotocol over ATM AAL5."; + reference + "RFC 1483 - Multiprotocol Encapsulation over ATM + Adaptation Layer 5"; + } + identity usb { + base iana-interface-type; + description + "USB Interface."; + } + identity ieee8023adLag { + base iana-interface-type; + description + "IEEE 802.3ad Link Aggregate."; + } + identity bgppolicyaccounting { + base iana-interface-type; + description + "BGP Policy Accounting."; + } + identity frf16MfrBundle { + base iana-interface-type; + description + "FRF.16 Multilink Frame Relay."; + } + identity h323Gatekeeper { + base iana-interface-type; + description + "H323 Gatekeeper."; + } + identity h323Proxy { + base iana-interface-type; + description + "H323 Voice and Video Proxy."; + } + identity mpls { + base iana-interface-type; + description + "MPLS."; + } + identity mfSigLink { + base iana-interface-type; + description + "Multi-frequency signaling link."; + } + identity hdsl2 { + base iana-interface-type; + description + "High Bit-Rate DSL - 2nd generation."; + } + identity shdsl { + base iana-interface-type; + description + "Multirate HDSL2."; + } + identity ds1FDL { + base iana-interface-type; + description + "Facility Data Link (4Kbps) on a DS1."; + } + identity pos { + base iana-interface-type; + description + "Packet over SONET/SDH Interface."; + } + identity dvbAsiIn { + base iana-interface-type; + description + "DVB-ASI Input."; + } + identity dvbAsiOut { + base iana-interface-type; + description + "DVB-ASI Output."; + } + identity plc { + base iana-interface-type; + description + "Power Line Communications."; + } + identity nfas { + base iana-interface-type; + description + "Non-Facility Associated Signaling."; + } + identity tr008 { + base iana-interface-type; + description + "TR008."; + } + identity gr303RDT { + base iana-interface-type; + description + "Remote Digital Terminal."; + } + identity gr303IDT { + base iana-interface-type; + description + "Integrated Digital Terminal."; + } + identity isup { + base iana-interface-type; + description + "ISUP."; + } + identity propDocsWirelessMaclayer { + base iana-interface-type; + description + "Cisco proprietary Maclayer."; + } + identity propDocsWirelessDownstream { + base iana-interface-type; + description + "Cisco proprietary Downstream."; + } + identity propDocsWirelessUpstream { + base iana-interface-type; + description + "Cisco proprietary Upstream."; + } + identity hiperlan2 { + base iana-interface-type; + description + "HIPERLAN Type 2 Radio Interface."; + } + identity propBWAp2Mp { + base iana-interface-type; + description + "PropBroadbandWirelessAccesspt2Multipt (use of this value + for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f + is deprecated, and ieee80216WMAN(237) should be used + instead)."; + } + identity sonetOverheadChannel { + base iana-interface-type; + description + "SONET Overhead Channel."; + } + identity digitalWrapperOverheadChannel { + base iana-interface-type; + description + "Digital Wrapper."; + } + identity aal2 { + base iana-interface-type; + description + "ATM adaptation layer 2."; + } + identity radioMAC { + base iana-interface-type; + description + "MAC layer over radio links."; + } + identity atmRadio { + base iana-interface-type; + description + "ATM over radio links."; + } + identity imt { + base iana-interface-type; + description + "Inter-Machine Trunks."; + } + identity mvl { + base iana-interface-type; + description + "Multiple Virtual Lines DSL."; + } + identity reachDSL { + base iana-interface-type; + description + "Long Reach DSL."; + } + identity frDlciEndPt { + base iana-interface-type; + description + "Frame Relay DLCI End Point."; + } + identity atmVciEndPt { + base iana-interface-type; + description + "ATM VCI End Point."; + } + identity opticalChannel { + base iana-interface-type; + description + "Optical Channel."; + } + identity opticalTransport { + base iana-interface-type; + description + "Optical Transport."; + } + identity propAtm { + base iana-interface-type; + description + "Proprietary ATM."; + } + identity voiceOverCable { + base iana-interface-type; + description + "Voice Over Cable Interface."; + } + identity infiniband { + base iana-interface-type; + description + "Infiniband."; + } + identity teLink { + base iana-interface-type; + description + "TE Link."; + } + identity q2931 { + base iana-interface-type; + description + "Q.2931."; + } + identity virtualTg { + base iana-interface-type; + description + "Virtual Trunk Group."; + } + identity sipTg { + base iana-interface-type; + description + "SIP Trunk Group."; + } + identity sipSig { + base iana-interface-type; + description + "SIP Signaling."; + } + identity docsCableUpstreamChannel { + base iana-interface-type; + description + "CATV Upstream Channel."; + } + identity econet { + base iana-interface-type; + description + "Acorn Econet."; + } + identity pon155 { + base iana-interface-type; + description + "FSAN 155Mb Symetrical PON interface."; + } + identity pon622 { + base iana-interface-type; + description + "FSAN 622Mb Symetrical PON interface."; + } + identity bridge { + base iana-interface-type; + description + "Transparent bridge interface."; + } + identity linegroup { + base iana-interface-type; + description + "Interface common to multiple lines."; + } + identity voiceEMFGD { + base iana-interface-type; + description + "Voice E&M Feature Group D."; + } + identity voiceFGDEANA { + base iana-interface-type; + description + "Voice FGD Exchange Access North American."; + } + identity voiceDID { + base iana-interface-type; + description + "Voice Direct Inward Dialing."; + } + identity mpegTransport { + base iana-interface-type; + description + "MPEG transport interface."; + } + identity sixToFour { + base iana-interface-type; + status deprecated; + description + "6to4 interface (DEPRECATED)."; + reference + "RFC 4087 - IP Tunnel MIB"; + } + identity gtp { + base iana-interface-type; + description + "GTP (GPRS Tunneling Protocol)."; + } + identity pdnEtherLoop1 { + base iana-interface-type; + description + "Paradyne EtherLoop 1."; + } + identity pdnEtherLoop2 { + base iana-interface-type; + description + "Paradyne EtherLoop 2."; + } + identity opticalChannelGroup { + base iana-interface-type; + description + "Optical Channel Group."; + } + identity homepna { + base iana-interface-type; + description + "HomePNA ITU-T G.989."; + } + identity gfp { + base iana-interface-type; + description + "Generic Framing Procedure (GFP)."; + } + identity ciscoISLvlan { + base iana-interface-type; + description + "Layer 2 Virtual LAN using Cisco ISL."; + } + identity actelisMetaLOOP { + base iana-interface-type; + description + "Acteleis proprietary MetaLOOP High Speed Link."; + } + identity fcipLink { + base iana-interface-type; + description + "FCIP Link."; + } + identity rpr { + base iana-interface-type; + description + "Resilient Packet Ring Interface Type."; + } + identity qam { + base iana-interface-type; + description + "RF Qam Interface."; + } + identity lmp { + base iana-interface-type; + description + "Link Management Protocol."; + reference + "RFC 4327 - Link Management Protocol (LMP) Management + Information Base (MIB)"; + } + identity cblVectaStar { + base iana-interface-type; + description + "Cambridge Broadband Networks Limited VectaStar."; + } + identity docsCableMCmtsDownstream { + base iana-interface-type; + description + "CATV Modular CMTS Downstream Interface."; + } + identity adsl2 { + base iana-interface-type; + status deprecated; + description + "Asymmetric Digital Subscriber Loop Version 2 + (DEPRECATED/OBSOLETED - please use adsl2plus(238) + instead)."; + reference + "RFC 4706 - Definitions of Managed Objects for Asymmetric + Digital Subscriber Line 2 (ADSL2)"; + } + identity macSecControlledIF { + base iana-interface-type; + description + "MACSecControlled."; + } + identity macSecUncontrolledIF { + base iana-interface-type; + description + "MACSecUncontrolled."; + } + identity aviciOpticalEther { + base iana-interface-type; + description + "Avici Optical Ethernet Aggregate."; + } + identity atmbond { + base iana-interface-type; + description + "atmbond."; + } + identity voiceFGDOS { + base iana-interface-type; + description + "Voice FGD Operator Services."; + } + identity mocaVersion1 { + base iana-interface-type; + description + "MultiMedia over Coax Alliance (MoCA) Interface + as documented in information provided privately to IANA."; + } + identity ieee80216WMAN { + base iana-interface-type; + description + "IEEE 802.16 WMAN interface."; + } + identity adsl2plus { + base iana-interface-type; + description + "Asymmetric Digital Subscriber Loop Version 2 - + Version 2 Plus and all variants."; + } + identity dvbRcsMacLayer { + base iana-interface-type; + description + "DVB-RCS MAC Layer."; + reference + "RFC 5728 - The SatLabs Group DVB-RCS MIB"; + } + identity dvbTdm { + base iana-interface-type; + description + "DVB Satellite TDM."; + reference + "RFC 5728 - The SatLabs Group DVB-RCS MIB"; + } + identity dvbRcsTdma { + base iana-interface-type; + description + "DVB-RCS TDMA."; + reference + "RFC 5728 - The SatLabs Group DVB-RCS MIB"; + } + identity x86Laps { + base iana-interface-type; + description + "LAPS based on ITU-T X.86/Y.1323."; + } + identity wwanPP { + base iana-interface-type; + description + "3GPP WWAN."; + } + identity wwanPP2 { + base iana-interface-type; + description + "3GPP2 WWAN."; + } + identity voiceEBS { + base iana-interface-type; + description + "Voice P-phone EBS physical interface."; + } + identity ifPwType { + base iana-interface-type; + description + "Pseudowire interface type."; + reference + "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; + } + identity ilan { + base iana-interface-type; + description + "Internal LAN on a bridge per IEEE 802.1ap."; + } + identity pip { + base iana-interface-type; + description + "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; + } + identity aluELP { + base iana-interface-type; + description + "Alcatel-Lucent Ethernet Link Protection."; + } + identity gpon { + base iana-interface-type; + description + "Gigabit-capable passive optical networks (G-PON) as per + ITU-T G.984."; + } + identity vdsl2 { + base iana-interface-type; + description + "Very high speed digital subscriber line Version 2 + (as per ITU-T Recommendation G.993.2)."; + reference + "RFC 5650 - Definitions of Managed Objects for Very High + Speed Digital Subscriber Line 2 (VDSL2)"; + } + identity capwapDot11Profile { + base iana-interface-type; + description + "WLAN Profile Interface."; + reference + "RFC 5834 - Control and Provisioning of Wireless Access + Points (CAPWAP) Protocol Binding MIB for + IEEE 802.11"; + } + identity capwapDot11Bss { + base iana-interface-type; + description + "WLAN BSS Interface."; + reference + "RFC 5834 - Control and Provisioning of Wireless Access + Points (CAPWAP) Protocol Binding MIB for + IEEE 802.11"; + } + identity capwapWtpVirtualRadio { + base iana-interface-type; + description + "WTP Virtual Radio Interface."; + reference + "RFC 5833 - Control and Provisioning of Wireless Access + Points (CAPWAP) Protocol Base MIB"; + } + identity bits { + base iana-interface-type; + description + "bitsport."; + } + identity docsCableUpstreamRfPort { + base iana-interface-type; + description + "DOCSIS CATV Upstream RF Port."; + } + identity cableDownstreamRfPort { + base iana-interface-type; + description + "CATV downstream RF Port."; + } + identity vmwareVirtualNic { + base iana-interface-type; + description + "VMware Virtual Network Interface."; + } + identity ieee802154 { + base iana-interface-type; + description + "IEEE 802.15.4 WPAN interface."; + reference + "IEEE 802.15.4-2006"; + } + identity otnOdu { + base iana-interface-type; + description + "OTN Optical Data Unit."; + } + identity otnOtu { + base iana-interface-type; + description + "OTN Optical channel Transport Unit."; + } + identity ifVfiType { + base iana-interface-type; + description + "VPLS Forwarding Instance Interface Type."; + } + identity g9981 { + base iana-interface-type; + description + "G.998.1 bonded interface."; + } + identity g9982 { + base iana-interface-type; + description + "G.998.2 bonded interface."; + } + identity g9983 { + base iana-interface-type; + description + "G.998.3 bonded interface."; + } + + identity aluEpon { + base iana-interface-type; + description + "Ethernet Passive Optical Networks (E-PON)."; + } + identity aluEponOnu { + base iana-interface-type; + description + "EPON Optical Network Unit."; + } + identity aluEponPhysicalUni { + base iana-interface-type; + description + "EPON physical User to Network interface."; + } + identity aluEponLogicalLink { + base iana-interface-type; + description + "The emulation of a point-to-point link over the EPON + layer."; + } + identity aluGponOnu { + base iana-interface-type; + description + "GPON Optical Network Unit."; + reference + "ITU-T G.984.2"; + } + identity aluGponPhysicalUni { + base iana-interface-type; + description + "GPON physical User to Network interface."; + reference + "ITU-T G.984.2"; + } + identity vmwareNicTeam { + base iana-interface-type; + description + "VMware NIC Team."; + } + identity docsOfdmDownstream { + base iana-interface-type; + description + "CATV Downstream OFDM interface."; + reference + "Cable Modem Operations Support System Interface + Specification"; + } + identity docsOfdmaUpstream { + base iana-interface-type; + description + "CATV Upstream OFDMA interface."; + reference + "Cable Modem Operations Support System Interface + Specification"; + } + identity gfast { + base iana-interface-type; + description + "G.fast port."; + reference + "ITU-T G.9701"; + } + identity sdci { + base iana-interface-type; + description + "SDCI (IO-Link)."; + reference + "IEC 61131-9 Edition 1.0 2013-09"; + } + identity xboxWireless { + base iana-interface-type; + description + "Xbox wireless."; + } + identity fastdsl { + base iana-interface-type; + description + "FastDSL."; + reference + "BBF TR-355"; + } + identity docsCableScte55d1FwdOob { + base iana-interface-type; + description + "Cable SCTE 55-1 OOB Forward Channel."; + reference + "ANSI/SCTE 55-1 2009"; + } + identity docsCableScte55d1RetOob { + base iana-interface-type; + description + "Cable SCTE 55-1 OOB Return Channel."; + reference + "ANSI/SCTE 55-1 2009"; + } + identity docsCableScte55d2DsOob { + base iana-interface-type; + description + "Cable SCTE 55-2 OOB Downstream Channel."; + reference + "ANSI/SCTE 55-2 2008"; + } + identity docsCableScte55d2UsOob { + base iana-interface-type; + description + "Cable SCTE 55-2 OOB Upstream Channel."; + reference + "ANSI/SCTE 55-2 2008"; + } + identity docsCableNdf { + base iana-interface-type; + description + "Cable Narrowband Digital Forward."; + } + identity docsCableNdr { + base iana-interface-type; + description + "Cable Narrowband Digital Return."; + } + identity ptm { + base iana-interface-type; + description + "Packet Transfer Mode."; + reference + "IEEE G.993.1, Annex H; IEEE G.993.2; IEEE G.9701"; + } + identity ghn { + base iana-interface-type; + description + "G.hn port."; + reference + "IEEE G.9961"; + } + identity otnOtsi { + base iana-interface-type; + description + "Optical Tributary Signal."; + reference + "ITU-T G.959.1"; + } + identity otnOtuc { + base iana-interface-type; + description + "OTN OTUCn."; + reference + "ITU-T G.709/Y.1331"; + } + identity otnOduc { + base iana-interface-type; + description + "OTN ODUC."; + reference + "ITU-T G.709"; + } + identity otnOtsig { + base iana-interface-type; + description + "OTN OTUC Signal."; + reference + "ITU-T G.709"; + } + identity microwaveCarrierTermination { + base iana-interface-type; + description + "air interface of a single microwave carrier."; + reference + "RFC 8561 - A YANG Data Model for Microwave Radio Link"; + } + identity microwaveRadioLinkTerminal { + base iana-interface-type; + description + "radio link interface for one or several aggregated microwave carriers."; + reference + "RFC 8561 - A YANG Data Model for Microwave Radio Link"; + } + identity ieee8021axDrni { + base iana-interface-type; + description + "IEEE 802.1AX Distributed Resilient Network Interface."; + reference + "IEEE 802.1AX-Rev-d2-0"; + } + identity ax25 { + base iana-interface-type; + description + "AX.25 network interfaces."; + reference + "AX.25 Link Access Protocol for Amateur Packet Radio version 2.2"; + } + identity ieee19061nanocom { + base iana-interface-type; + description + "Nanoscale and Molecular Communication."; + reference + "IEEE 1906.1-2015"; + } + identity cpri { + base iana-interface-type; + description + "Common Public Radio Interface."; + reference + "CPRI v7.0"; + } + identity omni { + base iana-interface-type; + description + "Overlay Multilink Network Interface (OMNI)."; + reference + "draft-templin-6man-omni-00"; + } + identity roe { + base iana-interface-type; + description + "Radio over Ethernet Interface."; + reference + "1914.3-2018 - IEEE Standard for Radio over Ethernet Encapsulations and Mappings"; + } + identity p2pOverLan { + base iana-interface-type; + description + "Point to Point over LAN interface."; + reference + "RFC 9296 - ifStackTable for the Point-to-Point (P2P) Interface over a LAN Type: Definition and Examples"; + } +} diff --git a/plugins/org.etsi.mts.tdl.yang2tdl/samples/mwt/ieee802-dot1q-bridge.yang b/plugins/org.etsi.mts.tdl.yang2tdl/samples/mwt/ieee802-dot1q-bridge.yang new file mode 100644 index 0000000000000000000000000000000000000000..2c7d9f9d55ee877fbd50739a15c7f799d8cb735f --- /dev/null +++ b/plugins/org.etsi.mts.tdl.yang2tdl/samples/mwt/ieee802-dot1q-bridge.yang @@ -0,0 +1,1795 @@ +module ieee802-dot1q-bridge { + yang-version "1.1"; + namespace urn:ieee:std:802.1Q:yang:ieee802-dot1q-bridge; + prefix dot1q; + import ieee802-types { + prefix ieee; + } + import ietf-yang-types { + prefix yang; + } + import ietf-interfaces { + prefix if; + } + import iana-if-type { + prefix ianaif; + } + import ieee802-dot1q-types { + prefix dot1qtypes; + } + organization + "IEEE 802.1 Working Group"; + contact + "WG-URL: http://ieee802.org/1/ + WG-EMail: stds-802-1-l@ieee.org + + Contact: IEEE 802.1 Working Group Chair + Postal: C/O IEEE 802.1 Working Group + IEEE Standards Association + 445 Hoes Lane + Piscataway, NJ 08854 + USA + + E-mail: stds-802-1-chairs@ieee.org"; + description + "This YANG module describes the bridge configuration model for the + following IEEE 802.1Q Bridges: + 1) Two Port MAC Relays + 2) Customer VLAN Bridges + 3) Provider Bridges. + + Copyright (C) IEEE (2022). + + This version of this YANG module is part of IEEE Std 802.1Q; see the + standard itself for full legal notices."; + revision 2022-05-06 { + description + "Rebase Qrev with Qcw updates."; + reference + "IEEE Std 802.1Q-2022, Bridges and Bridged Networks."; + } + revision 2022-01-19 { + description + "Published as part of IEEE Std 802.1Q-2022."; + reference + "IEEE Std 802.1Q-2022, Bridges and Bridged Networks."; + } + revision 2020-11-06 { + description + "Published as part of IEEE Std 802.1Qcr-2020. Third version."; + reference + "IEEE Std 802.1Qcr-2020, Bridges and Bridged Networks - + Asynchronous Traffic Shaping."; + } + revision 2020-06-04 { + description + "Published as part of IEEE Std 802.1Qcx-2020. Second version."; + reference + "IEEE Std 802.1Qcx-2020, Bridges and Bridged Networks - YANG Data + Model for Connectivity Fault Management."; + } + revision 2018-03-07 { + description + "Published as part of IEEE Std 802.1Q-2018. Initial version."; + reference + "IEEE Std 802.1Q-2018, Bridges and Bridged Networks."; + } + feature ingress-filtering { + description + "Each Port may support an Enable Ingress Filtering parameter. A + frame received on a Port that is not in the member set (8.8.10) + associated with the frames VID shall be discarded if this + parameter is set. The default value for this parameter is reset, + i.e., Disable Ingress Filtering, for all Ports. Any Port that + supports setting this parameter shall also support resetting it. + The parameter may be configured by the management operations + defined in Clause 12."; + reference + "8.6.2 of IEEE Std 802.1Q-2022"; + } + feature extended-filtering-services { + description + "Extended Filtering Services support the filtering behavior + required for regions of a network in which potential recipients of + multicast frames exist, and where both the potential recipients of + frames and the Bridges are able to support dynamic configuration + of filtering information for group MAC addresses. In order to + integrate this extended filtering behavior with the needs of + regions of the network that support only Basic Filtering Services, + Bridges that support Extended Filtering Services can be statically + and dynamically configured to modify their filtering behavior on a + per-group MAC address basis, and also on the basis of the overall + filtering service provided by each outbound Port with regard to + multicast frames. The latter capability permits configuration of + the Ports default forwarding or filtering behavior with regard to + group MAC addresses for which no specific static or dynamic + filtering information has been configured."; + reference + "8.8.4, Clause 10 of IEEE Std 802.1Q-2022"; + } + feature port-and-protocol-based-vlan { + description + "A VLAN-aware bridge component implementation in conformance to + the provisions of this standard for Port-and-Protocol-based VLAN + classification (5.4.1) shall 1) Support one or more of the + following Protocol Classifications and Protocol Template formats: + Ethernet, RFC_1042, SNAP_8021H, SNAP_Other, or LLC_Other (6.12); + and may 2) Support configuration of the contents of the Protocol + Group Database."; + reference + "5.4.1.2 of IEEE Std 802.1Q-2022"; + } + feature flow-filtering { + description + "Flow filtering support enables Bridges to distinguish frames + belonging to different client flows and to use this information in + the forwarding process. Information related to client flows may be + used at the boundary of an SPT Domain to generate a flow hash + value. The flow hash, carried in an F-TAG, serves to distinguish + frames belonging to different flows and can be used in the + forwarding process to distribute frames over equal cost paths. + This provides for finer granularity load spreading while + maintaining frame order for each client flow."; + reference + "44.2 of IEEE Std 802.1Q-2022"; + } + feature simple-bridge-port { + description + "A simple bridge port allows underlying (MAC) layers to share the + same Interface as the Bridge Port."; + } + feature flexible-bridge-port { + description + "A flexible bridge port supports an Interface that is a Bridge + Port to be a separate Interface from the underlying (MAC) layer."; + } + identity type-of-bridge { + description + "Represents the configured Bridge type."; + } + identity customer-vlan-bridge { + base type-of-bridge; + description + "Base identity for a Customer VLAN Bridge."; + } + identity provider-bridge { + base type-of-bridge; + description + "Base identity for a Provider Bridge (PB)."; + } + identity provider-edge-bridge { + base type-of-bridge; + description + "Base identity for a Provider Edge Bridge (PEB)."; + } + identity two-port-mac-relay-bridge { + base type-of-bridge; + description + "Base identity for a Two Port MAC Relay (TPMR)."; + } + identity type-of-component { + description + "Represents the type of Component."; + } + identity c-vlan-component { + base type-of-component; + description + "Base identity for a C-VLAN component."; + } + identity s-vlan-component { + base type-of-component; + description + "Base identity for a S-VLAN component."; + } + identity d-bridge-component { + base type-of-component; + description + "Base identity for a VLAN unaware component."; + } + identity edge-relay-component { + base type-of-component; + description + "Base identity for an EVB station ER component."; + } + identity type-of-port { + description + "Represents the type of Bridge port."; + } + identity c-vlan-bridge-port { + base type-of-port; + description + "Indicates the port can be a C-TAG aware port of an enterprise + VLAN aware Bridge."; + } + identity provider-network-port { + base type-of-port; + description + "Indicates the port can be an S-TAG aware port of a Provider + Bridge or Backbone Edge Bridge used for connections within a PBN + (Provider Bridged Network) or PBBN (Provider Backbone Bridged + Network)."; + } + identity customer-network-port { + base type-of-port; + description + "Indicates the port can be an S-TAG aware port of a Provider + Bridge or Backbone Edge Bridge used for connections to the + exterior of a PBN (Provider Bridged Network) or PBBN (Provider + Backbone Bridged Network)."; + } + identity customer-edge-port { + base type-of-port; + description + "Indicates the port can be a C-TAG aware port of a Provider Bridge + used for connections to the exterior of a PBN (Provider Bridged + Network) or PBBN (Provider Backbone Bridged Network)."; + } + identity d-bridge-port { + base type-of-port; + description + "Indicates the port can be a VLAN-unaware member of an 802.1Q + Bridge."; + } + identity remote-customer-access-port { + base type-of-port; + description + "Indicates the port can be an S-TAG aware port of a Provider + Bridge capable of providing Remote Customer Service Interfaces."; + } + identity bridge-interface { + description + "Generic interface property that represents any interface that can + be associated with an IEEE 802.1Q compliant Bridge component. Any + new Interface types would derive from this identity to + automatically pick up Bridge related configuration or operational + data."; + } + container bridges { + description + "Contains the Bridge(s) configuration information."; + list bridge { + key "name"; + unique "address"; + description + "Provides configuration data in support of the Bridge + Configuration resources. There is a single bridge data node per + Bridge."; + leaf name { + type dot1qtypes:name-type; + description + "A text string associated with the Bridge, of locally + determined significance."; + reference + "12.4 of IEEE Std 802.1Q-2022"; + } + leaf address { + type ieee:mac-address; + mandatory true; + description + "The MAC address for the Bridge from which the Bridge + Identifiers used by the STP, RSTP, and MSTP are derived."; + reference + "12.4 of IEEE Std 802.1Q-2022"; + } + leaf bridge-type { + type identityref { + base type-of-bridge; + } + mandatory true; + description + "The type of Bridge."; + } + leaf ports { + type uint16 { + range "1..4095"; + } + config false; + description + "The number of Bridge Ports (MAC Entities)"; + reference + "12.4 of IEEE Std 802.1Q-2022"; + } + leaf up-time { + type yang:zero-based-counter32; + units "seconds"; + config false; + description + "The count in seconds of the time elapsed since the Bridge was + last reset or initialized."; + reference + "12.4 of IEEE Std 802.1Q-2022"; + } + leaf components { + type uint32; + config false; + description + "The number of components associated with the Bridge."; + } + list component { + key "name"; + description + "The set of components associated with a given Bridge. For + example, - A TPMR is associated with a single VLAN unaware + component. - A Customer VLAN Bridge is associated with a + single VLAN aware component. - A Provider Bridge is associated + with a single S-VLAN component and zero or more C-VLAN + components."; + reference + "Item 1)a in 12.4.1.5 of IEEE Std 802.1Q-2022"; + leaf name { + type string; + description + "The name of the Component."; + } + leaf id { + type uint32; + description + "Unique identifier for a particular Bridge component within + the system."; + reference + "Item l) in 12.3 of IEEE Std 802.1Q-2022"; + } + leaf type { + type identityref { + base type-of-component; + } + mandatory true; + description + "The type of component used to classify a particular Bridge + component within a Bridge system comprising multiple + components."; + reference + "Item m) in 12.3 of IEEE Std 802.1Q-2022"; + } + leaf address { + type ieee:mac-address; + description + "Unique EUI-48 Universally Administered MAC address assigned + to a Bridge component."; + reference + "13.24, 8.13.8 of IEEE Std 802.1Q-2022"; + } + leaf traffic-class-enabled { + type boolean; + default "true"; + description + "Indication of Traffic Classes enablement associated with + the Bridge Component. A value of True indicates that Traffic + Classes are enabled on this Bridge Component. A value of + False indicates that the Bridge Component operates with a + single priority level for all traffic."; + reference + "12.4.1.5.1 of IEEE Std 802.1Q-2022"; + } + leaf ports { + type uint16 { + range "1..4095"; + } + config false; + description + "The number of Bridge Ports associated with the Bridge + Component."; + reference + "Item c) in 12.4.1.1.3 of IEEE Std 802.1Q-2022"; + } + leaf-list bridge-port { + type if:interface-ref; + config false; + description + "List of bridge-port references."; + } + container capabilities { + config false; + description + "Array of Boolean values of the feature capabilities + associated with a given Bridge Component."; + reference + "Item b) in 12.10.1.1.3, 12.4.1.5.2 of IEEE Std 802.1Q-2022"; + leaf extended-filtering { + type boolean; + default "false"; + description + "Can perform filtering on individual multicast addresses + controlled by MMRP."; + reference + "12.4.1.5.2 of IEEE Std 802.1Q-2022"; + } + leaf traffic-classes { + type boolean; + default "false"; + description + "Can map priority to multiple traffic classes."; + reference + "12.4.1.5.2 of IEEE Std 802.1Q-2022"; + } + leaf static-entry-individual-port { + type boolean; + default "false"; + description + "Static entries per port."; + reference + "12.4.1.5.2 of IEEE Std 802.1Q-2022"; + } + leaf ivl-capable { + type boolean; + default "true"; + description + "Independent VLAN Learning (IVL)."; + reference + "12.4.1.5.2 of IEEE Std 802.1Q-2022"; + } + leaf svl-capable { + type boolean; + default "false"; + description + "Shared VLAN Learning (SVL)."; + reference + "12.4.1.5.2 of IEEE Std 802.1Q-2022"; + } + leaf hybrid-capable { + type boolean; + default "false"; + description + "Both IVL and SVL simultaneously."; + reference + "12.4.1.5.2 of IEEE Std 802.1Q-2022"; + } + leaf configurable-pvid-tagging { + type boolean; + default "false"; + description + "Whether the implementation supports the ability to + override the default PVID setting and its egress status + (VLAN-tagged or Untagged) on each port."; + reference + "12.4.1.5.2 of IEEE Std 802.1Q-2022"; + } + leaf local-vlan-capable { + type boolean; + default "false"; + description + "Can support multiple local Bridges, outside the scope of + 802.1Q defined VLANs."; + reference + "12.4.1.5.2 of IEEE Std 802.1Q-2022"; + } + } + container filtering-database { + when + "not(derived-from-or-self(../../bridge-type, "+ + "'two-port-mac-relay-bridge'))" { + description + "Applies to non TPMRs."; + } + description + "Contains filtering information used by the Forwarding + Process in deciding through which Ports of the Bridge frames + should be forwarded."; + reference + "12.7 of IEEE Std 802.1Q-2022"; + leaf aging-time { + type uint32 { + range "10..10000000"; + } + units "seconds"; + default "300"; + description + "The timeout period in seconds for aging out + dynamically-learned forwarding information."; + reference + "12.7, 8.8.3 of IEEE Std 802.1Q-2022"; + } + leaf size { + type yang:gauge32; + config false; + description + "The maximum number of entries that can be held in the + FDB."; + reference + "12.7 of IEEE Std 802.1Q-2022"; + } + leaf static-entries { + type yang:gauge32; + config false; + description + "The number of Static Filtering entries currently in the + FDB."; + reference + "12.7, 8.8.1 of IEEE Std 802.1Q-2022"; + } + leaf dynamic-entries { + type yang:gauge32; + config false; + description + "The number of Dynamic Filtering entries currently in the + FDB."; + reference + "12.7, 8.8.3 of IEEE Std 802.1Q-2022"; + } + leaf static-vlan-registration-entries { + type yang:gauge32; + config false; + description + "The number of Static VLAN Registration entries currently + in the FDB."; + reference + "12.7, 8.8.2 of IEEE Std 802.1Q-2022"; + } + leaf dynamic-vlan-registration-entries { + type yang:gauge32; + config false; + description + "The number of Dynamic VLAN Registration entries currently + in the FDB."; + reference + "12.7, 8.8.5 of IEEE Std 802.1Q-2022"; + } + leaf mac-address-registration-entries { + if-feature "extended-filtering-services"; + type yang:gauge32; + config false; + description + "The number of MAC Address Registration entries currently + in the FDB."; + reference + "12.7, 8.8.4 of IEEE Std 802.1Q-2022"; + } + list filtering-entry { + key "database-id vids address"; + description + "Information for the entries associated with the Permanent + Database."; + leaf database-id { + type uint32; + description + "The identity of this Filtering Database."; + reference + "12.7.7 of IEEE Std 802.1Q-2022"; + } + leaf address { + type ieee:mac-address; + description + "A MAC address (unicast, multicast, broadcast) for which + the device has forwarding and/or filtering information."; + reference + "12.7.7 of IEEE Std 802.1Q-2022"; + } + leaf vids { + type dot1qtypes:vid-range-type; + description + "The set of VLAN identifiers to which this entry + applies."; + reference + "12.7.7 of IEEE Std 802.1Q-2022"; + } + leaf entry-type { + type enumeration { + enum static { + description + "Static entry type"; + } + enum dynamic { + description + "Dynamic/learnt entry type"; + } + } + description + "The type of filtering entry. Whether static or dynamic. + Static entries can be created, deleted, and retrieved. + However, dynamic entries can only be deleted or + retrieved by the management entity. Consequently, a + Bridge is not required to accept a command that can + alter the dynamic entries except delete a dynamic entry."; + reference + "12.7.7 of IEEE Std 802.1Q-2022"; + } + uses dot1qtypes:port-map-grouping; + leaf status { + type enumeration { + enum other { + description + "None of the following. This may include the case + where some other object is being used to determine + if and how frames addressed to the value of the + corresponding instance of 'address' are being + forwarded."; + } + enum invalid { + description + "This entry is no longer valid (e.g., it was learned + but has since aged out), but has not yet been + flushed from the table."; + } + enum learned { + description + "The value of the corresponding instance of the port + node was learned and is being used."; + } + enum self { + description + "The value of the corresponding instance of the + address node representing one of the devices + address."; + } + enum mgmt { + description + "The value of the corresponding instance of address + node that is also the value of an existing instance."; + } + } + config false; + description + "The status of this entry."; + } + } + list vlan-registration-entry { + key "database-id vids"; + description + "The VLAN Registration Entries models the operations that + can be performed on a single VLAN Registration Entry in + the FDB. The set of VLAN Registration Entries within the + FDB changes under management control and also as a result + of MVRP exchanges"; + reference + "12.7.5 of IEEE Std 802.1Q-2022"; + leaf database-id { + type uint32; + description + "The identity of this Filtering Database."; + reference + "12.7.7 of IEEE Std 802.1Q-2022"; + } + leaf vids { + type dot1qtypes:vid-range-type; + description + "The set of VLAN identifiers to which this entry + applies."; + reference + "12.7.7 of IEEE Std 802.1Q-2022"; + } + leaf entry-type { + type enumeration { + enum static { + description + "Static entry type"; + } + enum dynamic { + description + "Dynamic/learnt entry type"; + } + } + description + "The type of filtering entry. Whether static or dynamic. + Static entries can be created, deleted, and retrieved. + However, dynamic entries can only be deleted or + retrieved by the management entity. Consequently, a + Bridge is not required to accept a command that can + alter the dynamic entries except delete a dynamic entry."; + reference + "12.7.7 of IEEE Std 802.1Q-2022"; + } + uses dot1qtypes:port-map-grouping; + } + } + container permanent-database { + description + "The Permanent Database container models the operations that + can be performed on, or affect, the Permanent Database. + There is a single Permanent Database per FDB."; + leaf size { + type yang:gauge32; + config false; + description + "The maximum number of entries that can be held in the + FDB."; + reference + "12.7.6 of IEEE Std 802.1Q-2022"; + } + leaf static-entries { + type yang:gauge32; + config false; + description + "The number of Static Filtering entries currently in the + FDB."; + reference + "12.7.6 of IEEE Std 802.1Q-2022"; + } + leaf static-vlan-registration-entries { + type yang:gauge32; + config false; + description + "The number of Static VLAN Registration entries currently + in the FDB."; + reference + "12.7.6 of IEEE Std 802.1Q-2022"; + } + list filtering-entry { + key "database-id vids address"; + description + "Information for the entries associated with the Permanent + Database."; + leaf database-id { + type uint32; + description + "The identity of this Filtering Database."; + reference + "12.7.7 of IEEE Std 802.1Q-2022"; + } + leaf address { + type ieee:mac-address; + description + "A MAC address (unicast, multicast, broadcast) for which + the device has forwarding and/or filtering information."; + reference + "12.7.7 of IEEE Std 802.1Q-2022"; + } + leaf vids { + type dot1qtypes:vid-range-type; + description + "The set of VLAN identifiers to which this entry + applies."; + reference + "12.7.7 of IEEE Std 802.1Q-2022"; + } + leaf status { + type enumeration { + enum other { + description + "None of the following. This may include the case + where some other object is being used to determine + if and how frames addressed to the value of the + corresponding instance of 'address' are being + forwarded."; + } + enum invalid { + description + "This entry is no longer valid (e.g., it was learned + but has since aged out), but has not yet been + flushed from the table."; + } + enum learned { + description + "The value of the corresponding instance of the port + node was learned and is being used."; + } + enum self { + description + "The value of the corresponding instance of the + address node representing one of the devices + address."; + } + enum mgmt { + description + "The value of the corresponding instance of address + node that is also the value of an existing instance."; + } + } + config false; + description + "The status of this entry."; + } + uses dot1qtypes:port-map-grouping; + } + } + container bridge-vlan { + when + "not(derived-from-or-self(../../bridge-type, "+ + "'two-port-mac-relay-bridge'))" { + description + "Applies to non TPMRs."; + } + description + "The Bridge VLAN container models configuration information + that modify, or inquire about, the overall configuration of + the Bridges VLAN resources. There is a single Bridge VLAN + Configuration managed object per Bridge."; + reference + "12.10 of IEEE Std 802.1Q-2022"; + leaf version { + type uint16; + config false; + description + "The version number supported."; + reference + "12.10.1.3 of IEEE Std 802.1Q-2022"; + } + leaf max-vids { + type uint16; + config false; + description + "The maximum number of VIDs supported."; + reference + "12.10.1.3 of IEEE Std 802.1Q-2022"; + } + leaf override-default-pvid { + type boolean; + default "false"; + config false; + description + "Indicates if the default PVID can be overridden, and its + egress status (VLAN-tagged or untagged) on each port."; + reference + "12.10.1.3 of IEEE Std 802.1Q-2022"; + } + leaf protocol-template { + if-feature "port-and-protocol-based-vlan"; + type dot1qtypes:protocol-frame-format-type; + config false; + description + "The data-link encapsulation format or the + detagged_frame_type in a Protocol Template"; + reference + "12.10.1.7 of IEEE Std 802.1Q-2022"; + } + leaf max-msti { + type uint16; + config false; + description + "The maximum number of MSTIs supported within an MST + region (i.e., the number of spanning tree instances that + can be supported in addition to the CIST), for MST + Bridges. For SST Bridges, this parameter may be either + omitted or reported as 0."; + reference + "12.10.1.7 of IEEE Std 802.1Q-2022"; + } + list vlan { + key "vid"; + description + "List of VLAN related configuration nodes associated with + the Bridge."; + reference + "12.10.2 of IEEE Std 802.1Q-2022"; + leaf vid { + type dot1qtypes:vlan-index-type; + description + "The VLAN identifier to which this entry applies."; + reference + "12.10.2 of IEEE Std 802.1Q-2022"; + } + leaf name { + type dot1qtypes:name-type; + description + "A text string of up to 32 characters of locally + determined significance."; + reference + "12.10.2 of IEEE Std 802.1Q-2022"; + } + leaf-list untagged-ports { + type if:interface-ref; + config false; + description + "The set of ports in the untagged set for this VID."; + reference + "12.10.2.1.3, 8.8.2 of IEEE Std 802.1Q-2022"; + } + leaf-list egress-ports { + type if:interface-ref; + config false; + description + "The set of egress ports in the member set for this VID."; + reference + "12.10.2.1.3, 8.8.10 of IEEE Std 802.1Q-2022"; + } + } + list protocol-group-database { + if-feature "port-and-protocol-based-vlan"; + key "db-index"; + description + "List of the protocol group database entries."; + reference + "12.10.1.7, 6.12.3 of IEEE Std 802.1Q-2022"; + leaf db-index { + type uint16; + description + "The protocol group database index."; + } + leaf frame-format-type { + type dot1qtypes:protocol-frame-format-type; + description + "The data-link encapsulation format or the + detagged_frame_type in a Protocol Template"; + reference + "12.10.1.7 of IEEE Std 802.1Q-2022"; + } + choice frame-format { + description + "The identification of the protocol above the data-link + layer in a Protocol Template. Depending on the frame + type, the octet string will have one of the following + values: - For ethernet, rfc1042 and snap8021H, this is + the 16-bit (2-octet) IEEE 802 Clause 9.3 EtherType + field. - For snapOther, this is the 40-bit (5-octet) + PID. - For llcOther, this is the 2-octet IEEE 802.2 Link + Service Access Point (LSAP) pair: first octet for + Destination Service Access Point (DSAP) and second octet + for Source Service Access Point (SSAP)."; + reference + "12.10.1.7 of IEEE Std 802.1Q-2022"; + case ethernet-rfc1042-snap8021H { + when + "frame-format-type = 'Ethernet' or "+ + "frame-format-type = 'rfc1042' or frame-format-type "+ + "= 'snap8021H'" { + description + "Applies to Ethernet, RFC 1042, SNAP 8021H frame + formats."; + } + description + "Identifier used if Ethenet, RFC1042, or SNAP 8021H."; + leaf ethertype { + type dot1qtypes:ethertype-type; + description + "Format containing the 16-bit IEEE 802 EtherType + field."; + reference + "9.3 of IEEE Std 802-2014"; + } + } + case snap-other { + when + "frame-format-type = 'snapOther'" { + description + "Applies to Snap Other frame formats."; + } + description + "Identifier used if SNAP other."; + leaf protocol-id { + type string { + pattern "[0-9a-fA-F]{2}(-[0-9a-fA-F]{2}){4}"; + } + description + "Format containing the 40-bit protocol identifier + (PID). The canonical representation uses uppercase + characters."; + reference + "12.10.1.7.1 of IEEE Std 802.1Q-2022"; + } + } + case llc-other { + when + "frame-format-type = 'llcOther'" { + description + "Applies to LLC Other frame formats"; + } + description + "Identifier used if LLC other."; + container dsap-ssap-pairs { + description + "A pair of ISO/IEC 8802-2 DSAP and SSAP address + field values, for matching frame formats of + LLC_Other."; + leaf llc-address { + type string { + pattern "[0-9a-fA-F]{2}-[0-9a-fA-F]{2}"; + } + description + "A pair of ISO/IEC 8802-2 DSAP and SSAP address + field values, for matching frame formats of + LLC_Other. The canonical representation uses + uppercase characters."; + reference + "12.10.1.7.1 of IEEE Std 802.1Q-2022"; + } + } + } + } + leaf group-id { + type uint32; + description + "Designates a group of protocols in the Protocol Group + Database."; + reference + "6.12.2 of IEEE Std 802.1Q-2022"; + } + } + list vid-to-fid-allocation { + key "vids"; + description + "This list allows inquiries about VID to FID allocations."; + leaf vids { + type dot1qtypes:vid-range-type; + description + "Range of VLAN identifiers."; + reference + "12.10.3 of IEEE Std 802.1Q-2022"; + } + leaf fid { + type uint32; + config false; + description + "The Filtering Database used by a set of VIDs."; + reference + "12.10.3 of IEEE Std 802.1Q-2022"; + } + leaf allocation-type { + type enumeration { + enum undefined { + description + "No allocation defined."; + } + enum fixed { + description + "A fixed allocation to FID is defined."; + } + enum dynamic { + description + "A dynamic allocation to FID is defined."; + } + } + config false; + description + "The type of allocation used"; + reference + "12.10.3 of IEEE Std 802.1Q-2022"; + } + } + list fid-to-vid-allocation { + key "fid"; + description + "The FID to VID allocations managed object models + operations that inquire about FID to VID allocations."; + leaf fid { + type uint32; + description + "The Filtering Database used by a set of VIDs."; + reference + "12.10.3 of IEEE Std 802.1Q-2022"; + } + leaf allocation-type { + type enumeration { + enum undefined { + description + "No allocation defined."; + } + enum fixed { + description + "A fixed allocation to FID is defined."; + } + enum dynamic { + description + "A dynamic allocation to FID is defined."; + } + } + config false; + description + "The type of allocation used"; + reference + "12.10.3 of IEEE Std 802.1Q-2022"; + } + leaf-list vid { + type dot1qtypes:vlan-index-type; + config false; + description + "The VLAN identifier to which this entry applies."; + reference + "12.7.7 of IEEE Std 802.1Q-2022"; + } + } + list vid-to-fid { + key "vid"; + description + "Fixed allocation of a VID to an FID. The underlying + system will ensure that subsequent commands that make + changes to the VID to FID mapping can override previous + associations."; + reference + "12.10.3.4, 12.10.3.5 of IEEE Std 802.1Q-2022"; + leaf vid { + type dot1qtypes:vlan-index-type; + description + "A list of VLAN identifier associated with a given + database identifier (i.e., FID)."; + reference + "12.7.7 of IEEE Std 802.1Q-2022"; + } + leaf fid { + type uint32; + description + "The Filtering Database used by this VLAN"; + reference + "12.10.3 of IEEE Std 802.1Q-2022"; + } + } + } + container bridge-mst { + when + "not(derived-from-or-self(../../bridge-type, "+ + "'two-port-mac-relay-bridge'))" { + description + "Applies to non TPMRs."; + } + description + "The Bridge MST container models configuration information + that modify, or inquire about, the overall configuration of + the Bridges MST resources."; + reference + "12.12 of IEEE Std 802.1Q-2022"; + leaf-list mstid { + type dot1qtypes:mstid-type; + description + "The list of MSTID values that are currently supported by + the Bridge"; + } + list fid-to-mstid { + key "fid"; + description + "The FID to MSTID allocation table."; + reference + "12.12.2 of IEEE Std 802.1Q-2022"; + leaf fid { + type uint32; + description + "The Filtering Database identifier."; + reference + "12.12.2 of IEEE Std 802.1Q-2022"; + } + leaf mstid { + type dot1qtypes:mstid-type; + description + "The MSTID to which the FID is to be allocated."; + reference + "12.12.2 of IEEE Std 802.1Q-2022"; + } + } + list fid-to-mstid-allocation { + key "fids"; + description + "The FID to MSTID allocation table"; + leaf fids { + type dot1qtypes:vid-range-type; + description + "Range of FIDs."; + reference + "12.12.2 of IEEE Std 802.1Q-2022"; + } + leaf mstid { + type dot1qtypes:mstid-type; + description + "The MSTID to which the FID is allocated."; + reference + "12.12.2 of IEEE Std 802.1Q-2022"; + } + } + } + } + } + } + augment "/if:interfaces/if:interface" { + when + "derived-from-or-self(if:type,'ianaif:bridge') or "+ + "derived-from-or-self(if:type,'ianaif:ethernetCsmacd') or "+ + "derived-from-or-self(if:type,'ianaif:ieee8023adLag') or "+ + "derived-from-or-self(if:type,'ianaif:ilan')" { + description + "Applies when a Bridge interface."; + } + description + "Augment the interface model with the Bridge Port"; + container bridge-port { + description + "Bridge Port is an extension of the IETF Interfaces model + (RFC7223)."; + leaf bridge-name { + type leafref { + path "/dot1q:bridges/dot1q:bridge/dot1q:name"; + } + // mandatory true; yang 1.1 only + description + "Used to reference configured Bridge node."; + } + leaf component-name { + type leafref { + path "/dot1q:bridges/dot1q:bridge[dot1q:name=current()/../bridge-name]/dot1q:component/dot1q:name"; + } + // mandatory true; yang 1.1 only + description + "Used to reference configured Component node."; + } + leaf port-type { + type identityref { + base type-of-port; + } + description + "The port type. Indicates the capabilities of this port."; + reference + "12.4.2.1 of IEEE Std 802.1Q-2022"; + } + leaf pvid { + when "/dot1q:bridges/dot1q:bridge[dot1q:name=current()"+ + "/../dot1q:bridge-name]/dot1q:component[name=current()"+ + "/../dot1q:component-name]/dot1q:type != 'dot1q:d-bridge-component'" { + description + "Applies to non TPMRs"; + } + type dot1qtypes:vlan-index-type; + default "1"; + description + "The primary (default) VID assigned to a specific Bridge Port."; + reference + "12.10.1, 5.4, item m) of IEEE Std 802.1Q-2022"; + } + leaf default-priority { + type dot1qtypes:priority-type; + default "0"; + description + "The default priority assigned to a specific Bridge Port."; + reference + "12.6.2 of IEEE Std 802.1Q-2022"; + } + container priority-regeneration { + description + "The Priority Regeneration Table parameters associated with a + specific Bridge Port. A list of Regenerated User Priorities + for each received priority on each port of a Bridge. The + regenerated priority value may be used to index the Traffic + Class Table for each input port. This only has effect on media + that support native priority. The default values for + Regenerated User Priorities are the same as the User + Priorities"; + reference + "12.6.2, 6.9.4 of IEEE Std 802.1Q-2022"; + uses dot1qtypes:priority-regeneration-table-grouping; + } + leaf pcp-selection { + type dot1qtypes:pcp-selection-type; + default "8P0D"; + description + "The Priority Code Point selection assigned to a specific + Bridge Port. This object identifies the rows in the PCP + encoding and decoding tables that are used to remark frames on + this port if this remarking is enabled"; + reference + "12.6.2, 6.9.3 of IEEE Std 802.1Q-2022"; + } + container pcp-decoding-table { + description + "The Priority Code Point Decoding Table parameters associated + with a specific Bridge Port."; + uses dot1qtypes:pcp-decoding-table-grouping; + } + container pcp-encoding-table { + description + "The Priority Code Point Encoding Table parameters associated + with a specific Bridge Port."; + uses dot1qtypes:pcp-encoding-table-grouping; + } + leaf use-dei { + type boolean; + default "false"; + description + "The Drop Eligible Indicator. If it is set to True, then the + drop_eligible parameter is encoded in the DEI of transmitted + frames, and the drop_eligible parameter shall be true(1) for a + received frame if the DEI is set in the VLAN tag or the + Priority Code Point Decoding Table indicates drop_eligible + True for the received PCP value. If this parameter is False, + the DEI shall be transmitted as zero and ignored on receipt."; + reference + "12.6.2, 6.9.3 of IEEE Std 802.1Q-2022"; + } + leaf drop-encoding { + type boolean; + default "false"; + description + "The Drop Encoding parameter. If a Bridge supports encoding or + decoding of drop_eligible from the PCP field of a VLAN tag + (6.7.3) on any of its Ports, then it shall implement a Boolean + parameter Require Drop Encoding on each of its Ports with + default value False. If Require Drop Encoding is True and the + Bridge Port cannot encode particular priorities with + drop_eligible, then frames queued with those priorities and + drop_eligible True shall be discarded and not transmitted."; + reference + "12.6.2, 6.9.3 of IEEE Std 802.1Q-2022"; + } + leaf service-access-priority-selection { + type boolean; + default "false"; + description + "The Service Access Priority selection. Indication of whether + the Service Access Priority Selection function is supported on + the Customer Bridge Port to request priority handling of the + frame from a Port-based service interface."; + reference + "12.6.2, 6.13 of IEEE Std 802.1Q-2022"; + } + container service-access-priority { + description + "The Service Access Priority table parameters. A table that + contains information about the Service Access Priority + Selection function for a Provider Bridge. The use of this + table enables a mechanism for a Customer Bridge attached to a + Provider Bridged Network to request priority handling of + frames."; + reference + "12.6.2, 6.13.1 of IEEE Std 802.1Q-2022"; + uses dot1qtypes:service-access-priority-table-grouping; + } + container traffic-class { + description + "The Traffic Class table parameters. A table mapping evaluated + priority to Traffic Class, for forwarding by the Bridge"; + reference + "12.6.3, 8.6.6 of IEEE Std 802.1Q-2022"; + uses dot1qtypes:traffic-class-table-grouping; + } + container transmission-selection-algorithm-table { + description + "The Transmission Selection Algorithm Table for a given Port + assigns, for each traffic class that the Port supports, the + transmission selection algorithm that is to be used to select + frames for transmission from the corresponding queue. + Transmission Selection Algorithm Tables may be managed, and + allow the identification of vendor-specific transmission + selection algorithms. The transmission selection algorithms + are identified in the Transmission Selection Algorithm Table + by means of integer identifiers."; + reference + "12.20.2, 8.6.8 of IEEE Std 802.1Q-2022"; + uses dot1qtypes:transmission-selection-table-grouping; + } + leaf acceptable-frame { + when "/dot1q:bridges/dot1q:bridge[dot1q:name=current()"+ + "/../dot1q:bridge-name]/dot1q:component[name=current()"+ + "/../dot1q:component-name]/dot1q:type != 'dot1q:d-bridge-component'" { + description + "Applies to non TPMRs"; + } + type enumeration { + enum admit-only-VLAN-tagged-frames { + description + "Admit only VLAN-tagged frames."; + } + enum admit-only-untagged-and-priority-tagged { + description + "Admit only untagged and priority-tagged frames."; + } + enum admit-all-frames { + description + "Admit all frames."; + } + } + default "admit-all-frames"; + description + "To configure the Acceptable Frame Types parameter associated + with one or more Ports"; + reference + "12.10.1.3, 6.9 of IEEE Std 802.1Q-2022"; + } + leaf enable-ingress-filtering { + when "/dot1q:bridges/dot1q:bridge[dot1q:name=current()"+ + "/../dot1q:bridge-name]/dot1q:component[name=current()"+ + "/../dot1q:component-name]/dot1q:type != 'dot1q:d-bridge-component'" { + description + "Applies to non TPMRs"; + } + type boolean; + default "false"; + description + "To enable the Ingress Filtering feature associated with one + or more Ports."; + reference + "12.10.1.4, 8.6.2 of IEEE Std 802.1Q-2022"; + } + leaf enable-restricted-vlan-registration { + when "/dot1q:bridges/dot1q:bridge[dot1q:name=current()"+ + "/../dot1q:bridge-name]/dot1q:component[name=current()"+ + "/../dot1q:component-name]/dot1q:type != 'dot1q:d-bridge-component'" { + description + "Applies to non TPMRs"; + } + type boolean; + default "false"; + description + "To enable the Restricted VLAN Registration associated with + one or more Ports."; + reference + "11.2.3.2.3, 12.10.1.6 of IEEE Std 802.1Q-2022"; + } + leaf enable-vid-translation-table { + when "/dot1q:bridges/dot1q:bridge[dot1q:name=current()"+ + "/../dot1q:bridge-name]/dot1q:component[name=current()"+ + "/../dot1q:component-name]/dot1q:type != 'dot1q:d-bridge-component'" { + description + "Applies to non TPMRs"; + } + type boolean; + default "false"; + description + "To enable VID Translation table associated with a Bridge + Port. This is not applicable to Bridge Ports that do no + support a VID Translation Table."; + reference + "12.10.1.8, 6.9 of IEEE Std 802.1Q-2022"; + } + leaf enable-egress-vid-translation-table { + when "/dot1q:bridges/dot1q:bridge[dot1q:name=current()"+ + "/../dot1q:bridge-name]/dot1q:component[name=current()"+ + "/../dot1q:component-name]/dot1q:type != 'dot1q:d-bridge-component'" { + description + "Applies to non TPMRs"; + } + type boolean; + default "false"; + description + "To enable Egress VID Translation table associated with a + Bridge Port. This is not applicable to Ports that do not + support an Egress VID Translation table."; + reference + "12.10.1.8, 6.9 of IEEE Std 802.1Q-2022"; + } + list protocol-group-vid-set { + when "/dot1q:bridges/dot1q:bridge[dot1q:name=current()"+ + "/../dot1q:bridge-name]/dot1q:component[name=current()"+ + "/../dot1q:component-name]/dot1q:type != 'dot1q:d-bridge-component'" { + description + "Applies to non TPMRs"; + } + if-feature "port-and-protocol-based-vlan"; + key "group-id"; + description + "The list of VID values associated with the Protocol Group + Identifier for this port."; + reference + "12.10.1.1.3 of IEEE Std 802.1Q-2022"; + leaf group-id { + type uint32; + description + "The protocol group identifier"; + reference + "12.10.1.7 of IEEE Std 802.1Q-2022"; + } + leaf-list vid { + type dot1qtypes:vlanid; + description + "The VLAN identifier to which this entry applies."; + reference + "12.10.2 of IEEE Std 802.1Q-2022"; + } + } + leaf admin-point-to-point { + type enumeration { + enum force-true { + value 1; + description + "Indicates that this port should always be treated as if + it is connected to a point-to-point link."; + } + enum force-false { + value 2; + description + "Indicates that this port should be treated as having a + shared media connection."; + } + enum auto { + value 3; + description + "Indicates that this port is considered to have a + point-to-point link if it is an Aggregator and all of its + members are aggregatable, or if the MAC entity is + configured for full duplex operation, either through + auto-negotiation or by management means."; + } + } + description + "For a port running spanning tree, this object represents the + administrative point-to-point status of the LAN segment + attached to this port, using the enumeration values of IEEE + Std 802.1AC. A value of forceTrue(1) indicates that this port + should always be treated as if it is connected to a + point-to-point link. A value of forceFalse(2) indicates that + this port should be treated as having a shared media + connection. A value of auto(3) indicates that this port is + considered to have a point-to-point link if it is an + Aggregator and all of its members are aggregatable, or if the + MAC entity is configured for full duplex operation, either + through auto-negotiation or by management means. Manipulating + this object changes the underlying adminPointToPointMAC."; + reference + "12.4.2, 6.8.2 of IEEE Std 802.1Q-2022"; + } + leaf protocol-based-vlan-classification { + when "/dot1q:bridges/dot1q:bridge[dot1q:name=current()"+ + "/../dot1q:bridge-name]/dot1q:component[name=current()"+ + "/../dot1q:component-name]/dot1q:type != 'dot1q:d-bridge-component'" { + description + "Applies to non TPMRs"; + } + if-feature "port-and-protocol-based-vlan"; + type boolean; + config false; + description + "A boolean indication indicating if Port-and-Protocol-based + VLAN classification is supported on a given Port."; + reference + "5.4.1.2 of IEEE Std 802.1Q-2022"; + } + leaf max-vid-set-entries { + when "/dot1q:bridges/dot1q:bridge[dot1q:name=current()"+ + "/../dot1q:bridge-name]/dot1q:component[name=current()"+ + "/../dot1q:component-name]/dot1q:type != 'dot1q:d-bridge-component'" { + description + "Applies to non TPMRs"; + } + if-feature "port-and-protocol-based-vlan"; + type uint16; + config false; + description + "The maximum number of entries supported in the VID set on a + given Port."; + reference + "12.10.1.1.3 of IEEE Std 802.1Q-2022"; + } + leaf port-number { + type dot1qtypes:port-number-type; + config false; + description + "An integer that uniquely identifies a Bridge Port."; + reference + "Item i) in 12.3, 17.3.2.2 of IEEE Std 802.1Q-2022"; + } + leaf address { + type ieee:mac-address; + config false; + description + "The specific MAC address of the individual MAC Entity + associated with the Port."; + reference + "12.4.2, Item a) in 12.4.2.1.1.3 of IEEE Std 802.1Q-2022"; + } + leaf capabilities { + type bits { + bit tagging { + position 0; + description + "Supports 802.1Q VLAN tagging of frames and MVRP."; + } + bit configurable-acceptable-frame-type { + position 1; + description + "Allows modified values of acceptable frame types"; + } + bit ingress-filtering { + position 2; + description + "Supports the discarding of any frame received on a Port + whose VLAN classification does not include that Port in + its member set."; + } + } + config false; + description + "The feature capabilities associated with port. Indicates the + parts of IEEE 802.1Q that are optional on a per-port basis, + that are implemented by this device, and that are manageable."; + reference + "Item c) in 12.10.1.1.3, 12.4.2 of IEEE Std 802.1Q-2022"; + } + leaf type-capabilties { + type bits { + bit customer-vlan-port { + position 0; + description + "Indicates the port can be a C-TAG aware port of an + enterprise VLAN aware Bridge"; + } + bit provider-network-port { + position 1; + description + "Indicates the port can be an S-TAG aware port of a + Provider Bridge or Backbone Edge Bridge used for + connections within a PBN or PBBN."; + } + bit customer-network-port { + position 2; + description + "Indicates the port can be an S-TAG aware port of a + Provider Bridge or Backbone Edge Bridge used for + connections to the exterior of a PBN or PBBN."; + } + bit customer-edge-port { + position 3; + description + "Indicates the port can be a C-TAG aware port of a + Provider Bridge used for connections to the exterior of a + PBN or PBBN."; + } + bit customer-backbone-port { + position 4; + description + "Indicates the port can be a I-TAG aware port of a + Backbone Edge Bridge's B-component."; + } + bit virtual-instance-port { + position 5; + description + "Indicates the port can be a virtual S-TAG aware port + within a Backbone Edge Bridge's I-component which is + responsible for handling S-tagged traffic for a specific + backbone service instance."; + } + bit d-bridge-port { + position 6; + description + "Indicates the port can be a VLAN-unaware member of an + 802.1Q Bridge."; + } + bit remote-customer-access-port { + position 7; + description + "Indicates the port can be an S-TAG aware port of a + Provider Bridge capable of providing Remote Customer + Service Interfaces."; + } + bit station-facing-bridge-port { + position 8; + description + "Indicates the station-facing Bridge Port in a EVB Bridge."; + } + bit uplink-access-port { + position 9; + description + "Indicates the uplink access port in an EVB Bridge or EVB + station."; + } + bit uplink-relay-port { + position 10; + description + "Indicates the uplink relay port in an EVB station."; + } + } + config false; + description + "The type of feature capabilities supported with port. + Indicates the capabilities of this port."; + reference + "12.4.2 of IEEE Std 802.1Q-2022"; + } + leaf external { + type boolean; + config false; + description + "A boolean indicating whether the port is external. A value of + True means the port is external. A value of False means the + port is internal."; + reference + "12.4.2 of IEEE Std 802.1Q-2022"; + } + leaf oper-point-to-point { + type boolean; + config false; + description + "For a port running spanning tree, this object represents the + operational point-to-point status of the LAN segment attached + to this port. It indicates whether a port is considered to + have a point-to-point connection. + + If admin-point-to-point is set to auto(2), then the value of + oper-point-to-point is determined in accordance with the + specific procedures defined for the MAC entity concerned, as + defined in IEEE Std 802.1AC. + + The value is determined dynamically; that is, it is + re-evaluated whenever the value of admin-point-to-point + changes, and whenever the specific procedures defined for the + MAC entity evaluate a change in its point-to-point status."; + reference + "IEEE Std 802.1AC;" + + "12.4.2 of IEEE Std 802.1Q-2022"; + } + leaf media-dependent-overhead { + type uint8; + units "octets"; + config false; + description + "The portMediaDependentOverhead parameter provides the number + of additional octets for media-dependent framing. The overhead + includes all octets prior the first octet of the Destination + Address field and all octets after the last octet of the frame + check sequence."; + reference + "12.4.2 of IEEE Std 802.1Q-2022"; + } + container statistics { + config false; + description + "Container of operational state node information associated + with the bridge port."; + uses dot1qtypes:bridge-port-statistics-grouping; + leaf discard-on-ingress-filtering { + when "/dot1q:bridges/dot1q:bridge[dot1q:name=current()"+ + "/../../dot1q:bridge-name]/dot1q:component[name=current()"+ + "/../../dot1q:component-name]/dot1q:type != 'dot1q:d-bridge-component'" { + description + "Applies to non TPMRs"; + } + if-feature "ingress-filtering"; + type yang:counter64; + description + "The number of frames that were discarded as a result of + Ingress Filtering being enabled. + + Discontinuities in the value of this counter can occur at + re-initialization of the management system, and at other + times as indicated by the value of 'discontinuity-time'."; + reference + "12.6.1.1.3 of IEEE Std 802.1Q-2022"; + } + } + list vid-translations { + when "/dot1q:bridges/dot1q:bridge[dot1q:name=current()"+ + "/../dot1q:bridge-name]/dot1q:component[name=current()"+ + "/../dot1q:component-name]/dot1q:type != 'dot1q:d-bridge-component'" { + description + "Applies to non TPMRs"; + } + key "local-vid"; + description + "To configure the VID Translation Table (6.9) associated with + a Port. This object is not applicable to Ports that do not + support a VID Translation Table. The default configuration of + the table has the value of the Relay VID equal to the value of + the Local VID. If no local VID is configured, then it is + assumed that the relay VID is the same value as the local VID. + + If the port supports an Egress VID translation table, the VID + Translation Configuration object configures the Local VID to + Relay VID mapping on ingress only. If an Egress VID + translation is not supported, the VID Translation + Configuration object defines a single bidirectional mapping. + In this case, the Bridge should not allow multiple keys + ('local-vid') mapped to the same 'relay-vid' value."; + leaf local-vid { + type dot1qtypes:vlanid; + description + "The Local VID after translation received at the ISS or + EISS."; + reference + "12.10.1.8, 6.9 of IEEE Std 802.1Q-2022"; + } + leaf relay-vid { + type dot1qtypes:vlanid; + description + "The Relay VID received before translation received at ISS + or EISS."; + reference + "12.10.1.8, 6.9 of IEEE Std 802.1Q-2022"; + } + } + list egress-vid-translations { + when "/dot1q:bridges/dot1q:bridge[dot1q:name=current()"+ + "/../dot1q:bridge-name]/dot1q:component[name=current()"+ + "/../dot1q:component-name]/dot1q:type != 'dot1q:d-bridge-component'" { + description + "Applies to non TPMRs"; + } + key "relay-vid"; + description + "To configure the Egress VID Translation Table (6.9) + associated with a Port. This object is not applicable to Ports + that do not support an Egress VID Translation Table. The + default configuration of the table has the value of the Local + VID equal to the value of the Relay VID. If no Relay VID is + configured, then it is assumed that the local VID is the same + value as the relay VID."; + leaf relay-vid { + type dot1qtypes:vlanid; + description + "The Relay VID received before translation received at ISS + or EISS."; + reference + "12.10.1.9, 6.9 of IEEE Std 802.1Q-2022"; + } + leaf local-vid { + type dot1qtypes:vlanid; + description + "The Local VID after translation received at the ISS or + EISS."; + reference + "12.10.1.9, 6.9 of IEEE Std 802.1Q-2022"; + } + } + } + } +} \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.yang2tdl/samples/mwt/ieee802-dot1q-pb.yang b/plugins/org.etsi.mts.tdl.yang2tdl/samples/mwt/ieee802-dot1q-pb.yang new file mode 100644 index 0000000000000000000000000000000000000000..e25b7b060b9a64bf4adbe6c120b154b98dd58e17 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.yang2tdl/samples/mwt/ieee802-dot1q-pb.yang @@ -0,0 +1,221 @@ +module ieee802-dot1q-pb { + yang-version "1.1"; + namespace urn:ieee:std:802.1Q:yang:ieee802-dot1q-pb; + prefix dot1q-pb; + import ieee802-dot1q-bridge { + prefix dot1q; + } + import ieee802-dot1q-types { + prefix dot1qtypes; + } + import ietf-interfaces { + prefix if; + } + organization + "IEEE 802.1 Working Group"; + contact + "WG-URL: http://ieee802.org/1/ + WG-EMail: stds-802-1-l@ieee.org + + Contact: IEEE 802.1 Working Group Chair + Postal: C/O IEEE 802.1 Working Group + IEEE Standards Association + 445 Hoes Lane + Piscataway, NJ 08854 + USA + + E-mail: stds-802-1-chairs@ieee.org"; + description + "This YANG module describes the bridge configuration model for + Provider Bridges. + + Copyright (C) IEEE (2022). + + This version of this YANG module is part of IEEE Std 802.1Q; see the + standard itself for full legal notices."; + revision 2022-05-06 { + description + "Update to rebase on Qcw"; + reference + "IEEE Std 802.1Q-2022, Bridges and Bridged Networks."; + } + revision 2022-01-19 { + description + "Published as part of IEEE Std 802.1Q-2022."; + reference + "IEEE Std 802.1Q-2022, Bridges and Bridged Networks."; + } + revision 2020-06-04 { + description + "Published as part of IEEE Std 802.1Qcx-2020. Second version."; + reference + "IEEE Std 802.1Qcx-2020, Bridges and Bridged Networks - YANG Data + Model for Connectivity Fault Management."; + } + revision 2018-03-07 { + description + "Published as part of IEEE Std 802.1Q-2018. Initial version."; + reference + "IEEE Std 802.1Q-2018, Bridges and Bridged Networks."; + } + augment "/if:interfaces/if:interface/dot1q:bridge-port" { + description + "Augment the interface model with 802.1Q Bridge Port configuration + specific nodes."; + leaf svid { + type dot1qtypes:vlanid; + description + "Service VLAN identifier."; + reference + "12.13.2.1 of IEEE Std 802.1Q-2022"; + } + list cvid-registration { + when "/dot1q:bridges/dot1q:bridge[dot1q:name=current()" + + "/../dot1q:bridge-name]/dot1q:component[dot1q:name=current()" + + "/../dot1q:component-name]/dot1q:type = 'dot1q:c-vlan-component' and "+ + "../dot1q:port-type = 'dot1q:customer-edge-port'" { + description + "Applies when the component associated with this interface is + a C-VLAN component and the port-type is a customer edge port."; + } + key "cvid"; + description + "The C-VID Registration Table, provides a mapping between a + C-VID and the service instance represented by an S-VID selected + for that C-VLAN. This table provides the equivalent + functionality of + 1) Configuring the PVID of the internal CNP on the S-VLAN + component + 2) Adding the corresponding PEP on the C-VLAN component to + the member set of the C-VLAN + 3) Adding the PEP and/or CEP to the untagged set of the + C-VLAN (if it is desired that frames forwarded to that + port are transmitted untagged for this C-VLAN)."; + leaf cvid { + type dot1qtypes:vlanid; + description + "Customer VLAN identifiers associated with this bridge port."; + reference + "12.13.2.1 of IEEE Std 802.1Q-2022"; + } + leaf svid { + type dot1qtypes:vlanid; + description + "Service VLAN identifier."; + reference + "12.13.2.1 of IEEE Std 802.1Q-2022"; + } + leaf untagged-pep { + type boolean; + default "true"; + description + "A boolean indicating frames for this C-VLAN should be + forwarded untagged through the Provider Edge Port."; + reference + "12.13.2.1 of IEEE Std 802.1Q-2022"; + } + leaf untagged-cep { + type boolean; + default "true"; + description + "A boolean indicating frames for this C-VLAN should be + forwarded untagged through the Customer Edge Port."; + reference + "12.13.2.1 of IEEE Std 802.1Q-2022"; + } + } + list service-priority-regeneration { + when "/dot1q:bridges/dot1q:bridge[dot1q:name=current() " + + "/../dot1q:bridge-name]/dot1q:component[dot1q:name=current() " + + "/../dot1q:component-name]/dot1q:type = 'dot1q:c-vlan-component' and "+ + "../dot1q:port-type = 'dot1q:customer-edge-port'" { + description + "Applies when the component associated with this interface is + a C-VLAN component and the port-type is a customer edge port."; + } + key "svid"; + description + "The Service Priority Regeneration Table, which provides the + Priority Regeneration Table (12.6.2) for each internal CNP + connected to the C-VLAN component associated with the CEP."; + leaf svid { + type dot1qtypes:vlanid; + description + "Service VLAN identifier."; + reference + "12.13.2.6 of IEEE Std 802.1Q-2022"; + } + container priority-regeneration { + description + "Contains Service Priority Regeneration table nodal + information."; + reference + "12.13.2.6 of IEEE Std 802.1Q-2022"; + uses dot1qtypes:priority-regeneration-table-grouping; + } + } + list rcap-internal-interface { + when "/dot1q:bridges/dot1q:bridge[dot1q:name=current() " + + "/../dot1q:bridge-name]/dot1q:component[dot1q:name=current() " + + "/../dot1q:component-name]/dot1q:type = 'dot1q:s-vlan-component' and "+ + "../dot1q:port-type = 'dot1q:remote-customer-access-port'" { + description + "Applies when the component associated with this interface is + a C-VLAN component and the port-type is a customer edge port."; + } + key "external-svid"; + description + "Designating an external port as an RCAP automatically creates a + Port-mapping S-VLAN component associated with that port. This + Port-mapping S-VLAN component includes one internal PNP."; + leaf external-svid { + type dot1qtypes:vlanid; + description + "External Service VLAN identifier."; + reference + "12.13.3.2 of IEEE Std 802.1Q-2022"; + } + leaf internal-port-number { + type dot1qtypes:port-number-type; + description + "The number of the RCAP."; + reference + "12.13.3.2 of IEEE Std 802.1Q-2022"; + } + leaf internal-svid { + type dot1qtypes:vlanid; + description + "Internal Service VLAN Identifier (not applicable for a + C-tagged RCSI)."; + reference + "12.13.3.2 of IEEE Std 802.1Q-2022"; + } + leaf internal-interface-type { + type enumeration { + enum port-based-rcsi { + description + "Port-based RCSI"; + } + enum c-tagged-rcsi { + description + "C-tagged RCSI"; + } + enum pnp { + description + "Provider Network Port"; + } + enum discard { + description + "Discard (external S-VID is not associated with an + internal port)."; + } + } + description + "A value indicating the type of internal interface associated + with the external S-VID."; + reference + "12.13.3.2 of IEEE Std 802.1Q-2022"; + } + } + } +} \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.yang2tdl/samples/mwt/ieee802-dot1q-types.yang b/plugins/org.etsi.mts.tdl.yang2tdl/samples/mwt/ieee802-dot1q-types.yang new file mode 100644 index 0000000000000000000000000000000000000000..cfc46ed9b6c31709268ea4d4fdd7feadef55f760 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.yang2tdl/samples/mwt/ieee802-dot1q-types.yang @@ -0,0 +1,980 @@ +module ieee802-dot1q-types { + namespace urn:ieee:std:802.1Q:yang:ieee802-dot1q-types; + prefix dot1q-types; + import ietf-yang-types { + prefix yang; + } + organization + "IEEE 802.1 Working Group"; + contact + "WG-URL: http://ieee802.org/1/ + WG-EMail: stds-802-1-l@ieee.org + + Contact: IEEE 802.1 Working Group Chair + Postal: C/O IEEE 802.1 Working Group + IEEE Standards Association + 445 Hoes Lane + Piscataway, NJ 08854 + USA + + E-mail: stds-802-1-chairs@ieee.org"; + description + "Common types used within dot1Q-bridge modules. + + Copyright (C) IEEE (2022). + + This version of this YANG module is part of IEEE Std 802.1Q; see the + standard itself for full legal notices."; + revision 2022-01-19 { + description + "Published as part of IEEE Std 802.1Q-2022."; + reference + "IEEE Std 802.1Q-2022, Bridges and Bridged Networks."; + } + revision 2020-06-04 { + description + "Published as part of IEEE Std 802.1Qcx-2020. Second version."; + reference + "IEEE Std 802.1Qcx-2020, Bridges and Bridged Networks - YANG Data + Model for Connectivity Fault Management."; + } + revision 2018-03-07 { + description + "Published as part of IEEE Std 802.1Q-2018. Initial version."; + reference + "IEEE Std 802.1Q-2018, Bridges and Bridged Networks."; + } + identity dot1q-vlan-type { + description + "Base identity from which all 802.1Q VLAN tag types are derived + from."; + } + identity c-vlan { + base dot1q-vlan-type; + description + "An 802.1Q Customer VLAN, using the 81-00 EtherType"; + reference + "5.5 of IEEE Std 802.1Q-2022"; + } + identity s-vlan { + base dot1q-vlan-type; + description + "An 802.1Q Service VLAN, using the 88-A8 EtherType originally + introduced in 802.1ad, and incorporated into 802.1Q (2011)"; + reference + "5.6 of IEEE Std 802.1Q-2022"; + } + identity transmission-selection-algorithm { + description + "Specify the transmission selection algorithms of IEEE Std + 802.1Q-2022 Table 8-6"; + } + identity strict-priority { + base transmission-selection-algorithm; + description + "Indicates the strict priority transmission selection algorithm."; + reference + "Table 8-6 of IEEE Std 802.1Q-2022"; + } + identity credit-based-shaper { + base transmission-selection-algorithm; + description + "Indicates the credit based shaper transmission selection + algorithm."; + reference + "Table 8-6 of IEEE Std 802.1Q-2022"; + } + identity enhanced-transmission-selection { + base transmission-selection-algorithm; + description + "Indicates the enhanced transmission selection algorithm."; + reference + "Table 8-6 of IEEE Std 802.1Q-2022"; + } + identity asynchronous-traffic-shaping { + base transmission-selection-algorithm; + description + "Indicates the asynchronous transmission selection algorithm."; + reference + "Table 8-6 of IEEE Std 802.1Q-2022"; + } + identity vendor-specific { + base transmission-selection-algorithm; + description + "Indicates a vendor specific transmission selection algorithm."; + reference + "Table 8-6 of IEEE Std 802.1Q-2022"; + } + typedef name-type { + type string { + length "0..32"; + } + description + "A text string of up to 32 characters, of locally determined + significance."; + } + typedef port-number-type { + type uint32 { + range "1..4095"; + } + description + "The port number of the Bridge port for which this entry contains + Bridge management information."; + } + typedef priority-type { + type uint8 { + range "0..7"; + } + description + "A range of priorities from 0 to 7 (inclusive). The Priority Code + Point (PCP) is a 3-bit field that refers to the class of service + associated with an 802.1Q VLAN tagged frame. The field specifies a + priority value between 0 and 7, these values can be used by + quality of service (QoS) to prioritize different classes of + traffic."; + } + typedef vid-range-type { + type string { + pattern + "([1-9]"+ + "[0-9]{0,3}"+ + "(-[1-9][0-9]{0,3})?"+ + "(,[1-9][0-9]{0,3}(-[1-9][0-9]{0,3})?)*)"; + } + description + "A list of VLAN Ids, or non overlapping VLAN ranges, in ascending + order, between 1 and 4094. + + This type is used to match an ordered list of VLAN Ids, or + contiguous ranges of VLAN Ids. Valid VLAN Ids must be in the range + 1 to 4094, and included in the list in non overlapping ascending + order. + + For example: 1,10-100,250,500-1000"; + } + typedef vlanid { + type uint16 { + range "1..4094"; + } + description + "The vlanid type uniquely identifies a VLAN. This is the 12-bit + VLAN-ID used in the VLAN Tag header. The range is defined by the + referenced specification. This type is in the value set and its + semantics equivalent to the VlanId textual convention of the + SMIv2."; + } + typedef vlan-index-type { + type uint32 { + range "1..4094 | 4096..4294967295"; + } + description + "A value used to index per-VLAN tables. Values of 0 and 4095 are + not permitted. The range of valid VLAN indices. If the value is + greater than 4095, then it represents a VLAN with scope local to + the particular agent, i.e., one without a global VLAN-ID assigned + to it. Such VLANs are outside the scope of IEEE 802.1Q, but it is + convenient to be able to manage them in the same way using this + YANG module."; + reference + "9.6 of IEEE Std 802.1Q-2022"; + } + typedef mstid-type { + type uint32 { + range "1..4094"; + } + description + "In an MSTP Bridge, an MSTID, i.e., a value used to identify a + spanning tree (or MST) instance"; + reference + "13.8 of IEEE Std 802.1Q-2022"; + } + typedef pcp-selection-type { + type enumeration { + enum 8P0D { + description + "8 priorities, 0 drop eligible"; + } + enum 7P1D { + description + "7 priorities, 1 drop eligible"; + } + enum 6P2D { + description + "6 priorities, 2 drop eligible"; + } + enum 5P3D { + description + "5 priorities, 3 drop eligible"; + } + } + description + "Priority Code Point selection types."; + reference + "12.6.2.5.3, 6.9.3 of IEEE Std 802.1Q-2022"; + } + typedef protocol-frame-format-type { + type enumeration { + enum Ethernet { + description + "Ethernet frame format"; + } + enum rfc1042 { + description + "RFC 1042 frame format"; + } + enum snap8021H { + description + "SNAP 802.1H frame format"; + } + enum snapOther { + description + "Other SNAP frame format"; + } + enum llcOther { + description + "Other LLC frame format"; + } + } + description + "A value representing the frame format to be matched."; + reference + "12.10.1.7.1 of IEEE Std 802.1Q-2022"; + } + typedef ethertype-type { + type string { + pattern "[0-9a-fA-F]{2}-[0-9a-fA-F]{2}"; + } + description + "The EtherType value represented in the canonical order defined by + IEEE 802. The canonical representation uses uppercase characters."; + reference + "9.2 of IEEE Std 802-2014"; + } + typedef dot1q-tag-type { + type identityref { + base dot1q-vlan-type; + } + description + "Identifies a specific 802.1Q tag type"; + reference + "9.5 IEEE Std 802.1Q-2022"; + } + typedef traffic-class-type { + type uint8 { + range "0..7"; + } + description + "This is the numerical value associated with a traffic class in a + Bridge. Larger values are associated with higher priority traffic + classes."; + reference + "3.273 of IEEE Std 802.1Q-2022"; + } + grouping dot1q-tag-classifier-grouping { + description + "A grouping which represents an 802.1Q VLAN, matching both the + EtherType and a single VLAN Id."; + leaf tag-type { + type dot1q-tag-type; + mandatory true; + description + "VLAN type"; + } + leaf vlan-id { + type vlanid; + mandatory true; + description + "VLAN Id"; + } + } + grouping dot1q-tag-or-any-classifier-grouping { + description + "A grouping which represents an 802.1Q VLAN, matching both the + EtherType and a single VLAN Id or 'any' to match on any VLAN Id."; + leaf tag-type { + type dot1q-tag-type; + mandatory true; + description + "VLAN type"; + } + leaf vlan-id { + type union { + type vlanid; + type enumeration { + enum any { + value 4095; + description + "Matches 'any' VLAN in the range 1 to 4094 that is not + matched by a more specific VLAN Id match"; + } + } + } + mandatory true; + description + "VLAN Id or any"; + } + } + grouping dot1q-tag-ranges-classifier-grouping { + description + "A grouping which represents an 802.1Q VLAN that matches a range + of VLAN Ids."; + leaf tag-type { + type dot1q-tag-type; + mandatory true; + description + "VLAN type"; + } + leaf vlan-ids { + type vid-range-type; + mandatory true; + description + "VLAN Ids"; + } + } + grouping dot1q-tag-ranges-or-any-classifier-grouping { + description + "A grouping which represents an 802.1Q VLAN, matching both the + EtherType and a single VLAN Id, ordered list of ranges, or 'any' + to match on any VLAN Id."; + leaf tag-type { + type dot1q-tag-type; + mandatory true; + description + "VLAN type"; + } + leaf vlan-id { + type union { + type vid-range-type; + type enumeration { + enum any { + value 4095; + description + "Matches 'any' VLAN in the range 1 to 4094."; + } + } + } + mandatory true; + description + "VLAN Ids or any"; + } + } + grouping priority-regeneration-table-grouping { + description + "The priority regeneration table provides the ability to map + incoming priority values on a per-Port basis, under management + control."; + reference + "6.9.4 of IEEE Std 802.1Q-2022"; + leaf priority0 { + type priority-type; + default "0"; + description + "Priority 0"; + reference + "12.6.2.3, 6.9.4 of IEEE Std 802.1Q-2022"; + } + leaf priority1 { + type priority-type; + default "1"; + description + "Priority 1"; + reference + "12.6.2.3, 6.9.4 of IEEE Std 802.1Q-2022"; + } + leaf priority2 { + type priority-type; + default "2"; + description + "Priority 2"; + reference + "12.6.2.3, 6.9.4 of IEEE Std 802.1Q-2022"; + } + leaf priority3 { + type priority-type; + default "3"; + description + "Priority 3"; + reference + "12.6.2.3, 6.9.4 of IEEE Std 802.1Q-2022"; + } + leaf priority4 { + type priority-type; + default "4"; + description + "Priority 4"; + reference + "12.6.2.3, 6.9.4 of IEEE Std 802.1Q-2022"; + } + leaf priority5 { + type priority-type; + default "5"; + description + "Priority 5"; + reference + "12.6.2.3, 6.9.4 of IEEE Std 802.1Q-2022"; + } + leaf priority6 { + type priority-type; + default "6"; + description + "Priority 6"; + reference + "12.6.2.3, 6.9.4 of IEEE Std 802.1Q-2022"; + } + leaf priority7 { + type priority-type; + default "7"; + description + "Priority 7"; + reference + "12.6.2.3, 6.9.4 of IEEE Std 802.1Q-2022"; + } + } + grouping pcp-decoding-table-grouping { + description + "The Priority Code Point decoding table enables the decoding of + the priority and drop-eligible parameters from the PCP."; + reference + "6.9.3 of IEEE Std 802.1Q-2022"; + list pcp-decoding-map { + key "pcp"; + description + "This map associates the priority code point field found in the + VLAN to a priority and drop eligible value based upon the + priority code point selection type."; + leaf pcp { + type pcp-selection-type; + description + "The priority code point selection type."; + reference + "12.6.2.7, 6.9.3 of IEEE Std 802.1Q-2022"; + } + list priority-map { + key "priority-code-point"; + description + "This map associated a priority code point value to priority + and drop eligible parameters."; + leaf priority-code-point { + type priority-type; + description + "Priority associated with the pcp."; + reference + "12.6.2.7, 6.9.3 of IEEE Std 802.1Q-2022"; + } + leaf priority { + type priority-type; + description + "Priority associated with the pcp."; + reference + "12.6.2.7, 6.9.3 of IEEE Std 802.1Q-2022"; + } + leaf drop-eligible { + type boolean; + description + "Drop eligible value for pcp"; + reference + "12.6.2.7, 6.9.3 of IEEE Std 802.1Q-2022"; + } + } + } + } + grouping pcp-encoding-table-grouping { + description + "The Priority Code Point encoding table encodes the priority and + drop-eligible parameters in the PCP field of the VLAN tag."; + reference + "12.6.2.9, 6.9.3 of IEEE Std 802.1Q-2022"; + list pcp-encoding-map { + key "pcp"; + description + "This map associated the priority and drop-eligible parameters + to the priority used to encode the PCP of the VLAN based upon + the priority code point selection type."; + leaf pcp { + type pcp-selection-type; + description + "The priority code point selection type."; + reference + "12.6.2.7, 6.9.3 of IEEE Std 802.1Q-2022"; + } + list priority-map { + key "priority dei"; + description + "This map associated the priority and drop-eligible parameters + to the priority code point field of the VLAN tag."; + leaf priority { + type priority-type; + description + "Priority associated with the pcp."; + reference + "12.6.2.7, 6.9.3 of IEEE Std 802.1Q-2022"; + } + leaf dei { + type boolean; + description + "The drop eligible value."; + reference + "12.6.2, 8.6.6 of IEEE Std 802.1Q-2022"; + } + leaf priority-code-point { + type priority-type; + description + "PCP value for priority when DEI value"; + reference + "12.6.2.9, 6.9.3 of IEEE Std 802.1Q-2022"; + } + } + } + } + grouping service-access-priority-table-grouping { + description + "The Service Access Priority Table associates a received priority + with a serice access priority."; + reference + "12.6.2.17, 6.13.1 of IEEE Std 802.1Q-2022"; + leaf priority0 { + type priority-type; + default "0"; + description + "Service access priority value for priority 0"; + reference + "12.6.2.17, 6.13.1 of IEEE Std 802.1Q-2022"; + } + leaf priority1 { + type priority-type; + default "1"; + description + "Service access priority value for priority 1"; + reference + "12.6.2.17, 6.13.1 of IEEE Std 802.1Q-2022"; + } + leaf priority2 { + type priority-type; + default "2"; + description + "Service access priority value for priority 2"; + reference + "12.6.2.17, 6.13.1 of IEEE Std 802.1Q-2022"; + } + leaf priority3 { + type priority-type; + default "3"; + description + "Service access priority value for priority 3"; + reference + "12.6.2.17, 6.13.1 of IEEE Std 802.1Q-2022"; + } + leaf priority4 { + type priority-type; + default "4"; + description + "Service access priority value for priority 4"; + reference + "12.6.2.17, 6.13.1 of IEEE Std 802.1Q-2022"; + } + leaf priority5 { + type priority-type; + default "5"; + description + "Service access priority value for priority 5"; + reference + "12.6.2.17, 6.13.1 of IEEE Std 802.1Q-2022"; + } + leaf priority6 { + type priority-type; + default "6"; + description + "Service access priority value for priority 6"; + reference + "12.6.2.17, 6.13.1 of IEEE Std 802.1Q-2022"; + } + leaf priority7 { + type priority-type; + default "7"; + description + "Service access priority value for priority 7"; + reference + "12.6.2.17, 6.13.1 of IEEE Std 802.1Q-2022"; + } + } + grouping traffic-class-table-grouping { + description + "The Traffic Class Table models the operations that can be + performed on, or inquire about, the current contents of the + Traffic Class Table (8.6.6) for a given Port."; + reference + "12.6.3, 8.6.6 of IEEE Std 802.1Q-2022"; + list traffic-class-map { + key "priority"; + description + "The priority index into the traffic class table."; + leaf priority { + type priority-type; + description + "The priority of the traffic class entry."; + reference + "8.6.6 of IEEE Std 802.1Q-2022"; + } + list available-traffic-class { + key "num-traffic-class"; + description + "The traffic class index associated with a given priority + within the traffic class table."; + reference + "8.6.6 of IEEE Std 802.1Q-2022"; + leaf num-traffic-class { + type uint8 { + range "1..8"; + } + description + "The available number of traffic classes."; + reference + "8.6.6 of IEEE Std 802.1Q-2022"; + } + leaf traffic-class { + type traffic-class-type; + description + "The traffic class index associated with a given traffic + class entry."; + reference + "8.6.6 of IEEE Std 802.1Q-2022"; + } + } + } + } + grouping transmission-selection-table-grouping { + description + "The Transmission Selection Algorithm Table models the operations + that can be performed on, or inquire about, the current contents + of the Transmission Selection Algorithm Table (12.20.2) for a + given Port."; + reference + "12.20.2, 8.6.8 of IEEE Std 802.1Q-2022"; + list transmission-selection-algorithm-map { + key "traffic-class"; + description + "The traffic class to index into the transmission selection + table."; + leaf traffic-class { + type traffic-class-type; + description + "The traffic class of the entry."; + reference + "8.6.6 of IEEE Std 802.1Q-2022"; + } + leaf transmission-selection-algorithm { + type identityref { + base dot1q-types:transmission-selection-algorithm; + } + description + "Transmission selection algorithm"; + reference + "8.6.8, Table 8-6 of IEEE Std 802.1Q-2022"; + } + } + } + grouping port-map-grouping { + description + "A set of control indicators, one for each Port. A Port Map, + containing a control element for each outbound Port"; + reference + "8.8.1, 8.8.2 of IEEE Std 802.1Q-2022"; + list port-map { + key "port-ref"; + description + "The list of entries composing the port map."; + leaf port-ref { + type port-number-type; + description + "The interface port reference associated with this map."; + reference + "8.8.1 of IEEE Std 802.1Q-2022"; + } + choice map-type { + description + "Type of port map"; + container static-filtering-entries { + description + "Static filtering entries attributes."; + leaf control-element { + type enumeration { + enum forward { + description + "Forwarded, independently of any dynamic filtering + information held by the FDB."; + } + enum filter { + description + "Filtered, independently of any dynamic filtering + information."; + } + enum forward-filter { + description + "Forwarded or filtered on the basis of dynamic + filtering information, or on the basis of the default + Group filtering behavior for the outbound Port (8.8.6) + if no dynamic filtering information is present + specifically for the MAC address."; + } + } + description + "containing a control element for each outbound Port, + specifying that a frame with a destination MAC address, + and in the case of VLAN Bridge components, VID that meets + this specification."; + reference + "8.8.1 of IEEE Std 802.1Q-2022"; + } + leaf connection-identifier { + type port-number-type; + description + "A Port MAP may contain a connection identifier (8.8.12) + for each outbound port. The connection identifier may be + associated with the Bridge Port value maintained in a + Dynamic Filtering Entry of the FDB for Bridge Ports."; + reference + "8.8.1, 8.8.12 of IEEE Std 802.1Q-2022"; + } + } + container static-vlan-registration-entries { + description + "Static VLAN registration entries."; + leaf registrar-admin-control { + type enumeration { + enum fixed-new-ignored { + description + "Registration Fixed (New ignored)."; + } + enum fixed-new-propagated { + description + "Registration Fixed (New propagated."; + } + enum forbidden { + description + "Registration Forbidden."; + } + enum normal { + description + "Normal Registration."; + } + } + description + "The Registrar Administrative Control values for MVRP and + MIRP for the VID."; + reference + "8.8.2 of IEEE Std 802.1Q-2022"; + } + leaf vlan-transmitted { + type enumeration { + enum tagged { + description + "VLAN-tagged"; + } + enum untagged { + description + "VLAN-untagged"; + } + } + description + "Whether frames are to be VLAN-tagged or untagged when + transmitted."; + reference + "8.8.2 of IEEE Std 802.1Q-2022"; + } + } + container mac-address-registration-entries { + description + "MAC address registration entries attributes."; + leaf control-element { + type enumeration { + enum registered { + description + "Forwarded, independently of any dynamic filtering + information held by the FDB."; + } + enum not-registered { + description + "Filtered, independently of any dynamic filtering + information."; + } + } + description + "containing a control element for each outbound Port, + specifying that a frame with a destination MAC address, + and in the case of VLAN Bridge components, VID that meets + this specification."; + reference + "8.8.4 of IEEE Std 802.1Q-2022"; + } + } + container dynamic-vlan-registration-entries { + description + "Dynamic VLAN registration entries attributes."; + leaf control-element { + type enumeration { + enum registered { + description + "Forwarded, independently of any dynamic filtering + information held by the FDB."; + } + } + description + "containing a control element for each outbound Port, + specifying that a frame with a destination MAC address, + and in the case of VLAN Bridge components, VID that meets + this specification."; + reference + "8.8.5 of IEEE Std 802.1Q-2022"; + } + } + container dynamic-reservation-entries { + description + "Dynamic reservation entries attributes."; + leaf control-element { + type enumeration { + enum forward { + description + "Forwarded, independently of any dynamic filtering + information held by the FDB."; + } + enum filter { + description + "Filtered, independently of any dynamic filtering + information."; + } + } + description + "Containing a control element for each outbound Port, + specifying that a frame with a destination MAC address, + and in the case of VLAN Bridge components, VID that meets + this specification."; + reference + "8.8.7 of IEEE Std 802.1Q-2022"; + } + } + container dynamic-filtering-entries { + description + "Dynamic filtering entries attributes."; + leaf control-element { + type enumeration { + enum forward { + description + "Forwarded, independently of any dynamic filtering + information held by the FDB."; + } + } + description + "Containing a control element for each outbound Port, + specifying that a frame with a destination MAC address, + and in the case of VLAN Bridge components, VID that meets + this specification."; + reference + "8.8.3 of IEEE Std 802.1Q-2022"; + } + } + } + } + } + grouping bridge-port-statistics-grouping { + description + "Grouping of bridge port statistics."; + reference + "12.6.1.1.3 of IEEE Std 802.1Q-2022"; + leaf delay-exceeded-discards { + type yang:counter64; + description + "The number of frames discarded by this port due to excessive + transit delay through the Bridge. It is incremented by both + transparent and source route Bridges."; + reference + "12.6.1.1.3, 8.6.6 of IEEE Std 802.1Q-2022"; + } + leaf mtu-exceeded-discards { + type yang:counter64; + description + "The number of frames discarded by this port due to an excessive + size. It is incremented by both transparent and source route + Bridges."; + reference + "Item g) in 12.6.1.1.3 of IEEE Std 802.1Q-2022"; + } + leaf frame-rx { + type yang:counter64; + description + "The number of frames that have been received by this port from + its segment. Note that a frame received on the interface + corresponding to this port is only counted by this object if and + only if it is for a protocol being processed by the local + bridging function, including Bridge management frames."; + reference + "12.6.1.1.3 of IEEE Std 802.1Q-2022"; + } + leaf octets-rx { + type yang:counter64; + description + "The total number of octets in all valid frames received + (including BPDUs, frames addressed to the Bridge as an end + station, and frames that were submitted to the Forwarding + Process)."; + reference + "12.6.1.1.3 of IEEE Std 802.1Q-2022"; + } + leaf frame-tx { + type yang:counter64; + description + "The number of frames that have been transmitted by this port to + its segment. Note that a frame transmitted on the interface + corresponding to this port is only counted by this object if and + only if it is for a protocol being processed by the local + bridging function, including Bridge management frames."; + } + leaf octets-tx { + type yang:counter64; + description + "The total number of octets that have been transmitted by this + port to its segment."; + } + leaf discard-inbound { + type yang:counter64; + description + "Count of received valid frames that were discarded (i.e., + filtered) by the Forwarding Process."; + reference + "12.6.1.1.3 of IEEE Std 802.1Q-2022"; + } + leaf forward-outbound { + type yang:counter64; + description + "The number of frames forwarded to the associated MAC Entity + (8.5)."; + reference + "12.6.1.1.3 of IEEE Std 802.1Q-2022"; + } + leaf discard-lack-of-buffers { + type yang:counter64; + description + "The count of frames that were to be transmitted through the + associated Port but were discarded due to lack of buffers."; + reference + "12.6.1.1.3 of IEEE Std 802.1Q-2022"; + } + leaf discard-transit-delay-exceeded { + type yang:counter64; + description + "The number of frames discarded by this port due to excessive + transit delay through the Bridge. It is incremented by both + transparent and source route Bridges."; + reference + "12.6.1.1.3 of IEEE Std 802.1Q-2022"; + } + leaf discard-on-error { + type yang:counter64; + description + "The number of frames that were to be forwarded on the + associated MAC but could not be transmitted (e.g., frame would + be too large, 6.5.8)."; + reference + "12.6.1.1.3 of IEEE Std 802.1Q-2022"; + } + } +} diff --git a/plugins/org.etsi.mts.tdl.yang2tdl/samples/mwt/ieee802-types.yang b/plugins/org.etsi.mts.tdl.yang2tdl/samples/mwt/ieee802-types.yang new file mode 100644 index 0000000000000000000000000000000000000000..f7bce9974e0d04c7dba82729dd3642d349747896 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.yang2tdl/samples/mwt/ieee802-types.yang @@ -0,0 +1,287 @@ +module ieee802-types { + namespace urn:ieee:std:802.1Q:yang:ieee802-types; + prefix ieee; + organization + "IEEE 802.1 Working Group"; + contact + "WG-URL: http://ieee802.org/1/ + WG-EMail: stds-802-1-l@ieee.org + + Contact: IEEE 802.1 Working Group Chair + Postal: C/O IEEE 802.1 Working Group + IEEE Standards Association + 445 Hoes Lane + Piscataway, NJ 08854 + USA + + E-mail: stds-802-1-chairs@ieee.org"; + description + "This module contains a collection of generally useful derived data + types for IEEE YANG models. + + Copyright (C) IEEE (2022). + + This version of this YANG module is part of IEEE Std 802.1Q; see the + standard itself for full legal notices."; + revision 2022-05-19 { + description + "Published as part of IEEE Std 802.1Q-2022."; + reference + "IEEE Std 802.1Q-2022, Bridges and Bridged Networks."; + } + revision 2021-08-25 { + description + "Published as part of IEEE Std 802.1ABcu"; + reference + "IEEE Std 802.1AB-2016"; + } + revision 2020-06-04 { + description + "Published as part of IEEE Std 802.1Qcx-2020. Second version."; + reference + "IEEE Std 802.1Qcx-2020, Bridges and Bridged Networks - YANG Data + Model for Connectivity Fault Management."; + } + revision 2018-03-07 { + description + "Published as part of IEEE Std 802.1Q-2018. Initial version."; + reference + "IEEE Std 802.1Q-2018, Bridges and Bridged Networks."; + } + typedef mac-address { + type string { + pattern "[0-9a-fA-F]{2}(-[0-9a-fA-F]{2}){5}"; + } + description + "The mac-address type represents a MAC address in the canonical + format and hexadecimal format specified by IEEE Std 802. The + hexidecimal representation uses uppercase characters."; + reference + "3.1, 8.1 of IEEE Std 802-2014"; + } + typedef chassis-id-subtype-type { + type enumeration { + enum chassis-component { + value 1; + description + "Represents a chassis identifier based on the value of + entPhysicalAlias object (defined in IETF RFC 2737) for a + chassis component (i.e., an entPhysicalClass value of + chassis(3))"; + } + enum interface-alias { + value 2; + description + "Represents a chassis identifier based on the value of ifAlias + object (defined in IETF RFC 2863) for an interface on the + containing chassis."; + } + enum port-component { + value 3; + description + "Represents a chassis identifier based on the value of + entPhysicalAlias object (defined in IETF RFC 2737) for a port + or backplane component (i.e., entPhysicalClass value of + port(10) or backplane(4)), within the containing chassis."; + } + enum mac-address { + value 4; + description + "Represents a chassis identifier based on the value of a + unicast source address (encoded in network byte order and IEEE + 802.3 canonical bit order), of a port on the containing + chassis as defined in IEEE Std 802-2001."; + } + enum network-address { + value 5; + description + "Represents a chassis identifier based on a network address, + associated with a particular chassis. The encoded address is + actually composed of two fields. The first field is a single + octet, representing the IANA AddressFamilyNumbers value for + the specific address type, and the second field is the network + address value."; + } + enum interface-name { + value 6; + description + "Represents a chassis identifier based on the value of ifName + object (defined in IETF RFC 2863) for an interface on the + containing chassis."; + } + enum local { + value 7; + description + "Represents a chassis identifier based on a locally defined + value."; + } + } + description + "The source of a chassis identifier."; + reference + "IEEE Std 802-2014;" + + "IETF RFC 2737;" + + "IETF RFC 2863"; + } + typedef chassis-id-type { + type string { + length "1..255"; + } + description + "The format of a chassis identifier string. Objects of this type + are always used with an associated lldp-chassis-is-subtype object, + which identifies the format of the particular lldp-chassis-id + object instance. + + If the associated lldp-chassis-id-subtype object has a value of + chassis-component, then the octet string identifies a particular + instance of the entPhysicalAlias object (defined in IETF RFC 2737) + for a chassis component (i.e., an entPhysicalClass value of + chassis(3)). + + If the associated lldp-chassis-id-subtype object has a value of + interface-alias, then the octet string identifies a particular + instance of the ifAlias object (defined in IETF RFC 2863) for an + interface on the containing chassis. If the particular ifAlias + object does not contain any values, another chassis identifier + type should be used. + + If the associated lldp-chassis-id-subtype object has a value of + port-component, then the octet string identifies a particular + instance of the entPhysicalAlias object (defined in IETF RFC 2737) + for a port or backplane component within the containing chassis. + + If the associated lldp-chassis-id-subtype object has a value of + mac-address, then this string identifies a particular unicast + source address (encoded in network byte order and IEEE 802.3 + canonical bit order), of a port on the containing chassis as + defined in IEEE Std 802-2001. + + If the associated lldp-chassis-id-subtype object has a value of + network-address, then this string identifies a particular network + address, encoded in network byte order, associated with one or + more ports on the containing chassis. The first octet contains the + IANA Address Family Numbers enumeration value for the specific + address type, and octets 2 through N contain the network address + value in network byte order. + + If the associated lldp-chassis-id-subtype object has a value of + interface-name, then the octet string identifies a particular + instance of the ifName object (defined in IETF RFC 2863) for an + interface on the containing chassis. If the particular ifName + object does not contain any values, another chassis identifier + type should be used. + + If the associated lldp-chassis-id-subtype object has a value of + local, then this string identifies a locally assigned Chassis ID."; + reference + "IEEE Std 802-2014;" + + "IETF RFC 2737;" + + "IETF RFC 2863"; + } + typedef port-id-subtype-type { + type enumeration { + enum interface-alias { + value 1; + description + "Represents a port identifier based on the ifAlias MIB object, + defined in IETF RFC 2863."; + } + enum port-component { + value 2; + description + "Represents a port identifier based on the value of + entPhysicalAlias (defined in IETF RFC 2737) for a port + component (i.e., entPhysicalClass value of port(10)), within + the containing chassis."; + } + enum mac-address { + value 3; + description + "Represents a port identifier based on a unicast source + address (encoded in network byte order and IEEE 802.3 + canonical bit order), which has been detected by the agent and + associated with a particular port (IEEE Std 802-2001)."; + } + enum network-address { + value 4; + description + "Represents a port identifier based on a network address, + detected by the agent and associated with a particular port."; + } + enum interface-name { + value 5; + description + "Represents a port identifier based on the ifName MIB object, + defined in IETF RFC 2863."; + } + enum agent-circuit-id { + value 6; + description + "Represents a port identifier based on the agent-local + identifier of the circuit (defined in RFC 3046), detected by + the agent and associated with a particular port."; + } + enum local { + value 7; + description + "Represents a port identifier based on a value locally + assigned."; + } + } + description + "The source of a particular type of port identifier used in the + LLDP YANG module."; + } + typedef port-id-type { + type string { + length "1..255"; + } + description + "The format of a port identifier string. Objects of this type are + always used with an associated port-id-subtype object, which + identifies the format of the particular lldp-port-id object + instance. + + If the associated port-id-subtype object has a value of + interface-alias, then the octet string identifies a particular + instance of the ifAlias object (defined in IETF RFC 2863). If the + particular ifAlias object does not contain any values, another + port identifier type should be used. + + If the associated port-id-subtype object has a value of + port-component, then the octet string identifies a particular + instance of the entPhysicalAlias object (defined in IETF RFC 2737) + for a port or backplane component. + + If the associated port-id-subtype object has a value of + mac-address, then this string identifies a particular unicast + source address (encoded in network byte order and IEEE 802.3 + canonical bit order) associated with the port (IEEE Std 802-2001). + + If the associated port-id-subtype object has a value of + network-address, then this string identifies a network address + associated with the port. The first octet contains the IANA + AddressFamilyNumbers enumeration value for the specific address + type, and octets 2 through N contain the networkAddress address + value in network byte order. + + If the associated port-id-subtype object has a value of + interface-name, then the octet string identifies a particular + instance of the ifName object (defined in IETF RFC 2863). If the + particular ifName object does not contain any values, another port + identifier type should be used. + + If the associated port-id-subtype object has a value of + agent-circuit-id, then this string identifies a agent-local + identifier of the circuit (defined in RFC 3046). + + If the associated port-id-subtype object has a value of + local, then this string identifies a locally assigned port ID."; + reference + "IEEE Std 802-2014;" + + "IETF RFC 2737;" + + "IETF RFC 2863," + + "IETF RFC 3046"; + } +} diff --git a/plugins/org.etsi.mts.tdl.yang2tdl/samples/mwt/ietf-interfaces@2018-02-20.yang b/plugins/org.etsi.mts.tdl.yang2tdl/samples/mwt/ietf-interfaces@2018-02-20.yang new file mode 100644 index 0000000000000000000000000000000000000000..f66c205ce076e65b2ded1d388c944a91829a48b5 --- /dev/null +++ b/plugins/org.etsi.mts.tdl.yang2tdl/samples/mwt/ietf-interfaces@2018-02-20.yang @@ -0,0 +1,1123 @@ +module ietf-interfaces { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; + prefix if; + + import ietf-yang-types { + prefix yang; + } + + organization + "IETF NETMOD (Network Modeling) Working Group"; + + contact + "WG Web: <https://datatracker.ietf.org/wg/netmod/> + WG List: <mailto:netmod@ietf.org> + + Editor: Martin Bjorklund + <mailto:mbj@tail-f.com>"; + + description + "This module contains a collection of YANG definitions for + managing network interfaces. + + Copyright (c) 2018 IETF Trust and the persons identified as + authors of the code. All rights reserved. + + Redistribution and use in source and binary forms, with or + without modification, is permitted pursuant to, and subject + to the license terms contained in, the Simplified BSD License + set forth in Section 4.c of the IETF Trust's Legal Provisions + Relating to IETF Documents + (https://trustee.ietf.org/license-info). + + This version of this YANG module is part of RFC 8343; see + the RFC itself for full legal notices."; + + revision 2018-02-20 { + description + "Updated to support NMDA."; + reference + "RFC 8343: A YANG Data Model for Interface Management"; + } + + revision 2014-05-08 { + description + "Initial revision."; + reference + "RFC 7223: A YANG Data Model for Interface Management"; + } + + /* + * Typedefs + */ + + typedef interface-ref { + type leafref { + path "/if:interfaces/if:interface/if:name"; + } + description + "This type is used by data models that need to reference + interfaces."; + } + + /* + * Identities + */ + + identity interface-type { + description + "Base identity from which specific interface types are + derived."; + } + + /* + * Features + */ + + feature arbitrary-names { + description + "This feature indicates that the device allows user-controlled + interfaces to be named arbitrarily."; + } + feature pre-provisioning { + description + "This feature indicates that the device supports + pre-provisioning of interface configuration, i.e., it is + possible to configure an interface whose physical interface + hardware is not present on the device."; + } + feature if-mib { + description + "This feature indicates that the device implements + the IF-MIB."; + reference + "RFC 2863: The Interfaces Group MIB"; + } + + /* + * Data nodes + */ + + container interfaces { + description + "Interface parameters."; + + list interface { + key "name"; + + description + "The list of interfaces on the device. + + The status of an interface is available in this list in the + operational state. If the configuration of a + system-controlled interface cannot be used by the system + (e.g., the interface hardware present does not match the + interface type), then the configuration is not applied to + the system-controlled interface shown in the operational + state. If the configuration of a user-controlled interface + cannot be used by the system, the configured interface is + not instantiated in the operational state. + + System-controlled interfaces created by the system are + always present in this list in the operational state, + whether or not they are configured."; + + leaf name { + type string; + description + "The name of the interface. + + A device MAY restrict the allowed values for this leaf, + possibly depending on the type of the interface. + For system-controlled interfaces, this leaf is the + device-specific name of the interface. + + If a client tries to create configuration for a + system-controlled interface that is not present in the + operational state, the server MAY reject the request if + the implementation does not support pre-provisioning of + interfaces or if the name refers to an interface that can + never exist in the system. A Network Configuration + Protocol (NETCONF) server MUST reply with an rpc-error + with the error-tag 'invalid-value' in this case. + + If the device supports pre-provisioning of interface + configuration, the 'pre-provisioning' feature is + advertised. + + If the device allows arbitrarily named user-controlled + interfaces, the 'arbitrary-names' feature is advertised. + + When a configured user-controlled interface is created by + the system, it is instantiated with the same name in the + operational state. + + A server implementation MAY map this leaf to the ifName + MIB object. Such an implementation needs to use some + mechanism to handle the differences in size and characters + allowed between this leaf and ifName. The definition of + such a mechanism is outside the scope of this document."; + reference + "RFC 2863: The Interfaces Group MIB - ifName"; + } + + leaf description { + type string; + description + "A textual description of the interface. + + A server implementation MAY map this leaf to the ifAlias + MIB object. Such an implementation needs to use some + mechanism to handle the differences in size and characters + allowed between this leaf and ifAlias. The definition of + such a mechanism is outside the scope of this document. + + Since ifAlias is defined to be stored in non-volatile + storage, the MIB implementation MUST map ifAlias to the + value of 'description' in the persistently stored + configuration."; + reference + "RFC 2863: The Interfaces Group MIB - ifAlias"; + } + + leaf type { + type identityref { + base interface-type; + } + mandatory true; + description + "The type of the interface. + + When an interface entry is created, a server MAY + initialize the type leaf with a valid value, e.g., if it + is possible to derive the type from the name of the + interface. + + If a client tries to set the type of an interface to a + value that can never be used by the system, e.g., if the + type is not supported or if the type does not match the + name of the interface, the server MUST reject the request. + A NETCONF server MUST reply with an rpc-error with the + error-tag 'invalid-value' in this case."; + reference + "RFC 2863: The Interfaces Group MIB - ifType"; + } + + leaf enabled { + type boolean; + default "true"; + description + "This leaf contains the configured, desired state of the + interface. + + Systems that implement the IF-MIB use the value of this + leaf in the intended configuration to set + IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry + has been initialized, as described in RFC 2863. + + Changes in this leaf in the intended configuration are + reflected in ifAdminStatus."; + reference + "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; + } + + leaf link-up-down-trap-enable { + if-feature if-mib; + type enumeration { + enum enabled { + value 1; + description + "The device will generate linkUp/linkDown SNMP + notifications for this interface."; + } + enum disabled { + value 2; + description + "The device will not generate linkUp/linkDown SNMP + notifications for this interface."; + } + } + description + "Controls whether linkUp/linkDown SNMP notifications + should be generated for this interface. + + If this node is not configured, the value 'enabled' is + operationally used by the server for interfaces that do + not operate on top of any other interface (i.e., there are + no 'lower-layer-if' entries), and 'disabled' otherwise."; + reference + "RFC 2863: The Interfaces Group MIB - + ifLinkUpDownTrapEnable"; + } + + leaf admin-status { + if-feature if-mib; + type enumeration { + enum up { + value 1; + description + "Ready to pass packets."; + } + enum down { + value 2; + description + "Not ready to pass packets and not in some test mode."; + } + enum testing { + value 3; + description + "In some test mode."; + } + } + config false; + mandatory true; + description + "The desired state of the interface. + + This leaf has the same read semantics as ifAdminStatus."; + reference + "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; + } + + leaf oper-status { + type enumeration { + enum up { + value 1; + description + "Ready to pass packets."; + } + enum down { + value 2; + + description + "The interface does not pass any packets."; + } + enum testing { + value 3; + description + "In some test mode. No operational packets can + be passed."; + } + enum unknown { + value 4; + description + "Status cannot be determined for some reason."; + } + enum dormant { + value 5; + description + "Waiting for some external event."; + } + enum not-present { + value 6; + description + "Some component (typically hardware) is missing."; + } + enum lower-layer-down { + value 7; + description + "Down due to state of lower-layer interface(s)."; + } + } + config false; + mandatory true; + description + "The current operational state of the interface. + + This leaf has the same semantics as ifOperStatus."; + reference + "RFC 2863: The Interfaces Group MIB - ifOperStatus"; + } + + leaf last-change { + type yang:date-and-time; + config false; + description + "The time the interface entered its current operational + state. If the current state was entered prior to the + last re-initialization of the local network management + subsystem, then this node is not present."; + reference + "RFC 2863: The Interfaces Group MIB - ifLastChange"; + } + + leaf if-index { + if-feature if-mib; + type int32 { + range "1..2147483647"; + } + config false; + mandatory true; + description + "The ifIndex value for the ifEntry represented by this + interface."; + reference + "RFC 2863: The Interfaces Group MIB - ifIndex"; + } + + leaf phys-address { + type yang:phys-address; + config false; + description + "The interface's address at its protocol sub-layer. For + example, for an 802.x interface, this object normally + contains a Media Access Control (MAC) address. The + interface's media-specific modules must define the bit + and byte ordering and the format of the value of this + object. For interfaces that do not have such an address + (e.g., a serial line), this node is not present."; + reference + "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; + } + + leaf-list higher-layer-if { + type interface-ref; + config false; + description + "A list of references to interfaces layered on top of this + interface."; + reference + "RFC 2863: The Interfaces Group MIB - ifStackTable"; + } + + leaf-list lower-layer-if { + type interface-ref; + config false; + + description + "A list of references to interfaces layered underneath this + interface."; + reference + "RFC 2863: The Interfaces Group MIB - ifStackTable"; + } + + leaf speed { + type yang:gauge64; + units "bits/second"; + config false; + description + "An estimate of the interface's current bandwidth in bits + per second. For interfaces that do not vary in + bandwidth or for those where no accurate estimation can + be made, this node should contain the nominal bandwidth. + For interfaces that have no concept of bandwidth, this + node is not present."; + reference + "RFC 2863: The Interfaces Group MIB - + ifSpeed, ifHighSpeed"; + } + + container statistics { + config false; + description + "A collection of interface-related statistics objects."; + + leaf discontinuity-time { + type yang:date-and-time; + mandatory true; + description + "The time on the most recent occasion at which any one or + more of this interface's counters suffered a + discontinuity. If no such discontinuities have occurred + since the last re-initialization of the local management + subsystem, then this node contains the time the local + management subsystem re-initialized itself."; + } + + leaf in-octets { + type yang:counter64; + description + "The total number of octets received on the interface, + including framing characters. + + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; + } + + leaf in-unicast-pkts { + type yang:counter64; + description + "The number of packets, delivered by this sub-layer to a + higher (sub-)layer, that were not addressed to a + multicast or broadcast address at this sub-layer. + + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; + } + + leaf in-broadcast-pkts { + type yang:counter64; + description + "The number of packets, delivered by this sub-layer to a + higher (sub-)layer, that were addressed to a broadcast + address at this sub-layer. + + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - + ifHCInBroadcastPkts"; + } + + leaf in-multicast-pkts { + type yang:counter64; + description + "The number of packets, delivered by this sub-layer to a + higher (sub-)layer, that were addressed to a multicast + address at this sub-layer. For a MAC-layer protocol, + this includes both Group and Functional addresses. + + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - + ifHCInMulticastPkts"; + } + + leaf in-discards { + type yang:counter32; + description + "The number of inbound packets that were chosen to be + discarded even though no errors had been detected to + prevent their being deliverable to a higher-layer + protocol. One possible reason for discarding such a + packet could be to free up buffer space. + + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - ifInDiscards"; + } + + leaf in-errors { + type yang:counter32; + description + "For packet-oriented interfaces, the number of inbound + packets that contained errors preventing them from being + deliverable to a higher-layer protocol. For character- + oriented or fixed-length interfaces, the number of + inbound transmission units that contained errors + preventing them from being deliverable to a higher-layer + protocol. + + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - ifInErrors"; + } + + leaf in-unknown-protos { + type yang:counter32; + + description + "For packet-oriented interfaces, the number of packets + received via the interface that were discarded because + of an unknown or unsupported protocol. For + character-oriented or fixed-length interfaces that + support protocol multiplexing, the number of + transmission units received via the interface that were + discarded because of an unknown or unsupported protocol. + For any interface that does not support protocol + multiplexing, this counter is not present. + + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; + } + + leaf out-octets { + type yang:counter64; + description + "The total number of octets transmitted out of the + interface, including framing characters. + + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; + } + + leaf out-unicast-pkts { + type yang:counter64; + description + "The total number of packets that higher-level protocols + requested be transmitted and that were not addressed + to a multicast or broadcast address at this sub-layer, + including those that were discarded or not sent. + + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; + } + + leaf out-broadcast-pkts { + type yang:counter64; + description + "The total number of packets that higher-level protocols + requested be transmitted and that were addressed to a + broadcast address at this sub-layer, including those + that were discarded or not sent. + + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - + ifHCOutBroadcastPkts"; + } + + leaf out-multicast-pkts { + type yang:counter64; + description + "The total number of packets that higher-level protocols + requested be transmitted and that were addressed to a + multicast address at this sub-layer, including those + that were discarded or not sent. For a MAC-layer + protocol, this includes both Group and Functional + addresses. + + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - + ifHCOutMulticastPkts"; + } + + leaf out-discards { + type yang:counter32; + description + "The number of outbound packets that were chosen to be + discarded even though no errors had been detected to + prevent their being transmitted. One possible reason + for discarding such a packet could be to free up buffer + space. + + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; + } + + leaf out-errors { + type yang:counter32; + description + "For packet-oriented interfaces, the number of outbound + packets that could not be transmitted because of errors. + For character-oriented or fixed-length interfaces, the + number of outbound transmission units that could not be + transmitted because of errors. + + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - ifOutErrors"; + } + } + + } + } + + /* + * Legacy typedefs + */ + + typedef interface-state-ref { + type leafref { + path "/if:interfaces-state/if:interface/if:name"; + } + status deprecated; + description + "This type is used by data models that need to reference + the operationally present interfaces."; + } + + /* + * Legacy operational state data nodes + */ + + container interfaces-state { + config false; + status deprecated; + description + "Data nodes for the operational state of interfaces."; + + list interface { + key "name"; + status deprecated; + + description + "The list of interfaces on the device. + + System-controlled interfaces created by the system are + always present in this list, whether or not they are + configured."; + + leaf name { + type string; + status deprecated; + description + "The name of the interface. + + A server implementation MAY map this leaf to the ifName + MIB object. Such an implementation needs to use some + mechanism to handle the differences in size and characters + allowed between this leaf and ifName. The definition of + such a mechanism is outside the scope of this document."; + reference + "RFC 2863: The Interfaces Group MIB - ifName"; + } + + leaf type { + type identityref { + base interface-type; + } + mandatory true; + status deprecated; + description + "The type of the interface."; + reference + "RFC 2863: The Interfaces Group MIB - ifType"; + } + + leaf admin-status { + if-feature if-mib; + type enumeration { + enum up { + value 1; + description + "Ready to pass packets."; + } + enum down { + value 2; + description + "Not ready to pass packets and not in some test mode."; + } + enum testing { + value 3; + description + "In some test mode."; + } + } + mandatory true; + status deprecated; + description + "The desired state of the interface. + + This leaf has the same read semantics as ifAdminStatus."; + reference + "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; + } + + leaf oper-status { + type enumeration { + enum up { + value 1; + description + "Ready to pass packets."; + } + enum down { + value 2; + description + "The interface does not pass any packets."; + } + enum testing { + value 3; + description + "In some test mode. No operational packets can + be passed."; + } + enum unknown { + value 4; + description + "Status cannot be determined for some reason."; + } + enum dormant { + value 5; + description + "Waiting for some external event."; + } + enum not-present { + value 6; + description + "Some component (typically hardware) is missing."; + } + enum lower-layer-down { + value 7; + description + "Down due to state of lower-layer interface(s)."; + } + } + mandatory true; + status deprecated; + description + "The current operational state of the interface. + + This leaf has the same semantics as ifOperStatus."; + reference + "RFC 2863: The Interfaces Group MIB - ifOperStatus"; + } + + leaf last-change { + type yang:date-and-time; + status deprecated; + description + "The time the interface entered its current operational + state. If the current state was entered prior to the + last re-initialization of the local network management + subsystem, then this node is not present."; + reference + "RFC 2863: The Interfaces Group MIB - ifLastChange"; + } + + leaf if-index { + if-feature if-mib; + type int32 { + range "1..2147483647"; + } + mandatory true; + status deprecated; + description + "The ifIndex value for the ifEntry represented by this + interface."; + + reference + "RFC 2863: The Interfaces Group MIB - ifIndex"; + } + + leaf phys-address { + type yang:phys-address; + status deprecated; + description + "The interface's address at its protocol sub-layer. For + example, for an 802.x interface, this object normally + contains a Media Access Control (MAC) address. The + interface's media-specific modules must define the bit + and byte ordering and the format of the value of this + object. For interfaces that do not have such an address + (e.g., a serial line), this node is not present."; + reference + "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; + } + + leaf-list higher-layer-if { + type interface-state-ref; + status deprecated; + description + "A list of references to interfaces layered on top of this + interface."; + reference + "RFC 2863: The Interfaces Group MIB - ifStackTable"; + } + + leaf-list lower-layer-if { + type interface-state-ref; + status deprecated; + description + "A list of references to interfaces layered underneath this + interface."; + reference + "RFC 2863: The Interfaces Group MIB - ifStackTable"; + } + + leaf speed { + type yang:gauge64; + units "bits/second"; + status deprecated; + description + "An estimate of the interface's current bandwidth in bits + per second. For interfaces that do not vary in + bandwidth or for those where no accurate estimation can + + be made, this node should contain the nominal bandwidth. + For interfaces that have no concept of bandwidth, this + node is not present."; + reference + "RFC 2863: The Interfaces Group MIB - + ifSpeed, ifHighSpeed"; + } + + container statistics { + status deprecated; + description + "A collection of interface-related statistics objects."; + + leaf discontinuity-time { + type yang:date-and-time; + mandatory true; + status deprecated; + description + "The time on the most recent occasion at which any one or + more of this interface's counters suffered a + discontinuity. If no such discontinuities have occurred + since the last re-initialization of the local management + subsystem, then this node contains the time the local + management subsystem re-initialized itself."; + } + + leaf in-octets { + type yang:counter64; + status deprecated; + description + "The total number of octets received on the interface, + including framing characters. + + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; + } + + leaf in-unicast-pkts { + type yang:counter64; + status deprecated; + description + "The number of packets, delivered by this sub-layer to a + higher (sub-)layer, that were not addressed to a + multicast or broadcast address at this sub-layer. + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; + } + + leaf in-broadcast-pkts { + type yang:counter64; + status deprecated; + description + "The number of packets, delivered by this sub-layer to a + higher (sub-)layer, that were addressed to a broadcast + address at this sub-layer. + + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - + ifHCInBroadcastPkts"; + } + + leaf in-multicast-pkts { + type yang:counter64; + status deprecated; + description + "The number of packets, delivered by this sub-layer to a + higher (sub-)layer, that were addressed to a multicast + address at this sub-layer. For a MAC-layer protocol, + this includes both Group and Functional addresses. + + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - + ifHCInMulticastPkts"; + } + + leaf in-discards { + type yang:counter32; + status deprecated; + + description + "The number of inbound packets that were chosen to be + discarded even though no errors had been detected to + prevent their being deliverable to a higher-layer + protocol. One possible reason for discarding such a + packet could be to free up buffer space. + + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - ifInDiscards"; + } + + leaf in-errors { + type yang:counter32; + status deprecated; + description + "For packet-oriented interfaces, the number of inbound + packets that contained errors preventing them from being + deliverable to a higher-layer protocol. For character- + oriented or fixed-length interfaces, the number of + inbound transmission units that contained errors + preventing them from being deliverable to a higher-layer + protocol. + + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - ifInErrors"; + } + + leaf in-unknown-protos { + type yang:counter32; + status deprecated; + description + "For packet-oriented interfaces, the number of packets + received via the interface that were discarded because + of an unknown or unsupported protocol. For + character-oriented or fixed-length interfaces that + support protocol multiplexing, the number of + transmission units received via the interface that were + discarded because of an unknown or unsupported protocol. + For any interface that does not support protocol + multiplexing, this counter is not present. + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; + } + + leaf out-octets { + type yang:counter64; + status deprecated; + description + "The total number of octets transmitted out of the + interface, including framing characters. + + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; + } + + leaf out-unicast-pkts { + type yang:counter64; + status deprecated; + description + "The total number of packets that higher-level protocols + requested be transmitted and that were not addressed + to a multicast or broadcast address at this sub-layer, + including those that were discarded or not sent. + + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; + } + + leaf out-broadcast-pkts { + type yang:counter64; + status deprecated; + + description + "The total number of packets that higher-level protocols + requested be transmitted and that were addressed to a + broadcast address at this sub-layer, including those + that were discarded or not sent. + + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - + ifHCOutBroadcastPkts"; + } + + leaf out-multicast-pkts { + type yang:counter64; + status deprecated; + description + "The total number of packets that higher-level protocols + requested be transmitted and that were addressed to a + multicast address at this sub-layer, including those + that were discarded or not sent. For a MAC-layer + protocol, this includes both Group and Functional + addresses. + + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - + ifHCOutMulticastPkts"; + } + + leaf out-discards { + type yang:counter32; + status deprecated; + description + "The number of outbound packets that were chosen to be + discarded even though no errors had been detected to + prevent their being transmitted. One possible reason + for discarding such a packet could be to free up buffer + space. + + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; + } + + leaf out-errors { + type yang:counter32; + status deprecated; + description + "For packet-oriented interfaces, the number of outbound + packets that could not be transmitted because of errors. + For character-oriented or fixed-length interfaces, the + number of outbound transmission units that could not be + transmitted because of errors. + + Discontinuities in the value of this counter can occur + at re-initialization of the management system and at + other times as indicated by the value of + 'discontinuity-time'."; + reference + "RFC 2863: The Interfaces Group MIB - ifOutErrors"; + } + } + } + } +} diff --git a/plugins/org.etsi.mts.tdl.yang2tdl/samples/simple/sports.yang b/plugins/org.etsi.mts.tdl.yang2tdl/samples/simple/sports.yang index 082fd1e103b6e969b5fa0ad2632c2113c8c65c5d..d007bd479a9f6857ef2669f4cc7f7dfbc439a976 100644 --- a/plugins/org.etsi.mts.tdl.yang2tdl/samples/simple/sports.yang +++ b/plugins/org.etsi.mts.tdl.yang2tdl/samples/simple/sports.yang @@ -90,10 +90,76 @@ module example-sports { } default "tcp"; } + list ext-cpd { + choice cp-connection { + // no case + leaf int-virtual-link-desc { + type string; + } + container int-cpd { + leaf vdu-id { + type string; + } + leaf cpd { + type string; + } + } + } + } + list case-ext-cpd { + choice cp-connection { + // case + case a { + leaf int-virtual-link-desc { + type string; + } + } + case b { + + container int-cpd { + leaf vdu-id { + type string; + } + leaf cpd { + type string; + } + } + } + } + } + } grouping g2 { leaf protocolz { type string; } + list port-map { + key "port-ref"; + leaf port-ref { + type string; + } + choice map-type { + // no case + container static-filtering-entries { + leaf control-element { + type enumeration { + enum forward; + enum filter; + } + } + leaf connection-identifier { + type string; + } + } + container static-vlan-registration-entries { + leaf registrar-admin-control { + type enumeration { + enum fixed-new-ignored; + enum forbidden; + } + } + } + } + } } } \ No newline at end of file diff --git a/plugins/org.etsi.mts.tdl.yang2tdl/samples/simple/sports.yang.tdltx b/plugins/org.etsi.mts.tdl.yang2tdl/samples/simple/sports.yang.tdltx index e234739a0dc59d4f72b206acdd7f4ea1c46da73b..e1a95041616f9bcef463d1dc76f417cd2914e256 100644 --- a/plugins/org.etsi.mts.tdl.yang2tdl/samples/simple/sports.yang.tdltx +++ b/plugins/org.etsi.mts.tdl.yang2tdl/samples/simple/sports.yang.tdltx @@ -2,56 +2,1292 @@ Package generated_from_sports_yang { Type String Type TODO_RESOLVE_REFERENCED Use "sports.yang" as SOURCE_MAPPING - Structure sports ( - sports___person_collection person, - sports___team_collection team, - sports___protocol_collection protocol + Structure nfv ( + nfv___vnfd_collection vnfd, + nfv___nsd_collection nsd, + nfv___pnfd_collection pnfd ) - Structure sports___person ( - person___name ^name, - person___birthday birthday + Structure nfv___vnfd ( + string id, + string provider, + string product_name, + string software_version, + string version, + string product_info_name, + string product_info_description, + string_collection vnfm_info, + string localization_language, + string default_localization_language, + vnfd___vdu_collection vdu, + vnfd___virtual_compute_desc_collection virtual_compute_desc, + vnfd___virtual_storage_desc_collection virtual_storage_desc, + vnfd___sw_image_desc_collection sw_image_desc, + vnfd___int_virtual_link_desc_collection int_virtual_link_desc, + vnfd___ext_cpd_collection ext_cpd, + vnfd___df_collection df, + vnfd___configurable_properties configurable_properties, + vnfd___modifiable_attributes modifiable_attributes, + vnfd___lifecycle_management_script_collection lifecycle_management_script, + vnfd___element_group_collection element_group, + vnfd___indicator_collection indicator, + string_collection auto_scale, + vnfd___security_group_rule_collection security_group_rule ) - Type person___name - Type person___birthday extends string Type string - Collection sports___person_collection of sports___person - Structure sports___team ( - team___name ^name, - team___player_collection player, - team___protocol protocol - ) - Type team___name - Structure team___player ( - player___name ^name, - player___season season, - player___number number, - player___scores scores, - uint16_collection score_list - ) - Type player___name - Type player___season extends string - Type player___number - Type player___scores extends uint16 + Collection string_collection of string + Structure vnfd___vdu ( + string id, + string ^name, + string description, + vdu___int_cpd_collection int_cpd, + @LeafRefPath : "../../virtual-compute-desc/id" + leafref virtual_compute_desc, + @LeafRefPath : "../../virtual-storage-desc/id" + leafref_collection virtual_storage_desc, + vdu___boot_order_collection boot_order, + @LeafRefPath : "../../sw-image-desc/id" + leafref sw_image_desc, + string_collection nfvi_constraint, + vdu___monitoring_parameter_collection monitoring_parameter, + vdu___configurable_properties_collection configurable_properties, + string boot_data + ) + Structure vdu___int_cpd ( + @LeafRefPath : "../../../int-virtual-link-desc/id" + leafref int_virtual_link_desc, + bitrate_requirement bitrate_requirement, + @LeafRefPath : "../../../virtual-compute-desc/id" + leafref nicio_requirements, + uint32_collection order, + @LeafRefPath : "../../../security-group-rule/id" + leafref security_group_rule_id, + string id, + identityref_collection layer_protocol, + identityref role, + string description, + int_cpd___protocol_collection protocol, + boolean trunk_mode, + int_cpd___virtual_network_interface_requirement_collection virtual_network_interface_requirement + ) + Type leafref + Annotation LeafRefPath + Type bitrate_requirement extends uint64 + Type uint64 + Type uint32 extends uint32 + Collection uint32_collection of uint32 + Type identityref + Collection identityref_collection of identityref + Structure int_cpd___protocol ( + identityref associated_layer_protocol, + protocol___address_data_collection address_data + ) + Structure protocol___address_data ( + identityref ^type, + address_data___l2_address_data l2_address_data, + address_data___l3_address_data l3_address_data + ) + Structure address_data___l2_address_data ( + boolean mac_address_assignment + ) + Type boolean + Structure address_data___l3_address_data ( + boolean ip_address_assignment, + boolean floating_ip_activated, + enumeration ip_address_type, + uint32 number_of_ip_addresses + ) + Type enumeration + Collection protocol___address_data_collection of protocol___address_data + Collection int_cpd___protocol_collection of int_cpd___protocol + Structure int_cpd___virtual_network_interface_requirement ( + string ^name, + string description, + support_mandatory support_mandatory, + virtual_network_interface_requirement___network_interface_requirements_collection network_interface_requirements + ) + Type support_mandatory extends boolean + Structure virtual_network_interface_requirement___network_interface_requirements ( + string key, + string ^value + ) + Collection virtual_network_interface_requirement___network_interface_requirements_collection of virtual_network_interface_requirement___network_interface_requirements + Collection int_cpd___virtual_network_interface_requirement_collection of int_cpd___virtual_network_interface_requirement + Collection vdu___int_cpd_collection of vdu___int_cpd + Collection leafref_collection of leafref + Structure vdu___boot_order ( + uint32 key, + @LeafRefPath : "../../virtual-storage-desc" + leafref ^value + ) + Collection vdu___boot_order_collection of vdu___boot_order + Structure vdu___monitoring_parameter ( + string id, + string ^name, + string performance_metric, + collection_period collection_period + ) + Type collection_period extends uint64 + Collection vdu___monitoring_parameter_collection of vdu___monitoring_parameter + Structure vdu___configurable_properties ( + string key, + string ^value + ) + Collection vdu___configurable_properties_collection of vdu___configurable_properties + Collection vnfd___vdu_collection of vnfd___vdu + Structure vnfd___virtual_compute_desc ( + string id, + virtual_compute_desc___logical_node_collection logical_node, + virtual_compute_desc___request_additional_capability_collection request_additional_capability, + string compute_requirements, + virtual_compute_desc___virtual_memory virtual_memory, + virtual_compute_desc___virtual_cpu virtual_cpu + ) + Structure virtual_compute_desc___logical_node ( + string id, + logical_node___requirement_detail_collection requirement_detail + ) + Structure logical_node___requirement_detail ( + string key, + string ^value + ) + Collection logical_node___requirement_detail_collection of logical_node___requirement_detail + Collection virtual_compute_desc___logical_node_collection of virtual_compute_desc___logical_node + Structure virtual_compute_desc___request_additional_capability ( + string ^name, + boolean support_mandatory, + string min_version, + string preferred_version, + request_additional_capability___target_performance_parameters_collection target_performance_parameters + ) + Structure request_additional_capability___target_performance_parameters ( + string key, + string ^value + ) + Collection request_additional_capability___target_performance_parameters_collection of request_additional_capability___target_performance_parameters + Collection virtual_compute_desc___request_additional_capability_collection of virtual_compute_desc___request_additional_capability + Structure virtual_compute_desc___virtual_memory ( + ^size ^size, + string over_subscription_policy, + virtual_memory___vdu_mem_requirements_collection vdu_mem_requirements, + boolean numa_enabled + ) + Type ^size extends uint64 + Type decimal64 + Structure virtual_memory___vdu_mem_requirements ( + string key, + string ^value + ) + Collection virtual_memory___vdu_mem_requirements_collection of virtual_memory___vdu_mem_requirements + Structure virtual_compute_desc___virtual_cpu ( + string cpu_architecture, + num_virtual_cpu num_virtual_cpu, + clock clock, + string oversubscription_policy, + virtual_cpu___vdu_cpu_requirements_collection vdu_cpu_requirements, + virtual_cpu___pinning pinning + ) + Type num_virtual_cpu extends uint16 Type uint16 - Collection uint16_collection of uint16 - Collection team___player_collection of team___player - Enumerated team___protocol { - team___protocol tcp, - team___protocol udp, - team___protocol icmp - } - Collection sports___team_collection of sports___team - Structure sports___protocol ( - protocol___associated_layer_protocol associated_layer_protocol, - protocol___protocoly protocoly, - protocol___protocolz protocolz - ) - Type protocol___associated_layer_protocol - Enumerated protocol___protocoly { - protocol___protocoly tcp, - protocol___protocoly udp, - protocol___protocoly icmp - } - Type protocol___protocolz - Collection sports___protocol_collection of sports___protocol + Type clock extends uint32 + Structure virtual_cpu___vdu_cpu_requirements ( + string key, + string ^value + ) + Collection virtual_cpu___vdu_cpu_requirements_collection of virtual_cpu___vdu_cpu_requirements + Structure virtual_cpu___pinning ( + policy policy, + pinning___rule_collection rule + ) + Enumerated policy { + policy static, + policy dynamic + } + Structure pinning___rule ( + string key, + string ^value + ) + Collection pinning___rule_collection of pinning___rule + Collection vnfd___virtual_compute_desc_collection of vnfd___virtual_compute_desc + Structure vnfd___virtual_storage_desc ( + string id, + type_of_storage type_of_storage, + size_of_storage size_of_storage, + virtual_storage_desc___vdu_storage_requirements_collection vdu_storage_requirements, + boolean rdma_enabled, + @LeafRefPath : "../../sw-image-desc/id" + leafref sw_image_desc + ) + Type type_of_storage extends identityref + Type size_of_storage extends uint64 + Structure virtual_storage_desc___vdu_storage_requirements ( + string key, + string ^value + ) + Collection virtual_storage_desc___vdu_storage_requirements_collection of virtual_storage_desc___vdu_storage_requirements + Collection vnfd___virtual_storage_desc_collection of vnfd___virtual_storage_desc + Structure vnfd___sw_image_desc ( + string id, + string ^name, + string version, + sw_image_desc___checksum checksum, + container_format container_format, + disk_format disk_format, + min_disk min_disk, + min_ram min_ram, + ^size ^size, + image image, + string operating_system, + string_collection supported_virtualization_environment + ) + Structure sw_image_desc___checksum ( + identityref algorithm, + string hash + ) + Enumerated container_format { + container_format aki, + container_format ami, + container_format ari, + container_format bare, + container_format docker, + container_format ova, + container_format ovf + } + Enumerated disk_format { + disk_format aki, + disk_format ami, + disk_format ari, + disk_format iso, + disk_format qcow2, + disk_format raw, + disk_format vdi, + disk_format vhd, + disk_format vhdx, + disk_format vmdk + } + Type min_disk extends uint64 + Type min_ram extends decimal64 + Type image extends uri + Type uri + Collection vnfd___sw_image_desc_collection of vnfd___sw_image_desc + Structure vnfd___int_virtual_link_desc ( + string id, + int_virtual_link_desc___flavour_collection flavour, + string_collection test_access, + string description, + int_virtual_link_desc___monitoring_parameters_collection monitoring_parameters, + int_virtual_link_desc___connectivity_type connectivity_type + ) + Structure int_virtual_link_desc___flavour ( + string id, + flavour___qos qos + ) + Structure flavour___qos ( + latency latency, + packet_delay_variation packet_delay_variation, + decimal64 packet_loss_ratio + ) + Type latency extends uint32 + Type packet_delay_variation extends uint32 + Collection int_virtual_link_desc___flavour_collection of int_virtual_link_desc___flavour + Structure int_virtual_link_desc___monitoring_parameters ( + string id, + string ^name, + string performance_metric, + collection_period collection_period + ) + Collection int_virtual_link_desc___monitoring_parameters_collection of int_virtual_link_desc___monitoring_parameters + Structure int_virtual_link_desc___connectivity_type ( + identityref_collection layer_protocol, + flow_pattern flow_pattern + ) + Enumerated flow_pattern { + flow_pattern line, + flow_pattern tree, + flow_pattern mesh, + flow_pattern line, + flow_pattern tree, + flow_pattern mesh + } + Collection vnfd___int_virtual_link_desc_collection of vnfd___int_virtual_link_desc + Structure vnfd___ext_cpd ( + ext_cpd___cp_connection cp_connection, + @LeafRefPath : "../../virtual-compute-desc/id" + leafref nicio_requirements, + @LeafRefPath : "../../security-group-rule/id" + leafref security_group_rule_id, + string id, + identityref_collection layer_protocol, + identityref role, + string description, + ext_cpd___protocol_collection protocol, + boolean trunk_mode, + ext_cpd___virtual_network_interface_requirement_collection virtual_network_interface_requirement + ) + Structure ext_cpd___cp_connection ( + cp_connection___int_virtual_link_desc int_virtual_link_desc, + cp_connection___int_cpd int_cpd + ) + Structure cp_connection___int_virtual_link_desc ( + @LeafRefPath : "../../int-virtual-link-desc/id" + leafref int_virtual_link_desc + ) + Structure cp_connection___int_cpd ( + int_cpd___int_cpd int_cpd + ) + Structure int_cpd___int_cpd ( + @LeafRefPath : "../../../vdu/id" + leafref vdu_id, + @LeafRefPath : "deref(../vdu-id)/../int-cpd/id" + leafref cpd + ) + Structure ext_cpd___protocol ( + identityref associated_layer_protocol, + protocol___address_data_collection address_data + ) + Collection ext_cpd___protocol_collection of ext_cpd___protocol + Structure ext_cpd___virtual_network_interface_requirement ( + string ^name, + string description, + support_mandatory support_mandatory, + virtual_network_interface_requirement___network_interface_requirements_collection network_interface_requirements + ) + Collection ext_cpd___virtual_network_interface_requirement_collection of ext_cpd___virtual_network_interface_requirement + Collection vnfd___ext_cpd_collection of vnfd___ext_cpd + Structure vnfd___df ( + string id, + string description, + df___vdu_profile_collection vdu_profile, + df___virtual_link_profile_collection virtual_link_profile, + df___instantiation_level_collection instantiation_level, + @LeafRefPath : "../instantiation-level/id" + leafref default_instantiation_level, + identityref_collection supported_operation, + df___lcm_operations_configuration lcm_operations_configuration, + df___affinity_or_anti_affinity_group_collection affinity_or_anti_affinity_group, + df___indicator_collection indicator, + df___supported_vnf_interfaces_collection supported_vnf_interfaces, + df___monitoring_parameter_collection monitoring_parameter, + df___scaling_aspect_collection scaling_aspect + ) + Structure df___vdu_profile ( + @LeafRefPath : "../../../vdu/id" + leafref id, + min_number_of_instances min_number_of_instances, + max_number_of_instances max_number_of_instances, + vdu_profile___affinity_or_anti_affinity_group_collection affinity_or_anti_affinity_group, + vdu_profile___local_affinity_or_anti_affinity_rule_collection local_affinity_or_anti_affinity_rule + ) + Type min_number_of_instances extends uint16 + Type max_number_of_instances extends uint16 + Structure vdu_profile___affinity_or_anti_affinity_group ( + @LeafRefPath : "../../../affinity-or-anti-affinity-group/id" + leafref id + ) + Collection vdu_profile___affinity_or_anti_affinity_group_collection of vdu_profile___affinity_or_anti_affinity_group + Structure vdu_profile___local_affinity_or_anti_affinity_rule ( + affinity_type affinity_type, + affinity_scope affinity_scope + ) + Enumerated affinity_type { + affinity_type affinity, + affinity_type anti_affinity, + affinity_type affinity, + affinity_type anti_affinity, + affinity_type affinity, + affinity_type anti_affinity, + affinity_type affinity, + affinity_type anti_affinity, + affinity_type affinity, + affinity_type anti_affinity, + affinity_type affinity, + affinity_type anti_affinity + } + Enumerated affinity_scope { + affinity_scope nfvi_node, + affinity_scope zone_group, + affinity_scope zone, + affinity_scope nfvi_pop, + affinity_scope nfvi_node, + affinity_scope zone_group, + affinity_scope zone, + affinity_scope nfvi_pop, + affinity_scope nfvi_node, + affinity_scope zone_group, + affinity_scope zone, + affinity_scope nfvi_pop, + affinity_scope nfvi_node, + affinity_scope zone_group, + affinity_scope zone, + affinity_scope nfvi_pop, + affinity_scope nfvi_node, + affinity_scope zone_group, + affinity_scope zone, + affinity_scope nfvi_pop, + affinity_scope nfvi_node, + affinity_scope zone_group, + affinity_scope zone, + affinity_scope nfvi_pop + } + Collection vdu_profile___local_affinity_or_anti_affinity_rule_collection of vdu_profile___local_affinity_or_anti_affinity_rule + Collection df___vdu_profile_collection of df___vdu_profile + Structure df___virtual_link_profile ( + @LeafRefPath : "../../../int-virtual-link-desc/id" + leafref id, + @LeafRefPath : "deref(../../../ext-cpd/int-virtual-link-desc)/../flavour/id" + leafref flavour, + virtual_link_profile___affinity_or_anti_affinity_group_collection affinity_or_anti_affinity_group, + virtual_link_profile___max_bit_rate_requirements max_bit_rate_requirements, + virtual_link_profile___min_bit_rate_requirements min_bit_rate_requirements, + virtual_link_profile___virtual_link_protocol_data virtual_link_protocol_data, + virtual_link_profile___local_affinity_or_anti_affinity_rule_collection local_affinity_or_anti_affinity_rule, + @LeafRefPath : "../../../virtual-link-desc/id" + leafref virtual_link_desc_id, + @LeafRefPath : "deref(../virtual-link-desc-id)/../df/id" + leafref flavour_id, + virtual_link_profile___max_bitrate_requirements max_bitrate_requirements, + virtual_link_profile___min_bitrate_requirements min_bitrate_requirements + ) + Structure virtual_link_profile___affinity_or_anti_affinity_group ( + @LeafRefPath : "../../../affinity-or-anti-affinity-group/id" + leafref id + ) + Collection virtual_link_profile___affinity_or_anti_affinity_group_collection of virtual_link_profile___affinity_or_anti_affinity_group + Structure virtual_link_profile___max_bit_rate_requirements ( + uint32 root, + uint32 leaf + ) + Structure virtual_link_profile___min_bit_rate_requirements ( + uint32 root, + uint32 leaf + ) + Structure virtual_link_profile___virtual_link_protocol_data ( + identityref associated_layer_protocol, + virtual_link_protocol_data___l2_protocol_data l2_protocol_data, + virtual_link_protocol_data___l3_protocol_data l3_protocol_data + ) + Structure virtual_link_protocol_data___l2_protocol_data ( + string ^name, + enumeration network_type, + boolean vlan_transparent, + uint16 mtu + ) + Structure virtual_link_protocol_data___l3_protocol_data ( + string ^name, + ip_version ip_version, + string cidr, + string_collection ip_allocation_pools, + ip_address gateway_ip, + dhcp_enabled dhcp_enabled, + enumeration ipv6_address_mode + ) + Enumerated ip_version { + ip_version ipv4, + ip_version ipv6 + } + Type ip_address extends union + Type union + Type dhcp_enabled extends boolean + Structure virtual_link_profile___local_affinity_or_anti_affinity_rule ( + affinity_type affinity_type, + affinity_scope affinity_scope + ) + Collection virtual_link_profile___local_affinity_or_anti_affinity_rule_collection of virtual_link_profile___local_affinity_or_anti_affinity_rule + Collection df___virtual_link_profile_collection of df___virtual_link_profile + Structure df___instantiation_level ( + string id, + string description, + instantiation_level___vdu_level_collection vdu_level, + instantiation_level___scaling_info_collection scaling_info + ) + Structure instantiation_level___vdu_level ( + @LeafRefPath : "../../../../vdu/id" + leafref vdu_id, + number_of_instances number_of_instances + ) + Type number_of_instances extends uint32 + Collection instantiation_level___vdu_level_collection of instantiation_level___vdu_level + Structure instantiation_level___scaling_info ( + @LeafRefPath : "../../../scaling-aspect/id" + leafref scaling_aspect_id, + uint32 scale_level + ) + Collection instantiation_level___scaling_info_collection of instantiation_level___scaling_info + Collection df___instantiation_level_collection of df___instantiation_level + Structure df___lcm_operations_configuration ( + lcm_operations_configuration___parameter_collection instantiate_vnf_op_config, + lcm_operations_configuration___scale_vnf_op_config scale_vnf_op_config, + lcm_operations_configuration___scale_vnf_to_level_op_config scale_vnf_to_level_op_config, + lcm_operations_configuration___heal_vnf_op_config heal_vnf_op_config, + lcm_operations_configuration___terminate_vnf_op_config terminate_vnf_op_config, + lcm_operations_configuration___operate_vnf_op_config operate_vnf_op_config, + lcm_operations_configuration___parameter_collection change_vnf_flavour_op_config, + lcm_operations_configuration___parameter_collection change_ext_vnf_connectivity_op_config + ) + Structure lcm_operations_configuration___parameter ( + string key, + string ^value + ) + Collection lcm_operations_configuration___parameter_collection of lcm_operations_configuration___parameter + Structure lcm_operations_configuration___scale_vnf_op_config ( + scale_vnf_op_config___parameter_collection ^parameter, + scaling_by_more_than_one_step_supported scaling_by_more_than_one_step_supported + ) + Structure scale_vnf_op_config___parameter ( + string key, + string ^value + ) + Collection scale_vnf_op_config___parameter_collection of scale_vnf_op_config___parameter + Type scaling_by_more_than_one_step_supported extends boolean + Structure lcm_operations_configuration___scale_vnf_to_level_op_config ( + scale_vnf_to_level_op_config___parameter_collection ^parameter, + arbitrary_target_levels_supported arbitrary_target_levels_supported + ) + Structure scale_vnf_to_level_op_config___parameter ( + string key, + string ^value + ) + Collection scale_vnf_to_level_op_config___parameter_collection of scale_vnf_to_level_op_config___parameter + Type arbitrary_target_levels_supported extends boolean + Structure lcm_operations_configuration___heal_vnf_op_config ( + heal_vnf_op_config___parameter_collection ^parameter, + string_collection cause + ) + Structure heal_vnf_op_config___parameter ( + string key, + string ^value + ) + Collection heal_vnf_op_config___parameter_collection of heal_vnf_op_config___parameter + Structure lcm_operations_configuration___terminate_vnf_op_config ( + min_graceful_termination min_graceful_termination, + timeticks max_recommended_graceful_termination, + terminate_vnf_op_config___parameter_collection ^parameter + ) + Type min_graceful_termination extends timeticks + Type timeticks extends uint32 + Structure terminate_vnf_op_config___parameter ( + string key, + string ^value + ) + Collection terminate_vnf_op_config___parameter_collection of terminate_vnf_op_config___parameter + Structure lcm_operations_configuration___operate_vnf_op_config ( + min_graceful_stop_timeout min_graceful_stop_timeout, + timeticks max_recommended_graceful_stop_timeout, + operate_vnf_op_config___parameter_collection ^parameter + ) + Type min_graceful_stop_timeout extends timeticks + Structure operate_vnf_op_config___parameter ( + string key, + string ^value + ) + Collection operate_vnf_op_config___parameter_collection of operate_vnf_op_config___parameter + Structure df___affinity_or_anti_affinity_group ( + string id, + affinity_type ^type, + affinity_scope scope + ) + Collection df___affinity_or_anti_affinity_group_collection of df___affinity_or_anti_affinity_group + Structure df___indicator ( + string id, + string ^name, + string indicator_value, + enumeration source + ) + Collection df___indicator_collection of df___indicator + Structure df___supported_vnf_interfaces ( + enumeration ^name, + @LeafRefPath : "../../../ext-cpd/id" + leafref_collection cpd_id, + supported_vnf_interfaces___interface_details_collection interface_details + ) + Structure supported_vnf_interfaces___interface_details ( + string key, + string ^value + ) + Collection supported_vnf_interfaces___interface_details_collection of supported_vnf_interfaces___interface_details + Collection df___supported_vnf_interfaces_collection of df___supported_vnf_interfaces + Structure df___monitoring_parameter ( + string id, + string ^name, + string performance_metric, + collection_period collection_period + ) + Collection df___monitoring_parameter_collection of df___monitoring_parameter + Structure df___scaling_aspect ( + string id, + string ^name, + string description, + uint32 max_scale_level, + scaling_aspect___aspect_delta_details aspect_delta_details, + @LeafRefPath : "../../ns-instantiation-level/id" + leafref scaling_level + ) + Structure scaling_aspect___aspect_delta_details ( + aspect_delta_details___deltas_collection deltas, + @LeafRefPath : "../deltas/id" + leafref step_deltas + ) + Structure aspect_delta_details___deltas ( + string id, + deltas___vdu_delta_collection vdu_delta, + deltas___virtual_link_bit_rate_delta_collection virtual_link_bit_rate_delta + ) + Structure deltas___vdu_delta ( + @LeafRefPath : "../../../../../../vdu/id" + leafref id, + uint32 number_of_instances + ) + Collection deltas___vdu_delta_collection of deltas___vdu_delta + Structure deltas___virtual_link_bit_rate_delta ( + string id, + virtual_link_bit_rate_delta___bit_rate_requirements bit_rate_requirements + ) + Structure virtual_link_bit_rate_delta___bit_rate_requirements ( + root root, + leaf leaf + ) + Type root extends uint64 + Type leaf extends uint64 + Collection deltas___virtual_link_bit_rate_delta_collection of deltas___virtual_link_bit_rate_delta + Collection aspect_delta_details___deltas_collection of aspect_delta_details___deltas + Collection df___scaling_aspect_collection of df___scaling_aspect + Collection vnfd___df_collection of vnfd___df + Structure vnfd___configurable_properties ( + boolean is_auto_scalable_enabled, + boolean is_auto_heal_enabled, + configurable_properties___additional_configurable_property_collection additional_configurable_property + ) + Structure configurable_properties___additional_configurable_property ( + string key, + string ^value + ) + Collection configurable_properties___additional_configurable_property_collection of configurable_properties___additional_configurable_property + Structure vnfd___modifiable_attributes ( + string_collection extension, + string_collection metadata + ) + Structure vnfd___lifecycle_management_script ( + string id, + internal_lifecycle_management_script_event_collection ^event, + string_collection lcm_transition_event, + string script, + string script_dsl, + lifecycle_management_script___script_input_collection script_input + ) + Enumerated internal_lifecycle_management_script_event { + internal_lifecycle_management_script_event start_instantiation, + internal_lifecycle_management_script_event end_instantiation, + internal_lifecycle_management_script_event start_scaling, + internal_lifecycle_management_script_event end_scaling, + internal_lifecycle_management_script_event start_healing, + internal_lifecycle_management_script_event end_healing, + internal_lifecycle_management_script_event start_termination, + internal_lifecycle_management_script_event end_termination, + internal_lifecycle_management_script_event start_vnf_flavour_change, + internal_lifecycle_management_script_event end_vnf_flavour_change, + internal_lifecycle_management_script_event start_vnf_operation_change, + internal_lifecycle_management_script_event end_vnf_operation_change, + internal_lifecycle_management_script_event start_vnf_ext_conn_change, + internal_lifecycle_management_script_event end_vnf_ext_conn_change, + internal_lifecycle_management_script_event start_vnfinfo_modification, + internal_lifecycle_management_script_event end_vnfinfo_modification, + internal_lifecycle_management_script_event start_instantiation, + internal_lifecycle_management_script_event end_instantiation, + internal_lifecycle_management_script_event start_scaling, + internal_lifecycle_management_script_event end_scaling, + internal_lifecycle_management_script_event start_healing, + internal_lifecycle_management_script_event end_healing, + internal_lifecycle_management_script_event start_termination, + internal_lifecycle_management_script_event end_termination, + internal_lifecycle_management_script_event start_vnf_flavour_change, + internal_lifecycle_management_script_event end_vnf_flavour_change, + internal_lifecycle_management_script_event start_vnf_operation_change, + internal_lifecycle_management_script_event end_vnf_operation_change, + internal_lifecycle_management_script_event start_vnf_ext_conn_change, + internal_lifecycle_management_script_event end_vnf_ext_conn_change, + internal_lifecycle_management_script_event start_vnfinfo_modification, + internal_lifecycle_management_script_event end_vnfinfo_modification, + internal_lifecycle_management_script_event start_instantiation, + internal_lifecycle_management_script_event end_instantiation, + internal_lifecycle_management_script_event start_scaling, + internal_lifecycle_management_script_event end_scaling, + internal_lifecycle_management_script_event start_healing, + internal_lifecycle_management_script_event end_healing, + internal_lifecycle_management_script_event start_termination, + internal_lifecycle_management_script_event end_termination, + internal_lifecycle_management_script_event start_vnf_flavour_change, + internal_lifecycle_management_script_event end_vnf_flavour_change, + internal_lifecycle_management_script_event start_vnf_operation_change, + internal_lifecycle_management_script_event end_vnf_operation_change, + internal_lifecycle_management_script_event start_vnf_ext_conn_change, + internal_lifecycle_management_script_event end_vnf_ext_conn_change, + internal_lifecycle_management_script_event start_vnfinfo_modification, + internal_lifecycle_management_script_event end_vnfinfo_modification + } + Collection internal_lifecycle_management_script_event_collection of internal_lifecycle_management_script_event + Structure lifecycle_management_script___script_input ( + string key, + string ^value + ) + Collection lifecycle_management_script___script_input_collection of lifecycle_management_script___script_input + Collection vnfd___lifecycle_management_script_collection of vnfd___lifecycle_management_script + Structure vnfd___element_group ( + string id, + string description, + @LeafRefPath : "../../vdu/id" + leafref_collection vdu, + @LeafRefPath : "../../int-virtual-link-desc/id" + leafref_collection virtual_link_desc + ) + Collection vnfd___element_group_collection of vnfd___element_group + Structure vnfd___indicator ( + string id, + string ^name, + string_collection indicator_value, + enumeration source + ) + Collection vnfd___indicator_collection of vnfd___indicator + Structure vnfd___security_group_rule ( + string id, + string description, + direction direction, + ether_type ether_type, + protocol protocol, + port_range_min port_range_min, + port_range_max port_range_max + ) + Enumerated direction { + direction ingress, + direction egress, + direction ingress, + direction egress + } + Enumerated ether_type { + ether_type ipv4, + ether_type ipv6, + ether_type ipv4, + ether_type ipv6 + } + Enumerated protocol { + protocol tcp, + protocol udp, + protocol icmp, + protocol tcp, + protocol udp, + protocol icmp + } + Type port_range_min extends uint16 + Type port_range_max extends uint16 + Collection vnfd___security_group_rule_collection of vnfd___security_group_rule + Collection nfv___vnfd_collection of nfv___vnfd + Structure nfv___nsd ( + string id, + string designer, + string version, + string ^name, + string invariant_id, + @LeafRefPath : "../../nsd/id" + leafref_collection nested_nsd_id, + @LeafRefPath : "../../vnfd/id" + leafref_collection vnfd_id, + @LeafRefPath : "../../pnfd/id" + leafref_collection pnfd_id, + nsd___sapd_collection sapd, + nsd___virtual_link_desc_collection virtual_link_desc, + nsd___vnffgd_collection vnffgd, + string_collection autoscale_rule, + nsd___lifecycle_management_script_collection lifecycle_management_script, + nsd___df_collection df, + string signature, + string algorithm, + string certificate + ) + Structure nsd___sapd ( + string id, + boolean address_assignment, + sapd___cpd_or_virtual_link cpd_or_virtual_link + ) + Structure sapd___cpd_or_virtual_link ( + cpd_or_virtual_link___virtual_link_desc virtual_link_desc, + cpd_or_virtual_link___associated_cpd_id associated_cpd_id + ) + Structure cpd_or_virtual_link___virtual_link_desc ( + @LeafRefPath : "../../virtual-link-desc/id" + leafref virtual_link_desc + ) + Structure cpd_or_virtual_link___associated_cpd_id ( + associated_cpd_id___associated_cpd_id associated_cpd_id + ) + Structure associated_cpd_id___associated_cpd_id ( + associated_cpd_id___vnf vnf, + associated_cpd_id___pnf pnf, + associated_cpd_id___ns ns + ) + Structure associated_cpd_id___vnf ( + vnf___vnf vnf + ) + Structure vnf___vnf ( + @LeafRefPath : "../../../../../vnfd/id" + leafref vnfd_id, + @LeafRefPath : "deref(../vnfd-id)/../ext-cpd/id" + leafref ext_cpd_id, + @LeafRefPath : "deref(../vnfd-id)/../ext-cpd/id" + leafref cpd_id + ) + Structure associated_cpd_id___pnf ( + pnf___pnf pnf + ) + Structure pnf___pnf ( + @LeafRefPath : "../../../../../pnfd/id" + leafref pnfd_id, + @LeafRefPath : "deref(../pnfd-id)/../ext-cpd/id" + leafref ext_cpd_id, + @LeafRefPath : "deref(../pnfd-id)/../ext-cpd/id" + leafref pnf_cpd_id + ) + Structure associated_cpd_id___ns ( + ns___ns ns + ) + Structure ns___ns ( + @LeafRefPath : "../../../../../nsd/id" + leafref nsd_id, + @LeafRefPath : "deref(../nsd-id)/../sapd/id" + leafref ext_cpd_id, + @LeafRefPath : "deref(../nsd-id)/../sapd/id" + leafref sap_cpd_id + ) + Collection nsd___sapd_collection of nsd___sapd + Structure nsd___virtual_link_desc ( + string id, + virtual_link_desc___df_collection df, + enumeration test_access, + string description, + virtual_link_desc___connectivity_type connectivity_type, + string signature, + string algorithm, + string certificate + ) + Structure virtual_link_desc___df ( + string id, + df___qos qos, + enumeration service_availability_level + ) + Structure df___qos ( + latency latency, + packet_delay_variation packet_delay_variation, + decimal64 packet_loss_ratio, + uint32 priority + ) + Collection virtual_link_desc___df_collection of virtual_link_desc___df + Structure virtual_link_desc___connectivity_type ( + identityref_collection layer_protocol, + flow_pattern flow_pattern + ) + Collection nsd___virtual_link_desc_collection of nsd___virtual_link_desc + Structure nsd___vnffgd ( + string id, + @LeafRefPath : "../../df/vnf-profile/id" + leafref_collection vnf_profile_id, + @LeafRefPath : "../../df/pnf-profile/id" + leafref_collection pnf_profile_id, + @LeafRefPath : "../../df/ns-profile/id" + leafref_collection nested_ns_profile_id, + @LeafRefPath : "../../df/virtual-link-profile/id" + leafref virtual_link_profile_id, + vnffgd___cpd_pool_collection cpd_pool, + vnffgd___nfpd_collection nfpd + ) + Structure vnffgd___cpd_pool ( + string id, + cpd_pool___constituent_base_element_id constituent_base_element_id, + cpd_pool___constituent_cpd_id constituent_cpd_id + ) + Structure cpd_pool___constituent_base_element_id ( + constituent_base_element_id___vnf_profile vnf_profile, + constituent_base_element_id___pnf_profile pnf_profile, + constituent_base_element_id___ns_profile ns_profile + ) + Structure constituent_base_element_id___vnf_profile ( + vnf_profile___vnf_profile vnf_profile + ) + Structure vnf_profile___vnf_profile ( + @LeafRefPath : "../../../../../nsd/df/vnf-profile/id" + leafref vnf_profile_id + ) + Structure constituent_base_element_id___pnf_profile ( + pnf_profile___pnf_profile pnf_profile + ) + Structure pnf_profile___pnf_profile ( + @LeafRefPath : "../../../../../nsd/df/pnf-profile/id" + leafref pnf_profile_id + ) + Structure constituent_base_element_id___ns_profile ( + ns_profile___ns_profile ns_profile + ) + Structure ns_profile___ns_profile ( + @LeafRefPath : "../../../../../nsd/df/ns-profile/id" + leafref ns_profile_id + ) + Structure cpd_pool___constituent_cpd_id ( + constituent_cpd_id___vnf vnf, + constituent_cpd_id___pnf pnf, + constituent_cpd_id___ns ns + ) + Structure constituent_cpd_id___vnf ( + vnf___vnf vnf + ) + Structure constituent_cpd_id___pnf ( + pnf___pnf pnf + ) + Structure constituent_cpd_id___ns ( + ns___ns ns + ) + Collection vnffgd___cpd_pool_collection of vnffgd___cpd_pool + Structure vnffgd___nfpd ( + string id, + string rule, + nfpd___position_desc_id_collection position_desc_id + ) + Structure nfpd___position_desc_id ( + string id, + position_desc_id___cp_profile_id_collection cp_profile_id + ) + Structure position_desc_id___cp_profile_id ( + string id, + cp_profile_id___constituent_profile_elements_collection constituent_profile_elements + ) + Structure cp_profile_id___constituent_profile_elements ( + string id, + string cpd_id + ) + Collection cp_profile_id___constituent_profile_elements_collection of cp_profile_id___constituent_profile_elements + Collection position_desc_id___cp_profile_id_collection of position_desc_id___cp_profile_id + Collection nfpd___position_desc_id_collection of nfpd___position_desc_id + Collection vnffgd___nfpd_collection of vnffgd___nfpd + Collection nsd___vnffgd_collection of nsd___vnffgd + Structure nsd___lifecycle_management_script ( + string ^event, + string script + ) + Collection nsd___lifecycle_management_script_collection of nsd___lifecycle_management_script + Structure nsd___df ( + string id, + @LeafRefPath : "../monitored-info/id" + leafref flavour_key, + df___vnf_profile_collection vnf_profile, + df___pnf_profile_collection pnf_profile, + df___virtual_link_profile_collection virtual_link_profile, + df___scaling_aspect_collection scaling_aspect, + df___affinity_or_anti_affinity_group_collection affinity_or_anti_affinity_group, + df___ns_instantiation_level_collection ns_instantiation_level, + @LeafRefPath : "../ns-instantiation-level/id" + leafref default_instantiation_level, + df___ns_profile_collection ns_profile, + df___dependencies_collection dependencies, + df___monitored_info_collection monitored_info + ) + Structure df___vnf_profile ( + string id, + @LeafRefPath : "../../../../vnfd/id" + leafref vnfd_id, + @LeafRefPath : "deref(../vnfd-id)/../df/id" + leafref flavour_id, + @LeafRefPath : "deref(../flavour-id)/../instantiation-level/id" + leafref instantiation_level, + min_number_of_instances min_number_of_instances, + max_number_of_instances max_number_of_instances, + vnf_profile___affinity_or_anti_affinity_group_collection affinity_or_anti_affinity_group, + vnf_profile___virtual_link_connectivity_collection virtual_link_connectivity, + vnf_profile___local_affinity_or_anti_affinity_rule_collection local_affinity_or_anti_affinity_rule + ) + Structure vnf_profile___affinity_or_anti_affinity_group ( + @LeafRefPath : "../../../affinity-or-anti-affinity-group/id" + leafref id + ) + Collection vnf_profile___affinity_or_anti_affinity_group_collection of vnf_profile___affinity_or_anti_affinity_group + Structure vnf_profile___virtual_link_connectivity ( + @LeafRefPath : "../../../virtual-link-profile/id" + leafref virtual_link_profile_id, + virtual_link_connectivity___constituent_cpd_id_collection constituent_cpd_id + ) + Structure virtual_link_connectivity___constituent_cpd_id ( + @LeafRefPath : "../../../id" + leafref constituent_base_element_id, + @LeafRefPath : "deref(../../../nsd-id)/../sapd/id" + leafref constituent_cpd_id + ) + Collection virtual_link_connectivity___constituent_cpd_id_collection of virtual_link_connectivity___constituent_cpd_id + Collection vnf_profile___virtual_link_connectivity_collection of vnf_profile___virtual_link_connectivity + Structure vnf_profile___local_affinity_or_anti_affinity_rule ( + affinity_type affinity_type, + affinity_scope affinity_scope + ) + Collection vnf_profile___local_affinity_or_anti_affinity_rule_collection of vnf_profile___local_affinity_or_anti_affinity_rule + Collection df___vnf_profile_collection of df___vnf_profile + Structure df___pnf_profile ( + string id, + @LeafRefPath : "../../../../pnfd/id" + leafref pnfd_id, + pnf_profile___virtual_link_connectivity_collection virtual_link_connectivity + ) + Structure pnf_profile___virtual_link_connectivity ( + @LeafRefPath : "../../../virtual-link-profile/id" + leafref virtual_link_profile_id, + virtual_link_connectivity___constituent_cpd_id_collection constituent_cpd_id + ) + Collection pnf_profile___virtual_link_connectivity_collection of pnf_profile___virtual_link_connectivity + Collection df___pnf_profile_collection of df___pnf_profile + Structure virtual_link_profile___max_bitrate_requirements ( + root root, + leaf leaf + ) + Structure virtual_link_profile___min_bitrate_requirements ( + root root, + leaf leaf + ) + Structure df___ns_instantiation_level ( + string id, + string description, + ns_instantiation_level___vnf_to_level_mapping_collection vnf_to_level_mapping, + ns_instantiation_level___virtual_link_to_level_mapping_collection virtual_link_to_level_mapping, + ns_instantiation_level___ns_to_level_mapping_collection ns_to_level_mapping + ) + Structure ns_instantiation_level___vnf_to_level_mapping ( + @LeafRefPath : "../../../vnf-profile/id" + leafref vnf_profile_id, + number_of_instances number_of_instances + ) + Collection ns_instantiation_level___vnf_to_level_mapping_collection of ns_instantiation_level___vnf_to_level_mapping + Structure ns_instantiation_level___virtual_link_to_level_mapping ( + @LeafRefPath : "../../../virtual-link-profile/id" + leafref virtual_link_profile_id, + root root, + leaf leaf + ) + Collection ns_instantiation_level___virtual_link_to_level_mapping_collection of ns_instantiation_level___virtual_link_to_level_mapping + Structure ns_instantiation_level___ns_to_level_mapping ( + @LeafRefPath : "../../../ns-profile/id" + leafref ns_profile_id, + number_of_instances number_of_instances + ) + Collection ns_instantiation_level___ns_to_level_mapping_collection of ns_instantiation_level___ns_to_level_mapping + Collection df___ns_instantiation_level_collection of df___ns_instantiation_level + Structure df___ns_profile ( + string id, + @LeafRefPath : "../../../../nsd/id" + leafref nsd_id, + @LeafRefPath : "deref(../nsd-id)/../df/id" + leafref ns_df_id, + @LeafRefPath : "deref(../ns-df-id)/../ns-instantiation-level/id" + leafref instantiation_level_id, + min_number_of_instances min_number_of_instances, + max_number_of_instances max_number_of_instances, + ns_profile___affinity_or_anti_affinity_group_id_collection affinity_or_anti_affinity_group_id, + ns_profile___virtual_link_connectivity_collection virtual_link_connectivity + ) + Structure ns_profile___affinity_or_anti_affinity_group_id ( + @LeafRefPath : "../../../affinity-or-anti-affinity-group/id" + leafref id + ) + Collection ns_profile___affinity_or_anti_affinity_group_id_collection of ns_profile___affinity_or_anti_affinity_group_id + Structure ns_profile___virtual_link_connectivity ( + @LeafRefPath : "../../../virtual-link-profile/id" + leafref virtual_link_profile_id, + virtual_link_connectivity___constituent_cpd_id_collection constituent_cpd_id + ) + Collection ns_profile___virtual_link_connectivity_collection of ns_profile___virtual_link_connectivity + Collection df___ns_profile_collection of df___ns_profile + Structure df___dependencies ( + string id, + dependencies___primary_id primary_id, + dependencies___secondary_id secondary_id + ) + Structure dependencies___primary_id ( + primary_id___primary_vnf_profile primary_vnf_profile, + primary_id___primary_ns_profile primary_ns_profile + ) + Structure primary_id___primary_vnf_profile ( + @LeafRefPath : "../../vnf-profile/vnfd-id" + leafref primary_vnf_profile + ) + Structure primary_id___primary_ns_profile ( + @LeafRefPath : "../../ns-profile/nsd-id" + leafref primary_ns_profile + ) + Structure dependencies___secondary_id ( + secondary_id___secondary_vnf_profile secondary_vnf_profile, + secondary_id___secondary_ns_profile secondary_ns_profile + ) + Structure secondary_id___secondary_vnf_profile ( + @LeafRefPath : "../../vnf-profile/vnfd-id" + leafref secondary_vnf_profile + ) + Structure secondary_id___secondary_ns_profile ( + @LeafRefPath : "../../ns-profile/nsd-id" + leafref secondary_ns_profile + ) + Collection df___dependencies_collection of df___dependencies + Structure df___monitored_info ( + string id, + monitored_info___vnf_indicator_info vnf_indicator_info, + monitored_info___monitoring_parameter monitoring_parameter + ) + Structure monitored_info___vnf_indicator_info ( + @LeafRefPath : "../../../../../vnfd/id" + leafref vnfd_id, + @LeafRefPath : "deref(../vnfd-id)/../indicator/id" + leafref vnf_indicator + ) + Structure monitored_info___monitoring_parameter ( + string id, + string ^name, + string performance_metric, + string collection_period + ) + Collection df___monitored_info_collection of df___monitored_info + Collection nsd___df_collection of nsd___df + Collection nfv___nsd_collection of nfv___nsd + Structure nfv___pnfd ( + string id, + string function_description, + string provider, + string version, + string invariant_id, + string ^name, + pnfd___ext_cpd_collection ext_cpd, + pnfd___security_collection security, + string geographical_location_info, + pnfd___security_group_rule_collection security_group_rule + ) + Structure pnfd___ext_cpd ( + string id, + identityref_collection layer_protocol, + identityref role, + string description, + ext_cpd___protocol_collection protocol, + boolean trunk_mode + ) + Collection pnfd___ext_cpd_collection of pnfd___ext_cpd + Structure pnfd___security ( + string signature, + string algorithm, + string certificate + ) + Collection pnfd___security_collection of pnfd___security + Structure pnfd___security_group_rule ( + string id, + string description, + direction direction, + ether_type ether_type, + protocol protocol, + port_range_min port_range_min, + port_range_max port_range_max + ) + Collection pnfd___security_group_rule_collection of pnfd___security_group_rule + Collection nfv___pnfd_collection of nfv___pnfd + Structure nsd ( + nsd___vnfd_collection vnfd, + nsd___nsd_collection nsd, + nsd___pnfd_collection pnfd + ) + Structure nsd___vnfd ( + string id, + string provider, + string product_name, + string software_version, + string version, + string product_info_name, + string product_info_description, + string_collection vnfm_info, + string localization_language, + string default_localization_language, + vnfd___vdu_collection vdu, + vnfd___virtual_compute_desc_collection virtual_compute_desc, + vnfd___virtual_storage_desc_collection virtual_storage_desc, + vnfd___sw_image_desc_collection sw_image_desc, + vnfd___int_virtual_link_desc_collection int_virtual_link_desc, + vnfd___ext_cpd_collection ext_cpd, + vnfd___df_collection df, + vnfd___configurable_properties configurable_properties, + vnfd___modifiable_attributes modifiable_attributes, + vnfd___lifecycle_management_script_collection lifecycle_management_script, + vnfd___element_group_collection element_group, + vnfd___indicator_collection indicator, + string_collection auto_scale, + vnfd___security_group_rule_collection security_group_rule + ) + Collection nsd___vnfd_collection of nsd___vnfd + Structure nsd___nsd ( + string id, + string designer, + string version, + string ^name, + string invariant_id, + @LeafRefPath : "../../nsd/id" + leafref_collection nested_nsd_id, + @LeafRefPath : "../../vnfd/id" + leafref_collection vnfd_id, + @LeafRefPath : "../../pnfd/id" + leafref_collection pnfd_id, + nsd___sapd_collection sapd, + nsd___virtual_link_desc_collection virtual_link_desc, + nsd___vnffgd_collection vnffgd, + string_collection autoscale_rule, + nsd___lifecycle_management_script_collection lifecycle_management_script, + nsd___df_collection df, + string signature, + string algorithm, + string certificate + ) + Collection nsd___nsd_collection of nsd___nsd + Structure nsd___pnfd ( + string id, + string function_description, + string provider, + string version, + string invariant_id, + string ^name, + pnfd___ext_cpd_collection ext_cpd, + pnfd___security_collection security, + string geographical_location_info, + pnfd___security_group_rule_collection security_group_rule + ) + Collection nsd___pnfd_collection of nsd___pnfd + Structure pnfd ( + string id, + string function_description, + string provider, + string version, + string invariant_id, + string ^name, + pnfd___ext_cpd_collection ext_cpd, + pnfd___security_collection security, + string geographical_location_info, + pnfd___security_group_rule_collection security_group_rule + ) + Structure vnfd ( + string id, + string provider, + string product_name, + string software_version, + string version, + string product_info_name, + string product_info_description, + string_collection vnfm_info, + string localization_language, + string default_localization_language, + vnfd___vdu_collection vdu, + vnfd___virtual_compute_desc_collection virtual_compute_desc, + vnfd___virtual_storage_desc_collection virtual_storage_desc, + vnfd___sw_image_desc_collection sw_image_desc, + vnfd___int_virtual_link_desc_collection int_virtual_link_desc, + vnfd___ext_cpd_collection ext_cpd, + vnfd___df_collection df, + vnfd___configurable_properties configurable_properties, + vnfd___modifiable_attributes modifiable_attributes, + vnfd___lifecycle_management_script_collection lifecycle_management_script, + vnfd___element_group_collection element_group, + vnfd___indicator_collection indicator, + string_collection auto_scale, + vnfd___security_group_rule_collection security_group_rule + ) } \ No newline at end of file