Rewrite NTS Framework.
[sim/o1-interface.git] / ntsimulator / yang / x-ran / ietf-ip.yang
diff --git a/ntsimulator/yang/x-ran/ietf-ip.yang b/ntsimulator/yang/x-ran/ietf-ip.yang
deleted file mode 100644 (file)
index 449081b..0000000
+++ /dev/null
@@ -1,860 +0,0 @@
-module ietf-ip {
-  yang-version 1.1;
-  namespace "urn:ietf:params:xml:ns:yang:ietf-ip";
-  prefix ip;
-
-  import ietf-interfaces {
-    prefix if;
-  }
-  import ietf-inet-types {
-    prefix inet;
-  }
-  import ietf-yang-types {
-    prefix yang;
-  }
-
-  organization
-    "IETF NETMOD (Network Modeling) Working Group";
-
-  contact
-    "WG Web:   <https://datatracker.ietf.org/wg/netmod/>
-     WG List:  <mailto:netmod@ietf.org>
-     Editor:   Martin Bjorklund
-               <mailto:mbj@tail-f.com>";
-  description
-    "This module contains a collection of YANG definitions for
-     managing IP implementations.
-     Copyright (c) 2018 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
-     (https://trustee.ietf.org/license-info).
-     This version of this YANG module is part of RFC 8344; see
-     the RFC itself for full legal notices.";
-
-  revision 2018-02-22 {
-    description
-      "Updated to support NMDA.";
-    reference
-      "RFC 8344: A YANG Data Model for IP Management";
-  }
-
-  revision 2014-06-16 {
-    description
-      "Initial revision.";
-    reference
-      "RFC 7277: A YANG Data Model for IP Management";
-  }
-
-  /*
-   * Features
-   */
-
-  feature ipv4-non-contiguous-netmasks {
-    description
-      "Indicates support for configuring non-contiguous
-       subnet masks.";
-  }
-
-  feature ipv6-privacy-autoconf {
-    description
-      "Indicates support for privacy extensions for stateless address
-       autoconfiguration in IPv6.";
-    reference
-      "RFC 4941: Privacy Extensions for Stateless Address
-                 Autoconfiguration in IPv6";
-  }
-
-  /*
-   * Typedefs
-   */
-
-  typedef ip-address-origin {
-    type enumeration {
-      enum other {
-        description
-          "None of the following.";
-      }
-
-      enum static {
-        description
-          "Indicates that the address has been statically
-           configured -- for example, using the Network Configuration
-           Protocol (NETCONF) or a command line interface.";
-      }
-      enum dhcp {
-        description
-          "Indicates an address that has been assigned to this
-           system by a DHCP server.";
-      }
-      enum link-layer {
-        description
-          "Indicates an address created by IPv6 stateless
-           autoconfiguration that embeds a link-layer address in its
-           interface identifier.";
-      }
-      enum random {
-        description
-          "Indicates an address chosen by the system at
-           random, e.g., an IPv4 address within 169.254/16, a
-           temporary address as described in RFC 4941, or a
-           semantically opaque address as described in RFC 7217.";
-        reference
-          "RFC 4941: Privacy Extensions for Stateless Address
-                     Autoconfiguration in IPv6
-           RFC 7217: A Method for Generating Semantically Opaque
-                     Interface Identifiers with IPv6 Stateless
-                     Address Autoconfiguration (SLAAC)";
-      }
-    }
-    description
-      "The origin of an address.";
-  }
-
-  typedef neighbor-origin {
-    type enumeration {
-      enum other {
-        description
-          "None of the following.";
-      }
-      enum static {
-        description
-          "Indicates that the mapping has been statically
-           configured -- for example, using NETCONF or a command line
-           interface.";
-      }
-
-      enum dynamic {
-        description
-          "Indicates that the mapping has been dynamically resolved
-           using, for example, IPv4 ARP or the IPv6 Neighbor
-           Discovery protocol.";
-      }
-    }
-    description
-      "The origin of a neighbor entry.";
-  }
-
-  /*
-   * Data nodes
-   */
-
-  augment "/if:interfaces/if:interface" {
-    description
-      "IP parameters on interfaces.
-       If an interface is not capable of running IP, the server
-       must not allow the client to configure these parameters.";
-
-    container ipv4 {
-      presence
-        "Enables IPv4 unless the 'enabled' leaf
-         (which defaults to 'true') is set to 'false'";
-      description
-        "Parameters for the IPv4 address family.";
-
-      leaf enabled {
-        type boolean;
-        default true;
-        description
-          "Controls whether IPv4 is enabled or disabled on this
-           interface.  When IPv4 is enabled, this interface is
-           connected to an IPv4 stack, and the interface can send
-           and receive IPv4 packets.";
-      }
-      leaf forwarding {
-        type boolean;
-        default false;
-        description
-          "Controls IPv4 packet forwarding of datagrams received by,
-           but not addressed to, this interface.  IPv4 routers
-           forward datagrams.  IPv4 hosts do not (except those
-           source-routed via the host).";
-      }
-
-      leaf mtu {
-        type uint16 {
-          range "68..max";
-        }
-        units "octets";
-        description
-          "The size, in octets, of the largest IPv4 packet that the
-           interface will send and receive.
-           The server may restrict the allowed values for this leaf,
-           depending on the interface's type.
-           If this leaf is not configured, the operationally used MTU
-           depends on the interface's type.";
-        reference
-          "RFC 791: Internet Protocol";
-      }
-      list address {
-        key "ip";
-        description
-          "The list of IPv4 addresses on the interface.";
-
-        leaf ip {
-          type inet:ipv4-address-no-zone;
-          description
-            "The IPv4 address on the interface.";
-        }
-        choice subnet {
-          mandatory true;
-          description
-            "The subnet can be specified as a prefix length or,
-             if the server supports non-contiguous netmasks, as
-             a netmask.";
-          leaf prefix-length {
-            type uint8 {
-              range "0..32";
-            }
-            description
-              "The length of the subnet prefix.";
-          }
-          leaf netmask {
-            if-feature ipv4-non-contiguous-netmasks;
-            type yang:dotted-quad;
-            description
-              "The subnet specified as a netmask.";
-          }
-        }
-
-        leaf origin {
-          type ip-address-origin;
-          config false;
-          description
-            "The origin of this address.";
-        }
-      }
-      list neighbor {
-        key "ip";
-        description
-          "A list of mappings from IPv4 addresses to
-           link-layer addresses.
-           Entries in this list in the intended configuration are
-           used as static entries in the ARP Cache.
-           In the operational state, this list represents the ARP
-           Cache.";
-        reference
-          "RFC 826: An Ethernet Address Resolution Protocol";
-
-        leaf ip {
-          type inet:ipv4-address-no-zone;
-          description
-            "The IPv4 address of the neighbor node.";
-        }
-        leaf link-layer-address {
-          type yang:phys-address;
-          mandatory true;
-          description
-            "The link-layer address of the neighbor node.";
-        }
-        leaf origin {
-          type neighbor-origin;
-          config false;
-          description
-            "The origin of this neighbor entry.";
-        }
-      }
-    }
-
-    container ipv6 {
-      presence
-        "Enables IPv6 unless the 'enabled' leaf
-         (which defaults to 'true') is set to 'false'";
-      description
-        "Parameters for the IPv6 address family.";
-
-      leaf enabled {
-        type boolean;
-        default true;
-        description
-          "Controls whether IPv6 is enabled or disabled on this
-           interface.  When IPv6 is enabled, this interface is
-           connected to an IPv6 stack, and the interface can send
-           and receive IPv6 packets.";
-      }
-      leaf forwarding {
-        type boolean;
-        default false;
-        description
-          "Controls IPv6 packet forwarding of datagrams received by,
-           but not addressed to, this interface.  IPv6 routers
-           forward datagrams.  IPv6 hosts do not (except those
-           source-routed via the host).";
-        reference
-          "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)
-                     Section 6.2.1, IsRouter";
-      }
-      leaf mtu {
-        type uint32 {
-          range "1280..max";
-        }
-        units "octets";
-        description
-          "The size, in octets, of the largest IPv6 packet that the
-           interface will send and receive.
-           The server may restrict the allowed values for this leaf,
-           depending on the interface's type.
-           If this leaf is not configured, the operationally used MTU
-           depends on the interface's type.";
-        reference
-          "RFC 8200: Internet Protocol, Version 6 (IPv6)
-                     Specification
-                     Section 5";
-      }
-
-      list address {
-        key "ip";
-        description
-          "The list of IPv6 addresses on the interface.";
-
-        leaf ip {
-          type inet:ipv6-address-no-zone;
-          description
-            "The IPv6 address on the interface.";
-        }
-        leaf prefix-length {
-          type uint8 {
-            range "0..128";
-          }
-          mandatory true;
-          description
-            "The length of the subnet prefix.";
-        }
-        leaf origin {
-          type ip-address-origin;
-          config false;
-          description
-            "The origin of this address.";
-        }
-        leaf status {
-          type enumeration {
-            enum preferred {
-              description
-                "This is a valid address that can appear as the
-                 destination or source address of a packet.";
-            }
-            enum deprecated {
-              description
-                "This is a valid but deprecated address that should
-                 no longer be used as a source address in new
-                 communications, but packets addressed to such an
-                 address are processed as expected.";
-            }
-            enum invalid {
-              description
-                "This isn't a valid address, and it shouldn't appear
-                 as the destination or source address of a packet.";
-            }
-
-            enum inaccessible {
-              description
-                "The address is not accessible because the interface
-                 to which this address is assigned is not
-                 operational.";
-            }
-            enum unknown {
-              description
-                "The status cannot be determined for some reason.";
-            }
-            enum tentative {
-              description
-                "The uniqueness of the address on the link is being
-                 verified.  Addresses in this state should not be
-                 used for general communication and should only be
-                 used to determine the uniqueness of the address.";
-            }
-            enum duplicate {
-              description
-                "The address has been determined to be non-unique on
-                 the link and so must not be used.";
-            }
-            enum optimistic {
-              description
-                "The address is available for use, subject to
-                 restrictions, while its uniqueness on a link is
-                 being verified.";
-            }
-          }
-          config false;
-          description
-            "The status of an address.  Most of the states correspond
-             to states from the IPv6 Stateless Address
-             Autoconfiguration protocol.";
-          reference
-            "RFC 4293: Management Information Base for the
-                       Internet Protocol (IP)
-                       - IpAddressStatusTC
-             RFC 4862: IPv6 Stateless Address Autoconfiguration";
-        }
-      }
-
-      list neighbor {
-        key "ip";
-        description
-          "A list of mappings from IPv6 addresses to
-           link-layer addresses.
-           Entries in this list in the intended configuration are
-           used as static entries in the Neighbor Cache.
-           In the operational state, this list represents the
-           Neighbor Cache.";
-        reference
-          "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)";
-
-        leaf ip {
-          type inet:ipv6-address-no-zone;
-          description
-            "The IPv6 address of the neighbor node.";
-        }
-        leaf link-layer-address {
-          type yang:phys-address;
-          mandatory true;
-          description
-            "The link-layer address of the neighbor node.
-             In the operational state, if the neighbor's 'state' leaf
-             is 'incomplete', this leaf is not instantiated.";
-        }
-        leaf origin {
-          type neighbor-origin;
-          config false;
-          description
-            "The origin of this neighbor entry.";
-        }
-        leaf is-router {
-          type empty;
-          config false;
-          description
-            "Indicates that the neighbor node acts as a router.";
-        }
-
-        leaf state {
-          type enumeration {
-            enum incomplete {
-              description
-                "Address resolution is in progress, and the
-                 link-layer address of the neighbor has not yet been
-                 determined.";
-            }
-            enum reachable {
-              description
-                "Roughly speaking, the neighbor is known to have been
-                 reachable recently (within tens of seconds ago).";
-            }
-            enum stale {
-              description
-                "The neighbor is no longer known to be reachable, but
-                 until traffic is sent to the neighbor no attempt
-                 should be made to verify its reachability.";
-            }
-            enum delay {
-              description
-                "The neighbor is no longer known to be reachable, and
-                 traffic has recently been sent to the neighbor.
-                 Rather than probe the neighbor immediately, however,
-                 delay sending probes for a short while in order to
-                 give upper-layer protocols a chance to provide
-                 reachability confirmation.";
-            }
-            enum probe {
-              description
-                "The neighbor is no longer known to be reachable, and
-                 unicast Neighbor Solicitation probes are being sent
-                 to verify reachability.";
-            }
-          }
-          config false;
-          description
-            "The Neighbor Unreachability Detection state of this
-             entry.";
-          reference
-            "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)
-                       Section 7.3.2";
-        }
-      }
-
-      leaf dup-addr-detect-transmits {
-        type uint32;
-        default 1;
-        description
-          "The number of consecutive Neighbor Solicitation messages
-           sent while performing Duplicate Address Detection on a
-           tentative address.  A value of zero indicates that
-           Duplicate Address Detection is not performed on
-           tentative addresses.  A value of one indicates a single
-           transmission with no follow-up retransmissions.";
-        reference
-          "RFC 4862: IPv6 Stateless Address Autoconfiguration";
-      }
-      container autoconf {
-        description
-          "Parameters to control the autoconfiguration of IPv6
-           addresses, as described in RFC 4862.";
-        reference
-          "RFC 4862: IPv6 Stateless Address Autoconfiguration";
-
-        leaf create-global-addresses {
-          type boolean;
-          default true;
-          description
-            "If enabled, the host creates global addresses as
-             described in RFC 4862.";
-          reference
-            "RFC 4862: IPv6 Stateless Address Autoconfiguration
-                       Section 5.5";
-        }
-        leaf create-temporary-addresses {
-          if-feature ipv6-privacy-autoconf;
-          type boolean;
-          default false;
-          description
-            "If enabled, the host creates temporary addresses as
-             described in RFC 4941.";
-          reference
-            "RFC 4941: Privacy Extensions for Stateless Address
-                       Autoconfiguration in IPv6";
-        }
-
-        leaf temporary-valid-lifetime {
-          if-feature ipv6-privacy-autoconf;
-          type uint32;
-          units "seconds";
-          default 604800;
-          description
-            "The time period during which the temporary address
-             is valid.";
-          reference
-            "RFC 4941: Privacy Extensions for Stateless Address
-                       Autoconfiguration in IPv6
-                       - TEMP_VALID_LIFETIME";
-        }
-        leaf temporary-preferred-lifetime {
-          if-feature ipv6-privacy-autoconf;
-          type uint32;
-          units "seconds";
-          default 86400;
-          description
-            "The time period during which the temporary address is
-             preferred.";
-          reference
-            "RFC 4941: Privacy Extensions for Stateless Address
-                       Autoconfiguration in IPv6
-                       - TEMP_PREFERRED_LIFETIME";
-        }
-      }
-    }
-  }
-
-  /*
-   * Legacy operational state data nodes
-   */
-
-  augment "/if:interfaces-state/if:interface" {
-    status deprecated;
-    description
-      "Data nodes for the operational state of IP on interfaces.";
-
-    container ipv4 {
-      presence
-        "Present if IPv4 is enabled on this interface";
-      config false;
-      status deprecated;
-      description
-        "Interface-specific parameters for the IPv4 address family.";
-
-      leaf forwarding {
-        type boolean;
-        status deprecated;
-        description
-          "Indicates whether IPv4 packet forwarding is enabled or
-           disabled on this interface.";
-      }
-      leaf mtu {
-        type uint16 {
-          range "68..max";
-        }
-        units "octets";
-        status deprecated;
-        description
-          "The size, in octets, of the largest IPv4 packet that the
-           interface will send and receive.";
-        reference
-          "RFC 791: Internet Protocol";
-      }
-      list address {
-        key "ip";
-        status deprecated;
-        description
-          "The list of IPv4 addresses on the interface.";
-
-        leaf ip {
-          type inet:ipv4-address-no-zone;
-          status deprecated;
-          description
-            "The IPv4 address on the interface.";
-        }
-        choice subnet {
-          status deprecated;
-          description
-            "The subnet can be specified as a prefix length or,
-             if the server supports non-contiguous netmasks, as
-             a netmask.";
-          leaf prefix-length {
-            type uint8 {
-              range "0..32";
-            }
-            status deprecated;
-            description
-              "The length of the subnet prefix.";
-          }
-          leaf netmask {
-            if-feature ipv4-non-contiguous-netmasks;
-            type yang:dotted-quad;
-            status deprecated;
-            description
-              "The subnet specified as a netmask.";
-          }
-        }
-        leaf origin {
-          type ip-address-origin;
-          status deprecated;
-          description
-            "The origin of this address.";
-        }
-      }
-      list neighbor {
-        key "ip";
-        status deprecated;
-        description
-          "A list of mappings from IPv4 addresses to
-           link-layer addresses.
-           This list represents the ARP Cache.";
-        reference
-          "RFC 826: An Ethernet Address Resolution Protocol";
-
-        leaf ip {
-          type inet:ipv4-address-no-zone;
-          status deprecated;
-          description
-            "The IPv4 address of the neighbor node.";
-        }
-
-        leaf link-layer-address {
-          type yang:phys-address;
-          status deprecated;
-          description
-            "The link-layer address of the neighbor node.";
-        }
-        leaf origin {
-          type neighbor-origin;
-          status deprecated;
-          description
-            "The origin of this neighbor entry.";
-        }
-      }
-    }
-
-    container ipv6 {
-      presence
-        "Present if IPv6 is enabled on this interface";
-      config false;
-      status deprecated;
-      description
-        "Parameters for the IPv6 address family.";
-
-      leaf forwarding {
-        type boolean;
-        default false;
-        status deprecated;
-        description
-          "Indicates whether IPv6 packet forwarding is enabled or
-           disabled on this interface.";
-        reference
-          "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)
-                     Section 6.2.1, IsRouter";
-      }
-      leaf mtu {
-        type uint32 {
-          range "1280..max";
-        }
-        units "octets";
-        status deprecated;
-        description
-          "The size, in octets, of the largest IPv6 packet that the
-           interface will send and receive.";
-        reference
-          "RFC 8200: Internet Protocol, Version 6 (IPv6)
-                     Specification
-                     Section 5";
-      }
-      list address {
-        key "ip";
-        status deprecated;
-        description
-          "The list of IPv6 addresses on the interface.";
-
-        leaf ip {
-          type inet:ipv6-address-no-zone;
-          status deprecated;
-          description
-            "The IPv6 address on the interface.";
-        }
-        leaf prefix-length {
-          type uint8 {
-            range "0..128";
-          }
-          mandatory true;
-          status deprecated;
-          description
-            "The length of the subnet prefix.";
-        }
-        leaf origin {
-          type ip-address-origin;
-          status deprecated;
-          description
-            "The origin of this address.";
-        }
-        leaf status {
-          type enumeration {
-            enum preferred {
-              description
-                "This is a valid address that can appear as the
-                 destination or source address of a packet.";
-            }
-            enum deprecated {
-              description
-                "This is a valid but deprecated address that should
-                 no longer be used as a source address in new
-                 communications, but packets addressed to such an
-                 address are processed as expected.";
-            }
-            enum invalid {
-              description
-                "This isn't a valid address, and it shouldn't appear
-                 as the destination or source address of a packet.";
-            }
-
-            enum inaccessible {
-              description
-                "The address is not accessible because the interface
-                 to which this address is assigned is not
-                 operational.";
-            }
-            enum unknown {
-              description
-                "The status cannot be determined for some reason.";
-            }
-            enum tentative {
-              description
-                "The uniqueness of the address on the link is being
-                 verified.  Addresses in this state should not be
-                 used for general communication and should only be
-                 used to determine the uniqueness of the address.";
-            }
-            enum duplicate {
-              description
-                "The address has been determined to be non-unique on
-                 the link and so must not be used.";
-            }
-            enum optimistic {
-              description
-                "The address is available for use, subject to
-                 restrictions, while its uniqueness on a link is
-                 being verified.";
-            }
-          }
-          status deprecated;
-          description
-            "The status of an address.  Most of the states correspond
-             to states from the IPv6 Stateless Address
-             Autoconfiguration protocol.";
-          reference
-            "RFC 4293: Management Information Base for the
-                       Internet Protocol (IP)
-                       - IpAddressStatusTC
-             RFC 4862: IPv6 Stateless Address Autoconfiguration";
-        }
-      }
-
-      list neighbor {
-        key "ip";
-        status deprecated;
-        description
-          "A list of mappings from IPv6 addresses to
-           link-layer addresses.
-           This list represents the Neighbor Cache.";
-        reference
-          "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)";
-
-        leaf ip {
-          type inet:ipv6-address-no-zone;
-          status deprecated;
-          description
-            "The IPv6 address of the neighbor node.";
-        }
-        leaf link-layer-address {
-          type yang:phys-address;
-          status deprecated;
-          description
-            "The link-layer address of the neighbor node.";
-        }
-        leaf origin {
-          type neighbor-origin;
-          status deprecated;
-          description
-            "The origin of this neighbor entry.";
-        }
-        leaf is-router {
-          type empty;
-          status deprecated;
-          description
-            "Indicates that the neighbor node acts as a router.";
-        }
-        leaf state {
-          type enumeration {
-            enum incomplete {
-              description
-                "Address resolution is in progress, and the
-                 link-layer address of the neighbor has not yet been
-                 determined.";
-            }
-            enum reachable {
-              description
-                "Roughly speaking, the neighbor is known to have been
-                 reachable recently (within tens of seconds ago).";
-            }
-            enum stale {
-              description
-                "The neighbor is no longer known to be reachable, but
-                 until traffic is sent to the neighbor no attempt
-                 should be made to verify its reachability.";
-            }
-            enum delay {
-              description
-                "The neighbor is no longer known to be reachable, and
-                 traffic has recently been sent to the neighbor.
-                 Rather than probe the neighbor immediately, however,
-                 delay sending probes for a short while in order to
-                 give upper-layer protocols a chance to provide
-                 reachability confirmation.";
-            }
-            enum probe {
-              description
-                "The neighbor is no longer known to be reachable, and
-                 unicast Neighbor Solicitation probes are being sent
-                 to verify reachability.";
-            }
-          }
-          status deprecated;
-          description
-            "The Neighbor Unreachability Detection state of this
-             entry.";
-          reference
-            "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)
-                       Section 7.3.2";
-        }
-      }
-    }
-  }
-}