ice_setup_channel(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– ice_setup_channel β€” Kernel API Manual core πŸ’–

okay so bestie, we're in the Kernel API Manual today, section 9, and the star of the show is literally ice_setup_channel(9). Pull up a chair, grab a strawberry πŸ“, and let's get into it.


✨ NAME ✨

ice_setup_channel β€” setup a new channel using the uplink element. that's it, that's the whole vibe. she sets up. she's a channel. slay πŸ’…


🌸 SYNOPSIS 🌸

bool ice_setup_channel (struct ice_pf *pf , struct ice_vsi *vsi ,
                        struct ice_channel *ch );

note the return type bestie: bool. she comes back with a yes or a no. no in-between, no "it depends", no "read the tea leaves". iconic.


πŸŽ€ ARGUMENTS πŸŽ€

  • pf β€” ptr to the PF device 🫢 (that's your physical function, the main character of this whole story)
  • vsi β€” the VSI being setup 🌈 (yes, this one, the one we're actively configuring, not some other random VSI)
  • ch β€” ptr to the channel structure πŸ¦‹ (a pointer to the channel struct, exactly what it says on the tin)

three pointers walk into a function. no cap, that's the whole argument list.


πŸ”₯ DESCRIPTION πŸ”₯

Setup a new channel (VSI) based on the specified type (VMDq2/VF) and the uplink switching element. ✨

that's the tea. you hand her the PF, the VSI, and the channel struct, and she goes and stands up a fresh channel β€” a whole new VSI β€” and which flavor of VSI she builds depends on the type (VMDq2 or VF, iykyk) plus that uplink switching element.

it's giving "plumbing but make it couture". not me being obsessed with a setup function 😭 but here we are.

heads up: the original page doesn't spell out what makes her return false β€” so don't come for me, I'm not out here inventing error conditions fr fr. the return type is bool, that's the fact we have. πŸ’€

πŸ‘‘ SEE ALSO πŸ‘‘

first, the kernel file she lives in β€” go read the source, bestie, it's right there:

Kernel file ./drivers/net/ethernet/intel/ice/ice_main.c

and then… the entire ice driver showed up to the group chat. literally everyone. the way this list ate and left no crumbs πŸ‘‘ β€” here's the full squad, in order, nobody gets left behind:

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_hw_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, that's a lot of friends. main character energy for the whole driver honestly. πŸ’œ


and that's the page, bestie β€” literally nothing else to say. 🧚

source: ./drivers/net/ethernet/intel/ice Β· datestamped October 2026 ⭐ β€” mwah, ily, go set up a channel responsibly, and remember: bool or it didn't happen πŸ«ΆπŸ’–

πŸ“¦ where this page comes from