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 identity qos-type-base {
576 description "the base identity for qos";
579 identity qos-type-linux-htb {
580 description "linux hierarchy token bucket classifier";
584 identity qos-type-linux-hfsc {
585 description "linux hierarchical fair service curve classifier";
589 grouping ovsdb-port-interface-attributes {
591 description "The unique identifier of the OVSDB port";
595 leaf interface-uuid {
596 description "The unique identifier of the OVSDB interface";
601 description "The name of the OVSDB port/interface";
605 leaf interface-type {
606 description "The type of the OVSDB interface";
608 base interface-type-base;
613 description "Port/Interface related optional input values";
616 description "Option name";
620 description "Option value";
626 description "Port/Interface related optional ofport";
630 leaf ofport_request {
631 description "Port/Interface related optional ofport_request, in range 1 to 65279";
638 description "The VLAN tag of the termination point.";
639 type ethertype:vlan-id;
643 description "Represents the trunks of a termination point.";
645 type ethertype:vlan-id;
650 description "The VLAN mode of the termination point.";
655 "The VLAN mode access.";
657 enum "native-tagged" {
660 "The VLAN mode native-tagged.";
662 enum "native-untagged" {
665 "The VLAN mode native-untagged.";
670 "The VLAN mode trunk.";
675 list port-other-configs {
676 description "Other config attributes for Ports
678 other_config : priority-tags: optional string
679 either true or false An 802.1Q header contains two important pieces of
680 information: a VLAN ID and a priority.
682 other_config : bond-hash-basis: optional string
683 containing an integer An integer hashed along with flows when choosing output
684 slaves in load balanced bonds. When changed, all flows will be
685 assigned different hash values possibly causing slave selection
688 other_config : bond-detect-mode: optional string
689 either miimon or carrier The means used to detect link failures. Defaults to
690 carrier which uses each interface’s carrier to detect failures.
691 When set to miimon, will check for failures by polling each
694 other_config : bond-miimon-interval: optional string
695 containing an integer The interval, in milliseconds, between successive
696 attempts to poll each interface’s MII. Relevant only when
697 other_config:bond-detect-mode is miimon
699 other_config : lacp-system-id: optional string
700 The LACP system ID of this Port. The system ID of a LACP bond
701 is used to identify itself to its partners. Must be a nonzero
702 MAC address. Defaults to the bridge Ethernet address if unset.
704 other_config : lacp-system-priority: optional string
705 containing an integer, in range 1 to 65,535 The LACP system priority of this
706 Port. In LACP negotiations, link status decisions are made by
707 the system with the numerically lower priority.
709 other_config : lacp-time: optional string
710 either slow or fast. The LACP timing which should be used on this Port. By default
711 slow is used. When configured to be fast LACP heartbeats are
712 requested at a rate of once per second causing connectivity
713 problems to be detected more quickly. In slow mode, heartbeats
714 are requested at a rate of once every 30 seconds.
716 other_config : lacp-fallback-ab: optional string
717 either true or false Determines the behavior of openvswitch bond in LACP mode.
718 If the partner switch does not support LACP, setting this
719 option to true allows openvswitch to fallback to active-backup.
720 If the option is set to false, the bond will be disabled.
721 In both the cases, once the partner switch is configured
722 to LACP mode, the bond will use LACP.
724 other_config : bond-rebalance-interval: optional string,
725 containing an integer, in range 0 to 10,000 For a load
726 balanced bonded port, the number of milliseconds between
727 successive attempts to rebalance the bond, that is, to move
728 flows from one interface on the bond to another in an attempt
729 to keep usage of each interface roughly equal. If zero, load
730 balancing is disabled on the bond (link failure still cause
731 flows to move). If less than 1000ms, the rebalance interval
734 other_config : stp-enable: optional string
735 either true or false. If spanning tree is enabled on the bridge, member ports are
736 enabled by default (with the exception of bond, internal, and
737 mirror ports which do not work with STP). If this column’s
738 value is false spanning tree is disabled on the port.
740 other_config : stp-port-num: optional string
741 containing an integer, in range 1 to 255 The port number used for the lower 8
742 bits of the port-id. By default, the numbers will be assigned
743 automatically. If any port’s number is manually configured on
744 a bridge, then they must all be.
746 other_config : stp-port-priority: optional string
747 containing an integer, in range 0 to 255 The port’s relative priority value
748 for determining the root port (the upper 8 bits of the port-id).
750 other_config : stp-path-cost: optional string
751 containing an integer, in range 0 to 65,535 Spanning tree path cost for the
752 port. A lower number indicates a faster link. By default, the
753 cost is based on the maximum speed of the link.
755 other_config : rstp-enable: optional string
757 If rapid spanning tree is enabled on the bridge, member ports
758 are enabled by default (with the exception of bond, internal,
759 and mirror ports which do not work with RSTP). If this
760 column’s value is false rapid spanning tree is disabled on
763 other_config : rstp-port-priority: optional string
764 containing an integer, in range 0 to 240 The port’s relative priority value
765 for determining the root port, in multiples of 16. By default,
766 the port priority is 0x80 (128).
768 other_config : rstp-port-num: optional string
769 containing an integer, in range 1 to 4,095 The local RSTP port number, used
770 as the lower 12 bits of the port-id.
772 other_config : rstp-port-path-cost: optional string
773 containing an integer The port path cost. The Port’s contribution, when it
774 is the Root Port, to the Root Path Cost for the Bridge.
776 other_config : rstp-port-admin-edge: optional string
779 other_config : rstp-port-auto-edge: optional string
780 either true or false The auto edge port parameter for the Port. Default
783 other_config : rstp-port-mcheck: optional string
784 either true or false The mcheck port parameter for the Port. Default is false.
786 other_config : mcast-snooping-flood: optional string
787 either true or false If set to true, multicast packets are
788 unconditionally forwarded to the specific port";
790 key "other-config-key";
791 leaf other-config-key {
792 description "port-other-config name/key";
795 leaf other-config-value {
796 description "port-other-config value";
801 list interface-other-configs {
802 description "Other config attributes for Interfaces
804 other_config : enable-vlan-splinters: optional string
805 either true or false. Set to true to enable VLAN splinters on this
806 interface. Defaults to false.";
808 key "other-config-key";
809 leaf other-config-key {
810 description "interface-other-config name/key";
813 leaf other-config-value {
814 description "interface-other-config value";
819 list port-external-ids {
820 description "Port external ids
822 external_ids : fake-bridge-id-*: optional string
823 External IDs for a fake bridge (see the fake_bridge column) are defined by
824 prefixing a Bridge external_ids key with
825 fake−bridge−, e.g. fake−bridge−xs−network−uuids.";
827 key "external-id-key";
828 leaf external-id-key {
829 description "external-id name/key";
833 leaf external-id-value {
834 description "external-id value";
840 list interface-external-ids {
841 description "Interface external ids
843 external_ids : attached-mac: optional string.
844 The MAC address programmed into the ‘‘virtual hardware’’ for this interface, in
845 the form xx:xx:xx:xx:xx:xx. For Citrix XenServer, this is the
846 value of the MAC field in the VIF record for this interface.
848 external_ids : iface-id: optional string.
849 A system-unique identifier for the interface. On XenServer, this will commonly
850 be the same as external_ids:xs-vif-uuid.
852 external_ids : iface-status: optional string
853 either active or inactive Hypervisors may sometimes have more than one interface
854 associated with a given external_ids:iface-id, only one of
855 which is actually in use at a given time.
857 external_ids : xs-vif-uuid: optional string.
858 The virtual interface associated with this interface.
860 external_ids : xs-network-uuid: optional string.
861 The virtual network to which this interface is attached.
863 external_ids : vm-id: optional string.
864 The VM to which this interface belongs. On XenServer, this will be the same as
865 external_ids:xsvm-uuid.
867 external_ids : xs-vm-uuid: optional string.
868 The VM to which this interface belongs";
870 key "external-id-key";
871 leaf external-id-key {
872 description "external-id name/key";
876 leaf external-id-value {
877 description "external-id value";
885 description "The unique identifier of the QoS.";
900 description "The unique identifier of the queue.";
906 list queues-other-config {
908 Configuration for linux-htb QoS:
910 other_config : min-rate optional string
911 containing an integer, at least 1.
912 Minimum guaranteed bandwidth, in bit/s.
914 other_config : max-rate optional string
915 containing an integer, at least 1.
916 Maximum allowed bandwidth, in bit/s. Optional. If specified, the queue’s rate will not be allowed
917 to exceed the specified value, even if excess bandwidth is available. If unspecified, defaults to no
920 other_config : burst optional string
921 containing an integer, at least 1.
922 Burst size, in bits. This is the maximum amount of ‘‘credits’’ that a queue can accumulate while it
923 is idle. Optional. Details of the linux−htb implementation require a minimum burst size, so a
924 too-small burst will be silently ignored.
926 other_config : priority optional string.
927 containing an integer, in range 0 to 4,294,967,295.
928 A queue with a smaller priority will receive all the excess bandwidth that it can use before a
929 queue with a larger value receives any. Specific priority values are unimportant; only relative
930 ordering matters. Defaults to 0 if unspecified.
932 Configuration for linux-htb QoS:
934 other_config : min-rate optional string
935 containing an integer, at least 1.
936 Minimum guaranteed bandwidth, in bit/s.
938 other_config : max-rate optional string
939 containing an integer, at least 1.
940 Maximum allowed bandwidth, in bit/s. Optional. If specified, the queue’s rate will not be allowed
941 to exceed the specified value, even if excess bandwidth is available. If unspecified, defaults to no
944 key "queue-other-config-key";
945 leaf queue-other-config-key {
948 leaf queue-other-config-value {
954 list qos-external-ids {
955 key "qos-external-id-key";
956 leaf qos-external-id-key {
957 description "qos external-id name/key";
961 leaf qos-external-id-value {
962 description "qos-external-id value";
967 list qos-other-config {
969 other_config : max-rate
970 optional string, containing an integer.";
972 key "other-config-key";
973 leaf other-config-key {
974 description "qos-other-config name/key";
977 leaf other-config-value {
978 description "qos-other-config value";
985 augment "/topo:network-topology/topo:topology/topo:node" {
986 description "Augmentation for bridge nodes managed by ovsdb";
987 ext:augment-identifier "ovsdb-bridge-augmentation";
988 uses ovsdb-bridge-attributes;
991 augment "/topo:network-topology/topo:topology/topo:node" {
992 description "Augment topology node for an ovsdb node";
993 ext:augment-identifier "ovsdb-node-augmentation";
994 uses ovsdb-node-attributes;
997 augment "/topo:network-topology/topo:topology/topo:node/topo:termination-point" {
998 description "Augment topology node termination-point for an ovsdb port/interface";
999 ext:augment-identifier "ovsdb-termination-point-augmentation";
1000 uses ovsdb-port-interface-attributes;