This module contains a collection of YANG definitions for mpls forwarding operational data. Copyright (c) 2018-2019 by Cisco Sys...
Version: 2020-03-01
module Cisco-IOS-XE-mpls-forwarding-oper { yang-version 1; namespace "http://cisco.com/ns/yang/Cisco-IOS-XE-mpls-forwarding-oper"; prefix mpls-forwarding-ios-xe-oper; import ietf-inet-types { prefix inet; } import ietf-yang-types { prefix yang; } import cisco-semver { prefix cisco-semver; } 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 module contains a collection of YANG definitions for mpls forwarding operational data. Copyright (c) 2018-2019 by Cisco Systems, Inc. All rights reserved."; revision "2020-03-01" { description "Added new model for MPLS MFI"; reference "1.3.0"; } revision "2019-05-01" { description "Added semantic version"; reference "1.2.0"; } revision "2018-10-29" { description "Cleaned up spelling errors in descriptions."; reference "1.1.0"; } revision "2017-11-01" { description "Initial revision"; reference "1.0.0"; } cisco-semver:module-version "1.3.0"; cisco-semver:module-version "1.2.0"; cisco-semver:module-version "1.1.0"; cisco-semver:module-version "1.0.0"; typedef outgoing-interface-type { type enumeration { enum "drop" { value 0; description "Outgoing interface is not found"; } enum "punt" { value 1; description "Punt packets to cpu"; } enum "aggregate" { value 2; description "Aggregate interface (e.g., used for VPN label allocation)"; } enum "exception" { value 3; description "Exception"; } enum "none" { value 4; description "No outgoing interface"; } } description "Describes supported outgoing interface types"; } typedef outgoing-interface-description-type { type enumeration { enum "interface-type" { value 0; description "Forwarding path's outgoing interface type"; } enum "interface-value" { value 1; description "Forwarding path's outgoing interface value"; } } description "Describes outgoing interface information types"; } typedef outgoing-label-type { type enumeration { enum "no-label" { value 0; description "A label is not present"; } enum "pop-label" { value 1; description "Label is popped"; } enum "ipv4-explicit-null" { value 2; description "IPv4 explicit NULL label is present"; } enum "ipv6-explicit-null" { value 3; description "IPv6 explicit NULL label is present"; } enum "regular-label" { value 4; description "A regular MPLS label is present"; } enum "invalid-label" { value 5; description "An invalid label is present"; } } description "Describes supported outgoing label types"; } typedef connection-info-type { type enumeration { enum "information-string" { value 0; description "Connection information string"; } enum "ip-prefix" { value 1; description "IP prefix for the connection"; } } description "Describes connection information types"; } typedef forwarding-next-hop-type { type enumeration { enum "point2point" { value 0; description "Next hop is via a P2P link"; } enum "next-hop-ip-address" { value 1; description "Next hop IP address"; } enum "next-hop-mac-address" { value 2; description "Next hop MAC address"; } } description "Describes supported next hop types"; } container mpls-forwarding-oper-data { config false; description "MPLS forwarding operational data"; list mpls-local-label { key "local-label"; description "Local label information"; leaf local-label { type uint32; description "Value of local label"; } container connection-information { description "Connection information for the local label"; choice discrim-choice { description "Type of connection information"; leaf info-str { type string; description "Connection information string"; } leaf ip-prefix { type inet:ip-prefix; description "IP prefix for the connection"; } } // choice discrim-choice } // container connection-information list forwarding-paths { description "ECMP paths for the local label"; container outgoing-interface { description "Outgoing interface information"; choice discrim-choice { description "Type of interface information"; leaf interface-type { type outgoing-interface-type; description "Outgoing interface type"; } leaf interface-value { type string; description "Outgoing interface value"; } } // choice discrim-choice } // container outgoing-interface container outgoing-label { description "Outgoing label information"; choice discrim-choice { description "Type of label"; leaf no-label { type boolean; description "True if a label is not present"; } leaf pop-label { type uint32; description "Pop label value"; } leaf ipv4-explicit-null { type uint32; description "IPv4 explicit null label value"; } leaf ipv6-explicit-null { type uint32; description "IPv6 explicit null label value"; } leaf regular-label { type uint32; description "Regular label value"; } leaf invalid-label { type boolean; description "True if a label with a value that is outside IETF acceptable label range is present"; } } // choice discrim-choice } // container outgoing-label container next-hop { description "Next hop information"; choice discrim-choice { description "Next hop type"; leaf p2p { type boolean; description "True if next hop is via a p2p link"; } leaf ip-address { type inet:ip-address; description "Next hop ip address"; } leaf mac-address { type yang:mac-address; description "Next hop mac address"; } } // choice discrim-choice } // container next-hop } // list forwarding-paths } // list mpls-local-label list mpls-local-label-statistics { key "local-label forwarding-path-index"; description "Statistics for forwarding paths of the local labels"; leaf local-label { type uint32; description "Value of local label"; } leaf forwarding-path-index { type uint8; description "Path index among ECMP paths for the same local label"; } leaf label-switched-bytes { type uint64; description "Number of bytes switched to a particular ECMP path"; } leaf label-switched-packets { type uint64; description "Number of packets switched to a particular ECMP path"; } } // list mpls-local-label-statistics list ecmp-local-label { key "local-label"; description "Native MPLS MFI model"; leaf local-label { type uint32; description "Value of local label"; } container stats-summary { description "Total number of bytes and packets switched of all ECMP paths for a label"; leaf total-label-switched-bytes { type uint64; units "bytes"; description "Total number of bytes switched of all ECMP paths for a label"; } leaf total-label-switched-packets { type uint64; units "packets"; description "Total number of packets switched of all ECMP paths for a label"; } } // container stats-summary list ecmp-index { key "ecmp-idx"; description "Reference to the index of a ECMP path"; leaf ecmp-idx { type uint64; description "Number of an ECMP path"; } container connection-information { description "Connection information for a local label"; choice discrim-choice { description "Type of connection information"; leaf info-str { type string; description "Connection information string"; } leaf ip-prefix { type inet:ip-prefix; description "IP prefix for the connection"; } } // choice discrim-choice } // container connection-information container outgoing-interface { description "Outgoing interface information"; choice discrim-choice { description "Type of interface information"; leaf interface-type { type outgoing-interface-type; description "Outgoing interface type"; } leaf interface-value { type string; description "Outgoing interface value"; } } // choice discrim-choice } // container outgoing-interface container outgoing-label { description "Outgoing label information"; choice discrim-choice { description "Type of label"; leaf no-label { type boolean; description "True if a label is not present"; } leaf pop-label { type uint32; description "Pop label value"; } leaf ipv4-explicit-null { type uint32; description "IPv4 explicit null label value"; } leaf ipv6-explicit-null { type uint32; description "IPv6 explicit null label value"; } leaf regular-label { type uint32; description "Regular label value"; } leaf invalid-label { type boolean; description "True if a label with a value that is outside IETF acceptable label range is present"; } } // choice discrim-choice } // container outgoing-label container next-hop { description "Next hop information"; choice discrim-choice { description "Next hop type"; leaf p2p { type boolean; description "True if next hop is via a p2p link"; } leaf ip-address { type inet:ip-address; description "Next hop ip address"; } leaf mac-address { type yang:mac-address; description "Next hop mac address"; } } // choice discrim-choice } // container next-hop container label-stats { description "Statistics of a label"; leaf label-switched-bytes { type uint64; description "Number of bytes switched to a particular ECMP path"; } leaf label-switched-packets { type uint64; description "Number of packets switched to a particular ECMP path"; } } // container label-stats } // list ecmp-index } // list ecmp-local-label } // container mpls-forwarding-oper-data } // module Cisco-IOS-XE-mpls-forwarding-oper
© 2023 YumaWorks, Inc. All rights reserved.