JP2000083055A - Router - Google Patents
RouterInfo
- Publication number
- JP2000083055A JP2000083055A JP25071198A JP25071198A JP2000083055A JP 2000083055 A JP2000083055 A JP 2000083055A JP 25071198 A JP25071198 A JP 25071198A JP 25071198 A JP25071198 A JP 25071198A JP 2000083055 A JP2000083055 A JP 2000083055A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- filtering
- packet
- routing
- packets
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
Landscapes
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Abstract
Description
【0001】[0001]
【発明の属する技術分野】本発明は、マルチメディア通
信を実行するネットワークにおいて、伝送速度や使用帯
域幅等のサービスの品質(以下、QoS(Quality of Servic
e)と略す)を保証し、かつ、高速なルーティング処理
を行うルータに関する。特に、QoS保証を行うためにパ
ケットを分類する機能(以下この機能をパケット・フィ
ルタリングと呼ぶ)を有するルータに関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a quality of service (hereinafter referred to as QoS (Quality of Service) such as a transmission speed and a used bandwidth in a network for executing multimedia communication.
e) which is abbreviated and performs high-speed routing processing. In particular, the present invention relates to a router having a function of classifying packets for performing QoS guarantee (hereinafter, this function is referred to as packet filtering).
【0002】[0002]
【従来の技術】マルチメディア・データの通信を行うネ
ットワークでは、伝送速度や使用帯域幅等のQoS保証が
求められる。QoS保証機能を有するネットワークにおい
ては、各ノードは、パケットの種類毎に伝送速度や使用
可能な帯域幅等のQoSパラメータを設定し、このQoSパラ
メータを満足するように送信処理、ルーティング処理、
受信処理を行う。ルーティング処理においては、パケッ
トをパケットの種類によって、割り当て帯域幅や送信ス
ケジューリングの優先順位に関係づけられるクラスに分
類するパケット・フィルタリングと呼ばれる処理が必要
である。パケットのクラスは、IP(Internet Protocol)
ヘッダの中のTOS(Type Of Service)フィールドの値や宛
先アドレス、送り元アドレス等によって定義される(以
下、IP(Internet Protocol)ヘッダの中のTOS(Type Of S
ervice)フィールドの値や宛先アドレス、送り元アドレ
ス等、クラス分けに必要なデータを検索キーと呼ぶ)。
マルチメディア通信におけるルータは、パケット・フィ
ルタリング機能を有し、 かつ、高速なルーティング処
理を行うことが重要である。2. Description of the Related Art In a network for communicating multimedia data, it is required to guarantee QoS such as a transmission speed and a used bandwidth. In a network having a QoS guarantee function, each node sets QoS parameters such as a transmission rate and an available bandwidth for each type of packet, and performs transmission processing, routing processing, and so on so as to satisfy the QoS parameters.
Perform reception processing. In the routing process, a process called packet filtering for classifying a packet into a class related to an allocated bandwidth and a priority of transmission scheduling according to a type of the packet is required. The class of the packet is IP (Internet Protocol)
It is defined by the value of the TOS (Type Of Service) field in the header, the destination address, the source address, etc. (hereinafter, the TOS (Type Of Service) in the IP (Internet Protocol) header
(Evice) field values, destination addresses, source addresses, and other data required for classification are called search keys).
It is important that routers in multimedia communications have a packet filtering function and perform high-speed routing.
【0003】パケット・フィルタリング機能を有し、高
速なルーティング処理を実現することを目的としている
ルータとして、(V.P.Kumar, T.V. Lakshman, and D. St
iliadis, ``Beyond Best Effort: Router Architecture
s for the Diffrentiated Services of Tommoriw's Int
ernet,'' IEEE/ACM Trans. on Networking, May, 199
8)がある。図1にこのルータ(100)の主要なハードウェ
ア構成を示す。このルータ(100)は、主に入出力プロセ
ッサ(102)、ルーティングテーブル検索プロセッサ(10
3)、パケット・フィルタ・プロセッサ(104)、送信スケ
ジューリング・プロセッサ(105)、スケジューリング待
ちキュー群(106)、送信待ちキュー群(107)から成る。As a router having a packet filtering function and aiming at realizing high-speed routing processing, (VP Kumar, TV Lakshman, and D. St.
iliadis, `` Beyond Best Effort: Router Architecture
s for the Diffrentiated Services of Tommoriw's Int
ernet, '' IEEE / ACM Trans. on Networking, May, 199
8). FIG. 1 shows a main hardware configuration of the router (100). This router (100) mainly includes an input / output processor (102), a routing table search processor (10
3), a packet filter processor (104), a transmission scheduling processor (105), a scheduling queue group (106), and a transmission queue group (107).
【0004】1)入出力プロセッサ(102) 外部ネットワークより到着したパケットをインタフェー
スカード(101)を介してルータ(100)内へ入力する処理
と、送信待ちキュー(107)にキューイングされているパ
ケットを外部ネットワークへ送り出す処理を実行する。1) Input / output processor (102) Processing for inputting a packet arriving from an external network into router (100) via interface card (101), and packet queued in transmission wait queue (107) To send to the external network.
【0005】2)ルーティングテーブル検索プロセッサ
(103) 入出力プロセッサによって入力されたパケットに対し
て、ルーティングテーブルを検索することにより、転送
経路を決定する。ルーティングテーブルとは、ルーティ
ングプロトコルによって生成されるデータベースのこと
であり、このテーブルを検索することにより、次に転送
するホスト・アドレスを得ることができる。2) Routing table search processor
(103) The transfer path is determined by searching the routing table for the packet input by the input / output processor. The routing table is a database generated by a routing protocol. By searching this table, a host address to be transferred next can be obtained.
【0006】3)パケット・フィルタ・プロセッサ(10
4) 検索キーにより、パケットを、割り当て帯域幅や送信ス
ケジューリングの優先順位に関係づけられるクラスに分
類する。クラスに分類する方法としては、ハッシュ法や
2分木によってあらかじめ用意されているテーブルを探
索する方法が考えられている。クラス分けされたパケッ
トは、スケジューリング待ちキュー群(106)にエンキュ
ーされる。スケジューリング待ちキュー群(106)は出力
側インタフェース毎に存在する。また、各スケジューリ
ング待ちキュー群は、クラス毎に別々のキューが用意さ
れている。3) Packet filter processor (10)
4) Using the search key, classify the packets into classes that are related to the allocated bandwidth and transmission scheduling priority. As a method of classifying into classes, a method of searching a table prepared in advance by a hash method or a binary tree is considered. The classified packets are enqueued in the scheduling queue group (106). A scheduling queue group (106) exists for each output-side interface. In each scheduling waiting queue group, a separate queue is prepared for each class.
【0007】4)送信スケジューリング・プロセッサ(1
05) スケジューリング待ちキュー群(106)にエンキューされ
ているパケットに対して、外部ネットワークへ送り出す
順序を決定する。スケジューリング待ちキュー群の各キ
ューにエンキューされているパケットは、パケット・フ
ィルタ・プロセッサ(105)によって、キュー毎に送信ス
ケジューリングの優先順位がつけられており、本プロセ
ッサ(105)は、各キューの優先順位とキューの長さ(キ
ューに残っているパケット長の合計値)をもとに、QoS
保証を満足するように送信順序を決定する。スケジュー
リングされたパケットは、スケジューリング待ちキュー
からデキューされ、本プロセッサ(105)によって決定し
た送信順序に従って、送信待ちキュー(107)にエンキュ
ーされる。送信待ちキュー(107)は、出力側のインタフ
ェースカード(108)毎に用意されている。出力側インタ
フェースカードの選択は、ルーティングテーブル検索プ
ロセッサが決定する。4) Transmission scheduling processor (1)
05) The order in which packets enqueued in the scheduling queue group (106) are sent to the external network is determined. Packets enqueued in each queue of the queue waiting for scheduling are assigned a transmission scheduling priority for each queue by a packet filter processor (105), and the processor (105) assigns a priority to each queue. QoS based on rank and queue length (total length of packets remaining in queue)
The transmission order is determined so as to satisfy the guarantee. The scheduled packet is dequeued from the scheduling queue and enqueued in the transmission queue (107) according to the transmission order determined by the processor (105). The transmission queue (107) is prepared for each output-side interface card (108). The selection of the output side interface card is determined by the routing table search processor.
【0008】このように、本ルータ(100)は、パケット
・フィルタリングを専用プロセッサで実行する。ルーテ
ィング処理を機能毎に分割し、各処理を別々の専用プロ
セッサ(各処理の処理性能が最大になるように最適設計
されたプロセッサ)で実行することにより、高速なルー
ティング処理を実現する。As described above, the router (100) executes the packet filtering by the dedicated processor. The routing processing is divided for each function, and each processing is executed by a separate dedicated processor (a processor optimally designed to maximize the processing performance of each processing), thereby realizing high-speed routing processing.
【0009】[0009]
【発明が解決しようとする課題】送信ホスト数や受信ホ
スト数が多い場合や、パケットのデータの種類が多い場
合、パケット・フィルタリングで分類するクラス数が増
大する。この場合に、1プロセッサでパケット・フィル
タリングを実行すると遅延時間が増大する。具体的に
は、ハッシュ法は一般にO(1)の計算量ですむことが知ら
れているが、クラスの数が増大するとハッシュ衝突回数
が増加し、最悪の場合では線形探索の計算量O(N)(N:
クラス数)と等しくなる。2分木による探索法では、最
悪log2Nの計算が必要となり、パケット・フィルタリン
グに要する実行時間が増大して、ルーティング処理全体
の遅延時間が増大する。When the number of sending hosts and the number of receiving hosts are large, and when the type of packet data is large, the number of classes classified by packet filtering increases. In this case, if the packet filtering is performed by one processor, the delay time increases. Specifically, it is known that the hash method generally requires only the computational amount of O (1), but as the number of classes increases, the number of hash collisions increases, and in the worst case, the computational amount of linear search O ( N) (N:
Class number). In the search method using the binary tree, the worst case calculation of log2N is required, the execution time required for packet filtering is increased, and the delay time of the entire routing process is increased.
【0010】また、送信ホスト、受信ホストが多く存在
する場合、ルーティング・テーブルのサイズが増大し、
ルーティング・テーブルを検索する時間が増大する。こ
の結果、ルーティング処理全体の遅延時間が増大する。If there are many sending hosts and receiving hosts, the size of the routing table increases,
The time to search the routing table increases. As a result, the delay time of the entire routing process increases.
【0011】本発明の目的は、パケットのクラス数が多
い場合でも高速にパケット・フィルタリングを実行する
ルータを提供することにある。An object of the present invention is to provide a router which executes packet filtering at high speed even when the number of classes of packets is large.
【0012】本発明の他の目的は、送信ホスト、受信ホ
ストが多数存在するネットワークにおいても、高速にル
ーティングテーブル検索処理を実行するルータを提供す
ることにある。Another object of the present invention is to provide a router that executes a routing table search process at high speed even in a network having a large number of sending hosts and receiving hosts.
【0013】[0013]
【課題を解決するための手段】本発明では、パケットの
ルーティング処理において、パケットのクラス数が増大
した場合、および、送信ホスト、受信ホスト数が増大し
た場合に、特に処理コストの高いパケット・フィルタリ
ング処理、ルーティングテーブル検索処理をマルチプロ
セッサで実現するルータを提供する。具体的には、以下
の手段を提供する。SUMMARY OF THE INVENTION According to the present invention, in a packet routing process, when the number of classes of a packet increases, and when the number of transmitting hosts and receiving hosts increases, packet filtering particularly high in processing cost is performed. Provide a router that realizes processing and routing table search processing with a multiprocessor. Specifically, the following means are provided.
【0014】1)パケット・フィルタリングの高速化を
目的として、メモリを共有する複数のプロセッサ(以
下、パケット・フィルタ・プロセッサ呼ぶ)と、前記メ
モリ上に設けたフィルタリングを実行するときに参照す
る複数の検索テーブルと、パケット・フィルタリングで
分類される各クラスに対応する複数のキューから構成
し、初段から終段に向かってツリー状または直列に配置
したパケット・フィルタ・プロセッサ群によって、多段
に渡るパケットの分類をパイプライン処理する手段を備
えたルータ。1) For the purpose of speeding up packet filtering, a plurality of processors sharing a memory (hereinafter, referred to as a packet filter processor) and a plurality of processors provided on the memory and referred to when executing the filtering. It consists of a search table and a plurality of queues corresponding to each class classified by packet filtering, and a packet filter processor group arranged in a tree shape or serially from the first stage to the last stage to filter packets over multiple stages. Router with means to pipeline classification.
【0015】2)ルーティングテーブル検索処理の高速
化を目的として、メモリを共有する複数のプロセッサ
(以下、ルーティングテーブル検索プロセッサと呼ぶ)
と、前記メモリ上に設けたルーティングテーブルと、前
記メモリ上に設けた、各ルーティング検索プロセッサが
処理する受信キューの割り当て情報を格納するテーブル
と、各ルーティングテーブル検索プロセッサが個々に所
有するルーティングテーブルの内容をキャッシングする
キャッシュから構成され、複数のルーティングテーブル
検索プロセッサが、それぞれ、割り当てられたクラスの
パケットのルーティングテーブル検索処理を実行し、ル
ーティングテーブル検索処理を並列に実行する手段を備
えたルータ。2) A plurality of processors sharing a memory (hereinafter, referred to as a routing table search processor) for the purpose of speeding up a routing table search process.
A routing table provided on the memory, a table provided on the memory for storing allocation information of reception queues processed by each routing search processor, and a routing table individually owned by each routing table search processor. A router comprising a cache for caching contents, a plurality of routing table search processors respectively executing a routing table search process for packets of an assigned class, and a means for executing the routing table search process in parallel.
【0016】3)各パケット・フィルタ・プロセッサの
負荷分散を目的として、前記パケット・フィルタ・プロ
セッサ群とメモリを共有するコントローラと、前記メモ
リ上に設けたフィルタリングを実行するときに参照する
複数の検索テーブルと、同様に前記メモリ上に備えた各
パケット・フィルタ・プロセッサが一定時間内に処理す
るパケット数(以下、流量と呼ぶ)を格納する監視テー
ブルとから構成され、各パケット・フィルタ・プロセッ
サが参照する検索テーブルをパケットの流量に従って動
的に切り替える手段を備えたルータ。3) A controller sharing a memory with the group of packet filter processors for the purpose of distributing the load of each packet filter processor, and a plurality of searches referred to when executing filtering provided on the memory. And a monitoring table for storing the number of packets (hereinafter, referred to as a flow rate) processed by each packet filter processor within a predetermined time similarly provided on the memory. A router having means for dynamically switching a lookup table to be referred to according to a packet flow rate.
【0017】4)各ルーティング検索処理プロセッサの
負荷分散を目的として、前記ルーティングテーブル検索
プロセッサとメモリを共有するコントローラと、前記メ
モリ上に設けた各ルーティング検索処理プロセッサが処
理する受信キューの割り当て情報を格納するテーブル
と、パケット・フィルタリングで分類されたパケットが
エンキューされている各キューのキュー長(キューに残
っているパケット長の合計値)を格納する監視テーブル
とから構成され、各ルーティングテーブル検索プロセッ
サが処理する受信キューの割り当てをキュー長に従って
動的に切り替える手段を備えたルータ。4) For the purpose of distributing the load of each routing search processor, the controller sharing the memory with the routing table search processor and the assignment information of the reception queue processed by each routing search processor provided on the memory are stored. Each routing table search processor is composed of a table for storing, and a monitoring table for storing the queue length of each queue in which the packets classified by the packet filtering are enqueued (the total value of the packet length remaining in the queue). A router comprising means for dynamically switching the assignment of a reception queue to be processed by the server according to the queue length.
【0018】[0018]
【発明の実施の形態】本発明の実施の形態を以下詳細に
説明する。Embodiments of the present invention will be described in detail below.
【0019】本発明におけるルータの主要なハードウェ
ア構成を図2に示す。図2に示すように、本発明におけ
ルータ(200)は、入出力プロセッサ(102)と、マルチプロ
セッサで構成されるパケット・フィルタ・プロセッサ群
(201)、コントローラ(202)、マルチプロセッサで構成
されるルーティングテーブル検索プロセッサ(203)、送
信スケジューリング・プロセッサ(105)、受信キュー(20
4)、スケジューリング待ちキュー群(106)、送信待ちキ
ュー群(107)から成る。また、本ルータ(200)は、入力側
のインタフェースカード(101)を介してパケットが到着
し、ルーティング処理が行われたパケットは、複数の出
力側インタフェースカード(108)を介して送信される。FIG. 2 shows the main hardware configuration of the router according to the present invention. As shown in FIG. 2, the router (200) in the present invention comprises an input / output processor (102), a packet filter processor group (201) composed of multiprocessors, a controller (202), and a multiprocessor. Routing table search processor (203), transmission scheduling processor (105), reception queue (20
4) It consists of a scheduling queue group (106) and a transmission queue group (107). In the present router (200), a packet arrives via the interface card (101) on the input side, and the packet subjected to the routing process is transmitted via the plurality of output side interface cards (108).
【0020】入力側のインタフェースカード(101)、入
出力プロセッサ(102)、送信スケジューリング・プロセ
ッサ(105)、スケジューリング待ちキュー群(106)、送信
待ちキュー(107)、出力側のインタフェースカード(106)
は、図1と同様である。Input side interface card (101), input / output processor (102), transmission scheduling processor (105), scheduling queue group (106), transmission queue (107), output interface card (106)
Is similar to FIG.
【0021】パケット・フィルタ・プロセッサ群(201)
は、入出力プロセッサ(102)によってルータ(200)内に入
力されたパケットに対して、パケット・フィルタリング
を実行し該当するクラスの受信キュー(204)にエンキュ
ーする。パケット・フィルタ・プロセッサ群(201)は、
プロセッサを初段から終段に向かってツリー上に配置
し、多段に渡るパケット・フィルタリングをパイプライ
ン並列処理する。Packet filter processor group (201)
Performs packet filtering on a packet input into the router (200) by the input / output processor (102), and enqueues the packet into a reception queue (204) of a corresponding class. The packet filter processor group (201)
Processors are arranged in a tree from the first stage to the last stage, and multi-stage packet filtering is processed in a pipeline parallel manner.
【0022】ルーティングテーブル検索プロセッサ群(2
03)は、受信キュー(204)にエンキューされているパケッ
トに対して、ルーティング処理を実行し、パケットが出
力される出力側インタフェースカード(108)とパケット
のクラスに対応するスケジューリング待ちキュー(106)
にエンキューする。コントローラ(202)は、パケット・
フィルタ・プロセッサ群(201)を構成する各プロセッサ
の負荷分散を制御する手段と、ルーティングテーブル検
索プロセッサ群(203)を構成する各プロセッサの負荷分
散を制御する手段を有する。The routing table search processor group (2
03) performs a routing process on the packets enqueued in the reception queue (204), the output side interface card (108) to which the packet is output, and the scheduling waiting queue (106) corresponding to the class of the packet.
Enqueue to The controller (202)
It has means for controlling the load distribution of each processor constituting the filter processor group (201) and means for controlling the load distribution of each processor constituting the routing table search processor group (203).
【0023】図3に、本発明の実施形態におけるパケッ
ト・フィルタ・プロセッサ群(201)、コントローラ(20
2)、ルーティングテーブル検索プロセッサ群(203)、お
よびこれらのプロセッサ群の動作に必要なメモリの構成
を示す。FIG. 3 shows a packet filter processor group (201) and a controller (20) according to the embodiment of the present invention.
2), a routing table search processor group (203), and a configuration of a memory required for the operation of the processor group are shown.
【0024】本実施形態におけるパケット・フィルタ・
プロセッサ群(201)は、3ステージで構成される。パケ
ット・フィルタ・プロセッサ群は(201)は、第1ステー
ジであるパケット・フィルタ・プロセッサ1(301)、第2
ステージであるパケット・フィルタ・プロセッサ2(302)
およびパケット・フィルタ・プロセッサ3(303)、第3ス
テージであるパケット・フィルタ・プロセッサ4〜7(304
〜307)の合計7個のプロセッサから成る。本実施形態で
は、ステージ数が増える毎にパケット・フィルタ・プロ
セッサの数が2倍になっているが、それ以上増えても
(3倍、4倍になっても)問題はない。また、パケット
・フィルタ・プロセッサがツリー状に配置されるのでは
なく、直列に接続されていてもよい。The packet filter in this embodiment
The processor group (201) includes three stages. The packet filter processor group (201) includes a packet filter processor 1 (301), which is the first stage, and a second stage.
Stage: Packet Filter Processor 2 (302)
And the packet filter processor 3 (303), the third stage of the packet filter processors 4 to 7 (304)
To 307) in total of seven processors. In the present embodiment, the number of packet filter processors doubles each time the number of stages increases, but there is no problem if the number increases further (three times or four times). Further, the packet filter processors may be connected in series instead of being arranged in a tree shape.
【0025】各パケット・フィルタ・プロセッサは、フ
ィルタリング処理割り当てテーブル(310)を参照するこ
とにより、フィルタリングに必要な検索キーと検索すべ
きフィルタリング・テーブル(309)を決定する。フィル
タリング・テーブル(309)は、複数のテーブルからな
り、フィルタリング処理を行う検索キー毎に1個のテー
ブルが存在する。指定された検索キーとフィルタリング
・テーブル(309)の内容によって、パケットが送られる
次段のパケット・フィルタリング・テーブル(309)が決
定する。パケット・フィルタ・プロセッサが最終段であ
る場合は、パケット・フィルタリングによって決定した
クラスに対応する受信キュー(204)にエンキューされ
る。フィルタリング処理割り当てテーブル(310)は、コ
ントローラ(202)によって動的に変更する。Each packet filter processor determines a search key necessary for filtering and a filtering table (309) to be searched by referring to the filtering process assignment table (310). The filtering table (309) is composed of a plurality of tables, and one table exists for each search key for performing the filtering process. The next packet filtering table (309) to which the packet is sent is determined based on the specified search key and the contents of the filtering table (309). If the packet filter processor is the last stage, it is enqueued in the reception queue (204) corresponding to the class determined by the packet filtering. The filtering process assignment table (310) is dynamically changed by the controller (202).
【0026】本実施形態における各ルーティングテーブ
ル検索プロセッサ群(203)は、8個のプロセッサから成
る。各ルーティングテーブル検索プロセッサ(308)は、
ルーティング処理割り当てテーブル(315)を参照するこ
とによって、ルーティング処理を行うパケットのクラス
が指定される。各ルーティングテーブル検索プロセッサ
(308)は、指定されたクラスに該当する受信キュー(313)
にあるパケットをデキューし、ルーティング処理を実行
する。ルーティング処理は、ルーティング・テーブル(3
14)、または、ルーティングテーブルキャッシュ(316)を
検索することにより、パケットの経路が決定される。ル
ーティングテーブルキャッシュ(316)は、各ルーティン
グテーブル検索プロセッサ毎に別々に所有しているキャ
ッシュであり、ルーティングテーブルの内容がキャッシ
ングされている。Each routing table search processor group (203) in the present embodiment comprises eight processors. Each routing table lookup processor (308)
By referring to the routing process assignment table (315), the class of the packet to be routed is specified. Each routing table lookup processor
(308) is the receive queue corresponding to the specified class (313)
Dequeues the packet in and performs the routing process. The routing process is based on the routing table (3
14) Alternatively, the route of the packet is determined by searching the routing table cache (316). The routing table cache (316) is a cache that is separately owned for each routing table search processor, and caches the contents of the routing table.
【0027】本実施形態におけるコントローラ(202)
は、各パケット・フィルタ・プロセッサ(301〜307)が送
受信するパケット量を定期的に監視し、監視結果を流量
監視テーブル(311)に格納する。コントローラ(202)は、
監視結果に基づいて、フィルタリング処理割り当てテー
ブル(310)を変更し、各パケット・フィルタ・プロセッ
サ(301〜307)が参照すべきフィルタリングテーブル(30
9)を決定する。また、受信キュー(313)にキューイング
されているパケット数を定期的に監視し、監視結果を受
信キュー監視テーブル(312)に格納する。コントローラ
(202)は、監視結果に基づいて、ルーティング処理割り
当てテーブル(315)を変更し、各ルーティングテーブル
検索プロセッサが処理する受信キューを決定する。The controller (202) in the present embodiment
Periodically monitors the amount of packets transmitted and received by each of the packet filter processors (301 to 307), and stores the monitoring result in the flow rate monitoring table (311). The controller (202)
The filtering process assignment table (310) is changed based on the monitoring result, and the filtering table (30) to be referred to by each of the packet filter processors (301 to 307).
9) is determined. Also, the number of packets queued in the reception queue (313) is periodically monitored, and the monitoring result is stored in the reception queue monitoring table (312). controller
(202) changes the routing process assignment table (315) based on the monitoring result, and determines a reception queue to be processed by each routing table search processor.
【0028】以下に 1)パケット・フィルタ・プロセッサ群(201) 2)ルーティングテーブル検索プロセッサ(203) 3)コントローラ(202) の動作をフローチャートを用いて説明する。The operation of 1) packet filter processor group (201) 2) routing table search processor (203) 3) operation of controller (202) will be described below with reference to flowcharts.
【0029】まず、パケット・フィルタ・プロセッサ群
(201)の動作を図4から図6を用いて説明する。パケッ
ト・フィルタ・プロセッサ群(201)は、パケットをクラ
スに分類する。各パケット・フィルタ・プロセッサ(301
〜307)は、パケットフィルタリングを実行するために、
フィルタリング処理割り当てテーブル(310)とフィルタ
リング・テーブル(309)を参照する。フィルタリング処
理割り当てテーブル(310)のデータ構造を図4に、フィ
ルタリング・テーブル(309)のデータ構造を図5に示
す。First, a packet filter processor group
The operation of (201) will be described with reference to FIGS. The packet filter processor group (201) classifies packets into classes. Each packet filter processor (301
~ 307) to perform packet filtering,
Reference is made to the filtering process assignment table (310) and the filtering table (309). FIG. 4 shows the data structure of the filtering process assignment table (310), and FIG. 5 shows the data structure of the filtering table (309).
【0030】図4に示す通り、フィルタリング処理割り
当てテーブルは、パケット・フィルタ・プロセッサ(301
〜307)の識別子となるフィルタ番号を格納するフィール
ド(401)、フィールド401で指定されるパケット・フィル
タ・プロセッサが実行するパケット・フィルタリング処
理の検索キーを格納する検索キーフィールド(402)、パ
ケット・フィルタリング処理で参照するフィルタリング
・テーブルの識別子を格納する参照テーブルインデック
スフィールド(403)、フィールド403で指定されるフィル
タリング・テーブルを探索した結果、True値が得られた
場合に、パケットを送信する次段のパケット・フィルタ
・プロセッサの識別子を格納するフィルタ判別値フィー
ルド(404)と、False値が得られた場合に同様の識別子を
格納するフィールド(405)から成る。フィールド401で指
定されるパケット・フィルタ・プロセッサが最終段のプ
ロセッサの場合は、フィールド404及びフィールド405の
値は空である。As shown in FIG. 4, the filtering process assignment table includes a packet filter processor (301).
To 307), a search key field (402) for storing a search key of a packet filtering process executed by the packet filter processor specified by the field 401, a filter number (402), Reference table index field (403) for storing the identifier of the filtering table to be referred to in the filtering process. If a True value is obtained as a result of searching the filtering table specified in the field 403, the next stage of transmitting the packet. A filter discriminating value field (404) for storing the identifier of the packet filter processor of (1) and a field (405) for storing the same identifier when a False value is obtained. When the packet filter processor specified by the field 401 is the last processor, the values of the fields 404 and 405 are empty.
【0031】図5に示す通り、フィルタリング・テーブ
ル(309)は、ハッシュ関数の値から検索結果を示すエン
トリのポインタを格納するフィールド(501)と、検索結
果を示すフィールド(502)(503)から成る。検索結果を示
すフィールドは、パケット・フィルタ・プロセッサが最
終段の場合は、パケットをエンキューする受信キュー(3
13)の識別子を格納する受信キューフィールド(503)を参
照し、それ以外の場合は、フィルタ判別値フィールド(5
02)を参照する。フィールド503は、最終段のパケット・
フィルタリング・プロセッサ(304〜307)の数と等しいエ
ントリで構成される。各エントリは、該当するパケット
・フィルタ・プロセッサがエンキューする受信キュー(3
13)の識別子が格納されている。フィールド502は、True
かFalseの2種類の値のどちらかが格納され、フィールド
502の結果と、フィルタリング処理割り当てテーブルの
フィールド404、もしくはフィールド405を参照すること
により、送信する次段のパケット・フィルタ・プロセッ
サが決定する。As shown in FIG. 5, the filtering table (309) includes a field (501) for storing a pointer of an entry indicating a search result from the value of the hash function and fields (502) and (503) indicating the search result. Become. When the packet filter processor is at the last stage, the field indicating the search result is a reception queue (3
Reference is made to the reception queue field (503) storing the identifier of (13), otherwise, the filter discrimination value field (5
See 02). Field 503 contains the last packet
Consists of entries equal to the number of filtering processors (304-307). Each entry is a receive queue (3
13) is stored. Field 502 is True
Field that stores one of two values:
By referring to the result of 502 and the field 404 or the field 405 of the filtering process assignment table, the packet filter processor at the next stage to be transmitted is determined.
【0032】フィルタリング処理割り当てテーブル(31
0)、および、フィルタリングテーブルの各エントリの値
はコントローラ(202)が決定する。コントローラの動作
は後述する。The filtering process allocation table (31)
0) and the value of each entry in the filtering table are determined by the controller (202). The operation of the controller will be described later.
【0033】各パケット・フィルタ・プロセッサ(301〜
307)が実行するパケット・フィルタリングのフローチャ
ートを図6に示す。Each packet filter processor (301 to
FIG. 6 shows a flow chart of the packet filtering executed by step 307).
【0034】ステップ602において、パケット・フィル
タ・プロセッサは、フィルタリング割り当て処理テーブ
ル(310)を参照する。フィルタリング割り当て処理テー
ブルのフィールド402からパケット・フィルタリング処
理の検索キーとなるデータの種類の情報を得る。また、
フィールド403より、参照すべきフィルタリング・テー
ブル(309)が指定される。In step 602, the packet filter processor refers to the filtering assignment processing table (310). Information on the type of data serving as a search key for the packet filtering process is obtained from the field 402 of the filtering assignment process table. Also,
The field 403 specifies a filtering table (309) to be referred to.
【0035】ステップ603において、ステップ602で指定
された検索キー(402)に該当するデータを得る。In step 603, data corresponding to the search key (402) specified in step 602 is obtained.
【0036】ステップ604において、ステップ603で得ら
れた検索キーよりステップ602で指定されたフィルタリ
ング・テーブルを引く。In step 604, the filtering table specified in step 602 is subtracted from the search key obtained in step 603.
【0037】ステップ605において、パケット・フィル
タ・プロセッサが最終段のプロセッサ(304〜307)である
場合は、ステップ607に進む。それ以外のパケット・フ
ィルタ・プロセッサ(301〜303)の場合は、ステップ607
に進む。In step 605, if the packet filter processor is the last processor (304 to 307), the process proceeds to step 607. For other packet filter processors (301-303), step 607
Proceed to.
【0038】ステップ606において、ステップ604でフィ
ルタリング・テーブルを検索した結果得られたフィルタ
判別値フィールド(502)の値と、フィルタリング割り当
て処理テーブルのフィルタ判別値フィールド((404)ま
たは(405))より、パケットを送信する次段のパケット
・フィルタ・プロセッサを決定する。フィルタリング・
テーブル検索の結果、フィールド502の値がTrueの場合
は、フィルタリング処理割り当てテーブルの、パケット
・フィルタ・プロセッサのフィルタ番号(401)に対応す
る、フィールド404に格納されているフィルタ判別値に
該当するパケット・フィルタ・プロセッサに送信する。
フィールド502の値がFalseの場合は、フィルタリング処
理割り当てテーブルの、パケット・フィルタ・プロセッ
サのフィルタ番号(402)に対応する フィールド404に格
納されているフィルタ判別値に該当するパケット・フィ
ルタ・プロセッサに送信する。In step 606, the value of the filter discrimination value field (502) obtained as a result of searching the filtering table in step 604 and the filter discrimination value field ((404) or (405)) of the filtering assignment processing table , Determine the next packet filter processor to send the packet to. filtering·
As a result of the table search, if the value of the field 502 is True, the packet corresponding to the filter discrimination value stored in the field 404 corresponding to the filter number (401) of the packet filter processor in the filtering process assignment table • Send to filter processor.
When the value of the field 502 is False, the packet is transmitted to the packet filter processor corresponding to the filter determination value stored in the field 404 corresponding to the filter number (402) of the packet filter processor in the filtering process assignment table. I do.
【0039】ステップ607において、ステップ604でフィ
ルタリング・テーブルを検索した結果得られた受信キュ
ー番号フィールド(503)の値により、パケットをエンキ
ューする受信キュー(313)を決定する。受信キュー番号
フィールド(503)は、最終段のパケット・フィルタ・プ
ロセッサの数のエントリに分かれており、各最終段のパ
ケット・フィルタ・プロセッサは該当する受信キュー番
号フィールド(503)のエントリを参照することにより、
キューイングする受信キューを知ることができる。In step 607, a reception queue (313) for enqueuing a packet is determined based on the value of the reception queue number field (503) obtained as a result of searching the filtering table in step 604. The reception queue number field (503) is divided into entries of the number of the last-stage packet filter processors, and each last-stage packet filter processor refers to the corresponding entry of the reception queue number field (503). By doing
The reception queue to be queued can be known.
【0040】なお、本実施形態におけるパケット・フィ
ルタ・プロセッサ群は、3ステージのパイプライン処理
構成をとっているが、ステージ数は任意に増やしても問
題ない。パケット・フィルタリングの処理内容(処理の
複雑さ)によって、各パイプライン・フィルタリング・
プロセッサが1種類の検索キーによって、ハッシュ衝突
が多発しないフィルタリング・テーブルを検索する処理
を実行できる構成であればよい。Although the packet filter processor group in the present embodiment has a three-stage pipeline processing configuration, there is no problem if the number of stages is arbitrarily increased. Depending on the processing content (complexity of processing) of packet filtering, each pipeline filtering
Any configuration may be used as long as the processor can execute a process of searching a filtering table in which hash collision does not frequently occur by using one type of search key.
【0041】なお、本実施形態では、最終段のプロセッ
サをのぞく各パケット・フィルタ・プロセッサ(301〜30
3)は、フィルタリングの結果、次段の2つのパケット・
フィルタ・プロセッサのうちのどちらかへ送信してい
る。送信する次段のパケット・フィルタ・プロセッサ数
が3個以上でも、問題はない。ただし、フィルタリング
割り当て処理テーブル(310)におけるフィルタリング判
別値のフィールド数は、送信するパケット・フィルタ・
プロセッサ数と等しい数だけ存在しなくてはならない。In this embodiment, each of the packet filter processors (301 to 30) except for the last stage processor.
3) As a result of filtering, the next two packets
Transmitting to one of the filter processors. There is no problem even if the number of packet filter processors at the next stage to be transmitted is three or more. However, the number of fields of the filtering discrimination value in the filtering assignment processing table (310) depends on the packet filter
There must be a number equal to the number of processors.
【0042】また、フィルタリング・テーブル(309)に
おけるフィルタ判別値に格納されるデータの種類も、送
信するパケット・フィルタ・プロセッサ数と等しい数だ
け存在しなくてはならない。The number of types of data stored in the filter discrimination value in the filtering table (309) must be equal to the number of packet filter processors to be transmitted.
【0043】また、本実施形態では、パケット・フィル
タ・プロセッサをツリー状に配置しているが、直列に接
続してもよい。この場合、フィルタリング処理割り当て
テーブル(310)のフィルタ判別値フィールド((404)また
は(405))、および、フィルタリング・テーブル(309)の受
信キュー番号フィールド(503)は不要となる。さらに、
各受信キュー(313)の識別子は、各ステージのフィルタ
リング処理で得られるフィルタ判別値の論理和と1対1
に対応することとする。第1ステージのパケット・パイ
プライン・プロセッサは、フィルタリング・テーブル(3
09)検索により得られるフィルタ判別値を次段のパケッ
ト・パイプライン・フィルタに伝達する。第2段から最
終段の1つ前までのパケット・パイプライン・プロセッ
サは、フィルタリング・テーブル(309)検索により得ら
れるフィルタ判別値と前段のパケット・パイプラインか
ら伝達された値の論理和をとり、この値を次段のパッケ
ット・パイプライン・フィルタに伝達する。最終段のパ
ケット・パイプライン・フィルタは、フィルタリング・
テーブル(309)検索により得られたフィルタ判別値と前
段から伝達された値の論理和をとり、この論理和と等し
い識別子を持つ受信キュー(313)にエンキューする。In this embodiment, the packet filter processors are arranged in a tree, but may be connected in series. In this case, the filter discrimination value field ((404) or (405)) of the filtering process assignment table (310) and the reception queue number field (503) of the filtering table (309) become unnecessary. further,
The identifier of each reception queue (313) is one-to-one with the logical sum of the filter discrimination values obtained in the filtering processing of each stage.
Shall be used. The first stage of the packet pipeline processor includes a filtering table (3
09) The filter discrimination value obtained by the search is transmitted to the next-stage packet pipeline filter. The packet pipeline processors from the second stage to one immediately before the final stage take the logical OR of the filter discrimination value obtained by the search of the filtering table (309) and the value transmitted from the previous packet pipeline. This value is transmitted to the next-stage packet pipeline filter. The packet pipeline filter at the last stage
The logical sum of the filter discrimination value obtained by the search in the table (309) and the value transmitted from the preceding stage is calculated and enqueued in the reception queue (313) having an identifier equal to the logical sum.
【0044】上記に示すように、本発明では、多段のフ
ィルタリング処理を分割し、複数のパケット・フィルタ
・プロセッサで分担して処理することにより、1個のパ
ケット・フィルタ・プロセッサあたりのフィルタリング
処理時間を小さくできる。また、複数のパケット・フィ
ルタ・プロセッサをツリー状または直列に配置し、パイ
プライン並列処理することにより、高速化できる。As described above, according to the present invention, a multi-stage filtering process is divided and divided and processed by a plurality of packet filter processors, so that a filtering processing time per one packet filter processor is obtained. Can be reduced. In addition, the speed can be increased by arranging a plurality of packet filter processors in a tree or in series and performing pipeline parallel processing.
【0045】次に、ルーティングテーブル検索プロセッ
サ群(203)の動作を図7、図8を用いて説明する。Next, the operation of the routing table search processor group (203) will be described with reference to FIGS.
【0046】図7にルーティング処理割り当てテーブル
315の詳細を示す。FIG. 7 shows a routing process assignment table.
315 is shown in detail.
【0047】ルーティング処理割り当てテーブル315
は、ルーティングテーブル検索プロセッサ308と同数の
エントリを持つ。各エントリの番号は、ルーティングテ
ーブル検索プロセッサの番号に対応している。すなわ
ち、各ルーティングテーブル検索プロセッサが参照する
エントリは予め決まっている。各エントリは、受信キュ
ー番号703をキュー要素とするキュー構造になってお
り、そのエントリに対応するルーティングテーブル検索
プロセッサが処理すべき受信キューの番号をキューす
る。キュー・ヘッダ部は、受信キュー長の総和を格納す
る領域701と、最初のキュー要素を指すポインタ702を持
つ。受信キュー長の総和を格納する領域701には、各エ
ントリにキューされている受信キューのパケットの総数
を格納している。コントローラ202が、受信キューを参
照するルーティングテーブル検索プロセッサを決定する
際の評価値として、この受信キュー長の総和701の値を
使用する。Routing process assignment table 315
Has the same number of entries as the routing table search processor 308. The number of each entry corresponds to the number of the routing table search processor. That is, the entry referred to by each routing table search processor is predetermined. Each entry has a queue structure having a reception queue number 703 as a queue element, and queues a reception queue number to be processed by the routing table search processor corresponding to the entry. The queue header section has an area 701 for storing the sum of the reception queue lengths and a pointer 702 pointing to the first queue element. An area 701 for storing the sum of the reception queue lengths stores the total number of packets in the reception queue queued in each entry. The controller 202 uses the value of the sum 701 of the reception queue length as an evaluation value when determining the routing table search processor that refers to the reception queue.
【0048】次に、ルーティングテーブル検索プロセッ
サ308が実施するルーティング処理の内容を図8のフロ
ーチャートを使って説明する。Next, the contents of the routing processing performed by the routing table search processor 308 will be described with reference to the flowchart of FIG.
【0049】まず、ルーティングテーブル検索プロセッ
サ308は、ルーティング処理割り当てテーブル315内の自
プロセッサ用エントリを参照し、自プロセッサ宛の受信
キュー番号703を得る(802)。次にルーティングテーブ
ル検索プロセッサ308は、得られた受信キュー番号の受
信キューからパケットをデキューし、パケットの宛先ア
ドレスを得る(803)。ここで、ルーティングテーブル
検索プロセッサ308は、ルーティングテーブルキャッシ
ュ316を参照し、ステップ803において得た宛先アドレス
へのルーティング情報がキャッシュされているかをチェ
ックする(804)。ルーティング情報がキャッシュされ
ていた場合は、そのルーティング情報から送出インタフ
ェースを決定し、該当するスケジューリング待ちキュー
106にパケットをエンキューする(807)。ルーティング
テーブルキャッシュ316にルーティング情報がキャッシ
ュされていない場合、ルーティングテーブル検索プロセ
ッサ308は、ルーティングテーブル314からステップ803
にて得た宛先アドレスのルーティング情報を取得し、送
出インタフェースを決定して該当するスケジューリング
待ちキュー106にパケットをエンキューする(805)。同
時に、ステップ805で得たルーティング情報をルーティ
ングテーブルキャッシュ316に挿入する。First, the routing table search processor 308 refers to the entry for the own processor in the routing process assignment table 315 to obtain the reception queue number 703 addressed to the own processor (802). Next, the routing table search processor 308 dequeues the packet from the reception queue of the obtained reception queue number, and obtains the destination address of the packet (803). Here, the routing table search processor 308 refers to the routing table cache 316 and checks whether the routing information for the destination address obtained in step 803 is cached (804). If the routing information has been cached, the sending interface is determined from the routing information, and the corresponding scheduling queue
The packet is enqueued at 106 (807). If the routing information is not cached in the routing table cache 316, the routing table search processor 308 returns from the routing table 314 to step 803.
The routing information of the destination address obtained in step (1) is obtained, the transmission interface is determined, and the packet is enqueued in the corresponding scheduling queue 106 (805). At the same time, the routing information obtained in step 805 is inserted into the routing table cache 316.
【0050】上記に示すように、本発明では、ルーティ
ングテーブル検索処理を、複数のルーティングテーブル
検索プロセッサ(308)で並列処理することにより、高速
化できる。各ルーティングテーブル検索プロセッサ(30
8)は、ルーティングテーブルの内容をキャッシングする
ルーティングテーブル・キャッシュ(316)を所有してお
り、ルーティングテーブルの検索時間を削減できる。各
ルーティング検索プロセッサ(308)が、ルーティングテ
ーブル検索処理を実行するパケットは、特定のクラスに
属するパケットである。図4のルーティング処理割り当
てテーブルのフィールド402に示すように、本実施の形
態においては、パケットのクラスは、宛先アドレスによ
って決定するこのため、1つのルーティングテーブル検
索プロセッサ(308)が扱うパケットの宛先アドレスは特
定のアドレスに限られる。従って、1つのルーティング
テーブル検索プロセッサ(308)が処理するのに必要なル
ーティングテーブルのエントリサイズは小さくてよく、
ルーティングテーブル・キャッシュ(316)のヒット率は
高くなる。As described above, in the present invention, the routing table search processing can be speeded up by performing parallel processing by a plurality of routing table search processors (308). Each routing table lookup processor (30
8) has a routing table cache (316) for caching the contents of the routing table, and can reduce the time required for searching the routing table. Packets for which each routing search processor (308) executes a routing table search process are packets belonging to a specific class. As shown in the field 402 of the routing process assignment table in FIG. 4, in the present embodiment, the class of the packet is determined by the destination address, so that the destination address of the packet handled by one routing table search processor (308) is used. Is limited to a specific address. Therefore, the routing table entry size required for one routing table search processor (308) to process may be small,
The hit rate of the routing table cache (316) is increased.
【0051】次に、コントローラ(202)の動作を図9か
ら図14を用いて説明する。コントローラ(202)は以下
を実行する。Next, the operation of the controller (202) will be described with reference to FIGS. The controller (202) performs the following.
【0052】1)パケット・フィルタ・プロセッサ(20
1)が送受信するパケット量(以後、送信するパケット量
を「送信流量」、受信するパケット量を「受信流量」、
両者を総称して「流量」と呼ぶ)の定期的な監視、及び
その監視結果に基づき、各パケットフィルタプロセッサ
(301〜307)が参照すべきフィルタリングテーブル(309)
を決定する処理。1) Packet filter processor (20)
1) The amount of packets transmitted and received (hereinafter, the amount of packets to be transmitted is "transmission flow", the amount of packets to be received is "reception flow",
Both are collectively referred to as "flow rate"), and based on the monitoring results, each packet filter processor
Filtering table (309) to be referenced by (301 to 307)
Processing to determine the.
【0053】2)受信キュー(313)にキューイングされ
ているパケット数の定期的な監視、及びその監視結果に
基づき、各ルーティングテーブル検索プロセッサ(308)
が処理すべき受信キュー(313)を決定する処理。2) Periodic monitoring of the number of packets queued in the reception queue (313), and based on the monitoring result, each routing table search processor (308)
Determining the receiving queue (313) to be processed.
【0054】上記1)を実行するために、コントローラ
(202)は流量監視テーブル(311)を参照、更新する。流量
監視テーブル(311)は、図9に示す受信流量を管理する
テーブル、図10に示す送信流量を管理するテーブル、
図11に示す流量のしきい値を管理するテーブルからな
る。In order to execute the above 1), the controller
(202) refers to and updates the flow rate monitoring table (311). The flow rate monitoring table (311) is a table for managing the reception flow rate shown in FIG. 9, a table for managing the transmission flow rate shown in FIG.
It consists of a table for managing the threshold value of the flow rate shown in FIG.
【0055】受信流量を管理するテーブルは、フィルタ
番号を格納するフィールド(901)と、受信流量を格納す
るフィールド(902)からなる。本テーブルは各パケット
・フィルタ・プロセッサ(301〜307)ごとに1エントリを
保持する。The table for managing the received flow rate includes a field (901) for storing the filter number and a field (902) for storing the received flow rate. This table holds one entry for each packet filter processor (301 to 307).
【0056】送信流量を管理するテーブルは、フィルタ
番号を格納するフィールド(1001)と、受信流量の合計を
格納するフィールド(1002)からなる。受信流量の合計を
格納するフィールド(1002)は、フィルタ番号(901)に対
応するパケットフィルタプロセッサ(301〜307)におい
て、フィルタ判別値(502)がTRUEとなったパケットの流
量の合計を格納するフィールド(903)と、FALSEとなった
パケットの流量の合計を格納するフィールド(904)から
なる。また、本テーブルは、パケット・フィルタ・プロ
セッサの段数の深さごとにエントリを持つ。例えば図3
のシステムにおける本テーブルは、フィルタ番号1、フ
ィルタ番号2,3、フィルタ番号4,5,6,7の3エントリを持
つ。The table for managing the transmission flow rate comprises a field (1001) for storing the filter number and a field (1002) for storing the total of the reception flow rates. The field (1002) for storing the total received flow rate stores the total flow rate of the packets for which the filter determination value (502) is TRUE in the packet filter processors (301 to 307) corresponding to the filter number (901). It consists of a field (903) and a field (904) for storing the total of the flow rates of packets that have become FALSE. This table has an entry for each depth of the number of stages of the packet filter processor. For example, FIG.
The table in this system has three entries of filter number 1, filter number 2, 3, and filter number 4, 5, 6, 7.
【0057】流量のしきい値を管理するテーブルは、フ
ィルタ番号を格納するフィールド(1101)と、流量のしき
い値を格納するフィールド(1102)からなる。ここで言う
「流量のしきい値」とは、パケット・フィルタ・プロセ
ッサ(301〜307)が単位時間あたりに処理可能なパケット
量を示す。本テーブルも図10のテーブルと同様、パケ
ット・フィルタ・プロセッサ(301〜307)の段数の深さご
とにエントリを持つ。また、本テーブルは、システムの
初期化時に、ルーティングテーブル検索プロセッサ(30
8)の処理能力に応じて設定される。以後、本テーブルの
各フィールドの値が変更することはない。The table for managing the threshold value of the flow rate includes a field (1101) for storing the filter number and a field (1102) for storing the threshold value of the flow rate. Here, the “threshold of the flow rate” indicates the amount of packets that the packet filter processors (301 to 307) can process per unit time. This table also has an entry for each depth of the number of stages of the packet filter processors (301 to 307), similarly to the table of FIG. This table is stored in the routing table search processor (30
Set according to the processing capacity of 8). Thereafter, the value of each field of this table does not change.
【0058】コントローラ(202)がにおける上記1)の
処理フローを図12に示す。FIG. 12 shows the processing flow of the above 1) performed by the controller (202).
【0059】まず、ステップ1202において、コントロー
ラ(202)は各パケット・フィルタ・プロセッサ(301〜30
7)と通信する。そして、各パケット・フィルタ・プロセ
ッサ(301〜307)においてフィルタ判別値(502)がTRUEと
なった送信流量、FALSEとなった送信流量及び受信流量
をコントローラ(202)は取得する。First, in step 1202, the controller (202) transmits the data to each of the packet filter processors (301 to 30).
Communicate with 7). Then, in each of the packet filter processors (301 to 307), the controller (202) acquires the transmission flow rate for which the filter determination value (502) is TRUE, the transmission flow rate for which the filter determination value is FALSE, and the reception flow rate.
【0060】ステップ1203において、ステップ1202で得
られた送信流量をパケット・フィルタ・プロセッサ(301
〜307)の段数の深さごとに合計し、フィールド1003及び
フィールド1004を更新する。また、得られた受信流量に
応じ、フィールド902を更新する。In step 1203, the transmission flow rate obtained in step 1202 is compared with the packet filter processor (301).
To 307) for each depth, and the field 1003 and the field 1004 are updated. Further, the field 902 is updated according to the obtained reception flow rate.
【0061】ステップ1204において、フィールド902の
値がフィールド1102に格納されている流量のしきい値を
超えているパケット・フィルタ・プロセッサ(301〜307)
が存在するか否かを検索する。超えているプロセッサが
存在する場合にはステップ1205に、存在しない場合には
処理を終了する。In step 1204, packet filter processors (301-307) whose value in field 902 exceeds the flow rate threshold stored in field 1102.
Search whether exists. If there is a processor exceeding the number, the process proceeds to step 1205; otherwise, the process ends.
【0062】ステップ1205において、フィールド1003と
フィールド1004に格納されている値の比が最も1に近い
図10に示すテーブルのエントリを探し出す。In step 1205, an entry in the table shown in FIG. 10 in which the ratio of the values stored in the fields 1003 and 1004 is closest to 1 is found.
【0063】そして、ステップ1206において、パケット
・フィルタ・プロセッサ(301〜307)が参照すべきフィル
タリングテーブル(309)を変更する。これは、フィルタ
リング処理割り当てテーブル(310)の参照テーブルイン
デックスフィールド(403)を更新することにより実現す
る。ここでは、ステップ1204において、フィールド902
の値がフィールド1102に格納されている流量のしきい値
を超えているプロセッサより段数が一つ小さいプロセッ
サ群(例えば、パケット・フィルタ・プロセッサ5より
段数が一つ小さいプロセッサ群はバケット・フィルタプ
ロセッサ2と3である)に対応する参照テーブルインデ
ックス(403)の値と、ステップ1205で得たエントリのフ
ィルタ番号フィールド(1001)に格納されているプロセッ
サ群の参照テーブルインデックス(403)の値を交換する
ことにより実現する。Then, in step 1206, the filtering table (309) to be referred to by the packet filter processors (301 to 307) is changed. This is realized by updating the reference table index field (403) of the filtering process assignment table (310). Here, in step 1204, the field 902
Is a group of processors whose number of stages is one smaller than the processor whose value exceeds the threshold value of the flow rate stored in the field 1102 (for example, a group of processors whose number of stages is one smaller than the packet filter processor 5 is a bucket filter processor). 2) and 3), and the value of the reference table index (403) of the processor group stored in the filter number field (1001) of the entry obtained in step 1205 is exchanged. It is realized by doing.
【0064】上記ステップが完了後、コントローラ(20
2)は処理を完了する。After the above steps are completed, the controller (20
2) completes the process.
【0065】このように本発明では、パケット・フィル
タ・プロセッサの受信流量がその処理能力を超えた場
合、ただちに、該当プロセッサより段数が一つ小さいプ
ロセッサが参照するフィルタリング・テーブル(309)を
更新する。この更新により、該当プロセッサの受信流量
を、その処理能力以下の値に抑えることが可能となる。As described above, according to the present invention, when the reception flow rate of the packet filter processor exceeds the processing capacity, the filtering table (309) referred to by the processor having one less stage than the corresponding processor is immediately updated. . By this update, the reception flow rate of the corresponding processor can be suppressed to a value equal to or less than the processing capacity.
【0066】なお、本実施形態では、パイプライン・パ
ケット・フィルタをツリー状に配置することを仮定して
いる。直列に接続する場合、フィルタリング順序を動的
に切り替える必要がなく、上記のようなコントローラの
機能および流量監視テーブル(311)や図11の流量のし
きい値を示すテーブルは不要である。In the present embodiment, it is assumed that the pipeline packet filters are arranged in a tree shape. When connected in series, it is not necessary to dynamically switch the filtering order, and the controller function and the flow rate monitoring table (311) as described above and the table indicating the flow rate threshold values in FIG. 11 are unnecessary.
【0067】また上記2)を実現するため、コントロー
ラ(202)は受信キュー監視テーブル(312)を参照、更新す
る。受信キュー監視テーブル(312)のデータ構造を図1
3に示す。Further, in order to realize the above 2), the controller (202) refers to and updates the reception queue monitoring table (312). Figure 1 shows the data structure of the reception queue monitoring table (312).
3 is shown.
【0068】図13に示す通り、受信キュー監視テーブ
ルは、受信キュー番号を格納するフィールド(1301)とフ
ィールド1301で指定される受信キューのキュー長を格納
するフィールド(1302)からなる。また受信キュー長のし
きい値(この「受信キューのしきい値」より受信キュー
長が長い場合、コントローラ(202)は、対応するルーテ
ィングテーブル検索プロセッサ(308)の処理能力を超え
たパケットが受信キューに到達している、と判断する)
を格納するフィールド(1203)も存在する。As shown in FIG. 13, the reception queue monitoring table includes a field (1301) for storing the reception queue number and a field (1302) for storing the queue length of the reception queue specified by the field 1301. In addition, the reception queue length threshold (if the reception queue length is longer than the “reception queue threshold”, the controller (202) receives a packet exceeding the processing capacity of the corresponding routing table search processor (308). Judge it has reached the queue)
There is also a field (1203) for storing.
【0069】上記2)のフローチャートを図14に示
す。FIG. 14 shows a flowchart of the above 2).
【0070】ステップ1402において、コントローラ(20
2)は、各受信キュー(313)に現在のキュー長を調べ、フ
ィールド1302を更新する。さらに、ルーティング処理割
り当てテーブル(315)の受信キュー長の総和を格納する
フィールド(701)の値も更新する。この更新値は、該当
するルーティング処理割り当てテーブル(315)のエント
リにキューイングされている受信キュー番号(703)のフ
ィールド1302の値の合計である。In step 1402, the controller (20
2) The current queue length is checked for each reception queue (313), and the field 1302 is updated. Further, the value of the field (701) for storing the sum of the reception queue lengths in the routing process assignment table (315) is also updated. This updated value is the sum of the values of the field 1302 of the reception queue number (703) queued in the corresponding entry of the routing process assignment table (315).
【0071】ステップ1403において、フィールド1302の
値がフィールド1303の値を超えている受信キュー(313)
が存在しているか否かを検査する。存在する場合にはス
テップ1404にジャンプする。存在しない場合には処理を
終了する。本ステップで得られた受信キュー(313)を以
後Queue1と表記する。In step 1403, the reception queue (313) in which the value of the field 1302 exceeds the value of the field 1303
Check if is present. If there is, jump to step 1404. If not, the process ends. The reception queue (313) obtained in this step is hereinafter referred to as Queue1.
【0072】ステップ1404において、フィールド701の
値が最小のルーティングテーブル検索プロセッサ(308)
を検索する。以後本ステップで得られたプロセッサをR1
と表記する。At step 1404, the routing table search processor (308) having the smallest value in the field 701
Search for. Thereafter, the processor obtained in this step is referred to as R1
Notation.
【0073】ステップ1405において、R1がQueue1を処理
しているか否かを判定する。この判定は、R1に対応する
ルーティング処理テーブル割り当てテーブル(315)のエ
ントリに、Queue1に対応する受信キュー番号(703)がキ
ューイングされているか否かを調べることにより可能で
ある。上記判定がTRUEであれば異常終了(ルータ(200)
全体に到達しているパケット量が、ルーティング検索プ
ロセッサ(308)の処理能力の合計を超えていると判断)
する。At step 1405, it is determined whether or not R1 is processing Queue1. This determination can be made by checking whether or not the entry of the routing processing table assignment table (315) corresponding to R1 is queued with the reception queue number (703) corresponding to Queue1. Abnormal termination if the above determination is TRUE (Router (200)
It is determined that the amount of packets reaching the whole exceeds the total processing capacity of the routing search processor (308))
I do.
【0074】ステップ1406において、R1が処理する受信
キューの中で、キュー長が最短の受信キューを検索す
る。本検索は、ルーティング処理割り当てテーブル(31
5)のR1に対応するエントリにキューイングされている受
信キュー番号(703)のうち、フィールド1303の値が最小
のものを探し出すことにより実現する。本ステップによ
り得られた受信キュー(313)を以後Queue2と表記する。In step 1406, a reception queue having the shortest queue length is searched for among the reception queues processed by R1. This search uses the routing process assignment table (31
This is realized by searching for the reception queue number (703) queued in the entry corresponding to R1 of 5) with the smallest value of the field 1303. The reception queue (313) obtained in this step is hereinafter referred to as Queue2.
【0075】ステップ1407において、Queue1を処理する
ルーティングテーブル検索プロセッサ(308)と、Queue2
を処理するプロセッサを入れ替える。これは、ルーティ
ング処理割り当てテーブル(315)にキューイングされて
いる受信キュー番号(703)を変更することにより実現す
る。At step 1407, a routing table search processor (308) for processing Queue 1
Swap the processors that handle. This is realized by changing the reception queue number (703) queued in the routing process assignment table (315).
【0076】上記に示すように本発明では、ルーティン
グテーブル検索プロセッサR1(308)の処理能力を超える
パケットが受信キュー(313)に到達した場合、該当受信
キューを処理するプロセッサを入れ替える。これにより
R1は、自分の処理能力以下のパケット数のルーティング
テーブル検索処理を実行すれば良いことになる。As described above, in the present invention, when a packet exceeding the processing capacity of the routing table search processor R1 (308) arrives at the reception queue (313), the processor that processes the reception queue is replaced. This
R1 only needs to execute the routing table search processing for the number of packets less than its own processing capacity.
【0077】[0077]
【発明の効果】本発明におけるルータを用いてルーティ
ングを実行すると、マルチメディア通信を行うネットワ
ークにおいて、QoS保証が必要なパケットの種類が多数
存在する場合でも、QoS保証を行うために不可欠な処理
であるパケット・フィルタリング処理を高速に実行でき
る。また、ルーティングテーブル検索処理も高速に実行
できるため、ルーティング処理による遅延時間を小さく
抑えることができる。According to the present invention, when routing is performed using the router, even if there are many types of packets requiring QoS assurance in a network for performing multimedia communication, the processing is indispensable for performing QoS assurance. A certain packet filtering process can be executed at high speed. In addition, since the routing table search process can be executed at high speed, the delay time due to the routing process can be reduced.
【図1】従来のルータのハードウェア構成図。FIG. 1 is a hardware configuration diagram of a conventional router.
【図2】本発明のルータのハードウェア構成図。FIG. 2 is a hardware configuration diagram of a router according to the present invention.
【図3】本発明の実施の形態で仮定するパケット・フィ
ルタ・プロセッサ群とルーティングテーブル検索処理プ
ロセッサと、前記2つのプロセッサ群の負荷分散を行う
コントローラのハードウェア構成図。FIG. 3 is a hardware configuration diagram of a packet filter processor group and a routing table search processor assumed in the embodiment of the present invention, and a controller that performs load distribution of the two processor groups.
【図4】パケット・フィルタ・プロセッサと実行するフ
ィルタリング処理を対応づけるテーブルの構成図。FIG. 4 is a configuration diagram of a table that associates a packet filter processor with a filtering process to be executed;
【図5】フィルタリング処理において検索するハッシュ
テーブルの構成図。FIG. 5 is a configuration diagram of a hash table searched in a filtering process.
【図6】パケット・フィルタリング処理のフローチャー
ト。FIG. 6 is a flowchart of a packet filtering process.
【図7】ルーティングテーブル検索プロセッサとルーテ
ィングテーブル検索処理を実行する受信キューを対応づ
けるテーブルの構成図。FIG. 7 is a configuration diagram of a table that associates a routing table search processor with a reception queue that executes a routing table search process.
【図8】ルーティングテーブル検索処理のフローチャー
ト。FIG. 8 is a flowchart of a routing table search process.
【図9】パケット・フィルタ・プロセッサとそのプロセ
ッサが一定時間に受信したパケット数対応づけるテーブ
ルの構成図。FIG. 9 is a configuration diagram of a table for associating a packet filter processor with the number of packets received by the processor in a predetermined time;
【図10】パケット・フィルタ・プロセッサとそのプロ
セッサが属するステージにある全パイプライン・パケッ
ト・フィルタがフィルタリング結果がTrueであるパケッ
トを一定時間に送信する数の合計値と、フィルタリング
結果がFalseであるパケットを一定時間に送信する数の
合計値を対応づけるテーブルの構成図。FIG. 10 shows the total value of the number of packets that have a True filtering result transmitted by a packet filter processor and all the pipelined packet filters in the stage to which the processor belongs in a certain period of time, and the filtering result is False. FIG. 4 is a configuration diagram of a table that associates a total value of the number of packets transmitted in a fixed time.
【図11】パケット・フィルタ・プロセッサとそのプロ
セッサが一定時間に処理可能なパケット数の最大値(し
きい値)を対応づけるテーブルの構成図。FIG. 11 is a configuration diagram of a table that associates a packet filter processor with the maximum value (threshold) of the number of packets that can be processed by the processor in a fixed time.
【図12】コントローラが、各パケット・フィルタ・プ
ロセッサのフィルタリング処理を動的に変更するフロー
チャート。FIG. 12 is a flowchart in which the controller dynamically changes the filtering process of each packet filter processor.
【図13】受信キューとその受信キューにエンキューさ
れているパケット数を対応づけるテーブルの構成およ
び、受信キューにエンキューできるパケット数の最大値
(しきい値)を格納するデータ領域の説明図。FIG. 13 is a diagram illustrating a configuration of a table that associates a reception queue with the number of packets enqueued in the reception queue and a data area for storing a maximum value (threshold) of the number of packets that can be enqueued in the reception queue.
【図14】コントローラが、各ルーティングテーブル検
索プロセッサに割り当てる処理すべき受信キューを動的
に変更するフローチャート。FIG. 14 is a flowchart in which a controller dynamically changes a reception queue to be assigned to each routing table search processor to be processed;
102 …入出力プロセッサ、105 …送信スケジューリング
・プロセッサ、106 …スケジューリング待ちキュー群、
107 …送信待ちキュー群、200 …パケット・フ
ィルタ・プロセッサ群、 201 …コントローラ、203
…ルーティングテーブル検索プロセッサ群、204 …受信
キュー群、301 …パケット・フィルタ・プロセッサ1、3
02 …パケット・フィルタ・プロセッサ2、303 …パケッ
ト・フィルタ・プロセッサ3、304 …パケット・フィル
タ・プロセッサ4、305 …パケット・フィルタ・プロセ
ッサ5、306 …パケット・フィルタ・プロセッサ6、307
…パケット・フィルタ・プロセッサ7、308 …ルーティ
ングテーブル検索プロセッサ、309 …フィルタリング・
テーブル、310 …フィルタリング処理割り当てテーブ
ル、 311 …流量監視テーブル、312 …受信キュー監視
テーブル、313 …受信キュー、314 …ルーティング・テ
ーブル、315 …ルーティング処理割り当てテーブル、31
6 …ルーティングテーブルキャッシュ。102 ... input / output processor, 105 ... transmission scheduling processor, 106 ... scheduling waiting queue group,
107: transmission queue group, 200: packet filter processor group, 201: controller, 203
... Routing table search processor group, 204 ... Reception queue group, 301 ... Packet filter processors 1, 3
02 Packet filter processors 2, 303 Packet filter processors 3, 304 Packet filter processors 4, 305 Packet filter processors 5, 306 Packet filter processors 6, 307
… Packet filter processor 7, 308… Routing table search processor, 309… Filtering
Table, 310: Filtering processing allocation table, 311: Flow rate monitoring table, 312: Reception queue monitoring table, 313: Reception queue, 314: Routing table, 315: Routing processing allocation table, 31
6… Routing table cache.
───────────────────────────────────────────────────── フロントページの続き (72)発明者 中原 雅彦 神奈川県川崎市麻生区王禅寺1099番地 株 式会社日立製作所システム開発研究所内 (72)発明者 竹内 理 神奈川県川崎市麻生区王禅寺1099番地 株 式会社日立製作所システム開発研究所内 (72)発明者 中野 隆裕 神奈川県川崎市麻生区王禅寺1099番地 株 式会社日立製作所システム開発研究所内 ──────────────────────────────────────────────────続 き Continued on the front page (72) Inventor Masahiko Nakahara 1099 Ozenji Temple, Aso-ku, Kawasaki City, Kanagawa Prefecture Inside Hitachi, Ltd.System Development Laboratory (72) Inventor Osamu Takeuchi 1099 Ozenji Temple, Aso-ku, Kawasaki City, Kanagawa Prefecture Stock Company (72) Inventor Takahiro Nakano 1099 Ozenji Temple, Aso-ku, Kawasaki City, Kanagawa Prefecture Inside Hitachi, Ltd.System Development Laboratory
Claims (4)
データを受信する情報処理装置の間に直列に接続し、パ
ケットのルーティング処理を実行するプロセッサと、転
送されたパケットをフィルタリングするプロセッサと、
パケットの送信順序を制御するプロセッサと、パケット
の送信及び受信を行うプロセッサとから成るルータにお
いて、 フィルタリングを実行するときに参照する複数の検索テ
ーブルと、前記検索テーブルを共有するパケットをフィ
ルタリングする複数のプロセッサと、パケットのフィル
タリングで分類される各クラスに対応する複数のキュー
を有し、初段から終段に向かってツリー状または、直列
に配置したフィルタリング用プロセッサ群によって、多
段に渡るパケットのフィルタリングをパイプライン処理
することにより、パケットのフィルタリングを高速化す
ることを特徴とするルータ。1. A plurality of information processing devices for transmitting data,
A processor that is connected in series between information processing devices that receive data and performs a packet routing process, and a processor that filters a transferred packet;
In a router comprising a processor for controlling the transmission order of packets and a processor for transmitting and receiving packets, a plurality of search tables to be referred to when performing filtering, and a plurality of filters for filtering packets sharing the search tables. It has a processor and a plurality of queues corresponding to each class classified by packet filtering, and performs filtering of packets in multiple stages by a group of filtering processors arranged in a tree shape or in series from the first stage to the last stage. A router characterized by speeding up packet filtering by pipeline processing.
ングテーブルと、ルーティングテーブル検索情報を格納
するテーブルと、前記2種類のテーブルを共有する複数
のルーティング処理用プロセッサと、前記プロセッサが
個々に所有する、ルーティングテーブルの内容をキャッ
シングするキャッシュを有し、複数のプロセッサが、ル
ーティングテーブルの検索処理を並列に実行することに
より、テーブル検索処理を高速化することを特徴とする
ルータ。2. The router according to claim 1, wherein the routing table, a table for storing routing table search information, a plurality of routing processors sharing the two types of tables, and the processors are individually owned by the processors. A router having a cache for caching the contents of a routing table, and speeding up the table search processing by a plurality of processors executing the search processing of the routing table in parallel.
グ用プロセッサがフィルタリング実行時に参照する複数
の検索テーブルと、フィルタリング用プロセッサが一定
時間内に処理するパケット数を格納したテーブルと、フ
ィルタリング用プロセッサとの間で前記2種類のテーブ
ルを共有するコントローラを有し、コントローラが、フ
ィルタリング用プロセッサが参照する検索テーブルを、
一定時間内に処理するパケット数に応じて動的に切り替
えることにより、フィルタリング用プロセッサの負荷を
分散させ、フィルタリング処理の遅延時間を短縮するこ
とを特徴とするルータ。3. The router according to claim 1, wherein the plurality of search tables referred to by the filtering processor during execution of the filtering, a table storing the number of packets processed by the filtering processor within a predetermined time, and Having a controller that shares the two types of tables between the controller, the controller, a lookup table referred to by the filtering processor,
A router characterized by dynamically switching according to the number of packets to be processed within a certain time, thereby distributing the load of the filtering processor and reducing the delay time of the filtering process.
処理用プロセッサとの間で前記ルーティングテーブル検
索情報を格納するテーブルを共有するコントローラと、
パケットのフィルタリング処理によって分類されたパケ
ットがエンキューされているキューのパケット数合計値
を格納するテーブルを有し、キューのパケット数合計値
に従って、各ルーティング処理用プロセッサに割り当て
るルーティングテーブル検索情報を動的に切り替えるこ
とにより、ルーティング処理の遅延時間を短縮すること
を特徴とするルータ。4. The router according to claim 2, wherein a controller that shares a table for storing the routing table search information with a routing processor,
It has a table that stores the total number of packets in the queue in which packets classified by the packet filtering process are enqueued, and dynamically searches routing table search information to be assigned to each routing processor according to the total number of packets in the queue. A router characterized by reducing the delay time of routing processing by switching to (1).
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP25071198A JP2000083055A (en) | 1998-09-04 | 1998-09-04 | Router |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP25071198A JP2000083055A (en) | 1998-09-04 | 1998-09-04 | Router |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2000083055A true JP2000083055A (en) | 2000-03-21 |
Family
ID=17211924
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP25071198A Pending JP2000083055A (en) | 1998-09-04 | 1998-09-04 | Router |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2000083055A (en) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003534722A (en) * | 2000-05-24 | 2003-11-18 | テレフォンアクチーボラゲット エル エム エリクソン(パブル) | IPSec processing device |
JP2004504769A (en) * | 2000-07-17 | 2004-02-12 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | Apparatus and method for unbuffered evaluation of data bytes of a packet with multiple minimum terms |
US7116675B2 (en) | 2000-08-21 | 2006-10-03 | Kabushiki Kaisha Toshiba | Methods and systems for transferring packets and preventing illicit access |
US7310674B2 (en) | 2001-10-18 | 2007-12-18 | Fujitsu Limited | Load balancer for network processor |
US7313138B2 (en) | 2002-06-17 | 2007-12-25 | Nec Corporation | Router device and routing method |
US7529244B2 (en) | 2002-09-17 | 2009-05-05 | Oki Electric Industry Co., Ltd. | Routing processing device and packet type identification device |
WO2009093299A1 (en) * | 2008-01-21 | 2009-07-30 | Fujitsu Limited | Packet processing device and packet processing program |
JP2014120827A (en) * | 2012-12-13 | 2014-06-30 | Kddi Corp | Search device for searching for condition entry matching query entry from condition table, flow switch device, program, and method |
JP2015019369A (en) * | 2013-07-09 | 2015-01-29 | インテル コーポレイション | Traffic management equipped with egress control |
WO2015052818A1 (en) * | 2013-10-10 | 2015-04-16 | 富士通株式会社 | Data forwarding device, information processing device, and data forwarding method |
-
1998
- 1998-09-04 JP JP25071198A patent/JP2000083055A/en active Pending
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003534722A (en) * | 2000-05-24 | 2003-11-18 | テレフォンアクチーボラゲット エル エム エリクソン(パブル) | IPSec processing device |
JP2004504769A (en) * | 2000-07-17 | 2004-02-12 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | Apparatus and method for unbuffered evaluation of data bytes of a packet with multiple minimum terms |
US7116675B2 (en) | 2000-08-21 | 2006-10-03 | Kabushiki Kaisha Toshiba | Methods and systems for transferring packets and preventing illicit access |
US7310674B2 (en) | 2001-10-18 | 2007-12-18 | Fujitsu Limited | Load balancer for network processor |
US7313138B2 (en) | 2002-06-17 | 2007-12-25 | Nec Corporation | Router device and routing method |
US7529244B2 (en) | 2002-09-17 | 2009-05-05 | Oki Electric Industry Co., Ltd. | Routing processing device and packet type identification device |
WO2009093299A1 (en) * | 2008-01-21 | 2009-07-30 | Fujitsu Limited | Packet processing device and packet processing program |
JP5152201B2 (en) * | 2008-01-21 | 2013-02-27 | 富士通株式会社 | Packet processing apparatus and packet processing program |
US8832332B2 (en) | 2008-01-21 | 2014-09-09 | Fujitsu Limited | Packet processing apparatus |
JP2014120827A (en) * | 2012-12-13 | 2014-06-30 | Kddi Corp | Search device for searching for condition entry matching query entry from condition table, flow switch device, program, and method |
JP2015019369A (en) * | 2013-07-09 | 2015-01-29 | インテル コーポレイション | Traffic management equipped with egress control |
WO2015052818A1 (en) * | 2013-10-10 | 2015-04-16 | 富士通株式会社 | Data forwarding device, information processing device, and data forwarding method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8401027B2 (en) | Method for traffic management, traffic prioritization, access control, and packet forwarding in a datagram computer network | |
US8799507B2 (en) | Longest prefix match searches with variable numbers of prefixes | |
US8064344B2 (en) | Flow-based queuing of network traffic | |
US7529224B2 (en) | Scheduler, network processor, and methods for weighted best effort scheduling | |
CN109104373B (en) | Method, device and system for processing network congestion | |
JP3640299B2 (en) | A proposal and response architecture for route lookup and packet classification requests | |
US8699491B2 (en) | Network element with shared buffers | |
US10523576B1 (en) | High-performance garbage collection in a network device | |
US7096277B2 (en) | Distributed lookup based on packet contents | |
US20070064597A1 (en) | Globally fair polling for packet switched routers using dynamically biased arbitration | |
US8555374B2 (en) | High performance packet processing using a general purpose processor | |
AU4854799A (en) | System and method for switching packets in a network | |
KR20030089747A (en) | Router providing differentiated quality-of-service and fast internet protocol packet classification method for the same | |
EP3684018B1 (en) | Method and network device for handling packets in a network by means of forwarding tables | |
US7142555B2 (en) | Method and apparatus for switching data using parallel switching elements | |
US8199764B2 (en) | Scalable approach to large scale queuing through dynamic resource allocation | |
US20150100694A1 (en) | Use of iterative learning for resolving scalability issues of bandwidth broker | |
US20050147038A1 (en) | Method for optimizing queuing performance | |
US10868769B1 (en) | Read instruction queues in a network device | |
JP2000083055A (en) | Router | |
EP1655913A1 (en) | Input queued packet switch architecture and queue service discipline | |
US20050190779A1 (en) | Scalable approach to large scale queuing through dynamic resource allocation | |
CN109672626B (en) | Service aggregation method based on queuing delay utilization | |
US10846225B1 (en) | Buffer read optimizations in a network device | |
US7474662B2 (en) | Systems and methods for rate-limited weighted best effort scheduling |