sw_r_vlan_table(9)
π sw_r_vlan_table(9) β Kernel API Manual, but make it make sense
okay so this is a page from the Kernel API Manual and it's all about sw_r_vlan_table, bestie. buckle up, it's short and sweet. π
β¨ NAME β¨
sw_r_vlan_table β read from the VLAN table π¦
β¨ SYNOPSIS β¨
int sw_r_vlan_table (struct ksz_hw *hw , u16 addr , u16 *vid , u8 *fid ,
u8 *member );
like, that's the whole signature. five things go in, an int comes out. slay. π
β¨ ARGUMENTS β¨
hwβ The hardware instance, aka the main character of this whole operation π₯addrβ The address of the table entry. like, which entry we're looking at, iykykvidβ Buffer to store the VID πfidβ Buffer to store the VID. (yes bestie, the page literally says VID again forfidβ not me fixing it, I'm just the messenger π)memberβ Buffer to store the port membership πΈ
β¨ DESCRIPTION β¨
So what does it do? sw_r_vlan_table reads an entry of the VLAN table of the switch. that's it, that's the vibe. no cap. π«Ά
and the way it does it? it calls sw_r_table to get the data. teamwork makes the dream work, fr fr. β¨
Return 0 if the entry is valid; otherwise -1. π (so check that return value, bestie, don't just vibe past it.)
π SEE ALSO π
okay this part is a lot and I'm obsessed. the whole friend group shows up here β starting with the Kernel file ./drivers/net/ethernet/micrel/ksz884x.c, then the structs: struct ksz_hw_desc(9), struct ksz_sw_desc(9), struct ksz_dma_buf(9), struct ksz_desc(9), struct ksz_desc_info(9), struct ksz_mac_table(9), struct ksz_vlan_table(9), struct ksz_port_mib(9), struct ksz_port_cfg(9), struct ksz_switch(9), struct ksz_port_info(9), struct ksz_hw(9), struct ksz_port(9), struct ksz_timer_info(9), struct ksz_shared_mem(9), struct ksz_counter_info(9), struct dev_info(9), struct dev_priv(9). iconic lineup π
then the function besties, part one: hw_turn_on_intr(9), hw_block_intr(9), sw_r_table(9), sw_w_table_64(9), sw_w_sta_mac_table(9), port_r_mib_cnt(9), port_r_mib_pkt(9), port_r_cnt(9), port_init_cnt(9), port_cfg(9), port_r8(9), port_r16(9), port_w16(9), sw_chk(9), sw_cfg(9), sw_cfg_broad_storm(9), sw_get_broad_storm(9), sw_dis_broad_storm(9), sw_ena_broad_storm(9), sw_init_broad_storm(9), hw_cfg_broad_storm(9), sw_dis_prio_rate(9), sw_init_prio_rate(9), sw_dis_diffserv(9), sw_dis_802_1p(9), sw_cfg_replace_null_vid(9), sw_cfg_replace_vid(9), sw_cfg_port_based(9), sw_dis_multi_queue(9), sw_init_prio(9), port_get_def_vid(9), sw_init_vlan(9), sw_cfg_port_base_vlan(9), sw_set_addr(9), sw_set_global_ctrl(9), port_set_stp_state(9), sw_clr_sta_mac_table(9), sw_init_stp(9), sw_block_addr(9) π§
part two, the phy/wol girlies: hw_r_phy(9), hw_w_phy(9), eeprom_read(9), eeprom_write(9), port_get_link_speed(9), port_set_link_speed(9), port_force_link_speed(9), hw_chk_wol_pme_status(9), hw_clr_wol_pme_status(9), hw_cfg_wol_pme(9), hw_cfg_wol(9), hw_set_wol_frame(9), hw_add_wol_arp(9), hw_add_wol_bcast(9), hw_add_wol_mcast(9), hw_add_wol_ucast(9), hw_enable_wol(9) π
part three, hw everything: hw_init(9), hw_reset(9), hw_setup(9), hw_setup_intr(9), hw_set_desc_base(9), hw_start_rx(9), hw_stop_rx(9), hw_start_tx(9), hw_stop_tx(9), hw_disable(9), hw_enable(9), hw_alloc_pkt(9), hw_send_pkt(9), hw_set_addr(9), hw_read_addr(9), hw_clr_multicast(9), hw_set_grp_addr(9), hw_set_multicast(9), hw_set_promiscuous(9), sw_enable(9), sw_setup(9) β
part four, timers/descriptors/memory: ksz_start_timer(9), ksz_stop_timer(9), ksz_alloc_soft_desc(9), ksz_alloc_desc(9), free_dma_buf(9), ksz_init_rx_buffers(9), ksz_alloc_mem(9), ksz_free_desc(9), ksz_free_buffers(9), ksz_free_mem(9), send_packet(9), transmit_cleanup(9), tx_done(9), netdev_tx(9), netdev_tx_timeout(9), netdev_intr(9), netdev_close(9), netdev_open(9), netdev_query_statistics(9), netdev_set_mac_address(9), netdev_set_rx_mode(9), netdev_ioctl(9), mdio_read(9), mdio_write(9) π
and the finale, the netdev/ethtool crew: netdev_get_link_ksettings(9), netdev_set_link_ksettings(9), netdev_nway_reset(9), netdev_get_link(9), netdev_get_drvinfo(9), netdev_get_regs_len(9), netdev_get_regs(9), netdev_get_wol(9), netdev_set_wol(9), netdev_get_msglevel(9), netdev_set_msglevel(9), netdev_get_eeprom_len(9), netdev_get_eeprom(9), netdev_set_eeprom(9), netdev_get_pauseparam(9), netdev_set_pauseparam(9), netdev_get_ringparam(9), netdev_get_strings(9), netdev_get_sset_count(9), netdev_get_ethtool_stats(9), netdev_set_features(9), dev_monitor(9), netdev_init(9) π
periodt. that's the whole guest list. π
and that's the page!! mwah π this cutie comes to you from ./drivers/net/ethernet/micrel, dated October 2026 β go read the source, bestie, it's giving main character energy ππ«Ά
π¦ 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