TWI337025B - Flexible packet modification engine for a network device - Google Patents

Flexible packet modification engine for a network device Download PDF

Info

Publication number
TWI337025B
TWI337025B TW095105055A TW95105055A TWI337025B TW I337025 B TWI337025 B TW I337025B TW 095105055 A TW095105055 A TW 095105055A TW 95105055 A TW95105055 A TW 95105055A TW I337025 B TWI337025 B TW I337025B
Authority
TW
Taiwan
Prior art keywords
packet
data
memory
unit
package
Prior art date
Application number
TW095105055A
Other languages
English (en)
Other versions
TW200707981A (en
Inventor
Ng Eric
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 TW200707981A publication Critical patent/TW200707981A/zh
Application granted granted Critical
Publication of TWI337025B publication Critical patent/TWI337025B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/103Packet switching elements characterised by the switching fabric construction using a shared central buffer; using a shared memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/205Quality of Service based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • H04L49/254Centralised controller, i.e. arbitration or scheduling
    • 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/3009Header conversion, routing tables or routing tags
    • 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/3036Shared queuing
    • 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/3072Packet splitting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
    • H04L49/352Gigabit ethernet switching [GBPS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/60Software-defined switches
    • H04L49/602Multilayer or multiprotocol switching, e.g. IP switching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

丄划7025 九、發明說明: 【發明所屬之技術4員域】 本發明涉及在娜中修改料包轉理,更频地說,涉及 一種允許對不賴獅資料包進行不職獅修改㈣擎。 【先前技術】 ,—-個網路可包括-個或多個網路設備,例如,乙太網交換機, 麝母個稱叹備又包括多個用於處理通過該設備傳輸的資訊的模 組。處理貝料㈣過程從資料包的接_始。然後檢查資料包的 =P刀並將該貝料包暫時存儲在記憶體内,直到做出關於某個 資料包的傳送紋。所述傳送決找括:狄能將資料包發送至 /、唯目的地的網路叹備輸出口,傳送資料包給外部處理器以進 行進-步處理,以及在某些情況下丢棄資料包。傳送資料包的處 理過程還包括修改資料包。 多數情況下,對資觀_改是必要的。㈣包被封裝(例 如隨道封裝)時便屬於這種情況。通常情況下,封包是將一個資 2結f包含在另"個資料結構内,因此第—個資料結構暫時被隱 。貝科包摘包鱗定的格式,而且該職可_路設備移除 或改變。資料包修改處理是網路設備處理資料包能力的關鍵。 然而,多魏有_路設料能提供鱗資料的快速處理以 文貝料包的靈'舌性。爲了提供對資料包的行頻(line-rate)處 理’需要特殊_的資料包,使得資料包中重要攔位的位置通常 可知’並出現在貢料包結構内期望的特定位置。因爲速度的原因, 夕數此類處理都結合辛硬體内,故而現有的網路設備缺乏靈活 h a通巾而要對 料包進彳于不符合特定標準的外部處理。此外, ,如果提供-種_資料包格式,現有_路設備不能通過現有的 處理硬體對新格式的資料包進行處理。 【發明内容】 根據本發明的—個方面,提供__種在資料網路巾處理資料的 參網路設備,所述網路設備包括: 璋介面,與多個料信,用於從資料網路巾接收資料包以及 將已處理的資料包發送至所述資料網路; 記憶體管理單元’與記紐職並控細述記舰,向所述 記憶體存儲資料以及從所述記憶體中重新獲取資料; 解析器,與所述埠介面和所述記憶體管理單元通信,解析所 述已接收的資料&以確定所述資料包的屬性以及修改從所述記憶 Φ體獲取的:貝料包,並基於所述確定的屬性生成已處理的資料包; 其中所述解析器以單元爲基礎,通過所述資料包的單元之間 的相加減和替換修改所述資料包,其中所述每個單元具有預定 的位元長。 優選地’所述預定長度爲16位。 優選地,所述解析器將修改資料包攔位的指令轉譯成修改資 料包單元的指令。 優選地’所述解析器通過使用鏈表結構追蹤修改來修改所述 1337025 資料包的片段。 優選地,所述解析器對所述資料包添加標簽以實現封裝。 優選地,所述解析器保留多個有時延的資料包片段以允許資 料包各部分的重新排列,纟中各部分的未對準因所述資料包單元 的相加、減和替換而出現。 根據本發明的一個方面,提供一種在網路設備中處理資料的 方法,所述方法包括: 在所述埠處通過埠介面接收資料包; 發送資料包至記憶體管理單元; 由所述記憶體管理單元將所述資料包存儲在記憶體内; 從所述記憶體内重新獲取所述資料包; 以單元絲礎’㈣所述㈣包單元_相加、減和置換修 改所述重簡取的資料包,以生成已處理㈣料包其中所述每 個單元具有預定的位元長; 發送所述已處理的資料包至所述多個埠中的輸出口。 優選地,所述修改重新獲取的資料包的步驟包括以單元爲基 礎修改所述重新獲取的資料包,其中每個單元的職長度爲16位。 優選地,所述修改重新獲取的資料包的步驟包括將修改資料 包攔位的指令轉譯成修改資料包單元的指令。 優選地,所述修改重新獲取的資料包的步驟包括通過使用鏈 表結構追蹤修改來修改所述資料包的片段。
SJ !337〇25 新獲取的資料包的步驟包括對所述資料 優選地,所述修改重 包添加標簽以實現封裳。 優雜’所祕改重新獲取㈣料包的步驟包括保留多個有 .時延的資料包片段以允許資料包各部分的重新排列,其中所述各 部分的未對準因所述資料包單元的相加、減和置換而出現。 根據本發明的-個方面,提供—種處理資料的網路設備,所 述網路設備包括: ^ 接收資料包和發送已處理的資料包的埠裝置; 欠由記憶體中的記憶體管理單元向其存儲從所述埠裝置接收的 貝料包以及從其撕獲取所記紐的資料包的域體裝置; 以單元爲基礎,通過資料包單元間的相加、減和置換修改所 述重新獲取的資料包以生成已處理的資料包的修改裝置,其中所 - 述每個單元具有預定的位元長。 優選地,所述修改裝置包括以單元爲基礎修改所述重新獲取 的資料包的裝置,其中每個單元的預定長度爲丨6位。 優選地,所述修改裝置包括用於將修改資料包攔位的指令轉 繹成修改資料包單元的指令的裝置。 優選地,所述修改裝置包括通過使用鏈表結構追蹤修改以修 改所述資料包的片段的裝置。 優選地,所述修改裝置包括對所述資料包添加標簽以實現封 裴的裝置。 9 '皂、 1337025 優選地’所述修改裝置包括用於保留多個有時延的資料包片 段以允許所述資料包各部分的重新排列的裝置,其中所述各部分 的未對準因所述資料包單元的相加、減和置換而出現。 【實施方式】 圖1所示爲實現本發明一個實施例的網路設備例如交換晶片 的示意圖。設備100包括輸入口/輸出口模組112和113、記憶體 管理單元(MMU) 115、解析器130和搜索引擎120。輸入口/輸 出口模組用於資料緩存以及發送資料至解析器。解析器13〇解析 接收的資料並基於已解析的資料利用搜索引擎120執行查找。記 憶體管理單元115的主要功能是即使在嚴重堵塞的情沉下,也可 以以可預測方法有效地管理單元緩存和資料包指標資源。通過這 些模組,會發生資料包修改,並且資料包可發送到合適的目的埠。 根據本發明的幾個實施例,設備1〇〇還可以包括一個内部交 織尚速痒(internal fabric high speed port)例如 HiGig™ 或高速埠 108、一個或多個外部乙太網槔i〇9a_i〇9X以及一個cpu琿。 咼速埠108用於在系統中互連各種網路設備,從而組成一個内部 父換網,用於在外部源埠與一個或多個外部目的埠間傳輸資資料 包。這樣,尚速埠108在包括多個互相連接的網路設備的系統外 4疋不可見的。CPU 4 11〇肖於發送資訊給外部交換/路由控制實 體或cup,以及從其中接收資訊。根據本發明的一個實施例,cup 谭lio可視爲外部乙太網痒1〇9a l〇9x中的一個。設備⑴〇通過 10 1337025 CPU處理模組U1 (如CMIC,其與連接設備1〇〇與外部cpu的 PCI資料匯流排連接)與夕I:部/片外CPU連接。 此外,搜索引擎模組120可附加的搜索引擎模組122、124和 I26組成,以執行用於網路設備100處理的資料的特徵化和修改過 程中的特定查找。同樣,解析器130也包括有附加的模組,用於 對從内部交織高速埠134和其他埠138接收的資料進行解析,解 析器30還包括有其他模組132和136,用以轉送資料回網路設備 鬱的璋。高速槔134和二階解析器⑽在下面將給出詳細描述。 網路資訊通過外部乙太網埠l〇9a_ 109χ進入和輸出設備 1〇〇。具體來說’設備100中的資訊流量由外部乙太網資源璋由至 -個或多個唯-的目的乙太網蟑。在本發_—個實施例中,設 備1〇〇支援12侧理乙太網琿109和一個高速埠1〇8,其中每個 ‘物理乙太網埠可以顧__Mbps的數率工作,該高速埠1〇8 可以lOGbps或12Gbps的速率工作。 ♦物理埠109的結構由圖2進一步示出。一連串的串列化/並行 化模組103發送和接收資料,其中每個埠接收的資料由淳理器 1102A-L進行管理。該多個埠管理器具有料信號發生器⑽和 匯流排代理105以實現它們的操作。資料接收和傳送至淳資訊庫, 讀便可以監視流量。值得注意的是,高速蟑1〇8也具有近似的 功能但不需要如此多的部件,因爲只需對一個谭進行管理。 在本發明的-個實施例中,設備⑽制共用記憶體結構, 1337025 如圖3a-3b所示,MMU 115實現在不同埠間共用包暫存器同時 爲每個輸入口、輸出口和與每個輸出口相關的服務佇列級提供資 源保證。圖3a所示爲本發明的共用記憶體結構的示意圖。具體來 說,設備1〇〇的記憶體資源包括單元緩存池(CBp)記憶體 和傳輸佇列(XQ)記憶體304。CBP記憶體302是片外資源,某 些實施例中,CBP記憶體由4個DRAM晶片306a-306d組成。根 據本發明的一個實施例,每個DRAM晶片具有288Mbits的容量, 像CBP記憶體302的總容量爲i44Mbytes的原始存儲量。如圖3b所 示,CBP記憶體302被分成多個256K 576位元組的單元 308a 308x,其中母個單元包括32位元組的報頭緩存3丨〇、最高爲 512位元組的資料包312和32位元組的預留空間31扣這樣的話, 每個輸入包佔用至少-個完整576位元組的單元3〇8。因此當輸入 —包括64位元組的幀時,輸入包中爲其預留有576位元組的空間, 儘管該576位元組中只有64位元組被該幀使用。 參參看圖3a ’ XQ記憶體3〇4包括一列資料包指標·3ΐ6χ, 指向CBP記憶體3〇2,其中不同的XQ指標3i6與每辦相關 聯。CBP記憶體302的單元計數和XQ記憶體304㈣料包計數 可基於輸入口、輸出口和服務級進行追縱。這樣的話,設備100 可基於一個單元和/或服務提供資源保證。 一旦資料包通過源埠109進入設備1〇〇,該資料包將被傳輸至 解析器以進行處理。在處理過程中,每個輸人口和輸出口上的資
A 12 1337025
料包共用_源3G2和304。在狀實施例中,兩個獨立的64 位兀組突發資料包由本地球和HiGig埠轉送至mmu。圖4所示爲 由MMUm用於資源分配限制以確保對資源的公平訪問的暫存 器管理機構的示意圖。MMU115包括輸入口餘機構·、行首 (head of line)機構4〇6 *加權隨機早期檢測機構4〇8。輸入口背 壓機構4〇4支援無損耗狀態,並對所有輸入口公平地管理暫存与 資源。行首機構406支援對缓存資源的訪問,同時優化系統的吞 里加權k機早期檢測機構408改善整體的網路吞吐量 輸入口奇屡機構404使用資料包或單元計數器以追蹤每個輸 入口使用的資料包或單元的數量。輸入日賴機構柳包括有用 於、.且8個分別設置的閥值的寄存器,和用於指定8個閥值中的 那個被用於系統中一個輸入口的寄存器。該組閥值包括極限閥 值412、放棄極限(discardlimit)閥值414和重置極限閥值々^。 ‘如果與輸入口資料包/單元的使用相關聯的計數器增加且超過放棄 鲁極限閥值414時,輸入口處的資料包將被丢棄。基於用於追蹤單 元/資料包數量的寄存器’可使用暫停流量控制來停止到達輸入口 的負sfl流(此時該輸入口使用的緩存資源已超出了其公平共用的 緩存資源)’從而阻止來自違反規則的輸入口的信息量,並減輕由 該輸入口造成的堵塞。 具體地’每個輸入口基於與該組閥值相關聯的輸入口背壓計 數器一直追蹤以確定其是否處於輸入口背壓狀態。當該輸入口處 1337025 於輸入口为壓狀態時,周期性地將計時器值爲(0xFFFp)的暫停 爪里控制Φ貞發送出自玄輸入ύ。當5亥輸入口不再處於輸入口背壓狀 .態時’將計時器值爲(οχοο)的暫停流量控制幀由該輸入口送出, 並且再次允許資訊流流動。如果輸入口當前不處於輸入口被壓狀 匕、且資料包计數器的值超出極限閥值412,該輸入口的狀態將轉 換爲輸入口皮壓狀態。如果輸入口處於輸入口背壓狀態且資料包 •計數器的值降至重置有限閥值416以下,則該痒的狀態將不再處 •於背壓狀態。 行首機構4〇6支援對緩存資源的公平訪問,叫優化系統内 的吞吐量。行首機構406依靠丟棄的資料包來管理緩存資源避過 改善總的系統吞吐量,據本發明的—個實施例,行首機構4〇6 使用輪出口。十數器和預定的閥值以追縱每個輸出口和服務級的暫 存使肖ϋ其後做&決定以放棄新到達輸人ρ並將發往特定已 癱超額的輸出口/服務仔列級的資料包。行首機構4〇6依據新到達的 •資料包的顏色支援不同的閥值。資料包可基於在輸入口模組内執 仃的计篁和標記操作標記上顏色,並且MMU依靠資料包的不同 顏色做出不同的操作。 根據本發明的-個實施例’行首機構4〇6可在每個服務仔列 級和所有埠(包括CPU埠)上進行獨立的設置和操作。行首機構 4〇6使用計數器追蹤XQ記鍾3〇4和CBp記憶體3〇2的使用, 使用間值支援CBP記憶ϋ緩存3〇2 #靜態分配以及xq記憶體緩 1337025 I 存304的動態分配。放棄閥值422定義給CBP記憶體302中的所 有單元’而不管標記的是杆麼顏色。當與一個埠相關的單元計數 • 器的值達到放棄閥值422時,該埠被轉換至行首狀態。其後,如 果其單元計數器的值下降至重置極限閥值424以下,則該蟑將從 行首狀態中轉換出來。 對於XQ記憶體304 ’爲每個服務佇列級分配的固定的xq緩 存由XQ入口值(entry vaiue ) 430a-430h定義。每個XQ入口值 春430a-430h對應爲一個相關的佇列預留多少暫存器入口作出了定 義。例如’如果100位元組的XQ記憶體被指定給一個埠’分別 與XQ入口 430a-430d相關的第一四個服務佇列級分配的值爲1〇 位元、、且,而为別與XQ入口 43〇e-430h相關的後四個仵列分配的值 爲5位元組。 根縣發_—個實糊’儘管—则^列未所有的根據 相關XQ入口值爲其預留的暫存器入口,行首機構4〇6可不將未 鲁使用的暫存器分配給另一個仵列。儘管如此,用於該埠的xq緩 存餘下的未分配的40位元組可由與該埠相關的所有服務作列級所 共用。-個特定服務仔列級可佔用多少XQ緩存的共用池的限制 可由XQ „又置極限閥值432設定。這樣的話,設置極關值极 可用來疋義刪丁列可使用的緩存的最大數量,並用於防止一個 仔列使用所有可用的Xq緩存。爲確保xq人口值他_4观的總 和不大於該槔可用的XQ緩存的總數量,並雜每個服務作列級 15 1337025 可以訪問由其入口值430所分配的XQ缓存的配額,使用埠動態 計數寄存器來追縱每個相X〇暫存||的可用池,其中動態計數 寄存器434 —直追蹤該埠的可用共用XQ緩存的數量。動態計數 寄存器434的初始值爲與該埠相關的XQ暫存器的總數量減去xq 入口值430a-430h的數量之和後的值。當服務佇列級使用超出由其 XQ入口值430分配的配額後繼續可用Xq暫存器時,動態計數寄 存器434減1。相反地,當服務佇列級使用超出由其乂卩入口值 430分配的配額後釋放Xq暫存器時,動態計數寄存器加1。 當一個佇列請求XQ緩存時,行首機構4〇6確定該佇列使用 的所有入口是否少於該佇列的的Xq入口值43〇,並且在使用的入 口小於XQ入口值430的情況下同意該緩存請求。但是,如果使 用的入口大於佇列的XQ入口值430,行首機構4〇6將確定所請求 的量是否小於可用的暫存器總量或小於由相關的設置極限閥值 432設定給該佇列的最大量。不管資料包標記的顏色如何,設置極 限閾值432實質上是該仔列的放棄閥值。這樣,該資料包的資料 包計數值達到設置極限閥值432時,佇列/蟑進入行首狀態。當行 首機構406檢測到行首狀態時,發送更新狀態,因此堵塞埠的資 料包將被丢棄。 ' 然而’因爲滯後的原因’當行首機構3〇6發送狀態更新時, MMU115和該棒之間可能還有資料包正在傳輸中。在這種情況 下,因爲處於行首狀態MMU 115處出現去棄資料包的情況。在本 !337〇25 發明的一個實施例中,因爲資料包的流水線操作,XQ指標的動態 池減少預定的量。這樣’當可用XQ指標的數量等於或小於預定 的數量時,該埠轉換至行首狀態,並且一個更新狀態由MMU 115 發送至該埠,以此降低可能被MMU 115丟棄的資料包的數量。爲 了跳出行首狀態,該佇列的XQ資料包計數值必須下降到重置極 限閥值436以下。 對於一個特定服務佇列級的XO計數器來說,不達到設置極 限閥值432並且如果該埠的XQ資源被其他服務佇列級超額佔用 時仍將其資料包丟棄是可能的。在本發明的一個實施例中,還可 以爲含有特定顏色標記的資料包定義中間丟棄閥值438和439,其 中每個中間丟棄閥值定義何時應將特定顔色的資料包丟棄。例 如’中間丟棄閥值438可用于定義標記爲黃色的資料包應何時被 丟棄,中間丟棄閥值439用於定義標記爲紅色的資料包應何時被 丟棄。根據本發明的一個實施例,資料包可依照指定的優先順序 分別標記爲綠色、黃色或紅色。爲確保每個顏色的資料包與每個 佇列中的顏色分配相一致的進行處理,本發明的一個實施例包括 有虛擬最大閥纟44〇。虛擬最大閥值44〇等於未分配且可用的緩存 數1除以㈣數量和當前使用的暫存器數量之和後的值。虛擬最 大閥值44〇確保每個顏色的資料包以一定的比例進行處理。因此, 如果可用未分輯暫存H數量小於某—航㈣的設置極限間值 432’並且該仵列凊求訪問所有可用未分配的暫存器,行首機構· 、》、 17 l337〇25 爲該仵列計算虛擬最大閥值梢,並 很媒爲母個顏色定義的比率 蜒理一疋比例量的相關顏的資料包。 爲保存寄存,XQ 可絲舰_式,其中每個單 凡代表一組XQ入口。組的大小取決盥 於⑴Λ ,、杲個特疋的輸出口/服務 t列級相關的XQ暫存器的數量。 加權隨機早期檢測機構408是一個件列管理機構’在XQ暫 =CH用盡於侧算_罐包。加權隨機早期檢 機構4〇8因此可用於優化整個網路的吞吐量。加權隨機早期檢 職構4〇8包括一個平均值統計值,用以追蹤每個仵列的長度, 並基於爲份則的綠 (dropp禮e) *棄神包。該丢棄 說明定義了給额定平触狀傾盯岐討紐。根據本 發明的—個實施例,加權隨機早期檢測機構408可基於服務仔列 級和資料包定義單獨的說明。 如圖1所示,MMU 115從解析器130接收資料包以進行存儲。 如上所述’解析n m包括—個二級解油,該部分在圖5中示 出。如上所述,資料在網路設備的蟑5〇1處接收。資料也經由cmic 502接收’其中該資料將通過輸入CMIC介面5〇3。該介面用於將 CMIC資料從P_bus格式轉換爲輸入口資料格式。在一個實施例 中,資料從45位元轉換爲168位格式,這樣後面的格式包括128 位元的資料、16位元的控制和可能的24位元的高速報頭。其後, 資料以64位元突發串的形式發送至輸人口仲裁器504。 > 18 1337025 輸入口仲裁器504從蟑501和輸入CMIC介面503接收資料, 並基於時分多路仲裁技術鈐這些輸入進行多工。其後,資料被傳 送至MMU 510 ’在MMU 510處,所有HiGig報頭被移除,並且 被a又置爲MMU介面格式。然後檢查資料包屬性,例如,端對端、 中斷貝努裏處理(Interupted Bernoulli Process,IBP)或行首(HOL) 資料包。此外’資料的頭128個位元組被監聽,並且HiGig報頭 被傳至解析器ASM525。如果接收到的突發資料包含端點標誌, 則CRC結果將被發送至結果匹配器515。而且,資料包的長度由 突發串長度估測得到,並生成126位元的資料包ID以供調試用。 解析器ASM 525將每個突發串4個迴圈的64資料突發串轉 換爲每個突發串8個迴圈的128位元組突發串。128位元組的突發 資料被同時轉送給隧道解析器53〇和解析器PJFO 528以保持相同 的資料包順序W道解析器53〇確定是否採用了任何類型的隨道 封裝,包括MPLS和IP随道效應。此外,該隧道解析器還檢查外 部和内部標^通過解析處理,將會話初始化狀(sip)提供給 基於子、’觸VLAN,針,如果㈣包爲位址解析協定(ARp)、 反向ARP協疋(RARP)或jp資料包時,將發生sn>解析。基於 源中繼線映射表’還可以創建中繼線物極的仍(trunkp〇rtgrid ID)除非/又有中繼線(trunk)或如果該中繼線1〇可從HiGig報 頭中獲得。 随道解析器530與隨道拾杏哭q 咚双—盗531 —起工作。隧道檢驗器檢 1337025 查IP報頭的校驗和(checksum)以及UDP隧道效應和ιρν4之上 IPv6資料包(IPv6 over IPv4 packets)的特性。隧道解析器530利 用搜索引擎520通過預定義的表確定隧道類型。 解析器FIFO 528存儲128位元組的資料包報頭和位元組 的HiGig報頭,該HiGig報頭由深度解析器540再次進行解析。 當搜索引擎完成一次搜索並準備進行深層搜尋時,報頭位元組被 存儲。也將維持其他的屬性,例如資料包長度、HiGig報頭狀態和 I >料包ID。深度解析器540提供三種不同類型的資料,包括‘‘流過,, 的搜索引擎520的搜索結果、内部解析結果和HiGig模組報頭。 特定的資料包類型將被確定並傳送至搜索引擎。深度解析器54〇 讀取來自解析器FIFO的資料,對預定義的攔位進行解析。搜索引 擎基於傳送至該搜索引擎的值提供查找結果,其中將對資料包江j 進行檢查以維持資料包順序。 深度解析器540還使用協定檢查器541來檢查内部Ip報頭的 ®校驗和,檢查服務攻擊屬性的否決、HiGig模組報頭内的錯誤,並 執行martian校驗。該深度解析器還與攔位處理器解析器542 一起 工作,以解析預定義欄位和用戶定義的欄位。預定義攔位從深度 解析器中接收。這些欄位包括MAC目的地址、MAC源地址、内 部和外部標簽、乙太類型、IP目的和源位址、服務類型、、正 標記、TDS、TSS、TCP標記和流標簽。用戶定義的搁位也 是可解析的,最高長度爲128位。 20 1337025 如上所述’ HiGig埠上接收的資料與其他本地埠上接收的資料 是分開單獨處理的。如圖1所示,HiGig埠108具有自有的暫存器, 資料從該埠流入其自有的解析器134内。HiGig解析器的更多細節 如圖6所示’其結構與圖5中所示二級解析器相似,但具有一些 差別。HiGig埠601接收的資料被轉送至HiGig埠彙編器604。該 彙編器以64位元組突發串的形式接收該資料和HiGig報頭,與用 於本地埠中的格式相似。所述資料以MMU介面格式被發送至 · MMU 610而未帶有所述HiGig報頭。 所述資料的頭128個位元組被監聽並且與HiGig報頭一起發 送至深度解析器640。與二級解析器相似的是,端對端資訊被檢 查,並在邊頻帶内發送該解析結果。同樣近似的是,CRC和資料 包長度由結果匹配器615進行檢查。此外,生成%位元的資料包 ID以用於調試和追蹤資料包的流。 深度解析器640的HiGig版本是二級深度解析器54〇的子設 •備,並執行相似的功能。然而,搜索引擎620中沒有資訊經過, 它不能跳過MPLS報頭,並且只解析有效載荷,不發送深度資料 給搜索引擎。從功能上來說,FP解析器642的HiGig版本與上面 討論的RP解析器542相同。 結果匹配器在圖7中詳細示出。值得注意的是,結果匹配器 可被普遍的應用於由多個解析器共用,或者每個解析器使用其自 有的結果匹配器。在圖中所示的實施例中,兩種類型的埠71〇和 21 1337025 720接收資料並通過輸入口彙编 果、兩态715和輸入口仲裁器725的操作 轉送-趙值給結果檢纽。該數值包括埠數腳的存在、㈣ 和資料包長度。結果匹配器以—系卿〇峰通過使用搜索引 擎705來匹配搜索結果。基於每個琿,標簽和_事件與資料包 長度和CRC狀態相匹配。每4個迴圈,搜索結果便被提供給網路
蟑和HiGigi車。如果存在延時小於輸入資料包時間的情況,這種 結構使得搜索結果存儲在每個埠的結果匹配_,當搜索延時比 輸入資料包時間短時,這種結構允許等待資料包結果的終端出現。 ,在對接收的資料進行解析和評估後,依據接收的資訊做出轉 送決定。該轉送決定通常爲資料包應發送給什麼目料,儘管該
決定也可纽㈣料包或通過CMIC m轉送㈣包給cpu或其 他控制器。在輸出口,基於網路設備的解析和評估,該資料包被 修改。如果輸出口肖HiGig埠,此修改包括標記、報頭資訊的修 改或添加模崎^祕扣單元綠礎進行,⑽免在轉送資 料包時産生延時。 圖8所示爲用於本發明的輸出口仲裁器的配置示意圖。如圖8 所示’ MMU 115還包括調度器8〇2,爲與每個輸出口相關的8個 服務件舰ma_8G4h提供㈣,從而提供最小和最大帶寬保證^ 值得注意的是’此處介紹的是8驗務,但是也支援其他服務級 別杈式。調度器802與一組最小和最大計量機構8〇6a_8〇6h集成在 起其中母個計量機構監控每個服務級的流量以及每個輸出口 、之、 22 1337025 的流量。计篁機構806a-806h支援流量調整功能(trafficshaping function) ’並基於每個服務彳宁列級和/或輸出口保證其最小帶寬要 求’其中調度器802的調度決定通過流量調整機構8〇6a_8〇6h與一 組控制遮罩一起來配置,該控制遮罩用於修改調度器8〇2如何使 用流量調整機構806a-806h。 如圖8所示’最小和最大計量機構8〇6a_8〇6h監控基於每個服 務佇列級以及基於每個輸出口監控流量。最大和最小帶寬計量 806a-806h用以反饋狀態資訊給調度器802,調度器802回應該狀 態資訊’修改其整個服務佇列804上的服務順序。因此,網路設 備100可使系統銷售商能夠通過配置服務佇列級8〇4來執行多個 服務模型,從而支援明確的最小和最大帶寬保證。在本發明的一 個實施例中’計量機構806a-806h基於服務佇列級檢測資訊流量, 提供一個服務佇列級的流量是否高於或低於最小和最大帶寬要求 的狀態資訊’並傳輸該資訊至調度器802,調度器802使用該計量 資sfl修改其調度決定。這樣的話,計量機構8〇6a-806h協助將服務 4丁列級804分割成一組未符合最小帶寬要求的彳宁列、一組符合其 最小帶寬但不符合最大帶寬要求的佇列以及一組已超出其最大帶 寬要求的佇列。如果一個佇列屬於該組不符合其最小帶寬要求的 佇列,且該佇列有資料包,調度器802將根據配置的調度規則對 該仔列進行服務。如果一個作列屬於該組不符合其最小帶寬要求 但沒有超過其最大帶寬要求的佇列,且該佇列中有資料包,調度
23 1337025 器802將根據配置的調度規則對該佇列進行服務。如果一個彳宁列 屬於該組超出其最大帶寬妻求的佇列或者如果該佇列爲空,調戶 裔802將不對該仔列進行服務。 最小和最大帶寬計量機構806a-806h可使用簡單的漏斗摘機 構來實現,追蹤一個服務佇列級804是否佔用了其最小或最大帶 寬。每個服務級804的最小和最大帶寬的範圍設置在64Kbps至 16Gbps之間,並以64Kbps遞增。該漏斗桶機構具有可設置數量 镛的權杖‘‘泄漏”桶,每個桶以可配置的比率與佇列804a-804h中一個 相關聯。在計量服務作列級804的最小帶寬時,由於資料包進入 服務佇列級別804,與該資料包大小成比例的一定數量的權杖被添 加到對應的桶中,該桶具有桶最高閥值的最高限度。該漏斗桶機 構包括有刷新介面和定義每次刷新時間單元内移除多少個權杖的 最小帶寬。最小閥值用於指出資料流程是否滿足至少其最小比 率,填充閥值(仙threshold)用於指出漏斗桶中有多少個權杖。 參當填充閥值上升超過最小閥值,一個指出該資料流程已滿足其最 小帶見要求的標諸被設定爲真值(true)。當填充閥值下降低於最 小閥值,該標誌被設定爲僞值(false)。 在計量機構806a-806h指出規定的最大帶寬已超出高閥值 後’調度器802終止對該符列的服務,且該佇列被分入已超出最 大w寬要求的作列組中。然後,發送一個標誌、以指出該仔列已超 出其最大帶寬。隨後,當其填充閥值下降至高閥值以下且指示其
、<SM 24 1337025 超出最到帶I的標諸被重置時’該符列僅從調度器8〇2接收服務。 最大速率計量機構8G8·用於指出某個崞規糾最大帶寬已經 |被超出,並且在最大總帶寬被超出時,其與計量機構齡―8嶋 的I作方式是-獅。根據本發_—個實施例,基於一個仔列 和埠上的最大計量機構會影響仵列m或一個蟑將是否被包括在 調度仲裁中。因此,該最大計量機構只對調度器8〇2有流量限 ' 影響。 另方面’服務符列,級804的最小計量與調度器8〇2具有更 複雜的交互操作。在本發明的一個實施例中,調度器8〇2域各 種調度規則’來類比加權公平仵列方案的帶寬共祕能1加權 公平仔列方案爲基於資料包的公平仔列方案的加權版本,被定義 爲-種用於提供資料包的“基於位元迴圈複用,,調度的方法。這 .樣’可對資料包進行調度,以基於該資料包的傳送時間訪問輸出 口’該咖在職提供基於位·複贿務時計算得出。 籲=關的加侧位將影響調度器如何使用最小計量機構的具體細 節’其中該調度器試圖提供最小帶寬保證。 在本發明的—個實_中,最小帶寬健是-個相對的帶寬 保證,其中一個相關欄位決定了調度器是否將會把最小帶寬計= 設置視爲一個相對的或絕對的帶寬保證的規格。如果設置了相^ 攔位’調度器將把最小帶寬806設置視爲—個相對帶寬規格。目然 後調度器802嘗試提供在積壓仔歹4 8〇4上共用的相對帶寬。 25 1337025 如上所述,本發明的網路設備通過實現強大的和靈活的資料 包修改,避免了現有網路設檣的局限性。爲了更好的理解本發明, 以下從攔位的角度對資料包給出介紹。 圖9所示爲實現本發明一個實施例的網路設備例如交換晶片 的示思圖。如圖9所示,設備9〇〇包括輸入口/輸出口模組912、 MMU 915、解析器930、修改引擎940和搜索引擎920。輸入口/ 輸出口模組用於資料的緩存以及將資料傳送給解析器。解析器93〇 解析已接收的資料,並基於已解析的資料利用搜索引擎92〇執行 查找。MMU915的主要功能是以可預測方式有效地管理單元緩存 和資料包指標資源,即使是在嚴重堵塞的情況下…旦作出傳送 決定,資料包通過MMU 915從記憶财讀出,傳送給修改引擎 940以進行修改。其後,將修改後的資料包傳送給蜂介面犯使 其可通過恰當的輸出口發送^通過這些模組,可對資料包進行修 改,且資料包可傳送給適當的目的埠。 網路資訊流通過乙太埠條-嫩進出設備9〇心具體來說, 設備900内的資訊流將從外部乙太網源埠路由至_個或多個唯— 的目的乙太網璋。在本發明的一個實施例中,設備支援Η個 物理乙太稱909’其中每個埠可在蒙的速度下工 作。 在某—實㈣j巾’查找表可位於網路設備外部的記憶體中, 或位於網路設備内自有的記憶體中。解析器咖解析資料包以確 26 l337〇25 定該資料包的_部分,從而決定網路設備朗執行什麼操作。 多數時候,只需檢查資料&的-個初始部分,該初始部分又稱爲 報頭。 ” 圖10所示爲一個資料包1000的一部分,即報頭部分。該報 頭部分被分爲幾個攔位,即1001-1004,這些欄位包括目的地址、 源位址、資料包類型、互聯網協定(IP)源和目的地址等等。從 這種格式來看’資料包報頭由多侧位構成,Μ如果網路設備 想要修改這些攔位的值,就必須先對這些攔位定位。然而,如上 所述,資料包内攔位的位置由資料包類型決定。如果現有技術中 的網路設備想要修改某些攔位,必須首先確定資料包的類型,然 後應用一組值以對給定資料包格式下的攔位進行定位。 如果該^料包袼^疋現有的網路設備不熟悉的格^,則將該 資料包發送給外部控制器,這樣該資料包才能被正確地處理。或 者’如果該格式不料被理解,可將資料包丟^這兩種處理均 限制了網路战的呑吐量,且财技術巾_路設備通常不能再 進仃改進以處簡格式的資料包並轉需要的處理速度。 ~本發簡供-種可選方案,以—個“單元,,爲基礎修改資料 包…個單元由資料包中的16位元構成,這16位元對於資料包 任何攔位或功④來說都不是特定的。這種格式如圖U中所示, 其十貝料包1100由多個單元11〇111〇4構成。從資料包修改引擎 的角度來看’每解凡與其他任何單元均綱。因而,如果資料 27 1337025 I 包修改引擎想要職料包llGG添加單元,可參考姆於包頭的偏 移。因而’如圖11所不,對兩個單元“X”加上偏移量“5,,。或 者,各單元可被替代,例如,單元0可被另一個16位元的替代單 元替代。 通過單元而不疋攔位來參考資料包位置的處理具有幾個優 勢。該處理騎㈣包的敍與㈣面板在錄齡離。修改可 通過與嫩或包格式無關的—個引擎來做出。該修改可通過對硬 着體的簡單指令完成,且支援任何資料包格式β 資料包的單元做還遵师料包修改的鏈表方法。正像記憶 體中的鏈表能使記憶體中的更多空間得到使用而不需要鄰接體 (contiguGUS whGles)—樣,這種單格式能實現更大的靈活性。修 改用的偏移量存儲在-個單獨的寄存器中,從記憶體中讀出資料 包時,便對其做出真正的改變。
圖所示爲重新組成資料包中的一段的示意圖。將資料包社 構中的-段服中的值輪入,代替1202中的黑色單元的值經 過多工讓後生成-個完整的資料包結構i肌同樣值得注意的 是’資料包修改引擎在單元的操作中採用縱橫處理(咖咖 process) ’因此-個單元在資料包内的任何位置移動。因此,除了 資料包内單元的相加、減或置換外,各個單元可以任何順序制。 資料包修改_處理可紅_令(例如,將目的地址改 變成另-個位址)譯成微指令(例如,職後的單補代單元2 1337025 3)°因此’如果需要新的巨集指令以適應不同的資料包格式,這 些巨集指令可翻譯成微指令。這樣的話,資料包修改引擎可適應 變化’並仍能實現資料包的線速(line-speed)修改。 上述處理過程還允許在輸出口需要的情況下添加標簽。在某 些隧道封裝中’需要在資料包的L2欄位之前插入隧道標簽。該隧 道標簽可以是32位的,其插入涉及對資料包插入2個單元。本發 明通過以單元爲基礎的資料包處理,使這種標簽的插入得到簡 化。因而’本發明支援2個單元的移動的情況下,這種隨道封裝 能以快速且簡單的方式實現。 給定資料包修改處理的一般屬性的情況下,某些操作可能比 專門對特定類型的資料包執行某些操作的引擎執行的操作要慢。 避免可能的延時的一個方法是轉發資料包,因爲該修改處理將對 資料包各段採用時間分割(time division)。圖13中示出了這種處 理。圖13a所不爲8個單元組成的同一資料包片段的幾種形式。 該資料包片段的每種形式可以通過延時電路獲得。橫軸表示時鐘 周期内的時間標度。資料包的所述多個形式用於填充因插入、埘 除或替代産生的間隙。如上所述,這可以使因修改而未對齊的資 料包的片段能在單個時鐘周期内輸出。 圖13a中的每種資料包形式用不同的陰影表示。因而,在圖 13b中,增加的4個單元導致輕微的錯位。這樣的話,大多數資料 包從第二次迴圈甲取出,剩下的資料包從第四次迴圈中取出。圖 29 ΓΙ337025 可提夕早70的插人,第三、第四和第五次趣圈中的—部分 =正麵排.圖13d所示駿料包中的刪除,所以第二迴 , 科可用於提供正確的排列。近似地,圖Ue所示爲更 多早元地刪除,第一、笙—妨— 馬更 的排. 第―和第三:人迴圈中的—部分可實現正確 以上疋對本發明具體實施例的贿。很_,可對本發明上 述描述的魏舰其他的變化和修改,雜輯縣發明㈣也 或所有優黑卜因此,本發明的權利要去說明了本發明的精神實質 和範圍’覆蓋了財對本發明上述實施_變化和修改情況。 【圖式簡單說明】 圖1是根據本發明一個實施例的網路設備的示意圖; 圖2是根據本發明一個實施例使用網路設備的埠進行通信的 示意圖; 傷 圖3a是網路設備使用的位於網路設備外部的共用記憶體的結 構示意圖;圖3b是圖3a巾共用記紐結構的單元緩存池的示意 圖; 圖4疋由圮憶體管理單元用於資源分配限制以確保對資源的 公平訪問的暫存器管理機構的示意圖; 圖5疋根據本發明某些實施例的2級解析器(口紅记!·)的示意 圖; 圖6是根據本發明某些實施例的與互連埠一起使用的另一解 30 叫7025 析器的示意圖; 圖7疋根據本發明某些實施例的結果匹配器的示意圖; 圖8是用於本發明的輪出口仲裁器的配置示意圖; 圖9是根據本發明另一實施例的網路設備的示意圖; 圖10是現有技術中的-種資料包格<的攔位示意圖; 圖11是根據本發明一個實施例的一種資料包格式的單元示意 圖; 圖12是根據本發明一個實施例多工資料結構以形成最終的資 料包結構的處理的示意圖; 圓13a是根據本發明—個實施例的多維單元排列的示意圖; 圖13b是根據本發明一個實施例的多維單元排列的示意圖; 圖13c是根據本發明一個實施例的多維單元排列的示意圖; 圖13d是根據本發明—個實施例的多維單元排列的示意圖; 圖13e是根據本發明一個實施例的多維單元排列的示意圖。 【主要元件符號說明】 設備 100 模組 103 匯流排代理器(bus agent) 105 外部乙太網埠l〇9a、... 、109x CPU處理模組(如CMIC) 111 記憶體管理單元(MMU) 115
埠管理器 102A-L 定時發生器(timing genoator) 104 南速淳 108 CPU 埠 11〇 入站/出站模組(Xpat) 112、113 搜索引擎 120 31 1337025
附加的搜索引擎模組BSE 122 HSE 124 CSE 126 分析器 130 模組 132、 136 分析器 134 雙階分析器(two stage parser) 138 單元緩衝池(Cell Buffer Pool,簡稱CBP)記憶體 302 事務件列(Transaction Queue,簡稱XQ )記憶體 304 靜態隨機存取記憶體(DRAM)晶片 306a、…、 306d 單元 308a、... 、308x 報頭緩衝 310 包資料空間 312 保留空間 314 資料包指標 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
、<SM 32 1337025 搜索引擎 520 分析器FIFO 528 隧道校驗器 531 協定校驗器 541 HiGig 埠 601 HiGig蟑組合語言程式(assembier) MMU 610 搜索引擎 620 FP分析器 642 入站MIB 707 入站組合語言程式 715 調度器 802 通信量調整器806a 、…、806h 設備 900 輸入口/輸出口模組 912 搜索引擎 920 修改引擎 940 欄位 1001、 ...、1004 XtXJ — 早疋 1101、 ...、1104 資料包結構中的—段 1201 、 1202 分析器ASM 525 随道分析器(tunnel parsor) 5 3 Ο 深度分析器 540 欄位處理分析器 542 604 結果匹配器 615 深度分析器 640 搜索引擎 705 埠 710、720 入站裁決器 725 業務佇列(COS) 804a 、…'804h 最大率計量機制 808 乙太埠 909a、 ...、909x MMU 915 解析器 930 資料包 1000 資料包 1100 多工器 1200 資料包結構 1203 33

Claims (1)

1337025 98年月27r修正本 十、申請專利範圍:^- 1、一種在資料網路中處理資料的網路設備,其特徵在於,所述網 路設備包括: 蜂介面’與多個埠通信,用於從資料網路中接收資料包以 及將已處理的資料包發送至所述資料網路; 記憶體管理單元,與記憶體通信並控制所述記憶體,向所 述記憶體存儲資料以及從所述記憶體中重新獲取資料; %析益’與所述埠介面和所述記憶體管理單元通信,解析 所述已接收的資料包以確定所述資料包的屬性以及修改從所述 記憶體獲取的資料包,並基於所述確定的屬性生成已處理的資 料包; 其中所述解析器以單元爲基礎,通過所述資料包的單元之 間的相加、減和替換修改所述資料包,其中所述每個單元具有 預定的位元長;
其中’所述解析器保留多個有時延的資料包片段以允許資 料包各部分的重新排列,其中各部分的未對準因所述資料包單 元的相加、減和替換而出現。 2、如申請專利範圍第丨項所述的網路設備,其中,所述預定長度 爲16位。 3、 如申請專利範圍第丨項所述的網路設備,其中,所述解析器將 修改資料包棚位的指令轉譯成修改資料包單元的指令。 4、 如申請專利範圍第丨項所述的網路設備,其中,所述解析器通 34 1337025 匕使用鏈I。構追縱修改來修改所述資料包的片段。 5 、-種在網路設獅處理㈣財法,其概在於,所述方法包 麵料處通鱗介Φ触資料包; 發送資料包至記憶體管理單元; 由所述記憶體管理單元將所述資料包存儲在記憶體内; 鲁 從所述5己憶體内重新獲取所述資料包; 以早福基礎,通過所述資料包單元間的相加、減和置換 仏改所述重新獲取的資料包,以生成已處_資料包,其中所 述每個單元具有敢的位元長; 發达所述已處理的資料包至所述多個埠中的輸出口; 士其中,所述修改重新獲取的資料包的步驟包括保留多個有 =延的貝料包#段以允許資料包各部分的賴制,其中所述各 力的未對準因所述資料包單元的相加、減和置換而出現。 6、如申請專利範11第5項所述的方法,其中,所述修改重新獲取 的資料包的步驟包括以單元爲基礎修改所述重新 包’其中每個單元_定長賴丨6位。 的貝抖 7如申請專利範圍第5柄述的方法,其巾,所述修改重新獲取 的資料包的步驟包括將修改資料包攔位的指令轉譯成修改資料 包單元的指令。 8 種處理資料的網路設備,所述網路設備包括: 35 接收資料包和發送已處理的資料包的璋裝置; 由記憶體中的記憶體管理單元向其存儲從所述璋裝置接收 的資料包以及從其重新獲取所記憶體的資料包的記憶體裝置; 以單元爲基礎,通過資料包單元_相加、減和置換修改 所述重新獲取的資料包以生成已處理的資料包的修改裝置,其 中所述每個單元具有預定的位元長; 其中,所述修改裝置包括用於保留多個有時延的資料包片 段以允許所述資料包各部分的重新排列的裝置,其中所述各部 分的未對準因所述資料包單元的相加、減和置換而出現。 、如申請專利$第8項所述_路設備,其中,所絲改裝置 包括以單元爲基礎修改所述重新獲取的資料包的裝置,其中每 個單元的預定長度爲16位。 )、如申請專利範㈣8項所述_路設備,料,所述修改裝 置包括用於將修改㈣包攔㈣指令解戍修改資料包單元的 指令的裝置。
TW095105055A 2005-02-18 2006-02-15 Flexible packet modification engine for a network device TWI337025B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US65394005P 2005-02-18 2005-02-18
US11/214,990 US7983291B2 (en) 2005-02-18 2005-08-31 Flexible packet modification engine for a network device

Publications (2)

Publication Number Publication Date
TW200707981A TW200707981A (en) 2007-02-16
TWI337025B true TWI337025B (en) 2011-02-01

Family

ID=35854282

Family Applications (1)

Application Number Title Priority Date Filing Date
TW095105055A TWI337025B (en) 2005-02-18 2006-02-15 Flexible packet modification engine for a network device

Country Status (4)

Country Link
US (1) US7983291B2 (zh)
EP (1) EP1694005B1 (zh)
DE (1) DE602006006104D1 (zh)
TW (1) TWI337025B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7516364B2 (en) * 2005-10-31 2009-04-07 Hewlett-Packard Development Company, L.P. Method for testing network devices using breakpointing
US7822875B1 (en) * 2006-12-22 2010-10-26 Marvell International Ltd. Method for flexible modifications to a packet
CN107743101B (zh) * 2017-09-26 2020-10-09 杭州迪普科技股份有限公司 一种数据的转发方法及装置
US11463560B2 (en) 2021-01-20 2022-10-04 Jump Algorithms, Llc Network interface architecture having a directly modifiable pre-stage packet transmission buffer
CN114827242B (zh) * 2022-04-24 2023-10-20 深圳市元征科技股份有限公司 流控帧修正方法、装置、设备及介质

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4899334A (en) 1987-10-19 1990-02-06 Oki Electric Industry Co., Ltd. Self-routing multistage switching network for fast packet switching system
EP0600683B1 (en) * 1992-12-04 2001-10-10 AT&T Corp. Packet network interface
US5473607A (en) * 1993-08-09 1995-12-05 Grand Junction Networks, Inc. Packet filtering for data networks
US5887187A (en) * 1993-10-20 1999-03-23 Lsi Logic Corporation Single chip network adapter apparatus
US5761424A (en) * 1995-12-29 1998-06-02 Symbios, Inc. Method and apparatus for programmable filtration and generation of information in packetized communication systems
US5748905A (en) * 1996-08-30 1998-05-05 Fujitsu Network Communications, Inc. Frame classification using classification keys
US5909686A (en) * 1997-06-30 1999-06-01 Sun Microsystems, Inc. Hardware-assisted central processing unit access to a forwarding database
US6014380A (en) 1997-06-30 2000-01-11 Sun Microsystems, Inc. Mechanism for packet field replacement in a multi-layer distributed network element
US6246680B1 (en) 1997-06-30 2001-06-12 Sun Microsystems, Inc. Highly integrated multi-layer switch element architecture
US6591299B2 (en) * 1997-11-25 2003-07-08 Packeteer, Inc. Method for automatically classifying traffic with enhanced hierarchy in a packet communications network
US6341130B1 (en) * 1998-02-09 2002-01-22 Lucent Technologies, Inc. Packet classification method and apparatus employing two fields
US6289013B1 (en) * 1998-02-09 2001-09-11 Lucent Technologies, Inc. Packet filter method and apparatus employing reduced memory
AU4848799A (en) * 1998-07-08 2000-02-01 Broadcom Corporation High performance self balancing low cost network switching architecture based ondistributed hierarchical shared memory
AU1580401A (en) 1999-11-16 2001-05-30 Broadcom Corporation High speed flow control methodology
US6654373B1 (en) * 2000-06-12 2003-11-25 Netrake Corporation Content aware network apparatus
JP2002077243A (ja) * 2000-08-24 2002-03-15 Fujitsu Ltd セル/パケット混在の伝送方法および伝送装置
US7035212B1 (en) * 2001-01-25 2006-04-25 Optim Networks Method and apparatus for end to end forwarding architecture
US7626999B2 (en) * 2001-03-16 2009-12-01 Tellabs San Jose, Inc. Apparatus and methods for circuit emulation of a point-to-point protocol operating over a multi-packet label switching network
US6944168B2 (en) * 2001-05-04 2005-09-13 Slt Logic Llc System and method for providing transformation of multi-protocol packets in a data stream
JP3489573B2 (ja) * 2001-07-11 2004-01-19 日本電気株式会社 パケット処理装置
US7120113B1 (en) * 2001-07-16 2006-10-10 Juniper Networks, Inc. Systems and methods for limiting low priority traffic from blocking high priority traffic
AU2002326995A1 (en) * 2001-09-19 2003-04-01 Bay Microsystems, Inc. Vertical instruction and data processing in a network processor architecture
US8010751B2 (en) * 2002-04-14 2011-08-30 Bay Microsystems Data forwarding engine
US6735647B2 (en) * 2002-09-05 2004-05-11 International Business Machines Corporation Data reordering mechanism for high performance networks
US8339945B2 (en) * 2003-07-01 2012-12-25 Mworks Wireless Holdings Llc Data link control architecture for integrated circuit devices
US7385984B2 (en) * 2004-03-30 2008-06-10 Extreme Networks, Inc. Packet processing system architecture and method

Also Published As

Publication number Publication date
EP1694005B1 (en) 2009-04-08
US20060187947A1 (en) 2006-08-24
DE602006006104D1 (de) 2009-05-20
US7983291B2 (en) 2011-07-19
TW200707981A (en) 2007-02-16
EP1694005A1 (en) 2006-08-23

Similar Documents

Publication Publication Date Title
EP1694006B1 (en) Multi-part parsing in a network device
TWI323994B (en) Programmable metering behavior based on table lookup
US8724633B2 (en) Internet real-time deep packet inspection and control device and method
US8320240B2 (en) Rate limiting and minimum and maximum shaping in a network device
EP1662725B1 (en) Cut-through switching in a network device
US20060187832A1 (en) Filter based range check in a network device
US8457131B2 (en) Dynamic table sharing of memory space within a network device
US20120076153A1 (en) Statistics module for network processors in virtual local area networks
TWI323108B (en) Powerful and expandable pipeline architecture for 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
EP1694002B1 (en) Memory access in a shared memory switch
US20060187919A1 (en) Two stage parser for a network
US20060187923A1 (en) Dynamic filter processor key generation based on packet type
US8331380B2 (en) Bookkeeping memory use in a search engine of a network device
US7940764B2 (en) Method and system for processing multicast packets
US20060203824A1 (en) Passing values through a memory management unit of a network device
CN100486226C (zh) 一种网络设备以及在该网络设备中处理数据的方法
US8228932B2 (en) Layout architecture for expandable network device
US20060187828A1 (en) Packet identifier for use in a network device
US20060187920A1 (en) Flexible packet modification engine
CN100493036C (zh) 处理数据的网络设备和方法
US20060187924A1 (en) Ingress handling of data in a network device

Legal Events

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