Cisco-IOS-XE-mpls-forwarding-oper

This module contains a collection of YANG definitions for mpls forwarding operational data. Copyright (c) 2018-2019 by Cisco Sys...

  • Version: 2020-03-01

    Cisco-IOS-XE-mpls-forwarding-oper@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.