netconfcentral logo

ieee802-types@2019-03-07



  module ieee802-types {

    yang-version 1;

    namespace
      "urn:ieee:std:802.1Q:yang:ieee802-types";

    prefix ieee;

    organization "IEEE 802.1 Working Group";

    contact
      "WG-URL: http://www.ieee802.org/1/
WG-EMail: stds-802-1-L@ieee.org

Contact: IEEE 802.1 Working Group Chair
Postal: C/O IEEE 802.1 Working Group
       IEEE Standards Association
       445 Hoes Lane
       P.O. Box 1331
       Piscataway
       NJ 08854
       USA

E-mail: STDS-802-1-L@IEEE.ORG";

    description
      "This module contains a collection of generally useful derived
data types for IEEE YANG models.";

    revision "2019-03-07" {
      description
        "Adding types to define rational numbers and PTP time.";
      reference
        "6.3.3.4 of IEEE Std 802.1AS-2020";

    }

    revision "2018-03-07" {
      description
        "Published as part of IEEE Std 802.1Q-2018. Initial version.";
      reference
        "IEEE Std 802.1Q-2018, Bridges and Bridged Networks.";

    }


    typedef mac-address {
      type string {
        pattern
          '[0-9a-fA-F]{2}(-[0-9a-fA-F]{2}){5}';
      }
      description
        "The mac-address type represents a MAC address in the canonical
format and hexadecimal format specified by IEEE Std 802. The
hexidecimal representation uses uppercase characters.";
      reference
        "3.1 of IEEE Std 802-2014
        8.1 of IEEE Std 802-2014";

    }

    grouping rational-grouping {
      description
        "Definition of a non-negative rational number.";
      leaf numerator {
        type uint32;
        description
          "Numerator of the rational number.";
      }

      leaf denominator {
        type uint32 {
          range "1..4294967295";
        }
        description
          "Denominator of the rational number.";
      }
    }  // grouping rational-grouping

    grouping ptp-time-grouping {
      description
        "This grouping specifies a PTP timestamp, represented as a
48-bit unsigned integer number of seconds and a 32-bit unsigned
integer number of nanoseconds.";
      reference
        "6.3.3.4 of IEEE Std 802.1AS";

      leaf seconds {
        type uint64;
        description
          "This is the integer portion of the timestamp in units of
seconds. The upper 16 bits are always zero.";
      }

      leaf nanoseconds {
        type uint32;
        description
          "This is the fractional portion of the timestamp in units of
nanoseconds. This value is always less than 10^9.";
      }
    }  // grouping ptp-time-grouping
  }  // module ieee802-types