XS-TCAM-104x320:基于FPGA的TCAM男暗開(kāi)源實現(二)
發布時間: 2018-03-15
在之前的輛兒公衆号文章中(zhōng)我(wǒ)(wǒ)們爲大(dà)家介紹了湖南西個(nán)新實設計的新IP核:XS-TCAM-104x320的硬件設計及其具體花靜(tǐ)實現,本篇文章則針對XS-TCAM-話員104x320 IP核的軟件部分(fēn)API的使用進見習行說明,如圖1所示,軟件的實現是通過在FAST 們低軟件庫中(zhōng)添加Libbv庫來實現流表數員場據的各類操作(圖内标紅部分(fēn))。本期文章将水輛着重爲大(dà)家介紹Libbv庫的相關接飛美口以及使用方法。
圖1 FAST實現結構圖
一(yī)、軟件代碼說明
當快為前的XS-TCAM-104x320 IP爸拿 核共支持320條表項,每條表項基于五元組(源、目的IP地址,協場路議号,源、目的端口号)進行匹配,因此其軟件部分(fēn數坐)聲明的數據結構定義如下(xià):
 喝業;用戶在調用數據結構時,需遵守FAST-低吃0.2.0規範,即key值與mask值需一(弟可yī)一(yī)對應,以下(xià)是填充上述數據結構的示例代碼:
影那
&n玩計bsp; 在示例代碼中(zhōng),prot文子o字段爲0,代表匹配ARP類型的報文,所以上述示例代碼的執行關術結果是:添加了兩條流表,一(yī)條支持I對身CMP報文轉發到2号端口,一(yī)條支持ARP報文轉發到2号端口很裡。
&nbs的國p; 在填充完流表之後,用戶可通過調用爲XS-TCAM-104x3畫匠20定制的API接口将流表下(xià)發到硬件中(zhōng),API接窗工口如下(xià)所示:
用戶可在任照做何UA應用中(zhōng)調用上述接口,實現對的也XS-TCAM-104x320流表的操作。
二、示例代碼運行結果
&nb師微sp; 在該示例代碼中(zhōn醫算g),用戶可以通過參數控制4條流表的寫入位置用來測試當前流風數表項位于不同的地址時,硬件查表邏輯是否能正常執行。用戶可在r1(她街)和r2()兩個函數中(zhōng)自行定義4鄉裡條規則的内容,然後在運行示例代碼時使用參數控制流表寫鐵動入的位置,運行示例代碼的命令如下(xià)所示:
林廠
&國舊nbsp;其中(zhōng)參數“1”是指第一(yī)條流表将寫鐘拍入idx爲1的地址,參數“3”是指将第二條流表寫入idx爲3的地址。請也現注意,兩條規則的地址相差必須大(dà)于2,否則會前後相互覆蓋,造動事成未知(zhī)的錯誤。最後一(yī)個參數“64”是指在相她idx0-idx63之間(除了用戶指定的流表位喝拍置)寫滿随機内容的流表,用于測試整個流表空間的查表能力。但數
&nbs銀農p;在流表寫入之後,用戶根據流表将IP地址爲1.2.3.4和1.2.3南黃.5的主機分(fēn)别接入1、2号端口,即可相互正常通信,如圖2所示:
鐘哥
圖2 客戶端ping命令執行截圖
三、源碼的下(xià)載
支持X木木S-TCAM-104x320的新版本FAST軟件開(kāi)通知發環境現已上傳至FAST社區官方網站,用謝錢戶可切換至“代碼”選項卡,點擊“FAST UA”選項,然後點擊圖分讀3按鈕即可下(xià)載新版本的軟件開(kāi)發環境:
圖3 軟件下(xià)載網頁
用戶下(x又有ià)載後可在linux中(zhōng)輸入命令解壓文件:
&知務nbsp; 解壓完成之後,業秒輸入如下(xià)命令進行配置和編譯:
我不
&n些刀bsp; 上述命令執行完成後,用戶可在fast-0.2.0/to白國ols/bv目錄下(xià)找到上述的示例源碼。
服機
&山電nbsp; 如對XS-TCAM-1河坐04x320 IP在軟硬件代碼下(xià)載或測試過科制程中(zhōng)有遇到任何問題,可以通過微黃風信直接與我(wǒ)(wǒ)們聯系,我(wǒ)(wǒ)們會盡快給與回複。
得弟