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";
127 leaf bridge-openflow-node-ref {
128 description "A reference to the openflow node";
129 type instance-identifier;
133 description "The name of the bridge";
134 type ovsdb-bridge-name;
136 list protocol-entry {
139 description "Protocol bridge should seek to speak to its controller";
141 base ovsdb-bridge-protocol-base;
146 list controller-entry {
147 description "Bridge controller info";
150 description "Uri telling bridge how to connect to controller";
153 leaf controller-uuid {
154 description "The unique identifier of the controller";
164 description "Datapath-id of the bridge";
169 description "The datapath type of the bridge";
171 base datapath-type-base;
176 description "Failmode of the bridge";
178 base ovsdb-fail-mode-base;
183 description "Flow node corresponding to this bridge";
188 description "The OVSDB which this bridge belongs to";
192 list bridge-external-ids {
193 description "Bridge external id";
194 key "bridge-external-id-key";
195 leaf bridge-external-id-key {
196 description "external-id name/key";
200 leaf bridge-external-id-value {
201 description "bridge-external-id value";
207 list bridge-other-configs {
208 description "Other config attributes for Bridges";
209 key "bridge-other-config-key";
210 leaf bridge-other-config-key {
211 description "bridge-other-config name/key";
214 leaf bridge-other-config-value {
215 description "bridge-other-config value";
222 grouping ovsdb-connection-info-attributes {
224 type inet:ip-address;
225 description "Ovsdb Connection Remote IP";
228 type inet:port-number;
229 description "Ovsdb Connection Remote Port Number";
232 type inet:ip-address;
233 description "Ovsdb Connection Local IP";
236 type inet:port-number;
237 description "Ovsdb Connection Local Port Number IP";
241 grouping ovsdb-node-attributes {
242 container connection-info{
243 uses ovsdb-connection-info-attributes;
250 list managed-node-entry {
253 type ovsdb-bridge-ref;
257 list datapath-type-entry {
260 description "Datapath types supported by OVSDB node";
262 base datapath-type-base;
267 list interface-type-entry {
268 key "interface-type";
269 leaf interface-type {
270 description "Interface types supported by OVSDB node";
272 base interface-type-base;
277 list openvswitch-external-ids {
278 description "Open_vSwitch table external ids";
279 key "external-id-key";
280 leaf external-id-key {
281 description "external-id name/key";
285 leaf external-id-value {
286 description "external-id value";
292 list openvswitch-other-configs {
293 description "Open_vSwitch table other configs";
294 key "other-config-key";
295 leaf other-config-key {
296 description "other-config name/key";
299 leaf other-config-value {
300 description "other-config value";
307 identity interface-type-base {
308 description "Base identity for all OVSDB interface types";
311 identity interface-type-system {
312 description "Interface type for system interfaces";
313 base interface-type-base;
316 identity interface-type-internal {
317 description "Interface type for internal interfaces";
318 base interface-type-base;
321 identity interface-type-vxlan {
322 description "Interface type for vxlan interfaces";
323 base interface-type-base;
326 identity interface-type-patch {
327 description "Interface type for patch interfaces";
328 base interface-type-base;
331 identity interface-type-tap {
332 description "Interface type for tun/tap interfaces";
333 base interface-type-base;
336 identity interface-type-geneve {
337 description "Interface type for geneve interfaces";
338 base interface-type-base;
341 identity interface-type-gre {
342 description "Interface type for gre interfaces";
343 base interface-type-base;
346 identity interface-type-ipsec-gre {
347 description "Interface type for ipsec-gre interfaces";
348 base interface-type-base;
351 identity interface-type-gre64 {
352 description "Interface type for gre64 interfaces";
353 base interface-type-base;
356 identity interface-type-ipsec-gre64 {
357 description "Interface type for ipsec-gre64 interfaces";
358 base interface-type-base;
361 identity interface-type-lisp {
362 description "Interface type for lisp interfaces";
363 base interface-type-base;
366 identity interface-type-dpdk {
367 description "Interface type for dpdk interfaces";
368 base interface-type-base;
371 identity interface-type-dpdkr {
372 description "Interface type for dpdk ring interfaces";
373 base interface-type-base;
376 identity interface-type-dpdkvhost {
377 description "Interface type for dpdkvhost interfaces";
378 base interface-type-base;
381 identity interface-type-dpdkvhostuser {
382 description "Interface type for dpdkvhostuser interfaces";
383 base interface-type-base;
386 grouping ovsdb-port-interface-attributes {
388 description "The unique identifier of the OVSDB port";
392 leaf interface-uuid {
393 description "The unique identifier of the OVSDB interface";
398 description "The name of the OVSDB port/interface";
402 leaf interface-type {
403 description "The type of the OVSDB interface";
405 base interface-type-base;
410 description "Port/Interface related optional input values";
413 description "Option name";
417 description "Option value";
423 description "Port/Interface related optional ofport";
427 leaf ofport_request {
428 description "Port/Interface related optional ofport_request, in range 1 to 65279";
435 description "The VLAN tag of the termination point.";
436 type ethertype:vlan-id;
440 description "Represents the trunks of a termination point.";
442 type ethertype:vlan-id;
447 description "The VLAN mode of the termination point.";
452 "The VLAN mode access.";
454 enum "native-tagged" {
457 "The VLAN mode native-tagged.";
459 enum "native-untagged" {
462 "The VLAN mode native-untagged.";
467 "The VLAN mode trunk.";
472 list port-other-configs {
473 description "Other config attributes for Ports";
474 key "other-config-key";
475 leaf other-config-key {
476 description "port-other-config name/key";
479 leaf other-config-value {
480 description "port-other-config value";
485 list interface-other-configs {
486 description "Other config attributes for Interfaces";
487 key "other-config-key";
488 leaf other-config-key {
489 description "interface-other-config name/key";
492 leaf other-config-value {
493 description "interface-other-config value";
498 list port-external-ids {
499 description "Port external ids";
500 key "external-id-key";
501 leaf external-id-key {
502 description "external-id name/key";
506 leaf external-id-value {
507 description "external-id value";
513 list interface-external-ids {
514 description "Interface external ids";
515 key "external-id-key";
516 leaf external-id-key {
517 description "external-id name/key";
521 leaf external-id-value {
522 description "external-id value";
529 augment "/topo:network-topology/topo:topology/topo:node" {
530 description "Augmentation for bridge nodes managed by ovsdb";
531 ext:augment-identifier "ovsdb-bridge-augmentation";
532 uses ovsdb-bridge-attributes;
535 augment "/topo:network-topology/topo:topology/topo:node" {
536 description "Augment topology node for an ovsdb node";
537 ext:augment-identifier "ovsdb-node-augmentation";
538 uses ovsdb-node-attributes;
541 augment "/topo:network-topology/topo:topology/topo:node/topo:termination-point" {
542 description "Augment topology node termination-point for an ovsdb port/interface";
543 ext:augment-identifier "ovsdb-termination-point-augmentation";
544 uses ovsdb-port-interface-attributes;