ietf-connectionless-oam-methods

This YANG module defines the RPC operations for connectionless OAM to be used within the IETF in a protocol-independent manner. ...

  • Version: 2019-04-16

    ietf-connectionless-oam-methods@2019-04-16


    
      module ietf-connectionless-oam-methods {
    
        yang-version 1;
    
        namespace
          "urn:ietf:params:xml:ns:yang:ietf-connectionless-oam-methods";
    
        prefix cloam-methods;
    
        import ietf-interfaces {
          prefix if;
        }
        import ietf-connectionless-oam {
          prefix cl-oam;
        }
    
        organization "IETF LIME Working Group";
    
        contact
          "WG Web:   <https://datatracker.ietf.org/wg/lime>
         WG List:  <mailto:lmap@ietf.org>
    
         Deepak Kumar <dekumar@cisco.com>
         Qin Wu <bill.wu@huawei.com>
         Srihari Raghavan <rihari@cisco.com>
         Michael Wang <wangzitao@huawei.com>
         Reshad Rahman <rrahman@cisco.com>";
    
        description
          "This YANG module defines the RPC operations for
         connectionless OAM to be used within the IETF
         in a protocol-independent manner.  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 8533; see
         the RFC itself for full legal notices.";
    
        revision "2019-04-16" {
          description "Initial revision.";
          reference
            "RFC 8533: Retrieval Methods YANG Data Model for the Management
            of Operations, Administration, and Maintenance (OAM)
            Protocols That Use Connectionless Communications";
    
        }
    
    
        identity protocol-id {
          description
            "This is the base identity for a generic protocol
           ID.  The protocol registry can be found at
           https://www.iana.org/protocols.";
        }
    
        identity protocol-id-internet {
          base protocol-id;
          description
            "Identity for Internet Protocols.";
        }
    
        identity protocol-id-proprietary {
          base protocol-id;
          description
            "Identity for proprietary protocols (e.g.,
           IP SLA).";
        }
    
        identity protocol-id-sfc {
          base protocol-id;
          description
            "Identity for Service Function Chaining.";
        }
    
        identity protocol-id-mpls {
          base protocol-id;
          description "The MPLS protocol.";
        }
    
        identity protocol-id-mpls-tp {
          base protocol-id;
          description "The MPLS-TP protocol.";
        }
    
        identity protocol-id-twamp {
          base protocol-id;
          description
            "The Two-Way Active Measurement Protocol (TWAMP)
           protocol.";
        }
    
        identity protocol-id-bier {
          base protocol-id;
          description
            "The Bit Index Explicit Replication (BIER)
           protocol.";
        }
    
        identity status-code {
          description
            "This is base identity for a status code.";
        }
    
        identity success-reach {
          base status-code;
          description
            "Indicates that the destination being verified
           is reachable (see RFC 7276).";
          reference
            "RFC 7276: An Overview of Operations, Administration, and
            Maintenance (OAM) Tools";
    
        }
    
        identity fail-reach {
          base status-code;
          description
            "Indicates that the destination being verified
           is not reachable (see RFC 7276).";
          reference
            "RFC 7276: An Overview of Operations, Administration, and
            Maintenance (OAM) Tools";
    
        }
    
        identity success-path-verification {
          base status-code;
          description
            "Indicates that the path verification is performed
           successfully (see RFC 7276).";
          reference
            "RFC 7276: An Overview of Operations, Administration, and
            Maintenance (OAM) Tools";
    
        }
    
        identity fail-path-verification {
          base status-code;
          description
            "Indicates that the path verification fails
           (see RFC 7276).";
          reference
            "RFC 7276: An Overview of Operations, Administration, and
            Maintenance (OAM) Tools";
    
        }
    
        identity status-sub-code {
          description
            "IdentityBase status-sub-code.";
        }
    
        identity invalid-cc {
          base status-sub-code;
          description
            "Indicates that the Continuity Check message is invalid
           (see RFC 7276).";
          reference
            "RFC 7276: An Overview of Operations, Administration, and
            Maintenance (OAM) Tools";
    
        }
    
        identity invalid-pd {
          base status-sub-code;
          description
            "Indicates that the path discovery message is invalid
           (see RFC 7276).";
          reference
            "RFC 7276: An Overview of Operations, Administration, and
            Maintenance (OAM) Tools";
    
        }
    
        identity protocol-id-meta-data {
          description
            "This is the base identity for metadata that corresponds
           to the protocol ID.";
        }
    
        identity protocol-internet-number {
          base protocol-id-meta-data;
          description
            "Internet Protocol number for standard
           Internet Protocols (IANA-assigned Internet
           Protocol numbers) to help in protocol processing.
           The Protocol Numbers registry can be found at
           https://www.iana.org/assignments/protocol-numbers.";
        }
    
        grouping rpc-input-parameters {
          description
            "Grouping for RPC input parameters";
          container destination-tp {
            description
              "Destination test point.";
            uses cl-oam:tp-address;
          }  // container destination-tp
    
          leaf source-interface {
            type if:interface-ref;
            mandatory true;
            description "Source interface.";
          }
    
          leaf outbound-interface {
            type if:interface-ref;
            mandatory true;
            description "Outbound interface.";
          }
    
          leaf vrf {
            type cl-oam:routing-instance-ref;
            description
              "Virtual Routing and Forwarding (VRF) instance.";
          }
        }  // grouping rpc-input-parameters
    
        rpc continuity-check {
          if-feature cl-oam:continuity-check;
          description
            "Continuity Check RPC operation as per RFC 7276.";
          reference
            "RFC 7276: An Overview of Operations, Administration, and
            Maintenance (OAM) Tools";
    
          input {
            uses rpc-input-parameters;
    
            uses cl-oam:session-type {
              description
                "If session-type is specified, then session-type
                  must be set to on demand";
            }
    
            leaf count {
              type uint32 {
                range "0..4294967295";
              }
              default "5";
              description
                "Specifies the number of
               packets that will be sent.  By
               default, the packet number is
               set to 5.";
            }
    
            leaf ttl {
              type uint8;
              default "255";
              description
                "Time to live (TTL) used to limit the lifetime
               of data packets transmitted in the network
               to prevent looping.  The TTL value is decremented
               for every hop that the packet traverses.  If the
               TTL is zero, the data packet will be discarded.";
            }
    
            leaf packet-size {
              type uint32 {
                range "64..10000";
              }
              default "64";
              description
                "Packet size of the Continuity Check message, in octets.
               By default, the packet size is set to 64 octets.";
            }
          }
    
          output {
            container response-info {
              description
                "Status code and status-sub-code for Continuity Check RPC
               operation.";
              leaf protocol-id {
                type identityref {
                  base protocol-id;
                }
                mandatory true;
                description
                  "Protocol used in the Continuity Check message.
                 This could be a standard protocol (e.g.,
                 TCP/IP protocols, MPLS, etc.) or a proprietary
                 protocol as identified by this field.";
              }
    
              leaf protocol-id-meta-data {
                type identityref {
                  base protocol-id-meta-data;
                }
                description
                  "An optional metadata related to the protocol ID.
                 For example, this could be the Internet Protocol
                 number for standard Internet Protocols used for
                 help with protocol processing.";
              }
    
              leaf status-code {
                type identityref {
                  base status-code;
                }
                mandatory true;
                description
                  "Status code for Continuity Check RPC operation.
                 This could be a basic status code (e.g., destination
                 is reachable or destination is not reachable; see RFC 7276)
                 or some customized status code as identified by this
                 field.";
                reference
                  "RFC 7276: An Overview of Operations, Administration, and
                  Maintenance (OAM) Tools";
    
              }
    
              leaf status-sub-code {
                type identityref {
                  base status-sub-code;
                }
                mandatory true;
                description
                  "An optional status-sub-code for Continuity Check
                 RPC operation.  If the basic status code is destination
                 reachable, this status-sub-code doesn't need to be
                 specified.  If the basic status code is destination
                 unreachable, the status-sub-code can be used to specify
                 the detailed reasons.  This could be a basic
                 sub-status-code (such as an invalid Continuity Check) or
                 other error codes specific to the protocol under use for
                 the Continuity Checks.  For example, if ICMP is the
                 protocol under use, the error codes defined in RFC 4443
                 can be used to specify the reasons specific to ICMP.
                 This technology-specific status-sub-code can be
                 defined in technology-specific models.";
                reference
                  "RFC 4443: The IETF Administrative Oversight Committee
                  (IAOC) Member Selection Guidelines and Process.";
    
              }
            }  // container response-info
    
            uses cl-oam:continuity-check-data;
          }
        }  // rpc continuity-check
    
        rpc path-discovery {
          if-feature cl-oam:path-discovery;
          description
            "Path discovery RPC operation as per RFC 7276.";
          reference
            "RFC 7276: An Overview of Operations, Administration, and
            Maintenance (OAM) Tools";
    
          input {
            uses rpc-input-parameters;
    
            uses cl-oam:session-type {
              description
                "If session-type is specified, then session-type
                must be set to on demand";
            }
    
            leaf max-ttl {
              type uint8;
              default "255";
              description
                "Maximum TTL indicates the maximum number of hops that
               a packet is permitted to travel before being discarded
               by a router.  By default, the maximum TTL is set to
               255.";
            }
          }
    
          output {
            list response-list {
              key "response-index";
              description
                "Path discovery response list.";
              leaf response-index {
                type uint32;
                mandatory true;
                description "Response index.";
              }
    
              leaf protocol-id {
                type identityref {
                  base protocol-id;
                }
                mandatory true;
                description
                  "Protocol used in path discovery.  This could be a
                 standard protocol (e.g., TCP/IP protocols, MPLS, etc.)
                 or a proprietary protocol as identified by
                 this field.";
              }
    
              leaf protocol-id-meta-data {
                type identityref {
                  base protocol-id-meta-data;
                }
                description
                  "An optional metadata related to the protocol ID.
                 For example, this could be the Internet Protocol
                 number for standard Internet Protocols used for
                 help with protocol processing.";
              }
    
              leaf status-code {
                type identityref {
                  base status-code;
                }
                mandatory true;
                description
                  "Status code for Continuity Check RPC operation.
                 This could be a basic status code (e.g., destination
                 is reachable or destination is not reachable) or some
                 customized status code as identified by this field.";
              }
    
              leaf status-sub-code {
                type identityref {
                  base status-sub-code;
                }
                mandatory true;
                description
                  "An optional status-sub-code for Continuity Check
                 RPC operation.  If the basic status code is destination
                 reachable, this status-sub-code doesn't need to be
                 specified.  If the basic status code is destination
                 unreachable, the status-sub-code can be used to specify
                 the detailed reasons.  This could be a basic
                 sub-status-code (such as an invalid Continuity Check) or
                 other error codes specific to the protocol under use for
                 Continuity Checks.  For example, if ICMP is the protocol
                 under use, the error codes defined in RFC 4443
                 can be used to specify the reasons specific to ICMP.
                 This technology-specific status-sub-code can be defined
                 in technology-specific models.";
                reference
                  "RFC 4443: The IETF Administrative Oversight Committee
                  (IAOC) Member Selection Guidelines and Process.";
    
              }
            }  // list response-list
    
            uses cl-oam:path-discovery-data;
          }
        }  // rpc path-discovery
      }  // module ietf-connectionless-oam-methods
    

© 2023 YumaWorks, Inc. All rights reserved.