ice_aq_sw_rules(9)
π ice_aq_sw_rules β the Kernel API Manual, bestie edition π
okay so real quick, the manual name is Kernel API Manual and this whole page is literally ice_aq_sw_rules(9) β say that three times fast, I dare you. it's giving "middle of the night driver hack" energy and I'm obsessed. let's get into it β¨
πΈ NAME πΈ
ice_aq_sw_rules β add/update/remove switch rules. that's it. that's the whole vibe. three verbs, one function, no cap π
π¦ SYNOPSIS π¦
int ice_aq_sw_rules (struct ice_hw *hw , void *rule_list , u16
rule_list_sz , u8 num_rules , enum ice_adminq_opc opc , struct ice_sq_cd
*cd );
look at her. six whole arguments. main character energy fr fr π
β¨ ARGUMENTS β¨
hwβ pointer to the HW struct. the hardware in question, the whole point, the moment π«Άrule_listβ pointer to switch rule population list. yes she contains multitudes πrule_list_szβ total size of the rule list, in bytes. total. size. bytes. write it down πnum_rulesβ number of switch rules chillin' inside therule_list. count 'em, bestie π’opcβ switch rules population command type β so like, you pass in the command opcode here. literally your "which one am I doing" card πcdβ pointer to command details structure, orNULL. your choice bestie, both are valid, we don't judge π
π DESCRIPTION π
Add(0x02a0) / Update(0x02a1) / Remove(0x02a2) switch rules commands to firmware.
that's the tea. three opcodes, all up in the firmware's business. 0x02a0 to add, 0x02a1 to update, 0x02a2 to remove β iconic numbers honestly, no notes π₯
ngl this is a firmware command wrapper, so if you're here you already know what you're doing. slay. π
π SEE ALSO π
first up, the kernel file where the magic actually lives:
./drivers/net/ethernet/intel/ice/ice_switch.c
and now, the friend group. the whole group chat. don't skip anybody, that's rude π€
ice_init_def_sw_recp(9), ice_aq_get_sw_cfg(9), ice_aq_add_vsi(9), ice_aq_free_vsi(9), ice_aq_update_vsi(9), ice_is_vsi_valid(9), ice_get_hw_vsi_num(9), ice_get_vsi_ctx(9), ice_save_vsi_ctx(9), ice_clear_vsi_q_ctx(9), ice_clear_vsi_ctx(9), ice_clear_all_vsi_ctx(9), ice_add_vsi(9), ice_free_vsi(9), ice_update_vsi(9), ice_cfg_rdma_fltr(9), ice_aq_alloc_free_vsi_list(9), ice_aq_add_recipe(9), ice_aq_get_recipe(9), ice_update_recipe_lkup_idx(9), ice_aq_map_recipe_to_profile(9), ice_aq_get_recipe_to_profile(9), ice_init_chk_recipe_reuse_support(9), ice_alloc_recipe(9), ice_free_recipe_res(9), ice_release_recipe_res(9), ice_get_recp_to_prof_map(9), ice_get_recp_frm_fw(9), ice_fill_sw_info(9), ice_fill_eth_hdr(9), ice_fill_sw_rule(9), ice_add_marker_act(9), ice_create_vsi_list_map(9), ice_update_vsi_list_rule(9), ice_create_vsi_list_rule(9), ice_create_pkt_fwd_rule(9), ice_update_pkt_fwd_rule(9), ice_update_sw_rule_bridge_mode(9), ice_add_update_vsi_list(9), ice_find_rule_entry(9), ice_find_vsi_list_entry(9), ice_add_rule_internal(9), ice_remove_vsi_list_rule(9), ice_rem_update_vsi_list(9), ice_remove_rule_internal(9), ice_vlan_fltr_exist(9), ice_add_mac(9), ice_add_vlan_internal(9), ice_add_vlan(9), ice_add_eth_mac(9), ice_remove_eth_mac(9), ice_rem_sw_rule_info(9), ice_rem_adv_rule_info(9), ice_cfg_dflt_vsi(9), ice_vsi_uses_fltr(9), ice_check_if_dflt_vsi(9), ice_remove_mac(9), ice_remove_vlan(9), ice_add_entry_to_vsi_fltr_list(9), ice_add_to_vsi_fltr_list(9), ice_determine_promisc_mask(9), ice_remove_promisc(9), ice_clear_vsi_promisc(9), ice_set_vsi_promisc(9), ice_set_vlan_vsi_promisc(9), ice_remove_vsi_lkup_fltr(9), ice_remove_vsi_fltr(9), ice_alloc_res_cntr(9), ice_free_res_cntr(9), ice_share_res(9), ice_find_recp(9), ice_change_proto_id_to_dvm(9), ice_prot_type_to_id(9), ice_fill_valid_words(9), ice_fill_fv_word_index(9), ice_find_free_recp_res_idx(9), ice_calc_recp_cnt(9), ice_add_sw_recipe(9), ice_subscribe_recipe(9), ice_subscribable_recp_shared(9), ice_add_adv_recipe(9), ice_dummy_packet_add_vlan(9), ice_find_dummy_packet(9), ice_fill_adv_dummy_packet(9), ice_fill_adv_packet_tun(9), ice_fill_adv_packet_vlan(9), ice_find_adv_rule_entry(9), ice_adv_add_update_vsi_list(9), ice_add_adv_rule(9), ice_replay_vsi_fltr(9), ice_adv_rem_update_vsi_list(9), ice_rem_adv_rule(9), ice_rem_adv_rule_by_id(9), ice_replay_vsi_adv_rule(9), ice_replay_vsi_all_fltr(9), ice_rm_all_sw_replay_rule_info(9)
like I said. the WHOLE group chat. π
and that's the page bestie!! this one's from the kernel source under ./drivers/net/ethernet/intel/ice, and it's dated October 2026 β future era fr fr π¦ go forth and add/update/remove those switch rules, you're gonna do amazing πβ¨πΈ
π¦ 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