__ice_vsi_s...er_port_vlan(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… NAME πŸ’…

__ice_vsi_set_outer_port_vlan β€” okay so this is the one that sets the outer port VLAN and, like, all the related settings that come with it ✨


🌸 SYNOPSIS 🌸

int __ice_vsi_set_outer_port_vlan (struct ice_vsi *vsi , u16 vlan_info , u16 tpid );

πŸŽ€ ARGUMENTS πŸŽ€

  • vsi β€” the VSI you're configuring, bestie. That's the one getting the glow-up πŸ’–
  • vlan_info β€” a packed u16 carrying the VLAN prio and the ID together. Two-for-one, we love efficiency 🫢
  • tpid β€” the TPID of the port VLAN, no cap πŸ¦‹

✨ DESCRIPTION ✨

So the whole vibe of this function is: set the port VLAN prio, the ID, and the TPID. That's the assignment, periodt.

It also enables VLAN pruning, which means the VSI literally will not receive any traffic that doesn't match a VLAN prune rule. Like, if you're not on the list, you're not getting in πŸ™ˆ The catch? The caller has to handle it β€” you gotta add a VLAN prune rule that matches the port VLAN ID and the TPID. Don't forget, or it's giving chaos 😭

Then it tells the hardware to strip outer VLAN tagged packets on receive and not put them in the receive descriptor. And listen β€” VSI(s) sitting in port VLANs should not even be aware of the port VLAN ID or TPID they've been assigned to. Main character energy but with amnesia, iykyk πŸ’€

It also tells the hardware to prevent outer VLAN tag insertion on transmit, and to only allow untagged outer packets from the transmit descriptor. No sneaky tags, we see you πŸ‘‘

And finally β€” tell the hardware to insert the port VLAN on transmit. Slay πŸ’…


πŸ”₯ SEE ALSO πŸ”₯

Kernel file ./drivers/net/ethernet/intel/ice/ice_vsi_vlan_lib.c


okay that's the whole page, mwah πŸ’‹ this little cutie lives in the Kernel API Manual, sourced straight from ./drivers/net/ethernet/intel/ice, and it's dated October 2026 β€” so go forth and configure those VLANs, bestie, you're gonna ate πŸ¦‹πŸ’–βœ¨

πŸ“¦ where this page comes from