TWI527409B - 網路處理器單元及其相關方法 - Google Patents

網路處理器單元及其相關方法 Download PDF

Info

Publication number
TWI527409B
TWI527409B TW104101380A TW104101380A TWI527409B TW I527409 B TWI527409 B TW I527409B TW 104101380 A TW104101380 A TW 104101380A TW 104101380 A TW104101380 A TW 104101380A TW I527409 B TWI527409 B TW I527409B
Authority
TW
Taiwan
Prior art keywords
packet
switch
interface
processing component
network processor
Prior art date
Application number
TW104101380A
Other languages
English (en)
Other versions
TW201531064A (zh
Inventor
甘那 諾德馬克
湯瑪斯 柏頓
賈克柏 卡斯崔姆
維塔立 蘇科尼克
馬帝思 皮森
Original Assignee
馬維爾國際股份有限公司
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 馬維爾國際股份有限公司 filed Critical 馬維爾國際股份有限公司
Publication of TW201531064A publication Critical patent/TW201531064A/zh
Application granted granted Critical
Publication of TWI527409B publication Critical patent/TWI527409B/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/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • 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/101Packet switching elements characterised by the switching fabric construction using crossbar or matrix
    • 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/15Interconnection of switching modules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9036Common buffer combined with individual queues
    • 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

Landscapes

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

Description

網路處理器單元及其相關方法
本發明關於一種在一網路中處理封包的網路處理器單元及其一種方法,具體而言關於一種具有嵌入式封包交換器的網路處理器單元及其一種方法。
一種網路處理器可被用作一單晶片交換器/路由器或用於一模組交換器/路由器中之一進線卡或出線卡。許多先前技術之網路處理器包括多個中間緩衝器,該等緩衝器被使用於該網路處理器之不同模組之間,促使該網路處理器具有超過需要的更多緩衝空間。此外,該等多個中間緩衝器可在處理時引起延遲。
圖1概要顯示一種具有多個中間緩衝器的先前技術網路處理器。如圖所示,該網路處理器1包括一流量管理器2、介面3、具有佇列及排程器的緩衝器4a、4b、4c、處理構件5及可選外部記憶體6a、6b,參見圖1。從該等介面3接收之封包資料在被寫入該流量管理器2之緩衝器之前被緩衝於一輸入緩衝器4a中、被該處理構件5處理、緩衝於一中間緩衝器4b中。來自該流量管理器2的封包資料經由一輸出緩衝器4c在該等介面3上排程及傳送。由於不同系統間不同的要求,封包處理之理想順序亦不同。舉例來說,離開該流量管理器之流量的全部或部分可在如一環回路徑7所示的傳輸之前需要額外通過該處理構件一次。在其他情況下,可能需要通過該流量管理器兩次。
先前技術之該網路處理器1之一缺點在於其需要較大的緩衝器尺寸,比所需更大。舉例來說,如果封包資料之一叢發通過圖1之該網路處理器1,其首先儲存於該輸入緩衝器4a中,之後儲存於該中間緩衝器4b中,最後儲存於該輸出緩衝器4c中。這意味著該等緩衝器之各者:輸入緩衝器、中間緩衝器及輸出緩衝器,必須為一普通數量之封包資料及該叢發大小提供緩衝空間。
先前技術之該網路處理器的另一個缺點在於經由該網路處理器之封包的循序流動。如圖1所示,第一,該等封包於該介面上被接收;第二,其於該輸入緩衝器中被緩衝;第三,其被該處理構件處理;第四,其於該中間緩衝器中被緩衝;第五,其被寫入該流量管理器之緩衝器;第六,其於一輸出緩衝器中被緩衝;及第七,其於該等介面上被傳送。
Su等人之美國專利US 2005/0169259號揭示一種包括若干埠、一封包交換控制單元、一微處理器資料傳送介面、一微處理器及一封包緩衝器的封包交換單元。該封包緩衝器包括一封包區域、一索引緩衝器及一傳送佇列電路系統。該封包交換控制單元及該微處理器資料傳送介面之兩者都可分別從該等埠及該微處理器傳送封包/傳送封包至該等埠及該微處理器。
Su等人的該封包交換單元之一缺點在於其亦需要較大的緩衝空間,因為該等埠具有一儲存及轉發功能,意即該等封包在被移動至該封包緩衝器之前被該等埠儲存。
Langner的美國專利US 2007/0230475號揭示一種基於交換器的網路處理器,其包括若干輸入介面、若干輸出介面、若干處理元件及一具有雙向埠的交換器。該網路處理器將資訊與一經由一輸入介面接收的封包聯繫在一起,且此資訊基於該交換器之交換操作以連續之順序經由該等處理元件之多個循序處理。該網路處理器可被視作依據應用而在該等多個處理元件之輸入及輸出之間提供可選擇之互聯。對於某一種應用,封包將因此以適當順序只流向所需的特定處理元件。處理元件之次序藉由該交換器及該等處理元件之配置而獲得。
Langner之網路處理器的一個缺點在於封包交換對於一種給 定應用的預定連續順序,例如一種安全交易伺服器應用、一種安全封包層(SSL)VPN防火牆應用或一種安全網際網路協定(IPSEC)VPN防火牆應用。在配置一種具體應用之後,所有封包將具有相同的連續處理順序且由此將採用相同的路徑通過該網路處理器。
本發明之一目的為克服先前技術之缺點及不足。更具體而言,本發明之一目的為最小化一網路處理器中緩衝器之尺寸並為封包提供通過該網路處理器的彈性路徑以便適用於不同的系統要求。
其中上述該目的利用一種根據該等獨立請求項的方法及網路處理器單元實現。本發明之進一步實施例將指定於該等附屬請求項中。
1‧‧‧網路處理器
2‧‧‧流量管理器
3‧‧‧介面
4a‧‧‧輸入緩衝器
4b‧‧‧中間緩衝器
4c‧‧‧輸出緩衝器
5‧‧‧處理構件
6a‧‧‧可選外部記憶體
6b‧‧‧可選外部記憶體
7‧‧‧環回路徑
10‧‧‧網路處理器
12‧‧‧嵌入式交換器
14‧‧‧通信介面
14a‧‧‧流量介面
14b‧‧‧TX介面
16‧‧‧處理構件
18‧‧‧流量管理器
20‧‧‧可選外部記憶體
22‧‧‧可選外部記憶體
24‧‧‧主封包緩衝器
24-1‧‧‧資料儲存區
24-2‧‧‧控制單元
26a‧‧‧輸入埠
26b‧‧‧輸出埠
28‧‧‧輸入仲裁器
30‧‧‧佇列映射器
31‧‧‧映射資料庫
32‧‧‧封包格式器
34‧‧‧丟棄單元
36‧‧‧佇列管理器
38‧‧‧封包排程器
40‧‧‧狀態格式器
41‧‧‧輸出仲裁器
42a‧‧‧封包屬性
42b‧‧‧封包屬性
43a‧‧‧封包資料
43b‧‧‧封包資料
44a‧‧‧背壓
44b‧‧‧背壓
本發明之實施例將參考如下圖示而被更詳細地描述,其中:圖1概要顯示一種先前技術之網路處理器的方塊圖;圖2概要顯示一種根據本發明之一實施例的網路處理器之一方塊圖;圖3概要顯示一種根據本發明之一實施例的網路處理器之一方塊圖;圖4a概要顯示一種根據本發明之網路處理器之一實施例的方塊圖;圖4b概要顯示一種根據本發明之網路處理器之一實施例的方塊圖;圖5a概要顯示一種根據本發明之網路處理器之一實施例的方塊圖,其中顯示一種嵌入式交換器之一排程圖;及圖5b概要顯示一種根據本發明之網路處理器之一實施例的方塊圖,其中顯示一種嵌入式交換器之一排程圖。
本發明將參考附圖而被更詳細地描述,在該等圖式中相同的參考數字指示相同或相應的特徵、元件或構件。
根據本發明,圖1所顯示之先前技術網路處理器的輸入緩 衝器、中間緩衝器及輸出緩衝器由一種嵌入式交換器替代。根據本發明,一功能塊,例如,諸如埠、處理構件、流量管理器、封包格式器或另一個與該嵌入式交換器通信並寫入封包資料至該交換器之元件的流量介面,經配置以選擇該封包資料之輸出位址。在實施例中,該嵌入式交換器包括一緩衝記憶體,該緩衝記憶體在朝向該網路處理器之不同模組(例如功能塊)的佇列之間共用,例如一處理構件、一個或更多個介面及一可能的流量管理器之佇列,藉此減小所需的總緩衝尺寸。
由此,根據本發明,相同的封包叢發在該嵌入式交換器中一段時間內只發生一次。進一步,寫入封包資料至該嵌入式交換器的功能塊所藉以選擇輸出位址,例如輸出埠的本發明之定址機構啟用經由該網路處理器之模組,例如經由該處理構件及一流量管理器的資料路徑之彈性組織。此外,藉由本發明基於設定的屬性將來自該等接收介面的封包直接交換至該等傳送介面係可行的,該等屬性可基於利用該等封包接收的資訊,例如接收於該等封包標頭中的資訊。進一步,本發明之統一通信介面及彈性定址使不同的子系統,例如處理構件,能連接至該嵌入式交換器之不同埠。
應理解使用於本申請案文件中的術語「封包」可涉及多種類型的資料單元,包含但不限於網際網路協定第4版(IPv4)封包、網際網路協定第6版(IPv6)封包、IEEE 802.3訊框、點對點協定(PPP)訊框、ATM單元或其他協定資料單元(PDU)。進一步,一封包可為如此一PDU,例如單元、資料段或記憶體頁;一控制訊息;或在一網路處理系統中互通的另一類型之資料單元之一部分。
圖2概要顯示一種根據本發明之一實施例的網路處理器10,有時其亦被稱作一種網路處理單元。該網路處理器10包括一交換器12、一通信介面14及一處理構件16。該交換器12經配置以便與該介面14及該處理構件16通信。
圖3概要顯示一進一步包括一流量管理器18的網路處理器10之一實施例,該流量管理器18經配置以與該交換器12及該等通信介面14通信。選擇性的外部記憶體20、22可經配置以分別與該處理構件16及 該流量管理器18通信。
該網路處理器可為多種熟知類型中的任一種;包含描述於全文以引用方式併入本文的國際專利申請案第PCT/EP2007/055777號中之處理器,但其亦可為一種加密處理器、一種字串搜索處理器及/或一種通用CPU。該處理器可包括多種熟知類型的處理構件;包含一同步處理管線,如全文以引用方式併入本文的國際專利申請案第PCT/SE2005/001969號所描述。進一步,該處理器可包括諸如一封包格式器的處理構件,及/或一流量管理器。
該交換器12經配置以提供流量管理功能,包含服務分級、階層式排程、流量調整以及空間及邏輯多播。
進一步,交換器12,較佳的係一嵌入式交換器,此處亦被稱為一種共用記憶體交換器(SMS),經配置以在該等通信介面之間交換封包,例如該等接收/傳送介面14之一者及該處理機構16之間。在諸實施例中,較佳的係該交換基於資訊,例如利用該等封包接收的設定屬性。此外,該交換器12經調適以按一種與該資料路徑上之系統要求匹配(即與該線速匹配)的資料率交換封包資料。
圖4a、圖4b概要顯示一種網路處理器10的實施例,其中該交換器12包括一封包緩衝器24、輸入埠(有時亦被稱為寫入埠)26a、輸出埠(有時亦被稱為讀取埠)26b、一輸入仲裁器28、一佇列映射器30、一丟棄單元34、一佇列管理器36及一封包排程器38。如圖4所示,該網路處理器10之實施例亦可包括一經配置以與該交換器12通信的封包格式器32。
在實施例中,該交換器12經配置以便使用該交換器12之一嵌入式記憶體中的一個緩衝器來完成封包交換,參見圖4a及圖4b。該緩衝器可例如為一種諸如一封包緩衝器24的嵌入式緩衝器。
如圖4a及圖4b所例示,有時亦被稱為主封包緩衝器的該封包緩衝器24包括一用於儲存封包資料的資料儲存區24-1及一控制單元24-2,該控制單元包括實施用於多播及/或單播之佇列及構件的邏輯及控制記憶體。該控制記憶體經配置以儲存鏈結列表元素,包括例如指標到封包 資料、指標到其他鏈結列表元素及諸如封包類型及封包長度的封包屬性。該共用記憶體交換器12之封包緩衝器24可使用一多重埠26(26a、26b);一處理構件埠,例如一可編程管線埠(PP埠)、一流量介面埠(TI埠)、一可選封包格式器埠(PF埠)及/或一可選流量管理器埠(TM埠)中的一個或更多個讀取或寫入。
該等PP、TI、PF、TM埠26可包括一個或更多個子埠,即該埠中的一個或更多個邏輯位址。該等子埠可由來自該接收子系統,例如來自該處理構件16、該流量管理器18及/或該封包格式器32的背壓節流。舉例來說,一相應於一TX乙太網路MAC的TI子埠可在該排程器中為朝向該等流量介面14之佇列節流一映射至此子埠的節點。該PP讀取埠可具有16個相應於流量介面的子埠。該TI讀取埠可具有64個相應於流量介面的子埠。該TM讀取埠可具有一單個子埠。該PF讀取埠可具有2個子埠。具有不同子埠的封包可在其經由一埠26讀取或寫入時交錯;即,一屬於一第一子埠的第一封包之一第一部分可在該第一封包之一第二部分經由一埠讀取或寫入之前經由該埠讀取或寫入,之後為一第二封包之一第一部分。
該封包緩衝器24可經配置以便以一種儲存-轉發方式操作,即該封包緩衝器24經配置以便在發送出一完全進入之封包之前儲存該封包,因此該記憶體交換器12可確認被接收之封包的完整性並丟棄誤標封包。進一步,在實施例中,該封包緩衝器24經配置以儲存4MB之封包資料並吸收上至32K之封包。其可支援一400MHz的封包寫入率及封包讀取率。在另一實施例中,其可支援一800MHz的封包寫入率及一400MHz的封包讀取率。然而,應理解該封包讀取率及該封包寫入率可改變且分別可為另一個適當的寫入率及讀取率。該封包緩衝器24可進一步包括64個多播佇列,其各者可持有64個封包。
在實施例中,該交換器12經配置以便不修改封包校直,即不修改該封包或該封包中所包括的資料。進一步,為了向該網路處理器10所接收之封包的附加標頭保留空間,較佳的係該等流量介面14應被配置以移動封包偏移,例如藉由添加一封包偏移值PBase。該流量介面14亦可在傳輸至例如一連接單元之前從該交換器12除去該等封包之過量標頭空間。 其他經配置以接收及傳送完整封包的處理構件亦可移動該封包偏移。這些處理構件包括,例如,該流量管理器、該封包格式器、加密處理單元或字串搜索處理單元。
在實施例中,當一封包從一佇列讀取以插入該處理構件16中時,該第一個256位元組被發送至該處理構件16中。如果該封包長度PLen及該封包偏移值PBase之總和為256位元組或更少,該整個封包進入該處理構件16。如果該封包更長,即如果PLen及PBase之總和大於256位元組,該封包之標尾保留於該封包緩衝器24之一專用區域中,例如該資料儲存區24-1中,並在該封包標頭從該處理構件16離開時與該封包標頭重連。然而,在另一實施例中,該整個封包被發送至該處理構件16而不管該封包長度。進一步,該處理構件16可經配置以處理一封包之若干部分、整個封包及其一組合。亦應理解被交換器接收之該等封包或其若干部分可被交錯。
在實施例中,如果被接收之封包具有不同長度,該封包率在封包較短(例如在64位元組與256位元組之間並包括64位元組與256位元組)時變得比封包較長(例如大於256位元組)時更高。在僅長封包之一第一部分被發送至該處理構件16的實施例中,該處理構件16之容量可超額;即低於以短封包之最大封包率處理封包所需之容量。如果該處理構件16超額,該嵌入式交換器12可儲存短封包之臨時叢發。如果這些叢發之範圍有限且該處理構件16之容量大於平均封包率,則所有被接收之封包可仍被該處理構件16處理,因為該處理構件16可趕上並處理先前在具有長封包之期間儲存的叢發。
在長封包之標頭被發送至該處理構件16且處理構件16充當一種適於以一受保證的150MHz之封包率或另一適用封包率處理短封包的同步管線之實施例中,若封包較長則可能存在未使用的處理容量,因為長封包之封包率可小於受保證之封包率,促使封包可插入該同步管線的時槽不被使用。在如此之實施例中從該處理構件16離開的封包標頭可儲存於該嵌入式交換器12中並重新進入該處理構件16進行下一步處理、使用原本未使用之處理容量。在處理完成後,該等封包標頭從該處理構件16離開並 與該嵌入式交換器12中的封包標尾重連。如此之擴展處理係有用的,例如如果該封包組之一子組比其他封包需要更多處理,例如因為其需添加附加之協定標頭。
該交換器12經配置以支援單播、邏輯多播及/或空間多播。封包類型及附加輸入參數作為封包屬性用該封包傳至該寫入埠中,如下所述。
在實施例中,該嵌入式交換器12包括用於邏輯多播的構件,藉此至少部分基於用該封包接收之資訊且視情況亦部分基於一個或更多個查詢表中之資訊的該嵌入式交換器12藉由用一寫至一佇列的封包儲存一屬性NumCopies而儲存副本數量。當該封包從該佇列讀取時,該封包之NumCopies副本被傳送。
由此,藉由邏輯多播,一封包被多次讀取。當如此一封包出隊時,副本數量之一參考計數器可被減量。然而,應理解一參考計數器可為各個副本增量直到達到最大副本數量。如果該副本數量達到一最小數量例如零或最大數量,該封包從該佇列釋放。否則該封包保留於該佇列中並因被該相應排程器選擇而重複出隊。邏輯多播可支援上至每封包64K副本。其適用於一較大範圍的應用,包含第3層多播,即ISO OSI模型第3層多播;例如IP封包多播及VPLS(虛擬私人LAN服務)泛播。
在實施例中,該嵌入式交換器12包括用於空間多播之構件,藉此至少部分基於用該封包接收之資訊且視情況亦部分基於一個或更多個查詢表中之資訊的該嵌入式交換器12選擇至少兩個佇列並寫入一被接收之封包至該等兩個被選擇之佇列。
由此,藉由空間多播,一封包描述符平行寫入多個空間多播佇列而非普通佇列,一參考計數器被初始化。對於各個空間多播佇列,一多播副本被建立且該參考計數器被增量或減量。如果該副本數量達到一最小數量例如零或最大數量,該封包從該佇列釋放。這些空間多播佇列可經配置以遮蔽該交換器12中的佇列。這意味著一空間多播佇列被讀取而非一被該相應排程器選擇之佇列。空間多播適用於至實體埠的低延遲多播,其中多媒體傳播或第2層多播或廣播為代表性應用。各個空間多播佇列可持 有上至64個任意尺寸的封包。
應理解邏輯及空間多播可被組合。對於寫入至該空間多播佇列的封包,副本數量可上至64K。此組合可用於在一實體埠內產生邏輯子埠之副本。
在實施例中,該交換器12之輸入仲裁器28經配置以服務於來自該交換器12之該等輸入埠26a的交錯封包並將其傳遞至朝向該封包緩衝器24的佇列映射器30,參見圖4a及圖4b。由此,該輸入仲裁器28可經配置以便對從一個或更多個輸入埠26到該交換器12的封包資料進行緩衝及排程。來自一個或更多個輸入埠26的封包資料43a被該輸入仲裁器28所包括並服務的佇列接收。該輸入仲裁器28經配置以交錯來自不同輸入埠26a的封包資料43a、並一次寫入一個記憶體頁至該交換器12中。如果佇列填滿,諸如背壓44a、44b、標尾丟棄或標頭丟棄的溢出保護機制可被啟動。
在實施例中,該佇列映射器30經配置以從該輸入仲裁器28接收封包屬性42a。封包屬性被該流量介面14、該可選封包格式器32、該可選流量管理器18及/或該處理構件16中的一個或更多個用封包發送。在其他實施例中,封包屬性亦可獨立發送而不用發送封包。該佇列映射器30經配置以便對該等封包屬性解碼並產生一從該等封包屬性映射的佇列。該佇列映射包括一佇列號碼及視情況一個或更多個該封包所寫入之多個多播佇列,以及一旦該封包出隊產生何等數量之副本。該佇列映射亦可被一丟棄單元34使用,其經配置以決定是否丟棄該封包或使該封包入隊。
在實施例中,該流量介面14、該處理構件16、該流量管理器18及該可選封包格式器32中的至少一個基於從該交換器12接收之封包資料及/或封包屬性的處理而設定封包屬性。此處理可藉由電腦程式之執行、藉由有限狀態機或藉由使用諸如內容可定址記憶體或RAM中之查詢表的記憶體查詢表而分類或藉由其他可被技術熟練者理解之適當方式而實現。在其他實施例中,該等封包屬性逐埠、子埠、流或一埠中的其他邏輯單元配置。
在一個實施例中,封包屬性42a為一種在該輸入埠26a上的帶外信號,即該等屬性不經由與該等封包相同的通道發送。在另一實施例 中,封包屬性42a被帶內發送且該交換器12,例如該佇列映射器30,經配置以從該封包資料43a獲取該等封包屬性43a。舉例來說,該佇列映射器30或該輸入仲裁器28可經配置以獲取/取回儲存於該封包之一標頭及/或一標尾中的屬性。該標尾可包括置於該封包末端的補充資料。
該佇列映射器30包括一經配置以儲存關於該佇列映射之資訊的映射資料庫31。
該等封包屬性可含有一直接或間接佇列映射。在直接映射之情況下,該等封包屬性含有一佇列映射,該佇列映射被直接轉達至一丟棄單元以判定該封包資料是否應被該佇列管理器寫至相應於該直接佇列映射的佇列。在間接佇列映射之情況下,該佇列映射器30使用封包屬性42a以便從該映射資料庫31查詢該佇列映射,然後該等封包屬性被轉達至該丟棄單元以判定該封包資料是否應被該佇列管理器寫至被查詢佇列。然而,應理解該等屬性可被轉達至該丟棄單元以判定該封包是否應在直接或間接映射該封包至一佇列之前被丟棄。
進一步,該等封包屬性可含有關於封包丟棄、封包開始、封包結束、錯誤、封包長度、至封包欄位之偏移、來源節點、來源埠、來源子埠、來源佇列、終點節點、終點埠、終點子埠、終點佇列、服務級別、顏色、反射、儲存位址、記憶體佔用、多播狀態、資料保護的資訊及其它可與一封包關聯的資訊。
在實施例中,該交換器12包括拋棄一被接收之封包而非將其寫入一佇列的構件。拋棄該封包之決定至少部分基於當前佇列長度及/或平均佇列長度及/或儲存於表中之資訊及/或用該封包接收之資訊。
拋棄一封包之構件可藉由前述之一丟棄單元34實現。
在實施例中,該交換器12進一步包括在一佇列頭丟棄一封包而非將其傳送至一輸出埠的構件。丟棄該封包之決定可至少部分基於當前佇列長度及/或平均佇列長度及/或儲存於表中之資訊及/或用該封包接收之資訊及/或該佇列中封包所消耗之時間。
丟棄一封包之構件可藉由一丟棄單元34實現,該丟棄單元34經配置以便為各個接收封包檢查對緩衝器保留及主動佇列管理之規則的 符合性並產生一通過或丟棄決定。該丟棄單元34可經配置以包含用於加權隨機早期檢測(WRED)之構件以及用於視情況共用記憶體池之佇列之標尾丟棄的構件。該丟棄單元34亦可包括經配置以檢測封包錯誤的構件。該丟棄單元34亦可維持該等佇列長度並包含用於生成背壓的配置暫存器。
藉由該丟棄單元34中的配置,該封包緩衝器24可分成數個不同記憶體使用類型的區域。該丟棄單元34可經配置以監督這些區域之使用並為封包丟棄或背壓應用一組機制以保護緩衝記憶體區域並防止致命的緩衝狀況。
在實施例中,該交換器12亦可包括一佇列管理器36,該管理器36包括一經配置以保持佇列狀態並管理佇列及自由控制記憶體之鏈結列表的入隊鎖。該入隊鎖可進一步藉由因該丟棄單元之要求將封包及記憶體頁附加至鏈結列表之標尾而實行封包入隊。該佇列管理器26可進一步包括一出隊鎖。該出隊鎖經配置以藉由因一封包排程器38之要求從鏈結列表彈出封包及記憶體頁而實行封包出隊。
在實施例中,該交換器12包括一個或更多個內部佇列組,組數量相應於埠數量。
如圖5a所示,在實施例中,該交換器12包括一佇列組;朝向該處理構件16的PP佇列,一佇列組;朝向該流量介面14或該可選流量管理器18的TX佇列,一佇列組;至該可選流量格式器32的PF佇列。各個佇列組具有一封包排程器38。
如圖5b所示,在實施例中,該交換器12包括一個佇列組;朝向該處理構件16的PP佇列,一個佇列組;朝向該流量介面14的TX佇列,一個佇列組;朝向該可選流量管理器的TM佇列,一個佇列組;至該可選封包格式器32的PF佇列,以及一個佇列組;用於待丟棄之封包資料之排程讀取操作的丟棄佇列。各個佇列組具有一封包排程器38,其中一些顯示於圖4a及圖4b中。
進一步,如圖4a、4b及圖5a、5b所示,該交換器12包括一封包排程器38,該排程器38經配置以便將來自該交換器12之該等佇列的封包排程至一個或更多個與該交換器12通信的功能塊,該排程利用一種 排程演算法執行。該交換器12可在每個輸出埠具有至少一個排程器,其判定該等佇列之服務順序。
在實施例中,該封包排程器38經配置以利用欠額加權輪詢法(DWRR)、嚴格優先權佇列(SPQ)及輪詢演算法(RR)中的一個或一組合對該等封包排程。然而,應理解亦可使用其他適用的排程演算法。舉例來說,該等輸出埠排程器可根據該排程演算法輪詢、加權輪詢、欠額輪詢、欠額加權輪詢、嚴格優先權佇列、先到先服務、最早時限優先、多時分工或另一種適用排程演算法中的至少一個服務佇列。
在實施例中,該封包排程器38可包括一個或更多個包括至少兩個排程器階層的階層式排程器。舉例來說,該封包排程器38可包括一處理構件排程器;PP排程器,其經配置以將封包資料排程至該處理構件16;一流量管理器排程器;TM排程器,其經配置以將封包資料排程至該流量管理器;一介面排程器;TX排程器,其經配置以將封包資料排程至該等流量介面;TX介面14b;一封包格式排程器;PF排程器,其經配置以將封包資料排程至該封包格式器32,及/或一丟棄排程器,其經配置以排程封包丟棄。
交換器之該等輸出埠排程器,例如TX排程器,包括諸如符記桶、漏桶的流量調整器或其他適於實現流量調整的方式或演算法,其限制從各個排程器輸出的資料率。
該PP排程器及該TX排程器之各者可經配置以服務於512個佇列,該PF排程器可經配置以服務於16個佇列。
在實施例中,該交換器可包括一輸出仲裁器41,參見圖4b及圖5b。該輸出仲裁器41可相應於該輸入仲裁器28。該輸出仲裁器41經配置以從該封包排程器38接收對於封包讀取操作的請求,並將這些操作轉換為來自該主封包緩衝器24的資料讀取操作。該輸出仲裁器41經配置以控制輸出埠26a之間的讀取帶寬共用。在實施例中,該輸出仲裁器41經配置以利用欠額加權輪詢法(DWRR)、嚴格優先權佇列(SPQ)及輪詢演算法(RR)中的一個或一組合以對該等封包排程。然而,應理解亦可使用其他適用排程演算法。舉例來說,該等輸出埠排程器可根據該排程演算法輪詢、加權輪詢、欠額輪詢、欠額加權輪詢、嚴格優先權佇列、先到先服務、最早時 限優先、多時分工或另一種適用排程演算法重的至少一個服務佇列。在實施例中,至少一個輸出埠具有子埠。在這種情況下,該輸出仲裁器41進一步對這些子埠排程並控制該輸出埠之該等子埠之間的帶寬共用。
該交換器12之實施例包括一狀態格式器40,該狀態格式器經安排以與該封包緩衝器24及該封包排程器38通信並經配置以便在佇列之階層超過經配置之浮水印時產生至該封包排程器的背壓。藉由可配置之連接矩陣的優點,該等背壓信號可彈性映射至該封包排程器中的佇列或節點。
如圖5a及圖5b所示,排程可被來自該處理構件16、該封包格式器32、該等流量介面14或該流量管理器18的背壓開啟/關閉調節。換言之,封包資料至該處理構件16、該封包格式器32、該等封包介面14或該流量管理器18的排程可被中斷,如果它們的緩衝器全滿且不能接收更多的封包資料。該封包排程器38停止排程及發送封包資料直到該等緩衝器被清空並能夠再次接收封包資料。
如下之實例描述該網路處理器對四個例示封包的處理。這些及其它封包可同時用該網路處理器之相同配置處理。由此,相同網路處理器配置可導致經由該網路處理器的不同流動路徑。
所有四個封包43a首先採取相同路徑。它們被一流量介面14接收。藉由該流量介面14之配置,該等封包屬性42a被設定為一至一朝向該處理構件16之PP佇列的直接映射。除非該封包被該丟棄單元34丟棄,否則該封包將進入被選擇之PP佇列且其封包資料儲存於該主封包緩衝器24之資料儲存區24-1中。從這個PP佇列該封包被該封包排程器38排程,該封包資料之部分或所有被該輸出仲裁器41從該主封包緩衝器24讀取並經由該PP埠26b發送至該處理構件16。該等封包屬性基於佇列號碼被該交換器12設定。該處理構件16藉由一執行程式編碼序列的電腦程式處理該封包,該電腦程式可執行封包資料及/或封包屬性之分類及編輯以及技術熟練者所熟知的其他封包資訊及資料庫操作。該處理構件16檢驗諸如封包標頭的封包內容並執行表查詢。基於這些操作該等四個封包以四種不同方式處理,其將以如下四點1)-4)描述。
1)該處理構件16將該第一例示封包識別為一應通過該交換器12、該流量管理器18並在其被發送至該等流量介面14之前再次通過該交換器12的用戶封包。為實現此,該處理構件16將一持有至該流量管理器18之輸入參數的標頭添加至該封包並將封包屬性設定為一種至一朝向該流量管理器18之佇列的直接映射。在該封包經由該交換器12傳遞後,如上述,該流量管理器18使用該輸入標頭中的參數以設定以至一朝向該等流量介面14之佇列的直接映射。在另一次通過該交換器12至該等流量介面14後,該封包被發送至一外部接收器(未顯示)。
2)該處理構件16將該第二例示封包識別為一種應直接通過該交換器12至該等流量介面14的低延遲控制封包。為實現此,該處理構件16將封包屬性設定為一種至一朝向該等流量介面14之佇列的直接映射。在另一次通過該交換器12至該等流量介面14後,該封包被發送至一外部接收器(未顯示)。
3)該處理構件16將該第三例示封包識別為一多播封包,例如一多播視頻封包。此封包應複製至多個例項並發送至該等流量介面14之不同埠。為實現此,該可編程管線16將封包屬性設定為一識別一多播群的直接映射。然而,應理解一種至一多播佇列的直接映射亦係可行的,但因為存在許多多播佇列,其要求資源以提供一直接映射,因此,為節省帶寬,較佳的係提供一種間接映射。該佇列映射器30將該多播群用作用於在一映射資料庫31中查詢的密鑰。此查詢返還該封包入隊的多播佇列之一列表。除非一副本被該丟棄單元34丟棄,各個副本被寫至一多播佇列。在通過該交換器12至該等流量介面14之後,各個封包被發送至一外部接收器(未顯示)。
4)該處理構件16將該第四例示封包識別為一種應被例如被IPv4分片操作分片的用戶封包。此封包應通過該交換器12、該封包格式器32、再次通過該交換器12、該流量管理器18及在其被發送至該等流量介面14以便傳輸之前最後一次通過該交換器12。為實現此,該處理構件16將一輸入參數之標頭添加至該封包格式器32並將封包屬性設定為一種至一朝向該流量管理器18之佇列的直接映射。在該封包經由該交換器12傳遞後, 如上述,該封包格式器32使用配置參數或該輸入標頭中之參數以控制待執行之功能及/或操作。進一步,該封包格式器32設定一直接映射至一返回該處理構件16的佇列。此後將採用從該處理構件16開始處理該第一例示封包的相同步驟。
雖然本發明已根據所顯示的實施例而被描述,但一般技術者將瞭解改變可被做出而不脫離本發明之範圍。因此,如上描述中所包含及該等圖式中所顯示的所有內容僅具說明性,而不應理解為限制性。
10‧‧‧網路處理器
12‧‧‧嵌入式交換器
14‧‧‧通信介面
16‧‧‧處理構件

Claims (20)

  1. 一種用於處理封包之一網路處理器單元,該網路處理器單元包括:一介面,經配置以接收及發送封包;至少一處理構件,用於處理封包或封包之部分;一交換器,經配置於該介面及該至少一處理構件間交換封包;一流量管理器,經配置與該介面及該交換器通信;及一緩衝器,包括於該交換器中,該緩衝器係經配置至少共享於該介面、該至少一處理構件及該流量管理器之間,其中在該交換器中發生一封包叢發每次最多僅為一次。
  2. 如請求項1的網路處理器單元,其中該交換器更經配置以分析該封包叢發中一被接收之封包並判定該封包是否應丟棄。
  3. 如請求項2的網路處理器單元,其中如果該封包不應被丟棄,該交換器更經配置以儲存該被接收封包,並發送該封包之一第一部分至該處理構件以進行處理。
  4. 如請求項3的網路處理器單元,其中該交換器更經配置以從該至少一處理構件中接收該封包之該經處理的第一部分以及發送該封包之該經處理的第一部分。
  5. 如請求項1的網路處理器單元,其中該交換器係經配置儲存該封包之一第二部分、從該處理構件接收該封包之該經處理的第一部分及在發送經重組之封包之前將該封包之該經處理的第一部分及該封包之該第二部分重組。
  6. 如請求項5的網路處理器單元,其中該緩衝器在該第一部分被處理時儲存該第二部分,該封包之該第一部分為該封包之標頭,該封包之該第二部分為該封包之主體。
  7. 如請求項1的網路處理器單元,其中該介面、該至少一處理構件、該流量管理器或與該交換器通信之一封包格式器係經配置以基於該些封包之處理設定封包屬性。
  8. 如請求項7的網路處理器單元,其中該交換器,依據該等被設定之封包屬性,判定一功能塊並發送該封包至為該功能塊之該介面、該至少一處理構件、該流量管理器及該封包格式器其中之一。
  9. 如請求項1的網路處理器單元,其中該介面、該至少一處理構件、該流量管理器或與該交換器通信之一封包格式器係經配置以基於從該交換器接收之資訊設定封包屬性。
  10. 如請求項1的網路處理器單元,其中該交換器進一步經配置具有至輸入/輸出埠,從/至該介面及該至少一處理構件;其中,接收於任一輸入埠上的封包會被寫入至任一輸出埠之一輸出佇列並基於該封包的封包屬性經由該輸出埠發送。
  11. 一種網路處理器單元處理封包之方法,該方法包括:藉由一介面接收並發送封包;藉由至少一個處理構件處理該封包或封包之部分;藉由一交換器於該介面及該至少一處理構件間交換封包;藉由一流量管理器與該介面及該交換器通信;以及於至少該介面、該至少一處理構件及該流量管理器間共同分享該交換器之一緩衝器,其中在該交換器中發生一封包叢發每次最多僅為一次。
  12. 如請求項11的方法,進一步包括:分析該封包叢發中之一被接收之封包;以及判定該封包是否應丟棄。
  13. 如請求項12的方法,進一步包括:當該封包不應丟棄時,儲存該被接收之封包;以及發送該封包之一第一部分至該至少一處理構件以對其進行處理。
  14. 如請求項13的方法,進一步包括:從該至少一處理構件接收該封包之該被處理的第一部分;以及發送該封包之該第一部分。
  15. 如請求項13的方法,進一步包括:儲存該封包之一第二部分;從該至少一處理構件接收該封包之該被處理的第一部分;以及在發送被重組之封包之前將該封包之該被處理之第一部分及該封包之該第二部分重組。
  16. 如請求項15的方法,進一步包括:在該第一部分被處理時儲存該第二部分於該緩衝器,該第一部分為該封包之標頭,該第二部分為該封包之主體。
  17. 如請求項11的方法,進一步包括:基於該介面、該至少一處理構件、該流量管理器或與該交換器通信之一封包格式器的封包處理,設定封包屬性。
  18. 如請求項17的方法,進一步包括:基於設定的封包屬性判定一功能塊;以及發送該封包至為該介面、該至少一處理構件、該流量管理器及該封包格式器其中之一的該功能塊。
  19. 如請求項11的方法,進一步包括: 基於該介面、該至少一處理構件、該流量管理器或與該交換器通信之一封包格式器從該交換器接收之資訊設定封包屬性。
  20. 如請求項11的方法,進一步包括:輸入/輸出一封包從/至該介面及該至少一處理構件;以及將接收於該交換器之其中之一該輸入埠上的封包寫入至該交換器之輸出埠之一佇列,並基於該封包的封包屬性經由該佇列發送。
TW104101380A 2008-05-30 2009-05-27 網路處理器單元及其相關方法 TWI527409B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US5761408P 2008-05-30 2008-05-30
SE0801280 2008-05-30

Publications (2)

Publication Number Publication Date
TW201531064A TW201531064A (zh) 2015-08-01
TWI527409B true TWI527409B (zh) 2016-03-21

Family

ID=40947266

Family Applications (2)

Application Number Title Priority Date Filing Date
TW098117841A TWI482460B (zh) 2008-05-30 2009-05-27 網路處理器單元及其相關方法
TW104101380A TWI527409B (zh) 2008-05-30 2009-05-27 網路處理器單元及其相關方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
TW098117841A TWI482460B (zh) 2008-05-30 2009-05-27 網路處理器單元及其相關方法

Country Status (5)

Country Link
US (3) US8630199B2 (zh)
EP (1) EP2311230B1 (zh)
CN (2) CN103944837B (zh)
TW (2) TWI482460B (zh)
WO (1) WO2009144296A1 (zh)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8948046B2 (en) 2007-04-27 2015-02-03 Aerohive Networks, Inc. Routing method and system for a wireless network
US8218502B1 (en) 2008-05-14 2012-07-10 Aerohive Networks Predictive and nomadic roaming of wireless clients across different network subnets
US20100002715A1 (en) * 2008-07-07 2010-01-07 Alcatel Lucent Thermally flexible and performance scalable packet processing circuit card
US8351449B1 (en) * 2008-08-07 2013-01-08 Bee Networx Inc. Scheduling data communication for mobile communication devices with multiple wireless network interfaces associated with differing costs
US9674892B1 (en) 2008-11-04 2017-06-06 Aerohive Networks, Inc. Exclusive preshared key authentication
US8483194B1 (en) 2009-01-21 2013-07-09 Aerohive Networks, Inc. Airtime-based scheduling
US9900251B1 (en) 2009-07-10 2018-02-20 Aerohive Networks, Inc. Bandwidth sentinel
US11115857B2 (en) 2009-07-10 2021-09-07 Extreme Networks, Inc. Bandwidth sentinel
US8976787B2 (en) * 2009-12-10 2015-03-10 Thomson Licensing Protocol booster for SCTP in multicast networks
US9769092B2 (en) * 2010-01-18 2017-09-19 Marvell International Ltd. Packet buffer comprising a data section and a data description section
US9002277B2 (en) 2010-09-07 2015-04-07 Aerohive Networks, Inc. Distributed channel selection for wireless networks
US8457142B1 (en) * 2011-02-18 2013-06-04 Juniper Networks, Inc. Applying backpressure to a subset of nodes in a deficit weighted round robin scheduler
TWI448966B (zh) * 2011-07-04 2014-08-11 Realtek Semiconductor Corp 用於具有內建網路單元之嵌入式系統裝置的網路單元置換方法以及嵌入式系統裝置
US10091065B1 (en) 2011-10-31 2018-10-02 Aerohive Networks, Inc. Zero configuration networking on a subnetted network
KR101640017B1 (ko) * 2011-12-23 2016-07-15 한국전자통신연구원 패킷 전송 장비 및 그것의 트래픽 관리 방법
JP5930767B2 (ja) * 2012-02-23 2016-06-08 キヤノン株式会社 電子デバイス、通信制御方法
CN104769864B (zh) 2012-06-14 2018-05-04 艾诺威网络有限公司 多播到单播转换技术
CN102833159B (zh) * 2012-08-16 2015-10-21 中兴通讯股份有限公司 报文拥塞处理方法及装置
US10389650B2 (en) 2013-03-15 2019-08-20 Aerohive Networks, Inc. Building and maintaining a network
US11003459B2 (en) 2013-03-15 2021-05-11 Intel Corporation Method for implementing a line speed interconnect structure
US9753691B2 (en) 2013-03-15 2017-09-05 Intel Corporation Method for a stage optimized high speed adder
US9413772B2 (en) 2013-03-15 2016-08-09 Aerohive Networks, Inc. Managing rogue devices through a network backhaul
CN108255521B (zh) * 2013-03-15 2022-05-31 英特尔公司 一种用于实现线路速度互连结构的方法
US9674084B2 (en) * 2013-11-21 2017-06-06 Nephos (Hefei) Co. Ltd. Packet processing apparatus using packet processing units located at parallel packet flow paths and with different programmability
US9722810B2 (en) * 2014-02-03 2017-08-01 International Business Machines Corporation Computer-based flow synchronization for efficient multicast forwarding for products and services
US10834241B1 (en) * 2019-01-08 2020-11-10 Xilinx, Inc. Streaming editor circuit for implementing a packet deparsing process

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6876653B2 (en) * 1998-07-08 2005-04-05 Broadcom Corporation Fast flexible filter processor based architecture for a network device
US7120117B1 (en) * 2000-08-29 2006-10-10 Broadcom Corporation Starvation free flow control in a shared memory switching device
AU2002232481A1 (en) * 2000-11-07 2002-05-21 Fast-Chip, Inc. Switch-based network processor
US20040151197A1 (en) * 2002-10-21 2004-08-05 Hui Ronald Chi-Chun Priority queue architecture for supporting per flow queuing and multiple ports
US7644256B2 (en) * 2003-01-28 2010-01-05 Xelerated Ab Method in pipelined data processing
US7826470B1 (en) * 2004-10-19 2010-11-02 Broadcom Corp. Network interface device with flow-oriented bus interface
US7882280B2 (en) * 2005-04-18 2011-02-01 Integrated Device Technology, Inc. Packet processing switch and methods of operation thereof
US7801144B2 (en) * 2006-03-31 2010-09-21 Agere Systems Inc. Switch-based network processor
CN1838624B (zh) * 2006-04-26 2010-05-12 南京大学 高性能网络数据处理平台系统和处理方法
KR101409456B1 (ko) * 2007-06-12 2014-06-24 삼성전자주식회사 IP converged 시스템에서의 패킷 처리 방법 및그 시스템
US7821939B2 (en) * 2007-09-26 2010-10-26 International Business Machines Corporation Method, system, and computer program product for adaptive congestion control on virtual lanes for data center ethernet architecture

Also Published As

Publication number Publication date
TWI482460B (zh) 2015-04-21
US8630199B2 (en) 2014-01-14
TW201014273A (en) 2010-04-01
US8964594B2 (en) 2015-02-24
EP2311230B1 (en) 2019-08-28
CN102047618A (zh) 2011-05-04
CN102047618B (zh) 2014-03-26
EP2311230A1 (en) 2011-04-20
US9178830B2 (en) 2015-11-03
US20150163156A1 (en) 2015-06-11
TW201531064A (zh) 2015-08-01
US20110085464A1 (en) 2011-04-14
CN103944837A (zh) 2014-07-23
CN103944837B (zh) 2017-08-25
US20140146827A1 (en) 2014-05-29
WO2009144296A1 (en) 2009-12-03

Similar Documents

Publication Publication Date Title
TWI527409B (zh) 網路處理器單元及其相關方法
US7830884B2 (en) Flexible method for processing data packets in a network routing system for enhanced efficiency and monitoring capability
US6687247B1 (en) Architecture for high speed class of service enabled linecard
US8671219B2 (en) Method and apparatus for efficiently processing data packets in a computer network
US7843816B1 (en) Systems and methods for limiting low priority traffic from blocking high priority traffic
US7391786B1 (en) Centralized memory based packet switching system and method
JP4667469B2 (ja) 共有メモリスイッチ基礎システム構成
US7649885B1 (en) Network routing system for enhanced efficiency and monitoring capability
US6795886B1 (en) Interconnect switch method and apparatus
US20090279558A1 (en) Network routing apparatus for enhanced efficiency and monitoring capability
US20060274773A1 (en) Method and apparatus for using meta-packets in a packet processing system
JP2002541732A5 (zh)
EP1356640B1 (en) Modular and scalable switch and method for the distribution of fast ethernet data frames
EP1380133A2 (en) Method and device for multicast transmissions
JP2015076889A (ja) 航空機用データ通信ネットワーク
US7110405B2 (en) Multicast cell buffer for network switch
CN114531488B (zh) 一种面向以太网交换器的高效缓存管理系统
US7174394B1 (en) Multi processor enqueue packet circuit
US8599694B2 (en) Cell copy count
WO2019200568A1 (zh) 一种数据通信方法及装置

Legal Events

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