Layered interval codes for TCAM-based classification

Anat Bremler-Barr, David Hay, Danny Hendler*

*Corresponding author for this work

Research output: Contribution to journalArticlepeer-review

15 Scopus citations


Ternary content-addressable memories (TCAMs) are increasingly used for high-speed packet classification. TCAMs compare packet headers against all rules in a classification database in parallel and thus provide high throughput. TCAMs are not well-suited, however, for representing rules that contain range fields and previously published algorithms typically represent each such rule by multiple TCAM entries. The resulting range expansion can dramatically reduce TCAM utilization because it introduces a large number of redundant TCAM entries. This redundancy can be mitigated by making use of extra bits, available in each TCAM entry. We present a scheme for constructing efficient representations of range rules, based on the simple observation that sets of disjoint ranges may be encoded much more efficiently than sets of overlapping ranges. Since the ranges in real-world classification databases are, in general, non-disjoint, the algorithms we present split ranges between multiple layers, each of which consists of mutually disjoint ranges. Each layer is then coded and assigned its own set of extra bits. Our layering algorithms are based on approximations for specific variants of interval-graph coloring. We evaluate these algorithms by performing extensive comparative analysis on real-life classification databases. Our analysis establishes that our algorithms reduce the number of redundant TCAM entries caused by range rules by more than 60% as compared with best range-encoding prior work.

Original languageAmerican English
Pages (from-to)3023-3039
Number of pages17
JournalComputer Networks
Issue number13
StatePublished - 5 Sep 2012


  • Packet classification
  • Range rules
  • Routing
  • TCAM


Dive into the research topics of 'Layered interval codes for TCAM-based classification'. Together they form a unique fingerprint.

Cite this