i40e_aqc_add_filters(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– i40e_aqc_add_filters β€” from the Kernel API Manual, bestie πŸ’–

Okay so picture this: you're deep in the i40e driver, you've got a whole stack of MAC filters you need the hardware to actually, like, know about, and you're standing there like πŸ§β€β™€οΈ. Enter i40e_aqc_add_filters(9). She's a void function, she doesn't return anything, she just does the thing. Honestly iconic.


✨ NAME ✨

i40e_aqc_add_filters β€” politely asking the firmware to add a whole set of filters for you, no cap 🫢


🌸 SYNOPSIS 🌸

void i40e_aqc_add_filters (struct i40e_vsi *vsi , const char *vsi_name ,
struct i40e_aqc_add_macvlan_element_data *list , struct
i40e_new_mac_filter *add_head , int num_add );

πŸŽ€ ARGUMENTS πŸŽ€

  • vsi β€” ptr to the VSI πŸ’… literally just a pointer to your VSI, that's the whole vibe.
  • vsi_name β€” the name you want to see pop up in messages. It's for display purposes, she's just here to look cute in the logs.
  • list β€” the actual list of filters you're shipping off to firmware. This is the cargo 🚚.
  • add_head β€” your position in the add hlist. Think of it as your little bookmark in the group chat.
  • num_add β€” the number of filters you're adding. Count them, bestie, don't guess πŸ”’.

πŸ¦‹ DESCRIPTION πŸ¦‹

So what she does is: sends a request to firmware via AdminQ to add a chunk of filters. Boom, that's it. A whole chunk. Very efficient, very slay ✨

And if the firmware has run out of space for more filters? She'll set the __I40E_VSI_OVERFLOW_PROMISC bit in vsi->state. That's the "oops we're full 😭" flag. Note it as a will, not a might β€” that bit is getting set, periodt.


πŸ’œ SEE ALSO πŸ’œ

Grab a snack πŸ“ because this list is long, and I mean "the way that this list just keeps going" long. Every single one of these is a real reference, iykyk:

Kernel file: ./drivers/net/ethernet/intel/i40e/i40e_main.c

Yeah. All of them. We ate and left no crumbs πŸ‘‘πŸ”₯


ok so real talk, one thing to remember: this is a void function β€” no return value, no exit status, nothing to check. The only "did something go wrong" signal you get is that __I40E_VSI_OVERFLOW_PROMISC bit flipping on in vsi->state, meaning firmware is full and has no room for more filters 🫠

Okay bestie, that's the whole page! Source/version biz for the sign-off: this lives under ./drivers/net/ethernet/intel/i40e, and the page is dated October 2026. Go forth and filter responsibly πŸ’–βœ¨πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from