ice_setup_hw_channel(9)
π
ice_setup_hw_channel(9) β straight out of the Kernel API Manual β¨
okay so bestie, welcome to the Kernel API Manual π this is the page for ice_setup_hw_channel(9), and honestly? it's giving "quiet little helper that does a lot of heavy lifting" energy. let's get into it π«Ά
πΈ NAME πΈ
ice_setup_hw_channel β setup new channel π
like, the whole personality of this function is making a new channel happen. iconic.
β¨ SYNOPSIS β¨
int ice_setup_hw_channel (struct ice_pf *pf , struct ice_vsi *vsi ,
struct ice_channel *ch , u16 sw_id , u8 type );
it returns an int, it takes five things, that's the whole vibe check β
π¦ ARGUMENTS π¦
pfβ ptr to PF device π like, the actual physical function she's working withvsiβ the VSI being setup π this is the VSI in question, the main character of this callchβ ptr to channel structure π a pointer to the channel struct, obviouslysw_idβ underlying HW switching element ID π₯ the ID of the hardware switching element underneath it alltypeβ type of channel to be created (VMDq2/VF) π so it's either VMDq2 or VF, that's the choice you're making
no cap, five args and every single one of them matters π
π§ DESCRIPTION π§
Setup new channel (VSI) based on specified type (VMDq2/VF) and configures Tx rings accordingly β¨
so yeah β she takes the type you passed (VMDq2 or VF), sets up a fresh new channel / VSI off of it, and then configures the Tx rings to match. like the rings are literally getting a whole makeover to fit the new channel ππ₯ it's all in a day's work for her.
π SEE ALSO π
first things first, the kernel file this lives in:
./drivers/net/ethernet/intel/ice/ice_main.cβ that's the file, that's where she hangs out π«Ά
and nowβ¦ the friend group π the ice family is huge, so buckle up β they're all listed below, no cap, every single one:
ice_hw_to_dev(9),ice_get_tx_pending(9),ice_check_for_hang_subtask(9),ice_init_mac_fltr(9)ice_add_mac_to_sync_list(9),ice_add_mac_to_unsync_list(9),ice_vsi_fltr_changed(9),ice_set_promisc(9)ice_clear_promisc(9),ice_vsi_sync_fltr(9),ice_sync_fltr_subtask(9),ice_pf_dis_all_vsi(9)ice_prepare_for_reset(9),ice_do_reset(9),ice_reset_subtask(9),ice_print_topo_conflict(9)ice_print_link_msg(9),ice_vsi_link_event(9),ice_set_dflt_mib(9),ice_check_phy_fw_load(9)ice_check_module_power(9),ice_check_link_cfg_err(9),ice_link_event(9),ice_watchdog_subtask(9)ice_init_link_events(9),ice_handle_link_event(9),ice_aq_prep_for_event(9),ice_aq_wait_for_event(9)ice_aq_check_events(9),ice_aq_cancel_waiting_tasks(9),__ice_clean_ctrlq(9),ice_ctrlq_pending(9)ice_clean_adminq_subtask(9),ice_clean_mailboxq_subtask(9),ice_clean_sbq_subtask(9),ice_service_task_schedule(9)ice_service_task_complete(9),ice_service_task_stop(9),ice_service_task_restart(9),ice_service_timer(9)ice_mdd_maybe_reset_vf(9),ice_handle_mdd_event(9),ice_init_nvm_phy_type(9),ice_init_link_dflt_override(9)ice_init_phy_cfg_dflt_override(9),ice_init_phy_user_cfg(9),ice_phy_cfg(9),ice_check_media_subtask(9)ice_service_task(9),ice_set_ctrlq_len(9),ice_schedule_reset(9),ice_vsi_ena_irq(9)ice_vsi_req_irq_msix(9),ice_xdp_alloc_setup_rings(9),ice_vsi_assign_bpf_prog(9),ice_map_xdp_rings(9)ice_unmap_xdp_rings(9),ice_prepare_xdp_rings(9),ice_destroy_xdp_rings(9),ice_vsi_rx_napi_schedule(9)ice_vsi_determine_xdp_res(9),ice_max_xdp_frame_size(9),ice_xdp_setup_prog(9),ice_xdp_safe_mode(9)ice_xdp(9),ice_ena_misc_vector(9),ice_ll_ts_intr(9),ice_misc_intr(9)ice_misc_intr_thread_fn(9),ice_dis_ctrlq_interrupts(9),ice_free_irq_msix_ll_ts(9),ice_free_irq_msix_misc(9)ice_ena_ctrlq_interrupts(9),ice_req_irq_msix_misc(9),ice_set_ops(9),ice_set_netdev_features(9)ice_fill_rss_lut(9),ice_pf_vsi_setup(9),ice_ctrl_vsi_setup(9),ice_lb_vsi_setup(9)ice_vlan_rx_add_vid(9),ice_vlan_rx_kill_vid(9),ice_rep_indr_tc_block_unbind(9),ice_tc_indir_block_unregister(9)ice_tc_indir_block_register(9),ice_get_avail_q_count(9),ice_get_avail_txq_count(9),ice_get_avail_rxq_count(9)ice_deinit_pf(9),ice_set_pf_caps(9),ice_init_pf(9),ice_is_wol_supported(9)ice_vsi_recfg_qs(9),ice_set_safe_mode_vlan_cfg(9),ice_log_pkg_init(9),ice_load_pkg(9)ice_verify_cacheline_size(9),ice_send_version(9),ice_init_fdir(9),ice_get_opt_fw_name(9)ice_request_fw(9),ice_init_tx_topology(9),ice_init_supported_rxdids(9),ice_init_ddp_config(9)ice_print_wake_reason(9),ice_register_netdev(9),ice_cfg_netdev(9),ice_load(9)ice_unload(9),ice_probe(9),ice_set_wake(9),ice_setup_mc_magic_wake(9)ice_remove(9),ice_shutdown(9),ice_prepare_for_shutdown(9),ice_reinit_interrupt_scheme(9)ice_suspend(9),ice_resume(9),ice_pci_err_detected(9),ice_pci_err_slot_reset(9)ice_pci_err_resume(9),ice_pci_err_reset_prepare(9),ice_pci_err_reset_done(9),ice_module_init(9)ice_module_exit(9),ice_set_mac_address(9),ice_set_rx_mode(9),ice_set_tx_maxrate(9)ice_fdb_add(9),ice_fdb_del(9),ice_fix_features(9),ice_set_rx_rings_vlan_proto(9)ice_set_vlan_offload_features(9),ice_set_vlan_filtering_features(9),ice_set_vlan_features(9),ice_set_loopback(9)ice_set_features(9),ice_vsi_vlan_setup(9),ice_vsi_cfg_lan(9),ice_init_moderation(9)ice_napi_enable_all(9),ice_up_complete(9),ice_up(9),ice_fetch_u64_tx_stats(9)ice_fetch_u64_rx_stats(9),ice_update_vsi_tx_ring_stats(9),ice_update_vsi_rx_ring_stats(9),ice_update_vsi_ring_stats(9)ice_update_vsi_stats(9),ice_update_pf_stats(9),ice_get_stats64(9),ice_napi_disable_all(9)ice_vsi_dis_irq(9),ice_down(9),ice_down_up(9),ice_vsi_setup_tx_rings(9)ice_vsi_setup_rx_rings(9),ice_vsi_open_ctrl(9),ice_vsi_open(9),ice_vsi_release_all(9)ice_vsi_rebuild_by_type(9),ice_update_pf_netdev_link(9),ice_rebuild(9),ice_change_mtu(9)ice_set_rss_lut(9),ice_set_rss_key(9),ice_get_rss_lut(9),ice_get_rss_key(9)ice_get_rss(9),ice_set_rss_hfunc(9),ice_bridge_getlink(9),ice_vsi_update_bridge_mode(9)ice_bridge_setlink(9),ice_tx_timeout(9),ice_setup_tc_cls_flower(9),ice_setup_tc_block_cb_ingress(9)ice_setup_tc_block_cb_egress(9),ice_validate_mqprio_qopt(9),ice_add_vsi_to_fdir(9),ice_add_channel(9)ice_chnl_cfg_res(9),ice_cfg_chnl_all_res(9),ice_setup_channel(9),ice_set_bw_limit(9)ice_create_q_channel(9),ice_rem_all_chnl_fltrs(9),ice_remove_q_channels(9),ice_rebuild_channels(9)ice_create_q_channels(9),ice_setup_tc_mqprio_qdisc(9),ice_cfg_txtime(9),ice_offload_txtime(9)ice_open(9),ice_open_internal(9),ice_stop(9),ice_features_check(9)
like I said β huge friend group. she knows everyone at the function family reunion ππ
okay that's the whole page bestie, you ate that π«Άβ¨
little sign-off from the manual itself: this page lives in ./drivers/net/ethernet/intel/ice, it's the ice_setup_hw_channel(9) page, and it's dated October 2026 π
π¦ 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