An interface within a Port
.
Summary:
Core Features:
name
immutable string (must be unique
within table)
ifindex
optional integer, in range 0 to
4,294,967,295
mac_in_use
optional string
mac
optional string
error
optional string
OpenFlow Port Number:
ofport
optional integer
ofport_request
optional integer, in range 1 to
65,279
System-Specific Details:
type
string
Tunnel Options:
options : remote_ip
optional string
options : local_ip
optional string
options : in_key
optional string
options : out_key
optional string
options : dst_port
optional string
options : key
optional string
options : tos
optional string
options : ttl
optional string
options : df_default
optional string, either true
or
false
options : egress_pkt_mark
optional string
Tunnel Options: lisp only:
options : packet_type
optional string, either legacy_l3
or ptap
Tunnel Options: vxlan only:
options : exts
optional string
options : packet_type
optional string, one of legacy_l2
,
legacy_l3
, or ptap
Tunnel Options: gre only:
options : packet_type
optional string, one of legacy_l2
,
legacy_l3
, or ptap
options : seq
optional string, either true
or
false
Tunnel Options: gre, ip6gre, geneve, bareudp and vxlan:
options : csum
optional string, either true
or
false
Tunnel Options: IPsec:
options : psk
optional string
options : remote_cert
optional string
options : remote_name
optional string
Tunnel Options: erspan only:
options : erspan_idx
optional string
options : erspan_ver
optional string
options : erspan_dir
optional string
options : erspan_hwid
optional string
Tunnel Options: Bareudp only:
options : payload_type
optional string
Patch Options:
options : peer
optional string
PMD (Poll Mode Driver) Options:
options : n_rxq
optional string, containing an
integer, at least 1
options : dpdk-devargs
optional string
other_config : pmd-rxq-affinity
optional string
options : xdp-mode
optional string, one of
best-effort
, generic
,
native-with-zerocopy
, or native
options : use-need-wakeup
optional string, either true
or
false
options : vhost-server-path
optional string
options : tx-retries-max
optional string, containing an
integer, in range 0 to 32
options : n_rxq_desc
optional string, containing an
integer, in range 1 to 4,096
options : n_txq_desc
optional string, containing an
integer, in range 1 to 4,096
options : dpdk-vf-mac
optional string
EMC (Exact Match Cache) Configuration:
other_config : emc-enable
optional string, either true
or
false
MTU:
mtu
optional integer
mtu_request
optional integer, at least 1
Interface Status:
admin_state
optional string, either down
or up
link_state
optional string, either down
or up
link_resets
optional integer
link_speed
optional integer
duplex
optional string, either full
or
half
lacp_current
optional boolean
status
map of string-string pairs
status : driver_name
optional string
status : driver_version
optional string
status : firmware_version
optional string
status : source_ip
optional string
status : tunnel_egress_iface
optional string
status : tunnel_egress_iface_carrier
optional string, either down
or up
dpdk:
status : port_no
optional string
status : numa_id
optional string
status : min_rx_bufsize
optional string
status : max_rx_pktlen
optional string
status : max_rx_queues
optional string
status : max_tx_queues
optional string
status : max_mac_addrs
optional string
status : max_hash_mac_addrs
optional string
status : max_vfs
optional string
status : max_vmdq_pools
optional string
status : if_type
optional string
status : if_descr
optional string
status : pci-vendor_id
optional string
status : pci-device_id
optional string
Statistics:
Statistics: Successful transmit and receive counters:
statistics : rx_packets
optional integer
statistics : rx_bytes
optional integer
statistics : tx_packets
optional integer
statistics : tx_bytes
optional integer
Statistics: Receive errors:
statistics : rx_dropped
optional integer
statistics : rx_frame_err
optional integer
statistics : rx_over_err
optional integer
statistics : rx_crc_err
optional integer
statistics : rx_errors
optional integer
Statistics: Transmit errors:
statistics : tx_dropped
optional integer
statistics : collisions
optional integer
statistics : tx_errors
optional integer
Ingress Policing:
ingress_policing_rate
integer, at least 0
ingress_policing_kpkts_rate
integer, at least 0
ingress_policing_burst
integer, at least 0
ingress_policing_kpkts_burst
integer, at least 0
Bidirectional Forwarding Detection (BFD):
BFD Configuration:
bfd : enable
optional string, either true
or
false
bfd : min_rx
optional string, containing an
integer, at least 1
bfd : min_tx
optional string, containing an
integer, at least 1
bfd : decay_min_rx
optional string, containing an
integer
bfd : forwarding_if_rx
optional string, either true
or
false
bfd : cpath_down
optional string, either true
or
false
bfd : check_tnl_key
optional string, either true
or
false
bfd : bfd_local_src_mac
optional string
bfd : bfd_local_dst_mac
optional string
bfd : bfd_remote_dst_mac
optional string
bfd : bfd_src_ip
optional string
bfd : bfd_dst_ip
optional string
bfd : oam
optional string
bfd : mult
optional string, containing an
integer, in range 1 to 255
BFD Status:
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 : flap_count
optional string, containing an
integer, at least 0
Connectivity Fault Management:
cfm_mpid
optional integer
cfm_flap_count
optional integer
cfm_fault
optional boolean
cfm_fault_status : recv
none
cfm_fault_status : rdi
none
cfm_fault_status : maid
none
cfm_fault_status : loopback
none
cfm_fault_status : overflow
none
cfm_fault_status : override
none
cfm_fault_status : interval
none
cfm_remote_opstate
optional string, either down
or up
cfm_health
optional integer, in range 0 to 100
cfm_remote_mpids
set of integers
other_config : cfm_interval
optional string, containing an
integer
other_config : cfm_extended
optional string, either true
or
false
other_config : cfm_demand
optional string, either true
or
false
other_config : cfm_opstate
optional string, either down
or up
other_config : cfm_ccm_vlan
optional string, containing an
integer, in range 1 to 4,095
other_config : cfm_ccm_pcp
optional string, containing an
integer, in range 1 to 7
Bonding Configuration:
other_config : lacp-port-id
optional string, containing an
integer, in range 1 to 65,535
other_config : lacp-port-priority
optional string, containing an
integer, in range 1 to 65,535
other_config : lacp-aggregation-key
optional string, containing an
integer, in range 1 to 65,535
Virtual Machine Identifiers:
external_ids : attached-mac
optional string
external_ids : iface-id
optional string
external_ids : iface-status
optional string, either active
or
inactive
external_ids : xs-vif-uuid
optional string
external_ids : xs-network-uuid
optional string
external_ids : vm-id
optional string
external_ids : xs-vm-uuid
optional string
Auto Attach Configuration:
lldp : enable
optional string, either true
or
false
Flow control Configuration:
options : rx-flow-ctrl
optional string, either true
or
false
options : tx-flow-ctrl
optional string, either true
or
false
options : flow-ctrl-autoneg
optional string, either true
or
false
Link State Change detection mode:
options : dpdk-lsc-interrupt
optional string, either true
or
false
Common Columns:
other_config
map of string-string pairs
external_ids
map of string-string pairs
Details:
Core Features:
name
: immutable string (must be unique within table)
Interface name. Should be alphanumeric. For non-bonded
port, this should be the same as the port name. It must
otherwise be unique among the names of ports, interfaces,
and bridges on a host.
The maximum length of an interface name depends on the
underlying datapath:
• The names of interfaces implemented as Linux and
BSD network devices, including interfaces with type
internal
, tap
, or system
plus the different types
of tunnel ports, are limited to 15 bytes. Windows
limits these names to 255 bytes.
• The names of patch ports are not used in the
underlying datapath, so operating system
restrictions do not apply. Thus, they may have
arbitrary length.
Regardless of other restrictions, OpenFlow only supports
15-byte names, which means that ovs-ofctl
and OpenFlow
controllers will show names truncated to 15 bytes.
ifindex
: optional integer, in range 0 to 4,294,967,295
A positive interface index as defined for SNMP MIB-II in
RFCs 1213 and 2863, if the interface has one, otherwise 0.
The ifindex is useful for seamless integration with
protocols such as SNMP and sFlow.
mac_in_use
: optional string
The MAC address in use by this interface.
mac
: optional string
Ethernet address to set for this interface. If unset then
the default MAC address is used:
• For the local interface, the default is the lowest-
numbered MAC address among the other bridge ports,
either the value of the mac
in its Port
record, if
set, or its actual MAC (for bonded ports, the MAC
of its member whose name is first in alphabetical
order). Internal ports and bridge ports that are
used as port mirroring destinations (see the Mirror
table) are ignored.
• For other internal interfaces, the default MAC is
randomly generated.
• External interfaces typically have a MAC address
associated with their hardware.
Some interfaces may not have a software-controllable MAC
address. This option only affects internal ports. For
other type ports, you can change the MAC address outside
Open vSwitch, using ip command.
error
: optional string
If the configuration of the port failed, as indicated by
-1 in ofport
, Open vSwitch sets this column to an error
description in human readable form. Otherwise, Open
vSwitch clears this column.
OpenFlow Port Number:
When a client adds a new interface, Open vSwitch chooses an
OpenFlow port number for the new port. If the client that adds
the port fills in ofport_request
, then Open vSwitch tries to use
its value as the OpenFlow port number. Otherwise, or if the
requested port number is already in use or cannot be used for
another reason, Open vSwitch automatically assigns a free port
number. Regardless of how the port number was obtained, Open
vSwitch then reports in ofport
the port number actually assigned.
Open vSwitch limits the port numbers that it automatically
assigns to the range 1 through 32,767, inclusive. Controllers
therefore have free use of ports 32,768 and up.
ofport
: optional integer
OpenFlow port number for this interface. Open vSwitch sets
this column's value, so other clients should treat it as
read-only.
The OpenFlow ``local'' port (OFPP_LOCAL
) is 65,534. The
other valid port numbers are in the range 1 to 65,279,
inclusive. Value -1 indicates an error adding the
interface.
ofport_request
: optional integer, in range 1 to 65,279
Requested OpenFlow port number for this interface.
A client should ideally set this column's value in the
same database transaction that it uses to create the
interface. Open vSwitch version 2.1 and later will honor a
later request for a specific port number, althuogh it
might confuse some controllers: OpenFlow does not have a
way to announce a port number change, so Open vSwitch
represents it over OpenFlow as a port deletion followed
immediately by a port addition.
If ofport_request
is set or changed to some other port's
automatically assigned port number, Open vSwitch chooses a
new port number for the latter port.
System-Specific Details:
type
: string
The interface type. The types supported by a particular
instance of Open vSwitch are listed in the iface_types
column in the Open_vSwitch
table. The following types are
defined:
system
An ordinary network device, e.g. eth0
on Linux.
Sometimes referred to as ``external interfaces''
since they are generally connected to hardware
external to that on which the Open vSwitch is
running. The empty string is a synonym for system
.
internal
A simulated network device that sends and receives
traffic. An internal interface whose name
is the
same as its bridge's name
is called the ``local
interface.'' It does not make sense to bond an
internal interface, so the terms ``port'' and
``interface'' are often used imprecisely for
internal interfaces.
tap
A TUN/TAP device managed by Open vSwitch.
Open vSwitch checks the interface state before send
packets to the device. When it is down
, the packets
are dropped and the tx_dropped statistic is updated
accordingly. Older versions of Open vSwitch did not
check the interface state and then the tx_packets
was incremented along with tx_dropped.
geneve
An Ethernet over Geneve
(http://tools.ietf.org/html/draft-ietf-nvo3-geneve
)
IPv4/IPv6 tunnel. A description of how to match and
set Geneve options can be found in the ovs-ofctl
manual page.
gre
Generic Routing Encapsulation (GRE) over IPv4
tunnel, configurable to encapsulate layer 2 or
layer 3 traffic.
ip6gre
Generic Routing Encapsulation (GRE) over IPv6
tunnel, encapsulate layer 2 traffic.
vxlan
An Ethernet tunnel over the UDP-based VXLAN
protocol described in RFC 7348.
Open vSwitch uses IANA-assigned UDP destination
port 4789. The source port used for VXLAN traffic
varies on a per-flow basis and is in the ephemeral
port range.
lisp
A layer 3 tunnel over the experimental, UDP-based
Locator/ID Separation Protocol (RFC 6830).
Only IPv4 and IPv6 packets are supported by the
protocol, and they are sent and received without an
Ethernet header. Traffic to/from LISP ports is
expected to be configured explicitly, and the ports
are not intended to participate in learning based
switching. As such, they are always excluded from
packet flooding.
stt
The Stateless TCP Tunnel (STT) is particularly
useful when tunnel endpoints are in end-systems, as
it utilizes the capabilities of standard network
interface cards to improve performance. STT
utilizes a TCP-like header inside the IP header. It
is stateless, i.e., there is no TCP connection
state of any kind associated with the tunnel. The
TCP-like header is used to leverage the
capabilities of existing network interface cards,
but should not be interpreted as implying any sort
of connection state between endpoints. Since the
STT protocol does not engage in the usual TCP 3-way
handshake, so it will have difficulty traversing
stateful firewalls. The protocol is documented at
https://tools.ietf.org/html/draft-davie-stt All
traffic uses a default destination port of 7471.
patch
A pair of virtual devices that act as a patch
cable.
gtpu
GPRS Tunneling Protocol (GTP) is a group of IP-
based communications protocols used to carry
general packet radio service (GPRS) within GSM,
UMTS and LTE networks. GTP-U is used for carrying
user data within the GPRS core network and between
the radio access network and the core network. The
user data transported can be packets in any of
IPv4, IPv6, or PPP formats.
The protocol is documented at
http://www.3gpp.org/DynaReport/29281.htm
Open vSwitch uses UDP destination port 2152. The
source port used for GTP traffic varies on a per-
flow basis and is in the ephemeral port range.
Bareudp
The Bareudp tunnel provides a generic L3
encapsulation support for tunnelling different L3
protocols like MPLS, IP, NSH etc. inside a UDP
tunnel.
Tunnel Options:
These options apply to interfaces with type
of geneve
, bareudp
,
gre
, ip6gre
, vxlan
, lisp
and stt
.
Each tunnel must be uniquely identified by the combination of
type
, options:remote_ip
, options:local_ip
, and options:in_key
. If
two ports are defined that are the same except one has an
optional identifier and the other does not, the more specific one
is matched first. options:in_key
is considered more specific than
options:local_ip
if a port defines one and another port defines
the other. options:in_key
is not applicable for bareudp tunnels.
Hence it is not considered while identifying a bareudp tunnel.
options : remote_ip
: optional string
Required. The remote tunnel endpoint, one of:
• An IPv4 or IPv6 address (not a DNS name), e.g.
192.168.0.123
. Only unicast endpoints are
supported.
• The word flow
. The tunnel accepts packets from any
remote tunnel endpoint. To process only packets
from a specific remote tunnel endpoint, the flow
entries may match on the tun_src
or
tun_ipv6_src
field. When sending packets to a
remote_ip=flow
tunnel, the flow actions must
explicitly set the tun_dst
or tun_ipv6_dst
field to
the IP address of the desired remote tunnel
endpoint, e.g. with a set_field
action.
The remote tunnel endpoint for any packet received from a
tunnel is available in the tun_src
field for matching in
the flow table.
options : local_ip
: optional string
Optional. The tunnel destination IP that received packets
must match. Default is to match all addresses. If
specified, may be one of:
• An IPv4/IPv6 address (not a DNS name), e.g.
192.168.12.3
.
• The word flow
. The tunnel accepts packets sent to
any of the local IP addresses of the system running
OVS. To process only packets sent to a specific IP
address, the flow entries may match on the tun_dst
or tun_ipv6_dst
field. When sending packets to a
local_ip=flow
tunnel, the flow actions may
explicitly set the tun_src
or tun_ipv6_src
field to
the desired IP address, e.g. with a set_field
action. However, while routing the tunneled packet
out, the local system may override the specified
address with the local IP address configured for
the outgoing system interface.
This option is valid only for tunnels also
configured with the remote_ip=flow
option.
The tunnel destination IP address for any packet received
from a tunnel is available in the tun_dst
or tun_ipv6_dst
field for matching in the flow table.
options : in_key
: optional string
Optional, not applicable for bareudp
. The key that
received packets must contain, one of:
• 0
. The tunnel receives packets with no key or with
a key of 0. This is equivalent to specifying no
options:in_key
at all.
• A positive 24-bit (for Geneve, VXLAN, and LISP),
32-bit (for GRE) or 64-bit (for STT) number. The
tunnel receives only packets with the specified
key.
• The word flow
. The tunnel accepts packets with any
key. The key will be placed in the tun_id
field for
matching in the flow table. The ovs-fields(7)
manual page contains additional information about
matching fields in OpenFlow flows.
options : out_key
: optional string
Optional, not applicable for bareudp
. The key to be set on
outgoing packets, one of:
• 0
. Packets sent through the tunnel will have no
key. This is equivalent to specifying no
options:out_key
at all.
• A positive 24-bit (for Geneve, VXLAN and LISP),
32-bit (for GRE) or 64-bit (for STT) number.
Packets sent through the tunnel will have the
specified key.
• The word flow
. Packets sent through the tunnel will
have the key set using the set_tunnel
Nicira
OpenFlow vendor extension (0 is used in the absence
of an action). The ovs-fields(7) manual page
contains additional information about the Nicira
OpenFlow vendor extensions.
options : dst_port
: optional string
Optional. The tunnel transport layer destination port, for
UDP and TCP based tunnel protocols (Geneve, VXLAN, LISP,
and STT).
options : key
: optional string
Optional. Shorthand to set in_key
and out_key
at the same
time.
options : tos
: optional string
Optional. The value of the ToS bits to be set on the
encapsulating packet. ToS is interpreted as DSCP and ECN
bits, ECN part must be zero. It may also be the word
inherit
, in which case the ToS will be copied from the
inner packet if it is IPv4 or IPv6 (otherwise it will be
0). The ECN fields are always inherited. Default is 0.
options : ttl
: optional string
Optional. The TTL to be set on the encapsulating packet.
It may also be the word inherit
, in which case the TTL
will be copied from the inner packet if it is IPv4 or IPv6
(otherwise it will be the system default, typically 64).
Default is the system default TTL.
options : df_default
: optional string, either true
or false
Optional. If enabled, the Don't Fragment bit will be set
on tunnel outer headers to allow path MTU discovery.
Default is enabled; set to false
to disable.
options : egress_pkt_mark
: optional string
Optional. The pkt_mark to be set on the encapsulating
packet. This option sets packet mark for the tunnel
endpoint for all tunnel packets including tunnel
monitoring.
Tunnel Options: lisp only:
options : packet_type
: optional string, either legacy_l3
or ptap
A LISP tunnel sends and receives only IPv4 and IPv6
packets. This option controls what how the tunnel
represents the packets that it sends and receives:
• By default, or if this option is legacy_l3
, the
tunnel represents packets as Ethernet frames for
compatibility with legacy OpenFlow controllers that
expect this behavior.
• If this option is ptap
, the tunnel represents
packets using the packet_type
mechanism introduced
in OpenFlow 1.5.
Tunnel Options: vxlan only:
options : exts
: optional string
Optional. Comma separated list of optional VXLAN
extensions to enable. The following extensions are
supported:
• gbp
: VXLAN-GBP allows to transport the group policy
context of a packet across the VXLAN tunnel to
other network peers. See the description of
tun_gbp_id
and tun_gbp_flags
in ovs-fields(7) for
additional information.
(https://tools.ietf.org/html/draft-smith-vxlan-group-policy
)
• gpe
: Support for Generic Protocol Encapsulation in
accordance with IETF draft
https://tools.ietf.org/html/draft-ietf-nvo3-vxlan-gpe
.
Without this option, a VXLAN packet always
encapsulates an Ethernet frame. With this option,
an VXLAN packet may also encapsulate an IPv4, IPv6,
NSH, or MPLS packet.
options : packet_type
: optional string, one of legacy_l2
,
legacy_l3
, or ptap
This option controls what types of packets the tunnel
sends and receives and how it represents them:
• By default, or if this option is legacy_l2
, the
tunnel sends and receives only Ethernet frames.
• If this option is legacy_l3
, the tunnel sends and
receives only non-Ethernet (L3) packet, but the
packets are represented as Ethernet frames for
compatibility with legacy OpenFlow controllers that
expect this behavior. This requires enabling gpe
in
options:exts
.
• If this option is ptap
, Open vSwitch represents
packets in the tunnel using the packet_type
mechanism introduced in OpenFlow 1.5. This
mechanism supports any kind of packet, but actually
sending and receiving non-Ethernet packets requires
additionally enabling gpe
in options:exts
.
Tunnel Options: gre only:
gre
interfaces support these options.
options : packet_type
: optional string, one of legacy_l2
,
legacy_l3
, or ptap
This option controls what types of packets the tunnel
sends and receives and how it represents them:
• By default, or if this option is legacy_l2
, the
tunnel sends and receives only Ethernet frames.
• If this option is legacy_l3
, the tunnel sends and
receives only non-Ethernet (L3) packet, but the
packets are represented as Ethernet frames for
compatibility with legacy OpenFlow controllers that
expect this behavior.
• The legacy_l3
option is only available via the user
space datapath. The OVS kernel datapath does not
support devices of type ARPHRD_IPGRE which is the
requirement for legacy_l3
type packets.
• If this option is ptap
, the tunnel sends and
receives any kind of packet. Open vSwitch
represents packets in the tunnel using the
packet_type
mechanism introduced in OpenFlow 1.5.
options : seq
: optional string, either true
or false
Optional. A 4-byte sequence number field for GRE tunnel
only. Default is disabled, set to true
to enable. Sequence
number is incremented by one on each outgoing packet.
Tunnel Options: gre, ip6gre, geneve, bareudp and vxlan:
gre
, ip6gre
, geneve
, bareudp
and vxlan
interfaces support these
options.
options : csum
: optional string, either true
or false
Optional. Compute encapsulation header (either GRE or UDP)
checksums on outgoing packets. Default is disabled, set to
true
to enable. Checksums present on incoming packets will
be validated regardless of this setting.
When using the upstream Linux kernel module, computation
of checksums for geneve
and vxlan
requires Linux kernel
version 4.0 or higher. gre
and ip6gre
support checksums
for all versions of Open vSwitch that support GRE. The out
of tree kernel module distributed as part of OVS can
compute all tunnel checksums on any kernel version that it
is compatible with.
Tunnel Options: IPsec:
Setting any of these options enables IPsec support for a given
tunnel. gre
, geneve
, vxlan
and stt
interfaces support these
options. See the IPsec
section in the Open_vSwitch
table for a
description of each mode.
options : psk
: optional string
In PSK mode only, the preshared secret to negotiate
tunnel. This value must match on both tunnel ends.
options : remote_cert
: optional string
In self-signed certificate mode only, name of a PEM file
containing a certificate of the remote switch. The
certificate must be x.509 version 3 and with the string in
common name (CN) also set in the subject alternative name
(SAN).
options : remote_name
: optional string
In CA-signed certificate mode only, common name (CN) of
the remote certificate.
Tunnel Options: erspan only:
Only erspan
interfaces support these options.
options : erspan_idx
: optional string
20 bit index/port number associated with the ERSPAN
traffic's source port and direction (ingress/egress). This
field is platform dependent.
options : erspan_ver
: optional string
ERSPAN version: 1 for version 1 (type II) or 2 for version
2 (type III).
options : erspan_dir
: optional string
Specifies the ERSPAN v2 mirrored traffic's direction. 1
for egress traffic, and 0 for ingress traffic.
options : erspan_hwid
: optional string
ERSPAN hardware ID is a 6-bit unique identifier of an
ERSPAN v2 engine within a system.
Tunnel Options: Bareudp only:
options : payload_type
: optional string
Specifies the ethertype of the l3 protocol the bareudp
device is tunnelling. For the tunnels which supports
multiple ethertypes of a l3 protocol (IP, MPLS) this field
specifies the protocol name as a string.
Patch Options:
These options apply only to patch ports, that is, interfaces
whose type
column is patch
. Patch ports are mainly a way to
connect otherwise independent bridges to one another, similar to
how one might plug an Ethernet cable (a ``patch cable'') into two
physical switches to connect those switches. The effect of
plugging a patch port into two switches is conceptually similar
to that of plugging the two ends of a Linux veth
device into
those switches, but the implementation of patch ports makes them
much more efficient.
Patch ports may connect two different bridges (the usual case) or
the same bridge. In the latter case, take special care to avoid
loops, e.g. by programming appropriate flows with OpenFlow. Patch
ports do not work if its ends are attached to bridges on
different datapaths, e.g. to connect bridges in system
and netdev
datapaths.
The following command creates and connects patch ports p0
and p1
and adds them to bridges br0
and br1
, respectively:
ovs-vsctl add-port br0 p0 -- set Interface p0 type=patch options:peer=p1 \
-- add-port br1 p1 -- set Interface p1 type=patch options:peer=p0
options : peer
: optional string
The name
of the Interface
for the other side of the patch.
The named Interface
's own peer
option must specify this
Interface
's name. That is, the two patch interfaces must
have reversed name
and peer
values.
PMD (Poll Mode Driver) Options:
Only PMD netdevs support these options.
options : n_rxq
: optional string, containing an integer, at least
1
Specifies the maximum number of rx queues to be created
for PMD netdev. If not specified or specified to 0, one rx
queue will be created by default. Not supported by DPDK
vHost interfaces.
options : dpdk-devargs
: optional string
Specifies the PCI address associated with the port for
physical devices, or the virtual driver to be used for the
port when a virtual PMD is intended to be used. For the
latter, the argument string typically takes the form of
eth_
driver_namex, where driver_name is a valid virtual
DPDK PMD driver name and x is a unique identifier of your
choice for the given port. Only supported by the dpdk port
type.
other_config : pmd-rxq-affinity
: optional string
Specifies mapping of RX queues of this interface to CPU
cores.
Value should be set in the following form:
other_config:pmd-rxq-affinity=<rxq-affinity-list>
where
• <rxq-affinity-list> ::= NULL | <non-empty-list>
• <non-empty-list> ::= <affinity-pair> | <affinity-
pair> , <non-empty-list>
• <affinity-pair> ::= <queue-id> : <core-id>
options : xdp-mode
: optional string, one of best-effort
, generic
,
native-with-zerocopy
, or native
Specifies the operational mode of the XDP program.
In native-with-zerocopy
mode the XDP program is loaded
into the device driver with zero-copy RX and TX enabled.
This mode requires device driver support and has the best
performance because there should be no copying of packets.
native
is the same as native-with-zerocopy
, but without
zero-copy capability. This requires at least one copy
between kernel and the userspace. This mode also requires
support from device driver.
In generic
case the XDP program in kernel works after skb
allocation on early stages of packet processing inside the
network stack. This mode doesn't require driver support,
but has much lower performance.
best-effort
tries to detect and choose the best (fastest)
from the available modes for current interface.
Note that this option is specific to netdev-afxdp.
Defaults to best-effort
mode.
options : use-need-wakeup
: optional string, either true
or false
Specifies whether to use need_wakeup feature in afxdp
netdev. If enabled, OVS explicitly wakes up the kernel RX,
using poll() syscall and wakes up TX, using sendto()
syscall. For physical devices, this feature improves the
performance by avoiding unnecessary sendto syscalls.
Defaults to true if supported by libbpf.
options : vhost-server-path
: optional string
The value specifies the path to the socket associated with
a vHost User client mode device that has been or will be
created by QEMU. Only supported by dpdkvhostuserclient
interfaces.
options : tx-retries-max
: optional string, containing an integer,
in range 0 to 32
The value specifies the maximum amount of vhost tx retries
that can be made while trying to send a batch of packets
to an interface. Only supported by dpdkvhostuserclient
interfaces.
Default value is 8.
options : n_rxq_desc
: optional string, containing an integer, in
range 1 to 4,096
Specifies the rx queue size (number rx descriptors) for
dpdk ports. The value must be a power of 2, less than 4096
and supported by the hardware of the device being
configured. If not specified or an incorrect value is
specified, 2048 rx descriptors will be used by default.
options : n_txq_desc
: optional string, containing an integer, in
range 1 to 4,096
Specifies the tx queue size (number tx descriptors) for
dpdk ports. The value must be a power of 2, less than 4096
and supported by the hardware of the device being
configured. If not specified or an incorrect value is
specified, 2048 tx descriptors will be used by default.
options : dpdk-vf-mac
: optional string
Ethernet address to set for this VF interface. If unset
then the default MAC address is used:
• For most drivers, the default MAC address assigned
by their hardware.
• For bifurcated drivers, the MAC currently used by
the kernel netdevice.
This option may only be used with dpdk VF representors.
EMC (Exact Match Cache) Configuration:
These settings controls behaviour of EMC lookups/insertions for
packets received from the interface.
other_config : emc-enable
: optional string, either true
or false
Specifies if Exact Match Cache (EMC) should be used while
processing packets received from this interface. If true,
other_config:emc-insert-inv-prob
will have effect on this
interface.
Defaults to true.
MTU:
The MTU (maximum transmission unit) is the largest amount of data
that can fit into a single Ethernet frame. The standard Ethernet
MTU is 1500 bytes. Some physical media and many kinds of virtual
interfaces can be configured with higher MTUs.
A client may change an interface MTU by filling in mtu_request
.
Open vSwitch then reports in mtu
the currently configured value.
mtu
: optional integer
The currently configured MTU for the interface.
This column will be empty for an interface that does not
have an MTU as, for example, some kinds of tunnels do not.
Open vSwitch sets this column's value, so other clients
should treat it as read-only.
mtu_request
: optional integer, at least 1
Requested MTU (Maximum Transmission Unit) for the
interface. A client can fill this column to change the MTU
of an interface.
RFC 791 requires every internet module to be able to
forward a datagram of 68 octets without further
fragmentation. The maximum size of an IP packet is 65535
bytes.
If this is not set and if the interface has internal
type,
Open vSwitch will change the MTU to match the minimum of
the other interfaces in the bridge.
Interface Status:
Status information about interfaces attached to bridges, updated
every 5 seconds. Not all interfaces have all of these properties;
virtual interfaces don't have a link speed, for example. Non-
applicable columns will have empty values.
admin_state
: optional string, either down
or up
The administrative state of the physical network link.
link_state
: optional string, either down
or up
The observed state of the physical network link. This is
ordinarily the link's carrier status. If the interface's
Port
is a bond configured for miimon monitoring, it is
instead the network link's miimon status.
link_resets
: optional integer
The number of times Open vSwitch has observed the
link_state
of this Interface
change.
link_speed
: optional integer
The negotiated speed of the physical network link. Valid
values are positive integers greater than 0.
duplex
: optional string, either full
or half
The duplex mode of the physical network link.
lacp_current
: optional boolean
Boolean value indicating LACP status for this interface.
If true, this interface has current LACP information about
its LACP partner. This information may be used to monitor
the health of interfaces in a LACP enabled port. This
column will be empty if LACP is not enabled.
status
: map of string-string pairs
Key-value pairs that report port status. Supported status
values are type
-dependent; some interfaces may not have a
valid status:driver_name
, for example.
status : driver_name
: optional string
The name of the device driver controlling the network
adapter.
status : driver_version
: optional string
The version string of the device driver controlling the
network adapter.
status : firmware_version
: optional string
The version string of the network adapter's firmware, if
available.
status : source_ip
: optional string
The source IP address used for an IPv4/IPv6 tunnel end-
point, such as gre
.
status : tunnel_egress_iface
: optional string
Egress interface for tunnels. Currently only relevant for
tunnels on Linux systems, this column will show the name
of the interface which is responsible for routing traffic
destined for the configured options:remote_ip
. This could
be an internal interface such as a bridge port.
status : tunnel_egress_iface_carrier
: optional string, either
down
or up
Whether carrier is detected on status:tunnel_egress_iface
.
dpdk:
DPDK specific interface status options.
status : port_no
: optional string
DPDK port ID.
status : numa_id
: optional string
NUMA socket ID to which an Ethernet device is connected.
status : min_rx_bufsize
: optional string
Minimum size of RX buffer.
status : max_rx_pktlen
: optional string
Maximum configurable length of RX pkt.
status : max_rx_queues
: optional string
Maximum number of RX queues.
status : max_tx_queues
: optional string
Maximum number of TX queues.
status : max_mac_addrs
: optional string
Maximum number of MAC addresses.
status : max_hash_mac_addrs
: optional string
Maximum number of hash MAC addresses for MTA and UTA.
status : max_vfs
: optional string
Maximum number of hash MAC addresses for MTA and UTA.
Maximum number of VFs.
status : max_vmdq_pools
: optional string
Maximum number of VMDq pools.
status : if_type
: optional string
Interface type ID according to IANA ifTYPE MIB
definitions.
status : if_descr
: optional string
Interface description string.
status : pci-vendor_id
: optional string
Vendor ID of PCI device.
status : pci-device_id
: optional string
Device ID of PCI device.
Statistics:
Key-value pairs that report interface statistics. The current
implementation updates these counters periodically. The update
period is controlled by other_config:stats-update-interval
in the
Open_vSwitch
table. Future implementations may update them when
an interface is created, when they are queried (e.g. using an
OVSDB select
operation), and just before an interface is deleted
due to virtual interface hot-unplug or VM shutdown, and perhaps
at other times, but not on any regular periodic basis.
These are the same statistics reported by OpenFlow in its struct
ofp_port_stats
structure. If an interface does not support a
given statistic, then that pair is omitted.
Statistics: Successful transmit and receive counters:
statistics : rx_packets
: optional integer
Number of received packets.
statistics : rx_bytes
: optional integer
Number of received bytes.
statistics : tx_packets
: optional integer
Number of transmitted packets.
statistics : tx_bytes
: optional integer
Number of transmitted bytes.
Statistics: Receive errors:
statistics : rx_dropped
: optional integer
Number of packets dropped by RX.
statistics : rx_frame_err
: optional integer
Number of frame alignment errors.
statistics : rx_over_err
: optional integer
Number of packets with RX overrun.
statistics : rx_crc_err
: optional integer
Number of CRC errors.
statistics : rx_errors
: optional integer
Total number of receive errors, greater than or equal to
the sum of the above.
Statistics: Transmit errors:
statistics : tx_dropped
: optional integer
Number of packets dropped by TX.
statistics : collisions
: optional integer
Number of collisions.
statistics : tx_errors
: optional integer
Total number of transmit errors, greater than or equal to
the sum of the above.
Ingress Policing:
These settings control ingress policing for packets received on
this interface. On a physical interface, this limits the rate at
which traffic is allowed into the system from the outside; on a
virtual interface (one connected to a virtual machine), this
limits the rate at which the VM is able to transmit.
Policing is a simple form of quality-of-service that simply drops
packets received in excess of the configured rate. Due to its
simplicity, policing is usually less accurate and less effective
than egress QoS (which is configured using the QoS
and Queue
tables).
Policing settings can be set with byte rate or packet rate, and
they can be configured together, in which case they take effect
together, that means the smaller speed limit of them is in
effect.
Currently, byte rate policing is implemented on Linux and OVS
with DPDK, while packet rate policing is only implemented on
Linux. Both Linux and OVS DPDK implementations use a simple
``token bucket'' approach.
Byte rate policing:
• The size of the bucket corresponds to
ingress_policing_burst
. Initially the bucket is
full.
• Whenever a packet is received, its size (converted
to tokens) is compared to the number of tokens
currently in the bucket. If the required number of
tokens are available, they are removed and the
packet is forwarded. Otherwise, the packet is
dropped.
• Whenever it is not full, the bucket is refilled
with tokens at the rate specified by
ingress_policing_rate
.
Packet rate policing:
• The size of the bucket corresponds to
ingress_policing_kpkts_burst
. Initially the bucket
is full.
• Whenever a packet is received, it will consume one
token from the current bucket. If the token is
available in the bucket, it's removed and the
packet is forwarded. Otherwise, the packet is
dropped.
• Whenever it is not full, the bucket is refilled
with tokens at the rate specified by
ingress_policing_kpkts_rate
.
Policing interacts badly with some network protocols, and
especially with fragmented IP packets. Suppose that there is
enough network activity to keep the bucket nearly empty all the
time. Then this token bucket algorithm will forward a single
packet every so often, with the period depending on packet size
and on the configured rate. All of the fragments of an IP packets
are normally transmitted back-to-back, as a group. In such a
situation, therefore, only one of these fragments will be
forwarded and the rest will be dropped. IP does not provide any
way for the intended recipient to ask for only the remaining
fragments. In such a case there are two likely possibilities for
what will happen next: either all of the fragments will
eventually be retransmitted (as TCP will do), in which case the
same problem will recur, or the sender will not realize that its
packet has been dropped and data will simply be lost (as some
UDP-based protocols will do). Either way, it is possible that no
forward progress will ever occur.
ingress_policing_rate
: integer, at least 0
Maximum rate for data received on this interface, in kbps.
Data received faster than this rate is dropped. Set to 0
(the default) to disable policing.
ingress_policing_kpkts_rate
: integer, at least 0
Maximum rate for data received on this interface, in kpps
(1 kpps is 1000 pps). Data received faster than this rate
is dropped. Set to 0
(the default) to disable policing.
ingress_policing_burst
: integer, at least 0
Maximum burst size for data received on this interface, in
kb. The default burst size if set to 0
is 8000 kbit. This
value has no effect if ingress_policing_rate
is 0
.
Specifying a larger burst size lets the algorithm be more
forgiving, which is important for protocols like TCP that
react severely to dropped packets. The burst size should
be at least the size of the interface's MTU. Specifying a
value that is numerically at least as large as 80% of
ingress_policing_rate
helps TCP come closer to achieving
the full rate.
ingress_policing_kpkts_burst
: integer, at least 0
Maximum burst size for data received on this interface, in
kpkts (1 kpkts is 1000 packets). The default burst size if
set to 0
is 16 kpkts. This value has no effect if
ingress_policing_kpkts_rate
is 0
.
Specifying a larger burst size lets the algorithm be more
forgiving, which is important for protocols like TCP that
react severely to dropped packets. Specifying a value that
is numerically at least as large as 80% of
ingress_policing_kpkts_rate
helps TCP come closer to
achieving the full rate.
Bidirectional Forwarding Detection (BFD):
BFD, defined in RFC 5880 and RFC 5881, allows point-to-point
detection of connectivity failures by occasional transmission of
BFD control messages. Open vSwitch implements BFD to serve as a
more popular and standards compliant alternative to CFM.
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 is willing to transmit them.
By default, Open vSwitch uses a detection multiplier of three,
meaning that an endpoint signals a connectivity fault if three
consecutive BFD control messages fail to arrive. In the case of a
unidirectional connectivity issue, the system not receiving BFD
control messages signals the problem to its peer in the messages
it transmits.
The Open vSwitch implementation of BFD aims to comply faithfully
with RFC 5880 requirements. Open vSwitch does not implement the
optional Authentication or ``Echo Mode'' features.
OVS 2.13 and earlier intercepted and processed all BFD packets.
OVS 2.14 and later only intercept and process BFD packets
destined to a configured BFD instance, and other BFD packets are
made available to the OVS flow table for forwarding.
BFD Configuration:
A controller sets up key-value pairs in the bfd
column to enable
and configure BFD.
bfd : enable
: optional string, either true
or false
True to enable BFD on this Interface
. If not specified,
BFD will not be enabled by default.
bfd : 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 : 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 : decay_min_rx
: optional string, containing an integer
An alternate receive interval, in milliseconds, that must
be greater than or equal to bfd:min_rx
. The implementation
switches from bfd:min_rx
to bfd:decay_min_rx
when there is
no obvious incoming data traffic at the interface, to
reduce the CPU and bandwidth cost of monitoring an idle
interface. This feature may be disabled by setting a value
of 0. This feature is reset whenever bfd:decay_min_rx
or
bfd:min_rx
changes.
bfd : forwarding_if_rx
: optional string, either true
or false
When true
, traffic received on the Interface
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:min_rx
amount of time. Otherwise, even if traffic are received,
the bfd:forwarding
will be false
.
bfd : 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 connectivty 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 : 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 : bfd_local_src_mac
: optional string
Set to an Ethernet address in the form xx:xx:xx:xx:xx:xx
to set the MAC used as source for transmitted BFD packets.
The default is the mac address of the BFD enabled
interface.
bfd : bfd_local_dst_mac
: optional string
Set to an Ethernet address in the form xx:xx:xx:xx:xx:xx
to set the MAC used as destination for transmitted BFD
packets. The default is 00:23:20:00:00:01
.
bfd : bfd_remote_dst_mac
: optional string
Set to an Ethernet address in the form xx:xx:xx:xx:xx:xx
to set the MAC used for checking the destination of
received BFD packets. Packets with different destination
MAC will not be considered as BFD packets. If not
specified the destination MAC address of received BFD
packets are not checked.
bfd : bfd_src_ip
: optional string
Set to an IPv4 address to set the IP address used as
source for transmitted BFD packets. The default is
169.254.1.1
.
bfd : 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.0
.
bfd : oam
: optional string
Some tunnel protocols (such as Geneve) include a bit in
the header to indicate that the encapsulated packet is an
OAM frame. By setting this to true, BFD packets will be
marked as OAM if encapsulated in one of these tunnels.
bfd : mult
: optional string, containing an integer, in range 1 to
255
The BFD detection multiplier, which defaults to 3. An
endpoint signals a connectivity fault if the given number
of consecutive BFD control messages fail to arrive.
BFD Status:
The switch sets key-value pairs in the bfd_status
column to
report the status of BFD on this interface. When BFD is not
enabled, with bfd:enable
, the switch clears all key-value pairs
from bfd_status
.
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 Interface
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 : flap_count
: optional string, containing an integer,
at least 0
Counts the number of bfd_status:forwarding
flaps since
start. A flap is considered as a change of the
bfd_status:forwarding
value.
Connectivity Fault Management:
802.1ag Connectivity Fault Management (CFM) allows a group of
Maintenance Points (MPs) called a Maintenance Association (MA) to
detect connectivity problems with each other. MPs within a MA
should have complete and exclusive interconnectivity. This is
verified by occasionally broadcasting Continuity Check Messages
(CCMs) at a configurable transmission interval.
According to the 802.1ag specification, each Maintenance Point
should be configured out-of-band with a list of Remote
Maintenance Points it should have connectivity to. Open vSwitch
differs from the specification in this area. It simply assumes
the link is faulted if no Remote Maintenance Points are
reachable, and considers it not faulted otherwise.
When operating over tunnels which have no in_key
, or an in_key
of
flow
. CFM will only accept CCMs with a tunnel key of zero.
cfm_mpid
: optional integer
A Maintenance Point ID (MPID) uniquely identifies each
endpoint within a Maintenance Association. The MPID is
used to identify this endpoint to other Maintenance Points
in the MA. Each end of a link being monitored should have
a different MPID. Must be configured to enable CFM on this
Interface
.
According to the 802.1ag specification, MPIDs can only
range between [1, 8191]. However, extended mode (see
other_config:cfm_extended
) supports eight byte MPIDs.
cfm_flap_count
: optional integer
Counts the number of cfm fault flapps since boot. A flap
is considered to be a change of the cfm_fault
value.
cfm_fault
: optional boolean
Indicates a connectivity fault triggered by an inability
to receive heartbeats from any remote endpoint. When a
fault is triggered on Interface
s participating in bonds,
they will be disabled.
Faults can be triggered for several reasons. Most
importantly they are triggered when no CCMs are received
for a period of 3.5 times the transmission interval.
Faults are also triggered when any CCMs indicate that a
Remote Maintenance Point is not receiving CCMs but able to
send them. Finally, a fault is triggered if a CCM is
received which indicates unexpected configuration.
Notably, this case arises when a CCM is received which
advertises the local MPID.
cfm_fault_status : recv
: none
Indicates a CFM fault was triggered due to a lack of CCMs
received on the Interface
.
cfm_fault_status : rdi
: none
Indicates a CFM fault was triggered due to the reception
of a CCM with the RDI bit flagged. Endpoints set the RDI
bit in their CCMs when they are not receiving CCMs
themselves. This typically indicates a unidirectional
connectivity failure.
cfm_fault_status : maid
: none
Indicates a CFM fault was triggered due to the reception
of a CCM with a MAID other than the one Open vSwitch uses.
CFM broadcasts are tagged with an identification number in
addition to the MPID called the MAID. Open vSwitch only
supports receiving CCM broadcasts tagged with the MAID it
uses internally.
cfm_fault_status : loopback
: none
Indicates a CFM fault was triggered due to the reception
of a CCM advertising the same MPID configured in the
cfm_mpid
column of this Interface
. This may indicate a
loop in the network.
cfm_fault_status : overflow
: none
Indicates a CFM fault was triggered because the CFM module
received CCMs from more remote endpoints than it can keep
track of.
cfm_fault_status : override
: none
Indicates a CFM fault was manually triggered by an
administrator using an ovs-appctl
command.
cfm_fault_status : interval
: none
Indicates a CFM fault was triggered due to the reception
of a CCM frame having an invalid interval.
cfm_remote_opstate
: optional string, either down
or up
When in extended mode, indicates the operational state of
the remote endpoint as either up
or down
. See
other_config:cfm_opstate
.
cfm_health
: optional integer, in range 0 to 100
Indicates the health of the interface as a percentage of
CCM frames received over 21 other_config:cfm_interval
s.
The health of an interface is undefined if it is
communicating with more than one cfm_remote_mpids
. It
reduces if healthy heartbeats are not received at the
expected rate, and gradually improves as healthy
heartbeats are received at the desired rate. Every 21
other_config:cfm_interval
s, the health of the interface is
refreshed.
As mentioned above, the faults can be triggered for
several reasons. The link health will deteriorate even if
heartbeats are received but they are reported to be
unhealthy. An unhealthy heartbeat in this context is a
heartbeat for which either some fault is set or is out of
sequence. The interface health can be 100 only on
receiving healthy heartbeats at the desired rate.
cfm_remote_mpids
: set of integers
When CFM is properly configured, Open vSwitch will
occasionally receive CCM broadcasts. These broadcasts
contain the MPID of the sending Maintenance Point. The
list of MPIDs from which this Interface
is receiving
broadcasts from is regularly collected and written to this
column.
other_config : cfm_interval
: optional string, containing an
integer
The interval, in milliseconds, between transmissions of
CFM heartbeats. Three missed heartbeat receptions indicate
a connectivity fault.
In standard operation only intervals of 3, 10, 100, 1,000,
10,000, 60,000, or 600,000 ms are supported. Other values
will be rounded down to the nearest value on the list.
Extended mode (see other_config:cfm_extended
) supports any
interval up to 65,535 ms. In either mode, the default is
1000 ms.
We do not recommend using intervals less than 100 ms.
other_config : cfm_extended
: optional string, either true
or
false
When true
, the CFM module operates in extended mode. This
causes it to use a nonstandard destination address to
avoid conflicting with compliant implementations which may
be running concurrently on the network. Furthermore,
extended mode increases the accuracy of the cfm_interval
configuration parameter by breaking wire compatibility
with 802.1ag compliant implementations. And extended mode
allows eight byte MPIDs. Defaults to false
.
other_config : cfm_demand
: optional string, either true
or false
When true
, and other_config:cfm_extended
is true, the CFM
module operates in demand mode. When in demand mode,
traffic received on the Interface
is used to indicate
liveness. CCMs are still transmitted and received. At
least one CCM must be received every 100 *
other_config:cfm_interval
amount of time. Otherwise, even
if traffic are received, the CFM module will raise the
connectivity fault.
Demand mode has a couple of caveats:
• To ensure that ovs-vswitchd has enough time to pull
statistics from the datapath, the fault detection
interval is set to 3.5 *
MAX(other_config:cfm_interval
, 500) ms.
• To avoid ambiguity, demand mode disables itself
when there are multiple remote maintenance points.
• If the Interface
is heavily congested, CCMs
containing the other_config:cfm_opstate
status may
be dropped causing changes in the operational state
to be delayed. Similarly, if CCMs containing the
RDI bit are not received, unidirectional link
failures may not be detected.
other_config : cfm_opstate
: optional string, either down
or up
When down
, the CFM module marks all CCMs it generates as
operationally down without triggering a fault. This allows
remote maintenance points to choose not to forward traffic
to the Interface
on which this CFM module is running.
Currently, in Open vSwitch, the opdown bit of CCMs affects
Interface
s participating in bonds, and the bundle OpenFlow
action. This setting is ignored when CFM is not in
extended mode. Defaults to up
.
other_config : cfm_ccm_vlan
: optional string, containing an
integer, in range 1 to 4,095
When set, the CFM module will apply a VLAN tag to all CCMs
it generates with the given value. May be the string
random
in which case each CCM will be tagged with a
different randomly generated VLAN.
other_config : cfm_ccm_pcp
: optional string, containing an
integer, in range 1 to 7
When set, the CFM module will apply a VLAN tag to all CCMs
it generates with the given PCP value, the VLAN ID of the
tag is governed by the value of other_config:cfm_ccm_vlan
.
If other_config:cfm_ccm_vlan
is unset, a VLAN ID of zero
is used.
Bonding Configuration:
other_config : lacp-port-id
: optional string, containing an
integer, in range 1 to 65,535
The LACP port ID of this Interface
. Port IDs are used in
LACP negotiations to identify individual ports
participating in a bond.
other_config : lacp-port-priority
: optional string, containing an
integer, in range 1 to 65,535
The LACP port priority of this Interface
. In LACP
negotiations Interface
s with numerically lower priorities
are preferred for aggregation.
other_config : lacp-aggregation-key
: optional string, containing
an integer, in range 1 to 65,535
The LACP aggregation key of this Interface
. Interface
s
with different aggregation keys may not be active within a
given Port
at the same time.
Virtual Machine Identifiers:
These key-value pairs specifically apply to an interface that
represents a virtual Ethernet interface connected to a virtual
machine. These key-value pairs should not be present for other
types of interfaces. Keys whose names end in -uuid
have values
that uniquely identify the entity in question. For a Citrix
XenServer hypervisor, these values are UUIDs in RFC 4122 format.
Other hypervisors may use other formats.
external_ids : attached-mac
: optional string
The MAC address programmed into the ``virtual hardware''
for this interface, in the form xx:xx:xx:xx:xx:xx. For
Citrix XenServer, this is the value of the MAC
field in
the VIF record for this interface.
external_ids : iface-id
: optional string
A system-unique identifier for the interface. On
XenServer, this will commonly be the same as
external_ids:xs-vif-uuid
.
external_ids : iface-status
: optional string, either active
or
inactive
Hypervisors may sometimes have more than one interface
associated with a given external_ids:iface-id
, only one of
which is actually in use at a given time. For example, in
some circumstances XenServer has both a ``tap'' and a
``vif'' interface for a single external_ids:iface-id
, but
only uses one of them at a time. A hypervisor that behaves
this way must mark the currently in use interface active
and the others inactive
. A hypervisor that never has more
than one interface for a given external_ids:iface-id
may
mark that interface active
or omit external_ids:iface-
status
entirely.
During VM migration, a given external_ids:iface-id
might
transiently be marked active
on two different hypervisors.
That is, active
means that this external_ids:iface-id
is
the active instance within a single hypervisor, not in a
broader scope. There is one exception: some hypervisors
support ``migration'' from a given hypervisor to itself
(most often for test purposes). During such a
``migration,'' two instances of a single
external_ids:iface-id
might both be briefly marked active
on a single hypervisor.
external_ids : xs-vif-uuid
: optional string
The virtual interface associated with this interface.
external_ids : xs-network-uuid
: optional string
The virtual network to which this interface is attached.
external_ids : vm-id
: optional string
The VM to which this interface belongs. On XenServer, this
will be the same as external_ids:xs-vm-uuid
.
external_ids : xs-vm-uuid
: optional string
The VM to which this interface belongs.
Auto Attach Configuration:
Auto Attach configuration for a particular interface.
lldp : enable
: optional string, either true
or false
True to enable LLDP on this Interface
. If not specified,
LLDP will be disabled by default.
Flow control Configuration:
Ethernet flow control defined in IEEE 802.1Qbb provides link
level flow control using MAC pause frames. Implemented only for
interfaces with type dpdk
.
options : rx-flow-ctrl
: optional string, either true
or false
Set to true
to enable Rx flow control on physical ports.
By default, Rx flow control is disabled.
options : tx-flow-ctrl
: optional string, either true
or false
Set to true
to enable Tx flow control on physical ports.
By default, Tx flow control is disabled.
options : flow-ctrl-autoneg
: optional string, either true
or
false
Set to true
to enable flow control auto negotiation on
physical ports. By default, auto-neg is disabled.
Link State Change detection mode:
options : dpdk-lsc-interrupt
: optional string, either true
or
false
Set this value to true
to configure interrupt mode for
Link State Change (LSC) detection instead of poll mode for
the DPDK interface.
If this value is not set, poll mode is configured.
This parameter has an effect only on netdev dpdk
interfaces.
Common Columns:
The overall purpose of these columns is described under Common
Columns
at the beginning of this document.
other_config
: map of string-string pairs
external_ids
: map of string-string pairs