(57)【要約】【課題】パケットとテーブルとの照合を行うことによりパケットに対する処理を実行するパケット転送装置において、パケットとテーブルと照合の条件を柔軟に設定し、柔軟に照合処理を行う。【解決手段】ネットワークにおいてパケットの転送を行うパケット転送装置において、データと処理内容とを対応付けたテーブルを格納するテーブル格納手段と、入力されたパケットにおいて前記テーブルとの照合対象とする部分を指定する指定手段と、前記指定手段により指定された部分のデータを前記テーブル内のデータと照合し、照合結果に基づいて、前記パケットに対する処理内容を決定する処理決定手段とを備える。【選択図】図３
2015139195.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークにおいてパケットの転送を行うパケット転送装置であって、
データと処理内容とを対応付けたテーブルを格納するテーブル格納手段と、
入力されたパケットにおいて前記テーブルとの照合対象とする部分を指定する指定手段と、
前記指定手段により指定された部分のデータを前記テーブル内のデータと照合し、照合結果に基づいて、前記パケットに対する処理内容を決定する処理決定手段と
を備えることを特徴とするパケット転送装置。
【請求項２】
前記指定手段は、前記パケットに対応するビットマスクを特定し、当該ビットマスクにより前記パケットにおける前記照合対象とする部分を指定する
ことを特徴とする請求項１に記載のパケット転送装置。
【請求項３】
前記指定手段により指定される前記照合対象とする部分は、前記テーブルにおける特定の領域と対応付られており、前記処理決定手段は、当該照合対象とする部分に対応する前記テーブルの領域を特定し、当該テーブルの領域と前記指定手段により指定された部分のデータとの照合を行う
ことを特徴とする請求項１又は２に記載のパケット転送装置。
【請求項４】
前記ビットマスクは、前記テーブルにおける特定の領域と対応付られており、前記処理決定手段は、前記ビットマスクに対応する前記テーブルの領域を特定し、当該テーブルの領域と前記指定手段により指定された部分のデータとの照合を行う
ことを特徴とする請求項２に記載のパケット転送装置。
【請求項５】
前記テーブル格納手段は複数のテーブルを有し、前記指定手段により指定される前記照合対象とする部分は、当該複数のテーブルのうちの特定のテーブルと対応付られており、前記処理決定手段は、前記照合対象とする部分に対応するテーブルを特定し、当該特定されたテーブルと前記指定手段により指定された部分のデータとの照合を行う
ことを特徴とする請求項１又は２に記載のパケット転送装置。
【請求項６】
前記テーブル格納手段は複数のテーブルを有し、前記ビットマスクは、当該複数のテーブルのうちの特定のテーブルと対応付られており、前記処理決定手段は、前記ビットマスクに対応するテーブルを特定し、当該特定されたテーブルと前記指定手段により指定された部分のデータとの照合を行う
ことを特徴とする請求項２に記載のパケット転送装置。
【請求項７】
前記処理決定手段により決定された処理内容が、テーブルとの照合処理を示す場合において、前記パケットに対し、前記指定手段による照合対象の部分の指定、及び前記処理決定手段による処理内容の決定を再度実行する
ことを特徴とする請求項１ないし６のうちいずれか１項に記載のパケット転送装置。
【請求項８】
前記指定手段は、複数のビットマスクを用いることにより、前記テーブルとの照合対象とする複数の部分を指定し、前記処理決定手段は、当該照合対象とする複数の部分に対応するテーブルの複数の領域を特定し、当該テーブルの複数の領域と前記指定手段により指定された複数の部分のデータとの照合を行う
ことを特徴とする請求項１ないし７のうちいずれか１項に記載のパケット転送装置。
【請求項９】
コンピュータを、請求項１ないし８のうちいずれか１項に記載の前記パケット転送装置における各手段として機能させるためのプログラム。
【請求項１０】
ネットワークにおいてパケットの転送を行うパケット転送装置が実行するパケット処理方法であって、
前記パケット転送装置は、データと処理内容とを対応付けたテーブルを格納するテーブル格納手段を備え、
入力されたパケットにおいて前記テーブルとの照合対象とする部分を指定する指定ステップと、
前記指定ステップにより指定された部分のデータを前記テーブル内のデータと照合し、照合結果に基づいて、前記パケットに対する処理内容を決定する処理決定ステップと
を備えることを特徴とするパケット処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信ネットワークにおいてパケットの転送を行うパケット転送装置に関するものである。
【背景技術】
【０００２】
近年、ＳＤＮ（Ｓｏｆｔｗａｒｅ  Ｄｅｆｉｎｅｄ  Ｎｅｔｗｏｒｋ）のように、ネットワーク構成を動的に設定することを可能とする技術が注目されている。ＳＤＮを実現するパケット転送装置では、装置内に設けられたテーブルとパケットとの照合を行い、照合結果に基づいてパケットの転送等を行う。
【０００３】
このようなパケット転送装置においては、テーブル内のエントリを適宜設定することで、ユーザのポリシーに従って、転送先を自由に変えたり、パケットヘッダの値を自由に書き換えたり、更には、複数のテーブルを連続的に参照させてパイプライン処理を行う機能を備えること等が求められている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−２５８８７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、従来のＡＳＩＣやＬＳＩを用いたパケット転送装置では、予めＡＳＩＣやＬＳＩによって固定的に決められたパイプラインとレイヤの情報に基づいた処理をその順番の範囲内でしか実行することができない。つまり、従来技術では、パケットとテーブルとの照合の条件を自由に設定することができず、柔軟に照合処理を行うことができないという問題がある。
【０００６】
本発明は上記の点に鑑みてなされたものであり、パケットとテーブルとの照合を行うことによりパケットに対する処理を実行するパケット転送装置において、パケットとテーブルとの照合の条件を柔軟に設定とし、柔軟に照合処理を行うことを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の実施の形態によれば、ネットワークにおいてパケットの転送を行うパケット転送装置であって、
データと処理内容とを対応付けたテーブルを格納するテーブル格納手段と、
入力されたパケットにおいて前記テーブルとの照合対象とする部分を指定する指定手段と、
前記指定手段により指定された部分のデータを前記テーブル内のデータと照合し、照合結果に基づいて、前記パケットに対する処理内容を決定する処理決定手段とを備えるパケット転送装置が提供される。
【０００８】
また、本発明の実施の形態によれば、ネットワークにおいてパケットの転送を行うパケット転送装置が実行するパケット処理方法であって、
前記パケット転送装置は、データと処理内容とを対応付けたテーブルを格納するテーブル格納手段を備え、
入力されたパケットにおいて前記テーブルとの照合対象とする部分を指定する指定ステップと、
前記指定ステップにより指定された部分のデータを前記テーブル内のデータと照合し、照合結果に基づいて、前記パケットに対する処理内容を決定する処理決定ステップとを備えるこパケット処理方法が提供される。
【発明の効果】
【０００９】
本発明の実施の形態によれば、パケットとテーブルとの照合を行うことによりパケットに対する処理を実行するパケット転送装置において、パケットとテーブルと照合の条件を柔軟に設定し、柔軟に照合処理を行うことを可能とする技術が提供される。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施の形態に係る通信システムの全体構成例を示す図である。
【図２】本発明の実施の形態に係るパケット転送装置１００の機能構成図である。
【図３】パケット転送処理部１１０の機能構成図である。
【図４】テーブルの一例を示す図である。
【図５】テーブルマスクを用いてテーブルを分割して使用する例を示す図である。
【図６】ビットマスクと利用するテーブルとの関係の例１を示す図である。
【図７】ビットマスクと利用するテーブルとの関係の例２を示す図である。
【図８】パケット転送処理部１１０におけるパケットの処理の流れを説明するための図である。
【図９】パケット転送処理の具体例を説明するためのシステム構成の例である。
【図１０】パケット転送装置１００Ａにおけるパケット転送処理の具体例を説明するための図である。
【図１１】パケット転送装置１００Ｂにおけるパケット転送処理の具体例を説明するための図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照して本発明の実施の形態を説明する。以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。なお、本明細書における「パケット」の用語は、特定のレイヤのパケットに限定されず、「フレーム」、「セル」等も含む広い意味で使用している。
【００１２】
（システム全体構成例）
図１に、本発明の実施の形態に係る通信システムの構成例を示す。図１に示すように、本実施の形態に係る通信システムは、複数のパケット転送装置１００がネットワーク接続された構成を備える。各パケット転送装置１００は、ネットワーク管理装置２００と通信可能であり、ネットワーク管理装置２００から各パケット転送装置１００に対して、後述するビットマスクやテーブルの設定が可能である。
【００１３】
本実施の形態において、パケット転送装置１００により構成されるネットワークの種類は特定のものに限定されないが、例えば、パケット転送装置１００により、ユーザ網を接続した中継網を構成することができる。また、後述するように、パケット転送装置１００を、中継網（コア網）とユーザ網（アクセス網）とを接続するエッジ装置として使用することもできる。
【００１４】
（パケット転送装置１００の構成例）
図２に、パケット転送装置１００の機能構成図を示す。図２に示すように、パケット転送装置１００は、パケット転送処理部１１０、テーブル格納部１２０、制御部１３０、各入出力ポートを備える。
【００１５】
パケット転送処理部１１０は、入力ポートから入力されたパケットにおける所定のビット領域のデータをキーにして、テーブルを検索することによりパケットに対する処理の内容（アクション）を決定し、当該処理を行う。テーブル格納部１２０は、テーブルを格納するメモリ等の記憶手段である。制御部１３０は、ネットワーク管理装置２００からの設定指示を受けて、パケット転送装置１００におけるビットマスクやテーブルの設定等を行う。
【００１６】
パケット転送装置１００におけるパケット転送処理部１１０及びテーブル格納部１２０は、それそれハードウェア回路で実現することができる。また、パケット転送処理部１１０及びテーブル格納部１２０を一体としてハードウェア回路で実現してもよい。
【００１７】
また、パケット転送装置１００がコンピュータの構成を含み、パケット転送処理部１１０及びテーブル格納部１２０を当該コンピュータにプログラムを実行させることで実現してもよい。
【００１８】
テーブル格納部１２０をハードウェア回路（集積回路）で実現する場合において、テーブル毎に物理的に異なる回路（メモリ）を設けてもよいし、１つのメモリに１つのテーブルを備え、当該１つのテーブルを分割して使用してもよいし、１つのメモリ内に複数のテーブルを備えることとしてもよいし、これらを組み合わせた形態としてもよい。
【００１９】
＜パケット転送処理部１１０の構成＞
図３に、パケット転送装置１００におけるパケット転送処理部１１０の機能構成図を示す。図３に示すように、パケット転送処理部１１０は、パケット分配部１１１、ビット選択部１１２、テーブル検索部１１３、アクション実行部１１４を有する。各部の機能は以下のとおりである。
【００２０】
なお、各部の処理に関し、パケット転送処理部１１０はバッファメモリにパケットを格納し、適宜そのパケットを参照することで各部の処理を行うこととしてもよいし、各部がパケットを保持し、順次次の段の部にパケットを転送して処理を行うこととしてもよい。以下の説明では、前者を想定している。
【００２１】
パケット分配部１１１は、入力されたパケットに対してどのビットマスクを適用するかを決定し、ビットマスク（ビットマスク番号等）をビット選択部１１２に通知する。
【００２２】
ビットマスクとは、パケットの中のどのビット部分をテーブルとのマッチング（照合）の対象とするかを指定するマスクである。説明のための一例として、パケットの長さ（テーブルとのマッチング対象となり得る部分の長さ）が１０ビットであるとした場合に、ビットマスク「０００１１１１０００」は、パケットの４番目〜７番目のビットをテーブルとのマッチングの対象として指定するものである。本実施の形態では、このようなビットマスクが複数種類設定され、各ビットマスクは番号等の識別情報で識別可能になっている。ビットマスクの設定、削除、追加等は、制御部１３０により実行可能である。
【００２３】
本実施の形態では、ビットマスクと、検索の対象とするテーブルとが対応付られており、パケット分配部１１１により、あるパケットに対するビットマスクが決定されたことは、検索の対象とするテーブルも決定されたことも意味する。例えば、入力ポート（例：ユーザに対応）とビットマスクとを対応付け、パケット分配部１１１は、パケット転送装置１００に入力されたパケットについて、パケットが入力された入力ポートに対応するビットマスクを使用すると決定する。入力パケットに対するビットマスクの決定方法はこれに限られるわけではなく、他の方法を使用してもよい。例えば、入力パケットのＬＡＧ（Ｌｉｎｋ  Ａｇｇｒｅｇａｔｉｏｎ）、トンネルＩＤ等をビットマスクと対応付けることで、ビットマスクを決定してもよい。
【００２４】
また、本実施の形態では、テーブルとのマッチング処理の結果、アクションとして次のテーブルによる処理が指定される場合があり、その場合、パケット分配部１１１は、前段のテーブル処理を経たパケットに対するビットマスクの指定を受ける。このような場合には、当該指定されたビットマスクの番号をビット選択部１１２に通知する。
【００２５】
ビット選択部１１２は、各ビットマスクを保持しており、パケット分配部１１１から指定されたビットマスクと、パケットとの演算（ＡＮＤ等）を行うことで、テーブルとのマッチングの対象とするビットを抽出する。ビット選択部１１２は、使用したビットマスク番号と抽出したビットのデータ（検索データと呼ぶ）をテーブル検索部１１３に通知する。
【００２６】
本実施の形態では、ビットマスクと、当該ビットマスクで抽出された検索データとマッチングを行う（検索を行う）対象となるテーブル（又はテーブル領域）とが対応付られており、テーブル検索部１１３は当該対応を示す情報を保持している。ここでは、各テーブルはテーブル番号で識別されるものとする。つまり、パケットにおけるテーブルとの照合対象部分と、対象のテーブル（又はテーブル領域）とが対応付られている。
【００２７】
テーブル検索部１１３は、検索データと、指定されたビットマスクに対応するテーブルとのマッチング処理を行う。つまり、検索データをキーとして、当該テーブルのデータをサーチし、検索データと一致するデータを持つエントリがあるかどうかを判定する。例えば、テーブル検索部１１３は、テーブル格納部１２０（メモリ）において、検索データと一致するデータを持つエントリに対応するアドレスを取得する。当該アドレスは、例えば、アクションが格納されたメモリ領域のアドレス（ポインタ）である。また、テーブル検索部１１３は、指定されたビットマスクに対応するテーブルにおける、当該ビットマスクで指定された領域のみをマッチング対象とすることも可能である。例えば、テーブルが、１０ビットの行を検索対象のエントリとして持つデータ構造であるとした場合において、ビットマスクが「０００１１１１０００」であるとした場合、１０ビットの各行のうち、４番目〜７番目の部分をマッチング処理の対象とすることができる。
【００２８】
アクション実行部１１４は、テーブル検索部１１３により、検索データと一致すると判断されたテーブのエントリに対応するアクションを実行する。具体的には、例えば、検索データと一致するデータのエントリに対応付けられたアドレスに格納されたアクションを実行する。
【００２９】
各アクションは、例えば、パケットを所定のポートから出力すること、パケット内の所定のヘッダの内容を書き換えること、次のテーブルの処理に進むこと、等のそれぞれ、もしくは複数の組み合わせである。
【００３０】
なお、上記の例では、ビットマスクを用いてパケットから検索データを抽出しているが、パケットから検索データを抽出する方法はこれに限られるわけではない。例えば、パケット選択部１１２は、「Ｘビット目〜Ｙビット目」のように、ビット位置を直接指定したデータをビットマスクに代えて使用し、当該データの指定に従って検索データを抽出してもよい。
【００３１】
また、上記の例では、ビット選択部１１２が検索データの抽出を行っているが、ビット選択部１１２がパケットとビットマスクのデータとをテーブル検索部１１３に送り、テーブル検索部１１３がパケットにビットマスクを適用することで検索データを抽出してもよい。
【００３２】
＜テーブルの例＞
図４に、テーブル格納部１２０に格納されるテーブルの一例を示す。図４に示すように、このテーブルは、検索データとのマッチング処理を行う対象となるデータと、一致があったときに実行するアクションとを含む。検索データとのマッチング処理を行う対象となるデータは、例えば、パケットヘッダに記述される各種アドレスやパラメータ等である。また、当該データは、パケットのペイロードの内容であってもよい。このように、本実施の形態では、テーブルの内容を自由に設定できる。アクションは、命令そのものであってもよいし、命令へのポインタであってもよい。
【００３３】
また、図４には、各エントリ（行）のアドレスが示されているが、このアドレスはメモリアドレスであって、テーブルを構成しないものとしてもよいし、このアドレスもテーブルを構成するデータであってもよい。いずれにしろ、当該アドレスを指定することで、テーブルのエントリを指定できる。
【００３４】
本実施の形態では、図４に示すようなテーブルを１つ備え、当該テーブルを分割して使用することとしてもよいし、図４に示すようなテーブルを複数備えることとしてもよいし、これらの組み合わせを用いてもよい。
【００３５】
図５を参照して、１つのテーブルを分割して使用する場合の例を説明する。この例では、テーブルのエントリのアドレスに対するテーブルマスクを用いている。例えば、テーブルマスク１が、図５（ａ）に示すように、Ａ〜Ｂのエントリのアドレスを指定するマスクであるとした場合、テーブル検索部１１３は、当該テーブルマスク１をテーブルに対して適用することで、Ａ〜Ｂのエントリをテーブル１として使用することができる。
【００３６】
また、例えば、テーブルマスク２が、図５（ｂ）に示すように、Ｃ〜Ｄのエントリのアドレスを指定するマスクであるとした場合、テーブル検索部１１３は、当該テーブルマスク２をテーブルに対して適用することで、Ｃ〜Ｄのエントリをテーブル２として使用することができる。
【００３７】
図６、図７を参照して、パケットに対して適用したビットマスクにより、テーブルの中の利用する領域（マッチング処理の対象とする領域）を限定する例を説明する。これらの処理はテーブル検索部１１３により行われる。
【００３８】
図６の例では、あるパケットに対してビットマスク１が指定されたとする。テーブル検索部１１３は、ビットマスク１に対応するテーブル１を指定し、当該テーブル１の中で、ビットマスク１により指定されるＡ〜Ｂの領域（各行の中の領域）を検索の対象とする。このビットマスクでの処理は、例えば、テーブルのエントリのデータに対してマスク処理（ＡＮＤ）を行うことで、対象部分を抽出し、それを検索の対象として利用する。なお、何ビット目から何ビット目までを検索の対象するとかを直接に指定することで、対象部分を抽出してもよい。
【００３９】
図７の例では、あるパケットに対してビットマスク２−１とビットマスク２−２が指定される。テーブル検索部１１３は、ビットマスク２−１に対応するテーブル１を特定するとともに、テーブル１におけるビットマスク２−１での抽出領域であるＡ〜Ｂを検索対象領域とする。更に、テーブル検索部１１３は、ビットマスク２−２に対応するテーブル２を特定するとともに、テーブル２におけるビットマスク２−２での抽出領域であるＣ〜Ｄを検索対象領域とする。結果として、図７の下に示す領域が検索対象領域となる。この場合のアクションについては、Ａ〜Ｂの領域とＣ〜Ｄの領域とのＡＮＤ条件、ＯＲ条件等、実際の内容に応じて、適宜アクションとして定義しておけばよい。
【００４０】
一例として、ビットマスク２−１（テーブル１）が、ＶＬＡＮＩＤの領域に該当し、ビットマスク２−２（テーブル２）が、宛先ＩＰアドレスの領域に該当する場合において、例えば、パケットが、所定のＶＬＡＮＩＤを持ち、かつ、所定の宛先ＩＰアドレスを持つ場合に、当該パケットのＶＬＡＮＩＤを所定のＭＰＬＳタグに置き換えて、所定のポートから出力するといった動作を実現できる。
【００４１】
前述したように、本実施の形態に係るパケット転送装置１００は、主にハードウェア回路で実現することもできるし、パケット転送装置１００が有するコンピュータにプログラムを実行させることで実現することもできる。プログラムで実現する場合、パケット転送装置１００における各機能部は、コンピュータに内蔵されるＣＰＵやメモリ、ハードディスクなどのハードウェア資源を用いて、各部で実施される処理に対応するプログラムを実行することによって実現することが可能である。上記プログラムは、コンピュータが読み取り可能な記録媒体（可搬メモリ等）に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メールなど、ネットワークを通して提供することも可能である。
【００４２】
（システムの動作例）
次に、図８のフロー図を参照して、パケット転送処理部１１０におけるパケットの処理の流れを説明する。
【００４３】
まず、パケット分配部１１１は、入力されたバケットに対応するビットマスクを決定し、決定したビットマスクをビット選択部１１２に通知する（ステップ１０１）。ビット選択部１１２は、パケットにビットマスクを適用することで、テーブルとのマッチング対象とする検索データを抽出する（ステップ１０２）。
【００４４】
ステップ１０３では、テーブル検索部１１３がステップ１０２で抽出した検索データを用いて、ビットマスクに対応するテーブルに対してマッチング処理（照合処理）を行い、検索データと一致するデータを有するエントリを取得し、アクション実行部１１４が、当該エントリに対応するアクションを実行する。
【００４５】
図８では、ステップ１０３の内容を分かり易くするために、テーブルのイメージを記載している。ステップ１０３において、例えば、アクションを実行した結果、パケットが所定のポートから出力される。また、例えば、アクションを実行した結果、パケットに対して次のテーブルに基づく処理を行うよう指定される。この場合、例えば、アクションにおいて次のテーブルに対応するビットマスク番号が指定され、当該ビットマスク番号がパケット分配部１１１に返されて、次のステップ１０１では当該ビットマスク番号のビットマスクを使用すると決定される。
【００４６】
このように、本実施の形態に係るパケット転送装置１００では、制御部１３０を介して、テーブルにおけるデータやアクションを任意に設定することができ、上記のような多段のテーブル構成も容易に実現することが可能である。特に、前述したように、１つのテーブルを分割する手法を用いれば、比較的少ないメモリ量で、多段のテーブル構成を実現することが可能である。
【００４７】
次に、図９〜図１１を参照して、本実施の形態に係るパケット転送装置１００の動作のより具体的な例を説明する。
【００４８】
本例では、図９に示すように、パケット転送装置１００（Ａ、Ｂ）が、ＭＰＬＳの中継網４００と、ＶＬＡＮのユーザ網３００、５００との間を接続するエッジ装置として使用されている。ユーザ網３００にはユーザ装置３０１が接続され、ユーザ網５００にはユーザ装置５０１が接続されている。以降、図９に示すように、ユーザ装置３０１からユーザ装置５０１への方向のパケットの流れに着目して説明する。
【００４９】
パケット転送装置１００Ａが、ユーザ装置３０１から送信されたパケットを受信し、当該パケットを中継網４００へ転送する場合の動作例について図１０を参照して説明する。
【００５０】
パケット転送装置１００Ａは、ユーザ装置３０１から送信されたパケットをユーザ網３００を介して受信する。そして、例えば、当該パケットを受信したポートに対応するビットマスクを適用することで、検索データとしてＶＬＡＮＩＤを抽出し、当該検索データに該当するエントリを探すために、当該ビットマスクに対応するテーブルであるＶＬＡＮテーブルを検索する（ステップ２０１）。
【００５１】
本例では、アクションとして、ＱｏＳ処理が指定されており、パケット転送装置１００Ａは指定されたＱｏＳ処理を行う（ステップ２０２）。ＱｏＳ処理としては、例えば、パケットに優先度を示す情報を付加する、あるいはパケットから当該情報を削除することや、優先度に応じたパケット転送処理（例：帯域制御）等がある。
【００５２】
本例では、上記のアクションとして次のテーブル処理を行うことが含まれており、そこでは、指定されたビットマスクに従って、ＶＬＡＮ＋宛先ＩＰアドレスのテーブル検索を行う（ステップ２０３）。そして、アクションとして、パケット内のＶＬＡＮヘッダをＭＰＬＳラベルに付け替える処理を行う（ステップ２０４）。
【００５３】
次に、パケット転送装置１００Ｂが、中継網４００からパケットを受信し、当該パケットをユーザ網５００へ転送する場合の動作例について図１１を参照して説明する。
【００５４】
パケット転送装置１００Ｂは、中継網４００からパケットを受信する。そして、例えば、当該パケットを受信したポートに対応するビットマスクを適用することで、検索データとしてＭＰＬＳラベルを抽出し、当該検索データに該当するエントリを探すために、当該ビットマスクに対応するテーブルであるＭＰＬＳラベルテーブルを検索する（ステップ３０１）。
【００５５】
本例では、アクションとして、ＭＰＬＳラベルをＶＬＡＮヘッダに付け替えることが指定されており、パケット転送装置１００Ｂは指定された処理を行う（ステップ３０２）。
【００５６】
また、本例では、上記のアクションとして次のテーブル処理を行うことが含まれており、そこでは、指定されたビットマスクに従って、ＶＬＡＮテーブル検索を行う（ステップ３０３）。そして、アクションとして、ＱｏＳ処理を行う（ステップ３０４）。
【００５７】
（実施の形態のまとめ、効果等）
以上、説明したように、本実施の形態によれば、ネットワークにおいてパケットの転送を行うパケット転送装置であって、データと処理内容とを対応付けたテーブルを格納するテーブル格納手段と、入力されたパケットにおいて前記テーブルとの照合対象とする部分を指定する指定手段（例：パケット分配部１１１、ビット選択部１１２）と、前記指定手段により指定された部分のデータを前記テーブル内のデータと照合し、照合結果に基づいて、前記パケットに対する処理内容を決定する処理決定手段とを備えるパケット転送装置が提供される。
【００５８】
このパケット転送装置では、テーブルの内容及び指定手段による指定内容（どの部分を指定するか）を適宜設定することで、パケットとテーブルと照合の条件を柔軟に設定し、柔軟に照合処理を行うことが可能である。
【００５９】
前記指定手段は、例えば、前記パケットに対応するビットマスクを特定し、当該ビットマスクにより前記パケットにおける前記照合対象とする部分を指定する。
【００６０】
また、前記指定手段により指定される前記照合対象とする部分は、前記テーブルにおける特定の領域と対応付られており、前記処理決定手段は、当該照合対象とする部分に対応する前記テーブルの領域を特定し、当該テーブルの領域と前記指定手段により指定された部分のデータとの照合を行うこととしてもよい。
【００６１】
また、前記ビットマスクは、前記テーブルにおける特定の領域と対応付られており、前記処理決定手段は、前記ビットマスクに対応する前記テーブルの領域を特定し、当該テーブルの領域と前記指定手段により指定された部分のデータとの照合を行うこととしてもよい。このように、テーブルの領域を特定して使用する構成とすることで、テーブルのメモリ量を削減できる。
【００６２】
前記テーブル格納手段は複数のテーブルを有し、前記指定手段により指定される前記照合対象とする部分は、当該複数のテーブルのうちの特定のテーブルと対応付られており、前記処理決定手段は、前記照合対象とする部分に対応するテーブルを特定し、当該特定されたテーブルと前記指定手段により指定された部分のデータとの照合を行うこととしてもよい。
【００６３】
また、前記テーブル格納手段は複数のテーブルを有し、前記ビットマスクは、当該複数のテーブルのうちの特定のテーブルと対応付られており、前記処理決定手段は、前記ビットマスクに対応するテーブルを特定し、当該特定されたテーブルと前記指定手段により指定された部分のデータとの照合を行うこととしてもよい。
【００６４】
また、前記処理決定手段により決定された処理内容が、テーブルとの照合処理を示す場合において、前記パケットに対し、前記指定手段による照合対象の部分の指定、及び前記処理決定手段による処理内容の決定を再度実行することとしてもよい。このような構成により、多段のテーブルを容易に実現することができる。
【００６５】
更に、前記指定手段は、複数のビットマスクを用いることにより、前記テーブルとの照合対象とする複数の部分を指定し、前記処理決定手段は、当該照合対象とする複数の部分に対応するテーブルの複数の領域を特定し、当該テーブルの複数の領域と前記指定手段により指定された複数の部分のデータとの照合を行うようにしてもよい。
【００６６】
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【符号の説明】
【００６７】
１００  パケット転送装置
１１０  パケット転送処理部
１２０  テーブル格納部
１３０  制御部
１１１  パケット分配部
１１２  ビット選択部
１１３  テーブル検索部
１１４  アクション実行部
【図１】
2015139195.tif 000003
【図２】
2015139195.tif 000004
【図３】
2015139195.tif 000005
【図４】
2015139195.tif 000006
【図５】
2015139195.tif 000007
【図６】
2015139195.tif 000008
【図７】
2015139195.tif 000009
【図８】
2015139195.tif 000010
【図９】
2015139195.tif 000011
【図１０】
2015139195.tif 000012
【図１１】
2015139195.tif 000013
【手続補正書】
【提出日】平成27年2月23日(2015.2.23)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ネットワークにおいてパケットの転送を行うパケット転送装置であって、
データと処理内容とを対応付けたテーブルを格納するテーブル格納手段と、
設定指示に基づいてビットマスクを設定する制御手段と、
入力されたパケットに対応するビットマスクを特定し、当該ビットマスクにより前記パケットにおいて前記テーブルとの照合対象とする部分を指定する指定手段と、
前記指定手段により指定された部分のデータを前記テーブル内のデータと照合し、照合結果に基づいて、前記パケットに対する処理内容を決定する処理決定手段と
を備えることを特徴とするパケット転送装置。
【請求項２】
前記指定手段により指定される前記照合対象とする部分は、前記テーブルにおける特定の領域と対応付られており、前記処理決定手段は、当該照合対象とする部分に対応する前記テーブルの領域を特定し、当該テーブルの領域と前記指定手段により指定された部分のデータとの照合を行う
ことを特徴とする請求項１に記載のパケット転送装置。
【請求項３】
前記ビットマスクは、前記テーブルにおける特定の領域と対応付られており、前記処理決定手段は、前記ビットマスクに対応する前記テーブルの領域を特定し、当該テーブルの領域と前記指定手段により指定された部分のデータとの照合を行う
ことを特徴とする請求項１に記載のパケット転送装置。
【請求項４】
前記テーブル格納手段は複数のテーブルを有し、前記指定手段により指定される前記照合対象とする部分は、当該複数のテーブルのうちの特定のテーブルと対応付られており、前記処理決定手段は、前記照合対象とする部分に対応するテーブルを特定し、当該特定されたテーブルと前記指定手段により指定された部分のデータとの照合を行う
ことを特徴とする請求項１に記載のパケット転送装置。
【請求項５】
前記テーブル格納手段は複数のテーブルを有し、前記ビットマスクは、当該複数のテーブルのうちの特定のテーブルと対応付られており、前記処理決定手段は、前記ビットマスクに対応するテーブルを特定し、当該特定されたテーブルと前記指定手段により指定された部分のデータとの照合を行う
ことを特徴とする請求項１に記載のパケット転送装置。
【請求項６】
前記処理決定手段により決定された処理内容が、テーブルとの照合処理を示す場合において、前記パケットに対し、前記指定手段による照合対象の部分の指定、及び前記処理決定手段による処理内容の決定を再度実行する
ことを特徴とする請求項１ないし５のうちいずれか１項に記載のパケット転送装置。
【請求項７】
前記処理決定手段により決定された処理内容が、次のテーブルとの照合処理を示す場合に、当該処理内容において当該次のテーブルに対応するビットマスクが指定され、前記指定手段は、当該指定されたビットマスクを使用して前記パケットにおいて当該次のテーブルとの照合対象とする部分を指定する
ことを特徴とする請求項１ないし５のうちいずれか１項に記載のパケット転送装置。
【請求項８】
前記指定手段は、複数のビットマスクを用いることにより、前記テーブルとの照合対象とする複数の部分を指定し、前記処理決定手段は、当該照合対象とする複数の部分に対応するテーブルの複数の領域を特定し、当該テーブルの複数の領域と前記指定手段により指定された複数の部分のデータとの照合を行う
ことを特徴とする請求項１ないし７のうちいずれか１項に記載のパケット転送装置。
【請求項９】
前記処理決定手段は、テーブルマスクを前記テーブルに適用することにより、当該テーブルにおける特定の領域を指定し、当該特定の領域と前記パケットにおいて前記ビットマスクにより指定された部分との照合を行う
ことを特徴とする請求項１ないし８のうちいずれか１項に記載のパケット転送装置。
【請求項１０】
コンピュータを、請求項１ないし９のうちいずれか１項に記載の前記パケット転送装置における各手段として機能させるためのプログラム。
【請求項１１】
ネットワークにおいてパケットの転送を行うパケット転送装置が実行するパケット処理方法であって、
前記パケット転送装置は、データと処理内容とを対応付けたテーブルを格納するテーブル格納手段を備え、
設定指示に基づいてビットマスクを設定する制御ステップと、
入力されたパケットに対応するビットマスクを特定し、当該ビットマスクにより前記パケットにおいて前記テーブルとの照合対象とする部分を指定する指定ステップと、
前記指定ステップにより指定された部分のデータを前記テーブル内のデータと照合し、照合結果に基づいて、前記パケットに対する処理内容を決定する処理決定ステップと
を備えることを特徴とするパケット処理方法。
【請求項１２】
前記処理決定ステップにより決定された処理内容が、次のテーブルとの照合処理を示す場合に、当該処理内容において当該次のテーブルに対応するビットマスクが指定され、前記指定ステップにおいて、前記パケット転送装置は、当該指定されたビットマスクを使用して前記パケットにおいて当該次のテーブルとの照合対象とする部分を指定する
ことを特徴とする請求項１１に記載のパケット処理方法。
【請求項１３】
前記処理決定ステップにおいて、前記パケット転送装置は、テーブルマスクを前記テーブルに適用することにより、当該テーブルにおける特定の領域を指定し、当該特定の領域と前記パケットにおいて前記ビットマスクにより指定された部分との照合を行う
ことを特徴とする請求項１１又は１２に記載のパケット処理方法。