The following text describes the OpenFlow switch configuration parameters divided into the categories according to how they map between OF-CONFIG 1.2 data model and OVSDB (OVS 2.3.1).
For the data model referred in the text, see of-config.yang file. The OVSDB schema description can be found in ovs-vswitchd.conf.db man page.
/capable-switch/resources/port/number
- YANG attributes: ro, uint64
- Note: OF-CONFIG specifies the range similarly as in
INTERFACE:ofport_request
. - OVSDB: Maps to
INTERFACE:ofport
.
/capable-switch/resources/port/requested-number
- YANG attributes: rw, range 1..65279
- OVSDB: Maps to
INTERFACE:ofport_request
.
/capable-switch/resources/port/name
- YANG attributes: ro, string (max 16 characters)
- OVSDB: Maps to
INTERFACE:name
. - Implementation: OVSDB’s name is (immutable) rw, so when creating a new port/interface it must be set. We can get the name from the part of the OF-CONFIG port’s resource-id value, specified as URI.
/capable-switch/resources/port/state/oper-state
- YANG attributes: ro,
up
/down
- OVSDB: Maps to
INTERFACE:link_state
.
/capable-switch/resources/port/state/blocked
- YANG attributes: ro, boolean
- OVSDB:
true
maps to theblocking
(and possiblydisabled
) value ofPORT:stp_state
,false
to other values.
/capable-switch/resources/port/features/current/rate
- YANG attributes: ro, type includes beside the speed also duplex transmission info
- OVSDB: Maps to
INTERFACE:link_speed
andINTERFACE:duplex
.
/capable-switch/resources/port/tunnel/local-endpoint-ipv4-address
- YANG attributes: rw, inet:ipv4-address
- OVSDB: If
INTERFACE:type
isgre
orgre64
, it maps toINTERFACE:local_ip
.
/capable-switch/resources/port/tunnel/remote-endpoint-ipv4-address
- YANG attributes: rw, inet:ipv4-address
- OVSDB: If
INTERFACE:type
isgre
orgre64
, it maps toINTERFACE:remote_ip
.
/capable-switch/resources/port/ipgre-tunnel/local-endpoint-ipv4-address
- YANG attributes: rw, inet:ipv4-address
- OVSDB: If
INTERFACE:type
isgre
orgre64
andINTERFACE:key
is present, it maps toINTERFACE:local_ip
.
/capable-switch/resources/port/ipgre-tunnel/remote-endpoint-ipv4-address
- YANG attributes: rw, inet:ipv4-address
- OVSDB: If
INTERFACE:type
isgre
orgre64
andINTERFACE:key
is present, it maps toINTERFACE:remote_ip
.
/capable-switch/resources/port/ipgre-tunnel/checksum-present
- YANG attributes: rw, boolean, default
true
- OVSDB: Maps to
INTERFACE:csum
.
/capable-switch/resources/port/ipgre-tunnel/key*
- YANG attributes: rw, uint32
- Note: Why is the key-present and key separated?
- Note: OVS allows to change the key – to set an input resp. output key for matching incoming resp. outgoing packets for the tunnel.
- OVSDB: Maps to
INTERFACE:key
.
/capable-switch/resources/port/vxlan-tunnel/local-endpoint-ipv4-address
- YANG attributes: rw, inet:ipv4-address
- OVSDB: If
INTERFACE:type
isvxlan
, it maps toINTERFACE:local_ip
.
/capable-switch/resources/port/vxlan-tunnel/remote-endpoint-ipv4-address
- YANG attributes: rw, inet:ipv4-address
- OVSDB: If
INTERFACE:type
isvxlan
, it maps toINTERFACE:remote_ip
.
/capable-switch/resources/port/vxlan/vni
- YANG attributes: rw, uint32
- Note: OVS allows to change the key/vni – to set an input resp. output key for matching incoming resp. outgoing packets for the tunnel.
- OVSDB: If
INTERFACE:type
isvxlan
, it maps toINTERFACE:key
.
/capable-switch/resources/queue/id
- YANG attributes: rw, mandatory, uint64
- OVSDB: Maps to
QOS:queues
index of the queue.
/capable-switch/resources/queue/port
- YANG attributes: rw, leafref (\rightarrow)
/capable-switch/resources/port/resource-id
- OVSDB: Maps to relation between
PORT(:qos)
,QOS(:queue)
andQUEUE
tables.
/capable-switch/resources/queue/properties/min-rate
- YANG attributes: rw, units 1/10 of a percent
- OVSDB: Maps to
QUEUE:min-rate
, but it must be converted to bits/s.
/capable-switch/resources/queue/properties/max-rate
- YANG attributes: rw, units 1/10 of a percent
- OVSDB: Maps to
QUEUE:max-rate
, but it must be converted to bits/s.
/capable-switch/resources/owned-certificate/certificate
- YANG attributes: rw, string (X.509 in DER format, base64 encoded)
- OVSDB: Indirectly maps to
SSL:certificate
, which is the filename of the PEM file with the certificate.
/capable-switch/resources/flow-table/table-id
- YANG attributes: rw, uint8
- OVSDB: Used as a key in the
BRIDGE:flow_tables
table to addressFLOW_TABLE
record.
/capable-switch/resources/flow-table/name
- YANG attributes: rw, string
- OVSDB: Maps to
FLOW_TABLE:name
.
/capable-switch/resources/flow-table/max-entries
- YANG attributes: ro, uint32
- OVSDB: Maps to
FLOW_TABLE:flow_limit
.
/capable-switch/logical-switches/switch/id
- YANG attributes: rw, key, string
- OVSDB: Maps to
BRIDGE:name
.
/capable-switch/logical-switches/switch/capabilities/max-buffered-packets
- YANG attributes: ro, uint32
- OVSDB: Not provided, set by
PKTBUF_CNT
macro value defined inofproto/pktbuf.c
, 256 by default.
/capable-switch/logical-switches/switch/capabilities/max-tables
- YANG attributes: ro, uint8
- OVSDB: Not provided, always 255.
/capable-switch/logical-switches/switch/capabilities/max-ports
- YANG attributes: ro, uint32
- Note: Has the same description as the
max-tables
parameter. - OVSDB: Not provided, 255 per bridge.
/capable-switch/logical-switches/switch/capabilities/flow-statistics
/capable-switch/logical-switches/switch/capabilities/table-statistics
/capable-switch/logical-switches/switch/capabilities/port-statistics
/capable-switch/logical-switches/switch/capabilities/group-statistics
/capable-switch/logical-switches/switch/capabilities/queue-statistics
/capable-switch/logical-switches/switch/capabilities/reasemble-ip-fragments
/capable-switch/logical-switches/switch/capabilities/block-looping-ports
- YANG attributes: ro, boolean, default
false
- OVSDB: Not provided dynamically,
true
(implemented).
/capable-switch/logical-switches/switch/capabilities/reserved-port-types/type
- YANG attributes: ro, enum, leaf-list
- OVSDB: Not provided dynamically, but OVS supports all types (
all
,controller
,table
,inport
,any
,normal
,flood
).
/capable-switch/logical-switches/switch/capabilities/group-types/type
- YANG attributes: ro, enum, leaf-list
- OVSDB: Not provided dynamically, but OVS supports all types (
all
,select
,indirect
,fast-failover
).
/capable-switch/logical-switches/switch/capabilities/group-capabilities/capability
- YANG attributes: ro, enum, leaf-list
- OVSDB: Not provided dynamically, OVS supports
select-weight
,select-liveness
andchaining
. Thechaining-check
is not supported.
/capable-switch/logical-switches/switch/capabilities/action-types/type
- YANG attributes: ro, enum, leaf-list
- OVSDB: Not provided dynamically, OVS supports
output
,set-mpls-ttl
,dec-mpls-ttl
,push-vlan
,pop-vlan
,push-mpls
,pop-mpls
,set-queue
,group
,set-nw-ttl
,dec-nw-ttl
andset-field
. Thecopy-ttl-out
andcopy-ttl-in
actions are not supported.
/capable-switch/logical-switches/switch/capabilities/instruction-types/type
- YANG attributes: ro, enum, leaf-list
- OVSDB: Not provided dynamically, OVS supports all types (
apply-actions
,clear-actions
,write-actions
,write-metadata
,goto-table
).
/capable-switch/logical-switches/switch/datapath-id
- YANG attributes: rw, mandatory, pattern [0-9a-fA-F]2(:[0-9a-fA-F]2)7
- OVSDB: Maps directly to
BRIDGE:other_config:datapath-id
(different format, OVSDB accepts 16 HEX digits, so remove semicolons).
/capable-switch/logical-switches/switch/lost-connection-behavior
- YANG attributes: rw, enum
failSecureMode
/failStandaloneMode
, defaultfailSecureMode
- OVSDB: Maps directly to
BRIDGE:fail_mode
.
/capable-switch/logical-switches/switch/controllers/controller/ip-address
- YANG attributes: rw, inet:ip-address, mandatory
- OVSDB: Maps to the
ip
part of theCONTROLLER:target
.
/capable-switch/logical-switches/switch/controllers/controller/port
- YANG attributes: rw, inet:port-number, default 6633
- OVSDB: Maps to the
port
part of theCONTROLLER:target
.
/capable-switch/logical-switches/switch/controllers/controller/local-ip-address
- YANG attributes: rw,
- OVSDB: In case of in-band connection mode, it maps to the
CONTROLLER:local_ip
.
/capable-switch/logical-switches/switch/controllers/controller/protocol
- YANG attributes: rw, enum
tcp
/tls
, defaulttls
- Note: In OVSDB,
tls
value maps tossl
. - OVSDB: Maps to the
protocol
part of theCONTROLLER:target
.
/capable-switch/logical-switches/switch/controllers/controller/state/connection-state
- YANG attributes: ro, enum
up
/down
- OVSDB: Maps directly to
CONTROLLER:is_connected
(true
(\rightarrow)up
andfalse
(\rightarrow)down
).
/capable-switch/logical-switches/resources/port
- YANG attributes: rw, leaf-list, leafref (\rightarrow)
/capable-switch/resources/port/resource-id
- OVSDB: Maps to relation between
BRIDGE(:ports)
andPORT
tables.
/capable-switch/logical-switches/resources/queue
- YANG attributes: rw, leaf-list, leafref (\rightarrow)
/capable-switch/resources/queue/resource-id
- OVSDB: Maps to relation between
BRIDGE(:ports)
,PORT(:qos)
,QOS(:queues)
andQUEUE
tables. This is duplicated information since/capable-switch/resources/queue/port
assigns the queue to a specific port.
/capable-switch/logical-switches/resources/flow-table
- YANG attributes: rw, leaf-list, leafref (\rightarrow)
/capable-switch/resources/flow-table/resource-id
- OVSDB: Maps to relation between
BRIDGE(:flow_tables)
andFLOW_TABLE
tables.
/capable-switch/resources/port/current-rate
- YANG attributes: ro, when “../features/current/rate=‘other’”
- Implementation: Can be read using ovs-ofctl(8) or possibly using iftop(8) or ethtool(8).
- OpenFlow spec.: Contained in the
ofp_port
structure. - Note: Not sure if “../features/current/rate” can be
other
, also not clear if this value represents current rate of the data or currently set link speed.
/capable-switch/resources/port/max-rate
- YANG attributes: ro, when “../features/current/rate=‘other’”
- Implementation: Can be read using ovs-ofctl(8) or possibly using ethtool(8).
- OpenFlow spec.: Contained in the
ofp_port
structure. - Note: Not sure if “../features/current/rate” can be
other
, also not clear if this value represents max rate of the data (i.e. currently set link speed) or maximum possible link speed of the interface.
/capable-switch/resources/port/configuration/admin-state
- YANG attributes: rw,
up
/down
, defaultup
- OVSDB:
INTERFACE:admin_state
is ro. - Implementation: Use ifconfig(8).
/capable-switch/resources/port/configuration/no-receive
- YANG attributes: rw, boolean, default
false
- Description: Drop all received packets.
- Implementation: Can be read and set using ovs-ofctl(8).
- OpenFlow spec.: Contained in the
ofp_port
structure asOFPPC_NO_RECV
. - Note: Maybe use iptables(8) to avoid the OpenFlow protocol.
/capable-switch/resources/port/configuration/no-forward
- YANG attributes: rw, boolean, default
false
- Description: Drop all packets being forwarded to this port/interface.
- Implementation: Can be read and set using ovs-ofctl(8).
- OpenFlow spec.: Contained in the
ofp_port
structure asOFPPC_NO_FWD
.
/capable-switch/resources/port/configuration/no-packet-in
- YANG attributes: rw, boolean, default
false
- Description: Do not ask controller on unknown packets/flows.
- Implementation: Can be read and set using ovs-ofctl(8).
- OpenFlow spec.: Contained in the
ofp_port
structure asOFPPC_NO_PACKET_IN
. - Note: This must be internally implemented by the switch.
/capable-switch/resources/port/state/live
- OpenFlow spec.: Contained in the
ofp_port
structure asOFPPC_LIVE
. - Note: OVS manages fast failover automatically and does not provide information about interface aliveness outside.
/capable-switch/resources/port/features/advertised-peer/*
- YANG attributes: ro, boolean
- Implementation: Use ovs-ofctl(8) or possibly ethtool(8).
- OpenFlow spec.: related to
peer
from theofp_port
structure. - Note: Description is a little confusing.
/capable-switch/resources/port/features/current/auto-negotiate
- YANG attributes: ro, boolean
- Implementation: Use ovs-ofctl(8) or possibly ethtool(8).
- OpenFlow spec.: Contained in the
ofp_port
structure asOFPPC_AUTONEG
. - Note: Description is a little confusing.
/capable-switch/resources/port/features/current/medium
- YANG attributes: ro, fiber/copper
- Implementation: Use ovs-ofctl(8) or possibly ethtool(8).
- OpenFlow spec.: Contained in the
ofp_port
structure.
/capable-switch/resources/port/features/advertised/rate
- YANG attributes: ro, leaf-list, type includes beside the speed also duplex transmission info
- Implementation: Use ovs-ofctl(8) or possibly ethtool(8).
- OpenFlow spec.: Contained in the
ofp_port
structure.
/capable-switch/resources/port/features/advertised/auto-negotiate
/capable-switch/resources/port/features/supported/auto-negotiate
- YANG attributes: ro, boolean
- Implementation: Use ovs-ofctl(8) or possibly ethtool(8).
- OpenFlow spec.: Contained in the
ofp_port
structure.
/capable-switch/logical-switches/switch/controllers/controller/state/local-ip-address-in-use
/capable-switch/logical-switches/switch/controllers/controller/state/local-port-in-use
- YANG attributes: ro
- Implementation: Can be parsed from the netstat(8) output.
/capable-switch/id
- YANG attributes: rw, string, mandatory
- Note: We’re not clear about the purpose of this. The capable-switch is, from the controller point of view, identified by the IP address:port.
- Implementation: Do nothing, the value is useless.
/config-version
- YANG attributes: ro, string
- Implementation: Always “1.2”.
/capable-switch/configuration-points/configuration-point
- YANG attributes: rw, list
- Note: Specification of the controller (IP and port) to connect to.
May be useful when the switch is inside a private network (behind the NAT) and controller is not able to connect to it.
- Implementation: Do not implement, it duplicates NETCONF call-home mechanism.
- OVSDB: There is something similar (
MANAGER
table), but it is used to connect to the OVSDB clients via JSON-RPC.
/capable-switch/resources/*/resource-id
- YANG attributes: rw, inet:uri
- Implementations: Just for referencing from logical switches
/capable-switch/resources/queue/properties/experimenter-*
- YANG attributes: rw
- Implementation: Only a data inside the datastore.
/capable-switch/logical-switches/switch/enabled
- YANG attributes: rw, boolean, default
false
- Implementation: Add/remove the complete corresponding
BRIDGE
record to/from OVSDB.
/capable-switch/logical-switches/switch/controllers/controller/id
- YANG attributes: rw, string
- Implementation: Nothing is needed, it is just an id.
/capable-switch/resources/port/*/*-endpoint-ipv6|mac-address
- YANG attributes: rw, yang:ipv6-address (|) yang:mac-address
- OVSDB: OVS does not support IPv6 nor MAC tunnel endpoints.
/capable-switch/resources/port/ipgre-tunnel/sequence-number-present
- YANG attributes: rw, boolean, default
false
- OVSDB: Internally handled by OVS, but not configurable.
/capable-switch/resources/port/vxlan-tunnel/vni-valid
- YANG attributes: rw, boolean, default
true
- OVSDB: Not supported by OVS.
/capable-switch/resources/port/vxlan-tunnel/udp-source-port
- YANG attributes: rw, inet:port-number
- OVSDB: Port is always chosen dynamically by OVS on per-flow basis.
/capable-switch/resources/port/vxlan-tunnel/udp-dest-port
- YANG attributes: rw, inet:port-number, default 4789
- OVSDB: OVS always use the default port 4789 (not configurable).
/capable-switch/resources/port/vxlan-tunnel/udp-checksum
- YANG attributes: rw, boolean, default
false
- OVSDB: Not supported.
/capable-switch/resources/port/nvgre-tunnel/*
- YANG attributes: rw
- OVSDB: NVGRE tunnels are not supported.
/capable-switch/resources/flow-table/metadata-match
- YANG attributes: rw, hex-binary
- Description: Indicates bits of the
metadata
field on which the flow table can match on. - Note: OVS does not support any limit of
metadata
for the whole flow table, it uses all 64b.
/capable-switch/resources/flow-table/metadata-write
- YANG attributes: rw, hex-binary
- Description: Indicates bits of the
metadata
field on which the flow table can write using thewrite-metadata
instruction. - Note: OVS does not support any limit of
metadata
for the whole flow table, it uses all 64b.
/capable-switch/resources/flow-table/properties/instructions/type
- YANG attributes: rw, OFInstructionType
- Description: The list of instruction types supported by this table for regular flow entries.
- Note: All implemented instruction types of OVS can be used on every table.
/capable-switch/resources/flow-table/properties/instructions-miss/type
- YANG attributes: rw, OFInstructionType
- Description: The list of all instruction types supported by this table on table-miss.
- Note: Limiting of this set is not supported by OVS.
/capable-switch/resources/flow-table/properties/next-tables/table-id
- YANG attributes: rw, OFInstructionType
- Description: An array of reachable tables from the current table.
- Note: All tables with greater
table-id
are reachable in OVS.
/capable-switch/resources/flow-table/properties/next-tables-miss/table-id
- YANG attributes: rw, OFInstructionType
- Description: An array of reachable tables from the current table on table-miss.
- Note: Modification of this set is not supported by OVS.
/capable-switch/resources/flow-table/properties/write-actions/type
- YANG attributes: rw, OFInstructionType
- Description: The list of all write action types supported by this table for regular flow entries.
- Note: All implemented write action types are supported by all tables in OVS.
/capable-switch/resources/flow-table/properties/write-actions-miss/type
- YANG attributes: rw, OFInstructionType
- Description: The list of all write action types supported by this table for regular flow entries on table-miss.
- Note: Modification of this set is not supported by OVS.
/capable-switch/resources/flow-table/properties/apply-actions/type
- YANG attributes: rw, OFInstructionType
- Description: The list of all apply action types supported by the flow table for regular flow entries.
- Note: All implemented apply action types are supported by all tables in OVS.
/capable-switch/resources/flow-table/properties/apply-actions-miss/type
- YANG attributes: rw, OFInstructionType
- Description: The list of all apply action types supported by the flow table for regular flow entries on table-miss.
- Note: Modification of this set is not supported by OVS.
/capable-switch/resources/flow-table/properties/matches/type
- YANG attributes: rw, OFMatchFieldType
- Description: The list of all match types supported by this table for regular flow entries.
- Note: All implemented match types are supported by all tables in OVS.
/capable-switch/resources/flow-table/properties/wildcards/type
- YANG attributes: rw, OFMatchFieldType
- Description: The list of all fields for which the table supports wildcarding.
- Note: The set of fields that supports wildcarding is fixed and cannot be limited in OVS.
/capable-switch/resources/flow-table/properties/write-setfields/type
- YANG attributes: rw, OFMatchFieldType
- Description: The list of all
set-field
action types supported by this table using write actions for regular flow entries. - Note: The set of fields that supports
set-field
action using write actions is fixed and cannot be limited in OVS.
/capable-switch/resources/flow-table/properties/write-setfields-miss/type
- YANG attributes: rw, OFMatchFieldType
- Description: The list of all
set-field
action types supported by this table using write actions for regular flow entries on table-miss.
/capable-switch/resources/flow-table/properties/apply-setfields/type
- YANG attributes: rw, OFMatchFieldType
- Description: The list of all
set-field
action types supported by the table using apply actions for regular flow entries. actions for regular flow entries. - Note: The set of fields that supports
set-field
action using apply actions is fixed and cannot be limited in OVS.
/capable-switch/resources/flow-table/properties/apply-setfields-miss/type
- YANG attributes: rw, OFMatchFieldType
- Description: The list of all
set-field
action types supported by the table using apply actions for regular flow entries. actions for regular flow entries on table-miss. - Note: The set of fields that supports
set-field
action using apply actions is fixed and cannot be limited in OVS.
/capable-switch/resources/flow-table/properties/experimenter/experimenter-id
- YANG attributes: rw, OFExperimenterId
- Description: The list of all experimenters supported by the table for regular flow entries.
- Note: Limiting of this set is not supported by OVS.
/capable-switch/resources/flow-table/properties/experimenter-miss/experimenter-id
- YANG attributes: rw, OFExperimenterId
- Description: The list of all experimenters supported by the table on table-miss.
- Note: Limiting of this set is not supported by OVS.
/capable-switch/logical-switches/switch/check-controller-certificate
- YANG attributes: rw, boolean, default
false
- OVSDB: It is not supported to use SSL (TLS) connection but not to check the controller’s certificate. OVSDB can be only set to use TCP (without SSL/TLS) and then the controller’s certificate is not checked.
/capable-switch/logical-switches/switch/controllers/controller/role
- YANG attributes: rw, enum
master
/slave
/equal
, defaultequal
- OVSDB: Could be mapped to
CONTROLLER:role
, but this value is read only. - Note: The value
equal
is mapped to valueother
in OVSDB.
/capable-switch/logical-switches/switch/controllers/controller/local-port
- YANG attributes: rw, inet:port-number
- OVSDB: OVS does not set local port when connecting to the controller. On the other hand, it allows to listen for connections from the service controllers.
/capable-switch/logical-switches/switch/controllers/controller/state/current-version
- YANG attributes: ro, OFOpenFlowVersionType
- OVSDB: Not provided.
/capable-switch/logical-switches/switch/controllers/controller/state/supported-versions
- YANG attributes: ro, OFOpenFlowVersionType, leaf-list
- OVSDB: Not provided.
/capable-switch/logical-switches/resources/certificate
- YANG attributes: rw, leafref (\rightarrow)
/capable-switch/resources/owned-certificate/resource-id
- OVSDB: The OVS daemon uses a single SSL configuration for all bridges (logical switches).
/capable-switch/resources/port/features/current/pause
/capable-switch/resources/port/features/advertised/pause
/capable-switch/resources/port/features/supported/pause
- YANG attributes: ro,
unsupported
/symetric
/asymetric
- Implementation: Use ovs-ofctl(8) or possibly ethtool(8), but the values are only
on
/off
forrx
/tx
. - Note: Listed in OpenFlow 1.3 specification, contained in lib/netdev.h, should be possible to retrieve by ovs-ofctl(8).
- Note: Description is not clear, rather refer to flow-control instead of “pausing transmission”. What do the
symetric
orasymetric
values mean?
/capable-switch/resources/port/features/advertised/medium
/capable-switch/resources/port/features/supported/medium
/capable-switch/resources/port/features/advertised-peer/medium
- YANG attributes: ro, leaf-list,
fiber
/copper
- Note: How the medium can be advertised to the peer? How the interface can advertise/support multiple medium types? The only way how to support multiple medium types at once is a virtual port created by a switch that is able to set multiple types for the port. However, this feature does not make sense at all and even OVS does not support it.
/capable-switch/resources/port/vxlan-tunnel/vni-valid
- YANG attributes: rw, boolean
/capable-switch/resources/owned-certificate/private_key
- YANG attributes: rw, various parameters of the private key
- Note: It is user-very-unfriendly. While the certificate can be set in a quite common format, private key is set using its parameters, which is not well known approach for users. What should happen when a specific parameter of the private key is changed but the certificate is not changed? We are not aware about a library/tool that accepts certificate in this format.
- OVSDB: Indirectly maps to
SSL:private_key
, which is the filename of the PEM file with the private key.
/capable-switch/resources/external-certificate/certificate
- YANG attributes: rw, string (X.509 in DER format, base64 encoded)
- Note: It is not clear if the certificate is directly the certificate of the controller or the certificate of the trustworthy CA.
- OVSDB: In
SSL:ca_cert
OVS stores path to the PEM file with the CA certificate.
FLOW_SAMPLE_COLLECTOR_SET
IPFIX
NETFLOW
SFLOW
- Note: IPFIX configuration can be done via the standalone
ietf-ipfix-psamp
standard YANG data model.
OPEN_VSWITCH
- Note: This table includes a general configuration and status information of the OVS daemon and the system. This data can be available via other data models (e.g.
ietf-system
).
BRIDGE:stp*
PORT:stp*
- Note: Spanning Tree Protocol configuration.
BRIDGE:mcast_snooping_enable
PORT:mcast_snooping_enable
- Note: Multicast snooping (RFC 4541).
BRIDGE:rstp*
PORT:rstp*
- Note: Rapid Spanning Tree Protocol configuration.
PORT:bond*
PORT:lacp*
INTERFACE:lacp*
- Note: Port aggregation (multiple interfaces inside a single port) for load balancing and failover.
PORT->INTERFACE
- Note: Single port can include multiple interfaces in case of bonding (link aggregation). In OF-CONFIG, port is directly an interface.
INTERFACE:mac
INTERFACE:statistics
- Note: More detailed information about the interface (both ro and rw), however they can be set/obtained via
ietf-interfaces
standard YANG data model.
INTERFACE: Tunnel Options
- Note: OVSDB allows more detailed settings of tunnels.
INTERFACE:ingress*
- Note: Ingress policing for the packets received in a specific interface (simple form of QoS).
INTERFACE:bfd*
- Note: Bidirectional Forwarding Detection configuration and status.
INTERFACE:cfm*
- Note: Connectivity Fault Management configuration and status.
INTERFACE: Virtual Machine Identifiers
- Note: Kind of extension for the virtual Ethernet interfaces connected to a virtual machine.
QOS
and QUEUE
- Note: A little bit more detailed configuration of queues than specified in OF-CONFIG.
MIRROR
- Note: OF-CONFIG does not support even SPAN port configuration. OVS allows easy configuration of the traffic mirroring to a specific (SPAN) port.
MANAGER
- Note: Configuration for connecting the OVSDB server to an OVSDB client. Something similar to the NETCONF Call Home mechanism.
FLOW_TABLE:overflow_policy
- Note: Optional string parameter that can be set to
refuse
orevict
. Controls the behavior when flow table reaches theflow_limit
.
FLOW_TABLE:groups
- Note: Set of strings. When
Flow_TABLE:overflow_policy
is set toevict
, the groups parameter controls which flows are chosen for eviction when the flow table would exceed. Otherwise (refuse
), the column has no effect.
FLOW_TABLE:prefixes
- Note: Set of up to 3 strings. It is used for setting of fields which should be used for address prefix tracking that allows the classifier to skip rules with longer than necessary prefixes. This parameter is a performance optimization that results in avoiding of many userspace upcalls in OVS.
FLOW_TABLE:external_ids
- Note: Map of string-string pairs. Used for integration with external frameworks.
After analyzing all configuration and state data of OF-CONFIG, it is clear that not all of them can be set via OVSDB. There are some parameters that can be set/obtained via standard system tools/calls (such as ethtool) and several parameters cannot be mapped at all. Especially the flow table part of the OF-CONFIG data model is weakly supported in OVS. On the other hand, there are several parts of OVS not covered by the OF-CONFIG data model. It is especially the case of the flow monitoring – setting of the sFlow, NetFlow and IPFIX exports. However, for these purposes, there is the standard ietf-ipfix-psamp
YANG data model that can be used.
Open vSwitch database schema, URL: http://openvswitch.org/ovs-vswitchd.conf.db.5.pdf