openconfig-programming-errors

This module provides detailed information about the hardware programming state of various types of routes within a particular ne...

  • Version: 2022-10-11

    openconfig-programming-errors@2022-10-11


    
      module openconfig-programming-errors {
    
        yang-version 1;
    
        namespace
          "http://openconfig.net/yang/programming-errors";
    
        prefix oc-pgrmerrs;
    
        import openconfig-extensions {
          prefix oc-ext;
        }
        import openconfig-inet-types {
          prefix oc-inet;
        }
        import openconfig-network-instance {
          prefix oc-ni;
        }
        import openconfig-platform {
          prefix oc-platform;
        }
        import openconfig-types {
          prefix oc-types;
        }
        import openconfig-yang-types {
          prefix oc-yang;
        }
    
        organization "OpenConfig working group";
    
        contact
          "OpenConfig working group
        www.openconfig.net";
    
        description
          "This module provides detailed information about the hardware programming
        state of various types of routes within a particular network instance.
        It can be used to track where there are routing hardware programming errors
        on a device.";
    
        revision "2022-10-11" {
          description "Initial revision.";
          reference
            "0.1.0";
    
        }
    
        oc-ext:regexp-posix;
        oc-ext:catalog-organization "openconfig";
        oc-ext:origin "openconfig";
        oc-ext:openconfig-version "0.1.0";
    
        grouping ip-routes-common-config {
          description
            "IP routes hardware programming error common configuration parameters";
          leaf enabled {
            type boolean;
            description
              "This leaf indicates whether IP routes hardware programming error tracking
            is enabled or not";
          }
        }  // grouping ip-routes-common-config
    
        grouping programming-errors-top {
          description
            "Top-level grouping for AFT hardware programming errors in OpenConfig.";
          container programming-errors {
            description
              "Detailed information about the AFT hardware programming state of various types of
            routes within a particular network instance. It can be used to track where there
            are AFT hardware programming errors on a device.";
            container ip-routes {
              description
                "The IP AFT/routes hardware programming status within the network-instance.
              IP Route programming reports are divided into a set of sub-categories:
               - failed programming -- A prefix which is not present in the AFT state is
                 attempted to be added into the hardware but failed.  Traffic destined for
                 this prefix will not be matched.
               - stale programming -- A prefix is already in the AFT is requested to
                 be updated but failed.  Traffic destined for this prefix will be
                 forwarded to the old next-hop.  AFT telemetry should continue to
                 reflect the old next-hop for the prefix.
               - drop programming - these routes are explicitly programmed into hardware
                 to point to a destination that discards packets.
    
              Lifecycle of entries/prefixes in the above 3 containers is tied to AFT
              telemetry data. When the route gets removed from AFT telemetry data
              corresponding entry/prefix will be deleted from above containers as well";
              container config {
                description
                  "IP route hardware programming errors Configuration parameters";
                uses ip-routes-common-config;
              }  // container config
    
              container state {
                config false;
                description
                  "IP route hardware programming errors State parameters";
                leaf total-errors {
                  type oc-yang:counter64;
                  description
                    "Total number of IP route hardware programming errors encountered";
                }
    
                uses ip-routes-common-config;
              }  // container state
    
              container failed-routes {
                config false;
                description
                  "Surrounding container for the list of routes that failed hardware
                programming.";
                list failed {
                  key "prefix";
                  description
                    "A prefix that was attempted to the programmed into hardware, but the
                  programming operation failed.";
                  leaf prefix {
                    type leafref {
                      path "../state/prefix";
                    }
                    description
                      "Reference to the prefix that keys the failed list.";
                  }
    
                  container state {
                    description
                      "Operational state parameters relating to a failed programming
                    operation.";
                    uses route-state-common;
                  }  // container state
                }  // list failed
              }  // container failed-routes
    
              container stale-routes {
                config false;
                description
                  "Surrounding container for the list of routes that are currently in
                a stale state.";
                list stale {
                  key "prefix";
                  description
                    "A prefix that is currently installed in hardware, but a subsequent
                  operation to update its programming failed - such that the entry in
                  hardware is stale.";
                  leaf prefix {
                    type leafref {
                      path "../state/prefix";
                    }
                    description
                      "Reference to the prefix that keys the stale list.";
                  }
    
                  container state {
                    description
                      "Operational state parameters relating to a stale route.";
                    uses route-state-common;
                  }  // container state
                }  // list stale
              }  // container stale-routes
    
              container drop-routes {
                config false;
                description
                  "Surrounding container for the list of routes that are currently in
                a drop state.";
                list drop {
                  key "prefix";
                  description
                    "A prefix that is currently installed in hardware but with an explicit
                  instruction that it should discard packets that are destined towards
                  it.";
                  leaf prefix {
                    type leafref {
                      path "../state/prefix";
                    }
                    description
                      "Reference to the prefix that keys the drop list.";
                  }
    
                  container state {
                    description
                      "Operational state parameters relating to a drop route.";
                    uses route-state-common;
                  }  // container state
                }  // list drop
              }  // container drop-routes
            }  // container ip-routes
          }  // container programming-errors
        }  // grouping programming-errors-top
    
        grouping route-state-common {
          description
            "Common parameters that correspond to a particular route type.";
          leaf prefix {
            type oc-inet:ip-prefix;
            description
              "The IPv4 or IPv6 prefix that the route state corresponds to.";
          }
    
          leaf time {
            type oc-types:timeticks64;
            description
              "Represents the time the hardware route programming state change was
            detected by the monitoring subsystem expressed as nanoseconds since
            the Unix epoch.";
          }
    
          leaf-list dest-component {
            type leafref {
              path "/oc-platform:components/oc-platform:component/oc-platform:name";
            }
            description
              "The destination component for the route hardware programming";
          }
        }  // grouping route-state-common
    
        augment /oc-ni:network-instances/oc-ni:network-instance {
          description
            "Augment the network-instance model with the hardware programming
          errors container.";
          uses programming-errors-top;
        }
      }  // module openconfig-programming-errors
    

© 2023 YumaWorks, Inc. All rights reserved.