netconfcentral logo

ietf-connection-oriented-oam

HTML

ietf-connection-oriented-oam@2018-02-07



  module ietf-connection-oriented-oam {

    yang-version 1.1;

    namespace
      "urn:ietf:params:xml:ns:yang:ietf-connection-oriented-oam";

    prefix co-oam;

    import ietf-yang-types {
      prefix yang;
    }
    import ietf-inet-types {
      prefix inet;
    }
    import ietf-interfaces {
      prefix if;
    }

    organization "IETF LIME Working Group";

    contact
      "WG Web:    http://tools.ietf.org/wg/lime
     WG List:   mailto:lime@ietf.org
     Editor:    Deepak Kumar dekumar@cisco.com
     Editor:    Qin Wu bill.wu@huawei.com
     Editor:    Zitao Wang wangzitao@huawei.com";

    description
      "This YANG module defines the generic configuration,
     statistics and rpc for connection oriented OAM
     to be used within IETF in a protocol independent manner.
     Functional level abstraction is independent
     with YANG modeling. It is assumed that each protocol
     maps corresponding abstracts to its native format.
     Each protocol may extend the YANG model defined
     here to include protocol specific extensions";

    revision "2018-02-07" {
      description
        "Initial revision. - 12 version";
      reference
        "draft-ietf-lime-yang-oam-model";

    }


    feature connectivity-verification {
      description
        "This feature indicates that the server supports
       executing connectivity verification OAM command and
       returning a response. Servers that do not advertise
       this feature will not support executing
       connectivity verification command or rpc model for
       connectivity verification command.";
    }

    feature continuity-check {
      description
        "This feature indicates that the server supports
       executing continuity check OAM command and
       returning a response. Servers that do not advertise
       this feature will not support executing
       continuity check command or rpc model for
       continuity check command.";
    }

    feature traceroute {
      description
        "This feature indicates that the server supports
       executing traceroute OAM command and
       returning a response. Servers that do not advertise
       this feature will not support executing
       traceroute command or rpc model for
       traceroute command.";
    }

    feature mip {
      description
        "This feature indicates that the Maintenance
       Intermediate Point(MIP) needs to be explicit configured";
    }

    identity technology-types {
      base 
      description
        "This is the base identy of technology types which are
       TRILL, MPLS-TP, etc";
    }

    identity command-sub-type {
      base 
      description
        "Defines different rpc command subtypes,
       e.g rfc6905 trill OAM, this is optional for most cases";
    }

    identity on-demand {
      base command-sub-type;
      description
        "On demand activation - indicates that the tool is activated
       manually to detect a specific anomaly.
       On-demand OAM method requires only transient configuration.";
    }

    identity proactive {
      base command-sub-type;
      description
        "Proactive activation - indicates that the tool is activated on a
       continual basis, where messages are sent periodically, and errors
       are detected when a certain number of expected messages are not
       received. Proactive OAM method requires persistent
       configuration.";
    }

    identity name-format {
      base 
      description
        "This defines the name format, IEEE 8021ag CFM defines varying
       styles of names. It is expected name format as an identity ref
       to be extended with new types.";
    }

    identity name-format-null {
      base name-format;
      description
        "Defines name format as null";
    }

    identity identifier-format {
      base 
      description
        "Identifier-format identity can be augmented to define other
       format identifiers used in MEP-ID etc";
    }

    identity identifier-format-integer {
      base identifier-format;
      description
        "Defines identifier-format to be integer";
    }

    identity defect-types {
      base 
      description
        "Defines different defect types, e.g.
       Remote Defect Indication (rdi), loss of continuity";
    }

    identity rdi {
      base defect-types;
      description
        "The Remote Defect Indication (rdi) indicates the
       aggregate health of the remote Maintenance End Points (MEPs).";
    }

    identity remote-mep-defect {
      base defect-types;
      description
        "Indicates that one or more of the remote
       Maintenance End Points(MEPs)is reporting a failure ";
    }

    identity loss-of-continuity {
      base defect-types;
      description
        "If no proactive Continuity Check (CC)
       OAM packets from the source Maintenance End Point
       (MEP) (and in the case of Connectivity
       Verification , this includes the
       requirement to have the expected unique,
       technology dependent source MEP
       identifier) are received within the interval.";
    }

    identity cv-defect {
      base defect-types;
      description
        "This function should support monitoring between
       the Maintenance End Points (MEPs) and,
       in addition, between a MEP and Maintenance Intermediate
       Point (MIP). [RFC6371] highlights, when performing
       Connectivity Verification, the need for the Continuity
       Check and Connectivity Verification (CC-V) messages
       to include unique identification of the MEG that is being
       monitored and the MEP that originated the message.";
    }

    identity invalid-oam-defect {
      base defect-types;
      description
        "Indicates that one or more invalid OAM messages has been
       received and that 3.5 times that OAM message transmission
       interval has not yet expired.";
    }

    identity cross-connect-defect {
      base defect-types;
      description
        "Indicates that one or more cross-connect defect
       (for example, a service ID does not match the VLAN.)
       messages has been received and that 3.5 times that OAM message
       transmission interval has not yet expired.";
    }

    typedef mep-name {
      type string;
      description
        "Generic administrative name for a Maintenance End Point
       (MEP).";
    }

    typedef time-interval {
      type decimal64 {
        fraction-digits 2;
      }
      units "milliseconds";
      description
        "Time interval between packets in milliseconds.
       0 means no packets are sent.";
    }

    typedef md-name-string {
      type string;
      description
        "Generic administrative name for Maintenance Domain (MD).";
    }

    typedef ma-name-string {
      type string;
      description
        "Generic administrative name for an
       Maintenance Association (MA).";
    }

    typedef oam-counter32 {
      type yang:zero-based-counter32;
      description
        "Define 32 bit counter for OAM.";
    }

    typedef md-level {
      type uint32 {
        range "0..255";
      }
      description
        "Maintenance Domain level.  The level may be restricted in
       certain protocols (e.g., protocol in layer 0 to layer 7).";
    }

    grouping maintenance-domain-reference {
      description
        "This grouping uniquely identifies a maintenance domain.";
      leaf maintenance-domain {
        type leafref {
          path
            "/co-oam:domains/co-oam:domain/co-oam:md-name-string";
        }
        description
          "A reference to a specific Maintenance Domain.";
      }
    }  // grouping maintenance-domain-reference

    grouping maintenance-association-reference {
      description
        "This grouping uniquely identifies a
       maintenance association. It consists
       of a maintence-domain-reference and
       a maintenance-association leafref";
      uses maintenance-domain-reference;

      leaf maintenance-association {
        type leafref {
          path
            "/co-oam:domains/co-oam:domain[co-oam:md-name-string "
              + "= current()/../maintenance-domain]/co-oam:mas"
              + "/co-oam:ma/co-oam:ma-name-string";
        }
        description
          "A reference to a specific Maintenance Association.";
      }
    }  // grouping maintenance-association-reference

    grouping maintenance-association-end-point-reference {
      description
        "This grouping uniquely identifies
       a maintenance association. It consists
       of a maintence-association-reference and
       a maintenance-association-end-point leafref";
      uses maintenance-association-reference;

      leaf maintenance-association-end-point {
        type leafref {
          path
            "/co-oam:domains/co-oam:domain[co-oam:md-name-string "
              + "= current()/../maintenance-domain]/co-oam:mas"
              + "/co-oam:ma[co-oam:ma-name-string = "
              + "current()/../maintenance-association]"
              + "/co-oam:mep/co-oam:mep-name";
        }
        description
          "A reference to a specific Maintenance
         association End Point.";
      }
    }  // grouping maintenance-association-end-point-reference

    grouping time-to-live {
      description "Time to Live grouping.";
      leaf ttl {
        type uint8;
        description "Time to Live.";
      }
    }  // grouping time-to-live

    grouping defect-message {
      description "Defect Message.";
      choice defect {
        description
          "Defect Message choices.";
        case defect-null {
          description
            "This is a placeholder when no defect status is needed";
          leaf defect-null {
            type empty;
            description
              "There is no defect to be defined, it will be defined in
             technology specific model.";
          }
        }  // case defect-null

        case defect-code {
          description
            "This is a placeholder to display defect code.";
          leaf defect-code {
            type int32;
            description
              "Defect code is integer value specific to a technology.";
          }
        }  // case defect-code
      }  // choice defect
    }  // grouping defect-message

    grouping mep-address {
      description
        "Grouping for Maintenance End Point(MEP) Address";
      choice mep-address {
        description
          "Maintenance End Point (MEP) Addressing.";
        case mac-address {
          description
            "MAC Address based Maintenance End Point (MEP) Addressing.";
          leaf mac-address {
            type yang:mac-address;
            description "MAC Address.";
          }
        }  // case mac-address

        case ip-address {
          description
            "IP Address based Maintenance End Point(MEP) Addressing.";
          leaf ip-address {
            type inet:ip-address;
            description "IP Address.";
          }
        }  // case ip-address
      }  // choice mep-address
    }  // grouping mep-address

    grouping mip-address {
      description
        "Maintenance Intermediate Point (MIP) Address.";
      choice mip-address {
        description
          "Maintenance Intermediate Point (MIP) Addressing.";
        case mac-address {
          description
            "MAC Address based Maintenance Intermediate
           Point (MIP) Addressing.";
          leaf mac-address {
            type yang:mac-address;
            description
              "MAC Address of Maintenance Intermediate Point";
          }
        }  // case mac-address

        case ip-address {
          description
            "IP Address based Maintenance Intermediate Point(MIP)
           Addressing.";
          leaf ip-address {
            type inet:ip-address;
            description "IP Address.";
          }
        }  // case ip-address
      }  // choice mip-address
    }  // grouping mip-address

    grouping maintenance-domain-id {
      description
        "Grouping containing leaves sufficient to identify
       a Maintenance Domain.";
      leaf technology {
        type identityref {
          base technology-types;
        }
        mandatory true;
        description
          "Defines the technology.";
      }

      leaf md-name-string {
        type md-name-string;
        mandatory true;
        description
          "Defines the generic administrative maintenance domain name.";
      }
    }  // grouping maintenance-domain-id

    grouping md-name {
      description
        "Maintenance Domain (MD) name.";
      leaf md-name-format {
        type identityref {
          base name-format;
        }
        description
          "Maintenance Domain Name format.";
      }

      choice md-name {
        description
          "Maintenance Domain (MD) name.";
        leaf md-name-null {
          when
            "derived-from-or-self(../md-name-format,"
              + "'name-format-null')" {
            description
              "Maintenance Domain (MD) name
               format is equal to null format.";
          }
          type empty;
          description
            "Maintenance Domain (MD) name Null.";
        }
      }  // choice md-name
    }  // grouping md-name

    grouping ma-identifier {
      description
        "Grouping containing leaves sufficient to identify
       an Maintenance Association (MA).";
      leaf ma-name-string {
        type ma-name-string;
        description
          "Maintenance Association (MA) name string.";
      }
    }  // grouping ma-identifier

    grouping ma-name {
      description
        "Maintenance Association (MA) name.";
      leaf ma-name-format {
        type identityref {
          base name-format;
        }
        description
          "Maintenance Association (MA) name format.";
      }

      choice ma-name {
        description
          "Maintenance Association) name(MA).";
        leaf ma-name-null {
          when
            "derived-from-or-self(../ma-name-format, "
              + "'name-format-null')" {
            description
              "Maintenance Association (MA).";
          }
          type empty;
          description "Empty";
        }
      }  // choice ma-name
    }  // grouping ma-name

    grouping mep-id {
      description
        "Maintenance End Point (MEP) ID.";
      choice mep-id {
        default "mep-id-int";
        description
          "Maintenance End Point (MEP) ID.";
        leaf mep-id-int {
          type int32;
          description
            "Maintenance End Point (MEP) ID
             in integer format.";
        }
      }  // choice mep-id

      leaf mep-id-format {
        type identityref {
          base identifier-format;
        }
        description
          "Maintenance End Point (MEP) ID format.";
      }
    }  // grouping mep-id

    grouping mep {
      description
        "Defines elements within the
       Maintenance End Point (MEP).";
      leaf mep-name {
        type mep-name;
        mandatory true;
        description
          "Generic administrative name of the
         Maintenance End Point (MEP).";
      }

      uses mep-id;

      uses mep-address;
    }  // grouping mep

    grouping monitor-stats {
      description
        "grouping for monitoring statistics, this will be augmented
       by others who use this component";
      choice monitor-stats {
        default "monitor-null";
        description
          "Define the monitor stats.";
        case monitor-null {
          description
            "This is a place holder when
           no monitoring statistics is needed";
          leaf monitor-null {
            type empty;
            description
              "There is no monitoring statistics to be defined.";
          }
        }  // case monitor-null
      }  // choice monitor-stats
    }  // grouping monitor-stats

    grouping connectivity-context {
      description
        "Grouping defining the connectivity context for an
       Maintenance Association (MA), for example,
       an LSP for MPLS-TP. This will be
       augmented by each protocol who use this component.";
      choice connectivity-context {
        default "context-null";
        description "Connectivity context.";
        case context-null {
          description
            "This is a place holder when no context is needed.";
          leaf context-null {
            type empty;
            description
              "There is no context to be defined.";
          }
        }  // case context-null
      }  // choice connectivity-context
    }  // grouping connectivity-context

    grouping cos {
      description
        "Grouping for Priority used in transmitted packets,
       for example, in the CoS field in MPLS-TP.";
      leaf cos-id {
        type uint8;
        description
          "Class of Service(CoS) id, this value is used to indicate
         Class of Service information .";
      }
    }  // grouping cos

    grouping mip-grouping {
      description
        "Grouping for Maintenance Intermediate Point(MIP)
       configuration.";
      uses mip-address;
    }  // grouping mip-grouping

    container domains {
      description
        "Contains configuration related data. Within the container
       is list of fault domains. Within each domian has List of
       Maintenance Association (MA).";
      list domain {
        key "technology md-name-string";
        description
          "Define the list of fault Domains within the
         ietf-connection-oriented-oam module.";
        uses maintenance-domain-id;

        uses md-name;

        leaf md-level {
          type md-level;
          description "Define the MD-Level.";
        }

        container mas {
          description
            "This container defines Maintenance Association (MA),
           within that have multiple MA and within MA have
           Maintenance End Point (MEP).";
          list ma {
            key "ma-name-string";
            description
              "Maintenance Association list.";
            uses ma-identifier;

            uses ma-name;

            uses connectivity-context;

            uses cos {
              description
                "Default class of service for this
               Maintenance Association (MA),
               which may be overridden for particular
               Maintenance End Points (MEPs),
               sessions or operations.";
            }

            leaf cc-enable {
              type boolean;
              description
                "Indicate whether the
               Continuity Check (CC) is enabled.";
            }

            list mep {
              key "mep-name";
              description
                "Contain a list of Maintenance End Points (MEPs)";
              uses mep;

              uses cos;

              leaf cc-enable {
                type boolean;
                description
                  "Indicate whether the Continuity Check (CC)is enabled.";
              }

              list session {
                key "session-cookie";
                description
                  "Monitoring session to/from a particular
                 remote Maintenance End Point (MEP).
                 Depending on the protocol, this could represent
                 Continuity Check (CC) messages received from
                 a single remote MEP (if the protocol uses
                 multicast CCs) or a target to which
                 unicast echo request CCs are sent and from which
                 responses are received (if the protocol uses a

                 unicast request/response mechanism).";
                leaf session-cookie {
                  type uint32;
                  description
                    "Cookie to identify different sessions, when there
                   are multiple remote Maintenance End Point(MEP)
                   or multiple sessions tothe same remote MEP.";
                }

                container destination-mep {
                  description
                    "Destination Maintenance End Point(MEP).";
                  uses mep-id;
                }  // container destination-mep

                container destination-mep-address {
                  description
                    "Destination Maintenance End Point (MEP) Address.";
                  uses mep-address;
                }  // container destination-mep-address

                uses cos;
              }  // list session
            }  // list mep

            list mip {
              if-feature mip;
              key "name";
              description
                "List for Maintenance Intermediate Point (MIP).";
              leaf name {
                type string;
                description
                  "Identifier of Maintenance intermediate point";
              }

              leaf interface {
                type if:interface-ref;
                description "Interface";
              }

              uses mip-grouping;
            }  // list mip
          }  // list ma
        }  // container mas
      }  // list domain
    }  // container domains

    notification defect-condition-notification {
      description
        "Upon the defect condition is met, this
       notification is sent";
      leaf technology {
        type identityref {
          base technology-types;
        }
        description "The technology";
      }

      leaf md-name-string {
        type leafref {
          path "/domains/domain/md-name-string";
        }
        mandatory true;
        description
          "Indicate which Maintenance Domain(MD)
         does the defect belong to.";
      }

      leaf ma-name-string {
        type leafref {
          path "/domains/domain/mas/ma/ma-name-string";
        }
        mandatory true;
        description
          "Indicate which Maintenance Association (MA)
         is the defect associated with.";
      }

      leaf mep-name {
        type leafref {
          path "/domains/domain/mas/ma/mep/mep-name";
        }
        description
          "Indicate which Maintenance End Point(MEP)
         is seeing the defect.";
      }

      leaf defect-type {
        type identityref {
          base defect-types;
        }
        description
          "The currently active defects on the specific
         Maintenance End Point (MEP).";
      }

      container generating-mepid {
        description
          "Indicate who is generating the defect (if known). If
         unknown set it as 0.";
        uses mep-id;
      }  // container generating-mepid

      uses defect-message {
        description
          "The defect message to indicate more details.";
      }
    }  // notification defect-condition-notification

    notification defect-cleared-notification {
      description
        "Upon defect cleared is met, this notification is sent";
      leaf technology {
        type identityref {
          base technology-types;
        }
        description "The technology.";
      }

      leaf md-name-string {
        type leafref {
          path "/domains/domain/md-name-string";
        }
        mandatory true;
        description
          "Indicate which Maintenance Domain (MD)
         does the defect belong to";
      }

      leaf ma-name-string {
        type leafref {
          path "/domains/domain/mas/ma/ma-name-string";
        }
        mandatory true;
        description
          "Indicate which Maintenance Association (MA)
         is the defect associated with.";
      }

      leaf mep-name {
        type leafref {
          path "/domains/domain/mas/ma/mep/mep-name";
        }
        description
          "Indicate which Maintenance End Point (MEP)
         is seeing the defect.";
      }

      leaf defect-type {
        type identityref {
          base defect-types;
        }
        description
          "The currently active defects on the
         specific Maintenance End Point (MEP).";
      }

      container generating-mepid {
        description
          "Indicate who is generating the defect (if known). if
         unknown set it as 0.";
        uses mep-id;
      }  // container generating-mepid

      uses defect-message {
        description
          "Defect message to indicate more details.";
      }
    }  // notification defect-cleared-notification

    rpc continuity-check {
      if-feature continuity-check;
      description
        "Generates continuity-check as per RFC7276 Table 4.";
      input {
        leaf technology {
          type identityref {
            base technology-types;
          }
          description "The technology";
        }

        leaf md-name-string {
          type leafref {
            path "/domains/domain/md-name-string";
          }
          mandatory true;
          description
            "Indicate which Maintenance Domain (MD)
           does the defect belong to.";
        }

        leaf md-level {
          type leafref {
            path "/domains/domain/md-level";
          }
          description
            "The maintenance domain level.";
        }

        leaf ma-name-string {
          type leafref {
            path "/domains/domain/mas/ma/ma-name-string";
          }
          mandatory true;
          description
            "Indicate which MA is the defect associated with";
        }

        uses cos;

        uses time-to-live;

        leaf sub-type {
          type identityref {
            base command-sub-type;
          }
          description
            "Defines different command types.";
        }

        leaf source-mep {
          type leafref {
            path "/domains/domain/mas/ma/mep/mep-name";
          }
          description
            "Source Maintenance End Point (MEP).";
        }

        container destination-mep {
          description
            "Destination Maintenance End Point (MEP).";
          uses mep-address;

          uses mep-id {
            description
              "Only applicable if the destination is
             a Maintenance End Point (MEP).";
          }
        }  // container destination-mep

        leaf count {
          type uint32;
          default "3";
          description
            "Number of continuity-check message to be sent.";
        }

        leaf cc-transmit-interval {
          type time-interval;
          description
            "Time interval between echo requests.";
        }

        leaf packet-size {
          type uint32 {
            range "64..10000";
          }
          description
            "Size of continuity-check packets, in octets.";
        }
      }

      output {
        uses monitor-stats {
          description
            "Stats of continuity check.";
        }
      }
    }  // rpc continuity-check

    rpc continuity-verification {
      if-feature connectivity-verification;
      description
        "Generates continuity-verification as per RFC7276 Table 4.";
      input {
        leaf md-name-string {
          type leafref {
            path "/domains/domain/md-name-string";
          }
          mandatory true;
          description
            "Indicate which MD (Maintenance Domain)
           does the defect belong to.";
        }

        leaf md-level {
          type leafref {
            path "/domains/domain/md-level";
          }
          description
            "The maintenance domain level.";
        }

        leaf ma-name-string {
          type leafref {
            path "/domains/domain/mas/ma/ma-name-string";
          }
          mandatory true;
          description
            "Indicate which Maintenance Association (MA)
           is the defect associated with.";
        }

        uses cos;

        uses time-to-live;

        leaf sub-type {
          type identityref {
            base command-sub-type;
          }
          description
            "Defines different command types.";
        }

        leaf source-mep {
          type leafref {
            path "/domains/domain/mas/ma/mep/mep-name";
          }
          description
            "Source Maintenance End Point(MEP).";
        }

        container destination-mep {
          description
            "Destination Maintenance End Point(MEP).";
          uses mep-address;

          uses mep-id {
            description
              "Only applicable if the destination
             is a Maintenance End Point (MEP).";
          }
        }  // container destination-mep

        leaf count {
          type uint32;
          default "3";
          description
            "Number of continuity-verification message to be sent.";
        }

        leaf interval {
          type time-interval;
          description
            "Time interval between echo requests.";
        }

        leaf packet-size {
          type uint32 {
            range "64..10000";
          }
          description
            "Size of continuity-verification packets, in octets";
        }
      }

      output {
        uses monitor-stats {
          description
            "Stats of continuity check.";
        }
      }
    }  // rpc continuity-verification

    rpc traceroute {
      if-feature traceroute;
      description
        "Generates Traceroute or Path Trace and return response.
       Referencing RFC7276 for common Toolset name, for
       MPLS-TP OAM it's Route Tracing, and for TRILL OAM It's
       Path Tracing tool. Starts with TTL of one and increment
       by one at each hop. Untill destination reached or TTL
       reach max value.";
      input {
        leaf md-name-string {
          type leafref {
            path "/domains/domain/md-name-string";
          }
          mandatory true;
          description
            "Indicate which Maintenance Domain (MD)
           does the defect belong to.";
        }

        leaf md-level {
          type leafref {
            path "/domains/domain/md-level";
          }
          description
            "The maintenance domain level.";
        }

        leaf ma-name-string {
          type leafref {
            path "/domains/domain/mas/ma/ma-name-string";
          }
          mandatory true;
          description
            "Indicate which Maintenance Association (MA)
           is the defect associated with.";
        }

        uses cos;

        uses time-to-live;

        leaf command-sub-type {
          type identityref {
            base command-sub-type;
          }
          description
            "Defines different command types.";
        }

        leaf source-mep {
          type leafref {
            path "/domains/domain/mas/ma/mep/mep-name";
          }
          description
            "Source Maintenance End Point (MEP).";
        }

        container destination-mep {
          description
            "Destination Maintenance End Point (MEP).";
          uses mep-address;

          uses mep-id {
            description
              "Only applicable if the destination is a
             Maintenance End Point (MEP).";
          }
        }  // container destination-mep

        leaf count {
          type uint32;
          default "1";
          description
            "Number of traceroute probes to send. In protocols where a
           separate message is sent at each TTL, this is the number
           of packets to be sent at each TTL.";
        }

        leaf interval {
          type time-interval;
          description
            "Time interval between echo requests.";
        }
      }

      output {
        list response {
          key "response-index";
          description "List of response.";
          leaf response-index {
            type uint8;
            description
              "Arbitrary index for the response.  In protocols that
             guarantee there is only a single response at each TTL,
             the TTL can be used as the response index.";
          }

          uses time-to-live;

          container destination-mep {
            description
              "Maintenance End Point (MEP) from
             which the response has been received";
            uses mep-address;

            uses mep-id {
              description
                "Only applicable if the destination is a
               Maintenance End Point (MEP).";
            }
          }  // container destination-mep

          container mip {
            if-feature mip;
            description
              "Maintenance Intermediate Point (MIP)
             responding with traceroute";
            leaf interface {
              type if:interface-ref;
              description
                "Maintenance Intermediate Point (MIP) interface.";
            }

            uses mip-address;
          }  // container mip

          uses monitor-stats {
            description
              "Stats of traceroute.";
          }
        }  // list response
      }
    }  // rpc traceroute
  }  // module ietf-connection-oriented-oam

Summary

  
ietf-connection-oriented-oam  
  
Organization IETF LIME Working Group
  
Module ietf-connection-oriented-oam
Version 2019-04-16
File ietf-connection-oriented-oam@2019-04-16.yang
  
Prefix co-oam
Namespace urn:ietf:params:xml:ns:yang:ietf-connection-oriented-oam
  
Cooked /cookedmodules/ietf-connection-oriented-oam/2019-04-16
YANG /src/ietf-connection-oriented-oam@2019-04-16.yang
XSD /xsd/ietf-connection-oriented-oam@2019-04-16.xsd
  
Abstract This YANG module defines the generic configuration, statistics and RPC for connection-oriented OAM to be used within IETF in a p...
  
Contact
WG Web:    http://datatracker.ietf.org/wg/lime
WG List:   <mailto:lime@ietf.org>
Editor:    Deepak Kumar <dekumar@cisco.com>
Editor:    Qin Wu <bill.wu@huawei.com>
Editor:    Michael Wang <wangzitao@huawei.com>
  
ietf-connection-oriented-oam  
  
Organization IETF LIME Working Group
  
Module ietf-connection-oriented-oam
Version 2018-02-07
File ietf-connection-oriented-oam@2018-02-07.yang
  
Prefix co-oam
Namespace urn:ietf:params:xml:ns:yang:ietf-connection-oriented-oam
  
Cooked /cookedmodules/ietf-connection-oriented-oam/2018-02-07
YANG /src/ietf-connection-oriented-oam@2018-02-07.yang
XSD /xsd/ietf-connection-oriented-oam@2018-02-07.xsd
  
Abstract This YANG module defines the generic configuration, statistics and rpc for connection oriented OAM to be used within IETF in a p...
  
Contact
WG Web:    http://tools.ietf.org/wg/lime
WG List:   mailto:lime@ietf.org
Editor:    Deepak Kumar dekumar@cisco.com
Editor:    Qin Wu bill.wu@huawei.com
Editor:    Zitao Wang wangzitao@huawei.com

Description

 
ietf-connection-oriented-oam
This YANG module defines the generic configuration,
statistics and RPC for connection-oriented OAM
to be used within IETF in a protocol-independent manner.
Functional-level abstraction is independent
with YANG modeling. It is assumed that each protocol
maps corresponding abstracts to its native format.
Each protocol may extend the YANG data model defined
here to include protocol-specific extensions

Copyright (c) 2019 IETF Trust and the persons identified as
authors of the code.  All rights reserved.

Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject
to the license terms contained in, the Simplified BSD License
set forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents
(http://trustee.ietf.org/license-info).

This version of this YANG module is part of RFC 8531; see
the RFC itself for full legal notices.
 
ietf-connection-oriented-oam
This YANG module defines the generic configuration,
statistics and rpc for connection oriented OAM
to be used within IETF in a protocol independent manner.
Functional level abstraction is independent
with YANG modeling. It is assumed that each protocol
maps corresponding abstracts to its native format.
Each protocol may extend the YANG model defined
here to include protocol specific extensions

Typedefs

Typedef Base type Abstract
ma-name-string string Generic administrative name for an Maintenance Association (MA).
ma-name-string string Generic administrative name for a Maintenance Association (MA).
md-level uint32 Maintenance Domain level. The level may be restricted in certain protocols (e.g., protocol in layer 0 to layer 7).
md-level uint32 Maintenance Domain Level. The level may be restricted in certain protocols (e.g., protocol in layer 0 to layer 7).
md-name-string string Generic administrative name for Maintenance Domain (MD).
md-name-string string Generic administrative name for Maintenance Domain (MD).
mep-name string Generic administrative name for a Maintenance End Point (MEP).
mep-name string Generic administrative name for a MEP.
oam-counter32 uint32 Define 32 bit counter for OAM.
oam-counter32 uint32 Define 32-bit counter for OAM.
time-interval decimal64 Time interval between packets in milliseconds. 0 means no packets are sent.
time-interval decimal64 Time interval between packets in milliseconds. Time interval should not be less than 0. 0 means no packets are sent.

Groupings

Grouping Objects Abstract
connectivity-context connectivity-context Grouping defining the connectivity context for an Maintenance Association (MA), for example, an LSP for MPLS-TP. This will be augmented by each protocol who use this component.
connectivity-context connectivity-context Grouping defining the connectivity context for an MA, for example, an LSP for MPLS-TP. This will be augmented by each protocol that uses this component.
cos cos-id Grouping for Priority used in transmitted packets, for example, in the CoS field in MPLS-TP.
cos cos-id Grouping for Priority used in transmitted packets, for example, in the CoS field in MPLS-TP.
defect-message defect Defect Message.
defect-message defect Defect Message.
ma-identifier ma-name-string Grouping containing leaves sufficient to identify an Maintenance Association (MA).
ma-identifier ma-name-string Grouping containing leaves sufficient to identify an MA.
ma-name ma-name-format ma-name Maintenance Association (MA) name.
ma-name ma-name-format ma-name MA name.
maintenance-association-end-point-reference maintenance-domain maintenance-associationmaintenance-association-end-point This grouping uniquely identifies a maintenance association. It consists of a maintence-association-reference and a maintenance-association-end-point leafref
maintenance-association-end-point-reference maintenance-domain maintenance-associationmaintenance-association-end-point This grouping uniquely identifies a Maintenance Association. It consists of a maintenance-association-reference and a maintenance-association-end-point leafref.
maintenance-association-reference maintenance-domainmaintenance-association This grouping uniquely identifies a maintenance association. It consists of a maintence-domain-reference and a maintenance-association leafref
maintenance-association-reference maintenance-domainmaintenance-association This grouping uniquely identifies a Maintenance Association. It consists of a maintenance-domain-reference and a maintenance-association leafref.
maintenance-domain-id technology md-name-string Grouping containing leaves sufficient to identify a Maintenance Domain.
maintenance-domain-id technology md-name-string Grouping containing leaves sufficient to identify a Maintenance Domain.
maintenance-domain-reference maintenance-domain This grouping uniquely identifies a maintenance domain.
maintenance-domain-reference maintenance-domain This grouping uniquely identifies a Maintenance Domain.
md-name md-name-format md-name Maintenance Domain (MD) name.
md-name md-name-format md-name MD name.
mep mep-name mep-id mep-id-formatmep-address Defines elements within the Maintenance End Point (MEP).
mep mep-name mep-id mep-id-formatmep-address Defines elements within the MEP.
mep-address mep-address Grouping for Maintenance End Point(MEP) Address
mep-address mep-address Grouping for MEP Address
mep-id mep-id mep-id-format Maintenance End Point (MEP) ID.
mep-id mep-id mep-id-format MEP ID.
mip-address mip-address Maintenance Intermediate Point (MIP) Address.
mip-address mip-address MIP Address.
mip-grouping mip-address Grouping for Maintenance Intermediate Point(MIP) configuration.
mip-grouping mip-address Grouping for MIP configuration.
monitor-stats monitor-stats grouping for monitoring statistics, this will be augmented by others who use this component
monitor-stats monitor-stats Grouping for monitoring statistics; this will be augmented by others who use this component.
time-to-live ttl Time to Live grouping.
time-to-live ttl Time to Live grouping.

Objects

Type Key
Mandatory config
Optional config
Not config
Object Type Abstract
domains container Contains configuration related data. Within the container is list of fault domains. Within each domian has List of Maintenance Association (MA).
domains container Contains configuration related data. Within the container, there is a list of fault domains. Each domain has a list of MAs.
   domain list Define the list of fault Domains within the ietf-connection-oriented-oam module.
   domain list Define a list of Domains within the ietf-connection-oriented-oam module.
      mas container This container defines Maintenance Association (MA), within that have multiple MA and within MA have Maintenance End Point (MEP).
      mas container Contains configuration-related data. Within the container, there is a list of MAs. Each MA has a list of MEPs.
         ma list Maintenance Association list.
         ma list Maintenance Association list.
            cc-enable leaf Indicate whether the Continuity Check (CC) is enabled.
            cc-enable leaf Indicate whether the CC is enabled.
            connectivity-context choice Connectivity context.
            connectivity-context choice Connectivity context.
               context-null case This is a place holder when no context is needed.
               context-null case This is a placeholder when no context is needed.
                  context-null leaf There is no context to be defined.
                  context-null leaf There is no context to be defined.
            cos-id leaf Class of Service(CoS) id, this value is used to indicate Class of Service information .
            cos-id leaf Class of Service (CoS) ID; this value is used to indicate Class of Service information .
            ma-name choice Maintenance Association) name(MA).
            ma-name choice MA name.
            ma-name-format leaf Maintenance Association (MA) name format.
            ma-name-format leaf MA name format.
            ma-name-string leaf Maintenance Association (MA) name string.
            ma-name-string leaf MA name string.
               ma-name-null case ma-name-null
               ma-name-null case ma-name-null
                  ma-name-null leaf Empty
                  ma-name-null leaf Empty
            mep list Contain a list of Maintenance End Points (MEPs)
            mep list Contain a list of MEPs.
               cc-enable leaf Indicate whether the Continuity Check (CC)is enabled.
               cc-enable leaf Indicate whether the CC is enabled.
               cos-id leaf Class of Service(CoS) id, this value is used to indicate Class of Service information .
               cos-id leaf Class of Service (CoS) ID; this value is used to indicate Class of Service information .
               mep-address choice Maintenance End Point (MEP) Addressing.
               mep-address choice MEP Addressing.
                  ip-address case IP Address based Maintenance End Point(MEP) Addressing.
                  ip-address case IP Address based MEP Addressing.
                     ip-address leaf IP Address.
                     ip-address leaf IP Address.
                  mac-address case MAC Address based Maintenance End Point (MEP) Addressing.
                  mac-address case MAC Address based MEP Addressing.
                     mac-address leaf MAC Address.
                     mac-address leaf MAC Address.
               mep-id choice Maintenance End Point (MEP) ID.
               mep-id choice MEP ID.
               mep-id-format leaf Maintenance End Point (MEP) ID format.
               mep-id-format leaf MEP ID format.
                  mep-id-int case mep-id-int
                  mep-id-int case mep-id-int
                     mep-id-int leaf Maintenance End Point (MEP) ID in integer format.
                     mep-id-int leaf MEP ID in integer format.
               mep-name leaf Generic administrative name of the Maintenance End Point (MEP).
               mep-name leaf Generic administrative name of the MEP.
               session list Monitoring session to/from a particular remote Maintenance End Point (MEP). Depending on the protocol, this could represent Continuity Check (CC) messages received from a single remote MEP (if the protocol uses multicast CCs) or a target to which unicast ...
               session list Monitoring session to/from a particular remote MEP. Depending on the protocol, this could represent CC messages received from a single remote MEP (if the protocol uses multicast CCs) or a target to which unicast echo request CCs are sent and from which re...
                  cos-id leaf Class of Service(CoS) id, this value is used to indicate Class of Service information .
                  cos-id leaf Class of Service (CoS) ID; this value is used to indicate Class of Service information .
                  destination-mep container Destination Maintenance End Point(MEP).
                  destination-mep container Destination MEP.
                  destination-mep-address container Destination Maintenance End Point (MEP) Address.
                  destination-mep-address container Destination MEP Address.
                     mep-address choice Maintenance End Point (MEP) Addressing.
                     mep-address choice MEP Addressing.
                        ip-address case IP Address based Maintenance End Point(MEP) Addressing.
                        ip-address case IP Address based MEP Addressing.
                           ip-address leaf IP Address.
                           ip-address leaf IP Address.
                        mac-address case MAC Address based Maintenance End Point (MEP) Addressing.
                        mac-address case MAC Address based MEP Addressing.
                           mac-address leaf MAC Address.
                           mac-address leaf MAC Address.
                     mep-id choice Maintenance End Point (MEP) ID.
                     mep-id choice MEP ID.
                     mep-id-format leaf Maintenance End Point (MEP) ID format.
                     mep-id-format leaf MEP ID format.
                        mep-id-int case mep-id-int
                        mep-id-int case mep-id-int
                           mep-id-int leaf Maintenance End Point (MEP) ID in integer format.
                           mep-id-int leaf MEP ID in integer format.
                  session-cookie leaf Cookie to identify different sessions, when there are multiple remote Maintenance End Point(MEP) or multiple sessions tothe same remote MEP.
                  session-cookie leaf Cookie to identify different sessions, when there are multiple remote MEPs or multiple sessions to the same remote MEP.
            mip list List for Maintenance Intermediate Point (MIP).
            mip list List for MIP.
               interface leaf Interface
               interface leaf Interface.
               mip-address choice Maintenance Intermediate Point (MIP) Addressing.
               mip-address choice MIP Addressing.
                  ip-address case IP Address based Maintenance Intermediate Point(MIP) Addressing.
                  ip-address case IP Address based MIP Addressing.
                     ip-address leaf IP Address.
                     ip-address leaf IP Address.
                  mac-address case MAC Address based Maintenance Intermediate Point (MIP) Addressing.
                  mac-address case MAC Address based MIP Addressing.
                     mac-address leaf MAC Address of Maintenance Intermediate Point
                     mac-address leaf MAC Address of Maintenance Intermediate Point
               name leaf Identifier of Maintenance intermediate point
               name leaf Identifier of Maintenance Intermediate Point
      md-level leaf Define the MD-Level.
      md-level leaf Define the MD level.
      md-name choice Maintenance Domain (MD) name.
      md-name choice MD name.
      md-name-format leaf Maintenance Domain Name format.
      md-name-format leaf Maintenance Domain Name format.
      md-name-string leaf Defines the generic administrative maintenance domain name.
      md-name-string leaf Defines the generic administrative Maintenance Domain name.
         md-name-null case md-name-null
         md-name-null case md-name-null
            md-name-null leaf Maintenance Domain (MD) name Null.
            md-name-null leaf MD name null.
      technology leaf Defines the technology.
      technology leaf Defines the technology.

RPC Methods

RPC Abstract
continuity-check Generates Continuity Check as per Table 4 of RFC 7276.
continuity-check Generates continuity-check as per RFC7276 Table 4.
continuity-verification Generates Connectivity Verification as per Table 4 in RFC 7276.
continuity-verification Generates continuity-verification as per RFC7276 Table 4.
traceroute Generates Traceroute or Path Trace and returns response. References RFC 7276 for common Toolset name -- for MPLS-TP OAM, it's Route Tracing, and for TRILL OAM, it's Path Tracing tool. Starts with TTL of one and increments by one at each hop until the des...
traceroute Generates Traceroute or Path Trace and return response. Referencing RFC7276 for common Toolset name, for MPLS-TP OAM it's Route Tracing, and for TRILL OAM It's Path Tracing tool. Starts with TTL of one and increment by one at each hop. Untill destination ...

Notifications

Notification Abstract
defect-cleared-notification When the defect is cleared, this notification is sent.
defect-cleared-notification Upon defect cleared is met, this notification is sent
defect-condition-notification When the defect condition is met, this notification is sent.
defect-condition-notification Upon the defect condition is met, this notification is sent