X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Finterface.h;h=f1d03871ed841b46b48bc4efb6ccb013976dc5f9;hb=085637f5d5d25023c4e7b13c9dcacfcf512aceee;hp=174e5347ad22e9127dd74f342d03a867ee8bd584;hpb=652d2e139443cea073da9b7bef8ee21e41a14111;p=vpp.git diff --git a/src/vnet/interface.h b/src/vnet/interface.h index 174e5347ad2..f1d03871ed8 100644 --- a/src/vnet/interface.h +++ b/src/vnet/interface.h @@ -131,7 +131,7 @@ static void __vnet_interface_function_deinit_##tag##_##f (void) \ { \ vnet_main_t * vnm = vnet_get_main(); \ _vnet_interface_function_list_elt_t *next; \ - if (vnm->tag##_functions[p]->fp == (void *) &f) \ + if (vnm->tag##_functions[p]->fp == f) \ { \ vnm->tag##_functions[p] = \ vnm->tag##_functions[p]->next_interface_function; \ @@ -140,7 +140,7 @@ static void __vnet_interface_function_deinit_##tag##_##f (void) \ next = vnm->tag##_functions[p]; \ while (next->next_interface_function) \ { \ - if (next->next_interface_function->fp == (void *) &f) \ + if (next->next_interface_function->fp == f) \ { \ next->next_interface_function = \ next->next_interface_function->next_interface_function; \ @@ -302,9 +302,6 @@ CLIB_MARCH_SFX (devclass##_tx_fn_multiarch_register) (void) \ } \ uword CLIB_CPU_OPTIMIZED CLIB_MARCH_SFX (devclass##_tx_fn) -/* FIXME to be removed */ -#define VLIB_DEVICE_TX_FUNCTION_MULTIARCH(dev, fn) - /** * Link Type: A description of the protocol of packets on the link. * On an ethernet link this maps directly into the ethertype. On a GRE tunnel @@ -475,6 +472,9 @@ typedef enum vnet_hw_interface_flags_t_ /* tx checksum offload */ VNET_HW_INTERFACE_FLAG_SUPPORTS_TX_L4_CKSUM_OFFLOAD = (1 << 17), + + /* gso */ + VNET_HW_INTERFACE_FLAG_SUPPORTS_GSO = (1 << 18), } vnet_hw_interface_flags_t; #define VNET_HW_INTERFACE_FLAG_DUPLEX_SHIFT 1 @@ -789,6 +789,12 @@ typedef struct u32 tx_node_index; } vnet_hw_interface_nodes_t; +typedef struct +{ + u32 *split_buffers; + u32 padding[14]; +} vnet_interface_per_thread_data_t; + typedef struct { /* Hardware interfaces. */ @@ -827,6 +833,12 @@ typedef struct u32 pcap_pkts_to_capture; uword *pcap_drop_filter_hash; + /* per-thread data */ + vnet_interface_per_thread_data_t *per_thread_data; + + /* enable GSO processing in packet path if this count is > 0 */ + u32 gso_interface_count; + /* feature_arc_index */ u8 output_feature_arc_index; } vnet_interface_main_t;