On Fri, 3 Jan 2025 14:06:00 +0800 Wei Fang wrote: > The i.MX95 ENETC supports both MAC hash filter and MAC exact filter. MAC > hash filter is implenented through a 64-bits hash table to match against > the hashed addresses, PF and VFs each have two MAC hash tables, one is > for unicast and the other one is for multicast. But MAC exact filter is > shared between SIs (PF and VFs), each table entry contains a MAC address > that may be unicast or multicast and the entry also contains an SI bitmap > field that indicates for which SIs the entry is valid. > > For i.MX95 ENETC, MAC exact filter only has 4 entries. According to the > observation of the system default network configuration, the MAC filter > will be configured with multiple multicast addresses, so MAC exact filter > does not have enough entries to implement multicast filtering. Therefore, > the current MAC exact filter is only used for unicast filtering. If the > number of unicast addresses exceeds 4, then MAC hash filter is used. > > Note that both MAC hash filter and MAC exact filter can only be accessed > by PF, VFs can notify PF to set its corresponding MAC filter through the > mailbox mechanism of ENETC. But currently MAC filter is only added for > i.MX95 ENETC PF. The MAC filter support of ENETC VFs will be supported in > subsequent patches.
clang reports: drivers/net/ethernet/freescale/enetc/enetc4_pf.c:1158:6: warning: variable 'pf' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized] 1158 | if (err) | ^~~ drivers/net/ethernet/freescale/enetc/enetc4_pf.c:1179:24: note: uninitialized use occurs here 1179 | enetc4_pf_struct_free(pf); | ^~ drivers/net/ethernet/freescale/enetc/enetc4_pf.c:1158:2: note: remove the 'if' if its condition is always false 1158 | if (err) | ^~~~~~~~ 1159 | goto err_wq_task_init; | ~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/freescale/enetc/enetc4_pf.c:1128:21: note: initialize the variable 'pf' to silence this warning 1128 | struct enetc_pf *pf; | ^ | = NULL -- pw-bot: cr