Provided by: openvswitch-vtep_3.3.0-1ubuntu3.2_amd64 bug

NAME

       vtep - hardware_vtep database schema

       This  schema  specifies  relations  that a VTEP can use to integrate physical ports into logical switches
       maintained by a network virtualization controller such as NSX.

       Glossary:

              VTEP   VXLAN Tunnel End Point, an entity which originates and/or terminates VXLAN tunnels.

              HSC    Hardware Switch Controller.

              NVC    Network Virtualization Controller, e.g. NSX.

              VRF    Virtual Routing and Forwarding instance.

   Common Column
       Some tables contain a column, named other_config. This column has the same form and  purpose  each  place
       that it appears, so we describe it here to save space later.

              other_config: map of string-string pairs
                     Key-value pairs for configuring rarely used or proprietary features.

                     Some  tables  do  not  have  other_config  column  because no key-value pairs have yet been
                     defined for them.

TABLE SUMMARY

       The following list summarizes the purpose of each of the tables  in  the  hardware_vtep  database.   Each
       table is described in more detail on a later page.

       Table     Purpose
       Global    Top-level configuration.
       Manager   OVSDB management connection.
       Physical_Switch
                 A physical switch.
       Tunnel    A tunnel created by a physical switch.
       Physical_Port
                 A port within a physical switch.
       Logical_Binding_Stats
                 Statistics for a VLAN on a physical port bound to a logical network.
       Logical_Switch
                 A layer-2 domain.
       Ucast_Macs_Local
                 Unicast MACs (local)
       Ucast_Macs_Remote
                 Unicast MACs (remote)
       Mcast_Macs_Local
                 Multicast MACs (local)
       Mcast_Macs_Remote
                 Multicast MACs (remote)
       Logical_Router
                 A logical L3 router.
       Arp_Sources_Local
                 ARP source addresses for logical routers
       Arp_Sources_Remote
                 ARP source addresses for logical routers
       Physical_Locator_Set
                 Physical_Locator_Set configuration.
       Physical_Locator
                 Physical_Locator configuration.
       ACL_entry ACL_entry configuration.
       ACL       ACL configuration.

Global TABLE

       Top-level configuration for a hardware VTEP. There must be exactly one record in the Global table.

   Summary:
       switches                      set of Physical_Switchs
       Database Configuration:
         managers                    set of Managers
       Common Column:
         other_config                map of string-string pairs

   Details:
       switches: set of Physical_Switchs
              The physical switch or switches managed by the VTEP.

              When  a  physical switch integrates support for this VTEP schema, which is expected to be the most
              common case, this column should point to one Physical_Switch record  that  represents  the  switch
              itself.  In  another  possible  implementation,  a server or a VM presents a VTEP schema front-end
              interface to one or more physical switches, presumably communicating with those physical  switches
              over a proprietary protocol. In that case, this column would point to one Physical_Switch for each
              physical  switch,  and the set might change over time as the front-end server comes to represent a
              differing set of switches.

     Database Configuration:

       These columns primarily configure the database server (ovsdb-server), not the hardware VTEP itself.

       managers: set of Managers
              Database clients to which the database server should connect or to which it should  listen,  along
              with  options  for  how  these  connection  should  be  configured. See the Manager table for more
              information.

     Common Column:

       The overall purpose of this column is described under Common Column at the beginning of this document.

       other_config: map of string-string pairs

Manager TABLE

       Configuration for a database connection to an Open vSwitch Database (OVSDB) client.

       The database server can initiate and maintain active connections to remote clients. It  can  also  listen
       for database connections.

   Summary:
       Core Features:
         target                      string (must be unique within table)
       Client Failure Detection and Handling:
         max_backoff                 optional integer, at least 1,000
         inactivity_probe            optional integer
       Status:
         is_connected                boolean
         status : last_error         optional string
         status : state              optional string, one of ACTIVE, BACKOFF, CONNECTING, IDLE, or VOID
         status : sec_since_connect  optional string, containing an integer, at least 0
         status : sec_since_disconnect
                                     optional string, containing an integer, at least 0
         status : locks_held         optional string
         status : locks_waiting      optional string
         status : locks_lost         optional string
         status : n_connections      optional string, containing an integer, at least 2
       Connection Parameters:
         other_config : dscp         optional string, containing an integer

   Details:
     Core Features:

       target: string (must be unique within table)
              Connection method for managers.

              The following connection methods are currently supported:

              ssl:host[:port]
                     The  specified  SSL  port (default: 6640) on the given host, which can either be a DNS name
                     (if built with unbound library) or an IP address.

                     SSL key and certificate configuration happens outside the database.

              tcp:host[:port]
                     The specified TCP port (default: 6640) on the given host, which can either be  a  DNS  name
                     (if built with unbound library) or an IP address.

              pssl:[port][:host]
                     Listens  for  SSL connections on the specified TCP port (default: 6640). If host, which can
                     either be a DNS name (if built with unbound library) or an IP address, is  specified,  then
                     connections are restricted to the resolved or specified local IP address.

              ptcp:[port][:host]
                     Listens  for  connections  on  the  specified  TCP port (default: 6640). If host, which can
                     either be a DNS name (if built with unbound library) or an IP address, is  specified,  then
                     connections are restricted to the resolved or specified local IP address.

     Client Failure Detection and Handling:

       max_backoff: optional integer, at least 1,000
              Maximum  number  of  milliseconds  to wait between connection attempts. Default is implementation-
              specific.

       inactivity_probe: optional integer
              Maximum number of milliseconds of idle  time  on  connection  to  the  client  before  sending  an
              inactivity  probe  message.  If the Open vSwitch database does not communicate with the client for
              the specified number of seconds, it will send a probe. If a response is not received for the  same
              additional amount of time, the database server assumes the connection has been broken and attempts
              to reconnect. Default is implementation-specific. A value of 0 disables inactivity probes.

     Status:

       is_connected: boolean
              true if currently connected to this manager, false otherwise.

       status : last_error: optional string
              A  human-readable  description  of  the  last  error  on  the  connection  to  the  manager;  i.e.
              strerror(errno). This key will exist only if an error has occurred.

       status : state: optional string, one of ACTIVE, BACKOFF, CONNECTING, IDLE, or VOID
              The state of the connection to the manager:

              VOID   Connection is disabled.

              BACKOFF
                     Attempting to reconnect at an increasing period.

              CONNECTING
                     Attempting to connect.

              ACTIVE Connected, remote host responsive.

              IDLE   Connection is idle. Waiting for response to keep-alive.

              These values may change in the future. They are provided only for human consumption.

       status : sec_since_connect: optional string, containing an integer, at least 0
              The amount of time since this manager last successfully connected to the  database  (in  seconds).
              Value is empty if manager has never successfully connected.

       status : sec_since_disconnect: optional string, containing an integer, at least 0
              The  amount  of time since this manager last disconnected from the database (in seconds). Value is
              empty if manager has never disconnected.

       status : locks_held: optional string
              Space-separated list of the names of OVSDB  locks  that  the  connection  holds.  Omitted  if  the
              connection does not hold any locks.

       status : locks_waiting: optional string
              Space-separated  list  of  the  names  of  OVSDB locks that the connection is currently waiting to
              acquire. Omitted if the connection is not waiting for any locks.

       status : locks_lost: optional string
              Space-separated list of the names of OVSDB locks that the connection has  had  stolen  by  another
              OVSDB client. Omitted if no locks have been stolen from this connection.

       status : n_connections: optional string, containing an integer, at least 2
              When  target  specifies  a  connection  method that listens for inbound connections (e.g. ptcp: or
              pssl:) and more than one connection is  actually  active,  the  value  is  the  number  of  active
              connections. Otherwise, this key-value pair is omitted.

              When  multiple  connections  are  active, status columns and key-value pairs (other than this one)
              report the status of one arbitrarily chosen connection.

     Connection Parameters:

       Additional configuration for a connection between the manager and the database server.

       other_config : dscp: optional string, containing an integer
              The Differentiated Service Code Point (DSCP) is specified using 6 bits  in  the  Type  of  Service
              (TOS)  field  in  the  IP  header.  DSCP  provides a mechanism to classify the network traffic and
              provide Quality of Service (QoS) on IP networks. The  DSCP  value  specified  here  is  used  when
              establishing the connection between the manager and the database server. If no value is specified,
              a default value of 48 is chosen. Valid DSCP values must be in the range 0 to 63.

Physical_Switch TABLE

       A physical switch that implements a VTEP.

   Summary:
       ports                         set of Physical_Ports
       tunnels                       set of Tunnels
       Network Status:
         management_ips              set of strings
         tunnel_ips                  set of strings
       Identification:
         name                        string (must be unique within table)
         description                 string
       Error Notification:
         switch_fault_status : mac_table_exhaustion
                                     none
         switch_fault_status : tunnel_exhaustion
                                     none
         switch_fault_status : lr_switch_bindings_fault
                                     none
         switch_fault_status : lr_static_routes_fault
                                     none
         switch_fault_status : lr_creation_fault
                                     none
         switch_fault_status : lr_support_fault
                                     none
         switch_fault_status : unspecified_fault
                                     none
         switch_fault_status : unsupported_source_node_replication
                                     none
       Common Column:
         other_config                map of string-string pairs

   Details:
       ports: set of Physical_Ports
              The physical ports within the switch.

       tunnels: set of Tunnels
              Tunnels created by this switch as instructed by the NVC.

     Network Status:

       management_ips: set of strings
              IPv4 or IPv6 addresses at which the switch may be contacted for management purposes.

       tunnel_ips: set of strings
              IPv4 or IPv6 addresses on which the switch may originate or terminate tunnels.

              This  column  is  intended to allow a Manager to determine the Physical_Switch that terminates the
              tunnel represented by a Physical_Locator.

     Identification:

       name: string (must be unique within table)
              Symbolic name for the switch, such as its hostname.

       description: string
              An extended description for the switch, such as its switch login banner.

     Error Notification:

       An entry in this column indicates to the NVC that this switch has encountered a fault.  The  switch  must
       clear this column when the fault has been cleared.

       switch_fault_status : mac_table_exhaustion: none
              Indicates  that the switch has been unable to process MAC entries requested by the NVC due to lack
              of table resources.

       switch_fault_status : tunnel_exhaustion: none
              Indicates that the switch has been unable to create tunnels requested by the NVC due  to  lack  of
              resources.

       switch_fault_status : lr_switch_bindings_fault: none
              Indicates that the switch has been unable to create the logical router interfaces requested by the
              NVC due to conflicting configurations or a lack of hardware resources.

       switch_fault_status : lr_static_routes_fault: none
              Indicates  that the switch has been unable to create the static routes requested by the NVC due to
              conflicting configurations or a lack of hardware resources.

       switch_fault_status : lr_creation_fault: none
              Indicates that the switch has been unable to create the logical router requested by the NVC due to
              conflicting configurations or a lack of hardware resources.

       switch_fault_status : lr_support_fault: none
              Indicates that the switch does not support logical routing.

       switch_fault_status : unspecified_fault: none
              Indicates that an error has occurred in the switch  but  that  no  more  specific  information  is
              available.

       switch_fault_status : unsupported_source_node_replication: none
              Indicates  that  the  requested  source  node replication mode cannot be supported by the physical
              switch; this specifically means in this context that the physical switch lacks the  capability  to
              support  source  node replication mode. This error occurs when a controller attempts to set source
              node replication mode for one of the logical switches that the physical switch is keeping  context
              for.  An  NVC  that  observes this error should take appropriate action (for example reverting the
              logical switch to service node replication mode). It is recommended that an NVC be  proactive  and
              test for support of source node replication by using a test logical switch on vtep physical switch
              nodes  and  then  trying  to  change  the  replication mode to source node on this logical switch,
              checking for error. The NVC could remember this capability per vtep physical switch.  Using  mixed
              replication  modes  on a given logical switch is not recommended. Service node replication mode is
              considered a basic requirement since it only requires sending a packet to a single transport node,
              hence it is not expected that a switch should report that service node mode cannot be supported.

     Common Column:

       The overall purpose of this column is described under Common Column at the beginning of this document.

       other_config: map of string-string pairs

Tunnel TABLE

       A tunnel created by a Physical_Switch.

   Summary:
       local                         Physical_Locator
       remote                        Physical_Locator
       Bidirectional Forwarding Detection (BFD):
         BFD Local Configuration:
            bfd_config_local : bfd_dst_mac
                                     optional string
            bfd_config_local : bfd_dst_ip
                                     optional string
         BFD Remote Configuration:
            bfd_config_remote : bfd_dst_mac
                                     optional string
            bfd_config_remote : bfd_dst_ip
                                     optional string
         BFD Parameters:
            bfd_params : enable      optional string, either true or false
            bfd_params : min_rx      optional string, containing an integer, at least 1
            bfd_params : min_tx      optional string, containing an integer, at least 1
            bfd_params : decay_min_rx
                                     optional string, containing an integer
            bfd_params : forwarding_if_rx
                                     optional string, either true or false
            bfd_params : cpath_down  optional string, either true or false
            bfd_params : check_tnl_key
                                     optional string, either true or false
         BFD Status:
            bfd_status : enabled     optional string, either true or false
            bfd_status : state       optional string, one of admin_down, down, init, or up
            bfd_status : forwarding  optional string, either true or false
            bfd_status : diagnostic  optional string
            bfd_status : remote_state
                                     optional string, one of admin_down, down, init, or up
            bfd_status : remote_diagnostic
                                     optional string
            bfd_status : info        optional string

   Details:
       local: Physical_Locator
              Tunnel end-point local to the physical switch.

       remote: Physical_Locator
              Tunnel end-point remote to the physical switch.

     Bidirectional Forwarding Detection (BFD):

       BFD, defined in RFC 5880, allows  point  to  point  detection  of  connectivity  failures  by  occasional
       transmission of BFD control messages. VTEPs are expected to implement BFD.

       BFD  operates  by  regularly transmitting BFD control messages at a rate negotiated independently in each
       direction. Each endpoint specifies the rate at which it expects to receive control messages, and the rate
       at which it’s willing to transmit them. An endpoint which fails to receive BFD  control  messages  for  a
       period  of  three  times  the  expected reception rate will signal a connectivity fault. In the case of a
       unidirectional connectivity issue, the system not receiving BFD control messages will signal the  problem
       to its peer in the messages it transmits.

       A  hardware  VTEP  is  expected to use BFD to determine reachability of devices at the end of the tunnels
       with which it exchanges data. This can enable the VTEP to choose a functioning service node among  a  set
       of  service  nodes  providing  high  availability. It also enables the NVC to report the health status of
       tunnels.

       In many cases the BFD peer of a hardware VTEP  will  be  an  Open  vSwitch  instance.  The  Open  vSwitch
       implementation of BFD aims to comply faithfully with the requirements put forth in RFC 5880. Open vSwitch
       does not implement the optional Authentication or ``Echo Mode’’ features.

     BFD Local Configuration:

       The  HSC writes the key-value pairs in the bfd_config_local column to specify the local configurations to
       be used for BFD sessions on this tunnel.

       bfd_config_local : bfd_dst_mac: optional string
              Set to an Ethernet address in the form xx:xx:xx:xx:xx:xx to set the MAC  expected  as  destination
              for received BFD packets. The default is 00:23:20:00:00:01.

       bfd_config_local : bfd_dst_ip: optional string
              Set  to  an  IPv4  address  to set the IP address that is expected as destination for received BFD
              packets. The default is 169.254.1.0.

     BFD Remote Configuration:

       The bfd_config_remote column is the remote counterpart of the bfd_config_local column. The NVC writes the
       key-value pairs in this column.

       bfd_config_remote : bfd_dst_mac: optional string
              Set to an Ethernet address in the form xx:xx:xx:xx:xx:xx to set the destination MAC to be used for
              transmitted BFD packets. The default is 00:23:20:00:00:01.

       bfd_config_remote : bfd_dst_ip: optional string
              Set to an IPv4 address to set the IP address used as destination for transmitted BFD packets.  The
              default is 169.254.1.1.

     BFD Parameters:

       The NVC sets up key-value pairs in the bfd_params column to enable and configure BFD.

       bfd_params : enable: optional string, either true or false
              True to enable BFD on this Tunnel. If not specified, BFD will not be enabled by default.

       bfd_params : min_rx: optional string, containing an integer, at least 1
              The  shortest  interval,  in milliseconds, at which this BFD session offers to receive BFD control
              messages. The remote endpoint may choose to send messages at a slower rate. Defaults to 1000.

       bfd_params : min_tx: optional string, containing an integer, at least 1
              The shortest interval, in milliseconds, at which this BFD  session  is  willing  to  transmit  BFD
              control messages. Messages will actually be transmitted at a slower rate if the remote endpoint is
              not willing to receive as quickly as specified. Defaults to 100.

       bfd_params : decay_min_rx: optional string, containing an integer
              An  alternate  receive  interval,  in  milliseconds,  that  must  be  greater  than  or  equal  to
              bfd_params:min_rx.    The    implementation    should    switch    from    bfd_params:min_rx    to
              bfd_params:decay_min_rx  when  there  is no obvious incoming data traffic at the tunnel, to reduce
              the CPU and bandwidth cost of monitoring an idle tunnel. This feature may be disabled by setting a
              value of 0. This feature is reset whenever bfd_params:decay_min_rx or bfd_params:min_rx changes.

       bfd_params : forwarding_if_rx: optional string, either true or false
              When true, traffic received on the Tunnel is used to indicate the capability of  packet  I/O.  BFD
              control  packets  are  still  transmitted  and  received.  At least one BFD control packet must be
              received every 100 * bfd_params:min_rx amount of time. Otherwise, even if traffic is received, the
              bfd_params:forwarding will be false.

       bfd_params : cpath_down: optional string, either true or false
              Set to true to notify the remote endpoint that traffic should not be forwarded to this system  for
              some  reason  other  than  a  connectivity  failure  on the interface being monitored. The typical
              underlying reason is ``concatenated path down,’’ that  is,  that  connectivity  beyond  the  local
              system is down. Defaults to false.

       bfd_params : check_tnl_key: optional string, either true or false
              Set  to  true  to make BFD accept only control messages with a tunnel key of zero. By default, BFD
              accepts control messages with any tunnel key.

     BFD Status:

       The VTEP sets key-value pairs in the bfd_status column to report the status of BFD on this  tunnel.  When
       BFD is not enabled, with bfd_params:enable, the HSC clears all key-value pairs from bfd_status.

       bfd_status : enabled: optional string, either true or false
              Set  to  true  if  the  BFD session has been successfully enabled. Set to false if the VTEP cannot
              support BFD or has insufficient resources to enable BFD on this tunnel. The NVC will  disable  the
              BFD monitoring on the other side of the tunnel once this value is set to false.

       bfd_status : state: optional string, one of admin_down, down, init, or up
              Reports the state of the BFD session. The BFD session is fully healthy and negotiated if UP.

       bfd_status : forwarding: optional string, either true or false
              Reports  whether  the  BFD  session believes this Tunnel may be used to forward traffic. Typically
              this means the local session is signaling UP, and the remote system isn’t signaling a problem such
              as concatenated path down.

       bfd_status : diagnostic: optional string
              A diagnostic code specifying the local system’s reason for the last change in session  state.  The
              error messages are defined in section 4.1 of [RFC 5880].

       bfd_status : remote_state: optional string, one of admin_down, down, init, or up
              Reports the state of the remote endpoint’s BFD session.

       bfd_status : remote_diagnostic: optional string
              A  diagnostic code specifying the remote system’s reason for the last change in session state. The
              error messages are defined in section 4.1 of [RFC 5880].

       bfd_status : info: optional string
              A short message providing further information about the BFD status (possibly including reasons why
              BFD could not be enabled).

Physical_Port TABLE

       A port within a Physical_Switch.

   Summary:
       vlan_bindings                 map of integer-Logical_Switch pairs, key in range 0 to 4,095
       acl_bindings                  map of integer-ACL pairs, key in range 0 to 4,095
       vlan_stats                    map of integer-Logical_Binding_Stats pairs, key in range 0 to 4,095
       Identification:
         name                        string
         description                 string
       Error Notification:
         port_fault_status : invalid_vlan_map
                                     none
         port_fault_status : invalid_ACL_binding
                                     none
         port_fault_status : unspecified_fault
                                     none
       Common Column:
         other_config                map of string-string pairs

   Details:
       vlan_bindings: map of integer-Logical_Switch pairs, key in range 0 to 4,095
              Identifies how VLANs on the physical port are bound to logical switches. If, for example, the  map
              contains  a  (VLAN,  logical  switch)  pair,  a  packet  that  arrives  on the port in the VLAN is
              considered to belong to the paired logical switch. A value of zero in the VLAN  field  means  that
              untagged traffic on the physical port is mapped to the logical switch.

       acl_bindings: map of integer-ACL pairs, key in range 0 to 4,095
              Attach Access Control Lists (ACLs) to the physical port. The column consists of a map of VLAN tags
              to  ACLs. If the value of the VLAN tag in the map is 0, this means that the ACL is associated with
              the entire physical port. Non-zero values mean that the ACL is  to  be  applied  only  on  packets
              carrying  that  VLAN tag value. Switches will not necessarily support matching on the VLAN tag for
              all ACLs, and unsupported ACL bindings will cause errors to be reported. The binding of an ACL  to
              a  specific VLAN and the binding of an ACL to the entire physical port should not be combined on a
              single physical port. That is, a mix of zero and non-zero keys in the map is not recommended.

       vlan_stats: map of integer-Logical_Binding_Stats pairs, key in range 0 to 4,095
              Statistics for VLANs bound to logical switches on the physical port. An implementation that  fully
              supports such statistics would populate this column with a mapping for every VLAN that is bound in
              vlan_bindings.  An implementation that does not support such statistics or only partially supports
              them would not populate this column or partially populate it, respectively. A value of zero in the
              VLAN field refers to untagged traffic on the physical port.

     Identification:

       name: string
              Symbolic name for the port. The name ought to be unique within a given  Physical_Switch,  but  the
              database is not capable of enforcing this.

       description: string
              An extended description for the port.

     Error Notification:

       An  entry  in this column indicates to the NVC that the physical port has encountered a fault. The switch
       must clear this column when the error has been cleared.

       port_fault_status : invalid_vlan_map: none
              Indicates that  a  VLAN-to-logical-switch  mapping  requested  by  the  controller  could  not  be
              instantiated by the switch because of a conflict with local configuration.

       port_fault_status : invalid_ACL_binding: none
              Indicates that an error has occurred in associating an ACL with a port.

       port_fault_status : unspecified_fault: none
              Indicates  that  an  error  has  occurred  on  the  port  but that no more specific information is
              available.

     Common Column:

       The overall purpose of this column is described under Common Column at the beginning of this document.

       other_config: map of string-string pairs

Logical_Binding_Stats TABLE

       Reports statistics for the Logical_Switch with which a VLAN on a Physical_Port is associated.

   Summary:
       Statistics:
         packets_from_local          integer
         bytes_from_local            integer
         packets_to_local            integer
         bytes_to_local              integer

   Details:
     Statistics:

       These statistics count only packets to which the binding applies.

       packets_from_local: integer
              Number of packets sent by the Physical_Switch.

       bytes_from_local: integer
              Number of bytes in packets sent by the Physical_Switch.

       packets_to_local: integer
              Number of packets received by the Physical_Switch.

       bytes_to_local: integer
              Number of bytes in packets received by the Physical_Switch.

Logical_Switch TABLE

       A logical Ethernet switch, whose implementation may span physical and virtual media, possibly crossing L3
       domains via tunnels; a logical layer-2 domain; an Ethernet broadcast domain.

   Summary:
       Per Logical-Switch Tunnel Key:
         tunnel_key                  optional integer
       Replication Mode:
         replication_mode            optional string, either service_node or source_node
       Identification:
         name                        string (must be unique within table)
         description                 string
       Common Column:
         other_config                map of string-string pairs

   Details:
     Per Logical-Switch Tunnel Key:

       Tunnel protocols tend to have a field that allows the tunnel to be partitioned  into  sub-tunnels:  VXLAN
       has  a  VNI,  GRE  and  STT  have  a key, CAPWAP has a WSI, and so on. We call these generically ``tunnel
       keys.’’ Given that one needs to use a tunnel key at all, there are at least two reasonable ways to assign
       their values:

              •      Per Logical_Switch+Physical_Locator pair. That is, each logical switch may  be  assigned  a
                     different tunnel key on every Physical_Locator. This model is especially flexible.

                     In  this  model,  Physical_Locator  carries the tunnel key. Therefore, one Physical_Locator
                     record will exist for each logical switch carried at a given IP destination.

              •      Per Logical_Switch. That is, every tunnel  associated  with  a  particular  logical  switch
                     carries  the  same  tunnel  key,  regardless of the Physical_Locator to which the tunnel is
                     addressed. This model may ease switch implementation because it imposes fewer  requirements
                     on the hardware datapath.

                     In  this  model,  Logical_Switch  carries  the  tunnel key. Therefore, one Physical_Locator
                     record will exist for each IP destination.

       tunnel_key: optional integer
              This column is used only in the tunnel key per Logical_Switch model (see above), because  only  in
              that model is there a tunnel key associated with a logical switch.

              For  vxlan_over_ipv4  encapsulation,  when the tunnel key per Logical_Switch model is in use, this
              column is the VXLAN VNI that identifies a logical switch. It must be in the range 0 to 16,777,215.

     Replication Mode:

       For handling L2 broadcast, multicast and unknown unicast traffic, packets can be sent to all members of a
       logical switch referenced by a physical switch. There are different modes to replicate the  packets.  The
       default  mode  of replication is to send the traffic to a service node, which can be a hypervisor, server
       or appliance, and let the service node handle replication to other transport nodes (hypervisors or  other
       VTEP  physical switches). This mode is called service node replication. An alternate mode of replication,
       called source node replication involves the source node sending to all other transport nodes. Hypervisors
       are always responsible for doing their own replication for locally attached VMs in  both  modes.  Service
       node  replication mode is the default and considered a basic requirement because it only requires sending
       the packet to a single transport node.

       replication_mode: optional string, either service_node or source_node
              This optional column defines the replication mode per Logical_Switch. There are  2  valid  values,
              service_node  and  source_node.  If  the  column  is  not  set,  the  replication mode defaults to
              service_node.

     Identification:

       name: string (must be unique within table)
              Symbolic name for the logical switch.

       description: string
              An extended description for the logical switch, such as its switch login banner.

     Common Column:

       The overall purpose of this column is described under Common Column at the beginning of this document.

       other_config: map of string-string pairs

Ucast_Macs_Local TABLE

       Mapping of unicast MAC addresses to tunnels (physical locators). This table is written by the HSC, so  it
       contains the MAC addresses that have been learned on physical ports by a VTEP.

   Summary:
       MAC                           string
       logical_switch                Logical_Switch
       locator                       Physical_Locator
       ipaddr                        string

   Details:
       MAC: string
              A MAC address that has been learned by the VTEP.

       logical_switch: Logical_Switch
              The Logical switch to which this mapping applies.

       locator: Physical_Locator
              The  physical  locator  to  be used to reach this MAC address. In this table, the physical locator
              will be one of the tunnel IP addresses of the appropriate VTEP.

       ipaddr: string
              The IP address to which this MAC corresponds. Optional field for the purpose of ARP supression.

Ucast_Macs_Remote TABLE

       Mapping of unicast MAC addresses to tunnels (physical locators). This table is written by the NVC, so  it
       contains  the  MAC  addresses that the NVC has learned. These include VM MAC addresses, in which case the
       physical locators will be hypervisor IP addresses. The NVC will also report MACs that it has learned from
       other HSCs in the network, in which case the physical  locators  will  be  tunnel  IP  addresses  of  the
       corresponding VTEPs.

   Summary:
       MAC                           string
       logical_switch                Logical_Switch
       locator                       Physical_Locator
       ipaddr                        string

   Details:
       MAC: string
              A MAC address that has been learned by the NVC.

       logical_switch: Logical_Switch
              The Logical switch to which this mapping applies.

       locator: Physical_Locator
              The  physical  locator  to  be used to reach this MAC address. In this table, the physical locator
              will be either a hypervisor IP address or a tunnel IP addresses of another VTEP.

       ipaddr: string
              The IP address to which this MAC corresponds. Optional field for the purpose of ARP supression.

Mcast_Macs_Local TABLE

       Mapping of multicast MAC addresses to tunnels (physical locators). This table is written by the  HSC,  so
       it contains the MAC addresses that have been learned on physical ports by a VTEP. These may be learned by
       IGMP  snooping,  for  example.  This  table  also  specifies  how to handle unknown unicast and broadcast
       packets.

   Summary:
       MAC                           string
       logical_switch                Logical_Switch
       locator_set                   Physical_Locator_Set
       ipaddr                        string

   Details:
       MAC: string
              A MAC address that has been learned by the VTEP.

              The keyword unknown-dst is used as a special ``Ethernet address’’ that indicates the locations  to
              which  packets  in  a  logical  switch  whose  destination  addresses  do  not otherwise appear in
              Ucast_Macs_Local (for unicast addresses) or Mcast_Macs_Local (for multicast addresses)  should  be
              sent.

       logical_switch: Logical_Switch
              The Logical switch to which this mapping applies.

       locator_set: Physical_Locator_Set
              The physical locator set to be used to reach this MAC address. In this table, the physical locator
              set will be contain one or more tunnel IP addresses of the appropriate VTEP(s).

       ipaddr: string
              The IP address to which this MAC corresponds. Optional field for the purpose of ARP supression.

Mcast_Macs_Remote TABLE

       Mapping  of  multicast MAC addresses to tunnels (physical locators). This table is written by the NVC, so
       it contains the MAC addresses that the NVC has learned. This table also specifies how to  handle  unknown
       unicast and broadcast packets.

       Multicast  packet  replication may be handled by a service node, in which case the physical locators will
       be IP addresses of service nodes. If the VTEP supports replication onto multiple  tunnels,  using  source
       node replication, then this may be used to replicate directly onto VTEP-hypervisor or VTEP-VTEP tunnels.

   Summary:
       MAC                           string
       logical_switch                Logical_Switch
       locator_set                   Physical_Locator_Set
       ipaddr                        string

   Details:
       MAC: string
              A MAC address that has been learned by the NVC.

              The  keyword unknown-dst is used as a special ``Ethernet address’’ that indicates the locations to
              which packets in a  logical  switch  whose  destination  addresses  do  not  otherwise  appear  in
              Ucast_Macs_Remote (for unicast addresses) or Mcast_Macs_Remote (for multicast addresses) should be
              sent.

       logical_switch: Logical_Switch
              The Logical switch to which this mapping applies.

       locator_set: Physical_Locator_Set
              The physical locator set to be used to reach this MAC address. In this table, the physical locator
              set  will  be  either  a  set of service nodes when service node replication is used or the set of
              transport nodes (defined as hypervisors or VTEPs) participating in the associated logical  switch,
              when  source node replication is used. When service node replication is used, the VTEP should send
              packets to one member of the locator set that is known to be healthy and reachable, which could be
              determined by BFD. When source node replication is used, the  VTEP  should  send  packets  to  all
              members of the locator set.

       ipaddr: string
              The IP address to which this MAC corresponds. Optional field for the purpose of ARP supression.

Logical_Router TABLE

       A  logical  router,  or  VRF.  A  logical router may be connected to one or more logical switches. Subnet
       addresses and interface addresses may be configured on the interfaces.

   Summary:
       switch_binding                map of string-Logical_Switch pairs
       static_routes                 map of string-string pairs
       acl_binding                   map of string-ACL pairs
       Identification:
         name                        string (must be unique within table)
         description                 string
       Error Notification:
         LR_fault_status : invalid_ACL_binding
                                     none
         LR_fault_status : unspecified_fault
                                     none
       Common Column:
         other_config                map of string-string pairs

   Details:
       switch_binding: map of string-Logical_Switch pairs
              Maps from an IPv4 or IPv6 address prefix in CIDR notation to a logical switch.  Multiple  prefixes
              may  map  to  the  same  switch.  By writing a 32-bit (or 128-bit for v6) address with a /N prefix
              length, both the router’s interface address and the subnet prefix can be configured. For  example,
              192.68.1.1/24  creates  a  /24 subnet for the logical switch attached to the interface and assigns
              the address 192.68.1.1 to the router interface.

       static_routes: map of string-string pairs
              One or more static routes, mapping IP prefixes to next hop IP addresses.

       acl_binding: map of string-ACL pairs
              Maps ACLs to logical router interfaces. The router  interfaces  are  indicated  using  IP  address
              notation,  and  must  be the same interfaces created in the switch_binding column. For example, an
              ACL could be associated with the logical router interface with an address of 192.68.1.1 as defined
              in the example above.

     Identification:

       name: string (must be unique within table)
              Symbolic name for the logical router.

       description: string
              An extended description for the logical router.

     Error Notification:

       An entry in this column indicates to the NVC that the HSC has encountered a fault  in  configuring  state
       related to the logical router.

       LR_fault_status : invalid_ACL_binding: none
              Indicates that an error has occurred in associating an ACL with a logical router port.

       LR_fault_status : unspecified_fault: none
              Indicates  that  an error has occurred in configuring the logical router but that no more specific
              information is available.

     Common Column:

       The overall purpose of this column is described under Common Column at the beginning of this document.

       other_config: map of string-string pairs

Arp_Sources_Local TABLE

       MAC address to be used when a VTEP issues ARP requests on behalf of a logical router.

       A distributed logical router is implemented by a set of VTEPs (both hardware  VTEPs  and  vswitches).  In
       order  for a given VTEP to populate the local ARP cache for a logical router, it issues ARP requests with
       a source MAC address that is unique to the VTEP. A single per-VTEP MAC can be re-used across all  logical
       networks.  This table contains the MACs that are used by the VTEPs of a given HSC. The table provides the
       mapping from MAC to physical locator for each VTEP so that replies to the ARP requests can be  sent  back
       to the correct VTEP using the appropriate physical locator.

   Summary:
       src_mac                       string
       locator                       Physical_Locator

   Details:
       src_mac: string
              The source MAC to be used by a given VTEP.

       locator: Physical_Locator
              The Physical_Locator to use for replies to ARP requests from this MAC address.

Arp_Sources_Remote TABLE

       MAC address to be used when a remote VTEP issues ARP requests on behalf of a logical router.

       This table is the remote counterpart of Arp_sources_local. The NVC writes this table to notify the HSC of
       the  MACs  that  will  be  used  by  remote VTEPs when they issue ARP requests on behalf of a distributed
       logical router.

   Summary:
       src_mac                       string
       locator                       Physical_Locator

   Details:
       src_mac: string
              The source MAC to be used by a given VTEP.

       locator: Physical_Locator
              The Physical_Locator to use for replies to ARP requests from this MAC address.

Physical_Locator_Set TABLE

       A set of one or more Physical_Locators.

       This table exists only because OVSDB does not have a way to express the type ``map from string to one  or
       more Physical_Locator records.’’

   Summary:
       locators                      immutable set of 1 or more Physical_Locators

   Details:
       locators: immutable set of 1 or more Physical_Locators

Physical_Locator TABLE

       Identifies an endpoint to which logical switch traffic may be encapsulated and forwarded.

       The vxlan_over_ipv4 encapsulation, the only encapsulation defined so far, can use either tunnel key model
       described  in  the ``Per Logical-Switch Tunnel Key’’ section in the Logical_Switch table. When the tunnel
       key per Logical_Switch model is in use, the tunnel_key column in the Logical_Switch table is filled  with
       a  VNI  and  the  tunnel_key  column in this table is empty; in the key-per-tunnel model, the opposite is
       true. The former model is older, and thus likely to be more widely  supported.  See  the  ``Per  Logical-
       Switch Tunnel Key’’ section in the Logical_Switch table for further discussion of the model.

   Summary:
       encapsulation_type            immutable string, must be vxlan_over_ipv4
       dst_ip                        immutable string
       tunnel_key                    optional integer

   Details:
       encapsulation_type: immutable string, must be vxlan_over_ipv4
              The type of tunneling encapsulation.

       dst_ip: immutable string
              For vxlan_over_ipv4 encapsulation, the IPv4 address of the VXLAN tunnel endpoint.

              We  expect  that  this  column  could  be  used for IPv4 or IPv6 addresses in encapsulations to be
              introduced later.

       tunnel_key: optional integer
              This column is used only in the tunnel key per Logical_Switch+Physical_Locator model (see above).

              For vxlan_over_ipv4 encapsulation, when the Logical_Switch+Physical_Locator model is in use,  this
              column is the VXLAN VNI. It must be in the range 0 to 16,777,215.

ACL_entry TABLE

       Describes the individual entries that comprise an Access Control List.

       Each  entry  in  the  table  is  a single rule to match on certain header fields. While there are a large
       number of fields that can be matched on, most hardware cannot match on arbitrary combinations of  fields.
       It  is  common  to match on either L2 fields (described below in the L2 group of columns) or L3/L4 fields
       (the L3/L4 group of columns) but not both. The hardware switch controller may log  an  error  if  an  ACL
       entry requires it to match on an incompatible mixture of fields.

   Summary:
       sequence                      integer
       L2 fields:
         source_mac                  optional string
         dest_mac                    optional string
         ethertype                   optional string
       L3/L4 fields:
         source_ip                   optional string
         source_mask                 optional string
         dest_ip                     optional string
         dest_mask                   optional string
         protocol                    optional integer
         source_port_min             optional integer
         source_port_max             optional integer
         dest_port_min               optional integer
         dest_port_max               optional integer
         tcp_flags                   optional integer
         tcp_flags_mask              optional integer
         icmp_type                   optional integer
         icmp_code                   optional integer
       direction                     string, either egress or ingress
       action                        string, either deny or permit
       Error Notification:
         acle_fault_status : invalid_acl_entry
                                     none
         acle_fault_status : unspecified_fault
                                     none

   Details:
       sequence: integer
              The  sequence  number  for  the  ACL  entry  for  the purpose of ordering entries in an ACL. Lower
              numbered entries are matched before higher numbered entries.

     L2 fields:

       source_mac: optional string
              Source MAC address, in the form xx:xx:xx:xx:xx:xx

       dest_mac: optional string
              Destination MAC address, in the form xx:xx:xx:xx:xx:xx

       ethertype: optional string
              Ethertype in hexadecimal, in the form 0xAAAA

     L3/L4 fields:

       source_ip: optional string
              Source IP address, in the form xx.xx.xx.xx for IPv4  or  appropriate  colon-separated  hexadecimal
              notation for IPv6.

       source_mask: optional string
              Mask  that  determines  which  bits  of source_ip to match on, in the form xx.xx.xx.xx for IPv4 or
              appropriate colon-separated hexadecimal notation for IPv6.

       dest_ip: optional string
              Destination  IP  address,  in  the  form  xx.xx.xx.xx  for  IPv4  or  appropriate  colon-separated
              hexadecimal notation for IPv6.

       dest_mask: optional string
              Mask  that  determines  which  bits  of  dest_ip  to match on, in the form xx.xx.xx.xx for IPv4 or
              appropriate colon-separated hexadecimal notation for IPv6.

       protocol: optional integer
              Protocol number in the IPv4 header, or value of the "next header" field in the IPv6 header.

       source_port_min: optional integer
              Lower end of the range of source port values. The value specified is included in the range.

       source_port_max: optional integer
              Upper end of the range of source port values. The value specified is included in the range.

       dest_port_min: optional integer
              Lower end of the range of destination port values. The value specified is included in the range.

       dest_port_max: optional integer
              Upper end of the range of destination port values. The value specified is included in the range.

       tcp_flags: optional integer
              Integer representing the value of TCP flags to match. For example, the  SYN  flag  is  the  second
              least  significant  bit  in  the  TCP flags. Hence a value of 2 would indicate that the "SYN" flag
              should be set (assuming an appropriate mask).

       tcp_flags_mask: optional integer
              Integer representing the mask to apply when matching TCP flags. For example, a value  of  2  would
              imply that the "SYN" flag should be matched and all other flags ignored.

       icmp_type: optional integer
              ICMP type to be matched.

       icmp_code: optional integer
              ICMP code to be matched.

       direction: string, either egress or ingress
              Direction  of  traffic to match on the specified port, either "ingress" (toward the logical switch
              or router) or "egress" (leaving the logical switch or router).

       action: string, either deny or permit
              Action to take for this rule, either "permit" or "deny".

     Error Notification:

       An entry in this column indicates to the NVC that the ACL could  not  be  configured  as  requested.  The
       switch must clear this column when the error has been cleared.

       acle_fault_status : invalid_acl_entry: none
              Indicates  that  an ACL entry requested by the controller could not be instantiated by the switch,
              e.g. because it requires an unsupported combination of fields to be matched.

       acle_fault_status : unspecified_fault: none
              Indicates that an error has occurred in configuring the ACL entry but no more specific information
              is available.

ACL TABLE

       Access Control List table. Each ACL is constructed as a set of entries from the ACL_entry table.  Packets
       that are not matched by any entry in the ACL are allowed by default.

   Summary:
       acl_entries                   set of 1 or more ACL_entrys
       acl_name                      string (must be unique within table)
       Error Notification:
         acl_fault_status : invalid_acl
                                     none
         acl_fault_status : resource_shortage
                                     none
         acl_fault_status : unspecified_fault
                                     none

   Details:
       acl_entries: set of 1 or more ACL_entrys
              A set of references to entries in the ACL_entry table.

       acl_name: string (must be unique within table)
              A human readable name for the ACL, which may (for example) be displayed on the switch CLI.

     Error Notification:

       An  entry  in  this  column  indicates  to the NVC that the ACL could not be configured as requested. The
       switch must clear this column when the error has been cleared.

       acl_fault_status : invalid_acl: none
              Indicates that an ACL requested by the controller could not be instantiated by the  switch,  e.g.,
              because it requires an unsupported combination of fields to be matched.

       acl_fault_status : resource_shortage: none
              Indicates that an ACL requested by the controller could not be instantiated by the switch due to a
              shortage of resources (e.g. TCAM space).

       acl_fault_status : unspecified_fault: none
              Indicates  that  an  error has occurred in configuring the ACL but no more specific information is
              available.

Open vSwitch 3.3.0                               DB Schema 1.7.0                                         vtep(5)