netconfcentral logo

openconfig-if-ip-ext@2017-12-21



  module openconfig-if-ip-ext {

    yang-version 1;

    namespace
      "http://openconfig.net/yang/interfaces/ip-ext";

    prefix oc-ip-ext;

    import openconfig-interfaces {
      prefix oc-if;
    }
    import openconfig-if-ip {
      prefix oc-ip;
    }
    import openconfig-extensions {
      prefix oc-ext;
    }

    organization "OpenConfig working group";

    contact
      "OpenConfig working group
    www.openconfig.net";

    description
      "This module adds extensions to the base IP configuration and
    operational state model to support additional use cases.";

    revision "2017-12-21" {
      description
        "Added IPv6 router advertisement configuration.";
      reference
        "2.1.0";

    }

    revision "2017-07-14" {
      description
        "Added Ethernet/IP state data; Add dhcp-client;
      migrate to OpenConfig types modules; Removed or
      renamed opstate values";
      reference
        "2.0.0";

    }

    revision "2016-12-22" {
      description
        "Fixes to Ethernet interfaces model";
      reference
        "1.1.0";

    }

    oc-ext:openconfig-version "2.1.0";

    grouping ipv6-autoconf-config {
      description
        "Configuration data for IPv6 address autoconfiguration";
      leaf create-global-addresses {
        type boolean;
        default 'true';
        description
          "[adapted from IETF IP model RFC 7277]

        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 {
        type boolean;
        default 'false';
        description
          "[adapted from IETF IP model RFC 7277]

      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 {
        type uint32;
        units "seconds";
        default '604800';
        description
          "[adapted from IETF IP model RFC 7277]

        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 {
        type uint32;
        units "seconds";
        default '86400';
        description
          "[adapted from IETF IP model RFC 7277]

        The time period during which the temporary address is
        preferred.";
        reference
          "RFC 4941: Privacy Extensions for Stateless Address
          	 Autoconfiguration in IPv6
          	 - TEMP_PREFERRED_LIFETIME";

      }
    }  // grouping ipv6-autoconf-config

    grouping ipv6-autoconf-state {
      description
        "Operational state data for IPv6 address autoconfiguration";
    }  // grouping ipv6-autoconf-state

    grouping ipv6-autoconf-top {
      description
        "Top-level grouping for IPv6 address autoconfiguration";
      container autoconf {
        description
          "Top-level container for IPv6 autoconf";
        container config {
          description
            "[adapted from IETF IP model RFC 7277]

          Parameters to control the autoconfiguration of IPv6
          addresses, as described in RFC 4862.";
          reference
            "RFC 4862: IPv6 Stateless Address Autoconfiguration";

          uses ipv6-autoconf-config;
        }  // container config

        container state {
          config false;
          description
            "Operational state data ";
          uses ipv6-autoconf-config;

          uses ipv6-autoconf-state;
        }  // container state
      }  // container autoconf
    }  // grouping ipv6-autoconf-top

    augment /oc-if:interfaces/oc-if:interface/oc-if:subinterfaces/oc-if:subinterface/oc-ip:ipv6 {
      description
        "Adds address autoconfiguration to the base IP model";
      uses ipv6-autoconf-top;
    }
  }  // module openconfig-if-ip-ext