i40e_vc_request_queues_msg(9)
π i40e_vc_request_queues_msg(9) β the Kernel API Manual glow-up π
okay so this is a page straight out of the Kernel API Manual, bestie, and it's about i40e_vc_request_queues_msg β yes that's a whole mouthful, we're saying it with our chest π«Ά
β¨ NAME β¨
literally just i40e_vc_request_queues_msg and nothing else π no little one-liner, no "β does the thing", the original author simply did not feel like writing a description here and honestly? iconic of them. so the name is the name, no cap π
πΈ SYNOPSIS πΈ
int i40e_vc_request_queues_msg (struct i40e_vf *vf , u8 *msg );
that's the whole vibe check: it returns an int, it takes a struct i40e_vf * and a u8 *, and it's out here doing queue negotiation business π¦
π ARGUMENTS π
vfβ a pointer to the VF info π (that's the virtual function we're talking about, she's the main character here)msgβ a pointer to the msg buffer β¨ (this is where the message itself lives)
π DESCRIPTION π
so here's the tea, bestie π β VFs get a default number of queues, but they can totally use this message to request a different number instead. like, "hey, i'd like a different amount please" energy.
now for the two possible endings, and the way this works is genuinely so clean:
- if the request is successful, the PF will reset the VF and return
0β periodt - if it's unsuccessful, the PF will send a message informing the VF of the number of available queues, and then it returns the result of sending the VF a message π so like, the return value is that send-result, not a "no" β keep that straight, iykyk
ngl this is one of those "the return value is not what you assume" situations, so read that second bullet twice before you go debugging at 3am π
π₯ SEE ALSO π₯
first up, the kernel file this all lives in:
./drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
and then the whole friend group β genuinely a massive group chat, everyone's invited π«Ά:
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)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)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)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)__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)i40e_free_vfs(9)i40e_alloc_vfs(9)i40e_pci_sriov_enable(9)i40e_pci_sriov_configure(9)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)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)i40e_vc_enable_queues_msg(9)i40e_vc_disable_queues_msg(9)i40e_check_enough_queue(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)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)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)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)i40e_vc_process_vf_msg(9)i40e_vc_process_vflr_event(9)i40e_validate_vf(9)i40e_check_vf_init_timeout(9)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)
like i said β huge group chat π but every single one of them is there, i checked twice π
and that's the page!! mwah π this lil beauty comes from ./drivers/net/ethernet/intel/i40e and it's dated October 2026, filed under the Kernel API Manual, and it signs off as i40e_vc_request_queues_msg(9) β go read it, she ate πβ¨
π¦ 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