module ietf-ipv6-unicast-routing {
  yang-version "1.1";
  namespace
    "urn:ietf:params:xml:ns:yang:ietf-ipv6-unicast-routing";
  prefix "v6ur";

  import ietf-routing {
    prefix "rt";
    description
      "An 'ietf-routing' module version that is compatible with
       the Network Management Datastore Architecture (NMDA)
       is required.";
  }

  import ietf-inet-types {
    prefix "inet";
    description
      "An 'ietf-interfaces' module version that is compatible with
       the Network Management Datastore Architecture (NMDA)
       is required.";
  }

  include ietf-ipv6-router-advertisements {
    revision-date 2018-03-13;
  }
  organization
    "IETF NETMOD (Network Modeling) Working Group";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/netmod/>
     WG List:  <mailto:rtgwg@ietf.org>

     Editor:   Ladislav Lhotka
               <mailto:lhotka@nic.cz>
               Acee Lindem
               <mailto:acee@cisco.com>
               Yingzhen Qu
               <mailto:yingzhen.qu@huawei.com>";

  description
    "This YANG module augments the 'ietf-routing' module with basic
     parameters for IPv6 unicast routing.  The model fully conforms
     to the Network Management Datastore Architecture (NMDA).

     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 8349; see
     the RFC itself for full legal notices.";

  revision 2018-03-13 {
    description
      "Network Management Datastore Architecture (NMDA) revision.";
    reference
      "RFC 8349: A YANG Data Model for Routing Management
                 (NMDA Version)";
  }

  /* Identities */

  revision 2016-11-04 {
       description
         "Initial revision.";
       reference
         "RFC 8022: A YANG Data Model for Routing Management";
  }

  identity ipv6-unicast {
    base rt:ipv6;
    description
      "This identity represents the IPv6 unicast address family.";
  }

  augment "/rt:routing/rt:ribs/rt:rib/rt:routes/rt:route" {
    when "derived-from-or-self(../../rt:address-family, "
       + "'v6ur:ipv6-unicast')" {
      description
        "This augment is valid only for IPv6 unicast.";
    }
    description
      "This leaf augments an IPv6 unicast route.";
    leaf destination-prefix {
      type inet:ipv6-prefix;
      description
        "IPv6 destination prefix.";
    }
  }

  augment "/rt:routing/rt:ribs/rt:rib/rt:routes/rt:route/"
        + "rt:next-hop/rt:next-hop-options/rt:simple-next-hop" {
    when "derived-from-or-self(../../../rt:address-family, "
       + "'v6ur:ipv6-unicast')" {
      description
        "This augment is valid only for IPv6 unicast.";
    }
    description
      "Augments the 'simple-next-hop' case in IPv6 unicast routes.";
    leaf next-hop-address {
      type inet:ipv6-address;
      description
        "IPv6 address of the next hop.";
    }
  }

  augment "/rt:routing/rt:ribs/rt:rib/rt:routes/rt:route/"
        + "rt:next-hop/rt:next-hop-options/rt:next-hop-list/"
        + "rt:next-hop-list/rt:next-hop" {
    when "derived-from-or-self(../../../../../rt:address-family, "
       + "'v6ur:ipv6-unicast')" {
      description
        "This augment is valid only for IPv6 unicast.";
    }
    description
      "This leaf augments the 'next-hop-list' case of IPv6 unicast
       routes.";
    leaf address {
      type inet:ipv6-address;
      description
        "IPv6 address of the next hop.";
    }
  }

  augment
    "/rt:routing/rt:ribs/rt:rib/rt:active-route/rt:input" {
    when "derived-from-or-self(../rt:address-family, "
       + "'v6ur:ipv6-unicast')" {
      description
        "This augment is valid only for IPv6 unicast RIBs.";
    }
    description
      "This augment adds the input parameter of the 'active-route'
       action.";
    leaf destination-address {
      type inet:ipv6-address;
      description
        "IPv6 destination address.";
    }
  }

  augment "/rt:routing/rt:ribs/rt:rib/rt:active-route/"
        + "rt:output/rt:route" {
    when "derived-from-or-self(../../rt:address-family, "
       + "'v6ur:ipv6-unicast')" {
      description
        "This augment is valid only for IPv6 unicast.";
    }
    description
      "This augment adds the destination prefix to the reply of the
       'active-route' action.";
    leaf destination-prefix {
      type inet:ipv6-prefix;
      description
        "IPv6 destination prefix.";
    }
  }

  augment "/rt:routing/rt:ribs/rt:rib/rt:active-route/"
        + "rt:output/rt:route/rt:next-hop/rt:next-hop-options/"
        + "rt:simple-next-hop" {
    when "derived-from-or-self(../../../rt:address-family, "
       + "'v6ur:ipv6-unicast')" {
      description
        "This augment is valid only for IPv6 unicast.";
    }
    description
      "Augments the 'simple-next-hop' case in the reply to the
       'active-route' action.";
    leaf next-hop-address {
      type inet:ipv6-address;
      description
        "IPv6 address of the next hop.";
    }
  }

  augment "/rt:routing/rt:ribs/rt:rib/rt:active-route/"
        + "rt:output/rt:route/rt:next-hop/rt:next-hop-options/"
        + "rt:next-hop-list/rt:next-hop-list/rt:next-hop" {
    when "derived-from-or-self(../../../../../rt:address-family, "
       + "'v6ur:ipv6-unicast')" {
      description
        "This augment is valid only for IPv6 unicast.";
    }
    description
      "Augments the 'next-hop-list' case in the reply to the
       'active-route' action.";
    leaf next-hop-address {
      type inet:ipv6-address;
      description
        "IPv6 address of the next hop.";
    }
  }

  /* Data node augmentations */

  augment "/rt:routing/rt:control-plane-protocols/"
        + "rt:control-plane-protocol/rt:static-routes" {
    description
      "This augment defines the 'static' pseudo-protocol
       with data specific to IPv6 unicast.";
    container ipv6 {
      description
        "Support for a 'static' pseudo-protocol instance
         consists of a list of routes.";
      list route {
        key "destination-prefix";
        description
          "A list of static routes.";
        leaf destination-prefix {
          type inet:ipv6-prefix;
          mandatory true;
          description
            "IPv6 destination prefix.";
        }
        leaf description {
          type string;
          description
            "Textual description of the route.";
        }
        container next-hop {
          description
            "Next hop for the route.";
          uses rt:next-hop-content {
            augment "next-hop-options/simple-next-hop" {
              description
                "Augments the 'simple-next-hop' case in IPv6 static
                 routes.";
              leaf next-hop-address {
                type inet:ipv6-address;
                description
                  "IPv6 address of the next hop.";
              }
            }
            augment "next-hop-options/next-hop-list/next-hop-list/"
                  + "next-hop" {
              description
                "Augments the 'next-hop-list' case in IPv6 static
                 routes.";
              leaf next-hop-address {
                type inet:ipv6-address;
                description
                  "IPv6 address of the next hop.";
              }
            }
          }
        }
      }
    }
  }

  /*
   * The subsequent data nodes are obviated and obsoleted
   * by the Network Management Datastore Architecture
   * as described in RFC 8342.
   */
  augment "/rt:routing-state/rt:ribs/rt:rib/rt:routes/rt:route" {
    when "derived-from-or-self(../../rt:address-family,
            'v6ur:ipv6-unicast')" {
      description
        "This augment is valid only for IPv6 unicast.";
    }
    status obsolete;
    description
      "This leaf augments an IPv6 unicast route.";
    leaf destination-prefix {
      type inet:ipv6-prefix;
      status obsolete;
      description
        "IPv6 destination prefix.";
    }
  }
  augment "/rt:routing-state/rt:ribs/rt:rib/rt:routes/rt:route/"
          + "rt:next-hop/rt:next-hop-options/rt:simple-next-hop" {
    when "derived-from-or-self(../../../rt:address-family,
            'v6ur:ipv6-unicast')" {
      description
        "This augment is valid only for IPv6 unicast.";
    }
    status obsolete;
    description
      "Augments the 'simple-next-hop' case in IPv6 unicast routes.";
    leaf next-hop-address {
      type inet:ipv6-address;
      status obsolete;
      description
        "IPv6 address of the next hop.";
    }
  }
  augment "/rt:routing-state/rt:ribs/rt:rib/rt:routes/rt:route/"
          + "rt:next-hop/rt:next-hop-options/rt:next-hop-list/"
          + "rt:next-hop-list/rt:next-hop" {
    when "derived-from-or-self(../../../../../rt:address-family,
            'v6ur:ipv6-unicast')" {
      description
        "This augment is valid only for IPv6 unicast.";
    }
    status obsolete;
    description
      "This leaf augments the 'next-hop-list' case of IPv6 unicast
       routes.";
    leaf address {
      type inet:ipv6-address;
      status obsolete;
      description
        "IPv6 address of the next hop.";
    }
  }
  augment "/rt:routing-state/rt:ribs/rt:rib/"
          + "rt:active-route/rt:input" {
    when "derived-from-or-self(../rt:address-family,
            'v6ur:ipv6-unicast')" {
      description
        "This augment is valid only for IPv6 unicast RIBs.";
    }
    status obsolete;
    description
      "This augment adds the input parameter of the 'active-route'
       action.";
    leaf destination-address {
      type inet:ipv6-address;
      status obsolete;
      description
        "IPv6 destination address.";
    }
  }
  augment "/rt:routing-state/rt:ribs/rt:rib/rt:active-route/"
          + "rt:output/rt:route" {
    when "derived-from-or-self(../../rt:address-family,
            'v6ur:ipv6-unicast')" {
      description
        "This augment is valid only for IPv6 unicast.";
    }
    status obsolete;
    description
      "This augment adds the destination prefix to the reply of the
       'active-route' action.";
    leaf destination-prefix {
      type inet:ipv6-prefix;
      status obsolete;
      description
        "IPv6 destination prefix.";
    }
  }
  augment "/rt:routing-state/rt:ribs/rt:rib/rt:active-route/"
          + "rt:output/rt:route/rt:next-hop/rt:next-hop-options/"
          + "rt:simple-next-hop" {
    when "derived-from-or-self(../../../rt:address-family,
            'v6ur:ipv6-unicast')" {
      description
        "This augment is valid only for IPv6 unicast.";
    }
    status obsolete;
    description
      "Augments the 'simple-next-hop' case in the reply to the
       'active-route' action.";
    leaf next-hop-address {
      type inet:ipv6-address;
      status obsolete;
      description
        "IPv6 address of the next hop.";
    }
  }
  augment "/rt:routing-state/rt:ribs/rt:rib/rt:active-route/"
          + "rt:output/rt:route/rt:next-hop/rt:next-hop-options/"
          + "rt:next-hop-list/rt:next-hop-list/rt:next-hop" {
    when "derived-from-or-self(../../../../../rt:address-family,
            'v6ur:ipv6-unicast')" {
      description
        "This augment is valid only for IPv6 unicast.";
    }
    status obsolete;
    description
      "Augments the 'next-hop-list' case in the reply to the
       'active-route' action.";
    leaf next-hop-address {
      type inet:ipv6-address;
      status obsolete;
      description
        "IPv6 address of the next hop.";
    }
  }
}
