[go: up one dir, main page]

TW200527858A - High-speed processing mechanism of packet-switching - Google Patents

High-speed processing mechanism of packet-switching Download PDF

Info

Publication number
TW200527858A
TW200527858A TW93102450A TW93102450A TW200527858A TW 200527858 A TW200527858 A TW 200527858A TW 93102450 A TW93102450 A TW 93102450A TW 93102450 A TW93102450 A TW 93102450A TW 200527858 A TW200527858 A TW 200527858A
Authority
TW
Taiwan
Prior art keywords
packet
unit
processing mechanism
speed
data
Prior art date
Application number
TW93102450A
Other languages
Chinese (zh)
Other versions
TWI271066B (en
Inventor
Ming-Xian Liang
Guan-Ting Liu
jun-rong Zhang
Qi-Huang Li
Yi-Yuan Chen
Zhi-Cheng Cao
Kun-Cang Xie
Zhao-Qi Wang
Jin-Zhou Chen
shi-yuan Zheng
Long-Xing Liang
Original Assignee
Chunghwa Telecom Co Ltd
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 Chunghwa Telecom Co Ltd filed Critical Chunghwa Telecom Co Ltd
Priority to TW93102450A priority Critical patent/TWI271066B/en
Publication of TW200527858A publication Critical patent/TW200527858A/en
Application granted granted Critical
Publication of TWI271066B publication Critical patent/TWI271066B/en

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The IPv6 high-speed processing mechanism of packet-switching is a system unit having the function of IPv6 high-speed packet-switching. The packet is divided into the control packet and the data packet by attribute. The control packet is processed by a CPU module, the data packet is processed by the table-loop-up unit of the module itself to obtain the corresponding output port, and the data packet is directly transmitted out without the processing of CPU, so as to accelerate the transmission speed, and achieve the purpose of wire-speed switching for IPv6 packet. Various kinds of packets are processed by separating the processing of packet header and packet payload, so as to reduce the processing time of packet, and improve the problem that the wire-speed switching of IPv6 cannot be accomplished in the prior art, because most of the network equipment only supports the switching of wire-speed for IPv4 currently.

Description

200527858 玖、發明說明: 【發明所屬之技術領域】 本發明係關於一種封包高速交換處理機制,特別為一種應 用j周路處理器技術偵測網路協定第六版封包並判定封包屬性為 控制封包或資料封包,而分別處理之封包交換處理機制。 【先前技#?】200527858 发明 Description of the invention: [Technical field to which the invention belongs] The present invention relates to a high-speed packet exchange processing mechanism, and particularly to a method for detecting the sixth version of a network protocol packet using the j-processor technology and determining the packet attribute as a control packet Or data packets, and the packet exchange processing mechanism that processes them separately. [Prior Art #?]

由於近年來全球資訊網(World Wide Web)及網際網路 (Internet)的蓮勃發展,使用網路人口迅速增加,網際網路上可 用之網路協定第四版(IPv4)位址預期很快地就不夠用了,是故有 新一代之IP(Internet Protocol)協定第六版(簡稱IPv6)被提出來 解決此一問題。在此同時,基於以往網際網路之使用經驗得知 原有網路協定有許多不足,如其對即時服務、擁塞控制及保密 措施之支援等。因此,在設計IPv6時,除擴充位址空間以解決 最緊迫之位址不足之外,亦對原IP協定各方面功能重新檢討, 以力求改善。然現有大部分網路設備僅支援IPv4封包之線速 (wire-speed)交換,對於IPv6封包之線速交換則無法達成。因 此,研究如何讓網際網路用戶快速地連接上IPv6網路,以提昇 IPv6網路品質之要求實為當務之急。 由此可見,上述習用物品仍有諸多缺失,實非一良善之設 計者,而亟待加以改良。 · "本案創作人鑑於上述習用所衍生的各項缺點,乃亟思加以 改良創新,並經多年苦心孤詣潛心研究後,終於成功研發完成 12 200527858 本件IPv6封包高速交換處理模組。 【發明内容】 本發明之目的之一在於提供一種IPv6封包高速交換處理機 制,係改進並擴充傳統IPv4網路設備之功能至IPv6封包之線 速犮換能力。Due to the rapid development of the World Wide Web and the Internet in recent years, the number of people using the Internet has increased rapidly, and the fourth version of IPv4 (IPv4) addresses available on the Internet is expected to soon It is not enough, so a new generation of IP (Internet Protocol) version 6 (referred to as IPv6) is proposed to solve this problem. At the same time, based on past experience of using the Internet, it is known that there are many deficiencies in the original network protocols, such as its support for real-time services, congestion control, and security measures. Therefore, when designing IPv6, in addition to expanding the address space to address the most urgent address shortages, we also re-examined all aspects of the original IP protocol functions in an effort to improve. However, most of the existing network equipment only supports wire-speed exchange of IPv4 packets, and cannot achieve wire-speed exchange of IPv6 packets. Therefore, it is urgent to study how to make Internet users quickly connect to the IPv6 network to improve the quality of the IPv6 network. It can be seen that there are still many shortcomings in the above-mentioned conventional articles, and they are not a good designer. They need to be improved. · &Quot; In view of the various shortcomings derived from the above-mentioned custom, the creators of this case are eager to improve and innovate. After years of painstaking research, they have successfully developed 12 200527858 this high-speed IPv6 packet processing module. [Summary of the Invention] One of the objectives of the present invention is to provide an IPv6 packet high-speed exchange processing mechanism, which is to improve and expand the functions of traditional IPv4 network equipment to the line speed conversion capability of IPv6 packets.

本發明之目的之二在於提供一可程式化、尤其適用於IPv6 網路之多樣化服務需求之封包交換處理機制。 可達成上述發明目的之IPv6封包高速交換處理機制,其利 用偵測與判斷封包種類與屬性以達成線速交換之目的,並增加 軟硬體之可程式化與調適性。其方法為利用網路處理器偵測通 過其每一琿口(port)之封包。每一琿口根據事先程式化之内容以 監視並擷取封包之表頭(header)相關資訊以判定封包種類與屬 性並同時執行資料封包之線速交換與控制封包之後續處理。Another object of the present invention is to provide a programmable packet exchange processing mechanism that is particularly suitable for the diverse service requirements of IPv6 networks. The IPv6 packet high-speed exchange processing mechanism that can achieve the above-mentioned purpose of the invention uses the detection and judgment of packet types and attributes to achieve the purpose of wire-speed exchange, and increases the programmability and adaptability of software and hardware. The method is to use a network processor to detect packets passing through each of its ports. Each gateway monitors and retrieves the header related information of the packet according to the pre-programmed content to determine the type and property of the packet, and simultaneously performs the line-speed exchange of the data packet and the subsequent processing of the control packet.

【實施方式】 本發明係改進並擴充傳統網路協定第四版(IPv4)網路設備 之功能至IPv6封包之線速交換能力,以應付網路協定第六版 (IPv6)網路龐大訊務量之成長。並提供一可程式化、尤其適用於 IPv6網路之多樣化服務需求之封包交換處理方法。[Embodiment] The present invention is to improve and expand the functions of traditional network protocol version 4 (IPv4) network equipment to the wire-speed exchange capability of IPv6 packets to cope with the network protocol version 6 (IPv6) network huge traffic. Growth of quantity. It also provides a programmable packet exchange processing method, which is especially suitable for the diverse service requirements of IPv6 networks.

請參閱圖一所示,係IPv6封包高速交換處理機制之方塊 圖。IPv6封包高速交換處理機制之架構共分成周邊控制介面單 元Η、周邊資料介面單元2、中央處理器及記憶體單元3、PCI 13 200527858 匯流排介面單元4、查表單元 單元7、與系統匯流排8等單_ Α 6、緩衝器管理 排8等早兀。其主要功能可歸納如下. 一 '韻接收封包種類為ΙΡν4〇Ρν6封包,並針對 分別處理。 -、判斷接收封包屬性為控制封包或資料封包,如為控制封包 .•則將封包内容轉交中央處理模組來處理,··如為資料封包則 直將封包依其目的位址轉送至適當之輸出埠口。 三、傳送IPv4與iPv6封包。 四 、將封包之表頭與酬載部分分開處理,以加速封包處理時間。 五、 IPV4/IPv6路由表格建立、刪除、修改、與查表。 六、 IPv4/IPv6封包等級分類與佇列管理。 七、 各埠口可根據所使用之不同種類硬體介面模組切換軟體组 態。 八、5G bps非阻塞型交換架構。 以下將IPv6封包高速交換處理模組中之各單元細部功能分翁 述如下: (一) 周邊控制介面單元1 為了簡化IPv6封包高速交換處理模組與各種介面模組(包 括:10/100乙太網路介面模組、1G乙太網路介面模組、Please refer to Figure 1, which is a block diagram of the IPv6 packet high-speed exchange processing mechanism. The architecture of the IPv6 packet high-speed exchange processing mechanism is divided into peripheral control interface unitsΗ, peripheral data interface units 2, central processing unit and memory unit 3, PCI 13 200527858 bus interface unit 4, table lookup unit 7, and system bus 8 and other single _ Α 6, buffer management row 8 and so on. Its main functions can be summarized as follows. 1. 'The type of rhyme received packets is ipν4〇Ρν6 packets, which are processed separately. -、 Determine whether the attribute of the received packet is a control packet or a data packet. If it is a control packet. • Transfer the content of the packet to the central processing module for processing. If it is a data packet, directly forward the packet to the appropriate address based on its destination address. Output port. Third, transmit IPv4 and iPv6 packets. 4. Separate the header and payload of the packet to speed up the packet processing time. 5. IPV4 / IPv6 routing table creation, deletion, modification, and lookup. 6. IPv4 / IPv6 packet level classification and queue management. 7. Each port can switch software configuration according to different types of hardware interface modules used. 8. 5G bps non-blocking switching architecture. The detailed functions of each unit in the IPv6 packet high-speed exchange processing module are described below: (1) Peripheral control interface unit 1 In order to simplify the IPv6 packet high-speed exchange processing module and various interface modules (including: 10/100 Ethernet) Network interface module, 1G Ethernet interface module,

PoS(packer over SDH/SONET)介面模組、與非同步傳送模式 (ATM)介面模組等)間的通訊及降低連接線之需求,我們將兩者 14 200527858 間的關%切刀成資料與控制等兩種介面。同時亦將1 6個周邊資 料介面單元分成兩組,每組各由8個周邊資料介面單元所組成, 母、、’並刀另]對應一個周邊控制介面單元來控制。周邊控制介面 單元k 4、對各種介面模組間包括模組識別碼、模組重置、模組 女裝、模組中斷、模組時鐘選擇、及模組狀態啟始與監控等控 制仏號’各種控制信號的啟動係由中央處理器及記憶體單元來 決.定0 (二)周邊資料介面單元2 睛參閱圖二所#,周邊資料介面單元是由周邊資料介面單 儿次序器2卜封包表頭處理器22、接收封包器23、封包酬載處 理态24、與傳送封包器25等所構成,其敘述如下: •周邊資料介面單元次序器21 :控制整個周邊資料介面單元之 運作’其中包括:暫存器、計數器、解碼器、緩衝器、與先 進先出_〇)等之啟始與運算、封包料與接收及與其他單 •凡之溝通’亚由可程式化之有限狀態機器控制執行之順序。 =包表頭處理器22 :接收端部分,將㈣之封包表頭與周邊 、貝料:面早70次序器21事先規劃之採樣控制訊息組合起來, ,過系統匯流排傳送至㈣管理單⑶傳送端部分,將仔列 官理單元6傳送來之資料儲存於内,並拆解成供周邊介面單 ^序器2 i判_之控制訊息與lpy卿v6封包表頭訊息, ,依傳送速率需求,依序將心撕%封包表頭資料傳送出 15 200527858 去。 •接收封包器23 :透過串列腳位接收外界信號,並將接收之信 號透過串列到並列之轉換電路組成完整之IPv4/IPv6封包,經 判斷封包循環冗餘(CRC)檢查碼無誤後,再將封包切割為 IPv4/IPv6封包表頭與IPv4/IPv6封包酬載兩大部分。其中 IPv4/IPv6封包表頭部分送交封包表頭處理器22來處理; IPv4/IPv6封包酬載部分則送交由封包酬載處理器24來處理。 '封包酬載處理器24 :接收端部分,將接收之IPv4/IPv6封包 酬載展開成32位元寬之資料長度,並以16個為一組的方式, 經由直接存取記憶體(DMA)模式透過系統匯流排8傳送至緩 衝器管理單元7。傳送端部分,將緩衝器管理單元7經由直接 存取記憶體(DMA)模式傳送來之資料(與接收端相同,皆是以 32位元寬之資料長度,並以16個為一組的方式傳送)儲存於 内,並依傳送速率需求,依序將資料傳送出去。 •傳送封包器25 :透過封包表頭處理器22接收IPv4/IPv6封包 表頭資訊,同時接收來自於封包酬載處理器24之IPv4/IPv6 封包酬載資訊。將兩者組合成完整之IPv4/IPv6封包,並將產 生之循環冗餘(CRC)檢查碼加入傳送封包之適當欄位内,經由 並列到串列之轉換電路透過串列腳位將IPv4/IPv6封包傳送 出去。 (三)中央處理器及記憶體單元3 200527858 里二3 1位址解碼器32、匯流排緩衝器33、系統匯流排控制器 34、唯讀記憶體35、與隨機存取記憶體%等所構成,其敛述如 下: 中央處理器3 1 ‘控制整個IPv6封包交換處理模組之運作,其 中包括各個單S之啟始與控制命令的執行、系統暫存器的起 始與監控、與各個單元„料的互相純料統㈣流程。 •位址解碼器32肖匯流排緩衝器33 :位址解碼器職中央處 理器的位址解石馬;匯流排緩衝胃33則作為中央處理器η ,唯讀記憶體35及系統匯流排控制器34間f㈣緩衝。 •系統匯流排控制器34:負責控制與系統匯流排間之資料交換。 •唯讀記憶體35與隨機存取記憶體%:唯讀記憶體%之容量 為2M位元組,係儲存控制程式,隨機存取記憶體%之容量 則為32K位元組,係儲存暫時規劃資料。因其大部分動態資 料可藉由PCI匯流排介面單以向中央處理器及記憶體單元 3取得,故不須大容量之資料空間。 (四) PCI匯流排介面單元 ⑽匯流排介面單元提供Ρα匯流排介面的功能,使 :撕V6封包交換處理模組與中央處理模組間得以快輯^ 貝料,並以33MHz 32位元的傳送模式運作。 (五) 查表單元 查表單元提供IPv4/IPv6路由表格的新增、·、修改、與 17 200527858 查珣等功能。表袼的維護工作係由中 夹處理器及記憶體單元3 ㈣責··表格的查詢則是由周邊資料介面單元2之周邊資料介 面早儿次序器21發出信號來取得相關資訊。表格的大小為 5一沉位元組,並採内容可定址模式運作,其資料係以最長前置 元相符方式存放目的位址、相對庫給 對應輸出埠口、與相對應輸出目 的位址等訊息。 (六)佇列管理單元6 。請參閱圖四所示,抒列管理單元6是由仔列管理單元次序· 器61、佇列記憶體管理器62 丨丁 α Ζ隱體63、佇列判斷選擇器 6t、與佇列收送器65等所構成,其敘述如下: ° 仔列官理單兀次序器61 :控制整個仔列管理單元6之運作, 其中包括:暫存器、計數器、解碼器、緩衝器、與先進先出 (™〇)等之啟始與運算及與其他單元之溝通,並由可程式化 之有限狀態機器控制執行之順序。 佇列記憶體管理器62:接受來自佇列管理單元次序器6丨與佇 # 列判斷選擇H 64的指令來管理件列記憶體之位址分配、^ 回收、與檢查使用狀況。 •佇列記憶體6.3:提供512K位元組隨機記憶體供儲存佇列用。 ’佇列判斷選擇器64 :決定佇列處理的優先次序,並從中選取 下一個需要處理的佇列,同時告知佇列管理單元次序器6ι與 佇列記憶體管理器62。 18 200527858 •仔列收送态65 :接收與傳送從中央處理器及記憶體單元3與 周邊資料介面單元2經由系統匯流排8轉送來的佇列資料。 (七)緩衝器管理單元7 請參閱圖五所示,緩衝器管理單元7是由緩衝器管理單元 -人序器71、緩衝器記憶體管理器72、緩衝器記憶體73、封包分 類器74、與廣播封包監視器75等所構成,其敘述如下: •緩衝器管理單元次序器71:控制整個周邊資料介面單元2之 運作,其中包括:暫存器、計數器、解碼器、緩衝器、與先 進先出(FIFO)等之啟始與運算及與其他單元之溝通,並由可 私式化之有限狀態機器控制執行之順序。 ••舞衝器記憶體管理器72:接受來自緩衝器管理單元次序器B 與封包分類器74的指令來管理緩衝器記憶體73之位址分 配、空間回收、與檢查使用狀況。 •緩衝器記憶體73:提供64M位元組隨機記憶體供儲存緩衝器 用。 ° 封包分類器74 :接收與傳送從中央處理器及記憶體單元3與 周邊賁料介面單元2經由系、統匯流排8轉送來的封包酬載資 料,同時告知緩衝器管理單元次序器71與緩衝器記憶體管理 器72如何將封包依其大小加以分類儲存。 廣播封包監視器75:接受缓衝器管理單元次序器71的指令, “斷除送的封包疋否為廣播封包。如是的話,則將持續監督 19 200527858 該封包的傳送,直到所有該封包應傳送的埠口都傳送完成 時,才將該緩衝器清空。 (八)系統匯流排8 系統匯流排8係提供中央處理器及記憶體單元3與周邊資 料介面單元2、周邊控制介面單元1、查表單元5、佇列管理單 元6、與緩衝器管理單元7等單元間系統控制與資料交換的管 道;它同時也提供介面允許中央處理器及記憶體單元3直接存 取其他單元的暫存器,以加快處理時間。 請參閱表一,係為本發明之查表表格的資料結構,說明如 後:本發明除了必須能同時處理IPv4與IPv6的封包外,而且 不能對系統帶來太多的額外負擔。在查表單元5的傳送表格 (Forwarding Table)的設計中,由於IPv6封包的位址長度(128位 元)遠長於IPv4封包的位址長度(32位元),所以我們設計成二階 段式的查表表格。第一階段的表格由IPv4與IPv6的單點傳送 (uni-casting)共用,第二階段的表格則由IPv4的多點傳送 (multicasting)與IPv6的單點傳送共用。這兩個階段的查表表格 資料結構可用{鑰值,資料}配對來表達。其中,鑰值長度為96 個位元,以利查表單元的運作。而這96個位元又可細分為 key0(16 位元)、keyl(32 位元)與 key2(32 位元)。 由於鑰值部份為.IPv4/CIDR(類別網際網路路由)或 IPv6/prefix(前綴)位址值,在排除IPv6多點傳送以及嵌入式 20 200527858 IPv4(Embedded IPv4 address)位址後,利用上述填入鑰值的方式 將可完美的將IPv4與IPv6資料分隔,如此正可達成共用表格 的目的。 表一.查表表格的資$ mm 名稱 鑰值(Key) 資料(Data) rtrTsp 若為IPv4,鑰值填於key2 ; 若為IPv6,則输值填於key 1 與 key2 typedef struct { int8umaskBits; int8u queueld; int8utype; int8u iflndex; int32uappDatal; int32u appData2; int8u fabricld; int8upadl; int 16u nextLookupTag; }IpRouteData; ipmcastTsp 若為EPv4(多點傳送),錄值 填於_2;若為IPv6,則鑰 值填於 keyO、key 1 與 key2 typedef struct { QsQueueVector ftvdVector; int32u vectorCount; inti 6u fabricVector; inti 6u egressVNID; inti 6u nextLookupTag; intl6upadl; }IPMcastFwdCacheEntiyData; 請參閱圖六’在進行傳送表格查詢時,不論是單點傳送或 是多點傳送的IPv4封包’均可直接查到所需要的路由傳送資 料;而IPv6的封包會利用prefix(前綴)前64位元作為鑰值進行 第一階段查詢,如果得到的資料type攔位為 ipRcmteTypeRemote,則須再結合 nextL〇〇kupTag 欄位與 prefix(前綴)剩下的部份作為鑰值進行第二階段的查詢,以取得 21 200527858 路由傳送資料。不論是那個傳送表格的查詢方式,均使用 LPM(Longest-Prefix Match)演算法。除了查詢之外,每個表袼约 需提供Get/Get-next、Se1>Create以及Delete這些基本的操作(杳 訊動作可視為Get操作)。 如圖七所示,處理流程可分為資料平面(Data Plane)與控制 平面(Control Plane)來說明: 一、 資料平面:收到的封包資料首先會將封包表頭與封包酬載 分開,程式會根據不同性質的封包表頭(如IPv4單點傳送、 多點傳送、IPv6單點傳送等),依照前節所述的方法啟動查 表單元5的資料查詢。如果可以取得傳送資料,則根據傳 送資料修改網路層(Network Layer)表頭資料後,連同酬載 送往佇列單元6,並將封包送出,達成封包交換的目的;如 果無法取得傳送資料,則將封包完整資料(包含表頭與酬載) β送到控制平面做後續處理。 二、 控制平面:收到由資料平面送來的封包後,控制面的傳送 程式(Forwarder)51會根據目前系統的路由表格(Routing Table)找出適當的封包路由,並在加入適當的網路層資料 後,將封包送往資料平面的佇列單元6;同時,若傳送程式 發現該封包並非經由預設路由(Default Route)位置送出的 話,會利用Set-Create操作將傳送資料加入查表單元的傳 送表格52内。另一方面,當控制平面因為路由協定(Routing 22 200527858PoS (packer over SDH / SONET) interface module, communication with asynchronous transfer mode (ATM) interface module, etc.) and reduce the need for connection lines. We cut the relationship between the two 14 and 200527858 into data and Control and other two interfaces. At the same time, the 16 peripheral data interface units are also divided into two groups, each of which is composed of 8 peripheral data interface units, and the parent,, and ′ and the other are correspondingly controlled by a peripheral control interface unit. Peripheral control interface unit k 4. For various interface modules, including module identification code, module reset, module women's clothing, module interruption, module clock selection, and module status start and monitoring, etc. 'The activation of various control signals is determined by the central processing unit and the memory unit. (0) Peripheral data interface unit 2 Refer to Figure 2 #. The peripheral data interface unit is a peripheral data interface unit sequencer 2. The packet header processor 22, the receiving packetizer 23, the packet payload processing state 24, and the transmitting packetizer 25 are described as follows: • Peripheral data interface unit sequencer 21: controls the operation of the entire peripheral data interface unit ' These include: the start and calculation of registers, counters, decoders, buffers, and first-in-first-out, etc., packet material and reception, and communication with other single-fans, which can be programmed in a finite state. The sequence of machine control execution. = Packet header processor 22: The receiving end part, combines the packet header of the packet with the surrounding and shell material: the sample control information planned in advance by the sequencer 21 in the early 70s, and transmits it to the management unit via the system bus. At the transmitting end, the data sent by the official management unit 6 is stored in it, and it is disassembled into the control information for the peripheral interface single sequencer 2 i__ and the header message of the lpy Qing v6 packet, according to the transmission rate Demand, in order to send the heart tearing% packet header data out of 15 200527858. • Receiving packetizer 23: Receive external signals through serial pins, and form a complete IPv4 / IPv6 packet through a serial-to-parallel conversion circuit. After determining that the packet cyclic redundancy (CRC) check code is correct, The packet is then cut into two parts: the IPv4 / IPv6 packet header and the IPv4 / IPv6 packet payload. The IPv4 / IPv6 packet header part is sent to the packet header processor 22 for processing; the IPv4 / IPv6 packet payload part is sent to the packet payload processor 24 for processing. 'Packet payload processor 24: The receiving part expands the received IPv4 / IPv6 packet payload into a 32-bit wide data length, and groups it in groups of 16 via direct access memory (DMA) The mode is transmitted to the buffer management unit 7 through the system bus 8. At the transmitting end, the data transmitted by the buffer management unit 7 through the direct access memory (DMA) mode (same as the receiving end, are all 32-bit wide data length, and are grouped by 16 Send) is stored in it, and the data is sent out in order according to the transmission rate requirements. • Packet sender 25: Receives IPv4 / IPv6 packet header information through the packet header processor 22, and also receives IPv4 / IPv6 packet payload information from the packet payload processor 24. Combine the two into a complete IPv4 / IPv6 packet, and add the generated cyclic redundancy (CRC) check code to the appropriate field of the transmitted packet. The parallel-to-serial conversion circuit uses the serial pins to convert the IPv4 / IPv6 The packet is transmitted. (3) CPU and memory unit 3 200527858 Lane 2 31 Address decoder 32, bus buffer 33, system bus controller 34, read-only memory 35, and random access memory% The structure is summarized as follows: The central processor 3 1 'controls the operation of the entire IPv6 packet exchange processing module, including the start of each single S and the execution of control commands, the start and monitoring of the system register, and the The unit „requires the mutual pure material system flow of the material. • Address decoder 32 Xiao bus buffer 33: The address decoder is the address processor of the central processor; the bus buffer stomach 33 is used as the central processor η Buffer between read-only memory 35 and system bus controller 34. • System bus controller 34: responsible for controlling data exchange with system bus. • read-only memory 35 and random access memory%: The capacity of read-only memory% is 2M bytes, which is a storage control program, and the capacity of random access memory% is 32K bytes, which is used to store temporary planning data. Because most of its dynamic data can be streamed through PCI Order interface one way The central processor and memory unit 3 are acquired, so there is no need for large-capacity data space. (4) PCI bus interface unit⑽The bus interface unit provides the function of the Pα bus interface, which enables: to tear V6 packet exchange processing modules and The central processing modules can be quickly edited, and operate in a 33MHz 32-bit transmission mode. (5) Table lookup unit The table lookup unit provides the addition, update, and modification of IPv4 / IPv6 routing tables. Functions such as table maintenance are performed by the middle processor and memory unit 3. Responsibility · The query of the table is issued by the early data sequencer 21 of the peripheral data interface of the peripheral data interface unit 2 to obtain relevant information The size of the table is 5 bytes, and it uses the content addressable mode to operate. Its data is stored in the longest pre-matching manner, the destination address, the corresponding library to the corresponding output port, and the corresponding output destination address. (Six) queue management unit 6. Please refer to Figure 4, the queue management unit 6 is composed of the queue management unit sequence server 61, queue memory manager 62, Ding α ZZ hidden body 63, The column judgment selector 6t and the queue sender 65 are described as follows: ° The queue management unit sequencer 61: controls the operation of the entire queue management unit 6, including: a register, a counter , Decoders, buffers, and first-in-first-out (™ 0), etc., and calculation and communication with other units, and the sequence of execution is controlled by a programmable finite state machine. Queue memory manager 62: It accepts the instructions from the queue management unit sequencer 6 丨 and ## to determine the selection of H 64 to manage the address allocation, ^ recycling, and check the use of the memory of the queue. • Queue memory 6.3: Provide 512K bits Set of random memory for storage queue. Queue queuing selector 64: determines the priority of queue processing, selects the next queue to be processed, and notifies queue management unit sequencer 6i and queue memory manager 62. 18 200527858 • The receiving and sending state 65: receiving and transmitting the queued data transferred from the central processing unit and the memory unit 3 and the peripheral data interface unit 2 via the system bus 8. (VII) Buffer management unit 7 Please refer to FIG. 5. The buffer management unit 7 is composed of a buffer management unit-sequencer 71, buffer memory manager 72, buffer memory 73, and packet classifier 74. , And the broadcast packet monitor 75, etc., which are described as follows: • Buffer management unit sequencer 71: Controls the operation of the entire peripheral data interface unit 2, including: register, counter, decoder, buffer, and First-in-first-out (FIFO), etc. are initiated and communicated with other units, and the order of execution is controlled by a personalizable finite state machine. • • Dance memory manager 72: accepts instructions from the buffer management unit sequencer B and the packet classifier 74 to manage the address allocation, space reclamation, and check usage of the buffer memory 73. • Buffer Memory 73: Provides 64M bytes of random memory for storing buffers. ° Packet classifier 74: Receives and transmits packet payload data forwarded from the central processing unit and memory unit 3 and the peripheral data interface unit 2 via the system and system bus 8, and informs the buffer management unit sequencer 71 and How the buffer memory manager 72 sorts and stores packets according to their sizes. Broadcast packet monitor 75: Accept the order of the buffer management unit sequencer 71, "Delete whether the sent packet is a broadcast packet. If so, it will continue to monitor the transmission of the packet 19 200527858 until all the packets should be transmitted The buffer will only be emptied when all the ports have been transmitted. (8) System bus 8 System bus 8 provides the central processing unit and memory unit 3 and peripheral data interface unit 2, peripheral control interface unit 1, check Table unit 5, queue management unit 6, buffer management unit 7 and other units of system control and data exchange channels; it also provides an interface to allow the central processing unit and memory unit 3 to directly access the register of other units Please refer to Table 1 for the data structure of the table lookup table of the present invention, as explained later: The present invention must not only be able to process IPv4 and IPv6 packets at the same time, but also not bring too much to the system. Extra burden. In the design of the Forwarding Table of the look-up unit 5, because the address length (128 bits) of the IPv6 packet is much longer than the bit length of the IPv4 packet Length (32 bits), so we designed a two-stage table lookup table. The first stage table is shared by IPv4 and IPv6 uni-casting, and the second stage table is multi-pointed by IPv4. Multicasting is shared with IPv6 unicast. The two-stage lookup table data structure can be expressed by {key value, data} pairing. Among them, the key value length is 96 bits to facilitate the lookup unit. Operation. And these 96 bits can be subdivided into key0 (16 bits), keyl (32 bits) and key2 (32 bits). Because the key value part is .IPv4 / CIDR (class Internet routing) Or IPv6 / prefix (prefix) address value. After excluding IPv6 multicast and embedded 20 200527858 IPv4 (Embedded IPv4 address) address, the above-mentioned method of filling in the key value can perfectly separate IPv4 and IPv6 data. In this way, the purpose of sharing the form can be achieved. Table 1. Data in the table lookup table Name Key Value (Key) Data (Data) rtrTsp If it is IPv4, the key value is filled in key2; If it is IPv6, the input value is filled in key 1 and key2 typedef struct {int8umaskBits; int8u queueld; int8uty pe; int8u iflndex; int32uappDatal; int32u appData2; int8u fabricld; int8upadl; int 16u nextLookupTag;} IpRouteData; ipmcastTsp If it is EPv4 (multicast), the record value is filled in _2; if it is IPv6, the key value is filled in keyO, key 1 and key2 typedef struct {QsQueueVector ftvdVector; int32u vectorCount; inti 6u fabricVector; inti 6u egressVNID; inti 6u nextLookupTag; intl6upadl;} IPMcastFwdCacheEntiyData; Please refer to Figure 6 'When querying the transmission table, whether it is single-point transmission or multiple Point-to-point IPv4 packets can directly find the required routing data; while IPv6 packets will use the first 64 bits of the prefix as the key value for the first-stage query. If the obtained data type block is ipRcmteTypeRemote , You must combine the nextL〇〇kupTag field with the rest of the prefix (prefix) as the key value to perform the second-stage query to obtain 21 200527858 routing data. Regardless of the query method of the transmission form, LPM (Longest-Prefix Match) algorithm is used. In addition to querying, each table needs to provide basic operations such as Get / Get-next, Se1> Create, and Delete (the message action can be regarded as a Get operation). As shown in Figure 7, the processing flow can be divided into a data plane (Control Plane) and a control plane (Control Plane) to explain: 1. Data plane: the received packet data will first separate the packet header and packet payload, the program According to the packet headers of different properties (such as IPv4 unicast, multicast, IPv6 unicast, etc.), the data query of the table lookup unit 5 is started according to the method described in the previous section. If the transmission data can be obtained, the network layer (Network Layer) header data is modified according to the transmission data, and the payload is sent to the queue unit 6, and the packet is sent out to achieve the purpose of packet exchange; if the transmission data cannot be obtained, The complete data of the packet (including the header and payload) β is sent to the control plane for subsequent processing. 2. Control plane: After receiving the packet from the data plane, the forwarder 51 on the control plane will find the appropriate packet route according to the routing table of the current system, and join the appropriate network. After layering the data, the packet is sent to the queue unit 6 of the data plane. At the same time, if the transmission program finds that the packet is not sent through the default route location, it will use the Set-Create operation to add the transmitted data to the lookup unit Transfer form 52. On the other hand, when the control plane is affected by routing protocols (Routing 22 200527858

Pr〇t〇C〇1)或手動操作53的緣故而更動路由表格54的時 候’也會將查表單元内相關的舊的傳送資料加以刪除& 以對應系統的路由表格。 本創作所提供之IPv6封包高速交換處理模組,與其他習用 技術相互比較時,更具備下列優點: 1·可大巾I提高IPv6封包交換速度,提供較佳的網路服務品質。 2·可提供-可程式化、尤其適用於11>¥6網路之多樣化服務需求 之封包交換處理方法。 3.各埠口可根據所使用之不同種類硬體介面模組即時切換軟 體組態提高介面模組調適能力,並降低開發各種介面模組之 複雜度與時效性。 上列詳細說明乃針對本創作之一可行實施例進行具體說 明,惟該實施例並非用以限制本創作之專利範圍,凡未脫離本Pr0c01) or manual operation 53 when the routing table 54 is changed 'will also delete the old transmission data related to the table lookup unit & to correspond to the routing table of the system. Compared with other conventional technologies, the high-speed IPv6 packet processing module provided by this creation has the following advantages: 1. It can increase the speed of IPv6 packet exchange and provide better network service quality. 2. Can provide-Programmable packet exchange processing method, which is especially suitable for 11 > ¥ 6 network's diverse service needs. 3. Each port can switch the software configuration in real time according to the different types of hardware interface modules used to improve the adaptability of interface modules and reduce the complexity and timeliness of developing various interface modules. The above detailed description is a specific description of one of the feasible embodiments of this creation, but this embodiment is not intended to limit the scope of patents for this creation.

創作技藝精神所為之等效實施或變更,均應包含於本案之專利 範圍中。 A • 9 綜上所述,本案不僅於技術思想上確屬創新,並具備習用 方法所不及之上述多項功效,已充分符合新穎性及進步性之法 定創作專利要件,爰依法提出申請,懇請貴局核准本件創作專 利申請案,以勵創作,至感德便。 【圖式簡單說明】 請參閱以下有關本發明之附圖,將可進一步瞭解本發明之 200527858 技術内容及其目的功效;有關該實施例之附圖為: 圖-為IPv6封包高速交換處理機制之方塊圖,· 圖二為該周邊資料介面單元之方塊圖; 圖三為該中央處理器及記憶體單元之方塊圖; 圖四為該佇列管理單元之方塊圖; 圖五為該緩衝器管理單元之方塊圖; 圖六為路由傳送表袼之查詢方式流程圖;Equivalent implementations or changes made by the spirit of creative art should be included in the scope of patents in this case. A • 9 In summary, this case is not only innovative in terms of technical ideas, but also has many of the above-mentioned effects beyond conventional methods. It has fully complied with the statutory creation patent requirements of novelty and progress, and applied in accordance with the law. The Bureau approves this application for a patent for creation, and encourages creation to the greatest extent. [Brief description of the drawings] Please refer to the following drawings of the present invention for further understanding of the 200527858 technical content of the present invention and its purpose and effectiveness. The drawings related to this embodiment are as follows: Figure-is a high-speed IPv6 packet processing mechanism Block diagram, Figure 2 is a block diagram of the peripheral data interface unit; Figure 3 is a block diagram of the CPU and a memory unit; Figure 4 is a block diagram of the queue management unit; Figure 5 is the buffer management Block diagram of the unit; Figure 6 is a flowchart of the query method of the routing table;

圖七為該封包傳送處理的流程圖。 【主要部分代表符號】 1 周邊控制介面單元 2 周邊資料介面單元 21周邊資料介面單元次序器 22 封包表頭處理器 23 接收封包器 24 封包酬載處理器 ·, 25 傳送封包器 " 3 中央處理器及記憶體單元 31 中央處理器 32 位址解碼器 33 匯流排緩衝器 34 系統匯流排控制器 24 200527858 35 唯讀記憶體 36 隨機存取記憶體 4 PCI匯流排介面單元 5 查表單元 6 佇列管理單元 61 佇列管理單元次序器 62 佇列記憶體管理器FIG. 7 is a flowchart of the packet transmission process. [Representative symbols of main parts] 1 Peripheral control interface unit 2 Peripheral data interface unit 21 Peripheral data interface unit sequencer 22 Packet header processor 23 Receiver packetizer 24 Packet payload processor ·, 25 Transmission packetizer " 3 Central processing And memory unit 31 CPU 32 address decoder 33 bus buffer 34 system bus controller 24 200527858 35 read-only memory 36 random access memory 4 PCI bus interface unit 5 look-up table unit 6 伫Queue Management Unit 61 Queue Management Unit Sequencer 62 Queue Memory Manager

63 佇列記憶體 64 佇列判斷選擇器 65 佇列收送器 7 緩衝器管理單元 71 緩衝器管理單元次序器 72 緩衝器記憶體管理器63 Queue Memory 64 Queue Judgment Selector 65 Queue Receiver 7 Buffer Management Unit 71 Buffer Management Unit Sequencer 72 Buffer Memory Manager

73 緩衝器記憶體 74 封包分類器 75 廣播封包監視器 8 系統匯流排 2573 Buffer memory 74 Packet classifier 75 Broadcast packet monitor 8 System bus 25

Claims (1)

200527858 拾、申請專利範圍: 1'·.一種封包高速交換處理機制,藉由_與判斷封包種類盘屬 性以達成線速交換,其包括: 、 一中央處理器及記憶體單元; 至少-周«料介面單元,其包含—周邊_介面單元次序 器、-封包表頭處理器、—接收封包器、—封包酬載處理器 及一傳送封包器;200527858 Scope of patent application: 1 '.. A high-speed packet exchange processing mechanism that uses _ and judging packet attributes to achieve wire-speed exchange, including:, a central processing unit and a memory unit; at least-week « A data interface unit, which includes a peripheral_interface unit sequencer, a packet header processor, a receiving packet device, a packet payload processor, and a transmitting packet device; 係以最長前置元相符 ’每一周邊控制介面單元可控制一 至少一周邊控制介面單元 或複數個周邊資料介面單元; 一查表單元,其内容採定址模式運作 方式存放資料; —系統匯流排,可供中央處理器及記憶體單元直接存取盆他 單元的暫存器,作為各相異單元間的資料交換通道,/、 該周邊資料介面單元接收封包並分類處理後,向該查表 單7L查詢路由相關資訊,經由系統匯流排轉送至—仵列管理· 單元而將該封包送出至目的端。 2·如申請專利範圍第!項所述之一種封包高速交換處理機制, .〆、中該中央處理器及記憶體單元係由一中央處理器、一位址 解碼器、匯流排緩衝器、系統匯流排控制器、唯讀記憶體及 隨機存取記憶體所構成。 如申請專利_第丨韻述之—種封包高速交換處理機制, 26 200527858 其中該周邊控制介面 碼。 單元所提供之控制信號可為模組識別 ·.,如申請專利範圍第1項所述之-種封包高速錢處理機制, 其中該周邊㈣介面單摘提供之㈣信號可城組重置。 5·如申請專利範圍第丨項所述之—種封包高速交換處理機制, 其中該周邊控制介面單元所提供之控制信號可為模組安裝。 6.如申料利1 請第1销述之—種封包高速交換處理機制, 其中該周邊控制介面單元所提供之控制信號可為模組中斷。φ 7·如申請專利_第i韻述之_種封包高速交換處理機制, 其中該周邊控制介面單元所提供之控制信號可為模組時鐘 選擇。 •如申請專利_第1韻述之—種封包高速交換處理機制, 其中該周邊控制介面單元所提供之控制信號可為模組狀態 啟始與監控。 9·如申請專利範圍第1所述之—種封包高速交換處理機制,參 其中該查表單元存放之資料可為目的位址。 申明專利fen第1韻述之_種封包高速交換處理機制, 其中該查表單元存放之資料可為相對應輸出淳口。 ^如申4專利範圍第丨項所述之—種封包高^交換處理機制, 其中該查表單元存放之資料可為相對應輸出目的位址。 申π專利feu第1項所述之_種封包高速交換處理機制, 27 200527858 °進y增加1衝器處理單元,係由—緩衝器管理單元 次序器、—緩衝器記憶體管理器、-緩衝器記憶體、-封包 分類器及-廣播封包監視器所構成。 4如申請專利範圍第1項所述之—種封包高速交換處理機制, 其中該仵料理單_由制管理單元次序H、仵列記憶體 管理器、件列記憶體、仔列判斷選擇器及仵列收送器所構成。 14. 如申請專利範圍第1韻述之—種封包高速交換處理機制, ^中該周邊資料介面單元可與1Q/⑽乙太網路介面模組做 資料信號的傳送與接收。 15. 如申請專利範圍第1項所述之-種封包高速交換處理機制’ 其中該周邊資料介面單元可與1G乙太網路介面模組做資料 信號的傳送與接收。 16. 如申請專韻㈣1韻述之—種封包高速交換處理機制, 其中該周邊資料介面單元可與非同步傳送模式介面模組做 資料信號的傳送與接收。 申"月專利㈣第1項所述之—種封包高速交換處理機制, 其中該周邊資料介面單元可與pos介面模組做資料信號的 傳送與接收。 封包高速交換處理機制, ♦ 使中央處理器及記憶體單 •如申請專利範圍第1項所述之一種 .其可利用一 PCI匯流排介面單元, 元與其他單元間快速傳送資料。 28 18Based on the longest leading element, each peripheral control interface unit can control at least one peripheral control interface unit or a plurality of peripheral data interface units; a table lookup unit whose content adopts the addressing mode to store data;-system bus , Which can be used by the central processing unit and the memory unit to directly access the temporary register of other units as a data exchange channel between different units. // After the peripheral data interface unit receives the packet and classifies it, it sends it to the inquiry form. 7L queries routing related information and forwards it to the queue management unit through the system bus and sends the packet to the destination. 2 · If the scope of patent application is the first! A high-speed packet exchange processing mechanism described in the above item. The CPU and the memory unit are composed of a CPU, a bit decoder, a bus buffer, a system bus controller, and a read-only memory. And random access memory. Such as applying for a patent_ # 丨 rhyme description—a kind of high-speed packet exchange processing mechanism, 26 200527858, where the peripheral control interface code. The control signal provided by the unit can be identified by the module. As described in item 1 of the scope of patent application-a kind of packet high-speed money processing mechanism, the signal provided by the peripheral interface interface can be reset by the city group. 5. As described in item 丨 of the patent application scope-a high-speed packet exchange processing mechanism, in which the control signals provided by the peripheral control interface unit can be installed by the module. 6. If you apply for profit 1, please refer to the first description-a kind of high-speed packet exchange processing mechanism, in which the control signal provided by the peripheral control interface unit can be interrupted by the module. φ 7 · If you apply for a patent _th rhyme of _ a kind of high-speed packet exchange processing mechanism, the control signal provided by the peripheral control interface unit can be selected for the module clock. • If you apply for a patent_ 1st rhyme—a high-speed packet exchange processing mechanism, where the control signals provided by the peripheral control interface unit can be the start and monitoring of the module status. 9. As described in the first patent application scope-a kind of high-speed packet exchange processing mechanism, the data stored in the table lookup unit can be the destination address. Affirm the patent fen # 1 rhyme of _ a kind of packet high-speed exchange processing mechanism, in which the data stored in the table lookup unit can be the corresponding output Chunkou. ^ As described in item 4 of the patent scope of claim 4-a packet height exchange processing mechanism, wherein the data stored in the table lookup unit can be the corresponding output destination address. Application of the high-speed packet processing mechanism described in item 1 of patent peu, 27 200527858 ° Increase 1 punch processing unit, which consists of-buffer management unit sequencer,-buffer memory manager,-buffer Memory, a packet classifier, and a broadcast packet monitor. 4 As described in item 1 of the scope of the patent application—a high-speed packet exchange processing mechanism, in which the cooking menu _ is managed by the order unit H, the queue memory manager, the queue memory, the queue judgment selector, and It consists of a queue receiver. 14. As described in the first rhyme of the scope of patent application-a high-speed packet exchange processing mechanism, the peripheral data interface unit can transmit and receive data signals with the 1Q / Ethernet interface module. 15. As described in item 1 of the scope of patent application-a kind of high-speed packet exchange processing mechanism ', wherein the peripheral data interface unit can transmit and receive data signals with the 1G Ethernet interface module. 16. If you apply for the special rhyme ㈣1 rhyme—a kind of high-speed packet exchange processing mechanism, in which the peripheral data interface unit can transmit and receive data signals with the asynchronous transmission mode interface module. As described in the "Monthly Patent" item 1-a high-speed packet exchange processing mechanism, in which the peripheral data interface unit can transmit and receive data signals with the pos interface module. The high-speed packet exchange processing mechanism ♦ enables the central processing unit and the memory unit as described in item 1 of the patent application scope. It can use a PCI bus interface unit to quickly transfer data between the unit and other units. 28 18
TW93102450A 2004-02-04 2004-02-04 High-speed processing mechanism of packet-switching TWI271066B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW93102450A TWI271066B (en) 2004-02-04 2004-02-04 High-speed processing mechanism of packet-switching

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW93102450A TWI271066B (en) 2004-02-04 2004-02-04 High-speed processing mechanism of packet-switching

Publications (2)

Publication Number Publication Date
TW200527858A true TW200527858A (en) 2005-08-16
TWI271066B TWI271066B (en) 2007-01-11

Family

ID=38430352

Family Applications (1)

Application Number Title Priority Date Filing Date
TW93102450A TWI271066B (en) 2004-02-04 2004-02-04 High-speed processing mechanism of packet-switching

Country Status (1)

Country Link
TW (1) TWI271066B (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI644535B (en) * 2017-05-23 2018-12-11 中華電信股份有限公司 IP address protocol version control system and method thereof for network quality testing

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI644535B (en) * 2017-05-23 2018-12-11 中華電信股份有限公司 IP address protocol version control system and method thereof for network quality testing

Also Published As

Publication number Publication date
TWI271066B (en) 2007-01-11

Similar Documents

Publication Publication Date Title
US8401027B2 (en) Method for traffic management, traffic prioritization, access control, and packet forwarding in a datagram computer network
US7190695B2 (en) Flexible application of mapping algorithms within a packet distributor
US7385982B2 (en) Systems and methods for providing quality of service (QoS) in an environment that does not normally support QoS features
JP3789395B2 (en) Packet processing device
EP1417586B1 (en) Dense virtual router packet switching
EP2356775B1 (en) Central controller for coordinating multicast message transmissions in distributed virtual network switch environment
US6741562B1 (en) Apparatus and methods for managing packets in a broadband data stream
KR100358153B1 (en) QoS supported IP packet forwarding dispersion processing apparatus and method
US6392996B1 (en) Method and apparatus for frame peeking
JP2002541732A (en) Automatic service adjustment detection method for bulk data transfer
JP2004524781A (en) Efficient processing of multicast transmission
US20030081605A1 (en) Method and apparatus to manage packet fragmentation with address translation
JPH10136016A (en) Packet transfer control method and node device
CN100563215C (en) A message routing switching device and method thereof
JP2003519944A (en) Method and system for frame and protocol classification
WO2021164245A1 (en) Load sharing method and first network device
TW200527858A (en) High-speed processing mechanism of packet-switching
US12231342B1 (en) Queue pacing in a network device
CN100428738C (en) Non-connecting packet switching communication system
JP2003524934A (en) Automatic detection switch system and method for multimedia applications
CN107135166A (en) A kind of flow management system and method
US7009973B2 (en) Switch using a segmented ring
CN114760358A (en) Application layer adaptive data forwarding system for distinguishing real-time and non-real-time data streams
CN101540713B (en) Method and device for establishing point-to-multipoint channel
US20250286835A1 (en) Combining queues in a network device to enable high throughput

Legal Events

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