1 //TODO mandatory statements
4 namespace "urn:opendaylight:params:xml:ns:yang:lisp";
6 import ietf-interfaces {
9 import ietf-inet-types {
12 import ietf-lisp-address-types {
16 "FD.io Overlay Forwarding Engine (ONE) project";
18 "Florin Coras <fcoras@cisco.com>
19 Vina Ermagan <vermagan@cisco.com>
20 ONE list <one@lists.fd.io>";
23 "This YANG module defines the generic configuration and
24 operational data for LISP in VPP";
28 "This revision adds support for L2 features";
30 "https://tools.ietf.org/html/rfc6830";
33 revision "2016-05-20" {
35 "Initial revision of LISP model";
37 "https://tools.ietf.org/html/rfc6830";
40 typedef locator-set-ref {
42 path "/lisp/lisp-feature-data/locator-sets/locator-set/name";
44 description "Locator-set reference";
49 description "Mapping ID";
52 typedef map-reply-action {
57 "Mapping is kept alive and no encapsulation occurs.";
59 enum natively-forward {
62 "Matching packets are not encapsulated or dropped but
65 enum send-map-request {
68 "Matching packets invoke Map-Requests.";
73 "Matching packets are dropped.";
77 "Defines the lisp map-cache ACT type";
79 "https://tools.ietf.org/html/rfc6830#section-6.1.4";
81 grouping locator-properties-grouping {
83 "Properties of a RLOC";
96 grouping locator-sets-grouping {
97 // NOTE: to be used only for local locators
98 // lisp_add_del_locator_set locator-set <ls_name> [del]
99 // lisp_add_del_locator locator-set <ls_name> iface <iface_name>
100 // p <val> w <val> [del]
101 container locator-sets {
106 description "Locator-set name";
111 type if:interface-ref;
112 description "Interface reference";
114 uses locator-properties-grouping;
115 description "List of interfaces part of the locator-set";
117 description "Locator-set";
119 description "Locator-sets";
121 description "Grouping for locator-sets";
124 grouping adjacencies-grouping {
125 container adjacencies {
130 description "Adjacency id";
132 container local-eid {
133 uses lisp-types:lisp-address;
134 description "Local EID that must have a local mapping";
136 container remote-eid {
137 uses lisp-types:lisp-address;
138 description "Remote EID that must have a remote mapping";
140 description "List of adjacencies";
142 description "Adjacencies programmed into the data plane";
144 description "Adjacencies grouping";
147 grouping dp-subtable-grouping {
148 // Once both vni and table-id are set:
149 // lisp_eid_table_add_del_map <vni> <dp_table>
150 container local-mappings {
155 description "Id that uniquely identifies a mapping";
158 uses lisp-types:lisp-address;
159 description "EID address";
162 type locator-set-ref;
163 description "Locator-set";
165 description "Local mapping";
167 description "Local EID to locator-set mappings";
169 // lisp_add_del_local_eid eid <ip-address/mask> locator-set
171 // lisp_add_del_remote_mapping vni <vni> eid <eid> seid
172 // <seid> [action <action>] rloc
173 // <ip-addr> [rloc <ip-addr> ..]
174 // NOTE: 1.lisp_add_del_remote_mapping seid is used to build
175 // src/dst mappings. Rlocs have p/w in them
176 container remote-mappings {
177 list remote-mapping {
181 description "Id that uniquely identifies a mapping";
184 description "Remote EID address";
185 uses lisp-types:lisp-address;
189 description "Mapping validity period.";
194 description "Authoritative bit.";
198 "Bit that indicates if mapping comes from an
199 authoritative source.";
201 choice locator-list {
203 "list of locators are either negative, or positive.";
204 case negative-mapping {
205 //NOTE - Wrapped in container to prevent leaf map-reply-action enforcing impresence of rlocs
207 leaf map-reply-action {
208 type map-reply-action;
210 "Forwarding action for a negative mapping.";
214 case positive-mapping {
215 // NOTE if container is not needed to encapsulate
216 // locator list, remove it
221 type inet:ip-address;
222 description "Locator address";
224 uses locator-properties-grouping;
225 description "Remote locator";
228 "List of locators for a positive mapping.";
232 uses adjacencies-grouping;
233 description "List of remote mappings";
235 description "Map-cache/remote mappings cache";
237 description "Data path subtable (VRF/bridge domain) grouping";
240 grouping eid-table-grouping {
241 container eid-table {
243 key "virtual-network-identifier";
244 leaf virtual-network-identifier {
248 container vrf-subtable {
251 description "table-id";
254 uses dp-subtable-grouping;
255 description "VRF subtable";
257 container bridge-domain-subtable {
258 leaf bridge-domain-ref {
260 description "Name reference to existing bridge domain";
263 uses dp-subtable-grouping;
264 description "Bridge domain subtable";
266 description "VNI tables";
268 description "EID table";
270 description "EID table grouping";
272 grouping map-resolvers-grouping {
273 container map-resolvers {
274 // lisp_add_del_map_resolver <ip>
278 type inet:ip-address;
279 description "Map-resolver IP address";
281 description "List of map-resolvers";
283 description "Map-resolvers configured";
285 description "Map-Resolver grouping";
287 grouping pitr-cfg-grouping {
288 // lisp_pitr_set_locator_set <ip>
291 type locator-set-ref;
292 description "Locator-set reference";
294 description "Proxy-ITR configuration";
296 description "PITR configuration grouping";
299 grouping itr-remote-locator-sets-grouping{
300 container itr-remote-locator-set{
301 // lisp_add_del_map_request_itr_rlocs add/del <ls_name>
302 // lisp_get_map_request_itr_rlocs
303 leaf remote-locator-set-name{
304 type locator-set-ref;
305 description "Locators to be used in map-requests";
310 grouping lisp-feature-data-grouping{
311 //aggregation of all lisp data, restricted by Lisp beeing enabled
313 container lisp-feature-data{
314 when "../lisp:enable = 'true'";
316 uses locator-sets-grouping;
317 uses eid-table-grouping;
318 uses map-resolvers-grouping;
319 uses pitr-cfg-grouping;
320 uses itr-remote-locator-sets-grouping;
324 // ref https://wiki.fd.io/view/ONE/Command-line_Interface_CLI_Guide
327 // lisp_enable_disable / lisp_enable_disable_status_dump
330 description "Enable/disable LISP feature";
332 uses lisp-feature-data-grouping;
333 description "LISP configuration";
336 container lisp-state {
338 // lisp_enable_disable / lisp_enable_disable_status_dump
341 description "Enable/disable LISP feature";
343 uses lisp-feature-data-grouping;
344 description "LISP state";