JP2017520214A - フローエントリ構成の方法、装置及びシステム - Google Patents

フローエントリ構成の方法、装置及びシステム Download PDF

Info

Publication number
JP2017520214A
JP2017520214A JP2017519755A JP2017519755A JP2017520214A JP 2017520214 A JP2017520214 A JP 2017520214A JP 2017519755 A JP2017519755 A JP 2017519755A JP 2017519755 A JP2017519755 A JP 2017519755A JP 2017520214 A JP2017520214 A JP 2017520214A
Authority
JP
Japan
Prior art keywords
service
flow
target
flow entry
match field
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.)
Granted
Application number
JP2017519755A
Other languages
English (en)
Other versions
JP6490205B2 (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 JP2017520214A publication Critical patent/JP2017520214A/ja
Application granted granted Critical
Publication of JP6490205B2 publication Critical patent/JP6490205B2/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/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/036Updating the topology between route computation elements, e.g. between OpenFlow controllers
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/64Routing or path finding of packets in data switching networks using an overlay routing layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/645Splitting route computation layer and forwarding layer, e.g. routing according to path computational element [PCE] or based on OpenFlow functionality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • 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/302Route determination based on requested QoS
    • H04L45/306Route determination based on the nature of the carried application

Landscapes

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

Abstract

本発明の実施形態は、フローエントリ構成の方法、装置及びシステムを開示する。本方法は、スイッチが、フローテーブル構造をコントローラにレポートするステップであって、フローテーブル構造に含まれる複数のOpenFlowフローテーブルのマッチフィールド及びアクションの共通集合は、ハードウェアフローテーブルによってサポートされる第1のサービスの実施に用いられるマッチフィールド及びアクションを含む、ステップと、フローテーブル構造に従って生成され且つコントローラによって送信されたフローエントリを受信するステップと、第1のサービスの第1のデータパケットとマッチする第1のフローエントリがソフトウェアフローテーブルにおいて見つかった場合、第1のフローエントリとマッチする第1の目標サービスパスを決定し、更に、対応する第1のハードウェアフローテーブルを決定するステップと、第1のフローエントリに従って、第1のハードウェアフローテーブルのフローエントリを構成するステップと、を含む。この方法を採用することにより、スイッチがどのコントローラに接続されるかに関係なく、スイッチは、ハードウェアフローテーブル中に、第1のサービスの実施に用いられるフローエントリを正常に構成することができ、結果として第1のサービスを正常に処理し、それによりサービス処理の失敗確率を低減することができる。

Description

本発明は通信ネットワーク技術の分野に関し、特に、フローエントリ構成の方法、装置及びシステムに関する。
オープンフロー(OpenFlow)ネットワークは、データ転送レイヤと制御レイヤの分離を実現するものであり、制御レイヤにコントローラ(Controller)を含み、転送レイヤにスイッチ(Switch)を含む。コントローラは、OpenFlowプロトコルを用いてスイッチを制御して、ネットワーク全体の集中制御を実現する。具体的には、コントローラは、OpenFlowプロトコルを用いて、フローエントリ(flow entry)をスイッチに送信する。送信されるフローエントリは、マッチフィールド(match field)値及びアクション(action)値を含む。マッチフィールド値は宛先MACアドレスやイーサネットタイプ等であってよく、アクション値は、指定されたポートを通じてデータパケットが転送されたことを示すのに用いられる情報であってよい。スイッチは、受信したフローエントリをハードウェアフローテーブルに追加して、後でデータパケットを受信したときに、ハードウェアフローテーブルにおいてそのデータパケットとマッチするフローエントリを検索し、見つかったフローエントリのアクション値に従ってそのデータパケットを処理する。
従来技術では、ハードウェアフローテーブルは以下の方法を用いて構成される。
スイッチは、OpenFlowフローテーブル(例えば、テーブルT0、テーブルT1、テーブルT2)とスイッチのハードウェアフローテーブル(例えば、アクセス制御リスト(Access Control List、ACL)1、ACL2)との1対1の対応関係を記憶して、フローテーブル構造を生成する。生成されたフローテーブル構造は、各OpenFlowフローテーブル(flow table)のフローテーブルタイプと、各OpenFlowフローテーブルによってサポートされるマッチフィールド及びアクションとを含む。スイッチは、生成されたフローテーブル構造をコントローラにレポートする。各OpenFlowフローテーブルによってサポートされるマッチフィールド及びアクションは、対応するハードウェアフローテーブルのマッチフィールド及びアクションを含む。
コントローラによって送信されたフローエントリは、コントローラの処理ロジックとスイッチによってレポートされたフローテーブル構造に従って生成される。コントローラの処理ロジックは、特定のサービスのための特定のテーブルのフローエントリを生成することである。例えば、テーブルT0及びテーブルT1のフローエントリがサービスAに対して生成され、テーブルT2のフローエントリがサービスBに対して生成される。
フローテーブル又はいくつかのフローテーブルの、コントローラによって送信されたフローエントリを受信すると、スイッチは、対応関係に従って、OpenFlowフローテーブルに対応するハードウェアフローテーブルにフローエントリを記憶する。例えば、テーブルT0のフローエントリが受信されると、フローエントリはリストACL1に記憶されて、ハードウェアフローテーブルによってサポートされるサービスを実現する。
例えば、サービスAを実現するには、マッチフィールド、in_port(入力ポート)、eth_type(イーサネットタイプ)、src_mac(送信元MACアドレス)、dst mac(宛先MACアドレス)及びアクションoutput(ポート経由の転送)が必要となる。リストACL1には最初の3つのマッチフィールドが含まれ、リストACL2には最後の2つのマッチフィールドとoutputアクションが含まれ、リストACL1及びリストACL2がサービスAをサポートすることを示す。スイッチは、テーブルT0とリストACL1との対応関係と、テーブルT1とリストACL2との対応関係を記憶する。対応して、テーブルT0の生成されたマッチフィールドは最初の3つのマッチフィールドも含み、生成されたテーブルT1は最後の2つのマッチフィールドとoutputアクションを含み、そしてテーブルT0とテーブルT1がサービスAをサポートする。コントローラの処理ロジックは、サービスAについてテーブルT0及びテーブルT1のフローエントリを生成している。したがって、サービスAのパケットを処理するために用いられるフローエントリがスイッチに送出される。
一般に、異なるタイプのスイッチには異なるハードウェア転送チップがあり、異なるハードウェア転送チップで同じサービスをサポートするために用いられるハードウェアフローテーブルも異なる。例えば、ASICチップ1では、サービスAはACL1及びACL2によってサポートされ、ASICチップ2では、サービスAはACL3によってサポートされる。しかしながら、コントローラがフローエントリを生成するとき、ASICチップ1に基づくスイッチによってレポートされたテーブルT0及びテーブルT1が、サービスAによって必要とされるマッチフィールド及びアクションを含む場合、コントローラは、テーブルT0及びテーブルT1のフローエントリをスイッチに送信する。ASICチップ2に基づくスイッチによってレポートされたACL3に対応するテーブルT2が前述の条件を満たすが、レポートされたテーブルT0及びテーブルT1が上記の条件を満たすことができない場合、コントローラは、サービスAのパケットの処理に用いられるフローエントリをスイッチに送信することができない。
明らかに、ASICチップ1に基づくスイッチがサービスAを実現するためにテーブルT0及びテーブルT1を用いる場合、ASICチップ2に基づくスイッチはテーブルT2を用いてサービスAを実現する。コントローラの処理ロジックは、サービスAについてテーブルT0及びテーブルT1のフローエントリを生成しており、コントローラは、ASICチップ2に基づくスイッチに接続されている場合、サービスAに対応するフローエントリを生成又は送信することができない。もちろん、ASICチップ2に基づくスイッチは、サービスAを処理するフローエントリを構成することができないので、そのサービスAは処理することができない。
製造業者によって製造されたコントローラの処理ロジックは、通常異なるものであり、製造業者によって製造されるスイッチがベースとなるハードウェア転送チップも、通常異なるものである。したがって、スイッチとコントローラが接続されているときにサービスの一部を処理できないので、サービス処理の失敗確率が相対的に高くなってしまう。
本発明の実施形態は、フローエントリ構成の方法、装置及びシステムを提供する。これらは、スイッチがハードウェアフローテーブル中に、一部のサービスの処理に用いられるフローエントリを構成することができないという理由で、サービス処理の失敗確率が相対的に高くなるという従来技術の課題を解決するために用いられる。
第1の態様は、フローエントリ構成の方法を提供する。本方法は、
スイッチが、オープンフロー(OpenFlow)プロトコルを用いて、フローテーブル構造をコントローラにレポートするステップであって、フローテーブル構造は、複数のOpenFlowフローテーブルがサポートするマッチフィールド及びアクションと、複数のOpenFlowフローテーブルのタイプとを含み、複数のOpenFlowフローテーブルがサポートするマッチフィールド及びアクションには共通集合が存在し、共通集合は、スイッチのハードウェアフローテーブルによってサポートされる第1のサービスの実施に用いられるマッチフィールド及びアクションを含み、複数のOpenFlowフローテーブルのタイプは全てワイルドカードタイプである、ステップと、
スイッチが、コントローラがOpenFlowプロトコルを用いて送信したフローエントリを受信し、フローエントリをソフトウェアフローテーブル中に構成するステップであって、フローエントリは、コントローラによりフローテーブル構造とスイッチによってレポートされたデータパケットについての情報とに従って生成され、データパケットについての情報は第1のサービスの第1のデータパケットについての情報を含み、フローエントリは、第1のデータパケットとマッチするフローエントリのうち少なくとも1つを含む、ステップと、
スイッチが、ソフトウェアフローテーブルから、第1のデータパケットとマッチする第1のフローエントリを取得し、第1のフローエントリのアクション値に従って第1のデータパケットを処理し、予め構成されたサービスパスにおいて、第1のフローエントリとマッチする第1の目標サービスパスを決定するステップであって、決定された第1の目標サービスパスのマッチフィールドは、第1のフローエントリのマッチフィールド値に対応するマッチフィールドのうち入力ポートマッチフィールド及びパケットヘッダマッチフィールドを含み、第1の目標サービスパスのアクションは、第1のフローエントリのアクション値のうち第1のデータパケットの処理に用いられるアクション値に対応するアクションを含む、ステップと、
スイッチが、第1の目標サービスパスと第1のハードウェアフローテーブルとの予め構成された対応関係に従って、第1の目標サービスパスに対応する第1のハードウェアフローテーブルを決定するステップであって、第1の目標サービスパスに対応する第1のハードウェアフローテーブルは、第1の目標サービスパスによってサポートされるサービスをサポートする、ステップと、
スイッチが、第1のフローエントリに従って、第1のハードウェアフローテーブルのフローエントリを構成するステップと、
を含む。
第1の態様の第1の可能な実施方式では、スイッチによってレポートされる複数のOpenFlowフローテーブルのマッチフィールドは全てOpenFlowプロトコルがサポートするマッチフィールドであり、スイッチによってレポートされる複数のOpenFlowフローテーブルのアクションは全てOpenFlowプロトコルがサポートするアクションである。
第1の態様又は第1の態様の第1の可能な実施方式に関して、第2の可能な実施方式では、予め構成されたサービスパスにおいて、第1のフローエントリとマッチする第1の目標サービスパスを決定するステップは、具体的には、
2つ以上の第1のフローエントリが存在する場合、第1のフローエントリを集約して複合フローエントリを生成し、ここで複合フローエントリに含まれるマッチフィールド値は、第1のフローエントリのマッチフィールド値のうち入力ポートマッチフィールド及びパケットヘッダマッチフィールドに対応するマッチフィールド値であり、複合フローエントリに含まれるアクション値は、第1のフローエントリのアクション値のうち第1のデータパケットの処理に用いられるアクション値であり、且つ、予め構成されたサービスパスにおいて、マッチフィールドが複合フローエントリのマッチフィールド値に対応するマッチフィールドを含み且つアクションが複合フローエントリのアクション値に対応するアクションを含む1つのサービスパスを、第1の目標サービスパスとして決定するステップと、
1つの第1のフローエントリが存在する場合、予め構成されたサービスパスにおいて、マッチフィールドが第1のフローエントリのマッチフィールド値に対応するマッチフィールドを含み且つアクションが第1のフローエントリのアクション値に対応するアクションを含む1つのサービスパスを、第1の目標サービスパスとして決定するステップと、
を含む。
第1の態様又は第1の態様の第1若しくは第2の可能な実施方式に関して、第3の可能な実施方式では、共通集合は更に、スイッチのハードウェアフローテーブルによってサポートされない第2のサービスの実施に用いられるマッチフィールド及びアクションを含み、データパケットについての情報は更に、第2のサービスの第2のデータパケットについての情報を含み、スイッチによりコントローラから受信されるフローエントリは更に、第2のデータパケットとマッチするフローエントリのうち少なくとも1つを含む。本方法は更に、
スイッチが、ソフトウェアフローテーブルから、第2のデータパケットとマッチする第2のフローエントリを取得し、第2のフローエントリのアクションに従って第2のデータパケットを処理するステップと、
を含む。
第1の態様の第3の可能な実施方式に関して、第4の可能な実施方式では、本方法は更に、
スイッチが、予め構成されたサービスパスにおいて、第2のフローエントリとマッチする第2の目標サービスパスを決定するステップであって、決定された第2の目標サービスパスのマッチフィールドは、第2のフローエントリのマッチフィールド値に対応するマッチフィールドのうち入力ポートマッチフィールド及びパケットヘッダマッチフィールドを含み、第2の目標サービスパスのアクションは、第2のフローエントリのアクション値のうち第2のデータパケットの処理に用いられるアクション値に対応するアクションを含む、ステップと、
スイッチが、第2のフローエントリに従って、第2の目標サービスパスに対応するサービスフローテーブルのサービスフローエントリを構成し、ここでサービスフローテーブルは完全マッチテーブルであり、サービスフローテーブルのマッチフィールドは全て第2の目標サービスパスのマッチフィールドであり、且つ、サービスフローエントリ中の第1のマッチフィールド値を、第1のフローエントリの対応するマッチフィールド値として構成し、サービスフローエントリ中の第2のマッチフィールド値を、第2のデータパケットのパケットヘッダの対応するヘッダフィールド値として構成し、サービスフローエントリ中のアクション値を第2のフローエントリのアクション値として構成するステップであって、第1のマッチフィールド値に対応するマッチフィールドは、第1のフローエントリ中のマッチフィールド値に対応するマッチフィールドに属し、第2のマッチフィールド値に対応するマッチフィールドは、第2のフローエントリ中のマッチフィールド値に対応するマッチフィールドに属さない、ステップと、
スイッチが、第2のサービスの後続のデータパケットを後で受信したとき、サービスフローテーブルにおいて後続のデータパケットとマッチするサービスフローエントリを検索し、発見されたサービスフローエントリのアクションに従って後続のデータパケットを処理するステップと、
を含む。
第1の態様又は第1の態様の第1〜第4の可能な実施方式のいずれか1つに関して、第5の可能な実施方式では、第1の目標サービスパスと第1のハードウェアフローテーブルとの予め構成された対応関係に従って、第1の目標サービスパスに対応する第1のハードウェアフローテーブルを決定するステップの前に、本方法は更に、サービスパスと対応するハードウェアフローテーブルとの対応関係を構成するステップであって、サービスパスは第1の目標サービスパスを含む、ステップを含む。具体的には、
複数の物理フローテーブルと、物理フローテーブルとハードウェアフローテーブルとの対応関係とを構成するステップであって、複数の物理フローテーブルはそれぞれ、サポートされるマッチフィールド及びアクションを含み、各物理フローテーブルのマッチフィールドは、対応するハードウェアフローテーブルのマッチフィールドに含まれ、各物理フローテーブルのアクションのうちハードウェアフローテーブルに書き込まれる必要のあるアクションは、対応するハードウェアフローテーブルのアクションに含まれる、ステップと、
サービスパスと物理フローテーブルとの対応関係を構成するステップであって、各サービスパスのマッチフィールドは、全ての対応する物理フローテーブルのマッチフィールドに含まれ、各サービスパスのアクションは、全ての対応する物理フローテーブルのアクションに含まれる、ステップと、
を含む。スイッチが、第1の目標サービスパスと第1のハードウェアフローテーブルとの予め構成された対応関係に従って、第1の目標サービスパスに対応する第1のハードウェアフローテーブルを決定するステップは、具体的には、
スイッチが、第1の目標サービスパスと対応する第1の物理フローテーブルとの対応関係に従って、第1の物理フローテーブルを決定し、第1の物理フローテーブルと対応する第1のハードウェアフローテーブルとの対応関係に従って、第1のハードウェアフローテーブルを決定するステップ、
を含む。
第2の態様は、フローエントリ構成の方法を提供する。本方法は、
通信装置が、オープンフロー(Openflow)プロトコルを用いて、フローテーブル構造をコントローラにレポートするステップであって、フローテーブル構造は、複数のOpenflowフローテーブルがサポートするマッチフィールド及びアクションと、複数のOpenFlowフローテーブルのタイプとを含み、複数のOpenFlowフローテーブルがサポートするマッチフィールド及びアクションには共通集合が存在し、共通集合は、ハードウェア転送チップのハードウェアフローテーブルによってサポートされる第1のサービスの実施に用いられるマッチフィールド及びアクションを含み、複数のOpenFlowフローテーブルのタイプは全てワイルドカードタイプであり、通信装置はハードウェア転送チップに接続される、ステップと、
通信装置が、コントローラがOpenFlowプロトコルを用いて送信したフローエントリを受信し、フローエントリをソフトウェアフローテーブル中に構成するであって、フローエントリは、コントローラによりフローテーブル構造と通信装置によってレポートされたデータパケットについての情報とに従って生成され、データパケットについての情報は第1のサービスの第1のデータパケットについての情報を含み、フローエントリは、第1のデータパケットとマッチするフローエントリのうち少なくとも1つを含む、ステップと、
通信装置が、ソフトウェアフローテーブルから、第1のデータパケットとマッチする第1のフローエントリを取得し、第1のフローエントリのアクション値に従って第1のデータパケットを処理し、予め構成されたサービスパスにおいて、第1のフローエントリとマッチする第1の目標サービスパスを決定するステップであって、決定された第1の目標サービスパスのマッチフィールドは、第1のフローエントリのマッチフィールド値に対応するマッチフィールドのうち入力ポートマッチフィールド及びパケットヘッダマッチフィールドを含み、第1の目標サービスパスのアクションは、第1のフローエントリのアクション値のうち第1のデータパケットの処理に用いられるアクション値に対応するアクションを含む、ステップと、
通信装置が、第1の目標サービスパスとハードウェア転送チップの第1のハードウェアフローテーブルとの予め構成された対応関係に従って、第1の目標サービスパスに対応する第1のハードウェアフローテーブルを決定するステップであって、第1の目標サービスパスに対応する第1のハードウェアフローテーブルは、第1の目標サービスパスによってサポートされるサービスをサポートする、ステップと、
通信装置が、第1のフローエントリに従って、第1のハードウェアフローテーブルのフローエントリを構成するステップと、
を含む。
第2の態様の第1の可能な実施方式では、通信装置によってレポートされる複数のOpenflowフローテーブルのマッチフィールドは全てOpenFlowプロトコルがサポートするマッチフィールドであり、通信装置によってレポートされる複数のOpenFlowフローテーブルのアクションは全てOpenFlowプロトコルがサポートするアクションである。
第2の態様又は第2の態様の第1の可能な実施方式に関して、第2の可能な実施方式では、予め構成されたサービスパスにおいて、第1のフローエントリとマッチする第1の目標サービスパスを決定するステップは、具体的には、
2つ以上の第1のフローエントリが存在する場合、第1のフローエントリを集約して複合フローエントリを生成し、ここで複合フローエントリに含まれるマッチフィールド値は、第1のフローエントリのマッチフィールド値のうち入力ポートマッチフィールド及びパケットヘッダマッチフィールドに対応するマッチフィールド値であり、複合フローエントリに含まれるアクション値は、第1のフローエントリのアクション値のうち第1のデータパケットの処理に用いられるアクション値であり、且つ、予め構成されたサービスパスにおいて、マッチフィールドが複合フローエントリのマッチフィールド値に対応するマッチフィールドを含み且つアクションが複合フローエントリのアクション値に対応するアクションを含む1つのサービスパスを、第1の目標サービスパスとして決定するステップと、
1つの第1のフローエントリが存在する場合、予め構成されたサービスパスにおいて、マッチフィールドが第1のフローエントリのマッチフィールド値に対応するマッチフィールドを含み且つアクションが第1のフローエントリのアクション値に対応するアクションを含む1つのサービスパスを、第1の目標サービスパスとして決定するステップと、
を含む。
第2の態様又は第2の態様の第1若しくは第2の可能な実施方式に関して、第3の可能な実施方式では、共通集合は更に、ハードウェア転送チップのハードウェアフローテーブルによってサポートされない第2のサービスの実施に用いられるマッチフィールド及びアクションを含み、データパケットについての情報は更に、第2のサービスの第2のデータパケットについての情報を含み、通信装置によりコントローラから受信されるフローエントリは更に、第2のデータパケットとマッチするフローエントリのうち少なくとも1つを含む、本方法は更に、
通信装置が、ソフトウェアフローテーブルから、第2のデータパケットとマッチする第2のフローエントリを取得し、第2のフローエントリのアクションに従って第2のデータパケットを処理するステップ、
を含む。
第2の態様の第3の可能な実施方式に関して、第4の可能な実施方式では、本方法は更に、
通信装置が、予め構成されたサービスパスにおいて、第2のフローエントリとマッチする第2の目標サービスパスを決定するステップであって、決定された第2の目標サービスパスのマッチフィールドは、第2のフローエントリのマッチフィールド値に対応するマッチフィールドのうち入力ポートマッチフィールド及びパケットヘッダマッチフィールドを含み、第2の目標サービスパスのアクションは、第2のフローエントリのアクション値のうち第2のデータパケットの処理に用いられるアクション値に対応するアクションを含む、ステップと、
通信装置が、第2のフローエントリに従って、第2の目標サービスパスに対応するサービスフローテーブルのサービスフローエントリを構成し、ここでサービスフローテーブルは完全マッチテーブルであり、サービスフローテーブルのマッチフィールドは全て第2の目標サービスパスのマッチフィールドであり、且つ、サービスフローエントリ中の第1のマッチフィールド値を、第1のフローエントリの対応するマッチフィールド値として構成し、サービスフローエントリ中の第2のマッチフィールド値を、第2のデータパケットのパケットヘッダの対応するヘッダフィールド値として構成し、サービスフローエントリ中のアクション値を第2のフローエントリのアクション値として構成するステップであって、第1のマッチフィールド値に対応するマッチフィールドは、第1のフローエントリ中のマッチフィールド値に対応するマッチフィールドに属し、第2のマッチフィールド値に対応するマッチフィールドは、第2のフローエントリ中のマッチフィールド値に対応するマッチフィールドに属さない、ステップと、
通信装置が、第2のサービスの後続のデータパケットを後で受信したとき、サービスフローテーブルにおいて後続のデータパケットとマッチするサービスフローエントリを検索し、発見されたサービスフローエントリのアクションに従って後続のデータパケットを処理するステップと、
を含む。
第2の態様又は第2の態様の第1〜第4の可能な実施方式のうちいずれか1つに関して、第5の可能な実施方式では、第1の目標サービスパスと第1のハードウェアフローテーブルとの予め構成された対応関係に従って、第1の目標サービスパスに対応する第1のハードウェアフローテーブルを決定するステップの前に、本方法は更に、サービスパスと対応するハードウェアフローテーブルとの対応関係を構成するステップであって、サービスパスは第1の目標サービスパスを含む、ステップを含む。具体的には、
複数の物理フローテーブルと、物理フローテーブルとハードウェアフローテーブルとの対応関係とを構成するステップであって、複数の物理フローテーブルはそれぞれ、サポートされるマッチフィールド及びアクションを含み、各物理フローテーブルのマッチフィールドは、対応するハードウェアフローテーブルのマッチフィールドに含まれ、各物理フローテーブルのアクションのうちハードウェアフローテーブルに書き込まれる必要のあるアクションは、対応するハードウェアフローテーブルのアクションに含まれる、ステップと、
サービスパスと物理フローテーブルとの対応関係を構成するステップであって、各サービスパスのマッチフィールドは、全ての対応する物理フローテーブルのマッチフィールドに含まれ、各サービスパスのアクションは、全ての対応する物理フローテーブルのアクションに含まれる、ステップと、
を含む。通信装置が、第1の目標サービスパスと第1のハードウェアフローテーブルとの予め構成された対応関係に従って、第1の目標サービスパスに対応する第1のハードウェアフローテーブルを決定するステップは、具体的には、
通信装置が、第1の目標サービスパスと対応する第1の物理フローテーブルとの対応関係に従って、第1の物理フローテーブルを決定し、第1の物理フローテーブルと対応する第1のハードウェアフローテーブルとの対応関係に従って、第1のハードウェアフローテーブルを決定するステップ、
を含む。
第3の態様は、フローエントリ構成を実施する通信装置を提供する。本通信装置はハードウェア転送チップに接続され、オープンフロー(OpenFlow)プロトコルを用いてコントローラと通信し、インタフェースユニット、ソフトウェアフローテーブル構成ユニット、データパケット処理ユニット及びハードウェアフローテーブル構成ユニットを備える。ここで、
インタフェースユニットは、フローテーブル構造をコントローラにレポートするように構成され、フローテーブル構造は、複数のOpenFlowフローテーブルがサポートするマッチフィールド及びアクションと、複数のOpenFlowフローテーブルのタイプとを含み、複数のOpenFlowフローテーブルがサポートするマッチフィールド及びアクションには共通集合が存在し、共通集合は、ハードウェア転送チップのハードウェアフローテーブルによってサポートされる第1のサービスの実施に用いられるマッチフィールド及びアクションを含み、複数のOpenFlowフローテーブルのタイプは全てワイルドカードタイプであり、更に、データパケットについての情報をコントローラにレポートし、コントローラによって送信されたフローエントリを受信するように構成され、フローエントリは、コントローラによりフローテーブル構造とデータパケットについての情報とに従って生成され、データパケットについての情報は第1のサービスの第1のデータパケットについての情報を含み、フローエントリは、第1のデータパケットとマッチするフローエントリのうち少なくとも1つを含み、
ソフトウェアフローテーブル構成ユニットは、インタフェースユニットによって受信されたフローエントリをソフトウェアフローテーブル中に構成するように構成され、
データパケット処理ユニットは、ソフトウェアフローテーブルから、第1のデータパケットとマッチする第1のフローエントリを取得し、第1のフローエントリのアクション値に従って第1のデータパケットを処理し、予め構成されたサービスパスにおいて、第1のフローエントリとマッチする第1の目標サービスパスを決定するように構成され、決定された第1の目標サービスパスのマッチフィールドは、第1のフローエントリのマッチフィールド値に対応するマッチフィールドのうち入力ポートマッチフィールド及びパケットヘッダマッチフィールドを含み、第1の目標サービスパスのアクションは、第1のフローエントリのアクション値のうち第1のデータパケットの処理に用いられるアクション値に対応するアクションを含み、データパケット処理ユニットは、第1の目標サービスパスとハードウェア転送チップの第1のハードウェアフローテーブルとの予め構成された対応関係に従って、第1の目標サービスパスに対応する第1のハードウェアフローテーブルを決定するように構成され、第1の目標サービスパスに対応する第1のハードウェアフローテーブルは、第1の目標サービスパスによってサポートされるサービスをサポートし、
ハードウェアフローテーブル構成ユニットは、第1のフローエントリに従って、第1のハードウェアフローテーブルのフローエントリを構成するように構成される。
第3の態様の第1の可能な実施方式では、インタフェースユニットによってレポートされる複数のOpenFlowフローテーブルのマッチフィールドは全てOpenFlowプロトコルがサポートするマッチフィールドであり、インタフェースユニットによってレポートされる複数のOpenFlowフローテーブルのアクションは全てOpenFlowプロトコルがサポートするアクションである。
第3の態様又は第1の態様の第3の可能な実施方式に関して、第2の可能な実施方式では、データパケット処理ユニットが、予め構成されたサービスパスにおいて、第1のフローエントリとマッチする目標サービスパスを決定するように構成されることは、具体的には、
データパケット処理ユニットが、2つ以上の第1のフローエントリが存在する場合、第1のフローエントリを集約して複合フローエントリを生成し、ここで複合フローエントリに含まれるマッチフィールド値は、第1のフローエントリのマッチフィールド値のうち入力ポートマッチフィールド及びパケットヘッダマッチフィールドに対応するマッチフィールド値であり、複合フローエントリに含まれるアクション値は、第1のフローエントリのアクション値のうち第1のデータパケットの処理に用いられるアクション値であり、且つ、予め構成されたサービスパスにおいて、マッチフィールドが複合フローエントリのマッチフィールド値に対応するマッチフィールドを含み且つアクションが複合フローエントリのアクション値に対応するアクションを含む1つのサービスパスを、第1の目標サービスパスとして決定するように構成されることを含む。データパケット処理ユニットは、1つの第1のフローエントリが存在する場合、予め構成されたサービスパスにおいて、マッチフィールドが第1のフローエントリのマッチフィールド値に対応するマッチフィールドを含み且つアクションが第1のフローエントリのアクション値に対応するアクションを含む1つのサービスパスを、第1の目標サービスパスとして決定するように構成される。
第3の態様又は第3の態様の第1若しくは第2の可能な実施方式に関して、第3の可能な実施方式では、共通集合は更に、ハードウェア転送チップのハードウェアフローテーブルによってサポートされない第2のサービスの実施に用いられるマッチフィールド及びアクションを含み、データパケットについての情報は更に、第2のサービスの第2のデータパケットについての情報を含み、インタフェースユニットによりコントローラから受信されたフローエントリは更に、第2のデータパケットとマッチするフローエントリのうち少なくとも1つを含み、
データパケット処理ユニットは更に、ソフトウェアフローテーブルから第2のデータパケットとマッチする第2のフローエントリを取得するとき、第2のフローエントリのアクションに従って第2のデータパケットを処理するように構成される。
第3の態様の第3の可能な実施方式に関して、第4の可能な実施方式では、通信装置は更に、サービスフローテーブル構成ユニットを備える。ここで、
データパケット処理ユニットは更に、予め構成されたサービスパスにおいて、第2のフローエントリとマッチする第2の目標サービスパスを決定するように構成され、決定された第2の目標サービスパスのマッチフィールドは、第2のフローエントリのマッチフィールド値に対応するマッチフィールドのうち入力ポートマッチフィールド及びパケットヘッダマッチフィールドを含み、第2の目標サービスパスのアクションは、第2のフローエントリのアクション値のうち第2のデータパケットの処理に用いられるアクション値に対応するアクションを含み、
サービスフローテーブル構成ユニットは、第2のフローエントリに従って、第2の目標サービスパスに対応するサービスフローテーブルのサービスフローエントリを構成するように構成され、サービスフローテーブルは完全マッチテーブルであり、サービスフローテーブルのマッチフィールドは全て第2の目標サービスパスのマッチフィールドであり、また、サービスフローエントリ中の第1のマッチフィールド値を、第1のフローエントリの対応するマッチフィールド値として構成し、サービスフローエントリ中の第2のマッチフィールド値を、第2のデータパケットのパケットヘッダの対応するヘッダフィールド値として構成し、サービスフローエントリ中のアクション値を、第2のフローエントリのアクション値として構成するように構成され、第1のマッチフィールド値に対応するマッチフィールドは、第1のフローエントリ中のマッチフィールド値に対応するマッチフィールドに属し、第2のマッチフィールド値に対応するマッチフィールドは、第2のフローエントリ中のマッチフィールド値に対応するマッチフィールドに属さず、
データパケット処理ユニットは更に、第2のサービスの後続のデータパケットを後で受信したとき、サービスフローテーブルにおいて後続のデータパケットとマッチするサービスフローエントリを検索し、発見されたサービスフローエントリのアクションに従って、後続のデータパケットを処理するように構成される。
第3の態様又は第3の態様の第1〜第4の可能な実施方式のうちいずれか1つに関して、第5の可能な実施方式では、通信装置は更に、対応関係構成ユニットを備える。ここで、
対応関係構成ユニットは、サービスパスと対応するハードウェアフローテーブルとの対応関係を構成するように構成され、サービスパスは第1の目標サービスパスを含む。具体的には、対応関係構成ユニットが、複数の物理フローテーブルと、物理フローテーブルとハードウェアフローテーブルとの対応関係とを構成するように構成されることを含む。複数の物理フローテーブルはそれぞれ、サポートされるマッチフィールド及びアクションを含み、各物理フローテーブルのマッチフィールドは、対応するハードウェアフローテーブルのマッチフィールドに含まれ、各物理フローテーブルのアクションのうちハードウェアフローテーブルに書き込まれる必要のあるアクションは、対応するハードウェアフローテーブルのアクションに含まれる。対応関係構成ユニットは、サービスパスと物理フローテーブルとの対応関係を構成するように構成される。各サービスパスのマッチフィールドは、全ての対応する物理フローテーブルのマッチフィールドに含まれ、各サービスパスのアクションは、全ての対応する物理フローテーブルのアクションに含まれる。また、
データパケット処理ユニットが、第1の目標サービスパスと第1のハードウェアフローテーブルとの予め構成された対応関係に従って、第1の目標サービスパスに対応する第1のハードウェアフローテーブルを決定するように構成されることを含む。具体的には、データパケット処理ユニットが、第1の目標サービスパスと対応する第1の物理フローテーブルとの対応関係に従って、第1の物理フローテーブルを決定し、第1の物理フローテーブルと対応する第1のハードウェアフローテーブルとの対応関係に従って、第1のハードウェアフローテーブルを決定するように構成されることを含む。
第4の態様は、フローエントリ構成を実施する通信装置を提供する。本装置は、プロセッサ及びメモリを備え、
メモリは、コンピュータ操作命令を記憶するように構成され、
プロセッサは、メモリに記憶されたコンピュータ操作命令を実行して、通信装置が、
オープンフロー(OpenFlow)プロトコルを用いて、フローテーブル構造をコントローラにレポートするステップであって、フローテーブル構造は、複数のOpenFlowフローテーブルがサポートするマッチフィールド及びアクションと、複数のOpenFlowフローテーブルのタイプとを含み、複数のOpenFlowフローテーブルがサポートするマッチフィールド及びアクションには共通集合が存在し、共通集合は、ハードウェア転送チップのハードウェアフローテーブルによってサポートされる第1のサービスの実施に用いられるマッチフィールド及びアクションを含み、複数のOpenFlowフローテーブルのタイプは全てワイルドカードタイプであり、通信装置はハードウェア転送チップに接続される、ステップと、
フローテーブル構造に従って生成されコントローラによりOpenFlowプロトコルを用いて送信されたフローエントリを受信し、フローエントリをソフトウェアフローテーブル中に構成するステップであって、フローエントリは、コントローラによりフローテーブル構造と通信装置によってレポートされたデータパケットについての情報とに従って生成され、データパケットについての情報は第1のサービスの第1のデータパケットについての情報を含み、フローエントリは、第1のデータパケットとマッチするフローエントリのうち少なくとも1つを含む、ステップと、
ソフトウェアフローテーブルから、第1のデータパケットとマッチする第1のフローエントリを取得し、第1のフローエントリのアクション値に従って第1のデータパケットを処理し、予め構成されたサービスパスにおいて、第1のフローエントリとマッチする第1の目標サービスパスを決定するステップであって、決定された第1の目標サービスパスのマッチフィールドは、第1のフローエントリのマッチフィールド値に対応するマッチフィールドのうち入力ポートマッチフィールド及びパケットヘッダマッチフィールドを含み、第1の目標サービスパスのアクションは、第1のフローエントリのアクション値のうち第1のデータパケットの処理に用いられるアクション値に対応するアクションを含む、ステップと、
第1の目標サービスパスとハードウェア転送チップの第1のハードウェアフローテーブルとの予め構成された対応関係に従って、第1の目標サービスパスに対応する第1のハードウェアフローテーブルを決定するステップであって、第1の目標サービスパスに対応する第1のハードウェアフローテーブルは、第1の目標サービスパスによってサポートされるサービスをサポートする、ステップと、
第1のフローエントリに従って、第1のハードウェアフローテーブルのフローエントリを構成するステップと、
を実施するように構成される。
第4の態様の第1の可能な実施方式では、プロセッサはコンピュータ操作命令を実行する。具体的には、通信装置によってレポートされる複数のOpenFlowフローテーブルのマッチフィールドは全てOpenFlowプロトコルがサポートするマッチフィールドであり、レポートされる複数のOpenFlowフローテーブルのアクションは、全てOpenFlowプロトコルがサポートするアクションである。
第4の態様又は第4の態様の第1の可能な実施方式に関して、第2の可能な実施方式では、プロセッサはコンピュータ操作命令を実行して、通信装置が、具体的には、
2つ以上の第1のフローエントリが存在する場合、第1のフローエントリを集約して複合フローエントリを生成し、ここで複合フローエントリに含まれるマッチフィールド値は、第1のフローエントリのマッチフィールド値のうち入力ポートマッチフィールド及びパケットヘッダマッチフィールドに対応するマッチフィールド値であり、複合フローエントリに含まれるアクション値は、第1のフローエントリのアクション値のうち第1のデータパケットの処理に用いられるアクション値であり、且つ、予め構成されたサービスパスにおいて、マッチフィールドが複合フローエントリのマッチフィールド値に対応するマッチフィールドを含み且つアクションが複合フローエントリのアクション値に対応するアクションを含む1つのサービスパスを、第1の目標サービスパスとして決定するステップと、
1つの第1のフローエントリが存在する場合、予め構成されたサービスパスにおいて、マッチフィールドが第1のフローエントリのマッチフィールド値に対応するマッチフィールドを含み且つアクションが第1のフローエントリのアクション値に対応するアクションを含む1つのサービスパスを、第1の目標サービスパスとして決定するステップと、
を実施するようにする。
第4の態様又は第4の態様の第1若しくは第2の可能な実施方式に関して、第3の可能な実施方式では、共通集合は更に、ハードウェア転送チップのハードウェアフローテーブルによってサポートされない第2のサービスの実施に用いられるマッチフィールド及びアクションを含み、データパケットについての情報は更に、第2のサービスの第2のデータパケットについての情報を含み、コントローラから受信されるフローエントリは更に、第2のデータパケットとマッチするフローエントリのうち少なくとも1つを含み、
プロセッサはコンピュータ操作命令を実行して、通信装置が更に、ソフトウェアフローテーブルから、第2のデータパケットとマッチする第2のフローエントリを取得し、第2のフローエントリのアクションに従って第2のデータパケットを処理するステップ、を実施するようにする。
第3の態様の第4の可能な実施方式に関して、第4の可能な実施方式では、プロセッサはコンピュータ操作命令を実行して、通信装置が更に、
予め構成されたサービスパスにおいて、第2のフローエントリとマッチする第2の目標サービスパスを決定するステップであって、決定された第2の目標サービスパスのマッチフィールドは、第2のフローエントリのマッチフィールド値に対応するマッチフィールドのうち入力ポートマッチフィールド及びパケットヘッダマッチフィールドを含み、第2の目標サービスパスのアクションは、第2のフローエントリのアクション値のうち第2のデータパケットの処理に用いられるアクション値に対応するアクションを含む、ステップと、
第2のフローエントリに従って、第2の目標サービスパスに対応するサービスフローテーブルのサービスフローエントリを構成し、ここでサービスフローテーブルは完全マッチテーブルであり、サービスフローテーブルのマッチフィールドは全て第2の目標サービスパスのマッチフィールドであり、また、サービスフローエントリ中の第1のマッチフィールド値を、第1のフローエントリの対応するマッチフィールド値として構成し、サービスフローエントリ中の第2のマッチフィールド値を、第2のデータパケットのパケットヘッダの対応するヘッダフィールド値として構成し、サービスフローエントリ中のアクション値を第2のフローエントリのアクション値として構成するステップであって、第1のマッチフィールド値に対応するマッチフィールドは、第1のフローエントリ中のマッチフィールド値に対応するマッチフィールドに属し、第2のマッチフィールド値に対応するマッチフィールドは、第2のフローエントリ中のマッチフィールド値に対応するマッチフィールドに属さない、ステップと、
第2のサービスの後続のデータパケットを後で受信したとき、サービスフローテーブルにおいて後続のデータパケットとマッチするサービスフローエントリを検索し、発見されたサービスフローエントリのアクションに従って後続のデータパケットを処理するステップと、
を実施するようにする。
第4の態様又は第4の態様の第1〜第4の可能な実施方式のうちいずれか1つに関して、第5の可能な実施方式では、プロセッサはコンピュータ操作命令を実行して、通信装置が更に、サービスパスと対応するハードウェアフローテーブルとの対応関係を構成するステップであって、サービスパスは第1の目標サービスパスを含む、ステップ、を実施するようにする。具体的には、
複数の物理フローテーブルと、物理フローテーブルとハードウェアフローテーブルとの対応関係とを構成するステップであって、複数の物理フローテーブルはそれぞれ、サポートされるマッチフィールド及びアクションを含み、各物理フローテーブルのマッチフィールドは、対応するハードウェアフローテーブルのマッチフィールドに含まれ、各物理フローテーブルのアクションのうちハードウェアフローテーブルに書き込まれる必要のあるアクションは、対応するハードウェアフローテーブルのアクションに含まれる、ステップと、
サービスパスと物理フローテーブルとの対応関係を構成するステップであって、各サービスパスのマッチフィールドは、全ての対応する物理フローテーブルのマッチフィールドに含まれ、各サービスパスのアクションは、全ての対応する物理フローテーブルのアクションに含まれる、ステップと、
を含む。プロセッサはコンピュータ操作命令を実行して、通信装置が、第1の目標サービスパスと第1のハードウェアフローテーブルとの予め構成された対応関係に従って、第1の目標サービスパスに対応する第1のハードウェアフローテーブルを決定することは、具体的には、
プロセッサはコンピュータ操作命令を実行して、通信装置が、具体的には、第1の目標サービスパスと対応する第1の物理フローテーブルとの対応関係に従って、第1の物理フローテーブルを決定し、第1の物理フローテーブルと対応する第1のハードウェアフローテーブルとの対応関係に従って、第1のハードウェアフローテーブルを決定することを含む。
第5の態様は、フローエントリ構成方法を提供する。本方法は、
スイッチが、第1のサービスのデータパケットについての情報をコントローラにレポートするステップと、
スイッチが、コントローラが第1のサービスのデータパケットについての情報とフローテーブル構造とに従って送出した第1のサービスのフローエントリを受信するステップであって、フローテーブル構造は、複数のフローテーブルによってサポートされるマッチフィールド及びアクションを含み、複数のフローテーブルの各々がサポートするマッチフィールドは、第1のサービスのマッチフィールドを含み、複数のフローテーブルの各々がサポートするアクションは第1のサービスのアクションを含む、ステップと、
スイッチが、予め構成されたサービスパスにおいて、第1のサービスのフローエントリとマッチする第1の目標サービスパスを決定するステップであって、第1の目標サービスパスのマッチフィールドは第1のサービスのマッチフィールドを含み、目標サービスパスのアクションは第1のサービスのアクションを含む、ステップと、
スイッチが、サービスパスとスイッチのハードウェアフローテーブルとの予め構成された対応関係に従って、目標ハードウェアフローテーブルを決定するステップであって、目標ハードウェアフローテーブルは、第1の目標サービスパスによってサポートされるサービスをサポートする、ステップと、
スイッチが、第1のサービスのフローエントリに従って、目標ハードウェアフローテーブルのフローエントリを構成するステップと、
を含む。
第5の態様の第1の可能な実施方式では、スイッチは、オープンフロー(OpenFlow)プロトコルを用いてコントローラと通信し、複数のフローテーブルはOpenflowフローテーブルである。
第5の態様の第1の可能な実施方式に関して、第2の可能な実施方式では、複数のフローテーブルのマッチフィールドは全てOpenFlowプロトコルがサポートするマッチフィールドであり、複数のフローテーブルのアクションは全てOpenFlowプロトコルがサポートするアクションである。
第5の態様又は第5の態様の第1の若しくは第2の可能な実施方式に関して、第3の可能な実施方式では、スイッチが、予め構成されたサービスパスにおいて、第1のサービスのフローエントリとマッチする第1の目標サービスパスを決定するステップは、具体的には、
スイッチが、第1のサービスのフローエントリをソフトウェアフローテーブル中に構成するステップと、
スイッチが、ソフトウェアフローテーブルから、第1のサービスのデータパケットとマッチする第1の目標フローエントリを取得し、予め構成されたサービスパスにおいて、第1の目標フローエントリとマッチする第1の目標サービスパスを決定するステップであって、決定された第1の目標サービスパスのマッチフィールドは、第1の目標フローエントリのマッチフィールド値に対応するマッチフィールドのうち入力ポートマッチフィールド及びパケットヘッダマッチフィールドを含み、決定された第1の目標サービスパスのアクションは、第1の目標フローエントリのアクション値のうち第1のサービスのデータパケットの処理に用いられるアクションを含む、ステップと、
を含む。スイッチが、第1のサービスのフローエントリに従って、目標ハードウェアフローテーブルのフローエントリを構成するステップは、具体的には、
スイッチが、第1の目標フローエントリに従って、目標ハードウェアフローテーブルのフローエントリを構成するステップ、
を含む。
第5の態様の第3の可能な実施方式に関して、第4の可能な実施方式では、予め構成されたサービスパスにおいて、第1の目標フローエントリとマッチする第1の目標サービスパスを決定するステップは、具体的には、
2つ以上の第1のターゲットフローエントリが存在する場合、第1のターゲットフローエントリを集約して複合フローエントリを生成し、ここで複合フローエントリのマッチフィールド値は、第1のターゲットフローエントリにおいて入力ポートマッチフィールド及びパケットヘッダマッチフィールドに対応するマッチフィールド値であり、複合フローエントリのアクション値は、第1のターゲットフローエントリにおいて第1のサービスのデータパケットの処理に用いられるアクション値であり、且つ、予め構成されたサービスパスにおいて、複合フローエントリのマッチフィールド値に対応するマッチフィールドを含み且つ複合フローエントリのアクション値に対応するアクションを含む1つのサービスパスを、第1の目標サービスパスとして決定するステップと、
1つの第1の目標フローエントリが存在する場合、予め構成されたサービスパスにおいて、第1の目標フローエントリのマッチフィールド値に対応するマッチフィールドを含み且つ第1の目標フローエントリのアクション値に対応するアクションを含む1つのサービスパスを、第1の目標サービスパスとして決定するステップと、
を含む。
第5の態様又は第5の態様の第1〜第4の可能な実施方式のうちいずれか1つに関して、第5の可能な実施方式では、複数のフローテーブルの各々がサポートするマッチフィールド及びアクションは更に、第2のサービスのマッチフィールド及びアクションを含み、第2のサービスは、スイッチのハードウェアフローテーブルがサポートしないサービスである。本方法は更に、
スイッチが、第2のサービスのデータパケットについての情報をコントローラにレポートするステップと、
スイッチが、コントローラが第2のサービスのデータパケットについての情報とフローテーブル構造とに従って送出した第2のサービスのフローエントリを受信し、第2のサービスのフローエントリをソフトウェアフローテーブル中に構成するステップと、
を含む。
第5の態様の第5の可能な実施方式に関して、第6の可能な実施方式では、第2のサービスのフローエントリをソフトウェアフローテーブル中に構成するステップの後に、本方法は更に、
スイッチが、ソフトウェアフローテーブルから、第2のサービスのデータパケットとマッチする第2の目標フローエントリを取得するステップと、
スイッチが、予め構成されたサービスパスにおいて、第2の目標フローエントリとマッチする第2の目標サービスパスを決定するステップであって、決定された第2の目標サービスパスのマッチフィールドは、第2の目標フローエントリのマッチフィールド値に対応するマッチフィールドのうち入力ポートマッチフィールド及びパケットヘッダマッチフィールドを含み、決定された第2の目標サービスパスのアクションは、第2の目標フローエントリのアクション値のうち第2のサービスのデータパケットの処理に用いられるアクションを含む、ステップと、
スイッチが、第2の目標フローエントリに従って、第2の目標サービスパスに対応するサービスフローテーブルのサービスフローエントリを構成し、ここでサービスフローテーブルは完全マッチテーブルであり、サービスフローテーブルのマッチフィールドは全て第2の目標サービスパスのマッチフィールドであり、また、サービスフローエントリ中の第1のマッチフィールド値を第2の目標フローエントリ中のマッチフィールド値に構成し、サービスフローエントリ中の第2のマッチフィールド値を、第2のサービスのデータパケットのパケットヘッダのヘッダフィールド値に構成し、サービスフローエントリ中のアクション値を第2の目標フローエントリのアクション値に構成するステップであって、第1のマッチフィールド値に対応するマッチフィールドは、第2のフローエントリ中のマッチフィールド値に対応するマッチフィールドに属し、第2のマッチフィールド値に対応するマッチフィールドは、第2のフローエントリ中のマッチフィールド値に対応するマッチフィールドに属さない、ステップと、
スイッチが、第2のサービスの後続のデータパケットを後で受信したとき、サービスフローテーブルにおいて後続のデータパケットとマッチするサービスフローエントリを検索し、発見されたサービスフローエントリのアクションに従って後続のデータパケットを処理するステップと、
を含む。
第5の態様又は第5の態様の第1〜第6の可能な実施方式のうちいずれか1つに関して、第7の可能な実施方式では、サービスパスとハードウェアフローテーブルとの予め構成された対応関係に従って目標ハードウェアフローテーブルを決定するステップの前に、本方法は更に、サービスパスと対応するハードウェアフローテーブルとの対応関係を構成するステップ、を含む。具体的には、
複数の物理フローテーブルと、物理フローテーブルとハードウェアフローテーブルとの対応関係とを構成するステップであって、複数の物理フローテーブルはそれぞれ、サポートされるマッチフィールド及びアクションを含み、各物理フローテーブルのマッチフィールドは、対応するハードウェアフローテーブルのマッチフィールドに含まれ、各物理フローテーブルのアクションのうちハードウェアフローテーブルに書き込まれる必要のあるアクションは、対応するハードウェアフローテーブルのアクションに含まれる、ステップと、
サービスパスと物理フローテーブルとの対応関係を構成するステップであって、各サービスパスのマッチフィールドは、全ての対応する物理フローテーブルのマッチフィールドに含まれ、各サービスパスのアクションは、全ての対応する物理フローテーブルのアクションに含まれる、ステップと、
を含む。スイッチが、サービスパスとハードウェアフローテーブルとの予め構成された対応関係に従って目標ハードウェアフローテーブルを決定するステップは、具体的には、
スイッチが、第1の目標サービスパスと対応する第1の物理フローテーブルとの対応関係に従って、第1の物理フローテーブルを決定し、第1の物理フローテーブルと対応する目標ハードウェアフローテーブルとの対応関係に従って、目標ハードウェアフローテーブルを決定するステップ、
を含む。
第5の態様又は第5の態様の第1〜第7の可能な実施方式のうちいずれか1つに関して、第8の可能な実施方式では、スイッチが第1のサービスのデータパケットについての情報をコントローラにレポートするステップの前に、本方法は更に、スイッチが、フローテーブル構造をコントローラにレポートするステップ、を含む。
第5の態様又は第5の態様の第1〜第8の可能な実施方式のうちいずれか1つに関して、第9の可能な実施方式では、フローテーブル構造は更に、複数のフローテーブルのタイプを含み、複数のフローテーブルのタイプは、ワイルドカードタイプである。
第6の態様はフローエントリ構成方法を提供する。本方法は、
通信装置が、第1のサービスのデータパケットについての情報をコントローラに報告するステップと、
通信装置が、コントローラが第1のサービスのデータパケットについての情報とフローテーブル構造とに従って送出した第1のサービスのフローエントリを受信するステップであって、フローテーブル構造は、複数のフローテーブルによってサポートされるマッチフィールド及びアクションを含み、複数のフローテーブルの各々がサポートするマッチフィールドは、第1のサービスのマッチフィールドを含み、複数のフローテーブルの各々がサポートするアクションは第1のサービスのアクションを含む、ステップと、
通信装置が、予め構成されたサービスパスにおいて、第1のサービスのフローエントリとマッチする第1の目標サービスパスを決定するステップであって、第1の目標サービスパスのマッチフィールドは第1のサービスのマッチフィールドを含み、目標サービスパスのアクションは第1のサービスのアクションを含む、ステップと、
通信装置が、サービスパスと通信装置に接続されたハードウェア転送チップのハードウェアフローテーブルとの予め構成された対応関係に従って、目標ハードウェアフローテーブルを決定するステップであって、目標ハードウェアフローテーブルは、第1の目標サービスパスによってサポートされるサービスをサポートする、ステップと、
通信装置が、第1のサービスのフローエントリに従って、目標ハードウェアフローテーブルのフローエントリを構成するステップと、
を含む。
第6の態様の第1の可能な実施方式では、通信装置は、オープンフロー(OpenFlow)プロトコルを用いてコントローラと通信し、フローテーブルはOpenflowフローテーブルである。複数のフローテーブルのマッチフィールドは全てOpenFlowプロトコルがサポートするマッチフィールドであり、複数のフローテーブルのアクションは全てOpenFlowプロトコルがサポートするアクションである。
第6の態様又は第6の態様の第1の可能な実施方式に関して、第2の可能な実施方式では、通信装置が、予め構成されたサービスパスにおいて、第1のサービスのフローエントリとマッチする第1の目標サービスパスを決定するステップは、具体的には、
通信装置が、第1のサービスのフローエントリをソフトウェアフローテーブル中に構成するステップと、
通信装置が、ソフトウェアフローテーブルから、第1のサービスのデータパケットとマッチする第1の目標フローエントリを取得し、予め構成されたサービスパスにおいて、第1の目標フローエントリとマッチする第1の目標サービスパスを決定するステップであって、決定された第1の目標サービスパスのマッチフィールドは、第1の目標フローエントリのマッチフィールド値に対応するマッチフィールドのうち入力ポートマッチフィールド及びパケットヘッダマッチフィールドを含み、決定された第1の目標サービスパスのアクションは、第1の目標フローエントリのアクション値のうち第1のサービスのデータパケットの処理に用いられるアクションを含む、ステップと、
を含む。通信装置が、第1のサービスのフローエントリに従って、目標ハードウェアフローテーブルのフローエントリを構成するステップは、具体的には、通信装置が、第1の目標フローエントリに従って、目標ハードウェアフローテーブルのフローエントリを構成するステップ、を含む。
第6の態様の第2の可能な実施方式に関して、第3の可能な実施方式では、予め構成されたサービスパスにおいて、第1の目標フローエントリとマッチする第1の目標サービスパスを決定するステップは、具体的には、
2つ以上の第1のターゲットフローエントリが存在する場合、第1のターゲットフローエントリを集約して複合フローエントリを生成し、ここで複合フローエントリのマッチフィールド値は、第1のターゲットフローエントリにおいて入力ポートマッチフィールド及びパケットヘッダマッチフィールドに対応するマッチフィールド値であり、複合フローエントリのアクション値は、第1のターゲットフローエントリにおいて第1のサービスのデータパケットの処理に用いられるアクション値であり、且つ、予め構成されたサービスパスにおいて、複合フローエントリのマッチフィールド値に対応するマッチフィールドを含み且つ複合フローエントリのアクション値に対応するアクションを含む1つのサービスパスを、第1の目標サービスパスとして決定するステップと、
1つの第1の目標フローエントリが存在する場合、予め構成されたサービスパスにおいて、第1の目標フローエントリのマッチフィールド値に対応するマッチフィールドを含み且つ第1の目標フローエントリのアクション値に対応するアクションを含む1つのサービスパスを、第1の目標サービスパスとして決定するステップと、
を含む。
第6の態様又は第6の態様の第1〜第3の可能な実施方式のうちいずれか1つに関して、第4の可能な実施方式では、複数のフローテーブルの各々がサポートするマッチフィールド及びアクションは更に、第2のサービスのマッチフィールド及びアクションを含み、第2のサービスは、スイッチのハードウェアフローテーブルがサポートしないサービスである。本方法は更に、
通信装置が、第2のサービスのデータパケットについての情報をコントローラにレポートするステップと、
通信装置が、コントローラが第2のサービスのデータパケットについての情報とフローテーブル構造とに従って送出した第2のサービスのフローエントリを受信し、第2のサービスのフローエントリをソフトウェアフローテーブル中に構成するステップと、
を含む。
第6の態様の第4の可能な実施方式に関して、第5の可能な実施方式では、第2のサービスのフローエントリをソフトウェアフローテーブル中に構成するステップの後に、本方法は更に、
通信装置が、ソフトウェアフローテーブルから、第2のサービスのデータパケットとマッチする第2の目標フローエントリを取得するステップと、
通信装置が、予め構成されたサービスパスにおいて、第2の目標フローエントリとマッチする第2の目標サービスパスを決定するステップであって、決定された第2の目標サービスパスのマッチフィールドは、第2の目標フローエントリのマッチフィールド値に対応するマッチフィールドのうち入力ポートマッチフィールド及びパケットヘッダマッチフィールドを含み、決定された第2の目標サービスパスのアクションは、第2の目標フローエントリのアクション値のうち第2のサービスのデータパケットの処理に用いられるアクションを含む、ステップと、
通信装置が、第2の目標フローエントリに従って、第2の目標サービスパスに対応するサービスフローテーブルのサービスフローエントリを構成し、ここでサービスフローテーブルは完全マッチテーブルであり、サービスフローテーブルのマッチフィールドは全て第2の目標サービスパスのマッチフィールドであり、また、サービスフローエントリ中の第1のマッチフィールド値を第2の目標フローエントリ中のマッチフィールド値に構成し、サービスフローエントリ中の第2のマッチフィールド値を、第2のサービスのデータパケットのパケットヘッダのヘッダフィールド値に構成し、サービスフローエントリ中のアクション値を第2の目標フローエントリのアクション値に構成するステップであって、第1のマッチフィールド値に対応するマッチフィールドは、第2の目標フローエントリ中のマッチフィールド値に対応するマッチフィールドに属し、第2のマッチフィールド値に対応するマッチフィールドは、第2のフローエントリ中のマッチフィールド値に対応するマッチフィールドに属さない、ステップと、
通信装置が、第2のサービスの後続のデータパケットを後で受信したとき、サービスフローテーブルにおいて後続のデータパケットとマッチするサービスフローエントリを検索し、発見されたサービスフローエントリのアクションに従って後続のデータパケットを処理するステップと、
を含む。
第6の態様又は第6の態様の第1〜第5の可能な実施方式のうちいずれか1つに関して、第6の可能な実施方式では、サービスパスとハードウェアフローテーブルとの予め構成された対応関係に従って目標ハードウェアフローテーブルを決定するステップの前に、本方法は更に、サービスパスと対応するハードウェアフローテーブルとの対応関係を構成するステップ、を含む。具体的には、
複数の物理フローテーブルと、物理フローテーブルとハードウェアフローテーブルとの対応関係とを構成するステップであって、複数の物理フローテーブルはそれぞれ、サポートされるマッチフィールド及びアクションを含み、各物理フローテーブルのマッチフィールドは、対応するハードウェアフローテーブルのマッチフィールドに含まれ、各物理フローテーブルのアクションのうちハードウェアフローテーブルに書き込まれる必要のあるアクションは、対応するハードウェアフローテーブルのアクションに含まれる、ステップと、
サービスパスと物理フローテーブルとの対応関係を構成するステップであって、各サービスパスのマッチフィールドは、全ての対応する物理フローテーブルのマッチフィールドに含まれ、各サービスパスのアクションは、全ての対応する物理フローテーブルのアクションに含まれる、ステップと、
を含む。通信装置が、サービスパスとハードウェアフローテーブルとの予め構成された対応関係に従って目標ハードウェアフローテーブルを決定するステップは、具体的には、
通信装置が、第1の目標サービスパスと対応する第1の物理フローテーブルとの対応関係に従って、第1の物理フローテーブルを決定し、第1の物理フローテーブルと目標ハードウェアフローテーブルとの対応関係に従って、目標ハードウェアフローテーブルを決定するステップ、
を含む。
第6の態様又は第6の態様の第1〜第6の可能な実施方式のうちいずれか1つに関して、第7の可能な実施方式では、フローテーブル構造は更に、複数のフローテーブルのタイプを含み、複数のフローテーブルのタイプは、ワイルドカードタイプである。
第7の態様は、フローエントリ構成を実施する通信装置を提供する。通信装置はハードウェア転送チップに接続され、インタフェースユニット、データパケット処理ユニット及びハードウェアフローテーブル構成ユニットを備える。ここで、
インタフェースユニットは、第1のサービスのデータパケットについての情報をコントローラにレポートするように構成され、更に、コントローラが第1のサービスのデータパケットについての情報とフローテーブル構造とに従って送出した第1のサービスのフローエントリを受信するように構成され、フローテーブル構造は、複数のフローテーブルによってサポートされるマッチフィールド及びアクションを含み、複数のフローテーブルの各々がサポートするマッチフィールドは、第1のサービスのマッチフィールドを含み、複数のフローテーブルの各々がサポートするアクションは第1のサービスのアクションを含み、
データパケット処理ユニットは、予め構成されたサービスパスにおいて、第1のサービスのフローエントリとマッチする第1の目標サービスパスを決定するように構成され、第1の目標サービスパスのマッチフィールドは第1のサービスのマッチフィールドを含み、目標サービスパスのアクションは第1のサービスのアクションを含み、データパケット処理ユニットは、サービスパスとハードウェア転送チップのハードウェアフローテーブルとの予め構成された対応関係に従って、目標ハードウェアフローテーブルを決定するように構成され、目標ハードウェアフローテーブルは、第1の目標サービスパスによってサポートされるサービスをサポートし、
ハードウェアフローテーブル構成ユニットは、第1のサービスのフローエントリに従って、目標ハードウェアフローテーブルのフローエントリを構成するように構成される。
第7の態様の第1の可能な実施方式では、通信装置は、オープンフロー(OpenFlow)プロトコルを用いてコントローラと通信し、フローテーブルはOpenflowフローテーブルである。複数のフローテーブルのマッチフィールドは全てOpenFlowプロトコルがサポートするマッチフィールドであり、複数のフローテーブルのアクションは全てOpenFlowプロトコルがサポートするアクションである。
第7の態様又は第7の態様の第1の可能な実施方式に関して、第2の可能な実施方式では、データパケット処理ユニットが、予め構成されたサービスパスにおいて、第1のサービスのフローエントリとマッチする第1の目標サービスパスを決定するように構成されることは、具体的には、
データパケット処理ユニットが、第1のサービスのフローエントリをソフトウェアフローテーブル中に構成し、ソフトウェアフローテーブルから、第1のサービスのデータパケットとマッチする第1の目標フローエントリを取得し、予め構成されたサービスパスにおいて、第1の目標フローエントリとマッチする第1の目標サービスパスを決定するように構成されることを含む。決定された第1の目標サービスパスのマッチフィールドは、第1の目標フローエントリのマッチフィールド値に対応するマッチフィールドのうち入力ポートマッチフィールド及びパケットヘッダマッチフィールドを含み、決定された第1の目標サービスパスのアクションは、第1の目標フローエントリのアクション値のうち第1のサービスのデータパケットの処理に用いられるアクションを含む。また、
ハードウェアフローテーブル構成ユニットは、具体的には、第1の目標フローエントリに従って、目標ハードウェアフローテーブルのフローエントリを構成するように構成される。
第7の態様の第2の可能な実施方式に関して、第3の可能な実施方式では、データパケット処理ユニットが、予め構成されたサービスパスにおいて、第1の目標フローエントリとマッチする目標サービスパスを決定するように構成されることは、具体的には、
データパケット処理ユニットが、2つ以上の第1のターゲットフローエントリが存在する場合、第1のターゲットフローエントリを集約して複合フローエントリを生成し、ここで複合フローエントリのマッチフィールド値は、第1のターゲットフローエントリにおいて入力ポートマッチフィールド及びパケットヘッダマッチフィールドに対応するマッチフィールド値であり、複合フローエントリのアクション値は、第1のターゲットフローエントリにおいて第1のサービスのデータパケットの処理に用いられるアクション値であり、且つ、予め構成されたサービスパスにおいて、複合フローエントリのマッチフィールド値に対応するマッチフィールドを含み且つ複合フローエントリのアクション値に対応するアクションを含む1つのサービスパスを、第1の目標サービスパスとして決定するように構成されることを含む。また、データパケット処理ユニットは、1つの第1の目標フローエントリが存在する場合、予め構成されたサービスパスにおいて、第1の目標フローエントリのマッチフィールド値に対応するマッチフィールドを含み且つ第1の目標フローエントリのアクション値に対応するアクションを含む1つのサービスパスを、第1の目標サービスパスとして決定するように構成される。
第7の態様又は第7の態様の第1〜第3の可能な実施方式のうちいずれか1つに関して、第4の可能な実施方式では、複数のフローテーブルの各々がサポートするマッチフィールド及びアクションは更に、第2のサービスのマッチフィールド及びアクションを含み、第2のサービスは、スイッチのハードウェアフローテーブルがサポートしないサービスであり、
インタフェースユニットは更に、第2のサービスのデータパケットについての情報をコントローラにレポートし、コントローラが第2のサービスのデータパケットについての情報とフローテーブル構造とに従って送出した第2のサービスのフローエントリを受信するように構成され、
データパケット処理ユニットは更に、インタフェースユニットによって受信される第2のサービスのフローエントリを、ソフトウェアフローテーブル中に構成するように構成される。
第7の態様又は第7の態様の第1〜第4の可能な実施方式のうちいずれか1つに関して、第5の可能な実施方式では、通信装置は更に、サービスフローテーブル構成ユニットを備える。ここで、
データパケット処理ユニットは更に、ソフトウェアフローテーブルから、第2のサービスのデータパケットとマッチする第2の目標フローエントリを取得し、予め構成されたサービスパスにおいて、第2の目標フローエントリとマッチする第2の目標サービスパスを決定するように構成され、決定された第2の目標サービスパスのマッチフィールドは、第2の目標フローエントリのマッチフィールド値に対応するマッチフィールドのうち入力ポートマッチフィールド及びパケットヘッダマッチフィールドを含み、決定された第2の目標サービスパスのアクションは、第2の目標フローエントリのアクション値のうち第2のサービスのデータパケットの処理に用いられるアクションを含み、
サービスフローテーブル構成ユニットは、第2の目標フローエントリに従って、第2の目標サービスパスに対応するサービスフローテーブルのサービスフローエントリを構成し、ここでサービスフローテーブルは完全マッチテーブルであり、サービスフローテーブルのマッチフィールドは全て第2の目標サービスパスのマッチフィールドであり、また、サービスフローエントリ中の第1のマッチフィールド値を第2の目標フローエントリ中のマッチフィールド値に構成し、サービスフローエントリ中の第2のマッチフィールド値を第2のサービスのデータパケットのパケットヘッダのヘッダフィールド値に構成し、サービスフローエントリ中のアクション値を第2のフローエントリ中のアクション値に構成するように構成され、第1のマッチフィールド値に対応するマッチフィールドは、第2の目標フローエントリ中のマッチフィールド値に対応するマッチフィールドに属し、第2のマッチフィールド値に対応するマッチフィールドは、第2のフローエントリ中のマッチフィールド値に対応するマッチフィールドに属さず、
データパケット処理ユニットは更に、第2のサービスの後続のデータパケットを後で受信したとき、サービスフローテーブルにおいて後続のデータパケットとマッチするサービスフローエントリを検索し、発見されたサービスフローエントリのアクションに従って、後続のデータパケットを処理するように構成される。
第7の態様又は第7の態様の第1〜第5の可能な実施方式のうちいずれか1つに関して、第6の可能な実施方式では、本通信装置は更に、対応関係構成ユニットを備える。ここで、
対応関係構成ユニットは、サービスパスと対応するハードウェアフローテーブルとの対応関係を構成するように構成される。具体的には、対応関係構成ユニットが、複数の物理フローテーブルと、物理フローテーブルとハードウェアフローテーブルとの対応関係とを構成するように構成されることを含む。複数の物理フローテーブルはそれぞれ、サポートされるマッチフィールド及びアクションを含み、各物理フローテーブルのマッチフィールドは、対応するハードウェアフローテーブルのマッチフィールドに含まれ、各物理フローテーブルのアクションのうちハードウェアフローテーブルに書き込まれる必要のあるアクションは、対応するハードウェアフローテーブルのアクションに含まれる。対応関係構成ユニットは、サービスパスと物理フローテーブルとの対応関係を構成するように構成される。各サービスパスのマッチフィールドは、全ての対応する物理フローテーブルのマッチフィールドに含まれ、各サービスパスのアクションは、全ての対応する物理フローテーブルのアクションに含まれる。また、
データパケット処理ユニットは、サービスパスとハードウェアフローテーブルとの予め構成された対応関係に従って、目標ハードウェアフローテーブルを決定するように構成される。具体的には、データパケット処理ユニットが、第1の目標サービスパスと対応する第1の物理フローテーブルとの対応関係に従って、第1の物理フローテーブルを決定し、第1の物理フローテーブルと対応する目標ハードウェアフローテーブルとの対応関係に従って、目標ハードウェアフローテーブルを決定するように構成されることを含む。
第8の態様は、フローエントリ構成を実施する通信装置を提供する。本通信装置は、プロセッサ及びメモリを備え、
メモリは、コンピュータ操作命令を記憶するように構成され、
プロセッサは、メモリに記憶されたコンピュータ操作命令を実行して、通信装置が、
第1のサービスのデータパケットについての情報をコントローラにレポートするステップと、
コントローラが第1のサービスのデータパケットについての情報とフローテーブル構造とに従って送出した第1のサービスのフローエントリを受信するステップであって、フローテーブル構造は、複数のフローテーブルによってサポートされるマッチフィールド及びアクションを含み、複数のフローテーブルの各々がサポートするマッチフィールドは、第1のサービスのマッチフィールドを含み、複数のフローテーブルの各々がサポートするアクションは第1のサービスのアクションを含む、ステップと、
予め構成されたサービスパスにおいて、第1のサービスのフローエントリとマッチする第1の目標サービスパスを決定するステップであって、第1の目標サービスパスのマッチフィールドは第1のサービスのマッチフィールドを含み、目標サービスパスのアクションは第1のサービスのアクションを含む、ステップと、
サービスパスと通信装置に接続されたハードウェア転送チップのハードウェアフローテーブルとの予め構成された対応関係に従って、目標ハードウェアフローテーブルを決定するステップであって、目標ハードウェアフローテーブルは、第1の目標サービスパスによってサポートされるサービスをサポートする、ステップと、
第1のサービスのフローエントリに従って、目標ハードウェアフローテーブルのフローエントリを構成するステップと、
を実施するように構成される。
第8の態様の第1の可能な実施方式では、通信装置は、オープンフロー(OpenFlow)プロトコルを用いてコントローラと通信し、フローテーブルはOpenflowフローテーブルである。複数のフローテーブルのマッチフィールドは全てOpenFlowプロトコルがサポートするマッチフィールドであり、複数のフローテーブルのアクションは全てOpenFlowプロトコルがサポートするアクションである。
第8の態様又は第8の態様の第1の可能な実施方式に関して、第2の可能な実施方式では、プロセッサはコンピュータ操作命令を実行して、通信装置が、具体的には、
第1のサービスのフローエントリをソフトウェアフローテーブル中に構成するステップと、
ソフトウェアフローテーブルから、第1のサービスのデータパケットとマッチする第1の目標フローエントリを取得し、予め構成されたサービスパスにおいて、第1の目標フローエントリとマッチする第1の目標サービスパスを決定するステップであって、決定された第1の目標サービスパスのマッチフィールドは、第1の目標フローエントリのマッチフィールド値に対応するマッチフィールドのうち入力ポートマッチフィールド及びパケットヘッダマッチフィールドを含み、決定された第1の目標サービスパスのアクションは、第1の目標フローエントリのアクション値のうち第1のサービスのデータパケットの処理に用いられるアクションを含む、ステップと、
を実施するようにする。第1のサービスのフローエントリに従って、目標ハードウェアフローテーブルのフローエントリを構成するステップは、具体的には、通信装置が、第1の目標フローエントリに従って、目標ハードウェアフローテーブルのフローエントリを構成するステップ、を含む。
第8の態様の第2の可能な実施方式に関して、第3の可能な実施方式では、プロセッサはコンピュータ操作命令を実行して、通信装置が、具体的には、
2つ以上の第1のターゲットフローエントリが存在する場合、第1のターゲットフローエントリを集約して複合フローエントリを生成し、ここで複合フローエントリのマッチフィールド値は、第1のターゲットフローエントリにおいて入力ポートマッチフィールド及びパケットヘッダマッチフィールドに対応するマッチフィールド値であり、複合フローエントリのアクション値は、第1のターゲットフローエントリにおいて第1のサービスのデータパケットの処理に用いられるアクション値であり、且つ、予め構成されたサービスパスにおいて、複合フローエントリのマッチフィールド値に対応するマッチフィールドを含み且つ複合フローエントリのアクション値に対応するアクションを含む1つのサービスパスを、第1の目標サービスパスとして決定するステップと、
1つの第1の目標フローエントリが存在する場合、予め構成されたサービスパスにおいて、第1の目標フローエントリのマッチフィールド値に対応するマッチフィールドを含み且つ第1の目標フローエントリのアクション値に対応するアクションを含む1つのサービスパスを、第1の目標サービスパスとして決定するステップと、
を実施するようにする。
第8の態様又は第8の態様の第1〜第3の可能な実施方式のうちいずれか1つに関して、第4の可能な実施方式では、複数のフローテーブルの各々がサポートするマッチフィールド及びアクションは更に、第2のサービスのマッチフィールド及びアクションを含み、第2のサービスは、スイッチのハードウェアフローテーブルがサポートしないサービスであり、
プロセッサはコンピュータ操作命令を実行して、通信装置が、更に、
第2のサービスのデータパケットについての情報をコントローラにレポートするステップと、
コントローラが第2のサービスのデータパケットについての情報とフローテーブル構造とに従って送出した第2のサービスのフローエントリを受信し、第2のサービスのフローエントリをソフトウェアフローテーブル中に構成するステップと、
を実施するようにする。
第8の態様の第4の可能な実施方式に関して、第5の可能な実施方式では、プロセッサはコンピュータ操作命令を実行して、通信装置が、更に、
ソフトウェアフローテーブルから、第2のサービスのデータパケットとマッチする第2の目標フローエントリを取得するステップと、
予め構成されたサービスパスにおいて、第2の目標フローエントリとマッチする第2の目標サービスパスを決定するステップであって、決定された第2の目標サービスパスのマッチフィールドは、第2の目標フローエントリのマッチフィールド値に対応するマッチフィールドのうち入力ポートマッチフィールド及びパケットヘッダマッチフィールドを含み、決定された第2の目標サービスパスのアクションは、第2の目標フローエントリのアクション値のうち第2のサービスのデータパケットの処理に用いられるアクションを含む、ステップと、
第2の目標フローエントリに従って、第2の目標サービスパスに対応するサービスフローテーブルのサービスフローエントリを構成し、ここでサービスフローテーブルは完全マッチテーブルであり、サービスフローテーブルのマッチフィールドは全て第2の目標サービスパスのマッチフィールドであり、また、サービスフローエントリ中の第1のマッチフィールド値を第2の目標フローエントリ中のマッチフィールド値に構成し、サービスフローエントリ中の第2のマッチフィールド値を、第2のサービスのデータパケットのパケットヘッダのヘッダフィールド値に構成し、サービスフローエントリ中のアクション値を第2の目標フローエントリのアクション値に構成するステップであって、第1のマッチフィールド値に対応するマッチフィールドは、第2の目標フローエントリ中のマッチフィールド値に対応するマッチフィールドに属し、第2のマッチフィールド値に対応するマッチフィールドは、第2のフローエントリ中のマッチフィールド値に対応するマッチフィールドに属さない、ステップと、
第2のサービスの後続のデータパケットを後で受信したとき、サービスフローテーブルにおいて後続のデータパケットとマッチするサービスフローエントリを検索し、発見されたサービスフローエントリのアクションに従って後続のデータパケットを処理するステップ、又は、
予め構成されたサービスパスにおいて、第2のフローエントリとマッチする第2の目標サービスパスを決定するステップであって、決定された第2の目標サービスパスのマッチフィールドは、第2のフローエントリのマッチフィールド値に対応するマッチフィールドのうち入力ポートマッチフィールド及びパケットヘッダマッチフィールドを含み、第2の目標サービスパスのアクションは、第2のフローエントリのアクション値のうち第2のデータパケットの処理に用いられるアクション値に対応するアクションを含む、ステップと、
第2のフローエントリに従って、第2の目標サービスパスに対応するサービスフローテーブルのサービスフローエントリを構成し、ここでサービスフローテーブルは完全マッチテーブルであり、サービスフローテーブルのマッチフィールドは全て第2の目標サービスパスのマッチフィールドであり、また、サービスフローエントリ中の第1のマッチフィールド値を第1のフローエントリのマッチフィールド値として構成し、サービスフローエントリ中の第2のマッチフィールド値を第2のデータパケットのパケットヘッダのヘッダフィールド値として構成し、サービスフローエントリ中のアクション値を第2のフローエントリのアクション値として構成するステップであって、第1のマッチフィールド値に対応するマッチフィールドは、第1のフローエントリ中のマッチフィールド値に対応するマッチフィールドに属し、第2のマッチフィールド値に対応するマッチフィールドは、第2のフローエントリ中のマッチフィールド値に対応するマッチフィールドに属さない、ステップと、
第2のサービスの後続のデータパケットを後で受信したとき、サービスフローテーブルにおいて後続のデータパケットとマッチするサービスフローエントリを検索し、発見されたサービスフローエントリのアクションに従って後続のデータパケットを処理するステップと、
を実施するようにする。
第8の態様又は第8の態様の第1〜第5の可能な実施方式のうちいずれか1つに関して、第6の可能な実施方式では、プロセッサはコンピュータ操作命令を実行して、通信装置が、更に、サービスパスと対応するハードウェアフローテーブルとの対応関係を構成するステップ、を実施するようにする。サービスパスと対応するハードウェアフローテーブルとの対応関係を構成するステップは、具体的には、
複数の物理フローテーブルと、物理フローテーブルとハードウェアフローテーブルとの対応関係とを構成するステップであって、複数の物理フローテーブルはそれぞれ、サポートされるマッチフィールド及びアクションを含み、各物理フローテーブルのマッチフィールドは、対応するハードウェアフローテーブルのマッチフィールドに含まれ、各物理フローテーブルのアクションのうちハードウェアフローテーブルに書き込まれる必要のあるアクションは、対応するハードウェアフローテーブルのアクションに含まれる、ステップと、
サービスパスと物理フローテーブルとの対応関係を構成するステップであって、各サービスパスのマッチフィールドは、全ての対応する物理フローテーブルのマッチフィールドに含まれ、各サービスパスのアクションは、全ての対応する物理フローテーブルのアクションに含まれる、ステップと、
を含む。プロセッサはコンピュータ操作命令を実行して、通信装置が、サービスパスとハードウェアフローテーブルとの予め構成された対応関係に従って、目標ハードウェアフローテーブルを決定するようにする。具体的には、
プロセッサがコンピュータ操作命令を実行して、通信装置が、具体的には、第1の目標サービスパスと対応する第1の物理フローテーブルとの対応関係に従って、第1の物理フローテーブルを決定し、第1の物理フローテーブルと目標ハードウェアフローテーブルとの対応関係に従って、目標ハードウェアフローテーブルを決定するようにすることを含む。
第9の態様は、スイッチを提供する。本スイッチは、
ハードウェア転送チップと、
第3の態様又は第3の態様の第1〜第5の可能な実施方式のうちいずれか1つに係る通信装置、又は、第4の態様又は第4の態様の第1〜第5の可能な実施方式のうちいずれか1つに係る通信装置、又は、第7の態様又は第7の態様の第1〜第6の可能な実施方式のうちいずれか1つに係る通信装置、又は、第8の態様又は第8の態様の第1〜第6の可能な実施方式のうちいずれか1つに係る通信装置と、
を備える。
第10の態様は、コントローラと第9の態様に係るスイッチとを備える通信システムを提供する。
本発明の実施形態によれば、第1のサービスを実施するために複数のOpenFlowフローテーブルの全てが用いられてよい。したがって、コントローラの処理ロジックに従って、どのフローテーブルのフローエントリ又はどのフローテーブルが第1サービスに対して生成されたかに関係なく、フローエントリを正常に生成及び送信することができる。また、スイッチによって決定される第1の目標サービスパスは、第1のサービスのデータパケットのマッチフィールド値及びアクション値に対応するマッチフィールド及びアクションを含む。したがって、第1の目標サービスパスは第1のサービスをサポートする。更に、第1の目標サービスパスに対応するハードウェアフローテーブルが第1の目標サービスパスによってサポートされるサービスをサポートするので、第1の目標サービスパスに対応するハードウェアフローテーブルは、第1のサービスをサポートするハードウェアフローテーブルである。更に、スイッチは、ハードウェアフローテーブル中に、第1のサービスの実施に用いられるフローエントリを構成することができる。したがって、スイッチがどのコントローラに接続されるかに関係なく、スイッチは、ハードウェアフローテーブル中に、第1のサービスの実施に用いられるフローエントリを正常に構成することができ、結果として第1のサービスを正常に処理し、それによりサービス処理の失敗確率を低減することができる。
本発明の実施形態の技術的解決策をより明確に説明するために、以下、実施形態又は従来技術を説明するのに必要な添付の図面を簡単に紹介する。当然ながら、添付の図面は以下の説明において本発明の実施形態の一部を示すに過ぎない。当業者であれば、これらの添付の図面から創意工夫なく他の図面を更に導出できるであろう。
本発明の実施形態に係る通信システムのネットワーク構造の概略図である。 本発明の実施形態に係る通信システムのネットワーク構造の概略図である。 本発明の実施形態1に係る方法の概略フローチャートである。 本発明の実施形態2に係る通信装置200の概略構造図である。 本発明の実施形態2に係る通信装置200の概略構造図である。 本発明の実施形態3に係る通信装置300の概略構造図である。 本発明の実施形態4に係るスイッチ400の概略構造図である。 本発明の実施形態5に係る通信システム500の概略構造図である。
以下、本発明の実施形態における技術的解決策を、本発明の実施形態において添付図面を参照しながら、明確且つ完全に説明する。明らかに、説明される実施形態は、本発明の実施形態の一部であり全部ではない。当業者が創意工夫なく本発明の実施形態に基づいて得る他の実施形態は、全て本発明の保護範囲に包含されるものとする。
図1−1は、本発明の実施形態に係る通信システムのネットワーク構造の概略図である。通信システムは、スイッチ(スイッチ)110及びコントローラ(コントローラ)120を備える。スイッチ110は、オープンフロー(OpenFlow)プロトコルを用いて、コントローラ120と通信する。
図1−2に示されるように、スイッチ110は、上位層の通信装置110−1と、下位層のハードウェア転送チップ110−2とを含んでよい。ハードウェア転送チップ110−2は、具体的には、特定用途向け集積回路(Application Specific Integrated Circuits,ASIC)チップであってよい。ハードウェア転送チップは、アクセス制御リスト(Access Control List,ACL)1とACL2のような、ハードウェアフローテーブルを含む。
本発明の実施形態で提供される方法、装置及びシステムは、ソフトウェア定義ネットワーク(software defined network、略してSDN)システムに適用される。SDNシステムは、コントローラ及びスイッチを含む。コントローラとスイッチとの間の通信に用いられるプロトコルは、OpenFlowプロトコルであってもよいし、プロプライエタリプロトコルや別の標準プロトコルであってもよい。コントローラがフローエントリを送出するために用いるフローテーブル構造は、スイッチによりコントローラに報告されてよく、或いはコントローラ上で予め構成されてもよい。
また、コントローラがOpenFlowプロトコルを用いてスイッチと通信する場合、フローテーブル構造は、OpenFlowフローテーブルによってサポートされるマッチフィールド及びアクションを含む。
以下、OpenFlowプロトコルが採用される例を用いて実施形態を詳述する。別のプロトコルが採用される実施方式は、OpenFlowプロトコルが採用される実施方式と同様であり、以下の実施形態における実施方式を参照することができ、その詳細な説明は省略する。
図2は、本発明の実施形態1に係る方法の概略フローチャートである。本発明の実施形態1に係る方法は、図1−1又は図1−2に示される通信システムに適用されてよい。
図2に示されるように、本発明の実施形態1に係る方法は、以下のステップを含む。
S110:スイッチ(図1−1に示されるスイッチ110)が、OpenFlowプロトコルを用いて、フローテーブル構造をコントローラ(図1−1に示されるコントローラ120)にレポートする。フローテーブル構造は、複数のOpenFlowフローテーブルがサポートするマッチフィールド及びアクションと、複数のOpenFlowフローテーブルのタイプとを含む。複数のOpenFlowフローテーブルがサポートするマッチフィールド及びアクションには共通集合が存在し、共通集合は、スイッチのハードウェアフローテーブルによってサポートされる第1のサービスの実施に用いられるマッチフィールド及びアクションを含む。複数のOpenFlowフローテーブルのタイプは全てワイルドカードタイプである。
フローテーブルのタイプがワイルドカードタイプである場合、フローテーブルの構造に従ってフローエントリを生成するとき、コントローラは、フローテーブルによってサポートされる任意の1以上のマッチフィールドを用いて、フローエントリを生成してよい。
例えば、テーブルT0はワイルドカードタイプであり、サポートされるマッチフィールドは6つのマッチフィールド(すなわちin_port、eth_type、src_mac、dst_mac、ip_src及びip_dst)を含む。そして、コントローラがテーブルT0に従って生成するフローエントリは、一部のマッチフィールドに対応するマッチフィールド値のみを含んでよい。例えば、生成されるフローエントリは、4つのマッチフィールドすなわちin_port、eth_type、src_mac及びdst_macの値を含む。或いは、テーブルT0の全てのマッチフィールドに対応するマッチフィールド値を含んでよい。
具体的には、スイッチへの接続を確立した後、コントローラは、フローテーブル機能要求メッセージ(table stats request)をスイッチに送信する。スイッチは、フローテーブル機能要求メッセージを受信した後に、コントローラにフローテーブル機能応答メッセージ(table stats reply)を返す。フローテーブル能力応答メッセージは、フローテーブル構造を搬送する。
複数のOpenFlowフローテーブルは、具体的には、テーブルT0(Table 0)やテーブルT1(Table 1)等を含んでよい。マッチフィールドは、具体的には、入力ポート(in_port)、イーサネットタイプ(eth_type)及び送信元MACアドレス(src_mac)を含んでよい。アクションは、具体的には、ポートを介して転送すること(output)、送信元MACアドレスを変更すること、宛先MACアドレスを変更すること等を含んでよい。
例えば、第1のサービスは、具体的には、IPに基づくレイヤ2転送サービスであってよく、IPに基づくレイヤ2転送サービスを実現するには、マッチフィールドin_port、eth_type、src_mac及びdst mac(宛先MACアドレス)及びアクションoutputが必要となる。
スイッチのハードウェアフローテーブルが第1のサービスをサポートすることを決定するための基準は、スイッチの1以上のハードウェアフローテーブルが、第1のサービスを実現するのに必要なマッチフィールド及びアクションを含むことであってよい。例えば、第1のサービスを実現するには、マッチフィールドin_port、eth_type、src_mac及びdst mac並びにアクションoutputが必要となる。スイッチの1つのハードウェアフローテーブルは、マッチフィールドin_portとeth_typeを含み、別のハードウェアフローテーブルはマッチフィールドsrc_macとdst macとアクションoutputを含む。そして、スイッチのハードウェアフローテーブルが第1のサービスをサポートすると考えられてよい。また、第1のサービスを実現するために必要な一部のアクション、例えばマッチフィールドpop_vlan(マッチフィールドpop_vlanが第1のサービスを実現するために必要であることを前提とする)は、ハードウェアフローテーブル中に構成される必要はないかもしれないが、非ハードウェアフローテーブルタイプであるスイッチの別のハードウェアリソースによってサポートされる。この場合、第1のサービスを実現するために必要な各マッチフィールドがスイッチのハードウェアフローテーブルに含まれ、第1のサービスを実現するために必要なアクションのうちハードウェアフローテーブルに書き込まれる必要のある各アクションが、スイッチのハードウェアフローテーブルに含まれる場合、スイッチのハードウェアフローテーブルが第1サービスをサポートすると考えることができる。結論として、スイッチの1以上のハードウェアフローテーブルが、第1のサービスを実現するために必要なマッチフィールドを含み、第1のサービスを実現するために必要なアクションのうち1以上のハードウェアフローテーブルに書き込まれる必要のあるアクションを含む場合、1以上のハードウェアフローテーブルは、第1のサービスをサポートしてよい。
具体的な実施時には、スイッチによってレポートされる複数のOpenflowフローテーブルのマッチフィールドは全てOpenflowプロトコルがサポートするマッチフィールドであってよく、スイッチによってレポートされる複数のOpenflowフローテーブルのアクションは全てOpenflowプロトコルがサポートするアクションであってよい。留意すべきこととして、共通集合は、スイッチのハードウェアフローテーブルによってサポートされる1以上のサービスを実現するために用いられるマッチフィールド及びアクションを含んでよい。レポートされる複数のOpenflowフローテーブルの全てが、Openflowプロトコルがサポートする全てのマッチフィールドと全てのアクションを含む場合、つまり、共通集合がOpenFlowプロトコルがサポートする全てのマッチフィールドと全てのアクションを含む場合、スイッチのハードウェアフローテーブルによってサポートされるサービスで可能な限り多くのサービスを実現するために、共通集合に含まれるマッチフィールド及びアクションを用いることができる。
フローテーブル構造は、表1に示すものであってよい。
Figure 2017520214
S120:スイッチが、コントローラがOpenFlowプロトコルを用いて送信したフローエントリを受信し、フローエントリをソフトウェアフローテーブル中に構成する。フローエントリは、コントローラによりフローテーブル構造とスイッチによってレポートされたデータパケットについての情報とに従って生成される。レポートされたデータパケットについての情報は、第1のサービスの第1のデータパケットについての情報を含み、フローエントリは、第1のデータパケットとマッチするフローエントリのうち少なくとも1つを含む。
留意すべきこととして、S110が実行されるとき、スイッチのソフトウェアフローテーブル及びハードウェアフローテーブルは、フローエントリを含まないか、或いは受信されたデータパケットとマッチすることのできないデフォルトフローエントリのみを含む。
S120において、スイッチが、マッチするフローエントリがハードウェアフローテーブル又はソフトウェアフローテーブルに見つけることのできないデータパケットを受信する度に、スイッチは、コントローラから、データパケットとマッチするフローエントリを要求し、フローエントリをソフトウェアフローテーブル中に構成し、続くステップS130〜S150に従ってハードウェアフローテーブル中にフローエントリを構成する。
具体的な実施時には、ステップS120は、以下の実行プロセスのうち1以上を含む。
S120−1:スイッチが、1つのデータパケット(例えば第1のデータパケット)を受信する。
S120−2:スイッチが、第1に、スイッチのハードウェアフローテーブルにおいて、データパケットとマッチするフローエントリを検索する。
フローエントリが見つからない場合、ステップS120−3が実行される。フローエントリが見つかった場合、見つかったフローエントリのアクション値に従って、データパケットが処理される。
S120−3:次に、スイッチが、スイッチのソフトウェアフローテーブルにおいて、データパケットとマッチするフローエントリを検索する。
フローエントリが見つからない場合、ステップS120−4が実行される。フローエントリが見つかった場合、見つかったフローエントリのアクション値に従って、データパケットが処理される。
S120−4:スイッチが、コントローラから、データパケットとマッチするフローエントリを要求する。
具体的には、スイッチは、Packet Inメッセージをコントローラに送信する。Packet Inメッセージは、データパケットについての情報、例えばデータパケットの受信に用いられるポートの番号を含み、別の例では、データパケット自体又はデータパケットのパケットヘッダ情報を含む。コントローラは、Packet Inメッセージを受信すると、フローテーブル構造及びデータパケットについての情報(例えば、データパケットのパケットヘッダ情報中のイーサネットタイプ、送信元MACアドレス、宛先MACアドレス、或いはデータパケットの受信に用いられるポートの番号)に従って、データパケットとマッチするフローエントリを生成し、生成されたフローエントリをFlow modメッセージを用いてスイッチに送信する。
S120−5:スイッチが、受信されたフローエントリをソフトウェアフローテーブル中に構成する。
S120−1で受信されたデータパケットが第1のデータパケットである場合、S120−4において、第1のデータパケットとマッチするフローエントリが要求される。対応して、S120−5において、第1のデータパケットとマッチするフローエントリが、ソフトウェアフローテーブル中に構成される。
第1のデータパケットとマッチする第1のフローエントリは、1つであっても2つ以上であってもよい。例えば、前述のIPに基づくレイヤ2転送サービスでは、表2−1に示されるように、T0のフローエントリのみが生成されてよい。或いは、表2−2A及び表2−2Bに示されるように、T0のフローエントリとT1のフローエントリとが生成されてよい。
Figure 2017520214
Figure 2017520214
Figure 2017520214
留意すべきこととして、データパケットに対して、データパケットとマッチするフローエントリが2つ以上ある場合、表2−2A及び表2−2Bに示されるように、フローエントリの一部(例えば、表2−2Aに示すフローエントリ)がソフトウェアフローテーブル中に構成されている可能性がある。これは、以前にレポートされた別のデータパケットについてコントローラによって送出されたフローエントリが、フローエントリの一部を含むことを示す。次に、コントローラは、スイッチに対して構成されたフローエントリの一部を繰り返し送出しないことがある。したがって、フローエントリが、S120で第1のデータパケットとマッチするフローエントリの少なくとも1つを含むことは、以下の状況を含む。すなわち、第1のデータパケットとマッチする1つのフローエントリがある場合、コントローラによってスイッチに送信されたフローエントリに1つのフローエントリが含まれる。第1のデータパケットとマッチするフローエントリが2つ以上あるとき、2つ以上のフローエントリの一部がコントローラによってスイッチに以前に送信されている場合、コントローラは、2つ以上のフローエントリ中の他方のフローエントリのみを送信してよい。
IPに基づくレイヤ2転送サービス用にテーブルT0及びテーブルT1のフローエントリが生成される例では、IPに基づくレイヤ2転送サービスの複数のデータパケットがS120でコントローラにレポートされた後に構成されるソフトウェアフローテーブルの例を、表3−1及び表3−2に示す。
Figure 2017520214
Figure 2017520214
第1のサービスを実現するために、S110でレポートされた複数のOpenFlowフローテーブルの全てが用いられてよい。したがって、S120では、コントローラの処理ロジックに従って、どのフローテーブルのフローエントリ又はどのフローテーブルが第1サービスに対して生成されたかに関係なく、フローエントリを正常に生成することができる。
留意すべきこととして、本発明の本実施形態におけるハードウェアフローテーブルは、ハードウェア形式のフローテーブルのことであり、具体的には、スイッチのハードウェア転送チップ内のフローテーブル、例えばACLリストであってよい。本発明の本実施形態におけるソフトウェアフローテーブルは、ソフトウェア形式のOpenFlowフローテーブルのことであり、具体的には、スイッチのメモリに記憶されたOpenFlowフローテーブルであってよい。同様に、プロプライエタリプロトコル又は別の標準プロトコルが実現に用いられる場合、ソフトウェアフローテーブルは、対応するプロトコルに準拠するフローテーブルである。
S130:スイッチが、ソフトウェアフローテーブルから、第1のデータパケットとマッチする第1のフローエントリを取得し、第1のフローエントリのアクション値に従って第1のデータパケットを処理し、予め構成されたサービスパスにおいて、第1のフローエントリとマッチする第1の目標サービスパスを決定する。
以下、具体的な実施例を参照しながら具体的な実施方式を説明する。
例えば、スイッチは、ポート2を通して第1のデータパケットを受信する。第1のデータパケットのヘッダフィールドでは、イーサネットタイプを0x800に、送信元MACアドレスを0:0:0:0:0:3に、宛先MACアドレスを0:0:0:0:0:4に、送信元IPアドレスを192.168.0.1に、宛先IPアドレスを192.168.0.2に、送信元ポート番号を6633に、宛先ポート番号を6589に指定する。
スイッチは第1に、テーブルT0において第1のデータパケットとマッチするフローエントリを発見する。データパケットがポート2から受信されるので、テーブルT0の第2のフローエントリがマッチする。更に、テーブルT1において、テーブルT0の第2のフローエントリのアクション値“goto:1”に従って、第1のデータパケットとマッチするフローエントリが発見される。
第1データパケットのeth type(イーサネットタイプ)は0x800であるので、送信元MACアドレスは0:0:0:0:0:3であり、宛先MACアドレスは0:0:0:0:0:4であり、テーブルT1の第2のフローエントリがマッチする。データパケットは、テーブルT1の第2のフローエントリのアクション値“output:3”に従ってポート3を介して転送される。
前述の実装時、第1サービスの第1データパケットとマッチする見つかった第1フローエントリは、テーブルT0の第2フローエントリとテーブルT1の第2フローエントリとを含む。
第1のデータパケットとマッチするフローエントリを取得した後、スイッチは、予め構成されたサービスパスにおいて、第1のフローエントリとマッチする第1の目標サービスパスを決定する。
各予め構成されたサービスパスは、各サービスパスに対応するサービスを実現するために必要なマッチフィールド及びアクションを含む。
サービスパスの例を表4に示す。
Figure 2017520214
スイッチは、サービスパスにおいて、第1のフローエントリとマッチする第1の目標サービスパスを決定する。決定された第1の目標サービスパスのマッチフィールドは、第1のフローエントリのマッチフィールド値に対応するマッチフィールドの入力ポート(ingress port)マッチフィールド及びパケットヘッダ(packet headers)マッチフィールドを含む。第1の目標サービスパスのアクションは、第1のフローエントリのアクション値のうち第1のデータパケットの処理に用いられるアクション値に対応するアクションを含む。入力ポートマッチフィールドは、受信したデータパケットがスイッチに入るためのポート番号(すなわち、スイッチがデータパケットを受信するポートの番号)を照合するために用いられる。パケットヘッダマッチフィールドは、受信したデータパケットのパケットヘッダ内のフィールドを照合するために用いられる。
前述の例と同様に、第1のフローエントリが2つあり、含まれるマッチフィールド値に対応するマッチフィールドはin_port、eth_type、src_mac及びdst macである。in_portは入力ポートマッチフィールドである。eth_type、src_mac及びdst macに対応するマッチフィールド値は、第1のデータパケットのパケットヘッダ内のフィールドを照合するために用いられ、パケットヘッダマッチフィールドである。含まれるアクション値はgoto:1及びoutput:3である。goto:1は、次のテーブルが更に検索されることを示すために用いられ、output:3は、第1のデータパケットがポート3を介して転送されることを示すために用いられる。分かるように、output:3のみが、第1のデータパケットを処理するために用いられるアクション値である。
留意すべきこととして、第1のフローエントリは、入力ポートマッチフィールド値を含まなくてもよい。対応して、第1の目標サービスパスのマッチフィールドは当然、入力ポートマッチフィールドを含まなくてもよい。
更に留意すべきこととして、複数のフローテーブルのフローエントリを用いてサービスを実現する場合、マッチするフローエントリは、メタデータ(metadata)マッチフィールド値と、メタデータマッチフィールド値を照合するためのデータを生成するために用いられるメタデータアクションとを更に含むことができる。表5−1及び表5−2に示されるように、メタデータマッチフィールドはmetaであり、メタデータマッチフィールド値は0x2であり、メタデータマッチフィールド値を照合するためのデータを生成するために用いられるアクションはw_meta:0x2である。
メタデータマッチフィールド値は、データパケットのパケットヘッダ情報を照合するために用いられるものではなく、入力ポートマッチフィールド及びパケットヘッダマッチフィールドと同等である。すなわち、メタデータマッチフィールドは、入力ポートマッチフィールド又はパケットヘッダマッチフィールドに属さない。メタデータアクションは、データパケットを処理するために用いられるものではなく、すなわち、データパケットを処理するために用いられるアクション値に対応するアクションではない。
Figure 2017520214
Figure 2017520214
スイッチは、各サービスフローテーブルにおいて、マッチフィールドがin_port、eth_type、src_mac及びdst macを含み且つアクションがoutputを含むサービスパスを、第1の目標サービスパスとして検索する。表4に示されるように、L2_L1T4S_IPv4IPv6Pathのマッチフィールドは、in_port、eth_type、src_mac及びdst macを含み、L2_L1T4S_IPv4IPv6Pathのアクションはoutputを含む。したがって、L2_L1T4S_IPv4IPv6Pathが第1の目標サービスパスとして決定される。
留意すべきこととして、1つの第1のフローエントリが存在しても、2つ以上の第1のフローエントリが存在してもよい。
1つの第1のフローエントリが存在する場合、第1のフローエントリに含まれるマッチフィールド値に対応する各マッチフィールドは、入力ポートマッチフィールド又はパケットヘッダマッチフィールドに属し、含まれる各アクションは、第1のデータパケットの処理に用いられるアクションに属する。対応して、マッチフィールドが第1のフローエントリのマッチフィールド値に対応するマッチフィールドを含み、且つアクションが第1のフローエントリのアクション値に対応するアクションを含むサービスパスが、予め構成されたサービスパスにおいて直接的に、第1の目標サービスパスとして決定されてよい。
第1のフローエントリが2つ以上ある場合、スイッチは、第1のフローエントリが見つかった後、以下の方法に従って第1の目標サービスパスを決定して、決定の効率を改善することができる。
A1:スイッチは、第1のフローエントリを集約して、複合フローエントリを生成する。複合フローエントリによって含まれるマッチフィールド値は、第1のフローエントリのマッチフィールド値のうち、入力ポートマッチフィールド及びパケットヘッダマッチフィールドに対応するマッチフィールド値であり、複合フローエントリによって含まれるアクション値は、第1のフローエントリのアクション値のうち第1のデータパケットの処理に用いられるアクション値である。
A2:スイッチは、予め構成されたサービスパスにおいて、マッチフィールドが複合フローエントリのマッチフィールド値に対応するマッチフィールドを含み、且つアクションが複合フローエントリのアクション値に対応するアクションを含むサービスパスを、第1の目標サービスパスとして決定してよい。
S140:スイッチが、第1の目標サービスパスとハードウェアフローテーブルとの予め構成された対応関係に従って、第1の目標サービスパスに対応するハードウェアフローテーブルを決定する。第1の目標サービスパスに対応するハードウェアフローテーブルは、第1の目標サービスパスによってサポートされるサービスをサポートする。
具体的には、スイッチは、サービスパスとハードウェアフローテーブルとの対応関係を予め構成する。各サービスパスに対応するハードウェアフローテーブルは、各サービスパスがサポートするサービスをサポートする。例えば、各サービスパスは、対応するサービスパスによってサポートされるサービスを実現するために必要なマッチフィールド及びアクションを含む。表6に示されるように、サービスパスL2_L1T4S_IPv4IPv6は、ハードウェアフローテーブルACL3及びACL5に対応する。ACL3及びACL5は、IPに基づきL2_L1T4S_IPv4IPv6によってサポートされるレイヤ2転送サービスを実現するために必要なマッチフィールド及びアクションを含む。
Figure 2017520214
L2_L1T4S_IPv4IPv6Pathは、ステップS130で決定された目標サービスパスである。表6によれば、目標サービスパスに対応するハードウェアフローテーブルはACL3及びACL5であると決定されてよい。
留意すべきこととして、スイッチは、サービスパスと対応するハードウェアフローテーブルとの対応関係を直接構成してよく、或いは、サービスパスと別の情報との対応関係や、別の情報とハードウェアフローテーブルとの対応関係を構成することにより、サービスパスと対応するハードウェアフローテーブルとの対応関係を間接的に構成してもよい。
サービスパスをより簡便に構成するために、サービスパスとハードウェアフローテーブルとの対応関係は以下のように構成されてよい。
B1:複数の物理フローテーブルと、物理フローテーブルとハードウェアフローテーブルとの対応関係とを構成する。複数の物理フローテーブルはそれぞれ、サポートされるマッチフィールド及びアクションを含み、各物理フローテーブルのマッチフィールドは、対応するハードウェアフローテーブルのマッチフィールドに含まれ、各物理フローテーブルのアクションのうちハードウェアフローテーブルに書き込まれる必要のあるアクションは、対応するハードウェアフローテーブルのアクションに含まれる。
留意すべきこととして、各物理フローテーブルのアクションのうちハードウェアフローテーブルに書き込まれる必要のないアクションは、ハードウェアフローテーブルが配置されるスイッチの非ハードウェアフローテーブルタイプのハードウェアリソースによってサポートされ得るアクションを指す。
B2:サービスパスと物理フローテーブルとの対応関係を構成する。各サービスパスのマッチフィールドは、全ての対応する物理フローテーブルのマッチフィールドに含まれ、各サービスパスのアクションは、全ての対応する物理フローテーブルのアクションに含まれる。
具体的な実施方式では、各サービスパスのマッチフィールドは、対応する全ての物理フローテーブルのマッチフィールドのユニバーサルセットであってもよく、各サービスパスのアクションは、全ての対応する物理フローテーブルのアクションのユニバーサルセットであってもよい。
この方法を採用することにより、異なるサービスパスにより各物理フローテーブルを用いることができる。したがって、複数の物理フローテーブルと、物理フローテーブルとハードウェアフローテーブルとの対応関係とがB1で構成された後、様々なサービスを実現するためのサービスパスをB2で都合よく構成することができる。
例えば、予め構成された物理フローテーブルL1はマッチフィールドeth_src及びeth_dstを含み、予め構成された物理フローテーブルT4Sは、マッチフィールドip_src及びip_dstを含み、且つアクションoutputを含む。サービスXを実現するには、マッチフィールドeth_src、eth_dst、ip_src及びip_dst並びにアクションoutputが必要となる。物理フローテーブルL1及びT4Sに従って、サービスXを実現するためのサービスパスYが生成されてよく、サービスパスYと物理フローテーブルL1との対応関係と、サービスパスYと物理フローテーブルT4Sとの対応関係が構成されてよい。
対応して、ステップS160において、スイッチは、第1の目標サービスパスと物理フローテーブルとの予め構成された対応関係に従って、第1の目標サービスパスに対応する第1の物理フローテーブルを決定し、第1の物理フローテーブルとハードウェアフローテーブルとの対応関係に従って、第1の物理フローテーブルに対応するハードウェアフローテーブルを決定する。
S150:スイッチが、第1のフローエントリに従ってハードウェアフローテーブルのフローエントリを構成する。
S150の具体的な実施は、以下を含んでよい。
C1:新しいフローエントリをハードウェアフローテーブルに追加する。
C2:追加されたフローエントリのマッチフィールド値として、第1のフローエントリのマッチフィールド値のうち、入力ポートマッチフィールド及びパケットヘッダマッチフィールドに対応するマッチフィールド値を構成する。
C3:第1のアクション値以外のアクション値を、追加されたフローエントリのアクション値として構成し、ここでアクション値及び第1のアクション値の各々は、第1のフローエントリのアクション値の範囲内であり、第1のデータパケットの処理に用いられるアクション値の範囲内である。第1のアクション値は、ハードウェアフローテーブルに含まれず、且つ、ハードウェアフローテーブルが配置されるスイッチの非ハードウェアフローテーブルタイプのハードウェアリソースによってサポートされるアクションに対応するアクション値である。
留意すべきこととして、第1のフローエントリは第1のアクション値を含まなくてよい。
ステップS130において、A1及びA2の方法を用いて目標サービスパスを決定する場合、このステップでは、複合フローエントリのマッチフィールド値を、追加されたフローエントリのマッチフィールド値として直接構成することができ、複合フローエントリのアクション値のうち第1のアクション値以外の別のアクション値が、追加されたフローエントリのアクション値として構成される。
表7−1に示されるように、スイッチは、第1のフローエントリのマッチフィールドin_port、eth_type、src_mac及びdst macのマッチフィールド値をリストACL5中に構成する。表7−2に示されるように、第1のフローエントリのアクション値output:3がリストACL3中に構成される。
Figure 2017520214
Figure 2017520214
ハードウェアフローテーブルが、第1のフローエントリのマッチフィールド値に対応するマッチフィールドよりも多くのマッチフィールドを有する場合、フローエントリ内の別のマッチフィールド値は、具体的な実施に従って、データパケットのヘッダフィールド内の対応する情報として構成されてよい。例えば、第1のフローエントリは送信元IPアドレスを含まず、送信元IPアドレスはデータパケットから抽出され、抽出された送信元IPアドレスが、フローエントリのマッチフィールドsrc_ip(送信元IPアドレス)に対応する値として用いられる。或いは、フローエントリ内の別のマッチフィールド値がワイルドカードとして構成されてよい。
本発明の実施形態1によれば、第1のサービスを実施するために複数のOpenFlowフローテーブルの全てが用いられてよい。したがって、コントローラの処理ロジックに従って、どのフローテーブルのフローエントリ又はどのフローテーブルが第1サービスに対して生成されたかに関係なく、フローエントリを正常に生成及び送信することができる。また、スイッチによって決定される第1の目標サービスパスは、第1のサービスのデータパケットのマッチフィールド値及びアクション値に対応するマッチフィールド及びアクションを含む。したがって、第1の目標サービスパスは第1のサービスをサポートする。更に、第1の目標サービスパスに対応するハードウェアフローテーブルが第1の目標サービスパスによってサポートされるサービスをサポートするので、第1の目標サービスパスに対応するハードウェアフローテーブルは、第1のサービスをサポートするハードウェアフローテーブルである。更に、スイッチは、ハードウェアフローテーブル中に、第1のサービスの実施に用いられるフローエントリを構成することができる。したがって、スイッチがどのコントローラに接続されるかに関係なく、スイッチは、ハードウェアフローテーブル中に、第1のサービスの実施に用いられるフローエントリを正常に構成することができ、結果として第1のサービスを正常に処理し、それによりサービス処理の失敗確率を低減することができる。
場合によっては、第1フローエントリのアクション値は、ハードウェアフローテーブルに含まれず、且つハードウェアフローテーブルが配置されるスイッチの非ハードウェアフローテーブルタイプのハードウェアリソースによってサポートされるアクションに対応するアクション値、例えば、スイッチのポート上で属性構成を実行するために用いられるアクション値(例えばpop_vlan及びpush_vlan)を更に含む。対応して、スイッチは更に、スイッチのポート上で属性構成を実行するために用いられる第1のフローエントリ内のアクション値に従って、第1のフローエントリのoutputアクション値によって指定されるポートの属性を構成してよい(例えば、pop_vlanサービスの場合、ポートのVLAN1024の属性がタグなしに設定される)。
本発明の実施形態1では、図1−2に示されるように、スイッチ(図1−2に示されるスイッチ110)は、上位層の通信装置(図1−2に示される通信装置110−1)と、下位層のハードウェア転送チップ(図1−2に示されるハードウェア転送チップ110−2)とを含んでよい。
ステップS110,S130,S140は通信装置によって実行される。
S120では、スイッチによって受信されたデータパケットは、ハードウェア転送チップのポートを介して受信され、ハードウェアフローテーブルを検索するアクションは、ハードウェア転送チップによって実行される。受信されたデータパケットとマッチするフローエントリがハードウェアフローテーブル内に見つからない場合、ハードウェア転送チップは、受信されたデータパケットを通信装置にレポートする。具体的には、ハードウェア転送チップは、ハードウェア転送チップと通信装置との間のネットワークアダプタチャネルを介して、受信されたデータパケットをレポートしてよい。S120において、ハードウェアフローテーブルを検索するアクション以外の他のアクションは、通信装置によって実行される。
S150の具体的な実施は、以下のとおりであってよい。すなわち、通信装置が、第1のフローエントリに従って、ハードウェア転送チップのハードウェアフローテーブルのフローエントリを構成する。具体的には、ハードウェアフローテーブル上で構成を実行するために用いられるハードウェア転送チップのインタフェースを呼び出すことにより、フローエントリを構成することであってよい。ハードウェアフローテーブル中に構成される情報は、インタフェースのパラメータとして用いられ、ハードウェア転送テーブルに転送され、ハードウェアフローテーブル中に構成される。
具体的な実施方式では、通信装置によって予め構成されたサービスパスは、通信装置に接続されたハードウェア転送チップのハードウェアフローテーブルによってサポートされるサービスの実現にのみ用いられる。対応するハードウェアフローテーブルは、ステップS140において、通信装置によりステップS130において照合された目標サービスパスについて明確に決定されてよい。この実施方式を採用することにより、通信装置が異なるハードウェア転送チップに接続されるために用いられる場合、異なるハードウェア転送チップのハードウェアフローテーブルによってサポートされるサービスに従って、対応するサービスパスと、サービスパスとハードウェアフローテーブルとの対応関係を構成する必要がある。
別の具体的な実施方式では、通信装置によって予め構成されたサービスパスは、複数の異なるハードウェア転送チップのハードウェアフローテーブルによってサポートされるサービスを実現するために用いられてよい。この実施方式を採用することにより、通信装置が異なるハードウェア転送チップに接続されるために用いられる場合、異なるハードウェア転送チップのハードウェアフローテーブルによってサポートされるサービスに従って、サービスパスとハードウェアフローテーブルとの対応関係が構成されるならば、通信装置と異なるハードウェア転送チップとの接続をより都合よく実現することができる。
本発明の実施形態1では、S110の共通集合は更に、スイッチのハードウェアフローテーブルによってサポートされない第2のサービスの実施に用いられるマッチフィールド及びアクションを含んでよい。ステップS120でレポートされるデータパケットについての情報は更に、第2のサービスの第2のデータパケットについての情報を含んでよい。S120でコントローラによって送信されたフローエントリは更に、第2のデータパケットとマッチするフローエントリのうち少なくとも1つを含んでよい。
対応して、本方法は更に、スイッチが、ソフトウェアフローテーブルから、第2のデータパケットとマッチする第2のフローエントリを取得し、第2のフローエントリのアクションに従って第2のデータパケットを処理するステップ、を含んでよい。この方法を採用することにより、スイッチのハードウェアフローテーブルは第2のサービスをサポートしていないが、スイッチは、ソフトウェアフローテーブルを検索する方式で第2のサービスのデータパケットを処理することができる。
第2のフローエントリを取得するステップの後、本方法は更に、スイッチが、予め構成されたサービスパスにおいて、第2のフローエントリとマッチする第2の目標サービスパスを決定するステップ、を含んでよい。決定された第2の目標サービスパスのマッチフィールドは、第2のフローエントリのマッチフィールド値に対応するマッチフィールドのうち入力ポートマッチフィールド及びパケットヘッダマッチフィールドを含み、第2の目標サービスパスのアクションは、第2のフローエントリのアクション値のうち第2のデータパケットの処理に用いられるアクション値に対応するアクションを含む。
前述の第2の具体的な実施方式では、第2のデータパケットは第2のサービスに対応し、スイッチのハードウェアフローテーブルは第2のサービスをサポートしないので、第2の目標サービスパスは対応するハードウェアフローテーブルを有さない。したがって、第2の目標サービスパスとハードウェアフローテーブルとの対応関係を構成することができない。対応して、この場合、第2の目標サービスパスに対応するハードウェアフローテーブルを発見することができない。
この場合では、第2のサービスに対応するデータパケットの後の処理の効率を向上するために、本発明の実施形態1では、本方法は更に以下を含んでよい。
D1:スイッチが、第2のフローエントリに従って、第2の目標サービスパスに対応するサービスフローテーブルのサービスフローエントリを構成する。サービスフローテーブルは完全マッチテーブルであり、サービスフローテーブルのマッチフィールドは全て第2の目標サービスパスのマッチフィールドである。また、サービスフローエントリ中の第1のマッチフィールド値を、第1のフローエントリの対応するマッチフィールド値として構成し、サービスフローエントリ中の第2のマッチフィールド値を、第2のデータパケットのパケットヘッダの対応するヘッダフィールド値として構成し、サービスフローエントリ中のアクション値を、第2のフローエントリのアクション値として構成する。第1のマッチフィールド値に対応するマッチフィールドは、第1のフローエントリ中のマッチフィールド値に対応するマッチフィールドに属し、第2のマッチフィールド値に対応するマッチフィールドは、第2のフローエントリ中のマッチフィールド値に対応するマッチフィールドに属さない。
D2:スイッチが、第2のサービスの後続のデータパケットを後で受信したとき、サービスフローテーブルにおいて、後続のデータパケットとマッチするサービスフローエントリを検索し、発見されたサービスフローエントリのアクションに従って後続のデータパケットを処理する。
サービスフローテーブルが完全マッチテーブルであるということは、サービスフローテーブルのサービスフローエントリの各マッチフィールドは、ワイルドカードではなく対応するマッチフィールド値を有するので、サービスフローテーブルのフローエントリに含まれるマッチフィールド値の数は同じであることを意味する。したがって、テーブルの検索効率を向上させるために、ハッシュアルゴリズムを用いてテーブルを検索することができる。
具体的な実施方式は以下のとおりであってよい。すなわち、スイッチが、後続のデータパケットを受信した後にS120−2を実行する(S120−2のデータパケットは具体的には後続のデータパケットである)。フローエントリが見つからない場合、サービスフローテーブルにおいて、後続のデータパケットとマッチするフローエントリが検索される。フローエントリが見つからない場合、ステップS120−3が実行される。フローエントリが見つかった場合、後続のデータパケットは、見つかったフローエントリのアクション値に従って処理される。また、スイッチによって別のサービスのデータパケットが受信されると、この具体的な実施方式においてデータパケットを処理することもできる。
また、各データパケットに従ってコントローラによって送出された各フローエントリが、データパケットとマッチする全てのフローエントリを含む場合、スイッチは、データパケットとマッチする全ての受信フローエントリを直接用いることにより、予め構成されたサービスパスにおいて、データパケットとマッチするサービスパスを決定してもよい。2つの具体的な実施方式は以下のとおりである。
具体的な実施方式1:フローエントリを搬送し且つコントローラによってスイッチに送信されるメッセージ(例えばFlow modメッセージ)は更に、識別情報を含む。識別情報は、同じデータパケットに対応する全てのフローエントリを識別するために用いられ、具体的には、搬送されるフローエントリに対応するデータパケットの識別子であってよい。対応して、スイッチは、コントローラから受信されるフローエントリの中から、識別情報に従って、同じデータパケットに対応する全てのフローエントリを識別し、例えば、データパケットAに対応する全てのフローエントリを識別し、データパケットBに対応する全てのフローエントリを識別する。また、予め構成されたサービスパスにおいて、データパケットとマッチするサービスパスを決定する。
具体的な実施方式2:コントローラは、異なるデータパケットとマッチする全てのフローエントリを、異なるメッセージに追加する。例えば、Flow modメッセージ1に、データパケットAとマッチする全てのフローエントリを追加し、Flow modメッセージ2に、データパケットBとマッチする全てのフローエントリを追加する。対応して、スイッチは、メッセージから、データパケットに対応する全てのフローエントリを取得し、予め構成されたサービスパスにおいて、データパケットとマッチするサービスパスを決定する。
受信されたフローエントリを直接用いることにより、マッチするサービスパスを決定する方法については、前述のステップ130において、第1のフローエントリを用いてマッチした第1のターゲットサービスパスを決定する方法を参照する。マッチしたサービスパスが決定された後に、対応するハードウェアフローテーブルを決定し、ハードウェアフローテーブルエントリを構成する方式については、前述のステップ140〜150を参照し、これらについては再度説明しない。
図3−1を参照する。本発明の実施形態2は通信装置200を提供する。通信装置はハードウェア転送チップに接続され、オープンフロー(OpenFlow)プロトコルを用いてコントローラと通信し、インタフェースユニット201、ソフトウェアフローテーブル構成ユニット202、データパケット処理ユニット203及びハードウェアフローテーブル構成ユニット204を備える。
インタフェースユニット201は、フローテーブル構造をコントローラにレポートするように構成される。フローテーブル構造は、複数のOpenFlowフローテーブルがサポートするマッチフィールド及びアクションと、複数のOpenFlowフローテーブルのタイプとを含み、複数のOpenFlowフローテーブルがサポートするマッチフィールド及びアクションには共通集合が存在する。共通集合は、ハードウェア転送チップのハードウェアフローテーブルによってサポートされる第1のサービスの実施に用いられるマッチフィールド及びアクションを含み、複数のOpenFlowフローテーブルのタイプは全てワイルドカードタイプである。インタフェースユニット201は更に、データパケットについての情報をコントローラにレポートし、コントローラによって送信されたフローエントリを受信するように構成される。フローエントリは、コントローラによりフローテーブル構造とデータパケットについての情報とに従って生成され、データパケットについての情報は第1のサービスの第1のデータパケットについての情報を含み、フローエントリは、第1のデータパケットとマッチするフローエントリのうち少なくとも1つを含む。
複数のOpenFlowフローテーブルのマッチフィールドは全てOpenFlowプロトコルがサポートするマッチフィールドであってよく、複数のOpenFlowフローテーブルのアクションは全てOpenFlowプロトコルがサポートするアクションであってよい。
ソフトウェアフローテーブル構成ユニット202は、フローエントリをソフトウェアフローテーブル中に構成するように構成される。
データパケット処理ユニットは、ソフトウェアフローテーブルから、第1のデータパケットとマッチする第1のフローエントリを取得し、第1のフローエントリのアクション値に従って第1のデータパケットを処理し、予め構成されたサービスパスにおいて、第1のフローエントリとマッチする第1の目標サービスパスを決定するように構成される。決定された第1の目標サービスパスのマッチフィールドは、第1のフローエントリのマッチフィールド値に対応するマッチフィールドのうち入力ポートマッチフィールド及びパケットヘッダマッチフィールドを含み、第1の目標サービスパスのアクションは、第1のフローエントリのアクション値のうち第1のデータパケットの処理に用いられるアクション値に対応するアクションを含む。データパケット処理ユニットは、第1の目標サービスパスと第1のハードウェアフローテーブルとの予め構成された対応関係に従って、第1の目標サービスパスに対応する第1のハードウェアフローテーブルを決定するように構成される。第1の目標サービスパスに対応する第1のハードウェアフローテーブルは、第1の目標サービスパスによってサポートされるサービスをサポートする。留意すべきこととして、データパケット処理ユニット203によって処理される第1のデータパケットは、一般に、ハードウェア転送チップによって第1のデータパケット処理ユニットにレポートされる。具体的には、第1のデータパケットを受信した後、ハードウェア転送チップは第1に、ハードウェアフローテーブルにおいて第1のデータパケットとマッチするフローエントリを検索し、フローエントリが見つからなかった場合、第1のデータパケットを通信装置のデータパケット処理ユニット203にレポートする。
1つの第1のフローエントリが存在しても、2つ以上の第1のフローエントリが存在してもよい。対応して、データパケット処理ユニット203が、予め構成されたサービスパスにおいて、第1のフローエントリとマッチする目標サービスパスを決定するように構成されることは、具体的には、データパケット処理ユニット203が、2つ以上の第1のフローエントリが存在する場合、第1のフローエントリを集約して複合フローエントリを生成し、ここで複合フローエントリに含まれるマッチフィールド値は、第1のフローエントリのマッチフィールド値のうち入力ポートマッチフィールド及びパケットヘッダマッチフィールドに対応するマッチフィールド値であり、複合フローエントリに含まれるアクション値は、第1のフローエントリのアクション値のうち第1のデータパケットの処理に用いられるアクション値であり、また、予め構成されたサービスパスにおいて、マッチフィールドが複合フローエントリのマッチフィールド値に対応するマッチフィールドを含み且つアクションが複合フローエントリのアクション値に対応するアクションを含む1つのサービスパスを、第1の目標サービスパスとして決定するように構成されることを含む。データパケット処理ユニット203は、1つの第1のフローエントリが存在する場合、予め構成されたサービスパスにおいて、マッチフィールドが第1のフローエントリ中のマッチフィールド値に対応するマッチフィールドを含み且つアクションが第1のフローエントリのアクション値に対応するアクションを含む1つのサービスパスを、第1の目標サービスパスとして決定するように構成される。
ハードウェアフローテーブル構成ユニットは、第1のフローエントリに従って、第1のハードウェアフローテーブルのフローエントリを構成するように構成される。
また、共通集合は更に、ハードウェア転送チップのハードウェアフローテーブルによってサポートされない第2のサービスの実施に用いられるマッチフィールド及びアクションを含んでよい。データパケットについての情報は更に、第2のサービスの第2のデータパケットについての情報を含む。インタフェースユニット201によりコントローラから受信されたフローエントリは更に、第2のデータパケットとマッチするフローエントリのうち少なくとも1つを含む。対応して、データパケット処理ユニット203は更に、ソフトウェアフローテーブルから第2のデータパケットとマッチする第2のフローエントリを取得するとき、第2のフローエントリのアクションに従って第2のデータパケットを処理するように構成されてよい。
具体的な実施方式では、図3−2に示されるように、通信装置は更に、サービスフローテーブル構成ユニット205を備えてよい。
この具体的な実施方式では、データパケット処理ユニット203は更に、予め構成されたサービスパスにおいて、第2のフローエントリとマッチする第2の目標サービスパスを決定するように構成される。決定された第2の目標サービスパスのマッチフィールドは、第2のフローエントリのマッチフィールド値に対応するマッチフィールドのうち入力ポートマッチフィールド及びパケットヘッダマッチフィールドを含み、第2の目標サービスパスのアクションは、第2のフローエントリのアクション値のうち第2のデータパケットの処理に用いられるアクション値に対応するアクションを含む。
サービスフローテーブル構成ユニット205は、第2のフローエントリに従って、第2の目標サービスパスに対応するサービスフローテーブルのサービスフローエントリを構成するように構成される。サービスフローテーブルは完全マッチテーブルであり、サービスフローテーブルのマッチフィールドは全て第2の目標サービスパスのマッチフィールドである。また、サービスフローエントリ中の第1のマッチフィールド値を、第1のフローエントリの対応するマッチフィールド値として構成し、サービスフローエントリ中の第2のマッチフィールド値を、第2のデータパケットのパケットヘッダの対応するヘッダフィールド値として構成し、サービスフローエントリ中のアクション値を、第2のフローエントリのアクション値として構成するように構成される。第1のマッチフィールド値に対応するマッチフィールドは、第1のフローエントリ中のマッチフィールド値に対応するマッチフィールドに属し、第2のマッチフィールド値に対応するマッチフィールドは、第2のフローエントリ中のマッチフィールド値に対応するマッチフィールドに属さない。
対応して、データパケット処理ユニット203は更に、第2のサービスの後続のデータパケットを後で受信したとき、サービスフローテーブルにおいて後続のデータパケットとマッチするサービスフローエントリを検索し、発見されたサービスフローエントリのアクションに従って、後続のデータパケットを処理するように構成される。
好ましくは、図3−2に示されるように、通信装置は更に、対応関係構成ユニット206を備えてよい。対応関係構成ユニット206は、サービスパスと対応するハードウェアフローテーブルとの対応関係を構成するように構成される。サービスパスは第1の目標サービスパスを含む。具体的には、対応関係構成ユニット206が、複数の物理フローテーブルと、物理フローテーブルとハードウェアフローテーブルとの対応関係とを構成するように構成されることを含む。複数の物理フローテーブルはそれぞれ、サポートされるマッチフィールド及びアクションを含み、各物理フローテーブルのマッチフィールドは、対応するハードウェアフローテーブルのマッチフィールドに含まれ、各物理フローテーブルのアクションのうちハードウェアフローテーブルに書き込まれる必要のあるアクションは、対応するハードウェアフローテーブルのアクションに含まれる。対応関係構成ユニット206は、サービスパスと物理フローテーブルとの対応関係を構成するように構成される。各サービスパスのマッチフィールドは、全ての対応する物理フローテーブルのマッチフィールドに含まれ、各サービスパスのアクションは、全ての対応する物理フローテーブルのアクションに含まれる。
対応して、データパケット処理ユニット203は、第1の目標サービスパスと第1のハードウェアフローテーブルとの予め構成された対応関係に従って、第1の目標サービスパスに対応する第1のハードウェアフローテーブルを決定するように構成される。具体的には、データパケット処理ユニット203が、第1の目標サービスパスと対応する第1の物理フローテーブルとの対応関係に従って、第1の物理フローテーブルを決定し、第1の物理フローテーブルと対応する第1のハードウェアフローテーブルとの対応関係に従って、第1のハードウェアフローテーブルを決定するように構成されることを含む。
本発明の実施形態2に記載の機能ユニットは、実施形態1の通信装置によって実行される方法を実現するように構成されてよい。
本発明の実施形態2によれば、第1のサービスを実施するために複数のOpenFlowフローテーブルの全てが用いられてよい。したがって、コントローラの処理ロジックに従って、どのフローテーブルのフローエントリ又はどのフローテーブルが第1サービスに対して生成されたかに関係なく、フローエントリを正常に生成及び送信することができる。また、通信装置によって決定される第1の目標サービスパスは、第1のサービスのデータパケットのマッチフィールド値及びアクション値に対応するマッチフィールド及びアクションを含む。したがって、第1の目標サービスパスは第1のサービスをサポートする。更に、第1の目標サービスパスに対応するハードウェアフローテーブルが第1の目標サービスパスによってサポートされるサービスをサポートするので、第1の目標サービスパスに対応するハードウェアフローテーブルは、第1のサービスをサポートするハードウェアフローテーブルである。 更に、通信装置は、ハードウェアフローテーブルにおいて、第1のサービスの実施に用いられるフローエントリを構成することができる。したがって、通信装置がどのコントローラに接続されるかに関わらず、通信装置は、ハードウェアフローテーブル中に第1のサービスの実施に用いられるフローエントリを正常に構成することができ、結果として第1のサービスを正常に処理し、それによりサービス処理の失敗確率を低減することができる。
図4を参照する。本発明の実施形態3は、フローエントリ構成を実施する通信装置300を提供する。通信装置300は、プロセッサ301及びメモリ302を備える。
メモリ302は、コンピュータ操作命令を記憶するように構成される。
プロセッサ301は、メモリ302に記憶されたコンピュータ操作命令を実行して、通信装置が以下のステップを実施するように構成される。
オープンフロー(OpenFlow)プロトコルを用いて、フローテーブル構造をコントローラにレポートするステップ。フローテーブル構造は、複数のOpenFlowフローテーブルがサポートするマッチフィールド及びアクションと、複数のOpenFlowフローテーブルのタイプとを含み、複数のOpenFlowフローテーブルがサポートするマッチフィールド及びアクションには共通集合が存在する。共通集合は、ハードウェア転送チップのハードウェアフローテーブルによってサポートされる第1のサービスの実施に用いられるマッチフィールド及びアクションを含み、複数のOpenFlowフローテーブルのタイプは全てワイルドカードタイプであり、通信装置はハードウェア転送チップに接続される。
フローテーブル構造に従って生成されコントローラによりOpenFlowプロトコルを用いて送信されたフローエントリを受信し、フローエントリをソフトウェアフローテーブル中に構成するステップ。フローエントリは、コントローラによりフローテーブル構造と通信装置によってレポートされたデータパケットについての情報とに従って生成され、データパケットについての情報は第1のサービスの第1のデータパケットについての情報を含み、フローエントリは、第1のデータパケットとマッチするフローエントリのうち少なくとも1つを含む。
ソフトウェアフローテーブルから、第1のデータパケットとマッチする第1のフローエントリを取得し、第1のフローエントリのアクション値に従って第1のデータパケットを処理し、予め構成されたサービスパスにおいて、第1のフローエントリとマッチする第1の目標サービスパスを決定するステップ。決定された第1の目標サービスパスのマッチフィールドは、第1のフローエントリのマッチフィールド値に対応するマッチフィールドのうち入力ポートマッチフィールド及びパケットヘッダマッチフィールドを含み、第1の目標サービスパスのアクションは、第1のフローエントリのアクション値のうち第1のデータパケットの処理に用いられるアクション値に対応するアクションを含む。
第1の目標サービスパスと第1のハードウェアフローテーブルとの予め構成された対応関係に従って、第1の目標サービスパスに対応する第1のハードウェアフローテーブルを決定するステップ。第1の目標サービスパスに対応する第1のハードウェアフローテーブルは、第1の目標サービスパスによってサポートされるサービスをサポートする。
第1のフローエントリに従って、第1のハードウェアフローテーブルのフローエントリを構成するステップ。
具体的な実施方式では、プロセッサ301は、コンピュータ操作命令を実行して、具体的には、通信装置によってレポートされる複数のOpenFlowフローテーブルのマッチフィールドが全てOpenFlowプロトコルがサポートするマッチフィールドであり、レポートされる複数のOpenFlowフローテーブルのアクションが全てOpenFlowプロトコルがサポートするアクションであるようにしてよい。
1つの第1のフローエントリが存在しても、2つ以上の第1のフローエントリが存在してもよい。対応して、プロセッサ301はコンピュータ操作命令を実行して、通信装置が、具体的には、以下のステップを実行できるようにしてよい。
2つ以上の第1のフローエントリが存在する場合、第1のフローエントリを集約して複合フローエントリを生成し、ここで複合フローエントリに含まれるマッチフィールド値は、第1のフローエントリのマッチフィールド値のうち入力ポートマッチフィールド及びパケットヘッダマッチフィールドに対応するマッチフィールド値であり、複合フローエントリに含まれるアクション値は、第1のフローエントリのアクション値のうち第1のデータパケットの処理に用いられるアクション値であり、且つ、予め構成されたサービスパスにおいて、マッチフィールドが複合フローエントリのマッチフィールド値に対応するマッチフィールドを含み且つアクションが複合フローエントリのアクション値に対応するアクションを含む1つのサービスパスを、第1の目標サービスパスとして決定するステップ。
1つの第1のフローエントリが存在する場合、予め構成されたサービスパスにおいて、マッチフィールドが第1のフローエントリのマッチフィールド値に対応するマッチフィールドを含み且つアクションが第1のフローエントリのアクション値に対応するアクションを含む1つのサービスパスを、第1の目標サービスパスとして決定するステップ。
具体的な実施時には、共通集合は更に、ハードウェア転送チップのハードウェアフローテーブルによってサポートされない第2のサービスの実施に用いられるマッチフィールド及びアクションを含んでよい。データパケットについての情報は更に、第2のサービスの第2のデータパケットについての情報を含む。コントローラから受信されるフローエントリは更に、第2のデータパケットとマッチするフローエントリのうち少なくとも1つを含む。対応して、プロセッサ301はコンピュータ操作命令を実行して、通信装置が更に、ソフトウェアフローテーブルから、第2のデータパケットとマッチする第2のフローエントリを取得し、第2のフローエントリのアクションに従って第2のデータパケットを処理するステップ、を実行するようにする。
更に、プロセッサ301は更に、コンピュータ操作命令を実行して、通信装置が更に、以下のステップを実行するようにしてよい。
予め構成されたサービスパスにおいて、第2のフローエントリとマッチする第2の目標サービスパスを決定するステップ。決定された第2の目標サービスパスのマッチフィールドは、第2のフローエントリのマッチフィールド値に対応するマッチフィールドのうち入力ポートマッチフィールド及びパケットヘッダマッチフィールドを含み、第2の目標サービスパスのアクションは、第2のフローエントリのアクション値のうち第2のデータパケットの処理に用いられるアクション値に対応するアクションを含む。
第2のフローエントリに従って、第2の目標サービスパスに対応するサービスフローテーブルのサービスフローエントリを構成し、ここでサービスフローテーブルは完全マッチテーブルであり、サービスフローテーブルのマッチフィールドは全て第2の目標サービスパスのマッチフィールドであり、また、サービスフローエントリ中の第1のマッチフィールド値を、第1のフローエントリの対応するマッチフィールド値として構成し、サービスフローエントリ中の第2のマッチフィールド値を、第2のデータパケットのパケットヘッダの対応するヘッダフィールド値として構成し、サービスフローエントリ中のアクション値を第2のフローエントリのアクション値として構成するステップ。第1のマッチフィールド値に対応するマッチフィールドは、第1のフローエントリ中のマッチフィールド値に対応するマッチフィールドに属し、第2のマッチフィールド値に対応するマッチフィールドは、第2のフローエントリ中のマッチフィールド値に対応するマッチフィールドに属さない。
第2のサービスの後続のデータパケットを後で受信したとき、サービスフローテーブルにおいて後続のデータパケットとマッチするサービスフローエントリを検索し、発見されたサービスフローエントリのアクションに従って後続のデータパケットを処理するステップ。
好ましくは、プロセッサ301は更にコンピュータ操作命令を実行して、通信装置が更に、サービスパスと対応するハードウェアフローテーブルとの対応関係を構成するステップを実行するようにする。サービスパスは第1の目標サービスパスを含む。具体的には、以下のステップを含む。
複数の物理フローテーブルと、物理フローテーブルとハードウェアフローテーブルとの対応関係とを構成するステップ。複数の物理フローテーブルはそれぞれ、サポートされるマッチフィールド及びアクションを含み、各物理フローテーブルのマッチフィールドは、対応するハードウェアフローテーブルのマッチフィールドに含まれ、各物理フローテーブルのアクションのうちハードウェアフローテーブルに書き込まれる必要のあるアクションは、対応するハードウェアフローテーブルのアクションに含まれる。
サービスパスと物理フローテーブルとの対応関係を構成するステップ。各サービスパスのマッチフィールドは、全ての対応する物理フローテーブルのマッチフィールドに含まれ、各サービスパスのアクションは、全ての対応する物理フローテーブルのアクションに含まれる。
対応して、プロセッサ301がコンピュータ操作命令を実行して、通信装置が、第1の目標サービスパスと第1のハードウェアフローテーブルとの予め構成された対応関係に従って、第1の目標サービスパスに対応する第1のハードウェアフローテーブルを決定するようにすることは、具体的には、プロセッサ301がコンピュータ操作命令を実行して、通信装置が、具体的には、第1の目標サービスパスと対応する第1の物理フローテーブルとの対応関係に従って、第1の物理フローテーブルを決定し、第1の物理フローテーブルと対応する第1のハードウェアフローテーブルとの対応関係に従って、第1のハードウェアフローテーブルを決定するようにすること、を含む。
本発明の実施形態3に記載のプロセッサ301は、コンピュータ操作命令を実行して、通信装置が、実施形態1の通信装置によって実行される方法を実施するようにする。
本発明の実施形態3によれば、第1のサービスを実施するために複数のOpenFlowフローテーブルの全てが用いられてよい。したがって、コントローラの処理ロジックに従って、どのフローテーブルのフローエントリ又はどのフローテーブルが第1サービスに対して生成されたかに関係なく、フローエントリを正常に生成及び送信することができる。また、通信装置によって決定される第1の目標サービスパスは、第1のサービスのデータパケットのマッチフィールド値及びアクション値に対応するマッチフィールド及びアクションを含む。したがって、第1の目標サービスパスは第1のサービスをサポートする。更に、第1の目標サービスパスに対応するハードウェアフローテーブルが第1の目標サービスパスによってサポートされるサービスをサポートするので、第1の目標サービスパスに対応するハードウェアフローテーブルは、第1のサービスをサポートするハードウェアフローテーブルである。更に、通信装置は、ハードウェアフローテーブルにおいて、第1のサービスの実施に用いられるフローエントリを構成することができる。したがって、通信装置がどのコントローラに接続されるかに関わらず、通信装置は、ハードウェアフローテーブル中に第1のサービスの実施に用いられるフローエントリを正常に構成することができ、結果として第1のサービスを正常に処理し、それによりサービス処理の失敗確率を低減することができる。
図5を参照する。本発明の実施形態4は、通信装置401及びハードウェア転送チップ402を備えるスイッチ400を提供する。通信装置401はハードウェア転送チップ402に接続され、通信装置401はオープンフロー(OpenFlow)プロトコルを用いてコントローラと通信する。通信装置401は、具体的には、実施形態2によって提供される通信装置200又は実施形態3によって提供される通信装置300である。
図6を参照する。本発明の実施形態5は、スイッチ501及びコントローラ502を備える通信システム500を提供する。スイッチ501は、オープンフロー(OpenFlow)プロトコルを用いてコントローラ502と通信し、スイッチ501は、具体的には、実施形態4によって提供されるスイッチ400である。
当業者であれば、本明細書に開示された実施形態に記載された実施例と組み合わせて、ユニット及びアルゴリズムステップが、電子ハードウェア又はコンピュータソフトウェアと電子ハードウェアの組み合わせによって実施されてよいことを認識することができるであろう。機能がハードウェアによって実行されるかソフトウェアによって実行されるかは、技術的解決策の特定の適用及び設計制約条件に依存する。当業者であれば、特定の用途ごとに記載された機能を実施するために異なる方法を採用することができるが、その実施は本発明の範囲を超えていると考えるべきではない。
当業者であれば、前述のシステム、装置及びユニットの詳細な作業プロセスについて、簡潔且つ簡単な説明のために、前述の方法の実施形態の対応するプロセスを参照することができることが理解できるであろう。ここでは詳細な説明を省略する。
本願で提供されるいくつかの実施形態において、開示されたシステム、装置及び方法が他の方式で実施され得ることを理解されたい。例えば、記載された装置の実施形態は、例示に過ぎない。例えば、ユニット分割は論理的な機能分割に過ぎず、実際の実装では他の分割であってもよい。例えば、複数のユニット又はコンポーネントを組み合わせて、或いは統合して別のシステムとしてもよいし、一部の機能を無視してもよいし、実行しなくてもよい。また、表示又は議論された相互結合又は直接結合又は通信接続は、いくつかのインタフェースを介して実装されてよい。装置間又はユニット間の間接的結合又は通信接続は、電子的、機械的或いは他の形態で実施されてよい。
別個の部品として記載されたユニットは、物理的に分離していてもいなくてもよく、ユニットとして表示された部品は物理ユニットであってもなくてもよく、1つの位置にあってもよいし、複数のネットワークユニットに分散されてもよい。これらのユニットの一部又は全部は、実施形態の解決策の目的を達成するために実際の必要に応じて選択されてよい。
また、本発明の実施形態における機能ユニットは、1つの処理ユニットに統合されてもよいし、各ユニットが物理的に単独で存在してもよいし、2つ以上のユニットが1つのユニットに統合されてもよい。
機能がソフトウェア機能ユニットの形で実装され、独立した製品として販売或いは使用される場合、その機能はコンピュータ可読記憶媒体に記憶されてよい。そのような理解に基づき、本発明の技術的解決策は本質的に、或いは先行技術に寄与する部分や、技術的解決策の一部は、ソフトウェア製品の形態で実施することができる。ソフトウェア製品は、記憶媒体に記憶され、コンピュータ装置(パーソナルコンピュータ、サーバ、或いはネットワーク装置であってよい)に、本発明の実施形態で説明した方法のステップの全部又は一部を実行するよう指示するためのいくつかの命令を含む。上記の記憶媒体は、USBフラッシュドライブ、リムーバブルハードディスク、リードオンリメモリ(ROM、Read-Only Memory)、ランダムアクセスメモリ(RAM、Random Access Memory)、磁気ディスク、光ディスク等の、プログラムコードを記憶できる任意の媒体を含む。
以上の説明は、本発明の特定の実施方式に過ぎず、本発明の保護範囲を限定するものではない。本発明に開示された技術的範囲内で当業者が容易に想到できる変形又は置換は、いかなるものも本発明の保護範囲に包含されるものとする。したがって、本発明の保護範囲は、特許請求の範囲の保護範囲に属するものとする。

Claims (34)

  1. フローエントリ構成の方法であって、
    スイッチが、第1のサービスのデータパケットについての情報をコントローラにレポートするステップと、
    前記スイッチが、前記コントローラが前記第1のサービスの前記データパケットについての前記情報とフローテーブル構造とに従って送出した前記第1のサービスのフローエントリを受信するステップであって、前記フローテーブル構造は、複数のフローテーブルによってサポートされるマッチフィールド及びアクションを含み、前記複数のフローテーブルの各々がサポートするマッチフィールドは前記第1のサービスのマッチフィールドを含み、前記複数のフローテーブルの各々がサポートするアクションは前記第1のサービスのアクションを含む、ステップと、
    前記スイッチが、予め構成されたサービスパスにおいて、前記第1のサービスの前記フローエントリとマッチする第1の目標サービスパスを決定するステップであって、前記第1の目標サービスパスのマッチフィールドは前記第1のサービスの前記マッチフィールドを含み、前記目標サービスパスのアクションは前記第1のサービスの前記アクションを含む、ステップと、
    前記スイッチが、前記サービスパスと前記スイッチのハードウェアフローテーブルとの予め構成された対応関係に従って、目標ハードウェアフローテーブルを決定するステップであって、前記目標ハードウェアフローテーブルは、前記第1の目標サービスパスによってサポートされるサービスをサポートする、ステップと、
    前記スイッチが、前記第1のサービスの前記フローエントリに従って、前記目標ハードウェアフローテーブルのフローエントリを構成するステップと、
    を含む方法。
  2. 前記スイッチは、オープンフロー(OpenFlow)プロトコルを用いて前記コントローラと通信し、前記複数のフローテーブルはOpenflowフローテーブルである、
    請求項1に記載の方法。
  3. 前記複数のフローテーブルの前記マッチフィールドは全て前記OpenFlowプロトコルがサポートするマッチフィールドであり、前記複数のフローテーブルの前記アクションは全て前記OpenFlowプロトコルがサポートするアクションである、
    請求項2に記載の方法。
  4. 前記スイッチが、予め構成されたサービスパスにおいて、前記第1のサービスの前記フローエントリとマッチする第1の目標サービスパスを決定する前記ステップは、具体的には、
    前記スイッチが、前記第1のサービスの前記フローエントリをソフトウェアフローテーブル中に構成するステップと、
    前記スイッチが、前記ソフトウェアフローテーブルから、前記第1のサービスの前記データパケットとマッチする第1の目標フローエントリを取得し、前記予め構成されたサービスパスにおいて、前記第1の目標フローエントリとマッチする前記第1の目標サービスパスを決定するステップであって、決定された前記第1の目標サービスパスのマッチフィールドは、前記第1の目標フローエントリのマッチフィールド値に対応するマッチフィールドのうち入力ポートマッチフィールド及びパケットヘッダマッチフィールドを含み、決定された前記第1の目標サービスパスのアクションは、前記第1の目標フローエントリのアクション値のうち前記第1のサービスの前記データパケットの処理に用いられるアクションを含む、ステップと、
    を含み、
    前記スイッチが、前記第1のサービスの前記フローエントリに従って、前記目標ハードウェアフローテーブルのフローエントリを構成する前記ステップは、具体的には、
    前記スイッチが、前記第1の目標フローエントリに従って、前記目標ハードウェアフローテーブルの前記フローエントリを構成するステップ、
    を含む、請求項1乃至3のいずれか一項に記載の方法。
  5. 前記予め構成されたサービスパスにおいて、前記第1の目標フローエントリとマッチする前記第1の目標サービスパスを決定する前記ステップは、具体的には、
    2つ以上の第1のターゲットフローエントリが存在する場合、前記第1のターゲットフローエントリを集約して複合フローエントリを生成し、ここで前記複合フローエントリのマッチフィールド値は、前記第1のターゲットフローエントリにおいて前記入力ポートマッチフィールド及び前記パケットヘッダマッチフィールドに対応するマッチフィールド値であり、前記複合フローエントリのアクション値は、前記第1のターゲットフローエントリにおいて前記第1のサービスの前記データパケットの処理に用いられるアクション値であり、且つ、前記予め構成されたサービスパスにおいて、前記複合フローエントリのマッチフィールド値に対応するマッチフィールドを含み且つ前記複合フローエントリのアクション値に対応するアクションを含む1つのサービスパスを、前記第1の目標サービスパスとして決定するステップと、
    1つの第1の目標フローエントリが存在する場合、前記予め構成されたサービスパスにおいて、前記第1の目標フローエントリのマッチフィールド値に対応するマッチフィールドを含み且つ前記第1の目標フローエントリの前記アクション値に対応するアクションを含む1つのサービスパスを、前記第1の目標サービスパスとして決定するステップと、
    を含む、請求項4に記載の方法。
  6. 前記複数のフローテーブルの各々がサポートする前記マッチフィールド及び前記アクションは更に、第2のサービスのマッチフィールド及びアクションを含み、前記第2のサービスは、前記スイッチの前記ハードウェアフローテーブルがサポートしないサービスであり、
    前記方法は更に、
    前記スイッチが、前記第2のサービスのデータパケットについての情報を前記コントローラにレポートするステップと、
    前記スイッチが、前記コントローラが前記第2のサービスの前記データパケットについての前記情報と前記フローテーブル構造とに従って送出した前記第2のサービスのフローエントリを受信し、前記第2のサービスの前記フローエントリを前記ソフトウェアフローテーブル中に構成するステップと、
    を含む、請求項1乃至5のいずれか一項に記載の方法。
  7. 前記第2のサービスの前記フローエントリを前記ソフトウェアフローテーブル中に構成する前記ステップの後に、更に、
    前記スイッチが、前記ソフトウェアフローテーブルから、前記第2のサービスの前記データパケットとマッチする第2の目標フローエントリを取得するステップと、
    前記スイッチが、前記予め構成されたサービスパスにおいて、前記第2の目標フローエントリとマッチする第2の目標サービスパスを決定するステップであって、決定された前記第2の目標サービスパスのマッチフィールドは、前記第2の目標フローエントリのマッチフィールド値に対応するマッチフィールドのうち入力ポートマッチフィールド及びパケットヘッダマッチフィールドを含み、決定された前記第2の目標サービスパスのアクションは、前記第2の目標フローエントリのアクション値のうち前記第2のサービスの前記データパケットの処理に用いられるアクションを含む、ステップと、
    前記スイッチが、前記第2の目標フローエントリに従って、前記第2の目標サービスパスに対応するサービスフローテーブルのサービスフローエントリを構成し、ここで前記サービスフローテーブルは完全マッチテーブルであり、前記サービスフローテーブルのマッチフィールドは全て前記第2の目標サービスパスのマッチフィールドであり、且つ、前記サービスフローエントリ中の第1のマッチフィールド値を前記第2の目標フローエントリ中のマッチフィールド値に構成し、前記サービスフローエントリ中の第2のマッチフィールド値を、前記第2のサービスの前記データパケットのパケットヘッダのヘッダフィールド値に構成し、前記サービスフローエントリ中のアクション値を前記第2の目標フローエントリの前記アクション値に構成するステップであって、前記第1のマッチフィールド値に対応するマッチフィールドは、前記第2のフローエントリ中のマッチフィールド値に対応するマッチフィールドに属し、前記第2のマッチフィールド値に対応するマッチフィールドは、前記第2のフローエントリ中の前記マッチフィールド値に対応する前記マッチフィールドに属さない、ステップと、
    前記スイッチが、前記第2のサービスの後続のデータパケットを後で受信したとき、前記サービスフローテーブルにおいて前記後続のデータパケットとマッチするサービスフローエントリを検索し、発見された前記サービスフローエントリのアクションに従って前記後続のデータパケットを処理するステップと、
    を含む、請求項6に記載の方法。
  8. 前記サービスパスとハードウェアフローテーブルとの予め構成された対応関係に従って目標ハードウェアフローテーブルを決定する前記ステップの前に、前記方法は更に、サービスパスと対応するハードウェアフローテーブルとの対応関係を構成するステップを含み、具体的には、
    複数の物理フローテーブルと、前記物理フローテーブルとハードウェアフローテーブルとの対応関係とを構成するステップであって、前記複数の物理フローテーブルはそれぞれ、サポートされるマッチフィールド及びアクションを含み、各物理フローテーブルのマッチフィールドは、対応するハードウェアフローテーブルのマッチフィールドに含まれ、各物理フローテーブルのアクションのうち前記ハードウェアフローテーブルに書き込まれる必要のあるアクションは、前記対応するハードウェアフローテーブルのアクションに含まれる、ステップと、
    前記サービスパスと前記物理フローテーブルとの対応関係を構成するステップであって、各サービスパスのマッチフィールドは、全ての対応する物理フローテーブルのマッチフィールドに含まれ、各サービスパスのアクションは、全ての対応する前記物理フローテーブルのアクションに含まれる、ステップと、
    を含み、
    前記スイッチが、前記サービスパスとハードウェアフローテーブルとの予め構成された対応関係に従って目標ハードウェアフローテーブルを決定する前記ステップは、具体的には、
    前記スイッチが、前記第1の目標サービスパスと対応する第1の物理フローテーブルとの対応関係に従って、前記第1の物理フローテーブルを決定し、前記第1の物理フローテーブルと対応する前記目標ハードウェアフローテーブルとの対応関係に従って、前記目標ハードウェアフローテーブルを決定するステップ、
    を含む、請求項1乃至7のいずれか一項に記載の方法。
  9. スイッチが第1のサービスのデータパケットについての情報をコントローラにレポートする前記ステップの前に、更に、
    前記スイッチが、前記フローテーブル構造を前記コントローラにレポートするステップ、
    を含む、請求項1乃至8のいずれか一項に記載の方法。
  10. 前記フローテーブル構造は更に、前記複数のフローテーブルのタイプを含み、前記複数のフローテーブルの前記タイプは、ワイルドカードタイプである、
    請求項1乃至9のいずれか一項に記載の方法。
  11. フローエントリ構成の方法であって、
    通信装置が、第1のサービスのデータパケットについての情報をコントローラに報告するステップと、
    前記通信装置が、前記コントローラが前記第1のサービスの前記データパケットについての前記情報とフローテーブル構造とに従って送出した前記第1のサービスのフローエントリを受信するステップであって、前記フローテーブル構造は、複数のフローテーブルによってサポートされるマッチフィールド及びアクションを含み、前記複数のフローテーブルの各々がサポートするマッチフィールドは前記第1のサービスのマッチフィールドを含み、前記複数のフローテーブルの各々がサポートするアクションは前記第1のサービスのアクションを含む、ステップと、
    前記通信装置が、予め構成されたサービスパスにおいて、前記第1のサービスの前記フローエントリとマッチする第1の目標サービスパスを決定するステップであって、前記第1の目標サービスパスのマッチフィールドは前記第1のサービスの前記マッチフィールドを含み、前記目標サービスパスのアクションは前記第1のサービスの前記アクションを含む、ステップと、
    前記通信装置が、前記サービスパスと前記通信装置に接続されたハードウェア転送チップのハードウェアフローテーブルとの予め構成された対応関係に従って、目標ハードウェアフローテーブルを決定するステップであって、前記目標ハードウェアフローテーブルは、前記第1の目標サービスパスによってサポートされるサービスをサポートする、ステップと、
    前記通信装置が、前記第1のサービスの前記フローエントリに従って、前記目標ハードウェアフローテーブルのフローエントリを構成するステップと、
    を含む方法。
  12. 前記通信装置は、オープンフロー(OpenFlow)プロトコルを用いて前記コントローラと通信し、前記フローテーブルはOpenflowフローテーブルであり、
    前記複数のフローテーブルの前記マッチフィールドは全て前記OpenFlowプロトコルがサポートするマッチフィールドであり、前記複数のフローテーブルの前記アクションは全て前記OpenFlowプロトコルがサポートするアクションである、
    請求項11に記載の方法。
  13. 前記通信装置が、予め構成されたサービスパスにおいて、前記第1のサービスの前記フローエントリとマッチする第1の目標サービスパスを決定する前記ステップは、具体的には、
    前記通信装置が、前記第1のサービスの前記フローエントリをソフトウェアフローテーブル中に構成するステップと、
    前記通信装置が、前記ソフトウェアフローテーブルから、前記第1のサービスの前記データパケットとマッチする第1の目標フローエントリを取得し、前記予め構成されたサービスパスにおいて、前記第1の目標フローエントリとマッチする前記第1の目標サービスパスを決定するステップであって、決定された前記第1の目標サービスパスのマッチフィールドは、前記第1の目標フローエントリのマッチフィールド値に対応するマッチフィールドのうち入力ポートマッチフィールド及びパケットヘッダマッチフィールドを含み、決定された前記第1の目標サービスパスのアクションは、前記第1の目標フローエントリのアクション値のうち前記第1のサービスの前記データパケットの処理に用いられるアクションを含む、ステップと、
    を含み、
    前記通信装置が、前記第1のサービスの前記フローエントリに従って、前記目標ハードウェアフローテーブルのフローエントリを構成する前記ステップは、具体的には、
    前記通信装置が、前記第1の目標フローエントリに従って、前記目標ハードウェアフローテーブルの前記フローエントリを構成するステップ、
    を含む、請求項11又は12に記載の方法。
  14. 前記予め構成されたサービスパスにおいて、前記第1の目標フローエントリとマッチする前記第1の目標サービスパスを決定する前記ステップは、具体的には、
    2つ以上の第1のターゲットフローエントリが存在する場合、前記第1のターゲットフローエントリを集約して複合フローエントリを生成し、ここで前記複合フローエントリのマッチフィールド値は、前記第1のターゲットフローエントリにおいて前記入力ポートマッチフィールド及び前記パケットヘッダマッチフィールドに対応するマッチフィールド値であり、前記複合フローエントリのアクション値は、前記第1のターゲットフローエントリにおいて前記第1のサービスの前記データパケットの処理に用いられるアクション値であり、且つ、前記予め構成されたサービスパスにおいて、前記複合フローエントリのマッチフィールド値に対応するマッチフィールドを含み且つ前記複合フローエントリのアクション値に対応するアクションを含む1つのサービスパスを、前記第1の目標サービスパスとして決定するステップと、
    1つの第1の目標フローエントリが存在する場合、前記予め構成されたサービスパスにおいて、前記第1の目標フローエントリのマッチフィールド値に対応するマッチフィールドを含み且つ前記第1の目標フローエントリの前記アクション値に対応するアクションを含む1つのサービスパスを、前記第1の目標サービスパスとして決定するステップと、
    を含む、請求項13に記載の方法。
  15. 前記複数のフローテーブルの各々がサポートする前記マッチフィールド及び前記アクションは更に、第2のサービスのマッチフィールド及びアクションを含み、前記第2のサービスは、前記スイッチの前記ハードウェアフローテーブルがサポートしないサービスであり、
    前記方法は更に、
    前記通信装置が、前記第2のサービスのデータパケットについての情報を前記コントローラにレポートするステップと、
    前記通信装置が、前記コントローラが前記第2のサービスの前記データパケットについての前記情報と前記フローテーブル構造とに従って送出した前記第2のサービスのフローエントリを受信し、前記第2のサービスの前記フローエントリを前記ソフトウェアフローテーブル中に構成するステップと、
    を含む、請求項11乃至14のいずれか一項に記載の方法。
  16. 前記第2のサービスの前記フローエントリを前記ソフトウェアフローテーブル中に構成する前記ステップの後に、更に、
    前記通信装置が、前記ソフトウェアフローテーブルから、前記第2のサービスの前記データパケットとマッチする第2の目標フローエントリを取得するステップと、
    前記通信装置が、前記予め構成されたサービスパスにおいて、前記第2の目標フローエントリとマッチする第2の目標サービスパスを決定するステップであって、決定された前記第2の目標サービスパスのマッチフィールドは、前記第2の目標フローエントリのマッチフィールド値に対応するマッチフィールドのうち入力ポートマッチフィールド及びパケットヘッダマッチフィールドを含み、決定された前記第2の目標サービスパスのアクションは、前記第2の目標フローエントリのアクション値のうち前記第2のサービスの前記データパケットの処理に用いられるアクションを含む、ステップと、
    前記通信装置が、前記第2の目標フローエントリに従って、前記第2の目標サービスパスに対応するサービスフローテーブルのサービスフローエントリを構成し、ここで前記サービスフローテーブルは完全マッチテーブルであり、前記サービスフローテーブルのマッチフィールドは全て前記第2の目標サービスパスのマッチフィールドであり、且つ、前記サービスフローエントリ中の第1のマッチフィールド値を前記第2の目標フローエントリ中のマッチフィールド値に構成し、前記サービスフローエントリ中の第2のマッチフィールド値を、前記第2のサービスの前記データパケットのパケットヘッダのヘッダフィールド値に構成し、前記サービスフローエントリ中のアクション値を前記第2の目標フローエントリの前記アクション値に構成するステップであって、前記第1のマッチフィールド値に対応するマッチフィールドは、前記第2の目標フローエントリ中の前記マッチフィールド値に対応するマッチフィールドに属し、前記第2のマッチフィールド値に対応するマッチフィールドは、前記第2のフローエントリ中のマッチフィールド値に対応するマッチフィールドに属さない、ステップと、
    前記通信装置が、前記第2のサービスの後続のデータパケットを後で受信したとき、前記サービスフローテーブルにおいて前記後続のデータパケットとマッチするサービスフローエントリを検索し、発見された前記サービスフローエントリのアクションに従って前記後続のデータパケットを処理するステップと、
    を含む請求項15に記載の方法。
  17. 前記サービスパスとハードウェアフローテーブルとの予め構成された対応関係に従って目標ハードウェアフローテーブルを決定する前記ステップの前に、前記方法は更に、サービスパスと対応するハードウェアフローテーブルとの対応関係を構成するステップを含み、具体的には、
    複数の物理フローテーブルと、前記物理フローテーブルとハードウェアフローテーブルとの対応関係とを構成するステップであって、前記複数の物理フローテーブルはそれぞれ、サポートされるマッチフィールド及びアクションを含み、各物理フローテーブルのマッチフィールドは、対応するハードウェアフローテーブルのマッチフィールドに含まれ、各物理フローテーブルのアクションのうち前記ハードウェアフローテーブルに書き込まれる必要のあるアクションは、前記対応するハードウェアフローテーブルのアクションに含まれる、ステップと、
    前記サービスパスと前記物理フローテーブルとの対応関係を構成するステップであって、各サービスパスのマッチフィールドは、全ての対応する物理フローテーブルのマッチフィールドに含まれ、各サービスパスのアクションは、全ての対応する前記物理フローテーブルのアクションに含まれる、ステップと、
    を含み、
    前記通信装置が、前記サービスパスとハードウェアフローテーブルとの予め構成された対応関係に従って目標ハードウェアフローテーブルを決定する前記ステップは、具体的には、
    前記通信装置が、前記第1の目標サービスパスと対応する前記第1の物理フローテーブルとの対応関係に従って、第1の物理フローテーブルを決定し、前記第1の物理フローテーブルと前記目標ハードウェアフローテーブルとの対応関係に従って、前記目標ハードウェアフローテーブルを決定するステップ、
    を含む、請求項11乃至16のいずれか一項に記載の方法。
  18. 前記フローテーブル構造は更に、前記複数のフローテーブルのタイプを含み、前記複数のフローテーブルの前記タイプは、ワイルドカードタイプである、
    請求項11乃至17のいずれか一項に記載の方法。
  19. フローエントリ構成を実施する通信装置であって、前記通信装置はハードウェア転送チップに接続され、インタフェースユニット、データパケット処理ユニット及びハードウェアフローテーブル構成ユニットを備え、
    前記インタフェースユニットは、第1のサービスのデータパケットについての情報を前記コントローラにレポートするように構成され、更に、前記コントローラが前記第1のサービスの前記データパケットについての前記情報とフローテーブル構造とに従って送出した前記第1のサービスのフローエントリを受信するように構成され、前記フローテーブル構造は、複数のフローテーブルによってサポートされるマッチフィールド及びアクションを含み、前記複数のフローテーブルの各々がサポートするマッチフィールドは前記第1のサービスのマッチフィールドを含み、前記複数のフローテーブルの各々がサポートするアクションは前記第1のサービスのアクションを含み、
    前記データパケット処理ユニットは、予め構成されたサービスパスにおいて、前記第1のサービスの前記フローエントリとマッチする第1の目標サービスパスを決定するように構成され、前記第1の目標サービスパスのマッチフィールドは前記第1のサービスの前記マッチフィールドを含み、前記目標サービスパスのアクションは前記第1のサービスの前記アクションを含み、前記データパケット処理ユニットは、前記サービスパスと前記ハードウェア転送チップのハードウェアフローテーブルとの予め構成された対応関係に従って、目標ハードウェアフローテーブルを決定するように構成され、前記目標ハードウェアフローテーブルは、前記第1の目標サービスパスによってサポートされるサービスをサポートし、
    前記ハードウェアフローテーブル構成ユニットは、前記第1のサービスの前記フローエントリに従って、前記目標ハードウェアフローテーブルのフローエントリを構成するように構成される、
    通信装置。
  20. 前記通信装置は、オープンフロー(OpenFlow)プロトコルを用いて前記コントローラと通信し、前記フローテーブルはOpenflowフローテーブルであり、
    前記複数のフローテーブルの前記マッチフィールドは全て前記OpenFlowプロトコルがサポートするマッチフィールドであり、前記複数のフローテーブルの前記アクションは全て前記OpenFlowプロトコルがサポートするアクションである、
    請求項19に記載の通信装置。
  21. 前記データパケット処理ユニットが、予め構成されたサービスパスにおいて、前記第1のサービスの前記フローエントリとマッチする第1の目標サービスパスを決定するように構成されることは、具体的には、
    前記データパケット処理ユニットが、前記第1のサービスの前記フローエントリをソフトウェアフローテーブル中に構成し、前記ソフトウェアフローテーブルから、前記第1のサービスの前記データパケットとマッチする第1の目標フローエントリを取得し、前記予め構成されたサービスパスにおいて、前記第1の目標フローエントリとマッチする前記第1の目標サービスパスを決定するように構成されることを含み、決定された前記第1の目標サービスパスのマッチフィールドは、前記第1の目標フローエントリのマッチフィールド値に対応するマッチフィールドのうち入力ポートマッチフィールド及びパケットヘッダマッチフィールドを含み、決定された前記第1の目標サービスパスのアクションは、前記第1の目標フローエントリのアクション値のうち前記第1のサービスの前記データパケットの処理に用いられるアクションを含み、
    前記ハードウェアフローテーブル構成ユニットは、具体的には、前記第1の目標フローエントリに従って、前記目標ハードウェアフローテーブルの前記フローエントリを構成するように構成される、
    請求項19又は20に記載の通信装置。
  22. 前記データパケット処理ユニットが、前記予め構成されたサービスパスにおいて、前記第1の目標フローエントリとマッチする前記目標サービスパスを決定するように構成されることは、具体的には、
    前記データパケット処理ユニットが、2つ以上の第1のターゲットフローエントリが存在する場合、前記第1のターゲットフローエントリを集約して複合フローエントリを生成し、ここで前記複合フローエントリのマッチフィールド値は、前記第1のターゲットフローエントリにおいて前記入力ポートマッチフィールド及び前記パケットヘッダマッチフィールドに対応するマッチフィールド値であり、前記複合フローエントリのアクション値は、前記第1のターゲットフローエントリにおいて前記第1のサービスの前記データパケットの処理に用いられるアクション値であり、且つ、前記予め構成されたサービスパスにおいて、前記複合フローエントリのマッチフィールド値に対応するマッチフィールドを含み且つ前記複合フローエントリのアクション値に対応するアクションを含む1つのサービスパスを、前記第1の目標サービスパスとして決定するように構成されることを含み、
    前記データパケット処理ユニットは、1つの第1の目標フローエントリが存在する場合、前記予め構成されたサービスパスにおいて、前記第1の目標フローエントリのマッチフィールド値に対応するマッチフィールドを含み且つ前記第1の目標フローエントリの前記アクション値に対応するアクションを含む1つのサービスパスを、前記第1の目標サービスパスとして決定するように構成される、
    請求項21に記載の通信装置。
  23. 前記複数のフローテーブルの各々がサポートする前記マッチフィールド及び前記アクションは更に、第2のサービスのマッチフィールド及びアクションを含み、前記第2のサービスは、前記スイッチの前記ハードウェアフローテーブルがサポートしないサービスであり、
    前記インタフェースユニットは更に、前記第2のサービスのデータパケットについての情報を前記コントローラにレポートし、前記コントローラが前記第2のサービスの前記データパケットについての前記情報と前記フローテーブル構造とに従って送出した前記第2のサービスのフローエントリを受信するように構成され、
    前記データパケット処理ユニットは更に、前記インタフェースユニットによって受信される前記第2のサービスの前記フローエントリを、前記ソフトウェアフローテーブル中に構成するように構成される、
    請求項19乃至11のいずれか一項に記載の通信装置。
  24. 前記通信装置は更にサービスフローテーブル構成ユニットを備え、
    前記データパケット処理ユニットは更に、前記ソフトウェアフローテーブルから、前記第2のサービスの前記データパケットとマッチする第2の目標フローエントリを取得し、前記予め構成されたサービスパスにおいて、前記第2の目標フローエントリとマッチする第2の目標サービスパスを決定するように構成され、決定された前記第2の目標サービスパスのマッチフィールドは、前記第2の目標フローエントリのマッチフィールド値に対応するマッチフィールドのうち入力ポートマッチフィールド及びパケットヘッダマッチフィールドを含み、決定された前記第2の目標サービスパスのアクションは、前記第2の目標フローエントリのアクション値のうち前記第2のサービスの前記データパケットの処理に用いられるアクションを含み、
    前記サービスフローテーブル構成ユニットは、前記第2の目標フローエントリに従って、前記第2の目標サービスパスに対応するサービスフローテーブルのサービスフローエントリを構成し、ここで前記サービスフローテーブルは完全マッチテーブルであり、前記サービスフローテーブルのマッチフィールドは全て前記第2の目標サービスパスのマッチフィールドであり、且つ、前記サービスフローエントリ中の第1のマッチフィールド値を前記第2の目標フローエントリ中のマッチフィールド値に構成し、前記サービスフローエントリ中の第2のマッチフィールド値を前記第2のサービスの前記データパケットのパケットヘッダのヘッダフィールド値に構成し、前記サービスフローエントリ中のアクション値を前記第2のフローエントリ中のアクション値に構成するように構成され、前記第1のマッチフィールド値に対応するマッチフィールドは、前記第2の目標フローエントリ中の前記マッチフィールド値に対応するマッチフィールドに属し、前記第2のマッチフィールド値に対応するマッチフィールドは、前記第2のフローエントリ中のマッチフィールド値に対応するマッチフィールドに属さず、
    前記データパケット処理ユニットは更に、前記第2のサービスの後続のデータパケットを後で受信したとき、前記サービスフローテーブルにおいて前記後続のデータパケットとマッチするサービスフローエントリを検索し、発見された前記サービスフローエントリのアクションに従って、前記後続のデータパケットを処理するように構成される、
    請求項19乃至23のいずれか一項に記載の通信装置。
  25. 前記通信装置は更に対応関係構成ユニットを備え、
    前記対応関係構成ユニットは、サービスパスと対応するハードウェアフローテーブルとの対応関係を構成するように構成され、具体的には、
    前記対応関係構成ユニットが、複数の物理フローテーブルと、前記物理フローテーブルとハードウェアフローテーブルとの対応関係とを構成するように構成されることであって、前記複数の物理フローテーブルはそれぞれ、サポートされるマッチフィールド及びアクションを含み、各物理フローテーブルのマッチフィールドは、対応するハードウェアフローテーブルのマッチフィールドに含まれ、各物理フローテーブルのアクションのうち前記ハードウェアフローテーブルに書き込まれる必要のあるアクションは、前記対応するハードウェアフローテーブルのアクションに含まれることと、前記対応関係構成ユニットが、前記サービスパスと前記物理フローテーブルとの対応関係を構成するように構成されることであって、各サービスパスのマッチフィールドは、全ての対応する物理フローテーブルのマッチフィールドに含まれ、各サービスパスのアクションは、全ての対応する前記物理フローテーブルのアクションに含まれることと、を含み、
    前記データパケット処理ユニットは、前記サービスパスとハードウェアフローテーブルとの予め構成された対応関係に従って、目標ハードウェアフローテーブルを決定するように構成され、具体的には、
    前記データパケット処理ユニットが、前記第1の目標サービスパスと対応する第1の物理フローテーブルとの対応関係に従って、前記第1の物理フローテーブルを決定し、前記第1の物理フローテーブルと対応する前記目標ハードウェアフローテーブルとの対応関係に従って、前記目標ハードウェアフローテーブルを決定するように構成されることを含む、
    請求項19乃至24のいずれか一項に記載の通信装置。
  26. プロセッサ及びメモリを備える、フローエントリ構成を実施する通信装置であって、
    前記メモリは、コンピュータ操作命令を記憶するように構成され、
    前記プロセッサは、前記メモリに記憶された前記コンピュータ操作命令を実行して、前記通信装置が、
    第1のサービスのデータパケットについての情報をコントローラにレポートするステップと、
    前記コントローラが前記第1のサービスの前記データパケットについての前記情報とフローテーブル構造とに従って送出した前記第1のサービスのフローエントリを受信するステップであって、前記フローテーブル構造は、複数のフローテーブルによってサポートされるマッチフィールド及びアクションを含み、前記複数のフローテーブルの各々がサポートするマッチフィールドは前記第1のサービスのマッチフィールドを含み、前記複数のフローテーブルの各々がサポートするアクションは前記第1のサービスのアクションを含む、ステップと、
    予め構成されたサービスパスにおいて、前記第1のサービスの前記フローエントリとマッチする第1の目標サービスパスを決定するステップであって、前記第1の目標サービスパスのマッチフィールドは前記第1のサービスの前記マッチフィールドを含み、前記目標サービスパスのアクションは前記第1のサービスの前記アクションを含む、ステップと、
    前記サービスパスと前記通信装置に接続されたハードウェア転送チップのハードウェアフローテーブルとの予め構成された対応関係に従って、目標ハードウェアフローテーブルを決定するステップであって、前記目標ハードウェアフローテーブルは、前記第1の目標サービスパスによってサポートされるサービスをサポートする、ステップと、
    前記第1のサービスの前記フローエントリに従って、前記目標ハードウェアフローテーブルのフローエントリを構成するステップと、
    を実施するように構成される、
    通信装置。
  27. 前記通信装置は、オープンフロー(OpenFlow)プロトコルを用いて前記コントローラと通信し、前記フローテーブルはOpenflowフローテーブルであり、
    前記複数のフローテーブルの前記マッチフィールドは全て前記OpenFlowプロトコルがサポートするマッチフィールドであり、前記複数のフローテーブルの前記アクションは全て前記OpenFlowプロトコルがサポートするアクションである、
    請求項26に記載の通信装置。
  28. 前記プロセッサは前記コンピュータ操作命令を実行して、前記通信装置が、具体的には、
    前記第1のサービスの前記フローエントリをソフトウェアフローテーブル中に構成するステップと、
    前記ソフトウェアフローテーブルから、前記第1のサービスの前記データパケットとマッチする第1の目標フローエントリを取得し、前記予め構成されたサービスパスにおいて、前記第1の目標フローエントリとマッチする前記第1の目標サービスパスを決定するステップであって、決定された前記第1の目標サービスパスのマッチフィールドは、前記第1の目標フローエントリのマッチフィールド値に対応するマッチフィールドのうち入力ポートマッチフィールド及びパケットヘッダマッチフィールドを含み、決定された前記第1の目標サービスパスのアクションは、前記第1の目標フローエントリのアクション値のうち前記第1のサービスの前記データパケットの処理に用いられるアクションを含む、ステップと、
    を実施するようにし、
    前記第1のサービスの前記フローエントリに従って、前記目標ハードウェアフローテーブルのフローエントリを構成する前記ステップは、具体的には、
    前記通信装置が、前記第1の目標フローエントリに従って、前記目標ハードウェアフローテーブルの前記フローエントリを構成するステップ、
    を含む、請求項26又は27に記載の通信装置。
  29. 前記プロセッサは前記コンピュータ操作命令を実行して、前記通信装置が、具体的には、
    2つ以上の第1のターゲットフローエントリが存在する場合、前記第1のターゲットフローエントリを集約して複合フローエントリを生成し、前記複合フローエントリのマッチフィールド値は、前記第1のターゲットフローエントリにおいて前記入力ポートマッチフィールド及び前記パケットヘッダマッチフィールドに対応するマッチフィールド値であり、前記複合フローエントリのアクション値は、前記第1のターゲットフローエントリにおいて前記第1のサービスの前記データパケットの処理に用いられるアクション値であり、且つ、前記予め構成されたサービスパスにおいて、前記複合フローエントリのマッチフィールド値に対応するマッチフィールドを含み且つ前記複合フローエントリのアクション値に対応するアクションを含む1つのサービスパスを、前記第1の目標サービスパスとして決定するステップと、
    1つの第1の目標フローエントリが存在する場合、前記予め構成されたサービスパスにおいて、前記第1の目標フローエントリのマッチフィールド値に対応するマッチフィールドを含み且つ前記第1の目標フローエントリの前記アクション値に対応するアクションを含む1つのサービスパスを、前記第1の目標サービスパスとして決定するステップと、
    を実施するようにする、請求項28に記載の通信装置。
  30. 前記複数のフローテーブルの各々がサポートする前記マッチフィールド及び前記アクションは更に、第2のサービスのマッチフィールド及びアクションを含み、前記第2のサービスは、前記スイッチの前記ハードウェアフローテーブルがサポートしないサービスであり、
    前記プロセッサは前記コンピュータ操作命令を実行して、前記通信装置が、更に、
    前記第2のサービスのデータパケットについての情報を前記コントローラにレポートするステップと、
    前記コントローラが前記第2のサービスの前記データパケットについての前記情報と前記フローテーブル構造とに従って送出した前記第2のサービスのフローエントリを受信し、前記第2のサービスの前記フローエントリを前記ソフトウェアフローテーブル中に構成するステップと、
    を実施するようにする、請求項26乃至29のいずれか一項に記載の通信装置。
  31. 前記プロセッサは前記コンピュータ操作命令を実行して、前記通信装置が、更に、
    前記ソフトウェアフローテーブルから、前記第2のサービスの前記データパケットとマッチする第2の目標フローエントリを取得するステップと、
    前記予め構成されたサービスパスにおいて、前記第2の目標フローエントリとマッチする第2の目標サービスパスを決定するステップであって、決定された前記第2の目標サービスパスのマッチフィールドは、前記第2の目標フローエントリのマッチフィールド値に対応するマッチフィールドのうち入力ポートマッチフィールド及びパケットヘッダマッチフィールドを含み、決定された前記第2の目標サービスパスのアクションは、前記第2の目標フローエントリのアクション値のうち前記第2のサービスの前記データパケットの処理に用いられるアクションを含む、ステップと、
    前記第2の目標フローエントリに従って、前記第2の目標サービスパスに対応するサービスフローテーブルのサービスフローエントリを構成し、ここで前記サービスフローテーブルは完全マッチテーブルであり、前記サービスフローテーブルのマッチフィールドは全て前記第2の目標サービスパスのマッチフィールドであり、且つ、前記サービスフローエントリ中の第1のマッチフィールド値を前記第2の目標フローエントリ中のマッチフィールド値に構成し、前記サービスフローエントリ中の第2のマッチフィールド値を、前記第2のサービスの前記データパケットのパケットヘッダのヘッダフィールド値に構成し、前記サービスフローエントリ中のアクション値を前記第2の目標フローエントリの前記アクション値に構成するステップであって、前記第1のマッチフィールド値に対応するマッチフィールドは、前記第2の目標フローエントリ中の前記マッチフィールド値に対応するマッチフィールドに属し、前記第2のマッチフィールド値に対応するマッチフィールドは、前記第2のフローエントリ中のマッチフィールド値に対応するマッチフィールドに属さない、ステップと、
    前記第2のサービスの後続のデータパケットを後で受信したとき、前記サービスフローテーブルにおいて前記後続のデータパケットとマッチするサービスフローエントリを検索し、発見された前記サービスフローエントリのアクションに従って前記後続のデータパケットを処理するステップと、
    前記予め構成されたサービスパスにおいて、前記第2のフローエントリとマッチする第2の目標サービスパスを決定するステップであって、決定された前記第2の目標サービスパスのマッチフィールドは、前記第2のフローエントリのマッチフィールド値に対応するマッチフィールドのうち入力ポートマッチフィールド及びパケットヘッダマッチフィールドを含み、前記第2の目標サービスパスのアクションは、前記第2のフローエントリのアクション値のうち前記第2のデータパケットの処理に用いられるアクション値に対応するアクションを含む、ステップと、
    前記第2のフローエントリに従って、前記第2の目標サービスパスに対応するサービスフローテーブルのサービスフローエントリを構成し、ここで前記サービスフローテーブルは完全マッチテーブルであり、前記サービスフローテーブルのマッチフィールドは全て前記第2の目標サービスパスのマッチフィールドであり、且つ、前記サービスフローエントリ中の第1のマッチフィールド値を前記第1のフローエントリのマッチフィールド値として構成し、前記サービスフローエントリ中の第2のマッチフィールド値を前記第2のデータパケットのパケットヘッダのヘッダフィールド値として構成し、前記サービスフローエントリ中のアクション値を前記第2のフローエントリの前記アクション値として構成するステップであって、前記第1のマッチフィールド値に対応するマッチフィールドは、前記第1のフローエントリ中の前記マッチフィールド値に対応するマッチフィールドに属し、前記第2のマッチフィールド値に対応するマッチフィールドは、前記第2のフローエントリ中のマッチフィールド値に対応するマッチフィールドに属さない、ステップと、
    前記第2のサービスの後続のデータパケットを後で受信したとき、前記サービスフローテーブルにおいて前記後続のデータパケットとマッチするサービスフローエントリを検索し、発見された前記サービスフローエントリのアクションに従って前記後続のデータパケットを処理するステップと、
    を実施するようにする、請求項30に記載の通信装置。
  32. 前記プロセッサは前記コンピュータ操作命令を実行して、前記通信装置が、更に、サービスパスと対応するハードウェアフローテーブルとの対応関係を構成するステップを実施するようにし、サービスパスと対応するハードウェアフローテーブルとの対応関係を構成する前記ステップは、具体的には、
    複数の物理フローテーブルと、前記物理フローテーブルとハードウェアフローテーブルとの対応関係とを構成するステップであって、前記複数の物理フローテーブルはそれぞれ、サポートされるマッチフィールド及びアクションを含み、各物理フローテーブルのマッチフィールドは、対応するハードウェアフローテーブルのマッチフィールドに含まれ、各物理フローテーブルのアクションのうち前記ハードウェアフローテーブルに書き込まれる必要のあるアクションは、前記対応するハードウェアフローテーブルのアクションに含まれる、ステップと、
    前記サービスパスと前記物理フローテーブルとの対応関係を構成するステップであって、各サービスパスのマッチフィールドは、全ての対応する物理フローテーブルのマッチフィールドに含まれ、各サービスパスのアクションは、全ての対応する前記物理フローテーブルのアクションに含まれる、ステップと、
    を含み、
    前記プロセッサが前記コンピュータ操作命令を実行して、前記通信装置が、前記サービスパスと前記ハードウェアフローテーブルとの前記予め構成された対応関係に従って、前記目標ハードウェアフローテーブルを決定するようにすることは、具体的には、
    前記プロセッサが前記コンピュータ操作命令を実行して、前記通信装置が、具体的には、前記第1の目標サービスパスと対応する前記第1の物理フローテーブルとの対応関係に従って第1の物理フローテーブルを決定し、前記第1の物理フローテーブルと前記目標ハードウェアフローテーブルとの対応関係に従って、前記目標ハードウェアフローテーブルを決定するようにすることを含む、
    請求項26乃至31のいずれか一項に記載の通信装置。
  33. ハードウェア転送チップと、
    請求項19乃至25のいずれか一項に記載の通信装置、又は請求項26乃至32のいずれか一項に記載の通信装置と、
    を備えるスイッチ。
  34. コントローラと、請求項33に記載のスイッチとを備える通信システム。
JP2017519755A 2014-06-30 2014-10-27 フローエントリ構成の方法、装置及びシステム Active JP6490205B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CNPCT/CN2014/081183 2014-06-30
CN2014081183 2014-06-30
PCT/CN2014/089530 WO2016000362A1 (zh) 2014-06-30 2014-10-27 一种配置流表项的方法、装置和系统

Publications (2)

Publication Number Publication Date
JP2017520214A true JP2017520214A (ja) 2017-07-20
JP6490205B2 JP6490205B2 (ja) 2019-03-27

Family

ID=55018375

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017519755A Active JP6490205B2 (ja) 2014-06-30 2014-10-27 フローエントリ構成の方法、装置及びシステム

Country Status (9)

Country Link
US (2) US10305777B2 (ja)
EP (1) EP3142310B1 (ja)
JP (1) JP6490205B2 (ja)
KR (1) KR101886291B1 (ja)
CN (1) CN106664261B (ja)
AU (1) AU2014399458B2 (ja)
CA (1) CA2950206C (ja)
RU (1) RU2651143C1 (ja)
WO (1) WO2016000362A1 (ja)

Families Citing this family (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9781004B2 (en) 2014-10-16 2017-10-03 Cisco Technology, Inc. Discovering and grouping application endpoints in a network environment
US20160315866A1 (en) * 2015-04-27 2016-10-27 Telefonaktiebolaget L M Ericsson (Publ) Service based intelligent packet-in mechanism for openflow switches
US10348619B2 (en) * 2015-07-31 2019-07-09 Nicira, Inc. Generating conjunctive match flow entries
CN107547293B (zh) * 2016-06-29 2020-09-08 新华三技术有限公司 一种流路径探测方法和装置
US10560328B2 (en) 2017-04-20 2020-02-11 Cisco Technology, Inc. Static network policy analysis for networks
US10623264B2 (en) 2017-04-20 2020-04-14 Cisco Technology, Inc. Policy assurance for service chaining
US10826788B2 (en) 2017-04-20 2020-11-03 Cisco Technology, Inc. Assurance of quality-of-service configurations in a network
US20180351788A1 (en) 2017-05-31 2018-12-06 Cisco Technology, Inc. Fault localization in large-scale network policy deployment
US10581694B2 (en) 2017-05-31 2020-03-03 Cisco Technology, Inc. Generation of counter examples for network intent formal equivalence failures
US10693738B2 (en) 2017-05-31 2020-06-23 Cisco Technology, Inc. Generating device-level logical models for a network
US10812318B2 (en) 2017-05-31 2020-10-20 Cisco Technology, Inc. Associating network policy objects with specific faults corresponding to fault localizations in large-scale network deployment
US10505816B2 (en) 2017-05-31 2019-12-10 Cisco Technology, Inc. Semantic analysis to detect shadowing of rules in a model of network intents
US10439875B2 (en) 2017-05-31 2019-10-08 Cisco Technology, Inc. Identification of conflict rules in a network intent formal equivalence failure
US10623271B2 (en) 2017-05-31 2020-04-14 Cisco Technology, Inc. Intra-priority class ordering of rules corresponding to a model of network intents
US10554483B2 (en) 2017-05-31 2020-02-04 Cisco Technology, Inc. Network policy analysis for networks
US10904101B2 (en) 2017-06-16 2021-01-26 Cisco Technology, Inc. Shim layer for extracting and prioritizing underlying rules for modeling network intents
US10587621B2 (en) 2017-06-16 2020-03-10 Cisco Technology, Inc. System and method for migrating to and maintaining a white-list network security model
US11469986B2 (en) 2017-06-16 2022-10-11 Cisco Technology, Inc. Controlled micro fault injection on a distributed appliance
US10686669B2 (en) 2017-06-16 2020-06-16 Cisco Technology, Inc. Collecting network models and node information from a network
US10574513B2 (en) 2017-06-16 2020-02-25 Cisco Technology, Inc. Handling controller and node failure scenarios during data collection
US11150973B2 (en) 2017-06-16 2021-10-19 Cisco Technology, Inc. Self diagnosing distributed appliance
US11645131B2 (en) 2017-06-16 2023-05-09 Cisco Technology, Inc. Distributed fault code aggregation across application centric dimensions
US10547715B2 (en) 2017-06-16 2020-01-28 Cisco Technology, Inc. Event generation in response to network intent formal equivalence failures
US10498608B2 (en) 2017-06-16 2019-12-03 Cisco Technology, Inc. Topology explorer
US10673702B2 (en) 2017-06-19 2020-06-02 Cisco Technology, Inc. Validation of layer 3 using virtual routing forwarding containers in a network
US10432467B2 (en) 2017-06-19 2019-10-01 Cisco Technology, Inc. Network validation between the logical level and the hardware level of a network
US10341184B2 (en) 2017-06-19 2019-07-02 Cisco Technology, Inc. Validation of layer 3 bridge domain subnets in in a network
US10536337B2 (en) 2017-06-19 2020-01-14 Cisco Technology, Inc. Validation of layer 2 interface and VLAN in a networked environment
US10554493B2 (en) 2017-06-19 2020-02-04 Cisco Technology, Inc. Identifying mismatches between a logical model and node implementation
US10652102B2 (en) 2017-06-19 2020-05-12 Cisco Technology, Inc. Network node memory utilization analysis
US11343150B2 (en) 2017-06-19 2022-05-24 Cisco Technology, Inc. Validation of learned routes in a network
US10700933B2 (en) 2017-06-19 2020-06-30 Cisco Technology, Inc. Validating tunnel endpoint addresses in a network fabric
US10348564B2 (en) 2017-06-19 2019-07-09 Cisco Technology, Inc. Validation of routing information base-forwarding information base equivalence in a network
US10560355B2 (en) 2017-06-19 2020-02-11 Cisco Technology, Inc. Static endpoint validation
US10505817B2 (en) 2017-06-19 2019-12-10 Cisco Technology, Inc. Automatically determining an optimal amount of time for analyzing a distributed network environment
US10411996B2 (en) 2017-06-19 2019-09-10 Cisco Technology, Inc. Validation of routing information in a network fabric
US10218572B2 (en) 2017-06-19 2019-02-26 Cisco Technology, Inc. Multiprotocol border gateway protocol routing validation
US10437641B2 (en) 2017-06-19 2019-10-08 Cisco Technology, Inc. On-demand processing pipeline interleaved with temporal processing pipeline
US10528444B2 (en) 2017-06-19 2020-01-07 Cisco Technology, Inc. Event generation in response to validation between logical level and hardware level
US10567228B2 (en) 2017-06-19 2020-02-18 Cisco Technology, Inc. Validation of cross logical groups in a network
US10567229B2 (en) 2017-06-19 2020-02-18 Cisco Technology, Inc. Validating endpoint configurations between nodes
US10547509B2 (en) 2017-06-19 2020-01-28 Cisco Technology, Inc. Validation of a virtual port channel (VPC) endpoint in the network fabric
US10623259B2 (en) 2017-06-19 2020-04-14 Cisco Technology, Inc. Validation of layer 1 interface in a network
US10644946B2 (en) 2017-06-19 2020-05-05 Cisco Technology, Inc. Detection of overlapping subnets in a network
US10805160B2 (en) 2017-06-19 2020-10-13 Cisco Technology, Inc. Endpoint bridge domain subnet validation
US10333787B2 (en) 2017-06-19 2019-06-25 Cisco Technology, Inc. Validation of L3OUT configuration for communications outside a network
US10812336B2 (en) 2017-06-19 2020-10-20 Cisco Technology, Inc. Validation of bridge domain-L3out association for communication outside a network
US11283680B2 (en) 2017-06-19 2022-03-22 Cisco Technology, Inc. Identifying components for removal in a network configuration
US10587484B2 (en) 2017-09-12 2020-03-10 Cisco Technology, Inc. Anomaly detection and reporting in a network assurance appliance
US10587456B2 (en) 2017-09-12 2020-03-10 Cisco Technology, Inc. Event clustering for a network assurance platform
US10554477B2 (en) 2017-09-13 2020-02-04 Cisco Technology, Inc. Network assurance event aggregator
US10333833B2 (en) 2017-09-25 2019-06-25 Cisco Technology, Inc. Endpoint path assurance
CN107623635B (zh) * 2017-10-30 2020-07-21 深圳市德赛微电子技术有限公司 一种网络交换芯片可识别流表的智能匹配方法
US11102053B2 (en) 2017-12-05 2021-08-24 Cisco Technology, Inc. Cross-domain assurance
CN108256045A (zh) * 2018-01-12 2018-07-06 福建星瑞格软件有限公司 实时流数据的结构化解析、流计算的方法及计算机设备
US10873509B2 (en) 2018-01-17 2020-12-22 Cisco Technology, Inc. Check-pointing ACI network state and re-execution from a check-pointed state
US10572495B2 (en) 2018-02-06 2020-02-25 Cisco Technology Inc. Network assurance database version compatibility
US10812315B2 (en) 2018-06-07 2020-10-20 Cisco Technology, Inc. Cross-domain network assurance
US11019027B2 (en) 2018-06-27 2021-05-25 Cisco Technology, Inc. Address translation for external network appliance
US10911495B2 (en) 2018-06-27 2021-02-02 Cisco Technology, Inc. Assurance of security rules in a network
US11218508B2 (en) 2018-06-27 2022-01-04 Cisco Technology, Inc. Assurance of security rules in a network
US11044273B2 (en) 2018-06-27 2021-06-22 Cisco Technology, Inc. Assurance of security rules in a network
US10659298B1 (en) 2018-06-27 2020-05-19 Cisco Technology, Inc. Epoch comparison for network events
US10904070B2 (en) 2018-07-11 2021-01-26 Cisco Technology, Inc. Techniques and interfaces for troubleshooting datacenter networks
US10826770B2 (en) 2018-07-26 2020-11-03 Cisco Technology, Inc. Synthesis of models for networks using automated boolean learning
US10616072B1 (en) 2018-07-27 2020-04-07 Cisco Technology, Inc. Epoch data interface
CN109450798B (zh) * 2018-12-13 2022-07-12 郑州云海信息技术有限公司 路由表信息的管理方法和计算机可读存储介质
US11470009B2 (en) * 2019-10-18 2022-10-11 Arista Networks, Inc. Implementing multi-table OpenFlow using a parallel hardware table lookup architecture
CN111131050A (zh) * 2019-12-31 2020-05-08 盛科网络(苏州)有限公司 流表的匹配方法及装置
CN114726788B (zh) * 2022-05-06 2024-02-02 深圳星云智联科技有限公司 应用于dpu的报文传输方法及相关装置
CN114978809B (zh) * 2022-06-23 2024-01-12 惠州华阳通用电子有限公司 一种车载以太网vlan节点配置方法
CN117834461A (zh) * 2022-09-28 2024-04-05 中兴通讯股份有限公司 业务数据处理方法、设备及计算机可读存储介质
CN117041147B (zh) * 2023-10-08 2024-02-23 井芯微电子技术(天津)有限公司 智能网卡设备、主机设备和方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012128282A (ja) * 2010-12-16 2012-07-05 Sanyo Electric Co Ltd 投写型映像表示装置
JP2013183397A (ja) * 2012-03-05 2013-09-12 Kddi Corp フロー単位パケット転送のための宛先検索装置および検索方法
WO2013180207A1 (ja) * 2012-05-31 2013-12-05 日本電気株式会社 制御装置、通信システム、スイッチ制御方法及びプログラム
WO2014101777A1 (zh) * 2012-12-28 2014-07-03 华为技术有限公司 流表匹配方法和装置以及交换机

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1001631A1 (en) 1998-11-09 2000-05-17 CANAL+ Société Anonyme Signalling of bouquet information in a digital transmission system
US7826364B1 (en) * 2006-02-09 2010-11-02 Verizon Services Corp. Dynamic service-aware flow control in packet networks
US7583677B1 (en) * 2006-11-03 2009-09-01 Juniper Networks, Inc. Dynamic flow-based multi-path load balancing with quality of service assurances
US8804710B2 (en) 2008-12-29 2014-08-12 Juniper Networks, Inc. System architecture for a scalable and distributed multi-stage switch fabric
US8154996B2 (en) 2008-09-11 2012-04-10 Juniper Networks, Inc. Methods and apparatus for flow control associated with multi-staged queues
WO2011043379A1 (ja) * 2009-10-06 2011-04-14 日本電気株式会社 ネットワークシステムとコントローラと方法とプログラム
US9577931B2 (en) * 2010-09-08 2017-02-21 Nec Corporation Switching system, switching control system, and storage medium
WO2012096131A1 (ja) 2011-01-13 2012-07-19 日本電気株式会社 ネットワークシステム、及び経路制御方法
WO2012128282A1 (ja) 2011-03-23 2012-09-27 日本電気株式会社 通信制御システム、スイッチノード、及び通信制御方法
US8711860B2 (en) * 2011-12-22 2014-04-29 Telefonaktiebolaget L M Ericsson (Publ) Controller for flexible and extensible flow processing in software-defined networks
US20130223226A1 (en) 2012-02-29 2013-08-29 Dell Products, Lp System and Method for Providing a Split Data Plane in a Flow-Based Switching Device
CN102685006A (zh) * 2012-05-03 2012-09-19 中兴通讯股份有限公司 一种转发数据报文的方法及装置
CN103703726B (zh) 2012-06-29 2017-04-26 华为技术有限公司 数据报文的控制方法、设备及系统
CN102843299A (zh) * 2012-09-12 2012-12-26 盛科网络(苏州)有限公司 基于TCAM实现Openflow多级流表的方法及系统
US20140146664A1 (en) 2012-11-26 2014-05-29 Level 3 Communications, Llc Apparatus, system and method for packet switching
CN103152264B (zh) 2013-02-25 2015-11-25 北京百度网讯科技有限公司 Openflow网络和IP网络互连通信方法及Openflow子网边缘交换机
US8964752B2 (en) * 2013-02-25 2015-02-24 Telefonaktiebolaget L M Ericsson (Publ) Method and system for flow table lookup parallelization in a software defined networking (SDN) system
WO2014131429A1 (en) * 2013-02-26 2014-09-04 Telefonaktiebolaget L M Ericsson (Publ) Traffic recovery in openflow networks
CA2903422A1 (en) * 2013-03-06 2014-09-12 Seiji Oikawa Communication system, switch, control apparatus, packet processing method, and program
US20160065427A1 (en) * 2013-03-28 2016-03-03 Nec Corporation Communication system, control apparatus, information collection method, and program
CN103259718B (zh) * 2013-04-18 2016-12-28 华为技术有限公司 一种流表转换方法和装置
JPWO2014192259A1 (ja) * 2013-05-27 2017-02-23 日本電気株式会社 ネットワーク制御装置、ネットワーク制御方法、プログラムおよび通信システム
CN103428094B (zh) 2013-08-12 2016-08-17 杭州华三通信技术有限公司 开放流OpenFlow系统中的报文转发方法及装置
US9602398B2 (en) * 2013-09-15 2017-03-21 Nicira, Inc. Dynamically generating flows with wildcard fields
US9363180B2 (en) * 2013-11-04 2016-06-07 Telefonkatiebolaget L M Ericsson (Publ) Service chaining in a cloud environment using Software Defined Networking
CN103685033B (zh) * 2013-12-19 2017-01-04 武汉邮电科学研究院 Sdn架构中支持分组交换和电路交换的通用流表及方法
CN103888369B (zh) 2014-04-10 2019-02-05 广州市高科通信技术股份有限公司 以太网通信方法、系统和sdn交换机

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012128282A (ja) * 2010-12-16 2012-07-05 Sanyo Electric Co Ltd 投写型映像表示装置
JP2013183397A (ja) * 2012-03-05 2013-09-12 Kddi Corp フロー単位パケット転送のための宛先検索装置および検索方法
WO2013180207A1 (ja) * 2012-05-31 2013-12-05 日本電気株式会社 制御装置、通信システム、スイッチ制御方法及びプログラム
WO2014101777A1 (zh) * 2012-12-28 2014-07-03 华为技术有限公司 流表匹配方法和装置以及交换机

Also Published As

Publication number Publication date
EP3142310A1 (en) 2017-03-15
AU2014399458B2 (en) 2018-01-18
EP3142310B1 (en) 2022-06-15
US10659342B2 (en) 2020-05-19
KR101886291B1 (ko) 2018-09-06
US10305777B2 (en) 2019-05-28
KR20170009927A (ko) 2017-01-25
CN106664261A (zh) 2017-05-10
US20190245772A1 (en) 2019-08-08
WO2016000362A1 (zh) 2016-01-07
CA2950206C (en) 2019-03-05
RU2651143C1 (ru) 2018-04-18
CA2950206A1 (en) 2016-01-07
AU2014399458A1 (en) 2016-12-15
EP3142310A4 (en) 2017-04-26
US20170111259A1 (en) 2017-04-20
CN106664261B (zh) 2019-10-25
JP6490205B2 (ja) 2019-03-27

Similar Documents

Publication Publication Date Title
JP6490205B2 (ja) フローエントリ構成の方法、装置及びシステム
US10581700B2 (en) Service flow processing method, apparatus, and device
EP3633929B1 (en) Method for sending virtual extensible local area network packet, computer device, and computer readable medium
US10063470B2 (en) Data center network system based on software-defined network and packet forwarding method, address resolution method, routing controller thereof
US10122623B2 (en) Control device and control method in SDN network
US20160301603A1 (en) Integrated routing method based on software-defined network and system thereof
EP2725749B1 (en) Method, apparatus and system for processing service flow
EP2667553B1 (en) Packet processing method, device and system
US10742697B2 (en) Packet forwarding apparatus for handling multicast packet
CN107733799A (zh) 一种报文传输方法和装置
WO2015014187A1 (zh) 一种支持多租户的数据转发方法和装置
JP6618610B2 (ja) ルーティング管理
WO2018068588A1 (zh) 提供组播业务的方法和软件定义网络控制器
JP7101308B2 (ja) 高速転送テーブル作成
WO2015106623A1 (zh) 一种配置、下发流表项的方法及装置
WO2014050091A1 (en) Communication system, communication method, information processing apparatus, communication control method, and program
US10230647B2 (en) Data packet processing method and device
US10104018B2 (en) Method, apparatus, and system for controlling forwarding of service data in virtual network
US20150263954A1 (en) Communication system, virtual machine server, virtual network management apparatus, network control method, and program
US20150263990A1 (en) Network device, control method, and program
WO2016177180A1 (zh) 一种OpenFlow交换机能力上报的方法及装置
EP3503484A1 (en) Message transmission method, device and network system
US11523443B2 (en) Extraction, conversion, and transmission of user packet from encapsulated packet
US20150381775A1 (en) Communication system, communication method, control apparatus, control apparatus control method, and program
JP2017103703A (ja) ネットワークシステム、制御装置、及びプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170223

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170223

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180207

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180403

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20180626

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180831

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190226

R150 Certificate of patent or registration of utility model

Ref document number: 6490205

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