JP2015501109A

Using transactions to compute and propagate network forwarding state

Abstract

A method for configuring a management transfer element is disclosed for a controller for managing a network having several management transfer elements that transfer data within the network. The method produces a first set of flow entries for defining the transfer behavior of a managed transfer element based on the current network policy for the logical network realized by several managed transfer elements. The method sends a first set of flow entries to the management transfer element in order to transfer the data received directly from the end machine by the management transfer element based on the current network policy. The method generates a second set of flow entries for changing the transfer behavior of the management transfer element, based on the new network policy for the logical network. The method is that the management transfer element sends a second set of flow entries to the management transfer element in order to transfer the data based on the new network policy. [Selection diagram] Fig. 5

JP2015501109A, drawing sheet 1
Sheet 1 of 15

Term

Projected expiry 18 April 2033.

  1. Priority
  2. Filed
  3. Published
  4. Today
  5. Projected expiry

27 claims: 7 independent, 20 dependent

  1. 1
    ネットワーク内でデータを転送する複数の管理転送要素を有する前記ネットワークを管理するコントローラのための、管理転送要素を設定する方法であって、 前記複数の管理転送要素で実現されている論理ネットワークに関する現在のネットワークポリシに基づいて、前記管理転送要素の転送動作を定義するためのフローエントリの第1セットを生成するステップと、 前記管理転送要素がエンドマシンから直接受信したデータを前記現在のネットワークポリシに基づいて転送するために、前記管理転送要素に前記フローエントリの第1セットを送信するステップと、 前記論理ネットワークに関する新しいネットワークポリシに基づいて、前記管理転送要素の転送動作を変更するためのフローエントリの第2セットを生成するステップと、前記管理転送要素が前記データを前記新しいネットワークポリシに基づいて転送するために前記フローエントリの第2セットを前記管理転送要素に送信するステップと、を有し、 前記管理転送要素は、論理転送要素の論理出口ポートがマッピングされる物理ポートを特定するための論理転送判断セットを実行することにより前記データを転送し、前記論理転送要素が前記複数の管理転送要素で実現されることを特徴とする方法。
  2. 2
    他の管理転送要素は、前記データに関する論理転送判断を行わないことを特徴とする請求項1に記載の方法。
  3. 3
    前記管理対象転送要素は、前記フローエントリの第2セットを完全に受信すると、前記フローエントリの第2セットの使用を開始することを特徴とする請求項1に記載の方法。
  4. 4
    前記管理転送要素が前記フローエントリの第2セットの使用を開始するためのコマンドを前記管理転送要素に送信するステップをさらに有することを特徴とする請求項1に記載の方法。
  5. 5
    前記管理対象転送要素は、前記フローエントリの第2セットを受信してから所定時間経過後に前記フローエントリの第1セットを削除することを特徴とする請求項1に記載の方法。
  6. 6
    ネットワーク内でデータを転送する複数の管理転送要素を有する前記ネットワークを管理するコントローラのための、前記複数の管理転送要素を設定する方法であって、 管理転送要素を、(i)パケットを、該パケットの送信元であるエンドマシンから直接受信し、(ii)前記パケットの宛先であるエンドマシンに向けて前記パケットを転送する、ための第1ホップ転送要素として設定するための、設定データの第1セットを生成するステップと、 管理転送要素セットを、(i)前記パケットを、前記送信元エンドマシンから直接は受信せず、(ii)前記パケットを前記宛先エンドマシンに向けて転送する、ための非第1ホップ転送要素として設定するための、設定データの第2セットを生成するステップと、 前記管理転送要素に前記設定データの第1セットを送信する前に、前記管理転送要素セットに前記設定データの第2セットを送信するステップと、を有することを特徴とする方法。
  7. 7
    前記管理転送要素セットに前記設定データの第2セットを送信する前に: (i)前記管理転送要素を第1ホップ転送要素として設定し、(ii)第1ホップ転送要素としての前記管理転送要素が受信ならびに転送する特定のパケットに、バージョン情報を添付するように前記管理転送要素を設定するための、設定データの第3セットを生成するステップと、 前記管理転送要素セットを非第1ホップ転送要素として設定するための設定データの第4セットを生成するステップと、 前記管理転送要素に前記設定データの第3セットを送信するステップと、 前記管理転送要素セットに前記設定データの第4セットを送信するステップと、をさらに有し、 前記コントローラから前記設定データの第2セットを受信した後、前記管理転送要素セットは、非第1ホップ転送要素としての前記管理転送要素セットが受信ならびに転送する前記特定のパケットを転送するために用いるものとして、前記設定データの第2セットよりも前記設定データの第4セットを選択するために前記バージョン情報を用いることを特徴とする請求項6に記載の方法。
  8. 8
    前記バージョン情報は、単一バイナリビットのサイズを有することを特徴とする請求項7に記載の方法。
  9. 9
    前記管理転送要素に前記設定データの第1セットを送信するステップをさらに有し、 前記設定データの第1セットは、第1ホップ転送要素としての前記管理転送要素セットが受信ならびに転送するパケットに別のバージョン情報を添付するよう、前記管理転送要素をさらに設定するためのものであり、 前記設定データの第2セットを受信した後、前記管理転送要素セットは、前記管理転送要素セットが非第1ホップ転送要素として受信する前記パケットを転送するために用いるものとして、前記設定データの第4セットよりも前記設定データの第2セットを選択するために前記別のバージョン情報を用いることを特徴とする請求項7に記載の方法。
  10. 10
    前記設定データの第1セットの受信から所定時間経過後に前記設定データの第3セットを削除するように前記管理転送要素を設定するステップをさらに有することを特徴とする請求項7に記載の方法。
  11. 11
    前記設定データの第1セットの受信後に前記設定データの第3セットを削除するように前記管理転送要素にコマンドを送信するステップをさらに有することを特徴とする請求項7に記載の方法。
  12. 12
    前記管理転送要素と前記送信元エンドマシンとが同じホスト内で稼働することを特徴とする請求項6に記載の方法。
  13. 13
    前記設定データの第2セットはさらに、前記管理転送要素セットのうち特定の管理転送要素を、前記特定の管理転送要素が非第1ホップ転送要素として受信するパケットを前記宛先エンドマシンに直接送信するための最終ホップ転送要素として設定するためのものであることを特徴とする請求項6に記載の方法。
  14. 14
    前記特定の管理転送要素と、前記宛先エンドマシンとが同じホスト内で稼働することを特徴とする請求項13に記載の方法。
  15. 15
    ネットワーク内でデータを転送する複数の管理転送要素を有する前記ネットワークを管理するコントローラのための、管理転送要素セットを設定する方法であって、 (i)前記管理転送要素セットをエンドマシンセットから直接受信するデータを転送する第1ホップ転送要素として設定するための、フローエントリの第1セットと、(ii)前記管理転送要素セットを前記エンドマシンセットから受信されたものでないデータを転送する非第1ホップ転送要素として設定するための、フローエントリの第2セットと、を生成するステップと、 前記管理転送要素セットに前記フローエントリの第1セットを送信する前に、前記管理転送要素セットに前記フローエントリの第2セットを送信するステップと、を有することを特徴とする方法。
  16. 16
    前記フローエントリの第2セットを送信する前に: (i)前記管理転送要素セットを第1ホップ転送要素として設定し、(ii)第1ホップ転送要素としての前記管理転送要素セットが受信ならびに転送するデータにバージョン情報を添付するように前記管理転送要素セットを設定するための、フローエントリの第3セットを生成するステップと、 前記管理転送要素セットを非第1ホップ転送要素として設定するための、フローエントリの第4セットを生成するステップと、 前記管理転送要素セットに前記フローエントリの第3および第4セットを送信するステップと、を有し、 前記コントローラから前記フローエントリの第2セットを受信した後、前記管理転送要素セットは、前記管理転送要素セットが非第1ホップ転送要素として受信する前記データを転送するために用いるものとして、前記フローエントリの第2セットよりも前記フローエントリの第4セットを選択するために前記バージョン情報を用いることを特徴とする請求項15に記載の方法。
  17. 17
    前記バージョン情報は、単一バイナリビットのサイズを有することを特徴とする請求項16に記載の方法。
  18. 18
    前記管理転送要素セットに前記フローエントリの第1セットを送信するステップをさらに有し、 前記フローエントリの第1セットは、第1ホップ転送要素としての前記管理転送要素セットが受信および転送する前記データに別のバージョン情報を添付するように前記管理転送要素セットをさらに設定するためのものであり、前記フローエントリの第2セットを受信した後、前記管理転送要素セットは、前記管理転送要素セットが非第1ホップ転送要素として受信するデータを転送するために使用するものとして、前記フローエントリの第4セットよりも前記フローエントリの第2セットを選択するために、前記別のバージョン情報を使用することを特徴とする請求項16に記載の方法。
  19. 19
    前記フローエントリの第1セットの受信から一定時間経過後に、前記フローエントリの第3および第4セットを削除するように前記管理転送要素を設定するステップをさらに有することを特徴とする請求項16に記載の方法。
  20. 20
    前記フローエントリの第1セットを受信した後、前記フローエントリの第3および第4セットを削除するよう前記管理転送要素セットにコマンドを送信するステップをさらに有することを特徴とする請求項16に記載の方法。
  21. 21
    ネットワーク内のデータを転送するための管理転送要素のための、データを転送するための方法であって、 前記管理転送要素と、前記管理転送要素に転送状態情報を送信するコントローラとの間に確立されている複数の通信チャネルを通じて受信された、前記管理転送要素の転送動作を規定する古い転送状態情報に基づいてデータを転送するステップと、 前記コントローラとの間で確立されている前記通信チャネルを通じて、前記管理転送要素の転送動作を修正するための新しい転送状態情報を前記コントローラから受信するステップであって、前記新しい転送状態は前記複数の通信チャネルを通じてトランザクション的な入力フローエントリの複数のセットとして受信され、かつ該複数のセットのうち1セットが1つの特定チャネルを通じて受信され、他のセットは前記複数の通信チャネルの他のチャネルを通じて受信されるステップと、 前記特定のチャネルを通じて前記トランザクション的な入力フローエントリのセットが完全に受信された後にのみ、データの転送に前記新しい転送状態情報を用いるステップと、を有することを特徴とする方法。
  22. 22
    トランザクション的な入力フローエントリのセットの各々は、前記管理転送要素に受信された際、前記トランザクション的な入力フローエントリのセットの全てのトランザクション的な入力フローエントリが前記管理転送要素で受信されたことを示すインジケータを含むことを特徴とする請求項21に記載の方法。
  23. 23
    前記管理転送要素がホストで稼働し、 前記方法が、 前記ネットワークから、前記ネットワークに接続されているソースマシンを送信元とする前記データを受信するステップと、 同じホストで稼働しているエンドマシンに前記データを転送するステップと、 をさらに有することを特徴とする請求項21に記載の方法。
  24. 24
    前記管理転送要素がホストで稼働し、 前記方法が、 同じホストで動作しているエンドマシンからデータを受信するステップと、 前記ネットワークに接続されている前記データの宛先に向けて、前記データを前記ネットワークへ転送するステップと、 をさらに有することを特徴とする請求項21に記載の方法。
  25. 25
    管理転送要素を、ネットワーク内でデータを転送するように設定するために、前記管理転送要素にフローエントリをプッシュする第1ネットワークコントローラについての、フローエントリをプッシュする方法であって、 フローエントリを生成する第2のコントローラからフローエントリのセットを受信するステップと、 受信したフローエントリのセットを処理するステップと、 前記フローエントリのセットを直ちに前記管理転送要素にプッシュすべきか否かを、所定の条件に基づいて判定するステップと、 フローエントリのセットを直ちに前記管理転送要素にプッシュするべきであると判定された場合、前記フローエントリが処理されるとすぐに前記フローエントリのセットを前記管理転送要素にプッシュするステップと、 前記フローエントリのセットを直ちに前記管理転送要素にプッシュする必要がないと判定された場合、前記フローエントリのセットの全てのフローエントリを処理した後でのみ、前記フローエントリのセットを前記管理転送要素にプッシュするステップと、を有することを特徴とする方法。
  26. 26
    前記フローエントリのセットを直ちに前記管理転送要素にプッシュすべきであると判定された場合、前記管理転送要素が前記第1ネットワークコントローラから受信した前記フローエントリの受信に応答して、前記管理転送要素が算出したフローエントリを受信するステップと、 前記管理転送要素が算出した前記フローエントリのセットから、前記管理転送要素に送信するためのフローエントリのセットを生成するステップと、をさらに有することを特徴とする請求項25に記載の方法。
  27. 27
    前記フローエントリのセットが、前記管理転送要素に受信されると、前記フローエントリのセットの前記フローエントリの全てが前記管理転送要素によって受信されたことを示すインジケータを有することを特徴とする請求項25に記載の方法。
Independent claims27