#include <linux/netdevice.h>
#include <linux/dynamic_debug.h>
#include <linux/etherdevice.h>
#include <linux/list.h>
#include "ionic.h"
#include "ionic_lif.h"
#include "ionic_rx_filter.h"
void ionic_rx_filter_free(struct ionic_lif *lif, struct ionic_rx_filter *f)
{ … }
void ionic_rx_filter_replay(struct ionic_lif *lif)
{ … }
int ionic_rx_filters_init(struct ionic_lif *lif)
{ … }
void ionic_rx_filters_deinit(struct ionic_lif *lif)
{ … }
int ionic_rx_filter_save(struct ionic_lif *lif, u32 flow_id, u16 rxq_index,
u32 hash, struct ionic_admin_ctx *ctx,
enum ionic_filter_state state)
{ … }
struct ionic_rx_filter *ionic_rx_filter_by_vlan(struct ionic_lif *lif, u16 vid)
{ … }
struct ionic_rx_filter *ionic_rx_filter_by_addr(struct ionic_lif *lif,
const u8 *addr)
{ … }
struct ionic_rx_filter *ionic_rx_filter_rxsteer(struct ionic_lif *lif)
{ … }
static struct ionic_rx_filter *ionic_rx_filter_find(struct ionic_lif *lif,
struct ionic_rx_filter_add_cmd *ac)
{ … }
int ionic_lif_list_addr(struct ionic_lif *lif, const u8 *addr, bool mode)
{ … }
static int ionic_lif_filter_add(struct ionic_lif *lif,
struct ionic_rx_filter_add_cmd *ac)
{ … }
int ionic_lif_addr_add(struct ionic_lif *lif, const u8 *addr)
{ … }
int ionic_lif_vlan_add(struct ionic_lif *lif, const u16 vid)
{ … }
static int ionic_lif_filter_del(struct ionic_lif *lif,
struct ionic_rx_filter_add_cmd *ac)
{ … }
int ionic_lif_addr_del(struct ionic_lif *lif, const u8 *addr)
{ … }
int ionic_lif_vlan_del(struct ionic_lif *lif, const u16 vid)
{ … }
struct sync_item { … };
void ionic_rx_filter_sync(struct ionic_lif *lif)
{ … }