summaryrefslogtreecommitdiff
path: root/tools/perf/lib/Documentation/tutorial/git@git.tavy.me:linux.git
diff options
context:
space:
mode:
authorRoger Quadros <rogerq@ti.com>2026-01-30 18:13:43 +0530
committerJakub Kicinski <kuba@kernel.org>2026-02-04 18:12:00 -0800
commit4c8566a12f14c1d13bfb2c32469c06c94a60d25e (patch)
treee41152d2f37c9a34cfadd7ded2d2d698281847a2 /tools/perf/lib/Documentation/tutorial/git@git.tavy.me:linux.git
parent9a9424c756feee9ee6e717405a9d6fa7bacdef08 (diff)
net: ti: icssm-prueth: Add helper functions to configure and maintain FDB
Introduce helper functions to configure and maintain Forwarding Database (FDB) tables to aid with the switch mode feature for PRU-ICSS ports. The PRU-ICSS FDB is maintained such that it is always in sync with the Linux bridge driver FDB. The FDB is used by the driver to determine whether to flood a packet, received from the user plane, to both ports or direct it to a specific port using the flags in the FDB table entry. The FDB is implemented in two main components: the Index table and the MAC Address table. Adding, deleting, and maintaining entries are handled by the PRUETH driver. There are two types of entries: Dynamic: created from the received packets and are subject to aging. Static: created by the user and these entries never age out. 8-bit hash value obtained using the source MAC address is used to identify the index to the Index/Hash table. A bucket-based approach is used to collate source MAC addresses with the same hash value. The Index/Hash table holds the bucket index (16-bit value) and the number of entries in the bucket with the same hash value (16-bit value). This table can hold up to 256 entries, with each entry consuming 4 bytes of memory. The bucket index value points to the MAC address table indicating the start of MAC addresses having the same hash values. Each entry in the MAC Address table consists of: 1. 6 bytes of the MAC address, 2. 2-byte aging time, and 3. 1-byte each for port information and flags respectively. When a new entry is added to the FDB, the hash value is calculated using an XOR operation on the 6-byte MAC address. The result is used as an index into the Hash/Index table to check if any entries exist. If no entries are present, the first available empty slot in the MAC Address table is allocated to insert this MAC address. If entries with the same hash value are already present, the new MAC address entry is added to the MAC Address table in such a way that it ensures all entries are grouped together and sorted in ascending MAC address order. This approach helps efficiently manage FDB entries. Signed-off-by: Roger Quadros <rogerq@ti.com> Signed-off-by: Andrew F. Davis <afd@ti.com> Signed-off-by: Basharath Hussain Khaja <basharath@couthit.com> Signed-off-by: Parvathi Pudi <parvathi@couthit.com> Reviewed-by: Simon Horman <horms@kernel.org> Link: https://patch.msgid.link/20260130124559.1182780-2-parvathi@couthit.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'tools/perf/lib/Documentation/tutorial/git@git.tavy.me:linux.git')
0 files changed, 0 insertions, 0 deletions