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 {
194 "Key-value pairs for use by external frameworks that integrate
197 external_ids : bridge-id: optional string
199 A unique identifier of the bridge. On Citrix XenServer this
200 will commonly be the same as external_ids:xs-network-uuids.
202 external_ids : xs-network-uuids: optional string
204 Semicolon-delimited set of universally unique identifier(s)
205 for the network with which this bridge is associated on a
206 Citrix XenServer host. The network identifiers are RFC 4122
207 UUIDs as displayed by, e.g., xe network−list.";
209 key "bridge-external-id-key";
210 leaf bridge-external-id-key {
211 description "external-id name/key";
215 leaf bridge-external-id-value {
216 description "bridge-external-id value";
222 list bridge-other-configs {
224 "Key-value pairs for configuring rarely used features.
226 other_config : hwaddr: optional string
227 An Ethernet address in the form xx:xx:xx:xx:xx:xx to set the
228 hardware address of the local port and influence the datapath
231 other_config : forward-bpdu: optional string
232 either true or false. Option to allow forwarding of BPDU frames when NORMAL
233 action is invoked. Frames with reserved Ethernet
234 addresses (e.g. STP BPDU) will be forwarded when this option
235 is enabled and the switch is not providing that functionality.
237 other_config : mac-aging-time: optional string
238 containing an integer, at least 1 The maximum number of seconds to retain a
239 MAC learning entry for which no packets have been seen. The
240 default is currently 300 seconds (5 minutes). The value, if
241 specified, is forced into a reasonable range, currently 15
244 other_config : mac-table-size: optional string
245 containing an integer, at least 1 The maximum number of MAC addresses to
246 learn. The default is currently 2048. The value, if
247 specified, is forced into a reasonable range, currently 10
250 other_config : datapath-id: optional string
251 Exactly 16 hex digits to set the OpenFlow datapath ID to a
252 specific value. May not be all-zero.
254 other_config : dp-desc: optional string
255 Human readable description of datapath. It it a maximum
256 256 byte-long free-form string to describe the datapath for
259 other_config : disable-in-band: optional string
261 If set to true, disable in-band control on the bridge
262 regardless of controller and manager settings.
264 other_config : in-band-queue: optional string
265 containing an integer, in range 0 to 4,294,967,295 A queue ID as a
268 other_config : stp-system-id: optional string
269 The bridge’s STP identifier (the lower 48 bits of the
270 bridge-id) in the form xx:xx:xx:xx:xx:xx. By default, the
271 identifier is the MAC address of the bridge.
273 other_config : stp-priority: optional string
274 containing an integer, in range 0 to 65,535 The bridge’s relative priority
275 value for determining the root bridge (the upper 16 bits of
276 the bridgeid). A bridge with the lowest bridge-id is elected
277 the root. By default, the priority is 0x8000.
279 other_config : stp-hello-time: optional string
280 containing an integer, in range 1 to 10 The interval between transmissions
281 of hello messages by designated ports, in seconds. By default
282 the hello interval is 2 seconds.
284 other_config : stp-max-age: optional string
285 containing an integer, in range 6 to 40 The maximum age of the information
286 transmitted by the bridge when it is the root bridge, in
287 seconds. By default, the maximum age is 20 seconds.
289 other_config : stp-forward-delay: optional string
290 containing an integer, in range 4 to 30 The delay to wait between
291 transitioning root and designated ports to forwarding, in
292 seconds. By default, the forwarding delay is 15 seconds.
294 other_config : mcast-snooping-aging-time: optional string,
295 containing an integer, at least 1 The maximum number of
296 seconds to retain a multicast snooping entry for which no
297 packets have been seen. The default is currently 300
298 seconds (5 minutes). The value, if specified, is forced into
299 a reasonable range, currently 15 to 3600 seconds.
301 other_config : mcast-snooping-table-size: optional string,
302 containing an integer, at least 1 The maximum number of
303 multicast snooping addresses to learn. The default is
304 currently 2048. The value, if specified, is forced into a
305 reasonable range, currently 10 to 1,000,000.
307 other_config : mcast-snooping-disable-flood-unregistered:
308 optional string, either true or false If set to false,
309 unregistered multicast packets are forwarded to all ports.
310 If set to true, unregistered multicast packets are forwarded
311 to ports connected to multicast routers.";
313 key "bridge-other-config-key";
314 leaf bridge-other-config-key {
315 description "bridge-other-config name/key";
318 leaf bridge-other-config-value {
319 description "bridge-other-config value";
326 grouping ovsdb-connection-info-attributes {
328 type inet:ip-address;
329 description "Ovsdb Connection Remote IP";
332 type inet:port-number;
333 description "Ovsdb Connection Remote Port Number";
336 type inet:ip-address;
337 description "Ovsdb Connection Local IP";
340 type inet:port-number;
341 description "Ovsdb Connection Local Port Number IP";
345 grouping ovsdb-node-attributes {
346 description "Plugin will not allow multiple connections to the same device.
347 If an application attempts to make more than one connection to the device by
348 putting multiple entries in the config data store, then it is the responsibility
349 of the application to clean the config data store";
350 container connection-info{
351 uses ovsdb-connection-info-attributes;
355 description "The database schema version";
360 description "The Open_vSwitch version number";
364 list managed-node-entry {
367 type ovsdb-bridge-ref;
371 list datapath-type-entry {
374 description "Datapath types supported by OVSDB node";
376 base datapath-type-base;
381 list interface-type-entry {
382 key "interface-type";
383 leaf interface-type {
384 description "Interface types supported by OVSDB node";
386 base interface-type-base;
391 list openvswitch-external-ids {
392 description "Key-value pairs for use by external frameworks that integrate
395 external_ids : system-id: optional string
396 A unique identifier for the Open vSwitch’s physical host.
397 The form of the identifier depends on the type of the host.
398 On a Citrix XenServer, this will likely be the same as
399 external_ids:xs-system-uuid.
401 external_ids : xs-system-uuid: optional string
402 The Citrix XenServer universally unique identifier for the
403 physical host as displayed by xe-host−list.";
405 key "external-id-key";
406 leaf external-id-key {
407 description "external-id name/key";
411 leaf external-id-value {
412 description "external-id value";
418 list openvswitch-other-configs {
419 description "Key-value pairs for configuring rarely used features.
421 other_config : stats-update-interval: optional string
422 This option will affect the update of the statistics column
423 in the following tables: Port, Interface , Mirror.
425 other_config : flow-restore-wait: optional string
426 either true or false When ovs−vswitchd starts up, it has an empty flow
427 table and therefore it handles all arriving packets in its
428 default fashion according to its configuration, by
429 dropping them or sending them to an OpenFlow controller or
430 switching them as a standalone switch.
432 other_config : flow-limit: optional string
433 containing an integer, at least 0. The maximum number of flows allowed in
434 the datapath flow table.
436 other_config : n-dpdk-rxqs: optional string
437 containing an integer, at least 1 Specifies the number of rx queues to be
438 created for each dpdk interface. If not specified or
439 specified to 0, one rx queue will be created for each dpdk
440 interface by default.
442 other_config : pmd-cpu-mask: optional string
443 Specifies CPU mask for setting the cpu affinity of
444 PMD (Poll Mode Driver) threads. Value should be in the form
445 of hex string, similar to the dpdk EAL ’-c COREMASK’ option
446 input or the ’taskset’ mask input.
448 other_config : n-handler-threads: optional string
449 containing an integer, at least 1 Specifies the number of threads for
450 software datapaths to use for handling new flows. The default
451 the number of online CPU cores minus the number of
454 other_config : n-revalidator-threads: optional string,
455 containing an integer, at least 1 Specifies the number of
456 threads for software datapaths to use for revalidating flows
459 other_config : enable-statistics: optional string
460 either ture or false. Set this value to true to enable populating the
461 statistics column or to false to explicitly disable it.";
463 key "other-config-key";
464 leaf other-config-key {
465 description "other-config name/key";
468 leaf other-config-value {
469 description "other-config value";
475 description "Node managers info";
479 description "Uri that user set to connect to the controller";
485 leaf number_of_connections {
491 identity interface-type-base {
492 description "Base identity for all OVSDB interface types";
495 identity interface-type-system {
496 description "Interface type for system interfaces";
497 base interface-type-base;
500 identity interface-type-internal {
501 description "Interface type for internal interfaces";
502 base interface-type-base;
505 identity interface-type-vxlan {
506 description "Interface type for vxlan interfaces";
507 base interface-type-base;
510 identity interface-type-patch {
511 description "Interface type for patch interfaces";
512 base interface-type-base;
515 identity interface-type-tap {
516 description "Interface type for tun/tap interfaces";
517 base interface-type-base;
520 identity interface-type-geneve {
521 description "Interface type for geneve interfaces";
522 base interface-type-base;
525 identity interface-type-gre {
526 description "Interface type for gre interfaces";
527 base interface-type-base;
530 identity interface-type-ipsec-gre {
531 description "Interface type for ipsec-gre interfaces";
532 base interface-type-base;
535 identity interface-type-gre64 {
536 description "Interface type for gre64 interfaces";
537 base interface-type-base;
540 identity interface-type-ipsec-gre64 {
541 description "Interface type for ipsec-gre64 interfaces";
542 base interface-type-base;
545 identity interface-type-lisp {
546 description "Interface type for lisp interfaces";
547 base interface-type-base;
550 identity interface-type-dpdk {
551 description "Interface type for dpdk interfaces";
552 base interface-type-base;
555 identity interface-type-dpdkr {
556 description "Interface type for dpdk ring interfaces";
557 base interface-type-base;
560 identity interface-type-dpdkvhost {
561 description "Interface type for dpdkvhost interfaces";
562 base interface-type-base;
565 identity interface-type-dpdkvhostuser {
566 description "Interface type for dpdkvhostuser interfaces";
567 base interface-type-base;
570 identity interface-type-stt {
571 description "Interface type for stt interfaces";
572 base interface-type-base;
575 grouping ovsdb-port-interface-attributes {
577 description "The unique identifier of the OVSDB port";
581 leaf interface-uuid {
582 description "The unique identifier of the OVSDB interface";
587 description "The name of the OVSDB port/interface";
591 leaf interface-type {
592 description "The type of the OVSDB interface";
594 base interface-type-base;
599 description "Port/Interface related optional input values";
602 description "Option name";
606 description "Option value";
612 description "Port/Interface related optional ofport";
616 leaf ofport_request {
617 description "Port/Interface related optional ofport_request, in range 1 to 65279";
624 description "The VLAN tag of the termination point.";
625 type ethertype:vlan-id;
629 description "Represents the trunks of a termination point.";
631 type ethertype:vlan-id;
636 description "The VLAN mode of the termination point.";
641 "The VLAN mode access.";
643 enum "native-tagged" {
646 "The VLAN mode native-tagged.";
648 enum "native-untagged" {
651 "The VLAN mode native-untagged.";
656 "The VLAN mode trunk.";
661 list port-other-configs {
662 description "Other config attributes for Ports
664 other_config : priority-tags: optional string
665 either true or false An 802.1Q header contains two important pieces of
666 information: a VLAN ID and a priority.
668 other_config : bond-hash-basis: optional string
669 containing an integer An integer hashed along with flows when choosing output
670 slaves in load balanced bonds. When changed, all flows will be
671 assigned different hash values possibly causing slave selection
674 other_config : bond-detect-mode: optional string
675 either miimon or carrier The means used to detect link failures. Defaults to
676 carrier which uses each interface’s carrier to detect failures.
677 When set to miimon, will check for failures by polling each
680 other_config : bond-miimon-interval: optional string
681 containing an integer The interval, in milliseconds, between successive
682 attempts to poll each interface’s MII. Relevant only when
683 other_config:bond-detect-mode is miimon
685 other_config : lacp-system-id: optional string
686 The LACP system ID of this Port. The system ID of a LACP bond
687 is used to identify itself to its partners. Must be a nonzero
688 MAC address. Defaults to the bridge Ethernet address if unset.
690 other_config : lacp-system-priority: optional string
691 containing an integer, in range 1 to 65,535 The LACP system priority of this
692 Port. In LACP negotiations, link status decisions are made by
693 the system with the numerically lower priority.
695 other_config : lacp-time: optional string
696 either slow or fast. The LACP timing which should be used on this Port. By default
697 slow is used. When configured to be fast LACP heartbeats are
698 requested at a rate of once per second causing connectivity
699 problems to be detected more quickly. In slow mode, heartbeats
700 are requested at a rate of once every 30 seconds.
702 other_config : lacp-fallback-ab: optional string
703 either true or false Determines the behavior of openvswitch bond in LACP mode.
704 If the partner switch does not support LACP, setting this
705 option to true allows openvswitch to fallback to active-backup.
706 If the option is set to false, the bond will be disabled.
707 In both the cases, once the partner switch is configured
708 to LACP mode, the bond will use LACP.
710 other_config : bond-rebalance-interval: optional string,
711 containing an integer, in range 0 to 10,000 For a load
712 balanced bonded port, the number of milliseconds between
713 successive attempts to rebalance the bond, that is, to move
714 flows from one interface on the bond to another in an attempt
715 to keep usage of each interface roughly equal. If zero, load
716 balancing is disabled on the bond (link failure still cause
717 flows to move). If less than 1000ms, the rebalance interval
720 other_config : stp-enable: optional string
721 either true or false. If spanning tree is enabled on the bridge, member ports are
722 enabled by default (with the exception of bond, internal, and
723 mirror ports which do not work with STP). If this column’s
724 value is false spanning tree is disabled on the port.
726 other_config : stp-port-num: optional string
727 containing an integer, in range 1 to 255 The port number used for the lower 8
728 bits of the port-id. By default, the numbers will be assigned
729 automatically. If any port’s number is manually configured on
730 a bridge, then they must all be.
732 other_config : stp-port-priority: optional string
733 containing an integer, in range 0 to 255 The port’s relative priority value
734 for determining the root port (the upper 8 bits of the port-id).
736 other_config : stp-path-cost: optional string
737 containing an integer, in range 0 to 65,535 Spanning tree path cost for the
738 port. A lower number indicates a faster link. By default, the
739 cost is based on the maximum speed of the link.
741 other_config : rstp-enable: optional string
743 If rapid spanning tree is enabled on the bridge, member ports
744 are enabled by default (with the exception of bond, internal,
745 and mirror ports which do not work with RSTP). If this
746 column’s value is false rapid spanning tree is disabled on
749 other_config : rstp-port-priority: optional string
750 containing an integer, in range 0 to 240 The port’s relative priority value
751 for determining the root port, in multiples of 16. By default,
752 the port priority is 0x80 (128).
754 other_config : rstp-port-num: optional string
755 containing an integer, in range 1 to 4,095 The local RSTP port number, used
756 as the lower 12 bits of the port-id.
758 other_config : rstp-port-path-cost: optional string
759 containing an integer The port path cost. The Port’s contribution, when it
760 is the Root Port, to the Root Path Cost for the Bridge.
762 other_config : rstp-port-admin-edge: optional string
765 other_config : rstp-port-auto-edge: optional string
766 either true or false The auto edge port parameter for the Port. Default
769 other_config : rstp-port-mcheck: optional string
770 either true or false The mcheck port parameter for the Port. Default is false.
772 other_config : mcast-snooping-flood: optional string
773 either true or false If set to true, multicast packets are
774 unconditionally forwarded to the specific port";
776 key "other-config-key";
777 leaf other-config-key {
778 description "port-other-config name/key";
781 leaf other-config-value {
782 description "port-other-config value";
787 list interface-other-configs {
788 description "Other config attributes for Interfaces
790 other_config : enable-vlan-splinters: optional string
791 either true or false. Set to true to enable VLAN splinters on this
792 interface. Defaults to false.";
794 key "other-config-key";
795 leaf other-config-key {
796 description "interface-other-config name/key";
799 leaf other-config-value {
800 description "interface-other-config value";
805 list port-external-ids {
806 description "Port external ids
808 external_ids : fake-bridge-id-*: optional string
809 External IDs for a fake bridge (see the fake_bridge column) are defined by
810 prefixing a Bridge external_ids key with
811 fake−bridge−, e.g. fake−bridge−xs−network−uuids.";
813 key "external-id-key";
814 leaf external-id-key {
815 description "external-id name/key";
819 leaf external-id-value {
820 description "external-id value";
826 list interface-external-ids {
827 description "Interface external ids
829 external_ids : attached-mac: optional string.
830 The MAC address programmed into the ‘‘virtual hardware’’ for this interface, in
831 the form xx:xx:xx:xx:xx:xx. For Citrix XenServer, this is the
832 value of the MAC field in the VIF record for this interface.
834 external_ids : iface-id: optional string.
835 A system-unique identifier for the interface. On XenServer, this will commonly
836 be the same as external_ids:xs-vif-uuid.
838 external_ids : iface-status: optional string
839 either active or inactive Hypervisors may sometimes have more than one interface
840 associated with a given external_ids:iface-id, only one of
841 which is actually in use at a given time.
843 external_ids : xs-vif-uuid: optional string.
844 The virtual interface associated with this interface.
846 external_ids : xs-network-uuid: optional string.
847 The virtual network to which this interface is attached.
849 external_ids : vm-id: optional string.
850 The VM to which this interface belongs. On XenServer, this will be the same as
851 external_ids:xsvm-uuid.
853 external_ids : xs-vm-uuid: optional string.
854 The VM to which this interface belongs";
856 key "external-id-key";
857 leaf external-id-key {
858 description "external-id name/key";
862 leaf external-id-value {
863 description "external-id value";
870 augment "/topo:network-topology/topo:topology/topo:node" {
871 description "Augmentation for bridge nodes managed by ovsdb";
872 ext:augment-identifier "ovsdb-bridge-augmentation";
873 uses ovsdb-bridge-attributes;
876 augment "/topo:network-topology/topo:topology/topo:node" {
877 description "Augment topology node for an ovsdb node";
878 ext:augment-identifier "ovsdb-node-augmentation";
879 uses ovsdb-node-attributes;
882 augment "/topo:network-topology/topo:topology/topo:node/topo:termination-point" {
883 description "Augment topology node termination-point for an ovsdb port/interface";
884 ext:augment-identifier "ovsdb-termination-point-augmentation";
885 uses ovsdb-port-interface-attributes;