module ieee802-dot1q-cfm-types { yang-version 1.1; namespace "urn:ieee:std:802.1Q:yang:ieee802-dot1q-cfm-types"; prefix "cfm-types"; 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 ieee802-dot1q-cfm modules."; revision 2020-06-04 { description "Published as part of IEEE Std 802.1Qcx-2020. Initial version."; reference "IEEE Std 802.1Qcx-2020, Bridges and Bridged Networks - YANG Data Model for Connectivity Fault Management."; } /* ------------------------------------------------------ * Type definitions used by 802.1Qcx YANG module. * ------------------------------------------------------ */ typedef unicast-mac-address-type { type string { pattern "[0-9a-fA-F][02468aAcCeE](-[0-9a-fA-F]{2}){5}"; } description "A unicast destination MAC address. The I/G address bit is used to identify the destination MAC address as an individual MAC address or a group MAC address. If the I/G address bit is 0, it indicates that the MAC address field is an individual MAC address. If this bit is 1, the MAC address is a group MAC address that identifies one or more (or all) stations connected to the IEEE 802 network"; } typedef multicast-class1-mac-address-type { type string { pattern "(01-80-C2-00-00-3)[0-7]"; } description "The multicast class 1 MAC address must take the form of 01-80-C2-00-00-3x, where x represents the MEG level, with x being a value in the range of 0..7."; } typedef mp-type { type enumeration { enum mhf { value 1; description "Indicates a MHF."; } enum mep { value 2; description "Indicates a MEP."; } } description "Indicates the type of Maintenance Point."; } typedef mhf-creation-type { type enumeration { enum mhf-none { value 1; description "No MHFs can be created for designated VID(s) or ISID."; } enum mhf-default { value 2; description "MHFs can be created for designated VID(s) or ISID on any Bridge Port through which the VID(s) or ISID can pass, where: i) There are no lower active MD levels; or ii) There is a MEP at the next lower active MD level on the port."; } enum mhf-explicit { value 3; description "MHFs can be created for designated VID(s) or ISID only on Bridge Ports through which the VID(s) or ISID can pass, and only if there is a MEP at the next lower active MD level on the port."; } enum mhf-defer { value 4; description "In the Maintenance Association only, the control of MHF creation is deferred to the corresponding variable in the enclosing Maintenance Domain."; } } description "Indicates if the Management Entity can create MHFs."; } typedef mp-direction-type { type enumeration { enum down { value 1; description "Down maintenance point, where CFM protocol messages are dispatched away from the MAC Relay entity."; } enum up { value 2; description "Up maintenance point, where CFM protocol messages are dispatched towards the MAC Relay entity."; } } description "Indicates the direction in which the Maintenance Point (MEP or MIP) faces on the Bridge Port."; } typedef mep-id-type { type uint16 { range "1..8191"; } description "Maintenance association End Point Identifier, which is unique over a given Maintenance Association."; } typedef md-level-type { type uint8 { range "0..7"; } description "Integer identifying the Maintenance Domain Level (MD Level). Higher numbers correspond to higher Maintenance Domains, those with the greatest physical reach, with the highest values for customers' CFM PDUs. Lower numbers correspond to lower Maintenance Domains, those with more limited physical reach, with the lowest values for CFM PDUs protecting single bridges or physical links."; } typedef port-status-tlv-value-type { type enumeration { enum no-port-state-tlv { value 0; description "Indicates either that no CCM has been received or that no port status TLV was present in the last CCM received."; } enum blocked { value 1; description "Ordinary data cannot pass freely through the port on which the remote MEP resides."; } enum up { value 2; description "Ordinary data can pass freely through the port on which the remote MEP resides."; } } description "An enumerated value from the Port Status TLV from the last CCM received from the last MEP. It indicates the ability of the Bridge Port on which the transmitting MEP resides to pass ordinary data, regardless of the status of the MAC."; } typedef interface-status-tlv-value-type { type enumeration { enum no-interface-status-tlv { value 0; description "Indicates either that no CCM has been received or that no interface status TLV was present in the last CCM received."; } enum up { value 1; description "The interface is ready to pass packets."; } enum down { value 2; description "The interface can not pass packets."; } enum testing { value 3; description "The interface is in some test mode."; } enum unknown { value 4; description "The interface status cannot be determined for some reason."; } enum dormant { value 5; description "The interface is not in a state to pass packets but is in a pending state, waiting for some external event."; } enum not-present { value 6; description "Some component of the interface is missing."; } enum lower-layer-down { value 7; description "The interface is down due to state of the lower layer interface."; } } description "An enumerated value from the Interface Status TLV from the last CCM received from the last MEP. It indicates the status of the Interface within which the MEP transmitting the CCM is configured, or the next lower Interface in the Interface Stack, if the MEP is not configured within an Interface."; } typedef highest-defect-priority-type { type enumeration { enum none { value 0; description "No defects since Fault Notification Generator state machine reset."; } enum def-rdi-ccm { value 1; description "The last CCM received by this MEP from some remote MEP contained the RDI bit set."; } enum def-mac-status { value 2; description "The last CCM received by this MEP from some remote MEP indicating that the transmitting MEP's associated MAC is reporting its status via the Port Status TLV or Interface Status TLV."; } enum def-remote-ccm { value 3; description "This MEP is not receiving CCMs from some other MEP in its configured list."; } enum def-error-ccm { value 4; description "This MEP is receiving invalid CCMs."; } enum def-xcon-ccm { value 5; description "This MEP is receiving CCMs that could be from some other MA."; } } description "An enumerated value, equal to the contents of the variable highestDefect (20.35.9 and Table 20-1), indicating the highest-priority defect that has been present since the MEP Fault Notification Generator State Machine was last in the FNG_RESET state. The integer value assigned to the enum value determines the priority. The higher value corresponds to the higher priority."; } typedef lowest-alarm-priority-type { type enumeration { enum all-def { value 1; description "Includes def-rdi-ccm, def-mac-status, def-remote-ccm, def-error-ccm, and def-xcon-ccm."; } enum mac-remote-error-xcon { value 2; description "Only includes def-mac-status, def-remote-ccm, def-error-ccm, and def-xcon-ccm."; } enum remote-error-xcon { value 3; description "Includes def-remote-ccm, def-error-ccm, and def-xcon-ccm."; } enum error-xcon { value 4; description "Includes def-error-ccm and def-xcon-ccm."; } enum xcon { value 5; description "Only def-xcon-ccm"; } enum no-xcon { value 6; description "No defects def-xcon or lower are to be reported."; } } description "Specifies the lowest priority defect that is allowed to generate a Fault Alarm (20.9.5). The to be reported defects are identified per enum value."; } typedef sender-id-permission-type { type enumeration { enum send-id-none { value 1; description "The Sender ID TLV is not to be sent."; } enum send-id-chassis { value 2; description "The Chassis ID Length, Chassis ID Subtype, and Chassis ID fields of the Sender ID TLV are to be sent."; } enum send-id-manage { value 3; description "The Management Address Length and Management Address of the Sender ID TLV are to be sent."; } enum send-id-chassis-manage { value 4; description "The Chassis ID Length, Chassis ID Subtype, Chassis ID, Management Address Length and Management Address fields are all to be sent."; } enum send-id-defer { value 5; description "The content of the Sender ID TLV are determined by the corresponding Maintenance Domain variable."; } } description "Indicates what, if anything, is to be included in the Sender ID TLV transmitted in CCMs, LBMs, LTMs, and LTRs."; } typedef ccm-interval-type { type enumeration { enum 300hz { value 1; description "CCM PDUs are sent every 3 1/3 milliseconds (300Hz)."; } enum 10ms { value 2; description "CCM PDUs are sent every 10 milliseconds."; } enum 100ms { value 3; description "CCM PDUs are sent every 100 milliseconds."; } enum 1sec { value 4; description "CCM PDUs are sent every second."; } enum 10sec { value 5; description "CCM PDUs are sent every 10 seconds."; } enum 1min { value 6; description "CCM PDUs are sent every minute."; } enum 10min { value 7; description "CCM PDUs are sent every 10 minutes."; } } description "Indicates the interval at which CCM PDUs are sent by a MEP."; } typedef fng-state-type { type enumeration { enum fng-reset { value 1; description "No defect has been present since the MEP's fng-reset-time timer expired, or since the state machine was last reset."; } enum fng-defect { value 2; description "A defect is present, but not for a long enough time to be reported."; } enum fng-report-defect { value 3; description "A momentary state during which the defect is reported by sending a fault-alarm notification, if that action is enabled."; } enum fng-defect-reported { value 4; description "A defect is present, and some defect has been reported."; } enum fng-defect-clearing { value 5; description "No defect is present, but the MEP's fng-reset-time timer has not yet expired."; } } description "Indicates the different states of the MEP Fault Notification Generator State Machine."; } typedef relay-action-field-value-type { type enumeration { enum relay-hit { value 1; description "The LTM reached a Maintenance Point whose MAC address matches the target address."; } enum relay-fdb { value 2; description "The Egress Port was determined by consulting the Filtering Database."; } enum relay-mpdb { value 3; description "The Egress Port was determined by consulting the MIP CCM Database."; } } description "Possible values the Relay action field can take."; } typedef ingress-action-field-value-type { type enumeration { enum ingress-ok { value 1; description "The target data frame would be passed through to the MAC Relay Entity."; } enum ingress-down { value 2; description "The Bridge Ports MAC_Operational parameter is false."; } enum ingress-blocked { value 3; description "The target data frame would not be forwarded if received on this Port due to active topology enforcement."; } enum ingress-vid { value 4; description "The ingress port is not in the member set of the LTMs VID, and ingress filtering is enabled, so the target data frame would be filtered by ingress filtering."; } } description "Possible values returned in the ingress action field."; } typedef egress-action-field-value-type { type enumeration { enum egress-okay { value 1; description "The targeted data frame would be forwarded."; } enum egress-down { value 2; description "The Egress Port can be identified, but that Bridge Port MAC_Operational parameter is false."; } enum egress-blocked { value 3; description "The Egress Port can be identified, but the data frame would not pass through the Egress Port due to active topology management (i.e., the Bridge Port is not in the Forwarding state."; } enum egress-vid { value 4; description "The Egress Port can be identified, but the Bridge Port is not in the LTMs VIDs member set, so would be filtered by egress filtering."; } } description "Possible values returned in the egress action field."; } typedef remote-mep-state-type { type enumeration { enum rmep-idle { value 1; description "Momentary state during reset."; } enum rmep-start { value 2; description "The timer has not expired since the state machine was reset, and no valid CCM has yet been received."; } enum rmep-failed { value 3; description "The timer has expired, both since the state machine was reset, and since a valid CCM was received."; } enum rmep-ok { value 4; description "The timer has not expired since a valid CCM was received."; } } description "Operational state of the remote MEP state machine. This state machine monitors the reception of valid CCMs from a remote MEP with a specific MEPID. It uses a timer that expires in 3.5 times the length of time indicated by the MA's ccm-interval object."; } typedef mep-defects-type { type bits { bit def-rdi-ccm { position 0; description "A remote MEP reported that RDI bit in its last CCM."; } bit def-mac-status { position 1; description "Either some remote MEP is reporting its Interface Status TLV as not isUp, or all remote MEPs are reporting a Port Status TLV that contains some value other than psUp."; } bit def-remote-ccm { position 2; description "The MEP is not receiving valid CCMs from at least one of the remote MEPs."; } bit def-error-ccm { position 3; description "The MEP has received at least one invalid CCM whose CCM Interval has not yet timed out."; } bit def-xcon-ccm { position 4; description "The MEP has received at last one CCM from either another MAID or a lower MD level whose CCM Interval has not yet timed out."; } } description "A MEP can detect and report a number of defects, and multiple defects can be present at the same time."; } typedef config-error-type { type bits { bit cfm-leak { position 0; description "MA x is associated with a specific VID list, one or more of the VIDs in MA x can pass through the Bridge Port, no Down MEP is configured on any Bridge Port for MA x, and some other MA y, at a higher MD Level than MA x, and associated with at least one of the VID(s) also in MA x, does have a MEP configured on the Bridge Port."; } bit conflicting-vids { position 1; description "MA x is associated with a specific VID list, an Up MEP is configured on MA x on the Bridge Port, and some other MA y, associated with at least one of the VID(s) also in MA x, also has an Up MEP configured on some Bridge Port."; } bit excessive-levels { position 2; description "The number of different MD Levels at which MIPs are to be created on this port exceeds the Bridge's capabilities."; } bit overlapped-levels { position 3; description "A MEP is created for one VID at one MD Level, but a MEP is configured on another VID at that MD Level or higher, exceeding the Bridge's capabilities."; } } description "While making the MIP creation evaluation described in 22.2.3, the management entity can encounter errors in the configuration."; } typedef mep-tx-ltm-flags-type { type bits { bit use-fdb-only { position 1; description "Use FDB only"; } } description "The flags field for LTMs transmitted by the MEP."; } typedef fault-alarm-type { type enumeration { enum address { value 1; description "Indicates that a Network address to which Fault Alarms are to be transmitted should be used."; } enum not-transmitted { value 2; description "Indicates that Fault alarms are not to be transmitted."; } } description "The Fault Alarm indicators."; } typedef lbm-data-tlv-type { type binary { length "1..1480"; } description "The loopback message Data TLV type."; } typedef name-key-type { type string { length "1..255"; pattern '[0-9a-zA-Z\-_.]*'; } description "String type with at least 1 and up to 255 of the specified characters."; } typedef seq-number-type { type uint32 { range "0..4294967295"; } description "The transaction identifier or sequence number of the CFM PDU."; } typedef service-selector-type { type enumeration { enum ieee-reserved-0 { value 0; description "Reserved for definition by IEEE 802.1."; } enum vlan-id { value 1; description "12-bit identifier found in a VLAN tag."; } enum isid { value 2; description "24-bit identifier found in an I-TAG."; } enum tesid { value 3; description "32-bit identifier"; } enum segid { value 4; description "32-bit identifier"; } enum path-tesid { value 5; description "32-bit identifier"; } enum group-isid { value 6; description "24 bit identifier"; } enum ieee-reserved { value 7; description "Reserved for definition by IEEE 802.1"; } } default "vlan-id"; description "A value that represents a type (and thereby the format) of a service-selector-value."; } typedef service-selector-value-type { type uint32 { range "1..4294967295"; } description "An integer that uniquely identifies a generic MAC Service, or none. Examples of service selectors are a VLAN-ID and an I-SID. A service-selector-value value is always interpreted within the context of a service-selector-type value. Every usage of the service-selector-value textual convention is required to specify the service-selector-type object that provides the context. The value of a service-selector-value object must always be consistent with the value of the associated service-selector-type object. Attempts to set a service-selector-value object to a value inconsistent with the associated service-selector-type must fail with an inconsistent-value error."; } } // ieee802-dot1q-cfm-types