module openconfig-aft-network-instance {
  yang-version "1";

  namespace "http://openconfig.net/yang/aft/ni";
  prefix "oc-aftni";

  import openconfig-extensions { prefix "oc-ext"; }
  import openconfig-network-instance { prefix "oc-ni"; }

  organization
    "OpenConfig working group";

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

  description
    "This module provides augmentations that are utilized
     when building the OpenConfig network instance model to
     add per-NI AFTs.";

  oc-ext:openconfig-version "0.2.1";

  revision 2017-01-13 {
    description
      "Updated revision for external review";
    reference "0.2.1";
  }


  typedef network-instance-ref {
    type leafref {
      path "/oc-ni:network-instances/oc-ni:network-instance/oc-ni:config/oc-ni:name";
    }
    description
      "A re-usable type that can be referenced within other
       modules that references a network instance.";
  }

  augment "/oc-ni:network-instances/oc-ni:network-instance/" +
          "oc-ni:afts/oc-ni:ipv4-unicast/oc-ni:ipv4-entry/" +
          "oc-ni:next-hops/oc-ni:next-hop/oc-ni:state" {

    description
      "Add leaves that require referencing of a network instance to the
      operational state parameters of a next-hop within the AFT for IPv4
      unicast.";

    uses aft-nexthop-ni-state;
  }

 augment "/oc-ni:network-instances/oc-ni:network-instance/" +
          "oc-ni:afts/oc-ni:ipv6-unicast/oc-ni:ipv6-entry/" +
          "oc-ni:next-hops/oc-ni:next-hop/oc-ni:state" {

    description
      "Add leaves that require referencing of a network instance to the
      operational state parameters of a next-hop within the AFT for IPv6
      unicast.";

    uses aft-nexthop-ni-state;
  }

  grouping aft-nexthop-ni-state {
    description
      "Operational state parameters relating to a next-hop which reference a
      network instance.";

    leaf network-instance {
      type network-instance-ref;
      description
        "The network-instance within which the next-hop should be resolved.
         When this leaf is unspecified, the next-hop is resolved within 
         the local instance.";
    }
  }

  augment "/oc-ni:network-instances/oc-ni:network-instance/" +
          "oc-ni:afts/oc-ni:ipv4-unicast/oc-ni:ipv4-entry/oc-ni:state" {
    description
      "Add leaves that require referencing of a network instance to the
      operational state parameters of an entry within the IPv4 unicast AFT.";

    uses aft-entry-ni-state;
  }

  augment "/oc-ni:network-instances/oc-ni:network-instance/" +
          "oc-ni:afts/oc-ni:ipv6-unicast/oc-ni:ipv6-entry/oc-ni:state" {
    description
      "Add leaves that require referencing of a network instance to the
      operational state parameters of an entry within the IPv6 unicast AFT.";

    uses aft-entry-ni-state;
  }

  grouping aft-entry-ni-state {
    description
      "Operational state parameters relating to an AFT entry which reference
      a network instance.";

    leaf origin-network-instance {
      type network-instance-ref;
      description
        "If the AFT entry was imported from another network instance (e.g., it
        corresponds to a L3 forwarding entry which was learned within another
        network-instance), the value of this leaf reflects the network-instance
        from which it was learned.

        For example, if the local network-instance corresponds to a L3VRF, and
        routes are imported from the VPNv4 address-family of the BGP instance
        in the DEFAULT_INSTANCE, then this value would reflect the
        DEFAULT_INSTANCE as the origin-network-instance.";
    }
  }
}
