JP5849162B2 - 分散ネットワーク制御システムにおけるチャーン化を最小限にするためのトランザクションの使用 - Google Patents

分散ネットワーク制御システムにおけるチャーン化を最小限にするためのトランザクションの使用 Download PDF

Info

Publication number
JP5849162B2
JP5849162B2 JP2014556838A JP2014556838A JP5849162B2 JP 5849162 B2 JP5849162 B2 JP 5849162B2 JP 2014556838 A JP2014556838 A JP 2014556838A JP 2014556838 A JP2014556838 A JP 2014556838A JP 5849162 B2 JP5849162 B2 JP 5849162B2
Authority
JP
Japan
Prior art keywords
controller
input
output
changes
physical
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014556838A
Other languages
English (en)
Other versions
JP2015507448A (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.)
Nicira Inc
Original Assignee
Nicira Inc
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 Nicira Inc filed Critical Nicira Inc
Publication of JP2015507448A publication Critical patent/JP2015507448A/ja
Application granted granted Critical
Publication of JP5849162B2 publication Critical patent/JP5849162B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0894Policy-based network configuration management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0895Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • H04L41/122Discovery or management of network topologies of virtualised topologies, e.g. software-defined networks [SDN] or network function virtualisation [NFV]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • 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/72Routing based on the source address
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • 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
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Hardware Redundancy (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、分散ネットワーク制御システムにおけるチャーン化を最小限にするためのトランザクションの使用に関する。
現在の企業の多くは、種々の接続、アプリケーション及びシステムをサポートするスイッチ、ハブ、ルータ、サーバ、ワークステーション及び他のネットワーク装置を含む大規模な高度ネットワークを有する。仮想マシンの移動、動的な作業負荷、マルチテナンシ、並びに顧客別のサービス品質及びセキュリティ構成を含むコンピュータのネットワーク化の更なる高度化により、それに対応できるネットワーク制御システムが必要とされる。これらの大規模な高度ネットワークを分散して処理するために、分散ネットワーク制御システムが提供されている。しかし、多くの場合、分散ネットワーク制御システムの1つの構成要素により行われたネットワーク状態の変更がシステムの残りの部分を通じて前後に波及することにより、分散ネットワーク制御システムにおいてチャーン化が生じる。
本発明のいくつかの実施形態は、複数のネットワーク制御器により形成される階層の上位レイヤの第1の制御器及び第2の制御器から入力を受信する特定のネットワーク制御器を提供する。特定の制御器は、第1の制御器及び第2の制御器からの入力を処理し、第1の制御器からの入力のみを処理することにより生成された場合の出力と同一になるように出力を生成する。
特に、いくつかの実施形態の特定の制御器は、第1の制御器から第1の入力セットを受信し、第2の制御器から第2の入力セットを受信する。その後、特定の制御器は、第1の入力セットを使用して出力セットの計算を開始する。第1の制御器の障害発生後、特定の制御器は、第2の制御器から第3の入力セットを受信する。第3の入力セットと第1の入力セット又は第2の入力セットとは、まとめて処理され且つ別の入力グループとは別に処理される入力グループを形成する。
その後、特定の制御器は、入力グループの全ての入力が特定の制御器に到着したことを示すインジケータを第2の制御器から受信する。特定の制御器は、インジケータを受信し且つ出力セットを完全に計算した後、第4の制御器又は被管理転送要素に出力セットを送出する。その後、第4の制御器は、特定の制御器からの出力セットを処理し、処理された出力を被管理転送要素に送出する。
本発明のいくつかの実施形態は、階層における上位レイヤの複数の異なる制御器の各々から入力を受信する階層の中間レイヤのネットワーク制御器を更に提供する。上位レイヤの制御器からの入力は、複数の異なるトランザクションとして供給される。いくつかの実施形態において、下位レイヤの制御器は、異なる制御器から受信した入力から出力を生成し、生成された出力を単一のトランザクションとして階層において更に下位のレイヤの制御器のセットに出力する。
詳細には、中間レイヤのネットワーク制御器は、上位レイヤのネットワーク制御器のセットから複数の入力グループを受信する。各入力グループは、まとめて処理され且つ別の入力グループとは別に処理される。入力グループが特定の条件を満たす場合、中間レイヤのネットワーク制御器は、入力グループのうちの2つ以上をまとめて処理して出力セットを生成する。入力グループが特定の条件を満たさない場合、ネットワーク制御器は、1つの入力グループ毎にまとめて処理することにより入力グループを処理して出力セットを生成する。その後、ネットワーク制御器は、下位レイヤの制御器のセットに生成された出力セットを送出する。
上記の発明の概要は、本発明のいくつかの実施形態の簡単な説明であることを意図する。これは、本明細書において開示される全ての発明の主題の説明又は概要であることを意図しない。以下の発明を実施するための形態及びそこで参照される図面により、発明の概要において説明した実施形態及び他の実施形態を更に説明する。従って、本明細書により説明する全ての実施形態を理解するためには、発明の概要、発明を実施するための形態及び図面を全て読む必要がある。更に、請求項は、発明の主題の主旨から逸脱せずに他の特定の形態で実現可能であるため、発明の概要、発明を実施するための形態及び図面における例示的な詳細により限定されず、添付の特許請求の範囲により定義される。
本発明の新規の特徴を添付の特許請求の範囲に記載する。しかし、説明のために、本発明の複数の実施形態を以下の図面において記載する。
図1は、ネットワーク制御器の階層の例を示す図である。 図2は、いくつかの実施形態のネットワーク制御器のアーキテクチャを示す図である。 図3は、論理制御器から入力を受信する物理制御器を概念的に示す図である。 図4は、ネットワーク制御器の階層における上位レイヤに存在する送出元制御器のフェイルオーバを処理するためにいくつかの実施形態が実行する処理を概念的に示す図である。 図5は、論理制御器から入力を受信する物理制御器を概念的に示す図である。 図6は、複数の論理制御器から入力の変更を受信する物理制御器を概念的に示す図である。 図7は、複数のトランザクションを形成する入力の変更からトランザクションの出力の変更のセットを生成するためにいくつかの実施形態が実行する処理を概念的に示す図である。 図8は、ネットワーク制御器がユーザからの要求を被管理転送要素に分散し且つ要求に対する応答をユーザに返すネットワーク制御システムを示す図である。 図9は、物理制御器のセットから受信した汎用応答を集約するいくつかの実施形態の論理制御器を示す図である。 図10は、制御器の階層における下位レイヤの下位制御器からの応答のセットを集約して階層における上位レイヤの上位制御器に渡す単一の応答を生成するためにいくつかの実施形態が実行する処理を概念的に示す図である。 図11は、本発明のいくつかの実施形態が実現される電子システムを概念的に示す図である。
以下の本発明の詳細な説明において、本発明の多くの詳細、例及び実施形態を記載及び説明する。しかし、本発明は記載される実施形態に限定されず、説明する特定の詳細及び例のいくつかを用いずに実施されてもよいことが当業者には明らかになるだろう。
いくつかの実施形態は、ネットワーク制御器が被管理転送要素のセットの転送挙動を定義するために被管理転送要素のセットにプッシュする転送状態情報を計算するネットワーク制御システムを提供する。いくつかの実施形態において、ネットワーク制御器は、複数の制御器レイヤを有する階層を形成する。論理制御器のセットは、階層の最上位レイヤに位置し、入力された論理制御プレーンデータから汎用物理制御プレーンデータを生成する。論理制御器のセットの下位レイヤは物理制御器のセットであり、いくつかの実施形態において、これは汎用物理制御プレーンデータを被管理転送要素に特有の物理制御プレーンデータにカスタマイズする。
いくつかの実施形態において、物理制御器は、被管理転送要素に対するカスタマイズを実際に実行するシャーシ制御器のセットに汎用物理制御プレーンデータを中継する。これらの実施形態において、シャーシ制御器は、制御器により形成される階層の最下位レイヤに存在する。物理制御器又はシャーシ制御器は被管理転送要素とインタフェースし、被管理転送要素にカスタマイズ済物理制御プレーンデータを供給する。被管理転送要素は、制御器から受信したデータを使用して、ネットワークにおいてデータを転送する。
階層の上位レイヤの特定の制御器は、階層における下位レイヤの別の制御器に自身の出力データを供給する。いくつかの実施形態において、特定の制御器は、特定の制御器に対するホットスタンドバイ又は冗長制御器として動作する(例えば、階層の下位レイヤの制御器に同一の出力データを供給する)バックアップ制御器を同一レイヤに有する。いくつかの実施形態において、下位レイヤの制御器は、特定の制御器から受信した出力データから自身の出力を生成する。
特定の制御器に障害が発生した場合、下位レイヤの制御器は、バックアップ制御器からの同一の出力データを処理することで出力データが変化することのないように、(1)特定の制御器からそれまでに受信した出力データ及び(2)バックアップ制御器からの出力データから自身の出力データを生成する。すなわち、特定の制御器の障害発生後、下位レイヤの制御器は、障害発生前に特定の制御器から受信したデータと同一のデータを含む出力データをバックアップ制御器から受信し且つ処理する。しかし、下位レイヤの制御器は、下位レイヤの制御器の出力データが特定の制御器からの出力データのみを処理することにより生成された場合の出力データと同一になるように、バックアップ制御器からの出力データを処理する。
階層の下位レイヤの制御器は、上位レイヤの複数の異なる制御器の各々から出力データを受信する。上位レイヤの制御器からの出力データは、複数の異なるトランザクションとして供給される。いくつかの実施形態において、下位レイヤの制御器は、異なる制御器から受信した出力データから自身の出力データを生成し、自身の出力データを単一のトランザクションとして更に下位のレイヤの制御器のセットに送出する。
更に詳細な実施形態を以下の節で説明する。詳細には、最初に第I節において、論理ネットワーク及び物理ネットワークを制御するいくつかの実施形態のネットワーク制御システムを説明する。次に第II節において、更新速度の最低限化を説明する。第III節において、本発明のいくつかの実施形態が実現される電子システムを説明する。
I.ネットワーク制御システム
図1は、ネットワーク制御器が被管理転送要素のセットの転送挙動を定義するために被管理転送要素のセットにプッシュする転送状態情報を計算するネットワーク制御システム100を示す。ネットワーク制御システム100は、論理制御器110と、2つの物理制御器115及び120と、3つの被管理転送要素125〜135とを含む。ネットワーク制御システム100は、2つの物理制御器115及び120が3つの被管理転送要素に状態をプッシュする単純化された例を表す。多くの場合、いくつかの実施形態のネットワーク制御システムは、非常に多くの制御器及び数百個又は数千個の被管理転送要素を含む。
いくつかの実施形態において、ネットワーク制御器110〜120は、転送状態の計算を実行し、当該状態をフローエントリの形態で被管理転送要素にプッシュする。いくつかの実施形態のネットワーク制御器は、論理ネットワークを定義する論理制御プレーン(LCP)データを受信し、当該LCPデータを物理制御プレーン(PCP)データに変換して被管理転送要素125〜135に送出する。いくつかの実施形態において、論理ネットワークの論理制御プレーンは、論理アドレス空間においてエンドマシン(例えば、仮想マシン)を接続する1つ以上の論理転送要素(例えば、論理スイッチ、論理ルータ)を定義する。論理転送要素は、送出元マシンからのパケットが論理空間において宛先マシンに転送される方法(例えば、論理ポートと仮想マシンのMACアドレスとの結び付き)を定義する。更に、いくつかの実施形態において、LCPは、論理転送要素により実現される論理ポリシー(例えば、アクセス制御リスト)を定義する。LCP及びその構造が実現される物理ネットワークにとって、LCP及びその構造は既知でない。
いくつかの実施形態のネットワーク制御器は、被管理転送要素にプッシュされるPCPデータに到達するために、LCPデータの複数の異なる変換を実行する。いくつかの実施形態において、制御器はLCPデータを論理転送プレーン(LFP)データに変換し、その後、LFPデータをPCPデータに変換する。LFPデータは、論理空間においてパケットを転送するための転送エントリを定義する。すなわち、LFPデータは、単に論理ポートとアドレスとを結び付けるだけでなく、アドレスが一致する場合にパケットを論理ポートに転送することを示すエントリを含む。
LFPデータからPCPデータへの変換は、論理転送エントリを物理ネットワークに組み込む。PCPエントリは、物理ネットワーク内の論理アドレス空間における転送(例えば、物理ポートに対する論理ポートのマッピング等)を実行するための情報を含む。
いくつかの実施形態において、被管理転送要素にプッシュするPCPの計算は、制御器により形成される階層内の異なる制御器レイヤ間で分散される。例えばいくつかの実施形態において、論理制御器110は、少なくとも1つの論理転送要素を管理する。論理制御器110は、図1の右半分で示すように、LCPからLFPへの変換及びその後のLFPから汎用PCP(UPCP)への変換を実行する。UPCPデータはフローエントリを含む。これらのフローエントリは、何らかの被管理転送要素に特有のデータを含むようにカスタマイズされておらず、特定の物理的実現に特有のデータに対する抽象的概念(例えば、ポート番号、トンネル識別子等)のみを含む。
いくつかの実施形態において、特定の論理転送要素を管理する論理制御器は、1つ又は複数の物理制御器にUPCPデータを送出する。例えば論理制御器110は、2つの物理制御器115及び120にUPCPデータを送出する。被管理転送要素の各々は、マスタ物理制御器により管理される。従って、複数の被管理転送要素にわたり実現される論理転送要素に対するUPCPデータは、それらの転送要素を管理する複数の異なるマスタ物理制御器に送出されてもよい。示すように、物理制御器115は、2つの被管理転送要素125及び130を管理するマスタ制御器である。物理制御器120は、被管理転送要素135を管理するマスタ制御器である。
物理制御器又は被管理転送要素と同一の物理マシン内のシャーシ制御器(図1では不図示)のいずれかにおいて、UPCPデータはカスタマイズ済PCP(CPCP)データに変換される。CPCPデータは、特定の被管理転送要素に特有のカスタマイズデータが記入された物理制御プレーンデータである。述べられるように、いくつかの実施形態において、物理制御器は、被管理転送要素から受信した情報を使用して当該変換を実行する。他の実施形態において、物理制御器は、被管理転送要素が存在するホストマシンにUPCPデータを送出する通過点として動作し、この場合、制御器の論理(シャーシ制御器)がUPCPからCPCPへの変換を実行する。
被管理転送要素125〜135は、ネットワーク制御器により管理される(例えば、ネットワーク制御器から転送状態情報を受信する)ソフトウェア又はハードウェアの転送要素である。いくつかの実施形態において、被管理転送要素は、ホストマシン上(例えば、ホストマシンのユーザ空間及び/又はカーネル内)で動作するソフトウェアの転送要素である。これらの被管理転送要素は、エンドマシン140〜160からパケットを受信し、パケットに対して論理処理を実行し、物理ネットワークを介して宛先(例えば、異なる被管理転送要素に同様に接続された別のエンドマシン)にパケットを送出する。
エンドマシン140〜160は、物理マシン又は仮想マシンであってもよい。いくつかの実施形態において、仮想マシンであるエンドマシンは、それらに対するパケットを転送する被管理転送要素を有する同一ホスト内で動作する。複数の物理ネットワークに属する仮想マシンが単一のホストマシン内に位置してもよいため(例えば、エンドマシン140及び145は、被管理転送要素125が位置する同一のホストマシン内に位置してもよい)、被管理転送要素の各々が複数の異なる論理転送要素を実現してもよい。更に、上述のように、単一の論理転送要素は一般に、多くの被管理転送要素にわたり実現される。
仮想マシンを有するホスト上のネットワークエッジに位置する被管理転送要素に加えて、いくつかの実施形態は第2レベル非エッジ被管理転送要素を更に含む(プールノード又はサービスノードと呼ぶ場合もある)。エッジ被管理転送要素がパケットに対する処理の全てを実行できない場合(例えば、宛先MACアドレスと論理ポートとを結び付けるフローエントリを有さないため)、プールノードがパケットを処理して宛先に送出するために、エッジ被管理転送要素はプールノードにパケットを送出する。
図2は、いくつかの実施形態のネットワーク制御器200のアーキテクチャの例を概念的に示す。ネットワーク制御器200は、それが処理するデータの種類に依存して、論理制御器、物理制御器又はシャーシ制御器として機能できる。
論理制御器である場合、ネットワーク制御器200はLCPデータを入力として受信する。いくつかの実施形態において、ネットワーク制御器200は、LCPデータをLFPデータに変換した後にUPCPデータに変換する。ネットワーク制御器200は、論理制御器であるネットワーク制御器200が管理する論理転送要素を実現する被管理転送要素のマスタである物理制御器のセットにUPCPデータをプッシュする。
いくつかの実施形態の物理制御器である場合、ネットワーク制御器200はUPCPデータを入力として受信し、UPCPデータをCPCPデータに変換する。その後、ネットワーク制御器は、ネットワーク制御器200がマスタである被管理転送要素のセットにCPCPデータをプッシュする。他の実施形態において、物理制御器であるネットワーク制御器200は、被管理転送要素のセットが動作するホストにおいて動作するシャーシ制御器のセットにUPCPデータを中継する。これらの実施形態において、ネットワーク制御器200は、この被管理転送要素のセットのマスタである。
シャーシ制御器である場合、ネットワーク制御器200は、物理制御器のセットからのUPCPデータを入力として受信する。ネットワーク制御器200は、UPCPデータをシャーシ制御器が管理する被管理転送要素に対するCPCPデータに変換し、被管理転送要素にCPCPデータを送出する。
図2に示すように、ネットワーク制御器200は、規則エンジン入力テーブルのセット210、関数テーブル及び定数テーブルのセット215、インポータ220、規則エンジン225、規則エンジン出力テーブルのセット245、変換器250、エクスポータ255、非一時的トランザクションデータベース(PTD)260及びコンパイラ235を含む。コンパイラ235は、制御器の他の構成要素と異なる時点で動作する制御器の1つの構成要素である。コンパイラは、開発者が特定のネットワーク制御器及び/又は仮想環境に対する規則エンジンを指定する必要がある場合に動作し、制御器の残りのモジュールは、制御器が他の制御器又は被管理転送要素とインタフェースする時に実行時に動作する。
いくつかの実施形態において、コンパイラ235は、宣言型言語で指定される相対的に小さいセット(例えば、数百行)の宣言型命令240を受信し、制御器のテーブルマッピングを実行する規則エンジン225の動作を指定する大きいセット(例えば、数千行)のコード(すなわち、オブジェクトコード)にこれらを変換する。このように、コンパイラにより、ネットワーク制御器の開発者によるネットワーク制御器の定義及び更新処理が大幅に簡略化される。これは、コンパイラにより、開発者が、ネットワーク制御器の複雑なマッピング動作のコンパクトな定義を可能にする高度なプログラミング言語を使用でき、その後、任意の数の変更(例えば、ネットワーク制御器によりサポートされる論理ネットワーク化機能の変更、ネットワーク制御器の所望の挙動への変更等)に応答して当該マッピング動作を更新できるからである。更に、コンパイラにより、開発者は、マッピング動作を定義する際にイベントがネットワーク制御器に到着する順序を考慮する必要がなくなる。また、開発者は、ネットワーク制御器200が論理制御器、物理制御器又はシャーシ制御器として機能するように、異なる規則セットを用いてネットワーク制御器200をプログラムする。
いくつかの実施形態において、規則エンジン(RE)入力テーブル210は、ネットワーク制御器200がどの種類のネットワーク制御器として動作するかに基づいて、異なる種類のデータを有するテーブルを含む。ネットワーク制御器200が論理制御器として動作する場合、入力テーブル210は、LFPデータにマッピングされる必要のあるLCPデータを含み且つUPCPデータにマッピングされる必要のあるLFPデータを含む。ネットワーク制御器200が物理制御器又はシャーシ制御器として動作する場合、入力テーブル210は、CPCPデータにマッピングされる必要のあるUPCPデータを含む。
RE入力テーブル210に加えて、ネットワーク制御器200は、規則エンジン225がテーブルマッピング動作のための入力を収集するために使用する他の種々のテーブル215を含む。これらのテーブル215は、規則エンジン225がテーブルマッピング動作を実行するために必要とする定数に対する規定値を格納する定数テーブルを含む。例えば定数テーブル215は、値0として定義される定数「zero」、値4000として定義される定数「dispatch_port_no」、並びに値0xFF:FF:FF:FF:FF:FFとして定義される定数「broadcast_MAC_addr」を含む。
規則エンジン225が定数を参照する場合、定数に対して定義された対応する値が実際は検索され且つ使用される。更に、定数テーブル215内の定数に対して定義された値は、変更及び/又は更新されてもよい。このように、定数テーブル215は、規則エンジン225の動作を指定するコードを書き換えるか又は再度コンパイルする必要なく、規則エンジン225が参照する定数に対して定義された値を変更する機能を提供する。テーブル215は、出力テーブル245をポピュレートするために必要な値の計算に使用するために規則エンジン225が必要とする関数を格納する関数テーブルを更に含む。
規則エンジン225は、入力データを出力データに変換する1つの方法を指定するテーブルマッピング動作を実行する。規則エンジン(RE)入力テーブルのうちの1つが変更される度に規則エンジンはテーブルマッピング動作のセットを実行し、その結果、1つ以上のRE出力テーブル内の1つ以上のデータタプルが変更される。いくつかの実施形態において、ネットワーク制御システムは、nLogと呼ばれるデータログデータベース言語の変形を使用して規則エンジン225を作成する。データログと同様に、nLogが提供する開発者が異なるイベントの発生時に実行される異なる動作を指定できるようにする宣言規則及び演算子の数は少ない。いくつかの実施形態において、nLogは、nLogの動作を高速化するために、データログにより提供される演算子の限られたサブセットを提供する。例えばいくつかの実施形態において、nLogは、いずれかの宣言規則におけるAND演算子の使用のみを許可する。
図2に示すように、規則エンジン225は、イベントプロセッサ222、複数のクエリプラン227及びテーブルプロセッサ230を含む。各クエリプランは、RE入力テーブルのうちの1つに対する変更が発生した時に実行される結合動作のセットを指定する規則セットである。以下、そのような変更を入力テーブルイベントと呼ぶ。各クエリプランは、コンパイラ235により宣言セット240内の1つの宣言規則から生成される。いくつかの実施形態において、2つ以上のクエリプランが1つの宣言規則から生成される。例えばクエリプランは、1つの宣言規則により結合されるテーブルの各々に対して作成される。すなわち、宣言規則が4つのテーブルを結合するように指定する場合、4つの異なるクエリプランがこの1つの宣言から作成される。いくつかの実施形態において、クエリプランは、nLogの宣言的言語を使用することにより定義される。
規則エンジン225のイベントプロセッサ222は、各入力テーブルイベントの発生を検出する。異なる実施形態のイベントプロセッサは、入力テーブルイベントの発生を異なる方法で検出する。いくつかの実施形態において、イベントプロセッサは、RE入力テーブルのレコードに対する変更の通知に対するRE入力テーブルとのコールバックに登録する。そのような実施形態において、イベントプロセッサ222は、レコードのうちの1つが変更されたという通知をRE入力テーブルから受信した場合に入力テーブルイベントを検出する。
検出された入力テーブルイベントに応答して、イベントプロセッサ222は、(1)検出されたテーブルイベントに対する適切なクエリプランを選択し、(2)テーブルプロセッサ230にクエリプランを実行するように命令する。いくつかの実施形態において、クエリプランを実行するために、テーブルプロセッサ230は、クエリプランにより指定された結合動作を実行し、1つ以上の入力テーブル210及び種々のテーブル215から1つ以上のデータ値セットを表す1つ以上のレコードを生成する。その後、いくつかの実施形態のテーブルプロセッサ230は、(1)結合動作により生成されたレコードからデータ値サブセットを選択する選択動作を実行し、(2)1つ以上のRE出力テーブル245に選択されたデータ値サブセットを書き込む。
いくつかの実施形態において、RE出力テーブル245は、論理ネットワーク要素及び物理ネットワーク要素の双方のデータ属性を格納する。テーブル245が規則エンジン225のテーブルマッピング動作の出力を格納する場合、テーブル245をRE出力テーブルと呼ぶ。いくつかの実施形態において、RE出力テーブルは複数の異なるカテゴリでグループ化される。例えばいくつかの実施形態において、これらのテーブルは、RE入力テーブル及び/又は制御器出力テーブルである場合がある。テーブルにおける変更により規則エンジンがクエリプランの実行を必要とする入力ベントを検出する場合、テーブルはRE入力テーブルである。RE出力テーブル245は、規則エンジンに別のクエリプランを実行させるイベントを生成するRE入力テーブル210である場合もある。そのようなイベントを内部入力イベントと呼び、これは、インポータ220により生成されたRE入力テーブルの変更により発生するイベントである外部入力イベントと対比される。
テーブルにおける変更によりエクスポータ255が変更を別の制御器又は被管理転送要素にエクスポートする場合、テーブルは制御器出力テーブルである。RE出力テーブル245内のテーブルは、RE入力テーブルである場合もあり、制御器出力テーブルである場合もあり、あるいはRE入力テーブル及び制御器出力テーブルの双方である場合もある。いくつかの実施形態において、RE入力テーブル及びRE出力テーブルは、関係型データベース管理システム(RDBMS)のテーブルである。これらのテーブルは、ネットワーク制御器の一次データ記憶構造である関係型データベースのデータ構造として格納される。
エクスポータ255は、RE出力テーブル245の制御器出力テーブルに対する変更を検出する。異なる実施形態のエクスポータは、制御器出力テーブルイベントの発生を異なる方法で検出する。いくつかの実施形態において、エクスポータは、制御器出力テーブルのレコードに対する変更の通知に対する制御器出力テーブルとのコールバックに登録する。そのような実施形態において、エクスポータ255は、レコードのうちの1つが変更されたという通知を制御器出力テーブルから受信した場合に出力テーブルイベントを検出する。
検出された出力テーブルイベントに応答して、エクスポータ255は、変更された制御器出力テーブル内の変更されたデータタプルの一部又は全てを取得し、この変更されたデータタプルを他の制御器又は被管理転送要素に伝搬する。詳細には、ネットワーク制御器200が論理制御器として動作する場合、エクスポータ255は、物理制御器との間に確立された通信チャネル(例えば、遠隔手続き呼出し(RPC)チャネル)のセットを介して物理制御器のセットにUPCPデータを伝搬する。ネットワーク制御器200が物理制御器として動作する場合、いくつかの実施形態のエクスポータ255は、シャーシ制御器との間に確立された通信チャネルのセットを介してシャーシ制御器のセットにUPCPデータを伝搬する。他の実施形態のエクスポータ255は、各被管理転送要素との間に確立された通信チャネル対(例えば、OpenFlowチャネル及びコンフィギュレーションチャネル)を介して被管理転送要素のセットにCPCPデータを伝搬する。ネットワーク制御器200がシャーシ制御器として動作する場合、いくつかの実施形態のエクスポータ255は、各被管理転送要素との間の通信チャネル対(例えば、OpenFlowチャネル及びコンフィギュレーションチャネル)を介して被管理転送要素のセットにCPCPデータを伝搬する。
いくつかの実施形態において、ネットワーク制御器は、それが管理する責任を有さないデータを出力テーブル245内に保持しない。しかし、そのようなデータは、変換器250によりPTDに格納できる形式に変換され、PTD260に格納される。PTDは、ネットワーク制御器の2次記憶構造である。ネットワーク制御器200のPTDは、1つ以上の他のネットワーク制御器に当該データを伝搬し、それにより、それらのネットワーク制御器の中でデータを管理する責任を有するいくつかのネットワーク制御器がデータを処理できる。
いくつかの実施形態において、ネットワーク制御器は、データの回復のために、出力テーブル245に格納されたデータ(すなわち、ネットワーク制御器が管理する責任を有するデータ)をPTDに更に格納する。そのようなデータは、変換器250により同様に変換され、PTDに格納され、他の制御器インスタンスの他のPTDに伝搬される。従って、これらの実施形態において、制御器インスタンスのPTDは、ネットワーク制御システムにより管理される全てのデータに対する全ての構成データを有する。すなわち、いくつかの実施形態において、各PTDは論理及び物理ネットワークの構成の全体像を含む。
インポータ220は、多くの異なる入力データ送出元とインタフェースし、入力データを使用して入力テーブル210を変更又は作成する。いくつかの実施形態のインポータ220は、ネットワーク制御器200が論理制御器として動作する場合、ユーザ入力(例えば、アプリケーションプログラミングインタフェース(API)呼出しの形態である)をLCPデータに変換する入力変換制御器(不図示)を介してユーザ(テナント)から入力データを受信する。いくつかの実施形態において、インポータ220は通信チャネルを介してLCPデータを受信する。インポータ220は、PTDを介して他の制御器インスタンスから受信したデータを入力テーブル210を変更又は作成するための入力データとして使用できるように、PTD260と更にインタフェースする。更に、インポータ220は、RE出力テーブル245のRE入力テーブル及び制御器出力テーブルにおける変更も検出する。出力テーブル245において生成及び格納されたLFPデータは、規則エンジン225がUPCPデータを生成するために、インポータ220により規則エンジン225にフィードバックされる。
ネットワーク制御器200が物理制御器として動作する場合、インポータ220は、論理制御器のセットとの間に確立された通信チャネルのセットを介して論理制御器のセットからUPCPデータを取得する。ネットワーク制御器200がシャーシ制御器として動作する場合、インポータは、物理制御器のセットとの間に確立された通信チャネルのセットを介して物理制御器のセットからUPCPデータを取得する。
図2ではここまで、入力テーブル210は制御器の階層の上位レイヤの制御器からの入力を含み、出力テーブル245は制御器の階層の下位レイヤの制御器又は被管理転送要素のセットに対する出力を含むと説明した。入力及び出力が逆方向に送受信される場合もある。すなわち、そのような場合、ネットワーク制御器は下位レイヤの制御器又は被管理転送要素から入力を取得し、上位レイヤの制御器に出力を送出する。例えばネットワーク制御器200は、ユーザから送出される要求を受信し、要求を下位レイヤの制御器のセット又は被管理転送要素のセットに分散してもよい。これらの分散された要求は被管理転送要素に到達し、被管理転送要素は応答を作成する。応答は、インポータを介して入力としてネットワーク制御器200に戻る。規則エンジン255は、テーブルマッピング動作を実行して応答を組み合わせ、ネットワーク制御器200に要求を送出した制御器に送出する応答を生成する。図9及び図10を参照して、要求及び応答の処理に関する更なる詳細を後で説明する。
ネットワーク制御器が階層を形成するネットワーク制御システムを説明したが、以下の第II節では、トランザクションを組み合わせることによりネットワーク制御システムにおけるチャーン化を最小限にすることを説明する。
II.更新速度の最低限化
A.外部入力の並べ替え
ネットワーク制御システムにおいて、ネットワーク制御器は、物理ネットワークにわたり論理ネットワークを実現するためにネットワーク状態を管理する。ネットワーク状態は不変でなく、状態が変化する場合、状態の更新はネットワーク全体にわたり被管理転送要素に分散される必要がある。これらのネットワーク状態の更新は、少なくとも3つの理由から生じる。第1に、論理パイプラインにより実施されるネットワークポリシーが再構成される(例えば、論理ネットワークの管理者によるアクセス制御リストの更新)ため論理ポリシーが変化する場合、ネットワーク状態が変化する。第2に、作業負荷の動作の変化の結果、ネットワーク状態が変化する。例えば仮想マシンを第1のノードから第2のノードに移動する場合、論理的観点は変化しない。しかし、VMが接続する論理ポートの物理的位置が異なるため、この移動によりネットワーク状態が更新される必要がある。第3に、装置の追加、除去、アップグレード及び再構成等の物理的再構成イベントの結果、ネットワーク状態が変化する場合がある。
一般的なユーザ主導によるポリシー構成の変更では小さい漸進的変化が生じ、転送状態に対する当該漸進的変化は効率的に計算可能であるが、フェイルオーバの状況によりnLog計算エンジンに対する入力が大きく変更される場合がある。送出元制御器から入力を受信するように構成される受信側制御器であり、送出元制御器が故障し且つ新しい制御器が送出元制御器のタスクを含む場合の受信側制御器を考慮する。新しい制御器はバックアップ制御器であるため、状態を事前に計算されていたが、受信側制御器は依然として古い送出元から新しい送出元へのフェイルオーバを行う必要がある。
いくつかの実施形態において、受信側制御器は、故障した制御器から受信した全ての入力を単純に削除し(入力の影響を取り消し)、古い入力及び新しい入力が完全に同一でなくてもほぼ同一である可能性が非常に高いと予想できる場合でも、新しい制御器からの新しい入力をnLog計算エンジンに供給する。計算のトランザクション性により、新しい送出元が起動し且つ計算が固定点(例えば、計算が所定の入力データに対して行われる時点)に到達する前に転送状態の変更が公開されることは阻止されるが、計算のオーバーヘッドは膨大になる。最初に状態を除去するために計算され、次に状態を再度確立するために計算されるため、転送状態全体が2回計算される。
いくつかの実施形態において、受信側制御器は、古い送出元からの入力と新しい送出元からの入力との相違点を識別し、変更された入力に対してのみ転送状態の変更を計算する。これにより、オーバーヘッドが完全に解消される。しかし、トランザクションの計算及び固定点到達機能を用いる場合、いくつかの実施形態の受信側制御器は、相違点を識別することなく同一の結果を得ることができる。相違点を識別することなく入力の送出元から別の送出元に徐々に効率的に移行するために、ネットワーク制御システムは単に、古い送出元からの入力を削除することから始めるのではなく、古い送出元からの入力を依然として使用しつつ新しい送出元からの入力を計算エンジンに供給する。その後、ネットワーク制御システムは、新しい送出元が新しい送出元からの入力に対する固定点に到達するまで待ち、新しい送出元がそのような固定点に到達してから、古い送出元からの入力を削除する。
外部入力/イベントをこのように並べ替えることにより、いくつかの実施形態のnLog計算エンジンは重複を検出でき、古い状態を完全に削除するというオーバーヘッドを回避できる。古い送出元から状態を削除する必要がないため、受信側制御器は新しい送出元が固定点に到達するまでトランザクションをコミットしない。新しい送出元が固定点に到達すると、受信側制御器は、変更された入力による転送状態(すなわち、出力状態)に対する変更を消費側転送要素にプッシュする。変更が著しい場合、この手法により、一時的なメモリの使用が増加するというコストが生じる。いくつかの実施形態において、送出元制御器が固定点に到達した場合、送出元制御器はバリアを送出する。バリアが受信側制御器において受信される場合、受信側制御器は、送出元制御器が固定点に到達したことを認識する。
図3は、論理制御器310から入力を受信する物理制御器305を概念的に示す。特に、図3は、論理制御器310に障害が発生し、論理制御器335が更新を計算し且つ物理制御器305に送出するタスクを引き継ぐ場合の物理制御器305の入力処理を4つの異なる段階301〜304で示す。論理制御器335は、論理制御器310に対するホットスタンドバイ論理制御器である。
物理制御器305は、制御器200の対応する構成要素と同様であるインポータ315、規則エンジン320、入力テーブル325及び出力テーブル330を含む点で図2を参照して上述したネットワーク制御器200と同様である。説明を簡略にするために、物理制御器305の全ての構成要素を図3に示すわけではない。
第1の段階301において、論理制御器310は、白色の平行四辺形で示す入力の変更1及び2を物理制御器305に送出している。入力の変更は、制御器の入力テーブルの1つ以上のレコードに対する変更である。いくつかの実施形態において、入力の変更はデータタプルの形態である。論理制御器335も同様に、同一の変更1及び2を物理制御器305に送出する。論理制御器310からの変更1及び2と視覚的に区別するために、バックアップ論理制御器335から送出された変更1及び2を灰色の平行四辺形で示す。
第2の段階302において、物理制御器305は、論理制御器310から変更1及び2を受信し且つ論理制御器335から変更1及び2を受信した。しかし、インポータ315は、論理制御器310からの変更1及び2のみを用いて入力テーブル325を更新し、バックアップ論理制御器335からの変更1及び2を記憶構造(不図示)に保持している。
いくつかの実施形態において、物理制御器305は、論理制御器335が論理制御器310のバックアップ制御器であることを認識しない。すなわち、物理制御器305から見た場合、論理制御器310及び335は同一の入力の変更を供給する2つの制御器である。物理制御器305は、制御器のうちの一方からの変更を使用することをローカルに決定し、変更を使用していた制御器に障害が発生した場合、他方の制御器に切り替える。段階302において、物理制御器305は論理制御器310からの変更を使用する。
段階302は、論理制御器310に障害が発生し、論理制御器335が論理制御器310の障害発生後に変更3及び4を送出していることを更に示す。変更4が論理制御器335からのトランザクションの最後の変更であることを示すために、太枠を用いて変更4を示す。換言すると、変更3及び4はトランザクションを形成し、変更4(又は変更4の後の別個のデータ)は、1つのトランザクションに対する入力セットの末尾を示すバリアを有する。規則エンジン320は、例えば他の変更(不図示)の処理がまだ終了していないため、変更1及び2をまだ処理していない。
第3の段階303は、規則エンジン320がテーブルマッピング動作を実行して、変更1及び2から出力の変更のセットを生成したことを示す。出力の変更は、入力の変更により変更される入力テーブルにおいてテーブルマッピング動作を実行した結果、制御器の出力テーブルの1つ以上のレコードに対して行われる変更である。いくつかの実施形態において、出力の変更はデータタプルの形態である。これらの出力の変更が論理制御器310からの変更1及び2を処理した結果であることを示すために、変更1及び2を含む破線の枠として出力の変更を示す。また、第3の段階303において、インポータ315は、記憶構造に保持された論理制御器335からの変更1及び2を用いて入力テーブル325を更新した。また、論理制御器310に障害が発生し、論理制御器335が論理制御器335に切り替えられ且つ変更が論理制御器335から受信されるため、インポータ315は論理制御器310からの変更1及び2を除去した。更に、物理制御器305は論理制御器335から変更3及び4を受信した。インポータ315は、変更3及び4を用いて入力テーブル325を更新する。
第4の段階304は、規則エンジン320がテーブルマッピング動作を実行し、バックアップ論理制御器335を介して受信した変更1〜4から出力の変更を生成したことを示す。変更1〜4を含む破線の枠として示す出力の変更は、インポータが変更1及び2を用いて入力テーブルを2回更新しなかった(1回目は論理制御器310からの変更1及び2を用い、2回目は論理制御器335からの変更1及び2を用いる)場合に生成される出力の変更と同一であることを示す。これは、いくつかの実施形態の規則エンジンが、重複する入力の変更に対してテーブルマッピング動作を実行することにより重複する出力の変更を生成しないからである。
物理制御器が上位レイヤの制御器からのトランザクションを形成する全ての入力の変更を処理したため、論理制御器335は自身の固定点に到達した。その後、物理制御器335は、被管理転送要素のセット又はシャーシ制御器のセットにこの出力の変更のセットを送出する。図3は、物理制御器による論理制御器のフェイルオーバの処理を示す。しかし、シャーシ制御器が物理制御器のフェイルオーバを同様に処理してもよいことが当業者には認識されるだろう。
図4は、ネットワーク制御器の階層における上位レイヤの送出元制御器のフェイルオーバを処理するためにいくつかの実施形態が実行する処理400を概念的に示す。処理400は、入力の変更を生成する2つ以上の送出元制御器から入力の変更を受信する受信側制御器により実行される。いくつかの実施形態において、受信側制御器は、UPCPデータを含む入力の変更を生成する論理制御器のセットから入力の変更を受信する物理制御器である。また、受信側制御器は、UPCPデータを中継する物理制御器のセットから入力の変更を受信するシャーシ制御器であってもよい。いくつかの実施形態の受信側制御器は、図3を参照して上述した物理制御器305と同様である。
処理400は、マスタ送出元制御器及びバックアップ送出元制御器から入力の変更を受信する(405)ことにより開始する。バックアップ制御器は、マスタ制御器が送出するのと同一の入力の変更を受信側制御器に送出するスタンドバイ又は冗長制御器である。いくつかの実施形態において、受信側制御器は、2つの送出元制御器のうちのどちらがマスタ制御器であるかを認識しない。受信側制御器は、それらのうちの一方を選択し、選択された送出元制御器からの入力の変更を使用して受信側制御器自身の出力の変更を生成する。説明の便宜上、マスタ送出元制御器は受信側制御器により最初に選択された制御器である。
次に、処理400において、マスタ制御器からの入力のみを使用して出力の変更を計算する(410)。いくつかの実施形態の処理400において、トランザクション(例えば、バリア間の入力の変更のセット)がマスタ送出元制御器から完全に受信されるまで、バックアップ制御器からの重複する入力の変更を記憶構造に保持する。いくつかの実施形態の処理400において、記憶構造に保持される入力の変更は使用されない。いくつかの実施形態の処理400において、マスタ制御器から受信される入力の変更は入力テーブルから除去されない。
処理400において、マスタ送出元制御器に障害が発生したかを判定する(415)。いくつかの実施形態において、送出元制御器は、自身の状態又はハートビートを定期的に送信し、受信側制御器は、状態を使用して送出元制御器が動作しているかを判定する。いくつかの実施形態において、受信側制御器は、送出元制御器が動作しているかを判定するために送出元制御器をポーリングする。処理400において、マスタ送出元制御器に障害が発生したと判定される場合(415)、処理400は430へ進む。430を後で説明する。
処理400において、マスタ送出元制御器に障害が発生していないと判定される場合(415)、マスタ制御器からバリアを受信したかが判定される(420)。すなわち、受信済みの入力の変更が完全なトランザクションを形成するかが判定される。処理400において、マスタ送出元制御器から完全なトランザクションを受信していないと判定される場合(420)、処理400は405に戻り、マスタ送出元制御器及びバックアップ送出元制御器からの入力の変更の受信を続行する。
処理400において、マスタ送出元制御器からバリアを受信したと判定される場合(420)、処理400が自身の固定点に到達したかが判定される(425)。いくつかの実施形態の処理400において、マスタ送出元制御器から受信したトランザクションの入力の変更の全ての処理が終了して出力の変更を生成した場合、処理400は固定点に到達したと判定される。その場合、処理400は450へ進む。450を後で説明する。
処理400において、マスタ送出元制御器に障害が発生したと判定される場合(415)、バックアップ送出元制御器に切り替えてバックアップ制御器から入力の変更を受信する(430)。その後、処理400において、バックアップ制御器から受信した入力に基づいて出力の変更を計算する(435)。いくつかの実施形態では、処理400において、保持された(410)変更を更に使用して出力の変更を計算する。保持された変更は、出力の変更を生成するために使用されたマスタ送出元制御器からの入力の変更の重複する変更である。しかし、処理400において、マスタ送出元制御器から受信した同一の入力の変更を処理することにより生成された出力の変更は削除されない。処理400において、保持された重複する入力の変更が依然として処理されるが、処理400を実行する受信側制御器の規則エンジンは、重複する入力の変更を処理することにより重複する出力の変更を生成しない。いくつかの実施形態の処理400において、バックアップ送出元制御器に切り替える際に、障害が発生した制御器から受信される変更が入力テーブルから除去される。
次に、処理400において、バックアップ送出元制御器からバリアを受信したが判定される(440)。すなわち、受信済みの入力の変更が完全なトランザクションを形成するかが判定される。完全なトランザクションを形成する入力の変更は、保持されている重複する入力の変更とマスタ制御器の障害発生後にバックアップ制御器から受信した入力の変更とを含む。
処理400において、バリアを受信していないと判定される場合(440)、処理400は430に戻り、バックアップ送出元制御器からの入力の変更の受信を続行する。処理400において、バリアを受信したと判定される場合(440)、処理400が自身の固定点に到達したかが判定される(425)。
次に、処理400において、制御器の階層における下位レイヤの制御器のセット又は出力の変更に基づいてデータを転送する被管理転送要素のセットに計算された出力の変更を送出する(450)。いくつかの実施形態の処理400において、出力の変更の末尾にバリアを挿入するか、あるいは出力の変更のうちの最後の変更に完全なトランザクションを示す情報を追加する。その後、処理は終了する。
B.階層型の転送状態計算におけるトランザクション
いくつかの実施形態において、ネットワーク制御器は、複数の制御器から受信側トランザクションの更新を受信する転送要素に更新を供給するネットワーク制御器の2つ以上のレイヤを有する階層を形成する。これらの実施形態において、最上位の制御器は更新をトランザクションで計算するが、下位レイヤの制御器は複数の最上位の制御器から更新を受信してもよく、同様に、転送要素は複数の第2のレベルの制御器から更新を受信してもよい。
トランザクションは、境界で変更されずに下方に進む。すなわち、第2のレベルの制御器において処理された最上位のトランザクションは、最上位の制御器から受信したトランザクションの結果として得られた変更のみを含んで転送要素に供給されるトランザクションになる。しかし、トランザクションが転送要素に向かう途中で集約される場合でも、ポリシーの一貫性は維持される。いくつかの実施形態において、第2のレベルの制御器は、受信した複数のトランザクション(異なる最上位の制御器から受信される場合がある)を集約して、転送要素に供給される単一のトランザクションにする。適切な集約レベルを判定するのは(そのようなレベルが存在する場合)、ローカルな決定である。例えばシステムは、トランザクションがデフォルトでは全く集約されないが、キューのトランザクションの数が増加する過負荷状態において、互いに相殺し合う重複する変更を有するトランザクション(同一の送出元からの)を期待してトランザクションを集約する手法を実施してもよい。更に広いネットワークの場合、当該手法はルートフラップダンピングの一種であると考えられる。
図5は、論理制御器510から入力を受信する物理制御器505を概念的に示す。特に、図5は、物理制御器505に入力の変更を供給する論理制御器510からの複数の完全なトランザクションを形成する入力の変更を物理制御器505が集約する動作を4つの異なる段階501〜504で示す。物理制御器505は、制御器200の対応する構成要素と同様であるインポータ515、規則エンジン520、入力テーブル525及び出力テーブル530を含む点で図2を参照して上述したネットワーク制御器200と同様である。説明を簡略にするために、物理制御器505の全ての構成要素を図5に示すわけではない。
第1の段階501において、論理制御器510は物理制御器505に入力の変更1〜3を送出している。変更1〜3が完全なトランザクションを形成することを示すために、太枠を用いて変更3を示す。すなわち、変更3はバリアを含むか又はバリアを伴う。段階501において、物理制御器505が前にトランザクションの出力の変更のセットを計算して送出したため、入力テーブル525及び出力テーブル530は空である。
第2の段階502において、物理制御器505は論理制御器510から変更1〜3を受信した。インポータ515は、変更1〜3を用いて入力テーブル525を更新した。第2の段階502は、論理制御器がトランザクションを形成する次の入力の変更4及び5のセットを送出していることを更に示す。
第3の段階503において、物理制御器505は、トランザクションを形成する次の入力の変更4及び5のセットを論理制御器530から受信した。インポータ515は、変更4及び5を用いて入力テーブル525を更新する。第3の段階503は、規則エンジン520がテーブルマッピング動作を実行して、前の段階502において入力テーブル525に入力された変更1〜3から出力の変更のセットを生成したことを更に示す。これらの出力の変更が変更1〜3を処理した結果であることを示すために、変更1〜3を含む破線の枠として出力の変更を示す。
また、段階503において、物理制御器505は、(1)制御器が完全なトランザクションを形成する入力の変更のセットを処理することにより出力の変更を生成したため、出力テーブル530内に現在存在する出力の変更を送出するか、あるいは(2)更なる入力の変更が供給されるのを待つかを判定する。いくつかの実施形態において、物理制御器は、特定の基準に基づいて当該判定を行う。例えば物理制御器は、最後の出力の変更のセットを送出してから又は最後のトランザクションを受信してからある期間が経過していない場合、更なる入力の変更が供給されるのを待つ。これらの実施形態のうちのいくつかにおいて、ある期間が経過した場合、物理制御器505は、完全なトランザクションを形成する入力の変更の全てを集約して、トランザクションの出力の変更の単一セットを生成する。
その代わりに又はそれに加えて、いくつかの実施形態の物理制御器505は、入力テーブル525内に有するデータ量を考慮する。これらの実施形態のうちのいくつかにおいて、入力テーブル525が閾値量を上回るデータを有する場合、物理制御器505は、完全なトランザクションを形成する入力の変更の全てを集約して、トランザクションの出力の変更の単一セットを生成する。データ量を考慮する代わりに又はそれに加えて、いくつかの実施形態の物理制御器505は、入力テーブル525が有する完全なトランザクションの数を考慮する。いくつかのそのような実施形態において、入力テーブル525が閾値数を上回る完全なトランザクションを有する場合、物理制御器は完全なトランザクションを形成する入力の変更を集約して、トランザクションの出力の変更の単一セットを生成する。
第4の段階504において、物理制御器505は、トランザクションの出力の変更の単一セットを生成するために更なるトランザクションを使用する必要があると判定した。従って、物理制御器505は、変更1〜3から計算された出力の変更を送出していない。規則エンジン520は、変更4及び5に対してテーブルマッピング動作を実行して、出力の変更を生成した。示すように、変更4及び5から生成された出力の変更は、変更1〜3から生成された出力の変更と共にグループ化される。その後、物理制御器505は、この出力の変更のグループを被管理転送要素のセット又はシャーシ制御器のセットに送出する。
トランザクションの出力の変更の単一セットは、別の制御器又は被管理転送要素に送出されるトランザクションを形成する。トランザクションは、受信側被管理転送要素の転送状態に適用される変更セットを含む。従って、いくつかの実施形態の制御器は、入力側で複数のトランザクションを集約して出力側に送出する単一のトランザクションを生成することにより変更セットを組み合わせ、それにより、それらの変更の全てが被管理転送要素に共に適用される。
図6は、複数の論理制御器635〜645から入力の変更を受信する物理制御器610を概念的に示す。特に、図6は、物理制御器610が複数の異なる論理制御器からの複数のトランザクションを形成する入力の変更を集約してトランザクションの出力の変更の単一セットにする動作を5つの段階601〜605で示す。物理制御器610は、制御器200の対応する構成要素と同様であるインポータ615、規則エンジン620、入力テーブル625及び出力テーブル630を含む点で図2を参照して上述したネットワーク制御器200と同様である。説明を簡略にするために、物理制御器610の全ての構成要素を図6に示すわけではない。
第1の段階601において、論理制御器635は、物理制御器610に入力の変更1を送出している。論理制御器640は、完全なトランザクションを形成する入力の変更2〜4を送出している。段階601において、物理制御器610が前にトランザクションの出力の変更のセットを計算して送出したため、入力テーブル625及び出力テーブル630は空である。
第2の段階602において、物理制御器610は、論理制御器635及び640から変更1〜4を受信した。インポータ615は、変更1〜4を用いて入力テーブル625を更新した。第2の段階602は、論理制御器645が完全なトランザクションを形成する変更5及び6を送出していることを更に示す。
第3の段階603において、物理制御器610は、トランザクションを形成する入力の変更5及び6を論理制御器645から受信した。インポータ615は、変更5及び6を用いて入力テーブル625を更新する。この時点で、入力テーブル625は変更1〜6を有する。第3の段階603は、規則エンジン620がテーブルマッピング動作を実行して、前の段階602で入力テーブル625に入力された変更1〜4から出力の変更を生成したことを更に示す。出力の変更の2つのセットが生成された。示すように、第1のセットは、変更1を処理することにより生成された出力の変更を含む。第2のセットは、変更2〜4を処理することにより生成された出力の変更を含む。
また、段階603において、物理制御器610は、(1)物理制御器が完全なトランザクションを形成する全ての入力の変更を処理することにより出力の変更を生成したため、変更2〜4を処理することにより生成されたこれらの出力の変更を送出するか、あるいは(2)更なる入力の変更が供給されるのを待つかを判定する。いくつかの実施形態において、物理制御器は、図5を参照して上述したように、特定の基準、すなわち、トランザクションの出力の変更のセットを送出してから又は完全なトランザクションを受信してから経過した期間、入力テーブル625内のデータ量、並びに/あるいは入力テーブル625内の完全なトランザクションの数に基づいて当該判定を行う。
第4の段階604において、物理制御器610は、トランザクションの出力の変更の単一セットを生成するために更なるトランザクションを使用する必要があると判定した。従って、物理制御器610は、入力の変更2〜4から計算された出力の変更を送出していない。規則エンジン620は、変更5及び6に対してテーブルマッピング動作を実行して、対応する出力の変更を生成した。しかし、示すように、この場合、入力の変更5及び6から計算された出力の変更は、入力の変更2〜4から計算された出力の変更と共にグループ化される。従って、物理制御器610は、2つのトランザクションを形成する入力の変更2〜4のセットと入力の変更5及び6のセットとを処理することで得られた出力を集約することにより、出力の変更の単一セットを生成した。
第5の段階605において、物理制御器610は、シャーシ制御器のセット又は被管理転送要素のセットに変更2〜6から計算された出力の変更を送出した。物理制御器は、送出された出力の変更を出力テーブル630から除去した。物理制御器は、入力テーブル625から入力の変更2〜6を更に除去した。段階605は、入力の変更1が入力テーブル625に残存し且つ入力の変更1から計算された出力の変更が出力テーブル630に残存することを示す。これは、入力の変更1が完全なトランザクションを形成せず、すなわち、変更1を含む完全なトランザクションが物理制御器610において受信されたことを示すバリアを物理制御器が受信していないためである。
図7は、複数のトランザクションを形成する入力の変更からトランザクションの出力の変更のセットを生成するためにいくつかの実施形態が実行する処理700を概念的に示す。処理700は、入力の変更を生成する2つ以上の送出元制御器から入力の変更を受信する受信側制御器により実行される。いくつかの実施形態において、受信側制御器は、UPCPデータを含む入力の変更を生成する論理制御器のセットから入力の変更を受信する物理制御器である。また、受信側制御器は、UPCPデータを中継する物理制御器のセットから入力の変更を受信するシャーシ制御器であってもよい。受信側制御器は、図5及び図6の物理制御器505及び605と同様である。
処理700は、送出元制御器から入力の変更を受信する(705)ことにより開始する。いくつかの実施形態において、異なる送出元制御器からの入力の変更は、異なる論理転送要素のセットに関する。処理700において、それまでに受信した入力の変更を使用して出力の変更を計算する(710)。
次に、処理700において、送出元制御器から少なくとも1つの完全なトランザクションを受信したかを判定する(715)。上述のように、完全なトランザクションは、1つの送出元制御器からバリアを受信してから別のバリアを受信するまでの間に当該送出元制御器から受信した入力の変更を含む。処理700において、少なくとも1つの完全なトランザクションを受信していないと判定される場合(715)、処理700は705に戻り、送出元制御器から更なる入力の変更を受信する。
処理700において、少なくとも1つの完全なトランザクションを受信したと判定される場合(715)、処理700は720に進み、特定の集約基準が満たされるかを判定する。異なる実施形態は、異なる集約基準を有する。例えばいくつかの実施形態において、特定の基準は、最後の出力の変更のセットを送出してから又は最後の完全なトランザクションを受信してから経過した期間を含む。この期間が経過した場合、特定の基準は満たされる。その代わりに又はそれに加えて、いくつかの実施形態において、特定の集約基準は、(処理700を実行する受信側制御器の)入力テーブル内に有するデータ量を含む。これらの実施形態において、入力テーブルが閾値量を上回るデータを有する場合、特定の基準は満たされる。これらの実施形態のうちのいくつかにおいて、データ量の代わりに又はそれに加えて、特定の基準は、入力テーブルが有する完全なトランザクションの数を含む。これらの実施形態において、入力テーブルが閾値数を上回る完全なトランザクションを有する場合、特定の基準は満たされる。
次に、処理700において、完全なトランザクションの全てを構成する入力の変更から計算された出力の変更を集約する(725)。いくつかの実施形態では、処理700において、完全なトランザクションを形成しない入力の変更から計算される出力の変更は除外される。換言すると、これらの除外される出力の変更は、バリアが受信されていない入力の変更から計算される。
処理700において、制御器の階層における下位レイヤに存在する制御器のセット又は出力の変更に基づいてデータを転送する被管理転送要素のセットに集約された出力の変更を送出する(730)。いくつかの実施形態の処理700において、出力の変更の末尾にバリアを挿入するか又は出力の変更のうちの最後の変更に完全なトランザクションを示す情報を追加する。また、送出された出力の変更を受信側制御器の出力テーブルから除去し、完全なトランザクションを形成し且つ送出された出力の変更を計算する際に使用した入力の変更を受信側制御器の入力テーブルから除去する。その後、処理は終了する。
C.ユースケース
1.API
アプリケーションプログラミングインタフェース(API)呼出しの形態である論理転送要素を定義する入力は、APIをサポートする入力変換制御器に送出される。いくつかの実施形態のネットワーク制御システムは、APIの更新をアトミックにレンダリングする。すなわち、構成の変更は、システムを古い状態から新しい状態にアトミックに移行する。詳細には、API呼出しを受信後、システム内のAPI受信コードはnLogエンジンに対する状態を更新し、全ての更新を供給後、システム内のAPI受信コードは固定点(計算を収束させる)に到達するのを待ち、nLogに対する変更を行うことにより終了されるトランザクションを信号伝送する。この後、転送状態の更新は、全てが単一のトランザクションの更新でクラスタ階層において下位の制御器に送出されるか又は転送要素に向けて送出される。更新は、受信側要素によりトランザクションで適用される。
いくつかの実施形態において、APIの更新は、更新が単一のトランザクションの更新として受信機に到着する限り、分散格納システム(例えば、制御器内のPTD)にわたり送信される。すなわち、更新が単一のトランザクションの更新として記憶装置に書き込まれ且つnLog処理制御器が更新を単一のトランザクションとして受信する限り、状態の更新をプッシュする処理が上述のように継続するため、nLog計算処理に対する更新を単一のトランザクションの更新として書き込むことができる。
2.制御器のフェイルオーバ
論理転送要素のセットを管理するマスタ論理制御器を考慮する。いくつかの実施形態において、制御器は、同一の状態を計算し且つマスタと同様の方法で当該状態をプッシュするホットバックアップを有する。マスタとホットバックアップとの間の1つの相違点は、フェイルオーバが開始するまでバックアップからのストリームが無視されることである。マスタに障害が発生すると、受信側制御器/転送要素は、以下のように古い状態から新しい状態に徐々に移行することによりバックアップに切り替える。
古いマスタからの状態の更新のストリームを除去/遮断し且つアクティブな更新のストリームが上位の制御器から受信される状態に向けて計算を収束させる代わりに、単に新しいマスタに切り替え、計算を収束させ、古いストリームと新しいストリームとを効果的に合成する。すなわち、これは、双方の送出元が同一又はほぼ同一のストリームを生成するという仮定に基づく。この動作を実行後、制御器は、固定点に到達するのを待つことにより計算が収束するのを待ち、固定点に到達してから古いストリームを完全に除去する。この場合も、固定点に到達するのを待つことにより、制御器は新しい送出元のみの使用に向けて計算を収束させる。この後、制御器は、トランザクションをコミットすることにより古い送出元から新しい送出元への移行を完成させる。これにより、状態の更新が処理される必要があるという信号としてバリアを下位の制御器/転送要素から効果的に渡すためのnLogの実行時間が信号伝送される。
D.オンデマンド要求の処理
API要求の処理は、nLogエンジンを使用して実現される場合がある。その場合、要求は、nLogによるAPI応答の計算をトリガするタプルのセットに変換されてnLogエンジンに供給される。API応答は、同様にタプルとして表される。タプルである要求及び応答が要求タプル及び応答タプルと1対1のマッピングを有するため、応答を待つことは容易である。API要求の処理は、要求とマッチングする応答が到着するのを単に待つことである。要求とマッチングする応答が到着すると、応答に対する計算を実行できる状態になる。
しかし、要求/応答が1対1のマッピングを有さない場合、要求の処理が完了したことを認識するのは困難である。その場合、API要求の処理は、要求を供給後に計算の固定点を尋ねてもよい。固定点に到達すると、要求は、生成された全ての応答を有する。要求タプル及び応答タプルが何らかの共通する識別子を有する限り、応答タプルの数に関係なく、応答タプルを識別することは容易である。従って、このユースケースはそのようなコミットの使用を必要としないが、計算を許可するプリミティブは、固定点を待つことである。
図8は、ネットワーク制御器がユーザからの要求を被管理転送要素に分散し且つ要求に対する応答をユーザに返すネットワーク制御システム800を示す。ネットワーク制御システム800は、ネットワーク制御システム800内の制御器が被管理転送要素の転送挙動を定義するために被管理転送要素にプッシュする転送状態情報を同様に計算する点で図1のネットワーク制御システム100と同様である。ネットワーク制御システム800は、入力変換制御器805、論理制御器810、2つの物理制御器815及び820、並びに3つの被管理転送要素825〜835を含む。ネットワーク制御システム800は、2つの物理制御器815及び820が要求を3つの被管理転送要素に分散する単純化された例を表す。多くの場合、いくつかの実施形態のネットワーク制御システムは、非常に多くの制御器と数百個又は数千個の被管理転送要素とを含む。
いくつかの実施形態の入力変換制御器805は、ユーザから入力を受信する。これらの入力は論理ネットワークの指定を含み、入力変換制御器は、これを論理制御器が後に処理するLCPデータに変換する。更に、入力は、論理ネットワークに関する情報に対する要求を更に含んでもよい。例えばユーザからの要求は、統計情報(例えば、ある期間の論理転送要素の論理ポートに対するトラフィック量)を求めてもよい。入力変換制御器805は、論理制御器が後に処理するデータタプルの形態の論理要求に要求を変換する。
いくつかの実施形態において、入力変換制御器805は、API呼出しの形態でユーザから入力を受信する。入力変換制御器805はAPIをサポートし、ネットワーク管理アプリケーション(例えば、ウェブアプリケーション又はコマンドラインインタフェース(CLI)アプリケーション)はAPIの上に構築可能である。ユーザは、ネットワークアプリケーションを使用して、入力変換制御器に対する入力を取得する。
いくつかの実施形態において、ネットワーク制御器810〜820は、要求の変換を実行し、データタプルの形態で要求を被管理転送要素に分散する。いくつかの実施形態のネットワーク制御器は、要求を被管理転送要素に分散する前に複数の異なる要求変換を実行する。詳細には、論理制御器810は、入力変換制御器805から論理要求を受信する。いくつかの実施形態において、論理要求は、論理ネットワークの論理属性を用いて指定される。論理要求の一例は、特定の論理転送要素の特定の論理ポートに関する情報に対する要求である。この要求は、論理ポートの名称又はアドレス、並びに論理転送要素の名称又はアドレスを用いて作成される。
論理制御器810は、この論理要求を汎用要求に変換する。いくつかの実施形態において、汎用要求は、論理ネットワークを実現する被管理転送要素の属性を用いて指定される。しかし、これらの属性は、特定の物理的実現に特有ではない抽象的な用語で表される(例えば、ポート番号、トンネル識別子等)。例えば汎用要求は、物理ポートの実際のポート番号を使用する代わりに、いずれかの被管理転送要素の物理ポートの名称を使用して作成される。
いくつかの実施形態において、論理制御器810は、任意の数の物理制御器に当該汎用要求を送出する。例えば論理制御器810は、2つの物理制御器815及び820に汎用要求を送出する。いくつかの実施形態において、汎用要求は、要求を識別するための識別子を有する。この識別子は、要求と対応する応答とをマッチングさせるために使用される。応答を後で説明する。
各被管理転送要素は、マスタ物理制御器により管理される。従って、複数の被管理転送要素にわたり実現される論理転送要素に対する論理要求は、これらの転送要素を管理する複数の異なるマスタ物理制御器に送出されてもよい。示すように、物理制御器815は、2つの被管理転送要素825及び830を管理するマスタ制御器である。物理制御器820は、被管理転送要素835を管理するマスタ制御器である。
物理制御器又は被管理転送要素と同一の物理マシン内のシャーシ制御器(図8に不図示)のいずれかにおいて、汎用要求はカスタマイズ済要求に変換される。いくつかの実施形態において、カスタマイズ済要求は、被管理転送要素に特有の被管理転送要素の属性を用いて指定される。例えば被管理転送要素に対するカスタマイズ済要求は、被管理転送要素の物理ポートに対してローカルに使用される実際のポート番号で作成される。物理制御器がシャーシ制御器にUPCPデータを送出する通過点である実施形態において、物理制御器はシャーシ制御器に汎用要求を送出する通過点である。
被管理転送要素825〜835は、図1の被管理転送要素125〜135と同様である。エンドマシン840〜860は、図1のエンドマシン140〜160と同様である。被管理転送要素825〜835は、カスタマイズ済要求が問い合わせる情報を収集する。被管理転送要素825〜835の各々は、カスタマイズ済要求の受信に応答して、収集した情報を含むカスタマイズ済応答を生成する。
被管理転送要素は、被管理転送要素がカスタマイズ済要求を受信した物理制御器(又はシャーシ制御器)にカスタマイズ済応答を渡す。物理制御器又はシャーシ制御器のいずれかにおいて、カスタマイズ済応答は必要に応じて集約され、汎用応答に変換される。その後、汎用応答は、物理制御器が汎用要求を受信した論理制御器に渡される。
例えば物理制御器815は、被管理転送要素825及び830からカスタマイズ済応答を受信し、カスタマイズ済応答を集約して汎用応答に変換する。いくつかの実施形態において、物理制御器820はカスタマイズ済応答を集約する必要がない。物理制御器820は、被管理転送要素825から受信したカスタマイズ済応答の変換のみを行い、論理制御器810に汎用応答を渡す。
論理制御器810は、論理制御器810が汎用要求を送出した物理制御器から汎用応答を受信する。論理制御器810は汎用応答を集約し、集約された汎用応答を論理応答に変換し、入力変換制御器805に論理応答を渡す。いくつかの実施形態において、入力変換制御器805は、ユーザが管理アプリケーションを介して閲覧する出力に論理応答を変換する。
いくつかの実施形態において、カスタマイズ済応答、汎用応答及び論理応答は、カスタマイズ済要求、汎用要求及び論理要求を指定するために使用されたのと同一の属性でそれぞれ指定される。いくつかの実施形態において、これらの要求及び応答はデータタプルの形態である。
尚、制御器の階層における制御器は、階層において下位の制御器から複数の応答を受信しない場合がある。例えば要求が特定の被管理転送要素の特定の物理ポートにマッピングされる特定の論理ポートの情報を取得するためのものである場合、論理制御器は、汎用要求を2つ以上の物理制御器に分散する必要がないため、物理制御器から1つの汎用応答を取得する。
制御器がそれに要求を送出した制御器の階層において上位の別の制御器に応答を渡す場合、制御器は応答をトランザクションで送出する。図9は、物理制御器935、940及び945のセットから受信した汎用応答を集約するいくつかの実施形態の論理制御器910を示す。特に、図9は、論理制御器910が複数の異なる物理制御器からの複数のトランザクションを形成する入力の変更を処理してトランザクションの出力の変更の単一セットにすることにより出力の変更を集約する動作を5つの段階901〜905で示す。この場合、論理制御器910は、集約された出力の変更を入力変換制御器(不図示)に渡す。集約された出力の変更は、論理制御器910が入力変換制御器から受信した論理要求により問い合わされた情報を含む論理応答を含む。
論理制御器910は、制御器200の対応する構成要素と同様であるインポータ915、規則エンジン920、入力テーブル925及び出力テーブル930を含む点で図2を参照して上述したネットワーク制御器200と同等である。説明を簡略にするために、論理制御器910の全ての構成要素を図9に示すわけではない。
第1の段階901において、物理制御器935は、論理制御器910に入力の変更1〜3を送出している。入力の変更1〜3は、論理制御器910から汎用要求を受信したのに応答して物理制御器935により作成される汎用応答を含む。いくつかの実施形態において、入力の変更1〜3は汎用要求の識別子を含む。論理制御器910は、識別子を使用して応答と要求とをマッチングする。
いくつかの実施形態において、物理制御器935は、(1)物理制御器935が被管理転送要素のセットから受信するカスタマイズ済応答のセットを集約し且つ(2)集約されたカスタマイズ済応答を汎用応答に変換することにより、汎用応答を作成する。他の実施形態において、物理制御器935は、物理制御器935がシャーシ制御器(不図示)のセットから受信する汎用応答のセットを集約することにより、汎用応答を作成する。シャーシ制御器は、シャーシ制御器が動作するのと同一のホストにおいて動作する被管理転送要素のセットからのカスタマイズ済応答のセットを集約することにより、物理制御器935に渡す汎用応答を作成する。
段階901において、入力テーブル925及び出力テーブル930は、転送状態、要求及び/又は応答に対するレコードを含んでもよい。説明を簡略にするために、これらの他のレコードを図9に示さない。
第2の段階902において、論理制御器910は、物理制御器935から変更1〜3を受信した。インポータ915は、変更1〜3を用いて入力テーブル925を更新した。第2の段階902は、物理制御器940が完全なトランザクションを形成する変更4〜6を送出していることを更に示す。制御器945は、完全なトランザクションを形成する変更7及び8を送出している。変更4〜6及び変更7〜8は、物理制御器940及び945が論理制御器910から汎用要求を受信したのに応答して作成した汎用応答をそれぞれ含む。いくつかの実施形態において、変更4〜8は汎用要求の識別子を更に含む。
第3の段階903において、論理制御器910は、物理制御器940からトランザクションの入力の変更4〜6のセットを受信し、物理制御器945からトランザクションを形成する入力の変更7及び8を受信した。インポータ915は、変更4〜8を用いて入力テーブル925を更新する。この時点で、入力テーブル925は変更1〜8を有する。第3の段階903は、規則エンジン920がテーブルマッピング動作を実行して、前の段階902において入力テーブル925に入力された変更1〜3から出力の変更を生成したことを更に示す。
また、段階903において、論理制御器910は、(1)論理制御器910が完全なトランザクションを形成する入力の変更を処理することにより出力の変更を生成したため、変更1〜3を処理することにより生成されたこれらの出力の変更を送出するか、あるいは(2)汎用応答を含む更なる入力の変更が供給されるのを待つかを判定する。物理制御器は、特定の基準に基づいてこの判定を行う。例えばいくつかの実施形態において、論理制御器910は、論理制御器910から汎用要求を受信した物理制御器の全てが汎用応答を渡すのを待つ。これらの実施形態において、論理制御器910は、全ての汎用応答を処理することにより生成された出力の変更を集約して、論理応答を生成する。その代わりに又はそれに加えて、論理制御器910は、汎用要求が物理制御器に送出されてから所定の期間中に受信された汎用応答を処理することにより生成された出力の変更を集約する。論理制御器は、所定の期間中に集約された出力の変更から論理応答を生成する。
第4の段階904において、論理制御器910は、論理応答を含むトランザクションの出力の変更の単一セットを生成するために、汎用応答を含む更なるトランザクションを使用する必要があると判定した。従って、論理制御器910は、前の段階903において計算された入力の変更1〜3から計算された出力の変更を送出していない。規則エンジン920は、変更4〜8に対してテーブルマッピング動作を実行して、対応する出力の変更を生成した。しかし、示すように、この場合、入力の変更4〜8から計算された出力の変更は、入力の変更1〜3から計算された出力の変更と共にグループ化される。従って、論理制御器910は、3つの完全なトランザクションを形成する入力の変更1〜3、4〜6及び7〜8を集約することにより、論理応答を含むこの出力の変更の単一セットを生成した。
第5の段階905において、論理制御器910は、変更1〜8から計算された出力の変更を入力変換制御器(不図示)に送出した。物理制御器は、入力テーブル925から入力の変更1〜8を除去し、出力テーブル930から出力の変更を除去した。
図9は、論理制御器による汎用応答の集約を示す。物理制御器によるカスタマイズ済応答の集約を示すために、図9に示す論理制御器及び物理制御器をそれぞれ物理制御器及びシャーシ制御器に置換できることが当業者には認識されるだろう。
図10は、制御器の階層における下位レイヤの下位制御器のセットからの応答セットを集約して階層における上位レイヤの上位制御器に渡す単一の応答を生成するためにいくつかの実施形態が実行する処理1000を概念的に示す。いくつかの実施形態において、処理1000は、図8及び図9の論理制御器810及び910と同様の中間制御器により実行される。すなわち、中間制御器は、(1)上位制御器から要求を受信し、(2)要求を下位制御器のセットに分散し、(3)下位制御器からの要求に対する応答を集約して単一の応答を生成し且つ上位制御器に渡す。いくつかの実施形態において、中間制御器が受信又は生成する要求及び応答は、完全なトランザクションを形成する変更(例えば、データタプル)の形態である。
いくつかの実施形態において、受信側制御器は、入力変換制御器から論理要求を受信し、物理制御器のセットに汎用要求を送出し、物理制御器から汎用応答を受信し且つ入力変換制御器に論理応答を送出する論理制御器である。論理制御器により実行される際の処理1000を以下に説明する。しかし、いくつかの実施形態の受信側制御器は、論理制御器から汎用要求を受信し、被管理転送要素のセットにカスタマイズ済要求を送出するか又はシャーシ制御器のセットに汎用要求を中継し、被管理転送要素からカスタマイズ済応答を受信するか又はシャーシ制御器から汎用応答を受信し且つ論理制御器に汎用応答を送出する物理制御器であってもよい。
処理1000は、入力変換制御器から論理要求を受信する(1005)ことから開始する。入力変換制御器は、いくつかの実施形態のネットワーク制御システムのユーザにより提供された入力データから論理要求を生成する。論理要求は、入力変換制御器を介してユーザが管理する論理転送要素の特定の情報を問い合わせる。処理1000において、論理要求を汎用要求に変換することにより汎用要求を計算する(1010)。
次に、処理1000において、汎用要求の送出先である物理制御器のセットを識別する(1015)。物理制御器のセットを識別するために、処理1000において、最初に論理転送要素を実現する被管理転送要素のセットを識別し、その後被管理転送要素のセットのマスタ物理制御器を識別する。いくつかの実施形態において、これらのマスタ物理制御器は汎用要求を受信する必要がある。処理1000において、識別された各物理制御器に汎用要求を送出する(1015)。いくつかの実施形態では、処理1000において、論理要求の識別子を保持し、汎用要求に識別子を追加する。処理1000において、汎用応答と汎用要求及び論理要求とをマッチングするために、当該識別子が使用される。
識別された物理制御器のセットに汎用要求を送出した後、処理1000において、物理制御器から汎用応答を受信する(1020)。また、1020において、処理1000は汎用応答を含む入力の変更を処理して(例えば、テーブルマッピング動作を実行して)出力の変更を生成する。
次に、処理1000において、物理制御器から少なくとも1つの完全なトランザクションを受信したかを判定する(1025)。完全なトランザクションは、物理制御器からバリアを受信してから別のバリアを受信するまでの間に当該物理制御器から受信した入力の変更を含む。物理制御器からの完全なトランザクションは、汎用応答を含む。
処理1000において、物理制御器から少なくとも1つの完全なトランザクション(例えば、少なくとも1つの完全な汎用応答)を受信していないと判定される場合(1025)、処理1000は1020に戻り、物理制御器から更なる入力の変更を受信する。
処理1000において、少なくとも1つの完全なトランザクションを受信したと判定される場合(1025)、処理1000は1030に進み、特定の集約基準が満たされるかを判定する。異なる実施形態は、異なる集約基準を含む。例えばいくつかの実施形態において、特定の基準は、汎用要求を送出してから(1015)又は論理要求を受信してから(1005)経過した期間を含む。この期間が経過した場合、特定の基準は満たされる。その代わりに又はそれに加えて、いくつかの実施形態において、特定の基準は、汎用要求を受信した物理制御器の全てから汎用応答が受信されるかを含む。これらの実施形態において、汎用要求を受信した物理制御器の全てから汎用応答が受信される場合、特定の基準は満たされる。
処理1000において、特定の基準が満たされないと判定される場合(1030)、1020に戻り、汎用応答の受信を続行し、汎用応答を処理する。処理1000において、特定の基準が満たされると判定される場合(1030)、受信した汎用応答(すなわち、汎用応答を含む完全なトランザクションの入力の変更)から計算された出力の変更を集約する(1035)。また、1035において、処理1000は集約された出力の変更から単一の論理応答を生成する。
その後、処理1000において、論理制御器に論理要求を送出した入力変換制御器に論理応答を送出する(1040)。いくつかの実施形態の処理1000において、出力の変更の末尾にバリアを挿入するか、あるいは出力の変更のうちの最後の変更に完全なトランザクションを示す情報を追加する。また、送出された出力の変更を論理制御器の出力テーブルから除去し、論理応答の計算に使用された完全なトランザクションを形成する入力の変更を論理制御器の入力テーブルから除去する。その後、処理は終了する。
III.電子システム
上述の特徴及びアプリケーションの多くは、コンピュータ可読記憶媒体(コンピュータ可読媒体とも呼ぶ)に記録された命令セットとして指定されるソフトウェア処理として実現される。1つ以上の処理装置(例えば、1つ以上のプロセッサ、プロセッサのコア又は他の処理装置)により実行される場合、これらの命令は、命令において示される動作を処理装置に実行させる。コンピュータ可読媒体の例は、CD−ROM、フラッシュドライブ、RAMチップ、ハードドライブ、EPROM等を含むがそれらに限定されない。コンピュータ可読媒体は、無線又は有線接続を介する搬送波及び電子信号を含まない。
本明細書において、用語「ソフトウェア」は、プロセッサにより処理するためにメモリに読み込み可能である読出し専用メモリに常駐するファームウェア又は磁気記憶装置に格納されたアプリケーションを含むことを意図する。また、いくつかの実施形態において、複数のソフトウェア発明は、残りの部分が異なるソフトウェア発明である大きいプログラムの一部として実現可能である。いくつかの実施形態において、複数のソフトウェア発明は、別個のプログラムとしても実現可能である。最後に、本明細書中で説明するソフトウェア発明を共に実現する別個のプログラムの何らかの組み合わせは、本発明の範囲内である。いくつかの実施形態において、1つ以上の電子システムにおいて動作するためにインストールされる場合、ソフトウェアプログラムは、ソフトウェアプログラムの動作を実行する1つ以上の特定のマシンの実現を定義する。
図11は、本発明のいくつかの実施形態が実現される電子システム1100を概念的に示す。電子システム1100は、上述の制御、仮想化又はオペレーティングシステムのアプリケーションのいずれかを実行するために使用可能である。電子システム1100は、コンピュータ(例えば、デスクトップコンピュータ、パーソナルコンピュータ、タブレットコンピュータ、サーバコンピュータ、大型コンピュータ、ブレードコンピュータ等)、電話、PDA又は他の何らかの種類の電子装置であってもよい。そのような電子システムは、種々のコンピュータ可読媒体と、種々の他のコンピュータ可読媒体に対するインタフェースとを含む。電子システム1100は、バス1105、処理装置1110、システムメモリ1125、読出し専用メモリ1130、固定記憶装置1135、入力装置1140及び出力装置1145を含む。
バス1105は、電子システム1100の多くの内部装置に通信可能に接続する全てのシステムバス、周辺バス及びチップセットバスを一括して表す。例えばバス1105は、処理装置1110と、読出し専用メモリ1130、システムメモリ1125及び固定記憶装置1135とを通信可能に接続する。
処理装置1110は、これらの種々の記憶装置から、本発明の処理を実行するために実行する命令及び処理するデータを検索する。異なる実施形態において、処理装置は単一のプロセッサであってもよく、あるいはマルチコアプロセッサであってもよい。
読出し専用メモリ(ROM)1130は、処理装置1110及び電子システムの他のモジュールが必要とする静的データ及び命令を格納する。それに対して、固定記憶装置1135は、読出し書込み記憶装置である。当該装置は、電子システム1100の電源がオフである場合でも命令及びデータを格納する不揮発性記憶装置である。本発明のいくつかの実施形態は、固定記憶装置1135として大容量記憶装置(磁気ディスク又は光ディスク及びそれに対応するディスクドライブ等)を使用する。
他の実施形態は、固定記憶装置として取外し可能記憶装置(フロッピディスク、フラッシュドライブ等)を使用する。固定記憶装置1135と同様に、システムメモリ1125は読出し書込み記憶装置である。しかし、記憶装置1135と異なり、システムメモリは、ランダムアクセスメモリ等の揮発性読出し書込みメモリである。システムメモリは、プロセッサが実行時に必要とする命令及びデータの一部を格納する。いくつかの実施形態において、本発明の処理は、システムメモリ1125、固定記憶装置1135及び/又は読出し専用メモリ1130に格納される。処理装置1110は、これらの種々の記憶装置から、いくつかの実施形態の処理を実行するために実行する命令及び処理するデータを検索する。
バス1105は、入力装置1140及び出力装置1145に更に接続する。入力装置により、ユーザは電子システムに対して情報を通信し且つコマンドを選択できる。入力装置1140は、英数字キーボード及びポインティングデバイス(「カーソル制御装置」とも呼ぶ)を含む。出力装置1145は、電子システムにより生成される画像を表示する。出力装置は、プリンタ、並びにブラウン管(CRT)又は液晶ディスプレイ(LCD)等の表示装置を含む。いくつかの実施形態は、入力装置及び出力装置の双方として機能するタッチスクリーン等の装置を含む。
最後に、図11に示すように、バス1105は、ネットワークアダプタ(不図示)を介して電子システム1100をネットワーク1165に更に結合する。このように、コンピュータは、コンピュータのネットワーク(ローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(「WAN」)又はイントラネット等)の一部であってもよく、あるいはインターネット等のネットワークのネットワークの一部であってもよい。電子システム1100のいずれか又は全ての構成要素が本発明に関連して使用されてもよい。
いくつかの実施形態は、マシン可読媒体又はコンピュータ可読媒体(あるいは、コンピュータ可読記憶媒体、マシン可読媒体又はマシン可読記憶媒体と呼ぶ)にコンピュータプログラム命令を格納するマイクロプロセッサ、記憶装置及びメモリ等の電子構成要素を含む。そのようなコンピュータ可読媒体のいくつかの例は、RAM、ROM、読出し専用コンパクトディスク(CD−ROM)、記録可能コンパクトディスク(CD−R)、書換え可能コンパクトディスク(CD−RW)、読出し専用デジタル汎用ディスク(例えば、DVD−ROM、2層式DVD−ROM)、種々の記録可能/書換え可能DVD(例えば、DVD−RAM、DVD−RW、DVD+RW等)、フラッシュメモリ(例えば、SDカード、ミニSDカード、マイクロSDカード等)、磁気ハードドライブ及び/又は固体ハードドライブ、読出し専用Blu−Ray(r)ディスク及び記録可能Blu−Ray(r)ディスク、超高密度光ディスク、他の何らかの光媒体又は磁気媒体、並びにフロッピディスクを含む。コンピュータ可読媒体は、少なくとも1つの処理装置により実行可能であり且つ種々の動作を実行するための命令セットを含むコンピュータプログラムを格納してもよい。コンピュータプログラム又はコンピュータコードの例は、コンパイラにより生成されるようなマシンコード、並びにインタープリタを使用するコンピュータ、電子構成要素又はマイクロプロセッサにより実行される高レベルコードを含むファイルを含む。
上記の説明はソフトウェアを実行するマイクロプロセッサ又はマルチコアプロセッサを主に参照するが、いくつかの実施形態は、特定用途向け集積回路(ASIC)又はフィールドプログラマブルゲートアレイ(FPGA)等の1つ以上の集積回路により実行される。いくつかの実施形態において、そのような集積回路は、回路自体に格納される命令を実行する。
本明細書中で使用される場合、用語「コンピュータ」、「サーバ」、「プロセッサ」及び「メモリ」は全て、電子装置又は他の技術装置を参照する。これらの用語は、人間又は人間のグループを含まない。本明細書の便宜上、用語「表示する」は、電子装置上に表示することを意味する。本明細書中で使用される場合、用語「コンピュータ可読媒体」及び「マシン可読媒体」は全て、コンピュータが読み出せる形態で情報を格納する有形の物理物体に限定される。これらの用語は、無線信号、有線ダウンロード信号及び他の何らかの一時的な信号を含まない。
多くの特定の詳細を参照して本発明を説明したが、本発明が本発明の主旨から逸脱せずに他の特定の形態で実現可能であることが当業者には認識されるだろう。更に、多くの図面(図4、図7及び図10を含む)は処理を概念的に示す。これらの処理の特定の動作は、図示及び説明される正確な順序で実行されなくてもよい。特定の動作は、一連の連続する動作で実行される必要がなく、異なる実施形態において、異なる特定の動作が実行されてもよい。更に、処理は、複数の副処理を使用して実現されてもよく、あるいは大きいマクロ処理の一部として実現されてもよい。

Claims (15)

  1. ネットワークにおいてデータを転送する複数の被管理転送要素を含む前記ネットワークを管理する特定の制御器における方法であって、
    1の制御器から第1の入力セットを受信し、2の制御器から第2の入力セットを受信する工程と、
    前記第1の入力セットを使用して出力セットの計算を開始する一方で、前記第2の入力セットを格納する工程と、
    前記第1の制御器の障害発生後、第3の入力セットの前記第2の制御器からの受信を開始する工程であって、前記第3の入力セットと、前記第1の入力セットまたは前記第2の入力セットとは、別の入力グループとは独立にまとめて処理されるべき特定の入力グループの一部である工程と、
    前記第2の入力セット及び前記第3の入力セットを使用して、前記出力セットを計算する工程と、
    前記特定の入力グループの前記第3の入力セットにおける最後の入力を前記特定の制御器が受信したことを示し、それにより前記特定の入力グループの全ての入力が前記特定の制御器に到達したことを示すインジケータを前記第2の制御器から受信する工程と、
    前記インジケータを受信し前記出力セットを完全に計算した後に、第3の制御器に前記出力セットを送出する工程と
    を備え、
    前記第3の制御器は、その後に前記特定の制御器からの前記出力セットを処理し、前記処理された出力を被管理転送要素に送出することを特徴とする方法。
  2. 前記第2の入力セット内の少なくとも1つの入力は、前記第1の入力セット内の入力と重複し、
    前記出力セットを計算する工程では、前記重複する入力が前記出力セットに影響を及ぼさないように前記出力セットを計算する工程を含むことを特徴とする請求項1記載の方法。
  3. 前記インジケータは、前記第3の入力セット内の入力の一部であることを特徴とする請求項1記載の方法。
  4. 前記第1の入力セット、前記第2の入力セット又は前記第3の入力セット内の入力はデータタプルであることを特徴とする請求項1記載の方法。
  5. 前記被管理転送要素に送出される前記処理された出力セットは、前記被管理転送要素の転送挙動を定義することを特徴とする請求項1記載の方法。
  6. 少なくとも1つの処理部によって実行される、ネットワークにおいてデータを転送する複数の被管理転送要素を含む前記ネットワークを管理する特定の制御器のためのプログラムを格納した非一時的機械読出可能媒体であって、
    前記プログラムは、
    第1の制御器から第1の入力セットを受信し、第2の制御器から第2の入力セットを受信する工程と、
    前記第1の入力セットを使用して出力セットの計算を開始する一方で、前記第2の入力セットを格納する工程と、
    前記第1の制御器の障害発生後、第3の入力セットの前記第2の制御器からの受信を開始する工程であって、前記第3の入力セットと、前記第1の入力セットまたは前記第2の入力セットとは、別の入力グループとは独立にまとめて処理されるべき特定の入力グループの一部である工程と、
    前記第2の入力セット及び前記第3の入力セットを使用して、前記出力セットを計算する工程と、
    前記特定の入力グループの前記第3の入力セットにおける最後の入力を前記特定の制御器が受信したことを示し、それにより前記特定の入力グループの全ての入力が前記特定の制御器に到達したことを示すインジケータを前記第2の制御器から受信する工程と、
    前記インジケータを受信し前記出力セットを完全に計算した後に、第3の制御器に前記出力セットを送出する工程と
    を実行するための命令の組を有し、
    前記第3の制御器は、その後に前記特定の制御器からの前記出力セットを処理し、前記処理された出力を被管理転送要素に送出することを特徴とする非一時的機械読出可能媒体。
  7. 前記第2の入力セット内の少なくとも1つの入力は、前記第1の入力セット内の入力と重複し、
    前記出力セットを計算するための命令の組は、前記重複する入力が前記出力セットに影響を及ぼさないように前記出力セットを計算するための命令の組を含むことを特徴とする請求項6記載の非一時的機械読出可能媒体。
  8. 前記インジケータは、前記第3の入力セット内の入力の一部であることを特徴とする請求項6記載の非一時的機械読出可能媒体。
  9. 前記第1の入力セット、前記第2の入力セット又は前記第3の入力セット内の入力はデータタプルであることを特徴とする請求項6記載の非一時的機械読出可能媒体。
  10. 前記被管理転送要素に送出される前記処理された出力セットは、前記被管理転送要素の転送挙動を定義することを特徴とする請求項6記載の非一時的機械読出可能媒体。
  11. ネットワークにおいてデータを転送する複数の被管理転送要素を含む前記ネットワークを管理する第1の制御器であって、
    一組の処理部と、
    前記一組の処理部による実行のためのプログラムを格納した非一時的機械読出可能媒体と
    を備え、
    前記プログラムは、前記第1の制御器に、
    前記第1の制御器から第1の入力セットを受信し、第2の制御器から第2の入力セットを受信する工程と、
    前記第1の入力セットを使用して出力セットの計算を開始する一方で、前記第2の入力セットを格納する工程と、
    前記第1の制御器の障害発生後、第3の入力セットの前記第2の制御器からの受信を開始する工程であって、前記第3の入力セットと、前記第1の入力セットまたは前記第2の入力セットとは、別の入力グループとは独立にまとめて処理されるべき特定の入力グループの一部である工程と、
    前記第2の入力セット及び前記第3の入力セットを使用して、前記出力セットを計算する工程と、
    前記特定の入力グループの前記第3の入力セットにおける最後の入力を前記特定の制御器が受信したことを示し、それにより前記特定の入力グループの全ての入力が前記特定の制御器に到達したことを示すインジケータを前記第2の制御器から受信する工程と、
    前記インジケータを受信し前記出力セットを完全に計算した後に、第3の制御器に前記出力セットを送出する工程と
    を実行させるための命令の組を有し、
    前記第3の制御器は、その後に前記特定の制御器からの前記出力セットを処理し、前記処理された出力を被管理転送要素に送出することを特徴とする第1の制御器。
  12. 前記第2の入力セット内の少なくとも1つの入力は、前記第1の入力セット内の入力と重複し、
    前記出力セットを計算するための命令の組は、前記重複する入力が前記出力セットに影響を及ぼさないように前記出力セットを計算するための命令の組を含むことを特徴とする請求項11記載の第1の制御器。
  13. 前記インジケータは、前記第3の入力セット内の入力の一部であることを特徴とする請求項11記載の第1の制御器。
  14. 前記第1の入力セット、前記第2の入力セット又は前記第3の入力セット内の入力はデータタプルであることを特徴とする請求項11記載の第1の制御器。
  15. 前記被管理転送要素に送出される前記処理された出力セットは、前記被管理転送要素の転送挙動を定義することを特徴とする請求項11記載の第1の制御器。
JP2014556838A 2012-04-18 2013-04-18 分散ネットワーク制御システムにおけるチャーン化を最小限にするためのトランザクションの使用 Active JP5849162B2 (ja)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201261635056P 2012-04-18 2012-04-18
US201261635226P 2012-04-18 2012-04-18
US61/635,226 2012-04-18
US61/635,056 2012-04-18
US201261647516P 2012-05-16 2012-05-16
US61/647,516 2012-05-16
US201261684693P 2012-08-17 2012-08-17
US61/684,693 2012-08-17
PCT/US2013/037232 WO2013158918A1 (en) 2012-04-18 2013-04-18 Using transactions to minimize churn in a distributed network control system

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2015233731A Division JP6147319B2 (ja) 2012-04-18 2015-11-30 分散ネットワーク制御システムにおけるチャーン化を最小限にするためのトランザクションの使用

Publications (2)

Publication Number Publication Date
JP2015507448A JP2015507448A (ja) 2015-03-05
JP5849162B2 true JP5849162B2 (ja) 2016-01-27

Family

ID=48326418

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2014546201A Active JP5883946B2 (ja) 2012-04-18 2013-04-18 ネットワーク転送状態の算出ならびに伝播のためのトランザクションの使用
JP2014556838A Active JP5849162B2 (ja) 2012-04-18 2013-04-18 分散ネットワーク制御システムにおけるチャーン化を最小限にするためのトランザクションの使用
JP2015233731A Active JP6147319B2 (ja) 2012-04-18 2015-11-30 分散ネットワーク制御システムにおけるチャーン化を最小限にするためのトランザクションの使用

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2014546201A Active JP5883946B2 (ja) 2012-04-18 2013-04-18 ネットワーク転送状態の算出ならびに伝播のためのトランザクションの使用

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2015233731A Active JP6147319B2 (ja) 2012-04-18 2015-11-30 分散ネットワーク制御システムにおけるチャーン化を最小限にするためのトランザクションの使用

Country Status (6)

Country Link
US (5) US9843476B2 (ja)
EP (4) EP2748993B1 (ja)
JP (3) JP5883946B2 (ja)
CN (3) CN104081734B (ja)
AU (6) AU2013249152B2 (ja)
WO (3) WO2013158918A1 (ja)

Families Citing this family (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9154433B2 (en) 2011-10-25 2015-10-06 Nicira, Inc. Physical controller
WO2013074855A1 (en) 2011-11-15 2013-05-23 Nicira, Inc. Control plane interface for logical middlebox services
AU2013249152B2 (en) 2012-04-18 2016-04-28 Nicira, Inc. Using transactions to minimize churn in a distributed network control system
US9203806B2 (en) * 2013-01-11 2015-12-01 Centripetal Networks, Inc. Rule swapping in a packet network
US10044799B2 (en) 2013-05-28 2018-08-07 International Business Machines Corporation Implementing synchronization of state information betweeen instances of an application as well as between different applications in an efficient, scalable manner
US9854035B2 (en) 2013-05-28 2017-12-26 International Business Machines Corporation Maintaining state synchronization of an application between computing devices as well as maintaining state synchronization of common information between different applications without requiring periodic synchronization
US9419879B2 (en) 2013-06-20 2016-08-16 International Business Machines Corporation Selectively refreshing address registration information
US9559870B2 (en) 2013-07-08 2017-01-31 Nicira, Inc. Managing forwarding of logical network traffic between physical domains
US10218564B2 (en) 2013-07-08 2019-02-26 Nicira, Inc. Unified replication mechanism for fault-tolerance of state
US9973382B2 (en) 2013-08-15 2018-05-15 Nicira, Inc. Hitless upgrade for network control applications
US9577845B2 (en) 2013-09-04 2017-02-21 Nicira, Inc. Multiple active L3 gateways for logical networks
US9503371B2 (en) * 2013-09-04 2016-11-22 Nicira, Inc. High availability L3 gateways for logical networks
WO2015041706A1 (en) * 2013-09-23 2015-03-26 Mcafee, Inc. Providing a fast path between two entities
US9455901B2 (en) 2013-10-04 2016-09-27 Nicira, Inc. Managing software and hardware forwarding elements to define virtual networks
US20150100670A1 (en) * 2013-10-04 2015-04-09 International Business Machines Corporation Transporting multi-destination networking traffic by sending repetitive unicast
US9569492B2 (en) * 2014-01-07 2017-02-14 International Business Machines Corporation Coalescing operation for query processing
US9590901B2 (en) 2014-03-14 2017-03-07 Nicira, Inc. Route advertisement by managed gateways
US9660878B2 (en) * 2014-03-14 2017-05-23 International Business Machines Corporation Managing fabric priorities across heterogeneous server platforms
WO2015152435A1 (ko) * 2014-03-31 2015-10-08 쿨클라우드㈜ Sdn 기반의 분할 계층적 네트워크 시스템
US10164894B2 (en) 2014-05-05 2018-12-25 Nicira, Inc. Buffered subscriber tables for maintaining a consistent network state
EP3162017B1 (en) 2014-06-30 2021-11-24 Alcatel Lucent Security in software defined network
WO2016065536A1 (zh) * 2014-10-28 2016-05-06 华为技术有限公司 交换机处理方法、控制器、交换机及交换机处理系统
US10348621B2 (en) * 2014-10-30 2019-07-09 AT&T Intellectual Property I. L. P. Universal customer premise equipment
US10079779B2 (en) * 2015-01-30 2018-09-18 Nicira, Inc. Implementing logical router uplinks
US10333840B2 (en) * 2015-02-06 2019-06-25 Cisco Technology, Inc. System and method for on-demand content exchange with adaptive naming in information-centric networks
JP6531419B2 (ja) * 2015-02-16 2019-06-19 日本電気株式会社 制御装置、通信システム、仮想ネットワークの管理方法及びプログラム
JP6531420B2 (ja) * 2015-02-16 2019-06-19 日本電気株式会社 制御装置、通信システム、仮想ネットワーク機能の管理方法及びプログラム
US10038628B2 (en) 2015-04-04 2018-07-31 Nicira, Inc. Route server mode for dynamic routing between logical and physical networks
US9967134B2 (en) 2015-04-06 2018-05-08 Nicira, Inc. Reduction of network churn based on differences in input state
US10142287B2 (en) * 2015-04-06 2018-11-27 Nicira, Inc. Distributed network security controller cluster for performing security operations
US9942058B2 (en) 2015-04-17 2018-04-10 Nicira, Inc. Managing tunnel endpoints for facilitating creation of logical networks
US9558029B2 (en) 2015-05-17 2017-01-31 Nicira, Inc. Logical processing for containers
US10554484B2 (en) 2015-06-26 2020-02-04 Nicira, Inc. Control plane integration with hardware switches
CN105634792B (zh) * 2015-07-23 2019-04-05 新华三技术有限公司 一种配置信息的传输方法和装置
US9967182B2 (en) 2015-07-31 2018-05-08 Nicira, Inc. Enabling hardware switches to perform logical routing functionalities
US9819581B2 (en) 2015-07-31 2017-11-14 Nicira, Inc. Configuring a hardware switch as an edge node for a logical router
US10313186B2 (en) 2015-08-31 2019-06-04 Nicira, Inc. Scalable controller for hardware VTEPS
US20170093713A1 (en) * 2015-09-28 2017-03-30 Palo Alto Research Center Incorporated Information-centric networking with small multi-path or single-path forwarding state
US9948577B2 (en) 2015-09-30 2018-04-17 Nicira, Inc. IP aliases in logical networks with hardware switches
US10230576B2 (en) 2015-09-30 2019-03-12 Nicira, Inc. Managing administrative statuses of hardware VTEPs
US10204122B2 (en) 2015-09-30 2019-02-12 Nicira, Inc. Implementing an interface between tuple and message-driven control entities
US9998324B2 (en) 2015-09-30 2018-06-12 Nicira, Inc. Logical L3 processing for L2 hardware switches
US10263828B2 (en) 2015-09-30 2019-04-16 Nicira, Inc. Preventing concurrent distribution of network data to a hardware switch by multiple controllers
US10200235B2 (en) 2015-10-31 2019-02-05 Nicira, Inc. Distributed database structure for logical and physical network data
US10078526B2 (en) 2015-11-01 2018-09-18 Nicira, Inc. Securing a managed forwarding element that operates within a data compute node
US10250553B2 (en) 2015-11-03 2019-04-02 Nicira, Inc. ARP offloading for managed hardware forwarding elements
US9912616B2 (en) * 2015-12-02 2018-03-06 Nicira, Inc. Grouping tunnel endpoints of a bridge cluster
US10719341B2 (en) 2015-12-02 2020-07-21 Nicira, Inc. Learning of tunnel endpoint selections
US10164885B2 (en) 2015-12-02 2018-12-25 Nicira, Inc. Load balancing over multiple tunnel endpoints
US10069646B2 (en) 2015-12-02 2018-09-04 Nicira, Inc. Distribution of tunnel endpoint mapping information
US10332708B2 (en) 2015-12-09 2019-06-25 Thales Canada Inc Seamless switchover system and method
US10225149B2 (en) 2015-12-15 2019-03-05 Nicira, Inc. Method and tool for diagnosing logical networks
US9992112B2 (en) 2015-12-15 2018-06-05 Nicira, Inc. Transactional controls for supplying control plane data to managed hardware forwarding elements
US9917799B2 (en) 2015-12-15 2018-03-13 Nicira, Inc. Transactional controls for supplying control plane data to managed hardware forwarding elements
US9998375B2 (en) * 2015-12-15 2018-06-12 Nicira, Inc. Transactional controls for supplying control plane data to managed hardware forwarding elements
US10063469B2 (en) 2015-12-16 2018-08-28 Nicira, Inc. Forwarding element implementation for containers
US10778721B1 (en) 2016-02-26 2020-09-15 Arista Networks, Inc. Hash-based ACL lookup offload
US10243797B2 (en) 2016-03-14 2019-03-26 Nicira, Inc. Identifying the realization status of logical entities based on a global realization number
AU2017233504B2 (en) * 2016-03-14 2021-01-14 Nicira, Inc. Identifying the realization status of logical entities based on a global realization number
US10009218B2 (en) * 2016-04-01 2018-06-26 Nicira, Inc. Automatic setup of failure detection sessions
US10333849B2 (en) 2016-04-28 2019-06-25 Nicira, Inc. Automatic configuration of logical routers on edge nodes
US11019167B2 (en) 2016-04-29 2021-05-25 Nicira, Inc. Management of update queues for network controller
US10091161B2 (en) 2016-04-30 2018-10-02 Nicira, Inc. Assignment of router ID for logical routers
US10560320B2 (en) 2016-06-29 2020-02-11 Nicira, Inc. Ranking of gateways in cluster
US10182035B2 (en) 2016-06-29 2019-01-15 Nicira, Inc. Implementing logical network security on a hardware switch
US10305820B1 (en) * 2016-10-12 2019-05-28 Barefoot Networks, Inc. Network forwarding element with key-value processing in the data plane
US10237123B2 (en) 2016-12-21 2019-03-19 Nicira, Inc. Dynamic recovery from a split-brain failure in edge nodes
US10616045B2 (en) 2016-12-22 2020-04-07 Nicira, Inc. Migration of centralized routing components of logical router
CN106878392B (zh) * 2017-01-11 2021-09-07 浙江工商大学 一种基于学生成果的在线服务方法和装置
US10708272B1 (en) * 2017-02-10 2020-07-07 Arista Networks, Inc. Optimized hash-based ACL lookup offload
US10116671B1 (en) * 2017-09-28 2018-10-30 International Business Machines Corporation Distributed denial-of-service attack detection based on shared network flow information
US11403319B2 (en) * 2018-06-01 2022-08-02 Hewlett Packard Enterprise Development Lp High-availability network device database synchronization
US10938658B2 (en) * 2018-06-28 2021-03-02 Nicira, Inc. Tracking logical network entity state
US10735472B2 (en) * 2018-07-10 2020-08-04 Cisco Technology, Inc. Container authorization policies for network trust
US10243793B1 (en) * 2018-08-13 2019-03-26 Nefeli Networks, Inc. Modular system framework for software network function automation
CN110855731A (zh) * 2018-08-21 2020-02-28 阿里巴巴集团控股有限公司 消息处理、推送及模型训练方法、装置、设备及存储介质
US11012294B2 (en) 2019-04-17 2021-05-18 Nefeli Networks, Inc. Inline data plane monitor placement and operation for network function virtualization
US11706162B2 (en) * 2019-10-21 2023-07-18 Sap Se Dynamic, distributed, and scalable single endpoint solution for a service in cloud platform
US20230022226A1 (en) * 2021-07-22 2023-01-26 Vmware, Inc. Automated storage access control for clusters
US11743191B1 (en) 2022-07-25 2023-08-29 Vmware, Inc. Load balancing over tunnel endpoint groups

Family Cites Families (278)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0737921B1 (en) 1990-09-17 2000-06-28 Cabletron Systems, Inc. System and method for modelling a computer network
JPH06250869A (ja) 1993-03-01 1994-09-09 Hitachi Ltd 分散制御システム
US5426774A (en) 1993-04-06 1995-06-20 Honeywell Inc. Method for maintaining a sequence of events function during failover in a redundant multiple layer system
JPH0779233A (ja) 1993-06-29 1995-03-20 Synoptics Commun Inc トポロジを確定する装置及びトポロジ情報を通信する方法及び装置
JPH07327050A (ja) * 1994-06-01 1995-12-12 Fujitsu Ltd ルーティングデータ変更/確認方法
SE9402059D0 (sv) 1994-06-13 1994-06-13 Ellemtel Utvecklings Ab Sätt och anordning vid telekommunikation
US5751967A (en) 1994-07-25 1998-05-12 Bay Networks Group, Inc. Method and apparatus for automatically configuring a network device to support a virtual network
US5550816A (en) 1994-12-29 1996-08-27 Storage Technology Corporation Method and apparatus for virtual switching
US5903731A (en) 1995-06-14 1999-05-11 Us West Technologies, Inc. System and associated method for re-engineering a telecommunications network support system with object-oriented translators
US6035105A (en) 1996-01-02 2000-03-07 Cisco Technology, Inc. Multiple VLAN architecture system
US6108304A (en) 1996-03-08 2000-08-22 Abe; Hajime Packet switching network, packet switching equipment, and network management equipment
JPH09266493A (ja) * 1996-03-28 1997-10-07 Nippon Telegr & Teleph Corp <Ntt> 連続データ配送方法及びシステム
US5805791A (en) 1996-04-22 1998-09-08 Advanced Micro Devices, Inc. Method and system for detection of and graceful recovery from a peripheral device fault
US6295299B1 (en) 1997-08-29 2001-09-25 Extreme Networks, Inc. Data path architecture for a LAN switch
EP0910224B1 (en) 1997-09-19 2007-06-06 Hitachi, Ltd. Apparatus and method for connection switching and control
JP3609256B2 (ja) 1998-05-19 2005-01-12 株式会社日立製作所 ネットワーク管理装置,ノード装置及びネットワーク管理システム
US6862622B2 (en) 1998-07-10 2005-03-01 Van Drebbel Mariner Llc Transmission control protocol/internet protocol (TCP/IP) packet-centric wireless point to multi-point (PTMP) transmission system architecture
US6424659B2 (en) 1998-07-17 2002-07-23 Network Equipment Technologies, Inc. Multi-layer switching apparatus and method
US7243285B2 (en) * 1998-09-23 2007-07-10 Digital Fountain, Inc. Systems and methods for broadcasting information additive codes
US6597658B1 (en) 1998-12-28 2003-07-22 At&T Corp. Hierarchical telecommunications network with fault recovery
US6963585B1 (en) 1999-10-21 2005-11-08 International Business Machines Corporation Method and system for establishing a virtual path capability in a frame relay network
US6680934B1 (en) 1999-12-02 2004-01-20 Nortel Networks Limited System, device and method for expediting control flow in a communication system
US7386614B2 (en) * 2000-05-19 2008-06-10 Treetop Ventures Llc Method allowing persistent links to web-pages
US20020093952A1 (en) 2000-06-30 2002-07-18 Gonda Rumi Sheryar Method for managing circuits in a multistage cross connect
US6768740B1 (en) 2000-08-08 2004-07-27 Sun Microsystems, Inc. Coordinating loop-free forwarding table updates
US7389358B1 (en) 2000-09-13 2008-06-17 Fortinet, Inc. Distributed virtual system to support managed, network-based services
US6973023B1 (en) 2000-12-30 2005-12-06 Cisco Technology, Inc. Method for routing information over a network employing centralized control
US6999454B1 (en) 2001-02-09 2006-02-14 Nortel Networks Limited Information routing system and apparatus
US6785843B1 (en) 2001-02-23 2004-08-31 Mcrae Andrew Data plane restart without state change in a control plane of an intermediate network node
US7069337B2 (en) 2001-03-20 2006-06-27 Mci, Inc. Policy-based synchronization of per-class resources between routers in a data network
US7209439B2 (en) 2001-03-20 2007-04-24 Mci, Llc Pool-based resource management in a data network
US7240106B2 (en) 2001-04-25 2007-07-03 Hewlett-Packard Development Company, L.P. System and method for remote discovery and configuration of a network device
US7343410B2 (en) 2001-06-28 2008-03-11 Finisar Corporation Automated creation of application data paths in storage area networks
US7126944B2 (en) 2001-07-05 2006-10-24 Intel Corporation Routing packets across multiple forwarding elements
JP2003069609A (ja) 2001-08-23 2003-03-07 Fujitsu Ltd 仮想私設網サービスを提供するシステム
CA2357939A1 (en) 2001-09-27 2003-03-27 Alcatel Canada Inc. Master-slave communications system and method for a network element
JP3879471B2 (ja) 2001-10-10 2007-02-14 株式会社日立製作所 計算機資源割当方法
US7200144B2 (en) 2001-10-18 2007-04-03 Qlogic, Corp. Router and methods using network addresses for virtualization
US8095668B2 (en) 2001-11-09 2012-01-10 Rockstar Bidco Lp Middlebox control
US7318095B2 (en) 2001-11-21 2008-01-08 Clearcube Technology, Inc. Data fail-over for a multi-computer system
US7042912B2 (en) 2001-12-18 2006-05-09 Nortel Networks Limited Resynchronization of control and data path state for networks
US6895429B2 (en) 2001-12-28 2005-05-17 Network Appliance, Inc. Technique for enabling multiple virtual filers on a single filer to participate in multiple address spaces with overlapping network addresses
US7801155B2 (en) 2002-03-01 2010-09-21 Verizon Business Global Llc Resource allocation in virtual routers
US6941487B1 (en) 2002-03-07 2005-09-06 Riverstone Networks, Inc. Method, system, and computer program product for providing failure protection in a network node
US7096228B2 (en) 2002-03-27 2006-08-22 Microsoft Corporation Method and system for managing data records on a computer network
JP3904968B2 (ja) 2002-04-19 2007-04-11 日本電信電話株式会社 Vpnシステムおよびルータ
US6963995B2 (en) 2002-04-24 2005-11-08 Mci, Inc. Network restoration using refreshed switch state tables
US7197572B2 (en) 2002-05-06 2007-03-27 Qlogic, Corporation System and method for implementing logical switches in a network system
US20030223379A1 (en) 2002-05-28 2003-12-04 Xuguang Yang Method and system for inter-domain loop protection using a hierarchy of loop resolving protocols
US7263290B2 (en) 2002-06-06 2007-08-28 Lucent Technologies Inc. Network operating system with distributed data architecture
US8549114B2 (en) 2002-06-12 2013-10-01 Bladelogic, Inc. Method and system for model-based heterogeneous server configuration management
AU2003276685A1 (en) 2002-06-13 2003-12-31 Netscout Systems, Inc. Real-time network performance monitoring system
US7120728B2 (en) 2002-07-31 2006-10-10 Brocade Communications Systems, Inc. Hardware-based translating virtualization switch
US7395337B2 (en) 2002-08-29 2008-07-01 International Business Machines Corporation Method, system, and program for establishing and requesting status on a computational resource
US7304940B2 (en) 2002-09-05 2007-12-04 World Wide Packets, Inc. Network switch assembly, network switching device, and method
US20040073659A1 (en) 2002-10-15 2004-04-15 Carl Rajsic Method and apparatus for managing nodes in a network
US20040098505A1 (en) 2002-11-20 2004-05-20 Clemmensen Daniel G. Forwarding system with multiple logical sub-system functionality
EP1443423A1 (en) 2003-01-28 2004-08-04 Bombardier Transportation (Technology) Germany GmbH Apparatus and method for data replication in a data network
US20050021683A1 (en) 2003-03-27 2005-01-27 Chris Newton Method and apparatus for correlating network activity through visualizing network data
JP4157409B2 (ja) 2003-03-31 2008-10-01 富士通株式会社 仮想パス構築装置および仮想パス構築方法
US7283473B2 (en) 2003-04-10 2007-10-16 International Business Machines Corporation Apparatus, system and method for providing multiple logical channel adapters within a single physical channel adapter in a system area network
US7792987B1 (en) 2003-04-21 2010-09-07 Juniper Networks, Inc. Supporting virtual private networks using a first network topology for forwarding and a subset of the first network topology or a smaller topology for signaling
US7710874B2 (en) 2003-06-04 2010-05-04 International Business Machines Corporation System and method for automatic management of many computer data processing system pipes
US20040267897A1 (en) 2003-06-24 2004-12-30 Sychron Inc. Distributed System Providing Scalable Methodology for Real-Time Control of Server Pools and Data Centers
US7356818B2 (en) 2003-06-24 2008-04-08 International Business Machines Corporation Virtual machine communicating to external device without going through other virtual machines by using a list of IP addresses managed only by a single virtual machine monitor
US20050018669A1 (en) 2003-07-25 2005-01-27 International Business Machines Corporation Infiniband subnet management queue pair emulation for multiple logical ports on a single physical port
US7697527B2 (en) 2003-07-30 2010-04-13 Nortel Networks Limited Method and apparatus for direct frame switching using frame contained destination information
US7516221B2 (en) 2003-08-14 2009-04-07 Oracle International Corporation Hierarchical management of the dynamic allocation of resources in a multi-node system
US8776050B2 (en) 2003-08-20 2014-07-08 Oracle International Corporation Distributed virtual machine monitor for managing multiple virtual resources across multiple physical nodes
US7342916B2 (en) 2003-09-10 2008-03-11 Intel Corporation Method, apparatus and system for optimizing routing of mobile IP packets
US8009556B2 (en) 2003-10-17 2011-08-30 Ip Infusion, Inc. System and method for providing redundant routing capabilities for a network node
US7929424B2 (en) * 2003-10-31 2011-04-19 Ericsson Ab Switchover for broadband subscriber sessions
US7555002B2 (en) 2003-11-06 2009-06-30 International Business Machines Corporation Infiniband general services queue pair virtualization for multiple logical ports on a single physical port
US8095640B2 (en) 2003-12-12 2012-01-10 Alcatel Lucent Distributed architecture for real-time flow measurement at the network domain level
US7450598B2 (en) 2003-12-15 2008-11-11 At&T Intellectual Property I, L.P. System and method to provision MPLS/VPN network
US7478173B1 (en) 2003-12-18 2009-01-13 Wmware, Inc. Method and system for sharing a network connection in a virtual computer system
CN1898917B (zh) 2003-12-22 2011-06-08 艾利森电话股份有限公司 移动分组流的控制
US7483370B1 (en) 2003-12-22 2009-01-27 Extreme Networks, Inc. Methods and systems for hitless switch management module failover and upgrade
US20050147095A1 (en) 2003-12-30 2005-07-07 Intel Corporation IP multicast packet burst absorption and multithreaded replication architecture
US7627692B2 (en) 2004-01-30 2009-12-01 Nokia Corporation Multiplexing of compressed control and user-plane messages
WO2005093576A1 (en) 2004-03-28 2005-10-06 Robert Iakobashvili Visualization of packet network performance, analysis and optimization for design
US20050220096A1 (en) 2004-04-06 2005-10-06 Robert Friskney Traffic engineering in frame-based carrier networks
US20050228952A1 (en) 2004-04-13 2005-10-13 David Mayhew Cache coherency mechanism
EP1745631A1 (en) 2004-05-12 2007-01-24 Alcatel Automated containment of network intruder
US8422500B2 (en) 2004-07-02 2013-04-16 Rockstar Consortium Us Lp VLAN support of differentiated services
US7787360B2 (en) 2004-07-23 2010-08-31 Cisco Technology, Inc. System and method for preserving multicast data forwarding during control failures in a router
DE602004011928T2 (de) 2004-08-02 2009-02-12 Alcatel Lucent Verfahren zur Steuerung einer gemeinsamen genutzten Ressource durch verschiedene Manager
US7453797B2 (en) * 2004-09-29 2008-11-18 Intel Corporation Method to provide high availability in network elements using distributed architectures
GB2419703A (en) 2004-10-29 2006-05-03 Hewlett Packard Development Co Isolated virtual overlay infrastructures each having an interface to control interaction with others
US8068408B2 (en) * 2004-11-01 2011-11-29 Alcatel Lucent Softrouter protocol disaggregation
US9014181B2 (en) 2004-11-01 2015-04-21 Alcatel Lucent Softrouter separate control network
US8458467B2 (en) 2005-06-21 2013-06-04 Cisco Technology, Inc. Method and apparatus for adaptive application message payload content transformation in a network infrastructure element
JP2008524916A (ja) 2004-12-21 2008-07-10 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 通信システムにおけるパケットフローに関する装置及び方法
JP2008527772A (ja) 2004-12-31 2008-07-24 ブリティッシュ・テレコミュニケーションズ・パブリック・リミテッド・カンパニー コネクションレス通信トラフィックのためのコネクション型通信スキーム
JP4733399B2 (ja) 2005-01-28 2011-07-27 株式会社日立製作所 計算機システム、計算機、ストレージ装置及び管理端末
US20060184937A1 (en) 2005-02-11 2006-08-17 Timothy Abels System and method for centralized software management in virtual machines
US20060182033A1 (en) 2005-02-15 2006-08-17 Matsushita Electric Industrial Co., Ltd. Fast multicast path switching
US8254285B2 (en) 2005-02-25 2012-08-28 Ip Infusion, Inc. Hardware abstraction layer
US7730486B2 (en) 2005-02-28 2010-06-01 Hewlett-Packard Development Company, L.P. System and method for migrating virtual machines on cluster systems
US7936770B1 (en) 2005-03-08 2011-05-03 Enterasys Networks, Inc. Method and apparatus of virtual class of service and logical queue representation through network traffic distribution over multiple port interfaces
FR2883437B1 (fr) 2005-03-16 2007-08-03 Wavestorm Sarl Dispositif et procede de communication dans un reseau
US8089871B2 (en) 2005-03-25 2012-01-03 At&T Intellectual Property Ii, L.P. Method and apparatus for traffic control of dynamic denial of service attacks within a communications network
US7697536B2 (en) 2005-04-01 2010-04-13 International Business Machines Corporation Network communications for operating system partitions
US7873683B2 (en) 2005-07-01 2011-01-18 Qnx Software Systems Gmbh & Co. Kg File system having transaction record coalescing
US8149737B2 (en) 2005-08-09 2012-04-03 Motorola Solutions, Inc. Method and system for data transmission in a wireless network
US8799431B2 (en) 2005-08-15 2014-08-05 Toutvirtual Inc. Virtual systems management
JP2007135109A (ja) 2005-11-11 2007-05-31 Hitachi Ltd 仮想ネットワーク管理方法、仮想ネットワーク管理プログラム、仮想ネットワーク管理システムおよび仮想ネットワーク管理手段
US8448162B2 (en) 2005-12-28 2013-05-21 Foundry Networks, Llc Hitless software upgrades
JP4800046B2 (ja) 2006-01-31 2011-10-26 株式会社日立製作所 ストレージシステム
US8554949B2 (en) 2006-03-17 2013-10-08 Ericsson Ab Customer traffic forwarding continues while control plane is reset
US7801128B2 (en) 2006-03-31 2010-09-21 Amazon Technologies, Inc. Managing communications between computing nodes
US8619771B2 (en) 2009-09-30 2013-12-31 Vmware, Inc. Private allocated networks over shared communications infrastructure
US8909758B2 (en) 2006-05-02 2014-12-09 Cisco Technology, Inc. Physical server discovery and correlation
US7839847B2 (en) 2006-05-08 2010-11-23 Cisco Technology, Inc. Methods and apparatus providing VPN traffic matrix construction
US8060875B1 (en) 2006-05-26 2011-11-15 Vmware, Inc. System and method for multiple virtual teams
JP4714081B2 (ja) 2006-06-01 2011-06-29 アラクサラネットワークス株式会社 ネットワーク接続装置
US8010696B2 (en) 2006-06-06 2011-08-30 Avaya Inc. Passing information from a forwarding plane to a control plane
US7706303B2 (en) 2006-06-26 2010-04-27 Cisco Technology, Inc. Port pooling
US7643482B2 (en) 2006-06-30 2010-01-05 Sun Microsystems, Inc. System and method for virtual switching in a host
US8635315B2 (en) 2006-08-09 2014-01-21 Cisco Technology, Inc. Method and system for dynamic loading of management information bases on network devices
GB2443229B (en) 2006-08-23 2009-10-14 Cramer Systems Ltd Capacity management for data networks
US20080059556A1 (en) 2006-08-31 2008-03-06 Egenera, Inc. Providing virtual machine technology as an embedded layer within a processing platform
JP4945204B2 (ja) 2006-09-08 2012-06-06 株式会社東芝 アクチュエータ
US7996835B2 (en) 2006-10-10 2011-08-09 International Business Machines Corporation System, method and program for managing communication with multiple configurations for virtual machine
JP5244332B2 (ja) 2006-10-30 2013-07-24 株式会社日立製作所 情報システム、データ転送方法及びデータ保護方法
WO2008055539A1 (en) 2006-11-06 2008-05-15 Telefonaktiebolaget Lm Ericsson (Publ) Multi-domain network and method for multi-domain network
US7826482B1 (en) 2006-11-17 2010-11-02 Juniper Networks, Inc. Service-specific forwarding in an LDP-RSVP hybrid network
WO2008127372A2 (en) 2006-12-05 2008-10-23 Qualcomm Incorporated Apparatus and methods of a zero single point of failure load balancer
WO2008071227A1 (en) 2006-12-12 2008-06-19 Telefonaktiebolaget Lm Ericsson (Publ) Ip address distribution in middleboxes
US8223668B2 (en) 2006-12-14 2012-07-17 Rockstar Bidco Lp Method and apparatus for exchanging routing information and the establishment of connectivity across multiple network areas
US8144630B1 (en) 2006-12-15 2012-03-27 Marvell International Ltd. Apparatus, systems, methods, algorithms and software for control of network switching devices
US20080159301A1 (en) 2006-12-29 2008-07-03 De Heer Arjan Arie Enabling virtual private local area network services
US8381209B2 (en) 2007-01-03 2013-02-19 International Business Machines Corporation Moveable access control list (ACL) mechanisms for hypervisors and virtual machines and virtual port firewalls
US8855020B2 (en) 2007-01-09 2014-10-07 Sandvine Incorporated Ulc Automatically maximizing network link utilization using virtual networks
US7793148B2 (en) 2007-01-12 2010-09-07 International Business Machines Corporation Using virtual copies in a failover and failback environment
US20080189769A1 (en) 2007-02-01 2008-08-07 Martin Casado Secure network switching infrastructure
EP2109965B1 (en) 2007-02-02 2015-04-08 Groupe Des Ecoles Des Telecommunications (GET) Institut National Des Telecommunications (INT) Autonomic network node system
US7796594B2 (en) 2007-02-14 2010-09-14 Marvell Semiconductor, Inc. Logical bridging system and method
US8055789B2 (en) 2007-03-27 2011-11-08 Amazon Technologies, Inc. Configuring intercommunications between computing nodes
US8111707B2 (en) 2007-12-20 2012-02-07 Packeteer, Inc. Compression mechanisms for control plane—data plane processing architectures
WO2008128194A2 (en) 2007-04-12 2008-10-23 Rutgers, The State University Of New Jersey System and method for controlling a file system
US7948874B2 (en) 2007-05-24 2011-05-24 World Wide Packets, Inc. Transitioning a virtual interface from one tunnel to another tunnel
JP4803116B2 (ja) 2007-05-31 2011-10-26 富士ゼロックス株式会社 仮想ネットワーク接続装置及びプログラム
US8321561B2 (en) 2007-06-28 2012-11-27 Nec Corporation Information sharing method between neighboring nodes, node and information sharing program
US8031633B2 (en) 2007-08-13 2011-10-04 Honeywell International Inc. Virtual network architecture for space data processing
JP5097973B2 (ja) * 2007-09-06 2012-12-12 株式会社メガチップス データ処理装置
US8798056B2 (en) 2007-09-24 2014-08-05 Intel Corporation Method and system for virtual port communications
CA2700866C (en) * 2007-09-26 2016-06-21 Martin Casado Network operating system for managing and securing networks
CN101136866B (zh) * 2007-10-15 2011-03-02 北京交通大学 一体化网络网通层服务质量保证结构和运行方法
US8412809B2 (en) 2007-10-24 2013-04-02 International Business Machines Corporation Method, apparatus and computer program product implementing multi-tenancy for network monitoring tools using virtualization technology
US8848544B2 (en) 2007-11-08 2014-09-30 Cisco Technology, Inc. Event correlation using network data flow simulation over unmanaged network segments
FR2923972B1 (fr) * 2007-11-15 2010-02-26 Radiotelephone Sfr Procede et systeme de gestion de communications
US7945647B2 (en) 2007-12-10 2011-05-17 Oracle America, Inc. Method and system for creating a virtual network path
US7984123B2 (en) 2007-12-10 2011-07-19 Oracle America, Inc. Method and system for reconfiguring a virtual network path
US8199750B1 (en) 2007-12-18 2012-06-12 World Wide Packets, Inc. Communicating with a control plane using a forwarding information format and control plane processing of packets devoid of a virtual switch identifier
US9432213B2 (en) 2007-12-31 2016-08-30 Rpx Clearinghouse Llc IP forwarding across a link state protocol controlled ethernet network
GB2459433B (en) 2008-03-07 2012-06-06 Hewlett Packard Development Co Distributed network connection policy management
US8155028B2 (en) 2008-03-17 2012-04-10 Alcatel Lucent Method and apparatus for providing full logical connectivity in MPLS networks
US8146147B2 (en) 2008-03-27 2012-03-27 Juniper Networks, Inc. Combined firewalls
US7903666B1 (en) 2008-03-31 2011-03-08 Extreme Networks, Inc. Method and system for compressing route entries in a route table based on equal-cost multi-paths (ECMPs) matches
US8068734B2 (en) * 2008-03-31 2011-11-29 Infinera Corporation Mapping a client signal into transport frames
US8429739B2 (en) 2008-03-31 2013-04-23 Amazon Technologies, Inc. Authorizing communications between computing nodes
US8339959B1 (en) 2008-05-20 2012-12-25 Juniper Networks, Inc. Streamlined packet forwarding using dynamic filters for routing and security in a shared forwarding plane
US8195774B2 (en) 2008-05-23 2012-06-05 Vmware, Inc. Distributed virtual switch for virtualized computer systems
US8849971B2 (en) 2008-05-28 2014-09-30 Red Hat, Inc. Load balancing in cloud-based networks
WO2009147674A1 (en) 2008-06-03 2009-12-10 Ethos Networks Ltd. Automatic signaling method and device for telecommunication services
US8160063B2 (en) 2008-06-09 2012-04-17 Microsoft Corporation Data center interconnect and traffic engineering
US20100058106A1 (en) 2008-08-27 2010-03-04 Novell, Inc. Virtual machine file system and incremental snapshot using image deltas
US7885276B1 (en) 2008-09-30 2011-02-08 Emc Corporation Isolating network traffic in multi-tenant virtualization environments
US7921197B2 (en) 2008-11-19 2011-04-05 Vmware, Inc. Dynamic configuration of virtual machines
US7962647B2 (en) 2008-11-24 2011-06-14 Vmware, Inc. Application delivery control module for virtual network switch
US8201237B1 (en) 2008-12-10 2012-06-12 Amazon Technologies, Inc. Establishing secure remote access to private computer networks
US8230050B1 (en) 2008-12-10 2012-07-24 Amazon Technologies, Inc. Providing access to configurable private computer networks
US8055770B2 (en) 2008-12-15 2011-11-08 At&T Intellectual Property I, L.P. Method and apparatus for providing network virtualization
US8392496B2 (en) 2008-12-19 2013-03-05 Watchguard Technologies, Inc. Cluster architecture for network security processing
US8054832B1 (en) * 2008-12-30 2011-11-08 Juniper Networks, Inc. Methods and apparatus for routing between virtual resources based on a routing location policy
US8331362B2 (en) * 2008-12-30 2012-12-11 Juniper Networks, Inc. Methods and apparatus for distributed dynamic network provisioning
US8255496B2 (en) * 2008-12-30 2012-08-28 Juniper Networks, Inc. Method and apparatus for determining a network topology during network provisioning
US7995483B1 (en) 2009-01-20 2011-08-09 Juniper Networks, Inc. Simultaneously testing connectivity to multiple remote maintenance endpoints of the same maintenance association
US7948986B1 (en) 2009-02-02 2011-05-24 Juniper Networks, Inc. Applying services within MPLS networks
EP2399363B1 (en) 2009-02-19 2019-05-29 Huawei Technologies Co., Ltd. System and method for point to multipoint inter-domain multiprotocol label switching traffic engineering path calculation
US8213336B2 (en) 2009-02-23 2012-07-03 Cisco Technology, Inc. Distributed data center access switch
EP2408155A4 (en) 2009-03-09 2015-01-28 Nec Corp OPENFLOW COMMUNICATION SYSTEM AND OPENFLOW COMMUNICATION METHOD
US8265075B2 (en) 2009-03-16 2012-09-11 International Business Machines Corporation Method and apparatus for managing, configuring, and controlling an I/O virtualization device through a network switch
EP2804350B1 (en) 2009-04-01 2019-07-24 Nicira, Inc. Method and apparatus for implementing and managing virtual switches
JP2009159636A (ja) * 2009-04-13 2009-07-16 Toshiba Corp データ伝送方法
US8589919B2 (en) 2009-04-28 2013-11-19 Cisco Technology, Inc. Traffic forwarding for virtual machines
US8027354B1 (en) 2009-04-29 2011-09-27 Cisco Technology, Inc. Network consolidation for virtualized servers
US8570944B2 (en) 2009-05-11 2013-10-29 Zte (Usa) Inc. Internetworking techniques for wireless networks
US8867349B2 (en) 2009-05-18 2014-10-21 Cisco Technology, Inc. Regulation of network traffic in virtual private networks
US9210065B2 (en) 2009-06-22 2015-12-08 Alcatel Lucent Providing cloud-based services using dynamic network virtualization
US8644188B1 (en) 2009-06-25 2014-02-04 Amazon Technologies, Inc. Providing virtual networking functionality for managed computer networks
US9270542B2 (en) 2009-07-31 2016-02-23 Ixia Apparatus and methods for forwarding data packets captured from a network
US20110032830A1 (en) 2009-08-06 2011-02-10 Jacobus Van Der Merwe Live Router Migration
CN101640688B (zh) 2009-08-20 2014-03-12 中兴通讯股份有限公司 基于cdn的节点主备用控制器切换方法及cdn网络
US8339994B2 (en) 2009-08-27 2012-12-25 Brocade Communications Systems, Inc. Defining an optimal topology for a group of logical switches
US8619779B2 (en) 2009-09-30 2013-12-31 Alcatel Lucent Scalable architecture for enterprise extension in a cloud topology
JP5717164B2 (ja) * 2009-10-07 2015-05-13 日本電気株式会社 コンピュータシステム、及びコンピュータシステムのメンテナンス方法
US8599864B2 (en) 2009-10-08 2013-12-03 Brocade Communications Systems, Inc. Transit switches in a network of logical switches
US20110085557A1 (en) 2009-10-08 2011-04-14 Brocade Communications Systems, Inc. Partitioning of Switches and Fabrics into Logical Switches and Fabrics
US20110088011A1 (en) 2009-10-14 2011-04-14 Vermeg Sarl Automated Enterprise Software Development
US8442048B2 (en) 2009-11-04 2013-05-14 Juniper Networks, Inc. Methods and apparatus for configuring a virtual network switch
US9036504B1 (en) * 2009-12-07 2015-05-19 Amazon Technologies, Inc. Using virtual networking devices and routing information to associate network addresses with computing nodes
US7937438B1 (en) 2009-12-07 2011-05-03 Amazon Technologies, Inc. Using virtual networking devices to manage external connections
US20110134931A1 (en) 2009-12-08 2011-06-09 Jacobus Van Der Merwe Virtual router migration
US8705513B2 (en) 2009-12-15 2014-04-22 At&T Intellectual Property I, L.P. Methods and apparatus to communicatively couple virtual private networks to virtual machines within distributive computing networks
US7991859B1 (en) 2009-12-28 2011-08-02 Amazon Technologies, Inc. Using virtual networking devices to connect managed computer networks
US7953865B1 (en) 2009-12-28 2011-05-31 Amazon Technologies, Inc. Using virtual networking devices to manage routing communications between connected computer networks
US8224971B1 (en) 2009-12-28 2012-07-17 Amazon Technologies, Inc. Using virtual networking devices and routing information to initiate external actions
RU2012132449A (ru) 2009-12-28 2014-02-10 Нек Корпорейшн Система связи и способ сбора информации портов
WO2011083780A1 (ja) * 2010-01-05 2011-07-14 日本電気株式会社 通信システム、制御装置、処理規則の設定方法、パケットの送信方法およびプログラム
US8291258B2 (en) * 2010-01-08 2012-10-16 Juniper Networks, Inc. High availability for network security devices
JP5488980B2 (ja) * 2010-02-08 2014-05-14 日本電気株式会社 コンピュータシステム、及び通信方法
JP5521614B2 (ja) * 2010-02-15 2014-06-18 日本電気株式会社 ネットワークシステム、及びパケット投機転送方法
US8612627B1 (en) 2010-03-03 2013-12-17 Amazon Technologies, Inc. Managing encoded multi-part communications for provided computer networks
US8903942B2 (en) 2010-03-23 2014-12-02 Juniper Networks, Inc. Methods and apparatus for forwarding-state transport in a distributed control plane
WO2011121664A1 (en) 2010-03-31 2011-10-06 Hitachi, Ltd. Communication network control system and control method
US8224931B1 (en) 2010-03-31 2012-07-17 Amazon Technologies, Inc. Managing use of intermediate destination computing nodes for provided computer networks
US8504718B2 (en) 2010-04-28 2013-08-06 Futurewei Technologies, Inc. System and method for a context layer switch
US8989186B2 (en) 2010-06-08 2015-03-24 Brocade Communication Systems, Inc. Virtual port grouping for virtual cluster switching
US8503307B2 (en) 2010-05-10 2013-08-06 Hewlett-Packard Development Company, L.P. Distributing decision making in a centralized flow routing system
US8667171B2 (en) 2010-05-28 2014-03-04 Microsoft Corporation Virtual data center allocation with bandwidth guarantees
US8989187B2 (en) 2010-06-04 2015-03-24 Coraid, Inc. Method and system of scaling a cloud computing network
US8374183B2 (en) 2010-06-22 2013-02-12 Microsoft Corporation Distributed virtual network gateways
US8897134B2 (en) 2010-06-25 2014-11-25 Telefonaktiebolaget L M Ericsson (Publ) Notifying a controller of a change to a packet forwarding configuration of a network element over a communication channel
CN103270736B (zh) 2010-06-29 2016-08-10 华为技术有限公司 一种网络设备
US8239572B1 (en) 2010-06-30 2012-08-07 Amazon Technologies, Inc. Custom routing decisions
US8717895B2 (en) 2010-07-06 2014-05-06 Nicira, Inc. Network virtualization apparatus and method with a table mapping engine
US8456984B2 (en) 2010-07-19 2013-06-04 Ciena Corporation Virtualized shared protection capacity
JP5476261B2 (ja) 2010-09-14 2014-04-23 株式会社日立製作所 マルチテナント型情報処理システム、管理サーバ及び構成管理方法
US8565108B1 (en) 2010-09-28 2013-10-22 Amazon Technologies, Inc. Network data transmission analysis
US8621058B2 (en) 2010-10-28 2013-12-31 Hewlett-Packard Development Company, L.P. Providing cloud-based computing services
US8699499B2 (en) 2010-12-08 2014-04-15 At&T Intellectual Property I, L.P. Methods and apparatus to provision cloud computing network elements
WO2012093429A1 (en) 2011-01-05 2012-07-12 Nec Corporation Communication control system, control server, forwarding node, communication control method, and communication control program
US8560626B2 (en) 2011-01-13 2013-10-15 Vmware, Inc. Selecting a master node using a suitability value
US8665739B2 (en) 2011-03-16 2014-03-04 Juniper Networks, Inc. Packet loss measurement at service endpoints of a virtual private LAN service
CN103460653A (zh) 2011-03-31 2013-12-18 日本电气株式会社 计算机系统和通信方法
WO2011103837A2 (zh) 2011-04-19 2011-09-01 华为技术有限公司 服务器故障时的报文处理方法及路由器
US8560647B2 (en) 2011-07-19 2013-10-15 Telefonaktiebolaget L M Ericsson (Publ) Controller placement for split architecture networks
CN106850444B (zh) * 2011-08-17 2020-10-27 Nicira股份有限公司 逻辑l3路由
US9124538B2 (en) * 2011-08-17 2015-09-01 Nicira, Inc. Dynamic generation of flow entries for last-hop processing
AU2012296330B2 (en) 2011-08-17 2016-03-17 Nicira, Inc. Hierarchical controller clusters for interconnecting different logical domains
GB2485866B (en) 2011-08-26 2012-10-10 Metaswitch Networks Ltd Data replication for a backup entity
US8762501B2 (en) 2011-08-29 2014-06-24 Telefonaktiebolaget L M Ericsson (Publ) Implementing a 3G packet core in a cloud computer with openflow data and control planes
US8856518B2 (en) 2011-09-07 2014-10-07 Microsoft Corporation Secure and efficient offloading of network policies to network interface cards
US9417821B2 (en) * 2011-09-30 2016-08-16 Intel Corporation Presentation of direct accessed storage under a logical drive model
US9354989B1 (en) 2011-10-03 2016-05-31 Netapp, Inc Region based admission/eviction control in hybrid aggregates
WO2013063332A1 (en) 2011-10-25 2013-05-02 Nicira, Inc. Network virtualization apparatus and method with scheduling capabilities
US9288104B2 (en) 2011-10-25 2016-03-15 Nicira, Inc. Chassis controllers for converting universal flows
US9137107B2 (en) 2011-10-25 2015-09-15 Nicira, Inc. Physical controllers for converting universal flows
US9203701B2 (en) 2011-10-25 2015-12-01 Nicira, Inc. Network virtualization apparatus and method with scheduling capabilities
US9154433B2 (en) 2011-10-25 2015-10-06 Nicira, Inc. Physical controller
WO2013074855A1 (en) * 2011-11-15 2013-05-23 Nicira, Inc. Control plane interface for logical middlebox services
US8521905B2 (en) 2011-12-22 2013-08-27 Telefonaktiebolaget L M Ericsson (Publ) System for flexible and extensible flow processing in software-defined networks
US8711860B2 (en) 2011-12-22 2014-04-29 Telefonaktiebolaget L M Ericsson (Publ) Controller for flexible and extensible flow processing in software-defined networks
US8942256B1 (en) * 2012-01-06 2015-01-27 Juniper Networks, Inc. Advertising with a layer three routing protocol constituent link attributes of a layer two bundle
US9331938B2 (en) * 2012-04-13 2016-05-03 Nicira, Inc. Extension of logical networks across layer 3 virtual private networks
AU2013249152B2 (en) 2012-04-18 2016-04-28 Nicira, Inc. Using transactions to minimize churn in a distributed network control system
US8750288B2 (en) 2012-06-06 2014-06-10 Juniper Networks, Inc. Physical path determination for virtual network packet flows
WO2013184941A1 (en) 2012-06-06 2013-12-12 Huawei Technologies Co., Ltd. Method of seamless integration and independent evolution of information-centric networking via software defined networking
US9094459B2 (en) 2012-07-16 2015-07-28 International Business Machines Corporation Flow based overlay network
US9131010B2 (en) 2012-10-19 2015-09-08 Nec Laboratories America, Inc. Delay-tolerant and loss-tolerant data transfer for mobile applications
EP2939401B1 (en) 2012-12-27 2017-05-24 Telecom Italia S.p.A. Method for guaranteeing service continuity in a telecommunication network and system thereof
JPWO2014136850A1 (ja) * 2013-03-06 2017-02-16 日本電気株式会社 通信システム、制御装置、転送ノード、制御方法およびプログラム
US10361918B2 (en) * 2013-03-19 2019-07-23 Yale University Managing network forwarding configurations using algorithmic policies
US10218564B2 (en) 2013-07-08 2019-02-26 Nicira, Inc. Unified replication mechanism for fault-tolerance of state
US9407580B2 (en) * 2013-07-12 2016-08-02 Nicira, Inc. Maintaining data stored with a packet
US9887960B2 (en) 2013-08-14 2018-02-06 Nicira, Inc. Providing services for logical networks
US9350607B2 (en) 2013-09-25 2016-05-24 International Business Machines Corporation Scalable network configuration with consistent updates in software defined networks
US9455901B2 (en) * 2013-10-04 2016-09-27 Nicira, Inc. Managing software and hardware forwarding elements to define virtual networks
US10063458B2 (en) * 2013-10-13 2018-08-28 Nicira, Inc. Asymmetric connection with external networks
US9590901B2 (en) * 2014-03-14 2017-03-07 Nicira, Inc. Route advertisement by managed gateways
US9893964B2 (en) * 2014-04-28 2018-02-13 Nicira, Inc. System for aggregating statistics relating to a logical forwarding element
US10187298B2 (en) 2014-10-27 2019-01-22 Juniper Networks, Inc. Merge point determination in refresh interval independent fast reroute facility protection
US9473404B2 (en) 2015-01-23 2016-10-18 Telefonaktiebolaget Lm Ericsson (Publ) Symmetric flow processing in a software-defined networking (SDN) system
US9967134B2 (en) 2015-04-06 2018-05-08 Nicira, Inc. Reduction of network churn based on differences in input state
US10204122B2 (en) 2015-09-30 2019-02-12 Nicira, Inc. Implementing an interface between tuple and message-driven control entities
US11019167B2 (en) 2016-04-29 2021-05-25 Nicira, Inc. Management of update queues for network controller

Also Published As

Publication number Publication date
US10033579B2 (en) 2018-07-24
AU2013249152B2 (en) 2016-04-28
CN107566271B (zh) 2020-08-28
US10135676B2 (en) 2018-11-20
EP2748993A2 (en) 2014-07-02
EP2748993B1 (en) 2015-09-02
AU2013249151A1 (en) 2014-04-17
AU2013249154A1 (en) 2014-04-17
WO2013158920A1 (en) 2013-10-24
JP2015501109A (ja) 2015-01-08
CN107566271A (zh) 2018-01-09
JP2015507448A (ja) 2015-03-05
CN104170334A (zh) 2014-11-26
JP5883946B2 (ja) 2016-03-15
EP2748706A1 (en) 2014-07-02
WO2013158918A4 (en) 2014-01-16
US20180083829A1 (en) 2018-03-22
CN104081734A (zh) 2014-10-01
AU2013249152A1 (en) 2014-09-18
AU2013249154B2 (en) 2015-12-10
AU2020227060B2 (en) 2022-01-06
CN104170334B (zh) 2017-11-07
AU2020227060A1 (en) 2020-09-24
US9843476B2 (en) 2017-12-12
EP2955886B1 (en) 2020-05-06
US9331937B2 (en) 2016-05-03
AU2016208326B2 (en) 2018-09-13
US20140247753A1 (en) 2014-09-04
JP2016076959A (ja) 2016-05-12
WO2013158917A3 (en) 2014-06-05
US20140348161A1 (en) 2014-11-27
JP6147319B2 (ja) 2017-06-14
US9306843B2 (en) 2016-04-05
US20140351432A1 (en) 2014-11-27
AU2018278916B2 (en) 2020-06-25
US20160197774A1 (en) 2016-07-07
WO2013158918A1 (en) 2013-10-24
CN104081734B (zh) 2018-01-30
EP2748994A1 (en) 2014-07-02
EP2955886A1 (en) 2015-12-16
AU2016208326A1 (en) 2016-09-01
AU2013249151B2 (en) 2015-12-10
WO2013158917A2 (en) 2013-10-24
EP2748706B1 (en) 2020-01-22
AU2018278916A1 (en) 2019-01-03

Similar Documents

Publication Publication Date Title
JP6147319B2 (ja) 分散ネットワーク制御システムにおけるチャーン化を最小限にするためのトランザクションの使用
US20230164032A1 (en) Method and apparatus for using a network information base to control a plurality of shared network infrastructure switching elements
US11012292B2 (en) Unified replication mechanism for fault-tolerance of state
US9203701B2 (en) Network virtualization apparatus and method with scheduling capabilities
US10091120B2 (en) Secondary input queues for maintaining a consistent network state
US20190104018A1 (en) Network control apparatus and method for populating logical datapath sets
US9288104B2 (en) Chassis controllers for converting universal flows
US9137107B2 (en) Physical controllers for converting universal flows
US10623254B2 (en) Hitless upgrade for network control applications
AU2012328697A1 (en) Chassis controllers for converting universal flows
US10511487B2 (en) Method and mechanism for efficiently managing flows
AU2015258164B2 (en) Chassis controllers for converting universal flows

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140812

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150625

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150703

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151005

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151130

R150 Certificate of patent or registration of utility model

Ref document number: 5849162

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250