ietf-ipv4-unicast-routing

This YANG module augments the 'ietf-routing' module with basic parameters for IPv4 unicast routing. The model fully conforms to...

  • Version: 2018-03-13

    ietf-ipv4-unicast-routing@2018-03-13


    
      module ietf-ipv4-unicast-routing {
    
        yang-version 1.1;
    
        namespace
          "urn:ietf:params:xml:ns:yang:ietf-ipv4-unicast-routing";
    
        prefix v4ur;
    
        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;
        }
    
        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 IPv4 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)";
    
        }
    
        revision "2016-11-04" {
          description "Initial revision.";
          reference
            "RFC 8022: A YANG Data Model for Routing Management";
    
        }
    
    
        identity ipv4-unicast {
          base rt:ipv4;
          description
            "This identity represents the IPv4 unicast address family.";
        }
    
        augment /rt:routing/rt:ribs/rt:rib/rt:routes/rt:route {
          when
            "derived-from-or-self(../../rt:address-family, "
              + "'v4ur:ipv4-unicast')" {
            description
              "This augment is valid only for IPv4 unicast.";
          }
          description
            "This leaf augments an IPv4 unicast route.";
          leaf destination-prefix {
            type inet:ipv4-prefix;
            description
              "IPv4 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, "
              + "'v4ur:ipv4-unicast')" {
            description
              "This augment is valid only for IPv4 unicast.";
          }
          description
            "Augments the 'simple-next-hop' case in IPv4 unicast routes.";
          leaf next-hop-address {
            type inet:ipv4-address;
            description
              "IPv4 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, "
              + "'v4ur:ipv4-unicast')" {
            description
              "This augment is valid only for IPv4 unicast.";
          }
          description
            "This leaf augments the 'next-hop-list' case of IPv4 unicast
           routes.";
          leaf address {
            type inet:ipv4-address;
            description
              "IPv4 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, "
              + "'v4ur:ipv4-unicast')" {
            description
              "This augment is valid only for IPv4 unicast RIBs.";
          }
          description
            "This augment adds the input parameter of the 'active-route'
           action.";
          leaf destination-address {
            type inet:ipv4-address;
            description
              "IPv4 destination address.";
          }
        }
    
        augment /rt:routing/rt:ribs/rt:rib/rt:active-route/rt:output/rt:route {
          when
            "derived-from-or-self(../../rt:address-family, "
              + "'v4ur:ipv4-unicast')" {
            description
              "This augment is valid only for IPv4 unicast.";
          }
          description
            "This augment adds the destination prefix to the reply of the
           'active-route' action.";
          leaf destination-prefix {
            type inet:ipv4-prefix;
            description
              "IPv4 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, "
              + "'v4ur:ipv4-unicast')" {
            description
              "This augment is valid only for IPv4 unicast.";
          }
          description
            "Augments the 'simple-next-hop' case in the reply to the
           'active-route' action.";
          leaf next-hop-address {
            type inet:ipv4-address;
            description
              "IPv4 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, "
              + "'v4ur:ipv4-unicast')" {
            description
              "This augment is valid only for IPv4 unicast.";
          }
          description
            "Augments the 'next-hop-list' case in the reply to the
           'active-route' action.";
          leaf next-hop-address {
            type inet:ipv4-address;
            description
              "IPv4 address of the next hop.";
          }
        }
    
        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 IPv4 unicast.";
          container ipv4 {
            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:ipv4-prefix;
                mandatory true;
                description
                  "IPv4 destination prefix.";
              }
    
              leaf description {
                type string;
                description
                  "Textual description of the route.";
              }
    
              container next-hop {
                description
                  "Support for next-hop.";
                uses rt:next-hop-content {
                  augment next-hop-options/simple-next-hop {
                    description
                      "Augments the 'simple-next-hop' case in IPv4 static
                     routes.";
                    leaf next-hop-address {
                      type inet:ipv4-address;
                      description
                        "IPv4 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 IPv4 static
                     routes.";
                    leaf next-hop-address {
                      type inet:ipv4-address;
                      description
                        "IPv4 address of the next hop.";
                    }
                  }
                }
              }  // container next-hop
            }  // list route
          }  // container ipv4
        }
    
        augment /rt:routing-state/rt:ribs/rt:rib/rt:routes/rt:route {
          when
            "derived-from-or-self(../../rt:address-family, "
              + "'v4ur:ipv4-unicast')" {
            description
              "This augment is valid only for IPv4 unicast.";
          }
          status obsolete;
          description
            "This leaf augments an IPv4 unicast route.";
          leaf destination-prefix {
            type inet:ipv4-prefix;
            status obsolete;
            description
              "IPv4 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, 'v4ur:ipv4-unicast')" {
            description
              "This augment is valid only for IPv4 unicast.";
          }
          status obsolete;
          description
            "Augments the 'simple-next-hop' case in IPv4 unicast routes.";
          leaf next-hop-address {
            type inet:ipv4-address;
            status obsolete;
            description
              "IPv4 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,
                'v4ur:ipv4-unicast')" {
            description
              "This augment is valid only for IPv4 unicast.";
          }
          status obsolete;
          description
            "This leaf augments the 'next-hop-list' case of IPv4 unicast
           routes.";
          leaf address {
            type inet:ipv4-address;
            status obsolete;
            description
              "IPv4 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,
                'v4ur:ipv4-unicast')" {
            description
              "This augment is valid only for IPv4 unicast RIBs.";
          }
          status obsolete;
          description
            "This augment adds the input parameter of the 'active-route'
           action.";
          leaf destination-address {
            type inet:ipv4-address;
            status obsolete;
            description
              "IPv4 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,
                'v4ur:ipv4-unicast')" {
            description
              "This augment is valid only for IPv4 unicast.";
          }
          status obsolete;
          description
            "This augment adds the destination prefix to the reply of the
           'active-route' action.";
          leaf destination-prefix {
            type inet:ipv4-prefix;
            status obsolete;
            description
              "IPv4 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,
                'v4ur:ipv4-unicast')" {
            description
              "This augment is valid only for IPv4 unicast.";
          }
          status obsolete;
          description
            "Augments the 'simple-next-hop' case in the reply to the
           'active-route' action.";
          leaf next-hop-address {
            type inet:ipv4-address;
            status obsolete;
            description
              "IPv4 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,
                'v4ur:ipv4-unicast')" {
            description
              "This augment is valid only for IPv4 unicast.";
          }
          status obsolete;
          description
            "Augments the 'next-hop-list' case in the reply to the
           'active-route' action.";
          leaf next-hop-address {
            type inet:ipv4-address;
            status obsolete;
            description
              "IPv4 address of the next hop.";
          }
        }
      }  // module ietf-ipv4-unicast-routing
    

© 2023 YumaWorks, Inc. All rights reserved.