TW200527858A - High-speed processing mechanism of packet-switching - Google Patents
High-speed processing mechanism of packet-switching Download PDFInfo
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 59
- 230000007246 mechanism Effects 0.000 title claims abstract description 28
- 230000005540 biological transmission Effects 0.000 claims abstract description 16
- 230000002093 peripheral effect Effects 0.000 claims description 38
- 239000000872 buffer Substances 0.000 claims description 35
- 238000012546 transfer Methods 0.000 claims description 4
- 238000012544 monitoring process Methods 0.000 claims description 3
- 238000010411 cooking Methods 0.000 claims 1
- 238000007726 management method Methods 0.000 description 28
- 238000000034 method Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000005266 casting Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- RGNPBRKPHBKNKX-UHFFFAOYSA-N hexaflumuron Chemical compound C1=C(Cl)C(OC(F)(F)C(F)F)=C(Cl)C=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F RGNPBRKPHBKNKX-UHFFFAOYSA-N 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000011257 shell material Substances 0.000 description 1
- 210000002784 stomach Anatomy 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
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)
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)
| 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 |
-
2004
- 2004-02-04 TW TW93102450A patent/TWI271066B/en not_active IP Right Cessation
Cited By (1)
| 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 |