This module provides management of 802.1Q Bridge components that support the Resource Allocation Protocol (RAP). Copyright (C) ...
Version: 2024-03-07
module ieee802-dot1q-rap { yang-version 1.1; namespace "urn:ieee:std:802.1Q:yang:ieee802-dot1q-rap"; prefix rap; import ietf-interfaces { prefix if; } import ieee802-dot1q-types { prefix dot1qtypes; } import ieee802-dot1q-bridge { prefix dot1q; } import ieee802-dot1q-tsn-types { prefix tsn; } import ieee802-types { prefix ieeetypes; } import ietf-inet-types { prefix inet; } organization "IEEE 802.1 Working Group"; contact "WG-URL: http://www.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 provides management of 802.1Q Bridge components that support the Resource Allocation Protocol (RAP). Copyright (C) IEEE (202x). This version of this YANG module is part of IEEE Std 802.1Q; see the standard itself for full legal notices."; revision "2024-03-07" { description "Published as part of IEEE Std 802.1Qdd-202x. The following reference statement identifies each referenced IEEE Standard as updated by applicable amendments."; reference "IEEE Std 802.1Q Bridges and Bridged Networks: IEEE Std 802.1Q-2022, IEEE Std 802.1Qcz-2023, IEEE Std 802.1Qcw-2023, IEEE Std 802.1Qcj-2023, IEEE Std 802.1Qdj-2024, IEEE Std 802.1Qdx-2024, IEEE Std 802.1Qdy-2024."; } grouping target-port { leaf chassis-id { type ieeetypes:chassis-id-type; description "Chassis component associated with the local system."; reference "8.5.2.3 of IEEE Std 802.1AB-2016"; } leaf port-id { type ieeetypes:port-id-type; description "Port component associated with a given port in the local system."; reference "8.5.3.3 of IEEE Std 802.1AB-2016"; } leaf ecp-capable { type boolean; description "A Boolean value indicating whether the target port supports the LRP-DT ECP mechanism (TRUE) or not (FALSE)."; } leaf tcp-capable { type boolean; description "A Boolean value indicating whether that the target port supports the LRP-DT TCP mechanism (TRUE) or not (FALSE)."; } leaf tcp-port { type uint16; description "A 2-byte TCP port number for the target port."; reference "C.2.2.6.1 of IEEE Std 802.1CS-2020"; } leaf addr-ip-v4 { type inet:ipv4-address; description "A 4-byte IPv4 address for the target port or NULL."; reference "Item 1) in C.2.2.6.2 of IEEE Std 802.1CS-2020"; } leaf addr-ip-v6 { type inet:ipv6-address; description "A 16-byte IPv6 address for the target port or NULL."; reference "Item 2) in C.2.2.6.2 of IEEE Std 802.1CS-2020"; } } // grouping target-port grouping rap-talker-announce { leaf stream-id { type tsn:stream-id-type; description "An 8-octet field encoding the StreamID element as specified in 46.2.3.1."; reference "51.5.3.1 of IEEE Std 802.1Q"; } leaf stream-rank { type uint8; description "A 1-octet field encoding a Rank value as specified in 46.2.3.2.1."; reference "51.5.3.2 of IEEE Std 802.1Q"; } leaf accumulated-max-latency { type uint32; description "A 4-octet field encoding the AccumulatedLatency element as specified in 46.2.5.2."; reference "51.5.3.3 of IEEE Std 802.1Q"; } leaf accumulated-min-latency { type uint32; description "A 4-octet unsigned integer, indicating the minimum latency, in nanoseconds, that a single frame of the stream can encounter when transmitted from the Talker along a given path to the Port declaring this attribute."; reference "51.5.3.4 of IEEE Std 802.1Q"; } leaf destination-mac-address { type ieeetypes:mac-address; description "A 6-octet destination MAC address of the data frames of the stream."; reference "51.5.3.5.1 of IEEE Std 802.1Q"; } leaf priority { type dot1qtypes:priority-type; description "A 3-bit unsigned integer, indicating the priority to be encoded in the PCP field of the VLAN tag, with which the data frames of the stream are tagged. This priority value is used by each receiving Bridge to associate the stream to a local RA class of the same priority."; reference "51.5.3.5.2 of IEEE Std 802.1Q"; } leaf vid { type uint16 { range "1..4094"; } description "A 12-bit VID. The semantics of this field is dependent on the type of a Talker Announcement in which the Talker Announce attribute is used, as follows: a) In the case of a Single-Context Talker Announcement, this field indicates a VID to be encoded in the VLAN tag with which the data frames of the stream are tagged, and also a single VLAN Context used by the Talker Announce attribute. b) In the case of a Multi-Context Talker Announcement, this field is set to the numerically smallest VlanContextId value contained in a VLAN Context Information sub-TLV."; reference "51.5.3.5.3 of IEEE Std 802.1Q"; } leaf talker-token-bucket-tspec { type boolean; description "This parameter returns a Boolean value that indicates whether a Token Bucket TSpec sub-TLV is contained in the TalkerTSpec field of the Talker Announce attribute (TRUE) or not (FALSE)."; reference "12.35.9.1 of IEEE Std 802.1Q"; } leaf talker-token_bucket_tspec_value { type binary; description "When talkerTokenBucketTSpec is TRUE, this parameter returns an octet string that is copied from the whole of the Value field of a Token Bucket TSpec sub-TLV contained in the TalkerTSpec field of the Talker Announce attribute."; reference "12.35.9.2 of IEEE Std 802.1Q"; } leaf talker-msrp-tspec { type boolean; description "This parameter returns a Boolean value that indicates whether a MSRP TSpec sub-TLV is contained in the TalkerTSpec field of the Talker Announce attribute."; reference "12.35.9.3 of IEEE Std 802.1Q"; } leaf talker-msrp-tspec-value { type binary; description "When talkerMsrpTSpec is TRUE, this parameter returns an octet string that is copied from the whole of the Value field of a MSRP TSpec sub-TLV contained in the TalkerTSpec field of the Talker Announce attribute."; reference "12.35.9.4 of IEEE Std 802.1Q"; } leaf network-tspec { type boolean; description "This parameter returns a Boolean value that indicates whether a Token Bucket TSpec sub-TLV is contained in the NetworkTSpec field of the Talker Announce attribute (TRUE) or not (FALSE)."; reference "12.35.9.5 of IEEE Std 802.1Q"; } leaf network-tspec-value { type binary; description "When networkTSpec is TRUE, this parameter returns an octet string that is copied from the whole of the Value field of a Token Bucket TSpec sub-TLV contained in the NetworkTSpec field of the Talker Announce attribute."; reference "12.35.9.6 of IEEE Std 802.1Q"; } leaf redundancy-control { type boolean; description "This parameter returns a Boolean value that indicates whether a Redundancy Control sub-TLV is contained in the Talker Announce attribute (TRUE) or not (FALSE)."; reference "12.35.9.7 of IEEE Std 802.1Q"; } leaf redundancy-control-value { type binary; description "When redundancyControl is TRUE, this parameter returns an octet string that is copied from the whole of the Value field of a Redundancy Control sub-TLV contained in the Talker Announce attribute."; reference "12.35.9.8 of IEEE Std 802.1Q"; } leaf failure-info { type boolean; description "This parameter returns a Boolean value that indicates whether a Failure Information sub-TLV is contained in the Talker Announce attribute (TRUE) or not (FALSE)."; reference "12.35.9.9 of IEEE Std 802.1Q"; } leaf failure-info-value { type binary; description "When failureInfo is TRUE, this parameter returns an octet string that is copied from the whole of the Value field of a Failure Information sub-TLV contained in the Talker Announce attribute."; reference "12.35.9.10 of IEEE Std 802.1Q"; } leaf org-defined-info { type boolean; description "This parameter returns a Boolean value that indicates whether an Organizationally Defined sub-TLV is contained in the Talker Announce attribute (TRUE) or not (FALSE)."; reference "12.35.9.11 of IEEE Std 802.1Q"; } leaf org-defined-info-value { type binary; description "When orgDefinedInfo is TRUE, this parameter returns an octet string that is copied from the whole of the Value field of an Organizationally Defined sub-TLV contained in the Talker Announce attribute."; reference "12.35.9.12 of IEEE Std 802.1Q"; } } // grouping rap-talker-announce grouping rap-listener-attach { leaf stream-id { type tsn:stream-id-type; description "An 8-octet field encoding the StreamID element as specified in 46.2.3.1."; reference "51.5.4.1 of IEEE Std 802.1Q"; } leaf vid { type uint16 { range "1..4094"; } description "A 12-bit integer, indicating a VID to be encoded in the VLAN tag with which the data frames of the stream are tagged."; reference "51.5.4.2 of IEEE Std 802.1Q"; } leaf listener-attach-status { type enumeration { enum "faultless-path" { value 0; } enum "faulty-path" { value 1; } enum "unresponsive-path" { value 2; } } description "An enumeration indicating the Path status"; reference "51.5.4.4.1 of IEEE Std 802.1Q"; } leaf vlan-context-status { type boolean; description "This parameter returns a Boolean value that indicates whether a VLAN Context Status sub-TLV is contained in the Listener Attach attribute (TRUE) or not (FALSE)."; reference "12.35.11.1 of IEEE Std 802.1Q"; } leaf vlan-context-status-value { type binary; description "When vlanContextStatus is TRUE, this parameter returns an octet string that is copied from the whole of the Value field of a VLAN Context Status sub-TLV contained in the Listener Attach attribute."; reference "12.35.11.2 of IEEE Std 802.1Q"; } } // grouping rap-listener-attach augment /dot1q:bridges/dot1q:bridge/dot1q:component { description "Augment Bridge with RAP configuration."; reference "51 of IEEE Std 802.1Q."; container rap-propagator { leaf frer-capable { type boolean; config false; description "A Boolean value, indicating whether the Bridge is a FRER-capable Bridge (TRUE) or not (FALSE)."; reference "51.8.4.11 of IEEE Std 802.1Q."; } leaf max-processing-delay { type uint32; config false; description "An unsigned integer, indicating the maximum delay, in nanoseconds, that a frame can experience during the forwarding process of the Bridge until it is placed into an outbound queue."; reference "51.8.4.12 of IEEE Std 802.1Q."; } leaf min-processing-delay { type uint32; config false; description "An unsigned integer, indicating the minimum delay, in nanoseconds, that a frame can experience during the forwarding process of the Bridge until it is placed into an outbound queue."; reference "51.8.4.13 of IEEE Std 802.1Q."; } } // container rap-propagator list ra-class { key "ra-class-id"; description "Each table row contains a set of parameters that defines a single RA class"; leaf ra-class-id { type uint8 { range "0 .. 255"; } description "The RA class ID is an integer in the range of 0 through 255 that identifies an RA class supported by an end station or Bridge."; reference "51.3.2.1 of IEEE Std 802.1Q."; } leaf ra-class-priority { type int8 { range "0 .. 7"; } description "Each RA class supported by an end station or Bridge is associated with a unique priority value in the range 0 through 7, termed RA class priority. The RA class priority indicates the received priority of the frames which are to be mapped to the traffic class(es) with which that RA class is associated."; reference "51.3.2.2 of IEEE Std 802.1Q."; } leaf rt-id { type int32; description "An RA class template is identified by an RA Class Template Identifier (RTID), which encodes a 3-octet OUI or CID value identifying the organization that defines that template, followed by a 1-octet index allocated by that organization."; reference "51.3.2.3 of IEEE Std 802.1Q."; } leaf templated-defined-data { type binary; description "The encoding of this field and the semantics associated with its values if any, is specific to the RA class template identified by the value contained in rt-id"; reference "51.5.2.1.6 of IEEE Std 802.1Q."; } } // list ra-class list ra-class-port-pair { key "index"; description "Each table row corresponds to an RA class configured in the RA Class Bridge Table and contains a set of parameters associated with a reception Port and a transmission Port"; leaf index { type uint16; description "The index for the list"; } leaf reception-port { type dot1qtypes:port-number-type; description "The port number of the associated reception Port."; reference "Item a) in 51.8.4.9 of IEEE Std 802.1Q."; } leaf transmission-port { type dot1qtypes:port-number-type; description "The port number of the associated transmission Port."; reference "Item b) in 51.8.4.9 of IEEE Std 802.1Q."; } leaf ra-class-id { type int8; description "The RA class ID of the associated local RA class. "; reference "Item c) in 51.8.4.9 of IEEE Std 802.1Q."; } leaf max-hop-latency { type uint32; description "An unsigned integer, containing the administratively configured maximum latency value, in nanoseconds, that is used as an upper bound latency in the latency constraint imposed on each stream reserved in the RA class, received on the reception Port, and transmitted on the transmission Port. The latency is measured from a point located in an upstream station connected via a LAN to the reception Port, to a point located in the transmission Port, where the exact measurement points are specific to and defined by the RA class template being used by the RA class."; reference "Item d) in 51.8.4.9 of IEEE Std 802.1Q."; } } // list ra-class-port-pair list rap-redundancy-context { key "redundancy-context-id"; description "Each table row contains a set of parameters associated with a Redundancy Context supported by the Bridge."; leaf redundancy-context-id { type uint16 { range "1..4096"; } description "The Redundancy Context ID of the Redundancy Context"; reference "Item a) in 51.8.4.10 of IEEE Std 802.1Q."; } list vlan-context-list { key "vlan-context"; description "The list of VLAN Context IDs associated with the Redundancy Context."; reference "Item b) in 51.8.4.10 of IEEE Std 802.1Q."; leaf vlan-context { type uint16 { range "1..4096"; } } } // list vlan-context-list } // list rap-redundancy-context } augment /if:interfaces/if:interface/dot1q:bridge-port { description "Augment Bridge Port with RAP configuration"; reference "51 of IEEE Std 802.1Q."; container rap-participant { leaf participant-enabled { type boolean; description "A Boolean variable indicating whether the operation of the RAP Participant state machine is administratively enabled (TRUE) or not (FALSE)."; reference "51.7.4.2 of IEEE Std 802.1Q."; } leaf neighbor-discovery-mode { type enumeration { enum "lldp-discovery" { value 1; } enum "static-configuration" { value 2; } enum "exploratory-hello" { value 3; } } description "An administratively assigned value, indicating the operation mode in which neighbor discovery is performed on the local target Port, and taking one of the following enumerated values: 1) LLDP_DISCOVERY: The information about a neighbor target port to be passed to the underlying LRP is obtained through the exchange of LRP Discovery TLVs (Annex C of IEEE Std 802.1CS-2020) by use of LLDP, and contained in lldpNeighborTargetPort (51.7.4.7.4). 2) STATIC_CONFIGURATION: The information about a neighbor target port to be passed to the underlying LRP is statically configured by the management and contained in staticNeighborTargetPort (51.7.4.7.3). 3) EXPLORATORY_HELLO: No neighbor target port information needs to be passed to the underlying LRP."; reference "51.7.4.3 of IEEE Std 802.1Q."; } leaf hello-time { type int32; default '30'; description "An administratively assigned integer value, in the range 30 through 65535, for the Hello Time parameter in a Local Target Port request issued by the RAP Participant state machine to the underlying LRP."; reference "51.7.4.4 of IEEE Std 802.1Q."; } leaf complete-list-timer-reset { type int32; description "An administratively assigned integer value, in the range x through y, for the cplCompleteListTimerReset parameter in a Local Target Port request issued by the RAP Participant state machine to the underlying LRP. The default value is z."; reference "51.7.4.5 of IEEE Std 802.1Q."; } leaf explore-hello-recv-enabled { type boolean; description "An administratively assigned Boolean value for the imPplExploreRecv parameter in a Neighbor Target Port request issued by the RAP Participant state machine to the underlying LRP."; reference "51.7.4.6 of IEEE Std 802.1Q."; } container local-target-port { description "Contains the administratively configured parameters of the local target port."; reference "51.7.4.7.2 of IEEE Std 802.1Q."; uses target-port; } // container local-target-port container static-neighor-target-port { description "Contains the administratively configured parameters of a neighbor target port to which the local target port is to be connected."; reference "51.7.4.7.3 of IEEE Std 802.1Q."; uses target-port; } // container static-neighor-target-port container lldp-neighbor-target-port { config false; description "Contains the configuration parameters of a neighbor target port discovered by LLDP."; reference "51.7.4.7.4 of IEEE Std 802.1Q."; uses target-port; } // container lldp-neighbor-target-port leaf neighbor-mismatch { type boolean; config false; description "A Boolean variable, set TRUE when detecting a mismatch between the local target port and the neighbor target port to be connected."; reference "51.7.4.8 of IEEE Std 802.1Q."; } leaf portal-connected { type boolean; config false; description "A Boolean value indicating whether a Portal association for the Portal as indicated in portal-id (51.7.4.11) has been established by the underlying LRP (TRUE) or not (FALSE)."; reference "51.7.4.12 of IEEE Std 802.1Q."; } } // container rap-participant container rap-propagator { leaf stream-da-pruning-enabled { type boolean; description "A Boolean indicating whether Stream DA Pruning (51.3.4.1.2) is administratively enabled (TRUE) or disabled (FALSE) on the Port."; reference "Item b) in 51.8.4.7 of IEEE Std 802.1Q."; } leaf max-interfering-frame-size { type uint32; config false; description "An unsigned integer, indicating the maximum frame size, in bytes, including media-dependent overhead (12.4.2.2), that is allowed to be transmitted through the Port. The value of this parameter is determined by the operation of the underlying MAC Service."; reference "Item e) in 51.8.4.7 of IEEE Std 802.1Q."; } leaf max-propagation-delay { type uint32; config false; description "An unsigned integer, indicating the maximum latency, in nanoseconds, a frame can experience when transmitted from the underlying physical medium on the Port to a reception port connected via a LAN to the Port."; reference "Item f) in 51.8.4.7 of IEEE Std 802.1Q."; } leaf min-propagation-delay { type uint32; config false; description "An unsigned integer, indicating the minimum latency, in nanoseconds, a frame can experience when transmitted from the underlying physical medium on the Port to a reception port connected via a LAN to the Port."; reference "Item g) in 51.8.4.7 of IEEE Std 802.1Q."; } leaf red-context-consistent { type boolean; config false; description "A Boolean indicating whether the Redundancy Context configuration in this Bridge is consistent with that in a neighboring station on the Port (TRUE) or not (FALSE). "; reference "Item h) in 51.8.4.7 of IEEE Std 802.1Q."; } } // container rap-propagator list ra-class { key "ra-class-id"; description "Each table row contains a set of parameters that defines a single RA class"; leaf ra-class-id { type uint8 { range "0 .. 255"; } description "The RA class ID of the associated local RA class."; reference "Item b) in 51.8.4.8 of IEEE Std 802.1Q."; } leaf domain-boundary-status { type boolean; config false; description "A Boolean indicating whether the Port is a domain boundary port for the RA class (TRUE) or not (FALSE)."; reference "Item c) in 51.8.4.8 of IEEE Std 802.1Q."; } leaf max-stream-frame-size { type uint16; description "An unsigned integer, indicating the maximum frame size, in bytes, of the streams allowed to be transmitted in the RA class on the Port."; reference "Item d) in 51.8.4.8 of IEEE Std 802.1Q."; } leaf min-stream-frame-size { type uint16; description "An unsigned integer, indicating the minimum frame size, in bytes, of the streams allowed to be transmitted in the RA class on the Port."; reference "Item e) in 51.8.4.8 of IEEE Std 802.1Q."; } leaf max-bandwidth { type uint32; description "An unsigned integer, indicating the maximum amount of bandwidth that can be allocated to the streams reserved in the RA class on the Port. The bandwidth value is represented as a percentage of the portTransmitRate value on that Port and expressed as a fixed-point number scaled by a factor of 1,000,000; i.e., 100,000,000 (the maximum value)represents 100%."; reference "Item f) in 51.8.4.8 of IEEE Std 802.1Q."; } leaf allocated-bandwidth { type uint32; config false; description "An unsigned integer, indicating the amount of bandwidth that has been allocated to the streams reserved in the RA class on the Port. The bandwidth value is represented as a percentage of the portTransmitRate value on that Port and expressed as a fixed- point number scaled by a factor of 1,000,000; i.e., 100,000,000 (the maximum value) represents 100%."; reference "Item g) in 51.8.4.8 of IEEE Std 802.1Q."; } leaf proposed-max-hop-latency { type uint32; description "An unsigned integer, indicating the administratively configured value, in nanoseconds, to be contained in the ProposedMaxHopLatency field of an RA Class Descriptor sub-TLV for the RA class in the RA attribute declared by this Bridge on the Port. The latency value is intended for use by a downstream station, e.g. an Listener, connected via a LAN to the Port to determine the corresponding maxHopLatency value. "; reference "Item h) in 51.8.4.8 of IEEE Std 802.1Q."; } } // list ra-class list rap-priority-regeneration-override { key "received-priority"; description "Each table row contains a set of parameters for a received priority value that is associated with an RA class "; leaf received-priority { type dot1qtypes:priority-type; description "Received priority value."; reference "6.9.4 of IEEE Std 802.1Q"; } leaf regenerated-priority { type dot1qtypes:priority-type; description "Priority regeneration value."; reference "6.9.4 of IEEE Std 802.1Q"; } } // list rap-priority-regeneration-override list rap-talker-announce-registration { key "stream-id"; config false; description "Each table row in the table associated with a Port corresponds to a registration of the Talker Announce attribute on that Port, and contains a set of parameters"; uses rap-talker-announce; } // list rap-talker-announce-registration list rap-talker-announce-declaration { key "stream-id"; config false; description "Each table row in the Table associated with a Port corresponds to a declaration of the Talker Announce attribute on that Port, and contains the same set of parameters as in the Talker Announce Registration"; uses rap-talker-announce; } // list rap-talker-announce-declaration list rap-listener-attach-registration { key "stream-id"; config false; description "Each table row in the Table associated with a Port corresponds to a registration of the Listener Attach attribute on that Port and contains a set of parameters"; uses rap-listener-attach; leaf reservation-age { type uint32; description "A 32-bit unsigned integer, indicating the time, in seconds, since a reservation associated with the Listener Attach registration was successfully made, and set to zero when the reservation is removed."; reference "Item e) in 51.8.4.3 of IEEE Std 802.1Q"; } } // list rap-listener-attach-registration list rap-listener-attach-declaration { key "stream-id"; config false; description "Each table row in the Table associated with a Port corresponds to a declaration of the Listener Attach attribute on that Port and contains the same set of parameters except the reservationAge parameter as in the Listener Attach Registration"; uses rap-listener-attach; } // list rap-listener-attach-declaration } } // module ieee802-dot1q-rap
© 2023 YumaWorks, Inc. All rights reserved.