idpf_tx_start(9)
π idpf_tx_start(9) π
okay so bestie, welcome to the Kernel API Manual entry for idpf_tx_start β yes that's the manual name and yes you're gonna read it and you're gonna get it. This one's a lil cutie: it's the function that picks the right Tx queue for your buffer. Short page, big slay. Let's go πΈ
β¨ NAME β¨
idpf_tx_start β picks out the right Tx queue so your buffer actually gets sent. no cap, that's the whole job π
π¦ SYNOPSIS π¦
netdev_tx_t idpf_tx_start (struct sk_buff *skb , struct net_device
*netdev );
like, look at her. two args. clean. iconic π
πΈ ARGUMENTS πΈ
skbβ the send buffer, aka the packet-shaped thing you're trying to yeet out the door π¦netdevβ the network interface device structure, aka the whole vibe of the interface it's leaving from π«Ά
β RETURN β
Returns NETDEV_TX_OK if it got sent β slay π β otherwise it hands you back an error code. so like, check it, bestie π
π SEE ALSO π
okay so this is the long part and no, I'm not skipping any of it, because every single one of these deserves its little moment in the group chat. go read them, iykyk π
Kernel file ./drivers/net/ethernet/intel/idpf/idpf_txrx.c
then, in no particular order but exactly this order: idpf_chk_linearize(9), idpf_tx_timeout(9), idpf_tx_buf_rel_all(9), idpf_tx_desc_rel(9), idpf_compl_desc_rel(9), idpf_tx_desc_rel_all(9), idpf_tx_buf_alloc_all(9), idpf_tx_desc_alloc(9), idpf_compl_desc_alloc(9), idpf_tx_desc_alloc_all(9), idpf_rx_page_rel(9), idpf_rx_hdr_buf_rel_all(9), idpf_rx_buf_rel_bufq(9), idpf_rx_buf_rel_all(9), idpf_rx_desc_rel(9), idpf_rx_desc_rel_bufq(9), idpf_rx_desc_rel_all(9), idpf_rx_buf_hw_update(9), idpf_rx_hdr_buf_alloc_all(9), idpf_post_buf_refill(9), idpf_rx_post_buf_desc(9), idpf_rx_post_init_bufs(9), idpf_rx_buf_alloc_singleq(9), idpf_rx_bufs_init_singleq(9), idpf_rx_buf_alloc_all(9), idpf_rx_bufs_init(9), idpf_rx_bufs_init_all(9), idpf_rx_desc_alloc(9), idpf_bufq_desc_alloc(9), idpf_rx_desc_alloc_all(9), idpf_vector_to_queue_set(9), idpf_qp_switch(9), idpf_txq_group_rel(9), idpf_rxq_sw_queue_rel(9), idpf_rxq_group_rel(9), idpf_vport_queue_grp_rel_all(9), idpf_vport_queues_rel(9), idpf_vport_init_fast_path_txqs(9), idpf_vport_init_num_qs(9), idpf_vport_calc_num_q_desc(9), idpf_vport_calc_total_qs(9), idpf_vport_calc_num_q_groups(9), idpf_vport_calc_numq_per_grp(9), idpf_rxq_set_descids(9), idpf_txq_group_alloc(9), idpf_rxq_group_alloc(9), idpf_vport_queue_grp_alloc_all(9), idpf_vport_queues_alloc(9), idpf_tx_read_tstamp(9), idpf_tx_splitq_clean(9), idpf_tx_clean_bufs(9), idpf_tx_handle_rs_completion(9), idpf_tx_clean_complq(9), idpf_wait_for_sw_marker_completion(9), idpf_tx_splitq_build_ctb(9), idpf_tx_splitq_build_flow_desc(9), idpf_txq_has_room(9), idpf_tx_maybe_stop_splitq(9), idpf_tx_buf_hw_update(9), idpf_tx_res_count_required(9), idpf_tx_splitq_bump_ntu(9), idpf_tx_get_free_buf_id(9), idpf_tx_splitq_pkt_err_unmap(9), idpf_tx_splitq_map(9), idpf_tso(9), idpf_tx_splitq_get_ctx_desc(9), idpf_tx_drop_skb(9), idpf_tx_tstamp(9), idpf_tx_set_tstamp_desc(9), idpf_tx_splitq_need_re(9), idpf_tx_splitq_frame(9), idpf_rx_hash(9), idpf_rx_csum(9), idpf_rx_splitq_extract_csum_bits(9), idpf_rx_rsc(9), idpf_rx_hwtstamp(9), __idpf_rx_process_skb_fields(9), idpf_rx_hsplit_wa(9), idpf_rx_splitq_test_staterr(9), idpf_rx_splitq_is_eop(9), idpf_rx_splitq_clean(9), idpf_rx_update_bufq_desc(9), idpf_rx_clean_refillq(9), idpf_rx_clean_refillq_all(9), idpf_vport_intr_clean_queues(9), idpf_vport_intr_napi_del_all(9), idpf_vport_intr_napi_dis_all(9), idpf_vport_intr_rel(9), idpf_vport_intr_rel_irq(9), idpf_vport_intr_dis_irq_all(9), idpf_vport_intr_buildreg_itr(9), idpf_update_dim_sample(9), idpf_net_dim(9), idpf_vport_intr_update_itr_ena_irq(9), idpf_vport_intr_req_irq(9), idpf_vport_intr_write_itr(9), idpf_vport_intr_ena_irq_all(9), idpf_vport_intr_dis_dim_all(9), idpf_vport_intr_deinit(9), idpf_tx_dim_work(9), idpf_rx_dim_work(9), idpf_init_dim(9), idpf_vport_intr_napi_ena_all(9), idpf_tx_splitq_clean_all(9), idpf_rx_splitq_clean_all(9), idpf_vport_splitq_napi_poll(9), idpf_vport_intr_map_vector_to_qs(9), idpf_vport_intr_init_vec_idx(9), idpf_vport_intr_napi_add_all(9), idpf_vport_intr_alloc(9), idpf_vport_intr_init(9), idpf_config_rss(9), idpf_fill_dflt_rss_lut(9), idpf_init_rss_lut(9), idpf_deinit_rss_lut(9)
bestie that list is long long. it's giving "read the whole thing before you touch the driver". respect it π
and that's the page, mwah π little sign-off time: this beauty lives at ./drivers/net/ethernet/intel/idpf and the version/date stamp on her is October 2026, page idpf_tx_start(9). go forth and queue your buffers correctly, queen πβ¨
π¦ 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