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";
476 identity interface-type-base {
477 description "Base identity for all OVSDB interface types";
480 identity interface-type-system {
481 description "Interface type for system interfaces";
482 base interface-type-base;
485 identity interface-type-internal {
486 description "Interface type for internal interfaces";
487 base interface-type-base;
490 identity interface-type-vxlan {
491 description "Interface type for vxlan interfaces";
492 base interface-type-base;
495 identity interface-type-patch {
496 description "Interface type for patch interfaces";
497 base interface-type-base;
500 identity interface-type-tap {
501 description "Interface type for tun/tap interfaces";
502 base interface-type-base;
505 identity interface-type-geneve {
506 description "Interface type for geneve interfaces";
507 base interface-type-base;
510 identity interface-type-gre {
511 description "Interface type for gre interfaces";
512 base interface-type-base;
515 identity interface-type-ipsec-gre {
516 description "Interface type for ipsec-gre interfaces";
517 base interface-type-base;
520 identity interface-type-gre64 {
521 description "Interface type for gre64 interfaces";
522 base interface-type-base;
525 identity interface-type-ipsec-gre64 {
526 description "Interface type for ipsec-gre64 interfaces";
527 base interface-type-base;
530 identity interface-type-lisp {
531 description "Interface type for lisp interfaces";
532 base interface-type-base;
535 identity interface-type-dpdk {
536 description "Interface type for dpdk interfaces";
537 base interface-type-base;
540 identity interface-type-dpdkr {
541 description "Interface type for dpdk ring interfaces";
542 base interface-type-base;
545 identity interface-type-dpdkvhost {
546 description "Interface type for dpdkvhost interfaces";
547 base interface-type-base;
550 identity interface-type-dpdkvhostuser {
551 description "Interface type for dpdkvhostuser interfaces";
552 base interface-type-base;
555 identity interface-type-stt {
556 description "Interface type for stt interfaces";
557 base interface-type-base;
560 grouping ovsdb-port-interface-attributes {
562 description "The unique identifier of the OVSDB port";
566 leaf interface-uuid {
567 description "The unique identifier of the OVSDB interface";
572 description "The name of the OVSDB port/interface";
576 leaf interface-type {
577 description "The type of the OVSDB interface";
579 base interface-type-base;
584 description "Port/Interface related optional input values";
587 description "Option name";
591 description "Option value";
597 description "Port/Interface related optional ofport";
601 leaf ofport_request {
602 description "Port/Interface related optional ofport_request, in range 1 to 65279";
609 description "The VLAN tag of the termination point.";
610 type ethertype:vlan-id;
614 description "Represents the trunks of a termination point.";
616 type ethertype:vlan-id;
621 description "The VLAN mode of the termination point.";
626 "The VLAN mode access.";
628 enum "native-tagged" {
631 "The VLAN mode native-tagged.";
633 enum "native-untagged" {
636 "The VLAN mode native-untagged.";
641 "The VLAN mode trunk.";
646 list port-other-configs {
647 description "Other config attributes for Ports
649 other_config : priority-tags: optional string
650 either true or false An 802.1Q header contains two important pieces of
651 information: a VLAN ID and a priority.
653 other_config : bond-hash-basis: optional string
654 containing an integer An integer hashed along with flows when choosing output
655 slaves in load balanced bonds. When changed, all flows will be
656 assigned different hash values possibly causing slave selection
659 other_config : bond-detect-mode: optional string
660 either miimon or carrier The means used to detect link failures. Defaults to
661 carrier which uses each interface’s carrier to detect failures.
662 When set to miimon, will check for failures by polling each
665 other_config : bond-miimon-interval: optional string
666 containing an integer The interval, in milliseconds, between successive
667 attempts to poll each interface’s MII. Relevant only when
668 other_config:bond-detect-mode is miimon
670 other_config : lacp-system-id: optional string
671 The LACP system ID of this Port. The system ID of a LACP bond
672 is used to identify itself to its partners. Must be a nonzero
673 MAC address. Defaults to the bridge Ethernet address if unset.
675 other_config : lacp-system-priority: optional string
676 containing an integer, in range 1 to 65,535 The LACP system priority of this
677 Port. In LACP negotiations, link status decisions are made by
678 the system with the numerically lower priority.
680 other_config : lacp-time: optional string
681 either slow or fast. The LACP timing which should be used on this Port. By default
682 slow is used. When configured to be fast LACP heartbeats are
683 requested at a rate of once per second causing connectivity
684 problems to be detected more quickly. In slow mode, heartbeats
685 are requested at a rate of once every 30 seconds.
687 other_config : lacp-fallback-ab: optional string
688 either true or false Determines the behavior of openvswitch bond in LACP mode.
689 If the partner switch does not support LACP, setting this
690 option to true allows openvswitch to fallback to active-backup.
691 If the option is set to false, the bond will be disabled.
692 In both the cases, once the partner switch is configured
693 to LACP mode, the bond will use LACP.
695 other_config : bond-rebalance-interval: optional string,
696 containing an integer, in range 0 to 10,000 For a load
697 balanced bonded port, the number of milliseconds between
698 successive attempts to rebalance the bond, that is, to move
699 flows from one interface on the bond to another in an attempt
700 to keep usage of each interface roughly equal. If zero, load
701 balancing is disabled on the bond (link failure still cause
702 flows to move). If less than 1000ms, the rebalance interval
705 other_config : stp-enable: optional string
706 either true or false. If spanning tree is enabled on the bridge, member ports are
707 enabled by default (with the exception of bond, internal, and
708 mirror ports which do not work with STP). If this column’s
709 value is false spanning tree is disabled on the port.
711 other_config : stp-port-num: optional string
712 containing an integer, in range 1 to 255 The port number used for the lower 8
713 bits of the port-id. By default, the numbers will be assigned
714 automatically. If any port’s number is manually configured on
715 a bridge, then they must all be.
717 other_config : stp-port-priority: optional string
718 containing an integer, in range 0 to 255 The port’s relative priority value
719 for determining the root port (the upper 8 bits of the port-id).
721 other_config : stp-path-cost: optional string
722 containing an integer, in range 0 to 65,535 Spanning tree path cost for the
723 port. A lower number indicates a faster link. By default, the
724 cost is based on the maximum speed of the link.
726 other_config : rstp-enable: optional string
728 If rapid spanning tree is enabled on the bridge, member ports
729 are enabled by default (with the exception of bond, internal,
730 and mirror ports which do not work with RSTP). If this
731 column’s value is false rapid spanning tree is disabled on
734 other_config : rstp-port-priority: optional string
735 containing an integer, in range 0 to 240 The port’s relative priority value
736 for determining the root port, in multiples of 16. By default,
737 the port priority is 0x80 (128).
739 other_config : rstp-port-num: optional string
740 containing an integer, in range 1 to 4,095 The local RSTP port number, used
741 as the lower 12 bits of the port-id.
743 other_config : rstp-port-path-cost: optional string
744 containing an integer The port path cost. The Port’s contribution, when it
745 is the Root Port, to the Root Path Cost for the Bridge.
747 other_config : rstp-port-admin-edge: optional string
750 other_config : rstp-port-auto-edge: optional string
751 either true or false The auto edge port parameter for the Port. Default
754 other_config : rstp-port-mcheck: optional string
755 either true or false The mcheck port parameter for the Port. Default is false.
757 other_config : mcast-snooping-flood: optional string
758 either true or false If set to true, multicast packets are
759 unconditionally forwarded to the specific port";
761 key "other-config-key";
762 leaf other-config-key {
763 description "port-other-config name/key";
766 leaf other-config-value {
767 description "port-other-config value";
772 list interface-other-configs {
773 description "Other config attributes for Interfaces
775 other_config : enable-vlan-splinters: optional string
776 either true or false. Set to true to enable VLAN splinters on this
777 interface. Defaults to false.";
779 key "other-config-key";
780 leaf other-config-key {
781 description "interface-other-config name/key";
784 leaf other-config-value {
785 description "interface-other-config value";
790 list port-external-ids {
791 description "Port external ids
793 external_ids : fake-bridge-id-*: optional string
794 External IDs for a fake bridge (see the fake_bridge column) are defined by
795 prefixing a Bridge external_ids key with
796 fake−bridge−, e.g. fake−bridge−xs−network−uuids.";
798 key "external-id-key";
799 leaf external-id-key {
800 description "external-id name/key";
804 leaf external-id-value {
805 description "external-id value";
811 list interface-external-ids {
812 description "Interface external ids
814 external_ids : attached-mac: optional string.
815 The MAC address programmed into the ‘‘virtual hardware’’ for this interface, in
816 the form xx:xx:xx:xx:xx:xx. For Citrix XenServer, this is the
817 value of the MAC field in the VIF record for this interface.
819 external_ids : iface-id: optional string.
820 A system-unique identifier for the interface. On XenServer, this will commonly
821 be the same as external_ids:xs-vif-uuid.
823 external_ids : iface-status: optional string
824 either active or inactive Hypervisors may sometimes have more than one interface
825 associated with a given external_ids:iface-id, only one of
826 which is actually in use at a given time.
828 external_ids : xs-vif-uuid: optional string.
829 The virtual interface associated with this interface.
831 external_ids : xs-network-uuid: optional string.
832 The virtual network to which this interface is attached.
834 external_ids : vm-id: optional string.
835 The VM to which this interface belongs. On XenServer, this will be the same as
836 external_ids:xsvm-uuid.
838 external_ids : xs-vm-uuid: optional string.
839 The VM to which this interface belongs";
841 key "external-id-key";
842 leaf external-id-key {
843 description "external-id name/key";
847 leaf external-id-value {
848 description "external-id value";
855 augment "/topo:network-topology/topo:topology/topo:node" {
856 description "Augmentation for bridge nodes managed by ovsdb";
857 ext:augment-identifier "ovsdb-bridge-augmentation";
858 uses ovsdb-bridge-attributes;
861 augment "/topo:network-topology/topo:topology/topo:node" {
862 description "Augment topology node for an ovsdb node";
863 ext:augment-identifier "ovsdb-node-augmentation";
864 uses ovsdb-node-attributes;
867 augment "/topo:network-topology/topo:topology/topo:node/topo:termination-point" {
868 description "Augment topology node termination-point for an ovsdb port/interface";
869 ext:augment-identifier "ovsdb-termination-point-augmentation";
870 uses ovsdb-port-interface-attributes;