diff options
author | 2023-12-07 16:40:02 +0100 | |
---|---|---|
committer | 2023-12-08 16:02:36 +0100 | |
commit | d1eb1b7523cc1378f7caef93966420f67a5ddc69 (patch) | |
tree | 9c8bd125496cf132fb1fb064cf2fc413848a8a6b /src/vnet/dev/dev.h | |
parent | 31d4891cfe9451fecce1e26e51153d608c76a4f8 (diff) |
dev: caps and rx/tx offload support
Type: improvement
Change-Id: I7972f595444eacdb020f3fa2a60331c40766fc0b
Signed-off-by: Damjan Marion <damarion@cisco.com>
Diffstat (limited to 'src/vnet/dev/dev.h')
-rw-r--r-- | src/vnet/dev/dev.h | 43 |
1 files changed, 39 insertions, 4 deletions
diff --git a/src/vnet/dev/dev.h b/src/vnet/dev/dev.h index 59e1003b4a6..951e5054d42 100644 --- a/src/vnet/dev/dev.h +++ b/src/vnet/dev/dev.h @@ -28,7 +28,15 @@ typedef enum #define foreach_vnet_dev_port_caps \ _ (interrupt_mode) \ _ (rss) \ - _ (change_max_rx_frame_size) + _ (change_max_rx_frame_size) \ + _ (mac_filter) + +#define foreach_vnet_dev_port_rx_offloads _ (ip4_cksum) + +#define foreach_vnet_dev_port_tx_offloads \ + _ (ip4_cksum) \ + _ (tcp_gso) \ + _ (udp_gso) typedef union { @@ -43,6 +51,28 @@ typedef union typedef union { + struct + { +#define _(n) u8 n : 1; + foreach_vnet_dev_port_rx_offloads +#undef _ + }; + u8 as_number; +} vnet_dev_port_rx_offloads_t; + +typedef union +{ + struct + { +#define _(n) u8 n : 1; + foreach_vnet_dev_port_tx_offloads +#undef _ + }; + u8 as_number; +} vnet_dev_port_tx_offloads_t; + +typedef union +{ u8 eth_mac[6]; u8 raw[8]; } vnet_dev_hw_addr_t; @@ -146,6 +176,8 @@ typedef struct u16 max_supported_rx_frame_size; vnet_dev_port_type_t type; vnet_dev_port_caps_t caps; + vnet_dev_port_rx_offloads_t rx_offloads; + vnet_dev_port_tx_offloads_t tx_offloads; } vnet_dev_port_attr_t; typedef enum @@ -606,17 +638,20 @@ typedef struct } vnet_dev_format_args_t; format_function_t format_vnet_dev_addr; +format_function_t format_vnet_dev_flags; format_function_t format_vnet_dev_hw_addr; format_function_t format_vnet_dev_info; format_function_t format_vnet_dev_interface_info; format_function_t format_vnet_dev_interface_name; +format_function_t format_vnet_dev_log; +format_function_t format_vnet_dev_port_caps; +format_function_t format_vnet_dev_port_flags; format_function_t format_vnet_dev_port_info; +format_function_t format_vnet_dev_port_rx_offloads; +format_function_t format_vnet_dev_port_tx_offloads; format_function_t format_vnet_dev_rv; format_function_t format_vnet_dev_rx_queue_info; format_function_t format_vnet_dev_tx_queue_info; -format_function_t format_vnet_dev_flags; -format_function_t format_vnet_dev_port_flags; -format_function_t format_vnet_dev_log; unformat_function_t unformat_vnet_dev_flags; unformat_function_t unformat_vnet_dev_port_flags; |