3 namespace "urn:opendaylight:params:xml:ns:yang:ovsdb";
6 import network-topology {prefix "topo"; revision-date "2013-10-21"; }
7 import yang-ext { prefix "ext"; }
8 import ietf-inet-types { prefix inet; }
9 import overlay { prefix overlay; }
10 import ietf-yang-types { prefix yang; revision-date "2013-07-15";}
11 import opendaylight-l2-types { prefix ethertype; revision-date "2013-08-27";}
13 revision "2015-01-05" {
14 description "Initial revision of southbound model";
17 typedef ovsdb-termination-point-ref {
18 description "A reference to an ovsdb termination point";
19 type instance-identifier;
22 typedef ovsdb-bridge-ref {
23 description "A reference to an ovsdb bridge";
24 type instance-identifier;
27 typedef ovsdb-node-ref {
28 description "A reference to an ovsdb node";
29 type instance-identifier;
32 typedef flow-node-ref {
33 description "A reference to a flow node";
34 type instance-identifier;
37 typedef ovsdb-bridge-name {
44 '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}';
47 "The datapath-d type represents OpenFlow datapath-id .
48 The canonical representation uses lowercase characters.
50 In the value set and its semantics, this type is similar
51 to the MacAddress textual convention of the SMIv2, but with
55 IEEE 802: IEEE Standard for Local and Metropolitan Area
56 Networks: Overview and Architecture
57 RFC 2579: Textual Conventions for SMIv2";
60 identity datapath-type-base {
61 description "Base identity for all OVSDB datapath types";
64 identity datapath-type-system {
65 description "Datapath type for the kernel datapath";
66 base datapath-type-base;
69 identity datapath-type-netdev {
70 description "Datapath type for the userspace datapath";
71 base datapath-type-base;
74 identity ovsdb-bridge-protocol-base {
75 description "Base identity for all ovsdb-bridge-protocols";
78 identity ovsdb-bridge-protocol-openflow-10 {
79 description "Ovsdb bridge protocol OpenFlow 1.0";
80 base ovsdb-bridge-protocol-base;
83 identity ovsdb-bridge-protocol-openflow-11 {
84 description "Ovsdb bridge protocol OpenFlow 1.1";
85 base ovsdb-bridge-protocol-base;
88 identity ovsdb-bridge-protocol-openflow-12 {
89 description "Ovsdb bridge protocol OpenFlow 1.2";
90 base ovsdb-bridge-protocol-base;
93 identity ovsdb-bridge-protocol-openflow-13 {
94 description "Ovsdb bridge protocol OpenFlow 1.3";
95 base ovsdb-bridge-protocol-base;
98 identity ovsdb-bridge-protocol-openflow-14 {
99 description "Ovsdb bridge protocol OpenFlow 1.4";
100 base ovsdb-bridge-protocol-base;
103 identity ovsdb-bridge-protocol-openflow-15 {
104 description "Ovsdb bridge protocol OpenFlow 1.5";
105 base ovsdb-bridge-protocol-base;
108 identity ovsdb-fail-mode-base {
109 description "Base identity for ovsdb-failmode";
112 identity ovsdb-fail-mode-standalone {
113 description "Identity for ovsdb-failmode standalone";
114 base ovsdb-fail-mode-base;
117 identity ovsdb-fail-mode-secure {
118 description "Identity for ovsdb-failmode standalone";
119 base ovsdb-fail-mode-base;
122 grouping ovsdb-bridge-attributes {
124 description "The unique identifier of the bridge";
129 description "The name of the bridge";
130 type ovsdb-bridge-name;
132 list protocol-entry {
135 description "Protocol bridge should seek to speak to its controller";
137 base ovsdb-bridge-protocol-base;
142 list controller-entry {
143 description "Bridge controller info";
146 description "Uri telling bridge how to connect to controller";
152 description "Datapath-id of the bridge";
157 description "The datapath type of the bridge";
159 base datapath-type-base;
164 description "Failmode of the bridge";
166 base ovsdb-fail-mode-base;
171 description "Flow node corresponding to this bridge";
176 description "The OVSDB which this bridge belongs to";
180 list bridge-external-ids {
181 description "Bridge external id";
182 key "bridge-external-id-key";
183 leaf bridge-external-id-key {
184 description "external-id name/key";
188 leaf bridge-external-id-value {
189 description "bridge-external-id value";
196 grouping ovsdb-node-attributes {
197 uses overlay:ip-port-locator;
203 list managed-node-entry {
206 type ovsdb-bridge-ref;
210 list datapath-type-entry {
213 description "Datapath types supported by OVSDB node";
215 base datapath-type-base;
220 list interface-type-entry {
221 key "interface-type";
222 leaf interface-type {
223 description "Interface types supported by OVSDB node";
225 base interface-type-base;
230 list openvswitch-external-ids {
231 description "Open_vSwitch table external ids";
232 key "external-id-key";
233 leaf external-id-key {
234 description "external-id name/key";
238 leaf external-id-value {
239 description "external-id value";
245 list openvswitch-other-configs {
246 description "Open_vSwitch table other configs";
247 key "other-config-key";
248 leaf other-config-key {
249 description "other-config name/key";
252 leaf other-config-value {
253 description "other-config value";
260 identity interface-type-base {
261 description "Base identity for all OVSDB interface types";
264 identity interface-type-system {
265 description "Interface type for system interfaces";
266 base interface-type-base;
269 identity interface-type-internal {
270 description "Interface type for internal interfaces";
271 base interface-type-base;
274 identity interface-type-vxlan {
275 description "Interface type for vxlan interfaces";
276 base interface-type-base;
279 identity interface-type-patch {
280 description "Interface type for patch interfaces";
281 base interface-type-base;
284 identity interface-type-tap {
285 description "Interface type for tun/tap interfaces";
286 base interface-type-base;
289 identity interface-type-geneve {
290 description "Interface type for geneve interfaces";
291 base interface-type-base;
294 identity interface-type-gre {
295 description "Interface type for gre interfaces";
296 base interface-type-base;
299 identity interface-type-ipsec-gre {
300 description "Interface type for ipsec-gre interfaces";
301 base interface-type-base;
304 identity interface-type-gre64 {
305 description "Interface type for gre64 interfaces";
306 base interface-type-base;
309 identity interface-type-ipsec-gre64 {
310 description "Interface type for ipsec-gre64 interfaces";
311 base interface-type-base;
314 identity interface-type-lisp {
315 description "Interface type for lisp interfaces";
316 base interface-type-base;
319 identity interface-type-dpdk {
320 description "Interface type for dpdk interfaces";
321 base interface-type-base;
324 identity interface-type-dpdkr {
325 description "Interface type for dpdk ring interfaces";
326 base interface-type-base;
329 identity interface-type-dpdkvhost {
330 description "Interface type for dpdkvhost interfaces";
331 base interface-type-base;
334 identity interface-type-dpdkvhostuser {
335 description "Interface type for dpdkvhostuser interfaces";
336 base interface-type-base;
339 grouping ovsdb-port-interface-attributes {
341 description "The unique identifier of the OVSDB port";
345 leaf interface-uuid {
346 description "The unique identifier of the OVSDB interface";
351 description "The name of the OVSDB port/interface";
355 leaf interface-type {
356 description "The type of the OVSDB interface";
358 base interface-type-base;
363 description "Port/Interface related optional input values";
366 description "Option name";
370 description "Option value";
376 description "Port/Interface related optional ofport";
380 leaf ofport_request {
381 description "Port/Interface related optional ofport_request, in range 1 to 65279";
388 description "The VLAN tag of the termination point.";
389 type ethertype:vlan-id;
393 description "Represents the trunks of a termination point.";
395 type ethertype:vlan-id;
400 description "The VLAN mode of the termination point.";
405 "The VLAN mode access.";
407 enum "native-tagged" {
410 "The VLAN mode native-tagged.";
412 enum "native-untagged" {
415 "The VLAN mode native-untagged.";
420 "The VLAN mode trunk.";
425 list port-external-ids {
426 description "Port external ids";
427 key "external-id-key";
428 leaf external-id-key {
429 description "external-id name/key";
433 leaf external-id-value {
434 description "external-id value";
440 list interface-external-ids {
441 description "Interface external ids";
442 key "external-id-key";
443 leaf external-id-key {
444 description "external-id name/key";
448 leaf external-id-value {
449 description "external-id value";
456 augment "/topo:network-topology/topo:topology/topo:node" {
457 description "Augmentation for bridge nodes managed by ovsdb";
458 ext:augment-identifier "ovsdb-bridge-augmentation";
459 uses ovsdb-bridge-attributes;
462 augment "/topo:network-topology/topo:topology/topo:node" {
463 description "Augment topology node for an ovsdb node";
464 ext:augment-identifier "ovsdb-node-augmentation";
465 uses ovsdb-node-attributes;
468 augment "/topo:network-topology/topo:topology/topo:node/topo:termination-point" {
469 description "Augment topology node termination-point for an ovsdb port/interface";
470 ext:augment-identifier "ovsdb-termination-point-augmentation";
471 uses ovsdb-port-interface-attributes;