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";
        }
    
        grouping outgoing-interface-info {
          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
        }  // grouping outgoing-interface-info
    
        grouping outgoing-label-info {
          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
        }  // grouping outgoing-label-info
    
        grouping connection-info {
          description "Connection information";
          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
        }  // grouping connection-info
    
        grouping forwarding-next-hop {
          description
            "Forwarding 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
        }  // grouping forwarding-next-hop
    
        grouping local-label-forwarding-info {
          description
            "Information of a given forwarding path";
          container outgoing-interface {
            description
              "Outgoing interface information";
            uses mpls-forwarding-ios-xe-oper:outgoing-interface-info;
          }  // container outgoing-interface
    
          container outgoing-label {
            description
              "Outgoing label information";
            uses mpls-forwarding-ios-xe-oper:outgoing-label-info;
          }  // container outgoing-label
    
          container next-hop {
            description "Next hop information";
            uses mpls-forwarding-ios-xe-oper:forwarding-next-hop;
          }  // container next-hop
        }  // grouping local-label-forwarding-info
    
        grouping local-label-entry {
          description "Local label entry";
          container connection-information {
            description
              "Connection information for the local label";
            uses mpls-forwarding-ios-xe-oper:connection-info;
          }  // container connection-information
    
          list forwarding-paths {
            description
              "ECMP paths for the local label";
            uses mpls-forwarding-ios-xe-oper:local-label-forwarding-info;
          }  // list forwarding-paths
        }  // grouping local-label-entry
    
        grouping local-label-key {
          description "Key for the local label";
          leaf local-label {
            type uint32;
            description "Value of local label";
          }
        }  // grouping local-label-key
    
        grouping local-label-forwarding-path-statistics {
          description
            "Statistics for the forwarding path";
          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";
          }
        }  // grouping local-label-forwarding-path-statistics
    
        grouping local-label-forwarding-path-key {
          description
            "Key for the forwarding path";
          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";
          }
        }  // grouping local-label-forwarding-path-key
    
        grouping ecmp-local-label-entry {
          description "Details of an ECMP path";
          container connection-information {
            description
              "Connection information for a local label";
            uses mpls-forwarding-ios-xe-oper:connection-info;
          }  // container connection-information
    
          container outgoing-interface {
            description
              "Outgoing interface information";
            uses mpls-forwarding-ios-xe-oper:outgoing-interface-info;
          }  // container outgoing-interface
    
          container outgoing-label {
            description
              "Outgoing label information";
            uses mpls-forwarding-ios-xe-oper:outgoing-label-info;
          }  // container outgoing-label
    
          container next-hop {
            description "Next hop information";
            uses mpls-forwarding-ios-xe-oper:forwarding-next-hop;
          }  // container next-hop
    
          container label-stats {
            description "Statistics of a label";
            uses mpls-forwarding-ios-xe-oper:local-label-forwarding-path-statistics;
          }  // container label-stats
        }  // grouping ecmp-local-label-entry
    
        grouping ecmp-index-key {
          description "Key for an ECMP path";
          leaf ecmp-idx {
            type uint64;
            description "Number of an ECMP path";
          }
        }  // grouping ecmp-index-key
    
        grouping ecmp-stats-summary {
          description
            "Total data of all the 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";
          }
        }  // grouping ecmp-stats-summary
    
        grouping ecmp-stats {
          description
            "Statistics of all the ECMP paths for a label";
          container stats-summary {
            description
              "Total number of bytes and packets switched of all ECMP paths for a label";
            uses mpls-forwarding-ios-xe-oper:ecmp-stats-summary;
          }  // container stats-summary
    
          list ecmp-index {
            key "ecmp-idx";
            description
              "Reference to the index of a ECMP path";
            uses mpls-forwarding-ios-xe-oper:ecmp-index-key;
    
            uses mpls-forwarding-ios-xe-oper:ecmp-local-label-entry;
          }  // list ecmp-index
        }  // grouping ecmp-stats
    
        container mpls-forwarding-oper-data {
          config false;
          description
            "MPLS forwarding operational data";
          list mpls-local-label {
            key "local-label";
            description
              "Local label information";
            uses mpls-forwarding-ios-xe-oper:local-label-key;
    
            uses mpls-forwarding-ios-xe-oper:local-label-entry;
          }  // list mpls-local-label
    
          list mpls-local-label-statistics {
            key "local-label forwarding-path-index";
            description
              "Statistics for forwarding paths of the local labels";
            uses mpls-forwarding-ios-xe-oper:local-label-forwarding-path-key;
    
            uses mpls-forwarding-ios-xe-oper:local-label-forwarding-path-statistics;
          }  // list mpls-local-label-statistics
    
          list ecmp-local-label {
            key "local-label";
            description "Native MPLS MFI model";
            uses mpls-forwarding-ios-xe-oper:local-label-key;
    
            uses mpls-forwarding-ios-xe-oper:ecmp-stats;
          }  // list ecmp-local-label
        }  // container mpls-forwarding-oper-data
      }  // module Cisco-IOS-XE-mpls-forwarding-oper
    

© 2023 YumaWorks, Inc. All rights reserved.