1
2
3
4
5
6 #ifndef AQ_FILTERS_H
7 #define AQ_FILTERS_H
8
9 #include "aq_nic.h"
10
11 enum aq_rx_filter_type {
12 aq_rx_filter_ethertype,
13 aq_rx_filter_vlan,
14 aq_rx_filter_l3l4
15 };
16
17 struct aq_rx_filter {
18 struct hlist_node aq_node;
19 enum aq_rx_filter_type type;
20 struct ethtool_rx_flow_spec aq_fsp;
21 };
22
23 u16 aq_get_rxnfc_count_all_rules(struct aq_nic_s *aq_nic);
24 struct aq_hw_rx_fltrs_s *aq_get_hw_rx_fltrs(struct aq_nic_s *aq_nic);
25 int aq_add_rxnfc_rule(struct aq_nic_s *aq_nic, const struct ethtool_rxnfc *cmd);
26 int aq_del_rxnfc_rule(struct aq_nic_s *aq_nic, const struct ethtool_rxnfc *cmd);
27 int aq_get_rxnfc_rule(struct aq_nic_s *aq_nic, struct ethtool_rxnfc *cmd);
28 int aq_get_rxnfc_all_rules(struct aq_nic_s *aq_nic, struct ethtool_rxnfc *cmd,
29 u32 *rule_locs);
30 int aq_del_fvlan_by_vlan(struct aq_nic_s *aq_nic, u16 vlan_id);
31 int aq_clear_rxnfc_all_rules(struct aq_nic_s *aq_nic);
32 int aq_reapply_rxnfc_all_rules(struct aq_nic_s *aq_nic);
33 int aq_filters_vlans_update(struct aq_nic_s *aq_nic);
34 int aq_filters_vlan_offload_off(struct aq_nic_s *aq_nic);
35
36 #endif