JP6070863B2 - パケット処理方法及び転送要素 - Google Patents

パケット処理方法及び転送要素 Download PDF

Info

Publication number
JP6070863B2
JP6070863B2 JP2015555516A JP2015555516A JP6070863B2 JP 6070863 B2 JP6070863 B2 JP 6070863B2 JP 2015555516 A JP2015555516 A JP 2015555516A JP 2015555516 A JP2015555516 A JP 2015555516A JP 6070863 B2 JP6070863 B2 JP 6070863B2
Authority
JP
Japan
Prior art keywords
packet
offset
length
key
instruction
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.)
Active
Application number
JP2015555516A
Other languages
English (en)
Other versions
JP2016506217A (ja
Inventor
▲釣▼ ▲ゴン▼
▲釣▼ ▲ゴン▼
文▲陽▼ 雷
文▲陽▼ 雷
小▲飛▼ 徐
小▲飛▼ 徐
洪▲飛▼ ▲陳▼
洪▲飛▼ ▲陳▼
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of JP2016506217A publication Critical patent/JP2016506217A/ja
Application granted granted Critical
Publication of JP6070863B2 publication Critical patent/JP6070863B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • 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

Landscapes

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

Description

本発明は、通信技術に関し、詳細には、パケット処理方法及び転送要素に関する。
従来技術において、転送要素は、パケットを受信する前に当該パケットのデータ形式を判定する必要があり、例えば、転送要素は、パケットがIP(Internet Protocol)であるか又はMPLS(Multiple Protocol Label Switching)であるかを判定して当該パケットを処理する。例えば、スイッチは、イーサネット(登録商標)パケットを受信する前に、当該イーサネットパケットが従うプロトコルがメディアアクセス制御(Media Access Control,MAC)プロトコルであると判定する必要がある。次いで、スイッチは、MACプロトコルに従ってイーサネットパケットのMACプロトコルヘッダを解析して、イーサネットパケットの宛先MACプロトコルアドレスを取得する。
本発明の実施態様は、パケット処理方法及び転送要素を提供する。転送要素は、パケットを処理する前に当該パケットのデータ形式を解釈する必要がなく、したがって、転送要素は、さまざまなデータ形式のパケットを柔軟にサポートできる。転送要素は、新たなデータ形式をサポートする必要があるとき、ハードウェア又はソフトウェアを更新する必要なしに、当該データ形式のパケットを処理できる。
第1態様によれば、パケット処理方法が提供され、パケット処理方法は、
転送要素により、インバウンドポートを介してパケットが受信されるステップと、
転送要素により、インバウンドポートに従ってポートテーブル(port table)が検索されて、第1オフセット(offset)、第1長さ(length)、及び第1テーブルの識別子が決定されるステップと、
転送要素により、第1オフセット及び第1長さに従って第1キー(key)が決定され、第1キーに従って第1テーブルが検索されて、第1命令(instruction)が決定されるステップと、
転送要素により、第1命令に従ってパケットが処理されるステップとを有し、ここで、第1オフセット、第1長さ、及び第1テーブルの識別子は、インバウンドポートに対応する。
上記の技術的解決策において、転送要素は、インバウンドポートに従って第1オフセット及び第1長さを決定する。転送要素は、第1オフセット及び第1長さに従って第1キーを決定する。転送要素は、第1キーに従って第1命令を決定し、パケットを処理する。したがって、転送要素は、パケットを処理する前に当該パケットのデータ形式を解釈する必要がなく、それにより、転送要素は、さまざまなデータ形式のパケットを柔軟にサポートできる。転送要素は、新たなデータ形式をサポートする必要があるとき、ハードウェア又はソフトウェアを更新する必要なしに、当該データ形式のパケットを処理できる。
第1態様の第1実施可能態様において、転送要素により、第1オフセット及び第1長さに従って第1キーが決定されるステップは、
転送要素により、パケット中の第1データセグメント(data segment)が取得されるステップと、
転送要素により、第1データセグメントが第1キーとして決定されるステップとを含み、ここで、第1データセグメントの開始位置は、第1オフセットに従って決定され、かつ第1データセグメントの長さは、第1長さである。
第1態様の第2実施可能態様において、転送要素により、第1オフセット及び第1長さに従って第1キーが決定されるステップは、
転送要素により、メタデータ(met data)中の第2データセグメントが取得されるステップと、
転送要素により、第2データセグメントが第1キーとして決定されるステップとを含み、ここで、第2データセグメントの開始位置は、第1オフセットに従って決定され、かつ第2データセグメントの長さは、第1長さである。
第1態様の第2実施可能態様に従う、第1態様の第3実施可能態様において、メタデータは、転送要素のレジスタ(register)に格納されるか、又はメタデータは、転送要素のメモリ(memory)に格納される。
第1態様、第1態様の第1実施可能態様、第1態様の第2実施可能態様、又は第1態様の第3実施可能態様に従う、第1態様の第4実施可能態様において、第1命令は、動作を実行するように転送要素に命令するために使用され、ここで、動作は、パケットを修正する動作と、パケットのチェックサム(checksum)を計算する動作と、メタデータを書き込む動作と、メタデータを読み取る動作と、カウンタを更新する動作と、パケットにCAR(Committed Access Rate)処理を実行する動作と、パケットを破棄する動作と、パケットを送信する動作と、パケットのベースオフセット(base offset)を修正する動作とのうちの少なくとも1つを含む。
第1態様、第1態様の第1実施可能態様、第1態様の第2実施可能態様、又は第1態様の第3実施可能態様に従う、第1態様の第5実施可能態様において、転送要素により、第1命令に従ってパケットが処理されるステップは、
転送要素により、第1テーブルに従って、パケットのベースオフセット、第2オフセット、第2長さ、及び第2テーブルの識別子が決定されるステップと、
転送要素により、パケットのベースオフセット、第2オフセット、及び第2長さに従って第2キーが決定され、第2キーに従って第2テーブルが検索されて、第2命令が決定されるステップと、
転送要素により、第2命令に従ってパケットが処理されるステップとを含み、ここで、パケットのベースオフセット、第2オフセット、第2長さ、及び第2テーブルの識別子は、第1キーに対応する。
第2態様によれば、転送要素が提供され、転送要素は、
インバウンドポートを介してパケットを受信するように構成された受信回路と、
インバウンドポートに従ってポートテーブルを検索して、第1オフセット、第1長さ、及び第1テーブルの識別子を決定するように構成された検索ユニットと、
第1オフセット及び第1長さに従って第1キーを決定し、第1キーに従って第1テーブルを検索して、第1命令を決定するように構成された決定ユニットと、
第1命令に従ってパケットを処理するように構成された処理ユニットとを具備し、ここで、第1オフセット、第1長さ、及び第1テーブルの識別子は、インバウンドポートに対応する。
上記の技術的解決策において、転送要素は、インバウンドポートに従って第1オフセット及び第1長さを決定する。転送要素は、第1オフセット及び第1長さに従って第1キーを決定する。転送要素は、第1キーに従って第1命令を決定し、パケットを処理する。したがって、転送要素は、パケットを処理する前に当該パケットのデータ形式を解釈する必要がなく、それにより、転送要素は、さまざまなデータ形式のパケットを柔軟にサポートできる。転送要素は、新たなデータ形式をサポートする必要があるとき、ハードウェア又はソフトウェアを更新する必要なしに、当該データ形式のパケットを処理できる。
第2態様の第1実施可能態様において、検索ユニットは、
パケット中の第1データセグメントを取得し、
第1データセグメントを第1キーとして決定するようにさらに構成され、ここで、第1データセグメントの開始位置は、第1オフセットに従って決定され、かつ第1データセグメントの長さは、第1長さである。
第2態様の第2実施可能態様において、検索ユニットは、
メタデータ中の第2データセグメントを取得し、
第2データセグメントを第1キーとして決定するようにさらに構成され、ここで、第2データセグメントの開始位置は、第1オフセットに従って決定され、かつ第2データセグメントの長さは、第1長さである。
第2態様の第2実施可能態様に従う、第2態様の第3実施可能態様において、転送要素は、レジスタ又はメモリをさらに具備し、ここで、メタデータは、レジスタ又はメモリに格納される。
第2態様、第2態様の第1実施可能態様、第2態様の第2実施可能態様、又は第2態様の第3実施可能態様に従う、第2態様の第4実施可能態様において、第1命令は、動作を実行するように転送要素に命令するために使用され、ここで、動作は、パケットを修正する動作と、パケットのチェックサムを計算する動作と、メタデータを書き込む動作と、メタデータを読み取る動作と、カウンタ更新する動作と、パケットにCAR処理を実行する動作と、パケットを破棄する動作と、パケットを送信する動作と、パケットのベースオフセットを修正する動作とのうちの少なくとも1つを含む。
第2態様、第2態様の第1実施可能態様、第2態様の第2実施可能態様、又は第2態様の第3実施可能態様に従う、第2態様の第5実施可能態様において、処理ユニットは、
第1テーブルに従って、パケットのベースオフセット、第2オフセット、第2長さ、及び第2テーブルの識別子を決定し、
パケットのベースオフセット、第2オフセット、及び第2長さに従って第2キーを決定し、第2キーに従って第2テーブルを検索して、第2命令を決定し、
第2命令に従ってパケットを処理するようにさらに構成され、ここで、パケットのベースオフセット、第2オフセット、第2長さ、及び第2テーブルの識別子は、第1キーに対応する。
第3態様によれば、転送要素が提供され、転送要素は、受信回路と、プロセッサと、検索エンジン(search engine)と、メモリとを具備し、ここで、
受信回路は、インバウンドポートを介してパケットを受信するように構成され、
プロセッサは、受信回路に接続されており、プロセッサは、メモリに接続されており、かつプロセッサは、命令実行回路と、命令メモリとを具備し、ここで、命令実行回路は、命令メモリに接続されており、命令メモリは、コンピュータ命令を格納するように構成され、かつ命令実行回路は、コンピュータ命令を読み取ることによって、
検索エンジンが、インバウンドポートに従ってポートテーブルを検索して、第1オフセット、第1長さ、及び第1テーブルの識別子を決定するよう、検索エンジンをトリガする手順と、
第1オフセット及び第1長さに従って第1キーを決定する手順と、
検索エンジンが、第1キーに従って第1テーブルを検索して、第1命令を決定するよう、検索エンジンをトリガする手順と、
第1命令に従ってパケットを処理する手順とを実行し、ここで、第1オフセット、第1長さ、及び第1テーブルの識別子は、インバウンドポートに対応し、かつポートテーブルは、メモリに格納される。
第3態様の第1実施可能態様において、検索エンジンは、パケット中の第1データセグメントを取得するようにさらに構成され、ここで、第1データセグメントの開始位置は、第1オフセットに従って決定され、かつ第1データセグメントの長さは、第1長さであり、
命令実行回路は、第1データセグメントを第1キーとして決定するようにさらに構成され、かつ
プロセッサは、データメモリをさらに具備し、ここで、データメモリは、命令実行回路に接続されており、かつパケットは、データメモリに格納される。
第3態様の第2実施可能態様において、検索エンジンは、メタデータ中の第2データセグメントを取得するようにさらに構成され、ここで、第2データセグメントの開始位置は、第1オフセットに従って決定され、かつ第2データセグメントの長さは、第1長さであり、かつ
命令実行回路は、第2データセグメントを第1キーとして決定するようにさらに構成される。
第3態様の第2実施可能態様に従う、第3態様の第3実施可能態様において、プロセッサは、レジスタをさらに具備し、ここで、レジスタは、命令実行回路に接続されており、かつメタデータは、レジスタに格納される。
第3態様の第2実施可能態様に従う、第3態様の第4実施可能態様において、メタデータは、メモリに格納される。
第3態様、第3態様の第1実施可能態様、第3態様の第2実施可能態様、第3態様の第3実施可能態様、又は第3態様の第4実施可能態様に従う、第3態様の第5実施可能態様において、第1命令は、動作を実行するように命令実行回路に命令するために使用され、ここで、動作は、パケットを修正する動作と、パケットのチェックサムを計算する動作と、メタデータを書き込む動作と、メタデータを読み取る動作と、カウンタ更新する動作と、パケットにCAR処理を実行する動作と、パケットを破棄する動作と、パケットを送信する動作と、パケットのベースオフセットを修正する動作とのうちの少なくとも1つを含む。
第3態様、第3態様の第1実施可能態様、第3態様の第2実施可能態様、第3態様の第3実施可能態様、又は第3態様の第4実施可能態様に従う、第4態様の第6実施可能態様において、命令実行回路は、第1テーブルに従って、パケットのベースオフセット、第2オフセット、第2長さ、及び第2テーブルの識別子を決定するようにさらに構成され、ここで、パケットのベースオフセット、第2オフセット、第2長さ、及び第2テーブルの識別子は、第1キーに対応し、
命令実行回路は、パケットのベースオフセット、第2オフセット、及び第2長さに従って第2キーを決定するようにさらに構成され、
命令実行回路は、検索エンジンが、第2キーに従って第2テーブルを検索して、第2命令を決定するよう、検索エンジンをトリガするようにさらに構成され、かつ
命令実行回路は、第2命令に従ってパケットを処理するようにさらに構成される。
本発明の実施形態における又は従来技術における技術的解決策をより明瞭に説明するために、実施形態及び従来技術を説明するために必要とされる添付の図面について、以下に簡単に説明する。当然ながら、以下の説明における添付の図面は、本発明のいくつかの実施形態を示すものであり、当分野における通常の知識を有する者は、創造的労力無しに、これらの添付の図面から他の図面を導き出せよう。
本発明の一実施形態によるパケット処理方法の概略的なフロー図である。 本発明の一実施形態によるパケット処理方法の概略的なフロー図である。 本発明の一実施形態によるパケット処理方法の概略的なフロー図である。 本発明の一実施形態によるパケット処理方法の概略的なフロー図である。 本発明の一実施形態による転送要素の概略的な構成図である。 本発明の一実施形態による転送要素の概略的な構成図である。 本発明の一実施形態によるエントリの形式の概略図である。 本発明の一実施形態によるエントリの形式の概略図である。
本発明の実施形態の目的、技術的解決策、及び利点を明確にするために、以下では、本発明の実施形態の添付の図面を参照して本発明の実施形態の技術的解決策について明瞭かつ十分に説明する。当然ながら、記載される実施形態は、本発明の実施形態のすべてではなく、その一部に過ぎない。当分野における通常の知識を有する者が本発明の実施形態に基づいて創造的労力無しに得る他のすべての実施形態は、本発明の保護範囲内にある。
図1は、本発明の一実施形態によるパケット処理方法の概略的なフロー図である。図1を参照すると、この方法は、以下のステップを有する。
ステップ102:転送要素は、インバウンドポートを介してパケットを受信する。
例えば、転送要素は、ルータ、スイッチ、ファイアウォール、又はロードバランサであってよい。
例えば、パケットは、IPパケット、イーサネットパケット、又はMPLSパケットであってよい。
例えば、ステップ102は、受信回路によって実行されてよい。
ステップ104:転送要素は、インバウンドポートに従ってポートテーブルを検索して、第1オフセット、第1長さ、及び第1テーブルの識別子を決定する。ここで、第1オフセット、第1長さ、及び第1テーブルの識別子は、インバウンドポートに対応する。
例えば、第1オフセット、第1長さ、及び第1テーブルの識別子は、インバウンドポートに一致するポートテーブルのエントリに格納される。1つ以上の第1オフセットが存在してよい。1つ以上の第1長さが存在してよい。複数のオフセットは、複数の長さと一対一の関係にある。
例えば、第1テーブルは、MACプロトコルテーブル、アドレス解決プロトコル(Address Resolution Protocol,ARP)テーブル、FIB(Forwarding Information Base)、又はMPLSラベルテーブルであってよい。
例えば、ステップ104は、検索エンジンによって実行されてよい。
ステップ106:転送要素は、第1オフセット及び第1長さに従って第1キーを決定し、第1キーに従って第1テーブルを検索して、第1命令を決定する。
例えば、第1キーは、パケット中のデータセグメントであってよい。また、第1キーは、メタデータ中のデータセグメントであってもよい。メタデータは、レジスタに格納される。
例えば、1つ以上の第1キーが存在してよい。複数のキーは、複数のオフセットと一対一の関係にある。複数のキーは、複数の長さと一対一の関係にある。
例えば、第1キーは、パケットだけから得られてよく、又はメタデータだけから得られてもよい。また、第1キーは、パケット及びメタデータから得られてもよい。
例えば、ステップ106は、検索エンジン及び命令実行回路によって実行されてよい。
ステップ108:転送要素は、第1命令に従ってパケットを処理する。
例えば、第1命令は、SSO(Standard Setting Organization)、ONF(Open Networking Foundation)によって公開されたOpenFlowスイッチ仕様書1.3.0(OpenFlow Switch Specification 1.3.0)において規定された命令であってよい。
例えば、ステップ108は、ネットワークプロセッサ(Network Processor,NP)によって実行されてよい。特に、ステップ108は、NP中の命令実行回路によって実行されてもよい。
上記の技術的解決策において、転送要素は、インバウンドポートに従って第1オフセット及び第1長さを決定する。転送要素は、第1オフセット及び第1長さに従って第1キーを決定する。転送要素は、第1キーに従って第1命令を決定し、パケットを処理する。したがって、転送要素は、パケットを処理する前に当該パケットのデータ形式を解釈する必要がなく、それにより、転送要素は、さまざまなデータ形式のパケットを柔軟にサポートできる。転送要素は、新たなデータ形式をサポートする必要があるとき、ハードウェア又はソフトウェアを更新する必要なしに、当該データ形式のパケットを処理できる。
選択的に、図1に示される方法において、転送要素により、第1オフセット及び第1長さに従って第1キーが決定されるステップは、以下のステップを含む。
ステップ202:転送要素は、パケット中の第1データセグメントを取得する。ここで、第1データセグメントの開始位置は、第1オフセットに従って決定され、かつ第1データセグメントの長さは、第1長さである。
ステップ204:転送要素は、第1データセグメントを第1キーとして決定する。
ステップ202及びステップ204の詳細については、図2を参照されたい。
例えば、第1データセグメントの開始位置が第1オフセットに従って決定されることは、特に、第1データセグメントの開始位置が第1ベースオフセットと第1オフセットとの合計を用いて識別されることであってもよい。ここで、第1ベースオフセットは0である。
上記の技術的解決策において、第1キーは、パケットから得られる。
選択的に、図1に示される方法において、転送要素により、第1オフセット及び第1長さに従って第1キーが決定されるステップは、以下のステップを含む。
ステップ302:転送要素は、メタデータ中の第2データセグメントを取得する。ここで、第2データセグメントの開始位置は、第1オフセットに従って決定され、かつ第2データセグメントの長さは、第1長さである。
ステップ304:転送要素は、第2データセグメントを第1キーとして決定する。
ステップ302及びステップ304の詳細については、図3を参照されたい。
例えば、第2データセグメントの開始位置が第1オフセットに従って決定されることは、特に、第2データセグメントの開始位置が第2ベースオフセットと第1オフセットとの合計を用いて識別されることであってもよい。ここで、第2ベースオフセットは0である。
上記の技術的解決策において、第1キーは、メタデータから得られる。
選択的に、図1に示される方法において、メタデータは、転送要素のレジスタに格納される。
例えば、レジスタは、NP中に位置してよい。
選択的に、図1に示される方法において、メタデータは、転送要素のメモリに格納されてよい。
例えば、メモリは、NPに接続されていてよい。
選択的に、図1に示される方法において、第1命令は、動作を実行するように転送要素に命令するために使用される。ここで、この動作は、パケットを修正する動作と、パケットのチェックサムを計算する動作と、メタデータを書き込む動作と、メタデータを読み取る動作と、カウンタ更新する動作と、パケットにCAR処理を実行する動作と、パケットを破棄する動作と、パケットを送信する動作と、パケットのベースオフセットを修正する動作とのうちの少なくとも1つを含む。
例えば、パケットを修正する動作は、パケット中のデータセグメントを削除する動作、パケット中のデータセグメントを置き換える動作、又はパケット中にデータセグメントを挿入する動作であってよい。
例えば、チェックサムは、IPチェックサム、伝送制御プロトコル(Transmission Control Protocol,TCP)チェックサム、又はユーザデータグラムプロトコル(User Datagram Protocol,UDP)チェックサムであってよい。
選択的に、図1に示される方法において、転送要素により、第1命令に従ってパケットが処理されるステップは、以下のステップを含む。
ステップ402:転送要素は、第1テーブルに従って、ベースオフセット、第2オフセット、第2長さ、及び第2テーブルの識別子を決定する。ここで、ベースオフセット、第2オフセット、第2長さ、及び第2テーブルの識別子は、第1キーに対応する。
例えば、ベースオフセットは、第1ベースオフセットと第1オフセットとの合計に等しい。
ステップ404:転送要素は、ベースオフセット、第2オフセット、及び第2長さに従って第2キーを決定し、第2キーに従って第2テーブルを検索して、第2命令を決定する。
例えば、1つ以上の第2キーが存在してよい。複数の第2キーが存在する場合、複数のベースオフセットが存在し、複数の第2オフセットが存在し、かつ複数の第2長さが存在する。複数のベースオフセットは、複数のキーと一対一の関係にある。複数の第2オフセットは、複数のキーと一対一の関係にある。複数の第2長さは、複数のキーと一対一の関係にある。
例えば、第2キーは、パケットだけから得られてよく、又はメタデータだけから得られてもよい。また、第2キーは、パケット及びメタデータから得られてもよい。
ステップ406:転送要素は、第2命令に従ってパケットを処理する。
例えば、第2命令は、ONFによって公開されたOpenFlowスイッチ仕様書1.3.0において規定された命令であってよい。
ステップ402、ステップ404、及びステップ406の詳細については、図4を参照されたい。
図5は、本発明の一実施形態による転送要素の概略的な構成図である。転送要素は、図1に示された方法を実行するように構成されてよい。例えば、転送要素は、ルータ、スイッチ、ファイアウォール、又はロードバランサであってよい。図5を参照すると、転送要素は、受信回路502と、検索ユニット504と、決定ユニット506と、処理ユニット508とを含む。
受信ユニット502は、インバウンドポート介してパケットを受信するように構成される。
例えば、パケットは、IPパケット、イーサネットパケット、又はMPLSパケットであってよい。
検索ユニット504は、インバウンドポートに従ってポートテーブルを検索して、第1オフセット、第1長さ、及び第1テーブルの識別子を決定するように構成される。ここで、第1オフセット、第1長さ、及び第1テーブルの識別子は、インバウンドポートに対応する。
例えば、第1オフセット、第1長さ、及び第1テーブルの識別子は、インバウンドポートに一致するポートテーブルのエントリに格納される。1つ以上の第1オフセットが存在してよい。1つ以上の第1長さが存在してよい。複数のオフセットは、複数の長さと一対一の関係にある。
例えば、第1テーブルは、MACプロトコルテーブル、ARPテーブル、FIB、又はMPLSラベルテーブルであってよい。
例えば、検索ユニット504は、検索エンジンであってよい。
決定ユニット506は、第1オフセット及び第1長さに従って第1キーを決定し、第1キーに従って第1テーブルを検索して、第1命令を決定するように構成される。
例えば、第1キーは、パケット中のデータセグメントであってよい。また、第1キーは、メタデータ中のデータセグメントであってもよい。メタデータは、レジスタに格納される。
例えば、1つ以上の第1キーが存在してよい。複数のキーは、複数のオフセットと一対一の関係にある。複数のキーは、複数の長さと一対一の関係にある。
例えば、第1キーは、パケットだけから得られてよく、又はメタデータだけから得られてもよい。また、第1キーは、パケット及びメタデータから得られてもよい。
例えば、決定ユニット506は、検索エンジン及び命令実行回路であってよい。
処理ユニット508は、第1命令に従ってパケットを処理するように構成される。
例えば、第1命令は、ONFによって公開されたOpenFlowスイッチ仕様書1.3.0において規定された命令であってよい。
例えば、処理ユニット508は、NPであってよく、特に、処理ユニット508は、NP中の命令実行回路であってもよい。
上記の技術的解決策において、転送要素は、インバウンドポートに従って第1オフセット及び第1長さを決定する。転送要素は、第1オフセット及び第1長さに従って第1キーを決定する。転送要素は、第1キーに従って第1命令を決定し、パケットを処理する。したがって、転送要素は、パケットを処理する前に当該パケットのデータ形式を解釈する必要がなく、それにより、転送要素は、さまざまなデータ形式のパケットを柔軟にサポートできる。転送要素は、新たなデータ形式をサポートする必要があるとき、ハードウェア又はソフトウェアを更新する必要なしに、当該データ形式のパケットを処理できる。
選択的に、図5に示される転送要素において、検索ユニット504は、
パケット中の第1データセグメントを取得し、
第1データセグメントを第1キーとして決定するように構成される。ここで、第1データセグメントの開始位置は、第1オフセットに従って決定され、かつ第1データセグメントの長さは、第1長さである。
例えば、第1データセグメントの開始位置が第1オフセットに従って決定されることは、特に、第1データセグメントの開始位置が第1ベースオフセットと第1オフセットとの合計を用いて識別されることであってもよい。ここで、第1ベースオフセットは0である。
上記の技術的解決策において、第1キーは、パケットから得られる。
選択的に、図5に示される転送要素において、検索ユニット504は、
メタデータ中の第2データセグメントを取得し、
第2データセグメントを第1キーとして決定するように構成される。ここで、第2データセグメントの開始位置は、第1オフセットに従って決定され、かつ第2データセグメントの長さは、第1長さである。
例えば、第2データセグメントの開始位置が第1オフセットに従って決定されることは、特に、第2データセグメントの開始位置が第2ベースオフセットと第1オフセットとの合計を用いて識別されることであってもよい。ここで、第2ベースオフセットは0である。
上記の技術的解決策において、第1キーは、メタデータから得られる。
選択的に、図5に示される転送要素は、レジスタ又はメモリをさらに含む。
メタデータ、レジスタ又はメモリに格納される。
選択的に、図5に示される転送要素において、第1命令は、動作を実行するように転送要素に命令するために使用される。ここで、この動作は、パケットを修正する動作と、パケットのチェックサムを計算する動作と、メタデータを書き込む動作と、メタデータを読み取る動作と、カウンタ更新する動作と、パケットにCAR処理を実行する動作と、パケットを破棄する動作と、パケットを送信する動作と、パケットのベースオフセットを修正する動作とのうちの少なくとも1つを含む。
例えば、パケットを修正する動作は、パケット中のデータセグメントを削除する動作、パケット中のデータセグメントを置き換える動作、又はパケット中にデータセグメントを挿入する動作であってよい。
例えば、チェックサムは、IPチェックサム、伝送制御プロトコルチェックサム、又はUDPチェックサムであってよい。
選択的に、図5に示される転送要素において、処理ユニット508は、
第1テーブルに従って、パケットのベースオフセット、第2オフセット、第2長さ、及び第2テーブルの識別子を決定し、
パケットのベースオフセット、第2オフセット、及び第2長さに従って第2キーを決定し、第2キーに従って第2テーブルを検索して、第2命令を決定し、
第2命令に従ってパケットを処理するように構成される。ここで、パケットのベースオフセット、第2オフセット、第2長さ、及び第2テーブルの識別子は、第1キーに対応する。
例えば、ベースオフセットは、第1ベースオフセットと第1オフセットとの合計に等しい。
例えば、1つ以上の第2キーが存在してよい。複数の第2キーが存在する場合、複数のベースオフセットが存在し、複数の第2オフセットが存在し、かつ複数の第2長さが存在する。複数のベースオフセットは、複数のキーと一対一の関係にある。複数の第2オフセットは、複数のキーと一対一の関係にある。複数の第2長さは、複数のキーと一対一の関係にある。
例えば、第2キーは、パケットだけから得られてよく、又はメタデータだけから得られてもよい。また、第2キーは、パケット及びメタデータから得られてもよい。
例えば、第2命令は、ONFによって公開されたOpenFlowスイッチ仕様書1.3.0において規定された命令であってよい。
図6は、本発明の一実施形態による転送要素の概略的な構成図である。転送要素は、図1に示された方法を実行するように構成されてよい。例えば、転送要素は、ルータ、スイッチ、ファイアウォール、又はロードバランサであってよい。図6を参照すると、転送要素は、インタフェース回路601と、インタフェース回路602と、メモリ(memory)603と、検索エンジン(search engine)604と、プロセッサ609とを含む。プロセッサ609は、命令実行回路605と、命令メモリ607とを含む。選択的に、プロセッサ609は、レジスタ(register)606と、データメモリ608とを含んでよい。
受信回路601は、インバウンドポート介してパケットを受信するように構成される。
プロセッサ609は、受信回路601に接続されており、プロセッサ609は、メモリ603に接続されており、かつプロセッサ609は、命令実行回路605と、命令メモリ607とを含む。ここで、命令実行回路605は、命令メモリ607に接続されており、命令メモリ607は、コンピュータ命令を格納するように構成され、かつ命令実行回路605は、コンピュータ命令を読み取ることによって、
検索エンジン604が、インバウンドポートに従ってポートテーブルを検索して、第1オフセット、第1長さ、及び第1テーブルの識別子を決定するよう、検索エンジン604をトリガする手順と、
第1オフセット及び第1長さに従って第1キーを決定する手順と、
検索エンジン604が、第1キーに従って第1テーブルを検索して、第1命令を決定するよう、検索エンジン604をトリガする手順と、
第1命令に従ってパケットを処理する手順とを実行し、ここで、第1オフセット、第1長さ、及び第1テーブルの識別子は、インバウンドポートに対応し、かつポートテーブルは、メモリ603に格納される。
例えば、プロセッサ609は、クロスバー(crossbar)を用いてメモリ603に接続されていてよい。プロセッサ609は、クロスバーを用いて検索エンジン604に接続されていてよい。
例えば、パケットは、IPパケット、イーサネットパケット、又はMPLSパケットであってよい。
例えば、第1オフセット、第1長さ、及び第1テーブルの識別子は、インバウンドポートに一致するポートテーブルのエントリに格納される。1つ以上の第1オフセットが存在してよい。1つ以上の第1長さが存在してよい。複数のオフセットは、複数の長さと一対一の関係にある。
図7は、ポートテーブルのエントリの形式の概略図である。図7中のインバウンドポート701、第1オフセット702、第1長さ703、及び第1テーブルの識別子704は、それぞれ、上記のインバウンドポート、第1オフセット、第1長さ、及び第1テーブルの識別子に対応する。
例えば、第1テーブルは、MACプロトコルテーブル、ARPテーブル、FIB、又はMPLSラベルテーブルであってよい。
例えば、第1キーは、パケット中のデータセグメントであってよい。また、第1キーは、メタデータ中のデータセグメントであってもよい。メタデータは、レジスタに格納される。
例えば、1つ以上の第1キーが存在してよい。複数のキーは、複数のオフセットと一対一の関係にある。複数のキーは、複数の長さと一対一の関係にある。
例えば、第1キーは、パケットだけから得られてよく、又はメタデータだけから得られてもよい。また、第1キーは、パケット及びメタデータから得られてもよい。
例えば、第1命令は、ONFによって公開されたOpenFlowスイッチ仕様書1.3.0において規定された命令であってよい。
上記の技術的解決策において、転送要素は、インバウンドポートに従って第1オフセット及び第1長さを決定する。転送要素は、第1オフセット及び第1長さに従って第1キーを決定する。転送要素は、第1キーに従って第1命令を決定し、パケットを処理する。したがって、転送要素は、パケットを処理する前に当該パケットのデータ形式を解釈する必要がなく、それにより、転送要素は、さまざまなデータ形式のパケットを柔軟にサポートできる。転送要素は、新たなデータ形式をサポートする必要があるとき、ハードウェア又はソフトウェアを更新する必要なしに、当該データ形式のパケットを処理できる。
選択的に、図6に示される転送要素において、検索エンジン604は、パケット中の第1データセグメントを取得するようにさらに構成される。ここで、第1データセグメントの開始位置は、第1オフセットに従って決定され、かつ第1データセグメントの長さは、第1長さである。
命令実行回路605は、第1データセグメントを第1キーとして決定するようにさらに構成される。
プロセッサは、データメモリ608をさらに含む。ここで、データメモリ608は、命令実行回路605に接続されており、かつパケットは、データメモリ608に格納される。
例えば、第1データセグメントの開始位置が第1オフセットに従って決定されることは、特に、第1データセグメントの開始位置が第1ベースオフセットと第1オフセットとの合計を用いて識別されることであってもよい。ここで、第1ベースオフセットは0である。
上記の技術的解決策において、第1キーは、パケットから得られる。
選択的に、図6に示される転送要素において、検索エンジン604は、メタデータ中の第2データセグメントを取得するようにさらに構成される。ここで、第2データセグメントの開始位置は、第1オフセットに従って決定され、かつ第2データセグメントの長さは、第1長さである。
命令実行回路605は、第2データセグメントを第1キーとして決定するようにさらに構成される。
例えば、第2データセグメントの開始位置が第1オフセットに従って決定されることは、特に、第2データセグメントの開始位置が第2ベースオフセットと第1オフセットとの合計を用いて識別されることであってもよい。ここで、第2ベースオフセットは0である。
上記の技術的解決策において、第1キーは、メタデータから得られる。
選択的に、図6に示される転送要素において、プロセッサ609は、レジスタ606をさらに含む。ここで、レジスタ606は、命令実行回路605に接続されており、かつメタデータは、レジスタ606に格納される。
選択的に、図6に示される転送要素において、メタデータは、メモリ603に格納される。
選択的に、図6に示される転送要素において、第1命令は、動作を実行するように命令実行回路に命令するために使用される。ここで、この動作は、パケットを修正する動作と、パケットのチェックサムを計算する動作と、メタデータを書き込む動作と、メタデータを読み取る動作と、カウンタ更新する動作と、パケットにCAR処理を実行する動作と、パケットを破棄する動作と、パケットを送信する動作と、パケットのベースオフセットを修正する動作とのうちの少なくとも1つを含む。
例えば、パケットを修正する動作は、パケット中のデータセグメントを削除する動作、パケット中のデータセグメントを置き換える動作、又はパケット中にデータセグメントを挿入する動作であってよい。
例えば、チェックサムは、IPチェックサム、TCPチェックサム、又はUDPチェックサムであってよい。
例えば、パケットは、インタフェース回路602によって送信されてよい。
選択的に、図6に示される転送要素において、命令実行回路605は、第1テーブルに従って、パケットのベースオフセット、第2オフセット、第2長さ、及び第2テーブルの識別子を決定するようにさらに構成される。ここで、パケットのベースオフセット、第2オフセット、第2長さ、及び第2テーブルの識別子は、第1キーに対応する。
命令実行回路605は、パケットのベースオフセット、第2オフセット、及び第2長さに従って第2キーを決定するようにさらに構成される。
命令実行回路605は、検索エンジン604が、第2キーに従って第2テーブルを検索して、第2命令を決定するよう、検索エンジン604をトリガするようにさらに構成される。
命令実行回路605は、第2命令に従ってパケットを処理するようにさらに構成される。
例えば、ベースオフセットは、第1ベースオフセットと第1オフセットとの合計に等しい。
例えば、1つ以上の第2キーが存在してよい。複数の第2キーが存在する場合、複数のベースオフセットが存在し、複数の第2オフセットが存在し、かつ複数の第2長さが存在する。複数のベースオフセットは、複数のキーと一対一の関係にある。複数の第2オフセットは、複数のキーと一対一の関係にある。複数の第2長さは、複数のキーと一対一の関係にある。
例えば、第2キーは、パケットだけから得られてよく、又はメタデータだけから得られてもよい。また、第2キーは、パケット及びメタデータから得られてもよい。
例えば、第2命令は、ONFによって公開されたOpenFlowスイッチ仕様書1.3.0において規定された命令であってよい。
例えば、第2テーブルのエントリは、第2キーと、第2命令とを含む。図8は、第2テーブルのエントリの形式の概略図である。図8中の第2キー801及び第2命令802は、それぞれ、上記の第2キー及び第2命令に対応する。
当技術分野において通常の知識を有する者は、この明細書において開示される実施形態として記載された実施例の組合せにより、ユニット及びアルゴリズムステップが、電子的ハードウェアによって、又はコンピュータソフトウェアと電子的ハードウェアとの組合せによって実装され得ることを理解できよう。
機能がハードウェア又はソフトウェアのいずれによって実行されるかは、技術的解決策の特定の用途又は設計制約条件によって決まる。当業者は、特定の用途毎に異なる方法を使用して、記載された機能を実施してよく、そのような実施の形態は、本発明の範囲を逸脱するものとみなされてはならない。
簡便かつ簡潔な説明を目的として、上記のシステム、装置、及びユニットの詳細な動作プロセスについて、上記の方法の実施形態における対応するプロセスへの参照がなされてよく、その詳細はここでは繰返して説明されない、ということが当業者には明確に理解されよう。
本出願によって提供されるいくつかの実施形態において、記載されたシステム、装置、及び方法は、別の方法で実施され得ることを理解されたい。例えば、記載された装置の実施形態は、例示に過ぎない。例えば、ユニットの分割は、論理的機能の分割に過ぎず、実際の実装の際には、他の分割が行われてよい。例えば、複数のユニット又はコンポーネントは、組み合わせられるか、又は別のシステムに一体化されてよく、また、いくつかの特徴は、無視されるか、又は実行されなくてよい。さらに、示された、又は説明された相互接続又は直接的接続又は通信接続は、いくつかのインタフェースを介して実装されてよい。装置又はユニット間の非直接的接続又は通信接続は、電子的、機械的、又はその他の形態で実装されてよい。
分離した部分として記載されたユニットは、それが物理的な分離であってもなくてもよく、かつユニットとして記載された部分は、物理的なユニットであってもなくてもよく、1つの場所に位置していてよく、又は複数のネットワークユニットに分散されていてもよい。ユニットの一部又はすべては、実施形態の解決策の目的を達成するための実際の必要性に従って選択されてよい。
さらに、本発明の実施形態における機能ユニットは、1つの処理ユニットに一体化されてよく、又は複数のユニットの各々が物理的に単独で存在してもよく、又は2つ以上のユニットが1つのユニットに一体化されてもよい。
機能は、独立した製品としてソフトウェア機能ユニットの形態で実装され、販売され、使用される場合、コンピュータ読み取り可能な記憶媒体に格納されてよい。そのような理解に基づき、本発明の技術的解決策は本質的に、又は従来技術に寄与する部分は、又は技術的解決策の部分は、ソフトウェア製品の形態で実装され得る。コンピュータソフトウェア製品は、記憶媒体に格納され、本発明の実施形態として説明された方法のステップのすべて又は一部を実行するように(パーソナルコンピュータ、サーバ、又はネットワークデバイスであってよい)コンピュータデバイスに命令するためのいくつかの命令を含む。上記の記憶媒体は、USBフラッシュドライブ、リムーバブルハードディスク、ROM(Read Only Memory)、RAM(Random Access Memory)、磁気ディスク、又は光学ディスクなど、プログラムコードを格納可能な任意の媒体を含む。
以上の記載は、本発明の特定の実施の方法に過ぎず、本発明の保護範囲を限定することを意図したものではない。本発明によって開示される技術的範囲内で当業者が容易に想到する任意の変形例又は置換例は、本発明の保護範囲内にある。したがって、本発明の保護範囲は、特許請求の範囲の保護範囲に従う。
502 受信回路
504 検索ユニット
506 決定ユニット
508 処理ユニット
601,602 インタフェース回路
603 メモリ
604 検索エンジン
605 命令実行回路
606 レジスタ
607 命令メモリ
608 データメモリ
609 プロセッサ
701 インバウンドポート
702 第1オフセット
703 第1長さ
704 第1テーブルの識別子
801 第2キー
802 第2命令

Claims (21)

  1. パケット処理方法であって、
    転送要素により、インバウンドポートを介してパケットが受信されるステップと、
    前記転送要素により、前記インバウンドポートに従ってポートテーブルが検索されて、第1オフセット、第1長さ、及び第1テーブルの識別子が決定されるステップと、
    前記転送要素により、前記第1オフセット及び前記第1長さに従って第1キーが決定され、前記第1キーに従って前記第1テーブルの識別子によって示される第1テーブルが検索されて、第1命令が決定されるステップと、
    前記転送要素により、前記第1命令に従って前記パケットが処理されるステップと
    を有し、
    前記第1オフセット、前記第1長さ、及び前記第1テーブルの前記識別子は、前記インバウンドポートに対応する、方法。
  2. 前記転送要素により、前記第1オフセット及び前記第1長さに従って第1キーが決定され、前記第1キーに従って前記第1テーブルが検索されて、第1命令が決定される前記ステップが、
    前記転送要素により、前記パケット中の第1データセグメントが取得されるステップと、
    前記転送要素により、前記第1データセグメントが前記第1キーとして決定されるステップと
    を含み、
    前記第1データセグメントの開始位置は、前記第1オフセットに従って決定され、
    前記第1データセグメントの長さは、前記第1長さである、請求項1に記載の方法。
  3. 前記転送要素により、前記第1オフセット及び前記第1長さに従って第1キーが決定され、前記第1キーに従って前記第1テーブルが検索されて、第1命令が決定される前記ステップが、
    前記転送要素により、メタデータ中の第2データセグメントが取得されるステップと、
    前記転送要素により、前記第2データセグメントが前記第1キーとして決定されるステップと
    を含み、
    前記第2データセグメントの開始位置は、前記第1オフセットに従って決定され、
    前記第2データセグメントの長さは、前記第1長さである、請求項1に記載の方法。
  4. 前記メタデータが、前記転送要素のレジスタに格納されるか、又は
    前記メタデータが、前記転送要素のメモリに格納される、請求項3に記載の方法。
  5. 前記第1命令は、動作を実行するように前記転送要素に命令するために使用され、
    前記動作は、
    前記パケットを修正する動作と、
    前記パケットのチェックサムを計算する動作と、
    タデータを書き込む動作と、
    タデータを読み取る動作と、
    カウンタを更新する動作と、
    前記パケットにCommitted Access Rate(CAR)処理を実行する動作と、
    前記パケットを破棄する動作と、
    前記パケットを送信する動作と、
    前記パケットのベースオフセットを修正する動作と
    のうちの少なくとも1つを含む、請求項1ないし4のいずれか一項に記載の方法。
  6. 前記転送要素により、前記第1命令に従って前記パケットが処理される前記ステップが、
    前記転送要素により、前記第1テーブルに従って、前記パケットのベースオフセット、第2オフセット、第2長さ、及び第2テーブルの識別子が決定されるステップと、
    前記転送要素により、前記パケットの前記ベースオフセット、前記第2オフセット、及び前記第2長さに従って第2キーが決定され、前記第2キーに従って前記第2テーブルが検索されて、第2命令が決定されるステップと、
    前記転送要素により、前記第2命令に従って前記パケットが処理されるステップと
    を含み、
    前記パケットの前記ベースオフセット、前記第2オフセット、前記第2長さ、及び前記第2テーブルの前記識別子は、前記第1キーに対応する、請求項1ないし4のいずれか一項に記載の方法。
  7. 前記転送要素が、ルータ、スイッチ、ファイアウォール、又はロードバランサである、請求項1ないし6のいずれか一項に記載の方法。
  8. インバウンドポートを介してパケットを受信するように構成された受信回路と、
    前記インバウンドポートに従ってポートテーブルを検索して、第1オフセット、第1長さ、及び第1テーブルの識別子を決定するように構成された検索ユニットと、
    前記第1オフセット及び前記第1長さに従って第1キーを決定し、前記第1キーに従って前記第1テーブルの識別子によって示される第1テーブルを検索して、第1命令を決定するように構成された決定ユニットと、
    前記第1命令に従って前記パケットを処理するように構成された処理ユニットと
    を具備し、
    前記第1オフセット、前記第1長さ、及び前記第1テーブルの前記識別子は、前記インバウンドポートに対応する、転送要素。
  9. 前記検索ユニットが、
    前記パケット中の第1データセグメントを取得し、
    前記第1データセグメントを前記第1キーとして決定するようにさらに構成され、
    前記第1データセグメントの開始位置は、前記第1オフセットに従って決定され、
    前記第1データセグメントの長さは、前記第1長さである、請求項に記載の転送要素。
  10. 前記検索ユニットが、
    メタデータ中の第2データセグメントを取得し、
    前記第2データセグメントを前記第1キーとして決定するようにさらに構成され、
    前記第2データセグメントの開始位置は、前記第1オフセットに従って決定され、
    前記第2データセグメントの長さは、前記第1長さである、請求項に記載の転送要素。
  11. レジスタ又はメモリをさらに具備し、
    前記メタデータが、前記レジスタ又は前記メモリに格納される、請求項10に記載の転送要素。
  12. 前記第1命令は、動作を実行するように転送要素に命令するために使用され、
    前記動作は、
    前記パケットを修正する動作と、
    前記パケットのチェックサムを計算する動作と、
    タデータを書き込む動作と、
    タデータを読み取る動作と、
    カウンタを更新する動作と、
    前記パケットにCAR処理を実行する動作と、
    前記パケットを破棄する動作と、
    前記パケットを送信する動作と、
    前記パケットのベースオフセットを修正する動作と
    のうちの少なくとも1つを含む、請求項ないし11のいずれか一項に記載の転送要素。
  13. 前記処理ユニットが、
    前記第1テーブルに従って、前記パケットのベースオフセット、第2オフセット、第2長さ、及び第2テーブルの識別子を決定し、
    前記パケットの前記ベースオフセット、前記第2オフセット、及び前記第2長さに従って第2キーを決定し、前記第2キーに従って前記第2テーブルを検索して、第2命令を決定し、
    前記第2命令に従って前記パケットを処理するようにさらに構成され、
    前記パケットの前記ベースオフセット、前記第2オフセット、前記第2長さ、及び前記第2テーブルの前記識別子は、前記第1キーに対応する、請求項ないし11のいずれか一項に記載の転送要素。
  14. 前記転送要素が、ルータ、スイッチ、ファイアウォール、又はロードバランサである、請求項8ないし13のいずれか一項に記載の転送要素。
  15. 受信回路、プロセッサ、検索エンジン、及びメモリを含む転送要素であって、
    前記受信回路が、インバウンドポートを介してパケットを受信するように構成され、
    前記プロセッサが、前記受信回路に接続されており、前記プロセッサは前記メモリに接続されており、かつ前記プロセッサは命令実行回路と命令メモリを含み、ここで、前記命令実行回路は、前記命令メモリに接続されており、前記命令メモリはコンピュータ命令を格納するように構成され、かつ前記命令実行回路は前記コンピュータ命令を読み取ることによって、
    前記検索エンジンが、前記インバウンドポートに従ってポートテーブルを検索して、第1オフセット、第1長さ、及び第1テーブルの識別子を決定するよう、前記検索エンジンをトリガする手順と、
    前記第1オフセット及び前記第1長さに従って第1キーを決定する手順と、
    前記検索エンジンが、前記第1キーに従って前記第1テーブルを検索して、第1命令を決定するよう、前記検索エンジンをトリガする手順と、
    前記第1命令に従って前記パケットを処理する手順と、を実行し、ここで、前記第1オフセット、前記第1長さ、及び前記第1テーブルの前記識別子は、前記インバウンドポートに対応し、かつ前記ポートテーブルは、前記メモリに格納される、
    転送要素。
  16. 前記検索エンジンが、前記パケット中の第1データセグメントを取得するようにさらに構成され、ここで、前記第1データセグメントの開始位置は、前記第1オフセットに従って決定され、かつ前記第1データセグメントの長さは、前記第1長さであり、
    前記命令実行回路が、前記第1データセグメントを前記第1キーとして決定するようにさらに構成され、
    前記プロセッサが、データメモリをさらに含み、ここで、前記データメモリは、前記命令実行回路に接続されており、かつ前記パケットは、前記データメモリに格納される、
    請求項15に記載の転送要素。
  17. 前記検索エンジンが、メタデータ中の第2データセグメントを取得するようにさらに構成され、ここで、前記第2データセグメントの開始位置は、前記第1オフセットに従って決定され、かつ前記第2データセグメントの長さは前記第1長さであり、
    前記命令実行回路が、前記第2データセグメントを前記第1キーとして決定するようにさらに構成される、
    請求項15に記載の転送要素。
  18. 前記プロセッサが、レジスタをさらに含み、ここで、前記レジスタは、前記命令実行回路に接続されており、かつ前記メタデータは、前記レジスタに格納される、
    請求項17に記載の転送要素。
  19. 前記メタデータが、前記メモリに格納される、
    請求項17に記載の転送要素。
  20. 前記第1命令が、動作を実行するように前記命令実行回路に命令するために使用され、ここで、前記動作は、前記パケットを修正する動作と、前記パケットのチェックサムを計算する動作と、メタデータを書き込む動作と、メタデータを読み取る動作と、カウンタ更新動作と、前記パケットにCAR処理を実行する動作と、前記パケットを破棄する動作と、前記パケットを送信する動作と、前記パケットのベースオフセットを修正する動作とのうちの、少なくとも1つを含む、
    請求項15ないし19のいずれか一項に記載の転送要素。
  21. 前記命令実行回路が、
    前記第1テーブルに従って、前記パケットのベースオフセット、第2オフセット、第2長さ、及び第2テーブルの識別子を決定するようにさらに構成され、ここで、前記パケットの前記ベースオフセット、前記第2オフセット、前記第2長さ、及び前記第2テーブルの前記識別子は、前記第1キーに対応し、
    前記命令実行回路が、
    前記パケットの前記ベースオフセット、前記第2オフセット、及び前記第2長さに従って第2キーを決定するようにさらに構成され、
    前記命令実行回路が、前記検索エンジンが前記第2キーに従って前記第2テーブルを検索して、第2命令を決定するよう、前記検索エンジンをトリガするようにさらに構成され、
    前記命令実行回路が、前記第2命令に従って前記パケットを処理するようにさらに構成される、
    請求項15ないし19のいずれか一項に記載の転送要素。
JP2015555516A 2013-01-29 2013-01-29 パケット処理方法及び転送要素 Active JP6070863B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/071088 WO2014117327A1 (zh) 2013-01-29 2013-01-29 报文处理方法和转发设备

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2016219476A Division JP2017034723A (ja) 2016-11-10 2016-11-10 パケット処理方法及び転送要素

Publications (2)

Publication Number Publication Date
JP2016506217A JP2016506217A (ja) 2016-02-25
JP6070863B2 true JP6070863B2 (ja) 2017-02-01

Family

ID=51261389

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015555516A Active JP6070863B2 (ja) 2013-01-29 2013-01-29 パケット処理方法及び転送要素

Country Status (6)

Country Link
US (1) US9749262B2 (ja)
EP (3) EP2942913B1 (ja)
JP (1) JP6070863B2 (ja)
CN (2) CN104205742B (ja)
ES (1) ES2766861T3 (ja)
WO (1) WO2014117327A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017034723A (ja) * 2016-11-10 2017-02-09 ▲ホア▼▲ウェイ▼技術有限公司Huawei Technologies Co.,Ltd. パケット処理方法及び転送要素

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109729117B (zh) * 2017-10-30 2020-10-27 华为技术有限公司 一种报文处理的方法、芯片系统以及计算机存储介质
CN109688148A (zh) * 2018-12-29 2019-04-26 苏州睿安芯微电子有限公司 一种基于软件配置的自定转发协议安全网络的系统及方法
CN111327546B (zh) * 2020-02-25 2022-01-28 杭州迪普科技股份有限公司 一种报文转发的方法及装置

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6266706B1 (en) * 1997-09-15 2001-07-24 Effnet Group Ab Fast routing lookup system using complete prefix tree, bit vector, and pointers in a routing table for determining where to route IP datagrams
EA200000328A1 (ru) * 1997-09-15 2000-10-30 Эффнет Груп Аб Способ и система для быстрых поисков маршрутизации
US6347087B1 (en) * 1998-10-05 2002-02-12 Packet Engines Incorporated Content-based forwarding/filtering in a network switching device
DE60126533T2 (de) * 2000-06-19 2007-11-22 Broadcom Corp., Irvine Vermittlungsstelle mit einer Speicherverwaltungeinheit zur Verbesserung der Flusssteurung
US7813346B1 (en) * 2001-11-21 2010-10-12 Juniper Networks, Inc. Filter-based forwarding in a network
US7289498B2 (en) * 2002-06-04 2007-10-30 Lucent Technologies Inc. Classifying and distributing traffic at a network node
US20050114393A1 (en) * 2003-11-24 2005-05-26 Alcatel Dynamic forwarding method using binary search
US7555594B2 (en) * 2004-07-22 2009-06-30 Netlogic Microsystems, Inc. Range representation in a content addressable memory (CAM) using an improved encoding scheme
US20060212426A1 (en) * 2004-12-21 2006-09-21 Udaya Shakara Efficient CAM-based techniques to perform string searches in packet payloads
CN101047649A (zh) * 2007-04-05 2007-10-03 华为技术有限公司 一种转发数据流的方法和设备
CN101471923B (zh) * 2007-12-27 2012-06-20 华为技术有限公司 发送协议报文、识别协议报文类型的方法、设备和系统
CN101267331A (zh) * 2008-04-23 2008-09-17 华为技术有限公司 一种组播转发表查找方法和装置
US8375211B2 (en) * 2009-04-21 2013-02-12 International Business Machines Corporation Optimization of signing soap body element
CN101599960A (zh) * 2009-05-27 2009-12-09 南京欣网视讯科技股份有限公司 一种基于协议分析的p2p流量识别方法
CN101989954B (zh) * 2010-11-16 2014-09-10 中兴通讯股份有限公司 报文分片方法和网络转发设备
RU2613034C2 (ru) * 2010-11-16 2017-03-14 Тибко Софтвеар Инк. Быстрое установление соответствия при адресации по содержанию (контенту)
CN102143074B (zh) 2011-03-25 2015-09-16 中兴通讯股份有限公司 网络负荷的分担方法、系统及网络处理器
CN102148768B (zh) * 2011-05-26 2014-11-26 杭州华三通信技术有限公司 报文转发方法和报文转发设备
CN102333039B (zh) * 2011-10-25 2014-09-17 华为技术有限公司 一种转发报文的方法、生成表项的方法及装置
CN102427428A (zh) * 2011-12-07 2012-04-25 西安电子科技大学 基于多域最长匹配的流识别方法及设备
CN102780619B (zh) 2012-07-23 2015-03-11 北京星网锐捷网络技术有限公司 一种处理报文的方法及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017034723A (ja) * 2016-11-10 2017-02-09 ▲ホア▼▲ウェイ▼技術有限公司Huawei Technologies Co.,Ltd. パケット処理方法及び転送要素

Also Published As

Publication number Publication date
WO2014117327A1 (zh) 2014-08-07
EP3255844A1 (en) 2017-12-13
CN104205742B (zh) 2017-04-12
EP2942913A4 (en) 2016-01-20
EP2942913B1 (en) 2017-06-21
CN104205742A (zh) 2014-12-10
JP2016506217A (ja) 2016-02-25
US20150334055A1 (en) 2015-11-19
EP3687123A1 (en) 2020-07-29
US9749262B2 (en) 2017-08-29
EP2942913A1 (en) 2015-11-11
EP3687123B1 (en) 2022-07-27
ES2766861T3 (es) 2020-06-15
EP3255844B1 (en) 2019-10-30
CN106850442B (zh) 2019-01-08
CN106850442A (zh) 2017-06-13

Similar Documents

Publication Publication Date Title
EP3401783B1 (en) Method and apparatus for determining virtual machine migration
JP5610247B2 (ja) ネットワークシステム、及びポリシー経路設定方法
JP6308601B2 (ja) パケット処理方法およびデバイス
WO2015056095A1 (en) Packet parsing and key generation in a network device
WO2014179390A1 (en) Low-cost flow matching in software defined networks without tcams
US10574570B2 (en) Communication processing method and apparatus
US20150163072A1 (en) Virtual Port Extender
JPWO2011074559A1 (ja) ネットワークシステム、ネットワーク制御装置、及び制御方法
JP6070863B2 (ja) パケット処理方法及び転送要素
JP6007972B2 (ja) 通信ノード、パケット処理方法及びプログラム
JP2012175394A (ja) フロースイッチ、フロー制御システムおよびフロー制御方法
JP5682846B2 (ja) ネットワークシステム、パケット処理方法、及び記憶媒体
EP3384642B1 (en) Forwarding table compression
JP6678401B2 (ja) 変更のためにパケットを個々のレイヤに分割し、変更後のレイヤを情報処理で継合する方法およびその装置
US20150304462A1 (en) Network device and packet processing method
CN106878308B (zh) 一种icmp报文匹配系统及方法
JP5961745B2 (ja) 通信装置またはパケット転送方法
JP2017034723A (ja) パケット処理方法及び転送要素
US9853891B2 (en) System and method for facilitating communication
WO2016183732A1 (zh) 一种数据包转发方法和网络设备
WO2015184979A1 (zh) 处理报文、发送信息、接收信息的方法及装置
US9800591B2 (en) Method and apparatus for processing packet on trill network
CN117336246A (zh) 数据报文的处理方法及装置、电子设备及存储介质

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160720

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160802

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20161102

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161110

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20161206

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161219

R150 Certificate of patent or registration of utility model

Ref document number: 6070863

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250