i40e_pci_sriov_enable(9)
π i40e_pci_sriov_enable(9) β bestie edition π
okay so picture this: it's the Kernel API Manual, and the main character of this page is i40e_pci_sriov_enable(9). She's a function, she lives in the i40e driver, and she's about to make your SR-IOV era happen. let's get into it π¦
β¨ SYNOPSIS β¨
int i40e_pci_sriov_enable (struct pci_dev *pdev , int num_vfs );
like, that's the whole signature. short, iconic, no notes π
π ARGUMENTS π
pdevβ a pointer to apci_devstructure. yes bestie, the actual PCI device struct, she's the one holding the vibes πΈnum_vfsβ the number of VFs to allocate. that's how many virtual functions you're asking for, fr fr π₯
π DESCRIPTION π
Enable or change the number of VFs.
that's it. that's the whole description. lowkey legendary of her to be this concise π«Ά
like β she enables them, or she changes how many there are. either way, VFs are happening. periodt β¨
π SEE ALSO π
okay this is the part where the page goes full group-chat-tag-list. every single one of these is (9), and yes we're keeping all of them because we do NOT leave anyone on read π
the kernel file, first and foremost:
Kernel file ./drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.cβ the actual home address of this whole situation π
the link-state / notify / reset girlies:
i40e_vc_vf_broadcast(9),i40e_vc_link_speed2mbps(9),i40e_set_vf_link_state(9),i40e_vc_notify_vf_link_state(9),i40e_vc_notify_link_state(9),i40e_vc_notify_reset(9),i40e_vc_notify_vf_reset(9),i40e_vc_reset_vf(9)β
the id-checkers (they WILL check your id):
i40e_vc_isvalid_vsi_id(9),i40e_vc_isvalid_queue_id(9),i40e_vc_isvalid_vector_id(9),i40e_vc_get_pf_queue_id(9),i40e_get_real_pf_qid(9),i40e_config_irq_link_list(9)π
queues, rdma qvlist, and vsi resources:
i40e_release_rdma_qvlist(9),i40e_config_rdma_qvlist(9),i40e_config_vsi_tx_queue(9),i40e_config_vsi_rx_queue(9),i40e_alloc_vsi_res(9),i40e_map_pf_queues_to_vsi(9),i40e_map_pf_to_vf_queues(9)πΈ
mappings, vf resources, and the pci quiesce moment:
i40e_enable_vf_mappings(9),i40e_disable_vf_mappings(9),i40e_free_vf_res(9),i40e_alloc_vf_res(9),i40e_quiesce_vf_pci(9)π¦
vlan filters, promisc, and the reset squad:
__i40e_getnum_vf_vsi_vlan_filters(9),i40e_getnum_vf_vsi_vlan_filters(9),i40e_get_vlan_list_sync(9),i40e_set_vsi_promisc(9),i40e_config_vf_promiscuous_mode(9),i40e_sync_vfr_reset(9),i40e_trigger_vf_reset(9),i40e_cleanup_reset_vf(9),i40e_reset_vf(9),i40e_reset_all_vfs(9)π₯
the alloc/free/configure trio (her siblings honestly):
message-sending & version & frame size:
i40e_vc_send_msg_to_vf(9),i40e_vc_send_resp_to_vf(9),i40e_sync_vf_state(9),i40e_vc_get_version_msg(9),i40e_del_qch(9),i40e_vc_get_max_frame_size(9)π
the msg handlers, part one:
i40e_vc_get_vf_resources_msg(9),i40e_vc_config_promiscuous_mode_msg(9),i40e_vc_config_queues_msg(9),i40e_validate_queue_map(9),i40e_vc_config_irq_map_msg(9),i40e_ctrl_vf_tx_rings(9),i40e_ctrl_vf_rx_rings(9),i40e_vc_validate_vqs_bitmaps(9)π
the msg handlers, part two:
i40e_vc_enable_queues_msg(9),i40e_vc_disable_queues_msg(9),i40e_check_enough_queue(9),i40e_vc_request_queues_msg(9),i40e_vc_get_stats_msg(9),i40e_check_vf_permission(9),i40e_vc_ether_addr_type(9),i40e_is_vc_addr_legacy(9),i40e_is_vc_addr_primary(9),i40e_update_vf_mac_addr(9)π
mac & vlan & rdma msgs:
i40e_vc_add_mac_addr_msg(9),i40e_vc_del_mac_addr_msg(9),i40e_vc_add_vlan_msg(9),i40e_vc_remove_vlan_msg(9),i40e_vc_rdma_msg(9),i40e_vc_rdma_qvmap_msg(9)π§
rss & vlan stripping (the glamour corner):
i40e_vc_config_rss_key(9),i40e_vc_config_rss_lut(9),i40e_vc_get_rss_hashcfg(9),i40e_vc_set_rss_hashcfg(9),i40e_vc_enable_vlan_stripping(9),i40e_vc_disable_vlan_stripping(9)π«
cloud filters, all of them:
i40e_validate_cloud_filter(9),i40e_find_vsi_from_seid(9),i40e_del_all_cloud_filters(9),i40e_vc_del_cloud_filter(9),i40e_vc_add_cloud_filter(9),i40e_vc_add_qch_msg(9),i40e_vc_del_qch_msg(9)βοΈ
processing, validation, timeouts:
i40e_vc_process_vf_msg(9),i40e_vc_process_vflr_event(9),i40e_validate_vf(9),i40e_check_vf_init_timeout(9)β³
the ndo gang + trust + stats (saving the best for last, obviously):
i40e_ndo_set_vf_mac(9),i40e_ndo_set_vf_port_vlan(9),i40e_ndo_set_vf_bw(9),i40e_ndo_get_vf_config(9),i40e_ndo_set_vf_link_state(9),i40e_ndo_set_vf_spoofchk(9),i40e_setup_vf_trust(9),i40e_ndo_set_vf_trust(9),i40e_get_vf_stats(9)π
iykyk, that's 95 cross-references and every single one made the cut. no cap. π
π«Ά the sign-off π«Ά
this lil beauty comes to you straight from ./drivers/net/ethernet/intel/i40e, dated October 2026, and she answers to i40e_pci_sriov_enable(9). go enable some VFs bestie, you got this πβ¨π
π¦ 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