module openconfig-network-instance-l3 {

  yang-version "1";

  // namespace
  namespace "http://openconfig.net/yang/network-instance-l3";

  prefix "oc-ni-l3";

  // import some basic types
  //import ietf-inet-types { prefix inet; }
  import openconfig-extensions { prefix "oc-ext"; }
  import openconfig-types { prefix "octypes"; }

  // meta
  organization "OpenConfig working group";

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

  description
    "This module contains groupings which specifically relate to
    Layer 2 network instance configuration and operational state
    parameters.";

  oc-ext:openconfig-version "0.8.0";

  revision "2017-02-28" {
    description
      "Add OSPFv2 to network instance";
    reference "0.8.0";
  }

  revision "2017-01-26" {
    description
      "Add policy forwarding to network instance";
    reference "0.7.0";
  }
    
  revision "2017-01-13" {
    description
      "Add AFT to the network instance";
    reference "0.6.0";
  }

  revision "2016-12-15" {
    description
      "Add segment routing to network instance";
    reference "0.5.0";
  }

  revision "2016-11-10" {
    description
      "Update model to include IS-IS.";
    reference "0.4.1";
  }

  revision "2016-09-28" {
    description
      "Change L2 instance to submodule; add MAC table";
    reference "0.3.0";
  }

  revision "2016-08-11" {
    description
      "Resolve repeated container names in routing protocols";
    reference "0.2.3";
  }

  revision "2016-07-08" {
    description
      "Updated with refactored routing protocol models";
    reference "0.2.1";
  }

  revision "2016-03-29" {
    description
      "Initial revision";
    reference "0.2.0";
  }

  revision "2016-03-14" {
    description
      "Initial revision";
    reference "0.1.0";
  }

  grouping l3ni-instance {
    description
      "Configuration and operational state parameters relevant
      to network instances that include a Layer 3 type";

  }

  grouping l3ni-instance-common-config {
    description
      "Configuration parameters that are common to L3 network
      instances other than the default instance";

    leaf-list enabled-address-families {
      type identityref {
        base octypes:ADDRESS_FAMILY;
      }
      description
        "The address families that are to be enabled for this
        network instance.";
    }
  }


}
