ixgbe_negotiate_fc(9)
π ixgbe_negotiate_fc π
okay so bestie, welcome to the Kernel API Manual (section 9, we're fancy like that) β this whole page is about ixgbe_negotiate_fc, one little function with main character energy in the Intel ixgbe driver. it's not scary, i promise, let's get into it π«Ά
πΈ NAME πΈ
ixgbe_negotiate_fc β Negotiate flow control β¨
like, literally just that. it negotiates flow control. no cap.
β¨ SYNOPSIS β¨
int ixgbe_negotiate_fc (struct ixgbe_hw *hw , u32 adv_reg , u32 lp_reg ,
u32 adv_sym , u32 adv_asm , u32 lp_sym , u32 lp_asm );
it's giving seven arguments and a return value of type int. that's a lot of arguments, i know, but they all matter, so let's meet them π
π ARGUMENTS π
hwβ pointer to hardware structure. your actual NIC, the whole vibe check π¦adv_regβ flow control advertised settings. what we are putting out there πββοΈlp_regβ link partner's flow control settings. what they are putting out there πadv_symβ symmetric pause bit in advertisement πadv_asmβ asymmetric pause bit in advertisement πΈlp_symβ symmetric pause bit in link partner advertisement βlp_asmβ asymmetric pause bit in link partner advertisement π₯
ngl, that's three "advertised by us" bits and three "advertised by them" bits, plus the hardware pointer holding it all together. symmetry, we love to see it π
π DESCRIPTION π
so what does it actually do? Find the intersection between advertised settings and link partner's advertised settings. that's it. that's the function. both sides say what they support, and this little icon π§ finds where those two worlds overlap β the flow control you both agree on. it's a situationship resolved via set intersection, periodt π
π SEE ALSO π
first up, the kernel file this lives in β like, the actual home address of this function:
./drivers/net/ethernet/intel/ixgbe/ixgbe_common.c
and then... okay the rest of the guest list is genuinely enormous, so buckle up bestie, because every single one of these is invited to the party π no skipping, no "lol i'll just mention a few", we're doing all of them:
ixgbe_device_supports_autoneg_fc(9)ixgbe_setup_fc_generic(9)ixgbe_start_hw_generic(9)ixgbe_start_hw_gen2(9)ixgbe_init_hw_generic(9)ixgbe_clear_hw_cntrs_generic(9)ixgbe_read_pba_string_generic(9)ixgbe_get_mac_addr_generic(9)ixgbe_get_bus_info_generic(9)ixgbe_set_lan_id_multi_port_pcie(9)ixgbe_stop_adapter_generic(9)ixgbe_init_led_link_act_generic(9)ixgbe_led_on_generic(9)ixgbe_led_off_generic(9)ixgbe_init_eeprom_params_generic(9)ixgbe_write_eeprom_buffer_bit_bang_generic(9)ixgbe_write_eeprom_buffer_bit_bang(9)ixgbe_write_eeprom_generic(9)ixgbe_read_eeprom_buffer_bit_bang_generic(9)ixgbe_read_eeprom_buffer_bit_bang(9)ixgbe_read_eeprom_bit_bang_generic(9)ixgbe_read_eerd_buffer_generic(9)ixgbe_detect_eeprom_page_size_generic(9)ixgbe_read_eerd_generic(9)ixgbe_write_eewr_buffer_generic(9)ixgbe_write_eewr_generic(9)ixgbe_poll_eerd_eewr_done(9)ixgbe_acquire_eeprom(9)ixgbe_get_eeprom_semaphore(9)ixgbe_release_eeprom_semaphore(9)ixgbe_ready_eeprom(9)ixgbe_standby_eeprom(9)ixgbe_shift_out_eeprom_bits(9)ixgbe_shift_in_eeprom_bits(9)ixgbe_raise_eeprom_clk(9)ixgbe_lower_eeprom_clk(9)ixgbe_release_eeprom(9)ixgbe_calc_eeprom_checksum_generic(9)ixgbe_validate_eeprom_checksum_generic(9)ixgbe_update_eeprom_checksum_generic(9)ixgbe_set_rar_generic(9)ixgbe_clear_rar_generic(9)ixgbe_init_rx_addrs_generic(9)ixgbe_mta_vector(9)ixgbe_set_mta(9)ixgbe_update_mc_addr_list_generic(9)ixgbe_enable_mc_generic(9)ixgbe_disable_mc_generic(9)ixgbe_fc_enable_generic(9)ixgbe_fc_autoneg_fiber(9)ixgbe_fc_autoneg_backplane(9)ixgbe_fc_autoneg_copper(9)ixgbe_fc_autoneg(9)ixgbe_pcie_timeout_poll(9)ixgbe_disable_pcie_primary(9)ixgbe_acquire_swfw_sync(9)ixgbe_release_swfw_sync(9)prot_autoc_read_generic(9)prot_autoc_write_generic(9)ixgbe_disable_rx_buff_generic(9)ixgbe_enable_rx_buff_generic(9)ixgbe_enable_rx_dma_generic(9)ixgbe_blink_led_start_generic(9)ixgbe_blink_led_stop_generic(9)ixgbe_get_san_mac_addr_offset(9)ixgbe_get_san_mac_addr_generic(9)ixgbe_get_pcie_msix_count_generic(9)ixgbe_clear_vmdq_generic(9)ixgbe_set_vmdq_generic(9)ixgbe_set_vmdq_san_mac_generic(9)ixgbe_init_uta_tables_generic(9)ixgbe_find_vlvf_slot(9)ixgbe_set_vfta_generic(9)ixgbe_clear_vfta_generic(9)ixgbe_need_crosstalk_fix(9)ixgbe_check_mac_link_generic(9)ixgbe_get_wwn_prefix_generic(9)ixgbe_set_mac_anti_spoofing(9)ixgbe_set_vlan_anti_spoofing(9)ixgbe_get_device_caps_generic(9)ixgbe_set_rxpba_generic(9)ixgbe_calculate_checksum(9)ixgbe_hic_unlocked(9)ixgbe_host_interface_command(9)ixgbe_set_fw_drv_ver_generic(9)ixgbe_clear_tx_pending(9)ixgbe_get_ets_data(9)ixgbe_get_thermal_sensor_data_generic(9)ixgbe_init_thermal_sensor_thresh_generic(9)ixgbe_get_orom_version(9)ixgbe_get_oem_prod_version(9)ixgbe_get_etk_id(9)ixgbe_setup_mac_link_multispeed_fiber(9)ixgbe_set_soft_rate_select_speed(9)
bestie real talk: that's the whole page π no hidden options, no environment variables, no exit statuses, no signals, no bug notes β this manpage is refreshingly short and i am obsessed with that for us. the facts above are the whole facts π
and that's a wrap! this page came from source ./drivers/net/ethernet/intel/i... (yes it's literally truncated like that in the footer, don't come for me π) and it's dated October 2026, under the manual name Kernel API Manual, section 9, page ixgbe_negotiate_fc(9). slay, bye π
β¨π¦
π¦ 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