Merge "Bug 5149: Support LLDP on ovsdb interface"
[ovsdb.git] / southbound / southbound-api / src / main / yang / ovsdb.yang
1 module ovsdb {
2     yang-version 1;
3     namespace "urn:opendaylight:params:xml:ns:yang:ovsdb";
4     prefix "southbound";
5
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";}
12
13     revision "2015-01-05" {
14         description "Initial revision of southbound model";
15     }
16
17     typedef ovsdb-termination-point-ref {
18         description "A reference to an ovsdb termination point";
19         type instance-identifier;
20     }
21
22     typedef ovsdb-bridge-ref {
23         description "A reference to an ovsdb bridge";
24         type instance-identifier;
25     }
26
27     typedef ovsdb-node-ref {
28         description "A reference to an ovsdb node";
29         type instance-identifier;
30     }
31
32     typedef flow-node-ref {
33         description "A reference to a flow node";
34         type instance-identifier;
35     }
36
37     typedef ovsdb-bridge-name {
38         type string;
39     }
40
41     typedef datapath-id {
42         type string {
43           pattern
44             '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}';
45         }
46         description
47           "The datapath-d type represents OpenFlow datapath-id .
48         The canonical representation uses lowercase characters.
49
50         In the value set and its semantics, this type is similar
51         to the MacAddress textual convention of the SMIv2, but with
52         16 extra bits";
53         reference
54           "Openflow 1.3.0 Spec
55            IEEE 802: IEEE Standard for Local and Metropolitan Area
56                 Networks: Overview and Architecture
57            RFC 2579: Textual Conventions for SMIv2";
58     }
59
60     identity datapath-type-base {
61         description "Base identity for all OVSDB datapath types";
62     }
63
64     identity datapath-type-system {
65         description "Datapath type for the kernel datapath";
66         base datapath-type-base;
67     }
68
69     identity datapath-type-netdev {
70         description "Datapath type for the userspace datapath";
71         base datapath-type-base;
72     }
73
74     identity ovsdb-bridge-protocol-base {
75         description "Base identity for all ovsdb-bridge-protocols";
76     }
77
78     identity ovsdb-bridge-protocol-openflow-10 {
79         description "Ovsdb bridge protocol OpenFlow 1.0";
80         base ovsdb-bridge-protocol-base;
81     }
82
83     identity ovsdb-bridge-protocol-openflow-11 {
84         description "Ovsdb bridge protocol OpenFlow 1.1";
85         base ovsdb-bridge-protocol-base;
86     }
87
88     identity ovsdb-bridge-protocol-openflow-12 {
89         description "Ovsdb bridge protocol OpenFlow 1.2";
90         base ovsdb-bridge-protocol-base;
91     }
92
93     identity ovsdb-bridge-protocol-openflow-13 {
94         description "Ovsdb bridge protocol OpenFlow 1.3";
95         base ovsdb-bridge-protocol-base;
96     }
97
98     identity ovsdb-bridge-protocol-openflow-14 {
99         description "Ovsdb bridge protocol OpenFlow 1.4";
100         base ovsdb-bridge-protocol-base;
101     }
102
103     identity ovsdb-bridge-protocol-openflow-15 {
104         description "Ovsdb bridge protocol OpenFlow 1.5";
105         base ovsdb-bridge-protocol-base;
106     }
107
108     identity ovsdb-fail-mode-base {
109         description "Base identity for ovsdb-failmode";
110     }
111
112     identity ovsdb-fail-mode-standalone {
113         description "Identity for ovsdb-failmode standalone";
114         base ovsdb-fail-mode-base;
115     }
116
117     identity ovsdb-fail-mode-secure {
118         description "Identity for ovsdb-failmode standalone";
119         base ovsdb-fail-mode-base;
120     }
121
122     grouping ovsdb-bridge-attributes {
123         leaf bridge-uuid {
124             description "The unique identifier of the bridge";
125             type yang:uuid;
126         }
127         leaf bridge-openflow-node-ref {
128             description "A reference to the openflow node";
129             type instance-identifier;
130         }
131
132         leaf bridge-name {
133             description "The name of the bridge";
134             type ovsdb-bridge-name;
135         }
136         list protocol-entry {
137             key "protocol";
138             leaf protocol {
139                 description "Protocol bridge should seek to speak to its controller";
140                 type identityref {
141                     base ovsdb-bridge-protocol-base;
142                 }
143             }
144         }
145
146         list controller-entry {
147             description "Bridge controller info";
148             key "target";
149             leaf target {
150                 description "Uri telling bridge how to connect to controller";
151                 type inet:uri;
152             }
153             leaf controller-uuid {
154                 description "The unique identifier of the controller";
155                 type yang:uuid;
156             }
157             leaf is-connected {
158                 type boolean;
159             }
160
161         }
162
163         leaf datapath-id {
164             description "Datapath-id of the bridge";
165             type datapath-id;
166         }
167
168         leaf datapath-type {
169             description "The datapath type of the bridge";
170             type identityref {
171                 base datapath-type-base;
172             }
173         }
174
175         leaf fail-mode {
176             description "Failmode of the bridge";
177             type identityref {
178                 base ovsdb-fail-mode-base;
179             }
180         }
181
182         leaf flow-node {
183             description "Flow node corresponding to this bridge";
184             type flow-node-ref;
185         }
186
187         leaf managed-by {
188             description "The OVSDB which this bridge belongs to";
189             type ovsdb-node-ref;
190         }
191
192         list bridge-external-ids {
193             description
194                "Key-value pairs for use by external frameworks that integrate
195             with Open vSwitch.
196
197             external_ids : bridge-id: optional string
198
199             A unique identifier of the bridge. On Citrix XenServer this
200             will commonly be the same as external_ids:xs-network-uuids.
201
202             external_ids : xs-network-uuids: optional string
203
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.";
208
209             key "bridge-external-id-key";
210             leaf bridge-external-id-key {
211                 description "external-id name/key";
212                 type string;
213                 mandatory true;
214             }
215             leaf bridge-external-id-value {
216                 description "bridge-external-id value";
217                 type string;
218                 mandatory true;
219             }
220         }
221
222         list bridge-other-configs {
223             description
224                "Key-value pairs for configuring rarely used features.
225
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
229                ID.
230
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.
236
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
242                   to 3600 seconds.
243
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
248                to 1,000,000.
249
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.
253
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
257                debugging purposes.
258
259             other_config : disable-in-band: optional string
260                either true or false
261                If set to true, disable in-band control on the bridge
262                regardless of controller and manager settings.
263
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
266                nonnegative integer.
267
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.
272
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.
278
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.
283
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.
288
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.
293
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.
300
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.
306
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.";
312
313             key "bridge-other-config-key";
314             leaf bridge-other-config-key {
315                 description "bridge-other-config name/key";
316                 type string;
317             }
318             leaf bridge-other-config-value {
319                 description "bridge-other-config value";
320                 type string;
321             }
322         }
323
324     }
325
326     grouping ovsdb-connection-info-attributes {
327           leaf remote-ip {
328             type inet:ip-address;
329             description "Ovsdb Connection Remote IP";
330           }
331           leaf remote-port {
332             type inet:port-number;
333             description "Ovsdb Connection Remote Port Number";
334           }
335           leaf local-ip {
336             type inet:ip-address;
337             description "Ovsdb Connection Local IP";
338           }
339           leaf local-port {
340             type inet:port-number;
341             description "Ovsdb Connection Local Port Number IP";
342           }
343     }
344
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;
352         }
353
354         leaf db-version {
355             description "The database schema version";
356             type string;
357         }
358
359         leaf ovs-version {
360             description "The Open_vSwitch version number";
361             type string;
362         }
363
364         list managed-node-entry {
365             key "bridge-ref";
366             leaf bridge-ref {
367                 type ovsdb-bridge-ref;
368             }
369         }
370
371         list datapath-type-entry {
372             key "datapath-type";
373             leaf datapath-type {
374                 description "Datapath types supported by OVSDB node";
375                 type identityref {
376                     base datapath-type-base;
377                 }
378             }
379         }
380
381         list interface-type-entry {
382             key "interface-type";
383             leaf interface-type {
384                 description "Interface types supported by OVSDB node";
385                 type identityref {
386                     base interface-type-base;
387                 }
388             }
389         }
390
391         list openvswitch-external-ids {
392             description "Key-value pairs for use by external frameworks that integrate
393                   with Open vSwitch.
394
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.
400
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.";
404
405             key "external-id-key";
406             leaf external-id-key {
407                 description "external-id name/key";
408                 type string;
409                 mandatory true;
410             }
411             leaf external-id-value {
412                 description "external-id value";
413                 type string;
414                 mandatory true;
415             }
416         }
417
418         list openvswitch-other-configs {
419             description "Key-value pairs for configuring rarely used features.
420
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.
424
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.
431
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.
435
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.
441
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.
447
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
452                revalidators.
453
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
457                in the datapath.
458
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.";
462
463             key "other-config-key";
464             leaf other-config-key {
465                 description "other-config name/key";
466                 type string;
467             }
468             leaf other-config-value {
469                 description "other-config value";
470                 type string;
471             }
472          }
473
474          list manager-entry {
475             description "Node managers info";
476             config false;
477             key "target";
478             leaf target {
479                 description "Uri that user set to connect to the controller";
480                 type inet:uri;
481             }
482             leaf connected {
483                 type boolean;
484             }
485             leaf number_of_connections {
486                 type uint32;
487             }
488         }
489
490         list qos-entries {
491             key "qos-id";
492             leaf qos-id {
493                 description "An identifier used for QoS entries in the MD-SAL.";
494                 type inet:uri;
495             }
496             leaf qos-uuid {
497                 description "The unique identifier of the QoS.";
498                 type yang:uuid;
499             }
500             leaf qos-type {
501                 type identityref {
502                     base qos-type-base;
503                 }
504             }
505             list queue-list {
506                 description "The list of queues used by the QoS";
507                 key "queue-number";
508                 leaf queue-number {
509                         description "The queue number of the record in the QoS entry";
510                         type uint32;
511                 }
512                 leaf queue-uuid {
513                     description "The unique identifier of the queue record.";
514                     type yang:uuid;
515                 }
516             }
517             list qos-external-ids {
518                 key "qos-external-id-key";
519                 leaf qos-external-id-key {
520                     description "qos external-id name/key";
521                     type string;
522                     mandatory true;
523                 }
524                 leaf qos-external-id-value {
525                     description "qos-external-id value";
526                     type string;
527                     mandatory true;
528                 }
529             }
530             list qos-other-config {
531                 description "
532                     other_config : max-rate
533                         optional string, containing an integer.";
534
535                 key "other-config-key";
536                 leaf other-config-key {
537                     description "qos-other-config name/key";
538                     type string;
539                 }
540                 leaf other-config-value {
541                     description "qos-other-config value";
542                     type string;
543                 }
544             }
545         }
546
547         list queues {
548             key "queue-id";
549             leaf queue-id {
550                 description "An identifier used for Queue entries in the MD-SAL.";
551                 type inet:uri;
552             }
553             leaf queue-uuid {
554                 description "The unique identifier of the queue.";
555                 type yang:uuid;
556             }
557             leaf dscp {
558                 type uint8;
559             }
560             list queues-external-ids {
561                 key "queues-external-id-key";
562                 leaf queues-external-id-key {
563                     description "queues external-id name/key";
564                     type string;
565                     mandatory true;
566                 }
567                 leaf queues-external-id-value {
568                     description "queues-external-id value";
569                     type string;
570                     mandatory true;
571                 }
572             }
573             list queues-other-config {
574                 description "
575                 Configuration for linux-htb QoS:
576
577                 other_config : min-rate optional string
578                     containing an integer, at least 1.
579                     Minimum guaranteed bandwidth, in bit/s.
580
581                 other_config : max-rate optional string
582                     containing an integer, at least 1.
583                     Maximum allowed bandwidth, in bit/s. Optional. If specified, the queue’s rate will not be allowed
584                     to exceed the specified value, even if excess bandwidth is available. If unspecified, defaults to no
585                     limit.
586
587                 other_config : burst optional string
588                     containing an integer, at least 1.
589                     Burst size, in bits. This is the maximum amount of ‘‘credits’’ that a queue can accumulate while it
590                     is idle. Optional. Details of the linux−htb implementation require a minimum burst size, so a
591                     too-small burst will be silently ignored.
592
593                 other_config : priority optional string.
594                     containing an integer, in range 0 to 4,294,967,295.
595                     A queue with a smaller priority will receive all the excess bandwidth that it can use before a
596                     queue with a larger value receives any. Specific priority values are unimportant; only relative
597                     ordering matters. Defaults to 0 if unspecified.
598
599                 Configuration for linux-htb QoS:
600
601                 other_config : min-rate optional string
602                     containing an integer, at least 1.
603                     Minimum guaranteed bandwidth, in bit/s.
604
605                 other_config : max-rate optional string
606                     containing an integer, at least 1.
607                     Maximum allowed bandwidth, in bit/s. Optional. If specified, the queue’s rate will not be allowed
608                     to exceed the specified value, even if excess bandwidth is available. If unspecified, defaults to no
609                     limit..";
610
611                 key "queue-other-config-key";
612                 leaf queue-other-config-key {
613                     type string;
614                 }
615                 leaf queue-other-config-value {
616                     type string;
617                 }
618             }
619         }
620      }
621
622     identity interface-type-base {
623         description "Base identity for all OVSDB interface types";
624     }
625
626     identity interface-type-system {
627         description "Interface type for system interfaces";
628         base interface-type-base;
629     }
630
631     identity interface-type-internal {
632         description "Interface type for internal interfaces";
633         base interface-type-base;
634     }
635
636     identity interface-type-vxlan {
637         description "Interface type for vxlan interfaces";
638         base interface-type-base;
639     }
640
641     identity interface-type-patch {
642         description "Interface type for patch interfaces";
643         base interface-type-base;
644     }
645
646     identity interface-type-tap {
647         description "Interface type for tun/tap interfaces";
648         base interface-type-base;
649     }
650
651     identity interface-type-geneve {
652         description "Interface type for geneve interfaces";
653         base interface-type-base;
654     }
655
656     identity interface-type-gre {
657         description "Interface type for gre interfaces";
658         base interface-type-base;
659     }
660
661     identity interface-type-ipsec-gre {
662         description "Interface type for ipsec-gre interfaces";
663         base interface-type-base;
664     }
665
666     identity interface-type-gre64 {
667         description "Interface type for gre64 interfaces";
668         base interface-type-base;
669     }
670
671     identity interface-type-ipsec-gre64 {
672         description "Interface type for ipsec-gre64 interfaces";
673         base interface-type-base;
674     }
675
676     identity interface-type-lisp {
677         description "Interface type for lisp interfaces";
678         base interface-type-base;
679     }
680
681     identity interface-type-dpdk {
682         description "Interface type for dpdk interfaces";
683         base interface-type-base;
684     }
685
686     identity interface-type-dpdkr {
687         description "Interface type for dpdk ring interfaces";
688         base interface-type-base;
689     }
690
691     identity interface-type-dpdkvhost {
692         description "Interface type for dpdkvhost interfaces";
693         base interface-type-base;
694     }
695
696     identity interface-type-dpdkvhostuser {
697         description "Interface type for dpdkvhostuser interfaces";
698         base interface-type-base;
699     }
700
701     identity interface-type-stt {
702         description "Interface type for stt interfaces";
703         base interface-type-base;
704     }
705
706     identity qos-type-base {
707         description "the base identity for qos";
708     }
709
710     identity qos-type-linux-htb {
711         description "linux hierarchy token bucket classifier";
712         base qos-type-base;
713     }
714
715     identity qos-type-linux-hfsc {
716         description "linux hierarchical fair service curve classifier";
717         base qos-type-base;
718     }
719
720     grouping ovsdb-port-interface-attributes {
721         leaf port-uuid {
722             description "The unique identifier of the OVSDB port";
723             type yang:uuid;
724         }
725
726         leaf interface-uuid {
727             description "The unique identifier of the OVSDB interface";
728             type yang:uuid;
729         }
730
731         leaf name {
732             description "The name of the OVSDB port/interface";
733             type string;
734         }
735
736         leaf interface-type {
737             description "The type of the OVSDB interface";
738             type identityref {
739                 base interface-type-base;
740             }
741         }
742
743         list options {
744             description "Port/Interface related optional input values";
745             key "option";
746             leaf option {
747                 description "Option name";
748                 type string;
749             }
750             leaf value {
751                 description "Option value";
752                 type string;
753             }
754         }
755
756         leaf ofport {
757             description "Port/Interface related optional ofport";
758             type uint32;
759         }
760
761         leaf ofport_request {
762             description "Port/Interface related optional ofport_request, in range 1 to 65279";
763             type uint16 {
764                 range "1..65279";
765             }
766         }
767
768         leaf vlan-tag {
769             description "The VLAN tag of the termination point.";
770             type ethertype:vlan-id;
771         }
772
773         list trunks {
774             description "Represents the trunks of a termination point.";
775             leaf trunk {
776                 type ethertype:vlan-id;
777             }
778         }
779
780         leaf vlan-mode {
781             description "The VLAN mode of the termination point.";
782             type enumeration {
783                 enum "access" {
784                     value 1;
785                     description
786                         "The VLAN mode access.";
787                 }
788                 enum "native-tagged" {
789                     value 2;
790                     description
791                         "The VLAN mode native-tagged.";
792                 }
793                 enum "native-untagged" {
794                     value 3;
795                     description
796                         "The VLAN mode native-untagged.";
797                 }
798                 enum "trunk" {
799                     value 4;
800                     description
801                         "The VLAN mode trunk.";
802                 }
803             }
804         }
805
806         list port-other-configs {
807             description "Other config attributes for Ports
808
809             other_config : priority-tags: optional string
810                either true or false An 802.1Q header contains two important pieces of
811                information: a VLAN ID and a priority.
812
813             other_config : bond-hash-basis: optional string
814                containing an integer An integer hashed along with flows when choosing output
815                slaves in load balanced bonds. When changed, all flows will be
816                assigned different hash values possibly causing slave selection
817                decisions to change.
818
819             other_config : bond-detect-mode: optional string
820                either miimon or carrier The means used to detect link failures. Defaults to
821                carrier which uses each interface’s carrier to detect failures.
822                When set to miimon, will check for failures by polling each
823                interface’s MII.
824
825             other_config : bond-miimon-interval: optional string
826                containing an integer The interval, in milliseconds, between successive
827                attempts to poll each interface’s MII. Relevant only when
828                other_config:bond-detect-mode is miimon
829
830             other_config : lacp-system-id: optional string
831                The LACP system ID of this Port. The system ID of a LACP bond
832                is used to identify itself to its partners. Must be a nonzero
833                MAC address. Defaults to the bridge Ethernet address if unset.
834
835             other_config : lacp-system-priority: optional string
836                containing an integer, in range 1 to 65,535 The LACP system priority of this
837                Port. In LACP negotiations, link status decisions are made by
838                the system with the numerically lower priority.
839
840             other_config : lacp-time: optional string
841                 either slow or fast. The LACP timing which should be used on this Port. By default
842                 slow is used. When configured to be fast LACP heartbeats are
843                 requested at a rate of once per second causing connectivity
844                 problems to be detected more quickly. In slow mode, heartbeats
845                 are requested at a rate of once every 30 seconds.
846
847             other_config : lacp-fallback-ab: optional string
848                 either true or false Determines the behavior of openvswitch bond in LACP mode.
849                 If the partner switch does not support LACP, setting this
850                 option to true allows openvswitch to fallback to active-backup.
851                 If the option is set to false, the bond will be disabled.
852                 In both the cases, once the partner switch is configured
853                 to LACP mode, the bond will use LACP.
854
855             other_config : bond-rebalance-interval: optional string,
856                 containing an integer, in range 0 to 10,000 For a load
857                 balanced bonded port, the number of milliseconds between
858                 successive attempts to rebalance the bond, that is, to move
859                 flows from one interface on the bond to another in an attempt
860                 to keep usage of each interface roughly equal. If zero, load
861                 balancing is disabled on the bond (link failure still cause
862                 flows to move). If less than 1000ms, the rebalance interval
863                 will be 1000ms.
864
865             other_config : stp-enable: optional string
866                either true or false. If spanning tree is enabled on the bridge, member ports are
867                enabled by default (with the exception of bond, internal, and
868                mirror ports which do not work with STP). If this column’s
869                value is false spanning tree is disabled on the port.
870
871             other_config : stp-port-num: optional string
872                containing an integer, in range 1 to 255 The port number used for the lower 8
873                bits of the port-id. By default, the numbers will be assigned
874                automatically. If any port’s number is manually configured on
875                a bridge, then they must all be.
876
877             other_config : stp-port-priority: optional string
878                containing an integer, in range 0 to 255 The port’s relative priority value
879                for determining the root port (the upper 8 bits of the port-id).
880
881             other_config : stp-path-cost: optional string
882                 containing an integer, in range 0 to 65,535 Spanning tree path cost for the
883                 port. A lower number indicates a faster link. By default, the
884                 cost is based on the maximum speed of the link.
885
886              other_config : rstp-enable: optional string
887                  either true or false
888                  If rapid spanning tree is enabled on the bridge, member ports
889                  are enabled by default (with the exception of bond, internal,
890                  and mirror ports which do not work with RSTP). If this
891                  column’s value is false rapid spanning tree is disabled on
892                  the port.
893
894              other_config : rstp-port-priority: optional string
895                  containing an integer, in range 0 to 240 The port’s relative priority value
896                  for determining the root port, in multiples of 16. By default,
897                  the port priority is 0x80 (128).
898
899              other_config : rstp-port-num: optional string
900                  containing an integer, in range 1 to 4,095 The local RSTP port number, used
901                  as the lower 12 bits of the port-id.
902
903              other_config : rstp-port-path-cost: optional string
904                  containing an integer The port path cost. The Port’s contribution, when it
905                  is the Root Port, to the Root Path Cost for the Bridge.
906
907              other_config : rstp-port-admin-edge: optional string
908                  either true or false
909
910              other_config : rstp-port-auto-edge: optional string
911                  either true or false The auto edge port parameter for the Port. Default
912                  is true.
913
914              other_config : rstp-port-mcheck: optional string
915                  either true or false The mcheck port parameter for the Port. Default is false.
916
917               other_config : mcast-snooping-flood: optional string
918                   either true or false If set to true, multicast packets are
919                   unconditionally forwarded to the specific port";
920
921             key "other-config-key";
922             leaf other-config-key {
923                 description "port-other-config name/key";
924                 type string;
925             }
926             leaf other-config-value {
927                 description "port-other-config value";
928                 type string;
929             }
930         }
931
932         list interface-other-configs {
933             description "Other config attributes for Interfaces
934
935             other_config : enable-vlan-splinters: optional string
936                either true or false. Set to true to enable VLAN splinters on this
937                interface. Defaults to false.";
938
939             key "other-config-key";
940             leaf other-config-key {
941                 description "interface-other-config name/key";
942                 type string;
943             }
944             leaf other-config-value {
945                 description "interface-other-config value";
946                 type string;
947             }
948         }
949
950         list port-external-ids {
951             description "Port external ids
952
953             external_ids : fake-bridge-id-*: optional string
954                External IDs for a fake bridge (see the fake_bridge column) are defined by
955                prefixing a Bridge external_ids key with
956                fake−bridge−, e.g. fake−bridge−xs−network−uuids.";
957
958             key "external-id-key";
959             leaf external-id-key {
960                 description "external-id name/key";
961                 type string;
962                 mandatory true;
963             }
964             leaf external-id-value {
965                 description "external-id value";
966                 type string;
967                 mandatory true;
968             }
969         }
970
971         list interface-external-ids {
972             description "Interface external ids
973
974             external_ids : attached-mac: optional string.
975                The MAC address programmed into the ‘‘virtual hardware’’ for this interface, in
976                the form xx:xx:xx:xx:xx:xx. For Citrix XenServer, this is the
977                value of the MAC field in the VIF record for this interface.
978
979             external_ids : iface-id: optional string.
980                A system-unique identifier for the interface. On XenServer, this will commonly
981                be the same as external_ids:xs-vif-uuid.
982
983             external_ids : iface-status: optional string
984                either active or inactive Hypervisors may sometimes have more than one interface
985                associated with a given external_ids:iface-id, only one of
986                which is actually in use at a given time.
987
988             external_ids : xs-vif-uuid: optional string.
989                The virtual interface associated with this interface.
990
991             external_ids : xs-network-uuid: optional string.
992                The virtual network to which this interface is attached.
993
994             external_ids : vm-id: optional string.
995                The VM to which this interface belongs. On XenServer, this will be the same as
996                external_ids:xsvm-uuid.
997
998             external_ids : xs-vm-uuid: optional string.
999                The VM to which this interface belongs";
1000
1001             key "external-id-key";
1002             leaf external-id-key {
1003                 description "external-id name/key";
1004                 type string;
1005                 mandatory true;
1006             }
1007             leaf external-id-value {
1008                 description "external-id value";
1009                 type string;
1010                 mandatory true;
1011             }
1012         }
1013
1014         list interface-lldp {
1015             description "Auto Attach configuration for a particular interface.
1016                 If LLDP is enabled on an interface, the interface processes received
1017                 LLDP packets and never passes them to OpenFlow or forwards them.
1018
1019                 lldp : enable: optional string, either true or false
1020                        True to enable LLDP on this Interface. If not specified, LLDP
1021                        will be disabled by default.";
1022
1023             key "lldp-key";
1024             leaf lldp-key {
1025                 description "lldp name/key";
1026                 type string;
1027             }
1028             leaf lldp-value {
1029                 description "lldp value";
1030                 type string;
1031             }
1032         }
1033
1034         leaf qos {
1035             description "The unique identifier of the QoS entry for this port.";
1036             type yang:uuid;
1037         }
1038     }
1039
1040     augment "/topo:network-topology/topo:topology/topo:node" {
1041         description "Augmentation for bridge nodes managed by ovsdb";
1042         ext:augment-identifier "ovsdb-bridge-augmentation";
1043         uses ovsdb-bridge-attributes;
1044     }
1045
1046     augment "/topo:network-topology/topo:topology/topo:node" {
1047         description "Augment topology node for an ovsdb node";
1048         ext:augment-identifier "ovsdb-node-augmentation";
1049         uses ovsdb-node-attributes;
1050     }
1051
1052     augment "/topo:network-topology/topo:topology/topo:node/topo:termination-point" {
1053         description "Augment topology node termination-point for an ovsdb port/interface";
1054         ext:augment-identifier "ovsdb-termination-point-augmentation";
1055         uses ovsdb-port-interface-attributes;
1056     }
1057 }