]> git.proxmox.com Git - mirror_ovs.git/blob - vtep/vtep.xml
vtep: Bring BFD specification in vtep.xml into sync with OVS.
[mirror_ovs.git] / vtep / vtep.xml
1 <?xml version="1.0" encoding="utf-8"?>
2 <database title="Hardware VTEP Database">
3 <p>
4 This schema specifies relations that a VTEP can use to integrate
5 physical ports into logical switches maintained by a network
6 virtualization controller such as NSX.
7 </p>
8
9 <p>Glossary:</p>
10
11 <dl>
12 <dt>VTEP</dt>
13 <dd>
14 VXLAN Tunnel End Point, an entity which originates and/or terminates
15 VXLAN tunnels.
16 </dd>
17
18 <dt>HSC</dt>
19 <dd>
20 Hardware Switch Controller.
21 </dd>
22
23 <dt>NVC</dt>
24 <dd>
25 Network Virtualization Controller, e.g. NSX.
26 </dd>
27
28 <dt>VRF</dt>
29 <dd>
30 Virtual Routing and Forwarding instance.
31 </dd>
32 </dl>
33
34 <table name="Global" title="Top-level configuration.">
35 Top-level configuration for a hardware VTEP. There must be
36 exactly one record in the <ref table="Global"/> table.
37
38 <column name="switches">
39 The physical switches managed by the VTEP.
40 </column>
41
42 <group title="Database Configuration">
43 <p>
44 These columns primarily configure the database server
45 (<code>ovsdb-server</code>), not the hardware VTEP itself.
46 </p>
47
48 <column name="managers">
49 Database clients to which the database server should connect or
50 to which it should listen, along with options for how these
51 connection should be configured. See the <ref table="Manager"/>
52 table for more information.
53 </column>
54 </group>
55 </table>
56
57 <table name="Manager" title="OVSDB management connection.">
58 <p>
59 Configuration for a database connection to an Open vSwitch Database
60 (OVSDB) client.
61 </p>
62
63 <p>
64 The database server can initiate and maintain active connections
65 to remote clients. It can also listen for database connections.
66 </p>
67
68 <group title="Core Features">
69 <column name="target">
70 <p>Connection method for managers.</p>
71 <p>
72 The following connection methods are currently supported:
73 </p>
74 <dl>
75 <dt><code>ssl:<var>ip</var></code>[<code>:<var>port</var></code>]</dt>
76 <dd>
77 <p>
78 The specified SSL <var>port</var> (default: 6632) on the host at
79 the given <var>ip</var>, which must be expressed as an IP address
80 (not a DNS name).
81 </p>
82 <p>
83 SSL key and certificate configuration happens outside the
84 database.
85 </p>
86 </dd>
87
88 <dt><code>tcp:<var>ip</var></code>[<code>:<var>port</var></code>]</dt>
89 <dd>
90 The specified TCP <var>port</var> (default: 6632) on the host at
91 the given <var>ip</var>, which must be expressed as an IP address
92 (not a DNS name).
93 </dd>
94 <dt><code>pssl:</code>[<var>port</var>][<code>:<var>ip</var></code>]</dt>
95 <dd>
96 <p>
97 Listens for SSL connections on the specified TCP <var>port</var>
98 (default: 6632). If <var>ip</var>, which must be expressed as an
99 IP address (not a DNS name), is specified, then connections are
100 restricted to the specified local IP address.
101 </p>
102 </dd>
103 <dt><code>ptcp:</code>[<var>port</var>][<code>:<var>ip</var></code>]</dt>
104 <dd>
105 Listens for connections on the specified TCP <var>port</var>
106 (default: 6632). If <var>ip</var>, which must be expressed as an
107 IP address (not a DNS name), is specified, then connections are
108 restricted to the specified local IP address.
109 </dd>
110 </dl>
111 </column>
112 </group>
113
114 <group title="Client Failure Detection and Handling">
115 <column name="max_backoff">
116 Maximum number of milliseconds to wait between connection attempts.
117 Default is implementation-specific.
118 </column>
119
120 <column name="inactivity_probe">
121 Maximum number of milliseconds of idle time on connection to the
122 client before sending an inactivity probe message. If the Open
123 vSwitch database does not communicate with the client for the
124 specified number of seconds, it will send a probe. If a
125 response is not received for the same additional amount of time,
126 the database server assumes the connection has been broken
127 and attempts to reconnect. Default is implementation-specific.
128 A value of 0 disables inactivity probes.
129 </column>
130 </group>
131
132 <group title="Status">
133 <column name="is_connected">
134 <code>true</code> if currently connected to this manager,
135 <code>false</code> otherwise.
136 </column>
137
138 <column name="status" key="last_error">
139 A human-readable description of the last error on the connection
140 to the manager; i.e. <code>strerror(errno)</code>. This key
141 will exist only if an error has occurred.
142 </column>
143
144 <column name="status" key="state"
145 type='{"type": "string", "enum": ["set", ["VOID", "BACKOFF", "CONNECTING", "ACTIVE", "IDLE"]]}'>
146 <p>
147 The state of the connection to the manager:
148 </p>
149 <dl>
150 <dt><code>VOID</code></dt>
151 <dd>Connection is disabled.</dd>
152
153 <dt><code>BACKOFF</code></dt>
154 <dd>Attempting to reconnect at an increasing period.</dd>
155
156 <dt><code>CONNECTING</code></dt>
157 <dd>Attempting to connect.</dd>
158
159 <dt><code>ACTIVE</code></dt>
160 <dd>Connected, remote host responsive.</dd>
161
162 <dt><code>IDLE</code></dt>
163 <dd>Connection is idle. Waiting for response to keep-alive.</dd>
164 </dl>
165 <p>
166 These values may change in the future. They are provided only for
167 human consumption.
168 </p>
169 </column>
170
171 <column name="status" key="sec_since_connect"
172 type='{"type": "integer", "minInteger": 0}'>
173 The amount of time since this manager last successfully connected
174 to the database (in seconds). Value is empty if manager has never
175 successfully connected.
176 </column>
177
178 <column name="status" key="sec_since_disconnect"
179 type='{"type": "integer", "minInteger": 0}'>
180 The amount of time since this manager last disconnected from the
181 database (in seconds). Value is empty if manager has never
182 disconnected.
183 </column>
184
185 <column name="status" key="locks_held">
186 Space-separated list of the names of OVSDB locks that the connection
187 holds. Omitted if the connection does not hold any locks.
188 </column>
189
190 <column name="status" key="locks_waiting">
191 Space-separated list of the names of OVSDB locks that the connection is
192 currently waiting to acquire. Omitted if the connection is not waiting
193 for any locks.
194 </column>
195
196 <column name="status" key="locks_lost">
197 Space-separated list of the names of OVSDB locks that the connection
198 has had stolen by another OVSDB client. Omitted if no locks have been
199 stolen from this connection.
200 </column>
201
202 <column name="status" key="n_connections"
203 type='{"type": "integer", "minInteger": 2}'>
204 <p>
205 When <ref column="target"/> specifies a connection method that
206 listens for inbound connections (e.g. <code>ptcp:</code> or
207 <code>pssl:</code>) and more than one connection is actually active,
208 the value is the number of active connections. Otherwise, this
209 key-value pair is omitted.
210 </p>
211 <p>
212 When multiple connections are active, status columns and key-value
213 pairs (other than this one) report the status of one arbitrarily
214 chosen connection.
215 </p>
216 </column>
217 </group>
218
219 <group title="Connection Parameters">
220 <p>
221 Additional configuration for a connection between the manager
222 and the database server.
223 </p>
224
225 <column name="other_config" key="dscp"
226 type='{"type": "integer"}'>
227 The Differentiated Service Code Point (DSCP) is specified using 6 bits
228 in the Type of Service (TOS) field in the IP header. DSCP provides a
229 mechanism to classify the network traffic and provide Quality of
230 Service (QoS) on IP networks.
231
232 The DSCP value specified here is used when establishing the
233 connection between the manager and the database server. If no
234 value is specified, a default value of 48 is chosen. Valid DSCP
235 values must be in the range 0 to 63.
236 </column>
237 </group>
238 </table>
239
240 <table name="Physical_Switch" title="A physical switch.">
241 A physical switch that implements a VTEP.
242
243 <column name="ports">
244 The physical ports within the switch.
245 </column>
246
247 <group title="Network Status">
248 <column name="management_ips">
249 IPv4 or IPv6 addresses at which the switch may be contacted
250 for management purposes.
251 </column>
252
253 <column name="tunnel_ips">
254 <p>
255 IPv4 or IPv6 addresses on which the switch may originate or
256 terminate tunnels.
257 </p>
258
259 <p>
260 This column is intended to allow a <ref table="Manager"/> to
261 determine the <ref table="Physical_Switch"/> that terminates
262 the tunnel represented by a <ref table="Physical_Locator"/>.
263 </p>
264 </column>
265 </group>
266
267 <group title="Identification">
268 <column name="name">
269 Symbolic name for the switch, such as its hostname.
270 </column>
271
272 <column name="description">
273 An extended description for the switch, such as its switch login
274 banner.
275 </column>
276 </group>
277 </table>
278
279 <table name="Physical_Port" title="A port within a physical switch.">
280 A port within a <ref table="Physical_Switch"/>.
281
282 <column name="vlan_bindings">
283 Identifies how VLANs on the physical port are bound to logical switches.
284 If, for example, the map contains a (VLAN, logical switch) pair, a packet
285 that arrives on the port in the VLAN is considered to belong to the
286 paired logical switch.
287 </column>
288
289 <column name="vlan_stats">
290 Statistics for VLANs bound to logical switches on the physical port. An
291 implementation that fully supports such statistics would populate this
292 column with a mapping for every VLAN that is bound in <ref
293 column="vlan_bindings"/>. An implementation that does not support such
294 statistics or only partially supports them would not populate this column
295 or partially populate it, respectively.
296 </column>
297
298 <group title="Identification">
299 <column name="name">
300 Symbolic name for the port. The name ought to be unique within a given
301 <ref table="Physical_Switch"/>, but the database is not capable of
302 enforcing this.
303 </column>
304
305 <column name="description">
306 An extended description for the port.
307 </column>
308 </group>
309 </table>
310
311 <table name="Logical_Binding_Stats" title="Statistics for a VLAN on a physical port bound to a logical network.">
312 Reports statistics for the <ref table="Logical_Switch"/> with which a VLAN
313 on a <ref table="Physical_Port"/> is associated.
314
315 <group title="Statistics">
316 These statistics count only packets to which the binding applies.
317
318 <column name="packets_from_local">
319 Number of packets sent by the <ref table="Physical_Switch"/>.
320 </column>
321
322 <column name="bytes_from_local">
323 Number of bytes in packets sent by the <ref table="Physical_Switch"/>.
324 </column>
325
326 <column name="packets_to_local">
327 Number of packets received by the <ref table="Physical_Switch"/>.
328 </column>
329
330 <column name="bytes_to_local">
331 Number of bytes in packets received by the <ref
332 table="Physical_Switch"/>.
333 </column>
334 </group>
335 </table>
336
337 <table name="Logical_Switch" title="A layer-2 domain.">
338 A logical Ethernet switch, whose implementation may span physical and
339 virtual media, possibly crossing L3 domains via tunnels; a logical layer-2
340 domain; an Ethernet broadcast domain.
341
342
343
344 <group title="Per Logical-Switch Tunnel Key">
345 <p>
346 Tunnel protocols tend to have a field that allows the tunnel
347 to be partitioned into sub-tunnels: VXLAN has a VNI, GRE and
348 STT have a key, CAPWAP has a WSI, and so on. We call these
349 generically ``tunnel keys.'' Given that one needs to use a
350 tunnel key at all, there are at least two reasonable ways to
351 assign their values:
352 </p>
353
354 <ul>
355 <li>
356 <p>
357 Per <ref table="Logical_Switch"/>+<ref table="Physical_Locator"/>
358 pair. That is, each logical switch may be assigned a different
359 tunnel key on every <ref table="Physical_Locator"/>. This model is
360 especially flexible.
361 </p>
362
363 <p>
364 In this model, <ref table="Physical_Locator"/> carries the tunnel
365 key. Therefore, one <ref table="Physical_Locator"/> record will
366 exist for each logical switch carried at a given IP destination.
367 </p>
368 </li>
369
370 <li>
371 <p>
372 Per <ref table="Logical_Switch"/>. That is, every tunnel
373 associated with a particular logical switch carries the same tunnel
374 key, regardless of the <ref table="Physical_Locator"/> to which the
375 tunnel is addressed. This model may ease switch implementation
376 because it imposes fewer requirements on the hardware datapath.
377 </p>
378
379 <p>
380 In this model, <ref table="Logical_Switch"/> carries the tunnel
381 key. Therefore, one <ref table="Physical_Locator"/> record will
382 exist for each IP destination.
383 </p>
384 </li>
385 </ul>
386
387 <column name="tunnel_key">
388 <p>
389 This column is used only in the tunnel key per <ref
390 table="Logical_Switch"/> model (see above), because only in that
391 model is there a tunnel key associated with a logical switch.
392 </p>
393
394 <p>
395 For <code>vxlan_over_ipv4</code> encapsulation, this column
396 is the VXLAN VNI that identifies a logical switch. It must
397 be in the range 0 to 16,777,215.
398 </p>
399 </column>
400 </group>
401
402 <group title="Identification">
403 <column name="name">
404 Symbolic name for the logical switch.
405 </column>
406
407 <column name="description">
408 An extended description for the logical switch, such as its switch
409 login banner.
410 </column>
411 </group>
412 </table>
413
414 <table name="Ucast_Macs_Local" title="Unicast MACs (local)">
415 <p>
416 Mapping of unicast MAC addresses to tunnels (physical
417 locators). This table is written by the HSC, so it contains the
418 MAC addresses that have been learned on physical ports by a
419 VTEP.
420 </p>
421
422 <column name="MAC">
423 A MAC address that has been learned by the VTEP.
424 </column>
425
426 <column name="logical_switch">
427 The Logical switch to which this mapping applies.
428 </column>
429
430 <column name="locator">
431 The physical locator to be used to reach this MAC address. In
432 this table, the physical locator will be one of the tunnel IP
433 addresses of the appropriate VTEP.
434 </column>
435
436 <column name="ipaddr">
437 The IP address to which this MAC corresponds. Optional field for
438 the purpose of ARP supression.
439 </column>
440
441 </table>
442
443 <table name="Ucast_Macs_Remote" title="Unicast MACs (remote)">
444 <p>
445 Mapping of unicast MAC addresses to tunnels (physical
446 locators). This table is written by the NVC, so it contains the
447 MAC addresses that the NVC has learned. These include VM MAC
448 addresses, in which case the physical locators will be
449 hypervisor IP addresses. The NVC will also report MACs that it
450 has learned from other HSCs in the network, in which case the
451 physical locators will be tunnel IP addresses of the
452 corresponding VTEPs.
453 </p>
454
455 <column name="MAC">
456 A MAC address that has been learned by the NSC.
457 </column>
458
459 <column name="logical_switch">
460 The Logical switch to which this mapping applies.
461 </column>
462
463 <column name="locator">
464 The physical locator to be used to reach this MAC address. In
465 this table, the physical locator will be either a hypervisor IP
466 address or a tunnel IP addresses of another VTEP.
467 </column>
468
469 <column name="ipaddr">
470 The IP address to which this MAC corresponds. Optional field for
471 the purpose of ARP supression.
472 </column>
473
474 </table>
475
476 <table name="Mcast_Macs_Local" title="Multicast MACs (local)">
477 <p>
478 Mapping of multicast MAC addresses to tunnels (physical
479 locators). This table is written by the HSC, so it contains the
480 MAC addresses that have been learned on physical ports by a
481 VTEP. These may be learned by IGMP snooping, for example. This
482 table also specifies how to handle unknown unicast and broadcast packets.
483 </p>
484
485 <column name="MAC">
486 <p>
487 A MAC address that has been learned by the VTEP.
488 </p>
489 <p>
490 The keyword <code>unknown-dst</code> is used as a special
491 ``Ethernet address'' that indicates the locations to which
492 packets in a logical switch whose destination addresses do not
493 otherwise appear in <ref table="Ucast_Macs_Local"/> (for
494 unicast addresses) or <ref table="Mcast_Macs_Local"/> (for
495 multicast addresses) should be sent.
496 </p>
497 </column>
498
499 <column name="logical_switch">
500 The Logical switch to which this mapping applies.
501 </column>
502
503 <column name="locator_set">
504 The physical locator set to be used to reach this MAC address. In
505 this table, the physical locator set will be contain one or more tunnel IP
506 addresses of the appropriate VTEP(s).
507 </column>
508
509 </table>
510
511 <table name="Mcast_Macs_Remote" title="Multicast MACs (remote)">
512 <p>
513 Mapping of multicast MAC addresses to tunnels (physical
514 locators). This table is written by the NVC, so it contains the
515 MAC addresses that the NVC has learned. This
516 table also specifies how to handle unknown unicast and broadcast
517 packets.
518 </p>
519 <p>
520 Multicast packet replication may be handled by a service node,
521 in which case the physical locators will be IP addresses of
522 service nodes. If the VTEP supports replication onto multiple
523 tunnels, then this may be used to replicate directly onto
524 VTEP-hyperisor tunnels.
525 </p>
526
527 <column name="MAC">
528 <p>
529 A MAC address that has been learned by the NSC.
530 </p>
531 <p>
532 The keyword <code>unknown-dst</code> is used as a special
533 ``Ethernet address'' that indicates the locations to which
534 packets in a logical switch whose destination addresses do not
535 otherwise appear in <ref table="Ucast_Macs_Remote"/> (for
536 unicast addresses) or <ref table="Mcast_Macs_Remote"/> (for
537 multicast addresses) should be sent.
538 </p>
539 </column>
540
541 <column name="logical_switch">
542 The Logical switch to which this mapping applies.
543 </column>
544
545 <column name="locator_set">
546 The physical locator set to be used to reach this MAC address. In
547 this table, the physical locator set will be either a service node IP
548 address or a set of tunnel IP addresses of hypervisors (and
549 potentially other VTEPs).
550 </column>
551
552 <column name="ipaddr">
553 The IP address to which this MAC corresponds. Optional field for
554 the purpose of ARP supression.
555 </column>
556
557 </table>
558
559 <table name="Logical_Router" title="A logical L3 router.">
560 <p>
561 A logical router, or VRF. A logical router may be connected to one or more
562 logical switches. Subnet addresses and interface addresses may be configured on the
563 interfaces.
564 </p>
565
566 <column name="switch_binding">
567 Maps from an IPv4 or IPv6 address prefix in CIDR notation to a
568 logical switch. Multiple prefixes may map to the same switch. By
569 writing a 32-bit (or 128-bit for v6) address with a /N prefix
570 length, both the router's interface address and the subnet
571 prefix can be configured. For example, 192.68.1.1/24 creates a
572 /24 subnet for the logical switch attached to the interface and
573 assigns the address 192.68.1.1 to the router interface.
574 </column>
575
576 <column name="static_routes">
577 One or more static routes, mapping IP prefixes to next hop IP addresses.
578 </column>
579
580 <group title="Identification">
581 <column name="name">
582 Symbolic name for the logical router.
583 </column>
584
585 <column name="description">
586 An extended description for the logical router.
587 </column>
588 </group>
589 </table>
590
591 <table name="Physical_Locator_Set">
592 <p>
593 A set of one or more <ref table="Physical_Locator"/>s.
594 </p>
595
596 <p>
597 This table exists only because OVSDB does not have a way to
598 express the type ``map from string to one or more <ref
599 table="Physical_Locator"/> records.''
600 </p>
601
602 <column name="locators"/>
603 </table>
604
605 <table name="Physical_Locator">
606 <p>
607 Identifies an endpoint to which logical switch traffic may be
608 encapsulated and forwarded.
609 </p>
610
611 <p>
612 For the <code>vxlan_over_ipv4</code> encapsulation, the only
613 encapsulation defined so far, all endpoints associated with a given <ref
614 table="Logical_Switch"/> must use a common tunnel key, which is carried
615 in the <ref table="Logical_Switch" column="tunnel_key"/> column of <ref
616 table="Logical_Switch"/>.
617 </p>
618
619 <p>
620 For some encapsulations yet to be defined, we expect <ref
621 table="Physical_Locator"/> to identify both an endpoint and a tunnel key.
622 When the first such encapsulation is defined, we expect to add a
623 ``tunnel_key'' column to <ref table="Physical_Locator"/> to allow the
624 tunnel key to be defined.
625 </p>
626
627 <p>
628 See the ``Per Logical-Switch Tunnel Key'' section in the <ref
629 table="Logical_Switch"/> table for further discussion of the model.
630 </p>
631
632 <column name="encapsulation_type">
633 The type of tunneling encapsulation.
634 </column>
635
636 <column name="dst_ip">
637 <p>
638 For <code>vxlan_over_ipv4</code> encapsulation, the IPv4 address of the
639 VXLAN tunnel endpoint.
640 </p>
641
642 <p>
643 We expect that this column could be used for IPv4 or IPv6 addresses in
644 encapsulations to be introduced later.
645 </p>
646 </column>
647
648 <group title="Bidirectional Forwarding Detection (BFD)">
649 <p>
650 BFD, defined in RFC 5880, allows point to point detection of
651 connectivity failures by occasional transmission of BFD control
652 messages. VTEPs are expected to implement BFD.
653 </p>
654
655 <p>
656 BFD operates by regularly transmitting BFD control messages at a
657 rate negotiated independently in each direction. Each endpoint
658 specifies the rate at which it expects to receive control messages,
659 and the rate at which it's willing to transmit them. An endpoint
660 which fails to receive BFD control messages for a period of three
661 times the expected reception rate will signal a connectivity
662 fault. In the case of a unidirectional connectivity issue, the
663 system not receiving BFD control messages will signal the problem
664 to its peer in the messages it transmits.
665 </p>
666
667 <p>
668 A hardware VTEP is expected to use BFD to determine reachability of
669 devices at the end of the tunnels with which it exchanges data. This
670 can enable the VTEP to choose a functioning service node among a set of
671 service nodes providing high availability. It also enables the NVC to
672 report the health status of tunnels.
673 </p>
674
675 <p>
676 In most cases the BFD peer of a hardware VTEP will be an Open vSwitch
677 instance. The Open vSwitch implementation of BFD aims to comply
678 faithfully with the requirements put forth in RFC 5880. Open vSwitch
679 does not implement the optional Authentication or ``Echo Mode''
680 features.
681 </p>
682
683 <group title="BFD Configuration">
684 <p>
685 A controller sets up key-value pairs in the <ref column="bfd"/>
686 column to enable and configure BFD.
687 </p>
688
689 <column name="bfd" key="enable" type='{"type": "boolean"}'>
690 True to enable BFD on this <ref table="Physical_Locator"/>.
691 </column>
692
693 <column name="bfd" key="min_rx"
694 type='{"type": "integer", "minInteger": 1}'>
695 The shortest interval, in milliseconds, at which this BFD session
696 offers to receive BFD control messages. The remote endpoint may
697 choose to send messages at a slower rate. Defaults to
698 <code>1000</code>.
699 </column>
700
701 <column name="bfd" key="min_tx"
702 type='{"type": "integer", "minInteger": 1}'>
703 The shortest interval, in milliseconds, at which this BFD session is
704 willing to transmit BFD control messages. Messages will actually be
705 transmitted at a slower rate if the remote endpoint is not willing to
706 receive as quickly as specified. Defaults to <code>100</code>.
707 </column>
708
709 <column name="bfd" key="decay_min_rx" type='{"type": "integer"}'>
710 An alternate receive interval, in milliseconds, that must be greater
711 than or equal to <ref column="bfd" key="min_rx"/>. The
712 implementation switches from <ref column="bfd" key="min_rx"/> to <ref
713 column="bfd" key="decay_min_rx"/> when there is no obvious incoming
714 data traffic at the interface, to reduce the CPU and bandwidth cost
715 of monitoring an idle interface. This feature may be disabled by
716 setting a value of 0. This feature is reset whenever <ref
717 column="bfd" key="decay_min_rx"/> or <ref column="bfd" key="min_rx"/>
718 changes.
719 </column>
720
721 <column name="bfd" key="forwarding_if_rx" type='{"type": "boolean"}'>
722 True to consider the interface capable of packet I/O as long as it
723 continues to receive any packets (not just BFD packets). This
724 prevents link congestion that causes consecutive BFD control packets
725 to be lost from marking the interface down.
726 </column>
727
728 <column name="bfd" key="cpath_down" type='{"type": "boolean"}'>
729 Set to true to notify the remote endpoint that traffic should not be
730 forwarded to this system for some reason other than a connectivty
731 failure on the interface being monitored. The typical underlying
732 reason is ``concatenated path down,'' that is, that connectivity
733 beyond the local system is down. Defaults to false.
734 </column>
735
736 <column name="bfd" key="check_tnl_key" type='{"type": "boolean"}'>
737 Set to true to make BFD accept only control messages with a tunnel
738 key of zero. By default, BFD accepts control messages with any
739 tunnel key.
740 </column>
741
742 <column name="bfd" key="bfd_dst_mac">
743 Set to an Ethernet address in the form
744 <var>xx</var>:<var>xx</var>:<var>xx</var>:<var>xx</var>:<var>xx</var>:<var>xx</var>
745 to set the MAC used as destination for transmitted BFD packets and
746 expected as destination for received BFD packets. The default is
747 <code>00:23:20:00:00:01</code>.
748 </column>
749 </group>
750
751 <group title="BFD Status">
752 <p>
753 The VTEP sets key-value pairs in the <ref column="bfd_status"/>
754 column to report the status of BFD on this interface. When BFD is
755 not enabled, with <ref column="bfd" key="enable"/>, the switch clears
756 all key-value pairs from <ref column="bfd_status"/>.
757 </p>
758
759 <column name="bfd_status" key="state"
760 type='{"type": "string",
761 "enum": ["set", ["admin_down", "down", "init", "up"]]}'>
762 Reports the state of the BFD session. The BFD session is fully
763 healthy and negotiated if <code>UP</code>.
764 </column>
765
766 <column name="bfd_status" key="forwarding" type='{"type": "boolean"}'>
767 Reports whether the BFD session believes this <ref
768 table="Physical_Locator"/> may be used to forward traffic. Typically
769 this means the local session is signaling <code>UP</code>, and the
770 remote system isn't signaling a problem such as concatenated path
771 down.
772 </column>
773
774 <column name="bfd_status" key="diagnostic">
775 In case of a problem, set to a short message that reports what the
776 local BFD session thinks is wrong.
777 </column>
778
779 <column name="bfd_status" key="remote_state"
780 type='{"type": "string",
781 "enum": ["set", ["admin_down", "down", "init", "up"]]}'>
782 Reports the state of the remote endpoint's BFD session.
783 </column>
784
785 <column name="bfd_status" key="remote_diagnostic">
786 In case of a problem, set to a short message that reports what the
787 remote endpoint's BFD session thinks is wrong.
788 </column>
789 </group>
790 </group>
791 </table>
792
793 </database>