linux/drivers/net/ethernet/aquantia/atlantic/aq_filters.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0-only */
   2/* Copyright (C) 2014-2017 aQuantia Corporation. */
   3
   4/* File aq_filters.h: RX filters related functions. */
   5
   6#ifndef AQ_FILTERS_H
   7#define AQ_FILTERS_H
   8
   9#include "aq_nic.h"
  10
  11enum aq_rx_filter_type {
  12        aq_rx_filter_ethertype,
  13        aq_rx_filter_vlan,
  14        aq_rx_filter_l3l4
  15};
  16
  17struct 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
  23u16 aq_get_rxnfc_count_all_rules(struct aq_nic_s *aq_nic);
  24struct aq_hw_rx_fltrs_s *aq_get_hw_rx_fltrs(struct aq_nic_s *aq_nic);
  25int aq_add_rxnfc_rule(struct aq_nic_s *aq_nic, const struct ethtool_rxnfc *cmd);
  26int aq_del_rxnfc_rule(struct aq_nic_s *aq_nic, const struct ethtool_rxnfc *cmd);
  27int aq_get_rxnfc_rule(struct aq_nic_s *aq_nic, struct ethtool_rxnfc *cmd);
  28int aq_get_rxnfc_all_rules(struct aq_nic_s *aq_nic, struct ethtool_rxnfc *cmd,
  29                           u32 *rule_locs);
  30int aq_del_fvlan_by_vlan(struct aq_nic_s *aq_nic, u16 vlan_id);
  31int aq_clear_rxnfc_all_rules(struct aq_nic_s *aq_nic);
  32int aq_reapply_rxnfc_all_rules(struct aq_nic_s *aq_nic);
  33int aq_filters_vlans_update(struct aq_nic_s *aq_nic);
  34int aq_filters_vlan_offload_off(struct aq_nic_s *aq_nic);
  35
  36#endif /* AQ_FILTERS_H */
  37