29.03.2015 Views

Hardware Based Packet Classification for High Speed Internet Routers

Hardware Based Packet Classification for High Speed Internet Routers

Hardware Based Packet Classification for High Speed Internet Routers

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

7.3 Packing Approach 89<br />

7.3.2 Shadow Packing<br />

In strict partitioning, we viewed columns as the primary dimension of TCAM chips<br />

and sought to pack tables into xed width columns. In shadow packing, on the other<br />

hand, we view rows as the primary dimension of TCAM chips and seek to pack tables<br />

within xed height rows. We consider shadow packing because of the following<br />

two observations.<br />

First, with strict partitioning, when tables of varying width are allocated to the<br />

same column, the number of bits assigned to each table t is equal to h(t) × w(t ′ )<br />

where t ′ is the widest table assigned to that column. This leads to many unused bits<br />

if tables of different widths are assigned to the same column. On the other hand,<br />

horizontally packed tables can be placed next to each other as keeping the vertical<br />

boundaries across multiple tables is unnecessary. Of course, there may be wasted<br />

bits if tables of different heights are packed in the same column. We will allow<br />

tables to be stacked in the same row if they t within the row boundaries.<br />

Second, with strict partitioning, the table ID’s between tables in different columns<br />

cannot be shared. Thus, the number of bits used <strong>for</strong> table IDs grows essentially linearly<br />

with the number of columns. On the other hand, horizontally aligned tables<br />

in the same row can potentially share some “row ID” bits in their table IDs; these<br />

tables would be distinguished by their horizontal offsets.<br />

<strong>Based</strong> on the above two observations, we design the shadow packing scheme<br />

that achieves more space efciency by packing tables horizontally and allowing<br />

multiple tables to share bits in their IDs. We rst dene the concept of shadowing<br />

<strong>for</strong> table ID inheritance and the concept of shadow packing trees <strong>for</strong> representing<br />

table ID inheritance. Then, we present the shadow packing algorithm and discuss<br />

the procedure <strong>for</strong> processing packets with shadow packing.<br />

7.3.2.1 Shadowing<br />

In Figure 7.9(a), table t 0 shadows tables t 00 and t 01 .Wedene the concept of shadowing<br />

as follows:<br />

Denition 7.2 (Shadowing Relationship). For a table t stored in a TCAM, we<br />

use VBegin(t) and VEnd(t) to denote the vertical indexes of the TCAM entries<br />

where the table begins and ends respectively, and use HBegin(t) and HEnd(t) to<br />

denote horizontal indexes of the TCAM bit columns where the table begins and<br />

ends respectively. For any two tables t 1 and t 2 where [VBegin(t 2 ),VEnd(t 2 )] ⊆<br />

[VBegin(t 1 ),VEnd(t 1 )] and HEnd(t 1 ) < HBegin(t 2 ),wesayt 1 shadows t 2 .<br />

When table t 1 shadows t 2 , the ID of t 1 can be reused as part of t 2 ’s ID. Suppose<br />

table t shadows tables t 1 ,⋅⋅⋅,t m , because t’s ID denes the vertical TCAM region<br />

[Begin(t), End(t)], each t i (1 ≤ i ≤ m) can use t’s ID to distinguish t i from tables<br />

outside [Begin(t),End(t)] vertically, and use ⌈logm⌉ bits to distinguish t i from tables<br />

inside [Begin(t), End(t)] vertically. Horizontally, table t and each table t i can be<br />

distinguished by properly setting the GMR of the TCAM.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!