devices: Add queues params in create_if
[vpp.git] / src / vnet / devices / af_packet / af_packet.h
index 18822f8..3163aa0 100644 (file)
 
 #include <vppinfra/lock.h>
 
+#include <vlib/log.h>
+
+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,20 +64,37 @@ 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
  *