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, by adding vrf-subtable/bridge-domain-subtable
29 containers under vni-table. Both contains mandatory reference to index(vrf-subtable)
30 or name(bridge-domain-subtable) of respective kind of table.";
33 "https://tools.ietf.org/html/rfc6830";
36 revision "2016-05-20" {
38 "Initial revision of LISP model";
40 "https://tools.ietf.org/html/rfc6830";
43 typedef locator-set-ref {
45 path "/lisp/lisp-feature-data/locator-sets/locator-set/name";
47 description "Locator-set reference";
52 description "Mapping ID";
55 typedef map-reply-action {
60 "Mapping is kept alive and no encapsulation occurs.";
62 enum natively-forward {
65 "Matching packets are not encapsulated or dropped but
68 enum send-map-request {
71 "Matching packets invoke Map-Requests.";
76 "Matching packets are dropped.";
80 "Defines the lisp map-cache ACT type";
82 "https://tools.ietf.org/html/rfc6830#section-6.1.4";
84 grouping locator-properties-grouping {
86 "Properties of a RLOC";
99 grouping locator-sets-grouping {
100 // NOTE: to be used only for local locators
101 // lisp_add_del_locator_set locator-set <ls_name> [del]
102 // lisp_add_del_locator locator-set <ls_name> iface <iface_name>
103 // p <val> w <val> [del]
104 container locator-sets {
109 description "Locator-set name";
114 type if:interface-ref;
115 description "Interface reference";
117 uses locator-properties-grouping;
118 description "List of interfaces part of the locator-set";
120 description "Locator-set";
122 description "Locator-sets";
124 description "Grouping for locator-sets";
127 grouping adjacencies-grouping {
128 container adjacencies {
133 description "Adjacency id";
135 container local-eid {
136 uses lisp-types:lisp-address;
137 description "Local EID that must have a local mapping";
139 container remote-eid {
140 uses lisp-types:lisp-address;
141 description "Remote EID that must have a remote mapping";
143 description "List of adjacencies";
145 description "Adjacencies programmed into the data plane";
147 description "Adjacencies grouping";
150 grouping dp-subtable-grouping {
151 // Once both vni and table-id are set:
152 // lisp_eid_table_add_del_map <vni> <dp_table>
153 container local-mappings {
158 description "Id that uniquely identifies a mapping";
161 uses lisp-types:lisp-address;
162 description "EID address";
165 type locator-set-ref;
166 description "Locator-set";
168 description "Local mapping";
170 description "Local EID to locator-set mappings";
172 // lisp_add_del_local_eid eid <ip-address/mask> locator-set
174 // lisp_add_del_remote_mapping vni <vni> eid <eid> seid
175 // <seid> [action <action>] rloc
176 // <ip-addr> [rloc <ip-addr> ..]
177 // NOTE: 1.lisp_add_del_remote_mapping seid is used to build
178 // src/dst mappings. Rlocs have p/w in them
179 container remote-mappings {
180 list remote-mapping {
184 description "Id that uniquely identifies a mapping";
187 description "Remote EID address";
188 uses lisp-types:lisp-address;
192 description "Mapping validity period.";
197 description "Authoritative bit.";
201 "Bit that indicates if mapping comes from an
202 authoritative source.";
204 choice locator-list {
206 "list of locators are either negative, or positive.";
207 case negative-mapping {
208 //NOTE - Wrapped in container to prevent leaf map-reply-action enforcing impresence of rlocs
210 leaf map-reply-action {
211 type map-reply-action;
213 "Forwarding action for a negative mapping.";
217 case positive-mapping {
218 // NOTE if container is not needed to encapsulate
219 // locator list, remove it
224 type inet:ip-address;
225 description "Locator address";
227 uses locator-properties-grouping;
228 description "Remote locator";
231 "List of locators for a positive mapping.";
235 uses adjacencies-grouping;
236 description "List of remote mappings";
238 description "Map-cache/remote mappings cache";
240 description "Data path subtable (VRF/bridge domain) grouping";
243 grouping eid-table-grouping {
244 container eid-table {
246 key "virtual-network-identifier";
247 leaf virtual-network-identifier {
251 container vrf-subtable {
252 presence "Enable L3 mapping";
255 description "table-id";
259 uses dp-subtable-grouping;
260 description "VRF subtable";
262 container bridge-domain-subtable {
263 presence "Enable L2 mapping";
264 leaf bridge-domain-ref {
266 description "Name reference to existing bridge domain";
270 uses dp-subtable-grouping;
271 description "Bridge domain subtable";
273 description "VNI tables";
275 description "EID table";
277 description "EID table grouping";
279 grouping map-resolvers-grouping {
280 container map-resolvers {
281 // lisp_add_del_map_resolver <ip>
285 type inet:ip-address;
286 description "Map-resolver IP address";
288 description "List of map-resolvers";
290 description "Map-resolvers configured";
292 description "Map-Resolver grouping";
294 grouping pitr-cfg-grouping {
295 // lisp_pitr_set_locator_set <ip>
298 type locator-set-ref;
299 description "Locator-set reference";
301 description "Proxy-ITR configuration";
303 description "PITR configuration grouping";
306 grouping itr-remote-locator-sets-grouping{
307 container itr-remote-locator-set{
308 // lisp_add_del_map_request_itr_rlocs add/del <ls_name>
309 // lisp_get_map_request_itr_rlocs
310 leaf remote-locator-set-name{
311 type locator-set-ref;
312 description "Locators to be used in map-requests";
317 grouping lisp-feature-data-grouping{
318 //aggregation of all lisp data, restricted by Lisp beeing enabled
320 container lisp-feature-data{
321 when "../lisp:enable = 'true'";
323 uses locator-sets-grouping;
324 uses eid-table-grouping;
325 uses map-resolvers-grouping;
326 uses pitr-cfg-grouping;
327 uses itr-remote-locator-sets-grouping;
331 // ref https://wiki.fd.io/view/ONE/Command-line_Interface_CLI_Guide
334 // lisp_enable_disable / lisp_enable_disable_status_dump
337 description "Enable/disable LISP feature";
339 uses lisp-feature-data-grouping;
340 description "LISP configuration";
343 container lisp-state {
345 // lisp_enable_disable / lisp_enable_disable_status_dump
348 description "Enable/disable LISP feature";
350 uses lisp-feature-data-grouping;
351 description "LISP state";