#include "tc_conntrack.h"
#include "tc.h"
#include "mae.h"
static int efx_tc_flow_block(enum tc_setup_type type, void *type_data,
void *cb_priv);
static const struct rhashtable_params efx_tc_ct_zone_ht_params = …;
static const struct rhashtable_params efx_tc_ct_ht_params = …;
static void efx_tc_ct_zone_free(void *ptr, void *arg)
{ … }
static void efx_tc_ct_free(void *ptr, void *arg)
{ … }
int efx_tc_init_conntrack(struct efx_nic *efx)
{ … }
void efx_tc_destroy_conntrack(struct efx_nic *efx)
{ … }
void efx_tc_fini_conntrack(struct efx_nic *efx)
{ … }
#define EFX_NF_TCP_FLAG(flg) …
static int efx_tc_ct_parse_match(struct efx_nic *efx, struct flow_rule *fr,
struct efx_tc_ct_entry *conn)
{ … }
struct efx_tc_ct_mangler_state { … };
static int efx_tc_ct_mangle(struct efx_nic *efx, struct efx_tc_ct_entry *conn,
const struct flow_action_entry *fa,
struct efx_tc_ct_mangler_state *mung)
{ … }
static int efx_tc_ct_replace(struct efx_tc_ct_zone *ct_zone,
struct flow_cls_offload *tc)
{ … }
static void efx_tc_ct_remove(struct efx_nic *efx, struct efx_tc_ct_entry *conn)
{ … }
static void efx_tc_ct_remove_finish(struct efx_nic *efx, struct efx_tc_ct_entry *conn)
{ … }
static int efx_tc_ct_destroy(struct efx_tc_ct_zone *ct_zone,
struct flow_cls_offload *tc)
{ … }
static int efx_tc_ct_stats(struct efx_tc_ct_zone *ct_zone,
struct flow_cls_offload *tc)
{ … }
static int efx_tc_flow_block(enum tc_setup_type type, void *type_data,
void *cb_priv)
{ … }
struct efx_tc_ct_zone *efx_tc_ct_register_zone(struct efx_nic *efx, u16 zone,
struct nf_flowtable *ct_ft)
{ … }
void efx_tc_ct_unregister_zone(struct efx_nic *efx,
struct efx_tc_ct_zone *ct_zone)
{ … }