JP2016001897A - 反復解析及び分類 - Google Patents

反復解析及び分類 Download PDF

Info

Publication number
JP2016001897A
JP2016001897A JP2015149511A JP2015149511A JP2016001897A JP 2016001897 A JP2016001897 A JP 2016001897A JP 2015149511 A JP2015149511 A JP 2015149511A JP 2015149511 A JP2015149511 A JP 2015149511A JP 2016001897 A JP2016001897 A JP 2016001897A
Authority
JP
Japan
Prior art keywords
classification
analysis
data packet
cycle
header
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
JP2015149511A
Other languages
English (en)
Inventor
ペイス、アロン
Pais Alon
ビシャラ、ナフィア
Bishara Nafea
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.)
Marvell World Trade Ltd
Original Assignee
Marvell World Trade Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Marvell World Trade Ltd filed Critical Marvell World Trade Ltd
Publication of JP2016001897A publication Critical patent/JP2016001897A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • 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
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags

Abstract

【課題】データパケットのヘッダ情報及び第1解析分類結果に少なくとも一部基づいて、データパケットの第2解析分類サイクルを実行する段階とを備える方法を提供する。【解決手段】3値連想メモリ(TCAM)における第1参照を実行する段階と、第1参照の実行に少なくとも一部基づいて、第1メモリアドレスを生成する段階とを有する。メモリの第1メモリアドレスからの、第1解析分類結果を含む第1コンテンツにアクセスすることによって、第1解析分類結果を生成する段階と、第1解析分類結果に少なくとも一部基づいて、TCAMの複数のエントリをマスクすることにより、TCAMの有効部分を定義する段階と、TCAMの有効部分に限定される第2参照を実行することによって、データパケットの第2解析分類サイクルを実行する。【選択図】図1

Description

本開示の実施形態は、概して、解析(parsing)及び分類に関し、より詳細には、データパケットの反復解析(iterative parsing)及び分類に関する。
[優先権情報]
本出願は、2009年11月16日出願の米国特許出願第61/261,472号明細書の優先権を主張するものであり、前記出願の内容は、参照により本明細書に組み込まれる。
本明細書に特に示されていない限り、本章において記載される方法は、本願特許請求の範囲に対する従来技術ではなく、この章に記載することによって従来技術と認めているわけではない。
パケット通信ネットワークは一般的に、スイッチ、ルータ、トラフィックコントローラ及びトラフィックシェーパのように、ネットワーク全体にわたるデータパケットのフローの経路選択及び管理を行う複数のネットワークデバイスを備える。データパケットの各々は、データに加えて、データパケットのヘッダに配置される複数の制御フィールドを有する。このようなフィールドは、例えば、ソースアドレス、データパケットの宛先アドレス、データパケットの種類、データパケットに関連付けられたプロトコル等を含む。データパケットは、総合的にデータパケットの包括構造を規定する所定のネットワークプロトコル及び規則のセットに従って、解析ツール(parser)によって解析される。例えば、インターネットプロトコル(IP)データパケットを解析する場合、構文解析ツールは、データパケットのIPバージョン番号(例えば、バージョン4又は6)を調べる。そして分類ツール(classifier)は、解析結果に少なくとも一部基づいて、データパケットを分類する。
様々な実施形態において、本開示は、反復解析分類エンジンにより、データパケットのヘッダ情報に少なくとも一部基づいて、データパケットの第1解析分類サイクルを実行する段階と、第1解析分類サイクルの実行に少なくとも一部基づいて、第1解析分類結果を生成する段階と、データパケットのヘッダ情報及び第1解析分類結果に少なくとも一部基づいて、データパケットの第2解析分類サイクルを実行する段階とを備える方法を提供する。
また、プロセッシングコアと、反復解析分類エンジン(iterative parser and classifier engine:IPAC)とを備えるシステムオンチップ(SOC)であって、IPACは、データパケットを受信し、第1反復サイクルの間に前記データパケットのヘッダから第1ヘッダ部分を生成するパケットヘッダオフセットユニットと、3値連想メモリ(TCAM)と、メモリとを有し、IPACは、第1反復サイクルの間に、第1ヘッダ部分を使用してTCAMにおける第1参照を実行し、第1参照に応じて第1メモリアドレスを生成し、IPACは、第1反復サイクルの間に、メモリ内の第1メモリアドレスからの第1コンテンツにアクセスするシステムオンチップを提供する。
データパケットを受信する段階と、データパケットのヘッダの第1ヘッダ部分を使用して、3値連想メモリ(TCAM)における第1参照を実行し、前記TCAMの出力に基づいて第1コンテンツを生成する段階と、第2アドレスを生成するべく、データパケットのヘッダの第2ヘッダ部分及び第1コンテンツを使用して、TCAMにおける第2参照を実行する段階とを備える方法を提供する。
以下の詳細な説明では、添付の図面を参照して説明が行われ、本開示の原理を例示するための実施形態の例が図面に示されている。なお、図面中の同様な参照番号は、同様な構成要素を指している。その他の実施形態を使用してもよく、本開示の範囲から逸脱することなく構造的又は論理的変更を行うことができる。したがって、以下の詳細な説明は、限定する意味で解釈されるべきではなく、本開示に係る実施形態の範囲は、添付の特許請求の範囲及びその均等物によって規定される。
本開示の一実施形態に係る、反復解析ツール及び分類エンジンを有するシステムオンチップを備えるパケット通信システムを概略的に示した図である。 本開示の一実施形態に係る、図1の反復解析ツール及び分類エンジンをより詳細に示した概略図である。 本開示の一実施形態に係る、図1の反復解析ツール及び分類エンジンをより詳細に示した概略図である。 本開示の一実施形態に係る、第1解析分類サイクルの間の、図1〜図2の反復解析ツール及び分類エンジンの3値連想メモリへの入力の例を概略的に示した図である。 本開示の一実施形態に係る、第1解析分類サイクルを概略的に示した図である。 本開示の一実施形態に係る、第2解析分類サイクルの間の、図1〜図3の反復解析ツール及び分類エンジンの3値連想メモリへの入力の例を概略的に示した図である。 本開示の一実施形態に係る、第2解析分類サイクルを概略的に示した図である。 本開示の一実施形態に係る、図1〜図3の反復解析ツール及び分類エンジンを動作させる方法の一例を描いた図である。
連想メモリ(associative memory)又は連想記憶装置としても知られるコンテント・アドレッサブル・メモリ(content-addressable memory:CAM)は、一般的に、高速検索に使用されている。CAMは多くの場合、ユーザーがデータワードをCAMに供給し、CAMがメモリ全体を検索して、CAMのどこかに、このデータワードが格納されていないかを確認する。データワードがCAM内で発見された場合(すなわち、データワードがヒットした場合)、CAMは、データワードに関する情報を返答する(例えば、データワードに関連付けられているアドレス、及び/又は、その他の適切な情報を返答する)。一例として、CAMが返答するアドレスが、メモリ(例えば、ランダムアクセスメモリ)のアドレスである場合を考える。2値連想メモリ(CAM)は、全てが1及び0で構成されるサーチターム(検索語)を採用する。3値連想メモリ(TCAM)は、1及び0並びに第3の状態である"X"又は"ドントケア(Don't-Care)"ビットで構成されるサーチタームを採用する。"X"又は"ドントケア"ビットとは、実行される検索に無関係の値を有するビットのことである。
図1には、本開示の一実施形態に係る反復解析分類エンジン20(以下、IPAC20とも称される)を有するシステムオンチップ(SOC)14を備えるパケット通信システム10が概略的に示されている。SOC14はまた、1以上のプロセッシングコア及びパケットプロセッサ16を含む。一実施形態において、パケットプロセッサ16は、イーサーネットスイッチ、ホームゲートウェイ、又は、その他のパケットプロセッシングデバイスのような、スイッチの一部である。しかしながら、本開示は、このような実装形態に限定されない。SOC14は、その他の構成要素を複数含む(例えば、通信バス、1以上の周辺機器、インターフェース等)が、例示を簡単にするために、図1には図示していない。
IPAC20は、ネットワークコントローラ12からデータパケットを受信し、受信したデータパケットを解析及び/又は分類する。図1には、一実施形態として、ネットワークコントローラ12が、SOCとは別に示されているが、ネットワークコントローラ12は、SOC14内に含まれていてもよい。また、図1には、1つのネットワークコントローラ12のみが示されているが、一実施形態では、IPAC20は、複数のネットワークコントローラからデータパケットを受信する。また、図1には示されていないが、一実施形態では、IPAC20は、例えば、ネットワークスイッチ、ネットワークルータ、ネットワークポート、イーサーネットポート、パケットプロセッサ16等のその他のデバイスからもデータパケットを受信し、受信したデータパケットを解析及び/又は分類する。
一実施形態では、IPAC20は、パケットプロセッサ、例えば、パケットプロセッサ16内のネットワークスイッチ、ネットワークルータ、ホームゲートウェイ、その他のネットワーク接続性を有する好適なデバイス内に実装される。ネットワークコントローラ12は、例えば、デバイス12a、デバイス12b及び/又はデバイス12cである複数のデバイスとデータパケットを送受信(例えば、送信及び/又は受信)する。一実施形態において、デバイス12a、12b及び/又は12cも、ネットワークデバイスであり、例えば、ネットワークスイッチ、ネットワークルータ、ネットワークポート、イーサーネットポート、その他のネットワーク接続性を有する好適なデバイス等である。
一実施形態において、IPAC20は、ネットワークコントローラ12からデータパケットを受信するパケットヘッダオフセットユニット24を含む。以下に詳細に説明するように、IPAC20は、データパケットを解析及び/又は分類するべく、解析分類サイクルを複数回反復して実行する。パケットヘッダオフセットユニット24は、1つ前の解析分類サイクル(第1解析分類サイクルを除く)で得られた解析及び分類結果を受信し、1つ前の解析分類サイクルから受信した解析分類結果に一部基づいて、現在の解析及び分類サイクルの間のデータパケットのヘッダからのヘッダ情報を出力する。例えば、異なる解析分類サイクルでは、パケットヘッダオフセットユニット24は、異なる態様でデータパケットのヘッダをオフセットすることができ、それにより、ヘッダの異なる部分を出力することができる。
IPAC20も、TCAM28を含む。各解析分類サイクルにおいて、TCAM28は、パケットヘッダオフセットユニット24からの入力及びフィードバック46cを受信し、受信した入力に基づいてTCAM28のデータベース検索を実行し、メモリアドレスを出力する。IPAC20は、TCAM28から出力(例えば、メモリアドレス)を受信し、フィードバック情報46a及び分類情報44a(以下、それぞれフィードバック46a及び分類44aとも称される)を出力するためのメモリ32を更に含む。一実施形態において、メモリ32は、例えば、スタティックRAM(SRAM)のような、ランダムアクセスメモリ(RAM)の好適な種類である、あらゆる好適なメモリであってもよい。
フィードバックプロセッシングユニット36は、フィードバック46aを受信し、少なくとも一部フィードバック46aに基づいて、フィードバック情報46b及びフィードバック情報46c(以下、それぞれフィードバック46b及びフィードバック46cとも称される)。以下でより詳細に説明される一実施形態において、フィードバック46aは、1以上の解析分類サイクルの解析及び分類結果と関連付けられる。フィードバックプロセッシングユニット36は、フィードバック46aを処理して、フィードバック46b及び46cを生成する。
第1解析分類サイクルの間に、パケットヘッダオフセットユニット24は、ネットワークコントローラ12から受信したデータパケットについて、このデータパケットのヘッダからの1バイト以上を選択的に出力する。1以上の次に続く解析分類サイクルの間に、パケットヘッダオフセットユニット24は、ネットワークコントローラ12から受信したデータパケットについて、少なくとも一部フィードバック46bに基づいて、このデータパケットのヘッダからの1バイト以上を選択的に出力する。TCAM28は、パケットヘッダオフセットユニット24の出力及びフィードバック46cを受信し(例えば、1以上の次に続く解析分類サイクルの間にフィードバック46cを受信する)、対応する出力を生成する。
分類ユニット40は、分類44aを受信して、分類44aに少なくとも一部基づいて、分類情報44b(分類44bとも称される)を生成する。一実施形態において、分類44aは、IPAC20が受信したデータパケット分類と関連付けられた情報を含み、分類ユニット40は、分類44aを処理して、分類44bを生成する。一実施形態において、分類44bにより、IPAC20が受信したデータパケットを分類する。例えば、分類44bは、受信されたデータパケットの、種類、優先順位、宛先アドレス、キューアドレス等に関連する情報を含む。
IPAC20は、IPAC20がネットワークコントローラ12から受信したデータパケットを反復して解析及び分類する。一例では、IPAC20は、データパケットのヘッダ情報に少なくとも一部基づいて、ネットワークコントローラ12から受信されたデータパケットに対して第1解析分類サイクルを実行する。そして、IPAC20は、第1解析分類サイクルの実行に少なくとも一部基づいて、第1解析分類結果(例えば、フィードバック46a及び分類44aを含む)を生成する。次いで、IPAC20は、データパケットのヘッダ情報及び第1解析分類結果に少なくとも一部基づいて(例えば、フィードバック46aから生成されたフィードバック46b及びフィードバック46cに少なくとも一部基づいて)、データパケットに対して第2解析分類サイクルを実行する。IPAC20は、データパケットが、完全に解析及び/又は分類されるまで(例えば、データパケットの完全な解析分類結果が生成されるまで)、このようなオペレーションを継続する。
別の例では、IPAC20は、ネットワークコントローラ12からデータパケットを受信する。IPAC20は、データパケットのヘッダの第1ヘッダ部分を使用して、TCAM28において第1参照を実行し、第1アドレスを生成する。IPAC20は、メモリ32の第1アドレスからの第1コンテンツにアクセスする。そして、IPAC20は、データパケットのヘッダの第2ヘッダ部分及び第1コンテンツを使用して、TCAM28において第2参照を実行し、第2アドレスを生成する。IPAC20は、データパケットが完全に解析及び分類されるまで、このようなオペレーションを継続する。
図2には、本開示の一実施形態に係る、図1のIPAC20の詳細が概略的に描かれている。具体的には、図2には、フィードバックプロセッシングユニット36、パケットヘッダオフセットユニット24、フィードバック46a、フィードバック46b及びフィードバック46cが詳細に描かれている。
図1及び図2に示すように、一実施形態において、フィードバック46bは、参照(look-up:LU)完了信号146b(以下、LU完了146bとも称される)、次のLUオフセットインデックス146c、及び、オフセットテーブル書き込みアクセス146dを含む。フィードバック46cはまた、付加情報148b及びLU ID146aを含み、これについても以下で詳細に説明する。
図1及び図2に示すように、パケットヘッダオフセットユニット24は、オフセットテーブル24a及びオフセットセレクタ24bを含む。オフセットセレクタ24bは、図2に示されるようにマルチプレクサを含む。一実施形態において、パケットヘッダオフセットユニット24(例えば、オフセットセレクタ24b)は、データパケットDP1を含む一連のデータパケットを、ネットワークコントローラ12から受信する。データパケットDP1は、ヘッダH1を含む。別の実施形態では、データパケットDP1全体を受信する替わりに、パケットヘッダオフセットユニット24は、データパケットDP1のヘッダH1のみを受信する。
データパケットDP1の解析分類は、IPAC20により反復的な態様で実行される。例えば、データパケットDP1の解析分類は、第1解析分類サイクル、第2解析分類サイクル等を使用して、データパケットDP1が完全に解析及び分類されるまで実行される。
第1解析分類サイクルの間に、オフセットセレクタ24bは、1以上のバイト(データパケットDP1のヘッダH1からのヘッダ部分H1aと称される)を出力する。一例では、オフセットセレクタ24bは、データパケットDP1のヘッダH1の最初の120バイトを受信し、ヘッダH1の最初の24バイトをヘッダ部分H1aとして選択及び出力する。ヘッダ部分H1aにおける"1"は、ヘッダ部分H1aがデータパケットDP1と関連付けられていることを意味し、ヘッダ部分H1aにおける"a"は、ヘッダ部分H1aが、第1解析分類サイクルの間に出力されることを意味する。
一実施形態において、第1解析分類サイクルの間に、オフセットセレクタ24bによって出力されるヘッダ部分H1aは、オフセットテーブル24aの出力とは無関係である(例えば、フィードバック46bとは無関係である)。また、第1解析分類サイクルの間、フィードバック46bの1以上のビットは、意味のある情報を含まない(第1解析分類サイクルの間は、フィードバック46bの1以上のビットは、データパケットDP1の前の解析分類サイクルから生成されていないため)。一方、次に続く解析分類サイクルでは、オフセットセレクタ24bの出力は、1つ前の解析分類サイクルからのフィードバック46bに基づくオフセットテーブル24aの出力に少なくとも一部基づく。例えば、第2解析分類サイクルの間に、オフセットセレクタ24bによって出力されたヘッダ部分H1bは、第1解析分類サイクルからのフィードバック46bに少なくとも一部基づく。
ある実施形態では、第1解析分類サイクルの間に、TCAM28は、ヘッダ部分H1a、すなわち、オフセットセレクタ24bの出力を受信する。図1には描かれていないが(図2に描かれている)、TCAM28はまた、ポートID情報216b(以下ポートID216bとも称される)を、例えば、システム10の適切な構成要素から(例えば、ネットワークコントローラ12)から受信する。ポートID216bは、データパケットDP1と関連付けられたポートのIDを含む(例えば、データパケットDP1が入力されるポートのID、データパケットDP1が受信されるポートのID等)。
先に説明したように、TCAM28はまた、フィードバック46cを受信する(すなわち、付加情報148b及びLU ID146a)。ただし、第1解析分類サイクルの間は、フィードバック46bの1以上のビットは、意味のある情報を含まない(第1解析分類サイクルの間は、フィードバック46bの1以上のビットは、データパケットDP1の前の解析分類サイクルから生成されていないため)。したがって、第1解析分類サイクルの間は、フィードバック46cのこれらのビットは、ドントケアビット(例えば、ビットX)としてTCAM28に扱われる(例えば、TCAM28は、現在のサイクルが第1解析分類サイクルであることを示す情報を受信及び/又は生成し、それに基づいて、TCAM28は、フィードバック46cのビットをドントケアビットとして扱う)。
第1解析分類サイクルの間に、ヘッダ部分H1a及びポートID216b(フィードバック46cのドントケアビットを含むフィードバック46cの複数のビットと共に)の少なくとも一部に基づいて、TCAM28は、TCAM28のコンテンツにおける参照を実行する。例えば、TCAM28は、受信されたデータと、TCAM28に格納されているデータとを比較する。一致する情報が存在する場合には(すなわち、第1解析分類サイクルがTCAMヒットである)、対応する情報がTCAM28によってメモリ32へと出力される。一実施形態において、TCAM28は、第1解析分類サイクルの間のTCAMヒットに基づいて、対応するアドレスA1aを出力する。アドレスA1aにおける"1"は、アドレスA1aがデータパケットDP1と関連付けられていることを意味し、アドレスA1aにおける"a"は、アドレスA1aが、第1解析分類サイクルと関連付けられていることを意味する。
一実施形態において、アドレスA1aは、メモリ32のアドレスである。第1解析分類サイクルの間のTCAM28の参照の後に、メモリ32は、アドレスA1aに格納されているデータを出力する。例えば、メモリ32は、フィードバック46a及び分類44aを出力する。一実施形態において、図2に示すように、フィードバック46aは、LU ID146a、LU完了146b、次のLUオフセットインデックス146c、オフセットテーブル書き込みアクセス146d、及び/又は、付加情報148aを含む。
図2には、フィードバックプロセッシングユニット36が、LU完了146b、次のLUオフセットインデックス146c、オフセットテーブル書き込みアクセス146d及びLU ID146aを受信及び再送する様子が描かれている。例えば、一実施形態において、LU完了146b、次のLUオフセットインデックス146c、オフセットテーブル書き込みアクセス146d及びLU ID146aは、フィードバックプロセッシングユニット36によって受信され、これら信号を更に処理することなく、対応する宛先にそれぞれ送信される。一実施形態では、LU完了146b、オフセットテーブル書き込みアクセス146d及び次のLUオフセットインデックス146cは、フィードバックプロセッシングユニット36をバイパスして、メモリ32からパケットヘッダオフセットユニット24へと送信されてもよい。同様に、一実施形態では、LU ID146aは、フィードバックプロセッシングユニット36をバイパスして、メモリ32からTCAM28へと送信されてもよい。
フィードバックプロセッシングユニット36は、付加情報148aを受信及び処理する。一例では、付加情報148aは14ビット信号であり、フィードバックプロセッシングユニット36は、付加情報148aの1以上のビットを付加情報148bとして出力するマルチプレクサ(ビット毎セレクタ148cとして図示されている)を含む。フィードバックプロセッシングユニット36によって実行される多重化オペレーションは、例えば、付加情報148aの1以上のビット及び/又は付加情報148bの1以上のビットに基づく。図2に示されるフィードバックプロセッシングユニット36は、一例に過ぎず、例えば、IPAC20のアプリケーション、IPAC20が受信するデータパケットの性質等に少なくとも一部基づいて構成することができる。
第1解析分類サイクルの間に、メモリ32も分類44aを出力する。上述したように、IPAC20は、データパケットDP1を解析及び分類するために、1以上の解析分類サイクルを実行する。一実施形態において、分類プロセッシングユニット40は、分類44aを使用して、データパケットDP1に対する最後の解析分類サイクルの間にのみ、分類44bを出力する。例えば、図2には示されていないが、分類プロセッシングユニット40は、現在の解析分類サイクルがデータパケットに対する最後の解析分類サイクルであることを示す情報を(例えば、フィードバック46a、分類44a及び/又はその他の好適な態様で)受信して、分類プロセッシングユニット40は、この情報に基づいて、現在の解析分類サイクルの間に分類44bを出力する。例えば、データパケットDP1に対して、3つの解析分類サイクルが使用される場合、分類プロセッシングユニット40は、3番目の解析分類サイクルの間にメモリ32によって出力される分類44aを使用して、分類44bを出力する。別の実施形態では、解析分類サイクルそれぞれの後に、分類44bが更新される。更なる別の実施形態では、分類44bと関連付けられた信号の一部は、解析分類サイクルそれぞれの後に更新されると同時に、分類44bと関連付けられた残りの信号は、データパケットDP1に対する最後の解析分類サイクルの間にのみ、更新される。
一実施形態において、1ビット信号であってもよいLU完了146b(この生成については以下に詳細に説明する)は、データパケットDP1を解析及び/又は分類するのに更なる解析分類サイクルが必要かを示す。したがって、LU完了146bは、解析分類完了フラグとして機能する。LU完了146bのLow値は、例えば、解析オペレーションが未完了であり更なる解析分類サイクルが必要であることを示す。LU完了146bのHigh値は、解析オペレーションが完了したことを示す。例えば、第1解析分類サイクルの終了時点で、LU完了146bがLowである場合(すなわち、LU完了146bが、データパケットDP1の解析及び/又は分類オペレーションが未完了であることを示している場合)には、IPAC20は、データパケットDP1に対する第2解析分類サイクルを開始する。同様に、第2解析分類サイクルの終了時点で、LU完了146bがHighである場合(すなわち、LU完了146bが、データパケットDP1の解析及び/又は分類オペレーションが完了したことを示している場合)には、IPAC20は、データパケットDP1に対する更なる解析分類サイクルを実行しない。
一実施形態において、現在の解析分類サイクルの次のLUオフセットインデックス146c及びオフセットテーブル書き込みアクセス146は、データパケットDP1のヘッダのオフセットと関連付けられて、次の解析分類サイクルにおいてパケットヘッダオフセットユニット24によって選択される。例えば、上記したように、第1解析分類サイクルの間に、ヘッダ部分H1aは、データパケットDP1のヘッダH1の最初の24バイトを含む。第2解析分類サイクルの間に、パケットヘッダオフセットユニット24は、データパケットDP1のヘッダH1からのヘッダ部分H1bを選択及び出力する。しかしながら、ヘッダH1の最初の24バイトが含まれたヘッダ部分H1aとは異なり、ヘッダ部分H1bは、例えば、次のLUオフセットインデックス146c及び第1解析分類サイクルのオフセットテーブル書き込みアクセス146に少なくとも一部基づいて、ヘッダH1のその他のバイトを含むことができる。一実施形態において、ヘッダ部分H1bは、例えば、次のLUオフセットインデックス146c及び第1解析分類サイクルのオフセットテーブル書き込みアクセス146に少なくとも一部基づいて、ヘッダH1のバイト番号12から開始する14バイトを含む。
一実施形態において、解析分類サイクルのLU ID146は、次の解析分類サイクルの参照IDと関連付けられる。例えば、第1解析分類サイクルのLU ID146aは、第2解析分類サイクルの参照IDと関連付けられる。第2解析分類サイクルの参照IDは、例えば、第2解析分類サイクルの間に検索される(参照される)TCAM28の論理的エリアを特定する。一例では、第2解析分類サイクルが、データパケットDP1の優先順位とTCAM28のエントリとの一致と関連付けられている場合には、第1解析分類サイクルのLU ID146aは、データパケットDP1の優先順位と関連付けられたデータバイトを含む。
現在の解析分類サイクルの間に出力される付加情報148bは、次の解析分類サイクルにおけるTCAM参照で使用される付加情報と関連付けられる。例えば、第1解析分類サイクルの間に出力される付加情報148bは、第2解析分類サイクルにおけるTCAM参照で使用される付加情報と関連付けられる。一実施形態において、付加情報148bは、1つの解析分類サイクルから次の解析分類サイクルへと渡されるあらゆる関連情報を含む。例えば、付加情報148bは、現在の解析分類サイクルの間に知り得た次の解析分類サイクルの間に関連する情報を含む。付加情報148bフィールドは、例えば、データパケットDP1の種類及び構造、IPAC20のアプリケーション領域等に基づく。
図3には、本開示の一実施形態に係る、図1のIPAC20の詳細が概略的に描かれている。具体的には、図3には、分類プロセッシングユニット40、分類44a及び分類44bがより詳細に描かれている。
上記したように、一実施形態において、分類プロセッシングユニット40は、分類44aを使用して、データパケットDP1に対する最後の解析分類サイクルの間にのみ、分類44bを出力する。例えば、データパケットDP1に対して、3つの解析分類サイクルが使用される場合、分類プロセッシングユニット40は、3番目の解析分類サイクルの間にメモリ32によって出力される分類44aを使用して、分類44bを出力する。別の実施形態では、解析分類サイクルそれぞれの後に、分類44bが更新される。更なる別の実施形態では、分類44bと関連付けられた信号の一部は、解析分類サイクルそれぞれの後に更新されると同時に、分類44bと関連付けられた残りの信号は、データパケットDP1に対する最後の解析分類サイクルの間にのみ、更新される。
一実施形態において、分類44aは、キュー情報320a、結果情報324a、及び/又は、フローID情報328aを含む。
分類プロセッシングユニット40は、キュー情報320aを処理してキュー結果320cを出力するキュープロセッシングユニット320b、結果情報324aを処理して結果情報324cを出力する結果情報ユニット324b、及び、フローID情報328aを処理してフローID情報328cを出力するフローIDユニット328bを含む。
上述したように、分類44bは、IPAC20が受信したデータパケットDP1を分類する。例えば、キュー結果320cは、データパケットDP1に関するキュー情報(例えば、データパケットDP1が元々属するキュー、データパケットDP1の宛先キュー、データパケットDP1の優先順位等)を含む。結果情報324cは、例えば、データパケットDP1に関するデータパケットDP1の種類(例えば、データパケットDP1に関するプロトコル(IPバージョン4(IPv4)、IPv6等)、データパケットDP1を修正する修正コマンド等のコマンド)、及び/又は、データパケットDP1に関するその他の関連情報を含む。フローID情報328cは、例えば、データパケットDP1のフローと関連付けられた情報を含む。例えば、フローID情報328cは、データパケットDP1に関するフローIDナンバー、ルーティング情報、ポインタ情報、フロークッキー情報等を含む。
分類44bのキュー結果320c、結果情報324c及びフローID情報328cは一例に過ぎず、別の実施形態では、分類44bは、データパケットDP1のその他の如何なる関連情報を含んでもよい。
図4aには、本開示の一実施形態に係る、第1解析分類サイクルの間のTCAM28への入力400aの例が概略的に示されている。図1〜図3のヘッダ部分H1aは、入力400aの一部分を形成しており、図1〜図3のフィードバック46cは、入力400aの別の部分を形成している。入力400aにおけるフィールド値及び関連する値は、一例に過ぎず、本開示の教示するところを何ら限定するものではない。
上記したように、フィードバック46cは、LU ID146aを含む。第1解析分類サイクルの間に、LU ID146aは、図4aに示すように、初期値の0である。更に、フィードバック46cは、付加バイト(例えば、付加情報148b)を含み、図4aの入力400aの例では、ドントケア状態xに設定されている。図4aの例におけるヘッダ部分H1aは、データパケットDP1のイーサーネット種類(0x8100に等しい)、優先順位ビット(0x1に等しい)、及び、付加されるドントケアビットを含むその他の複数のフィールドを含む。
図4bは、本開示の一実施形態に係る、第1解析分類サイクルを概略的に示した図である。図4bの第1解析分類サイクルにおいて、図4aの入力400aが、TCAM28への入力として使用されている。
図4bには、複数のエントリ例を含め、TCAM28が示されている。例えば、TCAMエントリ番号8は、LU IDの0、イーサーネット種類0x8100、及び、xxxと表記されている複数のその他のフィールド(例えば、優先ビットフィールド)を含む。別の例として、TCAMエントリ番号12は、LU IDの1、及び、xxxと表記されている複数のその他のフィールド(例えば、優先ビットフィールド)を含む。図4bには、その他のTCAMエントリの例も示されている。図4bにおいて、複数のTCAMフィールドは、xxxを含むように描かれているが、これらフィールドは実際には0又は1を含むが、図示を明瞭にし、本開示の教示を不明瞭にしない目的から、図4bには示されていない。一実施形態において、xxxフィールドの少なくとも一部は、TCAM28に対するドントケアビットである。第1解析分類サイクルの間に、LU ID146aは、LU IDフィールドが"1"の値を有するTCAM28のデータベースの一部分をマスクし、第1解析分類サイクルの間のTCAM検索は、LU ID146でマスクされていないTCAM28の部分でのみ実行される。
図4bには、複数のエントリ例を含めたメモリ32が示されている。例えば、メモリアドレスA1に対応するエントリの一例は、LU IDの1及びLU完了の0を含む。一実施形態において、アドレスA1は、複数のその他のフィールドを含むが、これらのフィールドについては、簡略化のために図示されていない。メモリアドレスA15の一例に対応する別のエントリ例には、LU完了の1、キュー情報(例えば、図3のキュー情報320a)の0x0、結果情報(図2の結果情報324a)の0x1、及び、フローID情報(例えば、図2のフローID情報328a)の0x10が含まれる。メモリアドレスの例A16及びA22に対応するその他の幾つかのエントリ例が、図4bに描かれている。
図4a及び図4bに示すように、第1解析分類サイクルの間に、入力400aとTCAMエントリ8とのマッチングが行われる。図4bにおいて、TCAMエントリ8は、灰色の影で示されており、これは、入力400aとの一致を表す。したがって、入力400aがTCAMヒットであり、TCAM28は、TCAMエントリ8と関連付けられた情報を出力する。例えば、TCAM28は、TCAMエントリ8と関連付けられているアドレスA1aを出力する。
一実施形態において、アドレスA1aは、メモリ32のアドレスである。例えば、アドレスA1aは、メモリ32のアドレスA1と一致する。したがって、アドレスA1aの受信に基づいて、第1解析分類サイクルの間に、メモリ32は、アドレスA1に格納されているコンテンツを出力する。アドレスA1に格納されているメモリ32のコンテンツは、図4bでは、灰色の影で示されており、メモリ32がこのアドレスのコンテンツを出力することを示している。例えば、メモリ32は、LU ID146a及びLU完了146bに対応する値"1"及び"0"を出力する。LU完了146bに対応する値"0"は、第1解析分類サイクルが、データパケットDP1の最後の第1解析分類サイクルではないことを示しており、データパケットDP1を解析及び/又は分類するのに、少なくとも1つの別の解析分類サイクルが必要であることを意味している。LU ID146aに対応する値"1"は、第2解析分類サイクルに対する参照IDを表す。
図5aには、本開示の一実施形態に係る、第2解析分類サイクルの間のTCAM28への入力500aの例が概略的に示されている。ヘッダ部分H1bは、入力500aの一部を形成し、第1解析分類サイクルからのフィードバック46cは、入力500aの別の部分を形成する。
上記したように、第1解析分類サイクルの間に、メモリ32は、図4bに示すように、LU ID146aの1を出力する。そして、入力500aにおけるLU IDは、1である。図5aにおけるヘッダ部分H1bは、図4aにおけるヘッダ部分H1aと同様に描かれている。しかしながら、別の実施形態では、ヘッダ部分H1bは、第1解析分類サイクルの間に、メモリ32及び/又はフィードバックプロセッシングユニット36によって出力されたフィードバック46bに少なくとも部分的に基づいて、図4aにおけるヘッダ部分H1aと異なってもよい。
図5bは、本開示の一実施形態に係る、第2解析分類サイクルを概略的に示した図である。図5bの第2解析分類サイクルにおいて、図5aの入力500aが、TCAM28への入力として使用されている。図5bにおけるTCAM28及びメモリ32のエントリは、図4bと同様なものである。例えば、図4bと同様に、図5bには、TCAM28のエントリ例8、12、13及び19、並びに、メモリ32におけるアドレスA1a、A15、A16及びA22に対応するエントリ例が示されている。
図5a及び図5bに示すように、第2解析分類サイクルの間に、入力500aとTCAMエントリ12とのマッチングが行われる。図5bにおいて、TCAMエントリ12は、灰色の影で示されており、これは、入力500aとの一致を表す。したがって、入力500aがTCAMヒットであり、TCAM28は、TCAMエントリ12と関連付けられた情報を第2解析分類サイクルの間に出力する。例えば、TCAM28は、TCAMエントリ12と関連付けられているアドレスA1bを出力する。
一実施形態において、アドレスA1bは、メモリ32のアドレスである。例えば、図5bにおいて、アドレスA1bは、メモリ32のアドレスA15と一致する。したがって、アドレスA1bの受信に基づいて、第2解析分類サイクルの間に、メモリ32は、アドレスA15に格納されているコンテンツを出力する。アドレスA15に格納されているメモリ32のコンテンツは、図5bでは、灰色の影で示されており、メモリ32がこのアドレスのコンテンツを出力することを示している。例えば、メモリ32は、LU完了146b、キュー情報(例えば、図3のキュー情報320a)、結果情報(図2の結果情報324a)、及び、フローID情報(例えば、図2のフローID情報328a)にそれぞれ対応する、値"1"、0x0、0x1及び0x10を出力する。
LU完了146bに対応する値"1"は、第2解析分類サイクルが、データパケットDP1の最後の第1解析分類サイクルであることを示しており、データパケットDP1を解析及び/又は分類するのに、これ以上解析分類サイクルが必要でないことを意味している。したがって、第2分類サイクルの間に、分類プロセッシングユニット40は、メモリ32から受信したキュー情報、結果情報及びフローID情報に一部基づいて、分類44bを出力する。
図4a、図4b、図5a及び図5bでは、2つの解析分類サイクルのみを使用してデータパケットDP1の解析及び分類が例示されていたが、一実施形態では、データパケットDP1の解析分類に、より多い数(例えば、3又は8以上)の解析分類サイクルを使用してもよい。
一実施形態において、TCAM28における実際のエントリは、様々な反復解析分類サイクルの個々のサイクルについて同様である(例えば、第1及び第2分類解析サイクルにおいて同様である)。しかしながら、現在の解析分類サイクルにおけるTCAM28内の複数のラインの一部をマスクするのにフィードバック46cが使用されるため、現在の解析分類サイクルにおいて使用されるTCAM28の有効な部分は限定されており、1つ前の解析分類サイクルから得られる知識に基づいている。単純な例として、第2解析分類サイクルにおいてLU ID146aが"1"である場合、第2解析分類サイクルの間にTCAMエントリの大部分(例えば、LU IDフィールドが0のエントリ)がマスクされる(すなわち、検索されない)。このように、1つ前のサイクルから受信されたフィードバック46cに基づいて、フィードバック46cは、現在のサイクルにおいて検索されるTCAM28のエリアを効果的に低減させる。したがって、TCAM28における検索有効エリアは、解析分類サイクル毎に変化する。例えば、TCAM28は、多数のエントリを含む大きなテーブルであってもよい。しかしながら、上述したように、各解析分類サイクルの間に、フィードバック46cは、TCAMエントリの多数をマスクする(すなわち、これらのエントリは検索されない)。TCAMエントリのうちフィードバック46cによってマスクされていない一部分のみが、パケットヘッダオフセットユニット24の出力について検索される(すなわち、ヘッダ部分H1a、H1b等について検索される)。
したがって、解析分類サイクルのそれぞれにおいて、フィードバック46bは、ヘッダ部分H1a、H1b等の選択を簡易にすることにより、(TCAM28において検索される)探索キーを精度の高いものにする。一方、解析分類サイクルのそれぞれにおいて、フィードバック46c、TCAMエントリの一部をマスクすることによりTCAM28のデータベースの範囲を縮めて、TCAMの低減された有効なデータベースにおいて検索が実行されることを可能にする。
様々な実施形態において、図には示していないが、実際のTCAMエントリも、様々な解析分類サイクル間で異なる。
一実施形態において、TCAM28及び/又はメモリ32のコンテンツは、例えば、SOC14のアプリケーション領域、IPAC20によって扱われるデータパケットの種類等に少なくとも一部基づいて、動的に及び/又は周期的に更新される。このようにTCAM28及び/又はメモリ32のコンテンツを更新することにより、IPAC20のハードウェア構成を実質的に修正することなく、IPAC20がデータパケットの複数の種類を解析及び分類できるようにしている。
本開示に開示されたように、データパケットの反復解析分類は、幾つかの有益な効果を有する。例えば、解析分類サイクルそれぞれの間に、データパケットのヘッダ部分に対応するフィールドと、TCAM28における様々なフィールドとのマッチングが行われる。また、解析分類サイクルそれぞれの間に、TCAM28の個々の論理エリアを参照することができる。一実施形態において、反復解析分類オペレーションにより、TCAM28のサイズは、従来の解析分類エンジンで使用されるTCAMと比較して小さくなる。一実施形態において、反復解析分類オペレーションにより(例えば、相対的に小さなサイズのTCAMを使用することにより)、本開示に開示された解析分類オペレーションは、従来の解析分類オペレーションと比較して相対的に速くなる。更に、IPAC20は、完全にプログラム可能及び設定可能であるので、(例えば、TCAM28及び/又はメモリ32をプログラムすることにより)所望の分類データをIPAC20から出力させることができる。更に、IPAC20は、(例えば、TCAM28及び/又はメモリ32をプログラムすることにより)IPAC20の解析オペレーションと分類オペレーションとの間の柔軟な区分を提供する。また、IPAC20は、SOC14のプロセッシングコアのリソースを最低限のみ利用する又は全く利用しないので、SOC14のその他のオペレーションのためにプロセッシングコアのリソースを残すことができる。
図6には、本開示の一実施形態に係る図1〜3のIPAC20を動作させる方法600の一例が示されている。方法600によれば、段階604において、(例えば、パケットヘッダオフセットユニット24によりネットワークコントローラ12から)データパケットDP1を受信する。
608では、IPAC20は、データパケットDP1に対して、解析分類サイクル(例えば、第1解析分類サイクル)を実行する。例えば、パケットヘッダオフセットユニット24は、第1解析分類サイクルの間に、データパケットの第1ヘッダ部分H1aを生成し、それに基づいて、IPAC20は、TCAM28において第1参照を実行する。一実施形態において、第1参照は、データパケットの元のポートアドレス(例えば、ポートID216)に基づく。第1アドレスA1aは、第1参照の実行に少なくとも一部基づいて生成される。
612において、IPAC20は、解析分類サイクルに基づいて(例えば、メモリ32の第1アドレスA1aからのフィードバック46a及び分類44aを含む第1コンテンツへのアクセスに基づいて)、解析及び分類結果(例えば、フィードバック46b、フィードバック46c及び分類44bを含む第1解析分類結果)を生成する。
616において、IPAC20は、更なる解析分類サイクルが必要であるかを判断する。第1解析分類結果は、解析分類完了フラグ(すなわち、LU完了146b)を含む。例えば、解析分類完了フラグがlowである場合には、616において、更なる解析分類サイクルが必要であると判断される。一方、616において、解析分類完了フラグがHighである場合には、更なる解析分類サイクルは必要ないと判断される。
データパケットの解析分類に更なる解析分類サイクルが必要ない場合、620において、分類ユニット40により分類44bが第1解析分類サイクルから出力される。624において、分類44bを出力した後、受信されたデータパケットDP1の解析及び分類が終了する。
628において、更なる解析分類サイクルが必要な場合は、(612において生成された)第1解析分類結果が、次の(例えば、第2)解析分類サイクルに対して使用される。ブロック608、612、616及び628のオペレーションは、620において、更なる解析分類サイクルが必要ないと判断されるまで繰り替えされる。
特定の実施形態が例示及び説明されたが、当業者であれば、本開示の範囲内において、図示及び説明された実施形態に替えて様々な代替及び均等物の実装形態を採用可能であることは理解できる。本開示は、添付の特許請求の範囲の文言又は均等論の適用される範囲内であると判断される全ての方法、装置及び物品を範囲としている。本願は、明細書に記載された実施形態の採用及び変形例も範囲に含むことを意図している。したがって、本開示は、特許請求の範囲及びその均等物によってのみ限定されることを意図している。
特定の実施形態が例示及び説明されたが、当業者であれば、本開示の範囲内において、図示及び説明された実施形態に替えて様々な代替及び均等物の実装形態を採用可能であることは理解できる。本開示は、添付の特許請求の範囲の文言又は均等論の適用される範囲内であると判断される全ての方法、装置及び物品を範囲としている。本願は、明細書に記載された実施形態の採用及び変形例も範囲に含むことを意図している。したがって、本開示は、特許請求の範囲及びその均等物によってのみ限定されることを意図している。
[項目1]
反復解析分類エンジンにより、データパケットのヘッダ情報に少なくとも一部基づいて、前記データパケットの第1解析分類サイクルを実行する段階と、
前記第1解析分類サイクルの実行に少なくとも一部基づいて、第1解析分類結果を生成する段階と、
前記データパケットのヘッダ情報及び前記第1解析分類結果に少なくとも一部基づいて、前記データパケットの第2解析分類サイクルを実行する段階と、
前記第2解析分類サイクルの実行に少なくとも一部基づいて、第2解析分類結果を生成する段階と
を備え、
前記第1解析分類サイクルを実行する段階は、
前記データパケットのヘッダ部分に少なくとも一部基づいて、3値連想メモリ(TCAM)における第1参照を実行する段階と、
前記第1参照の実行に少なくとも一部基づいて、第1メモリアドレスを生成する段階と、
メモリの前記第1メモリアドレスからの前記第1解析分類結果を含む第1コンテンツにアクセスする段階と、
前記第1コンテンツに少なくとも一部基づいて、前記TCAMの複数のエントリをマスクすることにより、前記TCAMの有効部分を生成する段階と、
を有し、
前記第2解析分類サイクルを実行する段階は、
前記第1コンテンツに基づいて生成される第2ヘッダ部分を使用して、前記TCAMの前記有効部分における第2参照を実行することにより、前記第2解析分類サイクルを実行する段階を有し、
前記第2解析分類結果を生成する段階は、
前記第2解析分類結果が、前記データパケットの解析及び分類に更なる解析分類サイクルが必要であるかを示す解析分類完了フラグを含むように、前記第2解析分類結果を生成する段階を有し、
前記解析分類完了フラグが、前記データパケットの解析及び分類に更なる解析分類サイクルが必要であることを示す場合には、前記データパケットのヘッダ情報及び前記第2解析分類結果に少なくとも一部基づいて、前記データパケットの第3解析分類サイクルを実行し、
前記解析分類完了フラグが、前記データパケットの解析及び分類に更なる解析分類サイクルが必要でないことを示す場合には、前記データパケットの分類結果を出力する方法。
[項目2]
前記分類結果を出力する段階は、
前記第2解析分類結果に含まれる分類情報に少なくとも一部基づいて、前記分類結果を出力する段階を含む項目1に記載の方法。
[項目3]
前記分類結果を出力する段階は、
前記データパケットに関するキュー、優先度及びフローIDのうちの1以上に関する情報を含む前記分類結果を出力する段階を含む項目1又は2に記載の方法。
[項目4]
前記第1解析分類サイクルを実行する段階は、前記データパケットのヘッダの第1ヘッダ部分に少なくとも一部基づいて、前記第1解析分類サイクルを実行する段階を有し、
前記第2解析分類サイクルを実行する段階は、前記データパケットの前記ヘッダの第2ヘッダ部分に少なくとも一部基づいて、前記第2解析分類サイクルを実行する段階を有し、
前記第2ヘッダ部分は、前記第1ヘッダ部分とは異なる項目1から3のいずれか一項に記載の方法。
[項目5]
前記第2解析分類サイクルを実行する段階は、前記第1解析分類結果に含まれるヘッダオフセット情報に少なくとも一部基づいて、前記第2解析分類サイクルを実行する段階を有する項目1から4のいずれか一項に記載の方法。
[項目6]
プロセッシングコアと、
反復解析分類エンジン(iterative parser and classifier engine:IPAC)と
を備えるシステムオンチップ(SOC)であって、
前記IPACは、
データパケットを受信し、第1反復サイクルの間に、前記データパケットのヘッダから第1ヘッダ部分を生成し、第2反復サイクルの間に、第2ヘッダ部分を生成するパケットヘッダオフセットユニットと、
3値連想メモリ(TCAM)と、
メモリと、
前記メモリから第1コンテンツを受信し、第1フィードバックを生成し、前記メモリから第2コンテンツを受信し、第2フィードバックを生成するフィードバックプロセッシングユニットと
を有し、
前記IPACは、前記第1反復サイクルの間に、前記第1ヘッダ部分を使用して前記TCAMにおける第1参照を実行し、前記第1参照に応じて第1メモリアドレスを生成し、
前記IPACは、前記第1反復サイクルの間に、前記メモリ内の前記第1メモリアドレスからの第1コンテンツにアクセスし、前記第2反復サイクルの間に、前記メモリ内の第2メモリアドレスからの第2コンテンツにアクセスし、
前記第2フィードバックは、前記データパケットの解析及び分類に更なる解析分類サイクルが必要であるかを示す解析分類完了フラグを含み、
前記IPACは更に、
前記第1コンテンツに少なくとも一部基づいて、前記TCAMの複数のエントリをマスクすることにより、前記TCAMの有効部分を生成し、
前記第1コンテンツに基づいて生成される前記第2ヘッダ部分を使用して、前記TCAMの前記有効部分における第2参照を実行することにより、前記第2反復サイクルを実行する、システムオンチップ。
[項目7]
前記パケットヘッダオフセットユニットは更に、前記第2反復サイクルの間に、前記第1フィードバックに少なくとも一部基づいて、前記データパケットの前記ヘッダから前記第2ヘッダ部分を生成する項目6に記載のシステムオンチップ。
[項目8]
前記IPACは更に、前記データパケットの分類情報を生成するための分類ユニットを有し、
前記解析分類完了フラグが、前記データパケットの解析及び分類に更なる解析分類サイクルが必要であることを示す場合には、前記IPACは、前記データパケットの第3ヘッダ情報及び前記第2フィードバックに少なくとも一部基づいて、前記データパケットに対して第3解析分類サイクルを実行し、
前記解析分類完了フラグが、前記データパケットの解析及び分類に更なる解析分類サイクルが必要でないことを示す場合には、前記分類ユニットは、前記第2コンテンツに少なくとも一部基づいて前記データパケットの分類結果を出力する項目6又は7に記載のシステムオンチップ。
[項目9]
前記メモリは、スタティックランダムアクセスメモリ(SRAM)である項目6から8のいずれか一項に記載のシステムオンチップ。
[項目10]
前記パケットヘッダオフセットユニットは、ネットワークコントローラから前記データパケットを受信する項目6から9のいずれか一項に記載のシステムオンチップ。
[項目11]
データパケットを受信する段階と、
前記データパケットのヘッダの第1ヘッダ部分を使用して、3値連想メモリ(TCAM)における第1参照を実行し、前記TCAMの出力に基づいて第1コンテンツを生成する段階と、
前記第1コンテンツに少なくとも一部基づいて、前記TCAMの複数のエントリをマスクすることにより、前記TCAMの有効部分を生成する段階と、
前記第1コンテンツに基づいて生成される第2ヘッダ部分を使用して、前記TCAMの前記有効部分における第2参照を実行する段階と、
第2アドレスを生成するべく、前記第1コンテンツに基づいて生成される第2ヘッダ部分を使用して、前記TCAMの前記有効部分における第2参照を実行する段階と、
前記メモリの前記第2アドレスからの第2コンテンツにアクセスする段階と
を備え、
前記第2コンテンツは、前記データパケットの解析及び分類に更なる解析分類サイクルが必要であるかを示す解析分類完了フラグを含み、
前記解析分類完了フラグが、前記データパケットの解析及び分類に更なる解析分類サイクルが必要であることを示す場合には、前記データパケットの前記ヘッダの第3ヘッダ部分及び前記第2コンテンツを使用して、前記TCAMにおける第3参照を実行して、第3アドレスを生成し、
前記解析分類完了フラグが、前記データパケットの解析及び分類に更なる解析分類サイクルが必要でないことを示す場合には、前記第2コンテンツに少なくとも一部基づいて前記データパケットの分類結果を出力し、
前記第3ヘッダ部分は、前記第2コンテンツに少なくとも一部基づいて前記ヘッダから生成される
方法。
[項目12]
前記第1参照を実行する段階は、
第1メモリアドレスを生成するべく前記第1参照を実行する段階と、
メモリの前記第1メモリアドレスにアクセスすることにより、前記第1コンテンツを生成する段階と
を有する項目11に記載の方法。
[項目13]
前記第2ヘッダ部分は、前記第1コンテンツに少なくとも一部基づき、
前記第2ヘッダ部分は、前記第1ヘッダ部分とは異なる項目11又は12に記載の方法。

Claims (13)

  1. 反復解析分類エンジンにより、データパケットのヘッダ情報に少なくとも一部基づいて、前記データパケットの第1解析分類サイクルを実行する段階と、
    前記第1解析分類サイクルの実行に少なくとも一部基づいて、第1解析分類結果を生成する段階と、
    前記データパケットのヘッダ情報及び前記第1解析分類結果に少なくとも一部基づいて、前記データパケットの第2解析分類サイクルを実行する段階と、
    前記第2解析分類サイクルの実行に少なくとも一部基づいて、第2解析分類結果を生成する段階と
    を備え、
    前記第1解析分類サイクルを実行する段階は、
    前記データパケットのヘッダ部分に少なくとも一部基づいて、3値連想メモリ(TCAM)における第1参照を実行する段階と、
    前記第1参照の実行に少なくとも一部基づいて、第1メモリアドレスを生成する段階と、
    メモリの前記第1メモリアドレスからの前記第1解析分類結果を含む第1コンテンツにアクセスする段階と、
    前記第1コンテンツに少なくとも一部基づいて、前記TCAMの複数のエントリをマスクすることにより、前記TCAMの有効部分を生成する段階と、
    を有し、
    前記第2解析分類サイクルを実行する段階は、
    前記第1コンテンツに基づいて生成される第2ヘッダ部分を使用して、前記TCAMの前記有効部分における第2参照を実行することにより、前記第2解析分類サイクルを実行する段階を有し、
    前記第2解析分類結果を生成する段階は、
    前記第2解析分類結果が、前記データパケットの解析及び分類に更なる解析分類サイクルが必要であるかを示す解析分類完了フラグを含むように、前記第2解析分類結果を生成する段階を有し、
    前記解析分類完了フラグが、前記データパケットの解析及び分類に更なる解析分類サイクルが必要であることを示す場合には、前記データパケットのヘッダ情報及び前記第2解析分類結果に少なくとも一部基づいて、前記データパケットの第3解析分類サイクルを実行し、
    前記解析分類完了フラグが、前記データパケットの解析及び分類に更なる解析分類サイクルが必要でないことを示す場合には、前記データパケットの分類結果を出力する方法。
  2. 前記分類結果を出力する段階は、
    前記第2解析分類結果に含まれる分類情報に少なくとも一部基づいて、前記分類結果を出力する段階を含む請求項1に記載の方法。
  3. 前記分類結果を出力する段階は、
    前記データパケットに関するキュー、優先度及びフローIDのうちの1以上に関する情報を含む前記分類結果を出力する段階を含む請求項1又は2に記載の方法。
  4. 前記第1解析分類サイクルを実行する段階は、前記データパケットのヘッダの第1ヘッダ部分に少なくとも一部基づいて、前記第1解析分類サイクルを実行する段階を有し、
    前記第2解析分類サイクルを実行する段階は、前記データパケットの前記ヘッダの第2ヘッダ部分に少なくとも一部基づいて、前記第2解析分類サイクルを実行する段階を有し、
    前記第2ヘッダ部分は、前記第1ヘッダ部分とは異なる請求項1から3のいずれか一項に記載の方法。
  5. 前記第2解析分類サイクルを実行する段階は、前記第1解析分類結果に含まれるヘッダオフセット情報に少なくとも一部基づいて、前記第2解析分類サイクルを実行する段階を有する請求項1から4のいずれか一項に記載の方法。
  6. プロセッシングコアと、
    反復解析分類エンジン(iterative parser and classifier engine:IPAC)と
    を備えるシステムオンチップ(SOC)であって、
    前記IPACは、
    データパケットを受信し、第1反復サイクルの間に、前記データパケットのヘッダから第1ヘッダ部分を生成し、第2反復サイクルの間に、第2ヘッダ部分を生成するパケットヘッダオフセットユニットと、
    3値連想メモリ(TCAM)と、
    メモリと、
    前記メモリから第1コンテンツを受信し、第1フィードバックを生成し、前記メモリから第2コンテンツを受信し、第2フィードバックを生成するフィードバックプロセッシングユニットと
    を有し、
    前記IPACは、前記第1反復サイクルの間に、前記第1ヘッダ部分を使用して前記TCAMにおける第1参照を実行し、前記第1参照に応じて第1メモリアドレスを生成し、
    前記IPACは、前記第1反復サイクルの間に、前記メモリ内の前記第1メモリアドレスからの第1コンテンツにアクセスし、前記第2反復サイクルの間に、前記メモリ内の第2メモリアドレスからの第2コンテンツにアクセスし、
    前記第2フィードバックは、前記データパケットの解析及び分類に更なる解析分類サイクルが必要であるかを示す解析分類完了フラグを含み、
    前記IPACは更に、
    前記第1コンテンツに少なくとも一部基づいて、前記TCAMの複数のエントリをマスクすることにより、前記TCAMの有効部分を生成し、
    前記第1コンテンツに基づいて生成される前記第2ヘッダ部分を使用して、前記TCAMの前記有効部分における第2参照を実行することにより、前記第2反復サイクルを実行する、システムオンチップ。
  7. 前記パケットヘッダオフセットユニットは更に、前記第2反復サイクルの間に、前記第1フィードバックに少なくとも一部基づいて、前記データパケットの前記ヘッダから前記第2ヘッダ部分を生成する請求項6に記載のシステムオンチップ。
  8. 前記IPACは更に、前記データパケットの分類情報を生成するための分類ユニットを有し、
    前記解析分類完了フラグが、前記データパケットの解析及び分類に更なる解析分類サイクルが必要であることを示す場合には、前記IPACは、前記データパケットの第3ヘッダ情報及び前記第2フィードバックに少なくとも一部基づいて、前記データパケットに対して第3解析分類サイクルを実行し、
    前記解析分類完了フラグが、前記データパケットの解析及び分類に更なる解析分類サイクルが必要でないことを示す場合には、前記分類ユニットは、前記第2コンテンツに少なくとも一部基づいて前記データパケットの分類結果を出力する請求項6又は7に記載のシステムオンチップ。
  9. 前記メモリは、スタティックランダムアクセスメモリ(SRAM)である請求項6から8のいずれか一項に記載のシステムオンチップ。
  10. 前記パケットヘッダオフセットユニットは、ネットワークコントローラから前記データパケットを受信する請求項6から9のいずれか一項に記載のシステムオンチップ。
  11. データパケットを受信する段階と、
    前記データパケットのヘッダの第1ヘッダ部分を使用して、3値連想メモリ(TCAM)における第1参照を実行し、前記TCAMの出力に基づいて第1コンテンツを生成する段階と、
    前記第1コンテンツに少なくとも一部基づいて、前記TCAMの複数のエントリをマスクすることにより、前記TCAMの有効部分を生成する段階と、
    前記第1コンテンツに基づいて生成される第2ヘッダ部分を使用して、前記TCAMの前記有効部分における第2参照を実行する段階と、
    第2アドレスを生成するべく、前記第1コンテンツに基づいて生成される第2ヘッダ部分を使用して、前記TCAMの前記有効部分における第2参照を実行する段階と、
    前記メモリの前記第2アドレスからの第2コンテンツにアクセスする段階と
    を備え、
    前記第2コンテンツは、前記データパケットの解析及び分類に更なる解析分類サイクルが必要であるかを示す解析分類完了フラグを含み、
    前記解析分類完了フラグが、前記データパケットの解析及び分類に更なる解析分類サイクルが必要であることを示す場合には、前記データパケットの前記ヘッダの第3ヘッダ部分及び前記第2コンテンツを使用して、前記TCAMにおける第3参照を実行して、第3アドレスを生成し、
    前記解析分類完了フラグが、前記データパケットの解析及び分類に更なる解析分類サイクルが必要でないことを示す場合には、前記第2コンテンツに少なくとも一部基づいて前記データパケットの分類結果を出力し、
    前記第3ヘッダ部分は、前記第2コンテンツに少なくとも一部基づいて前記ヘッダから生成される
    方法。
  12. 前記第1参照を実行する段階は、
    第1メモリアドレスを生成するべく前記第1参照を実行する段階と、
    メモリの前記第1メモリアドレスにアクセスすることにより、前記第1コンテンツを生成する段階と
    を有する請求項11に記載の方法。
  13. 前記第2ヘッダ部分は、前記第1コンテンツに少なくとも一部基づき、
    前記第2ヘッダ部分は、前記第1ヘッダ部分とは異なる請求項11又は12に記載の方法。
JP2015149511A 2009-11-16 2015-07-29 反復解析及び分類 Pending JP2016001897A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US26147209P 2009-11-16 2009-11-16
US61/261,472 2009-11-16

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2012539074A Division JP2013511223A (ja) 2009-11-16 2010-11-16 反復解析及び分類

Publications (1)

Publication Number Publication Date
JP2016001897A true JP2016001897A (ja) 2016-01-07

Family

ID=43517775

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2012539074A Pending JP2013511223A (ja) 2009-11-16 2010-11-16 反復解析及び分類
JP2015149511A Pending JP2016001897A (ja) 2009-11-16 2015-07-29 反復解析及び分類

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2012539074A Pending JP2013511223A (ja) 2009-11-16 2010-11-16 反復解析及び分類

Country Status (4)

Country Link
US (1) US8599859B2 (ja)
JP (2) JP2013511223A (ja)
CN (1) CN102577273B (ja)
WO (1) WO2011060436A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020502829A (ja) * 2016-12-13 2020-01-23 オラクル・インターナショナル・コーポレイション ネットワークデバイスで使用するためのプログラマブルパケット分類フレームワークを提供するためのシステムおよび方法

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8848715B2 (en) 2010-03-16 2014-09-30 Marvell Israel (M.I.S.L) Ltd. Combined hardware/software forwarding mechanism and method
US9135560B1 (en) * 2011-06-30 2015-09-15 Sumo Logic Automatic parser selection and usage
KR20130093707A (ko) * 2011-12-23 2013-08-23 한국전자통신연구원 패킷 분류 장치 및 그것의 패킷 분류 방법
US9319351B1 (en) 2012-11-26 2016-04-19 Marvell Israel (M.I.S.L.) Ltd. Mechanism for wire-speed stateful packet inspection in packet processors
US10284690B2 (en) * 2014-01-08 2019-05-07 Cavium, Llc Methods and systems for distribution of packets among parsing clusters
US9755972B1 (en) 2015-06-09 2017-09-05 Google Inc. Protocol-independent receive-side scaling
WO2019178264A1 (en) 2018-03-14 2019-09-19 Fungible, Inc. Flexible processing of network packets
US11218574B2 (en) 2018-06-08 2022-01-04 Fungible, Inc. Directed graph traversal using content-addressable memory
US10958770B2 (en) 2018-10-15 2021-03-23 Fungible, Inc. Realization of a programmable forwarding pipeline through packet header summaries in a data processing unit
CN109728883B (zh) * 2018-12-13 2022-02-25 中国银行股份有限公司 数据交互方法及系统、源系统、目标系统
WO2020197720A1 (en) 2019-03-27 2020-10-01 Fungible, Inc. Low latency packet switch architecture
US11579802B2 (en) 2019-10-04 2023-02-14 Fungible, Inc. Pipeline using match-action blocks
US11579890B1 (en) * 2020-01-29 2023-02-14 Synopsys, Inc. Frame parser executing subsets of instructions in parallel for processing a frame header

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002325091A (ja) * 2000-08-17 2002-11-08 Nippon Telegr & Teleph Corp <Ntt> フロー識別検索装置および方法
JP2004046988A (ja) * 2002-07-12 2004-02-12 Fujitsu Ltd 連想メモリ装置及びそれを用いた中継装置
JP2005353107A (ja) * 2004-06-08 2005-12-22 Hitachi Ltd 半導体装置
JP2006005636A (ja) * 2004-06-17 2006-01-05 Hitachi Ltd パケット転送装置
JP2006108985A (ja) * 2004-10-04 2006-04-20 Hitachi Ltd フレーム中継装置

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5805808A (en) * 1991-12-27 1998-09-08 Digital Equipment Corporation Real time parser for data packets in a communications network
US5414650A (en) * 1993-03-24 1995-05-09 Compression Research Group, Inc. Parsing information onto packets using context-insensitive parsing rules based on packet characteristics
US5473607A (en) * 1993-08-09 1995-12-05 Grand Junction Networks, Inc. Packet filtering for data networks
US5608662A (en) * 1995-01-12 1997-03-04 Television Computer, Inc. Packet filter engine
US5812760A (en) * 1996-06-25 1998-09-22 Lsi Logic Corporation Programmable byte wise MPEG systems layer parser
US5916305A (en) * 1996-11-05 1999-06-29 Shomiti Systems, Inc. Pattern recognition in data communications using predictive parsers
US5938736A (en) * 1997-06-30 1999-08-17 Sun Microsystems, Inc. Search engine architecture for a high performance multi-layer switch element
US6097724A (en) * 1997-08-15 2000-08-01 Lucent Technologies Inc. Ram-based associative content-addressable memory device, method of operation thereof and ATM communication switching system employing the same
US6480489B1 (en) * 1999-03-01 2002-11-12 Sun Microsystems, Inc. Method and apparatus for data re-assembly with a high performance network interface
US6356951B1 (en) * 1999-03-01 2002-03-12 Sun Microsystems, Inc. System for parsing a packet for conformity with a predetermined protocol using mask and comparison values included in a parsing instruction
US6611524B2 (en) * 1999-06-30 2003-08-26 Cisco Technology, Inc. Programmable data packet parser
US6392910B1 (en) * 1999-09-10 2002-05-21 Sibercore Technologies, Inc. Priority encoder with multiple match function for content addressable memories and methods for implementing the same
US6553453B1 (en) * 1999-09-10 2003-04-22 Sibercore Technologies, Inc. Variable width content addressable memory device for searching variable width data
US6961337B2 (en) * 2000-01-06 2005-11-01 International Business Machines Corporation Interleaved processing system for processing frames within a network router
US6775284B1 (en) * 2000-01-07 2004-08-10 International Business Machines Corporation Method and system for frame and protocol classification
US6970462B1 (en) * 2000-04-24 2005-11-29 Cisco Technology, Inc. Method for high speed packet classification
US6246601B1 (en) * 2000-06-14 2001-06-12 Netlogic Microsystems, Inc. Method and apparatus for using an inter-row configurable content addressable memory
US6826180B1 (en) * 2000-06-14 2004-11-30 Mindspeed Technologies, Inc. Communication packet processor with a look-up engine and content-addressable memory for storing summation blocks of context information for a core processor
US6606681B1 (en) * 2001-02-23 2003-08-12 Cisco Systems, Inc. Optimized content addressable memory (CAM)
US6879596B1 (en) * 2001-04-11 2005-04-12 Applied Micro Circuits Corporation System and method for systolic array sorting of information segments
US6862281B1 (en) * 2001-05-10 2005-03-01 Cisco Technology, Inc. L4 lookup implementation using efficient CAM organization
US7002965B1 (en) * 2001-05-21 2006-02-21 Cisco Technology, Inc. Method and apparatus for using ternary and binary content-addressable memory stages to classify packets
JP2003092598A (ja) * 2001-09-18 2003-03-28 Nec Corp パケット転送処理装置
US7386525B2 (en) * 2001-09-21 2008-06-10 Stonesoft Corporation Data packet filtering
US6715029B1 (en) * 2002-01-07 2004-03-30 Cisco Technology, Inc. Method and apparatus for possibly decreasing the number of associative memory entries by supplementing an associative memory result with discriminator bits from an original set of information
US6871262B1 (en) * 2002-02-14 2005-03-22 Cisco Technology, Inc. Method and apparatus for matching a string with multiple lookups using a single associative memory
US7187694B1 (en) * 2002-03-29 2007-03-06 Pmc-Sierra, Inc. Generic packet parser
US20030212900A1 (en) * 2002-05-13 2003-11-13 Hsin-Yuo Liu Packet classifying network services
US7412507B2 (en) * 2002-06-04 2008-08-12 Lucent Technologies Inc. Efficient cascaded lookups at a network node
US7689485B2 (en) * 2002-08-10 2010-03-30 Cisco Technology, Inc. Generating accounting data based on access control list entries
US7941605B1 (en) * 2002-11-01 2011-05-10 Cisco Technology, Inc Methods and apparatus for generating a result based on a lookup result from a lookup operation using an associative memory and processing based on a discriminator portion of a lookup word
US7194626B2 (en) * 2002-11-21 2007-03-20 International Business Machines Corporation Hardware-based secure code authentication
US7415012B1 (en) * 2003-05-28 2008-08-19 Verizon Corporate Services Group Inc. Systems and methods for high speed packet classification
US7941606B1 (en) * 2003-07-22 2011-05-10 Cisco Technology, Inc. Identifying a flow identification value mask based on a flow identification value of a packet
US7197597B1 (en) * 2003-07-22 2007-03-27 Cisco Technology, Inc. Performing lookup operations in a content addressable memory based on hashed values of particular use in maintaining statistics for packet flows
US7240149B1 (en) * 2003-11-06 2007-07-03 Cisco Technology, Inc. Multiple branch operations in an associative memory
US20050132008A1 (en) * 2003-12-10 2005-06-16 International Business Machines Corporation Database supported message routing
US7304996B1 (en) * 2004-03-30 2007-12-04 Extreme Networks, Inc. System and method for assembling a data packet
US20060182143A1 (en) * 2005-02-11 2006-08-17 Lu Hongqian K System and method for filtering communications packets on electronic devices
US7646771B2 (en) * 2005-08-17 2010-01-12 Cisco Technology, Inc. Compilation of access control lists
US7325074B2 (en) * 2005-09-28 2008-01-29 Cisco Technology, Inc. Incremental compilation of packet classifications using fragmented tables
JP2007243595A (ja) * 2006-03-08 2007-09-20 Fuji Xerox Co Ltd ネットワーク制御装置および制御方法
AU2006235845A1 (en) * 2006-10-13 2008-05-01 Titus Inc Method of and system for message classification of web email
US7653063B2 (en) * 2007-01-05 2010-01-26 Cisco Technology, Inc. Source address binding check
US7978700B2 (en) * 2007-03-12 2011-07-12 Marvell Israel (Misl) Ltd. Apparatus for determining locations of fields in a data unit
CN101242362B (zh) * 2008-03-07 2010-11-10 华为技术有限公司 查找键值生成装置及方法
US7894440B2 (en) * 2009-03-13 2011-02-22 Freescale Semiconductor, Inc. Programmable hash-tuple generation with parallel rule implementation independence
US8638800B2 (en) * 2009-04-03 2014-01-28 Freescale Semiconductor, Inc. Technique for generating hash-tuple independent of precedence order of applied rules

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002325091A (ja) * 2000-08-17 2002-11-08 Nippon Telegr & Teleph Corp <Ntt> フロー識別検索装置および方法
JP2004046988A (ja) * 2002-07-12 2004-02-12 Fujitsu Ltd 連想メモリ装置及びそれを用いた中継装置
JP2005353107A (ja) * 2004-06-08 2005-12-22 Hitachi Ltd 半導体装置
JP2006005636A (ja) * 2004-06-17 2006-01-05 Hitachi Ltd パケット転送装置
JP2006108985A (ja) * 2004-10-04 2006-04-20 Hitachi Ltd フレーム中継装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020502829A (ja) * 2016-12-13 2020-01-23 オラクル・インターナショナル・コーポレイション ネットワークデバイスで使用するためのプログラマブルパケット分類フレームワークを提供するためのシステムおよび方法
JP7208008B2 (ja) 2016-12-13 2023-01-18 オラクル・インターナショナル・コーポレイション ネットワークデバイスで使用するためのプログラマブルパケット分類フレームワークを提供するためのシステムおよび方法

Also Published As

Publication number Publication date
WO2011060436A1 (en) 2011-05-19
CN102577273B (zh) 2015-06-03
JP2013511223A (ja) 2013-03-28
CN102577273A (zh) 2012-07-11
US20110116507A1 (en) 2011-05-19
US8599859B2 (en) 2013-12-03

Similar Documents

Publication Publication Date Title
JP2016001897A (ja) 反復解析及び分類
US10496680B2 (en) High-performance bloom filter array
US7933282B1 (en) Packet classification device for storing groups of rules
US9984144B2 (en) Efficient lookup of TCAM-like rules in RAM
US7313667B1 (en) Methods and apparatus for mapping fields of entries into new values and combining these mapped values into mapped entries for use in lookup operations such as for packet processing
US7668160B2 (en) Methods for performing packet classification
US6988106B2 (en) Strong and searching a hierarchy of items of particular use with IP security policies and security associations
US7535906B2 (en) Packet classification
US7437354B2 (en) Architecture for network search engines with fixed latency, high capacity, and high throughput
US7536476B1 (en) Method for performing tree based ACL lookups
JP2007507915A (ja) 分類子を識別する装置と方法
US8798066B2 (en) Method for IPv6 longest prefix match
JP2004537921A (ja) 高速パケット転送のための方法及びシステム
Yang et al. Fast OpenFlow table lookup with fast update
US10033698B2 (en) Intra-term logical or operation in a network filter
US6970971B1 (en) Method and apparatus for mapping prefixes and values of a hierarchical space to other representations
Zhou et al. Multi-core implementation of decomposition-based packet classification algorithms
US7558775B1 (en) Methods and apparatus for maintaining sets of ranges typically using an associative memory and for using these ranges to identify a matching range based on a query point or query range and to maintain sorted elements for use such as in providing priority queue operations
US7219187B1 (en) Search parameter table in a content addressable memory
WO2024067746A1 (zh) 一种基于fpga实现的掩码匹配方法及系统
Hatami et al. High-performance architecture for flow-table lookup in SDN on FPGA
CN116319553A (zh) 一种表项查找方法以及网络设备
US11552887B2 (en) System and method of processing packet classification with range sets
US8040882B2 (en) Efficient key sequencer
Ahmadi et al. Modified collision packet classification using counting bloom filter in tuple space.

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150729

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150729

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160427

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160607

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160819

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20170131

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20200407