(57)【要約】  ＯＳＰＦを使用して最大ノードおよび／またはリンクセグメント識別子深度を明らかにするための技法が説明される。セグメントルーティング（ＳＲ）ネットワークにおけるネットワークエレメントが、ＯＳＰＦを利用して、最大セグメント識別子深度（ＭＳＤ）値を含むＴＬＶ（Type Length Value）エレメントを送信する。ＭＳＤ値は、ネットワークエレメントが受信パケットのパケットヘッダの中にプッシュすることができるセグメント識別子（ＳＩＤ）ラベルの最大数を識別して、ＳＲネットワークを通した受信パケットの転送を可能にする。ネットワークエレメントは、ＳＲネットワークを通して受信パケットを転送するためにネットワークエレメントによって利用されることになるパスについてのデータを、コントローラから受信する。データは、受信パケットの中にプッシュされることになる１つまたは複数のＳＩＤラベルを含み、ＳＩＤラベルは、ＭＳＤ値よりも少数の、またはＭＳＤ値に等しい数のＳＩＤラベルを有する。コントローラおよびネットワークエレメントは、サウスバウンドインターフェース上でパス計算エレメントプロトコル（ＰＣＥＰ）を利用しない。【選択図】図１
2019505140.tif 000002
【特許請求の範囲】
【請求項１】
セグメントルーティング（ＳＲ）ネットワーク（１２０）においてネットワークエレメント（１０２Ａ）を実装するデバイス（９０２／９０４／９０６）における方法であって、
前記ネットワークエレメントによって、最大セグメント識別子深度（ＭＳＤ）値（１１２）を含むＴＬＶ（Type Length Value）エレメント（１１０）を送信することであって、前記ＴＬＶエレメントは、オープン最短パスファースト（ＯＳＰＦ）プロトコルを使用してアドバタイズされており、前記ＭＳＤ値が、前記ネットワークエレメントが受信パケット（１５０Ａ）のパケットヘッダの中にプッシュすることができるセグメント識別子（ＳＩＤ）ラベルの最大数を識別して、前記ＳＲネットワークを通した前記受信パケット（１５０Ｂ）の転送を可能にする、ＴＬＶエレメント（１１０）を送信することと、
前記ＳＲネットワークを通して前記受信パケットを転送するために前記ネットワークエレメントによって利用されることになるパス（１２２）についてのデータ（１１４）を、コントローラ（１０４）から受信することであって、前記データが、前記パスに関連付けられた前記受信パケットの中にプッシュされることになる１つまたは複数のＳＩＤラベル（１５２）の組を含み、前記ＳＩＤラベルの組が、前記ＭＳＤ値よりも少数の、または前記ＭＳＤ値に等しい数のＳＩＤラベルを有する、データ（１１４）を受信することと
を含み、
前記コントローラおよび前記ネットワークエレメントが、サウスバウンドインターフェース上でパス計算エレメントプロトコル（ＰＣＥＰ）（１１６）を利用しない、
方法。
【請求項２】
前記ＯＳＰＦプロトコルが、ＯＳＰＦバージョン２（ＯＳＰＦｖ２）またはＯＳＰＦバージョン３（ＯＳＰＦｖ３）のいずれかを含む、請求項１に記載の方法。
【請求項３】
前記ＴＬＶエレメントが、ノードＭＳＤ  ＴＬＶ（１１０Ａ）であって、
ＯＳＰＦｖ２ルータ情報オペークリンク状態アドバタイズ（ＬＳＡ）（２１０）、または
ＯＳＰＦｖ３ルータ情報オペークＬＳＡ（２５０）
のいずれかによって搬送される、請求項１または２に記載の方法。
【請求項４】
前記ＴＬＶエレメントが、リンクＭＳＤサブＴＬＶ（１１０Ｂ）であって、
ＯＳＰＦｖ２拡張リンクオペークリンク状態アドバタイズ（ＬＳＡ）（３０８）、
ＯＳＰＦｖ２トラフィックエンジニアリング（ＴＥ）ＬＳＡ（３３０）、または
ＯＳＰＦｖ３  Ｅ−ルータ−ＬＳＡ（４００）
のいずれかによって搬送される、請求項１または２に記載の方法。
【請求項５】
前記ネットワークエレメントによって、前記ＭＳＤ値を、前記ネットワークエレメントの１つまたは複数のラインカード（９３８）の１つまたは複数のＭＳＤ値のうちの最も小さい値として決定すること
をさらに含む、請求項１から４のいずれか一項に記載の方法。
【請求項６】
請求項１から５のいずれか一項に記載の方法を実現するように構成されたコンピュータプログラム論理（９２０／９５０）を有するコンピュータプログラム製品（９１８／９４８）。
【請求項７】
デバイス（９０２／９０４／９０６）の１つまたは複数のプロセッサ（９１２／９４２）によって実行されるとき、前記デバイスに、セグメントルーティング（ＳＲ）ネットワーク（１２０）において作動し、請求項１から５のいずれか一項に記載の方法を実施するためのネットワークエレメント（１０２Ａ）を実装させる命令（９２０／９５０）を有する非一時的なコンピュータ可読ストレージ媒体（９１８／９４８）。
【請求項８】
１つまたは複数のプロセッサと、
請求項７に記載の非一時的なコンピュータ可読ストレージ媒体と
を備えるデバイス。
【請求項９】
セグメントルーティング（ＳＲ）ネットワークにおいてネットワークエレメント（１０２Ａ）を実装するためのデバイス（７５２）であって、
最大セグメント識別子深度（ＭＳＤ）値を含むＴＬＶ（Type Length Value）エレメントを送信するように適合されたモジュール（７５４）であって、前記ＴＬＶエレメントは、オープン最短パスファースト（ＯＳＰＦ）プロトコルを使用してアドバタイズされることになり、前記ＭＳＤ値が、前記ネットワークエレメントが受信パケットのパケットヘッダの中にプッシュすることができるセグメント識別子（ＳＩＤ）ラベルの最大数を識別して、前記ＳＲネットワークを通した前記受信パケットの転送を可能にする、モジュール（７５４）と、
前記ＳＲネットワークを通して前記受信パケットを転送するために前記ネットワークエレメントによって利用されることになるパスについてのデータを、コントローラから受信するように適合されたモジュール（７５６）であって、前記データが、前記パスに関連付けられた前記受信パケットの中にプッシュされることになる１つまたは複数のＳＩＤラベルの組を含み、前記ＳＩＤラベルの組が、前記ＭＳＤ値よりも少数の、または前記ＭＳＤ値に等しい数のＳＩＤラベルを有する、モジュール（７５６）と
を備え、
前記コントローラおよび前記ネットワークエレメントが、サウスバウンドインターフェース上でパス計算エレメントプロトコル（ＰＣＥＰ）を利用しない、
デバイス（７５２）。
【請求項１０】
セグメントルーティング（ＳＲ）ネットワークにおいてネットワークエレメントを実装するためのデバイスであって、前記ネットワークエレメントが、
最大セグメント識別子深度（ＭＳＤ）値を含むＴＬＶ（Type Length Value）エレメントを送信することであって、前記ＴＬＶエレメントは、オープン最短パスファースト（ＯＳＰＦ）プロトコルを使用してアドバタイズされることになり、前記ＭＳＤ値が、前記ネットワークエレメントが受信パケットのパケットヘッダの中にプッシュすることができるセグメント識別子（ＳＩＤ）ラベルの最大数を識別して、前記ＳＲネットワークを通した前記受信パケットの転送を可能にする、ＴＬＶエレメントを送信することと、
前記ＳＲネットワークを通して前記受信パケットを転送するために前記ネットワークエレメントによって利用されることになるパスについてのデータを、コントローラから受信することであって、前記データが、前記パスに関連付けられた前記受信パケットの中にプッシュされることになる１つまたは複数のＳＩＤラベルの組を含み、前記ＳＩＤラベルの組が、前記ＭＳＤ値よりも少数の、または前記ＭＳＤ値に等しい数のＳＩＤラベルを有する、データを受信することと
を行うように適合されており、
前記コントローラおよび前記ネットワークエレメントが、サウスバウンドインターフェース上でパス計算エレメントプロトコル（ＰＣＥＰ）を利用しない、
デバイス。
【請求項１１】
コントローラモジュール（１０４）と、
請求項８から１０のいずれか一項に記載のデバイスと
を備えるシステム。
【請求項１２】
セグメントルーティング（ＳＲ）ネットワーク（１２０）の複数のネットワークエレメント（１０２Ａ〜１０２Ｆ）に通信可能に結合されたコントローラ（１０４）における方法であって、
前記複数のネットワークエレメントのうちの第１のネットワークエレメント（１０２Ａ）から、最大セグメント識別子深度（ＭＳＤ）値（１１２）を含むＴＬＶ（Type Length Value）エレメント（１１０）を受信することであって、前記ＴＬＶエレメントは、オープン最短パスファースト（ＯＳＰＦ）プロトコルを使用してアドバタイズされており、前記ＭＳＤ値が、前記第１のネットワークエレメントが受信パケット（１５０Ａ）のパケットヘッダの中にプッシュすることができるセグメント識別子（ＳＩＤ）ラベル（１５２）の最大数を識別して、前記ＳＲネットワークを通した前記受信パケット（１５０Ｂ）の転送を可能にする、ＴＬＶエレメント（１１０）を受信することと、
前記ＭＳＤ値に基づいて、１つまたは複数のＳＩＤラベル（１５２）の組を利用する識別可能なトラフィックの組について、前記複数のネットワークエレメントのうちの前記第１のネットワークエレメント（１０２Ａ）から第２のネットワークエレメント（１０２Ｅ）へのパス（１２２）を決定することであって、前記ＳＩＤラベルの組におけるＳＩＤラベルの数が、前記ＭＳＤ値よりも少ない、または前記ＭＳＤ値に等しい、パス（１２２）を決定することと、
前記ＳＲネットワークを通して前記受信パケットを転送するために前記ネットワークエレメントによって利用されることになる前記パスについてのデータ（１１４）を、前記第１のネットワークエレメントに送信することであって、前記データが、前記識別可能なトラフィックの組の受信パケットの中にプッシュされることになる前記ＳＩＤラベルの組を含む、データ（１１４）を送信することと
を含み、
前記コントローラおよび前記第１のネットワークエレメントが、サウスバウンドインターフェース上でパス計算エレメントプロトコル（ＰＣＥＰ）（１１６）を利用しない、
方法。
【請求項１３】
前記ＯＳＰＦプロトコルが、ＯＳＰＦバージョン２（ＯＳＰＦｖ２）またはＯＳＰＦバージョン３（ＯＳＰＦｖ３）のいずれかを含む、請求項１２に記載の方法。
【請求項１４】
前記ＴＬＶエレメントが、ノードＭＳＤ  ＴＬＶであって、
ＯＳＰＦｖ２ルータ情報オペークリンク状態アドバタイズ（ＬＳＡ）、または
ＯＳＰＦｖ３ルータ情報オペークＬＳＡ
のいずれかによって搬送される、請求項１２または１３に記載の方法。
【請求項１５】
前記ＴＬＶエレメントが、リンクＭＳＤサブＴＬＶであって、
ＯＳＰＦｖ２拡張リンクオペークリンク状態アドバタイズ（ＬＳＡ）、
ＯＳＰＦｖ２トラフィックエンジニアリング（ＴＥ）ＬＳＡ、または
ＯＳＰＦｖ３  Ｅ−ルータ−ＬＳＡ
のいずれかによって搬送される、請求項１２または１３に記載の方法。
【請求項１６】
請求項１２から１５のいずれか一項に記載の方法を実現するように構成されたコンピュータプログラム論理を有するコンピュータプログラム製品。
【請求項１７】
デバイスの１つまたは複数のプロセッサによって実行されるとき、前記デバイスに、請求項１２から１５のいずれか一項に記載の方法を実施するためのコントローラを実装させる命令を有する非一時的なコンピュータ可読ストレージ媒体。
【請求項１８】
１つまたは複数のプロセッサと、
請求項１７に記載の非一時的なコンピュータ可読ストレージ媒体と
を備える、コントローラを実装するように設定されたデバイス。
【請求項１９】
セグメントルーティング（ＳＲ）ネットワークの複数のネットワークエレメントに通信可能に結合されることになるコントローラ（１０４）を実装するように適合されたデバイス（８５２）であって、前記コントローラが、
前記複数のネットワークエレメントのうちの第１のネットワークエレメントから、最大セグメント識別子深度（ＭＳＤ）値を含むＴＬＶ（Type Length Value）エレメントを受信するように適合されたモジュール（８５４）であって、前記ＴＬＶエレメントは、オープン最短パスファースト（ＯＳＰＦ）プロトコルを使用してアドバタイズされており、前記ＭＳＤ値が、前記第１のネットワークエレメントが受信パケットのパケットヘッダの中にプッシュすることができるセグメント識別子（ＳＩＤ）ラベルの最大数を識別して、前記ＳＲネットワークを通した前記受信パケットの転送を可能にする、モジュール（８５４）と、
前記ＭＳＤ値に基づいて、１つまたは複数のＳＩＤラベルの組を利用する識別可能なトラフィックの組について、前記複数のネットワークエレメントのうちの前記第１のネットワークエレメントから第２のネットワークエレメントへのパスを決定するように適合されたモジュール（８５６）であって、前記ＳＩＤラベルの組におけるＳＩＤラベルの数が、前記ＭＳＤ値よりも少ない、または前記ＭＳＤ値に等しい、モジュール（８５６）と、
前記ＳＲネットワークを通して前記受信パケットを転送するために前記ネットワークエレメントによって利用されることになる前記パスについてのデータを、前記第１のネットワークエレメントに送信するように適合されたモジュール（８５８）であって、前記データが、前記識別可能なトラフィックの組の受信パケットの中にプッシュされることになる前記ＳＩＤラベルの組を含む、モジュール（８５８）と
を備え、
前記コントローラおよび前記第１のネットワークエレメントが、サウスバウンドインターフェース上でパス計算エレメントプロトコル（ＰＣＥＰ）を利用しない、
デバイス（８５２）。
【請求項２０】
セグメントルーティング（ＳＲ）ネットワークの複数のネットワークエレメントに通信可能に結合されることになるコントローラを実装するように適合されたデバイスであって、前記コントローラが、
前記複数のネットワークエレメントのうちの第１のネットワークエレメントから、最大セグメント識別子深度（ＭＳＤ）値を含むＴＬＶ（Type Length Value）エレメントを受信することであって、前記ＴＬＶエレメントは、オープン最短パスファースト（ＯＳＰＦ）プロトコルを使用してアドバタイズされており、前記ＭＳＤ値が、前記第１のネットワークエレメントが受信パケットのパケットヘッダの中にプッシュすることができるセグメント識別子（ＳＩＤ）ラベルの最大数を識別して、前記ＳＲネットワークを通した前記受信パケットの転送を可能にする、ＴＬＶエレメントを受信することと、
前記ＭＳＤ値に基づいて、１つまたは複数のＳＩＤラベルの組を利用する識別可能なトラフィックの組について、前記複数のネットワークエレメントのうちの前記第１のネットワークエレメントから第２のネットワークエレメントへのパスを決定することであって、前記ＳＩＤラベルの組におけるＳＩＤラベルの数が、前記ＭＳＤ値よりも少ない、または前記ＭＳＤ値に等しい、パスを決定することと、
前記ＳＲネットワークを通して前記受信パケットを転送するために前記ネットワークエレメントによって利用されることになる前記パスについてのデータを、前記第１のネットワークエレメントに送信することであって、前記データが、前記識別可能なトラフィックの組の受信パケットの中にプッシュされることになる前記ＳＩＤラベルの組を含む、データを送信することと
を行うように適合されており、
前記コントローラおよび前記第１のネットワークエレメントが、サウスバウンドインターフェース上でパス計算エレメントプロトコル（ＰＣＥＰ）を利用しない、
デバイス。
【請求項２１】
請求項１８から２０のいずれか一項に記載のデバイスと、
前記ＳＲネットワークの前記複数のネットワークエレメントと
を備えるシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、参照により本明細書に組み込まれる、２０１６年２月１５日に出願された米国仮特許出願第６２／２９５，４５３号の利益を主張するものである。
【０００２】
本発明の実施形態は、コンピュータネットワーキングの分野に関し、より詳細には、オープン最短パスファースト（ＯＳＰＦ）を利用して最大ノードおよび／またはリンクセグメント識別子深度を明らかにするための技法に関する。
【背景技術】
【０００３】
セグメントルーティング（ＳＲ）は、ソースルーティングパラダイムを活かす、近年開発されたルーティング技法である。ＳＲネットワークにおいて、ノードは、セグメントと呼ばれる命令の順序付けされたリストを通して、パケットをステアリングする。セグメントは、トポロジ的な、またはサービスベースの任意の命令を表現することができ、ＳＲノードに対する局所的セマンティクス、またはＳＲドメイン内での包括的セマンティクスを有することができる。
【０００４】
ＳＲは、フローのトラフィックが、ＳＲドメインへの入口ノードでのみフロー毎の状態を維持しながら、任意のトポロジパスおよびサービスチェインを通り抜けるのを許可する。ＳＲは、参加ノードの転送プレーンへのいかなる変化も要求せずに、一般的なマルチプロトコルラベルスイッチング（ＭＰＬＳ）アーキテクチャに直接適用することができる。たとえば、セグメントを、ＭＰＬＳラベルとして符号化することができ、セグメントの順序付けされたリストを、ラベルのスタックとして符号化することができる。処理すべきセグメントは、スタックの最上にある。セグメントが完了すると、関連したラベルは、スタックからポップされる。
【０００５】
ＳＲはまた、新しいタイプのルーティング拡張ヘッダを使用するインターネットプロトコル（ＩＰ）バージョン６（ＩＰｖ６）アーキテクチャにも適用することができる。セグメントを、ＩＰｖ６アドレスとして符号化することができる。セグメントの順序付けされたリストは、ルーティング拡張ヘッダにおいて、ＩＰｖ６アドレスの順序付けされたリストとして符号化される。処理すべきセグメントは、ルーティング拡張ヘッダにおいてポインタによって指し示される。セグメントが完了すると、ポインタはインクリメントされる。
【０００６】
ＳＲは、スケーラブルなエンドツーエンドポリシーを可能にすることを含む、多くの利益を提供することができ、ＩＰおよびソフトウェア規定ネットワーキング（ＳＤＮ）用に設計されたという事実（すなわち、等コストマルチパス（ＥＣＭＰ）アウェアネス、ならびに分散型インテリジェンス、集中型最適化、およびアプリケーションベースのポリシー作成の間でのバランスを有する）は、操作上の単純さを有し、かつ集中型最適化のおかげで、導入されたインフラストラクチャのよりよい利用を提供することができる。
【発明の概要】
【０００７】
ＳＲネットワークにおいてネットワークエレメントを実装するデバイスにおける方法が、ネットワークエレメントによって、最大セグメント識別子深度（ＭＳＤ）値を含むＴＬＶ（Type Length Value）エレメントを送信することを含む。ＴＬＶエレメントは、ＯＳＰＦプロトコルを使用して送信される。ＭＳＤ値は、ネットワークエレメントが受信パケットのパケットヘッダの中にプッシュすることができるセグメント識別子（ＳＩＤ）ラベルの最大数を識別して、ＳＲネットワークを通した受信パケットの転送を可能にする。方法はまた、ＳＲネットワークを通して受信パケットを転送するためにネットワークエレメントによって利用されることになるパスについてのデータを、コントローラから受信することを含む。データは、パスに関連付けられた受信パケットの中にプッシュされることになる１つまたは複数のＳＩＤラベルの組を含む。ＳＩＤラベルの組は、ＭＳＤ値よりも少ない、またはＭＳＤ値に等しい数のＳＩＤラベルを含み、コントローラおよびネットワークエレメントは、サウスバウンドインターフェース上でパス計算エレメントプロトコル（ＰＣＥＰ）を利用しない。
【０００８】
いくつかの実施形態において、利用されるＯＳＰＦプロトコルは、ＯＳＰＦバージョン２（ＯＳＰＦｖ２）またはＯＳＰＦバージョン３（ＯＳＰＦｖ３）のいずれかを含む。
【０００９】
いくつかの実施形態において、ＴＬＶエレメントは、ノードＭＳＤ  ＴＬＶであって、ＯＳＰＦｖ２ルータ情報オペークリンク状態アドバタイズ（ＬＳＡ）またはＯＳＰＦｖ３ルータ情報オペークＬＳＡのいずれかによって搬送される。
【００１０】
いくつかの実施形態において、ＴＬＶエレメントは、リンクＭＳＤサブＴＬＶであって、ＯＳＰＦｖ２拡張リンクオペークＬＳＡ、ＯＳＰＦｖ２  ＴＥ  ＬＳＡ、またはＯＳＰＦｖ３  Ｅ−ルータ−ＬＳＡのいずれかによって搬送される。
【００１１】
いくつかの実施形態において、方法は、ネットワークエレメントによって、ＭＳＤ値を、ネットワークエレメントの１つまたは複数のラインカードの１つまたは複数のＭＳＤ値のうちの最も小さい値として決定することをさらに含む。
【００１２】
いくつかの実施形態によれば、非一時的なコンピュータ可読ストレージ媒体が命令を有し、命令は、デバイスの１つまたは複数のプロセッサによって実行されるとき、デバイスに、ＳＲネットワークにおけるネットワークエレメントを実装させ、動作を実施させる。動作は、ＭＳＤ値を含むＴＬＶエレメントを送信することを含む。ＴＬＶエレメントは、ＯＳＰＦプロトコルを使用して送信される。ＭＳＤ値は、ネットワークエレメントが受信パケットのパケットヘッダの中にプッシュすることができるＳＩＤラベルの最大数を識別して、ＳＲネットワークを通した受信パケットの転送を可能にする。動作はまた、ＳＲネットワークを通して受信パケットを転送するためにネットワークエレメントによって利用されることになるパスについてのデータを、コントローラから受信することを含む。データは、パスに関連付けられた受信パケットの中にプッシュされることになる１つまたは複数のＳＩＤラベルの組を含む。ＳＩＤラベルの組は、ＭＳＤ値よりも少ない、またはＭＳＤ値に等しい数のＳＩＤラベルを含み、コントローラおよびネットワークエレメントは、サウスバウンドインターフェース上でＰＣＥＰを利用しない。
【００１３】
いくつかの実施形態において、デバイスが、１つまたは複数のプロセッサと、非一時的なコンピュータ可読ストレージ媒体とを含む。非一時的なコンピュータ可読ストレージ媒体は命令を有し、命令は、１つまたは複数のプロセッサによって実行されるとき、デバイスに、ＳＲネットワークにおけるネットワークエレメントを実装させ、動作を実施させる。動作は、ＭＳＤ値を含むＴＬＶエレメントを送信することを含む。ＴＬＶエレメントは、ＯＳＰＦプロトコルを使用して送信される。ＭＳＤ値は、ネットワークエレメントが受信パケットのパケットヘッダの中にプッシュすることができるＳＩＤラベルの最大数を識別して、ＳＲネットワークを通した受信パケットの転送を可能にする。動作はまた、ＳＲネットワークを通して受信パケットを転送するためにネットワークエレメントによって利用されることになるパスについてのデータを、コントローラから受信することを含む。データは、パスに関連付けられた受信パケットの中にプッシュされることになる１つまたは複数のＳＩＤラベルの組を含む。ＳＩＤラベルの組は、ＭＳＤ値よりも少ない、またはＭＳＤ値に等しい数のＳＩＤラベルを含み、コントローラおよびネットワークエレメントは、サウスバウンドインターフェース上でＰＣＥＰを利用しない。
【００１４】
システムが、コントローラと、ネットワークエレメントとを含む。デバイスによって実装されるネットワークエレメントは、ＳＲネットワークに参加し、動作を実施する。動作は、ＭＳＤ値を含むＴＬＶエレメントを送信することを含む。ＴＬＶエレメントは、ＯＳＰＦプロトコルを使用して送信される。ＭＳＤ値は、ネットワークエレメントが受信パケットのパケットヘッダの中にプッシュすることができるＳＩＤラベルの最大数を識別して、ＳＲネットワークを通した受信パケットの転送を可能にする。動作はまた、ＳＲネットワークを通して受信パケットを転送するためにネットワークエレメントによって利用されることになるパスについてのデータを、コントローラから受信することを含む。データは、パスに関連付けられた受信パケットの中にプッシュされることになる１つまたは複数のＳＩＤラベルの組を含む。ＳＩＤラベルの組は、ＭＳＤ値よりも少ない、またはＭＳＤ値に等しい数のＳＩＤラベルを含み、コントローラおよびネットワークエレメントは、サウスバウンドインターフェース上でＰＣＥＰを利用しない。
【００１５】
いくつかの実施形態によれば、ＳＲネットワークの複数のネットワークエレメントに通信可能に結合されたコントローラにおける方法が、複数のネットワークエレメントのうちの第１のネットワークエレメントから、ＭＳＤ値を含むＴＬＶエレメントを受信することを含む。ＴＬＶエレメントは、ＯＳＰＦプロトコルを使用して送信される。ＭＳＤ値は、第１のネットワークエレメントが受信パケットのパケットヘッダの中にプッシュすることができるＳＩＤラベルの最大数を識別して、ＳＲネットワークを通した受信パケットの転送を可能にする。方法はまた、ＭＳＤ値に基づいて、１つまたは複数のＳＩＤラベルの組を含む識別可能なトラフィックの組について、複数のネットワークエレメントのうちの第１のネットワークエレメントから第２のネットワークエレメントへのパスを決定することを含む。ＳＩＤラベルの組におけるＳＩＤラベルの数は、必然的にＭＳＤ値よりも少ない、またはＭＳＤ値に等しい。方法はまた、ＳＲネットワークを通して受信パケットを転送するためにネットワークエレメントによって利用されることになるパスについてのデータを、第１のネットワークエレメントに送信することを含む。データは、識別可能なトラフィックの組の受信パケットの中にプッシュされることになるＳＩＤラベルの組を含む。コントローラおよび第１のネットワークエレメントは、サウスバウンドインターフェース上でＰＣＥＰを利用しない。
【００１６】
いくつかの実施形態において、ＯＳＰＦプロトコルは、ＯＳＰＦバージョン２（ＯＳＰＦｖ２）またはＯＳＰＦバージョン３（ＯＳＰＦｖ３）のいずれかを含む。
【００１７】
いくつかの実施形態において、ＴＬＶエレメントは、ノードＭＳＤ  ＴＬＶであって、ＯＳＰＦｖ２ルータ情報オペークＬＳＡまたはＯＳＰＦｖ３ルータ情報オペークＬＳＡのいずれかによって搬送される。
【００１８】
いくつかの実施形態において、ＴＬＶエレメントは、リンクＭＳＤサブＴＬＶであって、ＯＳＰＦｖ２拡張リンクオペークＬＳＡ、ＯＳＰＦｖ２  ＴＥ  ＬＳＡ、またはＯＳＰＦｖ３  Ｅ−ルータ−ＬＳＡのいずれかによって搬送される。
【００１９】
いくつかの実施形態によれば、非一時的なコンピュータ可読ストレージ媒体が命令を有し、命令は、デバイスの１つまたは複数のプロセッサによって実行されるとき、デバイスに、ＳＲネットワークの複数のネットワークエレメントに通信可能に結合されることになるコントローラを実装させ、動作を実施させる。動作は、複数のネットワークエレメントのうちの第１のネットワークエレメントから、ＭＳＤ値を含むＴＬＶエレメントを受信することを含む。ＴＬＶエレメントは、ＯＳＰＦプロトコルを使用して送信される。ＭＳＤ値は、第１のネットワークエレメントが受信パケットのパケットヘッダの中にプッシュすることができるＳＩＤラベルの最大数を識別して、ＳＲネットワークを通した受信パケットの転送を可能にする。動作はまた、ＭＳＤ値に基づいて、１つまたは複数のＳＩＤラベルの組を含む識別可能なトラフィックの組について、複数のネットワークエレメントのうちの第１のネットワークエレメントから第２のネットワークエレメントへのパスを決定することを含む。ＳＩＤラベルの組におけるＳＩＤラベルの数は、必然的にＭＳＤ値よりも少ない、またはＭＳＤ値に等しい。動作はまた、ＳＲネットワークを通して受信パケットを転送するためにネットワークエレメントによって利用されることになるパスについてのデータを、第１のネットワークエレメントに送信することを含む。データは、識別可能なトラフィックの組の受信パケットの中にプッシュされることになるＳＩＤラベルの組を含む。コントローラおよび第１のネットワークエレメントは、サウスバウンドインターフェース上でＰＣＥＰを利用しない。
【００２０】
いくつかの実施形態において、デバイスが、１つまたは複数のプロセッサと、非一時的なコンピュータ可読ストレージ媒体とを含む。非一時的なコンピュータ可読ストレージ媒体は命令を有し、命令は、１つまたは複数のプロセッサによって実行されるとき、デバイスに、ＳＲネットワークの複数のネットワークエレメントに通信可能に結合されることになるコントローラを実装させ、動作を実施させる。動作は、複数のネットワークエレメントのうちの第１のネットワークエレメントから、ＭＳＤ値を含むＴＬＶエレメントを受信することを含む。ＴＬＶエレメントは、ＯＳＰＦプロトコルを使用して送信される。ＭＳＤ値は、第１のネットワークエレメントが受信パケットのパケットヘッダの中にプッシュすることができるＳＩＤラベルの最大数を識別して、ＳＲネットワークを通した受信パケットの転送を可能にする。動作はまた、ＭＳＤ値に基づいて、１つまたは複数のＳＩＤラベルの組を含む識別可能なトラフィックの組について、複数のネットワークエレメントのうちの第１のネットワークエレメントから第２のネットワークエレメントへのパスを決定することを含む。ＳＩＤラベルの組におけるＳＩＤラベルの数は、必然的にＭＳＤ値よりも少ない、またはＭＳＤ値に等しい。動作はまた、ＳＲネットワークを通して受信パケットを転送するためにネットワークエレメントによって利用されることになるパスについてのデータを、第１のネットワークエレメントに送信することを含む。データは、識別可能なトラフィックの組の受信パケットの中にプッシュされることになるＳＩＤラベルの組を含む。コントローラおよび第１のネットワークエレメントは、サウスバウンドインターフェース上でＰＣＥＰを利用しない。
【００２１】
いくつかの実施形態において、システムが、ＳＲネットワークの複数のネットワークエレメントに通信可能に結合されたコントローラを含む。コントローラは、デバイスによって実装され、動作を実施するように設定されてよい。動作は、複数のネットワークエレメントのうちの第１のネットワークエレメントから、ＭＳＤ値を含むＴＬＶエレメントを受信することを含む。ＴＬＶエレメントは、ＯＳＰＦプロトコルを使用して送信される。ＭＳＤ値は、第１のネットワークエレメントが受信パケットのパケットヘッダの中にプッシュすることができるＳＩＤラベルの最大数を識別して、ＳＲネットワークを通した受信パケットの転送を可能にする。動作はまた、ＭＳＤ値に基づいて、１つまたは複数のＳＩＤラベルの組を含む識別可能なトラフィックの組について、複数のネットワークエレメントのうちの第１のネットワークエレメントから第２のネットワークエレメントへのパスを決定することを含む。ＳＩＤラベルの組におけるＳＩＤラベルの数は、必然的にＭＳＤ値よりも少ない、またはＭＳＤ値に等しい。動作はまた、ＳＲネットワークを通して受信パケットを転送するためにネットワークエレメントによって利用されることになるパスについてのデータを、第１のネットワークエレメントに送信することを含む。データは、識別可能なトラフィックの組の受信パケットの中にプッシュされることになるＳＩＤラベルの組を含む。コントローラおよび第１のネットワークエレメントは、サウスバウンドインターフェース上でＰＣＥＰを利用しない。
【００２２】
以下の説明、および本発明の実施形態を表すために使用される添付の図面を参照することによって、本発明を最もよく理解することができる。
【図面の簡単な説明】
【００２３】
【図１】いくつかの実施形態に従って、最大ノードおよび／またはリンクセグメント識別子深度を明らかにするように設定されたＳＲ対応ネットワーク内で、通信可能に結合されたネットワークエレメントのシステムを表す高レベルブロック図である。
【図２】いくつかの実施形態に従って、最大ノードセグメント識別子深度を明らかにするために使用され得る、ＯＳＰＦノードＭＳＤ  ＴＬＶエレメント、ＯＳＰＦノードＭＳＤ  ＴＬＶを搬送するＯＳＰＦｖ２ルータ情報オペークＬＳＡ、およびＯＳＰＦノードＭＳＤ  ＴＬＶを搬送するＯＳＰＦｖ３ルータ情報オペークＬＳＡを表す図である。
【図３】いくつかの実施形態に従って、最大リンクセグメント識別子深度を明らかにするために使用され得る、ＯＳＰＦリンクＭＳＤサブＴＬＶエレメント、ＯＳＰＦリンクＭＳＤサブＴＬＶを搬送するＯＳＰＦｖ２拡張リンクＴＬＶ、およびＯＳＰＦリンクＭＳＤサブＴＬＶを搬送するＯＳＰＦｖ２リンクＴＬＶを表す図である。
【図４】いくつかの実施形態に従って、最大リンクセグメント識別子深度を明らかにするために使用され得る、図３のＯＳＰＦリンクＭＳＤサブＴＬＶを搬送するＯＳＰＦｖ３ルータ−リンクＴＬＶを表す図である。
【図５】いくつかの実施形態に従って、最大ノードセグメント識別子深度を明らかにするために使用され得る、ＩＳ−ＩＳノードＭＳＤサブＴＬＶエレメント、およびＩＳ−ＩＳノードＭＳＤサブＴＬＶを搬送するＩＳ−ＩＳルータ性能ＴＬＶを表す図である。
【図６】いくつかの実施形態に従って、最大リンクセグメント識別子深度を明らかにするために使用され得る、ＩＳ−ＩＳリンクＭＳＤサブＴＬＶエレメント、および数個のタイプのＩＳ−ＩＳ  ＴＬＶを表す図である。
【図７Ａ】いくつかの実施形態に従って、最大ノードおよび／またはリンクセグメント識別子深度を明らかにするためのフローを表す図である。
【図７Ｂ】いくつかの実施形態に従って、図７Ａのフローを実施することができるネットワークエレメントの高レベルブロック図を表す図である。
【図８Ａ】いくつかの実施形態に従って、明らかにされた最大ノードおよび／またはリンクセグメント識別子深度を利用するためのフローを表す図である。
【図８Ｂ】いくつかの実施形態に従って、図８Ａのフローを実施することができるコントローラの高レベルブロック図を表す図である。
【図９Ａ】いくつかの実施形態に従って、例示的なネットワーク内のネットワークデバイス（ＮＤ）間の接続性、ならびに３つの例示的なＮＤの実装を表す図である。
【図９Ｂ】いくつかの実施形態に従って、専用ネットワークデバイスを実装するための例示的なやり方を表す図である。
【図９Ｃ】いくつかの実施形態に従って、仮想ネットワークエレメント（ＶＮＥ）が結合され得るさまざまな例示的なやり方を表す図である。
【図９Ｄ】いくつかの実施形態に従って、ＮＤの各々の上に単一のネットワークエレメント（ＮＥ）を有するネットワークを表す図であり、この端的なアプローチ内で（従来のルータによって一般的に使用される）従来の分散型アプローチを、（ネットワーク制御とも呼ばれる）到達可能性および転送情報を維持するための集中型アプローチと対比させる図である。
【図９Ｅ】いくつかの実施形態に従って、ＮＤの各々が単一のＮＥを実装し、しかし集中型制御プレーンが、異なるＮＤにおけるＮＥの多数を仮想ネットワークの１つにおける単一のＮＥの中に（表現するように）抽象化している、単純なケースを表す図である。
【図９Ｆ】いくつかの実施形態に従って、多数のＶＮＥが異なるＮＤ上に実装され、互いに結合され、集中型制御プレーンが、これらの多数のＶＮＥが図９Ｄの仮想ネットワークのうちの１つ内で単一のＶＮＥとして見えるように、ＶＮＥを抽象化しているケースを表す図である。
【図１０】いくつかの実施形態に従って、集中型制御プレーン（ＣＣＰ）ソフトウェアを有する汎用制御プレーンデバイスを表す図である。
【発明を実施するための形態】
【００２４】
以下の説明において、論理実装、演算コード、オペランドを指定するための手段、リソースパーティショニング／共有／複製の実装、システムコンポーネントのタイプおよび相互関係、ならびに論理パーティショニング／融合を選ぶことなどの数多くの具体的詳細が、本発明のより徹底的な理解を提供するために明記される。しかしながら、そのような具体的詳細なしに本発明を実践することができることは、当業者によって認識されるであろう。他の事例において、制御構造、ゲートレベル回路、および全ソフトウェア命令のシーケンスは、本発明を曖昧にしないように詳細には示されていない。当業者は、含まれる説明により、過度の実験をせずに適切な機能性を実装することができるであろう。
【００２５】
本明細書における「一実施形態（ｏｎｅ  ｅｍｂｏｄｉｍｅｎｔ、ａｎ  ｅｍｂｏｄｉｍｅｎｔ）」、「例示的な実施形態」などへの言及は、説明される実施形態が特定の特徴、構造、または特性を含み得ることを指し示すが、あらゆる実施形態が必ずしもその特定の特徴、構造、または特性を含まなくてもよい。その上、そのような言い回しは、必ずしも同じ実施形態に言及しているのではない。さらに、特定の特徴、構造、または特性がある実施形態に関して説明されるとき、明示的に説明されているか否かにかかわらず、他の実施形態に関してそのような特徴、構造、または特性を影響させることは、当業者の知識の範囲内であるものとする。
【００２６】
角括弧付きテキストおよび破線枠のブロック（たとえば、大破線、小破線、点鎖線、および点）が、いくつかの実施形態に追加的な特徴を追加するオプションの動作を表すために本明細書で使用されることがある。しかしながら、そのような表記は、これらだけがオプションもしくはオプションの動作である、および／または一定の実施形態において実線枠のブロックはオプションではない、と意味するように取られるべきでない。
【００２７】
以下の説明および特許請求の範囲において、「結合される（ｃｏｕｐｌｅｄ）」および「接続される（ｃｏｎｎｅｃｔｅｄ）」という用語が、その派生語と共に使用されることがある。これらの用語は、互いに同義語として意図されないことを理解すべきである。「結合される」は、互いに直接物理的にまたは電気的に接触していてもいなくてもよい２つ以上のエレメントが、互いに協働する、または相互作用することを指し示すために使用される。「接続される」は、互いに結合された２つ以上のエレメント間での通信の確立を指し示すために使用される。
【００２８】
ＳＲネットワークにおいて、コントローラは、１つまたは複数のセグメント識別子（ＳＩＤ）（「ラベルスタック」とも称される）を決定することを課せられてよく、セグメント識別子は、ネットワークトラフィックにＳＲネットワークにおける特定のパスを通過することを許可するために、ネットワークエレメントによって、そのトラフィックに追加されることになる。たとえば、ネットワークエレメント（たとえば、ＳＲネットワーク区間のエッジにおけるエッジルータ）は、ＳＲネットワークにわたって転送されることになるパケットを受信し、パケットの中に挿入されることになる設定されたＳＩＤの組を決定し、ＳＩＤのラベルを追加することができる。これらのＳＩＤは、トラフィックがどのように転送されるべきかを迅速に識別するために、ＳＲネットワークにおける他のネットワークエレメントによって検査されてよい。パケットがＳＲネットワークを通して動くにつれ、これらのＳＩＤは、特定のセグメント（またはパスの区間）が完了されると、剥がされて（または「ポップされて」）よい。それに応じて、コントローラは、ＳＩＤの特定の組をトラフィックに位置付けるために、トラフィックを最初に受信するネットワークエレメントを設定して、トラフィックが適切に転送されることを保証することができる。
【００２９】
しかしながら、（ネットワークエレメントの機能性を提供する）多くのネットワークデバイスは、ハードウェアおよび／またはソフトウェアに基づいた限定を有しており、これにより、ネットワークデバイスがどのようにトラフィックを処理することができるかが限定される。たとえば、異なるネットワークデバイスは、異なる数のＳＩＤをトラフィックの中に挿入する異なる性能を有し、ネットワークデバイスの異なるコンポーネント（たとえば、ラインカード）でさえ、すなわち、単一のネットワークデバイス内でさえ、異なる数のＳＩＤをトラフィックの中に挿入する異なる性能を有することがある。たとえば、単一のネットワークデバイスが４つのラベルのみを投入することができる第１のラインカードを用いることがあり、同時にその単一のネットワークデバイスの第２のラインカードが１２のラベルを投入することがあり、また同時にその単一のネットワークデバイスの第３のラインカードが１６のラベルを投入することがある。
【００３０】
したがって、集中型コントローラ（たとえば、パス計算エレメント（ＰＣＥ）またはＳＤＮコントローラ）によってＳＲトンネルが計算されるとき、特定のノードがトラフィックの中に挿入できるものよりも深い（すなわち、大きい）ＳＩＤの組を有するパス／トンネルを、コントローラが作成しようとしないように、コントローラがそのノードの「最大ＳＩＤ深度」（すなわち、「ＭＳＤ」）を知っていることが重要である。
【００３１】
たとえば、コントローラが、６つのラベル（ＳＩＤ）の挿入を要求する一組のトラフィックのためにパスを選択する場合、トラフィックの中に３つのラベルを挿入する能力しか持たないネットワークエレメントによって、このパスを実装することはできない。そのような状況においては、ネットワーク輻輳、ドロップしたトラフィック、およびネットワーク障害を引き起こしかねない多様な問題が生じ得る。
【００３２】
それに応じて、パス計算エレメント通信プロトコル（ＰＣＥＰ）の拡張を使用する（たとえば、コントローラと、転送プレーンとしてサーブするそのネットワークエレメントとの間のサウスバウンドインターフェースを介して、おそらくはＰＣＥＰ  ＯＰＥＮメッセージ内でＴＬＶを使用する）、この問題に向けた取り組みが、ネットワークエレメントのためのＭＳＤ値をコントローラに提供することをネットワークエレメントに許可することによってなされてきた。したがって、ネットワークエレメントは、投入することができるＳＩＤの最大深度を報告することができ、コントローラは、トラフィックのためのパスを決定するときにこの最大深度を考慮に入れることができ、それにより、コントローラは、ネットワークエレメントによって挿入され得るよりも多いＳＩＤを有するパスを作成しないようにする。
【００３３】
この進展は確かに有用であるものの、ＰＣＥＰが使用されていない（または使用できない）多くの環境においてはなおも不十分であり、したがって、ネットワークエレメントは、そのＭＳＤをコントローラに報告することができない。たとえば、多くの環境において、一定のネットワークエレメント（たとえば、ＳＲトンネルのヘッドエンドにあるネットワークエレメント）は、ＰＣＥＰをサポートしていない。（加えて、この情報を提供するためのボーダーゲートウェイプロトコル（ＢＧＰ）を使用するためのいかなる取り組みも、多くの配置におけるネットワークエレメントがやはりＢＧＰをサポートしない、すなわち「話さない」ことがあるので、同様に問題となる）
【００３４】
さらに、単一のネットワークデバイスが多数のリンク上で多数の性能（たとえば、異なるラインカードからの異なる性能）を有することがある環境において、上述したＰＣＥＰアプローチは、デバイスのいくつかのコンポーネントの能力を事実上「無駄にする」。たとえば、ＰＣＥＰを使用することは、念のために、ネットワークエレメントが、そのＭＳＤ値として、そのコンポーネントの全部がサポートすることができる最も小さい／最も低いＭＳＤ性能を報告しなければならないことは明らかである。したがって、これらのコンポーネントがより大きな数のＳＩＤを投入し得るのに、そのようなＳＩＤを、コントローラが使用のためにネットワークエレメントに提供することを許可されないという理由で、そうすることができないため、これは、いかなるより大きな性能のコンポーネントの余った性能も「無駄にする」。たとえば、３つのラベルを投入できる第１のラインカードを有し、かつ１６のラベルを投入できる第２のラインカードを有するネットワークデバイスの場合、ネットワークデバイスは、３つのみのＭＳＤ値を報告し返す必要があり、したがって、コントローラは、３つのラベルのパスしかネットワークデバイスに提供することができない。すなわち、第２のラインカードがより大きなＳＩＤの組を扱うことができるという事実にもかかわらず、ネットワークデバイスが利用することができるパスをひどく限定するものと思われる。
【００３５】
それに応じて、これらの欠点を是正することができる改善された技法が望ましい。
【００３６】
本明細書で説明されるように、いくつかの実施形態において、ＯＳＰＦプロトコルまたは中間システム間（ＩＳ−ＩＳ）プロトコルなどのラベル配布プロトコル（ＬＤＰ）を使用して、ＭＳＤ値をコントローラに報告し返し、それによって、ＰＣＥＰが利用される必要性を排除することができる。その上、いくつかの実施形態において、ネットワークエレメントは、そのリンク（たとえば、ラインカード）の多数についてのＭＳＤを（コントローラに）オプションで報告することができ、それにより、ＳＩＤに対処することができるそれらのリンクのためのより長いＳＩＤの組を検討する、および／または導入することによって、コントローラにネットワークの性能をより十分に利用することを許可することができる。
【００３７】
図１は、いくつかの実施形態に従って、最大ノードおよび／またはリンクセグメント識別子深度を明らかにするように設定されたＳＲ対応ネットワーク１２０内で、通信可能に結合されたネットワークエレメント１０２Ａ〜１０２Ｆのシステム１００を表す高レベルブロック図である。このシステムは、コントローラ１０４と、ＳＲネットワーク１２０の転送プレーンとしてサーブする６つのネットワークエレメントＡ〜Ｆ（１０２Ａ〜１０２Ｆ）とを含む。この例において、コントローラ１０４と、少なくともネットワークエレメント「Ａ」１０２Ａとの間には、ＰＣＥＰチャネル１１６は存在しないものと仮定する。とりわけ、ＰＣＥＰチャネル１１６は、他のネットワークエレメントＢ〜Ｆ（１０２Ｂ〜１０２Ｆ）の間には存在しても、しなくてもよい。
【００３８】
この例において、丸印「１」によって表すように、ネットワークエレメント「Ａ」１０２Ａは、ＭＳＤ値１１２（たとえば、２）を決定し、ＭＳＤ値１１２をＴＬＶエレメント１１０内でアドバタイズする。いくつかの実施形態において、このＴＬＶエレメント１１０は、ＯＳＰＦ  ＬＳＡまたはＩＳ−ＩＳ  ＴＬＶ内などのＩＧＰアドバタイズの一部として送られる。当業者に知られているように、このアドバタイズは、ネットワークエレメント「Ａ」１０２Ａがコントローラと直接通信していないと思われるとき、多様な物理通信パスを移動することができ、代わりに、アドバタイズされたＴＬＶ１１０が、他のＩＧＰ参加ノードへと通じるそのインターフェースの１つもしくは複数（または全部）に送り出されてもよく、結局のところ、アドバタイズされたＴＬＶ１１０は、丸印「２」でコントローラ１０４に提供されてよい。
【００３９】
この時点で、コントローラ１０４は、ネットワークエレメント「Ａ」１０２Ａで最初に受信される、ＳＲネットワーク１２０を通過することになるトラフィックのためのパスを決定する際に、ネットワークエレメント「Ａ」１０２ＡのＭＳＤ値１１２を使用することができる。それに応じて、識別可能なトラフィックのグループ（たとえば、パケット１５０Ａなどの、フローまたは他の一意に識別可能なトラフィックのタイプ）のためのパスを作成しようとするとき、コントローラ１０４は、プログラムされるべき候補のパスのその検討を、ネットワークエレメント「Ａ」１０２Ａによって投入されることになるＳＩＤの同数（またはより小さな数）を要求するパスのみに限定することができる。したがって、いくつかの実施形態において、ＭＳＤ値１１２は、ＴＥ要件／制約と同様にコントローラ１０４によって処遇され、したがって、最終的に選択され得るパスの可能性を限定することができる。
【００４０】
この例において、コントローラ１０４は、丸印「３」で、ネットワークエレメント「Ａ」１０２Ａの報告されたＭＳＤ値１１２を超えないＳＩＤの数を有するパス１１４で、ネットワークエレメント「Ａ」１０２Ａをプログラムすることになる（たとえば、ＳＩＤ１５２の組などのパス情報を含むデータと共にネットワークエレメント「Ａ」１０２Ａにメッセージを送信する）。ここで、有効なパス１２２が選択され、パス１２２は、たとえば、ネットワークエレメント「Ｃ」１０２Ｃおよびネットワークエレメント「Ｅ」１０２Ｅを通過するために、１つまたは２つのＳＩＤを利用することができる。その後、トラフィック（たとえば、丸印「４」でのパケット１５０Ａ）を受信すると、ネットワークエレメント「Ａ」１０２Ａは、ＳＩＤの組を識別し、ＳＩＤの組をそのトラフィックの中に投入することができ、丸印「５」で、有効なパス１２２を使用して、トラフィック（転送されるパケット１５０Ｂ）がその宛先に向けて送られるという結果になる。
【００４１】
例証のために、図１はまた、コントローラ１０４によって検討されている可能性があるものの、報告されたＭＳＤ値１１２よりも大きなＳＩＤラベルスタック、たとえば４つのラベルを要求するという事実のために無効なパス１２４を示している。とりわけ、先行システムは、コントローラ１０４がネットワークエレメント「Ａ」１０２Ａの性能に気付いていないせいで、このパスを利用しようとしていた可能性があり、このことは、本明細書で説明される実施形態であれば回避できるネットワーク問題を招いていたことになる。
【００４２】
先に説明したように、ＭＳＤ値１１２は、ＯＳＰＦおよびＩＳ−ＩＳを含む多様なＩＧＰプロトコルを使用してアドバタイズすることができるが、これらのプロトコルに限定はされない。
【００４３】
ＯＳＰＦ
たとえば、図２は、いくつかの実施形態に従って、最大ノードセグメント識別子深度を明らかにするために使用され得る、ＯＳＰＦノードＭＳＤ  ＴＬＶエレメント１１０Ａ、ＯＳＰＦノードＭＳＤ  ＴＬＶ１１０Ａを搬送するＯＳＰＦｖ２ルータ情報オペークＬＳＡ２１０、およびＯＳＰＦノードＭＳＤ  ＴＬＶ１１０Ａを搬送するＯＳＰＦｖ３ルータ情報オペークＬＳＡ２５０を表す。
【００４４】
いくつかの実施形態において、ＯＳＰＦノードＭＳＤ  ＴＬＶ１１０Ａは、ノード（またはネットワークエレメント）レベルの粒度の「ノード」ＭＳＤ値１１２Ａをアドバタイズするために利用されてよい。多数の異なるサポートされるＳＩＤ深度が単一のネットワークエレメントに適用され得る（たとえば、ネットワークデバイスが異なる投入可能なＳＩＤ深度を持つ多数の異なるラインカードを有する）いくつかの実施形態において、ＭＳＤ値は、サポートされる多数のＳＩＤ深度のうちの最も低い値であってよい。このＯＳＰＦノードＭＳＤ  ＴＬＶ１１０Ａは、ＯＳＰＦノードＭＳＤ  ＴＬＶ１１０Ａそれ自体を識別する一意の値（たとえば、特定のシステムにおいて、または特定の標準に従って、利用されるＴＬＶの特定の組内で一意）であってよい２バイトの型の値２０２、ＴＬＶ１１０Ａの「値」部分の、すなわちノードＭＳＤ値１１２Ａの、長さを指し示す２バイトの長さ値２０４を含む。
【００４５】
いくつかの実施形態において、ノードＭＳＤ値１１２Ａは、ゼロ（「０」）から２５４の範囲で数を表現する値を含む２バイト値である。いくつかの実施形態において、ゼロの値は、送信する側のネットワークエレメントの、任意の深度のＳＩＤをプッシュする能力が不足していることを表現することができ、その他の値は、ノードによってサポートされるＳＩＤのその特定の数を表現することができる。再度、いくつかの実施形態において、（たとえば、ネットワークエレメントにおけるラインカードの異なるタイプのために）サポートされるＳＩＤ投入可能な深度の多数の異なるリンクレベル値が可能であるとき、この値は、ノードによってサポートされる最も低い値を表現することができる。とりわけ、いくつかの実施形態において、このＯＳＰＦノードＭＳＤ  ＴＬＶ１１０Ａの使用はオプションであり、したがって、ＴＬＶ１１０Ａは、アドバタイズされても、されなくてもよい。
【００４６】
しかしながら、いくつかの実施形態において、ＯＳＰＦノードＭＳＤ  ＴＬＶ１１０Ａは、インターネットエンジニアリングタスクフォース（ＩＥＴＦ）リクエストフォーコメント（ＲＦＣ）４９７０によって説明されているＯＳＰＦｖ２ルータ情報オペークＬＳＡ２１０によって搬送されてもよい。このＯＳＰＦｖ２ルータ情報オペークＬＳＡ２１０は、２バイトのリンク状態（ＬＳ）エイジ２１２フィールドと、１バイトのオプション２１４フィールドと、「９」または「１０」または「１１」の表現を搬送する１バイトと、「４」の表現（オペークタイプ値）を搬送する１バイトと、「０」の表現（オペークＩＤ値）を搬送する３バイトと、アドバタイズするルータ２１６識別子の４バイトと、ＬＳシーケンス番号２１８の４バイトと、ＬＳチェックサム２２０の２バイトと、続くＴＬＶ２２４のサイズの長さ２２２の２バイトと、この新しいノードＭＳＤ  ＴＬＶ１１０Ａを搬送することができるＴＬＶ２２４とを含むことができる。
【００４７】
同様に、いくつかの実施形態において、ＯＳＰＦノードＭＳＤ  ＴＬＶ１１０Ａは、やはりＩＥＴＦ  ＲＦＣ４９７０によって説明されているＯＳＰＦｖ３ルータ情報オペークＬＳＡ２５０によって搬送されてもよい。このＯＳＰＦｖ３ルータ情報オペークＬＳＡ２５０は、ＯＳＰＦｖ２ルータ情報オペークＬＳＡ２１０といくつかの同様の、およびいくつかの異なるフィールド／値を含み、同様に、そのＴＬＶ２２４フィールドにおいて新しいノードＭＳＤ  ＴＬＶ１１０Ａを搬送する。
【００４８】
上に示唆したように、いくつかの実施形態において、ネットワークエレメントは、ネットワークエレメントのＳＩＤ投入サイズについて異なる性能を報告することができる。図３を見てみると、いくつかの実施形態に従って、最大リンクセグメント識別子深度を明らかにするために使用され得る、ＯＳＰＦリンクＭＳＤサブＴＬＶエレメント１１０Ｂ、ＯＳＰＦリンクＭＳＤサブＴＬＶを搬送するＯＳＰＦｖ２拡張リンクＴＬＶ３０８、およびＯＳＰＦリンクＭＳＤサブＴＬＶを搬送するＯＳＰＦｖ２リンクＴＬＶ３３０の例証が提供されている。
【００４９】
いくつかの実施形態において、ネットワークエレメントは、１つまたは複数のＯＳＰＦリンクＭＳＤサブＴＬＶ１１０Ｂをアドバタイズすることができ、たとえば、ネットワークエレメントのリンクごとに１つ、アドバタイズすることができる。リンクＭＳＤサブＴＬＶ１１０Ｂは、リンクＭＳＤサブＴＬＶ１１０Ｂそれ自体を特定のコンテキスト内で識別する一意の識別子を含む２バイトの型３０２フィールド、ＴＬＶの「値」部分の、すなわちリンクＭＳＤ値１１２Ｂの、長さを指し示す２バイトの長さ値３０４を含むことができる。いくつかの実施形態において、リンクＭＳＤ値１１２Ｂは、０〜２５４の範囲における数である２バイト値であってよく、ここで、０は、任意の深度のＳＩＤをプッシュする能力が不足していることを表現し、その他の値は、その特定のリンクについてのＳＩＤのその数を表現する。
【００５０】
それに応じて、いくつかの実施形態において、ネットワークエレメントは、多数のＯＳＰＦリンクＭＳＤサブＴＬＶ１１０Ｂを使用して、異なるＭＳＤ値（すなわちリンクＭＳＤ値１１２Ｂ）をアドバタイズすることができる。
【００５１】
１つまたは複数のリンクＭＳＤサブＴＬＶ１１０Ｂを搬送するために使用され得る１つの例示的なＯＳＰＦメッセージは、ＩＥＴＦ  ＲＦＣ７６８４によって説明されているＯＳＰＦｖ２拡張リンクＴＬＶ３０８であり、ＴＬＶ３０８自体は、ＯＳＰＦｖ２拡張リンクオペークＬＳＡ内で搬送されてよい。ＯＳＰＦｖ２拡張リンクＴＬＶ３０８は、２バイトの型３１０と、２バイトの長さ３１２と、１バイトのリンクタイプ３１４と、予約済み空間の３バイトと、４バイトのリンク識別子３１８と、４バイトのリンクデータ３２０値と、ゼロ以上のサブＴＬＶ３２４とを含むことができ、サブＴＬＶ３２４で、１つまたは複数のリンクＭＳＤサブＴＬＶ１１０Ｂがオプションで搬送されてもよい。
【００５２】
同様に、いくつかの実施形態において、ネットワークエレメントは、ＩＥＴＦ  ＲＦＣ３６３０によって説明されているＯＳＰＦｖ２リンクＴＬＶ３３０を使用することができ、ＴＬＶ３３０自体は、ＴＥ  ＬＳＡによって搬送されてよい。ＯＳＰＦｖ２リンクＴＬＶ３３０は、型３３２、長さ３３４、および可変数のサブＴＬＶ３３６を含むことができ、サブＴＬＶ３３６は、リンクタイプサブＴＬＶ３３８、リンク識別子サブＴＬＶ３４０、およびオプションで、リンクＭＳＤサブＴＬＶ１１０Ｂ、ローカルインターフェースＩＰアドレス３４２、リモートインターフェースＩＰアドレス３４４、ＴＥメトリック３４６、最大帯域幅３４８、最大予約可能な帯域幅３５０、予約されていない帯域幅３５２、および／またはアドミングループ３５４値を含む。いくつかの実施形態において、各ＯＳＰＦｖ２リンクＴＬＶ３３０は、１つのみのリンクＭＳＤサブＴＬＶ１１０Ｂを搬送することができ、したがって、多数のリンクＭＳＤサブＴＬＶ１１０Ｂをアドバタイズするためには、多数のＯＳＰＦｖ２リンクＴＬＶ３３０が、（たとえば、ＴＥ  ＬＳＡ内で）ネットワークエレメントによって送られてよい。
【００５３】
加えて、図４は、いくつかの実施形態に従って、最大リンクセグメント識別子深度を明らかにするために使用され得る、図３のＯＳＰＦリンクＭＳＤサブＴＬＶを搬送するＯＳＰＦｖ３ルータ−リンクＴＬＶ４００を表す。ＯＳＰＦｖ３ルータ−リンクＴＬＶ４００は、２バイトのルータ−リンクタイプ２１０（たとえば、「１」の値を有する）と、２バイトの長さ２１２と、１バイトの型２１４と、１バイトの０の表現と、２バイトのメトリック４０２と、４バイトのインターフェース識別子４０４と、４バイトの近隣インターフェース識別子４０６と、４バイトの近隣ルータ識別子４０８と、リンクＭＳＤサブＴＬＶ１１０Ｂを搬送することができる可変量のサブＴＬＶ４１８とを含むことができる。
【００５４】
ＩＳ−ＩＳ
先に説明したように、ＰＣＥＰを使用せずに、ネットワークエレメントの最大ノードおよび／またはリンクセグメント識別子深度をコントローラに対して明らかにするために、さまざまなＩＧＰプロトコルを利用することができる。たとえば、いくつかの実施形態は、ＩＳ−ＩＳを利用する。図５は、いくつかの実施形態に従って、最大ノードセグメント識別子深度を明らかにするために使用され得る、ＩＳ−ＩＳノードＭＳＤサブＴＬＶエレメント１１０Ｃ、およびＩＳ−ＩＳノードＭＳＤサブＴＬＶを搬送するＩＳ−ＩＳルータ性能ＴＬＶ５０６を表す。
【００５５】
いくつかの実施形態において、ＩＳ−ＩＳノードＭＳＤサブＴＬＶエレメント１１０Ｃは、特定のコンテキスト内で、ＩＳ−ＩＳノードＭＳＤサブＴＬＶエレメント１１０Ｃを、ＩＳ−ＩＳノードＭＳＤサブＴＬＶエレメント１１０Ｃであるとして一意に（たとえば、特定の用法シナリオにおける全てのタイプのサブＴＬＶにわたって一意である）識別する値を搬送する、１バイトの型５０２を含む。ＩＳ−ＩＳノードＭＳＤサブＴＬＶエレメント１１０Ｃはまた、ノードＭＳＤ値１１２Ａを搬送するサブＴＬＶの「値」区間の、長さを指し示す１バイトの長さ５０４値を含むことができ、ノードＭＳＤ値１１２Ａは、いくつかの実施形態において２バイトである。
【００５６】
図２に関して提示されたノードＭＳＤ値１１２Ａと同様に、このノードＭＳＤ値１１２Ａもまた、ゼロ（「０」）から２５４の範囲で数を表現する２バイト値であってよい。いくつかの実施形態において、ゼロの値は、送信する側のネットワークエレメントの、任意の深度のＳＩＤをプッシュする／投入する能力が不足していることを表現することができ、その他の値は、ノードによってプッシュされ得る／投入され得るその特定の数のＳＩＤを表現することができる。再度、いくつかの実施形態において、（たとえば、ネットワークエレメントにおける異なるタイプのラインカードのために）サポートされるＳＩＤ投入可能な深度の多数の異なるリンクレベル値が可能であるとき、この値は、ノードによってサポートされる最も低い値を表現することができる。
【００５７】
ＩＳ−ＩＳを利用するシステムにおいて、ＩＳ−ＩＳノードＭＳＤサブＴＬＶエレメント１１０Ｃは、たとえば、ＩＥＴＦ  ＲＦＣ４９７１によって規定されるように、ＩＳ−ＩＳルータ性能ＴＬＶ５０６を使用してアドバタイズされてよい。いくつかの実施形態において、このＩＳ−ＩＳルータ性能ＴＬＶ５０６は、１バイトの型５０８と、１バイトの長さ５１０値と、可変長の「値」５１２区間とを含む。いくつかの実施形態において、可変長の値５１２区間は、４バイトのルータ識別子５１４と、フラグ５１６の１バイトと、（オプションで）ＩＳ−ＩＳノードＭＳＤサブＴＬＶエレメント１１０Ｃを搬送することができる可変量のサブＴＬＶ３２４とを含むことができる。
【００５８】
ＯＳＰＦでのように、リンクレベルＭＳＤ値が、ＩＳ−ＩＳを利用するシステムにおいて同様にアドバタイズされてもよい。図６は、いくつかの実施形態に従って、最大リンクセグメント識別子深度を明らかにするために使用され得る、ＩＳ−ＩＳリンクＭＳＤサブＴＬＶエレメント１１０Ｄ、および数個のタイプのＩＳ−ＩＳ  ＴＬＶ（６０６／６３０）を表す。
【００５９】
いくつかの実施形態において、新しいＩＳ−ＩＳリンクＭＳＤサブＴＬＶ１１０Ｄが、リンク毎のＭＳＤ値を搬送するために使用されてよい。たとえば、ＩＳ−ＩＳリンクＭＳＤサブＴＬＶ１１０Ｄは、このサブＴＬＶの型を一意に識別する１バイトの型６０２、２バイトのリンクＭＳＤ値１１２ＢであるサブＴＬＶの「値」区間の、１バイトの長さ６０４値を含むことができる。
【００６０】
ＩＳ−ＩＳリンクＭＳＤサブＴＬＶ１１０Ｄは、使用のコンテキストに応じて、多様な異なるＩＳ−ＩＳ  ＴＬＶによって搬送されてよい。たとえば、１つまたは複数のＩＳ−ＩＳリンクＭＳＤサブＴＬＶ１１０Ｄは、ＩＥＴＦ  ＲＦＣ５０３５によって説明されているようにＩＳ−ＩＳ「型２２」拡張ＩＳ到達可能性ＴＬＶ６０６Ａによって、またはＩＥＴＦ  ＲＦＣ５３１１によって説明されているようにＩＳ−ＩＳ「型２３」ＩＳ近隣属性ＴＬＶ６０６Ｂによって搬送されてもよい。
【００６１】
これらのＴＬＶ６０６Ａ〜６０６Ｂは、１バイトの（「２２」または「２３」の）型６０８と、ＴＬＶの「値」、すなわち７バイトのシステムＩＤおよび擬似ノード番号６１２の、１バイトの長さ６１０と、３バイトのデフォルトメトリック６１４と、１バイトのサブＴＬＶ長さ６１６と、１つまたは複数のＩＳ−ＩＳリンクＭＳＤサブＴＬＶ１１０Ｄを含むことができる可変数のサブＴＬＶとを含むことができる。
【００６２】
同様に、ＩＳ−ＩＳリンクＭＳＤサブＴＬＶ１１０Ｄは、ＩＥＴＦ  ＲＦＣ５１２０によって説明されているように「型２２２」ＩＳ−ＩＳマルチ−トポロジ（ＭＴ）ＩＳ  ＴＬＶ６３０Ａによって、またはＩＥＴＦ  ＲＦＣ５３１１によって説明されているように「型２２３」ＩＳ−ＩＳ  ＭＴ  ＩＳ近隣属性ＴＬＶ６３０Ｂにおいて搬送されてもよい。これらのＴＬＶ６３０Ａ〜６３０Ｂは、１バイトの（「２２２」または「２２３」の）型６３２と、１バイトの長さ６３４と、予約済み４ビットと、ＭＴ識別子６３６の１２ビットと、ＴＬＶ６０６（たとえば、上に表すＩＳ−ＩＳ拡張ＩＳ到達可能性ＴＬＶ６０６Ａ）とを含むことができる。
【００６３】
いくつかの実施形態において、特定のリンクについて１つのみのＩＳ−ＩＳリンクＭＳＤサブＴＬＶ１１０Ｄが存在する。いくつかの実施形態において、１つのみのＩＳ−ＩＳリンクＭＳＤサブＴＬＶ１１０Ｄが、特定のＴＬＶ（たとえば、上で説明したような型２２／２３／２２２／２２３ＴＬＶ）によって搬送されるが、いくつかの実施形態においては、多数の、すなわち多数のリンクについての、ＩＳ−ＩＳリンクＭＳＤサブＴＬＶ１１０Ｄが、これらのＴＬＶ（たとえば、型２２／２３／２２２／２２３）のうちのただ１つの中に詰め込まれてもよい。
【００６４】
フローおよびシステムコンポーネント
図７Ａは、いくつかの実施形態に従って、最大ノードおよび／またはリンクセグメント識別子深度を明らかにするためのフロー７００を表す。このフロー図および図８Ａのフロー図における動作を、他の図の例示的な実施形態を参照して説明する。しかしながら、フロー図の動作が、他の図を参照して議論される以外の実施形態によって実施されてもよく、これらの他の図を参照して議論される実施形態が、フロー図を参照して議論されるのとは異なる動作を実施してもよいことを理解すべきである。とはいえ、いくつかの実施形態において、フロー７００は、ＳＲ対応ネットワーク１２０のエッジで「エッジ」ルータとして働くことができる／ＳＲトンネル／パスの「ヘッド」エンドとして働くことができる、ネットワークエレメント「Ａ」１０２Ａなどの、図１のネットワークエレメントによって実施されてよい。
【００６５】
ブロック７０５で、フロー７００は、ＭＳＤ値を含むＴＬＶエレメントを送信することを含む。この送信は、ＳＲネットワークにおけるネットワークエレメントによって実施されてよく、ＳＲネットワークにおける他のネットワークエレメントへと通じるそのリンクのうちの１つもしくは複数（または全部）に送り出されてよい。ＭＳＤ値は、ネットワークエレメントが受信パケットのパケットヘッダの中にプッシュすることができるＳＩＤラベルの最大数を識別して、ＳＲネットワークを通した受信パケットの転送を可能にする。いくつかの実施形態において、ＴＬＶエレメントは、サブＴＬＶであり、いくつかの実施形態においては、ＴＬＶエレメントは、「レギュラー」ＴＬＶエレメントである。
【００６６】
いくつかの実施形態において、ＴＬＶエレメントは、ＯＳＰＦアドバタイズの一部（たとえば、ＬＳＡ）であり、いくつかの実施形態においては、ＴＬＶエレメントは、ＩＳ−ＩＳアドバタイズの一部（たとえば、ＴＬＶ）である。ＴＬＶエレメントは、直接的または間接的に（たとえば、他のネットワークエレメントを介して）、最終的にはコントローラに提供されてよい。
【００６７】
さまざまな実施形態において、ＴＬＶエレメントは、ＯＳＰＦｖ２ルータ情報オペークＬＳＡ２１０、ＯＳＰＦｖ３ルータ情報オペークＬＳＡ２５０、ＯＳＰＦｖ２拡張リンクＴＬＶ３０８、ＯＳＰＦｖ２リンクＴＬＶ３３０、ＯＳＰＦｖ３ルータ−リンクＴＬＶ４００、ＩＳ−ＩＳルータ性能ＴＬＶ５０６、ＩＳ−ＩＳ「型２２」拡張ＩＳ到達可能性ＴＬＶ６０６Ａ、ＩＳ−ＩＳ「型２３」ＩＳ近隣属性ＴＬＶ６０６Ｂ、「型２２２」ＩＳ−ＩＳマルチ−トポロジ（ＭＴ）ＩＳ  ＴＬＶ６３０Ａ、および／または「型２２３」ＩＳ−ＩＳ  ＭＴ  ＩＳ近隣属性ＴＬＶ６３０Ｂによって搬送されてよい。
【００６８】
ブロック７１０で、フロー７００はまた、ＳＲネットワークを通して受信パケットを転送するために利用されることになるパスについてのデータを、コントローラから受信することを含む。データは、パスに関連付けられた任意の受信パケットの中にプッシュされることになる１つまたは複数のＳＩＤラベルの組を含む。とりわけ、ＳＩＤラベルの組は、ブロック７０５で最初に送信されたＭＳＤ値よりも少ない、またはＭＳＤ値に等しい数のＳＩＤラベルを含む。
【００６９】
オプションとして、ブロック７１５、７２０、７２５で、フロー７００は、１つまたは複数のパケット（たとえば、ブロック７１０に関して説明されたパスに関連付けられていてよい）を受信すること、変更パケットをもたらすために、１つまたは複数のラベルの組（たとえば、ＳＩＤの組）を受信パケットの中にプッシュすること、およびパスに従って変更パケットを送信することを含むことができる。
【００７０】
図７Ｂは、いくつかの実施形態に従って、図７Ａのフロー７００を実施することができるネットワークエレメント１０２Ａの高レベルブロック図７５０を表す。
【００７１】
本明細書で図示された各モジュールを物理的に別々のユニットとして実装することは、厳密には必要ではない。いくつかまたは全部のモジュールを１つの物理ユニットに組み合わせてもよい。また、モジュールは、厳密にハードウェアで実装される必要はない。ハードウェアとソフトウェアとの組合せを通して、ユニットを実装してもよいことが想定される。たとえば、電子デバイス７５２は、モジュールの機能を実施するために、非一時的なストレージ媒体またはファームウェアに記憶されたプログラム命令を実行する１つまたは複数の中央処理ユニットを含むことができる。
【００７２】
電子デバイス７５２は、ネットワークエレメント１０２Ａを実装し、送信モジュール７５４と、受信モジュール７５６とを含むことができる。
【００７３】
送信モジュール７５４は、ＭＳＤ値を含むＴＬＶエレメントを送信するように適合されてよく、ここでＭＳＤ値は、ネットワークエレメントが受信パケットのパケットヘッダの中にプッシュすることができるＳＩＤラベルの最大数を識別して、ＳＲネットワークを通した受信パケットの転送を可能にする。ＴＬＶエレメントは、ＯＳＰＦプロトコルを利用して送信されてよい。いくつかの実施形態において、送信モジュール７５４は、図７Ａのフロー７００のブロック７０５を実施することができる。
【００７４】
受信モジュール７５６は、ＳＲネットワークを通して受信パケットを転送するために利用されることになるパスについてのデータを、コントローラから受信するように適合されてよく、ここでデータは、パスに関連付けられた受信パケットの中にプッシュされることになる１つまたは複数のＳＩＤラベルの組を含み、ＳＩＤラベルの組は、ＭＳＤ値よりも少数の、またはＭＳＤ値に等しい数のＳＩＤラベルを有する。いくつかの実施形態において、受信モジュール７５６は、図７Ａのフロー７００のブロック７１０を実施することができる。
【００７５】
いくつかの実施形態において、電子デバイス７５２は、図７Ａのフロー７００のブロック７１５、７２０、および／または７２５を実施するための１つもしくは複数のモジュールなどの、表されていない他のモジュールを含むことができ、場合により、本明細書で開示される他の動作を実施するための、表されていない他のモジュールを含むことができる。したがって、図示された実施形態は、例証であり、限定するものではない。
【００７６】
図８Ａは、いくつかの実施形態に従って、明らかにされた最大ノードおよび／またはリンクセグメント識別子深度を利用するためのフロー８００を表す。いくつかの実施形態において、フロー８００は、図１のコントローラ１０４などのコントローラによって実施されてよい。
【００７７】
ブロック８０５で、フロー８００は、ＳＲネットワークの複数のネットワークエレメントのうちの第１のネットワークエレメントから、ＭＳＤ値を含むＴＬＶエレメントを受信することを含む。ＭＳＤ値は、第１のネットワークエレメントが受信パケットのパケットヘッダの中にプッシュすることができるＳＩＤラベルの最大数を識別して、ＳＲネットワークを通した受信パケットの転送を可能にする。
【００７８】
いくつかの実施形態において、ＴＬＶエレメントは、ＯＳＰＦアドバタイズの一部（たとえば、ＬＳＡ）であり、いくつかの実施形態においては、ＴＬＶエレメントは、ＩＳ−ＩＳアドバタイズの一部（たとえば、ＴＬＶ）である。ＴＬＶエレメントは、直接的または間接的に（たとえば、他のネットワークエレメントを介して）、発信するネットワークエレメントからコントローラに提供されてよい。
【００７９】
いくつかの実施形態において、ＴＬＶエレメントは、サブＴＬＶであり、いくつかの実施形態においては、ＴＬＶエレメントは、「レギュラー」ＴＬＶエレメントである。
【００８０】
さまざまな実施形態において、ＴＬＶエレメントは、ＯＳＰＦｖ２ルータ情報オペークＬＳＡ２１０、ＯＳＰＦｖ３ルータ情報オペークＬＳＡ２５０、ＯＳＰＦｖ２拡張リンクＴＬＶ３０８、ＯＳＰＦｖ２リンクＴＬＶ３３０、ＯＳＰＦｖ３ルータ−リンクＴＬＶ４００、ＩＳ−ＩＳルータ性能ＴＬＶ５０６、ＩＳ−ＩＳ「型２２」拡張ＩＳ到達可能性ＴＬＶ６０６Ａ、ＩＳ−ＩＳ「タイプ２３」ＩＳ近隣属性ＴＬＶ６０６Ｂ、「型２２２」ＩＳ−ＩＳマルチ−トポロジ（ＭＴ）ＩＳ  ＴＬＶ６３０Ａ、および／または「型２２３」ＩＳ−ＩＳ  ＭＴ  ＩＳ近隣属性ＴＬＶ６３０Ｂによって搬送されてよい。
【００８１】
ブロック８１０で、フロー８００は、ＭＳＤ値に基づいて、識別可能なトラフィックの組について、複数のネットワークエレメントのうちの第１のネットワークエレメントから第２のネットワークエレメントへのパスを決定することを含む。パスは、１つまたは複数のＳＩＤラベルの組によって表現されてよい。セグメント識別子ラベルの組におけるＳＩＤラベルの数は、必然的にブロック８０５で受信したＭＳＤ値よりも少ない、またはＭＳＤ値に等しい。
【００８２】
いくつかの実施形態において、ブロック８１０は、いかなる選択されたパスもＭＳＤ値を超える対応する数のＳＩＤを有することがないように、受信したＭＳＤ値を制約として使用してパス発見プロセスを実施することを含む。たとえば、いくつかの実施形態において、ブロック８１０は、パスの候補の組を識別することと、第１のネットワークエレメントによって報告されたＭＳＤ値を超える、（たとえば、第１のネットワークエレメントによって）トラフィックの中にプッシュされることになるＳＩＤの数を、パスが要求することになるという決定に基づいて、候補のパスのうちの１つまたは複数を検討から排除することとを含む。
【００８３】
ＭＳＤ値が第１のネットワークエレメントの第１のリンクについての「リンク」ＭＳＤ値である実施形態において、ブロック８０５はまた、第１のネットワークエレメントの１つまたは複数の追加リンクについての１つまたは複数の追加のＭＳＤ値を受信することを含んでもよい。このケースにおいて、それらのさまざまなリンクを使用するパスを識別しようとするときに、さまざまなリンクのＭＳＤ性能を検討することができるように、ブロック８１０の決定は、これらのＭＳＤ値のうちの１つまたは複数に基づくことができる。
【００８４】
ブロック８１５で、フロー８００は、ＳＲネットワークを通して受信パケットを転送するためにネットワークエレメントによって利用されることになるパスについてのデータを、第１のネットワークエレメントに送信することを含む。データは、識別可能なトラフィックの組の受信パケットの中にプッシュされることになるＳＩＤラベルの組を含む。
【００８５】
図８Ｂは、いくつかの実施形態に従って、図８Ａのフロー８００を実施することができるコントローラ１０４の高レベルブロック図８５０を表す。
【００８６】
本明細書で図示された各モジュールを物理的に別々のユニットとして実装することは、厳密には必要ではない。いくつかまたは全部のモジュールを１つの物理ユニットに組み合わせてもよい。また、モジュールは、厳密にハードウェアで実装される必要はない。ハードウェアとソフトウェアとの組合せを通して、ユニットを実装してもよいことが想定される。たとえば、電子デバイス８５２は、モジュールの機能を実施するために、非一時的なストレージ媒体またはファームウェアに記憶されたプログラム命令を実行する１つまたは複数の中央処理ユニットを含むことができる。
【００８７】
電子デバイス８５２は、受信モジュール８５４、決定モジュール８５６、および／または送信モジュール８５８を含むことができるコントローラ１０４を実装することができる。
【００８８】
受信モジュール８５４は、セグメントルーティングネットワークの複数のネットワークエレメントのうちの第１のネットワークエレメントから、ＭＳＤ値を含むＴＬＶエレメントを受信するように適合されてよく、ＭＳＤ値は、第１のネットワークエレメントが受信パケットのパケットヘッダの中にプッシュすることができるＳＩＤラベルの最大数を識別して、ＳＲネットワークを通した受信パケットの転送を可能にする。ＴＬＶエレメントは、ＯＳＰＦプロトコルを利用して送られてよい。いくつかの実施形態において、受信モジュール８５４は、図８Ａのフロー８００のブロック８０５を実施することができる。
【００８９】
決定モジュール８５６は、ＭＳＤ値に基づいて、１つまたは複数のＳＩＤラベルの組を含む識別可能なトラフィックの組について、複数のネットワークエレメントのうちの第１のネットワークエレメントから第２のネットワークエレメントへのパスを決定するように適合されてよく、ＳＩＤラベルの組におけるＳＩＤラベルの数は、ＭＳＤ値よりも少ない、またはＭＳＤ値に等しい。いくつかの実施形態において、決定モジュール８５６は、図８Ａのフロー８００のブロック８１０を実施することができる。
【００９０】
送信モジュール８５８は、ＳＲネットワークを通して受信パケットを転送するためにネットワークエレメントによって利用されることになるパスについてのデータを、第１のネットワークエレメントに送信するように適合されてよく、ここでデータは、識別可能なトラフィックの組の受信パケットの中にプッシュされることになるＳＩＤラベルの組を含む。いくつかの実施形態において、送信モジュール８５８は、図８Ａのフロー８００のブロック８１５を実施することができる。
【００９１】
いくつかの実施形態において、コントローラ１０４は、本明細書で開示される他の動作を実施するための、表されていない他のモジュールを含むことができる。したがって、図示された実施形態は、例証であり、限定するものではない。
【００９２】
上で説明したように、いくつかの実施形態は、電子デバイスを利用する。電子デバイスは、マシン可読ストレージ媒体（たとえば、磁気ディスク、光学ディスク、読み出し専用メモリ（ＲＯＭ）、フラッシュメモリデバイス、相変化メモリ）、およびマシン可読伝送媒体（搬送体とも呼ばれる）（たとえば、電気、光、無線、音響信号、または搬送波、赤外線信号などの他の形態の伝播信号）などの、マシン可読媒体（コンピュータ可読媒体とも呼ばれる）を使用して、コード（たとえば、ソフトウェア命令からなり、時にコンピュータプログラムコードもしくはコンピュータプログラムと称される）および／またはデータを、（内部的に、および／またはネットワーク上で他の電子デバイスを用いて）記憶および／または送信することができる。したがって、多くの電子デバイス（たとえば、コンピュータまたは「コンピューティングデバイス」）は、プロセッサの組で実行するためのコードを記憶する、および／またはデータを記憶するために、１つまたは複数のマシン可読ストレージ媒体に結合された１つまたは複数のプロセッサの組などの、ハードウェアおよびソフトウェアを含むことができる。
【００９３】
たとえば、不揮発性メモリは、電子デバイスがオフにされるとき（電源が取り外されるとき）でもコード／データを持続することができるので、電子デバイスは、コードを収容する不揮発性メモリを含むことができる。電子デバイスがオンにされている間、その電子デバイスのプロセッサによって実行されることになるコードのその部分は、通常、より低速の不揮発性メモリから、その電子デバイスの揮発性メモリ（たとえば、動的ランダムアクセスメモリ（ＤＲＡＭ）、静的ランダムアクセスメモリ（ＳＲＡＭ））の中にコピーされる。多くの電子デバイスはまた、（伝播する信号を使用してコードおよび／またはデータを送信および／または受信するために）ネットワーク接続を確立する、または別のやり方で他の電子デバイスと通信するために、１つまたは複数の物理ネットワークインターフェースの組を含む。本明細書で説明されるさまざまな実施形態の１つまたは複数の部分は、ソフトウェア、ファームウェア、および／またはハードウェアの異なる組合せを使用して実装されてよい。
【００９４】
ネットワークデバイス（ＮＤ）は、１つまたは複数のネットワークにおいて、他の電子デバイス（たとえば、他のネットワークデバイス、エンドユーザデバイス）を通信可能に相互接続する電子デバイスである。いくつかのネットワークデバイスは、多数のネットワーキング機能（たとえば、ルーティング、ブリッジング、スイッチング、レイヤ２アグリゲーション、セッションボーダー制御、サービス品質、および／もしくはサブスクライバ管理）のためのサポートを提供する、ならびに／または、多数のアプリケーションサービス（たとえば、データ、ボイス、およびビデオ）のためのサポートを提供する「多数サービスのネットワークデバイス」である。
【００９５】
図９Ａは、いくつかの実施形態に従って、例示的なネットワーク内のネットワークデバイス（ＮＤ）間の接続性、ならびに３つの例示的なＮＤの実装を表す。図９Ａは、ＮＤ９００Ａ〜９００Ｈを示し、９００Ａ〜９００Ｂ、９００Ｂ〜９００Ｃ、９００Ｃ〜９００Ｄ、９００Ｄ〜９００Ｅ、９００Ｅ〜９００Ｆ、９００Ｆ〜９００Ｇ、および９００Ａ〜９００Ｇの間の、ならびに９００Ｈと、９００Ａ、９００Ｃ、９００Ｄ、および９００Ｇの各々との間のそれらの接続性を線として示す。これらのＮＤは、物理デバイスであり、これらのＮＤ間の接続性は、ワイヤレスであってもワイヤードであってもよい（しばしばリンクと称される）。ＮＤ９００Ａ、９００Ｅ、および９００Ｆから延びる（かつ終点で終わるように表していない）追加の線は、これらのＮＤがネットワークのための入口ポイントおよび出口ポイントとして働くことを表し、したがって、これらのＮＤは、時に「エッジ」ＮＤと称され、一方他のＮＤは、「コア」ＮＤと呼ばれてもよい。
【００９６】
図９Ａにおける例示的なＮＤ実装のうちの２つは、１）カスタム特定用途向け集積回路（ＡＳＩＣ）と専用オペレーティングシステム（ＯＳ）とを含むことができる専用ネットワークデバイス９０２、および、２）コモンオフザシェルフ（ＣＯＴＳ）コンポーネント（たとえば、プロセッサ）と潜在的に「標準の」ＯＳとを使用することができる汎用ネットワークデバイス９０４である。
【００９７】
専用ネットワークデバイス９０２は、ネットワーキングハードウェア９１０を含み、ネットワーキングハードウェア９１０は、計算リソース９１２（通常、１つまたは複数のプロセッサの組を含む）、転送リソース９１４（通常、１つまたは複数のＡＳＩＣおよび／またはネットワークプロセッサを含む）、および物理ネットワークインターフェース（ＮＩ）９１６（時に物理ポートと呼ばれる）、ならびにネットワーキングソフトウェア９２０をその中に記憶した非一時的なマシン可読ストレージ媒体９１８を備える。
【００９８】
いくつかの実施形態において、ネットワーキングソフトウェア９２０は、ＭＳＤアドバタイズモジュール９３３Ａを実装するために有用なＭＳＤアドバタイズモジュールコード９９０Ａを含むことができ、ＭＳＤアドバタイズモジュール９３３Ａは、図７のフロー７００の動作、およびこの説明全体を通して議論される動作を含む、本明細書で開示される動作を実施することができる。たとえば、ＭＳＤアドバタイズモジュール９３３Ａは、本明細書で説明されるようにＭＳＤ値を送信するように設定された、ＯＳＰＦおよび／またはＩＳ−ＩＳルーティングエンジンのインスタンスを備えることができる。これらのＭＳＤ値は、たとえば、物理ネットワークインターフェース９１６の性能に基づいて決定されてよい。
【００９９】
物理ＮＩは、ＮＤ９００Ａ〜９００Ｈの間の接続性によって示されるようなネットワーク接続が、（たとえば、ワイヤレスネットワークインターフェースコントローラ（ＷＮＩＣ）を通してワイヤレスで、またはネットワークインターフェースコントローラ（ＮＩＣ）に接続された物理ポートにケーブルを差し込むことによって）そこを通して行われる、ＮＤにおけるハードウェアである。
【０１００】
動作中、ネットワーキングソフトウェア９２０は、ネットワーキングハードウェア９１０によって実行されて、１つまたは複数のネットワーキングソフトウェアインスタンス９２２の組をインスタンス化することができる。ネットワーキングソフトウェアインスタンス９２２の各々、およびそのネットワーキングソフトウェアインスタンスを実行するネットワーキングハードウェア９１０のその部分（そのネットワーキングソフトウェアインスタンスに専用のハードウェアであれ、および／またはネットワーキングソフトウェアインスタンス９２２の他のインスタンスと共にそのネットワーキングソフトウェアインスタンスによって一時的に共有されるハードウェアのタイムスライスであれ）は、（別々の）仮想ネットワークエレメント９３０Ａ〜９３０Ｒを形成することができる。仮想ネットワークエレメント（ＶＮＥ）９３０Ａ〜９３０Ｒの各々は、制御通信および設定モジュール９３２Ａ〜９３２Ｒ（時にローカル制御モジュールまたは制御通信モジュールと称される）、および転送テーブル９３４Ａ〜９３４Ｒを含み、それにより、所与の仮想ネットワークエレメント（たとえば、９３０Ａ）は、制御通信および設定モジュール（たとえば、９３２Ａ）、１つまたは複数の転送テーブルの組（たとえば、９３４Ａ）、ならびに仮想ネットワークエレメント（たとえば、９３０Ａ）を実行するネットワーキングハードウェア９１０のその区間を含む。
【０１０１】
いくつかの実施形態において、仮想ネットワークエレメント（ＶＮＥ）９３０Ａ〜９３０Ｒの制御通信および設定モジュール（たとえば、９３２Ａ）のうちの１つまたは複数は、ＭＳＤアドバタイズモジュールコード９９０Ａの実行によって、インスタンス化される、または実装されるＭＳＤアドバタイズモジュール９３３Ａを含むことができる。
【０１０２】
専用ネットワークデバイス９０２は、しばしば、物理的におよび／または論理的に、１）制御通信および設定モジュール９３２Ａ〜９３２Ｒを実行する計算リソース９１２を備えるＮＤ制御プレーン９２４（時に制御プレーンと称される）と、２）転送テーブル９３４Ａ〜９３４Ｒおよび物理ＮＩ９１６を利用する転送リソース９１４を備えるＮＤ転送プレーン９２６（時に転送プレーン、データプレーン、または媒体プレーンと称される）とを含むと考えられる。例として、ＮＤがルータである（またはルーティング機能性を実装している）場合、ＮＤ制御プレーン９２４（制御通信および設定モジュール９３２Ａ〜９３２Ｒを実行する計算リソース９１２）は、通常、どのようにデータ（たとえば、パケット）をルーティングすべきか（たとえば、データの次ホップおよびそのデータのための送出物理ＮＩ）の制御に関与することと、そのルーティング情報を転送テーブル９３４Ａ〜９３４Ｒに記憶することとを担当し、ＮＤ転送プレーン９２６は、物理ＮＩ９１６上でそのデータを受信することと、転送テーブル９３４Ａ〜９３４Ｒに基づいて、物理ＮＩ９１６のうちの適切な１つにそのデータを転送することとを担当する。
【０１０３】
図９Ｂは、いくつかの実施形態に従って、専用ネットワークデバイス９０２を実装するための例示的なやり方９３７を表す。図９Ｂは、（通常、ホットプラグ可能な）カード９３８を含む専用ネットワークデバイスを表す。いくつかの実施形態において、カード９３８は、２つのタイプのカード（ＮＤ転送プレーン９２６として動作する１つまたは複数（時にラインカードと呼ばれる）、およびＮＤ制御プレーン９２４を実装するように動作する１つまたは複数（時に制御カードと呼ばれる））であるが、代替実施形態は、単一のカード上に機能性を組み合わせても、および／または、追加のカードタイプを含んでもよい（たとえば、ある追加のタイプのカードは、サービスカード、リソースカード、またはマルチアプリケーションカードと呼ばれる）。サービスカードは、特化した処理（たとえば、レイヤ４からレイヤ７のサービス（たとえば、ファイヤーウォール、インターネットプロトコルセキュリティ（ＩＰＳｅｃ）、セキュアソケットレイヤ（ＳＳＬ）／トランスポートレイヤセキュリティ（ＴＬＳ）、侵入検出システム（ＩＤＳ）、ピアツーピア（Ｐ２Ｐ）、ボイスオーバＩＰ（ＶｏＩＰ）セッションボーダーコントローラ、モバイルワイヤレスゲートウェイ（ゲートウェイ汎用パケット無線サービス（ＧＰＲＳ）サポートノード（ＧＧＳＮ）、エボルブドパケットコア（ＥＰＣ）ゲートウェイ））を提供することができる。例として、サービスカードは、ＩＰｓｅｃトンネルを終端し、付随する認証および暗号化アルゴリズムを実行するために使用されてもよい。これらのカードは、バックプレーン９３６として表す１つまたは複数の相互接続メカニズム（たとえば、ラインカードを結合する第１のフルメッシュ、およびカードの全部を結合する第２のフルメッシュ）を通して、一緒に結合される。
【０１０４】
本明細書で開示される実施形態のコンテキスト内で、カード９３８は、トラフィックの中に投入することができるＳＩＤの異なる深度を潜在的に有することができ、したがって、異なるＭＳＤ値を有することができる。たとえば、いくつかの一般的な配置シナリオにおいて、カード９３８は、異なるベンダによって製造されるカードを含む、または同じ製造元からの異なるモデルであるカードを含むことができ、これらのカード９３８は、異なるＳＩＤ投入性能を有していてよい。
【０１０５】
図９Ａに戻ると、汎用ネットワークデバイス９０４は、ハードウェア９４０を含み、ハードウェア９４０は、１つまたは複数のプロセッサ９４２（しばしば、ＣＯＴＳプロセッサである）の組、およびネットワークインターフェースコントローラ９４４（ＮＩＣ；ネットワークインターフェースカードとしても知られる）（物理ＮＩ９４６を含む）、ならびに、ソフトウェア９５０をその中に記憶した非一時的なマシン可読ストレージ媒体９４８を備える。
【０１０６】
本明細書で説明される動作（たとえば、図７のフロー７００）を実施するために、ソフトウェア９５０は、アプリケーション９６４Ａ〜９６４Ｒの部分であってよいＭＳＤアドバタイズモジュール（表さず）を実装するためにプロセッサ９４２によって実行され得るＭＳＤアドバタイズモジュールコード９９０Ｂを含むことができる。それに応じて、このＭＳＤアドバタイズモジュールは、「ノード」および／または「リンク」のＭＳＤ値をアドバタイズすることができ、ＭＳＤ値は、ＮＩＣ９４４の性能に基づいて決定されてよく、かつＯＳＰＦまたはＩＳ−ＩＳなどのＩＧＰを使用してアドバタイズされてよい。
【０１０７】
動作中、プロセッサ９４２は、ソフトウェア９５０を実行して、１つまたは複数のアプリケーション９６４Ａ〜９６４Ｒの１つまたは複数の組をインスタンス化する。ある実施形態は、仮想化を実装しないが、代替実施形態は、異なる形態の仮想化を使用してもよい。たとえば、そのような１つの代替実施形態において、仮想化レイヤ９５４は、アプリケーション９６４Ａ〜９６４Ｒの組のうちの１つ（または複数）を実行するために各々使用され得るソフトウェアコンテナと呼ばれる多数のインスタンス９６２Ａ〜９６２Ｒの作成を見込んだ、オペレーティングシステムのカーネル（または基本オペレーティングシステム上で実行されるシム（ｓｈｉｍ））を表現する。ここで多数のソフトウェアコンテナ（仮想化エンジン、仮想プライベートサーバ、またはジェイル（ｊａｉｌ）とも呼ばれる）は、ユーザ空間（通常、仮想メモリ空間）であり、ユーザ空間は、互いから分離され、かつオペレーティングシステムが稼働するカーネル空間から分離されている。ここで所与のユーザ空間において稼働するアプリケーションの組は、明示的に許可されない限り、他のプロセスのメモリにアクセスすることはできない。そのような別の代替実施形態において、仮想化レイヤ９５４は、ハイパーバイザ（時に仮想マシンモニタ（ＶＭＭ）と称される）、またはホストオペレーティングシステムの上部で実行されるハイパーバイザを表現し、アプリケーション９６４Ａ〜９６４Ｒの組の各々は、ハイパーバイザの上部で稼働する仮想マシンと呼ばれるインスタンス９６２Ａ〜９６２Ｒ（いくつかのケースにおいて強固に隔離された形態のソフトウェアコンテナと考えられてよい）内のゲストオペレーティングシステムの上部で稼働する。すなわち、ゲストオペレーティングシステムおよびアプリケーションは、「ベアメタル」ホスト電子デバイス上で稼働するのとは対照的に、自身が仮想マシン上で稼働していることを知らないことがある、または、オペレーティングシステムおよび／もしくはアプリケーションは、準仮想化を通して、最適化目的のための仮想化の存在に気付くことがある。さらに他の代替実施形態においては、アプリケーションのうちの１つ、いくつか、または全部が、ユニカーネル（ｕｎｉｋｅｒｎｅｌ）として実装され、ユニカーネルは、アプリケーションによって必要とされる特定のＯＳサービスを提供する（たとえば、ＯＳサービスのドライバ／ライブラリを含むライブラリオペレーティングシステム（ＬｉｂＯＳ）からの）限定された組のライブラリのみを、アプリケーションで直接コンパイルすることによって生成されてよい。ユニカーネルは、ハードウェア９４０上で直接稼働するように、ハイパーバイザ上で直接稼働するように（このケースでは、ユニカーネルは時にＬｉｂＯＳ仮想マシン内で稼働するように記述される）、またはソフトウェアコンテナ内で稼働するように実装され得るので、実施形態を、仮想化レイヤ９５４によって表現されるハイパーバイザ上で直接稼働するユニカーネルで、インスタンス９６２Ａ〜９６２Ｒによって表現されるソフトウェアコンテナ内で稼働するユニカーネルで、またはユニカーネルと上で説明した技法との組合せ（たとえば、両方がハイパーバイザ上で直接稼働するユニカーネルと仮想マシン、異なるソフトウェアコンテナ内で稼働するユニカーネルとアプリケーションの組）として、完全に実装することができる。
【０１０８】
１つまたは複数のアプリケーション９６４Ａ〜９６４Ｒの１つまたは複数の組のインスタンス化、ならびに実装される場合の仮想化は、ソフトウェアインスタンス９５２と総称される。アプリケーション９６４Ａ〜９６４Ｒの各組、実装される場合の対応する仮想化構成体（たとえば、インスタンス９６２Ａ〜９６２Ｒ）、およびそれらを実行するハードウェア９４０のその部分（その実行に専用のハードウェアであれ、および／または一時的に共有されるハードウェアのタイムスライスであれ）は、別々の仮想ネットワークエレメント９６０Ａ〜９６０Ｒを形成する。
【０１０９】
仮想ネットワークエレメント９６０Ａ〜９６０Ｒは、仮想ネットワークエレメント９３０Ａ〜９３０Ｒと同様の機能性、たとえば、制御通信および設定モジュール９３２Ａ、ならびに転送テーブル９３４Ａと同様の機能性を実施する（ハードウェア９４０のこの仮想化は、時にネットワーク機能仮想化（ＮＦＶ）と称される）。したがって、ＮＦＶは、多くのネットワーク機器のタイプを、データセンタ、ＮＤ、および顧客構内機器（ＣＰＥ）に設置されることがある、業界標準の大容量のサーバハードウェア、物理スイッチ、および物理ストレージ上で統合するために使用されてよい。本発明の実施形態を、１つのＶＮＥ９６０Ａ〜９６０Ｒに対応する各インスタンス９６２Ａ〜９６２Ｒを用いて表すが、代替実施形態は、この対応を、より細かいレベルの粒度で（たとえば、ラインカード仮想マシンがラインカードを仮想化する、制御カード仮想マシンが制御カードを仮想化する、など）実装してもよい。インスタンス９６２Ａ〜９６２ＲのＶＮＥへの対応を参照して本明細書で説明される技法はまた、そのようなより細かいレベルの粒度および／またはユニカーネルが使用される実施形態にも適用されることを理解すべきである。
【０１１０】
一定の実施形態において、仮想化レイヤ９５４は、同様の転送サービスを物理イーサネットスイッチとして提供する仮想スイッチを含む。具体的には、この仮想スイッチは、インスタンス９６２Ａ〜９６２ＲとＮＩＣ９４４との間で、ならびにオプションで、インスタンス９６２Ａ〜９６２Ｒ間でトラフィックを転送する。加えて、この仮想スイッチは、ポリシーにより互いに通信することが許されていないＶＮＥ９６０Ａ〜９６０Ｒ間で、（たとえば、仮想ローカルエリアネットワーク（ＶＬＡＮ）を順守することによって）ネットワーク隔離を施行することができる。
【０１１１】
図９Ａにおける第３の例示的なＮＤ実装は、単一のＮＤまたはＮＤ内の単一のカードに、カスタムＡＳＩＣ／専用ＯＳと、ＣＯＴＳプロセッサ／標準ＯＳの両方を含む、ハイブリッドネットワークデバイス９０６である。そのようなハイブリッドネットワークデバイスの一定の実施形態において、プラットフォームＶＭ（すなわち、専用ネットワークデバイス９０２の機能性を実装するＶＭ）は、ハイブリッドネットワークデバイス９０６に存在するネットワーキングハードウェアに準仮想化を提供することができる。
【０１１２】
上の例示的なＮＤの実装にかかわらず、ＮＤによって実装される多数のＶＮＥのうちの単一のＶＮＥが考えられているとき（たとえば、ＶＮＥのうちの１つのみが所与の仮想ネットワークの一部である）、または単一のＶＮＥのみがＮＤによって現時点で実装されている場合、そのＶＮＥを指すために、短縮された期間のネットワークエレメント（ＮＥ）が時に使用される。また、上の例示的な実装の全てにおいて、ＶＮＥの各々（たとえば、ＶＮＥ９３０Ａ〜９３０Ｒ、ＶＮＥ９６０Ａ〜９６０Ｒ、およびハイブリッドネットワークデバイス９０６におけるＶＮＥ）は、物理ＮＩ（たとえば、９１６、９４６）上でデータを受信し、そのデータを、物理ＮＩ（たとえば、９１６、９４６）のうちの適切な１つに転送する。たとえば、ＩＰルータ機能性を実装するＶＮＥは、ＩＰパケットにおけるＩＰヘッダ情報のうちのいくつかに基づいて、ＩＰパケットを転送する。ここでＩＰヘッダ情報は、ソースＩＰアドレス、宛先ＩＰアドレス、ソースポート、宛先ポート（ここで「ソースポート」および「宛先ポート」は、ＮＤの物理ポートとは対照的に、本明細書ではプロトコルポートを指す）、トランスポートプロトコル（たとえば、ユーザデータグラムプロトコル（ＵＤＰ）、伝送制御プロトコル（ＴＣＰ））、ならびに差別化サービス（ＤＳＣＰ）の値を含む。
【０１１３】
図９Ｃは、本発明のいくつかの実施形態に従って、ＶＮＥが結合され得るさまざまな例示的なやり方を表す。図９Ｃは、ＮＤ９００Ａにおいて実装されるＶＮＥ９７０Ａ．１〜９７０Ａ．Ｐ（およびオプションでＶＮＥ９７０Ａ．Ｑ〜９７０Ａ．Ｒ）、ならびにＮＤ９００ＨにおけるＶＮＥ９７０Ｈ．１を示す。図９Ｃにおいて、ＶＮＥ９７０Ａ．１〜Ｐは、それらがＮＤ９００Ａの外からパケットを受信し、ＮＤ９００Ａの外にパケットを転送することができるという意味で、互いから分離している。ＶＮＥ９７０Ａ．１は、ＶＮＥ９７０Ｈ．１に結合されており、したがって、これらのＶＮＥは自身のそれぞれのＮＤ間でパケットを通信する。ＶＮＥ９７０Ａ．２〜９７０Ａ．３は、オプションで、パケットをＮＤ９００Ａの外に転送せずに、自身の間でパケットを転送してもよい。ＶＮＥ９７０Ａ．Ｐは、オプションで、ＶＮＥ９７０Ａ．Ｒが後に続くＶＮＥ９７０Ａ．Ｑを含むＶＮＥのチェイン（これは、時に動的サービスチェイニングと称され、ここで一連のＶＮＥにおけるＶＮＥの各々は、異なるサービス、たとえば、１つまたは複数のレイヤ４〜７のネットワークサービスを提供する）における最初のＶＮＥであってもよい。図９Ｃは、ＶＮＥ間のさまざまな例示的な関係を表しているが、代替実施形態は、他の関係（たとえば、より多くの／より少数のＶＮＥ、より多くの／より少数の動的サービスチェイン、いくつかの共通ＶＮＥおよびいくつかの異なるＶＮＥを有する多数の異なる動的サービスチェイン）をサポートしてもよい。
【０１１４】
図９ＡのＮＤは、たとえば、インターネットまたはプライベートネットワークの一部を形成することができ、他の電子デバイス（図示せず；ワークステーション、ラップトップ、ネットブック、タブレット、パームトップ、モバイルフォン、スマートフォン、ファブレット、マルチメディアフォン、ボイスオーバインターネットプロトコル（ＶｏＩＰ）フォン、端末、ポータブルメディアプレーヤ、全地球測位システム（ＧＰＳ）ユニット、ウェアラブルデバイス、ゲーミングシステム、セットトップボックス、インターネット対応家庭用電化製品を含むエンドユーザデバイスなど）は、（直接、またはアクセスネットワークなどの他のネットワークを通して）ネットワークに結合されて、ネットワーク（たとえば、インターネット、またはインターネット上に重畳された（たとえば、インターネットを通してトンネリングされた）仮想プライベートネットワーク（ＶＰＮ））上で、（直接もしくはサーバを通して）互いに、ならびに／または、アクセスコンテンツおよび／もしくはサービスと通信することができる。そのようなコンテンツおよび／またはサービスは、通常、サービス／コンテンツプロバイダに属する１つもしくは複数のサーバ（図示せず）によって、またはピアツーピア（Ｐ２Ｐ）サービスに参加する１つもしくは複数のエンドユーザデバイス（図示せず）によって提供され、たとえば、パブリックウェブページ（たとえば、無料コンテンツ、ストアフロント、検索サービス）、プライベートウェブページ（たとえば、電子メールサービスを提供する、ユーザ名／パスワードでアクセスされるウェブページ）、および／またはＶＰＮ上の企業ネットワークを含んでもよい。たとえば、エンドユーザデバイスは、エッジＮＤに（たとえば、アクセスネットワークに結合された顧客構内機器を通して（ワイヤードまたはワイヤレスで））結合されてもよく、エッジＮＤは、サーバとして働く電子デバイスに結合される他のエッジＮＤに（たとえば、１つまたは複数のコアＮＤを通して）結合される。しかしながら、計算およびストレージの仮想化を通して、図９ＡにおいてＮＤとして動作する電子デバイスのうちの１つまたは複数もまた、１つまたは複数のそのようなサーバをホストすることができ（たとえば、汎用ネットワークデバイス９０４のケースでは、ソフトウェアインスタンス９６２Ａ〜９６２Ｒのうちの１つまたは複数が、サーバとして動作してもよく、ハイブリッドネットワークデバイス９０６についても同じことが当てはまる。専用ネットワークデバイス９０２のケースでは、１つまたは複数のそのようなサーバはまた、計算リソース９１２によって実行される仮想化レイヤ上で稼働してもよい）、このケースにおいて、サーバは、そのＮＤのＶＮＥと共設されていると言われる。
【０１１５】
仮想ネットワークは、ネットワークサービス（たとえば、Ｌ２および／またはＬ３サービス）を提供する物理ネットワーク（図９Ａにあるものなど）の論理的抽象化である。仮想ネットワークは、オーバーレイネットワーク（時にネットワーク仮想化オーバーレイと称される）として実装されてよく、オーバーレイネットワークは、アンダーレイネットワーク（たとえば、トンネル（たとえば、総称ルーティングカプセル化（ＧＲＥ）、レイヤ２トンネリングプロトコル（Ｌ２ＴＰ）、ＩＰＳｅｃ）を使用してオーバーレイネットワークを作り出すＩＰネットワークなどのＬ３ネットワーク）にわたってネットワークサービス（たとえば、レイヤ２（Ｌ２、データリンクレイヤ）および／またはレイヤ３（Ｌ３、ネットワークレイヤ）サービス）を提供する。
【０１１６】
ネットワーク仮想化エッジ（ＮＶＥ）は、アンダーレイネットワークのエッジにあり、ネットワーク仮想化の実装に関与する。ＮＶＥのネットワークに面した側は、アンダーレイネットワークを使用して、他のＮＶＥへと、および他のＮＶＥからフレームをトンネルする。ＮＶＥの外向きの側は、ネットワークの外のシステムにデータを送信し、ネットワークの外のシステムからデータを受信する。仮想ネットワークインスタンス（ＶＮＩ）は、ＮＶＥ（たとえば、ＮＤ上のＮＥ／ＶＮＥ、そのＮＥ／ＶＮＥがエミュレーションを通して多数のＶＮＥに分割されているＮＤ上のＮＥ／ＶＮＥの一部）上の仮想ネットワークの固有のインスタンスである。１つまたは複数のＶＮＩが、（たとえば、ＮＤ上の異なるＶＮＥとして）ＮＶＥ上にインスタンス化されてよい。仮想アクセスポイント（ＶＡＰ）は、外部システムを仮想ネットワークに接続するためのＮＶＥ上の論理的接続ポイントである。ＶＡＰは、論理インターフェース識別子（たとえば、ＶＬＡＮ  ＩＤ）を通して識別される物理的または仮想的なポートであってよい。
【０１１７】
ネットワークサービスの例は以下を含む：１）イーサネットＬＡＮエミュレーションサービス（ＩＥＴＦ  ＭＰＬＳまたはイーサネットＶＰＮ（ＥＶＰＮ）サービスと同様のイーサネットベースのマルチポイントサービス）、ここでは外部システムが、アンダーレイネットワーク上でのＬＡＮ環境によってネットワークにわたって相互接続される（たとえば、ＮＶＥが、そのような異なる仮想ネットワークのための別々のＬ２  ＶＮＩ（仮想スイッチングインスタンス）、およびアンダーレイネットワークにわたるＬ３（たとえば、ＩＰ／ＭＰＬＳ）トンネリングカプセル化を提供する）、ならびに、２）仮想化されたＩＰ転送サービス（サービス規定の観点からはＩＥＴＦ  ＩＰ  ＶＰＮ（たとえば、ＢＧＰ／ＭＰＬＳ  ＩＰＶＰＮ）と同様）、ここでは外部システムが、アンダーレイネットワーク上でのＬ３環境によってネットワークにわたって相互接続される（たとえば、ＮＶＥが、そのような異なる仮想ネットワークのための別々のＬ３  ＶＮＩ（転送およびルーティングインスタンス）、およびアンダーレイネットワークにわたるＬ３（たとえば、ＩＰ／ＭＰＬＳ）トンネリングカプセル化を提供する）。ネットワークサービスはまた、サービス品質性能（たとえば、トラフィック分類マーキング、トラフィック調整およびスケジューリング）、セキュリティ性能（たとえば、ネットワーク発信の攻撃から顧客構内を保護し、不正形式のルート告知を回避するためのフィルタ）、ならびに管理性能（たとえば、十分な検出および処理）を含むことができる。
【０１１８】
図９Ｄは、本発明のいくつかの実施形態に従って、図９ＡのＮＤの各々の上に単一のネットワークエレメントを有するネットワークを表し、この端的なアプローチ内で（従来のルータによって一般的に使用される）従来の分散型アプローチを、（ネットワーク制御とも呼ばれる）到達可能性および転送情報を維持するための集中型アプローチと対比させる。具体的には、図９Ｄは、図９ＡのＮＤ９００Ａ〜Ｈと同じ接続性を有するネットワークエレメント（ＮＥ）９７０Ａ〜９７０Ｈを表す。
【０１１９】
図９Ｄは、分散型アプローチ９７２が、ＮＥ９７０Ａ〜９７０Ｈにわたって到達可能性および転送情報を生成することに対する責務を分散すること、言い換えると、近隣探索およびトポロジ探索のプロセスが分散されることを表す。
【０１２０】
たとえば、専用ネットワークデバイス９０２が使用されている場合、ＮＤ制御プレーン９２４の制御通信および設定モジュール９３２Ａ〜９３２Ｒは、通常、他のＮＥと通信してルートを交換し、次いで１つまたは複数のルーティングメトリックに基づいてそれらのルートを選択する１つまたは複数のルーティングプロトコル（たとえば、ＢＧＰなどの外側のゲートウェイプロトコル、インテリアゲートウェイプロトコル（ＩＧＰ）（たとえば、ＯＳＰＦ、ＩＳ−ＩＳ、ルーティング情報プロトコル（ＲＩＰ）、ＬＤＰ、リソース予約プロトコル（ＲＳＶＰ）（ＲＳＶＰ−ＴＥ：ＬＳＰトンネルのためのＲＳＶＰの拡張、および一般化マルチプロトコルラベルスイッチング（ＧＭＰＬＳ）シグナリングＲＳＶＰ−ＴＥを含む））を実装するための到達可能性および転送情報モジュールを含む。したがって、ＮＥ９７０Ａ〜９７０Ｈ（たとえば、制御通信および設定モジュール９３２Ａ〜９３２Ｒを実行する計算リソース９１２）は、ネットワーク内で到達可能性を分散的に決定し、それらのそれぞれの転送情報を計算することによって、どのようにデータ（たとえば、パケット）をルーティングすべきか（たとえば、データの次ホップおよびそのデータのための送出物理ＮＩ）の制御における関与に対してその責務を果たす。ルートおよび隣接関係は、ＮＤ制御プレーン９２４上の１つまたは複数のルーティング構造（たとえば、ルーティング情報ベース（ＲＩＢ）、ラベル情報ベース（ＬＩＢ）、１つまたは複数の隣接関係構造）に記憶される。ＮＤ制御プレーン９２４は、ルーティング構造に基づいた情報（たとえば、隣接関係およびルート情報）で、ＮＤ転送プレーン９２６をプログラムする。たとえば、ＮＤ制御プレーン９２４は、ＮＤ転送プレーン９２６上の１つまたは複数の転送テーブル９３４Ａ〜９３４Ｒ（たとえば、転送情報ベース（ＦＩＢ）、ラベル転送情報ベース（ＬＦＩＢ）、および１つまたは複数の隣接関係構造）の中に、隣接関係およびルート情報をプログラムする。レイヤ２転送の場合、ＮＤは、そのデータにおけるレイヤ２情報に基づいてデータを転送するために使用される、１つまたは複数のブリッジングテーブルを記憶することができる。上の例は、専用ネットワークデバイス９０２を使用するが、同じ分散型アプローチ９７２が、汎用ネットワークデバイス９０４およびハイブリッドネットワークデバイス９０６上で実装されてもよい。
【０１２１】
図９Ｄは、（ＳＤＮとしても知られる）集中型アプローチ９７４が、トラフィックが送られる場所についての判断を行うシステムを、選択された宛先へトラフィックを転送する基礎をなすシステムから分断することを表す。表した集中型アプローチ９７４は、集中型制御プレーン９７６（時にＳＤＮ制御モジュール、コントローラ、ネットワークコントローラ、ＯｐｅｎＦｌｏｗコントローラ、ＳＤＮコントローラ、制御プレーンノード、ネットワーク仮想化権限、または管理制御エンティティと称される）において到達可能性および転送情報の生成に対する責務を有し、したがって、近隣探索およびトポロジ探索のプロセスが集中化される。
【０１２２】
集中型制御プレーン９７６は、ＮＥ９７０Ａ〜９７０Ｈ（時にスイッチ、転送エレメント、データプレーンエレメント、またはノードと称される）を含むデータプレーン９８０（時にインフラストラクチャレイヤ、ネットワーク転送プレーン、または転送プレーン（これをＮＤ転送プレーンと混同すべきでない）と称される）を伴うサウスバウンドインターフェース９８２を有する。集中型制御プレーン９７６は、ネットワークコントローラ９７８を含み、ネットワークコントローラ９７８は、ネットワーク内の到達可能性を決定し、サウスバウンドインターフェース９８２上で転送情報をデータプレーン９８０のＮＥ９７０Ａ〜９７０Ｈへ配信する（ＯｐｅｎＦｌｏｗプロトコルを使用してよい）、集中型到達可能性および転送情報モジュール９７９を含む。したがって、ネットワークインテリジェンスは、通常、ＮＤとは別々の電子デバイス上で実行される集中型制御プレーン９７６に集中化される。
【０１２３】
いくつかの実施形態において、集中型到達可能性および転送情報モジュール９７９は、図８Ａのフロー８００の動作などの、本明細書で開示される動作を実施するように動作可能な、ＭＳＤアウェアパス選択モジュール９８１を含む。
【０１２４】
たとえば、専用ネットワークデバイス９０２がデータプレーン９８０において使用される場合、ＮＤ制御プレーン９２４の制御通信および設定モジュール９３２Ａ〜９３２Ｒの各々は、通常、サウスバウンドインターフェース９８２のＶＮＥ側を提供する制御エージェントを含む。このケースにおいて、ＮＤ制御プレーン９２４（制御通信および設定モジュール９３２Ａ〜９３２Ｒを実行する計算リソース９１２）は、集中型制御プレーン９７６と通信して、集中型到達可能性および転送情報モジュール９７９から転送情報（およびいくつかのケースでは到達可能性情報）を受信する制御エージェントを通して、どのようにデータ（たとえば、パケット）をルーティングすべきか（たとえば、データの次ホップおよびそのデータのための送出物理ＮＩ）の制御における関与に対してその責務を果たす（本発明のいくつかの実施形態において、制御通信および設定モジュール９３２Ａ〜９３２Ｒはまた、集中型制御プレーン９７６と通信することに加えて、到達可能性を決定すること、および／または転送情報を計算することにおいて、分散型アプローチのケースよりも少ないとしても、何らかの役割を果たしてもよいことを理解すべきである。そのような実施形態は、概して集中型アプローチ９７４の範疇に入ると考えられるが、ハイブリッドアプローチともまた考えられてよい）。
【０１２５】
上の例は、専用ネットワークデバイス９０２を使用しているが、同じ集中型アプローチ９７４が、汎用ネットワークデバイス９０４で実装されてもよく（たとえば、ＶＮＥ９６０Ａ〜９６０Ｒの各々が、集中型制御プレーン９７６と通信して、集中型到達可能性および転送情報モジュール９７９から転送情報（およびいくつかのケースでは到達可能性情報）を受信することによって、どのようにデータ（たとえば、パケット）をルーティングすべきか（たとえば、データの次ホップおよびそのデータのための送出物理ＮＩ）を制御することに対してその責務を果たす。本発明のいくつかの実施形態において、ＶＮＥ９６０Ａ〜９６０Ｒはまた、集中型制御プレーン９７６と通信することに加えて、到達可能性を決定すること、および／または転送情報を計算することにおいて、分散型アプローチのケースよりも少ないとしても、何らかの役割を果たしてもよいことを理解すべきである）、かつハイブリッドネットワークデバイス９０６で実装されてもよい。実際、ＮＦＶは、ＳＤＮソフトウェアがその上で稼働できるインフラストラクチャを提供することによってＳＤＮをサポートすることができ、ＮＦＶおよびＳＤＮの両方がコモディティサーバハードウェアおよび物理スイッチの活用を狙いとしているので、ＳＤＮ技法の使用は、汎用ネットワークデバイス９０４またはハイブリッドネットワークデバイス９０６の実装において通常使用されるＮＦＶ技法を高めることができる。
【０１２６】
図９Ｄはまた、集中型制御プレーン９７６が、アプリケーション９８８を常駐させるアプリケーションレイヤ９８６へのノースバウンドインターフェース９８４を有することを示す。集中型制御プレーン９７６は、アプリケーション９８８のための仮想ネットワーク９９２（時に論理転送プレーン、ネットワークサービス、または（データプレーン９８０のＮＥ９７０Ａ〜９７０Ｈがアンダーレイネットワークである状態の）オーバーレイネットワークと称される）を形成する能力を有する。したがって、集中型制御プレーン９７６は、全てのＮＤおよび設定されたＮＥ／ＶＮＥの包括的視点を維持し、仮想ネットワークを、基礎をなすＮＤに効率的にマップする（ハードウェア（ＮＤ、リンク、またはＮＤコンポーネント）の障害、追加、または取り外しのいずれかを通して物理ネットワークが変化するときに、これらのマッピングを維持することを含む）。
【０１２７】
図９Ｄは、集中型アプローチ９７４とは別々に分散型アプローチ９７２を示しているが、ネットワーク制御の取り組みは、一定の実施形態において、異なって分散されても、または２つが組み合わせられてもよい。たとえば、１）実施形態は、概して集中型アプローチ（ＳＤＮ）９７４を使用してよいが、一定の機能をＮＥに委任させてもよい（たとえば、分散型アプローチが、故障モニタリング、パフォーマンスモニタリング、保護スイッチング、ならびに近隣探索および／もしくはトポロジ探索のためのプリミティブのうちの１つもしくは複数を実装するために使用されてもよい）、または、２）本発明の実施形態が、集中型制御プレーンおよび分散型プロトコルの両方を介して近隣探索およびトポロジ探索を実施し、それらが一致しない例外を発生させるために、結果が比較されてもよい。そのような実施形態は、概して集中型アプローチ９７４の範疇に入ると考えられるが、ハイブリッドアプローチともまた考えられてよい。
【０１２８】
図９Ｄは、ＮＤ９００Ａ〜Ｈの各々が単一のＮＥ９７０Ａ〜９７０Ｈを実装する単純なケースを表しているが、図９Ｄを参照して説明したネットワーク制御のアプローチはまた、ＮＤ９００Ａ〜９００Ｈのうちの１つまたは複数が、多数のＶＮＥ（たとえば、ＶＮＥ９３０Ａ〜９３０Ｒ、ＶＮＥ９６０Ａ〜９６０Ｒ、ハイブリッドネットワークデバイス９０６におけるＶＮＥ）を実装するネットワークにも役立つことを理解すべきである。代替として、または加えて、ネットワークコントローラ９７８がまた、単一のＮＤにおける多数のＶＮＥの実装をエミュレートしてもよい。具体的には、単一のＮＤにおいて多数のＶＮＥを実装する代わりに（または、それに加えて）、ネットワークコントローラ９７８が、単一のＮＤにおけるＶＮＥ／ＮＥの実装を、仮想ネットワーク９９２における多数のＶＮＥとして（仮想ネットワーク９９２の同じ１つに全部を、仮想ネットワーク９９２の異なる１つに各々を、または何らかの組合せで）提示してもよい。たとえば、ネットワークコントローラ９７８は、ＮＤに、アンダーレイネットワークにおいて単一のＶＮＥ（ＮＥ）を実装させ、次いで集中型制御プレーン９７６内でそのＮＥのリソースを論理的に分割して、仮想ネットワーク９９２において異なるＶＮＥを提示することができる（ここで、オーバーレイネットワークにおけるこれらの異なるＶＮＥは、アンダーレイネットワークにおけるＮＤ上の単一のＶＮＥ／ＮＥ実装のリソースを共有している）。
【０１２９】
一方、図９Ｅおよび図９Ｆは、それぞれ、ネットワークコントローラ９７８が仮想ネットワーク９９２の異なる１つの部分として提示することができるＮＥおよびＶＮＥの例示的な抽象化を表す。図９Ｅは、いくつかの実施形態に従って、ＮＤ９００Ａ〜Ｈの各々が単一のＮＥ９７０Ａ〜９７０Ｈを実装し（図９Ｄを参照されたい）、しかし集中型制御プレーン９７６が、異なるＮＤにおけるＮＥの多数（ＮＥ９７０Ａ〜９７０Ｃおよび９７０Ｇ〜９７０Ｈ）を、図９Ｄの仮想ネットワーク９９２の１つにおける単一のＮＥ９７０Ｉの中に（表現するように）抽象化している、単純なケースを表す。図９Ｅは、この仮想ネットワークにおいて、ＮＥ９７０Ｉが、ＮＥ９７０Ｄおよび９７０Ｆに結合されており、その両方がさらにＮＥ９７０Ｅに結合されていることを示す。
【０１３０】
図９Ｆは、本発明のいくつかの実施形態に従って、多数のＶＮＥ（ＶＮＥ９７０Ａ．１およびＶＮＥ９７０Ｈ．１）が異なるＮＤ（ＮＤ９００ＡおよびＮＤ９００Ｈ）上に実装され、互いに結合され、集中型制御プレーン９７６が、これらの多数のＶＮＥが図９Ｄの仮想ネットワーク９９２のうちの１つ内で単一のＶＮＥ９７０Ｔとして見えるように、ＶＮＥを抽象化しているケースを表す。したがって、ＮＥまたはＶＮＥの抽象化は、多数のＮＤに及ぶことができる。
【０１３１】
いくつかの実施形態は、集中型制御プレーン９７６を単一のエンティティ（たとえば、単一の電子デバイス上で稼働するソフトウェアの単一のインスタンス）として実装するが、代替実施形態は、冗長性および／またはスケーラビリティ目的のために多数のエンティティ（たとえば、異なる電子デバイス上で稼働するソフトウェアの多数のインスタンス）にわたって機能性を散らしてもよい。
【０１３２】
ネットワークデバイス実装と同様に、集中型制御プレーン９７６を稼働させる電子デバイス、およびしたがって集中型到達可能性および転送情報モジュール９７９を含むネットワークコントローラ９７８は、多様なやり方（たとえば、専用デバイス、汎用（たとえば、ＣＯＴＳ）デバイス、またはハイブリッドデバイス）で実装されてよい。これらの電子デバイスは、計算リソース、１つまたは複数の物理ＮＩＣの組、および集中型制御プレーンソフトウェアをその上に記憶した非一時的なマシン可読ストレージ媒体を含む。たとえば、図１０は、汎用制御プレーンデバイス１００４を表し、汎用制御プレーンデバイス１００４は、１つまたは複数のプロセッサ１０４２（しばしば、ＣＯＴＳプロセッサである）の組、およびネットワークインターフェースコントローラ１０４４（ＮＩＣ；ネットワークインターフェースカードとしても知られる）（物理ＮＩ１０４６を含む）、ならびに集中型制御プレーン（ＣＣＰ）ソフトウェア１０５０をその中に記憶した非一時的なマシン可読ストレージ媒体１０４８を備えるハードウェア１０４０を含む。
【０１３３】
いくつかの実施形態において、ＣＣＰソフトウェア１０５０は、ＭＳＤアウェアパス選択モジュールコード１０８１を含み、ＭＳＤアウェアパス選択モジュールコード１０８１は、プロセッサ１０４２によって実行されるとき、特定の実装に応じて、集中型到達可能性および転送情報モジュールインスタンス１０７９および／またはＣＣＰアプリケーションレイヤ１０８０内で、ＭＳＤアウェアパス選択モジュール９８１のコンポーネントを提供することができる。
【０１３４】
計算仮想化を使用する実施形態において、プロセッサ１０４２は、通常、ソフトウェアを実行して、仮想化レイヤ１０５４をインスタンス化する（たとえば、一実施形態において、仮想化レイヤ１０５４は、１つまたは複数のアプリケーションの組を実行するために各々使用され得るソフトウェアコンテナ（別々のユーザ空間を表現し、仮想化エンジン、仮想プライベートサーバ、またはジェイルとも呼ばれる）と呼ばれる多数のインスタンス１０６２Ａ〜Ｒの作成を見込んだ、オペレーティングシステムのカーネル（または基本オペレーティングシステム上で実行されるシム）を表現する。別の実施形態において、仮想化レイヤ１０５４は、ハイパーバイザ（時に仮想マシンモニタ（ＶＭＭ）と称される）、またはホストオペレーティングシステムの上部で実行されるハイパーバイザを表現し、アプリケーションは、ハイパーバイザによって稼働される仮想マシンと呼ばれるインスタンス１０６２Ａ〜Ｒ（いくつかのケースにおいて強固に隔離された形態のソフトウェアコンテナと考えられてよい）内のゲストオペレーティングシステムの上部で稼働する。別の実施形態において、アプリケーションは、ユニカーネルとして実装され、ユニカーネルは、アプリケーションによって必要とされる特定のＯＳサービスを提供する（たとえば、ＯＳサービスのドライバ／ライブラリを含むライブラリオペレーティングシステム（ＬｉｂＯＳ）からの）限定された組のライブラリのみを、アプリケーションで直接コンパイルすることによって生成されてよく、ユニカーネルは、ハードウェア１０４０上で直接稼働するか、仮想化レイヤ１０５４によって表現されるハイパーバイザ上で直接稼働するか（このケースでは、ユニカーネルは時にＬｉｂＯＳ仮想マシン内で稼働するように記述される）、またはインスタンス１０６２Ａ〜Ｒのうちの１つによって表現されるソフトウェアコンテナ内で稼働することができる）。再度、計算仮想化が使用される実施形態において、動作中、ＣＣＰソフトウェア１０５０のインスタンス（ＣＣＰインスタンス１０７６Ａとして表す）は、仮想化レイヤ１０５４上で（たとえば、インスタンス１０６２Ａ内で）実行される。計算仮想化が使用されない実施形態においては、ＣＣＰインスタンス１０７６Ａが、「ベアメタル」汎用制御プレーンデバイス１００４上で、ユニカーネルとして、またはホストオペレーティングシステムの上部で実行される。ＣＣＰインスタンス１０７６Ａ、ならびに、実装される場合、仮想化レイヤ１０５４およびインスタンス１０６２Ａ〜Ｒのインスタンス化は、ソフトウェアインスタンス１０５２と総称される。
【０１３５】
いくつかの実施形態において、ＣＣＰインスタンス１０７６Ａは、ネットワークコントローラインスタンス１０７８を含む。ネットワークコントローラインスタンス１０７８は、（ネットワークコントローラ９７８のコンテキストをオペレーティングシステムに提供し、さまざまなＮＥと通信するミドルウェアレイヤである）集中型到達可能性および転送情報モジュールインスタンス１０７９と、（プロトコル、ネットワーク状況アウェアネス、およびユーザインターフェースなどのさまざまなネットワーク動作に要求されるインテリジェンスを提供する）ミドルウェアレイヤ上のＣＣＰアプリケーションレイヤ１０８０（時にアプリケーションレイヤと称される）とを含む。さらなる抽象レベルにおいて、集中型制御プレーン９７６内のこのＣＣＰアプリケーションレイヤ１０８０は、仮想ネットワークビュー（ネットワークの論理ビュー）と連携し、ミドルウェアレイヤは、仮想ネットワークから物理ビューへの変換を提供する。
【０１３６】
集中型制御プレーン９７６は、ＣＣＰアプリケーションレイヤ１０８０の計算およびフローごとのミドルウェアレイヤのマッピングに基づいて、該当するメッセージをデータプレーン９８０へ送信する。フローは、そのヘッダが所与のビットパターンに合致するパケットの組として規定されてもよい。この意味において、従来のＩＰ転送もまた、フローベースの転送であり、ここでフローは、たとえば宛先ＩＰアドレスによって規定される。しかしながら、他の実装において、フロー規定に使用される所与のビットパターンは、パケットヘッダにより多くの（たとえば、１０以上の）フィールドを含んでもよい。データプレーン９８０の異なるＮＤ／ＮＥ／ＶＮＥは、異なるメッセージ、したがって異なる転送情報を受信してもよい。データプレーン９８０は、これらのメッセージを処理し、適切なフロー情報および適切なＮＥ／ＶＮＥの転送テーブル（時にフローテーブルと称される）における対応するアクションをプログラムし、次いでＮＥ／ＶＮＥは、着信パケットを転送テーブルに表現されるフローにマップし、転送テーブルにおける合致に基づいて、パケットを転送する。
【０１３７】
ＯｐｅｎＦｌｏｗなどの標準は、メッセージに使用されるプロトコル、ならびにパケットを処理するためのモデルを規定する。パケットを処理するためのモデルは、ヘッダ構文解析、パケット分類、および転送判断を行うことを含む。ヘッダ構文解析は、よく知られたプロトコルの組に基づいてパケットをどのように解釈するかを記述する。いくつかのプロトコルフィールドは、パケット分類で使用されることになるマッチ構造（またはキー）を構築するために使用される（たとえば、第１のキーフィールドはソースメディアアクセス制御（ＭＡＣ）アドレスであってよく、第２のキーフィールドは宛先ＭＡＣアドレスであってよい）。
【０１３８】
パケット分類は、転送テーブルにおけるどのエントリ（転送テーブルエントリまたはフローエントリとも称される）が、転送テーブルエントリのマッチ構造またはキーに基づいてパケットに最もよく合致するかを決定することによって、パケットを分類するために、メモリのルックアップを実行することを伴う。転送テーブルエントリにおいて表現される多くのフローが、あるパケットに対応／合致してもよく、このケースにおいて、システムは、通常、規定された方式（たとえば、合致した最初の転送テーブルエントリを選択すること）に従って、多くの中から１つの転送テーブルエントリを決定するように設定されることが可能である。転送テーブルエントリは、合致基準の固有の組（パケットヘッダにおける固有のフィールドについて、または何らかの他のパケットコンテンツについて合致性能によって規定されるような、値もしくはワイルドカードの組、または、パケットのどの区間を特定の値／ワイルドカードと比較すべきかの指示）と、合致するパケットの受信時に取る、データプレーンのための１つまたは複数のアクションの組との両方を含む。たとえば、アクションは、ヘッダをパケット上にプッシュすること、特定のポートを使用するパケットの場合にパケットをフラッディングすること、または単にパケットをドロップすることであってもよい。したがって、特定の伝送制御プロトコル（ＴＣＰ）宛先ポートを有するＩＰｖ４／ＩＰｖ６パケットのための転送テーブルエントリは、これらのパケットをドロップすべきことを指定するアクションを収容することがある。
【０１３９】
転送判断を行うこと、およびアクションを実施することは、パケット分類中に識別された転送テーブルエントリに基づいて、合致した転送テーブルエントリにおいて識別されたアクションの組を、パケット上で実行することによって行われる。
【０１４０】
しかしながら、未知のパケット（たとえば、ＯｐｅｎＦｌｏｗ用語において使用される「ｍｉｓｓｅｄ  ｐａｃｋｅｔ」または「ｍａｔｃｈ−ｍｉｓｓ」）がデータプレーン９８０に到着するとき、パケット（またはパケットヘッダおよびコンテンツのサブセット）は、通常、集中型制御プレーン９７６に転送される。集中型制御プレーン９７６は次いで、未知のパケットのフローに属するパケットに対処するように、転送テーブルエントリをデータプレーン９８０の中にプログラムすることになる。固有の転送テーブルエントリが集中型制御プレーン９７６によってデータプレーン９８０の中にプログラムされると、合致する資格を有する次のパケットが、その転送テーブルエントリに合致し、その合致するエントリに関連付けられたアクションの組が取られることになる。
【０１４１】
ネットワークインターフェース（ＮＩ）は、物理的であっても仮想的であってもよく、ＩＰのコンテキストにおいて、インターフェースアドレスは、物理ＮＩであれ、仮想ＮＩであれ、ＮＩに割り当てられたＩＰアドレスである。仮想ＮＩは、別の仮想インターフェースで物理ＮＩに関連付けられていても、または仮想ＮＩ自体に依存していてもよい（たとえば、ループバックインターフェース、ポイントツーポイントプロトコルインターフェース）。（物理または仮想）ＮＩは、番号付けされていても（ＩＰアドレス付きＮＩ）、番号付けされていなくてもよい（ＩＰアドレスなしＮＩ）。ループバックインターフェース（およびそのループバックアドレス）は、管理目的のためにしばしば使用される、（物理または仮想）ＮＥ／ＶＮＥの仮想ＮＩ（およびＩＰアドレス）の固有のタイプであり、ここでそのようなＩＰアドレスは、ノーダルループバックアドレスと称される。ＮＤのＮＩに割り当てられたＩＰアドレスは、そのＮＤのＩＰアドレスと称され、より粒度の細かいレベルで、ＮＤ上に実装されるＮＥ／ＶＮＥに割り当てられたＮＩに割り当てられたＩＰアドレスが、そのＮＥ／ＶＮＥのＩＰアドレスと称されてもよい。
【０１４２】
所与の宛先のためのルーティングシステムによる次ホップ選択は、１つのパスに解決することがあるが（すなわち、ルーティングプロトコルが最短パス上で１つの次ホップを生成することができる）、ルーティングシステムが多数の実現可能な次ホップがあると決定する（すなわち、ルーティングプロトコルが生成した転送ソリューションが最短パス上の２つ以上の次ホップ、すなわち多数の等コスト次ホップを提案する）場合、いくつかの追加基準が使用される。たとえば、無接続ネットワークにおいては、ＥＣＭＰ（等コストマルチパス化、マルチパス転送、およびＩＰマルチパスとしても知られる）が使用されてよい（たとえば、典型的な実装は、パケットフローの順序付けを保つために、特定のヘッダフィールドを基準として使用して、特定のパケットフローのパケットが常に同じ次ホップに転送されることを保証する）。マルチパス転送の目的のために、パケットフローは、順序付け制約を共有するパケットの組として規定される。例として、特定のＴＣＰ伝達シーケンスにおけるパケットの組は、順序正しく到着する必要があり、そうでないとＴＣＰ論理は、順序通りでない配信を輻輳と解釈して、ＴＣＰ伝達速度を減速させることになる。
【０１４３】
仮想接続および仮想チャネルと同義語である仮想回路（ＶＣ）は、パケットモード通信を用いて配信される接続指向型の通信サービスである。仮想回路通信と回路スイッチングとは、その両方が接続指向型であることから類似しており、両方のケースにおいて、データは正しい順序で配信され、接続確立フェーズ中にシグナリングオーバーヘッドが要求されることを意味する。仮想回路は、異なるレイヤに存在してもよい。たとえば、レイヤ４で、伝送制御プロトコル（ＴＣＰ）などの接続指向型のトランスポートレイヤデータリンクプロトコルは、ＩＰなどの無接続パケットスイッチングネットワークレイヤプロトコルに依拠してよく、ここで異なるパケットは、異なるパス上でルーティングされてよく、したがって、順序通りでなく配信されることがある。基礎をなす信頼できない無接続のＩＰプロトコルの上部にＴＣＰで信頼できる仮想回路が確立された場合、仮想回路は、ソースおよび宛先のネットワークソケットアドレスペア、すなわち送信者および受信者のＩＰアドレスおよびポート番号によって識別される。しかしながら、順序通りでない配信を防ぐために、ＴＣＰが受信者側でのセグメント番号付けおよび並べ替えを含むので、仮想回路が可能である。仮想回路はまた、レイヤ３（ネットワークレイヤ）およびレイヤ２（データリンクレイヤ）で可能である。そのような仮想回路プロトコルは、接続指向型のパケットスイッチングに基づいており、データが同じネットワークパスに沿って、すなわち、同じＮＥ／ＶＮＥを通って常に配信されることを意味する。そのようなプロトコルにおいて、パケットは、個々にルーティングされず、完全なアドレス指定情報は、各データパケットのヘッダに提供されない。小さな仮想チャネル識別子（ＶＣＩ）のみが、各パケットにおいて要求され、ルーティング情報は、接続確立フェーズ中にＮＥ／ＶＮＥに伝達される。スイッチングは、完全なアドレスを分析するのではなく、テーブルにおいて仮想チャネル識別子をルックアップすることのみを伴う。データが常に同じパス上で配信されるネットワークレイヤおよびデータリンクレイヤの仮想回路プロトコルの例は以下である：ＶＣが仮想チャネル識別子（ＶＣＩ）によって識別されるＸ．２５；ＶＣがＶＣＩによって識別されるフレームリレー；回路が仮想パス識別子（ＶＰＩ）と仮想チャネル識別子（ＶＣＩ）のペアによって識別される非同期伝達モード（ＡＴＭ）；汎用パケット無線サービス（ＧＰＲＳ）；および仮想回路上でＩＰのために使用され得るマルチプロトコルラベルスイッチング（ＭＰＬＳ）（各回路はラベルによって識別される）。
【０１４４】
一定のＮＤ（たとえば、一定のエッジＮＤ）は、回路の階層構造を使用する。回路の階層構造の葉ノードは、サブスクライバ回路である。サブスクライバ回路は、階層構造に親回路を有し、親回路は、通常、多数のサブスクライバ回路のアグリゲーション、ならびにしたがってエンドユーザデバイスのアクセスネットワーク接続性をＮＤに提供するために使用されるネットワークセグメントおよびエレメントを表現する。これらの親回路は、サブスクライバ回路の物理または論理アグリゲーション（たとえば、仮想ローカルエリアネットワーク（ＶＬＡＮ）、永久仮想回路（ＰＶＣ）（たとえば、非同期伝達モード（ＡＴＭ）のための）、回路グループ、チャネル、擬似ワイヤ、ＮＤの物理ＮＩ、およびリンクアグリゲーショングループ）を表現することができる。回路グループは、回路のさまざまな組が、設定目的、たとえばアグリゲートレート制御のために、一緒にグループ化されるのを許可する仮想構成体である。擬似ワイヤは、レイヤ２ポイントツーポイント接続指向型サービスのエミュレーションである。リンクアグリゲーショングループは、帯域幅アグリゲーションおよび冗長性の目的のために、多数の物理ＮＩを合体させる仮想構成体である。したがって、親回路は、物理的または論理的に、サブスクライバ回路をカプセル化する。
【０１４５】
各ＶＮＥ（たとえば、仮想ルータ、仮想ブリッジ（仮想プライベートＬＡＮサービス（ＶＰＬＳ）において仮想スイッチインスタンスとして働くことができる））は、通常、独立してアドミニストレーション可能である。たとえば、多数の仮想ルータのケースにおいて、仮想ルータの各々は、システムリソースを共有することができるが、その管理ドメイン、ＡＡＡ（認証、認可、およびアカウンティング）名前空間、ＩＰアドレス、およびルーティングデータベースに関しては、他の仮想ルータから分離している。サービスおよび／またはコンテンツプロバイダのサブスクライバに、直接ネットワークアクセスおよび／または異なるクラスのサービスを提供するために、多数のＶＮＥが、エッジＮＤにおいて用いられてよい。
【０１４６】
一定のＮＤ内で、物理ＮＩから独立している「インターフェース」は、上位レイヤプロトコルおよびサービス情報（たとえば、レイヤ３アドレス指定）を提供するために、ＶＮＥの一部として設定されてよい。ＡＡＡサーバにおけるサブスクライバ記録は、他のサブスクライバ設定要件に加えて、対応するサブスクライバが、ＮＤ内でどのコンテキスト（たとえば、ＶＮＥ／ＮＥのうちのどれ）にバインドされるべきかを識別する。本明細書で使用されるとき、バインディングは、物理エンティティ（たとえば、物理ＮＩ、チャネル）または論理エンティティ（たとえば、サブスクライバ回路もしくは論理回路（１つもしくは複数のサブスクライバ回路の組）などの回路）と、ネットワークプロトコル（たとえば、ルーティングプロトコル、ブリッジングプロトコル）がその上でそのコンテキストのために設定されるコンテキストのインターフェースとの間で、関連付けを形成する。何らかの上位レイヤプロトコルインターフェースが設定され、その物理エンティティに関連付けられるときに、サブスクライバデータは、その物理エンティティ上を流れる。
【０１４７】
いくつかのＮＤは、ＶＰＮ（仮想プライベートネットワーク）（たとえば、レイヤ２ＶＰＮおよび／またはレイヤ３ＶＰＮ）を実装するためのサポートを提供する。たとえば、プロバイダのネットワークと顧客のネットワークとが結合される場所のＮＤは、それぞれ、ＰＥ（プロバイダエッジ）およびＣＥ（顧客エッジ）と称される。レイヤ２ＶＰＮにおいて、転送は、通常、ＶＰＮのどちらかのエンドのＣＥ上で実施され、トラフィックは、ネットワークにわたって（たとえば、他のＮＤによって結合された１つまたは複数のＰＥを通して）送られる。レイヤ２回路は、ＣＥとＰＥとの間で設定される（たとえば、イーサネットポート、ＡＴＭ永久仮想回路（ＰＶＣ）、フレームリレーＰＶＣ）。レイヤ３ＶＰＮにおいて、ルーティングは、通常、ＰＥによって実施される。例として、多数のＶＮＥをサポートするエッジＮＤが、ＰＥとして配置されてよく、ＶＮＥは、ＶＰＮプロトコルで設定されてよく、したがって、そのＶＮＥは、ＶＰＮ  ＶＮＥと称される。
【０１４８】
いくつかのＮＤは、ＶＰＬＳ（仮想プライベートＬＡＮサービス）のためのサポートを提供する。たとえば、ＶＰＬＳネットワークにおいて、エンドユーザデバイスは、他のＮＤによって結合されたＰＥを通して結合されたＣＥに結合することによって、ＶＰＬＳネットワークを通して提供されるコンテンツ／サービスにアクセスする。ＶＰＬＳネットワークは、トリプルプレイネットワークアプリケーション（たとえば、データアプリケーション（たとえば、高速インターネットアクセス）、ビデオアプリケーション（たとえば、ＩＰＴＶ（インターネットプロトコルテレビジョン）などのテレビジョンサービス、ＶｏＤ（ビデオオンデマンド）サービス）、およびボイスアプリケーション（たとえば、ＶｏＩＰサービス））、ＶＰＮサービス、その他を実装するために使用されてよい。ＶＰＬＳは、マルチポイント接続性のために使用され得るレイヤ２ＶＰＮのタイプである。ＶＰＬＳネットワークはまた、別々の地理的場所でＣＥに結合されたエンドユーザデバイスが、あたかもローカルエリアネットワーク（ＬＡＮ）において互いに直接アタッチされているかのように（エミュレートＬＡＮと称される）、ワイドエリアネットワーク（ＷＡＮ）にわたって互いに通信するのを許可する。
【０１４９】
ＶＰＬＳネットワークにおいて、各ＣＥは通常、アタッチメント回路（たとえば、ＣＥとＰＥとの間の仮想リンクまたは接続）を介したＰＥのブリッジモジュールに、場合によってアクセスネットワーク（ワイヤードおよび／またはワイヤレス）を通して、アタッチする。ＰＥのブリッジモジュールは、エミュレートＬＡＮインターフェースを通して、エミュレートＬＡＮにアタッチする。各ブリッジモジュールは、ＭＡＣアドレスを擬似ワイヤおよびアタッチメント回路にマップする転送テーブルを維持することによって、「仮想スイッチインスタンス」（ＶＳＩ）として働く。ＰＥは、（ＣＥから受信した）フレームを、それらのフレームに含まれたＭＡＣ宛先アドレスフィールドに基づいて、宛先（たとえば、他のＣＥ、他のＰＥ）へと転送する。
【０１５０】
図面におけるフロー図は、本発明の一定の実施形態によって実施される動作の特定の順序を示しているが、そのような順序は例示である（たとえば、代替実施形態が、異なる順序で動作を実施する、一定の動作を組み合わせる、一定の動作を重複させるなどしてもよい）ことを理解すべきである。
【０１５１】
本発明を数点の実施形態に関して説明してきたが、本発明は、説明された実施形態に限定されず、付属の特許請求の範囲の趣旨および範囲内での変更形態および改変形態により実践されてもよいことを当業者は認めるであろう。したがって、本説明は、限定ではなく、例証とみなされるべきである。
【図１】
2019505140.tif 000003
【図２】
2019505140.tif 000004
【図３】
2019505140.tif 000005
【図４】
2019505140.tif 000006
【図５】
2019505140.tif 000007
【図６】
2019505140.tif 000008
【図７Ａ】
2019505140.tif 000009
【図７Ｂ】
2019505140.tif 000010
【図８Ａ】
2019505140.tif 000011
【図８Ｂ】
2019505140.tif 000012
【図９Ａ】
2019505140.tif 000013
【図９Ｂ】
2019505140.tif 000014
【図９Ｃ】
2019505140.tif 000015
【図９Ｄ】
2019505140.tif 000016
【図９Ｅ】
2019505140.tif 000017
【図９Ｆ】
2019505140.tif 000018
【図１０】
2019505140.tif 000019
【国際調査報告】
2019505140.tif 000020
2019505140.tif 000021