STRUCT MXL862XX_EXTENDEDVLAN_TREATMENT(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– 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 at enum 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 (type struct 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 leading s_. 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, u8 array, 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