JP6004299B2 - フローテーブルをマッチングするための方法及び装置、並びにスイッチ - Google Patents

フローテーブルをマッチングするための方法及び装置、並びにスイッチ Download PDF

Info

Publication number
JP6004299B2
JP6004299B2 JP2015549973A JP2015549973A JP6004299B2 JP 6004299 B2 JP6004299 B2 JP 6004299B2 JP 2015549973 A JP2015549973 A JP 2015549973A JP 2015549973 A JP2015549973 A JP 2015549973A JP 6004299 B2 JP6004299 B2 JP 6004299B2
Authority
JP
Japan
Prior art keywords
entry
wildcard
exact match
flow table
match
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
JP2015549973A
Other languages
English (en)
Other versions
JP2016502370A (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 JP2016502370A publication Critical patent/JP2016502370A/ja
Application granted granted Critical
Publication of JP6004299B2 publication Critical patent/JP6004299B2/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
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • 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/74591Address table lookup; Address filtering using content-addressable memories [CAM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/80Actions related to the user profile or the type of traffic
    • 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

Landscapes

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

Description

本発明の請求の範囲は、発明の名称を「フローテーブルをマッチングするための方法及び装置、並びにスイッチ」とする2012年12月28日付で中国特許庁に出願された中国特許出願第201210586928.3号に基づく優先権を主張し、それらの全体が参照によって本願に組み込まれる。
前記本発明の実施態様は、通信技術に関し、特に、フローテーブルをマッチングするための方法およびスイッチ、並びにスイッチに関する。
OpenFlow技術は、スタンフォード大学(Stanford University)によって最初に提唱されるとともに、既存のTCP/IPの技術的条件に基づき、かつ革新的な思想のネットワーク相互接続にしたがって、現在のネットワークが新しいサービスに直面した際に発生するさまざまなボトルネックを取り除くことを目的としている。前記OpenFlow技術の中心となる思想は、元々スイッチまたはルータによって制御されるデータ・パケット・フォワーディング・プロセスを、OpenFlowスイッチ(OpenFlow switch)およびコントロールサーバ(コントローラ(Controller))のそれぞれによって完了される独立のプロセスに変更することである。前記OpenFlowスイッチは、フローテーブル(flow table)を局所的に保持してもよい。転送される必要のあるデータパケットが、前記フローテーブル内の対応するエントリを有する場合、迅速な転送が直接実行されるとともに、このエントリが、前記フローテーブル内に無い場合、前記データパケットは、伝送路を決定するように前記コントロールサーバへ送信され、そして、前記データパケットは、伝送経路にしたがって転送される。
OpenFlowの準備開発段階において、スイッチ内のフローテーブルは、平坦化されるとともに、前記フローテーブル内のフローエントリは、2つのタイプ、完成完全一致フローエントリ(completely exact match flow entry)およびワイルドカード一致フローエントリ(wildcard match flow entry)に分類される。前記ワイルドカード一致フローエントリは、完全に一致される必要のあるいくつかの一致フィールド(Match Field)およびワイルドカードされる必要のあるいくつかの一致フィールドを含む。前記完成完全一致フローエントリは、比較的大きな記憶容量を有する外部のランダムアクセスメモリ(Random Access Memory、以下RAMと省略)内に記憶されるとともに、クイックサーチは、ハッシュ(HASH)を用いて実行される。しかしながら、前記ワイルドカード一致フローエントリ内に不確かな一致フィールド(すなわち、ワイルドカードされた一致フィールド)が存在するため、前記ワイルドカード一致フローエントリは、クイックサーチのために三値連想メモリ(Ternary Content Addressable Memory、以下TCAMと省略)内に記憶される。既存の技術レベルは制限されるため、前記TCAMは、高価であるとともに、比較的に消費電力が大きい。前記TCAMの制限のため、一般に、実行中の間、コントロールサーバは、完全一致フローエントリを主にダウンロードする。前記完全一致フローエントリは、データフローを完全に定義するため、前記フローテーブルは大きな容量を占有し、OpenFlowの開発を妨げる。
前記OpenFlow技術の開発を用いて、前記関連技術において、フローテーブルは、マルチレベルフローテーブルへ拡張される。複数のフローテーブルの組み合わせを用いることによって、フローエントリの量は、大きく減少される。しかしながら、特徴データの一部のみが、複数のフローテーブルに割り当てられたフローエントリに関係するとともに、特徴データの他の一部は、ワイルドカードエントリの量を増加することによって、ワイルドカードによって提供される必要があり、TCAM容量の大きな占有を引き起こす。
従来の技術における欠陥を克服するために、本発明の実施形態は、TCAMの利用を増加させるようにフローテーブルをマッチングするための方法及び装置、並びにスイッチを提供する。
1つの態様によると、本発明の実施形態は、フローテーブルをマッチングするための方法を提供し、前記フローテーブルは、完全一致フローテーブルとワイルドカード・マッチ・フローテーブルとを含み、前記完全一致フローテーブルは、メモリ内に記憶され、前記ワイルドカード一致フローテーブルは、三値連想メモリ内に記憶され、前記完全一致フローテーブル、1つ以上の完全一致エントリを具備し、各完全一致エントリは、複数の完全一致フィールドを具備するとともに、完全一致エントリは、1つのインデックス値に対応し、前記ワイルドカード一致フローテーブルは、1つ以上のワイルドカードエントリを具備するとともに、各ワイルドカードエントリは、複数のワイルドカードフィールドおよび前記インデックス値を記憶するために使用される1つのインデックスフィールドを具備し、完全一致エントリと前記インデックス値を使用することによって関連付けられたワイルドカードエントリとは、完成フローエントリを形成する方法であって、前記方法は、
受信されたパケットから複数の一致フィールドを取得するステップであって、前記複数の一致フィールドが、複数の完全一致フィールドおよび複数のワイルドカードフィールドを具備するステップと、
前記パケット内の前記複数の完全一致フィールドを前記完全一致フローテーブル内の完全一致エントリの前記複数の完全一致フィールドとマッチングするステップであって、前記マッチングが成功する場合、前記完全一致エントリに対応するインデックス値を取得するステップと、
前記インデックス値に従って、前記パケット内の前記複数のワイルドカードフィールドを前記ワイルドカード一致フローテーブル内の各ワイルドカードエントリの前記複数のワイルドカードフィールドとマッチングするとともにマッチング結果を獲得するステップと、を含む。
前記本発明の実施形態において提供される前記方法において、前記パケット内の前記複数の完全一致フィールドと前記完全一致フローテーブル内の完全一致エントリの前記複数の完全一致フィールドとのマッチングは、HASHアルゴリズムを使用して実行される。
本発明の実施形態において提供される前記方法は、
コントロールサーバによって配送されたターゲット・フローテーブルを受信するステップであって、前記ターゲット・フローテーブルが、少なくとも1つのフローテーブルエントリを具備するとともに、各フローテーブルエントリが、複数の完全一致フィールドおよび複数のワイルドカードフィールドを具備するステップと、
各フローテーブルエントリ内の前記複数の完全一致フィールドと、前記完全一致フローテーブル内の完全一致エントリの前記複数の完全一致フィールドとの間のマッチングを実行するステップであって、前記マッチングが成功する場合、前記完全一致エントリに対応するインデックス値を取得し、前記マッチングに失敗する場合、前記完全一致フローテーブルの1つの完全一致エントリ内に前記ターゲット・フローテーブルの前記複数の完全一致フィールドを記憶するとともに、1つのインデックス値を前記完全一致エントリに割り当てるステップと、
前記ワイルドカード一致フローテーブルの1つのワイルドカードエントリ内に前記ターゲット・フローテーブルの前記複数のワイルドカードフィールドを記憶するとともに、前記ワイルドカードエントリのインデックスフィールド内の前記インデックス値を記憶するステップと、をさらに含む。
本発明の実施形態において提供される前記方法は、
前記ワイルドカード一致フローテーブル内の各ワイルドカードエントリのために適切な時間を設定するステップであって、前記適切な時間が経過したのちに、前記ワイルドカードエントリ内に記憶されたインデックス値が、他のワイルドカードエントリに記憶されたインデックス値と異なる場合、前記ワイルドカードエントリおよび前記インデックス値に対応する完全一致エントリの両方を削除する、ステップと、
前記ワイルドカードエントリに記憶された前記インデックス値が、他のワイルドカードエントリに記憶されたインデックス値と同じ場合、前記ワイルドカードエントリのみを削除するステップと、をさらに含む。
別の態様によると、本発明の実施形態は、フローテーブルをマッチングするための装置を提供し、フローテーブルをマッチングするための前記装置は、フローテーブルを記憶し、前記フローテーブルは、完全一致フローテーブルおよびワイルドカード一致フローテーブルを具備し、前記完全一致フローテーブルは、メモリ内に記憶されるとともに、前記ワイルドカード一致フローテーブルは、三値連想メモリ内に記憶され、前記完全一致フローテーブルは、1つ以上の完全一致エントリを具備し、完全一致エントリは、複数の完全一致フィールドを具備し、完全一致エントリは、1つのインデックス値に対応し、前記ワイルドカード一致フローテーブルは、1つ以上のワイルドカードエントリを具備し、各ワイルドカードエントリは、複数のワイルドカードフィールドと前記インデックス値を記憶するために使用される1つのインデックスフィールドとを具備し、完全一致エントリと前記インデックス値を用いて割り当てられるワイルドカードエントリとは、完全フローテーブルエントリを形成する、装置であって前記フローテーブル・マッチング装置は、
受信されたパケット内の複数の一致フィールドを取得するように構成される取得モジュールであって、前記複数の一致フィールドが、複数の完全一致フィールドおよび複数のワイルドカードフィールドを具備する取得モジュールと、
前記パケット内の前記複数の完全一致フィールドと前記完全一致フローテーブル内の完全一致エントリの前記複数の完全一致フィールドとの間でマッチングを実行するとともに、前記マッチングが成功する場合、前記完全一致エントリに対応するインデックス値を取得するように構成される第1マッチングモジュールと、
前記パケット内の前記複数のワイルドカードフィールドと前記ワイルドカード一致フローテーブル内の各ワイルドカードエントリの前記複数のワイルドカードフィールドとの間で前記インデックス値に従ってマッチングを実行するとともに、マッチング結果を獲得するように構成される第2マッチングモジュールと、を含む。
本発明の実施形態において提供される前記装置において、前記第1マッチングモジュールは、さらに、前記パケット内の前記複数の完全一致フィールドと前記完全一致フローテーブル内の完全一致エントリの前記複数の完全一致フィールドとを、HASHアルゴリズムを用いてマッチングするように構成される。
本発明の実施形態において提供される前記装置は、
コントロールサーバによって配送されたターゲット・フローテーブルを受信するように構成された分割モジュールであって、前記ターゲット・フローテーブルは、少なくとも1つのフローテーブルエントリを具備するとともに、各フローテーブルエントリは、複数の完全一致フィールドおよび複数のワイルドカードフィールドを具備し、各フローテーブルエントリ内の前記複数の完全一致フィールド と前記完全一致フローテーブル内の完全一致エントリの前記複数の完全一致フィールドとの間でマッチングを実行し、前記マッチングが成功する場合、前記完全一致エントリに対応するインデックス値を取得し、前記マッチングに失敗する場合、前記完全一致フローテーブルの1つの完全一致エントリ内に前記ターゲット・フローテーブルの前記複数の完全一致フィールドを記憶するとともに、1つのインデックス値を前記完全一致エントリに割り当て、前記ワイルドカード一致フローテーブルの1つのワイルドカードエントリ内に前記ターゲット・フローテーブルの前記複数のワイルドカードフィールドを記憶し、前記ワイルドカードエントリのインデックスフィールド内の前記インデックス値を記憶するように構成される分割モジュールを、さらに含む。
本発明の実施形態において提供される前記装置は、
前記ワイルドカード一致フローテーブル内の各ワイルドカードエントリのために適切な時間を設定するとともに、前記適切な時間が経過したのちに、前記ワイルドカードエントリ内に記憶されたインデックス値が、別のワイルドカードエントリ内に記憶されたインデックス値と異なる場合、前記ワイルドカードエントリと前記インデックス値に対応する完全一致エントリとの両方を削除し、前記ワイルドカードエントリ内に記憶された前記インデックス値が、別のワイルドカードエントリ内に記憶されたインデックス値と同じ場合、前記ワイルドカードエントリのみを削除するように構成された、時効処理モジュールを、さらに含む。
さらに別の態様によると、本発明の実施形態は、前記スイッチは、メモリと三値連想メモリとを具備し、フローテーブルは、完全一致フローテーブルとワイルドカード一致フローテーブルとを具備し、前記完全一致フローテーブルは、前記メモリ内に記憶され、前記ワイルドカード一致フローテーブルは、前記三値連想メモリ内に記憶され、前記完全一致フローテーブルは、1つ以上の完全一致エントリを具備し、完全一致エントリは、複数の完全一致フィールドを具備し、完全一致エントリは、1つのインデックス値に対応し、前記ワイルドカード一致フローテーブルは、1つ以上のワイルドカードエントリを具備し、各ワイルドカードエントリは、複数のワイルドカードフィールドと前記インデックス値を記憶するために使用される1つのインデックスフィールドとを具備し、完全一致エントリおよび前記インデックス値を使用することによって割り当てられたワイルドカードエントリは、完成フローエントリを形成する、スイッチであって、
前記スイッチは、さらに、
受信されたパケット内の複数の一致フィールドを取得するように構成されたプロセッサであって、前記複数の一致フィールドは、複数の完全一致フィールドおよび複数のワイルドカードフィールドを具備し、前記パケット内の前記複数の完全一致フィールドと前記完全一致フローテーブル内の完全一致エントリの前記複数の完全一致フィールドとの間でマッチングを実行し、前記マッチングが成功する場合、前記完全一致エントリに対応するインデックス値を取得し、前記パケット内の前記複数のワイルドカードフィールドと前記ワイルドカード一致フローテーブル内の各ワイルドカードエントリの前記複数のワイルドカードフィールドとの間で前記インデックス値にしたがってマッチングを実行し、マッチング結果を取得するプロセッサを含む。
本発明の実施形態において提供されるスイッチにおいて、前記プロセッサは、さらに、前記パケット内の前記複数の完全一致フィールドを前記完全一致フローテーブル内の完全一致エントリの前記複数の完全一致フィールドとHASHアルゴリズムを用いてマッチングするように構成される。
本発明の実施形態によって提供されるフローテーブルをマッチングするための前記方法および前記装置、並びに前記スイッチによると、フローエントリ内の完全一致エントリとワイルドカードエントリとは、別々に記憶され、前記完全一致エントリは、メモリ内に記憶され、前記ワイルドカードエントリは、TCAM内に記憶され、インデックス値は、前記完全一致エントリを示すために用いられるため、前記ワイルドカードエントリは、少ないTCAMリソースを使用し、それによって前記TCAMの利用を増加させる。また、適切な検索アルゴリズムが、前記完全一致エントリと前記ワイルドカードエントリとのマッチングを別々に実行するために使用され、それにより検索スピードを増加させる。
本発明の実施形態における技術的解決策をより明確に説明するために、以下は、実施形態または従来技術を説明するために必要な添付図面を簡単に紹介する。明らかに、以下の説明の添付図面は、単に本発明のいくつかの実施形態を示し、当業者は、創造的な努力なしで、依然としてこれらの添付図面から他の図面を導き出すことができる。
図1は、本発明の実施形態によるフローテーブルをマッチングする方法のフローチャートである。 図2は、本発明の実施形態による分割手段において記憶されるフローテーブルの概略図である。 図3は、本発明の実施形態によるフローテーブルをマッチングするための装置の概略構造図である。
本発明の実施形態の技術的解決策および利点をより明確にするために、以下は、本発明の実施形態における添付の図面を参照し、本発明の実施形態における技術的解決策を明確かつ完全に説明する。明らかに、説明された実施形態は、本発明の実施形態のすべてではなく一部である。創造的な努力なしで本発明の実施形態に基づいて当業者によって得られる他のすべての実施形態は、本発明の保護範囲内に入るものとする。
OpenFlowスイッチは、OpenFlowネットワーク全体の中心部分であるとともに、データレイヤにおける転送を主に管理する。パケットを受信したのち、前記スイッチは、まずターゲット・フォワーディング・ポートのためにローカルフローテーブルを検索し、一致するポートがない場合、前記パケットは、コントローラへ転送され、コントロールレイヤは、前記ターゲット・フォワーディング・ポートを決定する。前記スイッチは、フローテーブル、セキュアチャネル、OpenFlowプロトコルの3つの要素を含む。前記セキュアチャネルは、前記スイッチを前記コントローラへ接続するためのインターフェースである。前記コントローラは、このインターフェースを通じて前記スイッチを制御及び管理し、前記コントローラは、前記スイッチからイベントを受信するとともに、データパケットを前記スイッチへ送信する。前記スイッチおよび前記コントローラは、前記セキュアチャネルを通じて他のそれぞれと通信するとともに、すべての情報は、前記OpenFlowプロトコルにおいて規定された形式で送信される必要がある。前記OpenFlowプロトコルは、前記コントローラおよび前記スイッチの間で交換されるために使用される情報のための標準を記述するとともに、前記コントローラおよびスイッチの間のインターフェースのための標準を記述するために使用される。前記プロトコルの中心の部分は、OpenFlowプロトコル情報のために使用される構造の組である。
OpenFlowフローテーブルは、一致フィールド(Match Fields)、カウンター、および命令セットの3つの部分へ分割され、前記一致フィールドは、パケットマッチングのための入力キーワードを示し、前記カウンターは、管理のために必要とされ、前記命令セットは、パケットがどのように転送されるかを決定するために使用される。もっとも一般的な転送の挙動は、ポートへの転送、パケットがカプセル化および再書き込みされたのちに転送、および破棄を含む。前記一致フィールドは、2つのタイプに分類される。1つのタイプは、完全一致フィールドであって、前記スイッチはこのフィールドと完全に一致する必要がある。別のタイプは、ワイルドカードフィールドであって、前記スイッチは、この一致フィールドと部分的に一致するか完全に無視してもよい。
従来技術において、フローエントリ内にワイルドカードフィールドと完全一致フィールドとが存在し、HASHアルゴリズムを用いたクイックサーチを実行することはできない。.特定の性能要求の場合において、TCAMは、記憶と検索のために使用される必要がある。しかしながら、ワイルドカードエントリの量が比較的大きいため、大きなTCAMの容量が占有される。OpenFlowフローエントリの特徴を考慮して、以下のような解決策が本発明の実施形態において提供される。前記TCAMの占有を減少させるとともに、前記TCAMの利用を増加させるために、フローエントリ内の完全一致エントリおよびワイルドカードエントリが、別々に記憶され、前記完全一致エントリがメモリ内に記憶され、前記ワイルドカードエントリがTCAM内に記憶され、適切な検索アルゴリズムがエントリマッチングを別々に実行するために使用される。
図1は、本発明の実施形態によるフローテーブルをマッチングするための方法のフローチャートである。図1に示されるように、前記方法は、以下のステップを含む。
ステップ100:スイッチは、受信されたパケット内の複数の一致フィールドを取得し、前記複数の一致フィールドが、複数の完全一致フィールドおよび複数のワイルドカードフィールドを含む。
OpenFlowスイッチは、転送されるために必要なパケットを受信するとともに、前記パケットから複数の一致フィールドを取得し、前記複数の一致フィールドは、局地的に記憶されたフローテーブルとマッチングされる必要があり、前記一致フィールドは、複数の完全一致フィールドおよび複数のワイルドカードフィールドを含む。各完全一致フィールドに対して、前記スイッチは、各完全一致フィールドと完全に一致する必要があり、すなわち、前記パケット内の各完全一致フィールドのフィールド値が、前記フローテーブル内の完全一致フィールドに対応するフィールド値とまったく同一である必要がある。前記ワイルドカードフィールドのために、前記パケット内のワイルドカードフィールドのフィールド値が前記フローテーブル内の対応するワイルドカードフィールドのフィールド値と部分的に同一である限り、前記スイッチは、前記ワイルドカードフィールドと部分マッチングしてもよく、または、前記スイッチが前記ワイルドカードフィールドを完全に省略する、すなわち、前記ワイルドカードフィールドのマッチングを実行することをスキップする。
図2は、本発明の実施形態による分割手段において記憶されるフローテーブルの概略図である。図2に示されるように、前記方法は、本発明この実施形態において提供され、前記スイッチは、保持されたフローテーブルTを完全一致フローテーブルT1およびワイルドカード一致フローテーブルT2を含む2つのテーブルに分割し、「*」ではない内容は完全一致フィールドを表すとともに、「*」である内容は、ワイルドカードフィールドを表す。前記完全一致フローテーブルT1は、メモリRAM(たとえば、SDRAMまたはDRAM)内に記憶され、前記ワイルドカード一致フローテーブルT2は、三値連想メモリTCAM内に記憶される。
前記完全一致フローテーブルT1は、1つ以上の完全一致エントリ(前記テーブル内の1つの行は、1つのエントリを表す)を含み、完全一致エントリは、複数の完全一致フィールドを含むとともに、完全一致エントリは、1つのインデックス値に対応する。同様に、前記ワイルドカード一致フローテーブルT2は、1つ以上のワイルドカードエントリ(前記テーブルの1つの行は、1つのエントリを表す)を含み、各ワイルドカードエントリは、複数のワイルドカードフィールドと、前記インデックス値を記憶するために使用される1つのインデックスフィールドとを含む。完全一致エントリおよびワイルドカードエントリは、前記インデックス値を使用することによって割り当てられ、完成フローエントリを形成する。たとえば、図2において、前記完全一致フローテーブルT1は、2つの完全一致エントリを含むとともに、完全一致エントリは、6つの完全一致フィールド(MF1,MF4,MF6,MF7,MF8,MF9)を含む。また、前記ワイルドカード一致フローテーブルT2は、3つのワイルドカードエントリを含み、各ワイルドカードエントリは、3つのワイルドカードフィールド(MF2*,MF3*,MF5*)を含み、各ワイルドカードエントリは、さらに1つのインデックスフィールドMFXを含む。前記図からは、T1内のインデックス値が「1」である完全一致エントリ (A,B,C,D,E,F)およびT2内の前記インデックスフィールドに記憶されるインデックス値が「1」であるワイルドカードエントリ(*,*,*)が、完成フローエントリを形成し、T1内のインデックス値が“2”である完全一致エントリ(B,C,A,E,D,F)およびT2内の前記インデックスフィールドMFXに記憶されるインデックス値が“2”であるワイルドカードエントリ(*,*,*)が、完成フローエントリを形成するとともに、T1内のインデックス値が“2”である完全一致エントリ(B,C,A,E,D,F)およびT2内の前記インデックスフィールドMFXに記憶されたインデックス値が“2”であるワイルドカードエントリ(*,3,2)も完成フローエントリを形成することがわかる。本発明のこの実施形態において、完全一致エントリのインデックス値は、組合せの唯一性を達成するために、ワイルドカードエントリの一致フィールドとして使用される。
ステップ101:前記スイッチは、前記パケット内の前記複数の完全一致フィールドと前記完全一致フローテーブル内の完全一致エントリの前記複数の完全一致フィールドとをマッチングし、前記マッチングが成功する場合、前記完全一致エントリに対応するインデックス値を取得する。
前記2つのフローテーブル(前記完全一致フローテーブルT1および前記ワイルドカード一致フローテーブルT2)に基づいて、前記スイッチは、従来技術において1度に完了される検索動作を2つの完了される動作に分割する。
第1に、前記完全一致フィールドにおいてマッチングが実行される。前記パケット内の前記複数の完全一致フィールドを取得したのち、前記スイッチは、完全一致フィールドの各フィールド値と、前記完全一致フローテーブル内の完全一致エントリの前記複数の完全一致フィールドT1のフィールド値とをマッチングする。完全マッチングが必要であるため、本発明のこの実施形態において、HASHのようなアルゴリズムがマッチングのために実行され、前記マッチングが成功する場合、マッチングは、前記ワイルドカードフィールド上で実行され続ける。マッチングが前記ワイルドカードフィールド上で実行される前に、マッチングに成功した完全一致エントリに対応するインデックス値が、第1に取得され、前記マッチングに成功した完全一致エントリは(B,C,A,E,D,F)であり、前記完全一致エントリの前記インデックス値は“2”である。
ステップ102:前記スイッチは、前記パケット内の前記複数のワイルドカードフィールドと前記ワイルドカード一致フローテーブル内の各ワイルドカードエントリの前記複数のワイルドカードフィールドとを前記インデックス値にしたがってマッチングするとともに、マッチング結果を取得する。
前記マッチングに成功した完全一致エントリ(B,C,A,E,D,F)に対応する前記インデックス値“2”を取得したのち、前記スイッチは、前記ワイルドカードフィールドにおいてマッチングを実行し続けてもよい。特に、前記インデックス値“2”にしたがって、前記スイッチは、前記ワイルドカード一致フローテーブルT2を検索し続けるために前記インデックス値(index)を一致フィールドとして使用し、その後、前記スイッチは、前記ワイルドカード一致フローテーブルT2内の前記インデックスフィールドMFXの値が“2”である、2つのワイルドカードエントリ((*,*,*)および(*,3,2))を含むワイルドカードエントリを発見したことを確認する。その後、前記パケット内の前記複数のワイルドカードフィールド、と前記ワイルドカード一致フローテーブル内の各ワイルドカードエントリの前記複数のワイルドカードフィールドT2とのマッチングが実行されるとともに、マッチング結果が獲得される。前記パケット内の前記複数のワイルドカードフィールドが(6,4,5)である場合、前記ワイルドカードエントリ(*,*,*)がマッチングに成功したことがマッチングの手段によって確認されてもよく、かつ完成フローエントリ(B,C,A,E,D,F,*,*,*)に対応する命令に従って前記パケットの処理を実行される。
前記2つのワイルドカードエントリ(*,*,*)および(*,3,2)が共にマッチングに成功した場合、処理を実行するために、対応する命令が、前記フローエントリの優先度に従って選択される。
本発明のこの実施形態において提供される前記方法において、前記完全一致フィールドにおいて実行された前記マッチングが失敗する場合、転送ポリシを要求するために、前記スイッチは、前記パケットを従来技術にしたがってサービスコントローラに送信してもよい。前記サービスコントローラは、前記パケットに対する転送ポリシを策定するとともに、前記スイッチへ前記転送ポリシを転送し、かつ前記スイッチは、前記転送ポリシにしたがって前記パケットを処理する。
以降において、前記サービスコントローラが、フローテーブルを前記スイッチへ配送し、前記スイッチが、前記フローテーブルを分割手段内に記憶するプロセスを説明する。第一に、前記スイッチは、前記サービスコントローラによって配送されたターゲット・フローテーブルを受信し、前記ターゲット・フローテーブルが、少なくとも1つのフローエントリを含むとともに、各フローエントリが、複数の完全一致フィールドと複数のワイルドカードフィールドとを含む。その後、前記スイッチは、前記フローエントリにおいて完全一致フィールドを抽出するとともに、前記完全一致フィールドと現在の完全一致フローテーブル内に記憶された完全一致エントリの複数の完全一致フィールドとのマッチングを行い、前記マッチングが成功する場合、前記完全一致エントリに対応するインデックス値が取得され、前記マッチングが失敗する場合、前記ターゲット・フローテーブルの前記複数の完全一致フィールドが前記完全一致フローテーブルの完全一致エントリ内に記憶されるとともに、インデックス値が前記完全一致エントリに割り当てられる。このインデックス値は、前記完全一致フローテーブルの一部ではないことに注意する必要がある。そして、前記スイッチは、前記ターゲット・フローテーブル内の前記複数のワイルドカードフィールドを抽出し、TCAM内のワイルドカード一致フローテーブルのワイルドカードエントリにおける前記複数のワイルドカードフィールド内に記憶し、インデックスフィールドに対応する前記取得されたインデックス値を記憶する。
本発明のこの実施形態において提供される前記方法は、ユニットとして使用されるワイルドカードエントリにおけるフローテーブルエイジング処理プロセスをさらに含んでもよく、前記プロセスは、特に、前記ワイルドカード一致フローテーブル内の各ワイルドカードエントリに対して、それぞれ対応する適切な時間を設定するステップと、前記適切な時間が経過したとき、前記ワイルドカードエントリ内に記憶されたインデックス値が、別のワイルドカードエントリ内に記憶されたインデックス値と異なる場合、前記ワイルドカードエントリと前記インデックス値に対応する完全一致エントリとの両方を削除するステップとを含む。T2内の前記インデックスフィールド内に記憶されたインデックス値が1の前記ワイルドカードエントリ(*,*,*)の適切な時間3sが経過した場合、T2が前記インデックスフィールド内の値が“1”である別のワイルドカードエントリを有さないため、T2内の前記ワイルドカードエントリ(*,*,*)およびT1内の前記完全一致エントリ(A,B,C,D,E,F)は、直接削除されてもよい。
前記ワイルドカードエントリ内に記憶されたインデックス値が、別のワイルドカードエントリ内に記憶されたインデックス値と同じ場合、前記ワイルドカードエントリのみが削除される。T2内の前記インデックスフィールド内に記憶されたインデックス値が“2”である前記ワイルドカードエントリ(*,*,*)の適切な時間5sの場合、T2は、前記インデックスフィールド内の値も“”である別のワイルドカードエントリを有するため、T2内の前記ワイルドカードエントリ(*,*,*)のみが削除されるとともに、T1内の前記完全一致エントリ(B,C,A,E,D,F)は、留保される。
本発明のこの実施形態において提供されるフローテーブルをマッチングするための方法によれば、フローエントリ内の完全一致エントリおよびワイルドカードエントリは、独立して記憶され、前記完全一致エントリは、メモリ内に記憶され、前記ワイルドカードエントリは、TCAM内に記憶され、インデックス値のインデックスは、前記完全一致エントリを表現するために使用されるため、前記ワイルドカードエントリは、少ないTCAMリソースを使用し、それによって前記TCAMの利用を増加する。また、適切な検索アルゴリズムが、前記完全一致エントリと前記ワイルドカードエントリとのマッチングを別々に実行するために使用され、それにより検索スピードを増加させる。
図3は、本発明の実施形態によるフローテーブルをマッチングするための装置の概略構造図である。図3に示されるように、フローテーブルをマッチングするための前記装置は、取得モジュール31、第1マッチングモジュール32、第2マッチングモジュール33を含み、前記取得モジュール31は、受信されたパケット内の複数の一致フィールドを取得するように構成され、前記複数の一致フィールドは、複数の完全一致フィールドおよび複数のワイルドカードフィールドを含み、前記第1マッチングモジュール32は、前記パケット内の前記複数の完全一致フィールドと前記完全一致フローテーブル内の完全一致エントリの複数の完全一致フィールドとを比較するとともに、前記マッチングが成功する場合、前記完全一致エントリに対応するインデックス値を取得するように構成され、前記第2マッチングモジュール33は、前記パケット内の前記複数のワイルドカードフィールドと、前記ワイルドカード一致フローテーブル内の各ワイルドカードエントリの複数のワイルドカードフィールドと、を前記インデックス値にしたがってマッチングするとともに、マッチング結果を獲得するように構成される。フローテーブルをマッチングするための前記装置は、フローテーブルを記憶し、前記フローテーブルは、完全一致フローテーブルおよびワイルドカード一致フローテーブルを含み、前記完全一致フローテーブルは、メモリ内に記憶され、前記ワイルドカード一致フローテーブルは、三値連想メモリ内に記憶され、前記完全一致フローテーブルは、1つ以上の完全一致エントリを含み、完全一致エントリは、複数の完全一致フィールドを含み、完全一致エントリは、1つのインデックス値に対応し、前記ワイルドカード一致フローテーブルは、1つ以上のワイルドカードエントリを含み、各ワイルドカードエントリは、複数のワイルドカードフィールドと前記インデックス値を記憶するために使用される1つのインデックスフィールドとを含み、前記インデックス値を用いて割り当てられた完全一致エントリおよびワイルドカードエントリは、完成フローエントリを形成する。
特に、前記装置は、前記受信されたパケット内の前記複数の完全一致フィールドと前記複数のワイルドカードフィールドとを前記取得モジュール31を用いて抽出し、その後、前記装置は、まず、前記メモリ内で前記第1マッチングモジュール32を用いて、前記完全一致フィールドにおける完全なマッチングを実行するとともに、マッチングを実行するために、特にHASH アルゴリズムを使用してもよい。前記マッチングが成功する場合、対応するインデックス値が取得され、前記マッチングが失敗する場合、前記パケット内の前記複数の完全一致フィールドが前記メモリ内の前記完全一致フローテーブル内に記憶されるとともに、インデックス値が前記複数の完全一致フィールドに割り当てられる。その後、前記第2マッチングモジュール33は、前記インデックス値にしたがって前記TCAM内の前記複数のワイルドカードフィールドにおいてマッチングを実行するとともに、最終的にマッチング結果を獲得する。
本発明のこの実施形態におけるフローテーブルをマッチングするための装置によると、完全一致エントリおよびワイルドカードエントリはフローエントリ内に独立して記憶され、、前記完全一致エントリは、メモリ内に記憶され、前記ワイルドカードエントリは、TCAM内に記憶され、インデックス値のインデックスは、前記完全一致エントリを表現するために使用されるため、前記ワイルドカードエントリは、少ないTCAMリソースを使用し、それによって前記TCAMの利用を増加する。また、適切な検索アルゴリズムが、前記完全一致エントリと前記ワイルドカードエントリとのマッチングを別々に実行するために使用され、それにより検索スピードを増加させる。
本発明のこの実施形態において提供されるフローテーブルをマッチングするための前記装置は、分割モジュール34をさらに含んでもよく、前記分割モジュール34は、コントロールサーバによって配送されたターゲット・フローテーブルを受信するように構成され、前記ターゲット・フローテーブルは、少なくとも1つのフローエントリを含み、各フローエントリは、複数の完全一致フィールドおよび複数のワイルドカードフィールドを含み、かつ、各フローエントリ内の前記複数の完全一致フィールドと、前記完全一致フローテーブル内の完全一致エントリの前記複数の完全一致フィールドとをマッチングするように構成され、前記マッチングが成功する場合、前記完全一致エントリに対応するインデックスを取得するとともに、前記マッチングが失敗する場合、前記完全一致フローテーブルの完全一致エントリ内に前記ターゲット・フローテーブルの前記複数の完全一致フィールドを記憶するとともに、インデックス値を前記完全一致エントリに割り当て、かつ、前記ワイルドカード一致フローテーブルのワイルドカードエントリ内に前記ターゲット・フローテーブルの前記複数のワイルドカードフィールドを記憶するとともに、前記ワイルドカードエントリのインデックスフィールド内の前記インデックス値を記憶するように構成される。前記装置は、前記分割モジュール34を用いて前記フローテーブルを二つの部分に分割する。しかしながら、前記コントロールサーバは、そのような分割を知る必要はなく、また、前記コントロールサーバ、影響を受けることなく従来技術にしたがって処理を実行する必要のみがある。
本発明の実施形態によって提供されるフローテーブルをマッチングするための前記装置は、さらに時効処理モジュールを含んでもよく、前記時効処理モジュールは、前記ワイルドカード一致フローテーブル内の各ワイルドカードエントリに対して適切な時間を設定し、適切な時間が経過したのちに、前記ワイルドカードエントリ内に記憶されたインデックス値が、別のワイルドカードエントリ内に記憶されたインデックス値と異なる場合、前記ワイルドカードエントリと前記インデックス値に対応する完全一致エントリとを削除し、前記ワイルドカードエントリ内に記憶されたインデックス値が、別のワイルドカードエントリ内に記憶されたインデックス値と同じ場合、前記ワイルドカードエントリのみを削除するように構成される。前記時効処理モジュールは、ワイルドカードエントリのユニットにおいて時効処理を実施することが理解されよう。
本発明の実施形態は、さらにスイッチを提供し、前記スイッチは、メモリと、三値連想メモリと、プロセッサとを含む。前記スイッチは、フローテーブルを保持し、前記フローテーブルは、完全一致フローテーブルとワイルドカード一致フローテーブルとを含み、前記完全一致フローテーブルは、前記メモリ内に記憶されるとともに、前記ワイルドカード一致フローテーブルは、前記三値連想メモリ内に記憶される。前記完全一致フローテーブルは、1つ以上の完全一致エントリを含み、完全一致エントリは、複数の完全一致フィールドを含み、完全一致エントリは、1つのインデックス値に対応する。前記ワイルドカード一致フローテーブルは、1つ以上のワイルドカードエントリを含み、各ワイルドカードエントリは、複数のワイルドカードフィールドと前記インデックス値を記憶するために使用される1つのインデックスフィールドとを含む。完全一致エントリと前記インデックス値を用いて割り当てられたワイルドカードエントリとは、完成フローエントリを形成する。
前記プロセッサは、特に、受信されたパケット内の複数の一致フィールドを取得し、前記複数の一致フィールドは、複数の完全一致フィールドと複数のワイルドカードフィールドとを含み、前記パケット内の前記複数の完全一致フィールド と前記完全一致フローテーブル内の完全一致エントリの前記複数の完全一致フィールドとの間でマッチングを実行し、前記マッチングが成功する場合、前記完全一致エントリに対応するインデックス値を取得し、前記パケット内の前記複数のワイルドカードフィールドと前記ワイルドカード一致フローテーブル内の各ワイルドカードエントリの前記複数のワイルドカードフィールドとを前記インデックス値にしたがってマッチングを行い、マッチング結果を取得するように構成される。前記メモリ内で、前記プロセッサの実行する前記完全一致フィールド上のマッチングのプロセスにおいて、マッチングを実行するためにHASHアルゴリズムが使用されてもよい。
本発明のこの実施形態において提供される前記スイッチによると、フローエントリ内の完全一致エントリおよびワイルドカードエントリは、独立して記憶され、前記完全一致エントリは、メモリ内に記憶され、前記ワイルドカードエントリは、TCAM内に記憶され、インデックス値のインデックスは、前記完全一致エントリを表現するために使用されるため、前記ワイルドカードエントリは、少ないTCAMリソースを使用し、それによって前記TCAMの利用を増加する。また、適切な検索アルゴリズムが、前記完全一致エントリと前記ワイルドカードエントリとのマッチングを別々に実行するために使用され、それにより検索スピードを増加させる。
本発明において提供されるいくつかの実施形態において、開示された装置および方法は、他の方法においても実施されうることが理解されよう。たとえば、開示された装置の実施形態は、単に例示である。たとえば、ユニットの区分は、単に論理機能の区分であるとともに、実際の実施において他の区分であってもよい。たとえば、複数のユニットまたは構成要素は、組み合わされるか別のシステムへ組み込まれてもよく、あるいは、いくつかの特徴は、無視されるか実施されなくてもよい。加えて、示された或いは言及された相互結合もしくは直接結合または通信接続は、いくつかのインターフェースによって実施されうる。前記装置またはユニット間の間接結合または通信接続は、電子的、機械的または他の形で実施されてもよい。
独立した部分として説明されたユニットは、物理的に独立していてもいなくてもよく、かつ、ユニットとして示された部分は、物理的なユニットであってもなくてもよく、一か所に位置していてもよく、または複数のネットワークユニット上に配置されてもよい。いくつか、またはすべてのユニットは、実施形態の解決手法の目的を達成するための実際の必要に従って選択されてもよい。
加えて、本発明の実施形態における機能ユニットは、1つの処理ユニットに組み込まれてもよく、あるいは、各ユニットは、物理的に単独で存在してもよく、または、2つ以上のユニットが1つのユニットへ組み込まれてもよい。前記組み込まれたユニットは、ハードウェアの形式で実施されてもよく、または、ソフトウェア機能ユニットに加えてハードウェアの形式で実施されてもよい。
前述の組み込まれたユニットがソフトウェア機能ユニットの形式で実施される場合、前記組み込まれたユニットは、コンピュータ可読記憶媒体に記憶されてもよい。前述のソフトウェア機能ユニットは、記憶媒体に記憶されるとともに、コンピュータデバイス(パーソナルコンピュータ、サーバ、またはネットワークデバイス)またはプロセッサ(Processor)に本発明の実施形態において説明された方法のいくつかのステップを実行させることを命令するためのいくつかの命令を含む。前述の記憶媒体は、USBフラッシュドライブ、リムーバブルハードディスク、リードオンリーメモリ(Read−Only Memory, ROM)、ランダムアクセスメモリ(Random Access Memory, RAM)、磁気ディスク、または光学ディスクのようなプログラムコードを記憶することができる任意の媒体を含む。
便宜上、および説明を簡単にするために、上述の機能モジュールの分割だけを説明のために例にとっていることが、当業者によって明確に理解されよう。実際の適用においては、上述の機能が実装の必要性に応じて異なる機能モジュールに割り当てられてもよく、すなわち、上記で説明した昨日のすべてまたは一部を実装するために、装置の内部構造は、異なる機能モジュールに分割されてもよい。上述の装置の詳細な作業プロセスに関して、上述の方法実施形態における対応するプロセスが参照されてもよく、ここでは再び説明しない。
最後に、上述の実施形態は、単に本発明の技術的解決手法を説明するためのものに過ぎず、本発明を限定するように意図されていないことに留意されたい。本発明が上述の実施形態を参照して詳細に説明されたが、修正または置き換えが対応する技術的な解決策の本質を本発明の技術的な解決策の範囲から逸脱させない限り、そのような修正が、実施形態で説明された技術的な解決策に対してなされる可能性があり、または均等な置き換えが、技術的な解決策の技術的特徴の一部もしくはすべてに対してなされる可能性があることは当業者によって理解されるべきである。
31 取得モジュール
32 第1マッチングモジュール
33 第2マッチングモジュール
34 分割モジュール

Claims (11)

  1. フローエントリフローテーブル内に記憶するための方法であって、
    前記フローエントリは、少なくとも1つの完全一致フィールドと、少なくとも1つのワイルドカード一致フィールドとを具備し、
    前記フローテーブルは、完全一致フローテーブルと、ワイルドカード一致フローテーブルとを具備し、
    前記方法は、
    スイッチによって、前記フローエントリ内の前記少なくとも1つの完全一致フィールドを抽出するとともに、前記少なくとも1つの完全一致フィールドを、前記完全一致フローテーブル内の完全一致エントリの少なくとも1つの完全一致フィールドとマッチングするステップと、
    前記スイッチによって、前記完全一致フローテーブル内の完全一致エントリを生成するとともに、前記完全一致フローテーブルの前記完全一致エントリ内に前記少なくとも1つの完全一致フィールドを記憶するとともに、前記マッチングが失敗するときに、前記完全一致エントリへインデックス値を割り当てるとともに、前記マッチングが成功するときに、前記スイッチによって前記完全一致フローテーブルの前記完全一致エントリに対応するインデックス値を取得するステップと、
    前記スイッチによって、前記フローエントリ内の前記少なくとも1つのワイルドカード一致フィールドを抽出するステップと、
    前記スイッチによって、前記ワイルドカード一致フローテーブル内のワイルドカードエントリを生成するとともに、前記ワイルドカードエントリ内に前記少なくとも1つのワイルドカード一致フィールドを記憶するステップと、
    前記スイッチによって、前記ワイルドカードエントリのインデックスフィールド内に前記インデックス値を記憶するステップと、
    を具備する方法。
  2. 前記方法が、
    前記ワイルドカード一致フローテーブル内の第1ワイルドカードエントリに対して適切な時間を設定するステップと、
    前記適切な時間が経過したとき、前記第1ワイルドカードエントリ内に記憶された第1インデックス値が別のワイルドカードエントリ内に記憶された第2インデックス値と異なる場合、前記第1ワイルドカードエントリと、前記第1ワイルドカードエントリの前記インデックスフィールド内の前記第1インデックス値に対応する少なくとも1つの完全一致エントリとの両方を削除するステップと、
    を具備する請求項1に記載の方法。
  3. 前記方法は、
    前記適切な時間が経過したとき、前記第1ワイルドカードエントリ内に記憶された前記第1インデックス値が別のワイルドカードエントリ内に記憶されたインデックス値と同じ場合、前記第1ワイルドカードエントリを削除するステッ
    具備する請求項2に記載の方法。
  4. フローテーブルをマッチングするための方法であって、
    前記フローテーブルは、完全一致フローテーブルとワイルドカード一致フローテーブルとを具備し、
    前記完全一致フローテーブル、1つ以上の完全一致エントリを具備し、
    各完全一致エントリは、少なくとも1つの完全一致フィールドを具備するとともに、完全一致エントリは、1つのインデックス値に対応し、
    前記ワイルドカード一致フローテーブルは、1つ以上のワイルドカードエントリを具備するとともに、
    各ワイルドカードエントリは、少なくとも1つのワイルドカードフィールドと、前記インデックス値を記憶するために使用される1つのインデックスフィールドを具備し、
    完全一致エントリと前記インデックス値を使用することによって関連付けられたワイルドカードエントリとは、フローエントリを形成する方法であって、
    前記方法は、
    受信されたパケットから少なくとも2つの一致データフィールドを取得するステップであって、前記少なくとも2つの一致データフィールドは、少なくとも1つの完全一致データフィールドと、少なくとも1つのワイルドカードデータフィールドとを具備するステップと、
    前記パケット内の前記少なくとも1つの完全一致データフィールドを前記完全一致フローテーブル内の完全一致エントリの前記少なくとも1つの完全一致フィールドとマッチングするステップであって、前記マッチングが成功する場合、前記完全一致エントリに対応するインデックス値を取得するステップと、
    前記インデックス値に従って、前記パケット内の前記少なくとも1つのワイルドカードデータフィールドを前記ワイルドカード一致フローテーブル内の各ワイルドカードエントリの前記少なくとも1つのワイルドカードフィールドとマッチングするステップと、
    マッチング結果を取得するステップと、
    を含む方法。
  5. 前記パケット内の前記少なくとも1つの完全一致データフィールドを前記完全一致フローテーブル内の完全一致エントリの前記少なくとも1つの完全一致フィールドとマッチングするステップは、
    前記パケット内の前記少なくとも1つの完全一致データフィールドを前記完全一致フローテーブル内の完全一致エントリの前記少なくとも1つの完全一致フィールドと、HASHアルゴリズムを使用することによってマッチングするステップ
    を具備する請求項4に記載の方法。
  6. 前記方法は、さらに、
    前記ワイルドカード一致フローテーブル内の第1ワイルドカードエントリに対して適切な時間を設定するステップと、
    前記適切な時間が経過したとき、前記第1ワイルドカードエントリ内に記憶された第1インデックス値が別のワイルドカードエントリに記憶された第2インデックス値と異なる場合、前記第1ワイルドカードエントリと、前記第1ワイルドカードエントリの前記インデックスフィールド内の前記第1インデックス値に対応する少なくとも1つの完全一致エントリとの両方を削除するステップと、
    を具備する請求項4に記載の方法。
  7. 前記方法は、さらに、
    前記適切な時間が経過したとき、前記第1ワイルドカードエントリ内に記憶された前記第1インデックス値が別のワイルドカードエントリ内に記憶されたインデックス値と同じ場合、前記第1ワイルドカードエントリを削除するステッ
    具備する請求項6に記載の方法。
  8. スイッチであって、
    前記スイッチは、メモリと三値連想メモリとを具備し、
    フローテーブルは、完全一致フローテーブルとワイルドカード一致フローテーブルとを具備し、
    前記完全一致フローテーブルは、前記メモリ内に記憶され、
    前記ワイルドカード一致フローテーブルは、前記三値連想メモリ内に記憶され、
    前記完全一致フローテーブルは、1つ以上の完全一致エントリを具備し、
    完全一致エントリは、少なくとも1つの完全一致フィールドを具備し、完全一致エントリは、1つのインデックス値に対応し、
    前記ワイルドカード一致フローテーブルは、1つ以上のワイルドカードエントリを具備し、
    各ワイルドカードエントリは、少なくとも1つのワイルドカードフィールドと前記インデックス値を記憶するために使用される1つのインデックスフィールドとを具備し、
    完全一致エントリと、前記インデックス値を使用することによって関連付けられたワイルドカードエントリは、フローエントリを形成する、スイッチであって、
    前記スイッチは、さらに、プロセッサを具備し、
    前記プロセッサは、
    受信されたパケットから少なくとも2つの一致データフィールドを取得するように構成され、前記少なくとも2つの一致データフィールドは、少なくとも1つの完全一致データフィールドと少なくとも1つのワイルドカードデータフィールドとを具備し、
    前記プロセッサは、
    前記パケット内の前記少なくとも1つの完全一致データフィールドを前記完全一致フローテーブル内の各完全一致エントリの前記少なくとも1つの完全一致フィールドとマッチングするとともに、前記マッチングが成功する場合、前記完全一致エントリに対応するインデックス値を取得し、
    前記インデックス値に従って、前記パケット内の前記少なくとも1つのワイルドカードデータフィールドを前記ワイルドカード一致フローテーブル内の各ワイルドカードエントリの前記少なくとも1つのワイルドカードフィールドとマッチングし、
    マッチング結果を取得する、
    ように構成される、スイッチ。
  9. 前記プロセッサは、さらに、
    前記パケット内の前記少なくとも1つの完全データ一致フィールドを、前記完全一致フローテーブル内の完全一致エントリの前記少なくとも1つの完全一致フィールドとHASHアルゴリズムを使用することによってマッチングする
    ように構成される、請求項8に記載のスイッチ。
  10. 前記プロセッサは、さらに、
    前記ワイルドカード一致フローテーブル内の第1ワイルドカードエントリに対して適切な時間を設定し、
    前記適切な時間が経過したとき、前記第1ワイルドカードエントリ内に記憶された第1インデックス値が別のワイルドカードエントリ内に記憶された第2インデックス値と異なる場合、前記第1ワイルドカードエントリと前記第1ワイルドカードエントリの前記インデックスフィールド内の前記第1インデックス値に対応する少なくとも1つの完全一致エントリとの両方を削除する、
    ように構成される、請求項8に記載のスイッチ。
  11. 前記プロセッサは、さらに、
    前記適切な時間が経過したとき、前記第1ワイルドカードエントリ内に記憶された前記第1インデックス値が別のワイルドカードエントリ内に記憶されたインデックス値と同じ場合、前記第1ワイルドカードエントリを削除する、
    ように構成される、請求項10に記載のスイッチ。
JP2015549973A 2012-12-28 2013-12-25 フローテーブルをマッチングするための方法及び装置、並びにスイッチ Active JP6004299B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201210586928.3 2012-12-28
CN201210586928.3A CN103905311B (zh) 2012-12-28 2012-12-28 流表匹配方法和装置以及交换机
PCT/CN2013/090465 WO2014101777A1 (zh) 2012-12-28 2013-12-25 流表匹配方法和装置以及交换机

Publications (2)

Publication Number Publication Date
JP2016502370A JP2016502370A (ja) 2016-01-21
JP6004299B2 true JP6004299B2 (ja) 2016-10-05

Family

ID=50996467

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015549973A Active JP6004299B2 (ja) 2012-12-28 2013-12-25 フローテーブルをマッチングするための方法及び装置、並びにスイッチ

Country Status (4)

Country Link
US (1) US20150304212A1 (ja)
JP (1) JP6004299B2 (ja)
CN (1) CN103905311B (ja)
WO (1) WO2014101777A1 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104468357B (zh) * 2013-09-16 2019-07-12 中兴通讯股份有限公司 流表的多级化方法、多级流表处理方法及装置
US9299434B2 (en) * 2014-01-09 2016-03-29 Netronome Systems, Inc. Dedicated egress fast path for non-matching packets in an OpenFlow switch
WO2016000362A1 (zh) 2014-06-30 2016-01-07 华为技术有限公司 一种配置流表项的方法、装置和系统
CN105429879B (zh) * 2014-08-26 2018-11-30 杭州华为数字技术有限公司 流表项查询方法、设备及系统
CN105490946A (zh) * 2014-09-18 2016-04-13 中兴通讯股份有限公司 流表处理方法、装置、开放流控制器及开放流交换机
CN106533947B (zh) 2015-09-11 2019-10-08 新华三技术有限公司 报文处理方法及装置
CN105516006A (zh) * 2015-11-25 2016-04-20 英业达科技有限公司 流量条目聚合方法及相关的网络系统
CN106059931B (zh) * 2016-08-04 2019-09-17 杭州迪普科技股份有限公司 报文转发方法及装置
CN106330720A (zh) * 2016-08-26 2017-01-11 浪潮集团有限公司 一种ip报文策略表快速查找的方法
CN106301970A (zh) * 2016-10-27 2017-01-04 盛科网络(苏州)有限公司 一种使用转发表收敛以减少tcam表项消耗的芯片实现方法
TWI644536B (zh) * 2017-02-24 2018-12-11 中華電信股份有限公司 User group-based process item management system and method thereof for SDN network
CN107800652A (zh) * 2017-10-20 2018-03-13 深圳市楠菲微电子有限公司 在交换机中使用的协议访问方法及装置
CA3081591A1 (en) * 2017-11-06 2019-05-09 Pensando Systems Inc. Network system including match processing unit for table-based actions
CN107995116B (zh) * 2017-11-30 2021-01-01 新华三技术有限公司 报文发送方法及通信设备
CN108337172B (zh) * 2018-01-30 2020-09-29 长沙理工大学 大规模OpenFlow流表加速查找方法
EP3756088A4 (en) 2018-02-22 2021-12-01 Pensando Systems Inc. PROGRAMMABLE COMPUTER WITH I / O DEVICE INTERFACE
CN108875064B (zh) * 2018-07-03 2021-07-06 湖南新实网络科技有限公司 基于FPGA的OpenFlow多维数据匹配查找方法
CN109815263B (zh) * 2019-01-04 2021-10-26 烽火通信科技股份有限公司 一种模糊查找的数据流识别方法及系统
US11343189B2 (en) * 2019-10-21 2022-05-24 Arista Networks, Inc. Systems and methods for augmenting TCAM bank processing with exact match
CN111131029B (zh) * 2019-12-03 2022-08-19 长沙理工大学 一种支持规则依赖的高能效OpenFlow流表查找方法
CN111131050A (zh) * 2019-12-31 2020-05-08 盛科网络(苏州)有限公司 流表的匹配方法及装置
CN112104576B (zh) * 2020-08-14 2022-02-22 中国科学院声学研究所 一种sdn交换机的常驻流表存储与校准方法
CN114637759B (zh) * 2020-12-16 2023-04-18 金篆信科有限责任公司 数据查询方法、电子设备、存储介质
CN117640513A (zh) * 2022-08-15 2024-03-01 华为技术有限公司 一种数据处理方法、装置和系统

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6118760A (en) * 1997-06-30 2000-09-12 Sun Microsystems, Inc. Management of entries in a network element forwarding memory
CN101369267B (zh) * 2007-08-15 2010-12-08 中兴通讯股份有限公司 一种基于内存库的模糊查询方法
CN101556610B (zh) * 2009-05-04 2011-12-21 中兴通讯股份有限公司 网络处理器使用的建表和查表方法
US8559332B2 (en) * 2010-05-25 2013-10-15 Telefonaktiebolaget L M Ericsson (Publ) Method for enhancing table lookups with exact and wildcards matching for parallel environments
CN102377664B (zh) * 2010-08-27 2015-06-10 武汉烽火网络有限责任公司 一种基于tcam的区域匹配装置和方法
US8873398B2 (en) * 2011-05-23 2014-10-28 Telefonaktiebolaget L M Ericsson (Publ) Implementing EPC in a cloud computer with openflow data plane
US8681794B2 (en) * 2011-11-30 2014-03-25 Broadcom Corporation System and method for efficient matching of regular expression patterns across multiple packets
JP5814830B2 (ja) * 2012-03-05 2015-11-17 Kddi株式会社 フロー単位パケット転送のための宛先検索装置および検索方法

Also Published As

Publication number Publication date
JP2016502370A (ja) 2016-01-21
CN103905311B (zh) 2017-02-22
US20150304212A1 (en) 2015-10-22
WO2014101777A1 (zh) 2014-07-03
CN103905311A (zh) 2014-07-02

Similar Documents

Publication Publication Date Title
JP6004299B2 (ja) フローテーブルをマッチングするための方法及び装置、並びにスイッチ
US11824796B2 (en) Protocol independent programmable switch (PIPS) for software defined data center networks
CN107113241B (zh) 路由确定方法、网络配置方法以及相关装置
CN106161610A (zh) 一种分布式存储的方法和系统
US11182365B2 (en) Systems and methods for distributed storage of data across multiple hash tables
WO2010131221A2 (en) Negotiated secure fast table lookups for protocols with bidirectional identifiers
CN105049359A (zh) 用于分布式路由表查找的技术
CN104917680B (zh) 用于执行分组流的并行散列的计算机系统
JP6437693B2 (ja) マルチキャストデータパケット転送
WO2020019943A1 (zh) 发送数据的方法和装置,以及接收数据的方法和装置
CN111277612B (zh) 一种网络报文处理策略生成方法、系统及介质
US9135833B2 (en) Process for selecting compressed key bits for collision resolution in hash lookup table
JP2020505853A (ja) 等コストパスエントリ確立
WO2019029310A1 (zh) 网络管理方法和系统
WO2024093064A1 (zh) 一种大规模多模态网络中标识管理及优化转发方法和装置
WO2018214817A1 (zh) 报文转发方法及装置、设备、存储介质
JP2019531563A (ja) データ処理方法、記憶システムおよび切り換え装置
JP2018527813A (ja) クラウドプラットフォームのセキュリティの実現
CN107276916A (zh) 基于协议无感知转发技术的交换机流表管理方法
CN108462683B (zh) 认证方法和装置
CN104780201A (zh) 一种ipvs集群中的数据包处理方法及装置
JP6437694B2 (ja) パケット転送
KR101800320B1 (ko) 버스 프로토콜 기반의 네트워크 온 칩 시스템, 그 설계 방법 및 그 설계 방법에 관한 프로그램이 기록된 컴퓨터 판독가능 기록매체
CN110417777B (zh) 一种优化的微服务间通信的方法及装置
CN104219163A (zh) 一种基于动态副本法和虚拟节点法的节点动态前移的负载均衡方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160406

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160419

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160711

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: 20160809

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160825

R150 Certificate of patent or registration of utility model

Ref document number: 6004299

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250