JP2003092598A - パケット転送処理装置 - Google Patents

パケット転送処理装置

Info

Publication number
JP2003092598A
JP2003092598A JP2001282839A JP2001282839A JP2003092598A JP 2003092598 A JP2003092598 A JP 2003092598A JP 2001282839 A JP2001282839 A JP 2001282839A JP 2001282839 A JP2001282839 A JP 2001282839A JP 2003092598 A JP2003092598 A JP 2003092598A
Authority
JP
Japan
Prior art keywords
packet
packet identification
information
hardware
condition
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
Application number
JP2001282839A
Other languages
English (en)
Inventor
Yukinori Suda
幸憲 須田
Yasuhiko Matsunaga
泰彦 松永
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2001282839A priority Critical patent/JP2003092598A/ja
Priority to US10/244,511 priority patent/US20030053460A1/en
Publication of JP2003092598A publication Critical patent/JP2003092598A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags

Landscapes

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

Abstract

(57)【要約】 【課題】 専用のハードウェアを用いてパケット識別処
理を行うパケット転送処理装置において、(1) 新たなパ
ケット識別条件の動的な追加/ 変更、(2) パケット識別
処理順序の動的な変更、(3) 直前のパケット識別結果に
応じて次に処理すべきパケット識別処理の選択、を可能
とする。 【解決手段】 外部インタフェース40を介してデータレ
ジスタ62にはヘッダ情報が、分岐条件レジスタ64には識
別処理順序を含む分岐条件情報が、組み合わせレジスタ
63には適用すべき識別条件のフィールドの組み合わせ情
報が格納される。変換回路100,シーケンサ110 は分岐条
件情報と組み合わせ情報に基づき、ヘッダ情報から必要
なフィールドのみを抽出し検索キーを生成する。CAM コ
ントローラは、この検索キーを用いてCAM に対して検索
処理を行う。シーケンサ110 は検索結果と分岐条件情報
に基づき、次に行うべきパケット識別処理があるか否か
を判定する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、パケット処理技術
に関し、特に、専用のハードウェアを用いてパケット識
別処理を行うパケット転送処理装置に関する。
【0002】
【従来の技術】近年、CATVアクセスやxDSLに代表される
高速IP(Internet Protocol) アクセス系が急速に普及し
ている。CATVアクセスやxDSLは、例えば2000年4月、日
経コミュニケーション、第316 号に詳細に記載されてい
る。これらの高速IPアクセス系では、現状Best-Effort
型のインターネット接続サービスが中心であったが、今
後はIPベースの電話やビデオサービスの提供が期待され
ている。特にIP電話サービスを通話毎の課金を伴う公衆
接続サービスとして提供するためには、加入者電話サー
ビスと同等以上のサービス品質やセキュリティの確保が
必須である。このため、加入者宅内のモデムを直接収容
するエッジノードは、加入者/サービス毎のパケットの
識別を行い、識別結果に応じてQoS/ポリシー制御やパケ
ット転送処理を行う必要がある。ここでのパケット識別
処理とは、パケットヘッダの任意のフィールド、もしく
は任意のフィールドを組み合わせて生成した検索キーを
用いて、データベースに予め登録されているパケット識
別条件との比較を行う処理である。エッジノードでは、
パケットフィルタリング、パケット転送及びフロー識別
処理を必要に応じて順次処理するが、用途に応じて検索
キーが異なるため、異なる検索キーのパケット識別処理
を複数回連続して行う必要がある。
【0003】一般的に、パケット識別処理をハードウェ
ア処理で行う場合、パケット識別条件を保持するメモリ
としてマスク付きCAM(Content Addressable Memory) を
用いることにより、パケット識別処理を高速化できるこ
とが知られている。マスク付きCAM を用いたパケット識
別処理については、例えばA. McAuley, et al.,"FastRo
uting Table Lookup Using CAMs", IEEE Infocom '93,
San Francisco, USA,1993 に詳細に記載されている。CA
M を用いたパケット識別処理装置では、パケット識別処
理の高速性を重視し、パケット識別処理の用途に特化し
てハードウェアが設計されているため、予め決められた
検索キーによるパケット識別処理を決められた順序でパ
イプライン的に処理されている。
【0004】また、ASICやFPGAを用いたパケット識別処
理も検討されている。FPGAにおいて内部のRAM をCAM と
して論理合成することが可能であり、このようなFPGAを
用いたハードウェアはCAM ICを用いたハードウェアと同
等の機能を実現することができる。CAM を内蔵したFPGA
については、例えばhttp://www.xilinx.co.jp/xapp/j_
xapp201 _1 _2. pdfに詳細に記載されている。
【0005】これらの専用ハードウェアを用いたパケッ
ト識別処理装置では、ハードウェア的な制約によりパケ
ット識別条件を格納する記憶領域が小さい傾向にある。
【0006】一方、特開平11−331268号公報に
は、パケット受信時、検索エンジンが受信パケットにつ
いてプロトコル毎に可変設定可能な条件に従って生成さ
れるキーに対応するエントリをフローデータベースから
検索するパケット中継装置が記載されている。しかし、
このパケット中継装置は、1つの受信パケットに対して
1回のパケット識別処理(ルーティング処理)のみをハ
ードウェア処理しており、1つの受信パケットに対して
複数回のパケット識別処理をハードウェアではなく、ソ
フトウェアで処理している。
【0007】
【発明が解決しようとする課題】第1の問題点は、新た
に異なる検索キーを必要とするパケット識別処理を追加
する場合もしくは検索キーを変更する場合に、ハードウ
ェアの変更が必要となることである。その理由は、処理
の高速化を図るため、予め決められた検索キーのパケッ
ト識別処理を決められた順序で処理する構成でタイミン
グ設計されているためである。
【0008】第2の問題点は、検索キーの異なる複数の
パケット識別処理の順序を動的に入れ替えることができ
ないことである。その理由は、処理を高速化するため
に、予め決められた検索キーのパケット識別処理を決め
られた順序で処理する構成でハードウェア設計されてい
るためである。
【0009】第3の問題点は、直前のパケット識別処理
結果に応じて次に実行するパケット識別処理を動的に変
更できないことである。その理由は、処理を高速化する
ために、予め決められた検索キーのパケット識別処理を
決められた順序で処理する構成でハードウェア設計され
ているためである。
【0010】第4の問題点は、パケット識別条件を格納
する領域が小さいことである。その理由は、ハードウェ
ア的に制約されているためである。
【0011】第5の問題点は、マスク付きCAM を用いた
パケット識別処理において、パケット識別条件の一部の
フィールドを数値範囲で指定する必要がある場合、数値
範囲の値によっては格納効率が悪くなることである。そ
の理由は、マスク付きCAM に設定する各エントリは必ず
(データ、マスク)の形式で表現しなければならないた
め、指定する数値範囲の値によっては、1 つのパケット
識別条件に対しても多数のエントリが必要になるためで
ある。
【0012】そこで、本発明の第1の目的は、ハードウ
ェアを変更することなく、異なる検索キーを使用する新
たなパケット識別処理の追加もしくは検索キーの変更を
可能にすることにある。
【0013】本発明の第2の目的は、ハードウェアを変
更することなく、検索キーの異なる複数のパケット識別
処理の順序を動的に入れ替えることができるようにする
ことにある。
【0014】本発明の第3の目的は、ハードウェアを変
更することなく、直前のパケット識別処理の処理結果に
応じて次に実行するパケット識別処理を動的に変更でき
るようにすることにある。
【0015】本発明の第4の目的は、パケット識別条件
の格納領域を効率的に使用することにある。
【0016】
【課題を解決するための手段】本発明のパケット転送処
理装置は、パケット識別処理を行う専用のハードウェア
が、外部から指定されたパケットのヘッダ情報のフィー
ルドの組み合わせに基づき、パケット識別処理で使用す
る検索キーを生成する手段を有する。これにより、上記
した第1の目的を達成することができる。
【0017】また、本発明のパケット転送処理装置は、
パケット識別処理を行う専用のハードウェアが、パケッ
ト識別処理を行う毎に、その処理結果と外部から指定さ
れている分岐条件情報とに従って、パケットに対する処
理を終了するか、或いは分岐条件情報によって次に実行
することが指示されているパケット識別処理を実行する
手段を有する。これにより、上記した第2,第3の目的
を達成することができる。
【0018】更に、本発明のパケット転送処理装置は、
ハードウェアが、前記複数のパケット識別条件を格納す
る格納領域を有し、この格納領域には、パケット識別条
件としてパケットのヘッダ情報の各フィールドの内の、
パケット識別処理に必要になるフィールドの値のみを格
納する。これにより、上記した第4の目的を達成するこ
とができる。
【0019】また、本発明のパケット転送処理装置は、
パケット識別条件が、下限値と上限値とによって示され
る数値範囲を含み、ハードウェアが、パケット識別条件
中の数値範囲の部分については、検索キーの該当する部
分によって示される数値が上記数値範囲内に存在する場
合、上記パケット識別条件中の数値範囲の部分と上記検
索キーの該当する部分とが一致すると判定する構成を有
する。これにより、上記した第4の目的が達成される。
【0020】
【発明の実施の形態】次に本発明の実施の形態について
図面を参照して詳細に説明する。
【0021】図1を用いて、本発明に係るパケット転送
処理装置1200の第1の実施例を説明する。パケット転送
処理装置1200は、内部にRAM 等の記憶回路1220を有する
プロセッサ1210と、パケット識別処理を行う専用ハード
ウェア10とから構成されている。プロセッサ1210は、パ
ケットヘッダ入出力インタフェース1230を介してパケッ
トヘッダの入出力を行い、また、専用ハードウェア10と
は外部インタフェース40により接続されている。また、
専用ハードウェア10は外部登録インタフェース120 を備
えている。ここでの、専用ハードウェア10は、例えば、
図2に示す構成を有する。
【0022】図2に示されるように、第1の実施例の専
用ハードウェア10は、CAM コントローラ20とCAM30 によ
り構成され、CAM コントローラ20は、外部インタフェー
ス40を持ち、CAM コントローラ20とCAM30 は内部インタ
フェース50により接続されている。また、CAM30 は、外
部登録インタフェース120 を持っている。
【0023】パケット転送処理装置1200が、パケット識
別処理を行うパケットのフレームフォーマットを図19
に示す。パケットフレーム200 は、L2(レイヤ2)ヘッ
ダ情報210 、L3(レイヤ3)ヘッダ情報220 、L4(レイ
ヤ4)ヘッダ情報230 及びデータフレーム240 により構
成され、さらにL2ヘッダ情報210 はフィールド#1(221)
〜#4(224) 、L3ヘッダ情報220 はフィールド#1(221) 〜
#2(222) 、L4ヘッダ情報230 はフィールド#1(231) 〜#2
(232) により構成される。
【0024】専用ハードウェア10内のCAM コントローラ
20は、例えば、図3のブロック図に示す構成を有する。
【0025】CAM コントローラ20は、レジスタ群61と変
換回路100 とシーケンサ110 とから構成されている。レ
ジスタ群61は、データレジスタ62、組み合わせレジスタ
63、分岐条件レジスタ64、制御レジスタ65、検索結果レ
ジスタ66及びアドレスレジスタ67の6つのレジスタから
構成される。最初のデータレジスタ62は、パケットのL2
〜L4ヘッダ情報を保持するためのレジスタである。次の
組み合わせレジスタ63は、パケット識別処理に適用すべ
きヘッダ情報のフィールドを指定する組み合わせ情報を
保持するためのレジスタである。分岐条件レジスタ64は
分岐条件情報を保持するためのレジスタであり、詳細に
ついては後述する。また制御レジスタ65は、動作の開始
及び終了を通知するための開始フラグ及び終了フラグを
保持するレジスタであり、検索結果レジスタ66は、検索
結果(hit or miss) を保持するためのレジスタであり、
最後のアドレスレジスタ67は、検索処理したデータと一
致したパケット識別条件のメモリアドレスを保持するた
めのレジスタである。
【0026】シーケンサ110 は、データレジスタ62, 組
み合わせレジスタ63の内容を変換回路100 に通知する機
能や、分岐条件レジスタ64に保持されている分岐条件情
報中のグループ情報をCAM30 へ通知する機能や、CAM30
の検索結果, 検索アドレスを検索結果レジスタ66, アド
レスレジスタ67に格納する機能や、分岐条件レジスタ64
に格納されている分岐条件情報と検索結果とに基づいて
次に行う処理を決定する機能等を有している。また、シ
ーケンサ110 は、内部インタフェース90,91を介してそ
れぞれレジスタ群61,変換回路100 と接続され、検索制
御線300,グループ指定データ線320,検索結果データ線33
0,検索アドレスデータ線340 を介してCAM30 と接続され
ている。
【0027】変換回路100 は、シーケンサ110 から通知
されたデータレジスタ62及び組み合わせレジスタ63の内
容に基づいて、パケット識別処理に利用する検索キーの
一部を生成する機能を有する。また、変換回路100 は、
内部インタフェース91を介してシーケンサ110 と接続さ
れ、パケット識別条件データ線310 を介してCAM30 と接
続されている。
【0028】図4にCAM30 の系統図を示す。CAM30 は、
検索制御線300,グループ指定データ線320,検索結果デー
タ線330,検索アドレスデータ線340 によりシーケンサ11
0 と接続され、パケット識別条件データ線310 により変
換回路100 と接続されている。また、CAM30 は、外部登
録インタフェース120 を備えている。
【0029】次に本実施例の動作を説明する。
【0030】プロセッサ1210では、ソフトウェアが動作
しており、このソフトウェアは、パケットヘッダ入出力
インタフェース1230を介してパケットヘッダが入力され
ると、ヘッダ情報を外部インタフェース40を介してデー
タレジスタ62にセットし、更に、予め決められているフ
ィールドの組み合わせ情報と分岐条件情報をそれぞれ組
み合わせレジスタ63と分岐条件レジスタ64とにセットす
る(図5,ステップS51〜ステップS53)。尚、組み合
わせ情報には、専用ハードウェア10が1つのパケットに
対して行う可能性がある、検索キーを異にする複数種類
のパケット識別処理それぞれに対するフィールドの組み
合わせ情報が含まれている。各レジスタ62〜64にデータ
をセットすると、制御レジスタ65に動作開始を通知する
フラグをセットする(ステップS54)。
【0031】これを受けて、内部インタフェース90を介
して一定の周期で制御レジスタ65の内容を読み出してい
るシーケンサ110 は、動作開始を検出し、まずデータレ
ジスタ62と組み合わせレジスタ63に保持されている情報
をそれぞれ読み出し、読み出したデータを内部インタフ
ェース91経由で変換回路100 に通知する(図6,ステッ
プS61)。尚、組み合わせ情報を通知する際には、第1
回目に行うパケット識別処理に対応するものを変換回路
100 に通知する。その後、分岐条件レジスタ64から分岐
条件情報を読み出し、分岐条件情報に含まれるグループ
情報をグループ指定データ線320 に出力する(ステップ
S62)。尚、グループ情報を出力する際には、第1回目
のパケット識別処理に対応するものを出力する。
【0032】ここで、グループ情報と分岐条件情報につ
いて詳細に説明をしておく。第1の実施例でのCAM30 が
保持するデータ例を図8に示す。CAM 内データ500 は、
CAMアドレス530 とCAM データ値510 とCAM マスク値520
と から構成されており、CAM データ値510 は、識別条
件グループ540 、L2ヘッダデータ550 、L3ヘッダデータ
560 及びL4ヘッダデータ570 から構成されている。ここ
でのCAM アドレス530 は、CAM30 内部のアドレスであ
る。また、グループとはパケット識別条件のグループで
あり、グループ毎に設定されているパケット識別条件が
異なる。例えば、グループ#0,#1,#3のパケット識別条件
はL2〜L4までのすべてのヘッダ情報が指定されている。
一方、グループ#2のパケット識別条件はL2のヘッダ情報
のみが規定されている。従って、パケット識別処理の際
にグループ番号を指定することにより、識別処理すべき
パケット識別条件を指定することが可能となる。また、
新たなパケット識別条件を追加する場合には、新たにグ
ループ番号mのグループ#mを生成し、設定するパケット
識別条件のデータの前にグループ#mを継ぎ足してCAM30
内に格納する。尚、このような処理は、例えば、外部登
録インタフェース120 を用いて行う。グループ情報は適
用すべき識別条件グループを指定するために利用され
る。
【0033】次に、分岐条件情報について詳細に説明す
る。第1の実施例での動作フローと分岐条件情報を図9
及び図10に示す。図9に示す動作フロー800 は以下に
述べる動作を示している。第1回目の実行命令820 はグ
ループ#0に対してパケット識別処理を実行し、同一のパ
ケット識別条件が存在した場合(hit) には第2回目の実
行命令830 を引き続き実行する。また同一のパケット識
別条件が存在しなかった場合(miss)には処理を終了す
る。第2回目の実行命令830 はグループ#1に対してパケ
ット識別処理を実行し、同一のパケット識別条件が存在
した場合(hit)には処理を終了し、同一のパケット識別
条件が存在しない場合(miss) には第3回目の実行命令8
40 を引き続き実行する。また、第3回目の実行命令840
は、グループ#2に対してパケット識別処理を実行し、
同一のパケット識別条件が存在した場合(hit) には第4
回目の実行命令850 を引き続き実行し、同一のパケット
識別条件が存在しない場合(miss)には処理を終了する。
第4回目の実行命令850 の処理終了後には、検索結果に
係わらず処理を終了する。
【0034】例えば、これら一連の動作に於ける、第1
回目のパケット識別処理は、パケットフィルタリング処
理(Permit Filter),第2回目のパケット識別処理は、パ
ケットフィルタリング処理(Deny Filter), 第3回目の
パケット識別処理は、ルーティング処理,第4回目のパ
ケット識別処理は、Classifier処理に対応させることが
できる。図9の動作フロー800 を表としてまとめたもの
が図10に示す分岐条件情報810 である。前述の分岐条
件レジスタ64には、図10に示す分岐条件情報810 が保
持されている。
【0035】ここで、再び動作説明に戻り、変換回路10
0 は、内部インタフェース91を介してシーケンサ110 よ
りヘッダ情報と組み合わせ情報が通知されると、組み合
わせ情報に基づきヘッダ情報からフィールドを抽出する
ことにより検索キーの一部を生成し、それをパケット識
別条件データ線310 を介してCAM30 に出力した後、内部
インタフェース91を介してシーケンサ110 に変換終了を
通知する(図7,ステップS71〜ステップS73)。
【0036】シーケンサ110 は、内部インタフェース91
を介して変換回路100 からの変換終了通知を受信すると
(図6,ステップS63)、検索制御線300 を介してCAM3
0 に対して処理開始を通知し、その後、待ち状態になる
(ステップS64)。
【0037】CAM30 は、検索制御線300 を介してシーケ
ンサ110 から処理開始が通知されると、パケット識別条
件データ線310 を介して変換回路100 から取得したデー
タ(ヘッダ情報から組み合わせ情報に従ってフィールド
を抽出したもの)の前に、グループ指定データ線320 を
介してシーケンサ110 から取得したデータ(グループ情
報)を連結して検索キーを生成する。CAM30 は、この検
索キーを用いてCAM 内データ500 に対して検索処理を行
う。CAM30 は、内部のすべてのデータ(CAM データ値51
0 に対してCAM マスク値520 でマスクしたデータ)と検
索キーとの完全一致検索を行う。その結果、検索キーと
完全に一致した場合には、検索結果データ線330 にhit
を出力し、その一致したデータが格納されるCAM アドレ
スを検索アドレスデータ線340 に出力する。また複数の
データと一致した場合には、最も小さいCAM アドレスを
出力する。さらに検索キーと完全に一致するものがなか
った場合には、検索結果データ線330 にmissを出力し、
検索アドレスデータ線340には何も出力しない。検索処
理が終了すると、検索制御線300 を介してシーケンサ11
0 に対し、検索終了を通知する。
【0038】待ち状態にあるシーケンサ110 は、検索制
御線300 を介してCAM30 から検索終了を受信すると(図
6,ステップS65)、検索結果データ線330 から検索結
果情報を、検索アドレスデータ線340 からアドレス情報
を取得し、それぞれ検索結果レジスタ66とアドレスレジ
スタ67にセットする(ステップS66)。更に、シーケン
サ110 は、分岐条件レジスタ64から分岐条件情報を読み
出し、分岐条件情報と前回の検索結果情報(第1回目の
パケット識別処理の検索結果情報)から次に行うべきパ
ケット識別処理の判定を行い、次に行うべきパケット識
別処理が存在する場合(ステップS67がYES)には、
内部インタフェース91を介して変換回路100 にデータレ
ジスタ62の内容と、組み合わせレジスタ63の内容の内
の、第2回目のパケット識別処理に対する組み合わせ情
報を通知すると共に、分岐条件レジスタ64に保持されて
いる情報の内の該当するグループ情報(第2回目のパケ
ット識別処理に対するグループ情報)をグループ指定デ
ータ線320 に出力する(ステップS61,ステップS6
2)。以後、ステップS67の判断結果がNOとなるま
で、前述したと同様の動作が行われ、ステップS67の判
断結果がNOとなると、シーケンサ110 は、内部インタ
フェース90を介して制御レジスタ65に動作終了を示すフ
ラグをセットする(ステップS68)。
【0039】制御レジスタ65に動作開始を示すフラグを
セットしてから周期的に制御レジスタ65の内容を読み出
しているプロセッサ1210は、動作終了のフラグを検知す
ると(図5のステップS55がYES)、検索結果レジス
タ66及びアドレスレジスタ67の内容に従った処理を行う
(ステップS56)。ステップS56では、例えば、検索結
果レジスタ66にセットされている第1回目のパケット識
別処理の検索結果がhit の場合、アドレスレジスタ67に
セットされている第1回目のパケット識別処理のアドレ
ス情報に対応する処理内容を記憶回路1220から読み出
し、パケットヘッダに処理内容を格納した拡張ヘッダを
連結する。これに対して、検索結果レジスタ66にmissが
セットされている場合は、ダミーヘッダを連結する。こ
れらの処理を、実行されたパケット識別処理の回数分だ
け繰り返し、最終的に生成されたパケットヘッダをパケ
ットヘッダ入出力インタフェース1230に出力する(ステ
ップS57)。
【0040】次に本発明の第2の実施例について説明す
る。本実施例は、図1に示したパケット転送処理装置12
00に於いて、専用ハードウェア10の代わりに、図11に示
す構成を有する専用ハードウェア10aを使用することに
より実現される。
【0041】図11に示されるように、第2の実施例の
専用ハードウェア10aは、CAM コントローラ20とゲート
アレイ60により構成され、CAM コントローラ20は外部イ
ンタフェース40を持ち、CAM コントローラ20とゲートア
レイ60は内部インタフェース50により接続されている。
CAM コントローラ20は第1の実施例と同様の動作を行
う。以下では、ゲートアレイ60の構成,動作を詳細に説
明する。
【0042】ゲートアレイ60の構成例を図12のブロッ
ク図に示す。ゲートアレイ60は、判定回路440 を内部に
有するメモリ制御回路400 と、メモリ410 により構成さ
れ、メモリ410 は、図13に示すメモリ内データ600 を
保持している。メモリ内データ600 は、メモリアドレス
610 と識別条件グループ620 とヘッダデータ630 から構
成されている。このヘッダデータ630 において、グルー
プ#0,#1,#3のL4ヘッダデータ700は図14に示すような
上限値720 と下限値710 とから構成されている。尚、図
14では、メモリアドレスをグループ#3に割り当てられ
ているアドレス#300,#301,…とし、グループ#3のL4ヘッ
ダが格納されている様子を示している。また、グループ
#2は、L3ヘッダのみを必要とするパケット識別処理用の
グループであり、L3ヘッダのみがパケット識別条件とし
て設定されている。このように、パケット識別処理に必
要になるフィールドのみをパケット識別条件として登録
することにより、メモリを効率的に使用することが可能
になる。
【0043】メモリ制御回路400 は、検索制御線300 を
介してシーケンサ110 から処理開始を受信すると、グル
ープ指定データ線320 を介して指定されたグループのデ
ータを格納しているメモリアドレスを、その値が小さい
順にメモリアドレス線420 に出力する。一方、メモリ41
0 はメモリアドレス線420 を介して受信したメモリアド
レスに格納されているメモリデータをメモリデータ線43
0 に介して出力する。これを受けて、メモリ制御回路40
0 はメモリデータ線430 から受信したデータと、パケッ
ト識別条件データ線310 から受信したパケット識別条件
データの比較処理を判定回路440 で行う。このようにし
てメモリ制御回路400 は比較処理を行い、完全にデータ
が一致するまで、もしくは指定されたグループのデータ
を格納している最後のアドレスになるまで、比較処理を
繰り返し行う。比較処理を行った結果、一致したデータ
が存在した場合には検索結果データ線330 にhit を、検
索アドレスデータ線340 に一致したデータを格納してい
るメモリアドレス610 を出力し、一致したデータが存在
しない場合には検索結果データ線330 にmissを出力す
る。検索結果データ線330 と検索アドレスデータ線340
への出力が終了すると、検索制御線300 を介してシーケ
ンサ110 に動作の終了を通知する。以後の動作は、第1
の実施例と同様である。
【0044】次に、第2の実施例におけるパケット識別
処理の判定を行う判定回路440 の構成例を図15に示
す。判定回路440 は、L2判定器1000,L3判定器1010,L4
判定器990 及びAND 回路1080により構成される。
【0045】L2判定器1000は、メモリデータ線430、L2
識別条件信号1020を介して入力されたヘッダデータ630
中のL2ヘッダデータとメモリ制御回路400 がパケット識
別条件データ線310 を介して入力したデータ中のL2識別
条件データ信号1030との比較判定を行い、完全に一致し
ていた場合にはhit を示す“High”を、完全に一致しな
かった場合にはmissを示す“Low ”をL2判定出力信号10
60に出力する。同様に、L3判定器1010は、メモリデータ
線430、L3識別条件信号1040を介して入力されたヘッダ
データ630 中のL3識別条件データとメモリ制御回路400
がパケット識別条件データ線310 を介して入力したデー
タ中のL3識別条件データ信号1050との比較判定を行い、
完全に一致していた場合にはhit を示す“High”を、完
全に一致しなかった場合にはmissを示す“Low ”をL3判
定出力信号1070に出力する。
【0046】さらにL4判定器990 は、比較器900,910
と、判定器920 とから構成されており、比較器900 は、
メモリデータ線430,L4識別条件下限値信号950 を介して
入力されたL4下限値とメモリ制御回路400 がパケット識
別条件データ線310 を介して入力したデータ中のL4識別
条件データ信号970 との比較を行う。判定器900 の入力
と出力との関係を図16に示す。同図の入出力表1100に
示すように、L4識別条件データ信号970 の値がL4下限値
710 以上である場合は、比較出力信号930 に“High”を
出力し、L4識別条件データ信号970 の値がL4下限値710
未満である場合は、比較出力信号930 に“Low ”を出力
する。
【0047】同様に、比較器910 は、L4識別条件上限値
信号960 を介して入力されたL4上限値720 とメモリ制御
回路400 がパケット識別条件データ線310 を介して入力
したL4識別条件データ信号970 との比較を行う。判定器
910 の入力と出力との関係を図17に示す。同図の入出
力表1110が示すように、L4識別条件データ信号970 の値
がL4上限値720 以下である場合は、比較出力信号940 に
“High”を出力し、L4識別条件データ信号970 の値がL4
上限値720 より大きい場合は、比較出力信号940 に“Lo
w ”を出力する。
【0048】後段の判定器920 は、入力される2つの比
較出力信号930,940 に対して、図18に示す真理値表11
20に応じてL4判定出力信号980 を出力する。同図の真理
値表1120が示すように、入力される2つの比較出力信号
930,940 が共に“High”の場合のみ判定器920 は、L4判
定出力信号980 に“High”を出力し、それ以外の場合は
すべて“Low ”を出力する。最後に、L4判定出力信号98
0,L2判定出力信号1060及びL3判定出力信号1070の3つの
信号は、AND 回路1080を介して識別判定出力信号1090と
して出力される。
【0049】
【発明の効果】第1の効果は、異なる検索キーを用いた
パケット識別処理を複数回連続して行うパケット転送処
理装置に於いて、ハードウェアを変更することなく、異
なる検索キーを使用する新たなパケット識別処理の追加
もしくは検索キーの変更が可能になるという点である。
その理由は、複数種類のパケット識別処理それぞれに対
するヘッダ情報のフィールドの組み合わせ方を示す組み
合わせ情報を、ハードウェア外部から指定することがで
きるからである。
【0050】第2の効果は、ハードウェアを変更するこ
となく、検索キーの異なる複数のパケット識別処理の順
序を動的に入れ替えることができるという点である。そ
の理由は、パケット識別処理の処理結果と次に実行すべ
き処理との対応関係を示す分岐条件情報をハードウェア
外部から指定できるからである。
【0051】第3の効果は、専用ハードウェア内部にあ
るパケット識別条件を格納するための格納領域を効率的
に使用できるという点である。その1つの理由は、格納
領域に、パケット識別条件としてパケットのヘッダ情報
の各フィールドの内の、パケット識別処理に必要になる
フィールドの値のみを格納するようにしたからである。
そのもう1つの理由は、パケット識別条件のあるフィー
ルドがその識別条件として数値の範囲で指定されている
場合に、数値の範囲の上限値及び下限値をパケット識別
条件として格納領域に格納するからである。
【図面の簡単な説明】
【図1】パケット転送処理装置1200の構成例を示すブロ
ック図である。
【図2】本発明の第1の実施例を説明するための専用ハ
ードウェア10の構成例を示すブロック図である。
【図3】本発明の第1の実施例を説明するためのCAM コ
ントローラ20の構成例を示すブロック図である。
【図4】本発明の第1の実施例を説明するためのCAM30
の系統図である。
【図5】プロセッサ1210の処理例を示す流れ図である。
【図6】シーケンサ110 の処理例を示す流れ図である。
【図7】変換回路100 の処理例を示す流れ図である。
【図8】本発明の第1実施例を説明するためのCAM 内デ
ータ図である。
【図9】分岐条件情報を説明するための動作フロー図で
ある。
【図10】分岐条件情報の一例を示す図である。
【図11】本発明の第2の実施例を説明するための専用
ハードウェア10aの構成例を示すブロック図である。
【図12】本発明の第2の実施例を説明するためのゲー
トアレイ60の構成例を示すブロック図である。
【図13】本発明の第2の実施例を説明するためのメモ
リ内データ図である。
【図14】本発明の第2の実施例を説明するためのL4ヘ
ッダデータ図である。
【図15】本発明の第2の実施例を説明するための判定
回路440 の構成例を示すブロック図である。
【図16】本発明の第2の実施例を説明するための比較
器900 の入出力表を示す図である。
【図17】本発明の第2の実施例を説明するための比較
器910 の入出力表を示す図である。
【図18】本発明の第2の実施例を説明するためのL4判
定器990 の真理値表を示す図である。
【図19】本発明の第1及び第2の実施例を説明するた
めのパケットのフレームフォーマット図である。
【符号の説明】
10,10a:専用ハードウェア 20:CAM コントローラ 30:CAM 40:外部インタフェース 50:内部インタフェース 60:ゲートアレイ 61:レジスタ群 62:データレジスタ 63:組み合わせレジスタ 64:分岐条件レジスタ 65:制御レジスタ 66:検索結果レジスタ 67:アドレスレジスタ 90,91:内部インタフェース 100 :変換回路 110 :シーケンサ 120 :外部登録インタフェース 200 :パケットフレーム 210 :L2ヘッダ情報 211 :L2ヘッダフィールド#1 212 :L2ヘッダフィールド#2 213 :L2ヘッダフィールド#3 214 :L2ヘッダフィールド#4 220 :L3ヘッダ情報 221 :L3ヘッダフィールド#1 222 :L3ヘッダフィールド#2 230 :L4ヘッダ情報 231 :L4ヘッダフィールド#1 232 :L4ヘッダフィールド#2 240 :データフレーム 300 :検索制御線 310 :パケット識別条件データ線 320 :グループ指定データ線 330 :検索結果データ線 340 :検索アドレスデータ線 400 :メモリ制御回路 410 :メモリ 420 :メモリアドレス線 430 :メモリデータ線 440 :判定回路 500 :CAM 内データ 510 :CAM データ値 520 :CAM マスク値 530 :CAM アドレス 540 :識別条件グループ 550 :L2ヘッダデータ 560 :L3ヘッダデータ 570 :L4ヘッダデータ 600 :メモリ内データ 610 :メモリアドレス 620 :識別条件グループ 630 :ヘッダデータ 700 :L4ヘッダデータ 710 :下限値 720 :上限値 800 :動作フロー 810 :分岐条件情報 820 :第1回目の実行命令 830 :第2回目の実行命令 840 :第3回目の実行命令 850 :第4回目の実行命令 900 ,910 :比較器 920 :判定器 930 ,940 :比較出力信号 950 :L4識別条件下限値信号 960 :L4識別条件上限値信号 970 :L4識別条件データ信号 980 :L4判定出力信号 990 :L4判定器 1000:L2判定器 1010:L3判定器 1020:L2識別条件信号 1030:L2識別条件データ信号 1040:L3識別条件信号 1050:L3識別条件データ信号 1060:L2判定出力信号 1070:L3判定出力信号 1080:AND 回路 1090:識別判定出力信号 1100,1110:入出力表 1120:真理値表 1200:パケット転送処理装置 1210:プロセッサ 1220:記憶回路1230:パケットヘッダ入出力インタ
フェース

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 入力されるパケットのヘッダ情報と、予
    め定められている複数のパケット識別条件とに基づい
    て、前記パケットに対して検索キーを異にする複数種類
    のパケット識別処理を実行するハードウェアを備えたパ
    ケット転送処理装置に於いて、 前記ハードウェアが、 外部から指定された前記複数種類のパケット識別処理そ
    れぞれに対するヘッダ情報のフィールドの組み合わせ方
    を示す組み合わせ情報と、前記パケットのヘッダ情報と
    に基づいて、前記複数種類のパケット識別処理それぞれ
    に於いて使用する検索キーを生成する手段を備えたこと
    を特徴とするパケット転送処理装置。
  2. 【請求項2】 入力されるパケットのヘッダ情報と、予
    め定められている複数のパケット識別条件とに基づい
    て、前記パケットに対して検索キーを異にする複数種類
    のパケット識別処理を実行するハードウェアを備えたパ
    ケット転送処理装置に於いて、 前記ハードウェアが、 パケット識別処理を実行する毎に、その処理結果と、外
    部から指定されている前記各種類のパケット識別処理の
    処理結果と次に実行すべき処理との対応関係を示す分岐
    条件情報とに従って、前記パケットに対する処理を終了
    するか、或いは前記分岐条件情報によって次に実行する
    ことが指示されている種類のパケット識別処理を実行す
    る手段を有することを特徴とするパケット転送処理装
    置。
  3. 【請求項3】 入力されるパケットのヘッダ情報と、予
    め定められている複数のパケット識別条件とに基づい
    て、前記パケットに対して検索キーを異にする複数種類
    のパケット識別処理を実行するハードウェアを備えたパ
    ケット転送処理装置に於いて、 前記ハードウェアが、 パケット識別処理を実行する毎に、その処理結果と、外
    部から指定されている前記各種類のパケット識別処理の
    処理結果と次に実行すべき処理との対応関係を示す分岐
    条件情報とに従って、前記パケットに対する処理を終了
    するか、或いは前記分岐条件情報によって次に実行する
    ことが指示されている種類のパケット識別処理を、前記
    ヘッダ情報と外部から指定された前記複数種類のパケッ
    ト識別処理それぞれに対するヘッダ情報のフィールドの
    組み合わせ方を示す組み合わせ情報とによって生成した
    検索キーを使用して実行する手段を備えたことを特徴と
    するパケット転送処理装置。
  4. 【請求項4】 請求項1乃至3記載の何れか1つのパケ
    ット転送処理装置に於いて、 前記ハードウェアが、前記複数のパケット識別条件を格
    納する格納領域を有し、 該格納領域には、パケット識別条件としてパケットのヘ
    ッダ情報の各フィールドの内の、パケット識別処理に必
    要になるフィールドの値のみが格納されることを特徴と
    するパケット転送処理装置。
  5. 【請求項5】 請求項1乃至3記載の何れか1つのパケ
    ット転送処理装置に於いて、 前記パケット識別条件が、下限値と上限値とによって示
    される数値範囲を含み、 前記ハードウェアが、前記パケット識別条件中の数値範
    囲の部分については、検索キーの該当する部分によって
    示される数値が前記数値範囲内に存在する場合、前記パ
    ケット識別条件中の前記数値範囲の部分と前記検索キー
    の該当する部分とが一致すると判定する構成を有するこ
    とを特徴とするパケット転送処理装置。
JP2001282839A 2001-09-18 2001-09-18 パケット転送処理装置 Pending JP2003092598A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2001282839A JP2003092598A (ja) 2001-09-18 2001-09-18 パケット転送処理装置
US10/244,511 US20030053460A1 (en) 2001-09-18 2002-09-17 Packet forwarding processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001282839A JP2003092598A (ja) 2001-09-18 2001-09-18 パケット転送処理装置

Publications (1)

Publication Number Publication Date
JP2003092598A true JP2003092598A (ja) 2003-03-28

Family

ID=19106434

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001282839A Pending JP2003092598A (ja) 2001-09-18 2001-09-18 パケット転送処理装置

Country Status (2)

Country Link
US (1) US20030053460A1 (ja)
JP (1) JP2003092598A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009049698A (ja) * 2007-08-20 2009-03-05 Fuji Xerox Co Ltd 通信制御装置、プログラムおよび画像形成装置
JP2009049699A (ja) * 2007-08-20 2009-03-05 Fuji Xerox Co Ltd 通信制御装置、プログラムおよび画像形成装置
WO2009075007A1 (ja) * 2007-12-12 2009-06-18 Duaxes Corporation 通信制御装置及び通信制御方法
JP2010211388A (ja) * 2009-03-09 2010-09-24 Canon Inc 検索装置及び検索方法
JP2015504196A (ja) * 2011-11-08 2015-02-05 ザイリンクス インコーポレイテッドXilinx Incorporated 集積回路内の組み込みメモリおよび専用プロセッサ構造

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7339943B1 (en) 2002-05-10 2008-03-04 Altera Corporation Apparatus and method for queuing flow management between input, intermediate and output queues
US7606248B1 (en) 2002-05-10 2009-10-20 Altera Corporation Method and apparatus for using multiple network processors to achieve higher performance networking applications
US7320037B1 (en) 2002-05-10 2008-01-15 Altera Corporation Method and apparatus for packet segmentation, enqueuing and queue servicing for multiple network processor architecture
US7277437B1 (en) * 2002-05-20 2007-10-02 Altera Corporation Packet classification method
US7336669B1 (en) 2002-05-20 2008-02-26 Altera Corporation Mechanism for distributing statistics across multiple elements
US7593334B1 (en) 2002-05-20 2009-09-22 Altera Corporation Method of policing network traffic
US20050080761A1 (en) * 2002-10-18 2005-04-14 Neoscale Systems Data path media security system and method in a storage area network
JP4355188B2 (ja) * 2003-10-03 2009-10-28 株式会社日立製作所 パケット転送装置
US7440460B2 (en) * 2004-03-05 2008-10-21 Samsung Electronics Co., Ltd. Apparatus and method for forwarding mixed data packet types in a high-speed router
JP5104514B2 (ja) * 2008-04-21 2012-12-19 富士通株式会社 パケット転送制御装置およびパケット転送制御方法
US8798057B1 (en) 2008-09-30 2014-08-05 Juniper Networks, Inc. Methods and apparatus to implement except condition during data packet classification
US8804950B1 (en) 2008-09-30 2014-08-12 Juniper Networks, Inc. Methods and apparatus for producing a hash value based on a hash function
US7738454B1 (en) * 2008-09-30 2010-06-15 Juniper Networks, Inc. Methods and apparatus related to packet classification based on range values
US7796541B1 (en) 2008-09-30 2010-09-14 Juniper Networks, Inc. Methods and apparatus for range matching during packet classification based on a linked-node structure
US7835357B2 (en) 2008-09-30 2010-11-16 Juniper Networks, Inc. Methods and apparatus for packet classification based on policy vectors
US7961734B2 (en) * 2008-09-30 2011-06-14 Juniper Networks, Inc. Methods and apparatus related to packet classification associated with a multi-stage switch
US8675648B1 (en) 2008-09-30 2014-03-18 Juniper Networks, Inc. Methods and apparatus for compression in packet classification
US7889741B1 (en) * 2008-12-31 2011-02-15 Juniper Networks, Inc. Methods and apparatus for packet classification based on multiple conditions
US8111697B1 (en) 2008-12-31 2012-02-07 Juniper Networks, Inc. Methods and apparatus for packet classification based on multiple conditions
US8488588B1 (en) 2008-12-31 2013-07-16 Juniper Networks, Inc. Methods and apparatus for indexing set bit values in a long vector associated with a switch fabric
CN102577273B (zh) * 2009-11-16 2015-06-03 马维尔国际贸易有限公司 反复解析和分类
US9282060B2 (en) 2010-12-15 2016-03-08 Juniper Networks, Inc. Methods and apparatus for dynamic resource management within a distributed control plane of a switch

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5909686A (en) * 1997-06-30 1999-06-01 Sun Microsystems, Inc. Hardware-assisted central processing unit access to a forwarding database
US5938736A (en) * 1997-06-30 1999-08-17 Sun Microsystems, Inc. Search engine architecture for a high performance multi-layer switch element
JP3381687B2 (ja) * 1999-11-25 2003-03-04 日本電気株式会社 フロー識別装置、フロー処理装置、フロー識別方法及びフロー処理方法
JP3449326B2 (ja) * 1999-12-08 2003-09-22 日本電気株式会社 データ検索システム及びパケット処理装置並びに制御方法
US6661791B1 (en) * 1999-12-28 2003-12-09 Mosaid Technologies, Inc. Method and apparatus for generating forward overrides in a packet switch
JP3386117B2 (ja) * 2000-01-11 2003-03-17 日本電気株式会社 マルチレイヤクラス識別通信装置と通信装置
US20020126672A1 (en) * 2001-01-10 2002-09-12 Nelson Chow Method and apparatus for a flexible and reconfigurable packet classifier using content addressable memory
US7167471B2 (en) * 2001-08-28 2007-01-23 International Business Machines Corporation Network processor with single interface supporting tree search engine and CAM

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009049698A (ja) * 2007-08-20 2009-03-05 Fuji Xerox Co Ltd 通信制御装置、プログラムおよび画像形成装置
JP2009049699A (ja) * 2007-08-20 2009-03-05 Fuji Xerox Co Ltd 通信制御装置、プログラムおよび画像形成装置
WO2009075007A1 (ja) * 2007-12-12 2009-06-18 Duaxes Corporation 通信制御装置及び通信制御方法
JP2010211388A (ja) * 2009-03-09 2010-09-24 Canon Inc 検索装置及び検索方法
US8700591B2 (en) 2009-03-09 2014-04-15 Canon Kabushiki Kaisha Search engine and search method
JP2015504196A (ja) * 2011-11-08 2015-02-05 ザイリンクス インコーポレイテッドXilinx Incorporated 集積回路内の組み込みメモリおよび専用プロセッサ構造

Also Published As

Publication number Publication date
US20030053460A1 (en) 2003-03-20

Similar Documents

Publication Publication Date Title
JP2003092598A (ja) パケット転送処理装置
US7890672B2 (en) Data processing apparatus and data transfer method
US6430190B1 (en) Method and apparatus for message routing, including a content addressable memory
US7382777B2 (en) Method for implementing actions based on packet classification and lookup results
TWI360978B (en) Network message processing using inverse pattern m
WO2020114239A1 (zh) 组播报文的处理方法及装置、存储介质、处理器
TW200301429A (en) A method of improving the lookup performance of tree-type knowledge base searches
US11588821B1 (en) Systems and methods for access control list (ACL) filtering
KR20070068377A (ko) 데이타 처리장치
US7403526B1 (en) Partitioning and filtering a search space of particular use for determining a longest prefix match thereon
US6570866B1 (en) High-speed flexible longest match retrieval
JPH0621942A (ja) ローカルエリアネットワークの課金装置
JP2002176431A (ja) パケット転送装置及びそれに用いる転送情報管理方法並びにその転送情報検索方法
CN111277612A (zh) 一种网络报文处理策略生成方法、系统及介质
US20050190752A1 (en) Method and system for locating the incoming port of a MAC address in an Ethernet switch network
CN112667526A (zh) 一种访问控制列表电路实现方法及其电路
US5146560A (en) Apparatus for processing bit streams
JPH10257066A (ja) ネットワークアドレス検索方式
US6661792B1 (en) Apparatus for processing data packet of ethernet switch system and method thereof
CN110971526B (zh) 一种混合交换机fdb资源的流表扩展方法及装置
KR101017536B1 (ko) 패턴 매칭을 사용하는 네트워크 메시지 처리
JP2001237881A (ja) テーブル型データ検索機構及びそれを用いるパケット処理システム並びにそのテーブル型データ検索方法
JP3837670B2 (ja) データ中継装置、連想メモリデバイス、および連想メモリデバイス利用情報検索方法
WO2022037571A1 (zh) 报文转发方法及装置,和计算机可读存储介质
JPH09102790A (ja) 受信フレームに対する高速処理方式