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";
}
import ietf-interfaces {
prefix "if";
}
organization
"IETF NETMOD (NETCONF Data Modeling Language) Working Group";
contact
"WG Web:
WG List:
WG Chair: David Kessens
WG Chair: Juergen Schoenwaelder
Editor: Ladislav Lhotka
";
description
"This module augments the 'ietf-routing' module with YANG
definitions for basic configuration of IPv4 unicast routing.
Copyright (c) 2011 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).
This version of this YANG module is part of RFC XXXX; see the
RFC itself for full legal notices.
";
revision 2011-09-23 {
description
"Initial revision.";
reference
"RFC XXXX: A YANG Data Model for Routing Configuration";
}
/* Groupings */
grouping route-content {
description
"Specific parameters of IPv4 unicast routes.";
leaf destination-prefix {
type inet:ipv4-prefix;
description
"IPv4 destination prefix.";
}
leaf next-hop {
type inet:ipv4-address;
description
"IPv4 address of the next hop.";
}
leaf outgoing-interface {
type if:interface-ref;
description
"Outgoing interface.";
}
}
/* RPC Methods */
augment "/rt:get-route/rt:input/rt:destination-address" {
when "address-family='ipV4' and safi='nlri-unicast'" {
description
"This augment is valid only for IPv4 unicast.";
}
description
"The 'address' leaf augments the 'rt:destination-address'
parameter of the 'rt:get-route' operation.";
leaf address {
type inet:ipv4-address;
description
"IPv4 destination address.";
}
}
augment "/rt:get-route/rt:output/rt:route" {
when "address-family='ipV4' and safi='nlri-unicast'" {
description
"This augment is valid only for IPv4 unicast.";
}
description
"Contents of the reply to 'rt:get-route' operation.";
uses route-content;
}
/* Data nodes */
augment "/rt:routing/rt:router/rt:routing-protocols/"
+ "rt:routing-protocol" {
when "rt:type='rt:static'" {
description
"The augment is only valid for the 'static'
pseudo-protocol.";
}
description
"This augment defines the configuration of the static
pseudo-protocol with data specific for IPv4 unicast.";
container ipv4-unicast-static-routes {
description
"Configuration of a 'static' pseudo-protocol instance
consists of a list of routes.";
list static-route {
key "id";
ordered-by "user";
description
"A user-ordered list of static routes.";
leaf id {
type string;
description
"An identification string for the route.";
}
leaf description {
type string;
description
"Textual description of the route.";
}
uses route-content;
}
}
}
augment "/rt:routing/rt:router/rt:routing-tables/rt:routing-table/"
+ "rt:routes/rt:route" {
when "../../rt:address-family='ipV4' and "
+ "../../rt:safi='nlri-unicast'" {
description
"This augment is valid only for IPv4 unicast.";
}
description
"This augment defines the content of IPv4 unicast routes.";
uses route-content;
}
}