module ietf-ipv4-unicast-routing { namespace "urn:ietf:params:xml:ns:yang:ietf-ipv4-unicast-routing"; prefix "v4ur"; import ietf-routing { prefix "rt"; } import ietf-inet-types { prefix "inet"; } organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: WG Chair: Lou Berger WG Chair: Juergen Schoenwaelder WG Chair: Kent Watsen Editor: Ladislav Lhotka Editor: Acee Lindem "; description "This YANG module augments the 'ietf-routing' module with basic configuration and state data for IPv4 unicast routing. Copyright (c) 2016 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 (http://trustee.ietf.org/license-info). The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'MAY', and 'OPTIONAL' in the module text are to be interpreted as described in RFC 2119 (http://tools.ietf.org/html/rfc2119). This version of this YANG module is part of RFC XXXX (http://tools.ietf.org/html/rfcXXXX); see the RFC itself for full legal notices."; revision 2016-03-09 { description "Initial revision."; reference "RFC XXXX: A YANG Data Model for Routing Management"; } /* Identities */ identity ipv4-unicast { base rt:ipv4; description "This identity represents the IPv4 unicast address family."; } /* State data */ augment "/rt:routing-state/rt:ribs/rt:rib/rt:routes/rt:route" { when "../../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-state/rt:ribs/rt:rib/rt:routes/rt:route/" + "rt:next-hop/rt:next-hop-options" { when "../../../rt:address-family = 'v4ur:ipv4-unicast'" { description "This augment is valid only for IPv4 unicast."; } description "Augment 'next-hop-options' in IPv4 unicast routes."; leaf next-hop-address { type inet:ipv4-address; description "IPv4 address of the next-hop."; } } /* Configuration data */ augment "/rt:routing/rt:routing-protocols/rt:routing-protocol/" + "rt:static-routes" { description "This augment defines the configuration of the 'static' pseudo-protocol with data specific to IPv4 unicast."; container ipv4 { description "Configuration of 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 "Configuration of next-hop."; uses rt:next-hop-content { /* augment "next-hop-options" { description "Augment 'next-hop-options' in IPv4 static routes."; leaf next-hop-address { type inet:ipv4-address; description "IPv4 address of the next-hop."; } } */ } } } } } /* RPC operations */ augment "/rt:fib-route/rt:input/rt:destination-address" { when "rt:address-family='v4ur:ipv4-unicast'" { description "This augment is valid only for IPv4 unicast."; } description "This leaf augments the 'rt:destination-address' parameter of the 'rt:fib-route' operation."; leaf address { type inet:ipv4-address; description "IPv4 destination address."; } } augment "/rt:fib-route/rt:output/rt:route" { when "rt:address-family='v4ur:ipv4-unicast'" { description "This augment is valid only for IPv4 unicast."; } description "This leaf augments the reply to the 'rt:fib-route' operation."; leaf destination-prefix { type inet:ipv4-prefix; description "IPv4 destination prefix."; } } augment "/rt:fib-route/rt:output/rt:route/rt:next-hop/" + "rt:next-hop-options" { when "../rt:address-family='v4ur:ipv4-unicast'" { description "This augment is valid only for IPv4 unicast."; } description "Augment 'next-hop-options' in the reply to the 'rt:fib-route' operation."; leaf next-hop-address { type inet:ipv4-address; description "IPv4 address of the next-hop."; } } }