TWI323108B - Powerful and expandable pipeline architecture for a network device - Google Patents

Powerful and expandable pipeline architecture for a network device Download PDF

Info

Publication number
TWI323108B
TWI323108B TW095105060A TW95105060A TWI323108B TW I323108 B TWI323108 B TW I323108B TW 095105060 A TW095105060 A TW 095105060A TW 95105060 A TW95105060 A TW 95105060A TW I323108 B TWI323108 B TW I323108B
Authority
TW
Taiwan
Prior art keywords
search
network device
search engine
packet
data
Prior art date
Application number
TW095105060A
Other languages
English (en)
Other versions
TW200644523A (en
Inventor
carl smith Brandon
Cao Jun
Original Assignee
Broadcom Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Broadcom Corp filed Critical Broadcom Corp
Publication of TW200644523A publication Critical patent/TW200644523A/zh
Application granted granted Critical
Publication of TWI323108B publication Critical patent/TWI323108B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/742Route cache; Operation thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3063Pipelined operation

Description

1323108 九、發明說明: 【發明所屬之技術領域】 本發明涉及在網路巾處理資料_職備,更娜地,涉及 一種用於網路設備以實現處_多功紐和可擴展_流水線結 構。 【先前技術】 =個網路可能包括-個或者多個網路設備,例如乙太網交換 _機’每-個網路設備又包括多翻來處理網路設備轉發的資訊的 •模組。具體來說,顧備可能包括設計成通過網路發送和接收資 .料的介面模組,還包括記憶體管理單元(MMU), 存儲將要被傳送來作進—步處理的㈣,還包括解析模組, 該模組可以根據指令來檢查和處理資料。該解析模組包括決定應 該^資料定向到哪個目轉的交換機制。該網路設備的一個痒可 月b*疋CPU璋,該蟑可以使該網路設備向外部的交換/路由控制實體 #或CPU發送資訊’或從外部的交換/路由控制實體或cpu接收資 訊。 、 很多網路設備像乙太網交換機這樣工作,資料包從多個痒進 入麟設備,先經過交換和其他的處理,然後MMU將資料包轉 發到-個或者多個目的埠。MMU使得在多個不同的痒之間共用資 料包緩^ ’爲輪人口、輸出口以及每級服務仵列提供資源保證。 然而,多數現有技術衷的網路設備不具備擴展性,同時其功能也 有局限。另外—些情財,如果現有技術中的設備具有很豐富的
5 多功能性,那麼當他們在處理特定功能時速度很慢。因此,非常 需要一種強大又具擴展性的網路設備。 【發明内容】 根據本發明的一個方面,提供一種在資料網路中處理資料的 網路設備,所述網路設備包括: 多個埠,接收資料包並發送已處理的資料包; 修改引擎,與所述多個埠通信,分析、評估和修改資料包以 • 生成處理後的資料包; 一組搜索引擎流水線級,與所述修改引擎通信,通過多個搜 索引擎執行查找搜索; 其中所述一組搜索引擎流水線級按照順序處理步驟執行搜索 請求,其中任何一級搜索引擎流水線可以向所述多個搜索引擎提 父特定的搜索請求’並在對應的步驟中接收特定資料包所特有的 搜索結果。 鲁 優選地’所述一組搜索引擎流水線級中的每一級在所述網路 設備的預定時鐘周期數内執行其各自的處理。 優選地,所述一組搜索引擎流水線級通過時分複用請求/結果 環與所述多個搜索引擎通信。 優選地,所述多個搜索引擎對存儲在網路設備外部的記憶體 中的外部表執行搜索。 優選地,所述多個搜索引擎從多個搜索引擎流水線級中接收 ϋ發的搜索請求。 優選地,所述多個搜索引擎包括基於演算法的搜索引擎和義 於内容可定址記憶體的搜索引擎兩者中的至少一個。 優選地’每個搜索引擎流水線級基於所述特定的搜索請求確 定將要執行的搜索類型和將要使用的搜索弓丨擎。 根據本發明的一個方面,提供一種在網路設備中處理資料的 方法,所述方法包括如下步驟: 通過網路設備的多個埠接收資料包; 處理所述接收的資料包,從而對所述接收的資料包進行分 析、評估和修改以生成處理後的資料包; 通過一組搜索引擎流水線級執行表的查找搜索; 將所述處理後的資料包傳送到所述多個埠中的輸入口; 其中任何一級搜索引擎流水線可以向所述多個搜索引擎提交 特疋的搜索請求’並在制的步驟巾接_定資料包所特有的搜 索結果。 優選地,執行所述執行查找搜索的步驟中,每一級搜索引擎 概水線在所述網路設備的預定時鐘周期數内執行其各自的處理。 優選地’所述執行表的查找搜索的步驟包括通過與所述多個 搜索弓丨擎通仏的時分複用請求/結果環發送和接收搜索請求和搜索 結果。 優k地’所述執行表的查找搜索的步驟包括對存儲在所述網 路'又備外部的記紐⑽外部雜表執行搜索。 1323108 優選地’所述執行表的查找搜索的步驟包括傳送來自多個搜 索引擎流水線級的並發搜索請求。 優選地,所述執行表的查找搜索的步驟包括使用包括基於演 舁法的搜索引擎和基於内容可定址記憶體的搜索引擎兩者中至少 一個的搜索引擎執行搜索。 根據本發明的一個方面,提供一種處理資料的網路設備,包 括: # 接收資料包和傳送處理後的資料包的埠裝置; 處理所述接收的資料包,從而分析、評估和修改所述接收的 資料包以生成處理後資料包的處理裝置; 通過一組搜索引擎流水線級執行表的查找搜索的查找搜索裝 置; 其中所述查找搜索裝置允許任何一級搜索引擎流水線可以向 所述多個搜索引擎中的至少一個提交特定的搜索請求,並在對應 φ的步驟中接收特定資料包所特有的搜索結果。 優選地,所述查找搜索裝置確保所述一組搜索引擎流水線級 中的每一級在所述網路設備的預定時鐘周期數内執行其各自的處 理。 優選地,所述查找搜索裝置對存儲在網路設備外部的記憶體 t的外部表執行搜索。 優選地,所述多個搜索引擎從所述查找搜索裝置中接收並發
8 1323108 的搜索請求。 優選地,所述查找搜索裝置使用包括基於演算法的搜索引擎 和基於内容可定址記憶體的搜索引擎兩者中至少一個的搜索引擎 執行搜索。 優選地,所述查找搜索裝置基於所述特定的搜索請求確定將 要執行的搜索類型和將要使用的搜索引擎。 【實施方式】 • 圖1所示爲實現本發明一個實施例的網路設備例如交換晶片 的示意圖。設備100包括輸入口/輸出口模組112和113、記憶體 管理單元(MMU) 115、分析器130和搜索引擎120。輸入口/輸 出口模組用於資料緩存以及發送資料至分析器。分析器13〇分析 接收的資料並基於已分析的資料利用搜索引擎12〇執行查找。記 憶體管理單元115的主要功能是即使在嚴重堵塞的情況下,也可 以以可預測方法有效地管理單元緩存和資料包指標資源。通過這 鲁些模組’會發生資料包修改’並且資料包可發送到合適的目的埠。 根據本發明的幾個實施例,設備1〇〇還可以包括一個内部交 織问速埠(internal fabric high speed port)例如 HiGig™ 或高速槔 108、一個或多個外部乙太網埠1〇9a 1〇9χ以及一個埠I〗。。 高速埠108胁在系統中互連各種網路設備,從而組成一個内部 父換網’用於在外部源璋與一個或多個外部目的槔間傳輸資資料 包^•樣’南速埠1〇8在包括多個互相連接的網路設備的系統外 邛疋不可見的。CPU埠11〇用於發送資訊給外部交換/路由控制實
9 1323108 體或CUP,以及從其中接收資訊。根據本發明的一個實施例,CUP 埠110可視爲外部乙太網埠中的一個。設備100通過 CPU處理模組ill (如CMIC ’其與連接設備100與外部CPU的 PCI資料匯流排連接)與外部/片外CPU連接。 此外’搜索引擎模組120可附加的搜索引擎模組122、124和 126組成,以執行用於網路設備1〇〇處理的資料的特徵化和修改過 程中的特定查找。同樣,分析器130也包括有附加的模組,用於 對從内部交織高速埠134和其他埠138接收的資料進行分析,分 析器130還包括有其他模組132和136,用以轉送資料回網路設備 的埠》高速槔134和二階分析n 138在下面將給出詳細描述。 網路資訊通過外部乙太網埠109a_ 1〇9χ進 脱。娜™輸㈣輪由至 -個或多個唯-的目的乙太網和在本發明的一個實施例中設 備100支援12個物理乙太網埠109和一個高速埠1〇8,其中每個 物理乙太網埠可以10/100/1000Mbps的數率工作該高速蜂108 可以lOGbps或12Gbps的速率工作。 該網路設備結構的重要性體現在它可以提供快速處理接 料的能力並實現靈活處理。所述靈活性的—部 即時收到的資料包的流水線結構。包資料和包屬性以=用於處理 :增網路設備的各模組中傳輪。該流水線結構中 要疋的時鐘周期,資料包被順序地處理。 而 因此’解析資料包, 1323108 並執行查找表’選擇一個特定的路由過程,資料包就這樣被修改, 然後被發送給輸出口。所述流水線結構的每一級執行各自的功 能,從而使網路設備的所有功能得以實現。 所述靈活性的另一部分,構成搜索引擎模組120的搜索引擎 122-126爲“從”單元,這樣它們可以服務一個或多個流水線級。 在一個實施例中,時分複用(TDM)請求/結果環將該流水線級與 搜索引擎連接。不同的流水線級可以接入到同一個搜索引擎或 鲁表。這樣使得搜索流水線和服務於該流水線的搜索引擎之間存在 一個抽象層(abstraction layer)。因此,所述流水線級的順序和設 計並不受所述搜索引擎的物理位置的限制。 所述請求/結果環可以出現在該網路設備中的不同位置和路由 塊中。這使得’例如’在輸入級内的流水線級即pre_MMU和在輸 出級的流水線級即post-MMU,可以訪問同一個搜索引擎和表。多 個搜索請求可以同時産生和同時處理。這種靈活性是非常重要 籲的,這樣本發明的網路設備可以處理多種類型的資料包並保持正 常的流水線結構的處理。 這種結構的另外一個優點是一個流水線級可從兩個或者多個 不同的搜索引擎中請求同一個搜索的能力,這取決於網路設備處 於何種模式。例如,A模式中可能會使用演算法搜索引擎來進行 最長字首匹配(LPM)搜索,而]8模式中則可能會使用内容可定 址記憶體搜索引擎(CAM)來進行LPM搜索。抽象層使得流水線 11 • 4?、 1323108 級在執行搜索時並不知道使用何種搜索引擎,是基於演算法的, 基於内谷了疋址s己丨思體的,逛是基於内部或外部存健的搜索引擎 來執行搜索。這使得除了靈活之外還可以使得流水線結構保持自 身的時間線(timeline )要求。 因此本發明的網路设備的流水線結構可獨立於搜索引擎, 並且該結構在需要的時候可以進行擴展。搜索引擎和流水線級分 開使得流水線級可靈活配置’並使得搜索引擎可以根據網路設備 •的工作模組來回應搜索請求。 物理埠109的結構由圖2進-步示出。一連串的串列化/並行 化模組103發送和接收資料,其中每個埠接收的資料由埠理器 1102A-L進行管理。該多個埠管理器具有定時信號發生器⑽和 匯流排代理105卩實現它們的操作。資料接收和傳送至淳資訊庫, 祕便可以監視流量。值得注意的是,高速# 1〇8也具有近似的 功能但不需要如此多的部件,因爲只需對一個痒進行管理。 ♦在本發明的-個實施例中,設備1〇〇使用共用記憶體結構, 如圖3a-3b所示,MMU115實現在不同埠間共用包暫存器,同時 爲每個輸入口、輸出口和與每個輸出口相關的服務仵列級提供資 f保證。圖3a所示爲本發明的共用記憶體結構的示意圖。具體來 兄"又備100的吕己憶體貧源包括單元緩存池(CBp)記憶體 和=輪传列(XQ)言己憶體304。CBp記憶體3〇2是片外資源,某 二只施例中’ CBP記憶體由4個DRAM曰曰曰月306a-306d組成。根
12 1323108 據本發明的一個實施例,每個DRAM晶片具有288Mbits的容量, CBP s己憶體3〇2的總容量爲i44Mbytes的原始存儲量。如圖3b所 示’ CBP記憶體302被分成多個256K576位元組的單元 308a-308x ,其中每個單元包括32位元組的報頭緩存31〇、最高爲 512位元組的資料包312和32位元組的預留空間314。這樣的話, 每個輸入包佔用至少一個完整576位元組的單元3〇8<>因此當輸入 包括64位元组的幀時,輸入包中爲其預留有576位元組的空間, #儘管該576位元組中只有64位元組被該幀使用。 參看圖3a,XQ記憶體3〇4包括一列資料包指標316&_316χ, 指向CBP記憶體3〇2,其中不同的XQ指標316與每個埠相關 聯。CBP記憶體302的單元計數和XQ記憶體3〇4的資料包計數 可基於輸入口、輸出口和服務級進行追蹤。這樣的話,設備ι〇〇 可基於一個單元和/或服務提供資源保證。 一旦資料包通過源埠109進入設備1〇〇,該資料包將被傳輸至 籲分析n以進行處理。在處理過程中,每個輸人口和輸出口上的資 料包共用系、統資源302和304。在特定實施例中,兩個獨立的64 位元組資料包脈衝由本地埠高速埠轉送至MMMu。圖4所示爲由 MMU II5用於資源分配限制以確保對資源的公平訪問的暫存器管 理機構的示意圖。MMU m包括輸入口背塵機構4〇4、行首(_ ofline)機構4〇6和加權隨機早期檢測機構4〇8。輸入口背壓機構 4〇4支板無損耗狀態、,並對所有輸入口公平地管理暫存器資源。行 13 首機構4〇6支援對緩存資源的訪問,同時優化系統的吞吐量。加 權隨機早期檢測機構408改善整體的網路吞吐量。 輸入口背壓機構404使用資料包或單元計數器以追蹤每個輸 入口使用的資料包或單元的數量。輸入σ背壓機構4〇4包括有用 於一組8個分別設置的閥值的寄存器,和用於指定8個閥值中的 哪-個被用於系統中-個輸人口的寄存||。該組閥值包括極限間 值412、放棄極限(discardlimit)閥值414和重置極限閥值416。 如果與輸入口資料包/單元的使用相關聯的計數器增加且超過放棄 極限閥值414肖,輸入口處的資料包將被丢棄。基於用於追蹤單 元/資料包數量的絲$,可制暫停流量蝴來停止到達輸入口 的資訊流(此時該輪入口使用的緩存資源已超出了其公平共用的 緩存資源)’從而阻止來自違反規則的輸人口的信息量,並減輕由 該輸入口造成的堵塞。 具體地,每個輸人口基於與該_值相關聯的輸人口背壓計 數器-直追縱以確定其是否處於輸人口背壓狀態。#該輸入口處 於輸入口背驗m時,觸性地料時n值爲(GxFFFF)的暫停 流罝控制巾貞發送出該輸人D。當該輸人口不再處於輸人口背壓狀 遙時’將片時器值爲(0x00)的暫停流量控制巾貞由該輸入口送出, 並且再次允許魏流流動。如果輸人口當前不處於輸人口被壓狀 態’且資料包計數器的值超出極限閥值412 ’該輸入口的狀態將轉 換爲輸入口背壓狀態。如果輪入口處於輸入口背壓狀態且資料包 計數器的值降至重置有限閥值416 於背壓狀態。 以下’則該埠的狀態將不再處 二旦一支援對緩存的公平關,_優化系統内 E女盖6里订首機? 406依靠丟棄的資料包來管理緩存資源避過 。、⑽的系統吞吐I。根據本發明的—個實施例,行首機構4〇6 使用輸出口計數器和預定的閥值以追縱每個輸出口和服務級的暫 存器使用’並其後做出決定峨棄_達輸人⑽將發往特定已 T的輸出口/服務仵列級的資料包。行首機構406依據新到達的 資料包的顏色支援不同_值1料包可基於在輸人口模組内執 仃的计1和標絲作標記上顏色,並錢·依靠㈣包的不同 顏色做出不同的操作。 根據本發明的一個實施例,行首機構406可在每個服務佇列 、’及和所抖(包括CPU埠)上進行獨立触置和操作。行首機構 406使用計數器追蹤XQ記憶體3〇4和CBp記憶體3〇2的使用, 使用閾值支援CBP記憶體緩存3〇2的靜態分配以及Xq記憶體緩 存304的動態分配。放棄閥值422定義給CBp記憶體3〇2中的所 有單元,而不管標記的是什麼顔色。當與一個埠相關的單元計數 器的值達到放棄閥值422時,該埠被轉換至行首狀態❶其後,如 果其單元計數器的值下降至重置極限閥值424以下,則該埠將從 行首狀態中轉換出來。 對於XQ記憶體304 ’爲每個服務仵列級分配的固定的XQ緩
15 1323108 存由XQ入口值(entry value ) 430a-430h定義。每個xq入口值 430a-430h對應爲一個相關的佇列預留多少暫存器入口作出了定 義。例如’如果100位元組的XQ記憶體被指定給一個埠,分別 與XQ入口 430a~430d相關的第一四個服務佇列級分配的值爲1〇 位元組,而分別與XQ入口 430e-430h相關的後四個佇列分配的值 爲5位元組。 根據本發明的一個實施例,儘管一個佇列未使用所有的根據 籲相關XQ入口值爲其預留的暫存器入口,行首機構4〇6可不將未 使用的暫存器分配給另一個仔列。儘管如此,用於該埠的緩 存餘下的未分配的40位元組可由與該埠相關的所有服務佇列級所 共用。一個特定服務佇列級可佔用多少XQ緩存的共用池的限制 可由XQ设置極限閥值432設定β這樣的話,設置極限閥值432 可用來定義一個佇列可使用的緩存的最大數量,並用於防止一個 fr列使用所有可用的XQ緩存。爲確保Xq入口值43〇a 43〇h的總 _和不大於該槔可用的XQ緩存的總數量,並確保每個服務仔列級 可以訪問由其入口值430所分配的XQ緩存的配額,使用槔動態 計數寄存器來追蹤每個埠的XO暫存器的可用池,其中動態計數 寄存器434 -直追蹤料的可用共用XQ緩存的數量。動態計數 寄存器434的初錄爲與該埠相關的XQ暫存器的總數量減去邳 入口值430a-430h的數量之和後的值。當服務仔列級使用超出由其 XQ入口值430分配的配額後繼續可用XQ暫存器時,動態計數寄 16 1323108 存益434減1。相反地,當服務佇列級使用超出由其Xq入口值 430分配的配額後釋放xq暫存器時,動態計數寄存器 434 加 1。 當一個佇列請求XQ緩存時,行首機構4〇6確定該佇列使用 的所有入口是否少於該佇列的的Xq入口值43〇,並且在使用的入 口小於XQ入口值430的情況下同意該緩存請求。但是,如果使 用的入口大於佇列的XQ入口值430,行首機構406將確定所請求 的量疋否小於可用的暫存器總量或小於由相關的設置極限閥值 • 432設定給該佇列的最大量。不管資料包標記的顏色如何,設置極 限閾值432實質上是該佇列的放棄閥值。這樣,該資料包的資料 包計數值達到設置極限閥值432時’佇列/槔進入行首狀態。當行 首機構406檢測到行首狀態時’發送更新狀態,因此堵塞埠的資 料包將被丢棄。 然而,因爲滯後的原因,當行首機構3〇6發送狀態更新時, MMU 115和該埠之間可能還有資料包正在傳輸中。在這種情況 #下,因爲處於行首狀態MMU 115處出現丟棄資料包的情況。在本 發明的一個實施例中’因爲資料包的流水線操作,XQ指標的動態 池減少預定的量。這樣,當可用XQ指標的數量等於或小於預定 的數量時’該槔轉換至行首狀態’並且一個更新狀態由MMU 115 發送至該埠,以此降低可能被MMU 115丟棄的資料包的數量。爲 了跳出行首狀癌’該仔列的XQ資料包計數值必須下降到重置極 限閥值436以下。 17 1323108 對於一個特定服務佇列級的χ〇計數器來說,不達到設置極 限閥值432並且如果該埠的XQ資源被其他服務佇列級超額佔用 時仍將其資料包丟棄是可能的。在本發明的一個實施例中,還可 以爲含有特定顏色標記的資料包定義中間丟棄閥值438和439,其 •中每個中間丟棄閥值定義何時應將特定顏色的資料包丟棄。例 、如巾間丟棄閥值438可用于定義標記爲黃色的資料包應何時被 丢棄,中間丟棄閥值439用於定義標記爲紅色的資料包應何時被 鲁丟棄。根據本發明的一個實施例,資料包可依照指定的優先順序 分別標記爲綠色、黃色或紅色。爲確保每個顏色的資料包與每個 佇列中的顏色分配相一致的進行處理,本發明的一個實施例包括 有虛擬最大閥值44〇。虛擬最大閥值44〇等於未分配且可用的緩存 數量除以仵列數量和當前使用的暫存器數量之和後的值。虛擬最 大閥值440確保每_色的資料包以—定的比例進行處理。因此, 如果可用未分配的暫存器數量小於某一特定仔列的設置極限闕值 ♦ 432’並且該件列請求訪問所有可用未分配的暫存器行首機構娜 爲該h列計算虛擬最大賊44〇,並且根據爲每鋪色定義的比率 處理一定比例量的相關顏色的資料包。 —爲保存寄存㈣間,XQ·可表示紐_式,其中每個單 =代表-組XQ入口。組的大小取決於與某個特定的輸出口/服務 佇列級相關的XQ暫存器的數量。 加權隨機早期檢測機構4〇8是一個仵列管理機構,在叫暫 18 1323108 存器304用盡前基於或然演算法預清空資料包。加權隨機早期檢 測機構408因此可用於優化整個網路的吞吐量β加權隨機早期檢 測機構408包括一個平均值統計值,用以追蹤每個佇列的長度, 並基於爲仔列定義的去棄說明(dr〇pprofile)丢棄資料包。該丟棄 說明定義了給定特定平均佇列大小情況下的丟棄可能性。根據本 發明的一個實施例,加權隨機早期檢測機構4〇8可基於服務佇列 級和資料包定義單獨的說明。 如圖1所示’MMU115從分析器130接收資料包以進行存儲。 如上所述,分析器13〇包括一個二級分析器,該部分在圖5中示 出。如上所述,資料在網路設備的埠501處接收。資料也經由cmic 5〇2接收,其中該資料將通過輸入CMIC介面503。該介面用於將 CMIC資料從p_bus格式轉換爲輸入口資料格式^在一個實施例 中,資料從45位元轉換爲168位格式,這樣後面的格式包括128 位元的資料、16位元的控制和可能的24位元的高速報頭。其後, 資料以64位元脈衝的形式發送至輸入口仲裁器5〇4。 輸入口仲裁器504從埠501和輸入CMIC介面503接收資料, 並基於時分多路仲裁技術對這些輸入進行多工。其後,資料被傳 送至MMU 510 ’在MMU 510處,所有HiGig報頭被移除,並且 被設置爲MMU介面格式。然後檢查資料包屬性,例如,端對端、 中斷貝努裏處理(Intempted Bernoulli Process,IBP )或行首(H〇L ) 資料包。此外,資料的頭128個位元組被監聽,並且HiGig報頭 19 1323108 被傳至分析益ASM525。如果接收到的突發資料包含端點標誌, 則CRCS果將被發送至結果匹配器515。而且,資料包的長度由 突發串長度估測得到,並生成126位元的資料包仍以供調試用。 分析器ASM 525將每個突發串4個迴圈的64資料突發串轉 換爲每個突發串8個迴_ 128位元組突發串]28位元組的突發 資料被同時轉送給隨道分析器530和分析器以保持相同 的資料包順序。隨道分析器530確定是否採用了任何類型的隨道 籲封裝,包括MPLS和IP隧道效應。此外,該随道分析器還檢查外 部和内部標簽。通過分析處理,將會話初始化協定(SIp)提供給 基於子網的VLAN ’其巾,如果資料包爲位址騎協定(ARp)、 反向ARP協定(RARP)或ip資料包時,將發生51?分析。基於 源中繼線映射表,還可以創建中繼線埠柵極的仍(mmkp〇rtgrid 正))’除非;又有中繼線(trunk)或如果該中繼線仍可從j^Gig報 頭中獲得。 籲 随道分析器530與隧道檢查器531 -起工作。隧道檢驗器檢 查IP報頭的校驗和(checksum)以及UDP隧道效應和π>ν4之上 IPv6資料包(IPv6 over IPv4 packets)的特性。隧道分析器53〇利 用搜索引擎520通過預定義的表確定隧道類型。 分析器FIFO 528存儲128位元組的資料包報頭和12位元組 的HiGig報頭,該尚速報頭由深度分析器540再次進行分析。當 搜索引擎完成一次搜索並準備進行深層搜尋時,報頭位元組被存 、:9、 20 儲。也將維持其他的屬性,例如資料包長度、HiGig報頭狀態和資 料包ID。深度分析器540提供三種不同類型的資料,包括“流過” 的搜索引擎520的搜索結果、内部分析結果和HiGig模組報頭。 特定的資料包類型將被確定並傳送至搜索引擎。深度分析器540 讀取來自分析器FIFO的資料’對預定義的攔位進行分析。搜索引 擎基於傳送至該搜索引擎的值提供查找結果,其中將對資料包 進行檢查以維持資料包順序。 深度分析器540還使用協定檢查器541來檢查内部IP報頭的 校驗和’檢查服務攻擊屬性的否決、高速模組報頭内的錯誤,並 執行martian校驗。該深度分析器還與欄位處理器分析器542 一起 工作,以分析預定義攔位和用戶定義的欄位。預定義攔位從深度 分析器中接收。這些攔位包括MAC目的地址、MAC源地址、内 部和外部標簽、乙太類型、!p目的和源位址、爿民務類型、jpp、正 標記、TDS、TSS、TT1、TCP標記和流標簽。用戶定義的攔位也 是可分析的’最高長度爲128位。 如上所述’HiGig埠上接收的資料與其他本地埠上接收的資料 是分開單獨處理的。如圖i所示,HiGig埠1()8具有自有的暫存器, 貧料從該埠流人其自有的分析器m内。mGig分龍的更多細節 如圖6所不,其結構與圖5中所示二級分析器相似,但具有一些 差別。HiGlg埠601接收的資料被轉送至ffiGig埠彙編器6〇4。該 彙編器以64位元組突發串的形式接收該資料和刪§報頭,與用
21 1323108 於本地谭中的格式相似。所述資料以mmu介面格式被發送至 MMU610而未帶有所述HiGig報頭。 所述資料的頭128個位元組被監聽並且與HiGig報頭一起發 送至深度分析器640。與二級分析器相似的是,端對端資訊被檢 查,並在邊頻帶内發送該分析結果。同樣近似的是,CRC和資料 包長度由結果匹配器615進行檢查。此外,生成16位元的資料包 ID以用於調試和追蹤資料包的流。 深度分析器640的HiGig版本是二級深度分析器540的子設 備,並執行相似的功能。然而,搜索引擎620中沒有資訊經過, 它不能跳過MPLS報頭,並且只分析有效載荷,不發送深度資料 給搜索引擎。從功能上來說,FP分析器642的HiGig版本與上面 討論的FP分析器542相同。 結果匹配器在圖7中詳細示出。值得注意的是,結果匹配器 可被普遍的應用於由多個分析器共用,或者每個分析器使用其自 有的結果匹自⑼。在圖巾卿的實施例巾,兩種_的埠刀〇和 2〇接收負料並通過輸入口彙編器715和輸入口仲裁器725的操作 轉达-^數值給結果檢查ϋ。雜值包料數、E〇F的存在、crc 和貢料包長度。結果匹配H㈣㈣工作,通過使用搜索引 擎7〇5來匹配搜索結果。基於每個埠,標簽和刪事件與資料包 2t、CRC狀態相匹配。每4個迴圈,搜索結果便被提供給網路 〇速槔。如果存在延時小於輸入資料包時間的情況,這種結
22 構使得搜索結果存儲在每個槔的結果匹配器内,當搜索延時比輸 資料L時卩4短4 ,這種結構允許等待資料包結果的終端出現。 ,謂接收㈣料進行分析和評估後,依據接收的f訊做出轉 送決疋該轉送決疋通常爲資料包應發送給什麼目的璋儘管該 決疋也可爲放棄-貝料包或通過CMIC m轉送資料包給cpu或其 他控制器。在輸出口,基於網路設備的分析和評估該資料包被 0改如果輸出口爲南速埠,此修改包括標記報頭資訊的修改 •或添加模組報頭。該修改以單元爲基礎進行,以避免在轉送資料 包時産生延時。 圖8所示爲用於本發明的輸出口仲裁器的配置示意圖^如圖8 所示’MMU115還包括調度器802,爲與每個輸出口相關的8個 服務符列級804a-804h提供仲裁’從而提供最小和最大帶寬保證。 值得注意的是,此處介紹的是8級服務,但是也支援其他服務級 別模式。調度器802與一組最小和最大計量機構8〇6a 8〇6h集成在 鲁一起,其中每個計量機構監控每個服務級的流量以及每個輸出口 的流量。計量機構806a-806h支援流量調整功能(trafficshaping function) ’並基於每個服務佇列級和/或輸出口保證其最小帶寬要 求’其中調度器802的調度決定通過流量調整機構8〇6a_8〇6h與一 組控制遮罩一起來配置,該控制遮罩用於修改調度器8〇2如何使 用流量調整機構806a-806h。 如圖8所示’最小和最大計量機構806a_806h監控基於每個服 23 務Ϊ宁列級以及基於每個輸出口監控流量。最大和最小帶寬計量 806a-806h用以反饋狀態資訊給調度器8〇2,調度器8〇2回應該狀 fe資訊’修改其整個服務彳宁列8〇4上的服務順序。因此,網路設 僙1 〇〇可使系統銷售商能夠通過配置服務佇列級804來執行多個 服務模型,從而支援明確的最小和最大帶寬保證。在本發明的一 個實施例中,計量機構806a-806h基於服務佇列級檢測資訊流量, 提供一個服務符列級的流量是否高於或低於最小和最大帶寬要求 _的狀態資訊’並傳輸該資訊至調度器802,調度器802使用該計量 資訊修改其調度決定。這樣的話,計量機構8〇6a-806h協助將服務 佇列級804分割成一組未符合最小帶寬要求的佇列、一組符合其 最小帶寬但不符合最大帶寬要求的符列以及一組已超出其最大帶 寬要求的仵列。如果一個仔列屬於該組不符合其最小帶寬要求的 "ί丁列’且該彳丁列有h料包’調度益802將根據配置的調度規則對 該佇列進行服務。如果一個佇列屬於該組不符合其最小帶寬要求 ®但沒有超過其最大帶寬要求的仵列,且該仔列中有資料包,調度 器802將根據配置的調度規則對該彳宁列進行服務。如果一個彳宁列 屬於該組超出其最大帶寬要求的彳宁列或者如果該仔列爲空,調度 器802將不對該佇列進行服務。 最小和最大帶寬計量機構806a-806h可使用簡單的漏斗桶機 構來實現’追蹤一個服務佇列級804是否佔用了其最小或最大帶 寬。每個服務級804的最小和最大帶寬的範圍設置在64Kbps至 16Gbps之間,並以64Kbps遞增。該漏斗桶機構具有可設置數量 的權杖“泄漏’’桶’每個桶以可配置的比率與仔列8〇4a-804h中一個 相關聯。在計量服務佇列級804的最小帶寬時,由於資料包進入 服務仵列級別804 ’與該資料包大小成比例的一定數量的權杖被添 加到對應的桶中,該桶具有桶最高閥值的最高限度。該漏斗桶機 構包括有刷新介面和定義每次刷新時間單元内移除多少個權杖的 最小帶寬。最小閥值用於指出資料流程是否滿足至少其最小比 率’填充閥值(fill threshold)用於指出漏斗桶中有多少個權杖。 當填充閥值上升超過最小閥值’一個指出該資料流程已滿足其最 小帶寬要求的標誌被設定爲真值(true)。當填充閥值下降低於最 小閥值,該標誌、被設定爲僞值(false)。 在計量機構806a-806h指出規定的最大帶寬已超出高間值 後’調度器802終止對該仔列的服務,且該仔列被分入已超出最 大帶寬要求的佇列組中。然後,發送一個標誌以指出該仵列已超 出其最大帶寬。隨後’當其填充閥值下降至高閥值以下且指示其 超出最到帶寬的標諸、被重置時’該佇列僅從調度器802接收服務。 最大速率計量機構808用於指出某個埠規定的最大帶寬已經 被超出,並且在最大總帶寬被超出時,其與計量機構806a__8〇6h 的工作方式是一樣的。根據本發明的一個實施例,基於一個仲列 和埠上的最大計量機構會影響佇列804或一個埠將是否被包括在 調度仲裁中。因此’該最大計量機構只對調度器802有流量限制 25 \4?、 1323108 影響。 〃卩S面’服務制級804的最小計量與調度器8()2具有更 複雜的父互操作在本發明的一個實施例中調度器哪支援各 義度規則,來継加權公平仵財獅帶寬共用性纟卜該加權 .公平仵列方案爲基於資料包的公平仔列方案的加權版本被定義 爲-種用於提供資料包的“基於位元迴圈複用,,調度的方法。這 樣,可對資料包進行調度,以基於該資料包的傳送時間訪問輸出 該時間在調度器能夠提供基於位迴圈複用服務時計算得出。 =關的加_位將影響調度器如何使用最小計量機構:具體細 節,其中該調度器試圖提供最小帶寬保證。 在本發明的-個實施例中’最小帶寬保證是一個相對的帶寬 保證,其中一個相關攔位決定了調度器是否將會把最小帶寬計量 設置視爲一個相對的或絕對的帶寬保證的規格。如果設置了相關 攔位調度器將把最小帶寬8〇6言免置視爲一個相對帶寬規格。然 鲁後調度器802嘗試提供在積壓佇列8〇4上共用的相對帶寬。 圖9所示爲以上介紹過的搜索引擎(SEER)的結構_。卿 905疋搜索引擎流水級的符號表示,其中每一級,91仏〇到$⑴, 彼此相互通信’並通過三個時分複用(TDM)介面與任意一個搜 索引擎921-923通信。每-個搜索引擎有内部記憶體,該記憶體可 以用來支援-定數量的入口。另-方面,每一個搜索引擎和兩個 記憶體介面930-931通信。通過這些記憶體介面,該搜索引擎能可
26 “23108 、以支援大量的入口。在某些實施例中,該記憶體介面爲與片外記 ,憶體通信的外部記憶體介面。 、 如圖所示,SEER有三個抽象層:邏輯層(SEp)、引擎層和物 理介面層。該抽象層可以進行擴展,這樣,可對引擎層中增加另 一個冗憶體介面且只對該層有一定的干擾,但是不會對邏輯層産 生任何干擾。該抽象層還具有很好的靈活性,這樣,seer有n 種操倾式,提絲和表大小的各齡合。崎兩娜部記憶體 介面可以與SRAM或者TCAM通信,對可支援的表配置提供了進 ~步靈活性。 以上是對本發明具體實施_描述。㈣顯,可對本發明上 述描述的實施舰其他_化和敍,同樣能咖本發明的某些 有伽®此’本發明师利要去說明了本發明的精神實質 和乾圍’覆蓋了财對本發明上述實施例的瓶和修改情況。 【圖式簡單說明】 # 圖1是根據本發明一個實施例的網路設備的示意圖; 圖2是根縣發K时關使_路設備的輕行通信的 不意圖; 2 3a是網路設傷使用的位於網路設備外部的共用記憶體的結 ® 3b3a t制記憶齡構的單元麟池的示意 圖; Θ X由痛體官理單元用於資源分配限制以確保對資源的 么平訪問的暫存器管理機構的示意圖; 27 圖5疋根據本發明某些實施例的2級分析器的示意圖; 圖6是根據本發明某些實施例的與互連埠一起使用的另一八 析器的示意圖; 刀 圖7疋根據本發明某些實施例的結果匹配器的示意圖; 圖8是用於本發明的輸出口仲裁器的配置示意圖; 圖9是根據本發明的搜索引擎的結構示意圖。 【主要元件符號說明】 /Ml 6又備 100 模組 103 匯流排代理器(bus agent) 105 外部乙太網埠109a、…、l〇9x CPU處理模組(如CMC) 111 記憶體管理單元(MMU) 115 附加的搜索引擎模組BSE 122 CSE 126 模組 132、136 雙階分析器(two stage parser)
埠管理器 102A-L 定時發生器(timing generator) 104 高速埠 108 CPU 埠 11〇 入站/出站模組(Xport) 112、113 搜索引擎
HSE 分析器 分析器 120 124 130 134 138 單元缓衝池(Cell Buffer Pool,簡稱CBP)記憶體 302 事務佇列(Transaction Queue,簡稱XQ )記憶體 304 靜態隨機存取記憶體(DRAM)晶片 306a、...、306d 單元 308a、…、308x 報頭緩衝 310 包資料空間 312 保留空間 314 1323108 資料包指標 316a、... 、316x 入站背壓機制(ingress backpressure mechanism) 404 線端機制(head of line mechanism,簡稱 HOL) 406 加權隨機早期探測機制(WRED) 408 限制閾值 412 丟棄限制閾值 414 重定限制閾值 416 丟棄閾值 422 重定限制閾值 424 XQ 入口 (entry)值 430a、. ..、430h XQ設置限制閾值 432 動態計數寄存器 434 重定限制閾值 436 中間丟棄閾值 438 '439 虛擬最大閾值 440 網路設備埠 501 CMIC 502 入站CMIC介面 503 入站裁決器 504 MMU 510 結果匹配器 515 搜索引擎 520 分析器ASM 525 分析器FIFO 528 隧道分析器(tunnel parser) 530 隧道校驗器 531 深度分析器 540 協定校驗器 541 攔位處理分析器 542 HiGig 埠 601 HlGlg埠組合語言程式(assembler) 604 MMU 610 結果匹配器 615 搜索引擎 620 深度分析器 640 FP分析器 642 搜索引擎 705 29 1323108 900 910-0.910-1 921 923 入站MIB 707 入站組合語言程式 715 調度器 802 通信量調整器806a、...、806h 搜索引擎(SEER) 搜索引擎流水級 哈希搜索引擎 CAM搜索引擎 埠 710、720 入站裁決器 725 業務佇列(COS) 80te、...、804h 最大率計量機制 808 SEP 905
、910-2、910-3、…、910-N 二進位元元搜索引擎922 記憶體介面 930、931
30

Claims (1)

1323108 97 年月日修正替換f 十、申請專利範圍: 1、 一種在資料網路中處理資料的網路設備,所述網路設備包括. 多個埠,接收資料包並發送已處理的資料包; 修改引擎,與所述多個埠通信,分析、評估和修改資料包 以生成處理後的資料包; 一組搜索引擎流水線級,與所述修改引擎通信,通過多個 搜索引擎執行查找搜索; 其中所述-組搜索引擎流水、線級按照順序處理步驟執行搜 索請求,其中任何一級搜索引擎流水線可以向所述多個搜索引 擎提交特定的搜索請求,並在對應的步驟中接收特定資料包所 特有的搜索結果,所述多個搜索引擎對存儲在網路設備外部的 記憶體中的外部表執行搜索。 2、 如申請專利範圍第1項所述的網路設備,其中,所述一組搜索 引擎流水線級中的每一級在所述網路設備的預定時鐘周期數内 執行其各自的處理。 3、 如申請專利範圍第1項所述的網路設備,其中,所述一組搜索 引擎流水線級通過分時多工請求/結果環與所述多個搜索引擎通 信。 4、 如申請專利範圍第1項所述的網路設備,所述多健索引擎從 多個搜索引擎流水線級中接收同時發生的搜索請求。 5、 -種在醜設射處輯料的絲,所述方法包括如下步驟: 31 年月日修 通過網路設備的多個埠— 處理所述接收的資料包,從而對所述接收的資料包進行分 厅、評估和修改以生成處理後的資料包; 刀 通過-組搜索引擎流水線級執行表的查找搜索; 將所述處理後的資料包傳送到所述多個埠中的輸入口; 、其中任何一級搜索引擎流水線可以向所述多個搜索引擎提 父待定的齡請求,並在對應的步财接㈣定資料包所特有 的搜索結果’所述多健钟擎對存财_續外部的記憶 體中的外部表執行搜索。 〜 、如申請專利範圍第5項所述的方法,其中,執行所述執行查找 =衾的步驟H級搜㈣丨擎流水線在所述網路設備的預定 4鐘周期數内執行其各自的處理。 、如申請專利範圍第5項所述的方法,其t,所述執行表的查找 搜索的步驟包括通過與所述多個搜索引擎通信的分時多工請求/ 結果環發送和接收搜索請求和搜索結果。 、一種處理資料的網路設備,包括: 接收資料包和傳送處理後的資料包的埠裝置; 處理所述接收的資料包,從而分析、評估和修改所述接收 的資料包以生成處理後資料包的處理裝置; 通過一組搜索引擎流水線級執行表的查找搜索的查找搜索 裝置; 32 修正麵丨 「中所述查找搜索裝置允許任何—級搜索引擎流水線可以 °斤述多個搜索引擎中的至少—個提交特定的搜索請求,並在 〜的步驟巾接收特定資料包所特有的搜索結果,所述多個搜 $索f丨擎對存健在網路設備外部的記憶财的外絲執行搜索。 如申明專利範圍第8項所述的網路設借,其中,所述查找搜索 裝置確保所述一組搜索引擎流水線級中的每一級在所述網路設 傷的預定時鐘周期數内執行其各自的處理。 1〇、如申請專利範圍第8項所述的網路設備,所述多個搜索引擎 從多個搜索引擎流水線級中接收同時發生的搜索請求。
33
TW095105060A 2005-02-18 2006-02-15 Powerful and expandable pipeline architecture for a network device TWI323108B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US65395205P 2005-02-18 2005-02-18
US11/081,644 US7606231B2 (en) 2005-02-18 2005-03-17 Pipeline architecture for a network device

Publications (2)

Publication Number Publication Date
TW200644523A TW200644523A (en) 2006-12-16
TWI323108B true TWI323108B (en) 2010-04-01

Family

ID=36407970

Family Applications (1)

Application Number Title Priority Date Filing Date
TW095105060A TWI323108B (en) 2005-02-18 2006-02-15 Powerful and expandable pipeline architecture for a network device

Country Status (4)

Country Link
US (2) US7606231B2 (zh)
EP (1) EP1694003B1 (zh)
DE (1) DE602005005291T2 (zh)
TW (1) TWI323108B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7606231B2 (en) 2005-02-18 2009-10-20 Broadcom Corporation Pipeline architecture for a network device
US7802028B2 (en) * 2005-05-02 2010-09-21 Broadcom Corporation Total dynamic sharing of a transaction queue
TW201238307A (en) 2010-12-20 2012-09-16 Ibm A method and system to connect an external network coprocessor to a network processor packet parser
US8819045B2 (en) * 2011-03-28 2014-08-26 Citrix Systems, Inc. Systems and methods of UTF-8 pattern matching
US9213820B2 (en) * 2013-09-10 2015-12-15 Ebay Inc. Mobile authentication using a wearable device
WO2015165104A1 (zh) 2014-04-30 2015-11-05 华为技术有限公司 查找装置及方法
US10079779B2 (en) 2015-01-30 2018-09-18 Nicira, Inc. Implementing logical router uplinks
US10135734B1 (en) 2015-12-28 2018-11-20 Amazon Technologies, Inc. Pipelined evaluations for algorithmic forwarding route lookup

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1990004849A1 (en) * 1988-10-20 1990-05-03 David Siu Fu Chung Memory structure and method of utilization
JPH05183828A (ja) * 1991-12-27 1993-07-23 Sony Corp 電子機器
EP0594196B1 (en) * 1992-10-22 1999-03-31 Cabletron Systems, Inc. Address lookup in packet data communications link, using hashing and content-addressable memory
DE69330904T2 (de) 1992-12-04 2002-06-20 At & T Corp Paketnetz-Schnittstelle
US5802287A (en) * 1993-10-20 1998-09-01 Lsi Logic Corporation Single chip universal protocol multi-function ATM network interface
US5831980A (en) * 1996-09-13 1998-11-03 Lsi Logic Corporation Shared memory fabric architecture for very high speed ATM switches
US5930359A (en) * 1996-09-23 1999-07-27 Motorola, Inc. Cascadable content addressable memory and system
JP3193947B2 (ja) 1997-01-08 2001-07-30 株式会社ディジタル・ビジョン・ラボラトリーズ データ送信システム及びデータ送信方法
US6175902B1 (en) 1997-12-18 2001-01-16 Advanced Micro Devices, Inc. Method and apparatus for maintaining a time order by physical ordering in a memory
US5892922A (en) * 1997-02-28 1999-04-06 3Com Corporation Virtual local area network memory access system
US6011795A (en) 1997-03-20 2000-01-04 Washington University Method and apparatus for fast hierarchical address lookup using controlled expansion of prefixes
US5938736A (en) * 1997-06-30 1999-08-17 Sun Microsystems, Inc. Search engine architecture for a high performance multi-layer switch element
US5909686A (en) 1997-06-30 1999-06-01 Sun Microsystems, Inc. Hardware-assisted central processing unit access to a forwarding database
US6119196A (en) 1997-06-30 2000-09-12 Sun Microsystems, Inc. System having multiple arbitrating levels for arbitrating access to a shared memory by network ports operating at different data rates
US6016310A (en) 1997-06-30 2000-01-18 Sun Microsystems, Inc. Trunking support in a high performance network device
US6018524A (en) * 1997-09-09 2000-01-25 Washington University Scalable high speed IP routing lookups
US6041053A (en) 1997-09-18 2000-03-21 Microsfot Corporation Technique for efficiently classifying packets using a trie-indexed hierarchy forest that accommodates wildcards
US6591299B2 (en) 1997-11-25 2003-07-08 Packeteer, Inc. Method for automatically classifying traffic with enhanced hierarchy in a packet communications network
GB9725374D0 (en) 1997-11-28 1998-01-28 3Com Ireland Port mirroring and security in stacked communication devices
US6259699B1 (en) 1997-12-30 2001-07-10 Nexabit Networks, Llc System architecture for and method of processing packets and/or cells in a common switch
US6173384B1 (en) 1998-02-11 2001-01-09 Nortel Networks Limited Method of searching for a data element in a data structure
US6052683A (en) * 1998-02-24 2000-04-18 Nortel Networks Corporation Address lookup in packet data communication networks
IL124932A0 (en) 1998-06-16 1999-01-26 Mea Motor Inspection Ltd Method and apparatus for testing rotating machines
US6104696A (en) 1998-07-08 2000-08-15 Broadcom Corporation Method for sending packets between trunk ports of network switches
US6975637B1 (en) * 1999-01-27 2005-12-13 Broadcom Corporation Apparatus for ethernet PHY/MAC communication
US20020039365A1 (en) * 1999-03-17 2002-04-04 Broadcom Corporation Pipelined searches with a cache table
EP1221214A4 (en) 1999-09-25 2006-06-07 Motorola Inc CIRCULAR PERMUTATION PROGRAMMING (HPRR) BY ORDER OF HIERARCHICAL PRIORITY
US6731644B1 (en) * 2000-02-14 2004-05-04 Cisco Technology, Inc. Flexible DMA engine for packet header modification
US6977930B1 (en) * 2000-02-14 2005-12-20 Cisco Technology, Inc. Pipelined packet switching and queuing architecture
US6665755B2 (en) * 2000-12-22 2003-12-16 Nortel Networks Limited External memory engine selectable pipeline architecture
US6862281B1 (en) * 2001-05-10 2005-03-01 Cisco Technology, Inc. L4 lookup implementation using efficient CAM organization
US20030009466A1 (en) * 2001-06-21 2003-01-09 Ta John D. C. Search engine with pipeline structure
US7782853B2 (en) * 2002-12-06 2010-08-24 Stmicroelectronics, Inc. Apparatus and method of using fully configurable memory, multi-stage pipeline logic and an embedded processor to implement multi-bit trie algorithmic network search engine
US7715392B2 (en) * 2002-12-12 2010-05-11 Stmicroelectronics, Inc. System and method for path compression optimization in a pipelined hardware bitmapped multi-bit trie algorithmic network search engine
GB0229647D0 (en) * 2002-12-19 2003-01-22 Zarlink Semiconductor Ltd Packet classifer
US7685254B2 (en) * 2003-06-10 2010-03-23 Pandya Ashish A Runtime adaptable search processor
US7019674B2 (en) * 2004-02-05 2006-03-28 Nec Laboratories America, Inc. Content-based information retrieval architecture
US7760719B2 (en) * 2004-06-30 2010-07-20 Conexant Systems, Inc. Combined pipelined classification and address search method and apparatus for switching environments
US20060212426A1 (en) * 2004-12-21 2006-09-21 Udaya Shakara Efficient CAM-based techniques to perform string searches in packet payloads
US7606231B2 (en) 2005-02-18 2009-10-20 Broadcom Corporation Pipeline architecture for a network device

Also Published As

Publication number Publication date
US20090319493A1 (en) 2009-12-24
US20060187918A1 (en) 2006-08-24
EP1694003A1 (en) 2006-08-23
US7606231B2 (en) 2009-10-20
TW200644523A (en) 2006-12-16
DE602005005291T2 (de) 2009-03-12
US8566337B2 (en) 2013-10-22
EP1694003B1 (en) 2008-03-12
DE602005005291D1 (de) 2008-04-24

Similar Documents

Publication Publication Date Title
TWI333763B (en) Network device for processing data on a data network and method thereof
US20220191127A1 (en) Method and system for providing network ingress fairness between applications
TWI323108B (en) Powerful and expandable pipeline architecture for a network device
US8320240B2 (en) Rate limiting and minimum and maximum shaping in a network device
US8671219B2 (en) Method and apparatus for efficiently processing data packets in a computer network
US8229705B1 (en) Performance monitoring in computer networks
TWI313118B (en) Cut-through switching in a network edvice
US20060187832A1 (en) Filter based range check in a network device
US20130318256A1 (en) Dynamic table sharing of memory space within a network device
TWI337025B (en) Flexible packet modification engine for a network device
US20060187965A1 (en) Creating an IP checksum in a pipeline architecture with packet modification
US8085766B2 (en) S-flow in a network device
US20060187948A1 (en) Layer two and layer three virtual private network support in a network device
TWI328376B (en) Pre-learning of values with later activation in a network device
US20060187923A1 (en) Dynamic filter processor key generation based on packet type
US20060187919A1 (en) Two stage parser for a network
US8331380B2 (en) Bookkeeping memory use in a search engine of a network device
US20060203824A1 (en) Passing values through a memory management unit of a network device
US20060187828A1 (en) Packet identifier for use in a network device
CN100493036C (zh) 处理数据的网络设备和方法
US8228932B2 (en) Layout architecture for expandable network device
US20060187924A1 (en) Ingress handling of data in a network device
US20060187920A1 (en) Flexible packet modification engine
US20060187936A1 (en) Table searching techniques in a network device
Miyahara et al. A Study on High-Speed and Scalable Packet Scheduling Algorithm for Achieving Fair Service

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees