usb4_usb3_po...ed_bandwidth(9)
π usb4_usb3_port_allocated_bandwidth(9) π
okay so this is a page straight out of the Kernel API Manual and it's literally about asking a USB3 port "hey bestie, how much bandwidth are you currently rocking?" π«Ά No cap, that's the whole vibe.
πΈ NAME πΈ
usb4_usb3_port_allocated_bandwidth β the function that tells you the bandwidth allocated for USB3, iykyk π
β¨ SYNOPSIS β¨
int usb4_usb3_port_allocated_bandwidth (struct tb_port *port , int
*upstream_bw , int *downstream_bw );
π ARGUMENTS π
portβ the USB3 adapter port. this is the main character, the one we're interrogating πupstream_bwβ the allocated upstream bandwidth gets stored in here, bestie. it's an out-param, so it's giving "I'll fill you in" energy β¨downstream_bwβ same deal but for downstream bandwidth. that's where the downstream number goes π¦
π DESCRIPTION π
So what does it actually do? It stores the currently allocated USB3 bandwidth into upstream_bw and downstream_bw, and the units are Mb/s β megabit per second, periodt. π₯
That's it. That's the whole function. lowkey iconic for how straightforward it is π
π¦ RETURN π¦
Returns 0 on success, and a negative errno otherwise. so like, check your return value, bestie β a negative number is the function telling you something went wrong, not me being dramatic π
π SEE ALSO π
This lives in the kernel file ./drivers/thunderbolt/usb4.c, and honestly the whole squad shows up in the references, so here's everyone β no skips, no cuts, fr fr:
usb4_switch_check_wakes(9)usb4_switch_setup(9)usb4_switch_configuration_valid(9)usb4_switch_read_uid(9)usb4_switch_drom_read(9)usb4_switch_lane_bonding_possible(9)usb4_switch_set_wake(9)usb4_switch_set_sleep(9)usb4_switch_nvm_sector_size(9)usb4_switch_nvm_read(9)usb4_switch_nvm_set_offset(9)usb4_switch_nvm_write(9)usb4_switch_nvm_authenticate(9)usb4_switch_nvm_authenticate_status(9)usb4_switch_credits_init(9)usb4_switch_query_dp_resource(9)usb4_switch_alloc_dp_resource(9)usb4_switch_dealloc_dp_resource(9)usb4_port_index(9)usb4_switch_map_pcie_down(9)usb4_switch_map_usb3_down(9)usb4_switch_add_ports(9)usb4_switch_remove_ports(9)usb4_port_unlock(9)usb4_port_hotplug_enable(9)usb4_port_reset(9)usb4_port_configure(9)usb4_port_unconfigure(9)usb4_port_configure_xdomain(9)usb4_port_unconfigure_xdomain(9)usb4_port_sb_read(9)usb4_port_sb_write(9)usb4_port_router_offline(9)usb4_port_router_online(9)usb4_port_enumerate_retimers(9)usb4_port_clx_supported(9)usb4_port_asym_supported(9)usb4_port_asym_set_link_width(9)usb4_port_asym_start(9)usb4_port_margining_caps(9)usb4_port_hw_margin(9)usb4_port_sw_margin(9)usb4_port_sw_margin_errors(9)usb4_port_retimer_set_inbound_sbtx(9)usb4_port_retimer_unset_inbound_sbtx(9)usb4_port_retimer_is_last(9)usb4_port_retimer_is_cable(9)usb4_port_retimer_nvm_sector_size(9)usb4_port_retimer_nvm_set_offset(9)usb4_port_retimer_nvm_write(9)usb4_port_retimer_nvm_authenticate(9)usb4_port_retimer_nvm_authenticate_status(9)usb4_port_retimer_nvm_read(9)usb4_usb3_port_max_link_rate(9)usb4_usb3_port_allocate_bandwidth(9)usb4_usb3_port_release_bandwidth(9)usb4_dp_port_set_cm_id(9)usb4_dp_port_bandwidth_mode_supported(9)usb4_dp_port_bandwidth_mode_enabled(9)usb4_dp_port_set_cm_bandwidth_mode_supported(9)usb4_dp_port_group_id(9)usb4_dp_port_set_group_id(9)usb4_dp_port_nrd(9)usb4_dp_port_set_nrd(9)usb4_dp_port_granularity(9)usb4_dp_port_set_granularity(9)usb4_dp_port_set_estimated_bandwidth(9)usb4_dp_port_allocated_bandwidth(9)usb4_dp_port_allocate_bandwidth(9)usb4_dp_port_requested_bandwidth(9)usb4_pci_port_set_ext_encapsulation(9)usb4_pci_port_ltssm_state(9)
quick vibe check: this whole thing comes from ./drivers/thunderbolt and it's dated October 2026 β so yeah, future-coded of it π that's the sign-off bestie, go read your bandwidth numbers 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