基於封包標頭的封包分類是實現OpenFlow的關鍵技術,而OpenFlow是軟體定義網路的一個知名協定。由於能將搜尋鍵值同時與所有規則進行比對,三態內容定址記憶體(TCAM)是一個常被用於封包分類的硬體。TCAM項目寬度的範圍從36位元到576位元且OpenFlow支援的欄位數仍在增加,因此將一條規則的所有欄位存於一個TCAM項目是不可行的作法。本篇論文提出一個方法能使用短於規則寬度的TCAM項目進行封包分類。我們的方法選擇規則中的一個適合欄位儲存而能大幅降低所需TCAM空間。由於大多數欄位並未儲存於TCAM中,我們的方法可能需要多次TCAM搜尋以得到最終結果。所以我們提出多個技術減少TCAM搜尋次數。實驗結果顯示我們方法的空間需求少於傳統基於TCAM的封包分類方法並有合理的TCAM搜尋次數。我們的方法對於未來需要長規則的OpenFlow應用也能夠提供可擴充性。
Packet classification based on packet headers is the key technology for enabling OpenFlow, one of the promising software-defined-network (SDN) protocols. Ternary content addressable memory (TCAM) is a hardware widely used for packet classification thanks to its capability of comparing a search key with all rules simultaneously. Because the width of TCAM entries in commodity chips varies from 36 bits to 576 bits, it is unlikely to store all fields of a rule in one TCAM entry as the number of supported fields in OpenFlow is increasing. In this work, we present an approach to enabling packet classification using TCAM whose entries are narrower than rules. Our approach selectively stores unique field specifications of one field in rules to drastically reduce the required TCAM storage. Due to the fact that the unknown specifications of the fields are not stored in TCAM, the approach may require multiple TCAM accesses to yield one result. We develop several techniques to reduce the number of TCAM accesses. The experimental results show that the storage requirements of our algorithms are much lower than the traditional TCAM-based packet classification with reasonable number of TCAM accesses. Our approach also provides the scalability for long rules required by potential applications of OpenFlow.