232 lines
7.1 KiB
YANG
232 lines
7.1 KiB
YANG
module ietf-ipv4-unicast-routing {
|
|
|
|
namespace "urn:ietf:params:xml:ns:yang:ietf-ipv4-unicast-routing";
|
|
|
|
prefix "v4ur";
|
|
|
|
import ietf-routing {
|
|
prefix "rt";
|
|
revision-date "2014-10-26";
|
|
}
|
|
|
|
import ietf-inet-types {
|
|
prefix "inet";
|
|
revision-date "2013-07-15";
|
|
}
|
|
|
|
organization
|
|
"IETF NETMOD (NETCONF Data Modeling Language) Working Group";
|
|
|
|
contact
|
|
"WG Web: <http://tools.ietf.org/wg/netmod/>
|
|
WG List: <mailto:netmod@ietf.org>
|
|
|
|
WG Chair: Thomas Nadeau
|
|
<mailto:tnadeau@lucidvision.com>
|
|
|
|
WG Chair: Juergen Schoenwaelder
|
|
<mailto:j.schoenwaelder@jacobs-university.de>
|
|
|
|
Editor: Ladislav Lhotka
|
|
<mailto:lhotka@nic.cz>";
|
|
|
|
description
|
|
"This YANG module augments the 'ietf-routing' module with basic
|
|
configuration and operational state data for IPv4 unicast
|
|
routing.
|
|
|
|
Copyright (c) 2014 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 2014-10-26 {
|
|
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.";
|
|
}
|
|
|
|
/* Operational 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/rt:simple-next-hop" {
|
|
when "../../../rt:address-family = 'v4ur:ipv4-unicast'" {
|
|
description
|
|
"This augment is valid only for IPv4 unicast.";
|
|
}
|
|
description
|
|
"This leaf augments the 'simple-next-hop' case of IPv4 unicast
|
|
routes.";
|
|
leaf next-hop-address {
|
|
type inet:ipv4-address;
|
|
description
|
|
"IPv4 address of the next-hop.";
|
|
}
|
|
}
|
|
|
|
augment "/rt:routing-state/rt:next-hop-lists/rt:next-hop-list/"
|
|
+ "rt:next-hop/rt:next-hop-options/rt:simple-next-hop" {
|
|
when "../rt:address-family = 'v4ur:ipv4-unicast'" {
|
|
description
|
|
"This augment is valid only for IPv4 unicast.";
|
|
}
|
|
description
|
|
"This leaf augments next-hop list with IPv4 next-hop address.
|
|
routes.";
|
|
leaf next-hop-address {
|
|
type inet:ipv4-address;
|
|
description
|
|
"IPv4 address of the next-hop.";
|
|
}
|
|
}
|
|
|
|
/* Configuration data */
|
|
|
|
augment "/rt:routing/rt:routing-instance/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";
|
|
ordered-by "user";
|
|
description
|
|
"A user-ordered 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.";
|
|
grouping next-hop-content {
|
|
description
|
|
"Next-hop content for IPv4 unicast static routes.";
|
|
uses rt:next-hop-content {
|
|
augment "next-hop-options" {
|
|
description
|
|
"Add next-hop address case.";
|
|
leaf next-hop-address {
|
|
type inet:ipv4-address;
|
|
description
|
|
"IPv4 address of the next-hop.";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
choice simple-or-list {
|
|
description
|
|
"Options for next-hops.";
|
|
list multipath-entry {
|
|
if-feature rt:multipath-routes;
|
|
key "name";
|
|
description
|
|
"List of alternative next-hops.";
|
|
leaf name {
|
|
type string;
|
|
description
|
|
"A unique identifier of the next-hop entry.";
|
|
}
|
|
uses next-hop-content;
|
|
uses rt:next-hop-classifiers;
|
|
}
|
|
case simple-next-hop {
|
|
uses next-hop-content;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/* RPC methods */
|
|
|
|
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/rt:simple-next-hop" {
|
|
when "../rt:address-family='v4ur:ipv4-unicast'" {
|
|
description
|
|
"This augment is valid only for IPv4 unicast.";
|
|
}
|
|
description
|
|
"This leaf augments the 'simple-next-hop' case in the reply to
|
|
the 'rt:fib-route' operation.";
|
|
leaf next-hop-address {
|
|
type inet:ipv4-address;
|
|
description
|
|
"IPv4 address of the next-hop.";
|
|
}
|
|
}
|
|
}
|
|
|