TWI323994B - Programmable metering behavior based on table lookup - Google Patents

Programmable metering behavior based on table lookup Download PDF

Info

Publication number
TWI323994B
TWI323994B TW095105057A TW95105057A TWI323994B TW I323994 B TWI323994 B TW I323994B TW 095105057 A TW095105057 A TW 095105057A TW 95105057 A TW95105057 A TW 95105057A TW I323994 B TWI323994 B TW I323994B
Authority
TW
Taiwan
Prior art keywords
data
packet
memory
programmable
bucket
Prior art date
Application number
TW095105057A
Other languages
English (en)
Other versions
TW200707982A (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 TW200707982A publication Critical patent/TW200707982A/zh
Application granted granted Critical
Publication of TWI323994B publication Critical patent/TWI323994B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/29Flow control; Congestion control using a combination of thresholds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/20Traffic policing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/21Flow control; Congestion control using leaky-bucket
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/31Flow control; Congestion control by tagging of packets, e.g. using discard eligibility [DE] bits
    • 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/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Arrangements For Transmission Of Measured Signals (AREA)

Description

1323994 九、發明說明: 【發明所屬之技術領域】 ; 本發明涉及在網路内處理資料的網路設備,更具體地,本發 明涉及一種控制通過能提咼處理速度和擴展性的網路設備的資料 流程的方法。 【先前技術】 一個網路可包括一個或多個網路設備,例如乙太網交換機, 癱每個父換機包括幾個模組,用於處理經過該設備傳輸的資訊。具 體來說,該設備可包括埠介面模組,用於發送和接收網路中的資 料,記憶體管理單元(MMU),肖於儲存資料直到被傳輸或進一 步處理;以及解析模組(resoluti〇nm〇dule),該模組允許根據指令 檢查和處理祕。所述決定餘具有交換魏,麟較應該控 制哪個目的埠的資料。網路設備上的某一埠可以是㈣璋,使設 備能夠向外部交換機/路由控制實體或cpu發送資訊以及從其接 I收資訊。 多數網路設備以乙太網交換機方式工作,資料包從多個璋進 入該設備,並對該資料包執行交換和其他處理。其後,資料包通 過MMU傳輸給-個或多個目的埠。MMUf現在不同的淳間共用 包暫存器,同時爲每個輸人口、輸出口和細m級別提供資源 保證。 根據目别的父換系統架構,每個輪人σ有相_ 8個級別的 服務仔列。爲了確保經過該埠和仔列的帶寬,該設備包括有調度 6 器,對服務仔列級別提供仲裁以確保最小和s大帶寬。能確保每 個埠的相·卿帶寬的—個實财案是爲每贿觸蟑分配總 帶見的-侧定部分。Z4樣醜’與具有高優先順序的服務級相 關的符列分S&到的帶寬將比與低優先順序服務湖的制分配到 的V寬要大。祕’所物度||關如迴@觀的方式處理每個 佇列内的資料包。 然而,這種實現方案不夠靈活。例如,當一個仔列爲空間時, 分配給該仵刺帶寬未被使用,儘管另—個㈣需要比分配給它 的量更多的帶寬。這樣的在超出其分配的帶寬的仔列中,資 料包會丢失,而空_列的帶寬仍未被使用。因此,急需要對計 量和調度方法進行岐,以實似要求的速度處理·,並提供 需要的靈活性以利用網路設備的所有資源。 【發明内容】 根據本發明的-個方面,提供—種在資料網路中處理資料的 網路设備,所述網路設備包括·· 口將已處理的資 多個埠’從資料網路中接收資料並通過輸出 料發送給所述資料網路; 控制器介面,與外部控制ϋ進行通信; /記憶體管理單元,鑛刺路設餅部攸憶體通信並對立 進灯控制,向所述記憶體存儲資料以及從所述存難重新獲取資 計量單元’與所述多個埠、所述控制器介面和所述記憶體管 理單元通訊,控制將發在所述輸出口的已處理資料流程. 其中’所述計量單元進-步包括可編程寄存器,與所述控制 器介面通訊,所述可編程寄存ϋ可由通過所述外部控制器經由所 述控制器介面發來的控制信號進行_,使得所有的已處理資料 流程可由所述外部控制器進行控制。 優選地,所述可編程寄存器包括8個可編程寄存器。 優選地,所述計量單元根據顏色標記所述已處理資料的資料 包,以基於所述控制器的信號控制所述已處理資料流程。 優選地’所料4單元確定輸人⑽腕縣於輸入包内的 值設置輸出包的顏色。 優選地’所述計量單元_經由—㈣漏斗桶的資料流程, 並基於資料包標記的顏色遞減漏斗桶。 斗桶 優選地,所述遞減量可通過所述龍包的大小來確定。 優選地’所述-系列漏斗桶中的多個漏斗桶爲至少51汉的漏 根據本發明的-個方面,提供—種在網路賴中處理資料的 方法,所述方法包括如下步驟: 接收從外部控制器通過控制器介面發送來的控制器信號; 器進行編程; 基於所述已接㈣㈣贿號,對計量單Μ的可編ς寄存 從多個埠中的—個埠接收資料 中的記憶體管理單元將所述接 由所述網路設備外部的記憶體 收的資料存儲; 確定所述接收的資料的屬性 出σ ; 以及爲所述接收的資料確定輸 次從所述錢體中重新獲取所述接收的資料並修改所述接收的 身料,如果需要,基於所述確定㈣性生成已處理的資料; 根據所述計量單元_示,通過所述輸出口發送所述已處理 的資料; 八中所述#里單%的所述可編程寄存器確定傳送到所述輸出 口的已處理資料流程的所有特徵。 優選地’所述編程步驟包括··基於所述接收的控制器信號對8 個可編程寄存器進行編程。 優選地戶斤述方法進一步包括:依據顏色標記所述已處理資 料的資料包,以基於所述控制器信號控制所述已處理的資料流程。 優選地,所述方法進-步包括··確定輸人包的顏色,並基於 輪入包内的值設置輸出包的顏色。 優選地,所述方法進-步包括:控制經由―系列漏斗桶的資 料流程,並基於資料包標記的顏色遞減漏斗桶。 優選地,所述遞減量可通過資料包的大小來去確定。 優選地,所述控制資料流程包括:控制經由一系列至少512Κ 1323994 的漏斗桶的資料流程。 根據本發㈣—個方面,提供—種處师料的網路設備 述網路設備包括·· 接收從外部控制器通過控制器介面發送來的控制器 收裝置; 基於所述已接收的控制器信號對計量單元中的可編程寄存器 進行編程的編程裝置; 通過輸出口接收資料以及發送已處理資料的埠裝置; 由所述網路設料部的記健⑽跳鮮料元將從分析 襄置接收的㈣存儲其巾並從其巾重賴取資_記憶體裝置,· 基於已確定的屬性修改重新獲取的、存儲的資料以生成已處 理資料的修改裝置; 其中所述可編程寄存器確定傳送到所述輸出口的已處理資料 流程的所有特徵。 優選地,所述編程裝置包括基於所述接收的控制器信號對8 個可編程寄存器進行編程的裝置。 優選地,所述設備進一步包括依據顏色對所述已處理資料的 為料包進行;^ s己以便基於所述控制器信號對所述已處理資料流程 進行控制的標記裝置。 優選地’所述設備進一步包括確定輸入包顏色並基於輸入包 内的值設置輸出包顔色的確定裝置。 1323994 優選地,所述設備進一步包括控制經由一系列漏斗桶的資料 流程的裝置以及基於資料包已標記的顏色遞減漏斗桶的裝置。 【實施方式】 • 圖1所示爲實現本發明一個實施例的網路設備例如交換晶片 的示意圖。設備100包括輸入口/輸出口模組112和113、記憶體 管理單元(MMU) 115、分析器130和搜索引擎120 »輸入口/輸 出口模組用於資料緩存以及發送資料至分析器。分析器130分析 癱接收的資料並基於已分析的資料利用搜索引擎12〇執行查找。記 憶體管理單元115的主要功能是即使在嚴重堵塞的情況下,也可 以以可預測方法有效地管理單元緩存和資料包指標資源。通過這 些模組,會發生資料包修改,並且資料包可發送到合適的目的埠。 根據本發明的幾個實施例,設備1〇〇還可以包括一個内部交 織兩速埠(internal fabric high speed port)例如 HiGig™ 或高速埠 108、一個或多個外部乙太網埠i〇9a l〇9x以及一個cpu璋11〇。 鲁尚速埠108用於在系統中互連各種網路設備,從而組成一個内部 交換網,用於在外部源埠與一個或多個外部目的埠間傳輸資資料 包。攻樣’面速埠1〇8在包括多個互相連接的網路設備的系統外 部疋不可見的。CPU埠11〇用於發送資訊給外部交換/路由控制實 體或cup ’以及從其中接收資訊。根據本發明的一個實施例,cup 璋lio可視爲外部乙太網槔1〇9a l〇9x +的一個。設借⑽通過 CPU處理模組ln (如CMIC,其與連接設備1〇〇與外部的
11 1323994 PCI >料匯流排連接)與外部/片外CPU連接。 此外搜索引擎模組120可附加的搜索引擎模組122、ί24和 、·且成以執行用於網路設備1〇〇處理的資料的特徵化和修改過 程中的特定查找。同樣,分析器⑽也包括有附加的模組,用於 對從内部輯高料⑶和其料138接收的資料行分析,分 還包括有其他模組132和136,用以轉送資料回網路設備 的埠。高速埠134和二階分析n 138在下面將給出詳細描述。 網路資訊通餅部乙太網埠驗_撕進人和輸出設備 ⑽。具體來說,設備!⑻中的資訊流量由外部乙太網資料由至 -個或多個唯-的目的乙太網^在本發明的—個實施例中,設 備100支援12個物理乙太網_109和一個高速蟑1〇8,其中每個 物理乙太網埠可以麵__Mbps缝率工作,該高速璋108 可以lOGbps或12Gbps的速率工作。 物理槔109的結構由圖2進一步示出。一連串的串列化/並行 化模組103發送和接收資料’其中每個蟑接收的資料由璋理器 U02A-L進行管理。該多個埠管理器具有定時信號發生器⑽和 匯流排代理105以實現它們的操作。資料接收和傳送至淳資訊庫, 思樣便可以監視流量。值得注意的是,高速埠1〇8也具有近似的 功能但不需要如此多的部件,因m個埠進行管理。 在本發明的-個實施例中,設備100使用共用記憶體結構, 如圖3a-3b所示’MMU115實現在不同槔間共用包暫存器,同時 12 1323994 爲每個輸入口、輸出口和與每個輸出口相關的服務符列級提供資 源保證。圖3a所示爲本發明的共用記憶體結構的示意圖。具體來 说’設備1〇〇的記憶體資源包括單元緩存池(CBp)記憶體3〇2 "和傳輸仔列(XQ)記憶體3〇4。CBP記憶體302是片外資源,某 '些實施例中,CBP記憶體由4個DRAM晶片3〇6a 3〇6d組成。根 據本發明的一個實施例,每個DRAM晶片具有288Mbits的容量, CBP記憶體302的總容量爲i44Mbytes的原始存儲量如圖3b所 修示,CBP記憶體302被分成多個256K 576位元組的單元 308a-308x’其中每個單元包括32位元組的報頭緩存31〇、最高爲 512位元組的資料包312和32位元組的預留空間314<>這樣的話, 每個輸入包佔用至少一個完整576位元組的單元3〇8。因此當輸入 包括64位元組的幀時,輸入包中爲其預留有576位元組的空間, 儘管該576位元組中只有64位元組被該幀使用。 參看圖3a ’ XQ記憶體304包括一列資料包指標316a 316x, •指向CBP記憶體302,其中不同的XQ指標316與每個埠相關聯。 CBP記憶體302的單元計數和xq記憶體304的資料包計數可基 於輸入口、輸出口和服務級進行追蹤。這樣的話,設備1〇〇可基 於一個單元和/或服務提供資源保證。 一旦資料包通過源埠109進入設備100,該資料包將被傳輸至 分析器以進行處理。在處理過程中,每個輸入口和輸出口上的資 料包共用系統資源3〇2和304。在特定實施例中,兩個獨立的64
13 位兀組大發貧料包由本地谭高速痒轉送至咖贿。圖4所示爲由 MMUm用於資源分配限制以顧對資源的公平訪問的暫存器管 -理機構的示意圖。MMU115包括輸入口背塵機構4〇4、行首(head - 〇fline)機構4〇6和加權隨機早期檢測機構4〇8。輸人口背愿機構 4〇4支援無損耗狀態,並騎有輸入口公平地管理暫存器資源。行 首機構406支援對緩存資源的訪問,同時優化系統的吞吐量。加丁 權隨機早期檢測機構408改善整體的網路吞吐量。 # 輸入口背壓機構404使用資料包或單元計數器以追蹤每個輸 -入口使用的資料包或單元的數量。輸入口背壓機構4〇4包括有用 於一組8個分別設置的閥值的寄存器,和用於指定8個閥值中的 哪-個被用於系統中-個輸入口的寄存器。該组閥值包括極限間 值412、放棄極限(discardlimit)閥值414和重置極限閥值416。 如果與輸入口資料包/單元的使用相關聯的計數器增加且超過放棄 極限閥值414時,輸入口處的資料包將被丟棄。基於用於追蹤單 鲁元/資料包數量的寄存器,可使用暫停流量控制來停止到達輸入口 的資訊流(此時該輸入口使用的缓存資源已超出了其公平共用的 緩存資源)’從而阻止來自違反規則的輸入口的信息量,並減輕由 該輸入口造成的堵塞。 具體地,每個輸入口基於與該組閥值相關聯的輸入口背壓計 數器一直追蹤以確定其是否處於輸入口背壓狀態。當該輸入口處 於輸入口背壓狀態時’周期性地將計時器值爲(OxFFFF)的暫停 流量控制幢發送出該輸入口。當該輸入口不再處於輸入口背廢狀 態時,將計時器值爲(0x00)的暫停流量控制賴由該輸入口送出, 並且再次允許資减流動’果輸人口當財處於輸人口被麗狀 態,且資料包計數器的值超出極限閥值412,該輸入口的狀態將轉 換爲輸入口方壓狀態。如果輸入口處於輸入口背壓狀態且資料包 計數器的值降至重置有_值416以下,則該埠的狀態將不再處 於背壓狀態。 行首機構406支援對緩存資源的公平關,同時優化系統内 的吞吐量。行首機構4〇6依靠丢棄的資料包來管理緩存資源避過 改善總的系統吞吐量。根據本發明的一個實施例,行首機構4〇6 使用輸出口計數器和預定的閥值以追蹤每個輸出口和服務級的暫 存器使用,並其後做出決定以放棄新到達輸入口並將發往特定已 超額的輸出口Λ務佇列級的資料包。行首機構4〇6依據新到達的 資料包的顏色支援不同的閥值。資料包可基於在輸入口模組内執 行的計量和標記操作標記上顏色,並且MMU依靠資料包的不同 顏色做出不同的操作。 根據本發明的一個實施例,行首機構4〇6可在每個服務佇列 級和所有埠(包括CPU埠)上進行獨立的設置和操作。行首機構 4〇6使用計數器追蹤XQ記憶體3〇4和CBp記憶體3〇2的使用, 使用閾值支援CBP記憶體緩存302的靜態分配以及XQ記憶體緩 存304的動態分配。放棄閥值422定義給CBP記憶體3〇2中的所 1323994 有單元,而不管標記的是什麼顏色。當與一個埠相關的單元計數 器的值達到放棄閥值422時’該埠被轉換至行首狀態。其後,如 果其單元計數器的值下降至重置極限閥值424以下,則該蟑將從 行首狀態中轉換出來。 對於XQ 6己憶體304 ’爲母個服務彳宁列級分配的固定的xq緩 存由XQ入口值(entry value) 430a-430h定義。每個XQ入口值 430a-430h對應爲·一個相關的仔列預留多少暫存器入口作出了定 義。例如,如果100位元組的XQ記憶體被指定給一個埠,分別 與XQ入口 430a-430d相關的第一四個服務佇列級分配的值爲1〇 位元組,而分別與XQ入口 430e-430h相關的後四個佇列分配的值 爲5位元組。 根據本發明的一個實施例,儘管一個仵列未使用所有的根據 相關XQ入口值爲其預留的暫存器入口,行首機構4〇6可不將未 使用的暫存器分配給另一個仵列《儘管如此,用於該埠的XQ緩 存餘下的未分配的40位元組可由與該埠相關的所有服務佇列級所 共用。一個特定服務佇列級可佔用多少XQ緩存的共用池的限制 可由XQ設置極限閥值432設定。這樣的話,設置極限閥值432 可用來定義一個佇列可使用的緩存的最大數量,並用於防止一個 仔列使用所有可用的XQ緩存。爲確保Xq入口值43〇a 43〇h的總 和不大於該埠可用的Xq緩存的總數量,並確保每個服務佇列級 可以訪問由其入口值430所分配的XQ缓存的配額,使用埠動態 16 計數寄存器來追蹤每個埠的XO暫存器的可用池,其中動態計數 寄存器434 一直追蹤該埠的可用共用XQ缓存的數量。動態計數 寄存器434的初始值爲與該埠相關的Xq暫存器的總數量減去Xq 入口值430a-430h的數量之和後的值。當服務佇列級使用超出由其 XQ入口值430分配的配額後繼續可用Xq暫存器時,動態計數寄 存器434減1。相反地,當服務佇列級使用超出由其XQ入口值 430分配的配額後釋放xq暫存器時,動態計數寄存器 434 力口 1 〇 • 當一個佇列請求XQ緩存時,行首機構406確定該佇列使用 的所有入口是否少於該佇列的的XQ入口值43〇,並且在使用的入 口小於XQ入口值430的情況下同意該緩存請求。但是,如果使 用的入口大於仵列的XQ入口值430,行首機構406將確定所請求 的置是否小於可用的暫存器總量或小於由相關的設置極限閥值 432設定給該佇列的最大量。不管資料包標記的顏色如何,設置極 限閾值432實質上是該仔列的放棄閥值。這樣,該資料包的資料 鲁包計數值達到設置極限閥值432時,佇列/埠進入行首狀態。當行 首機構406檢測到行首狀態時,發送更新狀態,因此堵塞埠的資 料包將被丟棄。 然而’因爲滯後的原因,當行首機構3〇6發送狀態更新時, MMU 115和該槔之間可能還有資料包正在傳輸卜在這種情況 下,因爲處於行首狀態、MMU 115處出現去棄資料包的情況。在本 發明的-個實施例中,因爲資料包的流水線操作,XQ指標的動態
17 池減少預定的量。這樣,當可用XQ指標的數量等於或小於預定 的數量時,該埠職至行首狀態,並且—個靖狀驗mmu 115 發送至該埠,以此降低可能被MMU 115丟棄的資料包的數量。爲 了跳出行首狀態,該佇列的XQ資料包計數值必須下降到重置極 限閥值436以下。 對於一個特定服務佇列級的XO計數器來說,不達到設置極 限閥值432並且如果該埠的xq資源被其他服務佇列級超額佔用 時仍將其資料包丟棄是可能的。在本發明的一個實施例中,還可 以爲含有特定顏色標記的資料包定義中間丟棄閥值438和439,其 中每個中間丟棄閥值定義何時應將特定顏色的資料包丟棄。例 如,中間丟棄閥值438可用于定義標記爲黃色的資料包應何時被 丟棄,中間丟棄閥值439用於定義標記爲紅色的資料包應何時被 丟棄。根據本發明的一個實施例,資料包可依照指定的優先順序 分別標記爲綠色、黃色或紅色。爲確保每個顏色的資料包與每個 佇列中的顏色分配相一致的進行處理,本發明的一個實施例包括 有虛擬最大閥值440»虛擬最大閥值440等於未分配且可用的緩存 數量除以佇列數量和當前使用的暫存器數量之和後的值。虛擬最 大閥值440確保每個顏色的資料包以一定的比例進行處理。因此, 如果可用未分配的暫存器數量小於某一特定佇列的設置極限閥值 432,並且該佇列請求訪問所有可用未分配的暫存器,行首機構4〇6 爲該佇列計算虛擬最大閥值440’並且根據爲每個顏色定義的比率 處理一定比例量的相關顏色的資料包。 爲保存寄存器空間,XQ閥值可表示爲_形式其 础表-組XQ入口。組的大小取決於與某個特定的輪出2 分列級相關的XQ暫存器的數量。 版務 加權隨機早期檢測機構408是一赌列管理機構,在 存器304用盡前基於或然演算法預清空f .加權隨機 測機構408因此可用於優化整個網路的吞吐量。加權隨機 測機構4〇8包括-個平均值統計值,用以追蹤每個件列的長度, 並基於爲制定義的丟棄卿(drGppiOfile)丟棄資料包。該 說明定義了給定特定平均仵列大小情況下的丢棄可能性。根據本 發明的-個實施例’加權賴早期檢測機構4〇8可基於服務 級和資料包定義單獨的說明。 丁, 如圖1所示,MMU 115從分析器130接收資料包以進行存儲。 如上所述,分析器130包括一個二級分析器,該部分在圖$中示 出。如上所述,資料在網路設備的埠501處接收。資料也經由 502接收,其中該資料將通過輸入CMIC介面5〇3。該介面用於將 CMIC資料從P-bus格式轉換爲輸入口資料格式。在一個實施例 中’資料從45位元轉換爲168位格式,這樣後面的格式包括128 位元的-貝料、16位元的控制和可能的24位元的高速報頭。其後, 資料以64位元突發串的形式發送至輸入口仲裁器504。 輸入口仲裁器504從埠501和輸入CMIC介面503接收資料, 1323994 並基於時分多路仲裁技術對這些輸入進行多工。其後,資料被傳 送至MMU 510,在MMU 510處,所有高速報頭被移除,並且被 設置爲MMU介面格式。然後檢查資料包屬性,例如,端對端、 中斷貝努裏處理(Interupted Bernoulli Process,IBP )或行首(h〇l ) 資料包。此外’資料的頭128個位元組被監聽,並且高速報頭被 傳至分析器ASM 525。如果接收到的突發資料包含端點標誌,則 CRC結果將被發送至結果匹配器515。而且,資料包的長度由突 發串長度估測得到,並生成U6位元的資料包id以供調試用。 分析器ASM 525將每個突發串4個迴圈的64資料突發串轉 換爲每個突發串8個迴圈的128位元組突發串。128位元組的突發 資料被同時轉送給隧道分析器53〇和分析器PJFO 528以保持相同 的資料包順序。隧道分析器530確定是否採用了任何類型的隧道 封裝,包括MPLS和IP隧道效應。此外,該隧道分析器還檢查外 和内部標簽。通過分析處理,將會話初始化協定(sip)提供給 基於子網的VLAN ’其中,如果資料包爲位址解析協定(ARp)、 反向ARP協定⑽处)或jp資料包時將發生sn>分析。基於 原中繼線映射表,還可以創建中繼線蜂拇極的仍(加业p〇找扭^ 仍)除非/又有中繼線(加业)或如果該中繼線仍可從高速報頭 中獲得。 隧逼分析器530與隨道檢查器531 一起工作。隧道檢驗器檢 查ip報頭的校驗和(checksum)以及隨道效應和奶4之上
20 1323994 IPv6資料包(IPv6 over IPv4 packets)的特性。隧道分析器530利 用搜索引擎520通過預定義的表確定隧道類型。 分析器FIFO 528存儲128位元組的資料包報頭和12位元組 ’的尚速報頭,該尚速報頭由深度分析器540再次進行分析。當搜 索引擎完成一次搜索並準備進行深層搜尋時,報頭位元組被存 儲。也將維持其他的屬性,例如資料包長度、高速報頭狀態和資 料包ID。深度分析器540提供三種不同類型的資料,包括“流過,, _的搜索引擎520的搜索結果、内部分析結果和高速模組報頭。特 定的資料包類型將被確定並傳送至搜索引擎。深度分析器540讀 取來自分析器FIFO的資料’對預定義的攔位進行分析。搜索引擎 基於傳送至該搜索引擎的值提供查找結果,其中將對資料包仍進 行檢查以維持資料包順序。 深度分析器540還使用協定檢查器541來檢查内部正報頭的 权驗和’檢查服務攻擊屬性的否決、高速模組報頭内的錯誤,並 鲁執行martian校驗。該深度分析器還與攔位處理器分析器542 一起 工作,以分析預定義欄位和用戶定義的攔位。預定義欄位從深度 分析器中接收。這些爛位包括MAC目的地址、MAC源地址、内 口P和外部;^簽、乙太類型、ΓΡ目的和源位址、服務類型、jpp、正 標記、TDS、TSS、ΓΠ、TCP標記㈣標簽。用戶定義的爛位也 是可分析的,最高長度爲128位。 如上所述,尚速埠上接收的資料與其他本地埠上接收的資料 21 1323994 是分辟獨處理的。如圖1所示,高速埠1〇8具有自有的暫存器, 資料從鱗流入其自有的分析器m内。高速分析器的更多細^ -如圖6所示’其結構與圖5中所示二級分析器相似,但具有一些 '差別。高速蟑601接收的資料被轉送至高速崞彙編器6〇4。該彙編 器以64位元組突發串的形式接收該資料和高逮報頭,與用於本地 璋中的格式相似。所述資料以MMU介面格场發送至MMU 610 而未帶有所述高速報頭。 * 所述㈣_128條元組被監魅且與高速麵—起發送 •至深度分析器640。與二級分析器相似的是,端對端資訊被檢查, 並在邊頻帶内發送該分析結果。同樣近似的是, 度由結果匹配器㈣行檢查。此外,生成16位元的 以用於調試和追蹤資料包的流。 深度分析器640的高速版本是二級深度分析器54〇的子設 備,並執行相似的功能。然而,搜索引擎62〇中沒有資訊經過, •它不能跳過MPLS報頭’並且只分析有效載荷,不發送深度資料 給搜索引擎。從功能上來說,FP分析器642的高速版本與上面討 論的FP分析器542相同。 結果匹配器在圖7中詳細示出。值得注意的是,結果匹配器 可被普遍的應用於由多個分析器共用,或者每個分析器使用其自 有的結果匹配器。在圖中所示的實施例中,兩種類型的琿71〇和 720接收資料並通過輸入口彙編器715和輸入口仲裁器725的操作
22 轉=-定數值給結果檢查器。該數值包括轉、E0F的存在、CRC 和資料包長度。結果匹配H以—㈣胸项,通過使用搜索引 擎705來匹配搜索結果。基於每個淳,標簽和_事件與資料包 長度^ CRC狀態相匹配。每4個迴圈,搜索結果便被提供給網路 埠和高速埠。如果存在延時小於輸人資料包時間的情況,這種結 構使得搜索結果存儲在每個埠的結果匹配器内當搜索延時比輸 入資料包時間短時’這種結構允許等待資料包結果的終端出現。 f對接收的資料進行分析和評估後,依據接收㈣訊做出轉 送決疋該轉送決疋通常爲資料包應發送給什麼目的璋,儘管該 決定也可爲放棄f料包或触CMIC 1Π轉送⑽包給cpu或其 他控制器。在輸出口,基於網路設備的分析和評估,該資料包被 修改。如果輸出口爲尚速槔,此修改包括標記、報頭資訊的修改 或添加模組報頭。該修改以單元爲基礎進行,以避免在轉送資料 包時産生延時。 圖8所示爲用於本發明的輸出口仲裁器的配置示意圖。如圖8 所示,MMU115還包括調度器802,爲與每個輸出口相關的8個 服務符列級804a-804h提供仲裁,從而提供最小和最大帶寬保證。 值得注意的是’此處介紹献8級服務,但是也紐其他服務級 別模式。調度器802與一組最小和最大計量機構8〇6a_8〇6h集成在 一起,其中每個計量機構監控每個服務級的流量以及每個輸出口 的流量。計量機構806a-806h支援流量調整功能(trafFlcshaping 23 1323994 fiinction),並基於每個服務仔列級和/或輸出口保證其最小帶寬要 求,其中調度器802的調度決定通過流量調整機構8〇6a 8〇6h與一 組控制遮罩一起來配置’該控制遮罩用於修改調度器802如何使 用流量調整機構806a-806h。 如圖8所示,最小和最大計量機構8〇6a_8〇6h監控基於每個服 務4丁列級以及基於每個輸出口監控流量。最大和最小帶寬計量 806a-806h用以反饋狀態資訊給調度器8〇2,調度器8〇2回應該狀 態資訊’修改其整個服務仔列804上的服務順序。因此,網路設 備100可使系統銷售商能夠通過配置服務佇列級804來執行多個 服務模型,從而支援明確的最小和最大帶寬保證。在本發明的一 個實施例中’計量機構806a-806h基於服務佇列級檢測資訊流量, 提供一個服務佇列級的流量是否高於或低於最小和最大帶寬要求 的狀態資訊’並傳輸該資訊至調度器802,調度器802使用該計量 資訊修改其調度決定。這樣的話’計量機構8〇6a_8〇6h協助將服務 作列級804分割成一組未符合最小帶寬要求的仵列、一組符合其 农小帶寬但不符合最大帶寬要求的仵列以及一組已超出其最大帶 寬要求的仵列。如果一個仵列屬於該組不符合其最小帶寬要求的 佇列,且該佇列有資料包,調度器8〇2將根據配置的調度規則對 該佇列進行服務。如果一個佇列屬於該組不符合其最小帶寬要求 但沒有超過其最大帶寬要求的佇列,且該佇列中有資料包,調度 器802將根據配置的調度規則對該佇列進行服務。如果一個彳宁列
24 屬於該組超出其最大帶寬要求的佇列或者如果該佇列爲空,調度 器802將不對該佇列進行服務。 在圖9中,最小和最大帶寬計量機構806a-806h可使用簡單的 漏斗桶機構來實現,追蹤一個服務佇列級804是否佔用了其最小 或最大帶寬。每個服務級804的最小和最大帶寬的範圍設置在 64Kbps至16Gbps之間’並以64Kbps遞增。該漏斗桶機構具有可 設置數量的權杖“泄漏”桶902a-902h ’每個桶以可配置的比率與仵 列804a-804h中一個相關聯。在計量服務仵列級8〇4的最小帶寬 時’由於資料包進入服務佇列級別804,與該資料包大小成比例的 一定數量的權杖被添加到對應的桶902中,該桶具有桶最高閥值 904的最高限度《•該漏斗桶機構包括有刷新介面和定義每次刷新時 間單元内移除多少個權杖的最小帶寬906。最小閥值908用於指出 資料流程是否滿足至少其最小比率,填充閥值(fiUthresh〇ld) 91〇 用於指出漏斗桶9〇2中有多少個權杖^當填充闕值91〇上升超過 最小閥值9G8…個指出該資料流程已滿足其最小帶寬要求的 標結被設定爲真值。當填_值91〇下降低於最州值,該標諸 被設定爲僞值。 最小閥值908對最小帶寬計量機構8〇6的操作所需要的時間量程 (―)産生影響。如果最小閥值9〇8被設爲復低的級別,服 務作列級8〇4將快速標記出已達到其最小帶寬。這將降低被分入 未滿足最小帶寬要求的該組仵列中的時間射⑽4的流量,且降 25 1323994 低該佇列由調度器802優先處理的時間周期。高閥值904對一個 服務佇列級達到其最小帶寬906後能建立多少信用量(credit)産 生影響。一個大的高閥值904將減少該佇列被分入不符合最小帶 寬要求的佇列組的時間,以及減少該佇列由調度器8〇2優先處理 的時間周期。 在計量機構806a-806h指出規定的最大帶寬已超出高閥值904 後’調度器802终止對該佇列的服務,且該佇列被分入已超出最 大帶寬要求的仵列組中。然後’發送一個標誌以指出該件列已超 出其最大帶寬。隨後’當其填充閥值下降至高閥值9〇4以下且指 不其超出最到帶寬的標誌被重置時,該佇列僅從調度器8〇2接收 服務。計量機構806i用以指出某個埠規定的最大帶寬已被超出, 並在最大帶寬被超出時,以與機構806a_806h相同的方式工作。根 據本發明的一個實施例’基於佇列和埠的最大計量機構通常對佇 列804或一個埠是否包括在調度仲裁中産生影響。這樣的話,最 大計量機構僅對調度器802有流量限制作用。 另一方面’服務佇列級804的最小計量與調度器8〇2具有更 複雜的交互操作。在本發明的一個實施例中,調度器8〇2支援各 種調度規則,來類比加權公平佇列方案的帶寬共用性能。該加權 公平佇列方案爲基於資料包的公平佇列方案的加權版本,被定義 爲種用於提供資料包的“基於位元迴圈複用,,調度的方法。這 樣,可對資料包進行調度,以基於該資料包的傳送時間訪問輸出
26 口 ’該時間在調度器能夠提供基於位迴圈複用服務時計算得出。 相關的加麵位將影響調度器如何使用最小計量機構的具體細 節,其中該調度器試圖提供最小帶寬保證。 如上所述’本發明在外部記憶體t使用512Κ的桶。傳統的後 臺填充桶的方法不料侧進行破,未使用所有的可用帶寬。 系統能夠外部峨體錢臺填充每侧的最糾暇25挪。 由於後2:填充桶間的周期越長,對資料包的標記就越不準碎因 此桶的後臺填充是不可行的^爲了支援512κ的桶,可使用時間戮 方法以增加計量處理的準確度。然而,該時間戳方法也增加了該 設計所需的計算量。 資料包分類處理給每個接收的資料包分配一辦量群識別 字’此分類在FP模組醜中完成。計量模組使用該計量群識別 字來瞭解料量模喊該使㈣侧來確找料包的顏色。外部 FPCAM引擎將資料包分爲256Κ流。外部記憶體包括具有 256Κ雙漏斗桶的5l2K;f甬。該記憶體分爲兩段,因此該雙桶永遠 是一對[偶’奇]桶。每個“雙,,漏斗桶被指定給一個計量群。圖1〇a 所示爲計量群如何映射至外部記憶體的位址空間1〇〇2。 一個普通的計量桶可包括如下攔位:速率、突發串大小和權 杖计數’如® l〇b所示。速率和突發串大小攔位由軟體編程,硬 體不對這些攔位做修改。權杖計數欄位爲硬體修改的“桶,,。速率 搁位指出該桶(權杖計數)要求填充的速率。突發串大小攔位指 27 1323994 出該桶(權杖計數)允許被填充的最大^兩個事件可以修改該 權杖计細位U事件是分類給軸的資概㈣資料包的 接收。當某個資料包被分給-個特定桶時,該桶的權杖計數欄位 以等於資料包長度的量遞減。 第一個事件疋後臺填充處理。後臺填充處理以與該桶的速率 糊位相等的量遞增權杖計數。速率攔位通常以這樣一種方法定 義,即將該欄位的值直接加入權杖計數中。例如,如果權杖計數 攔位的單位爲1/2位元,後臺填充處理每8us迴圈一次,則速率攔 位的單位可定義爲每8us 1/2位。在這種情況下,後臺填充處理可 直接將速率攔位的值加入權杖計數攔位内。 第一事件(接收資料包)僅減去權杖計數,而第二事件(後 臺填充)僅加入權杖計數。這使得權杖計數需要的數學運算操作 相當簡單。在任何給定的迴圈周期中,只發生一次加法或一次減 法運算。實際的標記決定基於權杖計數值作出,以下將給出介紹。 將後臺填充理想化是不可能的。理想的桶填充與8us量化的 後臺填充是不同的。以下將介紹這種量化如何導致資料包的標該 與理想情況下不同。對於以兩倍於桶速率的速率到達的等大小資 料包’在理想情況和量化(8us )情況下這些資料包的標記將不同。 如果使用的是一個簡單的單一桶,採用兩色標記方案,那麽當權 杖計數攔位大於或等於資料包大小時’該資料包標記爲綠色,且 該權杖計數攔位以資料包的大小遞減。如果該權杖計數攔位小於
28 資料包大小’該龍包被標記爲紅色,且杖計麵位不做修 改。因爲資料包以兩倍於桶速率的速率到達,半數的資料包將被 寺示έ己爲紅色,另一半標記爲綠色。然而,在某些情況下,10個綠 色資料包之後跟著是1G個紅色資料包。在長期情況下,資料包的 標記是正確的,但如果檢查一個小的時間窗,該資料包的標記是 不同的。 25ms後臺填充與理想情況相比將產生根本不同的顏色標記。 如果假設最大資料包速率爲24Gbks/s(12個1G埠和丨個12(}璋), 且假設24Gbits/S的速率下的資料包爲64位元組,那麼在25ms内 大約接收90,0000個資料包^又設桶速率爲12Gbits/s和24Gbits/s, 相當於64位元組的資料包將分至該桶内。在這種情況下一行中 大約45,0000個資料包將被標記爲紅色,接下來的大約45,〇〇〇〇個 資料包將被標記爲綠色。很不幸,這樣提供的標記不正確。 爲了改進計量的準確性,採用時間戳方法來代替後臺填充方 法。時間财法在給枝臺帶寬分配情況下,顯著的改進計量的 準確度,但是時間戳攔位佔用了存儲空間且還需要額外的計算邏 輯。事實上,在用於爲後臺填充512K桶生成25ms量化的相同帶 寬分配情況下,該時間戳方法可達到相當於Ins量化的準確度。 打間戳方法要求在桶的定義t加入時間戳欄位,如圖l〇c所 不。利用時間戳方法,觸發權杖計數更新的主事件是資料包的接 收時間戰後臺處理是使權杖計數更新的次要時間,僅僅是爲了 29 1323994 防止計數器溢出(rollover),詳細解釋如下。 與該時間戳搁位具有相同寬度的一個内部計數器 (curremjime)周期性遞增,假設每lus增加一次。資料包的接 收觸發將速率的*倍數*加人權杖計數巾。這與直接將速率周期性 的加入權杖計數的後臺填充處理不同。該速率的倍數與該桶接收 到最後一個資料包後流逝的多少時間直接相關。資料包之間流逝 的時間等於current一time與桶的時間戳攔位之間的差值。 current_tc的等式如下所示: currenUc=((current一time -時間戳)*速率)+權杖數 (工) 資料包的顏色基於Current—tc確定《«資料包的標記要求資料包 長度減去current一tc。該值(new一tc)的計算如下: new_tC=CurrenUc -資料包長度 (2) 最後-步是將new—tc和cmrenuime分別寫入權杖計數和時 間戳欄位内。如果沒树職_ ’權杖計_够具有任何意 義,因爲它只有在時間戳攔位示出的時間内才準確。這就是爲什 麽不管權輯數獅:有沒有更新,時間細位總是更新爲 。這-點與後臺填充處理不同,在後臺填充處理的量 化時間例如8us内,權杖計數總是準確的。 圖11所示爲在垂直虛線所示的資料包到達處currenuc的計 算的示意圖。圖中實線表示權杖計數攔位的值。虛絲示桶的理 想填充。在每個㈣㈣猶,計算e_Ue (垂纽線所示)。 30 1323994 因爲資料包在側面上(inprofile),new_tc被寫回權杖計數搁位。 在資料包ϋ們看到權杖計㈣常量。針對分人該桶的每個 資料包’該處理過程重復進行。 如果currenUime計數器每1助增加一次,如圖u所示在 理想填充的lus内該計算是準確的。時間戳方法中的量化錯誤由 current—time遞增的頻率指出,代替後臺填充處理的速率。無論資 料包之間流逝的時間是多少,在lus内的計算歧準確的。增加 cmrem—time遞增的頻率會減少標記器的量化錯誤。每個時間周期 增加一次的current_time可産生一個理想的標記器。如上所述,不 幸的是’增加current—time遞增的頻率也會增加給定後臺帶寬分配 情況下時峨雛的寬度。準確度的代做側記憶體空間。 出現的一個複雜因素是,内部計數器(cuiTent_time)最終將 迴圈。例如’每1US遞增一次的17位計數器將每i3ims迴圈一次。 ent—time 3十數态開始迴圈,等式(current_time-時間戳) 將不再準確。未加人額外邏輯的情況下,如果在eurrenUime (131ms)的不止丨個迴圈β ’資料包未到達計量桶,流逝的時間 將不月b再準確追蹤到。因此’健需要時峨後臺處理以保持所 有=的時間_位不失效^對於上述睛咖」^計數^,所有桶 的權杖梢和時峨攔位至少必絲131ms更新-次。時間戳後 至處理基轉式⑴更卿杖計細位,翻位設置爲 currenUime。只要時間戳欄位不失效,等式⑴總是準確。
31 1323994 在上述例子中’時間戳方法使用只在131ms之内更新每個桶 的時間戳後臺處理生成在理想填充情況下的lus内準確的 current—tc。如果後臺填充方法要達到同樣的準確度,則要求該後 臺填充處理每lus更新每個桶。很容易可以推斷出後臺填充方法 和時間戳方法之間的折衷,即增加記憶體使用量(時間戮攔位) 和計算邏輯(速率必須相乘)以節省記憶體帶寬。 srTCM (單速率3色標記器)和(雙速率3色標記器) 均使用兩個桶(雙桶)以對資料包執行3色(紅、黃、綠)標記。 該srTCM方案利用一個承諾桶(c〇mmjtted bucket)和一個超額桶 (Excess bucket)’而trTCM利用一個承諾桶和一個峰值桶(peak bucket)。這兩種方案的不同之處在於桶填充和遞減的方式以及標 記資料包的方式。 在srTCM方案中,組成雙桶的兩個桶依據相同的承諾資訊速 率(CommittedInf〇rmationRate ’簡稱CIR)進行填充。承諾桶首 先填充至承数發量(Committed Bum Size,簡稱CBS)。只有當 承諾桶爲“滿”時’超額桶才可填充至超額突發量(ebs >在WCM 方案中,組成雙桶的兩個桶以不同的速率填充。承諾桶以承諾資 訊速率(OR)填充至CBS,騎值桶以峰值資訊速率⑽)填 充至峰值突發量(PBS)。 兩種方案的不同之處還在於資料包如何遞減以及如何基於 雙桶的狀祕記資料包,如下4個表格所示。前兩行爲決定的輸
32 1323994 入,下一行爲輸出顏色決定,最後兩行代表是否以資料包長度遞 減該桶。 規格内桶C/ 規格内桶E 0/0 0/1 1/0 1/1 輸入顏色 R Y G R Y G R Y G R Y G 輸出顏色 R R R Y Y Y G G G G G G 遞減桶C 否 否 否 否 否 否 _e_^ 是 遞減桶E 否 否 否 是 是 是 否 否 否 否 否 否 表1 規格内桶C/ 規格内桶E 0/0 0/1 1/0 1/1 輸入顏色 R Y G R Y G R Y G R Y G 輸出顏色 R R R R Y Y R R G R Y G 遞減桶C 否 否 否 否 否 否 否 否 否 否 遞減桶E 否 否 否 否 是 否 否 否 否 否 表2
33 1323994
規格内桶C/ 0/0 0/1 1/0 規格内桶E 輸入顏色 R Y G R Y G R Y 广 — G 輸出顏色 R R R Y Y Y R R R 遞減桶C 否 否 否 否 否 否 否 --〜 否 否 遞減桶E 否 否 否 是 是 否 --- 否 ----— 否 1/1 表3 R Y G G G G 是 是 是 是 是 是 規格内桶C/ 規格内桶E 0/0 0/1 1/0 1/1 輸入顏色 Y G R ---— ---- R Y G R Y G R Y G 輸出顏色 R R R R Y Y R R R R Y G 遞減桶C 否 否 否 否 否 否 否 否 否 否 否 否 是 是 遞減桶E 否 否 否 否 是 否 ----- 否 —-- 否 是 表4 本發明也同樣允許對顏色標記、桶遞加和遞減進行完全編 程。在本發明的某些實施财,提供8個可編料钟=整地 規定網路賴崎量操作。這些寄柿可轉實現上抓⑽ 和trTCM方法。使賴網路設備的用戶 的表進行編程來碹宏H^的尉&供的寄存器内 祕々和實現其自己輯量方案。使用哪個寄存器 1323994 的選擇基於每個流作出。 如上所述,計算時間戳需要的寬度(ts_width)時涉及兩個變 數:執行時間戳後臺處理以服務每個桶的時間(looP-Peri〇d)和 - current_time遞增的頻率,或同等的current_time單位 (counter_unit)。基本上,時間戳後臺處理服務每個桶的速度必須 與current_time計數器溢出的速度一樣快或比其還快《然而,如下 所述的解決方案需要時間戮後臺處理以current_time計數器迴圈 鲁的時間的兩倍速度對每個桶進行服務。與這些變數相關的等式如 下所示: loop_period=l/2(2ts_widthxcounter_unit) (3 得出的ts_width的結果爲: ts_width=log2((2*loop_period)/counter_unit) (4、 如果 loop_period 爲 25ms ( 25000us )且 counter_unit 爲 lus, 那麼時間戳攔位需要的寬度爲15.6或16位。 增加的計算量是明顯的。後臺填充方法要求對權杖計數欄位 執行不多於一次的加法或減法。時間戳方法要求對每個接收的資 料包執行等式(1)和(2)並要求對時間戳後臺處理執行等式(1)。 等式⑴中的乘法從時間上看範圍很廣。簡化該乘法的一個 可能的解決方妓將其簡化爲料上的餘元操作。例如,如果 (cu職Uime-時間戳)爲24G或二進位的“blm_,,該速率 可乘以128或二進位的“Μ0__”。這是一個簡單的比率上7的 35 1323994 移位操作。因爲簡化該乘法而遺失的餘下時間可用於調整時間戮 攔位。在上面的情況中,遺失了 122個時間單位。因此,將該時 間戳攔位設定爲current_time-122,而不是將其設爲 current_time。這使得下一個資料包的(CUITent_time _時間戳)的 值增加122個時間單位,因此考慮到了遺失的時間。 上述解決方案簡化等式(1)中的乘法爲速率上的移位元操 作,並增加一個減法操作來修改時間戳欄位以考慮到遺失的時 間。利用上述簡化的乘法的等式(1)的虛擬碼版本如下(假設時 間戳爲4位): delta_t[3:0]=(current_time - TIMESTAMP) if (delta一tp]) current一tc=(RATE«3)+TOKEN COUNT missed_time= {1 *b0, delta[2:0]} else if (delta_t[2]) current_tc=(RATE«2)+T0KEN COUNT missed一time: {2’bO, delta[l :0]} else if (delta_t[l]) cuirent(RATE«2)+TOKEN COUNT missed_time= {3^0, delta[0]) else if (delta_t[0])
current tc=RATE+TOKEN COUNT
36 1323994 missed一time=4’b0
else current一tc=RATE missed_time=4’b0 new一tc=current一tc - packet—length 最後,missed_time用以計算TIMESTAMP攔位的值·· new_ts=current_time - missed time 、 _ (5) 以上是對本發明具體實施例的描述。很明顯,可對本發明上 述描述的實施例做其他的變化和修改,同樣能達到本發明的某些 或所有優點。a此’本發明的獅要去朗了本㈣的精神實質 和範圍,覆蓋了所有對本發明上述實施例的變化和修改情況。 【圖式簡單說明】 圖1是根據本發明一個實施例的網路設備的示意圖; 一圖2疋根據本發明一個實施例使用網路設備的埠進行通信的 示意圖; _ 2 3a是網路設備使用的位於網路設備外部的共用記憶體的結 構不意圖;® 3b是圖%中共航憶體結構的單元池的示意 圖; 八、,圖4疋由记憶體管理單元用於資源分配限制以確保對資源的 公平訪問的暫存器管理機構的示意圖; 圖5是根據本發明某些實施例的2級分析器的示意圖; 圖6疋根據本發明某些實施例的與互連埠一起使用的另一分 37 1323994 析器的示意圖; 圖7是根據本發明某些實施例的結果匹配器的示意圖; 圖8是用於本發明的輸出口仲裁器的配置示意圖; 圖9疋根據本發明某些實施例的最小和最大帶寬計量機構的 實現示意圖; 圖l〇a是流ID到桶的映射的示意圖; 圖10b是普通計量桶的示意圖; 圖10c是使用時間戳方法的計量桶的示意圖; 圖11是根據本發明一個實施例的當前時間戳計算結果與權杖 計數欄位的對比圖。 【主要元件符號說明】
設備 1〇〇 埠管理器 102A-L 模組 103 定時發生器(timing generatoiO 104 108 110 匯流排代理器(bus agent) 105 高速埠 •外部乙太網埠109a、...、109x CPU埠 CPU處理模組(如CMIC) 111 記憶體管理單元(MMU) 115 附加的搜索引擎模組BSE 122 CSE 126 模組 132、136 入站/出站模組(Xpart)112、113 搜索弓丨擎 120 HSE 124 分析器 130 分析器 134 雙階分析器(two stage parser) 138 38 1323994 單元缓衝池(Cell Buffer Pool,簡稱CBP )記憶體 302 事務佇列(Transaction Queue,簡稱XQ)記憶體 304 靜態隨機存取記憶體(DRAM)晶片306a、...、306d
Hg 早7〇 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 搜索引擎 520 分析器ASM 525 分析器FIFO 528 随道分析器(tunnel parse) 530 隧道校驗器 531 深度分析器 540 協定校驗器 541 欄位處理分析器 542 39 1323994
HiGig 埠 601 HiGig蟑組合語言程式(assembier) 604 MMU 610 結果匹配器 615 搜索引擎 620 深度分析器 640 FP分析器 642 搜索引擎 705 入站MIB 707 埠 710、720 入站組合語言程式 715 入站裁決器 725 調度器 802 業務佇列(COS ) 8(Ha、...、804h 通信量調整器 806a、... 、806h 最大率計量機制 808 權杖“泄漏”桶 902a、... ,> 902h 桶最高閥值 904 最小帶寬 906 最小閥值 908 填充閥值(fillthreshold) 910 FP模組 1001 位址空間 1002

Claims (1)

  1. 十、申請專利範圍: 1、一種在資料鱗中處理資料_路設備,所躺路設備包括: 一多個蜂’從資料轉中接收資料並通過輸出口將已處理的 資料發送給所述資料網路; 控制器介面,與外部控制器進行通信; Μ體ί理單元,與所述網路設備外部的記憶體通信並對 其進打控制’向㈣記髓存㈣料以及撕鱗齡重新獲 計重單元 ^ 興所迷多個埠、所述控制器介面和所述記憶體 管理早Tut訊,控糊ρ發往所述輸出口的已處理資料流程; 其中,所述計量單元進一步包括可_寄存器,與所述控 制器介面通訊,所述可編程寄存器可由通過所述外部控制器經 由所述控制n介面發來的控繼號進行編程使得所有的已處 理資料流程可由所述外部控制器進行控制。 2、如申請專利細第1項所述的網路設備,其巾,所述可編程寄 存器包括8個可編程寄存器。 ° 3、 如申請專利範圍第丨項所述的鱗設備,其巾,所述計量單元 根據顏色標記所述已處理資料的資料包,以基於所述控制= 信號控制所述已處理資料流程。 °° 4、 如申請專利範圍第3項所述的網路設備,其中,所述叶曰时 確定輸入包的顏色並基於輸入包内的值設置輪出包的顏 5、 -種在網路絲中處理資料的方法,所述方法包括如下^羯: 接收從外。|1控制盗通過控制器介面發送來的控制器信號; 基於所述已接㈣㈣n信號,對計量單元巾的可編程寄 存器進行編程; 從多個埠中的一個埠接收資料; 由所述網路設備外部的記憶體中的記憶體管理單元將所述 接收的資料存儲; 確定所述接收的資料的屬性,以及爲所述接收的資料確定 輸出口; 從所述記憶體中重新獲取所述接收的資料並修改所述接收 的資料,如果需要,基於所述確定的屬性生成已處理的資料; 根據所述計量單元的指示’通過所述輸出口發送所述已處 理的資料; 、中所述計量單元的所述可編程寄存器確定傳送到所趣 出口的已處理資料流程的所有特徵。 、如申請專利範圍第5項所述的方法,其中,所述編程步驟包括 基於所述接收的控繼信號對8個可編程寄存器進行編程。 、如申請專利娜5項所述的方法,其中,所述方法進一步包 ㈣色4^所述已處理胃料的資料包,喊於所述控制 唬控制所述已處理的資料流程。 、-種處理資料的網路設備,所述網路設備包括: 接收從外糊H她__物娜信號的 1323994 接收裝置; 基於所述已接收的控制器信號對計量單元中的可編程寄存 器進行編程的編程裝置; 通過輸出口接收資料以及發送已處理資料的蜂裝置; 由所述、鹏。X備外部的記憶體⑽記憶體管理單元將從分 析裝置接㈣㈣存儲其巾並從其中重新獲取資料的記憶體裝 置; 基於已確定的修改重職取的、射相資料以生成已 處理資料的修改裝置; 其中所述可編程寄存科定傳送到所述輸出口的已處理資 料流程的所有特徵。 9、如申請專利範圍第8項所述的網路設備,其中,所述編程裝置 包括基於所收_齡號對8個可編程寄存肢行編程 的裝置。
    1〇、如申請專利範圍第8項所述的網路設備,其中,所述設備進 -步包括依脑色對所述已處理:雜㈣料包 Γ述控㈣信號對所述w程進行_的標絲
    43
TW095105057A 2005-02-18 2006-02-15 Programmable metering behavior based on table lookup TWI323994B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US65394205P 2005-02-18 2005-02-18
US11/081,057 US7529191B2 (en) 2005-02-18 2005-03-16 Programmable metering behavior based on table lookup

Publications (2)

Publication Number Publication Date
TW200707982A TW200707982A (en) 2007-02-16
TWI323994B true TWI323994B (en) 2010-04-21

Family

ID=36443222

Family Applications (1)

Application Number Title Priority Date Filing Date
TW095105057A TWI323994B (en) 2005-02-18 2006-02-15 Programmable metering behavior based on table lookup

Country Status (3)

Country Link
US (2) US7529191B2 (zh)
EP (1) EP1694004B1 (zh)
TW (1) TWI323994B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI662814B (zh) * 2016-07-14 2019-06-11 新加坡商聯發科技(新加坡)私人有限公司 通信裝置、網路裝置及退避控制方法

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9032095B1 (en) 2004-01-06 2015-05-12 Juniper Networks, Inc. Routing device having multiple logical routers
US7529191B2 (en) * 2005-02-18 2009-05-05 Broadcom Corporation Programmable metering behavior based on table lookup
US7577096B2 (en) * 2005-02-18 2009-08-18 Broadcom Corporation Timestamp metering and rollover protection in a network device
US8027256B1 (en) * 2005-06-02 2011-09-27 Force 10 Networks, Inc. Multi-port network device using lookup cost backpressure
US7558200B2 (en) * 2005-09-01 2009-07-07 Microsoft Corporation Router congestion management
EP1985047A2 (en) * 2006-02-01 2008-10-29 Coco Communications Corp. Protocol link layer
WO2008012790A1 (en) * 2006-07-27 2008-01-31 Contextream Inc. Distributed edge network
US20080112318A1 (en) * 2006-11-13 2008-05-15 Rejean Groleau Traffic shaping and scheduling in a network
CA2669932A1 (en) 2006-12-19 2008-06-26 International Business Machines Corporation Apparatus and method for analysing a network flow
EP2040422A1 (en) 2007-09-19 2009-03-25 British Telecommunications Public Limited Company Methods and apparatus for providing congestion indications
US7843825B2 (en) * 2007-10-02 2010-11-30 Broadcom Corporation Method and system for packet rate shaping
US8929372B2 (en) * 2007-10-30 2015-01-06 Contextream Ltd. Grid router
FI123302B (fi) * 2008-04-22 2013-02-15 Tellabs Oy Menetelmä ja laitteisto tietoliikennevuon lähetysnopeuden muokkaamiseksi
US8467295B2 (en) * 2008-08-21 2013-06-18 Contextream Ltd. System and methods for distributed quality of service enforcement
US8730812B2 (en) * 2009-01-09 2014-05-20 Brocade Communications Systems, Inc. Hierarchical rate color marker
US8369345B1 (en) 2009-11-13 2013-02-05 Juniper Networks, Inc. Multi-router system having shared network interfaces
US8379516B2 (en) * 2009-12-24 2013-02-19 Contextream Ltd. Grid routing apparatus and method
CN102812670B (zh) 2010-03-22 2015-11-25 飞思卡尔半导体公司 令牌桶管理装置和管理令牌桶的方法
US9160669B2 (en) 2011-06-28 2015-10-13 Zte Corporation Method and device for leaky bucket speed-limitation
WO2013053403A1 (en) 2011-10-14 2013-04-18 Telefonaktiebolaget L M Ericsson (Publ) Enhanced performance service-based profiling for transport networks
WO2013053404A1 (en) 2011-10-14 2013-04-18 Telefonaktiebolaget L M Ericsson (Publ) Service-aware profiling for transport networks
WO2013053405A1 (en) * 2011-10-14 2013-04-18 Telefonaktiebolaget L M Ericsson (Publ) Optimised packet delivery across a transport network
WO2013125989A1 (en) * 2012-02-20 2013-08-29 Telefonaktiebolaget L M Ericsson (Publ) Capacity estimates using burst-trailer trains
US8867360B2 (en) * 2012-03-22 2014-10-21 Avaya Inc. Method and apparatus for lossless behavior for multiple ports sharing a buffer pool
US8995263B2 (en) * 2012-05-22 2015-03-31 Marvell World Trade Ltd. Method and apparatus for internal/external memory packet and byte counting
US9413680B1 (en) * 2012-09-26 2016-08-09 Amazon Technologies, Inc. Multi-tenant throttling approaches
US9838320B2 (en) * 2016-01-13 2017-12-05 Ciena Corporation Optimum utilization of green tokens in packet metering
US10075380B2 (en) * 2017-01-23 2018-09-11 Avago Technologies General Ip (Singapore) Pte. Ltd. Probabilistic metering

Family Cites Families (41)

* 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
DE59108304D1 (de) * 1991-08-27 1996-11-28 Siemens Ag Anordnung zur Bitratenüberwachung in ATM-Netzen
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
EP0600683B1 (en) 1992-12-04 2001-10-10 AT&T Corp. Packet network interface
US5802287A (en) 1993-10-20 1998-09-01 Lsi Logic Corporation Single chip universal protocol multi-function ATM network interface
US5745477A (en) * 1996-01-25 1998-04-28 Mitsubishi Electric Information Technology Center America, Inc. Traffic shaping and ABR flow control
US5831980A (en) 1996-09-13 1998-11-03 Lsi Logic Corporation Shared memory fabric architecture for very high speed ATM switches
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
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
US5909686A (en) 1997-06-30 1999-06-01 Sun Microsystems, Inc. Hardware-assisted central processing unit access to a forwarding database
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
US6188698B1 (en) * 1997-12-31 2001-02-13 Cisco Technology, Inc. Multiple-criteria queueing and transmission scheduling system for multimedia networks
US6173384B1 (en) 1998-02-11 2001-01-09 Nortel Networks Limited Method of searching for a data element in a data structure
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
US6405258B1 (en) * 1999-05-05 2002-06-11 Advanced Micro Devices Inc. Method and apparatus for controlling the flow of data frames through a network switch on a port-by-port basis
AU7613200A (en) 1999-09-25 2001-04-30 Motorola, Inc. Hierarchical prioritized round robin (hprr) scheduling
US6826150B1 (en) * 2000-04-30 2004-11-30 Dipankar Bhattacharya Distriburted QoS policing system and method
US6937561B2 (en) * 2000-06-02 2005-08-30 Agere Systems Inc. Method and apparatus for guaranteeing data transfer rates and enforcing conformance with traffic profiles in a packet network
GB2370184B (en) * 2000-12-13 2003-06-18 3Com Corp Selectable bandwidth facility for a network port
US6950395B1 (en) * 2000-12-31 2005-09-27 Cisco Technology, Inc. Method and apparatus for a token bucket metering or policing system with a delayed filling scheme
US7782776B2 (en) * 2002-03-15 2010-08-24 Broadcom Corporation Shared weighted fair queuing (WFQ) shaper
TW574800B (en) * 2002-03-22 2004-02-01 Via Tech Inc Control method of network transmission speed and Ethernet switch using the method
WO2004023745A1 (en) 2002-09-06 2004-03-18 Infineon Technologies Ag Method and system for controlling bandwidth allocation
US7184404B2 (en) * 2002-10-15 2007-02-27 Broadcom Corporation Programmable inter-packet gap generator with byte granularity
US20040151184A1 (en) * 2002-12-13 2004-08-05 Zarlink Semiconductor V.N. Inc. Class-based rate control using multi-threshold leaky bucket
US20040125796A1 (en) 2002-12-30 2004-07-01 Reader Scot A. N rate, N‘precedence meter/marker
US7349342B2 (en) * 2003-03-17 2008-03-25 International Business Machines Corporation Traffic metering in data networks
US6970426B1 (en) * 2003-05-14 2005-11-29 Extreme Networks Rate color marker
US7327682B2 (en) * 2003-06-27 2008-02-05 Cisco Technology, Inc. Methods and devices for flexible bandwidth allocation
US7680049B2 (en) * 2005-02-08 2010-03-16 Cisco Technology, Inc. Methods and apparatus for allowing promotion in color-based policers
US7577096B2 (en) * 2005-02-18 2009-08-18 Broadcom Corporation Timestamp metering and rollover protection in a network device
US7529191B2 (en) * 2005-02-18 2009-05-05 Broadcom Corporation Programmable metering behavior based on table lookup

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI662814B (zh) * 2016-07-14 2019-06-11 新加坡商聯發科技(新加坡)私人有限公司 通信裝置、網路裝置及退避控制方法

Also Published As

Publication number Publication date
US7983169B2 (en) 2011-07-19
TW200707982A (en) 2007-02-16
EP1694004A1 (en) 2006-08-23
US20100202295A1 (en) 2010-08-12
US7529191B2 (en) 2009-05-05
EP1694004B1 (en) 2012-10-03
US20060187827A1 (en) 2006-08-24

Similar Documents

Publication Publication Date Title
TWI323994B (en) Programmable metering behavior based on table lookup
US8085668B2 (en) Timestamp metering and rollover protection in a network device
US8320240B2 (en) Rate limiting and minimum and maximum shaping in a network device
TWI333763B (en) Network device for processing data on a data network and method thereof
US6661802B1 (en) Congestion management
US6046979A (en) Method and apparatus for controlling the flow of variable-length packets through a multiport switch
US7660264B1 (en) Method for traffic schedulign in intelligent network interface circuitry
US20060187832A1 (en) Filter based range check in a network device
US20130318256A1 (en) Dynamic table sharing of memory space within a network device
TWI323108B (en) Powerful and expandable pipeline architecture for a network device
US20060187965A1 (en) Creating an IP checksum in a pipeline architecture with packet modification
TWI337025B (en) Flexible packet modification engine for a network device
US20060187948A1 (en) Layer two and layer three virtual private network support in a network device
CN100486229C (zh) 在数据网络中处理数据的网络设备和方法
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
Narasimhan An implementation of differentiated services in a linux environment
CN100493036C (zh) 处理数据的网络设备和方法
US8228932B2 (en) Layout architecture for expandable network device
CN100499588C (zh) 在数据网络中处理数据的网络设备和方法
US20060187924A1 (en) Ingress handling of data in a network device
US20060187920A1 (en) Flexible packet modification engine