forked from dfedyk/hackathon-code
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ietf-ipv4-unicast-routing.yang
196 lines (169 loc) · 5.46 KB
/
ietf-ipv4-unicast-routing.yang
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
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: <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>
WG Chair: Kent Watsen
<mailto:kwatsen@juniper.net>
Editor: Ladislav Lhotka
<mailto:lhotka@nic.cz>";
description
"This YANG module augments the 'ietf-routing' module with basic
configuration and state data for IPv4 unicast routing.
Copyright (c) 2015 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 2015-10-16 {
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:routing-instance/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:routing-instance/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-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";
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.";
}
}
}