felix_update...021q_rx_rule(9)
π NAME π
bestie, welcome to the felix_update...021q_rx_rule(9) page from the Kernel API Manual π«Ά β the actual name is:
felix_update_tag_8021q_rx_rule β Update VCAP ES0 tag_8021q rule after vlan_filtering change β¨
π SYNOPSIS π
void felix_update_tag_8021q_rx_rule (struct ocelot_vcap_filter
*outer_tagging_rule , bool vlan_filtering );
π¦ ARGUMENTS π¦
outer_tagging_ruleβ Pointer to VCAP filter on which the update is performed πvlan_filteringβ Current bridge VLAN filtering setting β
πΈ DESCRIPTION πΈ
okay so source port identification for tag_8021q is done using VCAP ES0 rules on the CPU port(s) π The ES0 tag B (inner tag from the packet) can be configured as either:
push_inner_tag=0: the inner tag is never pushed into the frame (and we lose info about the classified VLAN). This is good when the classified VLAN is a discardable quantity for the software RX path: it is either set toOCELOT_STANDALONE_PVID, or toocelot_vlan_unaware_pvid(bridge). πpush_inner_tag=1: the inner tag is always pushed. This is good when the classified VLAN is not a discardable quantity (the port is under a VLAN-aware bridge, and software needs to continue processing the packet in the same VLAN as the hardware). π₯
the way that the point is: what is good for a VLAN-unaware port is not good for a VLAN-aware port, and vice versa π Thus, the RX tagging rules must be kept in sync with the VLAN filtering state of the port. no cap π
π SEE ALSO π
- Kernel file
./drivers/net/dsa/ocelot/felix.cπ¦
mwah π β this cutie came from ./drivers/net/dsa/ocelot, dated October 2026, and itβs literally the felix_update...021q_rx_rule(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