t4_alloc_mac_filt(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

okay bestie, welcome to the t4_alloc_mac_filt(9) page from the Kernel API Manual β€” it's giving exact-match MAC filter realness ✨

t4_alloc_mac_filt β€” allocates exact-match filters for MAC addresses πŸ’…


✨ SYNOPSIS ✨

int t4_alloc_mac_filt (struct adapter *adap , unsigned int mbox ,
       unsigned int viid , bool free , unsigned int naddr , const u8 **addr ,
       u16 *idx , u64 *hash , bool sleep_ok );

πŸŽ€ ARGUMENTS πŸŽ€

  • adap β€” the adapter. The main character here 🫢
  • mbox β€” mailbox to use for the FW command. Slay, that's the mailbox πŸ’Œ
  • viid β€” the VI id. Yep, exactly that.
  • free β€” if true any existing filters for this VI id are first removed. Like clearing the runway before the new fit πŸ‘‘
  • naddr β€” the number of MAC addresses to allocate filters for (up to 7). Seven max, bestie.
  • addr β€” the MAC address(es). The actual addresses getting filters.
  • idx β€” where to store the index of each allocated filter.
  • hash β€” pointer to hash address filter bitmap.
  • sleep_ok β€” call is allowed to sleep. Nap permission: granted 😴

🌸 DESCRIPTION 🌸

okay so this function allocates an exact-match filter for each of the supplied addresses and sets it to the corresponding address. It's literally one exact-match filter per address, no cap ✨

If idx is not NULL it should have at least naddr entries, each of which will be set to the index of the filter allocated for the corresponding MAC address. So if you're passing idx, make sure it's got room for at least naddr entries, bestie.

If a filter could not be allocated for an address its index is set to 0xffff. Not me getting a little 0xffff fail marker πŸ’€

If hash is not NULL addresses that fail to allocate an exact filter are hashed and update the hash filter bitmap pointed at by hash. The fallback hash vibe is real.

Returns a negative error number or the number of filters allocated. So it's either an error or a count β€” iconic either way πŸ’…


πŸ¦‹ SEE ALSO πŸ¦‹

Kernel file: ./drivers/net/ethernet/chelsio/cxgb4/t4_hw.c

and then the whole reference group chat. All of these, no cap:

t4_wait_op_done_val(9), t4_set_reg_field(9), t4_read_indirect(9),
t4_write_indirect(9), t4_record_mbox(9), t4_wr_mbox_meat_timeout(9),
t4_memory_rw_init(9), t4_memory_update_win(9), t4_memory_rw_residual(9),
t4_memory_rw(9), t4_get_regs_len(9), t4_get_regs(9), t4_eeprom_ptov(9),
t4_seeprom_wp(9), t4_get_raw_vpd_params(9), t4_get_vpd_params(9),
t4_get_pfres(9), sf1_read(9), sf1_write(9), flash_wait_op(9),
t4_read_flash(9), t4_write_flash(9), t4_get_fw_version(9),
t4_get_bs_version(9), t4_get_tp_version(9), t4_get_exprom_version(9),
t4_get_vpd_version(9), t4_get_scfg_version(9), t4_get_version_info(9),
t4_dump_version_info(9), t4_check_fw_version(9),
t4_flash_erase_sectors(9), t4_flash_cfg_addr(9), t4_load_fw(9),
t4_phy_fw_ver(9), t4_load_phy_fw(9), t4_fwcache(9),
fwcaps16_to_caps32(9), fwcaps32_to_caps16(9), t4_link_acaps(9),
t4_link_l1cfg_core(9), t4_restart_aneg(9), t4_handle_intr_status(9),
t4_slow_intr_handler(9), t4_intr_enable(9), t4_intr_disable(9),
t4_config_rss_range(9), t4_config_glbl_rss(9), t4_config_vi_rss(9),
t4_read_rss(9), t4_tp_fw_ldst_rw(9), t4_tp_indirect_rw(9),
t4_tp_pio_read(9), t4_tp_pio_write(9), t4_tp_tm_pio_read(9),
t4_tp_mib_read(9), t4_read_rss_key(9), t4_write_rss_key(9),
t4_read_rss_pf_config(9), t4_read_rss_vf_config(9),
t4_read_rss_pf_map(9), t4_read_rss_pf_mask(9), t4_tp_get_tcp_stats(9),
t4_tp_get_err_stats(9), t4_tp_get_cpl_stats(9), t4_tp_get_rdma_stats(9),
t4_get_fcoe_stats(9), t4_get_usm_stats(9), t4_read_mtu_tbl(9),
t4_read_cong_tbl(9), t4_tp_wr_bits_indirect(9), init_cong_ctrl(9),
t4_load_mtus(9), t4_get_chan_txrate(9), t4_set_trace_filter(9),
t4_get_trace_filter(9), t4_pmtx_get_stats(9), t4_pmrx_get_stats(9),
compute_mps_bg_map(9), t4_get_mps_bg_map(9), t4_get_tp_e2c_map(9),
t4_get_tp_ch_map(9), t4_get_port_type_description(9),
t4_get_port_stats_offset(9), t4_get_port_stats(9), t4_get_lb_stats(9),
t4_mdio_rd(9), t4_mdio_wr(9), t4_sge_decode_idma_state(9),
t4_sge_ctxt_flush(9), t4_read_sge_dbqtimers(9), t4_fw_hello(9),
t4_fw_bye(9), t4_early_init(9), t4_fw_reset(9), t4_fw_halt(9),
t4_fw_restart(9), t4_fw_upgrade(9), t4_fl_pkt_align(9),
t4_fixup_host_params(9), t4_fw_initialize(9), t4_query_params_rw(9),
t4_set_params_timeout(9), t4_set_params(9), t4_cfg_pfvf(9),
t4_alloc_vi(9), t4_free_vi(9), t4_set_rxmode(9),
t4_free_encap_mac_filt(9), t4_free_raw_mac_filt(9),
t4_alloc_encap_mac_filt(9), t4_alloc_raw_mac_filt(9),
t4_free_mac_filt(9), t4_change_mac(9), t4_set_addr_hash(9),
t4_enable_vi_params(9), t4_enable_vi(9), t4_enable_pi_params(9),
t4_identify_port(9), t4_iq_stop(9), t4_iq_free(9), t4_eth_eq_free(9),
t4_ctrl_eq_free(9), t4_ofld_eq_free(9), t4_link_down_rc_str(9),
fwcap_to_fwspeed(9), lstatus_to_fwcap(9), t4_handle_get_port_info(9),
t4_update_port_info(9), t4_get_link_params(9), t4_handle_fw_rpl(9),
init_link_config(9), t4_prep_adapter(9), t4_shutdown_adapter(9),
t4_bar2_sge_qregs(9), t4_init_devlog_params(9), t4_init_sge_params(9),
t4_init_tp_params(9), t4_filter_field_shift(9), t4_init_portinfo(9),
t4_read_cimq_cfg(9), t4_read_cim_ibq(9), t4_read_cim_obq(9),
t4_cim_read(9), t4_cim_write(9), t4_cim_read_la(9), t4_tp_read_la(9),
t4_idma_monitor_init(9), t4_idma_monitor(9), t4_load_cfg(9),
t4_set_vf_mac_acl(9), t4_read_pace_tbl(9), t4_get_tx_sched(9),
t4_sge_ctxt_rd_bd(9), t4_i2c_rd(9), t4_set_vlan_acl(9),
modify_device_id(9), t4_load_boot(9), t4_flash_bootcfg_addr(9)

cute sign-off time πŸŽ€ the footer says source/version ./drivers/net/ethernet/chelsio..., dated October 2026, and the manual name is t4_alloc_mac_filt(9). byeee πŸ’…βœ¨

πŸ“¦ where this page comes from