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 {
347 container connection-info{
348 uses ovsdb-connection-info-attributes;
352 description "The database schema version";
357 description "The Open_vSwitch version number";
361 list managed-node-entry {
364 type ovsdb-bridge-ref;
368 list datapath-type-entry {
371 description "Datapath types supported by OVSDB node";
373 base datapath-type-base;
378 list interface-type-entry {
379 key "interface-type";
380 leaf interface-type {
381 description "Interface types supported by OVSDB node";
383 base interface-type-base;
388 list openvswitch-external-ids {
389 description "Key-value pairs for use by external frameworks that integrate
392 external_ids : system-id: optional string
393 A unique identifier for the Open vSwitch’s physical host.
394 The form of the identifier depends on the type of the host.
395 On a Citrix XenServer, this will likely be the same as
396 external_ids:xs-system-uuid.
398 external_ids : xs-system-uuid: optional string
399 The Citrix XenServer universally unique identifier for the
400 physical host as displayed by xe-host−list.";
402 key "external-id-key";
403 leaf external-id-key {
404 description "external-id name/key";
408 leaf external-id-value {
409 description "external-id value";
415 list openvswitch-other-configs {
416 description "Key-value pairs for configuring rarely used features.
418 other_config : stats-update-interval: optional string
419 This option will affect the update of the statistics column
420 in the following tables: Port, Interface , Mirror.
422 other_config : flow-restore-wait: optional string
423 either true or false When ovs−vswitchd starts up, it has an empty flow
424 table and therefore it handles all arriving packets in its
425 default fashion according to its configuration, by
426 dropping them or sending them to an OpenFlow controller or
427 switching them as a standalone switch.
429 other_config : flow-limit: optional string
430 containing an integer, at least 0. The maximum number of flows allowed in
431 the datapath flow table.
433 other_config : n-dpdk-rxqs: optional string
434 containing an integer, at least 1 Specifies the number of rx queues to be
435 created for each dpdk interface. If not specified or
436 specified to 0, one rx queue will be created for each dpdk
437 interface by default.
439 other_config : pmd-cpu-mask: optional string
440 Specifies CPU mask for setting the cpu affinity of
441 PMD (Poll Mode Driver) threads. Value should be in the form
442 of hex string, similar to the dpdk EAL ’-c COREMASK’ option
443 input or the ’taskset’ mask input.
445 other_config : n-handler-threads: optional string
446 containing an integer, at least 1 Specifies the number of threads for
447 software datapaths to use for handling new flows. The default
448 the number of online CPU cores minus the number of
451 other_config : n-revalidator-threads: optional string,
452 containing an integer, at least 1 Specifies the number of
453 threads for software datapaths to use for revalidating flows
456 other_config : enable-statistics: optional string
457 either ture or false. Set this value to true to enable populating the
458 statistics column or to false to explicitly disable it.";
460 key "other-config-key";
461 leaf other-config-key {
462 description "other-config name/key";
465 leaf other-config-value {
466 description "other-config value";
473 identity interface-type-base {
474 description "Base identity for all OVSDB interface types";
477 identity interface-type-system {
478 description "Interface type for system interfaces";
479 base interface-type-base;
482 identity interface-type-internal {
483 description "Interface type for internal interfaces";
484 base interface-type-base;
487 identity interface-type-vxlan {
488 description "Interface type for vxlan interfaces";
489 base interface-type-base;
492 identity interface-type-patch {
493 description "Interface type for patch interfaces";
494 base interface-type-base;
497 identity interface-type-tap {
498 description "Interface type for tun/tap interfaces";
499 base interface-type-base;
502 identity interface-type-geneve {
503 description "Interface type for geneve interfaces";
504 base interface-type-base;
507 identity interface-type-gre {
508 description "Interface type for gre interfaces";
509 base interface-type-base;
512 identity interface-type-ipsec-gre {
513 description "Interface type for ipsec-gre interfaces";
514 base interface-type-base;
517 identity interface-type-gre64 {
518 description "Interface type for gre64 interfaces";
519 base interface-type-base;
522 identity interface-type-ipsec-gre64 {
523 description "Interface type for ipsec-gre64 interfaces";
524 base interface-type-base;
527 identity interface-type-lisp {
528 description "Interface type for lisp interfaces";
529 base interface-type-base;
532 identity interface-type-dpdk {
533 description "Interface type for dpdk interfaces";
534 base interface-type-base;
537 identity interface-type-dpdkr {
538 description "Interface type for dpdk ring interfaces";
539 base interface-type-base;
542 identity interface-type-dpdkvhost {
543 description "Interface type for dpdkvhost interfaces";
544 base interface-type-base;
547 identity interface-type-dpdkvhostuser {
548 description "Interface type for dpdkvhostuser interfaces";
549 base interface-type-base;
552 identity interface-type-stt {
553 description "Interface type for stt interfaces";
554 base interface-type-base;
557 grouping ovsdb-port-interface-attributes {
559 description "The unique identifier of the OVSDB port";
563 leaf interface-uuid {
564 description "The unique identifier of the OVSDB interface";
569 description "The name of the OVSDB port/interface";
573 leaf interface-type {
574 description "The type of the OVSDB interface";
576 base interface-type-base;
581 description "Port/Interface related optional input values";
584 description "Option name";
588 description "Option value";
594 description "Port/Interface related optional ofport";
598 leaf ofport_request {
599 description "Port/Interface related optional ofport_request, in range 1 to 65279";
606 description "The VLAN tag of the termination point.";
607 type ethertype:vlan-id;
611 description "Represents the trunks of a termination point.";
613 type ethertype:vlan-id;
618 description "The VLAN mode of the termination point.";
623 "The VLAN mode access.";
625 enum "native-tagged" {
628 "The VLAN mode native-tagged.";
630 enum "native-untagged" {
633 "The VLAN mode native-untagged.";
638 "The VLAN mode trunk.";
643 list port-other-configs {
644 description "Other config attributes for Ports
646 other_config : priority-tags: optional string
647 either true or false An 802.1Q header contains two important pieces of
648 information: a VLAN ID and a priority.
650 other_config : bond-hash-basis: optional string
651 containing an integer An integer hashed along with flows when choosing output
652 slaves in load balanced bonds. When changed, all flows will be
653 assigned different hash values possibly causing slave selection
656 other_config : bond-detect-mode: optional string
657 either miimon or carrier The means used to detect link failures. Defaults to
658 carrier which uses each interface’s carrier to detect failures.
659 When set to miimon, will check for failures by polling each
662 other_config : bond-miimon-interval: optional string
663 containing an integer The interval, in milliseconds, between successive
664 attempts to poll each interface’s MII. Relevant only when
665 other_config:bond-detect-mode is miimon
667 other_config : lacp-system-id: optional string
668 The LACP system ID of this Port. The system ID of a LACP bond
669 is used to identify itself to its partners. Must be a nonzero
670 MAC address. Defaults to the bridge Ethernet address if unset.
672 other_config : lacp-system-priority: optional string
673 containing an integer, in range 1 to 65,535 The LACP system priority of this
674 Port. In LACP negotiations, link status decisions are made by
675 the system with the numerically lower priority.
677 other_config : lacp-time: optional string
678 either slow or fast. The LACP timing which should be used on this Port. By default
679 slow is used. When configured to be fast LACP heartbeats are
680 requested at a rate of once per second causing connectivity
681 problems to be detected more quickly. In slow mode, heartbeats
682 are requested at a rate of once every 30 seconds.
684 other_config : lacp-fallback-ab: optional string
685 either true or false Determines the behavior of openvswitch bond in LACP mode.
686 If the partner switch does not support LACP, setting this
687 option to true allows openvswitch to fallback to active-backup.
688 If the option is set to false, the bond will be disabled.
689 In both the cases, once the partner switch is configured
690 to LACP mode, the bond will use LACP.
692 other_config : bond-rebalance-interval: optional string,
693 containing an integer, in range 0 to 10,000 For a load
694 balanced bonded port, the number of milliseconds between
695 successive attempts to rebalance the bond, that is, to move
696 flows from one interface on the bond to another in an attempt
697 to keep usage of each interface roughly equal. If zero, load
698 balancing is disabled on the bond (link failure still cause
699 flows to move). If less than 1000ms, the rebalance interval
702 other_config : stp-enable: optional string
703 either true or false. If spanning tree is enabled on the bridge, member ports are
704 enabled by default (with the exception of bond, internal, and
705 mirror ports which do not work with STP). If this column’s
706 value is false spanning tree is disabled on the port.
708 other_config : stp-port-num: optional string
709 containing an integer, in range 1 to 255 The port number used for the lower 8
710 bits of the port-id. By default, the numbers will be assigned
711 automatically. If any port’s number is manually configured on
712 a bridge, then they must all be.
714 other_config : stp-port-priority: optional string
715 containing an integer, in range 0 to 255 The port’s relative priority value
716 for determining the root port (the upper 8 bits of the port-id).
718 other_config : stp-path-cost: optional string
719 containing an integer, in range 0 to 65,535 Spanning tree path cost for the
720 port. A lower number indicates a faster link. By default, the
721 cost is based on the maximum speed of the link.
723 other_config : rstp-enable: optional string
725 If rapid spanning tree is enabled on the bridge, member ports
726 are enabled by default (with the exception of bond, internal,
727 and mirror ports which do not work with RSTP). If this
728 column’s value is false rapid spanning tree is disabled on
731 other_config : rstp-port-priority: optional string
732 containing an integer, in range 0 to 240 The port’s relative priority value
733 for determining the root port, in multiples of 16. By default,
734 the port priority is 0x80 (128).
736 other_config : rstp-port-num: optional string
737 containing an integer, in range 1 to 4,095 The local RSTP port number, used
738 as the lower 12 bits of the port-id.
740 other_config : rstp-port-path-cost: optional string
741 containing an integer The port path cost. The Port’s contribution, when it
742 is the Root Port, to the Root Path Cost for the Bridge.
744 other_config : rstp-port-admin-edge: optional string
747 other_config : rstp-port-auto-edge: optional string
748 either true or false The auto edge port parameter for the Port. Default
751 other_config : rstp-port-mcheck: optional string
752 either true or false The mcheck port parameter for the Port. Default is false.
754 other_config : mcast-snooping-flood: optional string
755 either true or false If set to true, multicast packets are
756 unconditionally forwarded to the specific port";
758 key "other-config-key";
759 leaf other-config-key {
760 description "port-other-config name/key";
763 leaf other-config-value {
764 description "port-other-config value";
769 list interface-other-configs {
770 description "Other config attributes for Interfaces
772 other_config : enable-vlan-splinters: optional string
773 either true or false. Set to true to enable VLAN splinters on this
774 interface. Defaults to false.";
776 key "other-config-key";
777 leaf other-config-key {
778 description "interface-other-config name/key";
781 leaf other-config-value {
782 description "interface-other-config value";
787 list port-external-ids {
788 description "Port external ids
790 external_ids : fake-bridge-id-*: optional string
791 External IDs for a fake bridge (see the fake_bridge column) are defined by
792 prefixing a Bridge external_ids key with
793 fake−bridge−, e.g. fake−bridge−xs−network−uuids.";
795 key "external-id-key";
796 leaf external-id-key {
797 description "external-id name/key";
801 leaf external-id-value {
802 description "external-id value";
808 list interface-external-ids {
809 description "Interface external ids
811 external_ids : attached-mac: optional string.
812 The MAC address programmed into the ‘‘virtual hardware’’ for this interface, in
813 the form xx:xx:xx:xx:xx:xx. For Citrix XenServer, this is the
814 value of the MAC field in the VIF record for this interface.
816 external_ids : iface-id: optional string.
817 A system-unique identifier for the interface. On XenServer, this will commonly
818 be the same as external_ids:xs-vif-uuid.
820 external_ids : iface-status: optional string
821 either active or inactive Hypervisors may sometimes have more than one interface
822 associated with a given external_ids:iface-id, only one of
823 which is actually in use at a given time.
825 external_ids : xs-vif-uuid: optional string.
826 The virtual interface associated with this interface.
828 external_ids : xs-network-uuid: optional string.
829 The virtual network to which this interface is attached.
831 external_ids : vm-id: optional string.
832 The VM to which this interface belongs. On XenServer, this will be the same as
833 external_ids:xsvm-uuid.
835 external_ids : xs-vm-uuid: optional string.
836 The VM to which this interface belongs";
838 key "external-id-key";
839 leaf external-id-key {
840 description "external-id name/key";
844 leaf external-id-value {
845 description "external-id value";
852 augment "/topo:network-topology/topo:topology/topo:node" {
853 description "Augmentation for bridge nodes managed by ovsdb";
854 ext:augment-identifier "ovsdb-bridge-augmentation";
855 uses ovsdb-bridge-attributes;
858 augment "/topo:network-topology/topo:topology/topo:node" {
859 description "Augment topology node for an ovsdb node";
860 ext:augment-identifier "ovsdb-node-augmentation";
861 uses ovsdb-node-attributes;
864 augment "/topo:network-topology/topo:topology/topo:node/topo:termination-point" {
865 description "Augment topology node termination-point for an ovsdb port/interface";
866 ext:augment-identifier "ovsdb-termination-point-augmentation";
867 uses ovsdb-port-interface-attributes;