STRUCT MXL862XX_PMAPPER(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct mxl862xx_pmapper(9) β€” P-mapper Configuration

okay so this is a page from the Kernel API Manual, bestie, and it's all about struct mxl862xx_pmapper β€” the P-mapper config situation. yes it's as niche as it sounds and yes it still slays ✨


🌸 NAME 🌸

struct mxl862xx_pmapper β€” P-mapper Configuration. that's the whole vibe. it's a config struct, it holds mapping info, and honestly it's doing its job flawlessly πŸ’–


πŸŽ€ SYNOPSIS πŸŽ€

here's the shape of it. exact, no cap:

struct mxl862xx_pmapper {
    __le16 pmapper_id;
    u8 dest_sub_if_id_group[73];
 };

that's it. two members. one of them is a 73-entry array and we'll get to why that's iconic in a sec πŸ¦‹


✨ Members ✨

  • pmapper_id β€” the index of the P-mapper. it lives in the range 0-31, so like... 32 of these bad boys max. pick your fave πŸ‘‘
  • dest_sub_if_id_group β€” the sub interface ID group 🫢 and the layout is very particular, so listen up:
    • entry 0 is for non-IP and non-VLAN tagged packets. the ✨no-frills✨ slot.
    • entries 1-8 are the PCP mapping entries, for VLAN tagged packets.
    • entries 9-72 are the DSCP or LAG mapping entries.

that's the full 73, bestie. 1 + 8 + 64. the math is mathing πŸ’…


πŸ’œ Description πŸ’œ

so what's it actually for? it's used by CTP port config and bridge port config. two callers, one struct, main character energy tbh πŸ”₯

here's the tea on the important bit though, and this is a real caveat so don't skip it:

In the case of LAG, it is user's responsibility to provide the mapped entries in the given P-mapper table. nobody's doing it for you, bestie β€” you hand over the entries yourself πŸ™ˆ

in the other modes, the entries are auto mapped from the input packet. the kernel handles it, you just vibe ⭐


🌈 SEE ALSO 🌈

everything's chillin' in the kernel file ./drivers/net/dsa/mxl862xx/mxl862xx-api.h. go read the neighbours, they're all linked up:

  • 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_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_treatment(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)

like, that's the whole friend group. go say hi 🧚


and that's the page!! mwah πŸ’‹ this lil manual lives over in ./drivers/net/dsa/mxl862xx and it's dated October 2026 β€” so yeah, it's from the future and it still ate. bye bestie, go map some packets πŸ“πŸ’…

πŸ“¦ where this page comes from