X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fdevices%2Faf_packet%2Faf_packet.h;h=3163aa0323e5575309992c4acb158b9332f7e156;hb=7d0e30bc6;hp=b095e7ffcd15c1f34fb614c145b3541dec59c573;hpb=71612d61930e57e7c8ebf9e5647b15a4b23720b2;p=vpp.git diff --git a/src/vnet/devices/af_packet/af_packet.h b/src/vnet/devices/af_packet/af_packet.h index b095e7ffcd1..3163aa0323e 100644 --- a/src/vnet/devices/af_packet/af_packet.h +++ b/src/vnet/devices/af_packet/af_packet.h @@ -19,6 +19,14 @@ #include +#include + +typedef struct +{ + u32 sw_if_index; + u8 host_if_name[64]; +} af_packet_if_detail_t; + typedef struct { CLIB_CACHE_LINE_ALIGN_MARK (cacheline0); @@ -39,6 +47,8 @@ typedef struct u32 per_interface_next_index; u8 is_admin_up; + u32 queue_index; + u32 host_mtu; } af_packet_if_t; typedef struct @@ -54,17 +64,36 @@ typedef struct /* hash of host interface names */ mhash_t if_index_by_host_if_name; + + /** log class */ + vlib_log_class_t log_class; } af_packet_main_t; +typedef struct +{ + u8 *host_if_name; + u8 *hw_addr; + u32 rx_frame_size; + u32 tx_frame_size; + u32 rx_frames_per_block; + u32 tx_frames_per_block; + + /* return */ + u32 sw_if_index; +} af_packet_create_if_arg_t; + extern af_packet_main_t af_packet_main; extern vnet_device_class_t af_packet_device_class; extern vlib_node_registration_t af_packet_input_node; -int af_packet_create_if (vlib_main_t * vm, u8 * host_if_name, - u8 * hw_addr_set, u32 * sw_if_index); -int af_packet_delete_if (vlib_main_t * vm, u8 * host_if_name); -int af_packet_set_l4_cksum_offload (vlib_main_t * vm, u32 sw_if_index, - u8 set); +int af_packet_create_if (af_packet_create_if_arg_t *arg); +int af_packet_delete_if (u8 *host_if_name); +int af_packet_set_l4_cksum_offload (u32 sw_if_index, u8 set); +int af_packet_dump_ifs (af_packet_if_detail_t ** out_af_packet_ifs); + +format_function_t format_af_packet_device_name; + +#define MIN(x,y) (((x)<(y))?(x):(y)) /* * fd.io coding-style-patch-verification: ON