(57)【要約】【課題】オンチップメモリを効率的に用いて、計数、トラフィック帯域監視、およびフローサンプリングを柔軟に行うことができる集中型ネットワーク解析装置を提供する。【解決手段】複数のパイプラインステージを含む少なくとも１つのコア１０５と、少なくとも１つのコア１０５の複数のパイプラインステージのそれぞれと通信して複数のパイプラインステージから要求を受信する要求・応答統合インタフェースを含むインタフェースモジュール１２５と、インタフェースモジュール１２５と連結され、要求を並行に処理する共用メモリプール１３０とを備える。【選択図】図１
2015226327.tif 000002
【特許請求の範囲】
【請求項１】
複数のパイプラインステージを含む少なくとも１つのコアと、
前記少なくとも１つのコアの前記複数のパイプラインステージのそれぞれと通信して前記複数のパイプラインステージから要求を受信する要求・応答統合インタフェースを含むインタフェースモジュールと、
前記要求を並行に処理するために前記インタフェースモジュールと連結された共用メモリプールとを備えた、ネットワークスイッチ。
【請求項２】
請求項１に記載のネットワークスイッチにおいて、さらに、
複数の並行なネットワーク解析を実行する解析モジュールを備え、
前記解析モジュールが、
複数のクライアントインタフェース、
相互接続、および
複数の解析バンクを有する、ネットワークスイッチ。
【請求項３】
請求項２に記載のネットワークスイッチにおいて、前記複数のクライアントインタフェースと前記複数の解析バンクが、前記相互接続を介して相互接続された、ネットワークスイッチ。
【請求項４】
請求項２に記載のネットワークスイッチにおいて、前記複数のクライアントインタフェースのそれぞれが、前記複数の解析バンクの１つ以上にマッピングされるようにプログラム可能である、ネットワークスイッチ。
【請求項５】
請求項２に記載のネットワークスイッチにおいて、前記共用メモリプールのメモリが、前記複数の解析バンクに分離される、ネットワークスイッチ。
【請求項６】
請求項２に記載のネットワークスイッチにおいて、前記複数の解析バンクが同種である、ネットワークスイッチ。
【請求項７】
請求項２に記載のネットワークスイッチにおいて、前記複数の解析バンクのそれぞれがオンチップメモリである、ネットワークスイッチ。
【請求項８】
請求項２に記載のネットワークスイッチにおいて、前記複数のクライアントインタフェースが互いに類似に構成される、ネットワークスイッチ。
【請求項９】
請求項２に記載のネットワークスイッチにおいて、前記複数のクライアントインタフェースのそれぞれが、要求を受信する要求インタフェースと、応答を送信する応答インタフェースとを有する、ネットワークスイッチ。
【請求項１０】
請求項９に記載のネットワークスイッチにおいて、前記要求インタフェースが、各要求を分類し、前記要求が対象とするべき対象解析バンクであって、前記複数の解析バンクのうちの１つである対象解析バンクと、当該対象解析バンク内の対象エントリアドレスとを決定する、ネットワークスイッチ。
【請求項１１】
請求項１０に記載のネットワークスイッチにおいて、前記要求が、前記相互接続に送信されて、処理のために前記対象解析バンクにルーティングされる、ネットワークスイッチ。
【請求項１２】
請求項２に記載のネットワークスイッチにおいて、前記複数のクライアントインタフェースのそれぞれが、カウンタモード、ポリシングモード、ビリングカウンタを用いるポリシングモード、およびサンプリングモードの４つのモードのうちの１つに設定される、ネットワークスイッチ。
【請求項１３】
請求項１２に記載のネットワークスイッチにおいて、前記カウンタモード、前記ポリシングモード、および前記サンプリングモードが、それぞれバンク粒度で割り当てられ、前記ビリングカウンタを用いるポリシングモードが、一対の解析バンクの粒度で割り当てられる、ネットワークスイッチ。
【請求項１４】
請求項１３に記載のネットワークスイッチにおいて、解析バンク２×ｉがポリシングのためのものであり、すぐ次の解析バンク２×ｉ＋１が対応するビリングカウンタのためのものである、ネットワークスイッチ。
【請求項１５】
請求項２に記載のネットワークスイッチにおいて、ある解析バンクがカウンタモードにある場合、当該解析バンクが４つの設定のうちの１つに設定され、変更オペレーションが前記設定ごとに異なる、ネットワークスイッチ。
【請求項１６】
請求項１５に記載のネットワークスイッチにおいて、前記変更オペレーションが、受信要求ごとにイベント（ｅｖｅｎｔｓ）フィールドの値を１だけ増加することと、前記受信要求の値だけ合計（ｓｕｍ）フィールドの値を増加することと、前記受信要求の値の２乗分だけ、合計２乗（ｓｕｍＯｆＳｑｕａｒｅ）フィールドの値を増加することとを含む、ネットワークスイッチ。
【請求項１７】
請求項１５に記載のネットワークスイッチにおいて、ネットワーク動作の標準偏差が、合計２乗（ｓｕｍＯｆＳｑｕａｒｅ）の平均から合計（ｓｕｍ）の平均の２乗を減算することで算出される、ネットワークスイッチ。
【請求項１８】
請求項１５に記載のネットワークスイッチにおいて、前記解析バンクから結果応答は送出されず、カウンタ値が前記解析バンクのメモリに格納される、ネットワークスイッチ。
【請求項１９】
請求項１５に記載のネットワークスイッチにおいて、第５の設定が、ビリングカウンタを用いるポリシングモードにのみ用いられる、ネットワークスイッチ。
【請求項２０】
請求項２に記載のネットワークスイッチにおいて、ある解析バンクがポリシングモードにある場合、当該解析バンクが２レート３カラーの帯域監視機能を実行する、ネットワークスイッチ。
【請求項２１】
請求項２０に記載のネットワークスイッチにおいて、前記解析バンクは１行ごとに１つのポリサを有し、前記ポリサが設定および内部状態を有する、ネットワークスイッチ。
【請求項２２】
請求項２０に記載のネットワークスイッチにおいて、前記ポリサが、パケットの色を、前記パケットの発信元である前記クライアントインタフェースのうちの１つに返送する、ネットワークスイッチ。
【請求項２３】
請求項２１に記載のネットワークスイッチにおいて、前記発信元のクライアントインタフェースが、ビリングカウンタを用いるポリシングモードに設定されると、前記解析バンクが、各色におけるパケットのバイト数を算出するためにそのすぐ次の解析バンクにカウンタ要求を送信する、ネットワークスイッチ。
【請求項２４】
請求項２に記載のネットワークスイッチにおいて、ある解析バンクがサンプリングモードにある場合、当該解析バンクが、Ｎ／Ｍ個のランダムサンプリングをサポートし、ここで、前記Ｎおよび前記Ｍが、Ｎ個の連続したイベントがＭイベント間隔ごとにサンプリングされると定義される、ネットワークスイッチ。
【請求項２５】
請求項２４に記載のネットワークスイッチにおいて、応答が、要求ごとに発信元のクライアントインタフェースに返送される、ネットワークスイッチ。
【請求項２６】
解析バンクであって、
少なくとも３つの処理ユニットと、
メモリバイパスモジュールとを備え、
前記少なくとも３つの処理ユニットが、
カウンタ処理ユニット、
色のバイト計数のために、当該解析バンクのすぐ次にある他の解析バンクに要求をプッシュ可能なポリシング処理ユニット、および
サンプリング処理ユニットを有し、
前記メモリバイパスモジュールが、メモリリードレイテンシを隠蔽し、前記メモリバイパスモジュールの出力データが前記カウンタ処理ユニット、前記ポリシング処理ユニット、または前記サンプリング処理ユニットに向けられる、解析バンク。
【請求項２７】
請求項２６に記載の解析バンクにおいて、前記解析バンクがカウンタモードにある場合、前記カウンタ処理ユニットは、ネットワーク動作統計解析のための平方和、加算、およびイベント計数を行う、解析バンク。
【請求項２８】
請求項２７に記載の解析バンクにおいて、前記カウンタ処理ユニットが、ネットワーク動作の標準偏差を算出する、解析バンク。
【請求項２９】
共有メモリのプールを複数の同種の解析バンクに分割することと、
複数のクライアントインタフェースのそれぞれを、カウンタモード、ポリシングモード、ビリングカウンタを用いるポリシングモード、およびサンプリングモードの４つのモードのうちの１つに、プログラムで設定することと、
前記複数のクライアントインタフェースのそれぞれを、前記複数の同種の解析バンクのサブセットにプログラムでマッピングすることと、
カウンタモード、ポリシングモード、およびサンプリングモードの３つのモードのうちの１つに前記複数の同種の解析バンクのそれぞれをプログラムで割り当てることと、
前記複数のクライアントインタフェースで受信した複数の要求を並行に処理することとを備えた、ネットワークスイッチの動作方法。
【請求項３０】
請求項２９に記載の方法において、
前記複数の要求を並行に処理することが、前記複数の要求のそれぞれに対して、
対象解析バンク、および前記対象解析バンク内の対象エントリアドレスを決定すること、
前記対象解析バンクがカウンタモードにある場合、前記対象解析バンクが平方和、加算、またはイベント計数を含む少なくとも１つの演算を行うこと、
前記対象解析バンクがポリシングモードにある場合、前記対象解析バンクが２レート３カラーの帯域監視機能を実行すること、および
前記対象解析バンクがサンプリングモードにある場合、前記対象解析バンクが、Ｎ／Ｍ個のランダムサンプリングをサポートし、ここで、前記Ｎおよび前記Ｍは、Ｎ個の連続したイベントが、Ｍイベント間隔ごとにサンプリングされると定義される、ことを含む、方法。
【請求項３１】
請求項３０に記載の方法において、前記対象解析バンクが前記カウンタモードにある場合、当該方法が、さらに、前記対象エントリアドレスに基づいて前記対象解析バンク内でカウンタエントリを決定することと、前記対象解析バンク内でメモリの行を決定してカウンタ値を格納することとを備えた、方法。
【請求項３２】
請求項３１に記載の方法において、さらに、ネットワーク動作の標準偏差を算出することを備えた、方法。
【請求項３３】
請求項３０に記載の方法において、前記対象解析バンクが前記ポリシングモードにある場合、前記対象解析バンクが、パケットの色を前記パケットの発信元のクライアントインタフェースに返送する、方法。
【請求項３４】
請求項３３に記載の方法において、さらに、前記対象解析バンクが各色における前記パケットのバイト数を算出するために、すぐ次の解析バンクにカウンタ要求を送信することを備えた、方法。
【請求項３５】
請求項３０に記載の方法において、前記対象解析バンクが前記サンプリングモードにある場合、前記対象解析バンクが、前記要求の発信元のクライアントインタフェースに応答を返送する、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、高速ネットワークスイッチにおけるトラフィック解析に関する。より詳細には、本発明は、ネットワークスイッチにおける柔軟かつ効率的な解析であって、計数、帯域監視、およびフローサンプリングを含む解析およびその装置に関する。
【背景技術】
【０００２】
ソフトウェア・デファインド・ネットワーキング（ＳＤＮ）が出現してきており、オープンフローは、その顕著な特徴の１つである。受信パケットは、一連の表検索および一致アクション、ならびに解析を受ける。ネットワークスイッチにおける良好な抽象化は極めて重要である。その理由は、良好な抽象化が、限られたハードウェアリソースの効率的な使用および要求の変更の取り扱いを可能にし、１つ上の上位レベルにおけるプログラミングを簡素化するからである。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
カウンタ、２レート３カラー（２帯域３色）の帯域モニタ（ポリシング）およびフローサンプリングが、従来技術のネットワークスイッチにおいて存在する。従来技術のネットワークスイッチは、これらの目的ごとに専用のメモリを用いる。特に、内部パイプラインの各処理ユニットは指定されたタスクを行うように予め定められているので、これらのカウンタ、帯域モニタ、およびサンプラは、この内部パイプラインの一定の決まったステージからアクセス可能である。カウンタは、種々の条件で、スイッチを通過するパケットの数またはトラフィックのバイトを計数するのに用いられる。ポリシングは、スイッチを通過するパケットを、それぞれ異なるサービス品質の３色、すなわち、グリーン、イエロ、またはレッドに、分類する。サンプリングは、トラフィックの高速のフローを低速のストリームにサンプリングし、追加的な処理または解析のために、システムＣＰＵに送信する。したがって、従来技術のネットワークスイッチでは、計数、トラフィック帯域監視、およびフローサンプリングを行うには柔軟性が欠如している。
【課題を解決するための手段】
【０００４】
本発明の実施形態は、集中型ネットワーク解析装置に関し、この集中型ネットワーク解析装置は、オンチップメモリを効率的に用いて、計数、トラフィック帯域監視、およびフローサンプリングを柔軟（自由に変更可能）に行う。この装置は、全てのコアおよび各コアのパケット処理ステージによって共有される、メモリのプールを含む。装置においては、計数、監視、およびサンプリングが全てソフトウェアで定義されているため、高い柔軟性と効率的な解析とが可能になる。一部の実施形態において、この装置は、ネットワークスイッチである。
【０００５】
一構成において、ネットワークスイッチが提供される。前記ネットワークスイッチは、複数のパイプラインステージを含む少なくとも１つのコアを備える。前記ネットワークスイッチは、また、前記少なくとも１つのコアの前記複数のパイプラインステージのそれぞれと通信して前記複数のパイプラインステージから要求を受信する要求・応答統合インタフェースを含むインタフェースモジュールを備える。前記ネットワークスイッチは、また、共用メモリプールを備える。この共用メモリプールは、前記要求を並行に処理するために前記インタフェースモジュールと連結される。
【０００６】
一部の実施形態において、前記ネットワークスイッチは、また、多数の並行なネットワーク解析を実行する解析モジュールを備える。前記解析モジュールは、複数のクライアントインタフェースと、相互接続と、複数の解析バンクとを備える。前記複数のクライアントインタフェースと前記複数の解析バンクは、前記相互接続を介して相互に接続される。
【０００７】
一部の実施形態において、前記複数のクライアントインタフェースのそれぞれは、前記複数の解析バンクの１つ以上にマッピングされるようにプログラム可能である。
【０００８】
一部の実施形態において、前記共用メモリプールのメモリは、前記複数の解析バンクに分離される。
【０００９】
一部の実施形態において、前記複数の解析バンクは同種である。
【００１０】
一部の実施形態において、前記複数の解析バンクのそれぞれは、２７２ビット幅５１２エントリ深度のオンチップメモリのようなオンチップメモリを含む。
【００１１】
一部の実施形態において、前記複数のクライアントインタフェースは互いに類似に構成される。
【００１２】
一部の実施形態において、前記複数のクライアントインタフェースのそれぞれは、要求を受信する要求インタフェースと、応答を送信する応答インタフェースとを備える。前記要求インタフェースは、各要求を分類し、前記要求が対象とするべき対象解析バンクと、当該対象解析バンク内の対象エントリアドレスとを決定する。前記対象解析バンクは前記複数の解析バンクのうちの１つである。前記要求は、前記相互接続に送信されて、処理のために前記対象解析バンクにルーティングされる。
【００１３】
一部の実施形態において、前記複数のクライアントインタフェースのそれぞれは、カウンタモード、ポリシングモード、ビリングカウンタを用いるポリシングモード、およびサンプリングモードの４つのモードのうちの１つに設定される。
【００１４】
一部の実施形態において、前記カウンタモード、前記ポリシングモード、および前記サンプリングモードは、それぞれバンク粒度で割り当てられ、ビリングカウンタを用いるポリシングモードは、一対の解析バンクの粒度で割り当てられる。例えば、解析バンク２×ｉはポリシングのためのものであり、すぐ次の解析バンク２×ｉ＋１は、対応するビリングカウンタのためのものである。
【００１５】
一部の実施形態において、ある解析バンクがカウンタモードにある場合、当該解析バンクは４つの設定のうちの１つに設定され、変更オペレーション（変更演算）は前記設定ごとに異なる。前記変更オペレーションは、受信要求ごとにイベント（ｅｖｅｎｔｓ）フィールドの値を１だけ増加することと、前記受信要求の値だけ合計（ｓｕｍ）フィールドの値を増加することと、前記受信要求の値の２乗分だけ、合計２乗（ｓｕｍＯｆＳｑｕａｒｅ）フィールドの値を増加することとを含む。ネットワーク動作の標準偏差は、合計２乗（ｓｕｍＯｆＳｑｕａｒｅ）の平均から合計（ｓｕｍ）の平均の２乗を減算することで算出される。結果応答は前記解析バンクから送出されず、カウンタ値が前記解析バンクのメモリに格納される。一部の実施形態において、第５の設定は、ビリングカウンタを用いるポリシングモードにのみ用いられる。
【００１６】
一部の実施形態において、ある解析バンクがポリシングモードにある場合、当該解析バンクは２レート３カラーの帯域監視機能を実行する。前記解析バンクは１行ごとに１つのポリサを有し、前記ポリサは設定および内部状態を有する。前記ポリサは、パケットの色を、前記パケットの送信元である前記クライアントインタフェースのうちの１つに返送する。一部の実施形態において、前記発信元のクライアントインタフェースが、ビリングカウンタを用いるポリシングモードに設定されると、前記解析バンクは、各色におけるパケットのバイト数を算出するためにすぐ次の（後方に隣接する）解析バンクにカウンタ要求を送信する。
【００１７】
一部の実施形態において、ある解析バンクがサンプリングモードにある場合、当該解析バンクは、Ｎ／Ｍ個のランダムサンプリングをサポートする。ここで、ＮおよびＭは、Ｎ個の連続したイベントがＭイベント間隔ごとにサンプリングされると定義される。応答が、要求ごとに発信元のクライアントインタフェースに返送される。
【００１８】
他の構成において、解析バンクが提供される。前記解析バンクは、少なくとも３つの処理ユニットと、メモリバイパスモジュールとを備える。
【００１９】
前記少なくとも３つの処理ユニットは、カウンタ処理ユニットと、ポリシング処理ユニットと、サンプリング処理ユニットとを備える。ポリシング処理ユニットは、色のバイト計数のために他の解析バンクに要求をプッシュ（送ることが）可能である。前記他の解析バンクは、前記解析バンクのすぐ次にある解析バンクである。
【００２０】
前記メモリバイパスモジュールは、メモリリードレイテンシを隠蔽する。特に、前記メモリバイパスモジュールの出力データは前記カウンタ処理ユニット、前記ポリシング処理ユニット、または前記サンプリング処理ユニットに向けられる。
【００２１】
一部の実施形態において、前記解析バンクがカウンタモードにある場合、前記カウンタ処理ユニットは、ネットワーク動作統計解析のための平方和、加算、およびイベント計数を行う。一部の実施形態において、前記カウンタ処理ユニットは、ネットワーク動作の標準偏差を算出する。
【００２２】
さらに別の構成において、ネットワークスイッチの動作方法が提供される。前記方法は、共有メモリのプールを複数の同種の解析バンクに分割することと、複数のクライアントインタフェースのそれぞれを、カウンタモード、ポリシングモード、ビリングカウンタを用いるポリシングモード、およびサンプリングモードの４つのモードのうちの１つに、プログラムで設定することとを含む。前記方法は、また、前記複数のクライアントインタフェースのそれぞれを、前記複数の同種の解析バンクのサブセットにプログラムでマッピングすることと、カウンタモード、ポリシングモード、およびサンプリングモードの３つのモードのうちの１つに前記複数の同種の解析バンクのそれぞれをプログラムで割り当てることとを含む。前記方法は、また、前記複数のクライアントインタフェースで受信した多数の要求を並行に処理することを含む。
【００２３】
一部の実施形態において、前記多数の要求を並行に処理するステップは、前記多数の要求のそれぞれに対して、対象解析バンクおよび前記対象解析バンク内の対象エントリアドレスを決定することを含む。
【００２４】
前記多数の要求を並行に処理するステップは、また、前記対象解析バンクがカウンタモードにある場合、前記対象解析バンクが、平方和、加算、またはイベント計数などの少なくとも１つの演算を行うことを含む。ネットワーク動作の標準偏差がさらに算出されてもよい。前記対象エントリアドレスに基づいて前記対象解析バンク内でカウンタエントリを決定し、前記対象解析バンク内でメモリの行をさらに決定してカウンタ値を格納する。
【００２５】
前記多数の要求を並行に処理するステップは、また、前記対象解析バンクがポリシングモードにある場合、前記対象解析バンクは、２レート３カラーの帯域監視機能を実行することを含む。前記対象解析バンクは、パケットの色を前記パケットの発信元のクライアントインタフェースに返送する。ビリングカウンタを用いるポリシングとして構成される場合は、前記対象解析バンクは、次に、各色における前記パケットのバイト数を算出するために、すぐ次の解析バンクにカウンタ要求を送信する。
【００２６】
前記多数の要求を並行に処理するステップは、また、前記対象解析バンクがサンプリングモードにある場合、前記対象解析バンクがＮ／Ｍ個のランダムサンプリングをサポートすることを含む。ここで、ＮおよびＭは、Ｎ個の連続したイベントが、Ｍイベント間隔ごとにサンプリングされると定義される。前記対象解析バンクは、前記要求の発信元のクライアントインタフェースに応答を返送する。
【００２７】
以下の説明において、多くの詳細が説明を目的として述べられる。しかし、当業者なら、これらの特定の詳細を用いることなく本発明が実施可能であることを理解するであろう。このため、本発明は、図示された実施形態に限定されることを意図するものではなく、本明細書に説明される原理および特徴に合致する最大限の範囲に従うものである。
【図面の簡単な説明】
【００２８】
上記は、添付図面に示すように、以下の本発明の例示的な実施形態のさらに詳細な説明から明らかになるであろう。添付図面において、異なる図全体にわたり、同様の部分は同様の参照符号で示す。図面は必ずしも原寸に比例しておらず、本発明の実施形態の説明に重点が置かれている。
【図１】本発明の一実施形態によるネットワークスイッチの例示的な構成を示す図である。
【図２】本発明の一実施形態による解析モジュールを示す図である。
【図３】本発明の一実施形態によるビリングカウンタを用いるポリシングモードのためのポリシング解析バンクメモリ編成を示す図である。
【図４】本発明の一実施形態によるサンプリング解析バンクメモリ編成を示す図である。
【図５】本発明の一実施形態による解析バンクのブロック図である。
【図６】本発明の一実施形態によるネットワークスイッチの動作方法を示す図である。
【発明を実施するための形態】
【００２９】
以下の説明では、説明の目的で様々な詳細を述べる。しかし、当業者ならば、これらの特定の詳細事項を用いずとも本発明を実施できることを理解するであろう。よって、本発明は、示される実施形態に限定されることを意図するものではなく、本明細書で説明される原理および特徴に合致する最も広い範囲に従うものである。
【００３０】
本発明の実施形態は、集中型ネットワーク解析装置に関する。この集中型ネットワーク解析装置は、オンチップメモリを効率的に用いて、計数、トラフィック帯域監視、およびフローサンプリングを柔軟に行う。この装置は、全てのコアおよび各コアのパケット処理ステージによって共有されるメモリのプールを含む。この装置においては、計数、監視、およびサンプリングが全てソフトウェアで定義される。このため、高い柔軟性と効率的な解析が可能になる。一部の実施形態において、この装置はネットワークスイッチである。他のネットワーキング装置も意図される。
【００３１】
図１に、本発明の一実施形態によるネットワークスイッチ１００の例示的な構成を示す。ネットワークスイッチ１００は、１つ以上のコア１０５と、トラフィック管理装置１１０とを含む。各コア１０５は、典型的に、複数のパイプラインステージを含む。この複数のパイプラインステージは、複数のパケット処理ユニット１１５と、少なくとも１つのパケット変更手段１２０とを含む。１つ以上のコア１０５における全ての処理ユニット１１５、１２０は、要求・応答統合インタフェースを介してインタフェースモジュール１２５と通信する（図２を参照）。インタフェースモジュール１２５は、要求処理のために共用メモリプール１３０に連結されている。
【００３２】
図２は、本発明の実施形態による解析モジュール２００を示す。解析モジュール２００は、典型的には、図１のネットワークスイッチ１００のようなネットワークスイッチの一部である。解析モジュール２００は、複数のクライアントインタフェース２０５と、相互接続２１０と、複数の解析バンク２１５とを含む。複数のクライアントインタフェース２０５と複数の解析バンク２１５とは、オンチップネットワーク２１０を介して相互接続される。各クライアントインタフェース２０５は、複数の解析バンク２１５のうちの１つ以上にマッピングされるようにプログラム可能である。図１の共用メモリプール１３０からのメモリは、典型的に、複数の解析バンク２１５に分離される。一部の実施形態において、各解析バンク２１５は他の解析バンク２１５が含むのと同数のメモリを含むという点において、複数の解析バンク２１５は同種（homogenous）である。一部の実施形態において、各解析バンク２１５は、２７２ビット幅５１２エントリ深度のオンチップメモリを含むが、他のメモリサイズも可能である。
【００３３】
一部の実施形態において、複数のクライアントインタフェース２０５が互いに類似に構成される。各クライアントインタフェース２０５は、典型的に、要求インタフェース２０５ａと、応答インタフェース２０５ｂとを有する。クライアントインタフェース２０５の要求インタフェース２０５ａは、要求アドレスおよび要求値をそれぞれ含む受信要求をパケット処理ユニットから受信するよう構成され、クライアントインタフェース２０５の応答インタフェース２０５ｂは、パケット処理ユニットへ応答を送信するよう構成される。一部の実施形態において、パケット処理ユニットは、図１のコア１０５である。各要求インタフェース２０５ａは、典型的に、各受信要求を分類し、この要求が対象とするべき対象解析バンクと、その対象解析バンク内の対象エントリアドレスとを決定する。対象解析バンクは、典型的に、クライアントインタフェース２０５がマッピングされる複数の解析バンク２１５のうちの１つである。次に、要求はオンチップネットワーク２１０に送信されて、処理のために対象解析バンク２１５にルーティングされる。各要求は、典型的に、２つ以上の応答を有することはない（例えば、応答が無いか、まさに１つの応答かのいずれかである）。
【００３４】
表１は、各クライアントインタフェース２０５に対する表設定を示す。モード（ｍｏｄｅ）フィールドによって示されるように、各クライアントインタフェース２０５は、４つの可能なモード（すなわち、カウンタモード、ポリシングモード、ビリングカウンタを用いるポリシングモード、およびサンプリングモード）のうちの１つに設定され得る。
【００３５】
【表１】
2015226327.tif 000003
【００３６】
上述のように、解析バンク２１５のサイズは同一であるとともに、クライアントインタフェース２０５と解析バンク２１５との間の接続は、ソフトウェアによりプログラム可能である。特に、各クライアントインタフェース２０５を解析バンク２１５のサブセット（複数の解析バンク２１５のうちの一部）にマッピングすることを、ソフトウェアで定義できる。極端な場合、１つのクライアントインタフェース２０５は、１つの解析バンク２１５を用いることができる。対極的な場合、１つのクライアントインタフェース２０５は、解析バンク２１５の全てを用いることができる。２つ以上のクライアントインタフェース２０５が、解析バンク２１５の同一サブセットを用いることができる。
【００３７】
各クライアントインタフェース２０５は、解析バンク開始（ａｎａＢａｎｋＳｔａｒｔ）フィールドおよび解析バンク終了（ａｎａＢａｎｋＥｎｄ）フィールドによって特定される１つ以上の解析バンク２１５を利用できる。解析バンク開始（ａｎａＢａｎｋＳｔａｒｔ）フィールドおよび解析バンク終了（ａｎａＢａｎｋＥｎｄ）フィールドの間の解析バンク２１５は、典型的に連続している。バンクごとエントリ（ｅｎｔｒｙＰｅｒＢａｎｋ）フィールドは、各解析バンク２１５において存在するエントリの数を示す。バンクごとエントリ（ｅｎｔｒｙＰｅｒＢａｎｋ）フィールドは、要求ごとに対象解析バンク２１５を割り出すのに用いられる。一部の実施形態において、解析バンク２１５ごとのエントリ数（すなわち、ｅｎｔｒｙＰｅｒＢａｎｋ）で除される受信要求アドレスの整数部は、対象解析バンクＩＤになる。受信要求アドレスの最下位ビットは、解析バンク２１５内で対象エントリアドレスを生成するために用いられる。
【００３８】
一部の実施形態において、解析バンク２１５のうちの１対または複数対が、ビリングカウンタを用いるポリシングモードのために接続される。換言すると、カウンタモード、ポリシングモード、およびサンプリングモードはそれぞれ、バンク粒度で割り当てられる一方、ビリングカウンタを用いるポリシングは、解析バンク２×ｉがポリシングのためのものとなり、すぐ次の解析バンク２×ｉ＋１が対応するビリングカウンタのためのものとなるように、一対の解析バンク２１５の粒度で割り当てられる。
【００３９】
［計数］
表２に、カウンタモードにおける１つの解析バンク２１５のサポートされる計数設定を挙げる。カウンタモードでは、１つの解析バンク２１５が、４つの異なる設定Ａ、Ｂ、Ｃ、およびＤのうちの１つに設定され得る。
【００４０】
【表２】
2015226327.tif 000004
【００４１】
変更オペレーションは、カウンタモード設定ごとに異なる。カウンタモード設定Ａでは、カウンタエントリは、合計２乗（ｓｕｍＯｆＳｑｕａｒｅ）、合計（ｓｕｍ）、およびイベント（ｅｖｅｎｔｓ）の３つのフィールドを含む。イベント（ｅｖｅｎｔｓ）フィールドの値は、受信要求ごとに１だけ増分される。合計（ｓｕｍ）フィールドの値は、受信要求の値だけ増分される。合計２乗（ｓｕｍＯｆＳｑｕａｒｅ）フィールドの値は、受信要求の値の２乗分だけ増分される。このため、より高いレベルのアプリケーションであれば、このカウンタモード設定Ａを用いて、ｓｕｍＯｆＳｑｕａｒｅの平均（ｓｕｍＯｆＳｑｕａｒｅ／ｅｖｅｎｔｓ）からｓｕｍの平均（すなわち、ｓｕｍ／ｅｖｅｎｔｓ）の２乗を減算することで、標準偏差を導き出せるであろう。標準偏差は、ネットワークスイッチの追加的な統計解析を可能にする。カウンタモード設定Ｂ、Ｃ、Ｄ、およびＰは、カウンタモード設定Ａと同様に編成される。一部の実施形態において、カウンタモード設定Ｐは、ビリングカウンタを用いるポリシングモードにのみ用いられる。そのため、図２のクライアントインタフェース２０５には認識されない。ビリングカウンタを用いるポリシングについては、後述する。
【００４２】
表２に示すように、各カウンタエントリは、メモリ幅よりも小さい。対象エントリアドレスの最下位ビットが、メモリ内のカウンタエントリを選択するのに用いられる。最上位ビットが、解析バンク内のメモリ行を選択するのに用いられる。典型的に、カウンタモードでは結果の応答はない。換言すれば、解析バンクから応答は送出されない。むしろ、カウンタ値が、システムＣＰＵが読み出す解析バンクのメモリに格納される。
【００４３】
解析バンクの設定に基づいて、フィールドのそれぞれは、当該フィールドの最大値を維持するか、ラップアラウンドするかのどちらかとなる。
【００４４】
［ポリシング］
図２の解析バンク２１５のそれぞれは、２レート３カラーのマーキングポリシング解析バンクに設定されて、標準的な２レート３カラーの帯域監視機能を実行してもよい。ポリシング解析バンクの各行は、１つのポリサまたは帯域監視を有する。ここで、ポリサおよび帯域監視という用語は、本明細書において交換可能に用いられる。ポリサは、各パケットをレッド、イエロ、およびグリーンの３色のうちの１色に分類する。パケットは、ピークレートを超える場合はレッドにマーキングされる。その他の場合、パケットは、当該パケットがコミットレートを超えるか否かに応じて、イエロまたはグリーンにマーキングされる。
【００４５】
各ポリサは、それ自体の設定および内部状態を有する。典型的に、内部状態はポリサの上半分であり、設定はポリサの下半分である。設定は、典型的に２レートを含み、状態は、典型的に、現在のレートが何であるかを含む。ポリサは、パケットの色を発信元のクライアントインタフェースに返す。
【００４６】
ビリングカウンタを用いるポリシングは偶数個の解析バンクを含み、解析バンク２×ｉはポリシングのためのものであり、解析バンク２×ｉ＋１は関連するビリングカウンタのためのものである。図３に、本発明の実施形態によるビリングカウンタを用いるポリシングモードのためのポリシング解析バンクメモリ編成３００を示す。図３に示すように、発信元のクライアントインタフェースが、ビリングカウンタを用いるポリシングモードに設定されると、ポリシングモードで設定される解析バンク３０５は、カウンタモード設定Ｐで設定されるそのすぐ次の解析バンク３１０にカウンタ要求を送信する。このため、各色のパケットについてのバイト数が、解析バンク３１０で算出される。
【００４７】
［サンプリング］
表３に、サンプラモードにおける１つの解析バンク２１５のサポートされるサンプリング設定を挙げる。各解析バンク２１５は、Ｎ／Ｍ個のランダムサンプリングをサポートする。ここで、ＮおよびＭは、Ｎ個の連続したイベントがＭイベント間隔ごとにサンプリングされると定義される。各間隔内において、サンプリングされるイベントは、ランダムなオフセットから始まる。このモードにおいて、各サンプラは、表３に示すように、その対応の設定を有する。Ｍは、Ｍ＿ｂａｓｅ×２Ｍ＿ｅｘｐｏとして算出される。
【００４８】
【表３】
2015226327.tif 000005
【００４９】
表４は解析バンクにおける個々のサンプラについてのサンプラ状態を示す。
【００５０】
【表４】
2015226327.tif 000006
【００５１】
表４に示すように、総数（ｔｏｔａｌ＿ｃｎｔ）フィールドは、サンプリングされたイベントの総数を記録する。総数（ｔｏｔａｌ＿ｃｎｔ）フィールドは、システムがサンプラに関して重要な統計を得ることができるように、ＣＰＵから読み出されクリアされる。総数（ｔｏｔａｌ＿ｃｎｔ）フィールドはまた、中間状態を維持して、各間隔の初めで間隔イベント数（ｉｎｔｅｒｖａｌ＿ｅｖｅｎｔ＿ｃｎｔ）として現在のサンプリング間隔の始めおよび終わりを計数し、ランダムなサンプリングの開始点が決められ、間隔サンプリング開始（ｉｎｔｅｒｖａｌ＿ｓｍｐ＿ｓｔａｒｔ）から間隔サンプリング開始（ｉｎｔｅｒｖａｌ＿ｓｍｐ＿ｓｔａｒｔ）＋Ｎ−１までのイベントがサンプリングされる。サンプリングの応答またはサンプリング以外の応答が要求ごとに発信元のクライアントインタフェースに返される。
【００５２】
図４は、本発明の一実施形態によるサンプリング解析バンクメモリ編成４００を示す。図４に示すように、２つのサンプルエントリが１メモリ行内に存在し、対象エントリアドレスの最下位ビットはこれらの２つのエントリのうちの１つを選択するのに用いられ、その他の全てのビットは対象のメモリ行を選択するのに用いられる。
【００５３】
［解析バンク］
図５に、本発明の一実施形態による解析バンク５００のブロック図を示す。解析バンク５００は、解析バンク２１５と同様に構成される。カウンタ、ポリシング、およびサンプリングのための全てのオペレーションは、メモリの読出し（リード）、変更（モディファイ）および書込み（ライト）に分類され得る。メモリに対して、障害を引き起こす可能性のあるリードレイテンシがあり得るため、メモリバイパスモジュール５０５を用いて、メモリリードレイテンシを隠蔽する。メモリバイパスモジュール５０５の出力データは、３つの処理ユニットのうちの１つ、すなわち、カウンタ処理ユニット５２０、ポリシング処理ユニット５１０、またはサンプリング処理ユニット５１５に向けられる。上述のように、ポリシング処理ユニット５１０は、各色のバイト計数のために、そのすぐ次の解析バンク（図示せず）に要求をプッシュできる。
【００５４】
図６に、本発明の一実施形態による、図１のネットワークスイッチ１００のようなネットワークスイッチの動作方法６００を示す。上述のように、ネットワークスイッチ１００は、インタフェースモジュールと、共有メモリのプールとを含む。インタフェースモジュールは、典型的に、複数のクライアントインタフェースを含む。クライアントインタフェースのそれぞれは、要求を受信する要求インタフェースと、応答を送信する応答インタフェースとを含む。
【００５５】
ステップ６０５において、共有メモリのプールは、複数の同種の解析バンクに分割される。一部の実施形態において、同種の解析バンクのそれぞれは、２７２ビット幅５１２エントリ深度のオンチップメモリを含む。
【００５６】
ステップ６１０において、複数のクライアントインタフェースのそれぞれは、カウンタ、ポリシング、ビリングカウンタを用いるポリシング、およびサンプリングの４つのモードのうちの１つに、プログラムで設定される。
【００５７】
ステップ６１５において、複数のクライアントインタフェースのそれぞれは、複数の同種の解析バンクのサブセットにプログラムでマッピングされる。極端な場合、１つのクライアントインタフェースが、１つの解析バンクにマッピングされる。対極的な場合、１つのクライアントインタフェースが、解析バンクの全てにマッピングされる。
【００５８】
ステップ６２０において、複数の同種の解析バンクのそれぞれは、カウンタ、ポリシング、またはサンプリングの３つのモードのうちの１つにプログラムで割り当てられる。
【００５９】
ステップ６２５において、複数のクライアントインタフェースで受信された多数の要求は、並行に処理される。多数の要求のそれぞれに対して、対象解析バンク、ならびにこの対象解析バンク内の対象エントリアドレスが決定される。
【００６０】
対象解析バンクがカウンタモードにある場合、対象解析バンクは、例えば、平方和、加算、またはイベント計数などの少なくとも１つの演算を行う。ネットワーク動作の標準偏差も算出できる。対象解析バンク内のカウンタエントリは、対象エントリアドレスに基づいて決定される。対象解析バンク内のメモリ行も決定されて、カウンタ値が格納される。
【００６１】
対象解析バンクがポリシングモードにある場合、対象解析バンクは、２レート３カラーの帯域監視機能を実行する。対象解析バンクは、パケットの色を、このパケットの発信元のクライアントインタフェースに返す。発信元のクライアントインタフェースが、ビリングカウンタを用いるポリシングに設定される場合、対象解析バンクは、各色におけるパケットのバイト数を算出するためにすぐ次の解析バンクに、カウンタ要求を送信する。
【００６２】
対象解析バンクがサンプリングモードにある場合、対象解析バンクは、Ｎ／Ｍ個のランダムサンプリングをサポートする。ここで、ＮおよびＭは、Ｎ個の連続したイベントがＭ個のイベントごとにサンプリングされると定義される。対象解析バンクは、要求の発信元のクライアントインタフェースに応答を返す。
【００６３】
本発明のネットワークスイッチは、カウンタモジュール、ポリシングモジュール、サンプリングモジュール、またはその全てが特定の処理ユニットに固定されている従来技術のネットワークスイッチとは異なる。従来技術とは対照的に、本発明のネットワークスイッチにおいては、計数（カウンティング）、監視（モニタリング）、およびサンプリングが全てソフトウェアで定義つまりプログラムされているため、高い柔軟性と効率的な解析とが可能になる。
【００６４】
当業者ならば、他の使用法や利点もまた存在することを理解するであろう。本発明を様々な特定の詳細を参照に説明したが、当業者ならば、本発明の精神から逸脱することなく本発明が他の特定の形式で実施され得ることを理解するであろう。したがって、当業者ならば、本発明が上述の例示の詳細によって限定されず、添付の特許請求の範囲によって定義されることを理解するであろう。
【符号の説明】
【００６５】
１０５        コア
１２５        インタフェースモジュール
１３０        共用メモリプール
【図１】
2015226327.tif 000007
【図２】
2015226327.tif 000008
【図３】
2015226327.tif 000009
【図４】
2015226327.tif 000010
【図５】
2015226327.tif 000011
【図６】
2015226327.tif 000012