netconfcentral logo

TRANSPORT-ADDRESS-MIB.yang



  module TRANSPORT-ADDRESS-MIB {

    yang-version 1;

    namespace
      "urn:ietf:params:xml:ns:yang:smiv2:TRANSPORT-ADDRESS-MIB";

    prefix transport-address;

    import yang-smi {
      prefix smi;
    }
    import ietf-yang-types {
      prefix yang;
    }

    organization
      "IETF Operations and Management Area";

    contact
      "Juergen Schoenwaelder (Editor)
      TU Braunschweig
      Bueltenweg 74/75
      38106 Braunschweig, Germany
      Phone: +49 531 391-3289
      EMail: schoenw@ibr.cs.tu-bs.de
      
      Send comments to <mibs@ops.ietf.org>.";

    description
      "This MIB module provides commonly used transport
      address definitions.
      
      Copyright (C) The Internet Society (2002). This version of
      this MIB module is part of RFC 3419; see the RFC itself for
      full legal notices.";

    revision "2002-11-01" {
      description
        "Initial version, published as RFC 3419.";
    }


    typedef TransportDomain {
      type yang:object-identifier;
      description
        "A value that represents a transport domain.
         
         Some possible values, such as transportDomainUdpIpv4, are
         defined in this module.  Other possible values can be
         defined in other MIB modules.";
    }

    typedef TransportAddressType {
      type enumeration {
        enum "unknown" {
          value 0;
        }
        enum "udpIpv4" {
          value 1;
        }
        enum "udpIpv6" {
          value 2;
        }
        enum "udpIpv4z" {
          value 3;
        }
        enum "udpIpv6z" {
          value 4;
        }
        enum "tcpIpv4" {
          value 5;
        }
        enum "tcpIpv6" {
          value 6;
        }
        enum "tcpIpv4z" {
          value 7;
        }
        enum "tcpIpv6z" {
          value 8;
        }
        enum "sctpIpv4" {
          value 9;
        }
        enum "sctpIpv6" {
          value 10;
        }
        enum "sctpIpv4z" {
          value 11;
        }
        enum "sctpIpv6z" {
          value 12;
        }
        enum "local" {
          value 13;
        }
        enum "udpDns" {
          value 14;
        }
        enum "tcpDns" {
          value 15;
        }
        enum "sctpDns" {
          value 16;
        }
      }
      description
        "A value that represents a transport domain. This is the
         enumerated version of the transport domain registrations
         in this MIB module. The enumerated values have the
         following meaning:
         
         unknown(0)     unknown transport address type
         udpIpv4(1)     transportDomainUdpIpv4
         udpIpv6(2)     transportDomainUdpIpv6
         udpIpv4z(3)    transportDomainUdpIpv4z
         udpIpv6z(4)    transportDomainUdpIpv6z
         tcpIpv4(5)     transportDomainTcpIpv4
         tcpIpv6(6)     transportDomainTcpIpv6
         tcpIpv4z(7)    transportDomainTcpIpv4z
         tcpIpv6z(8)    transportDomainTcpIpv6z
         sctpIpv4(9)    transportDomainSctpIpv4
         sctpIpv6(10)   transportDomainSctpIpv6
         sctpIpv4z(11)  transportDomainSctpIpv4z
         sctpIpv6z(12)  transportDomainSctpIpv6z
         local(13)      transportDomainLocal
         udpDns(14)     transportDomainUdpDns
         tcpDns(15)     transportDomainTcpDns
         sctpDns(16)    transportDomainSctpDns
         
         This textual convention can be used to represent transport
         domains in situations where a syntax of TransportDomain is
         unwieldy (for example, when used as an index).
         
         The usage of this textual convention implies that additional
         transport domains can only be supported by updating this MIB
         module. This extensibility restriction does not apply for the
         TransportDomain textual convention which allows MIB authors
         to define additional transport domains independently in
         other MIB modules.";
    }

    typedef TransportAddress {
      type binary {
        length "0..255";
      }
      description
        "Denotes a generic transport address.
         
         A TransportAddress value is always interpreted within the
         context of a TransportAddressType or TransportDomain value.
         Every usage of the TransportAddress textual convention MUST
         specify the TransportAddressType or TransportDomain object
         which provides the context. Furthermore, MIB authors SHOULD
         define a separate TransportAddressType or TransportDomain
         object for each TransportAddress object. It is suggested that
         the TransportAddressType or TransportDomain is logically
         registered before the object(s) which use the
         TransportAddress textual convention if they appear in the
         same logical row.
         
         The value of a TransportAddress object must always be
         consistent with the value of the associated
         TransportAddressType or TransportDomain object. Attempts
         to set a TransportAddress object to a value which is
         inconsistent with the associated TransportAddressType or
         TransportDomain must fail with an inconsistentValue error.
         
         When this textual convention is used as a syntax of an
         index object, there may be issues with the limit of 128
         sub-identifiers specified in SMIv2, STD 58. In this case,
         the OBJECT-TYPE declaration MUST include a 'SIZE' clause
         to limit the number of potential instance sub-identifiers.";
    }

    typedef TransportAddressIPv4 {
      type string {
        smi:display-hint "1d.1d.1d.1d:2d";
        length "6";
        pattern
          '((0|[1-9](([0-9]){0,2}))(0|[1-9](([0-9]){0,2}))(0|[1-9](([0-9]){0,2}))(0|[1-9](([0-9]){0,2}))((0|[1-9](([0-9]){0,4})){1,1})(0|[1-9](([0-9]){0,4})))';
      }
      description
        "Represents a transport address consisting of an IPv4
         address and a port number (as used for example by UDP,
         TCP and SCTP):
         
          octets       contents         encoding
           1-4         IPv4 address     network-byte order
           5-6         port number      network-byte order
         
         This textual convention SHOULD NOT be used directly in object
         definitions since it restricts addresses to a specific format.
         However, if it is used, it MAY be used either on its own or
         in conjunction with TransportAddressType or TransportDomain
         as a pair.";
    }

    typedef TransportAddressIPv6 {
      type string {
        smi:display-hint "0a[2x:2x:2x:2x:2x:2x:2x:2x]0a:2d";
        length "18";
        pattern
          '(((\p{IsBasicLatin}){0})(([0-9A-Fa-f]{2}){2})(([0-9A-Fa-f]{2}){2})(([0-9A-Fa-f]{2}){2})(([0-9A-Fa-f]{2}){2})(([0-9A-Fa-f]{2}){2})(([0-9A-Fa-f]{2}){2})(([0-9A-Fa-f]{2}){2})(([0-9A-Fa-f]{2}){2})((\p{IsBasicLatin}){0})((0|[1-9](([0-9]){0,4})){1,1})(0|[1-9](([0-9]){0,4})))';
      }
      description
        "Represents a transport address consisting of an IPv6
         address and a port number (as used for example by UDP,
         TCP and SCTP):
         
          octets       contents         encoding
           1-16        IPv6 address     network-byte order
          17-18        port number      network-byte order
         
         This textual convention SHOULD NOT be used directly in object
         definitions since it restricts addresses to a specific format.
         However, if it is used, it MAY be used either on its own or
         in conjunction with TransportAddressType or TransportDomain
         as a pair.";
    }

    typedef TransportAddressIPv4z {
      type string {
        smi:display-hint "1d.1d.1d.1d%4d:2d";
        length "10";
        pattern
          '((0|[1-9](([0-9]){0,2}))(0|[1-9](([0-9]){0,2}))(0|[1-9](([0-9]){0,2}))(0|[1-9](([0-9]){0,2}))(0|[1-9](([0-9]){0,9}))((0|[1-9](([0-9]){0,4})){1,1})(0|[1-9](([0-9]){0,4})))';
      }
      description
        "Represents a transport address consisting of an IPv4
         address, a zone index and a port number (as used for
         example by UDP, TCP and SCTP):
         
          octets       contents         encoding
           1-4         IPv4 address     network-byte order
           5-8         zone index       network-byte order
           9-10        port number      network-byte order
         
         This textual convention SHOULD NOT be used directly in object
         definitions since it restricts addresses to a specific format.
         However, if it is used, it MAY be used either on its own or
         in conjunction with TransportAddressType or TransportDomain
         as a pair.";
    }

    typedef TransportAddressIPv6z {
      type string {
        smi:display-hint "0a[2x:2x:2x:2x:2x:2x:2x:2x%4d]0a:2d";
        length "22";
        pattern
          '(((\p{IsBasicLatin}){0})(([0-9A-Fa-f]{2}){2})(([0-9A-Fa-f]{2}){2})(([0-9A-Fa-f]{2}){2})(([0-9A-Fa-f]{2}){2})(([0-9A-Fa-f]{2}){2})(([0-9A-Fa-f]{2}){2})(([0-9A-Fa-f]{2}){2})(([0-9A-Fa-f]{2}){2})(0|[1-9](([0-9]){0,9}))((\p{IsBasicLatin}){0})((0|[1-9](([0-9]){0,4})){1,1})(0|[1-9](([0-9]){0,4})))';
      }
      description
        "Represents a transport address consisting of an IPv6
         address, a zone index and a port number (as used for
         example by UDP, TCP and SCTP):
         
          octets       contents         encoding
           1-16        IPv6 address     network-byte order
          17-20        zone index       network-byte order
          21-22        port number      network-byte order
         
         This textual convention SHOULD NOT be used directly in object
         definitions since it restricts addresses to a specific format.
         However, if it is used, it MAY be used either on its own or
         in conjunction with TransportAddressType or TransportDomain
         as a pair.";
    }

    typedef TransportAddressLocal {
      type string {
        smi:display-hint "1a";
        length "1..255";
        pattern '\p{IsBasicLatin}{1,1}';
      }
      description
        "Represents a POSIX Local IPC transport address:
         
         octets       contents                   encoding
          all         POSIX Local IPC address    string
         
         The Posix Local IPC transport domain subsumes UNIX domain
         sockets.
         
         This textual convention SHOULD NOT be used directly in object
         definitions since it restricts addresses to a specific format.
         However, if it is used, it MAY be used either on its own or
         in conjunction with TransportAddressType or TransportDomain
         as a pair.
         
         When this textual convention is used as a syntax of an
         index object, there may be issues with the limit of 128
         sub-identifiers specified in SMIv2, STD 58. In this case,
         the OBJECT-TYPE declaration MUST include a 'SIZE' clause
         to limit the number of potential instance sub-identifiers.";
      reference
        "Protocol Independent Interfaces (IEEE POSIX 1003.1g)";

    }

    typedef TransportAddressDns {
      type string {
        smi:display-hint "1a";
        length "1..255";
        pattern '\p{IsBasicLatin}{1,1}';
      }
      description
        "Represents a DNS domain name followed by a colon ':'
         (ASCII character 0x3A) and a port number in ASCII.
         The name SHOULD be fully qualified whenever possible.
         
         Values of this textual convention are not directly useable as
         transport-layer addressing information, and require runtime
         resolution. As such, applications that write them must be
         prepared for handling errors if such values are not
         supported, or cannot be resolved (if resolution occurs at the
         time of the management operation).
         
         The DESCRIPTION clause of TransportAddress objects that may
         have TransportAddressDns values must fully describe how (and
         when) such names are to be resolved to IP addresses and vice
         versa.
         
         This textual convention SHOULD NOT be used directly in object
         definitions since it restricts addresses to a specific format.
         However, if it is used, it MAY be used either on its own or
         in conjunction with TransportAddressType or TransportDomain
         as a pair.
         
         When this textual convention is used as a syntax of an
         index object, there may be issues with the limit of 128
         sub-identifiers specified in SMIv2, STD 58. In this case,
         the OBJECT-TYPE declaration MUST include a 'SIZE' clause
         to limit the number of potential instance sub-identifiers.";
    }
  }  // module TRANSPORT-ADDRESS-MIB