diff options
author | Jakub Grajciar <Jakub.Grajciar@pantheon.tech> | 2017-10-20 13:37:28 +0200 |
---|---|---|
committer | Damjan Marion <dmarion.lists@gmail.com> | 2017-10-23 16:00:38 +0000 |
commit | 92b0275a364022af6ab828dfac83e38c0117cfe6 (patch) | |
tree | b6fe19970fa41f7575c1577656da8e237d42cafe /src/vnet/devices/af_packet/af_packet.c | |
parent | fb66301070cf2e77b61296dea9686a4ac6a94976 (diff) |
af_packet: invalid TCP/UDP offload checksum on RX node recalculation
Change-Id: I1075e5d2a1b6dfe3a443b40b41b8458a30505680
Signed-off-by: Jakub Grajciar <Jakub.Grajciar@pantheon.tech>
Signed-off-by: Jakub.Grajciar@pantheon.tech <Jakub.Grajciar@pantheon.tech>
Diffstat (limited to 'src/vnet/devices/af_packet/af_packet.c')
-rw-r--r-- | src/vnet/devices/af_packet/af_packet.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/vnet/devices/af_packet/af_packet.c b/src/vnet/devices/af_packet/af_packet.c index 32696014727..e7bbdfd86ae 100644 --- a/src/vnet/devices/af_packet/af_packet.c +++ b/src/vnet/devices/af_packet/af_packet.c @@ -406,6 +406,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) { |