From d4f88cc0967ea1de66396ac07b20cf6e33a3fa1a Mon Sep 17 00:00:00 2001 From: Damjan Marion Date: Wed, 5 Jan 2022 01:52:38 +0100 Subject: interface: refactor interface capabilities code Make it shorter to type, easier to debug, make adding callbacks in future simpler. Type: improvement Change-Id: I6cdd6375e36da23bd452a7c7273ff42789e94433 Signed-off-by: Damjan Marion --- src/vnet/devices/af_packet/af_packet.c | 8 +++----- src/vnet/devices/tap/tap.c | 28 ++++++++++++---------------- src/vnet/devices/virtio/device.c | 4 ++-- src/vnet/devices/virtio/pci.c | 18 +++++++++--------- src/vnet/devices/virtio/vhost_user.c | 10 ++++------ 5 files changed, 30 insertions(+), 38 deletions(-) (limited to 'src/vnet/devices') diff --git a/src/vnet/devices/af_packet/af_packet.c b/src/vnet/devices/af_packet/af_packet.c index bfa28031c1c..2e044472736 100644 --- a/src/vnet/devices/af_packet/af_packet.c +++ b/src/vnet/devices/af_packet/af_packet.c @@ -430,7 +430,7 @@ af_packet_create_if (af_packet_create_if_arg_t *arg) apif->queue_index = vnet_hw_if_register_rx_queue (vnm, apif->hw_if_index, 0, VNET_HW_IF_RXQ_THREAD_ANY); - hw->caps |= VNET_HW_INTERFACE_CAP_SUPPORTS_INT_MODE; + hw->caps |= VNET_HW_IF_CAP_INT_MODE; vnet_hw_interface_set_flags (vnm, apif->hw_if_index, VNET_HW_INTERFACE_FLAG_LINK_UP); @@ -544,13 +544,11 @@ af_packet_set_l4_cksum_offload (u32 sw_if_index, u8 set) if (set) { - hw->caps &= ~(VNET_HW_INTERFACE_CAP_SUPPORTS_TX_TCP_CKSUM | - VNET_HW_INTERFACE_CAP_SUPPORTS_TX_UDP_CKSUM); + hw->caps &= ~(VNET_HW_IF_CAP_TX_TCP_CKSUM | VNET_HW_IF_CAP_TX_UDP_CKSUM); } else { - hw->caps |= (VNET_HW_INTERFACE_CAP_SUPPORTS_TX_TCP_CKSUM | - VNET_HW_INTERFACE_CAP_SUPPORTS_TX_UDP_CKSUM); + hw->caps |= (VNET_HW_IF_CAP_TX_TCP_CKSUM | VNET_HW_IF_CAP_TX_UDP_CKSUM); } return 0; } diff --git a/src/vnet/devices/tap/tap.c b/src/vnet/devices/tap/tap.c index a6c9cefc3bf..17ce107ac58 100644 --- a/src/vnet/devices/tap/tap.c +++ b/src/vnet/devices/tap/tap.c @@ -669,17 +669,15 @@ tap_create_if (vlib_main_t * vm, tap_create_if_args_t * args) args->sw_if_index = vif->sw_if_index; args->rv = 0; hw = vnet_get_hw_interface (vnm, vif->hw_if_index); - hw->caps |= VNET_HW_INTERFACE_CAP_SUPPORTS_INT_MODE; + hw->caps |= VNET_HW_IF_CAP_INT_MODE; if (args->tap_flags & TAP_FLAG_GSO) { - hw->caps |= VNET_HW_INTERFACE_CAP_SUPPORTS_TCP_GSO | - VNET_HW_INTERFACE_CAP_SUPPORTS_TX_TCP_CKSUM | - VNET_HW_INTERFACE_CAP_SUPPORTS_TX_UDP_CKSUM; + hw->caps |= VNET_HW_IF_CAP_TCP_GSO | VNET_HW_IF_CAP_TX_TCP_CKSUM | + VNET_HW_IF_CAP_TX_UDP_CKSUM; } else if (args->tap_flags & TAP_FLAG_CSUM_OFFLOAD) { - hw->caps |= VNET_HW_INTERFACE_CAP_SUPPORTS_TX_TCP_CKSUM | - VNET_HW_INTERFACE_CAP_SUPPORTS_TX_UDP_CKSUM; + hw->caps |= VNET_HW_IF_CAP_TX_TCP_CKSUM | VNET_HW_IF_CAP_TX_UDP_CKSUM; } if ((args->tap_flags & TAP_FLAG_GSO) && (args->tap_flags & TAP_FLAG_GRO_COALESCE)) @@ -795,18 +793,18 @@ tap_csum_offload_enable_disable (vlib_main_t * vm, u32 sw_if_index, vif->packet_coalesce = 0; vif->csum_offload_enabled = enable_disable ? 1 : 0; - if ((hw->caps & VNET_HW_INTERFACE_CAP_SUPPORTS_TCP_GSO) != 0) + if ((hw->caps & VNET_HW_IF_CAP_TCP_GSO) != 0) { - hw->caps &= ~VNET_HW_INTERFACE_CAP_SUPPORTS_TCP_GSO; + hw->caps &= ~VNET_HW_IF_CAP_TCP_GSO; } if (enable_disable) { - hw->caps |= VNET_HW_INTERFACE_CAP_SUPPORTS_L4_TX_CKSUM; + hw->caps |= VNET_HW_IF_CAP_L4_TX_CKSUM; } else { - hw->caps &= ~VNET_HW_INTERFACE_CAP_SUPPORTS_L4_TX_CKSUM; + hw->caps &= ~VNET_HW_IF_CAP_L4_TX_CKSUM; } error: @@ -846,10 +844,9 @@ tap_gso_enable_disable (vlib_main_t * vm, u32 sw_if_index, int enable_disable, vif->csum_offload_enabled = 0; if (enable_disable) { - if ((hw->caps & VNET_HW_INTERFACE_CAP_SUPPORTS_TCP_GSO) == 0) + if ((hw->caps & VNET_HW_IF_CAP_TCP_GSO) == 0) { - hw->caps |= VNET_HW_INTERFACE_CAP_SUPPORTS_TCP_GSO | - VNET_HW_INTERFACE_CAP_SUPPORTS_L4_TX_CKSUM; + hw->caps |= VNET_HW_IF_CAP_TCP_GSO | VNET_HW_IF_CAP_L4_TX_CKSUM; } if (is_packet_coalesce) { @@ -858,10 +855,9 @@ tap_gso_enable_disable (vlib_main_t * vm, u32 sw_if_index, int enable_disable, } else { - if ((hw->caps & VNET_HW_INTERFACE_CAP_SUPPORTS_TCP_GSO) != 0) + if ((hw->caps & VNET_HW_IF_CAP_TCP_GSO) != 0) { - hw->caps &= ~(VNET_HW_INTERFACE_CAP_SUPPORTS_TCP_GSO | - VNET_HW_INTERFACE_CAP_SUPPORTS_L4_TX_CKSUM); + hw->caps &= ~(VNET_HW_IF_CAP_TCP_GSO | VNET_HW_IF_CAP_L4_TX_CKSUM); } vif->packet_coalesce = 0; } diff --git a/src/vnet/devices/virtio/device.c b/src/vnet/devices/virtio/device.c index 8eeeb0d2c74..17b3a175e20 100644 --- a/src/vnet/devices/virtio/device.c +++ b/src/vnet/devices/virtio/device.c @@ -1009,12 +1009,12 @@ virtio_interface_tx_inline (vlib_main_t *vm, vlib_node_runtime_t *node, vnet_main_t *vnm = vnet_get_main (); vnet_hw_interface_t *hw = vnet_get_hw_interface (vnm, vif->hw_if_index); - if (hw->caps & VNET_HW_INTERFACE_CAP_SUPPORTS_TCP_GSO) + if (hw->caps & VNET_HW_IF_CAP_TCP_GSO) return virtio_interface_tx_gso_inline (vm, node, vif, type, vring, buffers, n_left, packed, 1 /* do_gso */ , 1 /* checksum offload */ ); - else if (hw->caps & VNET_HW_INTERFACE_CAP_SUPPORTS_L4_TX_CKSUM) + else if (hw->caps & VNET_HW_IF_CAP_L4_TX_CKSUM) return virtio_interface_tx_gso_inline (vm, node, vif, type, vring, buffers, n_left, packed, 0 /* no do_gso */ , diff --git a/src/vnet/devices/virtio/pci.c b/src/vnet/devices/virtio/pci.c index b053266858c..efa1b88a2b0 100644 --- a/src/vnet/devices/virtio/pci.c +++ b/src/vnet/devices/virtio/pci.c @@ -525,9 +525,9 @@ virtio_pci_offloads (vlib_main_t * vm, virtio_if_t * vif, int gso_enabled, { vif->gso_enabled = 1; vif->csum_offload_enabled = 0; - hw->caps |= VNET_HW_INTERFACE_CAP_SUPPORTS_TCP_GSO | - VNET_HW_INTERFACE_CAP_SUPPORTS_TX_TCP_CKSUM | - VNET_HW_INTERFACE_CAP_SUPPORTS_TX_UDP_CKSUM; + hw->caps |= VNET_HW_IF_CAP_TCP_GSO | + VNET_HW_IF_CAP_TX_TCP_CKSUM | + VNET_HW_IF_CAP_TX_UDP_CKSUM; } } else if (csum_offload_enabled @@ -541,9 +541,9 @@ virtio_pci_offloads (vlib_main_t * vm, virtio_if_t * vif, int gso_enabled, { vif->csum_offload_enabled = 1; vif->gso_enabled = 0; - hw->caps &= ~VNET_HW_INTERFACE_CAP_SUPPORTS_TCP_GSO; - hw->caps |= VNET_HW_INTERFACE_CAP_SUPPORTS_TX_TCP_CKSUM | - VNET_HW_INTERFACE_CAP_SUPPORTS_TX_UDP_CKSUM; + hw->caps &= ~VNET_HW_IF_CAP_TCP_GSO; + hw->caps |= + VNET_HW_IF_CAP_TX_TCP_CKSUM | VNET_HW_IF_CAP_TX_UDP_CKSUM; } } else @@ -556,8 +556,8 @@ virtio_pci_offloads (vlib_main_t * vm, virtio_if_t * vif, int gso_enabled, { vif->csum_offload_enabled = 0; vif->gso_enabled = 0; - hw->caps &= ~(VNET_HW_INTERFACE_CAP_SUPPORTS_L4_TX_CKSUM | - VNET_HW_INTERFACE_CAP_SUPPORTS_TCP_GSO); + hw->caps &= + ~(VNET_HW_IF_CAP_L4_TX_CKSUM | VNET_HW_IF_CAP_TCP_GSO); } } } @@ -1480,7 +1480,7 @@ virtio_pci_create_if (vlib_main_t * vm, virtio_pci_create_if_args_t * args) args->sw_if_index = sw->sw_if_index; vnet_hw_interface_t *hw = vnet_get_hw_interface (vnm, vif->hw_if_index); - hw->caps |= VNET_HW_INTERFACE_CAP_SUPPORTS_INT_MODE; + hw->caps |= VNET_HW_IF_CAP_INT_MODE; if (args->virtio_flags & VIRTIO_FLAG_BUFFERING) { diff --git a/src/vnet/devices/virtio/vhost_user.c b/src/vnet/devices/virtio/vhost_user.c index cd37d4c59f8..85c39b9de8b 100644 --- a/src/vnet/devices/virtio/vhost_user.c +++ b/src/vnet/devices/virtio/vhost_user.c @@ -558,14 +558,12 @@ vhost_user_socket_read (clib_file_t * uf) ((vui->features & FEATURE_VIRTIO_NET_F_HOST_GUEST_TSO_FEATURE_BITS) == FEATURE_VIRTIO_NET_F_HOST_GUEST_TSO_FEATURE_BITS)) { - hw->caps |= (VNET_HW_INTERFACE_CAP_SUPPORTS_TCP_GSO | - VNET_HW_INTERFACE_CAP_SUPPORTS_TX_TCP_CKSUM | - VNET_HW_INTERFACE_CAP_SUPPORTS_TX_UDP_CKSUM); + hw->caps |= (VNET_HW_IF_CAP_TCP_GSO | VNET_HW_IF_CAP_TX_TCP_CKSUM | + VNET_HW_IF_CAP_TX_UDP_CKSUM); } else { - hw->caps &= ~(VNET_HW_INTERFACE_CAP_SUPPORTS_TCP_GSO | - VNET_HW_INTERFACE_CAP_SUPPORTS_L4_TX_CKSUM); + hw->caps &= ~(VNET_HW_IF_CAP_TCP_GSO | VNET_HW_IF_CAP_L4_TX_CKSUM); } vnet_hw_interface_set_flags (vnm, vui->hw_if_index, 0); vui->is_ready = 0; @@ -1658,7 +1656,7 @@ vhost_user_vui_init (vnet_main_t * vnm, vhost_user_intf_t * vui, for (q = 0; q < vec_len (vui->vrings); q++) vhost_user_vring_init (vui, q); - hw->caps |= VNET_HW_INTERFACE_CAP_SUPPORTS_INT_MODE; + hw->caps |= VNET_HW_IF_CAP_INT_MODE; vnet_hw_interface_set_flags (vnm, vui->hw_if_index, 0); if (sw_if_index) -- cgit 1.2.3-korg