Bug 2145183
| Summary: | [RFC] Support ovs-db interface level `other_config` | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 9 | Reporter: | Karthik Sundaravel <ksundara> |
| Component: | nmstate | Assignee: | Gris Ge <fge> |
| Status: | CLOSED ERRATA | QA Contact: | Mingyu Shi <mshi> |
| Severity: | unspecified | Docs Contact: | |
| Priority: | high | ||
| Version: | 9.1 | CC: | ferferna, fge, jiji, jishi, network-qe, sfaye, till |
| Target Milestone: | rc | Keywords: | Triaged |
| Target Release: | 9.2 | Flags: | pm-rhel:
mirror+
|
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | nmstate-2.2.4-1.el9 | Doc Type: | If docs needed, set a value |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2023-05-09 07:31:50 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
| Bug Depends On: | 2151455 | ||
| Bug Blocks: | |||
Hi Karthik, The other_config is not supported at interface level yet. Could you provide expected output of `sudo ovs-vsctl list port`? Meanwhile, could you provide use case for us to plan this new feature? Thank you! The ovs-bond has certain parameters that needs to be configured via other-config [1].
The expected output for ovs-bond would be
[root@dell-r640-oss-14 ~]# sudo ovs-vsctl list port
_uuid : b23fcf87-b175-4532-a42c-7f8c22811496
bond_active_slave : "e4:43:4b:5c:96:82"
bond_downdelay : 0
bond_fake_iface : false
bond_mode : balance-slb
bond_updelay : 0
cvlans : []
external_ids : {NM.connection.uuid="98b3bcbf-7be6-4eae-ac31-9738fe309b2a"}
fake_bridge : false
interfaces : [4f598dfb-acb1-4a3d-a7fb-196e59ed40f1, 7c501de1-eb59-4f2c-b21d-0dd212d32fef]
lacp : off
mac : []
name : ovs-bond1
other_config : {bond-miimon-interval="100"}
protected : false
qos : []
rstp_statistics : {}
rstp_status : {}
statistics : {}
status : {}
tag : []
trunks : []
vlan_mode : []
Also its required for Bridges Table, as we have a need to set the "other_config : mac-table-size" for the bridge.
So IMHO the ovs-db object shall be present at global level, bridge level and port level. The BZ description needs this refinement.
[1] https://access.redhat.com/documentation/en-us/red_hat_openstack_platform/17.0/html/director_installation_and_usage/assembly_configuring-overcloud-networking_installing-director-on-the-undercloud#ref_open-vswitch-ovs-bonding-options_network-interface-bonding
The `other_config` is supported at global level. This bug will be used for tacking the effort at interface level(OVS bridge and OVS bond). Patch posted to upstream: https://github.com/nmstate/nmstate/pull/2195 Example on `other_config` of OVS bridge: ```yml interfaces: - name: br0 type: ovs-bridge state: up ovs-db: other_config: in-band-queue: '12' bridge: port: - name: eth1 - name: ovs0 ``` Example on `other_config` of OVS Bond: ```yml - name: br0 type: ovs-bridge state: up bridge: port: - name: bond1 link-aggregation: mode: balance-slb ovs-db: other_config: bond-miimon-interval: "100" port: - name: eth2 - name: eth1 ``` Example on `other_config` of OVS interface: ```yml - name: eth1 type: ethernet state: up ovs-db: other_config: emc-insert-inv-prob: 90 ``` Can you please also include the example usage for DPDK ports. Hi Karthik Sundaravel, Could you show me the output of `sudo ovs-vsctl list port` and `sudo ovs-vsctl list interface` for DPDK `other_config`? I failed to any any valid `other_config` for DPDK in manpage of `ovs-vswitchd.conf.db`. A typical use case for DPDK is
ovs-vsctl set interface dpdk-p0 options:n_rxq=4 other_config:pmd-rxq-affinity="0:3,1:7,3:8"
The output of `sudo ovs-vsctl list interface` is given below.
_uuid : 82578eca-ea51-4d2f-ac86-d64f568eedbb
admin_state : up
bfd : {}
bfd_status : {}
cfm_fault : []
cfm_fault_status : []
cfm_flap_count : []
cfm_health : []
cfm_mpid : []
cfm_remote_mpids : []
cfm_remote_opstate : []
duplex : full
error : []
external_ids : {NM.connection.uuid="bcdc3a9a-a518-4ab6-a128-4ec17d98ba29"}
ifindex : 4575007
ingress_policing_burst: 0
ingress_policing_kpkts_burst: 0
ingress_policing_kpkts_rate: 0
ingress_policing_rate: 0
lacp_current : []
link_resets : 0
link_speed : 10000000000
link_state : up
lldp : {}
mac : []
mac_in_use : "e4:43:4b:5c:96:82"
mtu : 1500
mtu_request : []
name : dpdk1
ofport : 1
ofport_request : []
options : {dpdk-devargs="0000:19:00.2", n_rxq="4"}
other_config : {pmd-rxq-affinity="0:3,1:7,3:8"}
statistics : {mac_local_errors=1, mac_remote_errors=1, ovs_rx_qos_drops=0, ovs_tx_failure_drops=0, ovs_tx_invalid_hwol_drops=0, ovs_tx_mtu_exceeded_drops=0, ovs_tx_qos_drops=0, rx_1024_to_1522_packets=0, rx_128_to_255_packets=22, rx_1523_to_max_packets=0, rx_1_to_64_packets=0, rx_256_to_511_packets=22, rx_512_to_1023_packets=0, rx_65_to_127_packets=0, rx_broadcast_packets=0, rx_bytes=12598, rx_crc_errors=0, rx_dropped=0, rx_errors=0, rx_fragmented_errors=0, rx_illegal_byte_errors=0, rx_jabber_errors=0, rx_length_errors=0, rx_mac_short_dropped=0, rx_mbuf_allocation_errors=0, rx_missed_errors=0, rx_oversize_errors=0, rx_packets=44, rx_undersized_errors=0, tx_1024_to_1522_packets=0, tx_128_to_255_packets=0, tx_1523_to_max_packets=0, tx_1_to_64_packets=0, tx_256_to_511_packets=0, tx_512_to_1023_packets=0, tx_65_to_127_packets=0, tx_broadcast_packets=0, tx_bytes=0, tx_dropped=0, tx_errors=0, tx_link_down_dropped=0, tx_multicast_packets=0, tx_packets=0}
status : {driver_name=net_i40e, if_descr="DPDK 21.11.2 net_i40e", if_type="6", link_speed="10Gbps", max_hash_mac_addrs="0", max_mac_addrs="64", max_rx_pktlen="1518", max_rx_queues="192", max_tx_queues="192", max_vfs="0", max_vmdq_pools="32", min_rx_bufsize="1024", numa_id="0", pci-device_id="0x1572", pci-vendor_id="0x8086", port_no="2"}
type : dpdk
Hi Karthik,
Please try
```yaml
---
interfaces:
- name: ovs0
type: ovs-interface
state: up
dpdk:
devargs: "0000:af:00.1"
rx-queue: 100
ovs-db:
other_config:
pmd-rxq-affinity: "0:3,1:7,3:8"
```
Verified with: nmstate-2.2.5-1.el9.x86_64 nispor-1.2.9-1.el9.x86_64 NetworkManager-1.41.90-1.el9.x86_64 openvswitch2.15-2.15.0-79.el9fdp.x86_64 Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory (nmstate bug fix and enhancement update), and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2023:2190 |
Description of problem: In ovs-db, the other_config is not getting applied when set for a specific bridge. --- interfaces: - name: br-ctll type: ovs-bridge state: up bridge: options: fail-mode: standalone mcast-snooping-enable: false rstp: false stp: false port: - name: bond_ov1 link-aggregation: mode: active-backup port: - name: eno3 - name: eno4 ovs-db: other_config: {bond-miimon-interval: 100} However external-ids could be applied on the bridge. Version-Release number of selected component (if applicable): [root@dell-r640-oss-14 ~]# nmcli -v nmcli tool, version 1.39.10-1.el9 [root@dell-r640-oss-14 ~]# nmstatectl --version nmstatectl 2.1.4