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";
181 grouping ovsdb-node-attributes {
182 uses overlay:ip-port-locator;
188 list managed-node-entry {
191 type ovsdb-bridge-ref;
195 list datapath-type-entry {
198 description "Datapath types supported by OVSDB node";
200 base datapath-type-base;
205 list interface-type-entry {
206 key "interface-type";
207 leaf interface-type {
208 description "Interface types supported by OVSDB node";
210 base interface-type-base;
217 identity interface-type-base {
218 description "Base identity for all OVSDB interface types";
221 identity interface-type-system {
222 description "Interface type for system interfaces";
223 base interface-type-base;
226 identity interface-type-internal {
227 description "Interface type for internal interfaces";
228 base interface-type-base;
231 identity interface-type-vxlan {
232 description "Interface type for vxlan interfaces";
233 base interface-type-base;
236 identity interface-type-patch {
237 description "Interface type for patch interfaces";
238 base interface-type-base;
241 identity interface-type-tap {
242 description "Interface type for tun/tap interfaces";
243 base interface-type-base;
246 identity interface-type-geneve {
247 description "Interface type for geneve interfaces";
248 base interface-type-base;
251 identity interface-type-gre {
252 description "Interface type for gre interfaces";
253 base interface-type-base;
256 identity interface-type-ipsec-gre {
257 description "Interface type for ipsec-gre interfaces";
258 base interface-type-base;
261 identity interface-type-gre64 {
262 description "Interface type for gre64 interfaces";
263 base interface-type-base;
266 identity interface-type-ipsec-gre64 {
267 description "Interface type for ipsec-gre64 interfaces";
268 base interface-type-base;
271 identity interface-type-lisp {
272 description "Interface type for lisp interfaces";
273 base interface-type-base;
276 identity interface-type-dpdk {
277 description "Interface type for dpdk interfaces";
278 base interface-type-base;
281 identity interface-type-dpdkr {
282 description "Interface type for dpdk ring interfaces";
283 base interface-type-base;
286 identity interface-type-dpdkvhost {
287 description "Interface type for dpdkvhost interfaces";
288 base interface-type-base;
291 identity interface-type-dpdkvhostuser {
292 description "Interface type for dpdkvhostuser interfaces";
293 base interface-type-base;
296 grouping ovsdb-port-interface-attributes {
298 description "The unique identifier of the OVSDB port";
302 leaf interface-uuid {
303 description "The unique identifier of the OVSDB interface";
308 description "The name of the OVSDB port/interface";
312 leaf interface-type {
313 description "The type of the OVSDB interface";
315 base interface-type-base;
320 description "Port/Interface related optional input values";
323 description "Option name";
327 description "Option value";
333 description "Port/Interface related optional ofport";
337 leaf ofport_request {
338 description "Port/Interface related optional ofport_request, in range 1 to 65279";
345 description "The VLAN tag of the termination point.";
346 type ethertype:vlan-id;
350 description "Represents the trunks of a termination point.";
352 type ethertype:vlan-id;
357 description "The VLAN mode of the termination point.";
362 "The VLAN mode access.";
364 enum "native-tagged" {
367 "The VLAN mode native-tagged.";
369 enum "native-untagged" {
372 "The VLAN mode native-untagged.";
377 "The VLAN mode trunk.";
383 grouping ovsdb-external-ids-attributes {
385 description "Port/Interface external id";
386 key "external-id-key";
387 leaf external-id-key {
388 description "external-id name/key";
392 leaf external-id-value {
393 description "external-id value";
400 grouping ovsdb-other-config-attributes {
402 description "Other config attributes for OVSDB tables";
403 key "other-config-key";
404 leaf other-config-key {
405 description "other-config name/key";
408 leaf other-config-value {
409 description "other-config value";
415 augment "/topo:network-topology/topo:topology/topo:node" {
416 description "Augmentation for bridge nodes managed by ovsdb";
417 ext:augment-identifier "ovsdb-bridge-augmentation";
418 uses ovsdb-bridge-attributes;
421 augment "/topo:network-topology/topo:topology/topo:node" {
422 description "Augment topology node for an ovsdb node";
423 ext:augment-identifier "ovsdb-node-augmentation";
424 uses ovsdb-node-attributes;
425 uses ovsdb-external-ids-attributes;
426 uses ovsdb-other-config-attributes;
429 augment "/topo:network-topology/topo:topology/topo:node/topo:termination-point" {
430 description "Augment topology node termination-point for an ovsdb port/interface";
431 ext:augment-identifier "ovsdb-termination-point-augmentation";
432 uses ovsdb-port-interface-attributes;
433 uses ovsdb-external-ids-attributes;