vnet: af_packet_set_l4_cksum_offload device class check 12/9412/3
authorJakub Grajciar <Jakub.Grajciar@pantheon.tech>
Tue, 14 Nov 2017 12:45:04 +0000 (13:45 +0100)
committerDamjan Marion <dmarion.lists@gmail.com>
Tue, 14 Nov 2017 16:13:40 +0000 (16:13 +0000)
Change-Id: Ie07b71977c46d2f1e030799a08cc5af0fdc397aa
Signed-off-by: Jakub Grajciar <Jakub.Grajciar@pantheon.tech>
src/vnet/devices/af_packet/af_packet.c
src/vnet/devices/af_packet/cli.c

index d0a241e..eec3e4b 100644 (file)
@@ -416,6 +416,9 @@ af_packet_set_l4_cksum_offload (vlib_main_t * vm, u32 sw_if_index, u8 set)
 
   hw = vnet_get_sup_hw_interface (vnm, sw_if_index);
 
+  if (hw->dev_class_index != af_packet_device_class.index)
+    return VNET_API_ERROR_INVALID_INTERFACE;
+
   if (set)
     hw->flags &= ~VNET_HW_INTERFACE_FLAG_SUPPORTS_TX_L4_CKSUM_OFFLOAD;
   else
index 29c0e06..faa0728 100644 (file)
@@ -225,7 +225,8 @@ af_packet_set_l4_cksum_offload_command_fn (vlib_main_t * vm,
        }
     }
 
-  af_packet_set_l4_cksum_offload (vm, sw_if_index, set);
+  if (af_packet_set_l4_cksum_offload (vm, sw_if_index, set) < 0)
+    error = clib_error_return (0, "not an af_packet interface");
 
 done:
   unformat_free (line_input);