Look-up engines (look-up tables) are used to implement a search over a variety of different kinds of direct addressable and content addressable tables. Vitis Networking P4 includes a library of different Look-up engine types, which can be one of seven types:
- Binary content addressable memory - Exact match - EM (BCAM) based in URAM or block RAM
- High bandwidth memory/double data rate (HBM/DDR) - EM (BCAM)
- Semi ternary content addressable memory (STCAM) based in URAM or block RAM
- Ternary content addressable memory - ACL (access control lists) (TCAM) based in URAM or block RAM
- TinyBCAM
- TinyTCAM
- Direct table (DCAM)
- Extern Table
Each of these tables takes a user defined header input, metadata input and/or internal defined match-action scalars as a search key and its response is used to trigger its associated actions and to store defined action parameters. Note that Vitis Networking P4 only allows one look-up per packet for each table. These tables are described as follows.