netconfcentral logo

ietf-connectionless-oam@2019-04-16



  module ietf-connectionless-oam {

    yang-version 1.1;

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

    prefix cl-oam;

    import ietf-yang-schema-mount {
      prefix yangmnt;
    }
    import ietf-network {
      prefix nd;
    }
    import ietf-yang-types {
      prefix yang;
    }
    import ietf-interfaces {
      prefix if;
    }
    import ietf-inet-types {
      prefix inet;
    }
    import ietf-network-instance {
      prefix ni;
    }
    import ietf-routing-types {
      prefix rt;
    }
    import ietf-lime-time-types {
      prefix lime;
    }

    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 <srihari@cisco.com>
Michael Wang <wangzitao@huawei.com>
Reshad Rahman <rrahman@cisco.com>";

    description
      "This YANG module defines the generic configuration,
data model, and statistics for OAM protocols using
connectionless communications, described 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 8532; see
the RFC itself for full legal notices.";

    revision "2019-04-16" {
      description
        "Base model for Connectionless Operations, Administration,
and Maintenance (OAM).";
      reference
        "RFC 8532: Generic YANG Data Model for the Management of
        Operations, Administration, and Maintenance (OAM) Protocols
        That Use Connectionless Communications";

    }


    feature connectionless {
      description
        "This feature indicates that the OAM solution is connectionless.";
    }

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

    feature path-discovery {
      description
        "This feature indicates that the server supports
executing a path discovery OAM command and
returning a response.  Servers that do not advertise
this feature will not support executing
path discovery commands or the RPC operation model for
path discovery commands.";
    }

    feature ptp-long-format {
      description
        "This feature indicates that the timestamp is PTP long format.";
    }

    feature ntp-short-format {
      description
        "This feature indicates that the timestamp is NTP short format.";
    }

    feature icmp-timestamp {
      description
        "This feature indicates that the timestamp is ICMP timestamp.";
    }

    identity traffic-type {
      base 
      description
        "This is the base identity of the traffic type,
which includes IPv4, IPv6, etc.";
    }

    identity ipv4 {
      base traffic-type;
      description
        "identity for IPv4 traffic type.";
    }

    identity ipv6 {
      base traffic-type;
      description
        "identity for IPv6 traffic type.";
    }

    identity address-attribute-types {
      base 
      description
        "This is the base identity of the address attribute types, which
are Generic IPv4/IPv6 Prefix, BGP Labeled IPv4/IPv6 Prefix,
Tunnel ID, PW ID, VPLS VE ID, etc. (See RFC 8029 for details.)";
    }

    typedef address-attribute-type {
      type identityref {
        base address-attribute-types;
      }
      description
        "Target address attribute type.";
    }

    typedef percentage {
      type decimal64 {
        fraction-digits 5;
        range "0..100";
      }
      description "Percentage.";
    }

    typedef routing-instance-ref {
      type leafref {
        path "/ni:network-instances/ni:network-instance/ni:name";
      }
      description
        "This type is used for leafs that reference a routing instance
configuration.";
    }

    identity tp-address-technology-type {
      base 
      description "Test point address type.";
    }

    identity mac-address-type {
      base tp-address-technology-type;
      description "MAC address type.";
    }

    identity ipv4-address-type {
      base tp-address-technology-type;
      description "IPv4 address type.";
    }

    identity ipv6-address-type {
      base tp-address-technology-type;
      description "IPv6 address type.";
    }

    identity tp-attribute-type {
      base tp-address-technology-type;
      description
        "Test point attribute type.";
    }

    identity router-id-address-type {
      base tp-address-technology-type;
      description "System ID address type.";
    }

    identity as-number-address-type {
      base tp-address-technology-type;
      description "AS number address type.";
    }

    identity route-distinguisher-address-type {
      base tp-address-technology-type;
      description
        "Route Distinguisher address type.";
    }

    container cc-session-statistics-data {
      if-feature continuity-check;
      config false;
      description
        "CC operational information.";
      list cc-session-statistics {
        key "type";
        description
          "List of CC session statistics data.";
        leaf type {
          type identityref {
            base traffic-type;
          }
          description "Type of traffic.";
        }

        container cc-ipv4-sessions-statistics {
          when "../type = 'ipv4'" {
            description
              "Only applies when traffic type is IPv4.";
          }
          description "CC ipv4 sessions.";
          container cc-session-statistics {
            description
              "CC session counters.";
            leaf session-count {
              type uint32;
              default "0";
              description
                "Number of Continuity Check sessions.
A value of zero indicates that no session
count is sent.";
            }

            leaf session-up-count {
              type uint32;
              default "0";
              description
                "Number of sessions that are up.
A value of zero indicates that no up
session count is sent.";
            }

            leaf session-down-count {
              type uint32;
              default "0";
              description
                "Number of sessions that are down.
A value of zero indicates that no down
session count is sent.";
            }

            leaf session-admin-down-count {
              type uint32;
              default "0";
              description
                "Number of sessions that are admin-down.
A value of zero indicates that no admin-
down session count is sent.";
            }
          }  // container cc-session-statistics
        }  // container cc-ipv4-sessions-statistics

        container cc-ipv6-sessions-statistics {
          when "../type = 'ipv6'" {
            description
              "Only applies when traffic type is IPv6.";
          }
          description "CC IPv6 sessions.";
          container cc-session-statistics {
            description
              "CC session counters.";
            leaf session-count {
              type uint32;
              default "0";
              description
                "Number of Continuity Check sessions.
A value of zero indicates that no session
count is sent.";
            }

            leaf session-up-count {
              type uint32;
              default "0";
              description
                "Number of sessions that are up.
A value of zero indicates that no up
session count is sent.";
            }

            leaf session-down-count {
              type uint32;
              default "0";
              description
                "Number of sessions that are down.
A value of zero indicates that no down
session count is sent.";
            }

            leaf session-admin-down-count {
              type uint32;
              default "0";
              description
                "Number of sessions that are admin-down.
A value of zero indicates that no admin-
down session count is sent.";
            }
          }  // container cc-session-statistics
        }  // container cc-ipv6-sessions-statistics
      }  // list cc-session-statistics
    }  // container cc-session-statistics-data
  }  // module ietf-connectionless-oam