diff options
author | Damjan Marion <damarion@cisco.com> | 2022-01-10 19:38:57 +0000 |
---|---|---|
committer | Damjan Marion <dmarion@me.com> | 2022-01-10 20:51:52 +0000 |
commit | c48ec5d568146389f3c539cea003c242f85e5239 (patch) | |
tree | 11a25709bea5db0a93186d56b8f9c8ad1486eba0 /src/plugins | |
parent | 5048bc6ed51592145fcb710cdc06860f25b35e21 (diff) |
interface: refactor interface capabilities code, part 2
Type: improvement
Signed-off-by: Damjan Marion <damarion@cisco.com>
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Change-Id: Ie595e69af8657b0ee18a84ac71c5d433108d9ef8
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/vmxnet3/vmxnet3.c | 14 |
1 files changed, 8 insertions, 6 deletions
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 */ |