This YANG module describes the configuration and operational model of Psuedowire on PE router Terms and Acronyms AC : Att...
Version: 2019-07-01
module cisco-pw { yang-version 1; namespace "urn:cisco:params:xml:ns:yang:pw"; prefix l2vpn-pw; import cisco-semver { prefix cisco-semver; } import ietf-interfaces { prefix if; } import ietf-inet-types { prefix inet; } import ietf-yang-types { prefix yang; } organization "Cisco Systems, Inc."; contact "Cisco Systems, Inc. Customer Service Postal: 170 W Tasman Drive San Jose, CA 95134 Tel: +1 1800 553-NETS E-mail: cs-yang@cisco.com"; description "This YANG module describes the configuration and operational model of Psuedowire on PE router Terms and Acronyms AC : Attachment Circuit BD : Bridge Domain L2VPN : Layer 2 Virtual Private Network PE : Provider Edge PW : Pseudowire VFI : Virtual Forwarding Instance VPLS : Virtual Private LAN Service VLAN : Virtual Local Area Network "; revision "2019-07-01" { description "Establish semantic version baseline"; } revision "2016-12-07" { description "Removed cisco govern extension"; } revision "2014-12-01" { description "Initial revision"; reference "TODO"; } cisco-semver:module-version "1.0.0"; feature pw-interface { description "This feature represents ability to support pseudowire interface."; } feature pw-load-balancing { description "This feature represents ability to support load-balancing on pseudowires."; } feature pw-class-flow-setting { description "This feature represents ability to configure load-balancing flow type on a pwsdowire class/template level."; } feature flow-label-tlv-code17 { description "This feature represents ability to configure Flow Aware Label (FAT) PW to carry code 0x17 as sub-tlv id"; } feature flow-label-static-config { description "This feature represents ability to use statically configured flow label on traffic flowing on the PW"; } feature pw-preferred-path { description "This feature represents the ability to use a preferred path for pseudowires"; } feature preferred-path-peer { description "This feature represents ability to use peer information (ip address or hostname) as preferred path."; } feature pw-vccv { description "This feature represents ability to configure vccv option on a pseudowire"; } feature pw-class-switchover-delay { description "This feature represents the ability to configure pseodowire redundancy switchover properties on a pseudowire class"; } feature pw-class-source-ip { description "This feature represents the ability to confifgure source IPv4 address on a pseudowire class/template"; } feature pw-class-tag-rewrite { description "This feature represents the ability to configure tag-rewrite parameters on a pseudowire class"; } feature pw-tag-impose-vlan-id { description "This feature represents the ability to configure a tag for a VLAN ID on a pseudowire"; } feature pw-ipv6-source { description "This feature represents the ability to configure a IPv6 local address for a IPv6 pseudowire"; } feature pw-port-profiles { description "This feature represents the ability to configure port-profile parameters."; } feature pw-class-status { description "This feature represents the ability to configure status related propoties on a pw class."; } feature pw-sequencing { description "This feature represents the ability to support sequencing on pseudowire."; } feature pw-mac-withdraw-config { description "This feature represents the ability to configure pseudowire MAC withdraw feature."; } feature pw-short-config { description "This feature represents the ability to configure pseudowire with short version of parameters: neighbor IP, VC ID and encap type."; } feature static-label-direct-config { description "This feature represents the ability to directly configure a static label with neighbor IP and VC ID within a service instance."; } feature pw-grouping-config { description "This feature represents the ability to enable pseudowire grouping."; } feature pw-oam-refresh-config { description "This feature represents the ability to enable pseudowire oam refresh."; } feature pw-status-config { description "This feature represents the ability to enable pseudowire status at a global level."; } feature predictive-redundancy-config { description "This feature represents the ability to enable predicitive redundancy."; } feature pw-static-oam-config { description "This feature represents the ability to support oam classes"; } identity pw-encapsulation-type { description "Base identity for PW encapsulations."; } identity pw-encap-mpls { base pw-encapsulation-type; description "Use MPLS for PW encapsulation"; } identity pw-vc-type { description "Base identity for VC type in PW"; } identity pw-vc-type-ether { base pw-vc-type; description "Identity for Ethernet VC type"; } identity pw-vc-type-vlan { base pw-vc-type; description "Identity for VLAN VC type"; } identity pw-vc-type-vlan-passthrough { base pw-vc-type; description "Identity for VLAN passthrough VC type (XR)"; } identity pw-load-balance-type { description "Base type for load-balancing type"; } identity pw-lb-ethernet-type { base pw-load-balance-type; description "Base type for load-balancing with ethernet fields"; } identity pw-lb-eth-src-mac { base pw-lb-ethernet-type; description "Load-balancing with ethernet source MAC field"; } identity pw-lb-eth-dst-mac { base pw-lb-ethernet-type; description "Load-balancing with ethernet destination MAC field"; } identity pw-lb-eth-src-dst-mac { base pw-lb-ethernet-type; description "Load-balancing with ethernet source and destination MAC fields"; } identity pw-lb-ip-type { base pw-load-balance-type; description "Base type for load-balancing with IP"; } identity pw-lb-ip-src-ip { base pw-lb-ip-type; description "Load-balancing with IP source IP field"; } identity pw-lb-ip-dst-ip { base pw-load-balance-type; description "Load-balancing with IP destination IP field"; } identity pw-lb-ip-src-dst-ip { base pw-lb-ip-type; description "Load-balancing with IP source and destination IP fields"; } identity pw-signaling-protocol-type { description "Base identity for PW signaling protocol"; } identity pw-signaling-protocol-none { base pw-signaling-protocol-type; description "No PW signaling protocol"; } identity pw-signaling-protocol-ldp { base pw-signaling-protocol-type; description "Use MPLS LDP for PW signaling protocol"; } identity pw-signaling-protocol-bgp { base pw-signaling-protocol-type; description "Use BGP for PW signaling protocol"; } identity pw-sequencing-type { description "Sequencing options for PW"; } identity pw-sequencing-receive { base pw-sequencing-type; description "Receive sequencing option for PW"; } identity pw-sequencing-transmit { base pw-sequencing-type; description "Transmit sequencing option for PW"; } identity pw-sequencing-both { base pw-sequencing-type; description "Receive and Transmit sequencing option for PW"; } typedef pw-template-ref { type leafref { path "/l2vpn-pw:pseudowire-config/pw-templates/l2vpn-pw:pw-template/l2vpn-pw:name"; } description "Reference to an instance of pseudowire template."; } typedef pw-oper-vc-peer-addr-ref { type leafref { path "/l2vpn-pw:pseudowire-state/l2vpn-pw:pseudowires/l2vpn-pw:vc-peer-address"; } description "Reference to the peer ip address of a pseudowire in oper data tree."; } typedef pw-oper-vc-id-ref { type leafref { path "/l2vpn-pw:pseudowire-state/l2vpn-pw:pseudowires/l2vpn-pw:vc-id"; } description "Reference to the vc id of a pseudowire in oper data tree."; } typedef pw-group-id-type { type uint32; description "An administrative identification mechanism for grouping a set of service-specific pseudo-wire services. May only have local significance."; reference "CISCO-IETF-PW-TC-MIB"; } typedef pw-vc-id-type { type uint32; description "Virtual Circuit Identifier. Used to identify the VC (together with some other fields) in the signaling session. Zero if the VC is set-up manually."; reference "CISCO-IETF-PW-TC-MIB"; } typedef pw-vc-index-type { type uint32; description "Virtual Circuit Index. Locally unique index for indexing MIB tables associated with a particular VC."; } typedef pw-oper-state-type { type enumeration { enum "up" { value 1; description "Pseudowire is established, i.e., it is operational and available to carry packets"; } enum "down" { value 2; description "Pseudowire is idle, i.e., it is administratively up but network connectivity with the neighbor is not established"; } enum "cold-standby" { value 3; description "Pseudowire can take over traffic for another pseudowire"; } enum "hot-standby" { value 4; description "Pseudowire is available to immediately take over traffic from another pseudowire"; } enum "recovering" { value 5; description "Pseudowire was previously in active state and is in the process of being restored to active state"; } enum "no-hardware" { value 6; description "Pseudowire no longer has the required hardware resources to be able to offer packet service to the system"; } enum "unresolved" { value 7; description "Pseudowire is not completely provisioned"; } enum "provisioned" { value 8; description "Pseudowire has received local configuration"; } enum "remote-standby" { value 9; description "Pseudowire neighbor has sent its pseudowire binding information"; } enum "local-ready" { value 10; description "Pseudowire is provisioned, got a local label, and its local binding has been sent to the neighbor"; } enum "all-ready" { value 11; description "Pseudowire is locally provisioned, local binding has been sent, and remote binding was received from the neighbor"; } } description "Indicates the operational status of the PW VC"; } grouping pw-backup-delay-config { description "Specifies whether or how long it should wait before backup is disabled when primary pseudowire comes back up"; leaf switchover-timer { type uint8 { range "0..120"; } description "Specifies how long the backup pseudowire should wait before taking over"; } choice restore-timer-or-never { description "Restore timer configuration options."; leaf timer { type uint8 { range "0..180"; } description "Specifies how long the primary pseudowire should wait after it becomes active to take over for the backup pseudowire"; } leaf never { type boolean; default "false"; description "The primary pseudowire never takes over for the backup"; } } // choice restore-timer-or-never } // grouping pw-backup-delay-config grouping pw-oper-ref-keys { description "Pseudowire oper keys. These leaves can uniquely identify a pseudowire instance in the oper data tree."; leaf vc-peer-address { type pw-oper-vc-peer-addr-ref; description "Reference to peer ip address of a pseudowire instance."; } leaf vc-id { type pw-oper-vc-id-ref; description "Reference to vc-id of a pseudowire instance."; } } // grouping pw-oper-ref-keys grouping pw-class-template-config { description "Pseudowire parameters that can be configured on a template or a class to be shared among several pseudowires, although these can also be configured for one pseudowire, typically on a pseudowire interface. Hence they do not include any instance specific information."; leaf encapsulation { type identityref { base pw-encapsulation-type; } description "Encapsulation used for PW"; } leaf control-word { when "../encapsulation = 'pw-encap-mpls'" { description "Pseudowire encapsulation must be of mpls type to enable control word in MPLS pseudowire header."; } type boolean; description "Use control word in the MPLS PW header."; } leaf signaling-protocol { type identityref { base pw-signaling-protocol-type; } description "Signaling protocol to use."; } container load-balance { if-feature pw-load-balancing; description "Load balancing mechanism."; choice flow { if-feature pw-class-flow-setting; default "ethernet"; description "Load-balancing options for a pseudowire."; leaf ethernet { type identityref { base pw-lb-ethernet-type; } default "pw-lb-eth-src-dst-mac"; description "Ethernet mac address based load balancing"; } leaf ip { type identityref { base pw-lb-ip-type; } description "IP address based load balancing"; } } // choice flow container flow-label { description "Enable Flow Aware Label (FAT) PW - the capability to carry flow label on PW"; leaf direction { type enumeration { enum "transmit" { value 1; description "TODO"; } enum "receive" { value 2; description "TODO"; } enum "both" { value 3; description "TODO"; } } description "Directions to enable Flow Aware Label PW"; } leaf tlv-code-17 { if-feature flow-label-tlv-code17; type boolean; description "Carry code 0x17 as Flow Aware Label (FAT) PW signalled sub-tlv id"; } leaf static { if-feature flow-label-static-config; type boolean; default "false"; description "Use statically configured flow label on traffic flowing on the PW"; } } // container flow-label } // container load-balance container preferred-path { if-feature pw-preferred-path; description "Preferred path for the PW"; choice path { description "Choice of tunnel interface or peer"; leaf interface { type if:interface-ref; description "Reference to a tunnel interface."; } case address { if-feature preferred-path-peer; leaf address { type inet:ip-address; description "TODO"; } } // case address case hostname { if-feature preferred-path-peer; leaf hostname { type string; description "TODO"; } } // case hostname } // choice path leaf disable-fallback { type boolean; description "Disable fall back to alternative route"; } } // container preferred-path container sequencing { if-feature pw-sequencing; description "Sequencing options"; leaf direction { type identityref { base pw-sequencing-type; } description "TODO"; } leaf resync { type int32 { range "5..65535"; } description "TODO"; } } // container sequencing leaf vc-type { type identityref { base pw-vc-type; } description "Type of VC in the PW."; } leaf switching-tlv { type boolean; description "Send switching TLV"; } container vccv { if-feature pw-vccv; description "VCCV configuration"; leaf control-word { type boolean; description "Enable VCCV verification type"; } } // container vccv container switchover-delay { if-feature pw-class-switchover-delay; description "Timer configuration related to pseudowire redundancy switchover and restoring to primary"; uses pw-backup-delay-config; } // container switchover-delay leaf source-ip { if-feature pw-class-source-ip; type inet:ipv4-address; description "The local source IPv4 address"; } leaf tag-rewrite-ingress-vlan { if-feature pw-class-tag-rewrite; type uint16 { range "1..4094"; } description "Configure ingress tag rewrite vlan."; } leaf mac-withdraw { if-feature pw-mac-withdraw-config; type boolean; default "false"; description "Send Mac-withdraw message when PW becomes active."; } container status { description "TODO"; leaf decoupled { if-feature pw-class-status; type boolean; default "false"; description "Reflect standby status of the attachment circuit as up on the pseudowire."; } leaf disable { if-feature pw-class-status; type boolean; default "false"; description "Do not send pseudowire status to peer."; } leaf peer-topo-dual-homed { type boolean; description "Our peer(s) are participating in a redundant solution with some form of redundancy protocol running between the peer routers. Only one of the remote peers will advertise a status of UP at a time. The other will advertise standby. Change our configuration so we can send a status of UP on both active and redundant pseudowires."; } leaf route-watch-disable { if-feature pw-class-status; type boolean; default "false"; description "Disable listening for routing events to trigger redundancy status changes"; } leaf redundancy-master { if-feature pw-class-status; type boolean; default "false"; description "Make the PE as master to enables Pseudowire Preferential Forwarding feature to display the status of the active and backup pseudowires."; } } // container status } // grouping pw-class-template-config grouping pw-neighbor-base-config { description "Basic configuration parameters to identify a pseudowire and used by all variation of pseudowire configuration formats."; leaf neighbor-ip-address { type inet:ip-address; description "IPv4 or IPv6 address of the neighbor."; } leaf vc-id { type uint32 { range "1..4294967295"; } description "Pseudowire VC ID"; } } // grouping pw-neighbor-base-config grouping pw-static-label-config { description "Statically configured labels used by PW"; leaf local-label { type uint32 { range "16..1048575"; } description "Local MPLS label ID"; } leaf remote-label { type uint32 { range "16..1048575"; } description "Remote MPLS label ID"; } } // grouping pw-static-label-config grouping pw-neighbor-config { description "Pseudowire configuration using neighbor address, VC ID and other parameters. Directly configurable under the service; which is a variation to pseudowire interface configuration."; uses pw-neighbor-base-config { description "Pseudowire neighbor-ip and vc-id config"; } container static-label { if-feature static-label-direct-config; description "Statically configured labels, signalling should be none"; uses pw-static-label-config; } // container static-label choice pw-class-or-specs { description "Inherit attributes from a pseudowire class or provide configuration"; leaf pw-class-template { type pw-template-ref; description "Reference to a pseudowire template"; } case specs { leaf encap-type { if-feature pw-short-config; type identityref { base pw-encapsulation-type; } description "Encapsulation configuration for this neighbor"; } leaf tag-impose-vlan { if-feature pw-tag-impose-vlan-id; type uint16 { range "1..4094"; } description "Specify a tag for a VLAN ID for the pseudowire"; } leaf source-ipv6 { if-feature pw-ipv6-source; type inet:ipv6-address; description "The local source IPv6 address. Note this should only be configured when neighbor address is IPv6 type"; } } // case specs } // choice pw-class-or-specs } // grouping pw-neighbor-config grouping pw-backup-neighbor-config { description "Backup pseudowire configuration using neighbor address, VC ID and other limited choice of parameters. This is usually associated with an active pseudowire neighbor."; uses pw-neighbor-base-config { description "Pseudowire neighbor-ip and vc-id config"; } leaf pw-class-template { type pw-template-ref; description "Reference to a pseudowire template"; } } // grouping pw-backup-neighbor-config grouping pw-intf-or-pw-neighbor-config { description "Pseudowire configuration representation that can be either configured with a pseudowire interface or a pseudowire neighbor entity - PW-NEIGHBOR - a combination of pseudowire neighbor address, VC ID and possibly other parameters."; choice pw-intf-or-pw-neighbor { mandatory true; description "Pseudowire configuration options."; leaf pw-intf { if-feature pw-interface; type if:interface-ref; must "/if:interfaces/if:interface/if:type= 'ifPwType'" { description "Must be a pseudowire interface."; } description "This is the reference to a pseudowire interface"; } container pw-neighbor { description "This is the reference to a psuedowire using specifications of a neighbor address, a VC ID and other parameters"; uses pw-neighbor-config; } // container pw-neighbor } // choice pw-intf-or-pw-neighbor } // grouping pw-intf-or-pw-neighbor-config container pseudowire-config { description "Pseudowire configuration data."; container global { description "Global configurations related to pseudowires."; leaf pw-grouping { if-feature pw-grouping-config; type boolean; default "false"; description "Enable pw-grouping. When pseudowires (PW) are established, each PW is assigned a group ID that is common for all PWs created from the same physical port. Hence, when the physical port becomes non-functional or is deleted, L2VPN sends a single message to advertise the status change of all PWs belonging to the group. A single L2VPN signal thus avoids a lot of processing and loss in reactivity."; reference "RFC 4447"; } leaf pw-oam-refresh-transmit { if-feature pw-oam-refresh-config; type uint32 { range "1..4095"; } description "Set pseudowire oam transmit refresh time (in seconds)"; } leaf pw-status { if-feature pw-status-config; type boolean; description "Enable pw-status"; } leaf predictive-redundancy { if-feature predictive-redundancy-config; type boolean; description "Enable predictive redundancy"; } leaf vc-state-notification-enabled { type boolean; description "If this leaf is set to true, then it enables the emission of 'vc-state-notification'; otherwise these notifications are not emitted."; reference "CISCO-IETF-PW-MIB"; } leaf vc-state-notification-batch-size { type uint32; description "'vc-state-notification' allows batching of pseudowires in order to reduce number of notifications generated from the device. All pseudowires in a batched notification MUST share same state at the same time. This leaf defines the maximum number of VCs that can be batched in vc-state-notification."; } leaf vc-state-notification-rate { type uint32; description "This leaf defines the maximum number of VC state change notifications that can be emitted from the device per second."; reference "CISCO-IETF-PW-MIB"; } } // container global container pw-templates { description "Contains list of all pw-template definitions. Also called PW Class (XR) and Port Profile (NX-OS)"; list pw-template { key "name"; description "Pseudowire template list."; leaf name { type string; description "PW Template name."; } uses pw-class-template-config { description "Pseudowire class template configurations."; } container port-profile-spec { if-feature pw-port-profiles; description "Pseudowire port profile configurations."; leaf description { type string; description "Description string for the port profile"; } leaf shutdown { type boolean; default "false"; description "Shut down this template"; } leaf shut-force { type boolean; default "false"; description "Force shut down this port profile"; } leaf mtu { type uint32; description "MTU of the port"; } leaf max-ports { type uint16 { range "1..16384"; } description "Maximum number of ports"; } leaf enabled { type boolean; default "false"; description "Enable this port profile"; } } // container port-profile-spec } // list pw-template } // container pw-templates container pw-static-oam-classes { if-feature pw-static-oam-config; description "List of pseudowire static oam classes."; list pw-static-oam-class { key "name"; description "Pseudowire static oam class configuration"; leaf name { type string; description "OAM class name"; } leaf ack { type boolean; description "Enable ack"; } leaf keepalive { type uint32 { range "1..4095"; } default "600"; description "Keepalive in seconds"; } leaf timeout-refresh-send { type uint32 { range "1..4095"; } default "30"; description "Refresh timeout in seconds"; } leaf timeout-refresh-ack { type uint32 { range "1..4095"; } default "600"; description "Ack timeout in seconds"; } } // list pw-static-oam-class } // container pw-static-oam-classes } // container pseudowire-config augment /if:interfaces/if:interface { when "if:type = 'ifPwType'" { description "Only applicable for L2VPN pseudowires."; } description "Pseudowire-specific interface configuration"; container pw-neighbor { if-feature pw-interface; description "Pseudowire neighbor configurations."; uses pw-neighbor-base-config { description "Pseudowire neighbor-ip and vc-id config"; } container static-label { description "Statically configured labels, signalling should be none"; uses pw-static-label-config; } // container static-label leaf source-template { type pw-template-ref; description "Specify template for PW configuration"; } uses pw-class-template-config { description "This configuration can be used to specify parameters in addition to the template specified by'source-template' node. In case of conflict, parameters in the template have higher precedence."; } } // container pw-neighbor } container pseudowire-state { config false; description "Contains the operational state for all the pseudowire instances in the switch, no matter what L2VPN service created them."; list pseudowires { key "vc-peer-address vc-id vc-owner-type vc-name vc-index"; description "Each list element contains the state for a pseudowire instance. The list can be optionally keyed by any combination of vc-id, peer-address, etc. Additional filtering of the list by the agent may be performed upon request by the client using subtree filtering as described in RFC 6020 Section 6."; leaf vc-type { type identityref { base pw-vc-type; } description "Indicates the service to be carried over this VC"; } leaf vc-owner-type { type enumeration { enum "vpws" { value 1; description "Created under VPWS context"; } enum "vpls-vfi" { value 2; description "Created under VFI context"; } enum "vpls-bridge-domain" { value 3; description "Created under bridge domain context"; } enum "interface" { value 4; description "Created by manual pseudowire interface configuration"; } } description "Indicates the service responsible for establishing this VC"; } leaf vc-owner-name { type string; description "Name of the L2VPN service instance that created the pseudowire VC"; } leaf vc-psn-type { type enumeration { enum "mpls" { value 1; description "MPLS encapsulation"; } enum "l2tp" { value 2; description "L2TP encapsulation"; } enum "ip" { value 3; description "IP core"; } enum "mpls-over-ip" { value 4; description "MPLS encapsulation over IP core"; } enum "gre" { value 5; description "GRE encapsulation"; } enum "other" { value 6; description "Some other encapsulation"; } } description "Indicates the type of packet-switched network that carries this VC"; } leaf vc-peer-address { type inet:ip-address; description "This object contains the value of the peer node address of the PW/PE protocol entity"; } leaf vc-id { type pw-vc-id-type; description "Used to distinguish between pseudowires going to the same peer node"; } leaf vc-index { type pw-vc-index-type; description "Locally-unique ID within the device for this pseudowire"; } leaf vc-local-group-id { type pw-group-id-type; description "Used to identify which local pseudowire group this pseudowire belongs to"; } leaf vc-control-word { type boolean; description "Indicates if the control word is sent with each packet by the local node"; } leaf vc-local-if-mtu { type uint32; description "If not zero, this represents the locally supported MTU size over the interface (or the virtual interface) associated with the VC"; } leaf vc-remote-group-id { type pw-group-id-type; description "If not zero, indicates the pseudowire group to which this pseudowire belongs on the peer node"; } leaf vc-remote-control-word { type enumeration { enum "noControlWord" { value 1; description "Peer sends control word"; } enum "withControlWord" { value 2; description "Peer does not send control word"; } enum "notYetKnown" { value 3; description "Have not received indication yet if peer sends control word"; } } description "Indicates whether MPLS control words are used by the pseudowire PSN service"; } leaf vc-remote-if-mtu { type uint32; description "The remote interface MTU as (optionally) received from the remote node via the signaling protocol. Should be zero if this parameter is not available or not used"; } leaf vc-outbound-label { type uint32; description "The VC label used in the outbound direction (i.e. toward the PSN). Example: for MPLS PSN, it represents the 20 bits of VC tag, for L2TP it represent the 32 bits Session ID. If the label is not yet known (signaling in procesS), the object should return a value of 0xFFFFFFFF."; } leaf vc-inbound-label { type uint32; description "The VC label used in the inbound direction (i.e. packets received from the PSN). Example: for MPLS PSN, it represents the 20 bits of VC tag, for L2TP it represents the 32 bits Session ID. If the label is not yet known (signaling in process), the object should return a value of 0xFFFFFFFF."; } leaf vc-name { type string; description "The canonical name assigned to the VC. The name may be autogenerated by the device; this Yang model does not currently support direct configuration of this name."; } leaf vc-oper-status { type pw-oper-state-type; description "Indicates the actual combined operational status of this VC. It is 'up' if both vc-inbound-oper-status and vc-outbound-oper-status are in 'up' state. For all other values, if the VCs in both directions are of the same value it reflects that value, otherwise it is set to the most severe status out of the two statuses. The order of severance from most severe to less severe is: unknown, notPresent, down, lowerLayerDown, dormant, testing, up. The operator may consult the per direction oper-status for fault isolation per direction."; } leaf vc-inbound-oper-status { type pw-oper-state-type; description "Indicates the actual operational status of this VC in the inbound direction"; } leaf vc-outbound-oper-status { type pw-oper-state-type; description "Indicates the actual operational status of this VC in the outbound direction"; } container statistics { description "A collection of pseudowire-related statistics objects"; leaf vc-create-time { type yang:timestamp; description "System time when this VC was created"; } leaf vc-up-time { type yang:timeticks; description "Number of consecutive ticks this VC has been 'up' in both directions together"; } leaf discontinuity-time { type yang:date-and-time; mandatory true; description "The time on the most recent occasion at which any of this pseudowire's counters sufferred 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 this pseudowire. 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'."; } leaf in-pkts { type yang:counter64; description "The total number of packets received on this pseudowire. 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'."; } leaf in-errors { type yang:counter64; description "The total number of inbound packets that contained 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'."; } leaf out-octets { type yang:counter64; description "The total number of octets sent on this pseudowire. 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'."; } leaf out-pkts { type yang:counter64; description "The total number of packets sent on this pseudowire. 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'."; } leaf out-errors { type yang:counter64; description "The total number of outbound packets that could not be sent on this pseudowire. 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'."; } } // container statistics } // list pseudowires } // container pseudowire-state augment /if:interfaces-state/if:interface { when "if:type = 'ifPwType'" { description "Only applicable for L2VPN pseudowires"; } description "Adds additional state to standard interface state"; container pseudowire { description "Pseudowire-specific interface operational state"; uses pw-neighbor-base-config { description "Pseudowire neighbor-ip and vc-id config"; } } // container pseudowire } notification vc-up-notification { description "This notification is generated when the 'vc-oper-status' leaf for one or more VC are about to enter the 'up' state from some other state. Multiple VCs that changed 'up' state can be combined into single notification. Maximum batch-size of each notification is defined by 'vc-state-notification-batch-size' leaf. If number of eligible VCs are more than batch-size then additional notifications should be generated."; reference "CISCO-IETF-PW-MIB cpwVcUp notification."; list vc-list { description "List of VCs that moved to 'up' state"; uses l2vpn-pw:pw-oper-ref-keys { description "Pseudowire oper keys. These leaves can uniquely identify a pseudowire instance in the pseudowire oper data tree."; } } // list vc-list } // notification vc-up-notification notification vc-down-notification { description "This notification is generated when the 'vc-oper-status' leaf for one or more VC are about to enter the 'down' state from some other state. Multiple VCs that changed 'down' state can be combined into single notification. Maximum batch-size of each notification is defined by 'vc-state-notification-batch-size' leaf. If number of eligible VCs are more than batch-size then additional notifications should be generated."; reference "CISCO-IETF-PW-MIB cpwVcDown notification."; list vc-list { description "List of VCs that moved to 'down' state"; uses l2vpn-pw:pw-oper-ref-keys { description "Pseudowire oper keys. These leaves can uniquely identify a pseudowire instance in the pseudowire oper data tree."; } } // list vc-list } // notification vc-down-notification } // module cisco-pw
© 2023 YumaWorks, Inc. All rights reserved.