Merge "Drop the #1997-related sleep"
[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 "";
347         container connection-info{
348             uses ovsdb-connection-info-attributes;
349         }
350
351         leaf db-version {
352             description "The database schema version";
353             type string;
354         }
355
356         leaf ovs-version {
357             description "The Open_vSwitch version number";
358             type string;
359         }
360
361         list managed-node-entry {
362             key "bridge-ref";
363             leaf bridge-ref {
364                 type ovsdb-bridge-ref;
365             }
366         }
367
368         list datapath-type-entry {
369             key "datapath-type";
370             leaf datapath-type {
371                 description "Datapath types supported by OVSDB node";
372                 type identityref {
373                     base datapath-type-base;
374                 }
375             }
376         }
377
378         list interface-type-entry {
379             key "interface-type";
380             leaf interface-type {
381                 description "Interface types supported by OVSDB node";
382                 type identityref {
383                     base interface-type-base;
384                 }
385             }
386         }
387
388         list openvswitch-external-ids {
389             description "Key-value pairs for use by external frameworks that integrate
390                   with Open vSwitch.
391
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.
397
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.";
401
402             key "external-id-key";
403             leaf external-id-key {
404                 description "external-id name/key";
405                 type string;
406                 mandatory true;
407             }
408             leaf external-id-value {
409                 description "external-id value";
410                 type string;
411                 mandatory true;
412             }
413         }
414
415         list openvswitch-other-configs {
416             description "Key-value pairs for configuring rarely used features.
417
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.
421
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.
428
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.
432
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.
438
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.
444
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
449                revalidators.
450
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
454                in the datapath.
455
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.";
459
460             key "other-config-key";
461             leaf other-config-key {
462                 description "other-config name/key";
463                 type string;
464             }
465             leaf other-config-value {
466                 description "other-config value";
467                 type string;
468             }
469          }
470
471      }
472
473     identity interface-type-base {
474         description "Base identity for all OVSDB interface types";
475     }
476
477     identity interface-type-system {
478         description "Interface type for system interfaces";
479         base interface-type-base;
480     }
481
482     identity interface-type-internal {
483         description "Interface type for internal interfaces";
484         base interface-type-base;
485     }
486
487     identity interface-type-vxlan {
488         description "Interface type for vxlan interfaces";
489         base interface-type-base;
490     }
491
492     identity interface-type-patch {
493         description "Interface type for patch interfaces";
494         base interface-type-base;
495     }
496
497     identity interface-type-tap {
498         description "Interface type for tun/tap interfaces";
499         base interface-type-base;
500     }
501
502     identity interface-type-geneve {
503         description "Interface type for geneve interfaces";
504         base interface-type-base;
505     }
506
507     identity interface-type-gre {
508         description "Interface type for gre interfaces";
509         base interface-type-base;
510     }
511
512     identity interface-type-ipsec-gre {
513         description "Interface type for ipsec-gre interfaces";
514         base interface-type-base;
515     }
516
517     identity interface-type-gre64 {
518         description "Interface type for gre64 interfaces";
519         base interface-type-base;
520     }
521
522     identity interface-type-ipsec-gre64 {
523         description "Interface type for ipsec-gre64 interfaces";
524         base interface-type-base;
525     }
526
527     identity interface-type-lisp {
528         description "Interface type for lisp interfaces";
529         base interface-type-base;
530     }
531
532     identity interface-type-dpdk {
533         description "Interface type for dpdk interfaces";
534         base interface-type-base;
535     }
536
537     identity interface-type-dpdkr {
538         description "Interface type for dpdk ring interfaces";
539         base interface-type-base;
540     }
541
542     identity interface-type-dpdkvhost {
543         description "Interface type for dpdkvhost interfaces";
544         base interface-type-base;
545     }
546
547     identity interface-type-dpdkvhostuser {
548         description "Interface type for dpdkvhostuser interfaces";
549         base interface-type-base;
550     }
551
552     identity interface-type-stt {
553         description "Interface type for stt interfaces";
554         base interface-type-base;
555     }
556
557     grouping ovsdb-port-interface-attributes {
558         leaf port-uuid {
559             description "The unique identifier of the OVSDB port";
560             type yang:uuid;
561         }
562
563         leaf interface-uuid {
564             description "The unique identifier of the OVSDB interface";
565             type yang:uuid;
566         }
567
568         leaf name {
569             description "The name of the OVSDB port/interface";
570             type string;
571         }
572
573         leaf interface-type {
574             description "The type of the OVSDB interface";
575             type identityref {
576                 base interface-type-base;
577             }
578         }
579
580         list options {
581             description "Port/Interface related optional input values";
582             key "option";
583             leaf option {
584                 description "Option name";
585                 type string;
586             }
587             leaf value {
588                 description "Option value";
589                 type string;
590             }
591         }
592
593         leaf ofport {
594             description "Port/Interface related optional ofport";
595             type uint32;
596         }
597
598         leaf ofport_request {
599             description "Port/Interface related optional ofport_request, in range 1 to 65279";
600             type uint16 {
601                 range "1..65279";
602             }
603         }
604
605         leaf vlan-tag {
606             description "The VLAN tag of the termination point.";
607             type ethertype:vlan-id;
608         }
609
610         list trunks {
611             description "Represents the trunks of a termination point.";
612             leaf trunk {
613                 type ethertype:vlan-id;
614             }
615         }
616
617         leaf vlan-mode {
618             description "The VLAN mode of the termination point.";
619             type enumeration {
620                 enum "access" {
621                     value 1;
622                     description
623                         "The VLAN mode access.";
624                 }
625                 enum "native-tagged" {
626                     value 2;
627                     description
628                         "The VLAN mode native-tagged.";
629                 }
630                 enum "native-untagged" {
631                     value 3;
632                     description
633                         "The VLAN mode native-untagged.";
634                 }
635                 enum "trunk" {
636                     value 4;
637                     description
638                         "The VLAN mode trunk.";
639                 }
640             }
641         }
642
643         list port-other-configs {
644             description "Other config attributes for Ports
645
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.
649
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
654                decisions to change.
655
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
660                interface’s MII.
661
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
666
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.
671
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.
676
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.
683
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.
691
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
700                 will be 1000ms.
701
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.
707
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.
713
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).
717
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.
722
723              other_config : rstp-enable: optional string
724                  either true or false
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
729                  the port.
730
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).
735
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.
739
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.
743
744              other_config : rstp-port-admin-edge: optional string
745                  either true or false
746
747              other_config : rstp-port-auto-edge: optional string
748                  either true or false The auto edge port parameter for the Port. Default
749                  is true.
750
751              other_config : rstp-port-mcheck: optional string
752                  either true or false The mcheck port parameter for the Port. Default is false.
753
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";
757
758             key "other-config-key";
759             leaf other-config-key {
760                 description "port-other-config name/key";
761                 type string;
762             }
763             leaf other-config-value {
764                 description "port-other-config value";
765                 type string;
766             }
767         }
768
769         list interface-other-configs {
770             description "Other config attributes for Interfaces
771
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.";
775
776             key "other-config-key";
777             leaf other-config-key {
778                 description "interface-other-config name/key";
779                 type string;
780             }
781             leaf other-config-value {
782                 description "interface-other-config value";
783                 type string;
784             }
785         }
786
787         list port-external-ids {
788             description "Port external ids
789
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.";
794
795             key "external-id-key";
796             leaf external-id-key {
797                 description "external-id name/key";
798                 type string;
799                 mandatory true;
800             }
801             leaf external-id-value {
802                 description "external-id value";
803                 type string;
804                 mandatory true;
805             }
806         }
807
808         list interface-external-ids {
809             description "Interface external ids
810
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.
815
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.
819
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.
824
825             external_ids : xs-vif-uuid: optional string.
826                The virtual interface associated with this interface.
827
828             external_ids : xs-network-uuid: optional string.
829                The virtual network to which this interface is attached.
830
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.
834
835             external_ids : xs-vm-uuid: optional string.
836                The VM to which this interface belongs";
837
838             key "external-id-key";
839             leaf external-id-key {
840                 description "external-id name/key";
841                 type string;
842                 mandatory true;
843             }
844             leaf external-id-value {
845                 description "external-id value";
846                 type string;
847                 mandatory true;
848             }
849         }
850     }
851
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;
856     }
857
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;
862     }
863
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;
868     }
869 }