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; revision-date 2010-09-24; }
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";
149 leaf controller-uuid {
150 description "The unique identifier of the controller";
157 description "Datapath-id of the bridge";
162 description "The datapath type of the bridge";
164 base datapath-type-base;
169 description "Failmode of the bridge";
171 base ovsdb-fail-mode-base;
176 description "Flow node corresponding to this bridge";
181 description "The OVSDB which this bridge belongs to";
185 list bridge-external-ids {
186 description "Bridge external id";
187 key "bridge-external-id-key";
188 leaf bridge-external-id-key {
189 description "external-id name/key";
193 leaf bridge-external-id-value {
194 description "bridge-external-id value";
200 list bridge-other-configs {
201 description "Other config attributes for Bridges";
202 key "bridge-other-config-key";
203 leaf bridge-other-config-key {
204 description "bridge-other-config name/key";
207 leaf bridge-other-config-value {
208 description "bridge-other-config value";
215 grouping ovsdb-node-attributes {
216 uses overlay:ip-port-locator;
222 list managed-node-entry {
225 type ovsdb-bridge-ref;
229 list datapath-type-entry {
232 description "Datapath types supported by OVSDB node";
234 base datapath-type-base;
239 list interface-type-entry {
240 key "interface-type";
241 leaf interface-type {
242 description "Interface types supported by OVSDB node";
244 base interface-type-base;
249 list openvswitch-external-ids {
250 description "Open_vSwitch table external ids";
251 key "external-id-key";
252 leaf external-id-key {
253 description "external-id name/key";
257 leaf external-id-value {
258 description "external-id value";
264 list openvswitch-other-configs {
265 description "Open_vSwitch table other configs";
266 key "other-config-key";
267 leaf other-config-key {
268 description "other-config name/key";
271 leaf other-config-value {
272 description "other-config value";
279 identity interface-type-base {
280 description "Base identity for all OVSDB interface types";
283 identity interface-type-system {
284 description "Interface type for system interfaces";
285 base interface-type-base;
288 identity interface-type-internal {
289 description "Interface type for internal interfaces";
290 base interface-type-base;
293 identity interface-type-vxlan {
294 description "Interface type for vxlan interfaces";
295 base interface-type-base;
298 identity interface-type-patch {
299 description "Interface type for patch interfaces";
300 base interface-type-base;
303 identity interface-type-tap {
304 description "Interface type for tun/tap interfaces";
305 base interface-type-base;
308 identity interface-type-geneve {
309 description "Interface type for geneve interfaces";
310 base interface-type-base;
313 identity interface-type-gre {
314 description "Interface type for gre interfaces";
315 base interface-type-base;
318 identity interface-type-ipsec-gre {
319 description "Interface type for ipsec-gre interfaces";
320 base interface-type-base;
323 identity interface-type-gre64 {
324 description "Interface type for gre64 interfaces";
325 base interface-type-base;
328 identity interface-type-ipsec-gre64 {
329 description "Interface type for ipsec-gre64 interfaces";
330 base interface-type-base;
333 identity interface-type-lisp {
334 description "Interface type for lisp interfaces";
335 base interface-type-base;
338 identity interface-type-dpdk {
339 description "Interface type for dpdk interfaces";
340 base interface-type-base;
343 identity interface-type-dpdkr {
344 description "Interface type for dpdk ring interfaces";
345 base interface-type-base;
348 identity interface-type-dpdkvhost {
349 description "Interface type for dpdkvhost interfaces";
350 base interface-type-base;
353 identity interface-type-dpdkvhostuser {
354 description "Interface type for dpdkvhostuser interfaces";
355 base interface-type-base;
358 grouping ovsdb-port-interface-attributes {
360 description "The unique identifier of the OVSDB port";
364 leaf interface-uuid {
365 description "The unique identifier of the OVSDB interface";
370 description "The name of the OVSDB port/interface";
374 leaf interface-type {
375 description "The type of the OVSDB interface";
377 base interface-type-base;
382 description "Port/Interface related optional input values";
385 description "Option name";
389 description "Option value";
395 description "Port/Interface related optional ofport";
399 leaf ofport_request {
400 description "Port/Interface related optional ofport_request, in range 1 to 65279";
407 description "The VLAN tag of the termination point.";
408 type ethertype:vlan-id;
412 description "Represents the trunks of a termination point.";
414 type ethertype:vlan-id;
419 description "The VLAN mode of the termination point.";
424 "The VLAN mode access.";
426 enum "native-tagged" {
429 "The VLAN mode native-tagged.";
431 enum "native-untagged" {
434 "The VLAN mode native-untagged.";
439 "The VLAN mode trunk.";
444 list port-other-configs {
445 description "Other config attributes for Ports";
446 key "other-config-key";
447 leaf other-config-key {
448 description "port-other-config name/key";
451 leaf other-config-value {
452 description "port-other-config value";
457 list interface-other-configs {
458 description "Other config attributes for Interfaces";
459 key "other-config-key";
460 leaf other-config-key {
461 description "interface-other-config name/key";
464 leaf other-config-value {
465 description "interface-other-config value";
470 list port-external-ids {
471 description "Port external ids";
472 key "external-id-key";
473 leaf external-id-key {
474 description "external-id name/key";
478 leaf external-id-value {
479 description "external-id value";
485 list interface-external-ids {
486 description "Interface external ids";
487 key "external-id-key";
488 leaf external-id-key {
489 description "external-id name/key";
493 leaf external-id-value {
494 description "external-id value";
501 augment "/topo:network-topology/topo:topology/topo:node" {
502 description "Augmentation for bridge nodes managed by ovsdb";
503 ext:augment-identifier "ovsdb-bridge-augmentation";
504 uses ovsdb-bridge-attributes;
507 augment "/topo:network-topology/topo:topology/topo:node" {
508 description "Augment topology node for an ovsdb node";
509 ext:augment-identifier "ovsdb-node-augmentation";
510 uses ovsdb-node-attributes;
513 augment "/topo:network-topology/topo:topology/topo:node/topo:termination-point" {
514 description "Augment topology node termination-point for an ovsdb port/interface";
515 ext:augment-identifier "ovsdb-termination-point-augmentation";
516 uses ovsdb-port-interface-attributes;