[go: up one dir, main page]

JP2000244577A - Trieメモリによって転送基準値をデータパケットと関連づける方法およびこの方法を用いたパケット処理装置 - Google Patents

Trieメモリによって転送基準値をデータパケットと関連づける方法およびこの方法を用いたパケット処理装置

Info

Publication number
JP2000244577A
JP2000244577A JP2000034023A JP2000034023A JP2000244577A JP 2000244577 A JP2000244577 A JP 2000244577A JP 2000034023 A JP2000034023 A JP 2000034023A JP 2000034023 A JP2000034023 A JP 2000034023A JP 2000244577 A JP2000244577 A JP 2000244577A
Authority
JP
Japan
Prior art keywords
memory
header
packet
reference value
trie
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
JP2000034023A
Other languages
English (en)
Inventor
Christian Duret
クリスティアン・デュレ
Joel Lattmann
ジョエル・ラットマン
Servane Bonjour
セルヴァン・ボンジュール
Herve Guesdon
エルベ・ギュスドン
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.)
Orange SA
Original Assignee
France Telecom SA
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 France Telecom SA filed Critical France Telecom SA
Publication of JP2000244577A publication Critical patent/JP2000244577A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/04Selecting arrangements for multiplex systems for time-division multiplexing
    • H04Q11/0428Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
    • H04Q11/0478Provisions for broadband connections
    • 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/3081ATM peripheral units, e.g. policing, insertion or extraction
    • H04L49/309Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols

Landscapes

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

Abstract

(57)【要約】 【課題】 ルーティング・アプリケーションにおいて、
TRIEメモリにより提供される処理の柔軟性をさらに
向上させる。 【解決手段】 プロトコルデータを備える各々のパケッ
トのヘッダの異なる部分は、TRIEメモリの異なるゲ
ートレジスタから連続して解析される。パケットが到着
すると、そのヘッダはバッファメモリ(15)に記憶さ
れ、前記記憶されたヘッダの第1部分が解析される。ヘ
ッダ部分の各々の解析は、前記パケットと関連した転送
基準値、または、次の解析すべき部分とこの部分が解析
されるべき起点であるゲートレジスタとを捜し当てるこ
とを可能にする2つのコードを有する中間基準値のいず
れかを生成する。記憶されたヘッダの前記第1部分の解
析後に、該第1部分の後続部分は、前記転送基準値が生
成されるまで連続して生成された前記中間基準値に備え
られる前記第1,第2コードによって解析される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、連想メモリに関
し、より詳細には、《TRIE》形式のメモリに関する
(これは、英語の動詞《reTRIEve》に由来している)。
【0002】
【従来の技術】《TRIE》メモリの原理は、R. de la
BriandaisおよびE. Fredkin等によって1950年代の
終わり頃に提案された(E. Fredkin等の《Trie Memor
y》, Communications of the ACM, Vol.3, No.9, Septe
mber 1960, 490-499頁を参照)。この原理は、認識すべ
きビットストリングを、固定長の(Kビットの)連続的
スライスに切り分け、かつ、これらを2次元テーブルT
に組み込むことにある。このテーブルの各々の行は、2
K個の基本「セル」(elementary cell)からなる「レジ
スタ」を構成する。レジスタ(R)はストリングの各々
のスライスに割り当てられ、かつ、このレジスタ内のセ
ルは、このスライスの0〜2K−1の範囲の値(V)と
関連づけられる。このように決定されたセルの内容(C
=T[R,V])は、後続のスライス(または「ポイン
タ」)に割り当てられたレジスタ、または、ストリング
の解析がこのスライスにおいて終了する必要がある場合
には解析基準値(analysis reference)(または《ステ
ータス》)の終わり、のいずれかを表す。
【0003】前記テーブルへの入口ポイントでもある、
ストリングの第1スライスに割り当てられたレジスタ
は、「ゲート」とも称される。ビットストリングの形で
解析すべき、すなわちTRIEメモリの内容と比較すべ
きデータは、以後、「ルート(routes)」とも称され
る。「パス」という用語は、ルートと関連づけられたテ
ーブル内の連鎖状セルの連続を示すために用いられる。
テーブルの各々のレジスタは、該レジスタが1つ以上の
記憶されたルートの(i+1)番目のスライスに起因す
る場合には、オーダーi≧0であると称される。したが
って、ゲートレジスタはオーダーゼロである。TRIE
メモリは、オーダーi≧0のレジスタの各々と、各々の
ルートの最初のiKビットに対応するiKビットの独自
のシーケンスとを結びつける。テーブル内における前記
各々のルートのパスは、当該のレジスタのセルを経由し
て進む。
【0004】以下の例は、K=4という特定の場合にお
いて、データがTRIEメモリ内に記憶される方法に関
する例示を提供する。各々のスライスの値は、16進数
のディジット(0,1,...E,F)で表され、かつ、
各々のレジスタは、24=16個のセルを有している。
【0005】認識すべきルートが45A4,45AB,
67AB,788A,および788BDのコードで始ま
るルートであり、これらのコードに対してステータスS
0,S1,S2,S3,およびS0がそれぞれ割り当て
られたと仮定する(同じステータスを幾つかのルートが
共有してもよい)。レジスタRに関して行インデクス
を、スライスの値Vに関して列インデクスを用いること
と、レジスタR0=0をゲートとして用いることとによ
り、TRIEメモリのテーブルは、図1に示されるよう
に表される。下線を施されたデータがステータスであ
る。コード45A4,45AB,67AB,788A,
788BDは、以下のパスにより、図1のテーブルにお
いてそれぞれ表される。 T[0,]→T[1,]→T[2,]→T[3,
]; T[0,]→T[1,]→T[2,]→T[3,
]; T[0,]→T[4,]→T[5,]→T[6,
]; T[0,]→T[7,]→T[8,]→T[9,
]; T[0,]→T[7,]→T[8,]→T[9,
]→T[10,];
【0006】この例から、iKビットの共通部分から始
まっている全てのコードが、これらのiKビットにより
形成されたシーケンスが関連しているオーダーiのレジ
スタに通じているメモリ内における共通のイニシャルパ
スにより表されていることが分かる。
【0007】解析すべきルートを、値Viの2進スライ
スの級数に切り分けけられたと考慮する場合に(ここ
で、0≦i≦N、{Ri}は値Viと関連づけられたレジ
スタの級数、さらに、R0はゲートレジスタを表す)、
実行される解析アルゴリズムは、図2に示されるもので
あってもよい。
【0008】このアルゴリズムの初期化段階1におい
て、解析ランクiはゼロに設定され、かつ、ゲートレジ
スタR0がレジスタRとして選択される。ランクiの各
々の反復(iteraton)において、選択されたオーダーi
のレジスタ内のルートの(i+1)番目のスライスVi
により示されるセルT[R,Vi]の内容Cが、段階2
において読み取られる。このセルが、テスト3におい
て、該セルに記憶されたビットFP(C)に対する値1
によって示される連続解析ポインタ(continue analysi
s pointer)を有していれば、このポインタPtr(C)
により表されるオーダーi+1のレジスタが、段階4に
おいて、次の反復に対するレジスタRとして選択され、
かつ、ランクiがインクリメントされる。テスト3が、
ポインタを有していないセルを示せば(FP(C)=
0)、関連したセル内に読み取られたステータスRef
(C)が、段階5において、テーブルを調べた結果とし
て返される。
【0009】このアルゴリズムは、任意の数のスライス
を有するルートが解析されることを可能にする。異なる
ゲートに基づいてデータを管理して、同じテーブルを幾
つかのタイプの解析のために用いることもできる。さら
に、このアルゴリズムは、データの解析時間が制御され
ることを可能にし、N個のKビットスライスの解析に
は、せいぜい、1度の反復の継続時間のN倍が必要とさ
れる。
【0010】図2のアルゴリズムについては、テーブル
メモリへのアクセスを管理するハードウェア構成要素に
より非常に迅速に実行することができる。詳細には、高
性能のルータを、パケット交換遠距離通信ネットワーク
用に設定することが可能となる。パケットのヘッダは、
構成要素により急速に解析され、かつ、ルートと関連づ
けられたステータスは、例えば、このルートに従う終点
アドレスを生じさせているパケットがルーティングされ
る必要があるルータの出力ポートを指定する。
【0011】このようなルータは、マルチプロトコル・
ルータであってもよい。この場合には、ヘッダの異なる
部分は、異なるゲートから解析される。例えば、用いら
れているプロトコルおよび/またはこのプロトコルのバ
ージョンを示す1つの(または幾つかの)ヘッダフィー
ルドの最初の解析については、最初のゲートから解析し
てもよい。この最初の解析は、ある基準値を供給し、こ
の基準値は、前記解析の論理的結果に対応しているが、
ヘッダの残りを解析するために用いるべき他のゲートレ
ジスタを示す連続解析ポインタにより、TRIEメモリ
に組み込まれ得る。さらに、当該の基準値は、解析され
ているヘッダ内の所定数のビットによる時間遅延または
スキップを引き起こすこともでき、これにより、ヘッダ
のどの部分を次に解析すべきかを選択することができ
る。実際には、一定数の解析が、一般に連続して実行さ
れ、これにより、ヘッダの内容に応じて、サポートされ
たプロトコルにより必要とされる動作が引き起こされ
る。これらの解析のうち1つは、厳密に言えばルーティ
ング機能を完了するために必要とされる終点アドレスに
関連する。
【0012】上記に略述した形式のルータは、仏国特許
出願第2,707,775号明細書に記載されている。
ルータにおいてTRIEメモリを用いることに関して
は、T.B. Pei等による≪Putting Routing Tables in Si
licon≫(IEEE Network Magazine, January 1992, page
s 42-50)という論文を参照のこと。
【0013】幾つかの基本解析(elementary analysi
s)をともにつなぎ合わせ、かつ、これらの間にプログ
ラム可能なスキップを挿入することができるという事実
は、特に幾つかの層におけるISOモデルのカプセル化
されたプロトコルを処理する場合に、前記方法に高度の
柔軟性を与える。さらに、ヘッダのスライスを、これら
のスライスが到着した際に急速に解析することによって
速度が高められる。
【0014】しかしながら、ある状況においては、ある
種のフィールドを、これらのフィールドが到着した順序
以外の順序で検査するために、ヘッダ内において後方へ
移動できることが有用である。このことは、しばしば、
必要とされるメモリサイズの一層優れた最適化を可能に
する。さらに、このことは、RSVP予約(reservatio
n)プロトコルやマルチキャスト・プロトコルのよう
な、ある種のプロトコルにより必要とされる特徴であ
る。
【0015】
【発明が解決しようとする課題】本発明の目的は、特に
ルーティング・アプリケーションにおいて、TRIEメ
モリにより提供される処理の柔軟性をさらに向上させる
ことである。
【0016】
【課題を解決するための手段】したがって、本発明は、
TRIEメモリによって転送基準値(forwarding refer
ence)をデータパケットと関連づける方法を提案し、こ
れにより、前記TRIEメモリの異なるゲートレジスタ
が、プロトコルデータを有する各々のパケットのヘッダ
の異なる部分を連続して解析する。パケットが到着する
と、そのヘッダは、バッファメモリに記憶され、かつ、
前記記憶されたヘッダの第1部分が解析される。パケッ
トのヘッダ部分の各々の解析は、前記パケットに関連づ
けられた前記転送基準値、または、前記バッファメモリ
の任意のロケーションにおいて後続の解析すべき部分を
捜し当てることを可能にする第1コードと、前記TRI
Eメモリの任意のロケーションにおいて、ゲートレジス
タ(このゲートレジスタから、前記後続部分が解析され
ることになる)を捜し当てることを可能にする第2コー
ドとを有する中間基準値(intermediate reference)の
いずれかを生成する。記憶されたヘッダの前記第1部分
を解析した後に、前記第1部分の後続部分は、前記転送
基準値が得られるまで、連続して生成された前記中間基
準値に備えられた前記第1および第2コードにしたがっ
て解析される。
【0017】その結果、前記TRIEメモリの内容は、
もはや、前記パケットヘッダ自体と関連づけられた前記
基準値のみを示さない。さらに、これらの内容は、前記
メモリにより考慮された異なるコンフィギュレーション
に応じて、実行すべき基本解析のストリングからなるプ
ログラムをも備える。これらのストリングは、前記ヘッ
ダのどの部分を、さらに、前記TRIEメモリのどのレ
ジスタから検査する必要があるのかを、ユーザーが任意
にかつ前述の処理の各々の段階において規定できる限り
は、完全にプログラム可能である。
【0018】本発明の他の特徴は、上記に略述された方
法にしたがって動作する前記TRIE形式の連想記憶を
用いて受け取られた前記パケットの前記ヘッダを解析す
るための回路を有するパケット処理装置に関連する。こ
のような装置は、ヘッダ解析を必要とする任意の形式の
処理を実行することができる。詳細には、前記装置は、
IPルータ、ファイヤウェルのような安全装置、測定装
置などであってもよい。
【0019】
【発明の実施の形態】本発明の他の方法および利点は、
以下に与えられる例についての説明から、さらに、添付
図面を参照して明確になる。前記説明は、あらゆる点に
おいて制限的なものではない。上述した図1は、TRI
Eメモリの内容の例を示す。上述した図2は、TRIE
メモリを調べる手段として実行される従来の解析方法を
示すフローチャートである。図3は、本発明により提案
されたパケットルータのブロック図である。図4は、パ
ケットヘッダの一例の構成を示す図である。図5および
図6は、ルータのTRIEメモリ内のセルの構成を示す
図である。図7は、TRIEメモリを調べるために本発
明により提案された解析手順を示すフローチャートであ
る。
【0020】以下の説明を例示する手段として、本発明
により提案されたルータによりルーティングされたパケ
ットが非同期転送モード(ATM)ネットワーク上にお
いて伝送される場合を検証する。さらに、各々のパケッ
トのヘッダが常に1つのATMセル内に備えられている
と仮定する。
【0021】図3に示されたルータ10は、ホストコン
ピュータ11と関連して動作する。ホストコンピュータ
11は、特に、ルーティング処理を管理するために、パ
ケットを送信かつ受信することができる。この目的に対
し、ルータ10の入力と出力とにおいて仮想チャンネル
(VC)を有する。
【0022】前記ルータ10は、解析モジュール13に
より生じた、これ以後《転送基準値(forwarding refer
ence)》または《最終ステータス》と称される命令にし
たがって受け取られたパケットを、TRIEメモリテー
ブルとして構成されたメモリ14から転送する転送モジ
ュール12を有している。ATMネットワーク装備の場
合において、転送モジュール12は、本質的に、仮想パ
ス識別子および仮想チャンネル識別子VPI/VCI
(《Virtual Path Identifier / Virtual Channel Iden
tifier》)と、仮想パス内の仮想チャンネルマージャ
(merger)と、装置の出力ポートへのパケットの供給と
の変換を実行することができる。この目的に対し、TR
IEメモリ14内に記憶された転送基準値を構成し得
る、出ていくパケットのVPI/VCIの組を知る必要
がある。
【0023】ルーティングすべきパケットのヘッダを有
する各々のATMセルは、バッファメモリ15を介して
通過し、解析モジュール13は、これらのヘッダの一部
をTRIEメモリ14によって解析するために、前記バ
ッファメモリ15にアクセスする。この解析は、例え
ば、カルテット(K=4)により実行される。
【0024】前記ルータ10を機器構成(configurin
g)することは、関連データをTRIEメモリ14に記
憶することにある。この動作は、ホストコンピュータ1
1の制御の下でTRIEメモリを管理するモジュール
(図示せず)により実行される。この機器構成命令につ
いては、ネットワークを介して伝送されかつルータ10
にアドレス指定されたパケットの形で受け取ってもよ
い。TRIEメモリ14の内容がどのように動的に管理
され得るのかの詳細については、仏国特許明細書981
1856を参照のこと。
【0025】図3に示されたルータの場合に、解析モジ
ュール13は、ルータによりサポートされた通信プロト
コルに応じて、ある検査を実行しかつパケットヘッダに
作用を適用するようにプログラムされた制御装置16と
共働する。この制御装置16の外側において、ルータ1
0の動作は、パケット伝送プロトコルから独立してい
る。
【0026】図4は、本発明のルータにより処理するこ
とができるパケットに関するヘッダ構成の特定の例を示
す。この例においては、前記パケットは、UDP(《Us
er Datagram Protocol》)アプリケーションプロトコル
を保持するIPV4(《Internet Protocol-Version
4》)パケットであり、LLC−SNAP(《Logical L
ink Control - Sub Network Access Protocol》)レイ
ヤ2プロトコルによってATMセル形式にカプセル化さ
れている。図面に示されたフィールドネームは、これら
のプロトコルに付随した関連仕様において用いられてい
るものである。解析すべき全体的なヘッダは、ATMセ
ルの5オクテットヘッダと、LLC−SNAPヘッダ
と、IPV4プロトコルとそのUDP拡張子のヘッダと
のインタリーブされた配置からなっている。
【0027】他の形式のプロトコルおよびカプセル化
を、ルータ10によりサポートすることもできる。例え
ば、レイヤ2においてSNAPプロトコルの代わりに、
PPP(《Point-to-Point Protocol》)プロトコルを
扱うことや、あるいはまた、レイヤ2および/またはレ
イヤ3においてMPLS(《Multi-Protocol Label Swi
tching》)体系を扱うことも可能である。これらの条件
下において、以下の一続きのヘッダ形式が、ATMセル
のヘッダに続くAAL5(《ATM Adaptation Layer No
5》)フレームにおいて遭遇される可能性がある。 IP IP,IP LLC−SNAP,IP LLC−PPP,IP MPLS MPLS,...MPLS LLC−SNAP,MPLS MPLS,IP MPLS,...MPLS,IP MPLS,LLC−SNAP,IP MPLS,...MPLS,LLC−SNAP,IP ここで、IPは、インターネットプロトコルのバージョ
ン4またはバージョン6のいずれかと、ネットワークレ
イヤ(TCP,UDP...)以上のレイヤのヘッダとを
示す。
【0028】LLC−SNAP/IPV4/UDPの特
定の場合において、図4のハッシュ領域は、ルーティン
グ工程に関連し得るヘッダフィールドを示す。適用され
るルーティングの形式に応じて、これらのフィールドの
うち幾つかについては、図面に示された非ハッシュフィ
ールドとともに無視してもよい。TRIEメモリのサイ
ズを不必要に増大させることを回避するために、これら
のフィールドの内容は、解析処理の間は、単に無視され
る。
【0029】したがって、前記解析は、部分的解析を連
続的に受けることになるヘッダの異なる部分に集中し、
これにより、最終部分(この最終部分に対し、TRIE
メモリ14が、モジュール12に向けられた転送基準値
を供給する)が到達されるまで中間基準値(intermedia
te reference)が供給される。
【0030】本発明により提案された方法は、ヘッダフ
ィールドが任意の順序で解析されることを可能にする。
このことは、フィールドをこれらが現れる順に解析する
ことでは十分ではない一定数の状況において有用であ
る。例えば、以下のことが指摘される。 − 必要とされるメモリサイズを制限するために、IP
ヘッダのTOS(Typeof Service)フィールドを(これ
らのフィールドは逆の順序で現れるが)、終点アドレス
の後に解析することは重要である。 − RSVP形式の予約プロトコルに関して、レイヤ4
ヘッダを解析した後にIPヘッダの《プロトコル》フィ
ールドと、《終点アドレス》フィールドとへ戻ることが
できることが必要である。 − マルチキャスト・アプリケーションにおいて、幾つ
かのノード間におけるルーピングの発生を防ぐべく、I
PヘッダのTTL(Time to Live)フィールドと、AT
Mヘッダに入力されたルータのVPI/VCI識別子と
へ戻ることができることは重要である。
【0031】TRIEメモリ14におけるデータの構
成、および、これらのデータが調べられる方法は、解析
されているヘッダフィールド間とTRIEメモリのゲー
トレジスタ間とにおいて必要とされ得る任意のスキップ
をプログラムすることを可能にするために適合される。
【0032】特定の実施形態において、図5および図6
は、TRIEメモリ14の空ではない基本セル内に備え
られるデータ構造を示す。この例においては、各々の基
本セルは、32ビットのメモリ領域を示す。TRIEメ
モリ内のセルの最初の3ビットは、制御装置16の状態
を制御するためのコマンドフィールドCTを形成する。
【0033】例によれば、前記制御装置16は、5つの
状態を有する。 − 《非活動》 バッファメモリ15内にヘッダが存在
しない場合; − 《ATM》 モジュール13が、ATMヘッダのV
PI/VCI識別子の解析を進行中の場合; − 《MPLS》 モジュール13が、MPLSヘッダ
の解析を進行中の場合; − 《IP》 モジュール13が、IPヘッダまたはそ
の拡張子の解析を進行中の場合; − 《other》 モジュール13が、他の形式のヘッダ
(LLC,SNAP,PPP,...)の解析を進行中の
場合。
【0034】前記TRIEメモリの基本セルのコマンド
フィールドCTは、例えば、以下のように符号化され
る。 − CT=000: 制御装置の状態が変更されていな
い − CT=001: 解析の終了 − CT=01a: 《other》状態への移行 − CT=10a: 《IP》状態への移行 − CT=11a: 《MPLS》状態への移行
【0035】上記のビットaは、フレームがホストコン
ピュータ11から来たのかどうかを示し、これにより、
制御装置16は、必要に応じて、IPV4ヘッダのTT
Lフィールドおよび《チェックサム》フィールドの処理
を抑制することができる。
【0036】図5および図6に示された例において、T
RIEメモリの基本セルのうち18個の最下位ビット
は、図5の場合には(ゲートレジスタであろうとなかろ
うと)TRIEメモリの次レジスタへのポインタ(この
ポインタから解析が継続されるべきである)、または、
図6に示された例においてはモジュール12に向けられ
た転送基準値のいずれかを有するフィールドPtrを形成
する。
【0037】後者の場合には、転送基準値の発行がTR
IEメモリを用いて解析処理を終了させるので、コマン
ドフィールドCTは001を有する。
【0038】図5に示された場合において、フィールド
Ptrに備えられるポインタは、何が2ビットのカウンテ
ィング・フィールドCPに備えられているのかに応じ
て、直接的または間接的に、連続解析レジスタを示し得
る。カウンタについては、TRIEメモリの全てのセル
に割り当ててもよい。次に、このカウンタは、このセル
が、解析中に後続されるパスにおいて遭遇される毎にイ
ンクリメントされる。各々のカウンタV(A)は、TR
IEメモリ内の連続解析ポインタへのポインタPT
(A)を備える他のロケーションと連結されたメモリロ
ケーションに配置される。
【0039】前記カウンティング・フィールドCPが0
0以外に何らかの値を有していれば、TRIEメモリセ
ルのフィールドPtrは、関連するカウンタV(A)が記
憶されているメモリロケーションのアドレスを有してお
り、かつ、この関連カウンタV(A)と連結されたロケ
ーションPT(A)は、解析を継続するために用いる必
要があるTRIEメモリ内のレジスタへのポインタを有
している。フィールドCPの2ビットが00であれば、
基本セルのフィールドPtrは、TRIEメモリ内の連続
解析レジスタを直接的に指す。
【0040】次にパケットヘッダのどの部分を解析すべ
きかを示すために、転送基準値(図5)を有していない
基本セルは、2ビットのフォーマットフィールドFM
と、7ビットのシフトフィールドDPとを有する。フィ
ールドFMは、バッファメモリ15内における関連ロケ
ーションの数値表示のフォーマットを示す。
【0041】この表示は、以下のものであり得る。 − 連続的(FM=00)/解析すべきカルテットが、
メモリ15に記憶されたヘッダ内において直接に順々に
続く場合 − 絶対的(FM=11)/カルテットの絶対的な位置
を、解析されているサブヘッダから独立して示す(この
ことは、例えば、マルチキャストアプリケーションにお
いてIPヘッダを処理するときに、ATMヘッダのVC
フィールドに戻ることが必要である場合に有用である) − 差分的(FM=10)/現在のカルテットに対して
次のカルテットの位置を表すためのものであり、このこ
とは、(例えば、《other》状態において)あるヘッダ
の長さが先験的に既知ではない場合に有用である − 相対的(FM=01)/制御装置16により管理さ
れたオフセット値により捜し当てられた、バッファメモ
リ15の所定のロケーションに対して次のカルテットの
位置を表すためのものである。この値OFFSETは、
通常は、現在解析されているサブヘッダの開始を示す。
制御装置16は、状態の移行中に、以前の状態に対応す
るヘッダ長さを加えることにより、この値を管理する。
【0042】前記制御装置16により実行される他のタ
スクは、IPV4ヘッダの《チャックサム》フィールド
に基づくエラーチェックと、このIPヘッダのTOS,
TTLフィールドにおける任意の操作とを備えている。
このような変更は、いずれも、転送基準値を備えたTR
IEメモリにより供給されるパラメータに基づいて、解
析処理の終わりに実行される。これらのパラメータは、
転送基準値を有する各々の基本セルの2ビットフィール
ドTTと8ビットフィールドPAとに備えられる(図
6)。コーディングは、例えば、以下の通りである。 − TT=00: TOS,TTLフィールドに何の変
更もない(ホストコンピュータ11に対して向けられた
パケット用に用いることができる) − TT=01: TTLを1だけデクリメントする − TT=10: TTLをPAフィールドの内容だけ
デクリメントする − TT=11: TTLを1だけデクリメントし、か
つ、TOSをPAフィールドの内容に置き換える
【0043】バージョン4における《ATM》または
《MPLS》または《other》から《IP》への移行に
基づいて、制御装置16は、IPV4ヘッダの《チェッ
クサム》フィールドの内容がヘッダの残りと一致するこ
とを確実にするために、仕様に従ってこれらのヘッダに
おいて適用されたエラー検出コーディングに応じて検査
する。《IP》から《不活動》状態への移行(CT=0
01)に基づいて、制御装置16は、IPV4ヘッダの
《チェックサム》フィールドを、入力ヘッダに備えられ
る《チェックサム》フィールドを合計することにより更
新し、かつ、TTLおよび/またはTOSフィールドに
適用された変更に基づいて計算されたエラー検出コード
を更新する。
【0044】図7は、上述した例においてモジュール1
3により実行することができる解析手順を示すフローチ
ャートを与えている。初期化20に基づき、解析された
カルテットのうちi番目は、バッファメモリ15におけ
るATMヘッダの開始を示すためにゼロに設定され、基
本ゲートレジスタR0が、レジスタRとして選択され、
かつ、制御装置16は、アクティブ命令(《非活動》状
態から《ATM》状態への切り替え)を受け取る。
【0045】各々の反復iにおいて、バッファメモリ1
5に記憶されたヘッダの(i+1)番目のカルテットV
iにより示された、選択されたレジスタRの基本セルT
[R,Vi]の内容Cが、段階21において読み取られ
る。このセルのコマンドフィールドCT(C)が001
でなければ(テスト22)、このコマンドフィールドの
内容は、段階23において、制御装置16へ適用され、
これにより、制御装置16は、必要であれば、対応する
作用を続行するために必要とされる状態変化を採用す
る。この作用の後に、モジュール13は、解析がどのよ
うに継続されるべきかを、段階24において、解析すべ
き次カルテットのバッファメモリ15内の位置を識別す
ることと、段階25〜28において、この解析を継続す
るために用いるべきTRIEメモリの次レジスタを識別
することとにより判断する。
【0046】段階24において、解析すべき次カルテッ
トのコードは、現在のカルテットiのコードと、TRI
Eメモリ内のセルのフィールドFM,DPにより、さら
に選択的に、制御装置16により管理されるパラメータ
OFFSETにより表された位置コードとの関数として
計算される。上記に略述した従来技術によれば、fにつ
いては、以下のものとして表すことができる。 f(i,00,DP,OFFSET)=i+1; f(i,11,DP,OFFSET)=DP; f(i,10,DP,OFFSET)=i+DP(DP
は正または負); f(i,01,DP,OFFSET)=OFFSET+
DP(DPは正または負)。
【0047】段階25において、前記モジュール13
は、カウントが必要かどうかを判断するために、TRI
Eメモリの現在セルのフィールドCPを検査する。カウ
ントが必要でなければ(CP=00)、セルのフィール
ドPtrから読み取られたポインタにより指定されたレジ
スタは、段階26において、後続の反復のためのレジス
タRであるとして選択される。段階25において、CP
(C)≠00であれば、段階27において、インクリメ
ントすべきカウンタのアドレスAが、TRIEメモリの
現在セルのフィールドPtrの内容であるとして得られ
る。段階28において、モジュール13は、次に、この
カウンタV(A)をインクリメントする命令を発行し、
かつ、後に続く反復のためのレジスタRを選択するため
にポインタPT(A)を検索する。
【0048】この解析処理は、中間ステータスを供給し
ている幾つかの論理解析を結びつけることにより継続さ
れる。この解析処理は、現在のセルのコマンドフィール
ドCT(C)において値001が現れたときに終了する
(テスト22)。この地点において、モジュール13
は、段階29において、セルのフィールドTT,PAに
備えられるパラメータを制御装置16に供給し、さら
に、段階30において、最終ステータスPtr(C)を転
送モジュール12へ供給する。
【図面の簡単な説明】
【図1】 TRIEメモリの内容の例を示す図である。
【図2】 TRIEメモリを調べる手段として実行され
る従来の解析方法を示すフローチャートである。
【図3】 本発明により提案されたパケットルータのブ
ロック図である。
【図4】 パケットヘッダの一例の構成を示す図であ
る。
【図5】 ルータのTRIEメモリ内のセルの構成を示
す図である。
【図6】 ルータのTRIEメモリ内のセルの構成を示
す図である。
【図7】 TRIEメモリを調べるために本発明により
提案された解析手順を示すフローチャートである。
【符号の説明】
10 ルータ 11 ホストコンピュータ 12 転送モジュール 13 解析モジュール 14 TRIEメモリ 15 バッファメモリ 16 制御装置
───────────────────────────────────────────────────── フロントページの続き (72)発明者 セルヴァン・ボンジュール フランス・92100・ブローニュ・ビランク ール・リュ・ドゥ・スィリー・56 (72)発明者 エルベ・ギュスドン フランス・92240・マラコフ・アヴニュ・ オーギュスタン・デュモン・1

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 TRIEメモリ(14)の異なるゲート
    レジスタと、プロトコルデータを備える各々のパケット
    のヘッダの異なる部分とから連続して解析することによ
    り、前記TRIEメモリ(14)によって転送基準値を
    データパケットに関連づける方法であって、 パケットが到着した際に、そのヘッダはバッファメモリ
    (15)に記憶され、かつ、前記記憶されたヘッダの第
    1部分が解析され、 パケットのヘッダ部分の各々の解析は、前記パケットと
    関連づけられた前記転送基準値、または、次の解析すべ
    き部分を、前記バッファメモリの任意のロケーションに
    おいて捜し当てることを可能にする第1コード(FM,
    DP)と、前記次の部分が解析されるべき起点であるゲ
    ートレジスタを、前記TRIEメモリの任意のロケーシ
    ョンにおいて捜し当てることを可能にする第2コード
    (Ptr)とを有する中間基準値のいずれかを生成し、 記憶されたヘッダの前記第1部分を解析した後に、前記
    後続の部分は、前記転送基準値が生成されるまで連続し
    て生成された前記中間基準値に備えられる前記第1およ
    び第2コードにしたがって解析されることを特徴とする
    方法。
  2. 【請求項2】 前記TRIEメモリ(14)は基本セル
    からなり、各々の基本セルは、該セルが転送基準値を備
    えているかどうかを示すフィールド(CT)を有し、 転送基準値を備えていない各々の基本セルは、少なくと
    も、前記解析が継続されるべき前記バッファメモリ(1
    5)のロケーションを指定する情報の一片を備えるため
    の第1フィールド(FM,DP)と、前記TRIEメモ
    リの連続解析レジスタを指定する情報の一片を備えるた
    めの第2フィールド(Ptr)とを有することを特徴とす
    る請求項1に記載の方法。
  3. 【請求項3】 前記解析が継続されるべき前記バッファ
    メモリ(15)のロケーションを指定する前記情報が、
    前記バッファメモリの前記ロケーションの数値表示を示
    すフォーマットコード(FM)と、前記表示にしたがっ
    て、前記バッファメモリの前記ロケーションを指定する
    アドレスコード(DP)とを有することを特徴とする請
    求項2に記載の方法。
  4. 【請求項4】 前記フォーマットコード(FM)が、
    (i)前記記憶されたヘッダの前記データ要素が、これ
    らのデータ要素が現れた順序で解析される順次的表示
    と、(ii)解析すべき次のデータ要素が、記憶されたヘ
    ッダのその絶対的地点により指定される絶対的表示と、
    (iii)解析すべき次のデータ要素が、現在解析されて
    いるデータ要素に対するその位置により指定される差分
    的表示と、または、(iv)解析すべき次のデータ要素
    が、前記記憶されたヘッダの所定の部分に対するその位
    置により指定される相対的表示とを示すことを特徴とす
    る請求項3に記載の方法。
  5. 【請求項5】 転送基準値を備えていない各々の基本セ
    ルが、カウント工程が必要かどうかを示す情報の一片を
    有する追加フィールド(CC)を有し、 転送基準値を備えておらずかつカウント工程が必要であ
    る示す追加フィールド(CC)を有する各々の基本セル
    が、その第2フィールド(Ptr)において、前記工程が
    実行されかつ前記TRIEメモリ(14)の連続解析レ
    ジスタへのポインタ(R)を有する他のメモリロケーシ
    ョン(PT(A))と関連づけられるときにインクリメ
    ントすべきカウンタを有するメモリロケーション(V
    (A))へのポインタ(A)を有することを特徴とする
    請求項2から請求項4のいずれかに記載の方法。
  6. 【請求項6】 前記TRIEメモリ(14)の各々の基
    本セルが、補助制御装置(16)に向けられた命令を有
    するコマンドフィールド(CT)を有していることを特
    徴とする請求項1から請求項5のいずれかに記載の方
    法。
  7. 【請求項7】 転送基準値が、前記バッファメモリ(1
    5)に記憶された前記パケットの前記ヘッダの部分に適
    用すべきあらゆる修正を特定するために、前記制御装置
    (16)に適用されるパラメータとともに前記TRIE
    メモリ(14)から発行されることを特徴とする請求項
    6に記載の方法。
  8. 【請求項8】 請求項1から請求項7のいずれかに記載
    の方法にしたがって動作する前記TRIEメモリ(1
    4)の連想メモリを用いて、受け取られたパケットのヘ
    ッダを解析するための回路(13)を有することを特徴
    とするパケット処理装置(10)。
JP2000034023A 1999-02-12 2000-02-10 Trieメモリによって転送基準値をデータパケットと関連づける方法およびこの方法を用いたパケット処理装置 Pending JP2000244577A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR9901714A FR2789778B1 (fr) 1999-02-12 1999-02-12 Procede pour associer des references d'acheminement a des paquets de donnees au moyen d'une memoire trie, et routeur de paquets appliquant ce procede
FR9901714 1999-02-12

Publications (1)

Publication Number Publication Date
JP2000244577A true JP2000244577A (ja) 2000-09-08

Family

ID=9541953

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000034023A Pending JP2000244577A (ja) 1999-02-12 2000-02-10 Trieメモリによって転送基準値をデータパケットと関連づける方法およびこの方法を用いたパケット処理装置

Country Status (5)

Country Link
US (1) US6704313B1 (ja)
EP (1) EP1030493B1 (ja)
JP (1) JP2000244577A (ja)
DE (1) DE60040358D1 (ja)
FR (1) FR2789778B1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005253077A (ja) * 2004-03-02 2005-09-15 Agilent Technol Inc Atmデータをリアルタイムで再組立するシステム、方法、およびプログラム

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69830598T2 (de) * 1997-01-31 2006-05-18 The Horticulture And Food Research Institute Of New Zealand Limited Optische vorrichtung und methode
US6071689A (en) 1997-12-31 2000-06-06 Xy, Inc. System for improving yield of sexed embryos in mammals
US6149867A (en) 1997-12-31 2000-11-21 Xy, Inc. Sheath fluids and collection systems for sex-specific cytometer sorting of sperm
US7208265B1 (en) 1999-11-24 2007-04-24 Xy, Inc. Method of cryopreserving selected sperm cells
NZ545311A (en) * 2000-05-09 2008-03-28 Xy Inc Flow cytometer for high purity X-chromosome bearing and Y-chromosome bearing populations of spermatozoa
EP1162789A1 (de) * 2000-06-08 2001-12-12 Siemens Aktiengesellschaft Verfahren zur Verwaltung von Pfadinformationen und deren Änderungen in einem MPLS-Netzwerk
UY26761A1 (es) * 2000-06-12 2001-07-31 Univ Colorado State Res Found Integración de destete precoz y uso de semen de sexo seleccionado en un sistema de vaquillona- ternero único para incrementar el valor de vaquillonas de no reemplazo.
US7149216B1 (en) * 2000-09-05 2006-12-12 Cisco Technology, Inc. M-trie based packet processing
WO2002043486A1 (en) 2000-11-29 2002-06-06 Xy, Inc. System for in-vitro fertilization with spermatozoa separated into x-chromosome and y-chromosome bearing populations
US7713687B2 (en) 2000-11-29 2010-05-11 Xy, Inc. System to separate frozen-thawed spermatozoa into x-chromosome bearing and y-chromosome bearing populations
CN1175633C (zh) * 2001-12-26 2004-11-10 Lg电子株式会社 基于atm的mpls-ler系统和建立该系统的连接的方法
FR2835991B1 (fr) 2002-02-12 2004-04-23 France Telecom Procede de configuration d'une memoire trie pour le traitement de paquets de donnees, et dispositif de traitement de paquets mettant en oeuvre un tel procede
MX337304B (es) 2002-08-01 2016-02-24 Xy Llc Sistema de separacion de baja presion para celulas de esperma.
US8486618B2 (en) 2002-08-01 2013-07-16 Xy, Llc Heterogeneous inseminate system
WO2004017041A2 (en) 2002-08-15 2004-02-26 Xy, Inc. High resolution flow cytometer
US7169548B2 (en) 2002-09-13 2007-01-30 Xy, Inc. Sperm cell processing and preservation systems
CA3074799C (en) 2003-03-28 2022-12-06 Inguran, Llc Apparatus, methods and processes for sorting particles and for providing sex-sorted animal sperm
DK1625203T3 (en) 2003-05-15 2015-07-06 Xy Llc EFFECTIVE SEPARATION OF haploid cells FOR FLOWCYTOMETRISYSTEMER
EP1678632A1 (fr) * 2003-10-28 2006-07-12 France Telecom Dispositif de memoire de type trie avec mecanisme de compression
PT2151243E (pt) 2004-03-29 2013-01-25 Inguran Llc Suspensões de esperma para separação em populações enriquecidas carregando o cromossoma x ou y
JP2008507287A (ja) 2004-07-22 2008-03-13 モンサント テクノロジー エルエルシー 精子細胞の集団を富化する方法
US7618770B2 (en) * 2005-07-29 2009-11-17 Xy, Inc. Methods and apparatus for reducing protein content in sperm cell extenders
EP2074767A2 (en) * 2006-08-02 2009-07-01 University Of Florida Research Foundation, Inc. Succinct representation of static packet classifiers
CN101212414A (zh) * 2006-12-29 2008-07-02 朗迅科技公司 在通信系统中路由数据分组的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996000945A1 (en) * 1994-06-30 1996-01-11 International Business Machines Corp. Variable length data sequence matching method and apparatus
JPH10222535A (ja) * 1997-02-12 1998-08-21 Nippon Telegr & Teleph Corp <Ntt> データ検索回路
JP2000502872A (ja) * 1996-09-18 2000-03-07 シーメンス アクチエンゲゼルシヤフト 種々のパラメータを表す値のレコードに対するアドレス割り当て方法
JP2002530011A (ja) * 1998-11-06 2002-09-10 マイクロソフト コーポレイション 最適ルーティング・テーブル圧縮のためのルータ及び方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU624205B2 (en) * 1989-01-23 1992-06-04 General Electric Capital Corporation Variable length string matcher
FR2707775B1 (fr) * 1993-07-12 1996-04-12 Duret Chrsitian Procédé et dispositif d'analyse d'informations contenues dans des structures de données.
US5509006A (en) * 1994-04-18 1996-04-16 Cisco Systems Incorporated Apparatus and method for switching packets using tree memory
US6243667B1 (en) * 1996-05-28 2001-06-05 Cisco Systems, Inc. Network flow switching and flow data export
US6493347B2 (en) * 1996-12-16 2002-12-10 Juniper Networks, Inc. Memory organization in a switching device
US5938736A (en) * 1997-06-30 1999-08-17 Sun Microsystems, Inc. Search engine architecture for a high performance multi-layer switch element
US6157641A (en) * 1997-08-22 2000-12-05 Cisco Technology, Inc. Multiprotocol packet recognition and switching
US6041053A (en) * 1997-09-18 2000-03-21 Microsfot Corporation Technique for efficiently classifying packets using a trie-indexed hierarchy forest that accommodates wildcards

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996000945A1 (en) * 1994-06-30 1996-01-11 International Business Machines Corp. Variable length data sequence matching method and apparatus
JP2000502872A (ja) * 1996-09-18 2000-03-07 シーメンス アクチエンゲゼルシヤフト 種々のパラメータを表す値のレコードに対するアドレス割り当て方法
JPH10222535A (ja) * 1997-02-12 1998-08-21 Nippon Telegr & Teleph Corp <Ntt> データ検索回路
JP2002530011A (ja) * 1998-11-06 2002-09-10 マイクロソフト コーポレイション 最適ルーティング・テーブル圧縮のためのルータ及び方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005253077A (ja) * 2004-03-02 2005-09-15 Agilent Technol Inc Atmデータをリアルタイムで再組立するシステム、方法、およびプログラム

Also Published As

Publication number Publication date
DE60040358D1 (de) 2008-11-13
US6704313B1 (en) 2004-03-09
EP1030493A1 (fr) 2000-08-23
FR2789778A1 (fr) 2000-08-18
EP1030493B1 (fr) 2008-10-01
FR2789778B1 (fr) 2001-09-14

Similar Documents

Publication Publication Date Title
JP2000244577A (ja) Trieメモリによって転送基準値をデータパケットと関連づける方法およびこの方法を用いたパケット処理装置
US7835375B2 (en) Method and apparatus for providing multi-protocol, multi-stage, real-time frame classification
US6658458B1 (en) Cascading associative memory arrangement
EP1224773B1 (en) Apparatus and method for identifying data packet types in real time on a network switch port
US6798788B1 (en) Arrangement determining policies for layer 3 frame fragments in a network switch
US7289517B1 (en) Node device
US6661791B1 (en) Method and apparatus for generating forward overrides in a packet switch
US6044079A (en) Statistical packet discard
US12058231B2 (en) Hybrid fixed/programmable header parser for network devices
US6976154B1 (en) Pipelined processor for examining packet header information
US20010012295A1 (en) Enhanced internet packet routing lookup
US6480468B1 (en) Repeater
US6801545B2 (en) Container transport for packets in connection oriented protocols
US6658003B1 (en) Network relaying apparatus and network relaying method capable of high-speed flow detection
US6807183B1 (en) Arrangement for reading a prescribed location of a FIFO buffer in a network switch port
HUP0203823A2 (en) Method and system for frame and protocol classification
WO2007133316A2 (en) Packet firewalls of particular use in packet switching devices
US7403526B1 (en) Partitioning and filtering a search space of particular use for determining a longest prefix match thereon
KR100755979B1 (ko) 네트워크 스위치 포트상에서 와이어 속도로 데이터 패킷을식별하는 장치 및 방법
CN100512205C (zh) 虚拟输出队列(VoQ)管理方法和装置
US20020073222A1 (en) Packet transfer control method
US20020181463A1 (en) System and method for handling asynchronous transfer mode cells
KR100310303B1 (ko) 멀티프로토콜 레이블 스위칭 망의 에지 라우터에서의 고속인터넷프로토콜 헤더의 룩업 제어장치
US6728255B1 (en) Apparatus and method for storing min terms in a network switch port memory for identifying data packet types in a real time
US7042886B2 (en) Apparatus, method, and computer program for wire-speed classification and pre-processing of data packets in an ATM network

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070131

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091013

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100907