iavf_get_net..._hw_features(9)
π iavf_get_net..._hw_features(9) π
okay so first things first β this is a page from the Kernel API Manual (yes, the big serious kernel one, we're being fancy today π), and the whole thing is about one little function that decides which VLAN things ur netdev is allowed to flip on and off. bestie, it's giving "small function, big vibes." let's get into it β¨
πΈ NAME πΈ
iavf_get_netdev_vlan_hw_features β literally just: grab the NETDEV VLAN features that can be toggled on/off. that's it. that's the whole job π
π¦ SYNOPSIS π¦
netdev_features_t iavf_get_netdev_vlan_hw_features (struct iavf_adapter
*adapter );
like, you hand it an adapter and it hands you back a netdev_features_t. simple. iconic. no notes π
π ARGUMENTS π
adapterβ the board private structure π (this is the iavf adapter thingy, the main character of the whole driver, no cap)
β¨ DESCRIPTION β¨
so here's the tea β: this function looks at which VLAN offload got negotiated β was it VIRTHCNL_VF_OFFLOAD_VLAN, or was it VIRTCHNL_VF_OFFLOAD_VLAN_V2? (yes, the spelling really is like that in the original, we do not fix, we do not touch, we respect the ancestors π)
and based on which one of those two was the one that got negotiated, it determines the VLAN features that can be toggled on and off. toggled. on. and. off. π
that's the whole description, she's short and she knows it π
note: copy those two macro names exactly as written above if you're typing them out β one of them has a little spelling gremlin in it and that gremlin is load-bearing π§
π₯ SEE ALSO π₯
the source lives in the kernel file ./drivers/net/ethernet/intel/iavf/iavf_main.c β go say hi π«Ά
and now, the guest list. it's long. it's gorgeous. it's giving "the whole extended friend group showed up to the function's birthday party." every single one of these is a real 9th-section reference, and yes, we're listing all of them, because skipping any would be a crime and we don't do crimes here π
iavf_pdev_to_adapter(9), iavf_is_reset_in_progress(9), iavf_allocate_dma_mem_d(9), iavf_free_dma_mem(9), iavf_allocate_virt_mem(9), iavf_free_virt_mem(9), iavf_schedule_reset(9), iavf_schedule_aq_request(9), iavf_tx_timeout(9), iavf_misc_irq_disable(9), iavf_misc_irq_enable(9), iavf_irq_disable(9), iavf_irq_enable_queues(9), iavf_irq_enable(9), iavf_msix_aq(9), iavf_msix_clean_rings(9), iavf_map_vector_to_rxq(9), iavf_map_vector_to_txq(9), iavf_map_rings_to_vectors(9), iavf_request_traffic_irqs(9), iavf_request_misc_irq(9), iavf_free_traffic_irqs(9), iavf_free_misc_irq(9), iavf_configure_tx(9), iavf_select_rx_desc_format(9), iavf_configure_rx(9), iavf_find_vlan(9), iavf_add_vlan(9), iavf_del_vlan(9), iavf_get_num_vlans_added(9), iavf_get_max_vlans_allowed(9), iavf_max_vlans_added(9), iavf_vlan_rx_add_vid(9), iavf_vlan_rx_kill_vid(9), iavf_find_filter(9), iavf_add_filter(9), iavf_replace_primary_mac(9), iavf_is_mac_set_handled(9), iavf_mac_change_done(9), iavf_set_mac_sync(9), iavf_set_mac(9), iavf_addr_sync(9), iavf_addr_unsync(9), iavf_promiscuous_mode_changed(9), iavf_set_rx_mode(9), iavf_napi_enable_all(9), iavf_napi_disable_all(9), iavf_configure(9), iavf_up_complete(9), iavf_clear_mac_filters(9), iavf_clear_cloud_filters(9), iavf_clear_fdir_filters(9), iavf_clear_adv_rss_conf(9), iavf_down(9), iavf_acquire_msix_vectors(9), iavf_free_queues(9), iavf_set_queue_vlan_tag_loc(9), iavf_alloc_queues(9), iavf_set_interrupt_capability(9), iavf_config_rss_aq(9), iavf_config_rss_reg(9), iavf_config_rss(9), iavf_fill_rss_lut(9), iavf_init_rss(9), iavf_alloc_q_vectors(9), iavf_free_q_vectors(9), iavf_reset_interrupt_capability(9), iavf_init_interrupt_scheme(9), iavf_free_interrupt_scheme(9), iavf_free_rss(9), iavf_reinit_interrupt_scheme(9), iavf_finish_config(9), iavf_schedule_finish_config(9), iavf_process_aq_command(9), iavf_set_vlan_offload_features(9), iavf_startup(9), iavf_init_version_check(9), iavf_parse_vf_resource_msg(9), iavf_init_get_resources(9), iavf_init_send_offload_vlan_v2_caps(9), iavf_init_recv_offload_vlan_v2_caps(9), iavf_init_send_supported_rxdids(9), iavf_init_recv_supported_rxdids(9), iavf_init_send_ptp_caps(9), iavf_init_recv_ptp_caps(9), iavf_init_process_extended_caps(9), iavf_init_config_adapter(9), iavf_disable_vf(9), iavf_reconfig_qs_bw(9), iavf_reset_step(9), iavf_adminq_task(9), iavf_free_all_tx_resources(9), iavf_setup_all_tx_resources(9), iavf_setup_all_rx_resources(9), iavf_free_all_rx_resources(9), iavf_validate_tx_bandwidth(9), iavf_validate_ch_config(9), iavf_del_all_cloud_filters(9), iavf_is_tc_config_same(9), __iavf_setup_tc(9), iavf_parse_cls_flower(9), iavf_handle_tclass(9), iavf_find_cf(9), iavf_configure_clsflower(9), iavf_delete_clsflower(9), iavf_setup_tc_cls_flower(9), iavf_add_cls_u32(9), iavf_del_cls_u32(9), iavf_setup_tc_cls_u32(9), iavf_setup_tc_block_cb(9), iavf_setup_tc(9), iavf_restore_fdir_filters(9), iavf_open(9), iavf_close(9), iavf_change_mtu(9), iavf_disable_fdir(9), iavf_set_features(9), iavf_features_check(9), iavf_get_netdev_vlan_features(9), iavf_fix_netdev_vlan_features(9), iavf_fix_strip_features(9), iavf_fix_features(9), iavf_check_reset_complete(9), iavf_process_config(9), iavf_probe(9), iavf_suspend(9), iavf_resume(9), iavf_remove(9), iavf_shutdown(9), iavf_init_module(9), iavf_exit_module(9) π
likeβ¦ go read them all, bestie, they're all friends of this function and honestly some of them have main character energy too π
okay that's the page!! mwah π she comes from ./drivers/net/ethernet/intel/iavf and she's stamped October 2026 β yes, October 2026, we're documenting from the future, time travel slay β°β¨ bye bestie, drink some water and don't forget to toggle responsibly πΈπ«Άπ
π¦ 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