summaryrefslogblamecommitdiffstats
path: root/drivers/net/ethernet/aquantia/atlantic/aq_filters.h
blob: 1f1368b08a5b61e56dcdd7e6a1bfa5a8e252c8cd (plain) (tree)






























                                                                                
/* SPDX-License-Identifier: GPL-2.0-or-later */
/* Copyright (C) 2014-2017 aQuantia Corporation. */

/* File aq_filters.h: RX filters related functions. */

#ifndef AQ_FILTERS_H
#define AQ_FILTERS_H

#include "aq_nic.h"

enum aq_rx_filter_type {
	aq_rx_filter_l3l4
};

struct aq_rx_filter {
	struct hlist_node aq_node;
	enum aq_rx_filter_type type;
	struct ethtool_rx_flow_spec aq_fsp;
};

u16 aq_get_rxnfc_count_all_rules(struct aq_nic_s *aq_nic);
struct aq_hw_rx_fltrs_s *aq_get_hw_rx_fltrs(struct aq_nic_s *aq_nic);
int aq_add_rxnfc_rule(struct aq_nic_s *aq_nic, const struct ethtool_rxnfc *cmd);
int aq_del_rxnfc_rule(struct aq_nic_s *aq_nic, const struct ethtool_rxnfc *cmd);
int aq_get_rxnfc_rule(struct aq_nic_s *aq_nic, struct ethtool_rxnfc *cmd);
int aq_get_rxnfc_all_rules(struct aq_nic_s *aq_nic, struct ethtool_rxnfc *cmd,
			   u32 *rule_locs);
int aq_clear_rxnfc_all_rules(struct aq_nic_s *aq_nic);
int aq_reapply_rxnfc_all_rules(struct aq_nic_s *aq_nic);

#endif /* AQ_FILTERS_H */