]> git.proxmox.com Git - mirror_ovs.git/blob - vtep/vtep.xml
vtep: additions to BFD configuration and status reporting
[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 <column name="tunnels">
248 Tunnels created by this switch as instructed by the NVC.
249 </column>
250
251 <group title="Network Status">
252 <column name="management_ips">
253 IPv4 or IPv6 addresses at which the switch may be contacted
254 for management purposes.
255 </column>
256
257 <column name="tunnel_ips">
258 <p>
259 IPv4 or IPv6 addresses on which the switch may originate or
260 terminate tunnels.
261 </p>
262
263 <p>
264 This column is intended to allow a <ref table="Manager"/> to
265 determine the <ref table="Physical_Switch"/> that terminates
266 the tunnel represented by a <ref table="Physical_Locator"/>.
267 </p>
268 </column>
269 </group>
270
271 <group title="Identification">
272 <column name="name">
273 Symbolic name for the switch, such as its hostname.
274 </column>
275
276 <column name="description">
277 An extended description for the switch, such as its switch login
278 banner.
279 </column>
280 </group>
281 <group title="Error Notification">
282 <p>
283 An entry in this column indicates to the NVC that this switch
284 has encountered a fault. The switch must clear this column
285 when the fault has been cleared.
286 </p>
287
288 <column name="switch_fault_status" key="mac_table_exhaustion">
289 Indicates that the switch has been unable to process MAC
290 entries requested by the NVC due to lack of table resources.
291 </column>
292
293 <column name="switch_fault_status" key="tunnel_exhaustion">
294 Indicates that the switch has been unable to create tunnels
295 requested by the NVC due to lack of resources.
296 </column>
297
298 <column name="switch_fault_status" key="unspecified_fault">
299 Indicates that an error has occurred in the switch but that no
300 more specific information is available.
301 </column>
302
303 </group>
304 </table>
305
306 <table name="Tunnel" title="A tunnel created by a physical switch.">
307 A tunnel created by a <ref table="Physical_Switch"/>.
308
309 <column name="local">
310 Tunnel end-point local to the physical switch.
311 </column>
312
313 <column name="remote">
314 Tunnel end-point remote to the physical switch.
315 </column>
316
317 <group title="Bidirectional Forwarding Detection (BFD)">
318 <p>
319 BFD, defined in RFC 5880, allows point to point detection of
320 connectivity failures by occasional transmission of BFD control
321 messages. VTEPs are expected to implement BFD.
322 </p>
323
324 <p>
325 BFD operates by regularly transmitting BFD control messages at a
326 rate negotiated independently in each direction. Each endpoint
327 specifies the rate at which it expects to receive control messages,
328 and the rate at which it's willing to transmit them. An endpoint
329 which fails to receive BFD control messages for a period of three
330 times the expected reception rate will signal a connectivity
331 fault. In the case of a unidirectional connectivity issue, the
332 system not receiving BFD control messages will signal the problem
333 to its peer in the messages it transmits.
334 </p>
335
336 <p>
337 A hardware VTEP is expected to use BFD to determine reachability of
338 devices at the end of the tunnels with which it exchanges data. This
339 can enable the VTEP to choose a functioning service node among a set of
340 service nodes providing high availability. It also enables the NVC to
341 report the health status of tunnels.
342 </p>
343
344 <p>
345 In most cases the BFD peer of a hardware VTEP will be an Open vSwitch
346 instance. The Open vSwitch implementation of BFD aims to comply
347 faithfully with the requirements put forth in RFC 5880. Open vSwitch
348 does not implement the optional Authentication or ``Echo Mode''
349 features.
350 </p>
351
352 <group title="BFD Local Configuration">
353 <p>
354 The HSC writes the key-value pairs in the
355 <ref column="bfd_config_local"/> column to specifiy the local
356 configurations to be used for BFD sessions on this tunnel.
357 </p>
358
359 <column name="bfd_config_local" key="bfd_dst_mac">
360 Set to an Ethernet address in the form
361 <var>xx</var>:<var>xx</var>:<var>xx</var>:<var>xx</var>:<var>xx</var>:<var>xx</var>
362 to set the MAC expected as destination for received BFD packets.
363 The default is <code>00:23:20:00:00:01</code>.
364 </column>
365
366 <column name="bfd_config_local" key="bfd_dst_ip">
367 Set to an IPv4 address to set the IP address that is expected as destination
368 for received BFD packets. The default is <code>169.254.1.0</code>.
369 </column>
370
371 </group>
372
373 <group title="BFD Remote Configuration">
374 <p>
375 The <ref column="bfd_config_remote"/> column is the remote
376 counterpart of the <ref column="bfd_config_local"/> column.
377 The NVC writes the key-value pairs in this column.
378 </p>
379
380 <column name="bfd_config_remote" key="bfd_dst_mac">
381 Set to an Ethernet address in the form
382 <var>xx</var>:<var>xx</var>:<var>xx</var>:<var>xx</var>:<var>xx</var>:<var>xx</var>
383 to set the destination MAC to be used for transmitted BFD packets.
384 The default is <code>00:23:20:00:00:01</code>.
385 </column>
386
387 <column name="bfd_config_remote" key="bfd_dst_ip">
388 Set to an IPv4 address to set the IP address used as destination
389 for transmitted BFD packets. The default is <code>169.254.1.1</code>.
390 </column>
391
392 </group>
393
394 <group title="BFD Parameters">
395 <p>
396 The NVC sets up key-value pairs in the <ref column="bfd_params"/>
397 column to enable and configure BFD.
398 </p>
399
400 <column name="bfd_params" key="enable" type='{"type": "boolean"}'>
401 True to enable BFD on this tunnel.
402 The default is False.
403 </column>
404
405 <column name="bfd_params" key="min_rx"
406 type='{"type": "integer", "minInteger": 1}'>
407 The shortest interval, in milliseconds, at which this BFD session
408 offers to receive BFD control messages. The remote endpoint may
409 choose to send messages at a slower rate. Defaults to
410 <code>1000</code>.
411 </column>
412
413 <column name="bfd_params" key="min_tx"
414 type='{"type": "integer", "minInteger": 1}'>
415 The shortest interval, in milliseconds, at which this BFD session is
416 willing to transmit BFD control messages. Messages will actually be
417 transmitted at a slower rate if the remote endpoint is not willing to
418 receive as quickly as specified. Defaults to <code>100</code>.
419 </column>
420
421 <column name="bfd_params" key="decay_min_rx" type='{"type": "integer"}'>
422 An alternate receive interval, in milliseconds, that must be greater
423 than or equal to <ref column="bfd" key="min_rx"/>. The
424 implementation switches from <ref column="bfd" key="min_rx"/> to <ref
425 column="bfd" key="decay_min_rx"/> when there is no obvious incoming
426 data traffic at the interface, to reduce the CPU and bandwidth cost
427 of monitoring an idle interface. This feature may be disabled by
428 setting a value of 0. This feature is reset whenever <ref
429 column="bfd" key="decay_min_rx"/> or <ref column="bfd" key="min_rx"/>
430 changes.
431 </column>
432
433 <column name="bfd_params" key="forwarding_if_rx" type='{"type": "boolean"}'>
434 True to consider the interface capable of packet I/O as long as it
435 continues to receive any packets (not just BFD packets). This
436 prevents link congestion that causes consecutive BFD control packets
437 to be lost from marking the interface down.
438 </column>
439
440 <column name="bfd_params" key="cpath_down" type='{"type": "boolean"}'>
441 Set to true to notify the remote endpoint that traffic should not be
442 forwarded to this system for some reason other than a connectivty
443 failure on the interface being monitored. The typical underlying
444 reason is ``concatenated path down,'' that is, that connectivity
445 beyond the local system is down. Defaults to false.
446 </column>
447
448 <column name="bfd_params" key="check_tnl_key" type='{"type": "boolean"}'>
449 Set to true to make BFD accept only control messages with a tunnel
450 key of zero. By default, BFD accepts control messages with any
451 tunnel key.
452 </column>
453
454 </group>
455
456 <group title="BFD Status">
457 <p>
458 The VTEP sets key-value pairs in the <ref column="bfd_status"/>
459 column to report the status of BFD on this tunnel. When BFD is
460 not enabled, with <ref column="bfd_params" key="enable"/>, the
461 HSC clears all key-value pairs from <ref column="bfd_status"/>.
462 </p>
463
464 <column name="bfd_status" key="enabled"
465 type='{"type": "boolean"}'>
466 Set to true if the BFD session has been successfully
467 enabled. Set to false if the VTEP cannot support BFD or has
468 insufficient resources to enable BFD on this tunnel. The NVC
469 will disable the BFD monitoring on the other side of the tunnel
470 once this value is set to false.
471 </column>
472
473 <column name="bfd_status" key="state"
474 type='{"type": "string",
475 "enum": ["set", ["admin_down", "down", "init", "up"]]}'>
476 Reports the state of the BFD session. The BFD session is fully
477 healthy and negotiated if <code>UP</code>.
478 </column>
479
480 <column name="bfd_status" key="forwarding" type='{"type": "boolean"}'>
481 Reports whether the BFD session believes this tunnel
482 may be used to forward traffic. Typically this means the local session
483 is signaling <code>UP</code>, and the remote system isn't signaling a
484 problem such as concatenated path down.
485 </column>
486
487 <column name="bfd_status" key="diagnostic">
488 In case of a problem, set to an error message that reports what the
489 local BFD session thinks is wrong. The error messages are defined
490 in section 4.1 of [RFC 5880].
491 </column>
492
493 <column name="bfd_status" key="remote_state"
494 type='{"type": "string",
495 "enum": ["set", ["admin_down", "down", "init", "up"]]}'>
496 Reports the state of the remote endpoint's BFD session.
497 </column>
498
499 <column name="bfd_status" key="remote_diagnostic">
500 In case of a problem, set to an error message that reports what the
501 remote endpoint's BFD session thinks is wrong. The error messages
502 are defined in section 4.1 of [RFC 5880].
503 </column>
504
505 <column name="bfd_status" key="info">
506 A short message providing further information about the BFD status
507 (possibly including reasons why BFD could not be enabled).
508 </column>
509 </group>
510 </group>
511 </table>
512
513 <table name="Physical_Port" title="A port within a physical switch.">
514 A port within a <ref table="Physical_Switch"/>.
515
516 <column name="vlan_bindings">
517 Identifies how VLANs on the physical port are bound to logical switches.
518 If, for example, the map contains a (VLAN, logical switch) pair, a packet
519 that arrives on the port in the VLAN is considered to belong to the
520 paired logical switch.
521 </column>
522
523 <column name="vlan_stats">
524 Statistics for VLANs bound to logical switches on the physical port. An
525 implementation that fully supports such statistics would populate this
526 column with a mapping for every VLAN that is bound in <ref
527 column="vlan_bindings"/>. An implementation that does not support such
528 statistics or only partially supports them would not populate this column
529 or partially populate it, respectively.
530 </column>
531
532 <group title="Identification">
533 <column name="name">
534 Symbolic name for the port. The name ought to be unique within a given
535 <ref table="Physical_Switch"/>, but the database is not capable of
536 enforcing this.
537 </column>
538
539 <column name="description">
540 An extended description for the port.
541 </column>
542 </group>
543 <group title="Error Notification">
544 <p>
545 An entry in this column indicates to the NVC that the physical port has
546 encountered a fault. The switch must clear this column when the errror
547 has been cleared.
548 </p>
549 <column name="port_fault_status" key="invalid_vlan_map">
550 <p>
551 Indicates that a VLAN-to-logical-switch mapping requested by
552 the controller could not be instantiated by the switch
553 because of a conflict with local configuration.
554 </p>
555 </column>
556 <column name="port_fault_status" key="unspecified_fault">
557 <p>
558 Indicates that an error has occurred on the port but that no
559 more specific information is available.
560 </p>
561 </column>
562 </group>
563
564 </table>
565
566 <table name="Logical_Binding_Stats" title="Statistics for a VLAN on a physical port bound to a logical network.">
567 Reports statistics for the <ref table="Logical_Switch"/> with which a VLAN
568 on a <ref table="Physical_Port"/> is associated.
569
570 <group title="Statistics">
571 These statistics count only packets to which the binding applies.
572
573 <column name="packets_from_local">
574 Number of packets sent by the <ref table="Physical_Switch"/>.
575 </column>
576
577 <column name="bytes_from_local">
578 Number of bytes in packets sent by the <ref table="Physical_Switch"/>.
579 </column>
580
581 <column name="packets_to_local">
582 Number of packets received by the <ref table="Physical_Switch"/>.
583 </column>
584
585 <column name="bytes_to_local">
586 Number of bytes in packets received by the <ref
587 table="Physical_Switch"/>.
588 </column>
589 </group>
590 </table>
591
592 <table name="Logical_Switch" title="A layer-2 domain.">
593 A logical Ethernet switch, whose implementation may span physical and
594 virtual media, possibly crossing L3 domains via tunnels; a logical layer-2
595 domain; an Ethernet broadcast domain.
596
597
598
599 <group title="Per Logical-Switch Tunnel Key">
600 <p>
601 Tunnel protocols tend to have a field that allows the tunnel
602 to be partitioned into sub-tunnels: VXLAN has a VNI, GRE and
603 STT have a key, CAPWAP has a WSI, and so on. We call these
604 generically ``tunnel keys.'' Given that one needs to use a
605 tunnel key at all, there are at least two reasonable ways to
606 assign their values:
607 </p>
608
609 <ul>
610 <li>
611 <p>
612 Per <ref table="Logical_Switch"/>+<ref table="Physical_Locator"/>
613 pair. That is, each logical switch may be assigned a different
614 tunnel key on every <ref table="Physical_Locator"/>. This model is
615 especially flexible.
616 </p>
617
618 <p>
619 In this model, <ref table="Physical_Locator"/> carries the tunnel
620 key. Therefore, one <ref table="Physical_Locator"/> record will
621 exist for each logical switch carried at a given IP destination.
622 </p>
623 </li>
624
625 <li>
626 <p>
627 Per <ref table="Logical_Switch"/>. That is, every tunnel
628 associated with a particular logical switch carries the same tunnel
629 key, regardless of the <ref table="Physical_Locator"/> to which the
630 tunnel is addressed. This model may ease switch implementation
631 because it imposes fewer requirements on the hardware datapath.
632 </p>
633
634 <p>
635 In this model, <ref table="Logical_Switch"/> carries the tunnel
636 key. Therefore, one <ref table="Physical_Locator"/> record will
637 exist for each IP destination.
638 </p>
639 </li>
640 </ul>
641
642 <column name="tunnel_key">
643 <p>
644 This column is used only in the tunnel key per <ref
645 table="Logical_Switch"/> model (see above), because only in that
646 model is there a tunnel key associated with a logical switch.
647 </p>
648
649 <p>
650 For <code>vxlan_over_ipv4</code> encapsulation, this column
651 is the VXLAN VNI that identifies a logical switch. It must
652 be in the range 0 to 16,777,215.
653 </p>
654 </column>
655 </group>
656
657 <group title="Identification">
658 <column name="name">
659 Symbolic name for the logical switch.
660 </column>
661
662 <column name="description">
663 An extended description for the logical switch, such as its switch
664 login banner.
665 </column>
666 </group>
667 </table>
668
669 <table name="Ucast_Macs_Local" title="Unicast MACs (local)">
670 <p>
671 Mapping of unicast MAC addresses to tunnels (physical
672 locators). This table is written by the HSC, so it contains the
673 MAC addresses that have been learned on physical ports by a
674 VTEP.
675 </p>
676
677 <column name="MAC">
678 A MAC address that has been learned by the VTEP.
679 </column>
680
681 <column name="logical_switch">
682 The Logical switch to which this mapping applies.
683 </column>
684
685 <column name="locator">
686 The physical locator to be used to reach this MAC address. In
687 this table, the physical locator will be one of the tunnel IP
688 addresses of the appropriate VTEP.
689 </column>
690
691 <column name="ipaddr">
692 The IP address to which this MAC corresponds. Optional field for
693 the purpose of ARP supression.
694 </column>
695
696 </table>
697
698 <table name="Ucast_Macs_Remote" title="Unicast MACs (remote)">
699 <p>
700 Mapping of unicast MAC addresses to tunnels (physical
701 locators). This table is written by the NVC, so it contains the
702 MAC addresses that the NVC has learned. These include VM MAC
703 addresses, in which case the physical locators will be
704 hypervisor IP addresses. The NVC will also report MACs that it
705 has learned from other HSCs in the network, in which case the
706 physical locators will be tunnel IP addresses of the
707 corresponding VTEPs.
708 </p>
709
710 <column name="MAC">
711 A MAC address that has been learned by the NVC.
712 </column>
713
714 <column name="logical_switch">
715 The Logical switch to which this mapping applies.
716 </column>
717
718 <column name="locator">
719 The physical locator to be used to reach this MAC address. In
720 this table, the physical locator will be either a hypervisor IP
721 address or a tunnel IP addresses of another VTEP.
722 </column>
723
724 <column name="ipaddr">
725 The IP address to which this MAC corresponds. Optional field for
726 the purpose of ARP supression.
727 </column>
728
729 </table>
730
731 <table name="Mcast_Macs_Local" title="Multicast MACs (local)">
732 <p>
733 Mapping of multicast MAC addresses to tunnels (physical
734 locators). This table is written by the HSC, so it contains the
735 MAC addresses that have been learned on physical ports by a
736 VTEP. These may be learned by IGMP snooping, for example. This
737 table also specifies how to handle unknown unicast and broadcast packets.
738 </p>
739
740 <column name="MAC">
741 <p>
742 A MAC address that has been learned by the VTEP.
743 </p>
744 <p>
745 The keyword <code>unknown-dst</code> is used as a special
746 ``Ethernet address'' that indicates the locations to which
747 packets in a logical switch whose destination addresses do not
748 otherwise appear in <ref table="Ucast_Macs_Local"/> (for
749 unicast addresses) or <ref table="Mcast_Macs_Local"/> (for
750 multicast addresses) should be sent.
751 </p>
752 </column>
753
754 <column name="logical_switch">
755 The Logical switch to which this mapping applies.
756 </column>
757
758 <column name="locator_set">
759 The physical locator set to be used to reach this MAC address. In
760 this table, the physical locator set will be contain one or more tunnel IP
761 addresses of the appropriate VTEP(s).
762 </column>
763
764 </table>
765
766 <table name="Mcast_Macs_Remote" title="Multicast MACs (remote)">
767 <p>
768 Mapping of multicast MAC addresses to tunnels (physical
769 locators). This table is written by the NVC, so it contains the
770 MAC addresses that the NVC has learned. This
771 table also specifies how to handle unknown unicast and broadcast
772 packets.
773 </p>
774 <p>
775 Multicast packet replication may be handled by a service node,
776 in which case the physical locators will be IP addresses of
777 service nodes. If the VTEP supports replication onto multiple
778 tunnels, then this may be used to replicate directly onto
779 VTEP-hyperisor tunnels.
780 </p>
781
782 <column name="MAC">
783 <p>
784 A MAC address that has been learned by the NVC.
785 </p>
786 <p>
787 The keyword <code>unknown-dst</code> is used as a special
788 ``Ethernet address'' that indicates the locations to which
789 packets in a logical switch whose destination addresses do not
790 otherwise appear in <ref table="Ucast_Macs_Remote"/> (for
791 unicast addresses) or <ref table="Mcast_Macs_Remote"/> (for
792 multicast addresses) should be sent.
793 </p>
794 </column>
795
796 <column name="logical_switch">
797 The Logical switch to which this mapping applies.
798 </column>
799
800 <column name="locator_set">
801 The physical locator set to be used to reach this MAC address. In
802 this table, the physical locator set will be either a service node IP
803 address or a set of tunnel IP addresses of hypervisors (and
804 potentially other VTEPs).
805 </column>
806
807 <column name="ipaddr">
808 The IP address to which this MAC corresponds. Optional field for
809 the purpose of ARP supression.
810 </column>
811
812 </table>
813
814 <table name="Logical_Router" title="A logical L3 router.">
815 <p>
816 A logical router, or VRF. A logical router may be connected to one or more
817 logical switches. Subnet addresses and interface addresses may be configured on the
818 interfaces.
819 </p>
820
821 <column name="switch_binding">
822 Maps from an IPv4 or IPv6 address prefix in CIDR notation to a
823 logical switch. Multiple prefixes may map to the same switch. By
824 writing a 32-bit (or 128-bit for v6) address with a /N prefix
825 length, both the router's interface address and the subnet
826 prefix can be configured. For example, 192.68.1.1/24 creates a
827 /24 subnet for the logical switch attached to the interface and
828 assigns the address 192.68.1.1 to the router interface.
829 </column>
830
831 <column name="static_routes">
832 One or more static routes, mapping IP prefixes to next hop IP addresses.
833 </column>
834
835 <group title="Identification">
836 <column name="name">
837 Symbolic name for the logical router.
838 </column>
839
840 <column name="description">
841 An extended description for the logical router.
842 </column>
843 </group>
844 </table>
845
846 <table name="Arp_Sources_Local" title="ARP source addresses for logical routers">
847 <p>
848 MAC address to be used when a VTEP issues ARP requests on behalf
849 of a logical router.
850 </p>
851
852 <p>
853 A distributed logical router is implemented by a set of VTEPs
854 (both hardware VTEPs and vswitches). In order for a given VTEP
855 to populate the local ARP cache for a logical router, it issues
856 ARP requests with a source MAC address that is unique to the VTEP. A
857 single per-VTEP MAC can be re-used across all logical
858 networks. This table contains the MACs that are used by the
859 VTEPs of a given HSC. The table provides the mapping from MAC to
860 physical locator for each VTEP so that replies to the ARP
861 requests can be sent back to the correct VTEP using the
862 appropriate physical locator.
863 </p>
864
865 <column name="src_mac">
866 The source MAC to be used by a given VTEP.
867 </column>
868
869 <column name="locator">
870 The <ref table="Physical_Locator"/> to use for replies to ARP
871 requests from this MAC address.
872 </column>
873 </table>
874
875 <table name="Arp_Sources_Remote" title="ARP source addresses for logical routers">
876 <p>
877 MAC address to be used when a remote VTEP issues ARP requests on behalf
878 of a logical router.
879 </p>
880
881 <p>
882 This table is the remote counterpart of <ref
883 table="Arp_sources_local"/>. The NVC writes this table to notify
884 the HSC of the MACs that will be used by remote VTEPs when they
885 issue ARP requests on behalf of a distributed logical router.
886 </p>
887
888 <column name="src_mac">
889 The source MAC to be used by a given VTEP.
890 </column>
891
892 <column name="locator">
893 The <ref table="Physical_Locator"/> to use for replies to ARP
894 requests from this MAC address.
895 </column>
896 </table>
897
898 <table name="Physical_Locator_Set">
899 <p>
900 A set of one or more <ref table="Physical_Locator"/>s.
901 </p>
902
903 <p>
904 This table exists only because OVSDB does not have a way to
905 express the type ``map from string to one or more <ref
906 table="Physical_Locator"/> records.''
907 </p>
908
909 <column name="locators"/>
910 </table>
911
912 <table name="Physical_Locator">
913 <p>
914 Identifies an endpoint to which logical switch traffic may be
915 encapsulated and forwarded.
916 </p>
917
918 <p>
919 For the <code>vxlan_over_ipv4</code> encapsulation, the only
920 encapsulation defined so far, all endpoints associated with a given <ref
921 table="Logical_Switch"/> must use a common tunnel key, which is carried
922 in the <ref table="Logical_Switch" column="tunnel_key"/> column of <ref
923 table="Logical_Switch"/>.
924 </p>
925
926 <p>
927 For some encapsulations yet to be defined, we expect <ref
928 table="Physical_Locator"/> to identify both an endpoint and a tunnel key.
929 When the first such encapsulation is defined, we expect to add a
930 ``tunnel_key'' column to <ref table="Physical_Locator"/> to allow the
931 tunnel key to be defined.
932 </p>
933
934 <p>
935 See the ``Per Logical-Switch Tunnel Key'' section in the <ref
936 table="Logical_Switch"/> table for further discussion of the model.
937 </p>
938
939 <column name="encapsulation_type">
940 The type of tunneling encapsulation.
941 </column>
942
943 <column name="dst_ip">
944 <p>
945 For <code>vxlan_over_ipv4</code> encapsulation, the IPv4 address of the
946 VXLAN tunnel endpoint.
947 </p>
948
949 <p>
950 We expect that this column could be used for IPv4 or IPv6 addresses in
951 encapsulations to be introduced later.
952 </p>
953 </column>
954
955 </table>
956
957 </database>