STRUCT MXL862XX_EXTENDEDVLAN_TREATMENT(9)
π NAME π
Okay bestie, so this page is from the Kernel API Manual and the star of the show is struct mxl862xx_extendedvlan_treatment β aka Extended VLAN treatment. That's it, that's the whole vibe: it's the struct that says what we're doing to a VLAN tag on its way through the switch. π¦
β¨ SYNOPSIS β¨
Like, here's the whole struct, laid out exactly, no cap:
struct mxl862xx_extendedvlan_treatment {
__le32 remove_tag;
__le32 treatment_4_tpid_mode;
u8 add_outer_vlan;
struct mxl862xx_extendedvlan_treatment_vlan outer_vlan;
u8 add_inner_vlan;
struct mxl862xx_extendedvlan_treatment_vlan inner_vlan;
u8 reassign_bridge_port;
__le16 new_bridge_port_id;
u8 new_dscp_enable;
__le16 new_dscp;
u8 new_traffic_class_enable;
u8 new_traffic_class;
u8 new_meter_enable;
__le16 s_new_traffic_meter_id;
u8 dscp2pcp_map[64];
u8 loopback_enable;
u8 da_sa_swap_enable;
u8 mirror_enable;
};
She's giving big-struct energy and honestly? Iconic. π
πΈ Members πΈ
Time for the roll call, member by member. Literally every single one π
remove_tagβ the tag removal action, fr. Which action? Go look atenum mxl862xx_extended_vlan_treatment_remove_tag, that's where the actual choices live. πtreatment_4_tpid_modeβ the 4-TPID treatment mode. That's the whole description, bestie, I'm not making anything up.add_outer_vlanβ add an outer VLAN tag. Yes queen, stack it. π«Άouter_vlanβ the treatment parameters for that outer VLAN tag (typestruct mxl862xx_extendedvlan_treatment_vlan).add_inner_vlanβ add an inner VLAN tag. Double tag? Double slay. β¨inner_vlanβ the treatment parameters for the inner VLAN tag (again,struct mxl862xx_extendedvlan_treatment_vlan).reassign_bridge_portβ reassign this traffic to a different bridge port. Main character move.new_bridge_port_idβ the new bridge port ID.__le16, so mind your endianness, iykyk. πnew_dscp_enableβ turn on the new DSCP assignment.new_dscpβ the new DSCP value itself (__le16).new_traffic_class_enableβ turn on the new traffic class assignment.new_traffic_classβ the new traffic class value.new_meter_enableβ enable that new metering. πs_new_traffic_meter_idβ the new traffic meter ID. And yes β it is literally spelled with that leadings_. Not a typo I invented, it's right there in the struct, so copy it exactly or your build will simply not eat. πdscp2pcp_mapβ the DSCP-to-PCP mapping table,u8array, 64 entries long. Sixty-four! She's committed. π₯loopback_enableβ enable loopback.da_sa_swap_enableβ enable DA/SA swap.mirror_enableβ enable mirroring. πͺ
Heads up bestie: this page only tells you what each member is. The actual enums and sub-structs it points at live in their own pages β I'm linking them all below, don't worry. π
π SEE ALSO π
Everything below comes straight from the kernel file ./drivers/net/dsa/mxl862xx/mxl862xx-api.h. Go read them, they're all part of the extended-VLAN cinematic universe:
struct mdio_relay_data(9)struct mxl862xx_register_mod(9)enum mxl862xx_mac_table_filter(9)struct mxl862xx_mac_table_add(9)struct mxl862xx_mac_table_remove(9)struct mxl862xx_mac_table_read(9)struct mxl862xx_mac_table_query(9)enum mxl862xx_mac_clear_type(9)struct mxl862xx_mac_table_clear(9)enum mxl862xx_age_timer(9)struct mxl862xx_bridge_alloc(9)enum mxl862xx_bridge_config_mask(9)enum mxl862xx_bridge_port_egress_meter(9)struct mxl862xx_qos_meter_cfg(9)enum mxl862xx_bridge_forward_mode(9)struct mxl862xx_bridge_config(9)struct mxl862xx_bridge_port_alloc(9)enum mxl862xx_bridge_port_config_mask(9)enum mxl862xx_color_marking_mode(9)enum mxl862xx_color_remarking_mode(9)enum mxl862xx_pmapper_mapping_mode(9)struct mxl862xx_pmapper(9)struct mxl862xx_bridge_port_config(9)struct mxl862xx_cfg(9)enum mxl862xx_extended_vlan_filter_type(9)enum mxl862xx_extended_vlan_filter_tpid(9)enum mxl862xx_extended_vlan_filter_dei(9)enum mxl862xx_extended_vlan_treatment_remove_tag(9)enum mxl862xx_extended_vlan_treatment_priority(9)enum mxl862xx_extended_vlan_treatment_vid(9)enum mxl862xx_extended_vlan_treatment_tpid(9)enum mxl862xx_extended_vlan_treatment_dei(9)enum mxl862xx_extended_vlan_4_tpid_mode(9)enum mxl862xx_extended_vlan_filter_ethertype(9)struct mxl862xx_extendedvlan_filter_vlan(9)struct mxl862xx_extendedvlan_filter(9)struct mxl862xx_extendedvlan_treatment_vlan(9)struct mxl862xx_extendedvlan_alloc(9)struct mxl862xx_extendedvlan_config(9)enum mxl862xx_vlan_filter_tci_mask(9)struct mxl862xx_vlanfilter_alloc(9)struct mxl862xx_vlanfilter_config(9)enum mxl862xx_ss_sp_tag_mask(9)enum mxl862xx_ss_sp_tag_rx(9)enum mxl862xx_ss_sp_tag_tx(9)enum mxl862xx_ss_sp_tag_rx_pen(9)struct mxl862xx_ss_sp_tag(9)enum mxl862xx_logical_port_mode(9)struct mxl862xx_ctp_port_assignment(9)enum mxl862xx_stp_port_state(9)struct mxl862xx_stp_port_cfg(9)struct mxl862xx_sys_fw_image_version(9)enum mxl862xx_port_type(9)enum mxl862xx_rmon_port_type(9)struct mxl862xx_rmon_port_cnt(9)union mxl862xx_xpcs_an_word(9)enum mxl862xx_xpcs_loopback_mode(9)struct mxl862xx_xpcs_pcs_cfg(9)struct mxl862xx_xpcs_pcs_state(9)struct mxl862xx_xpcs_pcs_disable(9)struct mxl862xx_xpcs_an_restart(9)struct mxl862xx_xpcs_pcs_link_up(9)
And that's the whole page, bestie, you ate it. π§ Source location is ./drivers/net/dsa/mxl862xx, dated October 2026 β yes, a future date, she's ahead of her time π. Now go forth and treat those VLANs. π
π¦ 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