From c48ec5d568146389f3c539cea003c242f85e5239 Mon Sep 17 00:00:00 2001 From: Damjan Marion Date: Mon, 10 Jan 2022 19:38:57 +0000 Subject: interface: refactor interface capabilities code, part 2 Type: improvement Signed-off-by: Damjan Marion Signed-off-by: Mohsin Kazmi Change-Id: Ie595e69af8657b0ee18a84ac71c5d433108d9ef8 --- src/plugins/vmxnet3/vmxnet3.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'src/plugins/vmxnet3') diff --git a/src/plugins/vmxnet3/vmxnet3.c b/src/plugins/vmxnet3/vmxnet3.c index edd0b4f4f75..a0c125a2c97 100644 --- a/src/plugins/vmxnet3/vmxnet3.c +++ b/src/plugins/vmxnet3/vmxnet3.c @@ -621,6 +621,7 @@ vmxnet3_create_if (vlib_main_t * vm, vmxnet3_create_if_args_t * args) vmxnet3_device_t *vd; vlib_pci_dev_handle_t h; + vnet_hw_if_caps_change_t cc = {}; clib_error_t *error = 0; u16 qid; u32 num_intr; @@ -814,13 +815,14 @@ vmxnet3_create_if (vlib_main_t * vm, vmxnet3_create_if_args_t * args) vd->sw_if_index = sw->sw_if_index; args->sw_if_index = sw->sw_if_index; - vnet_hw_interface_t *hw = vnet_get_hw_interface (vnm, vd->hw_if_index); - hw->caps |= VNET_HW_IF_CAP_INT_MODE; + cc.mask = VNET_HW_IF_CAP_INT_MODE | VNET_HW_IF_CAP_TCP_GSO | + VNET_HW_IF_CAP_TX_TCP_CKSUM | VNET_HW_IF_CAP_TX_UDP_CKSUM; if (vd->gso_enable) - { - hw->caps |= (VNET_HW_IF_CAP_TCP_GSO | VNET_HW_IF_CAP_TX_TCP_CKSUM | - VNET_HW_IF_CAP_TX_UDP_CKSUM); - } + cc.val = cc.mask; + else + cc.val = VNET_HW_IF_CAP_INT_MODE; + + vnet_hw_if_change_caps (vnm, vd->hw_if_index, &cc); vnet_hw_if_set_input_node (vnm, vd->hw_if_index, vmxnet3_input_node.index); /* Disable interrupts */ -- cgit 1.2.3-korg