ice_devlink_port_split(9)
β¨ ice_devlink_port_split β¨
Kernel API Manual Β· section 9, bestie π
πΈ NAME πΈ
ice_devlink_port_split β the .port_split devlink handler, and yes she's the main character of this particular port situation π
π¦ SYNOPSIS π¦
int ice_devlink_port_split (struct devlink *devlink , struct
devlink_port *port , unsigned int count , struct netlink_ext_ack *extack
);
π ARGUMENTS π
devlinkβ the devlink instance structure itself, the whole vibe container β¨portβ the devlink port structure, aka the port we're doing this to π«Άcountβ how many ports you wanna split to, literally just the number π’extackβ the extended netdev ack structure, for the receipts ngl π¨
π DESCRIPTION π
So this is the callback for the devlink .port_split operation. That's the whole job description, periodt π
But okay, here's the lowkey tragic part: the devlink expression of available options is limited to just a number. That's it. Just a number. No extra flair, no vibes, nothing π So what this function does is go search for an FW port option that supports the specified number. Like, hunting for the one that matches, iykyk π
And because there could be multiple FW port options with the same port split count (yes, several, it's giving options on options), it allows switching between them. So when the same port split count request is issued again, it switches to the next FW port option with the same port split count. Round and round, one after another, she keeps it moving π«
No cap, that number-only situation is legit just how devlink expresses available options β nothing deeper to read into it π
β RETURN β
Zero on success, or an error code on failure. Slay on success, sad little error code otherwise π
π SEE ALSO π
Kernel file: ./drivers/net/ethernet/intel/ice/devlink/port.c
ice_devlink_port_opt_speed_str(9)ice_devlink_port_options_print(9)ice_devlink_aq_set_port_option(9)ice_devlink_port_unsplit(9)ice_devlink_set_port_split_options(9)ice_devlink_set_switch_id(9)ice_devlink_create_pf_port(9)ice_devlink_destroy_pf_port(9)ice_devlink_port_get_vf_fn_mac(9)ice_devlink_port_set_vf_fn_mac(9)ice_devlink_create_vf_port(9)ice_devlink_destroy_vf_port(9)ice_devlink_create_sf_dev_port(9)ice_devlink_destroy_sf_dev_port(9)ice_activate_dynamic_port(9)ice_deactivate_dynamic_port(9)ice_dealloc_dynamic_port(9)ice_dealloc_all_dynamic_ports(9)ice_devlink_port_new_check_attr(9)ice_devlink_port_del(9)ice_devlink_port_fn_hw_addr_set(9)ice_devlink_port_fn_hw_addr_get(9)ice_devlink_port_fn_state_set(9)ice_devlink_port_fn_state_get(9)ice_reserve_sf_num(9)ice_devlink_create_sf_port(9)ice_devlink_destroy_sf_port(9)ice_alloc_dynamic_port(9)ice_devlink_port_new(9)
Okay that's the whole page, bestie β sourced from ./drivers/net/ethernet/intel/i... and dated October 2026, so go forth and split those ports 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