(57)【要約】      （修正有）【課題】ＢＧＰスピーカとして動作するネットワークデバイスにおいて、最大セグメント深度（ＭＳＤ）値を呈示する方法を提供する。【解決手段】ＢＧＰ（border gateway protocol）スピーカとして動作するネットワークデバイスのＭＳＤ値を呈示する方法であって、ＭＳＤ値をＢＧＰリンクステート（ＢＧＰ−ＬＳ）拡張メッセージへ符号化することを含む。ＢＧＰ−ＬＳ拡張メッセージは、タイプ、長さ及びＭＳＤ値を含む。タイプは、ＭＳＤ値のタイプを示し、長さは、ＭＳＤ値の長さを示し、ＭＳＤ値は、セグメントルーティングを可能にするためにネットワークデバイスによりサポートされる最低のＭＳＤ値を示す。方法は、続けて、タイプ、長さ及びＭＳＤ値を含むＢＧＰ−ＬＳ拡張メッセージを、ネットワークデバイスを含むセグメントルーティングパスを計算するためにＭＳＤ値を使用するネットワークコントローラへ送信する。【選択図】図１
2019193281.tif 000002
【特許請求の範囲】
【請求項１】
ＢＧＰ（border  gateway  protocol）スピーカとして動作するネットワークデバイスにより実装される、前記ネットワークデバイスの最大セグメント識別子深度（ＭＳＤ）値を呈示する方法であって、
前記ＭＳＤ値をＢＧＰリンクステート（ＢＧＰ−ＬＳ）拡張メッセージへ符号化すること（２０２）と、前記ＢＧＰ−ＬＳ拡張メッセージは、タイプ、長さ及びＭＳＤ値を含むことと、前記タイプは、前記ＭＳＤ値のタイプを示すことと、前記長さは、前記ＭＳＤ値の長さを示すことと、前記ＭＳＤ値は、セグメントルーティングを可能にするために前記ネットワークデバイスによりサポートされる最低のＭＳＤ値を示すことと、
前記タイプ、前記長さ及び前記ＭＳＤ値を含む前記ＢＧＰ−ＬＳ拡張メッセージをネットワークコントローラへ送信すること（２０４）と、前記ネットワークコントローラは、前記ネットワークデバイスを含むセグメントルーティングパスを計算するために前記ＭＳＤ値を使用することと、
を含む方法。
【請求項２】
前記ＭＳＤ値は、前記ネットワークデバイスによりサポートされる最低のＭＳＤ値を示すノードＭＳＤ値である、請求項１の方法。
【請求項３】
前記ＭＳＤ値は、前記ネットワークデバイスのリンクによりサポートされる最低のＭＳＤ値を示すリンクＭＳＤ値である、請求項１の方法。
【請求項４】
前記ネットワークデバイスは、前記セグメントルーティングパスの入口ノードである、請求項１の方法。
【請求項５】
ＢＧＰ（border  gateway  protocol）スピーカとして動作するネットワークデバイスであって、前記ネットワークデバイスは、ネットワークコントローラへ連結され、
プロセッサと、前記プロセッサにより実行可能な命令を含むメモリと、を備え、それにより、前記ネットワークデバイスは、
前記ネットワークデバイスの最大セグメント識別子深度（ＭＳＤ）値を、ＢＧＰリンクステート（ＢＧＰ−ＬＳ）拡張メッセージであって、前記ＭＳＤ値のタイプを示すタイプと、前記ＭＳＤ値の長さを示す長さと、セグメントルーティングを可能にするために前記ネットワークデバイスによりサポートされる最低のＭＳＤ値を示すＭＳＤ値と、を含む当該ＢＧＰ−ＬＳ拡張メッセージへ符号化（２０２）し、
前記タイプ、前記長さ及び前記ＭＳＤ値を含む前記ＢＧＰ−ＬＳ拡張メッセージを、前記ネットワークデバイスを含むセグメントルーティングパスを計算するために前記ＭＳＤ値を使用するネットワークコントローラへ送信（２０４）する、
ように動作可能である、ネットワークデバイス。
【請求項６】
前記ＭＳＤ値は、前記ネットワークデバイスによりサポートされる最低のＭＳＤ値を示すノードＭＳＤ値である、請求項５のネットワークデバイス。
【請求項７】
前記ＭＳＤ値は、前記ネットワークデバイスのリンクによりサポートされる最低のＭＳＤ値を示すリンクＭＳＤ値である、請求項５のネットワークデバイス。
【請求項８】
前記ネットワークデバイスは、前記セグメントルーティングパスの入口ノードである、請求項５のネットワークデバイス。
【請求項９】
ＢＧＰ（border  gateway  protocol）スピーカとして動作し及びネットワークコントローラと連結されるネットワークデバイスのプロセッサによって実行される場合に、
前記ネットワークデバイスの最大セグメント識別子深度（ＭＳＤ）値を、ＢＧＰリンクステート（ＢＧＰ−ＬＳ）拡張メッセージであって、前記ＭＳＤ値のタイプを示すタイプと、前記ＭＳＤ値の長さを示す長さと、セグメントルーティングを可能にするために前記ネットワークデバイスによりサポートされる最低のＭＳＤ値を示すＭＳＤ値と、を含む当該ＢＧＰ−ＬＳ拡張メッセージへ符号化（２０２）することと、
前記タイプ、前記長さ及び前記ＭＳＤ値を含む前記ＢＧＰ−ＬＳ拡張メッセージを、前記ネットワークデバイスを含むセグメントルーティングパスを計算するために前記ＭＳＤ値を使用するネットワークコントローラへ送信（２０４）することと、
を含む動作を前記プロセッサに実行させる命令、を提供する非一時的な機械読取可能な記憶媒体。
【請求項１０】
前記ＭＳＤ値は、前記ネットワークデバイスによりサポートされる最低のＭＳＤ値を示すノードＭＳＤ値である、請求項９の非一時的な機械読取可能な記憶媒体。
【請求項１１】
前記ＭＳＤ値は、前記ネットワークデバイスのリンクによりサポートされる最低のＭＳＤ値を示すリンクＭＳＤ値である、請求項９の非一時的な機械読取可能な記憶媒体。
【請求項１２】
前記ネットワークデバイスは、前記セグメントルーティングパスの入口ノードである、請求項９の非一時的な機械読取可能な記憶媒体。
【請求項１３】
ネットワークコントローラにおける方法であって、
ＢＧＰ（border  gateway  protocol）スピーカとして動作するネットワークデバイスからＢＧＰリンクステート（ＢＧＰ−ＬＳ）拡張メッセージを受信（３０２）することと、
最大セグメント識別子深度（ＭＳＤ）値のタイプを示すタイプと、前記ＭＳＤ値の長さを示す長さと、セグメントルーティングを可能にするために前記ネットワークデバイスによりサポートされる最低のＭＳＤ値を示す前記ＭＳＤ値と、を含む前記ＢＧＰ−ＬＳ拡張メッセージを復号（３０４）して、前記ネットワークデバイスの前記ＭＳＤ値を抽出することと、
前記ＭＳＤ値を使用して、前記ネットワークデバイスを含むセグメントルーティング（ＳＲ）パスであって、前記ＭＳＤ値以下のラベルスタック深度を有する当該ＳＲパスを計算（３０６）することと、
を含む、方法。
【請求項１４】
前記タイプは、前記ＭＳＤ値が前記ネットワークデバイスによりサポートされる最低のＭＳＤ値を示すノードＭＳＤ値であること、を示す、請求項１３の方法。
【請求項１５】
前記タイプは、前記ＭＳＤ値が前記ネットワークデバイスのリンクによりサポートされる最低のＭＳＤ値を示すリンクＭＳＤ値であること、を示す、請求項１３の方法。
【請求項１６】
ネットワークコントローラであって、
プロセッサと、前記プロセッサにより実行可能な命令を含むメモリと、を備え、それにより、前記ネットワークコントローラは、
ＢＧＰ（border  gateway  protocol）スピーカとして動作するネットワークデバイスからＢＧＰリンクステート（ＢＧＰ−ＬＳ）拡張メッセージを受信（３０２）し、
最大セグメント識別子深度（ＭＳＤ）値のタイプを示すタイプと、前記ＭＳＤ値の長さを示す長さと、セグメントルーティングを可能にするために前記ネットワークデバイスによりサポートされる最低のＭＳＤ値を示す前記ＭＳＤ値と、を含む前記ＢＧＰ−ＬＳ拡張メッセージを復号（３０４）して、前記ネットワークデバイスの前記ＭＳＤ値を抽出し、
前記ＭＳＤ値を使用して、前記ネットワークデバイスを含むセグメントルーティング（ＳＲ）パスであって、前記ＭＳＤ値以下のラベルスタック深度を有する当該ＳＲパスを計算（３０６）する、ように動作可能である、ネットワークコントローラ。
【請求項１７】
前記タイプは、前記ＭＳＤ値が前記ネットワークデバイスによりサポートされる最低のＭＳＤ値を示すノードＭＳＤ値であること、を示す、請求項１６のネットワークコントローラ。
【請求項１８】
前記タイプは、前記ＭＳＤ値が前記ネットワークデバイスのリンクによりサポートされる最低のＭＳＤ値を示すリンクＭＳＤ値であること、を示す、請求項１６のネットワークコントローラ。
【請求項１９】
ネットワークコントローラのプロセッサによって実行される場合に、
ＢＧＰ（border  gateway  protocol）スピーカとして動作するネットワークデバイスからＢＧＰリンクステート（ＢＧＰ−ＬＳ）拡張メッセージを受信（３０２）することと、
最大セグメント識別子深度（ＭＳＤ）値のタイプを示すタイプと、前記ＭＳＤ値の長さを示す長さと、セグメントルーティングを可能にするために前記ネットワークデバイスによりサポートされる最低のＭＳＤ値を示す前記ＭＳＤ値と、を含む前記ＢＧＰ−ＬＳ拡張メッセージを復号（３０４）して、前記ネットワークデバイスの前記ＭＳＤ値を抽出することと、
前記ＭＳＤ値を使用して、前記ネットワークデバイスを含むセグメントルーティング（ＳＲ）パスであって、前記ＭＳＤ値以下のラベルスタック深度を有する当該ＳＲパスを計算（３０６）することと、
を含む動作を前記プロセッサに実行させる命令を提供する、非一時的な機械読取可能な記憶媒体。
【請求項２０】
前記タイプは、前記ＭＳＤ値が前記ネットワークデバイスによりサポートされる最低のＭＳＤ値を示すノードＭＳＤ値であること、を示す、請求項１９の非一時的な機械読取可能な記憶媒体。
【請求項２１】
前記タイプは、前記ＭＳＤ値が前記ネットワークデバイスのリンクによりサポートされる最低のＭＳＤ値を示すリンクＭＳＤ値であること、を示す、請求項１９の非一時的な機械読取可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願への相互参照］
本出願は、２０１５年７月２日に提出された米国仮出願第６２／１８８，４０２号の利益を主張し、それは参照によりここに取り入れられる。
【０００２】
［分野］
本発明の実施形態は、パケットネットワークの分野に関し、より具体的には、セグメントルーティングに関する。
【背景技術】
【０００３】
セグメントルーティング（ＳＲ）は、ソースルーティングに基づくパケット転送技術である。ＳＲについての多様なユースケースが、ＩＥＴＦ（Internet  Engineering  Task  Force）ドラフト“draft.filsfils-rtgwg-segment-routing-use-cases”において説明されており、それは参照によりここに取り入れられる。ＳＲの抽象的なルーティングモデルは、ＩＥＴＦドラフト“draft.filsfils-rtgwg-segment-routing”において説明されており、それは参照によりここに取り入れられる。ＩＥＴＦドラフト“draft.filsfils-rtgwg-segment-routing”は、ＩＰｖ６（Internet  Protocol  version  6）又はＭＰＬＳ（Multiprotocol  Label  Switching）を用いたＳＲのインスタンス化を説明している。
【発明の概要】
【０００４】
ＢＧＰ（border  gateway  protocol）スピーカとして動作するネットワークデバイスにより実装される、当該ネットワークデバイスの最大セグメント識別子深度（ＭＳＤ）値を呈示する方法が、説明される。上記方法は、ＭＳＤ値をＢＧＰリンクステート（ＢＧＰ−ＬＳ）拡張メッセージへ符号化することを含む。ＢＧＰ−ＬＳ拡張メッセージは、タイプ、長さ及びＭＳＤ値を含む。タイプは、ＭＳＤ値のタイプを示し、長さは、ＭＳＤ値の長さを示し、ＭＳＤ値は、セグメントルーティングを可能にするためにネットワークデバイスによりサポートされる最低のＭＳＤ値を示す。上記方法は、続けて、タイプ、長さ及びＭＳＤ値を含むＢＧＰ−ＬＳ拡張メッセージを、ネットワークデバイスを含むセグメントルーティングパスを計算するためにＭＳＤ値を使用するネットワークコントローラへ送信する。
【０００５】
ＢＧＰ（border  gateway  protocol）スピーカとして動作するネットワークデバイスが開示される。上記ネットワークデバイスは、ネットワークコントローラへ連結される。上記ネットワークデバイスは、プロセッサ及びメモリを含み、当該メモリは、プロセッサによって実行可能な命令を含む。上記ネットワークデバイスは、ネットワークデバイスの最大セグメント識別子深度（ＭＳＤ）値を、ＢＧＰリンクステート（ＢＧＰ−ＬＳ）拡張メッセージへ符号化するように動作可能である。ＢＧＰ−ＬＳ拡張メッセージは、タイプ、長さ及びＭＳＤ値を含む。タイプは、ＭＳＤ値のタイプを示し、長さは、ＭＳＤ値の長さを示し、ＭＳＤ値は、セグメントルーティングを可能にするためにネットワークデバイスによりサポートされる最低のＭＳＤ値を示す。上記ネットワークデバイスは、タイプ、長さ及びＭＳＤ値を含むＢＧＰ−ＬＳ拡張メッセージを、ネットワークデバイスを含むセグメントルーティングパスを計算するためにＭＳＤ値を使用するネットワークコントローラへ送信するようにさらに動作可能である。
【０００６】
非一時的な機械読取可能な記憶媒体が開示される。非一時的な機械読取可能な記憶媒体は、ＢＧＰ（border  gateway  protocol）スピーカとして動作し及びネットワークコントローラと連結されるネットワークデバイスのプロセッサによって実行される場合に、ある動作を当該プロセッサに実行させる命令を提供する。上記動作は、ネットワークデバイスの最大セグメント識別子深度（ＭＳＤ）値を、ＢＧＰリンクステート（ＢＧＰ−ＬＳ）拡張メッセージへ符号化することを含む。ＢＧＰ−ＬＳ拡張メッセージは、タイプ、長さ及びＭＳＤ値を含む。タイプは、ＭＳＤ値のタイプを示し、長さは、ＭＳＤ値の長さを示し、ＭＳＤ値は、セグメントルーティングを可能にするためにネットワークデバイスによりサポートされる最低のＭＳＤ値を示す。上記動作は、タイプ、長さ及びＭＳＤ値を含むＢＧＰ−ＬＳ拡張メッセージを、ネットワークデバイスを含むセグメントルーティングパスを計算するためにＭＳＤ値を使用するネットワークコントローラへ送信することをさらに含む。
【０００７】
ネットワークコントローラにおける方法が、開示される。上記方法は、ＢＧＰ（border  gateway  protocol）スピーカとして動作するネットワークデバイスからＢＧＰリンクステート（ＢＧＰ−ＬＳ）拡張メッセージを受信することを含む。上記方法は、続いて、ＢＧＰ−ＬＳ拡張メッセージを復号して、上記ネットワークデバイスの最大セグメント識別子深度（ＭＳＤ）値を抽出する。ＢＧＰ−ＬＳ拡張メッセージは、ＭＳＤ値のタイプを示すタイプと、ＭＳＤ値の長さを示す長さと、セグメントルーティングを可能にするために上記ネットワークデバイスによりサポートされる最低のＭＳＤ値を示すＭＳＤ値と、を含む。上記方法は、ＭＳＤ値を使用して、上記ネットワークデバイスを含むセグメントルーティング（ＳＲ）パスであって、ＭＳＤ値以下のラベルスタック深度を有する当該ＳＲパスを計算することを、さらに含む。
【０００８】
ネットワークコントローラが、開示される。上記ネットワークコントローラは、プロセッサ及びメモリを含み、当該メモリは、プロセッサによって実行可能な命令を含む。上記ネットワークコントローラは、ＢＧＰ（border  gateway  protocol）スピーカとして動作するネットワークデバイスからＢＧＰリンクステート（ＢＧＰ−ＬＳ）拡張メッセージを受信するように動作可能である。上記ネットワークコントローラは、ＢＧＰ−ＬＳ拡張メッセージについて、上記ネットワークデバイスの最大セグメント識別子深度（ＭＳＤ）値を抽出する、ようにさらに動作可能である。ＢＧＰ−ＬＳ拡張メッセージは、ＭＳＤ値のタイプを示すタイプと、ＭＳＤ値の長さを示す長さと、セグメントルーティングを可能にするために上記ネットワークデバイスによりサポートされる最低のＭＳＤ値を示すＭＳＤ値と、を含む。上記ネットワークコントローラは、ＭＳＤ値を使用して、上記ネットワークデバイスを含むセグメントルーティング（ＳＲ）パスであって、ＭＳＤ値以下のラベルスタック深度を有する当該ＳＲパスを計算するようにさらに動作可能である。
【０００９】
非一時的な機械読取可能な記憶媒体が、開示される。非一時的な機械読取可能な記憶媒体は、ネットワークコントローラのプロセッサによって実行される場合に、当該プロセッサにある動作を実行させる命令を提供する。上記動作は、ＢＧＰ（border  gateway  protocol）スピーカとして動作するネットワークデバイスからＢＧＰリンクステート（ＢＧＰ−ＬＳ）拡張メッセージを受信することを含む。上記動作は、ＢＧＰ−ＬＳ拡張メッセージを復号して、上記ネットワークデバイスの最大セグメント識別子深度（ＭＳＤ）値を抽出することを、さらに含む。ＢＧＰ−ＬＳ拡張メッセージは、ＭＳＤ値のタイプを示すタイプと、ＭＳＤ値の長さを示す長さと、セグメントルーティングを可能にするために上記ネットワークデバイスによりサポートされる最低のＭＳＤ値を示すＭＳＤ値と、を含む。上記動作は、ＭＳＤ値を使用して、上記ネットワークデバイスを含むセグメントルーティング（ＳＲ）パスであって、ＭＳＤ値以下のラベルスタック深度を有する当該ＳＲパスを計算することを、さらに含む。
【図面の簡単な説明】
【００１０】
本発明は、以下の説明及び本発明の実施形態を例示するために使用される添付図面を参照することにより、最も良く理解され得る。
【００１１】
【図１】本発明のいくつかの実施形態に係る、最大セグメント識別子（ＳＩＤ）深度（ＭＳＤ）の外部アプリケーションへの送信を可能にするＳＲネットワークを示すブロック図である。
【図２】本発明のいくつかの実施形態に係る、ＭＳＤ値を呈示するための、ネットワークデバイスにおいて実行される動作のフロー図を示す。
【図３】本発明のいくつかの実施形態に係る、ネットワークコントローラにおいて実行される動作のフロー図を示す。
【図４Ａ】いくつかの実施形態に係る、ネットワークデバイスのノードＭＳＤ値を含む、例示的なOpaqueノード属性ＴＬＶ（Type-Length-Value）を示す。
【図４Ｂ】いくつかの実施形態に係る、ネットワークデバイスのリンクＭＳＤ値を含む、例示的なOpaqueリンク属性ＴＬＶを示す。
【図５Ａ】本発明のいくつかの実施形態に係る、例示的なネットワーク内のネットワークデバイス（ＮＤ）の間の接続性、及びＮＤの３つの例示的な実装を示す。
【図５Ｂ】本発明のいくつかの実施形態に係る、専用ネットワークデバイスを実装するための例示的な方法を示す。
【図５Ｃ】本発明のいくつかの実施形態に係る、仮想ネットワークエレメント（ＶＮＥ）が連結され得る多様な例示的な方法を示す。
【図５Ｄ】ＮＤの各々に単一のネットワークエレメント（ＮＥ）を有するネットワークを示しており、この簡易なアプローチにおいて、（一般に、従来のルータにより使用される）従来の分散型アプローチが、本発明のいくつかの実施形態に係る（ネットワーク制御とも呼ばれる）到達可能性／転送情報を維持するための集中型アプローチと対比される。
【図５Ｅ】本発明のいくつかの実施形態に従って、ＮＤの各々が単一のＮＥを実装するが、集中型制御プレーンが異なるＮＤ内にある複数のＮＥを仮想ネットワークのうちの１つにおける単一のＮＥへ（それを表すように）抽象化した、単純な場合を示す。
【図５Ｆ】本発明のいくつかの実施形態に従って、複数のＶＮＥが異なるＮＤ上に実装され、互いに連結され、集中型制御プレーンが、それら複数のＶＮＥが仮想ネットワークのうちの１つの範囲内で単一のＶＮＥに見えるようそれらを抽象化した場合を示す。
【図６】本発明のいくつかの実施形態に係る、集中型制御プレーン（ＣＣＰ）ソフトウェア６５０を有する汎用制御プレーンデバイスを示す。
【発明を実施するための形態】
【００１２】
以下の説明は、ネットワークデバイスに関連付けられる最大セグメント識別子深度（ＭＳＤ）値を呈示するための方法及び装置を説明する。以下の説明では、ロジック実装、オペレーションコード、オペランドを特定する手段、リソースパーティショニング／共有／複製実装、システムコンポーネントのタイプ及び相互関係、並びにロジックパーティショニング／統合選択などの多数の具体的詳細が、本発明の、より完全な理解をもたらすために記載されている。しかしながら、本発明がそのような具体的詳細なしに実践され得ることは、当業者には明らかであろう。他の例では、制御構造、ゲートレベル回路、及び完全なソフトウェア命令シーケンスは、本発明を不明確にしないために、詳細には示されていない。当業者であれば、含まれる説明を用いて、過度の実験を行うことなく適切な機能性を実装することが可能であろう。
【００１３】
“１つの実施形態”、“一実施形態”、“一例としての実施形態”などへの本明細書における言及は、説明される実施形態が、特定の特徴、構造、又は特性を含み得るが、あらゆる実施形態が必ずしも当該特定の特徴、構造、又は特性を含まないかもしれないことを示している。さらに、そのような語句は、必ずしも同一の実施形態に言及しているものではない。さらに、特定の特徴、構造、又は特性が、一実施形態に関連して説明されるとき、明示的に説明されるか否かに関わらず、他の実施形態との関連においてそのような特徴、構造、又は特性を作用させることは、当業者の知識の範囲内にあると考えられる。
【００１４】
括弧付きの文字及び破線枠のブロック（例えば、大きな破線、小さな破線、点線、及び点）は、本発明の実施形態に追加的な特徴を追加する任意の動作を例示するためにここで用いられ得る。一方、そのような表記は、これらだけが選択肢又は任意の動作であること、及び／若しくは実線枠のブロックが本発明のある実施形態において任意でないことを意味すると、解釈されるべきではない。
【００１５】
以下の説明及び特許請求の範囲において、“連結される”及び“接続される”という用語が、それらの派生語とともに、使用され得る。これらの用語は、互いについての類義語として意図されないことを理解すべきである。“連結される”は、２つ以上のエレメントが、互いに協働し又はインタラクションすることを示すために使用され、２つ以上のエレメントは、互いに直接物理的に又は電気的に接触してもしていなくてもよい。“接続される”は、互いに連結される２つ以上のエレメント間の通信の確立を示すために使用される。
【００１６】
電子デバイス又はコンピューティングデバイス（例えば、エンドステーション、ネットワークデバイス）は、非一時的な機械読取可能な媒体（例えば、磁気ディスク、光ディスク、読み取り専用メモリ、フラッシュメモリデバイス、相変化メモリなどの機械読取可能な記憶媒体）、及び一時的な機械読取可能な伝送媒体（例えば、電気、光、音、又は搬送波、赤外線信号などの他の形態の伝播信号）などの、機械読取可能な媒体を使用して、（ソフトウェア命令から構成される）コード及びデータを記憶し及び（内部的に、及び／又はネットワークを介した他の電子デバイスを用いて）送信する。さらに、そのような電子デバイスは、１つ以上の他のコンポーネント、例えば、（コード及び／又はデータを記憶するための）１つ以上の非一時的な機械読取可能な記憶媒体、並びに（伝播信号を用いてコード及び／又はデータを送信するための）ネットワーク接続、並びにいくつかの場合には、ユーザ入力／出力デバイス（例えば、キーボード、タッチスクリーン、及び／又はディスプレイ）へ連結される、１つ以上のプロセッサのセットなどのハードウェアを含む。プロセッサのセット及び他のコンポーネントの連結は、典型的には、電子デバイス（例えば、バス、及び、おそらくブリッジ）内の１つ以上の相互接続を通じて行われる。よって、所与の電子デバイスの非一時的な機械読取可能な媒体は、典型的には、電子デバイスの１つ以上のプロセッサ上で実行するための命令を記憶する。本発明の一実施形態の１つ以上の部分は、ソフトウェア、ファームウェア、及び／又はハードウェアの様々な組み合わせを使用して実装されてもよい。
【００１７】
ここで用いられる、ネットワークデバイス（例えば、ルータ、スイッチ、ブリッジ）は、ネットワーク上の他の機器（例えば、他のネットワークデバイス、エンドステーション）を通信可能に相互接続する、ハードウェア及びソフトウェアを含むネットワーキング機器の１つである。いくつかのネットワークデバイスは、複数のネットワーキング機能（例えば、ルーティング、ブリッジング、スイッチング、レイヤ２アグリゲーション、セッションボーダ制御、サービス品質（ＱｏＳ）、及び／若しくは加入者管理）のためのサポートを提供し、並びに／又は複数のアプリケーションサービス（例えば、データ、音声、及びビデオ）のためのサポートを提供する、“マルチサービスのネットワークデバイス”である。加入者エンドステーション（例えば、サーバ、ワークステーション、ラップトップ、ネットブック、パームトップ、携帯電話、スマートフォン、マルチメディア電話、ボイスオーバインターネットプロトコル（ＶＯＩＰ）電話、ユーザ機器、端末、ポータブルメディアプレーヤ、ＧＰＳユニット、ゲーミングシステム、セットトップボックス）は、インターネットを介して提供されるコンテンツ／サービス、及び／又はインターネット上に重畳される（例えば、インターネットを通じてトンネリングされる）仮想プライベートネットワーク（ＶＰＮ）上で提供されるコンテンツ／サービスにアクセスする。コンテンツ及び／又はサービスは、典型的には、サービス若しくはコンテンツプロバイダに属する１つ以上のエンドステーション（例えば、サーバエンドステーション）、又はピアツーピア（Ｐ２Ｐ）サービスに参加しているエンドステーションによって提供され、例えば、公共のウェブページ（例えば、無料コンテンツ、ストアフロント、検索サービス）、個人的なウェブページ（例えば、ユーザ名／パスワードでアクセスされる、電子メールサービスを提供するウェブページ）、及び／又はＶＰＮ経由の企業ネットワークを含んでもよい。典型的には、加入者エンドステーションは、エッジネットワークデバイスに（例えば、アクセスネットワークへ連結される顧客構内機器を通じて（有線又は無線で））連結され、エッジネットワークデバイスは、他のエンドステーション（例えば、サーバエンドステーション）へ連結される他のエッジネットワークデバイスに（例えば、１つ以上のコアネットワークデバイスを通じて）連結される。
【００１８】
ネットワークデバイスは、一般に制御プレーン及びデータプレーン（転送プレーン又はメディアプレーンと呼ばれることもある）に分割される。ネットワークデバイスがルータである（又は、ルーティング機能性を実装している）場合、制御プレーンは、典型的には、データ（例えば、パケット）がどのようにルーティングされるべきか（例えば、データのための次の中継点、及びそのデータのための発信ポート）を決定し、データプレーンは、そのデータを転送することを担当する。例えば、制御プレーンは、典型的には、他のネットワークデバイスと通信してルートを交換し、１つ以上のルーティングメトリックに基づきそれらのルートを選択する、１つ以上のルーティングプロトコル（例えば、ＢＧＰ（border  gateway  protocol）、ＩＧＰ（Interior  Gateway  Protocol(s)）（例えば、ＯＳＰＦ（Open  Shortest  Path  First）、ＩＳ−ＩＳ（Intermediate  System  to  Intermediate  System）、ＲＩＰ（Routing  Information  Protocol））、ＬＤＰ（Label  Distribution  Protocol）、ＲＳＶＰ（Resource  Reservation  Protocol）などの外部ゲートウェイプロトコル）を含む。
【００１９】
制御プレーン又はネットワーク外部のコンポーネントは、ネットワークトポロジー及びトラフィックエンジニアリング情報を含む、ネットワーク内の接続の現在の状態に基づいて計算を実行してもよい。例えば、セグメントルーティングパスを決定するために、処理コンポーネント（例えば、制御プレーン、ＳＤＮコントローラ、ＰＣＥ（Path  Computation  Element）など）は、それを適切に構成するために、ＳＲネットワークのトポロジー及び各ネットワークデバイスのケイパビリティについての情報を収集する必要がある。セグメントルーティング（ＳＲ）では、ネットワークノード（例えば、ＳＲ対応ネットワークデバイス）は、ここでセグメントと呼ばれる命令のセットを利用することによって、ネットワークを通じてパケットを操る。セグメントは、ＳＲネットワークの入口においてパケットの先頭に追加されるＳＲヘッダの一部として含められる。セグメントは、いかなるトポロジー上の又はサービスの命令を表すこともできる。ＳＲアーキテクチャは、転送プレーンを変更することなく、ＭＰＬＳのデータプレーンに適用されることができる。ＭＰＬＳのデータプレーンに適用される場合、ＳＲは、ＩＳ−ＩＳ又はＯＳＰＦ以外のいかなるプロトコルも無しで、サービス（例えば、ＶＰＮ（Virtual  Private  Network）、ＶＰＬＳ（Virtual  Private  Local  LAN  Service）、ＶＰＷＳ（Virtual  Private  Wire  Service））を入口ＬＳＲ（Label  Switched  Router）から出口ＬＳＲへトンネリングする能力を提供する。セグメントは、ＭＰＬＳラベルとして符号化される。セグメントの順序付きリストは、ラベルのスタックとして符号化される。処理すべき次のセグメントは、スタックの一番上（top）にある。セグメントが完了すると、対応するラベルが、スタックからポップされる。
【００２０】
具体的には、ネットワークノードが課すことが可能であるよりも深いＳＩＤ（又はラベルスタック）を有するはずのパス／トンネルと共にネットワークノードをコントローラが構成しないように、制御プレーンは、構成中の各ネットワークノードの最大セグメント識別子（ＳＩＤ）深度（ＭＳＤ）についての情報を収集する必要がある。“最大ＳＩＤ深度”（ＭＳＤ）は、ＳＲネットワークノードが、パケットに課すことが可能なＳＩＤ（即ち、セグメント又はラベルスタック）の最大数を特定する。
【００２１】
あるアプローチでは、制御プレーンは、ＰＣＥＰ（Path  Computation  Element  Communication  Protocol）を使用して、ＳＲネットワークノードのＭＳＤを取り込み得る。ＰＣＥＰは、ＰＣＣ（Path  Computation  Client）（例えば、制御プレーンにより構成されているネットワークノード）が、ＰＣＥ（Path  Computation  Element）（例えば、制御プレーン）からのパス計算を要求することを可能にするルールのセットである。ＰＣＥＰに従って、ＭＳＤは、“draft-ietf-pce-segment-routing”（参照によりここに取り入れられる）において議論されている、ＰＣＥＰ拡張“ＳＲ  ＰＣＥケイパビリティ  ＴＬＶ／ＭＥＴＲＩＣオブジェクト”を介して制御プレーンに移送される。
【００２２】
別のアプローチでは、各ネットワークノードについてのＭＳＤ値は、ＩＧＰ（Interior  Gateway  Protocol(s)）で制御プレーンへ移送され得る。このアプローチでは、ＲＬＳＤＣサブＴＬＶと呼ばれるサブＴＬＶが、それぞれ“draft-ietf-ospf-mpls-elc”及び“draft-ietf-isis-mpls-elc”（参照によりここに取り入れられる）内でＯＳＰＦ及びＩＳ−ＩＳについて定義されているように、最大ラベルスタック深度（即ち、ネットワークデバイスのＭＳＤ）を読み取るネットワークノードのケイパビリティを広告するために定義されている。
【００２３】
ネットワークコントローラにＭＳＤを呈示することの困難性
ＰＣＥＰは、ネットワークノードのＭＳＤを別のネットワークデバイス（例えば、制御プレーン）に呈示するために使用され得るものの、ＰＣＥＰがネットワークノード（具体的には、ＳＲパス／トンネルのヘッドエンド）によってサポートされていないとき、又はネットワークノードがＩＧＰルーティングに参加していない場合、制御プレーンは、構成中のネットワークノードのＭＳＤを学習するいかなる方法も有しない。これによって、構成中のネットワークノードのラベルスタック深度に関して、制御プレーンが無作為の決定を行う結果となり、それは、ネットワークノードの誤った構成をもたらすことがあり、パケット破棄につながる。加えて、ＰＣＥＰ及びＩＧＰは、制御プレーンがネットワークノード内のリンクのＭＳＤを取得することを可能にせず、制御プレーンがグローバルノードＭＳＤを得ることを可能にするのみである。
【００２４】
ここに提示される実施形態は、以前のアプローチの限界を克服する。いくつかの実施形態によれば、ＢＧＰ（border  gateway  protocol）スピーカとして動作するネットワークデバイスにより実装される、当該ネットワークデバイスに関連付けられた最大セグメント識別子深度（ＭＳＤ）値をネットワークコントローラへ送信する方法が、開示される。これらの実施形態において、ネットワークデバイスのＭＳＤ値は、ＢＧＰリンクステート（ＢＧＰ−ＬＳ）拡張メッセージに符号化される。ＢＧＰ−ＬＳ拡張メッセージは、ＭＳＤ値のタイプを示すタイプと、ＭＳＤ値の長さを示す長さと、ネットワークデバイスの最も低いノードＭＳＤ値を示すＭＳＤ値と、を含む。他の実施形態において、ＭＳＤ値は、ネットワークデバイスの各リンクについての最も低いＭＳＤ値を示すリンクＭＳＤ値である。ＢＧＰ−ＬＳ拡張メッセージは、次いで、ネットワークコントローラへ送信され、ネットワークコントローラは、ネットワークデバイスを含むセグメントルーティングパスを計算する際にＭＳＤ値を使用する。
【００２５】
“draft-ietf-idr-ls-distribution-11”（参照によりここに取り入れられる）において説明されている通りのＢＧＰ−ＬＳは、リンクステート及びトラフィックエンジニアリング情報がネットワークから収集され、ＢＧＰルーティングプロトコルを使用して外部コンポーネント（例えば、制御プレーン、集中型コントローラ、ＰＣＥなど）と共有され得る仕組みを記述する。
【００２６】
図１は、いくつかの実施形態に係る、最大セグメント識別子（ＳＩＤ）深度（ＭＳＤ）の外部アプリケーションへの送信を可能にするＳＲネットワークを示すブロック図である。
【００２７】
図１は、ネットワークエレメント（ＮＥ）１７０Ａ〜Ｈ（ルータ、スイッチ、転送エレメント、データプレーンエレメント、又はノードと呼ばれることもある）を含む、データプレーン１８０（基盤レイヤ、ネットワーク転送プレーン、又は転送プレーン（ＮＤ転送プレーンと混同されるべきではない）と呼ばれることもある）へ連結される集中型制御プレーン１７６を示す。集中型制御プレーン１７６は、ネットワークコントローラ１７８を含み、ネットワークコントローラ１７８は、ネットワーク内の到達可能性を判定し、転送情報をデータプレーン１８０のＮＥ１７０Ａ〜Ｈへ配信する集中型到達可能性／転送情報モジュール（図示せず）を含む。これらの実施形態において、ネットワークインテリジェンスは、典型的にはＮＤとは別の電子デバイス上で稼働する集中型制御プレーン１７６に一元化される。
【００２８】
図１は、また、集中型制御プレーン１７６が、アプリケーション１８８が存在するアプリケーションレイヤ１８６への上方インタフェース１８４を有することを示している。集中型制御プレーン１７６は、アプリケーション１８８のための仮想ネットワーク（論理転送プレーン、ネットワークサービス、又は上位のネットワーク（データプレーン１８０のＮＥ１７０Ａ〜Ｈが下位のネットワークである）と呼ばれることもある）を形成する能力を有する。よって、集中型制御プレーン１７６は、全てのＮＤ及び構成済みＮＥ／ＶＮＥの全域的なビューを維持し、仮想ネットワークを下層のＮＤ群へ効率的にマッピングする（ハードウェア（ＮＤ、リンク、又はＮＤコンポーネント）の故障、追加、又は除去のいずれかを通じて物理ネットワークが変化する際に、これらのマッピングをメンテナンスすることを含む）。以下でさらに詳細に説明されるように、各ネットワークエレメントＮＥ１７０Ａ〜Ｈは、１つ又は複数のネットワークデバイスによって実装されてもよい。
【００２９】
ＮＥ１７０Ｅは、ノードのケイパビリティ及び／又はノードのリンクのケイパビリティの標識であるＭＳＤ値を含む。いくつかの実施形態において、ＭＳＤ値は、ＮＥ１７０Ｅにおいて静的に構成される、［０，２５４］のレンジ内の数値である。代替的な実施形態において、ＭＳＤ値は、ＩＧＰノードから再配信される。いくつかの実施形態において、ＭＳＤ値は、ネットワークデバイスに一意に関連付けられる。
【００３０】
ＭＳＤ値は、ノードＭＳＤ値であってもよく、ノードＭＳＤ値は、ＮＥ１７０Ｅによってサポートされるラベル（ＳＩＤ）の最大数を示す。いくつかの実施形態において、０という値は、ＮＥ１７０Ｅがいかなる長さのＳＲスタックをもプッシュするように動作可能ではなく、そうした機能性のために使用されるべきではないことを意味する。代替的に、ＭＳＤ値は、リンクＭＳＤ値であってもよく、リンクＭＳＤ値は、ＮＥ１７０Ｅのリンクによってサポートされるラベル（ＳＩＤ）の最大数を示す。いくつかの実施形態において、０という値は、リンクがいかなる長さのＳＲスタックをもプッシュするように動作可能ではなく、そうした機能性のために使用されるべきではないことを意味する。
【００３１】
ＮＥ１７０Ｅ及びネットワークコントローラ１７８は、ＢＧＰを含むように、及び、ネットワーク１００においてＢＧＰスピーカとして動作するように構成される。ピアリングのためのハンドシェイクの期間中に、２つのＢＧＰスピーカ（ＮＥ１７０Ｅ及びネットワークコントローラ１７８）の間でＯＰＥＮメッセージが交換される。ＮＥ１７０Ｅ及びネットワークコントローラ１７８は、セッションのケイパビリティを交渉する。２つのＢＧＰスピーカ（ＮＥ１７０Ｅ及びネットワークコントローラ１７８）がリンクステートＮＬＲＩ（Network  Layer  Reachability  Information）を交換する目的で、それらは、ＢＧＰケイパビリティ広告を使用して、双方がそのようなＮＬＲＩを適切に処理することが可能であることを保証する。ケイパビリティのこの交渉は、ＮＥ１７０Ｅ及びネットワークコントローラ１７８の各１つが、ＮＥ１７０ＥのＭＳＤ値が符号化されるＢＧＰ−ＬＳ拡張メッセージの送信のために、ここで提示されるＢＧＰ−ＬＳの新たな機能性をサポート可能であることの検証を含む。
【００３２】
ケイパビリティの交渉に続いて、ＮＥ１７０Ｅは、タスクボックス（１）において、ＭＳＤ値を、ネットワークコントローラ１７８へ送信されるべきＢＧＰリンクステート（ＢＧＰ−ＬＳ）拡張メッセージに符号化する。ＢＧＰ−ＬＳ拡張メッセージは、ＭＳＤ値のタイプを示すタイプと、ＭＳＤ値の長さを示す長さと、セグメントルーティングパスを可能にするためにネットワークデバイスによりサポートされる最低のＭＳＤ値を示すＭＳＤ値と、を含む。
【００３３】
いくつかの実施形態において、ＭＳＤ値は、ＮＥ１７０ＥのノードＭＳＤ値である。これらの実施形態のうちのいくつかにおいて、ノードＭＳＤ値は、ＢＧＰ−ＬＳのOpaqueノード属性（Opaque  Node  Attribute）ＴＬＶ（Type-Length-Value）内に符号化される。Opaqueノード属性ＴＬＶは、ネットワークエレメントによって広告されるノード属性ＴＬＶを搬送するエンベロープである。本発明の実施形態において、Opaqueノード属性ＴＬＶは、ＮＥ１７０ＥのノードＭＳＤ値を搬送するために使用される。ＮＥ１７０Ｅは、Opaqueノード属性ＴＬＶを使用して、自身の関連付けられるノードＭＳＤ値を他のＢＧＰスピーカ（例えば、ネットワークコントローラ１７８）へ広告する。図４Ａは、いくつかの実施形態に係る、ネットワークエレメントのノードＭＳＤ値を含む、例示的なOpaqueノード属性ＴＬＶを示す。Opaqueノード属性ＴＬＶは、タイプＴＬＶ（Type-Length-Value）のコンテナ４００である。タイプ４１０は、コンテナ４００内で送信される値のタイプを識別する値を含み、長さ４１２は、コンテナ４００内で送信される値の長さを特定し、Opaqueノード属性４１４は、ＮＥ１７０Ｅに関連付けられるＭＳＤ値を含む。いくつかの実施形態において、ＭＳＤ値は、レンジ［０，２５４］からの値であり、ＮＥ１７０Ｅによりサポートされるラベル（ＳＩＤ）の最大数を示す。
【００３４】
他の実施形態において、ＭＳＤ値は、ＮＥ１７０ＥのリンクＭＳＤである。Opaqueリンク属性（Opaque  Link  Attribute）ＴＬＶは、ネットワークエレメントによって広告されるリンク属性ＴＬＶを搬送するエンベロープである。ＮＥ１７０Ｅは、Opaqueリンク属性ＴＬＶを使用して、自身に関連付けられるリンクＭＳＤを他のＢＧＰスピーカ（例えば、ネットワークコントローラ１７８）へ広告する。図４Ｂは、いくつかの実施形態に係る、ネットワークエレメントのリンクＭＳＤ値を含む、例示的なOpaqueリンク属性ＴＬＶを示す。Opaqueノード属性ＴＬＶは、タイプＴＬＶ（Type-Length-Value）のコンテナ４０２である。タイプ４１６は、コンテナ４０２内で送信される値のタイプ（例えば、リンクＭＳＤタイプ）を識別する値を含み、長さ４１８は、コンテナ４０２内で送信される値の長さを特定し、Opaqueリンク属性４２０は、ＮＥ１７０Ｅに関連付けられるＭＳＤ値を含む。いくつかの実施形態において、リンクＭＳＤ値は、レンジ［０，２５４］からの値であり、ＮＥ１７０Ｅのリンクによりサポートされるラベル（ＳＩＤ）の最大数のうちの最も低い値を示す。
【００３５】
図１を再び参照すると、タスクボックス（２）において、ＮＥ１７０ＥのＭＳＤ値が、ネットワークコントローラ１７８へ送信される。いくつかの実施形態において、ＢＧＰ−ＬＳ拡張メッセージ内のＭＳＤ値（例えば、Opaqueノード属性ＴＬＶ又はOpaqueリンク属性ＴＬＶ）の符号化に続いて、メッセージが、ＮＥ１７０Ｅへ連結される全てのＢＧＰスピーカへ広告される。
【００３６】
タスクボックス（３）において、ネットワークコントローラ１７８は、ＢＧＰ−ＬＳ拡張メッセージを復号して、ネットワークデバイスの最大セグメント識別子深度（ＭＳＤ）値を抽出する。ＢＧＰ−ＬＳ拡張メッセージは、ＭＳＤ値のタイプを示すタイプと、ＭＳＤ値の長さを示す長さと、セグメントルーティングを可能にするためにネットワークデバイスによりサポートされる最低のＭＳＤ値を示すＭＳＤ値と、を含む。いくつかの実施形態において、一旦メッセージが復号され、ＭＳＤ値が抽出されると、計算されるルーティングパスのラベルスタック深度がネットワークエレメント１７０ＥによりサポートされるＭＳＤ値を超えないように、ネットワークコントローラ１７８によりそのＭＳＤ値を使用してＮＥ１７０Ｅを含むセグメントルーティングパスが計算される。いくつかの実施形態において、ＭＳＤ値は、ネットワークデバイスに一意に関連付けられる。
【００３７】
いくつかの実施形態において、ネットワークエレメント１７０Ｅは、ＳＲトンネル／パスのヘッドエンドであるネットワークノードである。よって、ネットワークコントローラ１７８へ送信されるＭＳＤ値は、ネットワークエレメント１７０ＥがそのＭＳＤ値に等しい最大深度の完全なラベル（ＳＩＤ）スタックをプッシュすることを可能にするＳＲパスを、当該ネットワークコントローラが計算できるようにする。
【００３８】
このように、ここで提示される実施形態は、ＢＧＰ−ＬＳ拡張を使用してネットワークノードのＭＳＤ値を外部アプリケーション（例えば、ＰＣＥ／ＳＤＮコントローラ、ネットワークコントローラ）に呈示する効率的な方法を説明している。本実施形態によれば、外部アプリケーションは、ネットワークエレメントに関するＭＳＤ情報を従来のアプローチよりも良好な粒度で受信することが可能となる。ネットワークデバイスがネットワークノードのノードＭＳＤ値を呈示することしか可能にしない従前のアプローチとは対照的に、図１〜図４Ｂを参照して説明した仕組みは、ネットワークデバイスがノードＭＳＤ値を呈示できることに加えて、リンクレベルでその関連付けられるＭＳＤ値を呈示することを可能にする。
【００３９】
フロー図における動作が、他の図面の例示的な実施形態を参照して説明されるであろう。しかしながら、それら他の図面を参照して議論されている実施形態とは別の本発明の実施形態によってフロー図の動作が実行されてもよいこと、及び、それら他の図面を参照して議論されている本発明の実施形態が、フロー図を参照して議論されている実施形態とは異なる動作を実行してもよいことが理解されるべきである。
【００４０】
図２は、いくつかの実施形態に係る、ネットワークデバイスのＭＳＤ値を呈示するための、ネットワークデバイスにおいて実行される動作２００のフロー図を示す。ブロック２０２において、ＮＥ１７０Ｅは、ＭＳＤ値をＢＧＰリンクステート（ＢＧＰ−ＬＳ）拡張メッセージへ符号化する。ＢＧＰ−ＬＳ拡張メッセージは、ＭＳＤ値のタイプを示すタイプと、ＭＳＤ値の長さを示す長さと、セグメントルーティングを可能にするためにネットワークデバイスによりサポートされる最低のＭＳＤ値を示すＭＳＤ値と、を含む。次いで、フローは、ブロック２０３に移る。
【００４１】
ブロック２０３において、ＮＥ１７０Ｅは、ＭＳＤ値を含むＢＧＰ−ＬＳ拡張メッセージをネットワークコントローラ１７８へ送信する。ネットワークコントローラ１７８は、受信したＭＳＤ値を使用して、ネットワークデバイスを含むセグメントルーティングパスを計算するように動作可能である。いくつかの実施形態において、ネットワークエレメント１７０Ｅは、ＳＲトンネル／パスのヘッドエンドであるネットワークノードである。よって、コントローラへ送信されるＭＳＤ値によって、ネットワークエレメントがそのＭＳＤ値に等しい最大深度の完全なラベル（ＳＩＤ）スタックをプッシュすることを可能にするＳＲパスを、当該コントローラが計算することが可能とされる。
【００４２】
図３は、いくつかの実施形態に係る、ネットワークコントローラにおいて実行される動作のフロー図を示す。ブロック３０２において、ネットワークコントローラ１７８は、ＢＧＰ（border  gateway  protocol）スピーカとして動作するネットワークデバイス（例えば、ＮＥ１７０Ｅ）からＢＧＰリンクステート（ＢＧＰ−ＬＳ）拡張メッセージを受信する。次いで、フローは、ブロック３０４に移る。
【００４３】
ブロック３０４において、ネットワークコントローラ１７８は、ＢＧＰ−ＬＳ拡張メッセージを復号して、ネットワークデバイスの最大セグメント識別子深度（ＭＳＤ）値を抽出する。ＢＧＰ−ＬＳ拡張メッセージは、ＭＳＤ値のタイプを示すタイプと、ＭＳＤ値の長さを示す長さと、セグメントルーティングを可能にするためにネットワークデバイスによりサポートされる最低のＭＳＤ値を示すＭＳＤ値と、を含む。いくつかの実施形態において、ＭＳＤ値は、ネットワークデバイスに一意に関連付けられる。
【００４４】
ブロック３０６において、ネットワークコントローラは、抽出されたＭＳＤ値を使用して、ネットワークデバイスを含むセグメントルーティング（ＳＲ）パスであって、ＭＳＤ値以下のラベルスタック深度を有する当該ＳＲパスを計算する。いくつかの実施形態において、ネットワークエレメント１７０Ｅは、ＳＲトンネル／パスのヘッドエンドであるネットワークノードである。よって、コントローラへ送信されるＭＳＤ値によって、ネットワークノードがそのＭＳＤ値に等しい最大深度の完全なラベル（ＳＩＤ）スタックをプッシュすることを可能にするＳＲパスを、当該コントローラが計算することが可能とされる。
【００４５】
ＢＧＰ−ＬＳ拡張メッセージに符号化されたＭＳＤ値を制御プレーンのネットワークコントローラへ送信するネットワークデバイスと共に本発明の実施形態が説明されているが、本発明は、それに限定されるわけではない。代替的な実施形態は、上記ネットワークデバイスへ連結され及びＭＳＤ値を含むＢＧＰ−ＬＳ拡張メッセージを復号するように動作可能な何らかのタイプのネットワークエレメントへＭＳＤ値が送信されるように実装されてもよい。
【００４６】
アーキテクチャ
典型的には、ネットワークデバイスは、１つ以上のラインカードのセット、１つ以上の制御カードのセット、及び任意で、１つ以上のサービスカード（リソースカードと呼ばれることもある）のセットを含む。これらのカードは、１つ以上の相互接続の仕組み（例えば、ラインカードを連結する第１のフルメッシュ、及びカード全てを連結する第２のフルメッシュ）を通じて共に連結される。ラインカードのセットは、データプレーンを構成し、一方、制御カードのセットは、制御プレーンを提供し、ラインカードを通じて外部ネットワークデバイスとパケットを交換する。サービスカードのセットは、専門的な処理（例えば、レイヤ４からレイヤ７のサービス（例えば、ファイアウォール、インターネットプロトコルセキュリティ（ＩＰｓｅｃ）、侵入検出システム（ＩＤＳ）、ピアツーピア（Ｐ２Ｐ）、ボイスオーバＩＰ（ＶｏＩＰ）セッションボーダコントローラ、モバイルワイヤレスゲートウェイ（ＧＰＲＳ（Gateway  General  Packet  Radio  Service）サポートノード（ＧＧＳＮ）、ＥＰＣ（Evolved  Packet  Core）ゲートウェイ）））を提供することができる。例として、サービスカードは、ＩＰｓｅｃトンネルを終端し、付随する認証及び暗号化アルゴリズムを実行するために使用されてもよい。
【００４７】
図５Ａは、本発明のいくつかの実施形態に係る、例示的なネットワーク内のネットワークデバイス（ＮＤ）の間の接続性、及びＮＤの３つの例示的な実装を示す。図５Ａは、ＮＤ５００Ａ〜Ｈを示し、Ａ−Ｂ、Ｂ−Ｃ、Ｃ−Ｄ、Ｄ−Ｅ、Ｅ−Ｆ、Ｆ−Ｇ、及びＡ−Ｇ、並びにＨとＡ、Ｃ、Ｄ及びＧの各々との間の直線によってそれらの接続性を示す。これらのＮＤは、物理デバイスであり、これらのＮＤ間の接続性は、無線であっても又は有線であってもよい（しばしばリンクと呼ばれる）。ＮＤ５００Ａ、Ｅ、及びＦから延びる追加の直線は、これらのＮＤが、ネットワークのための入口及び出口ポイントとして動作することを示している（したがって、これらのＮＤは、エッジＮＤと呼ばれることもあり、他のＮＤはコアＮＤと呼ばれてもよい）。
【００４８】
図５Ａにおける例示的なＮＤの実装のうちの２つが：１）カスタムＡＳＩＣ（application-specific  integrated-circuit）とプロプライエタリＯＳ（operating  system）とを使用する専用ネットワークデバイス５０２；及び、２）ＣＯＴＳ（common  off-the-shelf）プロセッサと標準ＯＳとを使用する汎用ネットワークデバイス５０４である。
【００４９】
専用ネットワークデバイス５０２は、計算リソース５１２（典型的には、１つ以上のプロセッサのセットを含む）、転送リソース５１４（典型的には、１つ以上のＡＳＩＣ及び／又はネットワークプロセッサを含む）、並びに物理ネットワークインタフェース（ＮＩ）５１６（物理ポートと呼ばれることもある）、並びにネットワーキングソフトウェア５２０を記憶している非一時的な機械読取可能な記憶媒体５１８を含むネットワーキングハードウェア５１０を含む。物理ＮＩは、ＮＤ５００Ａ〜Ｈ間の接続性によって示されるように、ネットワーク接続を（例えば、ワイヤレスネットワークインタフェースコントローラ（ＷＮＩＣ）を通じて無線で、又はネットワークインタフェースコントローラ（ＮＩＣ）に接続される物理ポートにケーブルでプラグ接続することを通じて）仲介するＮＤ内のハードウェアである。動作中に、ＢＧＰ−ＬＳ  ＭＳＤ値エンコーダ５２０は、ネットワークハードウェア５１０によって実行されて、ＢＧＰ−ＬＳ  ＭＳＤ値エンコーダインスタンス５３３Ａ〜Ｒを含む１つ以上のネットワークソフトウェアインスタンス５２２のセットをインスタンス化してもよい。ネットワーキングソフトウェアインスタンス５２２の各々、及びそのネットワークソフトウェアインスタンスを実行するネットワーキングハードウェア５１０のその部分（そのネットワーキングソフトウェアインスタンス専用のハードウェア、及び／又はそのネットワーキングソフトウェアインスタンスとその他のネットワークソフトウェアインスタンス５２２によって一時的に共有されるハードウェアのタイムスライスとする）が、別々の仮想ネットワークエレメント５３０Ａ〜Ｒを形成する。動作中に、ＢＧＰ−ＬＳ  ＭＳＤ値エンコーダは、図１、図２、及び図４Ａ〜４Ｂを参照して説明した動作を実行するように動作可能である。仮想ネットワークエレメント（ＶＮＥ）５３０Ａ〜Ｒの各々は、（ローカル制御モジュール又は制御通信モジュールと呼ばれることもある）制御通信／構成モジュール５３２Ａ〜Ｒ、及び転送テーブル５３４Ａ〜Ｒを含み、それにより、所与の仮想ネットワークエレメント（例えば、５３０Ａ）は、制御通信／構成モジュール（例えば、５３２Ａ）、１つ以上の転送テーブルのセット（例えば、５３４Ａ）、及びネットワーキングハードウェア５１０の仮想ネットワークエレメント（例えば、５３０Ａ）を実行する部分を含む。
【００５０】
専用ネットワークデバイス５０２は、しばしば物理的及び／又は論理的に、次のものを含むものと考えられる：１）制御通信／構成モジュール５３２Ａ〜Ｒを実行する計算リソース５１２を含むＮＤ制御プレーン５２４（制御プレーンと呼ばれることもある）；及び、２）転送テーブル５３４Ａ〜Ｒ及び物理ＮＩ５１６を利用する転送リソース５１４を含むＮＤ転送プレーン５２６（転送プレーン、データプレーン、又はメディアプレーンと呼ばれることもある）。例として、ＮＤがルータである（又はルーティング機能性を実装している）場合において、ＮＤ制御プレーン５２４（制御通信／構成モジュール５３２Ａ〜Ｒを実行する計算リソース５１２）は、典型的には、データ（例えば、パケット）がどのようにルーティングされるべきか（例えば、データのための次の中継点、及びそのデータのためのアウトゴーイング物理ＮＩ）の制御に関与すること、並びに転送テーブル５３４Ａ〜Ｒ内のそのルーティング情報を記憶することを担当し、ＮＤ転送プレーン５２６は、物理ＮＩ５１６についてのデータを受信すること、及び転送テーブル５３４Ａ〜Ｒに基づいてそのデータを物理ＮＩ５１６のうちの適当なものへ転送することを担当する。
【００５１】
図５Ｂは、本発明のいくつかの実施形態に係る、専用ネットワークデバイス５０２を実装するための例示的な方法を示す。図５Ｂは、（典型的にはホットプラグ対応である）カード５３８を含む専用ネットワークデバイスを示す。いくつかの実施形態において、カード５３８には、２つのタイプ（ＮＤ転送プレーン５２６（ラインカードと呼ばれることもある）として動作する１つ以上、及び、ＮＤ制御プレーン５２４（制御カードと呼ばれることもある）を実装するように動作する１つ以上）があるが、代替的な実施形態において、単一のカードへ機能性が組み合わせられてもよく、及び／又は追加のカードタイプが含まれてもよい（例えば、カードの１つの追加タイプは、サービスカード、リソースカード、又はマルチアプリケーションカードと呼ばれる）。サービスカードは、専門的な処理（例えば、レイヤ４からレイヤ７のサービス（例えば、ファイアウォール、インターネットプロトコルセキュリティ（ＩＰｓｅｃ）（ＲＦＣ４３０１及び４３０９）、セキュアソケットレイヤ（ＳＳＬ）／トランスポートレイヤセキュリティ（ＴＬＳ）、侵入検出システム（ＩＤＳ）、ピアツーピア（Ｐ２Ｐ）、ボイスオーバＩＰ（ＶｏＩＰ）セッションボーダコントローラ、モバイルワイヤレスゲートウェイ（ＧＰＲＳ（Gateway  General  Packet  Radio  Service）サポートノード（ＧＧＳＮ）、ＥＰＣ（Evolved  Packet  Core）ゲートウェイ））を提供することができる。例として、サービスカードは、ＩＰｓｅｃトンネルを終端し、付随する認証及び暗号化アルゴリズムを実行するために使用されてもよい。これらのカードは、バックプレーン５３６として示される１つ以上の相互接続の仕組み（例えば、ラインカードを連結する第１のフルメッシュ、及びカード全てを連結する第２のフルメッシュ）を通じて共に連結される。
【００５２】
図５Ａに戻ると、汎用ネットワークデバイス５０４は、（しばしば、ＣＯＴＳプロセッサである）１つ以上のプロセッサ５４２のセット、及び（物理ＮＩ５４６を含む）ネットワークインタフェースコントローラ５４４（ＮＩＣ；ネットワークインタフェースカードとしてもいう）、並びにソフトウェア５５０を記憶している一時的な機械読取可能な記憶媒体５４８を含むハードウェア５４０を含む。動作中に、プロセッサ５４２は、ソフトウェア５５０を実行して、１つ以上のアプリケーション５６４Ａ〜Ｒの１つ以上のセットをインスタンス化する。１つの実施形態が、仮想化を実装する一方、代替的な実施形態は、仮想化レイヤ５５４及びソフトウェアコンテナ５６２Ａ〜Ｒによって表される仮想化の異なる形態を使用してもよい。例えば、そのような１つの代替的な実施形態は、オペレーティングシステムレベルの仮想化を実装し、その場合において、仮想化レイヤ５５４は、アプリケーションのセット５６４Ａ〜Ｒのうちの１つを実行するために各々が使用され得る複数のソフトウェアコンテナ５６２Ａ〜Ｒを有効化する、オペレーティングシステムのカーネル（又は、基本オペレーティングシステム上で稼働するシム（shim））を表す。本実施形態において、複数のソフトウェアコンテナ５６２Ａ〜Ｒ（仮想化エンジン、仮想専用サーバ、又はｊａｉｌとも呼ばれる）は、各々がユーザ空間インスタンス（典型的には、仮想メモリ空間）である。これらのユーザ空間インスタンスは、互いに分離されており、及び、オペレーティングシステムが実行されるカーネル空間から分離されている。明示的に許可されない限り、所与のユーザ空間内で稼働するアプリケーションのセットは、他のプロセスのメモリにアクセスできない。そのような別の代替的な実施形態は、完全仮想化を実装し、その場合において：１）仮想化レイヤ５５４は、ハイパバイザ（仮想マシンモニタ（ＶＭＭ）と呼ばれることもある）、又はホストオペレーティングシステムのトップで稼働するハイパバイザを表し；及び、２）ソフトウェアコンテナ５６２Ａ〜Ｒは、各々ハイパバイザにより実行される仮想マシンと呼ばれる強固に隔離された形態のソフトウェアコンテナを表し、ゲストオペレーティングシステムを含み得る。仮想マシンは、プログラムが物理的な非仮想化マシン上で実行されているかのように、プログラムを実行する物理マシンのソフトウェア実装である。アプリケーションは、概して、“ベアメタル”ホスト電子デバイス上で稼働するのとは対照的に、それらが仮想マシン上で稼働していることを知らないが、いくつかのシステムは、オペレーティングシステム又はアプリケーションが最適化のために仮想化の存在を認識することを可能にする、準仮想化を提供する。
【００５３】
１つ以上のアプリケーション５６４Ａ〜Ｒの１つ以上のセット、並びに、実装される場合は仮想化レイヤ５５４及びソフトウェアコンテナ５６２Ａ〜Ｒをインスタンス化した結果は、まとめてソフトウェアインスタンス５５２と呼ばれる。アプリケーションの各セット５６４Ａ〜Ｒ、実装される場合は対応するソフトウェアコンテナ５６２Ａ〜Ｒ、並びにハードウェア５４０のそれらを実行する部分（その実行専用のハードウェア、及び／又はソフトウェアコンテナ５６２Ａ〜Ｒによって一時的に共有されるハードウェアのタイムスライスとする）が、別々の仮想ネットワークエレメント５６０Ａ〜Ｒを形成する。
【００５４】
仮想ネットワークエレメント５６０Ａ〜Ｒは、仮想ネットワークエレメント５３０Ａ〜Ｒと同様、例えば、制御通信／構成モジュール５３２Ａ及び転送テーブル５３４Ａと同様の機能性を実行する（ハードウェア５４０のこの仮想化は、ネットワーク機能仮想化（ＮＦＶ）と呼ばれることがある）。したがって、多くのネットワーク機器タイプを、業界標準の大容量サーバハードウェア、物理スイッチ、及び物理ストレージ上へ統合するために、ＮＦＶが使用されてもよく、それらはデータセンタ、ＮＤ、及び顧客構内機器（ＣＰＥ）に位置し得るはずである。一方、本発明の様々な実施形態は、ソフトウェアコンテナ５６２Ａ〜Ｒのうちの１つ以上を異なるように実装してもよい。例えば、本発明の実施形態は、各ソフトウェアコンテナ５６２Ａ〜Ｒが１つのＶＮＥ５６０Ａ〜Ｒに対応しているように示されているが、代替的な実施形態では、より精細なレベルの粒度で上記対応が実装されてもよい（例えば、ラインカード仮想マシンがラインカードを仮想化し、制御カード仮想マシンが制御カードを仮想化するなど）。理解されるべきこととして、ソフトウェアコンテナ５６２Ａ〜ＲのＶＮＥとの対応関係を参照してここで説明した技法は、そうしたより精細なレベルの粒度が使用される実施形態にもあてはまる。
【００５５】
ある実施形態において、仮想化レイヤ５５４は、同様の転送サービスを物理イーサネットスイッチとして提供する仮想スイッチを含む。具体的には、この仮想スイッチは、ソフトウェアコンテナ５６２Ａ〜Ｒ及びＮＩＣ５４４の間で、並びに任意で、ソフトウェアコンテナ５６２Ａ〜Ｒ間で、トラフィックを転送する。さらにこの仮想スイッチは、ポリシーにより互いに通信することが許可されないＶＮＥ５６０Ａ〜Ｒの間で、（例えば、仮想ローカルエリアネットワーク（ＶＬＡＮ）を履行することにより）ネットワーク隔離を実施してもよい。
【００５６】
図５Ａにおける第３の例示的なＮＤの実装例は、ハイブリッドネットワークデバイス５０６であり、それは、単一のＮＤ又はＮＤ内の単一のカードにおけるカスタムＡＳＩＣ／プロプライエタリＯＳ、及びＣＯＴＳプロセッサ／標準ＯＳの双方を含む。このようなハイブリッドネットワークデバイスのある実施形態において、プラットフォームＶＭ（即ち、専用ネットワークデバイス５０２の機能性を実装するＶＭ）が、ハイブリッドネットワークデバイス５０６内に存在するネットワーキングハードウェアに準仮想化を提供してもよい。
【００５７】
上記のＮＤの例示的実装に関わらず、ＮＤによって実装される複数のＶＮＥのうちの単一のＶＮＥを考慮する場合（例えば、ＶＮＥのうちの１つだけが、所与の仮想ネットワークの一部である）、又は単一ＶＮＥのみがＮＤによってその時点で実装されている状況では、そのＶＮＥへ言及するために短縮期間型（shortened  term）のネットワークエレメント（ＮＥ）が使用されることがある。さらに、上記例示的実装の全てにおいて、ＶＮＥの各々（例えば、ＶＮＥ５０３Ａ〜Ｒ、ＶＮＥ５６０Ａ〜Ｒ、及びハイブリッドネットワークデバイス５０６におけるそれら）は、物理ＮＩ（例えば、５１６、５４６）上でデータを受信し、そのデータを、物理ＮＩ（例えば、５１６、５４６）のうちの適切なものに転送する。例えば、ＩＰルータの機能性を実装するＶＮＥは、ＩＰパケット内のＩＰヘッダ情報のうちのいくつかに基づいて、ＩＰパケットを転送する。その場合に、ＩＰヘッダ情報は、ソースＩＰアドレス、宛先ＩＰアドレス、ソースポート、宛先ポート（“ソースポート”及び“宛先ポート”は、ＮＤの物理ポートとは対照的に、ここではプロトコルポートをいう）、トランスポートプロトコル（例えば、ＵＤＰ（user  datagram  protocol）（ＲＦＣ７６８、２４６０、２６７５、４１１３、及び５４０５）、ＴＣＰ（Transmission  Control  Protocol）（ＲＦＣ７９３及び１１８０）、並びにＤＳＣＰ（differentiated  services）値（ＲＦＣ２４７４、２４７５、２５９７、２９８３、３０８６、３１４０、３２４６、３２４７、３２６０、４５９４、５８６５、３２８９、３２９０、及び３３１７））を含む。
【００５８】
図５Ｃは、本発明のいくつかの実施形態に係る、ＶＮＥが連結され得る多様な例示的な方法を示す。図５Ｃは、ＮＤ５００Ａ内に実装されるＶＮＥ５７０Ａ．１〜５７０Ａ．Ｐ（及び、任意で、ＶＮＥ５７０Ａ．Ｑ〜５７０Ａ．Ｒ）、並びにＮＤ５００Ｈ内のＶＮＥ５７０Ｈ．１を示す。図５Ｃにおいて、ＶＮＥ５７０Ａ．１〜Ｐは、それらがＮＤ５００Ａの外部からパケットを受信し、パケットをＮＤ５００Ａの外部に転送することができるという意味で、互いに分離している。ＶＮＥ５７０Ａ．１は、ＶＮＥ５７０Ｈ．１へ連結され、したがってそれらはそれぞれのＮＤ間でパケットを通信する。ＶＮＥ５７０Ａ．２〜５７０Ａ．３は、随意的に、パケットをＮＤ５００Ａの外部に転送することなくそれ自体の間でパケットを転送してもよい。ＶＮＥ５７０Ａ．Ｐは、随意的に、ＶＮＥ５７０Ａ．Ｑを含みＶＮＥ５７０Ａ．Ｒが後に続くＶＮＥのチェーン内の最初のＶＮＥであってもよい（これは、ダイナミックサービスチェーンと呼ばれることもあり、そこで、一連のＶＮＥの中のＶＮＥの各々が、異なるサービス、例えば、１つ以上のレイヤ４〜７ネットワークサービスを提供する）。図５Ｃは、多様な例示的なＶＮＥ間の関係性を示しているが、代替的な実施形態は、他の関係性（例えば、より多くの／より少ないＶＮＥ、より多くの／より少ないダイナミックサービスチェーン、いくつかの共通ＶＮＥ及びいくつかの異なるＶＮＥを有する複数の異なるダイナミックサービスチェーン）をサポートしてもよい。
【００５９】
図５ＡのＮＤは、インターネット又はプライベートネットワークの一部を形成してもよく、他の電子デバイス（図示せず、ワークステーション、ラップトップ、ネットブック、タブレット、パームトップ、携帯電話、スマートフォン、ファブレット、マルチメディアフォン、ＶＯＩＰ（Voice  Over  Internet  Protocol）フォン、端末、ポータブルメディアプレーヤ、ＧＰＳユニット、ウェアラブルデバイス、ゲーミングシステム、セットトップボックス、インターネット対応家庭用電化製品を含むエンドユーザデバイスなど）が、ネットワークに（直接、又はアクセスネットワークなどの他のネットワークを通じて）連結されて、互いに（直接若しくはサーバを通じて）、並びに／又はアクセスコンテンツ及び／若しくはサービスにネットワーク（例えば、インターネット、又は／インターネット上に重畳された（例えば、インターネットを通じてトンネリングされた）ＶＰＮ）を介して通信してもよい。このようなコンテンツ及び／又はサービスは、典型的には、サービス／コンテンツプロバイダに属する１つ以上のサーバ（図示せず）、又はピアツーピア（Ｐ２Ｐ）サービスに参加しているエンドユーザデバイス（図示せず）によって提供され、例えば、公共のウェブページ（例えば、無料コンテンツ、ストアフロント、検索サービス）、個人的なウェブページ（例えば、ユーザ名／パスワードでアクセスされる、電子メールサービスを提供するウェブページ）、及び／又はＶＰＮ経由の企業ネットワークを含んでもよい。例えば、エンドユーザデバイスは、エッジＮＤに（例えば、アクセスネットワークへ連結される顧客構内機器を通じて（有線又は無線で））連結されてもよく、エッジＮＤは、サーバとして動作する電子デバイスへ連結される他のエッジＮＤに（例えば、１つ以上のコアＮＤを通じて）連結される。一方、計算及び記憶仮想化を通じて、図５ＡにおいてＮＤとして動作する電子デバイスのうちの１つ以上は、また、１つ以上のそのようなサーバ（例えば、汎用ネットワークデバイス５０４の場合、ソフトウェアコンテナ５６２Ａ〜Ｒのうちの１つ以上が、サーバとして動作してもよく、ハイブリッドネットワークデバイス５０６についても同じことが言える。専用ネットワークデバイス５０２の場合、１つ以上のそのようなサーバが、計算リソース５１２によって実行される仮想化レイヤ上で稼働してもよい）をホスティングしてもよく、その場合、サーバは、そのＮＤのＶＮＥと共設されていると言える。
【００６０】
仮想ネットワークは、ネットワークサービス（例えば、Ｌ２及び／又はＬ３サービス）を提供する物理ネットワーク（図５Ａにおけるものなど）の論理的な抽象化である。仮想ネットワークは、ネットワークサービス（例えば、レイヤ２（Ｌ２、データリンク層）及び／若しくはレイヤ３（Ｌ３、ネットワーク層）サービス）を下位のネットワーク（例えば、トンネル（例えば、ＧＲＥ（generic  routing  encapsulation）、Ｌ２ＴＰ（layer  2  tunneling  protocol）、ＩＰＳｅｃ）を使用して上位のネットワークを作り出す、ＩＰ（Internet  Protocol）ネットワークなどのＬ３ネットワーク）を介して提供する、上位のネットワーク（ネットワーク仮想化オーバレイと呼ばれることもある）として実装されてもよい。
【００６１】
ネットワーク仮想化エッジ（ＮＶＥ）は、下位のネットワークのエッジにあり、ネットワーク仮想化の実装に関係する。ＮＶＥのネットワークに面した側は、下位のネットワークを使用して他のＮＶＥとの間でフレームをトンネリングする。ＮＶＥの外向きの側は、ネットワーク外部のシステムへデータを送信し、及びネットワーク外部のシステムからデータを受信する。仮想ネットワークインスタンス（ＶＮＩ）は、ＮＶＥ（例えば、ＮＤ上のＮＥ／ＶＮＥ、そのＮＥ／ＶＮＥがエミュレーションによって複数ＶＮＥに分割されているＮＤ上のＮＥ／ＶＮＥの一部）上の仮想ネットワークの固有のインスタンスである。１つ以上のＶＮＩは、（例えば、ＮＤ上の異なるＶＮＥとして）１つのＮＶＥ上にインスタンス化され得る。仮想アクセスポイント（ＶＡＰ）は、外部システムを仮想ネットワークへ接続するためのＮＶＥ上の論理的な接続ポイントである。ＶＡＰは、論理インタフェース識別子（例えば、ＶＬＡＮ  ＩＤ）によって識別される物理的な又は仮想的なポートであってよい。
【００６２】
ネットワークサービスの例は、次を含む：１）イーサネットＬＡＮエミュレーションサービス（ＩＥＴＦ（Internet  Engineering  Task  Force）ＭＰＬＳ（Multiprotocol  Label  Switching）又はイーサネットＶＰＮ（ＥＶＰＮ）サービスと同様の、イーサネットベースのマルチポイントサービス）  …  そこでは、外部システムが、下位のネットワークを介したＬＡＮ環境によりネットワークをわたって相互接続される（例えば、ＮＶＥが、そのような異なる仮想ネットワークのための別個のＬ２  ＶＮＩ（virtual  switching  instance）、及び下位のネットワークにわたるＬ３（例えば、ＩＰ／ＭＰＬＳ）トンネリングカプセル化を提供する）；及び、２）仮想化ＩＰ転送サービス（サービス定義の視点からは、ＩＥＴＦ  ＩＰ  ＶＡＮ（例えば、ＢＧＰ／ＭＰＬＳ  ＩＰＶＰＮ  ＲＦＣ４３６４）と同様）  …  そこでは、外部システムが、下位のネットワークを介したＬ３環境によりネットワークにわたって相互接続される（例えば、ＮＶＥが、そのような異なる仮想ネットワークのための別個のＬ３  ＶＮＩ（転送及びルーティングインスタンス）、及び下位のネットワークにわたるＬ３（例えば、ＩＰ／ＭＰＬＳ）トンネリングカプセル化を提供する）。また、ネットワークサービスは、サービス品質ケイパビリティ（例えば、トラフィック分類マーキング、トラフィック調整及びスケジューリング）、セキュリティケイパビリティ（例えば、ネットワーク由来の攻撃から顧客構内を保護し、異常なルーティングアナウンスメントを回避するためのフィルタ）、並びに管理ケイパビリティ（例えば、フル検出及び処理）を含んでもよい。
【００６３】
図５Ｄは、図５ＡのＮＤの各々に単一のネットワークエレメント（ＮＥ）を有するネットワークを示しており、この簡易なアプローチにおいて、（一般に、従来のルータにより使用される）従来の分散型アプローチが、本発明のいくつかの実施形態に係る（ネットワーク制御とも呼ばれる）到達可能性／転送情報を維持するための集中型アプローチと対比される。具体的には、図５Ｄは、図５ＡのＮＤ５００Ａ〜Ｈと同一の接続性を有するネットワークエレメント（ＮＥ）５７０Ａ〜Ｈを示す。
【００６４】
図５Ｄは、分散型アプローチ７２がＮＥ５７０Ａ〜Ｈにわたって到達可能性／転送情報を生成する役割を分散する。言い換えると、近隣探索及びトポロジー発見の処理が分散される。
【００６５】
例えば、専用ネットワークデバイス５０２が使用されている場合において、ＮＤ制御プレーン５２４の制御通信／構成モジュール５３２Ａ〜Ｒは、典型的には、他のＮＥと通信してルートを交換し、次いで１つ以上のルーティングメトリックに基づいてそれらのルートを選択する、１つ以上のルーティングプロトコル（例えば、ＢＧＰ（border  gateway  protocol）（ＲＦＣ４２７１）、ＩＧＰ（Interior  Gateway  Protocol(s)）（例えば、ＯＳＰＦ（ＲＦＣ２３２８及び５３４０）、ＩＳ−ＩＳ（ＲＦＣ１１４２）、ＲＩＰ（バージョン１  ＲＦＣ１０５８、バージョン２  ＲＦＣ２４５３、及び次世代ＲＦＣ２０８０））、ＬＤＰ（ＲＦＣ５０３６）、ＲＳＶＰ（ＲＦＣ２２０５、２２１０、２２１１、２２１２、及びＲＳＶＰ−トラフィックエンジニアリング（ＴＥ）：ＬＳＰトンネルＲＦＣ３２０９のためのＲＳＶＰの拡張、ＧＭＰＬＳ（Generalized  Multi-Protocol  Label  Switching）シグナリングＲＳＶＰ−ＴＥ  ＲＦＣ３４７３、ＲＦＣ３９３６、４４９５、及び４５５８））を実装するための到達可能性／転送情報モジュールを含む。したがって、ＮＥ５７０Ａ〜Ｈ（例えば、制御通信／構成モジュール５３２Ａ〜Ｒを実行する計算リソース５１２）は、分散的にネットワーク内の到達可能性を判定し及びそれぞれの転送情報を計算することによって、データ（例えば、パケット）がどのようにルーティングされるべきか（例えば、データのための次の中継点、及びそのデータのための発信物理ＮＩ）を制御することに関与するそれらの役割を実行する。ルート及び隣接関係（adjacencies）は、ＮＤ制御プレーン５２４上の１つ以上のルーティング構造（例えば、ルーティング情報ベース（ＲＩＢ）、ラベル情報ベース（ＬＩＢ）、１つ以上の隣接構造）に記憶される。ＮＤ制御プレーン５２４は、ルーティング構造に基づいて、情報（例えば、隣接関係及びルーティング情報）と共にＮＤ転送プレーン５２６をプログラムする。例えば、ＮＤ制御プレーン５２４は、ＮＤ転送プレーン５２６上の１つ以上の転送テーブル５３４Ａ〜Ｒ（例えば、転送情報ベース（ＦＩＢ）、ラベル転送情報ベース（ＬＦＩＢ）、及び１つ以上の隣接関係構造）へ、隣接関係及びルーティング情報をプログラムする。レイヤ２転送の場合、ＮＤは、そのデータ内のレイヤ２情報に基づいてデータを転送するために使用される、１つ以上のブリッジングテーブルを記憶することができる。上記の例は、専用ネットワークデバイス５０２を使用するが、同じ分散型アプローチ５７２が、汎用ネットワークデバイス５０４及びハイブリッドネットワークデバイス５０６上で実装されてもよい。
【００６６】
図５Ｄは、（ソフトウェア定義ネットワーキング（ＳＤＮ）としても知られる）集中型アプローチ５７４が、トラフィックの送信場所に関する決定を行うシステムを、選択された宛先へトラフィックを転送する下位システムから分離することを示す。例示された集中型アプローチ５７４は、集中型制御プレーン５７６（ＳＤＮ制御モジュール、コントローラ、ネットワークコントローラ、ＯｐｅｎＦｌｏｗコントローラ、ＳＤＮコントローラ、制御プレーンノード、ネットワーク仮想化権限、又は管理制御エンティティ）内の到達可能性／転送情報の生成の役割を有し、したがって、近隣探索及びトポロジー発見が一元的に行われる。集中型制御プレーン５７６は、ＮＥ５７０Ａ〜Ｈ（スイッチ、転送エレメント、データプレーンエレメント、又はノードと呼ばれることもある）を含むデータプレーン５８０（基盤レイヤ、ネットワーク転送プレーン、又は転送プレーン（ＮＤ転送プレーンと混同されるべきでない）と呼ばれることもある）を有する下方インタフェース５８２を有する。集中型制御プレーン５７６は、ネットワークコントローラ５７８を含み、ネットワークコントローラ５７８は、ネットワーク内の到達可能性を判定し、（ＯｐｅｎＦｌｏｗプロトコルを使用し得る）下方インタフェース５８２を介して転送情報をデータプレーン５８０のＮＥ５７０Ａ〜Ｈへ配信する集中型到達可能性／転送情報モジュール５７９を含む。よって、ネットワークインテリジェンスは、典型的にはＮＤとは別の電子デバイス上で稼働する集中型制御プレーン５７６に一元化される。
【００６７】
例えば、専用ネットワークデバイス５０２がデータプレーン５８０内で使用される場合、ＮＤ制御プレーン５２４の制御通信／構成モジュール５３２Ａ〜Ｒの各々は、典型的には、下方インタフェース５８２のＶＮＥ側を提供する制御エージェントを含む。この場合、ＮＤ制御プレーン５２４（制御通信／構成モジュール５３２Ａ〜Ｒを実行する計算リソース５１２）は、データ（例えば、パケット）がどのようにルーティングされるか（例えば、データのための次の中継点、及びそのデータのための発信物理ＮＩ）を、集中型制御プレーン５７６と通信して集中型到達可能性／転送情報モジュール５７９から転送情報（いくつかの場合、到達可能性情報）を受信する制御エージェントを通じて制御することに関与する役割を実行する。（本発明のいくつかの実施形態において、制御通信／構成モジュール５３２Ａ〜Ｒは、集中型制御プレーン５７６と通信することに加えて、分散型アプローチの場合よりも少ないとしても、到達可能性を判定し、及び／又は転送情報を計算する何らかの役割を果たしてもよいことを理解すべきである。そのような実施形態は、概して集中型アプローチ５７４の範疇であると見なされるが、ハイブリッドアプローチと見なされてもよい）。
【００６８】
上記の例が専用ネットワークデバイス５０２を使用している一方で、同じ集中型アプローチ５７４が、汎用ネットワークデバイス５０４及びハイブリッドネットワークデバイス５０６を用いて実装されてもよい（例えば、ＶＮＥ５６０Ａ〜Ｒの各々が、データ（例えば、パケット）がどのようにルーティングされるか（例えば、データのための次の中継点、及びそのデータのための発信物理ＮＩ）を、集中型制御プレーン５７６と通信して集中型到達可能性／転送情報モジュール５７９から転送情報（いくつかの場合、到達可能性情報）を受信することによって制御する役割を実行する。（本発明のいくつかの実施形態において、ＶＮＥ５６０Ａ〜Ｒは、集中型制御プレーン５７６と通信することに加えて、分散型アプローチの場合よりも少ないとしても、到達可能性を判定し、及び／又は転送情報を計算する何らかの役割を果たし得ることを理解すべきである）。実際には、ＮＦＶは、ＳＤＮソフトウェアが実行され得る基盤を提供することによってＳＤＮをサポートすることができ、ＮＦＶ及びＳＤＮ双方が、コモディティサーバハードウェア及び物理スイッチを使用することを目的とするため、ＳＤＮ技術の使用は、汎用ネットワークデバイス５０４又はハイブリッドネットワークデバイス５０６の実装において典型的に使用されるＮＦＶ技術を拡張することができる。
【００６９】
図５Ｄは、また、集中型制御プレーン５７６が、アプリケーション５８８が存在するアプリケーションレイヤ５８６への上方インタフェース５８４を有することを示す。集中型制御プレーン５７６は、アプリケーション５８８のための仮想ネットワーク５９２（論理転送プレーン、ネットワークサービス、又は上位のネットワーク（データプレーン５８０のＮＥ５７０Ａ〜Ｈが下位のネットワークである）と呼ばれることもある）を形成する能力を有する。よって、集中型制御プレーン５７６は、全てのＮＤ及び構成済みＮＥ／ＶＮＥを全体的に維持し、それは、仮想ネットワークを下位のＮＤに効率的にマッピングする（ハードウェア（ＮＤ、リンク、又はＮＤコンポーネント）の故障、追加、又は除去のいずれかを通じて物理ネットワークが変化する際に、これらのマッピングをメンテナンスすることを含む）。
【００７０】
図５Ｄは、集中型アプローチ５７４とは別個に分散型アプローチ５７２を示しているが、ネットワーク制御の負荷が、本発明のある実施形態において、異なる形で分散され、又は２つが組み合わせられてもよい。例えば：１）実施形態は、概して、集中型アプローチ（ＳＤＮ）５７４を使用してもよく、但しある機能へＮＥに委任される（例えば、分散型アプローチが、障害モニタリング、性能モニタリング、保護スイッチング、並びに近隣及び／又はトポロジー発見のためのプリミティブのうちの１つ以上を実装するために使用されてもよい）；又は、２）本発明の実施形態は、集中型制御プレーン及び分散型プロトコルの双方によって近隣探索及びトポロジー発見を実行して、それらが合致しない例外を提起するために結果が比較されてもよい。このような実施形態は、概して集中型アプローチ５７４の範疇であると見なされるが、ハイブリッドアプローチと見なされてもよい。
【００７１】
図５Ｄは、ＮＤ５００Ａ〜Ｈの各々が単一のＮＥ５７０Ａ〜Ｈを実装する単純な場合を示しているが、理解されるべきこととして、図５Ｄを参照して説明したネットワーク制御のアプローチは、ＮＤ５００Ａ〜Ｈのうちの１つ以上が複数のＶＮＥ（例えば、ＶＮＥ５３０Ａ〜Ｒ、ＶＮＥ５６０Ａ〜Ｒ、ハイブリッドネットワークデバイス５０６内のそれら）を実装するネットワークに対しても動作する。代替的に、又は追加的に、ネットワークコントローラ５７８は、単一のＮＤ内の複数のＶＮＥの実装をエミュレートしてもよい。具体的には、単一のＮＤ内に複数のＶＮＥを実装する代わりに（又は、それに加えて）、ネットワークコントローラ５７８は、仮想ネットワーク５９２内の複数のＶＮＥとして（仮想ネットワーク５９２の同じ１つに全てを、仮想ネットワーク５９２の異なる１つに各々を、又は何らかの組み合わせで）単一のＮＤ内のＶＮＥ／ＮＥの実装を提示してもよい。例えば、ネットワークコントローラ５７８は、ＮＤに、下位のネットワーク内に単一ＶＮＥ（ＮＥ）を実装させてもよく、その際、集中型制御プレーン５７６内のそのＮＥのリソースを、仮想ネットワーク５９２内に存在する異なるＶＮＥに論理的に分割する（上位のネットワーク内のこれらの異なるＶＮＥが、下位のネットワーク内のＮＤ上の単一ＶＮＥ／ＮＥ実装のリソースを共有する）。
【００７２】
一方、図５Ｅ及び図５Ｆは、それぞれ、ネットワークコントローラ５７８が仮想ネットワーク５９２の別々の一部分として存在し得るＮＥ及びＶＮＥの例示的な抽象化を示す。図５Ｅは、本発明のいくつかの実施形態に従って、ＮＤ５００Ａ〜Ｈの各々が単一のＮＥ５７０Ａ〜Ｈを実装し（図５Ｄ参照）、但し集中型制御プレーン５７６が異なるＮＤ内にある複数のＮＥ（ＮＥ５７０Ａ〜Ｃ及びＧ〜Ｈ）を、図５Ｄの仮想ネットワーク５９２のうちの１つにおける単一のＮＥ５７０Ｉへ（それを表すように）抽象化した、単純な場合を示す。図５Ｅは、この仮想ネットワークにおいて、ＮＥ５７０Ｉが、ＮＥ５７０Ｄ及び５７０Ｆへ連結され、それらの双方がＮＥ５７０Ｅにも連結されることを示す。
【００７３】
図５Ｆは、本発明のいくつかの実施形態に従って、複数のＶＮＥ（ＶＮＥ５７０Ａ．１及びＶＮＥ５７０Ｈ．１）が異なるＮＤ（ＮＤ５００Ａ及びＮＤ５００Ｈ）上に実装され、互いに連結され、集中型制御プレーン５７６が、それら複数のＶＮＥが図５Ｄの仮想ネットワーク５９２のうちの１つの範囲内で単一ＶＮＥ５７０Ｔに見えるようそれらを抽象化した場合を示す。したがって、ＮＥ又はＶＮＥの抽象化は、複数のＮＤにわたることができる。
【００７４】
本発明のいくつかの実施形態は、単一のエンティティ（単一の電子デバイス上で稼働するソフトウェアの単一インスタンス）として集中型制御プレーン５７６を実装するが、代替的な実施形態は、冗長性及び／又はスケーラビリティのために複数のエンティティにわたって機能性を分散してもよい（例えば、異なる電子デバイス上で稼働するソフトウェアの複数のインスタンス）。
【００７５】
ネットワークデバイス実装と同様に、集中型制御プレーン５７６を実行する電子デバイス、及び、集中型到達可能性／転送情報モジュール５７９を含むネットワークコントローラ５７８は、多様なやり方（例えば、専用デバイス、汎用（例えば、ＣＯＴＳ）デバイス、又はハイブリッドデバイス）で実装されてもよい。これらの電子デバイスは、計算リソース、セット又は１つ以上の物理ＮＩＣ、及び集中型制御プレーンソフトウェアを記憶した非一時的な機械読取可能な記憶媒体を含むこととなる。例えば、図６は、（しばしば、ＣＯＴＳプロセッサである）１つ以上のプロセッサのセット６４２、及び（物理ＮＩ６４６を含む）ネットワークインタフェースコントローラ６４４（ＮＩＣ；ネットワークインタフェースカードともいう）、並びに集中型制御プレーン（ＣＣＰ）ソフトウェア６５０を記憶する一時的な機械読取可能な記憶媒体６４８を含むハードウェア６４０を含む、汎用制御プレーン６０４を示す。
【００７６】
計算仮想化を使用する実施形態において、プロセッサ６４２は、典型的には、ソフトウェアを実行して、仮想化レイヤ６５４及びソフトウェアコンテナ６６２Ａ〜Ｒをインスタンス化する（例えば、オペレーティングシステムレベルの仮想化では、仮想化レイヤ６５４は、１つ以上のアプリケーションのセットを実行するために各々が使用され得る複数のソフトウェアコンテナ６６２Ａ〜Ｒ（個別のユーザ空間インスタンスを表し、仮想化エンジン、仮想専用サーバ、又はｊａｉｌとも呼ばれる）の作成を可能にするオペレーティングシステムのカーネル（又は、基本オペレーティングシステム上で稼働するシム）を表す。完全な仮想化では、仮想化レイヤ６５４は、ハイパバイザ（仮想マシンモニタ（ＶＭＭ）と呼ばれることもある）、又はホストオペレーティングシステムのトップで稼働するハイパバイザを表し、ソフトウェアコンテナ６６２Ａ〜Ｒは、各々ハイパバイザによって実行される仮想マシンと呼ばれる強固に隔離された形態のソフトウェアコンテナを表し、ゲストオペレーティングシステムを含んでもよい。準仮想化では、オペレーティングシステム、又は仮想マシンと共に動作するアプリケーションが、最適化のために仮想化の存在を認識してもよい。）再び、計算仮想化が使用される実施形態において、動作中に、ＣＣＰソフトウェア６５０のインスタンス（ＣＣＰインスタンス６７６Ａとして示される）が、仮想レイヤ６５４上のソフトウェアコンテナ６６２Ａ内で実行される。計算仮想化が使用されない実施形態において、ホストオペレーティングシステムのトップのＣＣＰインスタンス６７６Ａは、“ベアメタル”汎用制御プレーンデバイス６０４上で実行される。ＣＣＰインスタンス６７６Ａ、並びに、実装される場合は仮想化レイヤ６５４及びソフトウェアコンテナ６６２Ａ〜Ｒのインスタンス化は、まとめてソフトウェアインスタンス６５２と呼ばれる。
【００７７】
いくつかの実施形態において、ＣＣＰインスタンス６７６Ａは、ネットワークコントローラインスタンス６７８を含む。ネットワークコントローラインスタンス６７８は、（ネットワークコントローラ５７８のコンテキストをオペレーティングシステムに提供し、多様なＮＥと通信するミドルウェアレイヤである）集中型到達可能性／転送情報モジュールインスタンス６７９、並びに（プロトコル、ネットワーク状況認識、及びユーザインタフェースなどの多様なネットワーク動作に必要なインテリジェンスを提供する）ミドルウェアレイヤ上のＣＣＰアプリケーションレイヤ６８０（アプリケーションレイヤと呼ばれることもある）を含む。より多くの抽象レベルにおいて、集中型制御プレーン５７６内のこのＣＣＰアプリケーションレイヤ６８０は、仮想ネットワークビュー（ネットワークの論理ビュー）で動作し、ミドルウェアレイヤは、仮想ネットワークから物理ビューへの変換を提供する。
【００７８】
集中型制御プレーン５７６は、ＣＣＰアプリケーションレイヤ６８０計算及び各フローにマッピングするミドルウェアレイヤに基づいて、関連メッセージをデータプレーン５８０へ送信する。フローは、ヘッダが所与のビットパターンに合致するパケットのセットとして定義されてもよい。この意味において、従来のＩＰ転送もまた、フローベース転送であり、その中でフローは例えば宛先ＩＰアドレスによって定義される。一方、他の実装では、フロー定義に使用される所要のビットパターンは、パケットヘッダ内により多くの（例えば、１０以上の）フィールドを含んでもよい。データプレーン５８０の異なるＮＤ／ＮＥ／ＶＮＥは、異なるメッセージ、したがって異なる転送情報を受信してもよい。データプレーン５８０は、これらのメッセージを処理し、適切なフロー情報及び適切なＮＥ／ＶＮＥの転送テーブル（フローテーブルと呼ばれることもある）内の対応するアクションをプログラムし、次いで、ＮＥ／ＶＮＥは、転送テーブル内の合致に基づいて、到来したパケットを、転送テーブル及び転送パケット内に表されるフローにマッピングする。
【００７９】
ＯｐｅｎＦｌｏｗなどの標準は、メッセージに使用されるプロトコル、及びパケットを処理するためのモデルを定義する。パケットを処理するためのモデルは、ヘッダ分析、パケット分類、及び転送決定を行うことを含む。ヘッダ分析は、既知のプロトコルのセットに基づいてパケットを解釈する方法を記述する。いくつかのプロトコルフィールドは、パケット分類において使用されるマッチ構造（又はキー）を構築するために使用される（例えば、第１のキーフィールドは、ソースメディアアクセス制御（ＭＡＣ）アドレスであってもよく、第２のキーフィールドは、宛先ＭＡＣアドレスであってもよい）。
【００８０】
パケット分類は、メモリ内のルックアップを実行して、転送テーブル内のどのエントリ（転送テーブルエントリ又はフローエントリとも呼ばれる）が、マッチ構造又は転送テーブルエントリのキーに基づいてパケットに最も合致するかを判断することによって、パケットを分類することを包含する。転送テーブルエントリ内で表現される多くのフローがパケットに対応／合致してもよく、この場合、システムは、典型的には、定義された方式（例えば、照合される第１の転送テーブルエントリを選択すること）に従って多くの中から１つの転送テーブルエントリを決定するように構成されることが可能である。転送テーブルエントリは、照合基準の固有のセット（値又はワイルドカードのセット、又はパケットヘッダ内の固有のフィールドについて、又はいくつかの他のパケットコンテンツについて、照合ケイパビリティによって定義される、パケットのどの部分が特定の値／値の集合／ワイルドカードと比較されるべきかの指標）、及び合致するパケットの受信時にとられる、データプレーンのための１つ以上のアクションのセットの双方を含む。例えば、アクションは、ヘッダをパケットにプッシュすることであってもよく、具体的なポートを使用するパケットの場合、パケットをフラッディングすること、又は単にパケットを破棄することであってもよい。したがって、特定のＴＣＰ（transmission  control  protocol）宛先ポートを有するＩＰｖ４／ＩＰｖ６パケットについての転送テーブルエントリは、これらのパケットが破棄されるべきであることを特定するアクションを含んでもよい。
【００８１】
転送決定を行うこと及びアクションを実行することは、パケット分類中に識別される転送テーブルエントリに基づいて、パケット上の合致する転送テーブルエントリにおいて識別されるアクションのセットを実行することによって、発生する。
【００８２】
一方、未知のパケット（例えば、ＯｐｅｎＦｌｏｗ用語で用いられる“missed  packet”又は“match-miss”）が、データプレーン５８０に到達すると、パケット（又はパケットヘッダ及びコンテンツのサブセット）は、典型的には、集中型制御プレーン５７６に転送される。集中型制御プレーン５７６は、次いで、未知のパケットのフローに属するパケットに対処するように、転送テーブルエントリをデータプレーン５８０にプログラムする。一旦固有の転送テーブルエントリが集中型制御プレーン５７６によってデータプレーン５８０にプログラムされると、合致する資格（credentials）を伴う次のパケットは、その転送テーブルエントリに合致し、その合致するエントリに関連付けられるアクションのセットがとられることになる。
【００８３】
ネットワークインタフェース（ＮＩ）は、物理的であっても又は仮想的であってもよく、ＩＰのコンテキストにおいて、インタフェースアドレスは、ＮＩに割り当てられたＩＰアドレスであり、それは物理ＮＩ又は仮想ＮＩとされる。仮想ＮＩは、別の仮想インタフェースで物理ＮＩに関連付けられてもよく、又は自立していてもよい（例えば、ループバックインタフェース、ポイントツーポイントプロトコルインタフェース）。ＮＩ（物理又は仮想）は、番号が付されてもよく（ＩＰアドレス付きＮＩ）、又は番号が付されなくてもよい（ＩＰアドレスなしＮＩ）。ループバックインタフェース（及びそのループバックアドレス）は、管理のためにしばしば使用されるＮＥ／ＶＮＥ（物理又は仮想）の仮想ＮＩ（及びＩＰアドレス）の固有のタイプである。その場合、そのようなＩＰアドレスは、ノーダルループバックアドレスと呼ばれる。ＮＤのＮＩに割り当てられたＩＰアドレスは、そのＮＤのＩＰアドレスと呼ばれる。より粒度の細かいレベルでは、ＮＤ上に実装されるＮＥ／ＶＮＥに割り当てられるＮＩに割り当てられるＩＰアドレスがそのＮＥ／ＶＮＥのＩＰアドレスと呼ばれ得る。
【００８４】
図面のフロー図は、本発明のある実施形態によって実行される動作の具体的な順序を示しているが、そのような順序は例示である（例えば、代替的な実施形態は、異なる順序で動作を実行し、ある複数の動作を組み合わせ、ある複数の動作を重複させるなどしてもよい）と理解されるべきである。
【００８５】
本発明は、複数の実施形態の観点で説明されているものの、本発明が説明された実施形態に限定されず、添付された特許請求の範囲の思想及びスコープの範囲内の修正及び変更と共に実践され得ることを、当業者は認識するであろう。従って、本説明は、限定ではなく例示と見なされるべきものである。
【図１】
2019193281.tif 000003
【図２】
2019193281.tif 000004
【図３】
2019193281.tif 000005
【図４Ａ】
2019193281.tif 000006
【図４Ｂ】
2019193281.tif 000007
【図５Ａ】
2019193281.tif 000008
【図５Ｂ】
2019193281.tif 000009
【図５Ｃ】
2019193281.tif 000010
【図５Ｄ】
2019193281.tif 000011
【図５Ｅ】
2019193281.tif 000012
【図５Ｆ】
2019193281.tif 000013
【図６】
2019193281.tif 000014
【手続補正書】
【提出日】令和1年6月11日(2019.6.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ネットワークノードによって実施される該ネットワークノードの最大セグメント識別子深度（ＭＳＤ）を集中コントローラにシグナリングする方法であって、
前記ＭＳＤを、タイプと長さと値とを含む属性ＴＬＶ（Type Length Value）に符号化することであって、前記タイプは前記ＭＳＤのタイプを示し、前記長さは前記ＭＳＤの長さを示し、前記値は前記ネットワークノードが課すことが出来るセグメントルーティング（ＳＲ）ラベルの最大数であり、ＳＲラベルはＳＲネットワークを介してパケットを操るために使用される、前記符号化することと、
前記属性ＴＬＶを集中コントローラに送信することであって、該集中コントローラはＳＲトンネルを計算するために前記属性ＴＬＶを使用し、該ＳＲトンネルのラベルスタック深度は前記ネットワークノードによってサポートされる前記ＭＳＤを超えない、前記送信することと、
を含む方法。
【請求項２】
前記属性ＴＬＶの前記タイプは前記ＭＳＤがリンクＭＳＤであることを示し、前記属性ＴＬＶの前記値は前記ネットワークノードのリンクによってサポートされる最低のＭＳＤである
請求項１に記載の方法。
【請求項３】
前記属性ＴＬＶの前記タイプは前記ＭＳＤがノードＭＳＤであることを示し、前記属性ＴＬＶの前記値は前記ネットワークノードの全てのリンクにわたって前記ネットワークノードによってサポートされる最低のＭＳＤである
請求項１に記載の方法。
【請求項４】
前記ネットワークノードは、前記ＳＲトンネルの入口ノードである
請求項１に記載の方法。
【請求項５】
前記属性ＴＬＶは、ＢＧＰ−ＬＳ（border gateway protocol Link State）拡張メッセージである
請求項１に記載の方法。
【請求項６】
前記ネットワークノードは、ＰＣＥＰ（Path Computation Element Communication Protocol）をサポートしない
請求項１に記載の方法。
【請求項７】
前記ネットワークノードは、ＩＧＰ（Interior Gateway Protocol）に参加しない
請求項１に記載の方法。
【請求項８】
ネットワークノードの最大セグメント識別子深度（ＭＳＤ）を集中コントローラにシグナリングするための前記ネットワークノードであって、プロセッサとメモリとを有し、前記メモリは、
前記ＭＳＤを、タイプと長さと値とを含む属性ＴＬＶ（Type Length Value）に符号化することであって、前記タイプは前記ＭＳＤのタイプを示し、前記長さは前記ＭＳＤの長さを示し、前記値は前記ネットワークノードが課すことが出来るセグメントルーティング（ＳＲ）ラベルの最大数であり、ＳＲラベルはＳＲネットワークを介してパケットを操るために使用される、前記符号化することと、
前記属性ＴＬＶを集中コントローラに送信することであって、該集中コントローラはＳＲトンネルを計算するために前記属性ＴＬＶを使用し、該ＳＲトンネルのラベルスタック深度は前記ネットワークノードによってサポートされる前記ＭＳＤを超えない、前記送信することと、
を前記ネットワークノードに実行させるための前記プロセッサによって実行可能な命令を含む、ネットワークノード。
【請求項９】
前記属性ＴＬＶの前記タイプは前記ＭＳＤがリンクＭＳＤであることを示し、前記属性ＴＬＶの前記値は前記ネットワークノードのリンクによってサポートされる最低のＭＳＤである
請求項８に記載のネットワークノード。
【請求項１０】
前記属性ＴＬＶの前記タイプは前記ＭＳＤがノードＭＳＤであることを示し、前記属性ＴＬＶの前記値は前記ネットワークノードの全てのリンクにわたって前記ネットワークノードによってサポートされる最低のＭＳＤである
請求項８に記載のネットワークノード。
【請求項１１】
前記ネットワークノードは、前記ＳＲトンネルの入口ノードである
請求項８に記載のネットワークノード。
【請求項１２】
前記属性ＴＬＶは、ＢＧＰ−ＬＳ（border gateway protocol Link State）拡張メッセージである
請求項８に記載のネットワークノード。
【請求項１３】
前記ネットワークノードは、ＰＣＥＰ（Path Computation Element Communication Protocol）をサポートしない
請求項８に記載のネットワークノード。
【請求項１４】
前記ネットワークノードは、ＩＧＰ（Interior Gateway Protocol）に参加しない
請求項８に記載のネットワークノード。
【請求項１５】
ネットワークノードのプロセッサによって実行されると、該プロセッサに、
前記ネットワークノードの最大セグメント識別子深さ（ＭＳＤ）を、タイプと長さと値とを含む属性ＴＬＶ（Type Length Value）に符号化することであって、前記タイプは前記ＭＳＤのタイプを示し、前記長さは前記ＭＳＤの長さを示し、前記値は前記ネットワークノードが課すことが出来るセグメントルーティング（ＳＲ）ラベルの最大数であり、ＳＲラベルはＳＲネットワークを介してパケットを操るために使用される、前記符号化することと、
前記属性ＴＬＶを集中コントローラに送信することであって、該集中コントローラはＳＲトンネルを計算するために前記属性ＴＬＶを使用し、該ＳＲトンネルのラベルスタック深度は前記ネットワークノードによってサポートされる前記ＭＳＤを超えない、前記送信することと、
を含む動作を実行させる命令を提供する、機械可読記憶媒体。
【請求項１６】
前記属性ＴＬＶの前記タイプは前記ＭＳＤがリンクＭＳＤであることを示し、前記属性ＴＬＶの前記値は前記ネットワークノードのリンクによってサポートされる最低のＭＳＤである
請求項１５に記載の機械可読記憶媒体。
【請求項１７】
前記属性ＴＬＶの前記タイプは前記ＭＳＤがノードＭＳＤであることを示し、前記属性ＴＬＶの前記値は前記ネットワークノードの全てのリンクにわたって前記ネットワークノードによってサポートされる最低のＭＳＤである
請求項１５に記載の機械可読記憶媒体。
【請求項１８】
前記ネットワークノードは、前記ＳＲトンネルの入口ノードである
請求項１５に記載の機械可読記憶媒体。
【請求項１９】
前記属性ＴＬＶは、ＢＧＰ−ＬＳ（border gateway protocol Link State）拡張メッセージである
請求項１５に記載の機械可読記憶媒体。
【請求項２０】
前記ネットワークノードは、ＰＣＥＰ（Path Computation Element Communication Protocol）をサポートしない
請求項１５に記載の機械可読記憶媒体。
【請求項２１】
前記ネットワークノードは、ＩＧＰ（Interior Gateway Protocol）に参加しない
請求項１５に記載の機械可読記憶媒体。
【請求項２２】
ネットワークコントローラにおける方法であって、
ネットワークノードから、タイプと長さと値とを含む属性ＴＬＶ（Type Length Value）を受信することと、
前記ネットワークノードの最大セグメント識別子深度（ＭＳＤ）を抽出するために前記属性ＴＬＶを復号することであって、前記属性ＴＬＶの前記タイプは前記ＭＳＤのタイプを示し、前記属性ＴＬＶの前記長さは前記ＭＳＤの長さを示し、前記属性ＴＬＶの前記値は前記ネットワークノードが課すことが出来るセグメントルーティング（ＳＲ）ラベルの最大数であり、ＳＲラベルはＳＲネットワークを介してパケットを操るために使用される、前記復号することと、
前記ＭＳＤを使用して、前記ネットワークノードを含むＳＲトンネルを計算することであって、前記ＳＲトンネルは前記ネットワークノードの前記ＭＳＤ以下のラベルスタック深度を有する、前記計算することと、
を含む方法。
【請求項２３】
前記属性ＴＬＶの前記タイプは前記ＭＳＤがリンクＭＳＤであることを示し、前記属性ＴＬＶの前記値は前記ネットワークノードのリンクによってサポートされる最低のＭＳＤである
請求項２２に記載の方法。
【請求項２４】
前記属性ＴＬＶの前記タイプは前記ＭＳＤがノードＭＳＤであることを示し、前記属性ＴＬＶの前記値は前記ネットワークノードの全てのリンクにわたって前記ネットワークノードによってサポートされる最低のＭＳＤである
請求項２２に記載の方法。
【請求項２５】
前記ネットワークノードは、前記ＳＲトンネルの入口ノードである
請求項２２に記載の方法。
【請求項２６】
前記属性ＴＬＶは、ＢＧＰ−ＬＳ（border gateway protocol Link State）拡張メッセージである
請求項２２に記載の方法。
【請求項２７】
前記ネットワークノードは、ＰＣＥＰ（Path Computation Element Communication Protocol）をサポートしない
請求項２２に記載の方法。
【請求項２８】
前記ネットワークノードは、ＩＧＰ（Interior Gateway Protocol）に参加しない
請求項２２に記載の方法。
【請求項２９】
集中コントローラであって、プロセッサとメモリとを有し、前記メモリは、
ネットワークノードから、タイプと長さと値とを含む属性ＴＬＶ（Type Length Value）を受信することと、
前記ネットワークノードの最大セグメント識別子深度（ＭＳＤ）を抽出するために前記属性ＴＬＶを復号することであって、前記属性ＴＬＶの前記タイプは前記ＭＳＤのタイプを示し、前記属性ＴＬＶの前記長さは前記ＭＳＤの長さを示し、前記属性ＴＬＶの前記値は前記ネットワークノードが課すことが出来るセグメントルーティング（ＳＲ）ラベルの最大数であり、ＳＲラベルはＳＲネットワークを介してパケットを操るために使用される、前記復号することと、
前記ＭＳＤを使用して、前記ネットワークノードを含むＳＲトンネルを計算することであって、前記ＳＲトンネルは前記ネットワークノードの前記ＭＳＤ以下のラベルスタック深度を有する、前記計算することと、
を前記集中コントローラに実行させるための前記プロセッサによって実行可能な命令を含む、集中コントローラ。
【請求項３０】
前記属性ＴＬＶの前記タイプは前記ＭＳＤがリンクＭＳＤであることを示し、前記属性ＴＬＶの前記値は前記ネットワークノードのリンクによってサポートされる最低のＭＳＤである
請求項２９に記載の集中コントローラ。
【請求項３１】
前記属性ＴＬＶの前記タイプは前記ＭＳＤがノードＭＳＤであることを示し、前記属性ＴＬＶの前記値は前記ネットワークノードの全てのリンクにわたって前記ネットワークノードによってサポートされる最低のＭＳＤである
請求項２９に記載の集中コントローラ。
【請求項３２】
前記ネットワークノードは、前記ＳＲトンネルの入口ノードである
請求項２９に記載の集中コントローラ。
【請求項３３】
前記属性ＴＬＶは、ＢＧＰ−ＬＳ（border gateway protocol Link State）拡張メッセージである
請求項２９に記載の集中コントローラ。
【請求項３４】
前記ネットワークノードは、ＰＣＥＰ（Path Computation Element Communication Protocol）をサポートしない
請求項２９に記載の集中コントローラ。
【請求項３５】
前記ネットワークノードは、ＩＧＰ（Interior Gateway Protocol）に参加しない
請求項２９に記載の集中コントローラ。
【請求項３６】
集中コントローラのプロセッサによって実行されると、該プロセッサに、
ネットワークノードから、タイプと長さと値とを含む属性ＴＬＶ（Type Length Value）を受信することと、
前記ネットワークノードの最大セグメント識別子深度（ＭＳＤ）を抽出するために前記属性ＴＬＶを復号することであって、前記属性ＴＬＶの前記タイプは前記ＭＳＤのタイプを示し、前記属性ＴＬＶの前記長さは前記ＭＳＤの長さを示し、前記属性ＴＬＶの前記値は前記ネットワークノードが課すことが出来るセグメントルーティング（ＳＲ）ラベルの最大数であり、ＳＲラベルはＳＲネットワークを介してパケットを操るために使用される、前記復号することと、
前記ＭＳＤを使用して、前記ネットワークノードを含むＳＲトンネルを計算することであって、前記ＳＲトンネルは前記ネットワークノードの前記ＭＳＤ以下のラベルスタック深度を有する、前記計算することと、
を含む動作を実行させる命令を提供する、機械可読記憶媒体。
【請求項３７】
前記属性ＴＬＶの前記タイプは前記ＭＳＤがリンクＭＳＤであることを示し、前記属性ＴＬＶの前記値は前記ネットワークノードのリンクによってサポートされる最低のＭＳＤである
請求項３６に記載の機械可読記憶媒体。
【請求項３８】
前記属性ＴＬＶの前記タイプは前記ＭＳＤがノードＭＳＤであることを示し、前記属性ＴＬＶの前記値は前記ネットワークノードの全てのリンクにわたって前記ネットワークノードによってサポートされる最低のＭＳＤである
請求項３６に記載の機械可読記憶媒体。
【請求項３９】
前記ネットワークノードは、前記ＳＲトンネルの入口ノードである
請求項３６に記載の機械可読記憶媒体。
【請求項４０】
前記属性ＴＬＶは、ＢＧＰ−ＬＳ（border gateway protocol Link State）拡張メッセージである
請求項３６に記載の機械可読記憶媒体。
【請求項４１】
前記ネットワークノードは、ＰＣＥＰ（Path Computation Element Communication Protocol）をサポートしない
請求項３６に記載の機械可読記憶媒体。
【請求項４２】
前記ネットワークノードは、ＩＧＰ（Interior Gateway Protocol）に参加しない
請求項３６に記載の機械可読記憶媒体。
【外国語明細書】
2019193281000001.pdf