X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fdevices%2Faf_packet%2Faf_packet.c;h=d0a241e2a2e912ea81d696d284afaa9702163ed5;hb=71612d61930e57e7c8ebf9e5647b15a4b23720b2;hp=32696014727c9a75f9b6c40de14bc9e5794e316f;hpb=01914ce45729833cec88c65689de9a0336cd40cc;p=vpp.git diff --git a/src/vnet/devices/af_packet/af_packet.c b/src/vnet/devices/af_packet/af_packet.c index 32696014727..d0a241e2a2e 100644 --- a/src/vnet/devices/af_packet/af_packet.c +++ b/src/vnet/devices/af_packet/af_packet.c @@ -32,6 +32,8 @@ #include +af_packet_main_t af_packet_main; + #define AF_PACKET_DEBUG_SOCKET 0 #define AF_PACKET_TX_FRAMES_PER_BLOCK 1024 @@ -406,6 +408,22 @@ af_packet_delete_if (vlib_main_t * vm, u8 * host_if_name) return 0; } +int +af_packet_set_l4_cksum_offload (vlib_main_t * vm, u32 sw_if_index, u8 set) +{ + vnet_main_t *vnm = vnet_get_main (); + vnet_hw_interface_t *hw; + + hw = vnet_get_sup_hw_interface (vnm, sw_if_index); + + if (set) + hw->flags &= ~VNET_HW_INTERFACE_FLAG_SUPPORTS_TX_L4_CKSUM_OFFLOAD; + else + hw->flags |= VNET_HW_INTERFACE_FLAG_SUPPORTS_TX_L4_CKSUM_OFFLOAD; + + return 0; +} + static clib_error_t * af_packet_init (vlib_main_t * vm) {