STRUCT EF4_FILTER_SPEC(9)
β¨ NAME β¨
okay so bestie, welcome to the Kernel API Manual page for struct ef4_filter_spec(9) β literally the specification for a hardware filter. no cap, this is the blueprint. π
πΈ SYNOPSIS πΈ
struct ef4_filter_spec {
u32 match_flags:12;
u32 priority:2;
u32 flags:6;
u32 dmaq_id:12;
u32 rss_context;
__be16 outer_vid;
__be16 inner_vid;
u8 loc_mac[ETH_ALEN];
u8 rem_mac[ETH_ALEN];
__be16 ether_type;
u8 ip_proto;
__be32 loc_host[4];
__be32 rem_host[4];
__be16 loc_port;
__be16 rem_port;
};
π«Ά Members π«Ά
match_flagsβ match type flags, fromenum ef4_filter_match_flags. this is the βwhat are we matching thoβ field. πpriorityβ priority of the filter, fromenum ef4_filter_priority. yes, it has main character energy. πflagsβ miscellaneous flags, fromenum ef4_filter_flags. the little extras. β¨dmaq_idβ source/target queue index, orEF4_FILTER_RX_DMAQ_ID_DROPfor an RX drop filter. drop it like itβs hot. πrss_contextβ RSS context to use, ifEF4_FILTER_FLAG_RX_RSSis set. πouter_vidβ outer VLAN ID to match, ifEF4_FILTER_MATCH_OUTER_VIDis set. π·οΈinner_vidβ inner VLAN ID to match, ifEF4_FILTER_MATCH_INNER_VIDis set. π·οΈloc_macβ local MAC address to match, ifEF4_FILTER_MATCH_LOC_MACorEF4_FILTER_MATCH_LOC_MAC_IGis set. π«Άrem_macβ remote MAC address to match, ifEF4_FILTER_MATCH_REM_MACis set. π«Άether_typeβ ether-type to match, ifEF4_FILTER_MATCH_ETHER_TYPEis set. πip_protoβ IP transport protocol to match, ifEF4_FILTER_MATCH_IP_PROTOis set. π°οΈloc_hostβ local IP host to match, ifEF4_FILTER_MATCH_LOC_HOSTis set. πrem_hostβ remote IP host to match, ifEF4_FILTER_MATCH_REM_HOSTis set. πloc_portβ local TCP/UDP port to match, ifEF4_FILTER_MATCH_LOC_PORTis set. πrem_portβ remote TCP/UDP port to match, ifEF4_FILTER_MATCH_REM_PORTis set. π
π Description π
The ef4_filter_init_rx or ef4_filter_init_tx function must be used to initialise the structure. bestie, must is doing a lot of heavy lifting there β do not skip it. π¨
The ef4_filter_set_*() functions may then be used to set rss_context, match_flags and related fields. slay, now you can customize. π
The priority field is used by software to determine whether a new filter may replace an old one. The hardware priority of a filter depends on which fields are matched. so yeah, priority is lowkey doing software politics while hardware does its own thing. π§
fr fr: initialise it withef4_filter_init_rxoref4_filter_init_txfirst, then use theef4_filter_set_*()functions. iykyk. π
π₯ SEE ALSO π₯
- Kernel file
./drivers/net/ethernet/sfc/falcon/filter.h enum ef4_filter_match_flags(9)enum ef4_filter_priority(9)enum ef4_filter_flags(9)ef4_filter_set_ipv4_local(9)ef4_filter_set_ipv4_full(9)ef4_filter_set_eth_local(9)ef4_filter_set_uc_def(9)ef4_filter_set_mc_def(9)
xoxo bestie π β this came from ./drivers/net/ethernet/sfc/falcon, dated October 2026, and itβs literally the struct ef4_filter_spec(9) page. periodt. π¦
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms