Cesnet Liberouter
  • Projects
  • Liberouter
  • Scampi
  • FlowMon
  • NIC
  • NIFIC
  • IDS
  • NetCOPE
  • VHDL design
  • System software
  • Testing
  • Formal verification
  • Netopeer
  • Documents
  • Our hardware
  • Card Availability
  • Our partners
Main page -> VHDL
InfoHW sectionSW sectionAddr spaceInterfaceVersions

Authors: Jiri Tobola
Jan Korenek
Martin Mikusek


Payload checker (PCK) is component for fast pattern matching using FPGA and TCAM. FPGA is used for data control and buffering and TCAM is used for fast pattern matching. PCK allows to search up to 512 patterns, each up to 16B long. Patterns are shifted against the TCAM word, so more then only one row is used to store one pattern. It enables to achieve high performance up to 3,2Gbps. Patterns can be divided to 256 groups and matching can be done in any combination of those groups (classification is done by LUP record).
Pictures not supported anymore.
Payload checker block structure

PCK cover


Pictures not supported anymore.
PCK cover structure

PCK cover covers Payload checker and translates input command protocol to PCK protocol.


Pictures not supported anymore.
PCK cover FSM

PCK

Pattern matching

Data from input are stored in data buffer and then are searched for desired patterns. Input protocol is realized by signals data, data valid, end of packet and ready. Output protocol is realized by signals result and valid. Result is set after processing whole packet data.

Fast pattern matching is realized by TCAM. This memory is used as follows.


Pictures not supported anymore.
PCK data flow
Usage of 2Mb TCAM in 272 bits row width configuration allows to achieve throughput of 3.2Gbps with set of 512 patterns, each up to 16B long.

SW controlled operations

PCK can be used as simple TCAM driver for SW controlled operations. It can be useful for TCAM testing. It's possible to perform read, write and search operations.

Main Page About Liberouter Team Mailing list SVN Contacts