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.
- 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.
- srv6
- Segment Routing IPv6 (SRv6) tunnel encapsulates L3 traffic as "IPv6
in IPv6" or "IPv4 in IPv6" with Segment Routing Header
(SRH) defined in RFC 8754. The segment list in SRH can be set using a SRv6
specific option.
Tunnel Options:
These options apply to interfaces with type of
geneve, bareudp, gre, ip6gre, vxlan, and
srv6.
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 and srv6 tunnels.
Hence it is not considered while identifying bareudp or srv6 tunnels.
- 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_srcfield. 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 and srv6. 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 and VXLAN) or 32-bit (for GRE) 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 and srv6. 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 and VXLAN) or 32-bit (for GRE) 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 based
tunnel protocols (Geneve, VXLAN).
- 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: 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. When unset (the default value), checksum computing for
outgoing packets is enabled for UDP IPv6 tunnels, and disabled for GRE and
IPv4 UDP tunnels. When set to false, no checksums will be computed
for outgoing tunnel encapsulation headers. When true, checksums
will be computed for all outgoing tunnel encapsulation headers. Checksums
present on incoming packets will be validated regardless of this setting.
Incoming packets without a checksum will also be accepted 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 and vxlan 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.
Tunnel Options: srv6 only:
- options :
srv6_segs: optional string
- Specifies the segment list in Segment Routing Header (SRH). It consists of
a comma-separated list of segments represented in IPv6 format, e.g.
"fc00:100::1,fc00:200::1,fc00:300::1". Note that the first
segment must be the same as options:remote_ip.
- options :
srv6_flowlabel: optional string, one of compute, copy, or
zero
- Optional. This option controls how flowlabel in outer IPv6 header is
configured. It gives the benefit of IPv6 flow label based load balancing,
which is supported by some popular vendor appliances. Like
net.ipv6.seg6_flowlabel sysconfig, it is one of the three values
below:
- By default, or if this option is copy, copy the flowlabel of inner
IPv6 header to the flowlabel of outer IPv6 header. If inner header is not
IPv6, it is set to 0.
- If this option is zero, simply set flowlabel to 0.
- If this option is compute, set flowlabel to a hash over the L3/L4
fields of the inner packet.
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 :
vhost-max-queue-pairs: optional string, containing an integer, in range
1 to 128
- The value specifies the maximum number of queue pairs supported by a vHost
device. This is ignored for vhost-user backends, only VDUSE is supported.
Only supported by dpdkvhostuserclient interfaces.
- Default value is 1.
- 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, at least 1
- Specifies the rx queue size (number rx descriptors) for dpdk ports. The
value must be a power of 2 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, at least 1
- Specifies the tx queue size (number tx descriptors) for dpdk ports. The
value must be a power of 2 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.
- options :
rx-steering: optional string, either rss+lacp or
rss
- Configure hardware Rx queue steering policy.
- This option takes one of the following values:
- Distribution of ingress packets in all Rx queues according to the RSS
algorithm. This is the default behaviour.
- Distribution of ingress packets according to the RSS algorithm on all but
the last Rx queue. An extra Rx queue is allocated for LACP packets.
- If the user has already configured multiple options:n_rxq on the
port, an additional one will be allocated for the specified protocols.
Even if the hardware cannot satisfy the requested number of requested Rx
queues, the last Rx queue will be used. If only one Rx queue is available
or if the hardware does not support the rte_flow matchers/actions required
to redirect the selected protocols, custom rx-steering will fall
back to default rss mode.
- This feature is mutually exclusive with other_config:hw-offload as
it may conflict with the offloaded flows. If both are enabled,
rx-steering will fall back to default rss mode.
- This option is only applicable to interfaces with type dpdk.
- other_config
: tx-steering: optional string, either hash or
thread
- Specifies the Tx steering mode for the interface.
- thread enables static (1:1) thread-to-txq mapping when the number
of Tx queues is greater than number of PMD threads, and dynamic (N:1)
mapping if equal or lower. In this mode a single thread can not use more
than 1 transmit queue of a given port.
- hash enables hash-based Tx steering, which distributes the packets
on all the transmit queues based on their 5-tuples hashes.
- Defaults to thread.
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 :
n_rxq: optional string
- Number of Rx queues.
- status :
n_txq: optional string
- Number of Tx queues.
- status :
rx_csum_offload: optional string
- Whether Rx Checksum offload is enabled or not.
- status :
if_type: optional string
- Interface type ID according to IANA ifTYPE MIB definitions.
- status :
if_descr: optional string
- Interface description string.
- status :
bus_info: optional string
- Bus name and bus info such as Vendor ID and Device ID of PCI device.
- status :
dpdk-vf-mac: optional string
- Ethernet address set for this VF interface. Only reported for dpdk VF
representors.
- status :
rx-steering: optional string
- Hardware Rx queue steering policy in use.
- status :
rx_steering_queue: optional string
- ID of rx steering queue. Only reported if rx-steering is supported
by hardware.
- status :
rss_queues: optional string
- IDs of rss queues. Only reported if rx-steering is supported by
hardware.
dpdkvhostuser:
dpdkvhostuser and dpdkvhostuserclient netdev specific interface
status information.
- status :
mode: optional string
- client (connecting) or server (listening) in the socket
communication.
- status :
features: optional string
- virtio features bitmap as per virtio specification.
- status :
num_of_vrings: optional string
- The number of available virtqueues.
- status :
numa: optional string
- The numa id of the device and guest memory.
- status :
socket: optional string
- The path to the socket used for communication.
- status :
status: optional string
- Status of connection to the device.
- status :
vring_n_size: optional string
- Each virtqueue will have it’s size reported, where n is the
virtqueue number from 0..(num_of_vrings-1).
- status :
userspace-tso: optional string
- Whether userspace-tso is enabled or disabled.
afxdp:
AF_XDP specific interface status options.
- status :
xdp-mode: optional string
- XDP mode currently in use. See options:xdp-mode for description of
possible values.
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
Interfaces 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_intervals. 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_intervals,
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 Interfaces 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
Interfaces 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. Interfaces 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.
- 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.
- external_ids
: iface-id: optional string
- A system-unique identifier for the interface.
- 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 hypervisor may have
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
: vm-id: 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 false to configure poll mode for Link State
Change (LSC) detection instead of interrupt mode for the DPDK
interface.
- If this value is not set, interrupt 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