i40e_aq_dis...capabilities(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– i40e_aq_discover_capabilities πŸ’–

okay so bestie, welcome to the Kernel API Manual entry for i40e_aq_discover_capabilities β€” yes the title is literally truncated with ... in the man page header, that's not me being lazy, that's just how it's printed 😭 anyway. Sit down, grab a lil snack πŸ“, and let's get into it.


✨ NAME ✨

i40e_aq_discover_capabilities β€” no subtitle, no tagline, the function IS the moment πŸ’…


🌸 SYNOPSIS 🌸

int i40e_aq_discover_capabilities (struct i40e_hw *hw , void *buff , u16
buff_size , u16 *data_size , enum i40e_admin_queue_opc list_type_opc ,
struct i40e_asq_cmd_details *cmd_details );

it returns an int, it takes six things, and every single one of them matters. no skipping, i'm watching πŸ‘€


πŸ¦‹ ARGUMENTS πŸ¦‹

  • hw β€” pointer to the hw struct. the main character of this whole operation fr, this is your hardware, your whole vibe.
  • buff β€” a virtual buffer to hold the capabilities. like, this is where the good stuff lands. bring a buffer, get capabilities. iconique πŸŽ€
  • buff_size β€” Size of the virtual buffer. your buffer's measurements, if you will. important!!! don't lie about it πŸ™ˆ
  • data_size β€” Size of the returned data, or buff size needed if AQ err==ENOMEM. so like β€” if your buffer was too small and the firmware hit ENOMEM, this tells you how big a buffer you actually need. it's giving "here's what you should've brought" πŸ’€
  • list_type_opc β€” capabilities type to discover - pass in the command opcode. lowkey the most important arg ngl, you literally tell it what kind of capabilities you're hunting for by handing it the opcode.
  • cmd_details β€” pointer to command details structure or NULL. pop a struct in there if you've got one, or just pass NULL and keep it simple, both are valid, we love a flexible queen 🫢

πŸ‘‘ DESCRIPTION πŸ‘‘

Get the device capabilities descriptions from the firmware.

that's it. that's the whole thing. you're literally asking the firmware "hey bestie, what can this device do, describe it to me" and the firmware is like "omg okay soβ€”" and dumps its whole capability lore into your buffer ✨✨ no cap, this is the function that unlocks the device's whole personality.


🌈 SEE ALSO 🌈

the kernel file that lives here, character for character:

./drivers/net/ethernet/intel/i40e/i40e_common.c

and now... the extended friend group 😭 (all (9), all iconic):

  • i40e_set_mac_type
  • i40e_debug_aq
  • i40e_check_asq_alive
  • i40e_aq_queue_shutdown
  • i40e_aq_get_set_rss_lut
  • i40e_aq_get_rss_lut
  • i40e_aq_set_rss_lut
  • i40e_aq_get_set_rss_key
  • i40e_aq_get_rss_key
  • i40e_aq_set_rss_key
  • i40e_init_shared_code
  • i40e_aq_mac_address_read
  • i40e_aq_mac_address_write
  • i40e_get_mac_addr
  • i40e_get_port_mac_addr
  • i40e_pre_tx_queue_cfg
  • i40e_get_pba_string
  • i40e_get_media_type
  • i40e_poll_globr
  • i40e_pf_reset
  • i40e_clear_hw
  • i40e_clear_pxe_mode
  • i40e_led_is_mine
  • i40e_led_get
  • i40e_led_set
  • i40e_aq_get_phy_capabilities
  • i40e_aq_set_phy_config
  • i40e_set_fc
  • i40e_aq_set_mac_config
  • i40e_aq_clear_pxe_mode
  • i40e_aq_set_link_restart_an
  • i40e_aq_get_link_info
  • i40e_aq_set_phy_int_mask
  • i40e_aq_set_mac_loopback
  • i40e_aq_set_phy_debug
  • i40e_aq_add_vsi
  • i40e_aq_set_default_vsi
  • i40e_aq_clear_default_vsi
  • i40e_aq_set_vsi_unicast_promiscuous
  • i40e_aq_set_vsi_multicast_promiscuous
  • i40e_aq_set_vsi_mc_promisc_on_vlan
  • i40e_aq_set_vsi_uc_promisc_on_vlan
  • i40e_aq_set_vsi_bc_promisc_on_vlan
  • i40e_aq_set_vsi_broadcast
  • i40e_aq_get_vsi_params
  • i40e_aq_update_vsi_params
  • i40e_aq_get_switch_config
  • i40e_aq_set_switch_config
  • i40e_aq_get_firmware_version
  • i40e_aq_send_driver_version
  • i40e_get_link_status
  • i40e_update_link_info
  • i40e_aq_add_veb
  • i40e_aq_get_veb_parameters
  • i40e_prepare_add_macvlan
  • i40e_aq_add_macvlan
  • i40e_aq_add_macvlan_v2
  • i40e_aq_remove_macvlan
  • i40e_aq_remove_macvlan_v2
  • i40e_aq_send_msg_to_vf
  • i40e_aq_debug_read_register
  • i40e_aq_debug_write_register
  • i40e_aq_request_resource
  • i40e_aq_release_resource
  • i40e_aq_read_nvm
  • i40e_aq_erase_nvm
  • i40e_parse_discover_capabilities
  • i40e_aq_update_nvm
  • i40e_aq_get_lldp_mib
  • i40e_aq_set_lldp_mib
  • i40e_aq_cfg_lldp_mib_change_event
  • i40e_aq_stop_lldp
  • i40e_aq_start_lldp
  • i40e_aq_set_dcb_parameters
  • i40e_aq_get_cee_dcb_config
  • i40e_aq_add_udp_tunnel
  • i40e_aq_del_udp_tunnel
  • i40e_aq_delete_element
  • i40e_aq_dcb_updated
  • i40e_aq_tx_sched_cmd
  • i40e_aq_config_vsi_bw_limit
  • i40e_aq_config_vsi_tc_bw
  • i40e_aq_config_switch_comp_ets
  • i40e_aq_config_switch_comp_bw_config
  • i40e_aq_query_vsi_bw_config
  • i40e_aq_query_vsi_ets_sla_config
  • i40e_aq_query_switch_comp_ets_config
  • i40e_aq_query_port_ets_config
  • i40e_aq_query_switch_comp_bw_config
  • i40e_validate_filter_settings
  • i40e_set_filter_control
  • i40e_aq_add_rem_control_packet_filter
  • i40e_add_filter_to_drop_tx_flow_control_frames
  • i40e_aq_alternate_read
  • i40e_aq_suspend_port_tx
  • i40e_aq_resume_port_tx
  • i40e_set_pci_config_data
  • i40e_aq_debug_dump
  • i40e_read_bw_from_alt_ram
  • i40e_aq_configure_partition_bw
  • i40e_read_phy_register_clause22
  • i40e_write_phy_register_clause22
  • i40e_read_phy_register_clause45
  • i40e_write_phy_register_clause45
  • i40e_get_phy_address
  • i40e_led_get_reg
  • i40e_led_set_reg
  • i40e_led_get_phy
  • i40e_led_set_phy
  • i40e_aq_rx_ctl_read_register
  • i40e_read_rx_ctl
  • i40e_aq_rx_ctl_write_register
  • i40e_write_rx_ctl
  • i40e_mdio_if_number_selection
  • i40e_aq_set_phy_register_ext
  • i40e_aq_get_phy_register_ext
  • i40e_aq_write_ddp
  • i40e_aq_get_ddp_list
  • i40e_find_segment_in_package
  • i40e_ddp_exec_aq_section
  • i40e_validate_profile
  • i40e_write_profile
  • i40e_rollback_profile
  • i40e_aq_add_cloud_filters
  • i40e_aq_add_cloud_filters_bb
  • i40e_aq_rem_cloud_filters
  • i40e_aq_rem_cloud_filters_bb

like i said. huge friend group. iykyk πŸ’œ


ok that's the whole page diva, go read your capabilities, hydrate, and remember: data_size will snitch on you if buff was too small 😌

mwah πŸ’‹ this lil rewrite came to you from the fine folks over at ./drivers/net/ethernet/intel/i40e β€” dated October 2026, so mark your calendars bestie, it's giving future slay πŸ—“οΈβœ¨

πŸ“¦ where this page comes from