特許第6671112号(P6671112)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ カビウム・インコーポレーテッドの特許一覧

特許6671112ネットワークスイッチにおける柔軟かつ効率的な解析の方法およびその装置
<>
  • 特許6671112-ネットワークスイッチにおける柔軟かつ効率的な解析の方法およびその装置 図000006
  • 特許6671112-ネットワークスイッチにおける柔軟かつ効率的な解析の方法およびその装置 図000007
  • 特許6671112-ネットワークスイッチにおける柔軟かつ効率的な解析の方法およびその装置 図000008
  • 特許6671112-ネットワークスイッチにおける柔軟かつ効率的な解析の方法およびその装置 図000009
  • 特許6671112-ネットワークスイッチにおける柔軟かつ効率的な解析の方法およびその装置 図000010
  • 特許6671112-ネットワークスイッチにおける柔軟かつ効率的な解析の方法およびその装置 図000011
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6671112
(24)【登録日】2020年3月5日
(45)【発行日】2020年3月25日
(54)【発明の名称】ネットワークスイッチにおける柔軟かつ効率的な解析の方法およびその装置
(51)【国際特許分類】
   H04L 12/933 20130101AFI20200316BHJP
【FI】
   H04L12/933
【請求項の数】22
【全頁数】16
(21)【出願番号】特願2015-107430(P2015-107430)
(22)【出願日】2015年5月27日
(65)【公開番号】特開2015-226327(P2015-226327A)
(43)【公開日】2015年12月14日
【審査請求日】2018年5月15日
(31)【優先権主張番号】14/289,533
(32)【優先日】2014年5月28日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】508002601
【氏名又は名称】カビウム・エルエルシー
(74)【代理人】
【識別番号】100094569
【弁理士】
【氏名又は名称】田中 伸一郎
(74)【代理人】
【識別番号】100088694
【弁理士】
【氏名又は名称】弟子丸 健
(74)【代理人】
【識別番号】100103610
【弁理士】
【氏名又は名称】▲吉▼田 和彦
(74)【代理人】
【識別番号】100067013
【弁理士】
【氏名又は名称】大塚 文昭
(74)【代理人】
【識別番号】100086771
【弁理士】
【氏名又は名称】西島 孝喜
(74)【代理人】
【識別番号】100109070
【弁理士】
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100109335
【弁理士】
【氏名又は名称】上杉 浩
(74)【代理人】
【識別番号】100120525
【弁理士】
【氏名又は名称】近藤 直樹
(74)【代理人】
【識別番号】100139712
【弁理士】
【氏名又は名称】那須 威夫
(72)【発明者】
【氏名】ウェイフアン・ワン
(72)【発明者】
【氏名】ジェラルド・シュミット
(72)【発明者】
【氏名】ツァヒ・ダニエル
(72)【発明者】
【氏名】サウラブ・シュリヴァスタヴァ
【審査官】 野元 久道
(56)【参考文献】
【文献】 特表2012−527140(JP,A)
【文献】 特開平11−346222(JP,A)
【文献】 特表2010−541426(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/933
(57)【特許請求の範囲】
【請求項1】
受信パケットデータを処理するために複数のパイプラインステージをそれぞれが含む複数の処理するコアと、
前記コアの前記複数のパイプラインステージのそれぞれと通信するための複数のクライアントインタフェースを含むインタフェースモジュールであって、前記通信は前記受信パケットデータのポリシング、カウンティングまたはサンプリングに関連する前記複数のパイプラインステージの各々から解析要求を受信すること、及び、応答することを含む、インタフェースモジュールと、
前記インタフェースモジュールのクライアントインタフェースを介して前記コアの各々と連結され、前記コアの全ての前記パイプラインステージの全てのためのパケットデータをどのようにポリシング、カウンティングまたはサンプリングするかを規定する再プログラム可能なポリシング、カウンティングまたはサンプリングプロトコルデータを格納した共用メモリプールであって、第1モードと第2モードとの間をスイッチすることが可能なカウンタ処理ユニットを各々が含む複数の解析バンクに分離された共有メモリプールとを備えた、ネットワークスイッチ。
【請求項2】
請求項1に記載のネットワークスイッチにおいて、さらに、 相互接続であって、前記複数のクライアントインタフェースと前記複数の解析バンクとが前記相互接続によって相互接続される、相互接続を有する、ネットワークスイッチ。
【請求項3】
請求項2に記載のネットワークスイッチにおいて、前記複数のクライアントインタフェースのそれぞれが、前記複数の解析バンクの1つ以上にマッピングされるようにプログラム可能である、ネットワークスイッチ。
【請求項4】
請求項2に記載のネットワークスイッチにおいて、前記複数の解析バンクが同種である、ネットワークスイッチ。
【請求項5】
請求項2に記載のネットワークスイッチにおいて、前記複数の解析バンクのそれぞれがオンチップメモリの一部である、ネットワークスイッチ。
【請求項6】
請求項2に記載のネットワークスイッチにおいて、前記複数のクライアントインタフェースのそれぞれが、要求を受信する要求インタフェースと、応答を送信する応答インタフェースとを有する、ネットワークスイッチ。
【請求項7】
請求項6に記載のネットワークスイッチにおいて、前記要求インタフェースが、各要求を分類し、前記要求が対象とするべき対象解析バンクであって、前記複数の解析バンクのうちの1つである対象解析バンクと、当該対象解析バンク内の対象エントリアドレスとを決定する、ネットワークスイッチ。
【請求項8】
請求項7に記載のネットワークスイッチにおいて、前記要求が、前記相互接続に送信されて、処理のために前記対象解析バンクにルーティングされる、ネットワークスイッチ。
【請求項9】
請求項2に記載のネットワークスイッチにおいて、前記複数のクライアントインタフェースのそれぞれが、カウンタモード、ポリシングモード、ビリングカウンタを用いるポリシングモード、およびサンプリングモードの4つのモードのうちの1つに設定される、ネットワークスイッチ。
【請求項10】
請求項9に記載のネットワークスイッチにおいて、前記カウンタモード、前記ポリシングモード、および前記サンプリングモードが、前記複数の解析バンクのうちの単一のものに割り当てられ、前記ビリングカウンタを用いるポリシングモードが、前記複数の解析バンクの一対の解析バンク割り当てられる、ネットワークスイッチ。
【請求項11】
請求項10に記載のネットワークスイッチにおいて、前記複数の解析バンクの第1の解析バンクがポリシングのためのものであり、前記複数の解析バンクの第2の解析バンクが対応するビリングカウンタのためのものであり、前記第2のバンクは前記共有メモリプールにおける前記第1のバンクに隣接する、ネットワークスイッチ。
【請求項12】
請求項2に記載のネットワークスイッチにおいて、ある解析バンクがカウンタモードにある場合、当該解析バンクが4つの設定のうちの1つに設定され、変更オペレーションが前記設定ごとに異なる、ネットワークスイッチ。
【請求項13】
請求項12に記載のネットワークスイッチにおいて、前記変更オペレーションが、受信要求ごとにイベント(events)フィールドの値を1だけ増加することと、前記受信要求の値だけ合計(sum)フィールドの値を増加することと、前記受信要求の値の2乗分だけ、合計2乗(sumOfSquare)フィールドの値を増加することとを含む、
ネットワークスイッチ。
【請求項14】
請求項12に記載のネットワークスイッチにおいて、ネットワーク動作の標準偏差が、合計2乗(sumOfSquare)の平均から合計(sum)の平均の2乗を減算することで算出される、ネットワークスイッチ。
【請求項15】
請求項12に記載のネットワークスイッチにおいて、前記解析バンクから結果応答は送出されず、カウンタ値が前記解析バンクのメモリに格納される、ネットワークスイッチ。
【請求項16】
請求項12に記載のネットワークスイッチにおいて、第5の設定が、ビリングカウンタを用いるポリシングモードにのみ用いられる、ネットワークスイッチ。
【請求項17】
請求項2に記載のネットワークスイッチにおいて、ある解析バンクがポリシングモードにある場合、当該解析バンクが2レート3カラーの帯域監視機能を実行する、ネットワークスイッチ。
【請求項18】
請求項17に記載のネットワークスイッチにおいて、前記解析バンクは1行ごとに1つのポリサを有し、前記ポリサが設定および内部状態を有する、ネットワークスイッチ。
【請求項19】
請求項17に記載のネットワークスイッチにおいて、前記ポリサが、パケットの色を、前記パケットの発信元である前記クライアントインタフェースのうちの1つに返送する、ネットワークスイッチ。
【請求項20】
請求項18に記載のネットワークスイッチにおいて、前記発信元のクライアントインタフェースが、ビリングカウンタを用いるポリシングモードに設定されると、前記解析バンクが、各色におけるパケットのバイト数を算出するためにそのすぐ次の解析バンクにカウンタ要求を送信する、ネットワークスイッチ。
【請求項21】
請求項2に記載のネットワークスイッチにおいて、ある解析バンクがサンプリングモードにある場合、当該解析バンクが、N/M個のランダムサンプリングをサポートし、ここで、前記Nおよび前記Mが、N個の連続したイベントがMイベント間隔ごとにサンプリングされると定義される、ネットワークスイッチ。
【請求項22】
請求項21に記載のネットワークスイッチにおいて、応答が、要求ごとに発信元のクライアントインタフェースに返送される、ネットワークスイッチ。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、高速ネットワークスイッチにおけるトラフィック解析に関する。より詳細には、本発明は、ネットワークスイッチにおける柔軟かつ効率的な解析であって、計数、帯域監視、およびフローサンプリングを含む解析およびその装置に関する。
【背景技術】
【0002】
ソフトウェア・デファインド・ネットワーキング(SDN)が出現してきており、オープンフローは、その顕著な特徴の1つである。受信パケットは、一連の表検索および一致アクション、ならびに解析を受ける。ネットワークスイッチにおける良好な抽象化は極めて重要である。その理由は、良好な抽象化が、限られたハードウェアリソースの効率的な使用および要求の変更の取り扱いを可能にし、1つ上の上位レベルにおけるプログラミングを簡素化するからである。
【発明の概要】
【発明が解決しようとする課題】
【0003】
カウンタ、2レート3カラー(2帯域3色)の帯域モニタ(ポリシング)およびフローサンプリングが、従来技術のネットワークスイッチにおいて存在する。従来技術のネットワークスイッチは、これらの目的ごとに専用のメモリを用いる。特に、内部パイプラインの各処理ユニットは指定されたタスクを行うように予め定められているので、これらのカウンタ、帯域モニタ、およびサンプラは、この内部パイプラインの一定の決まったステージからアクセス可能である。カウンタは、種々の条件で、スイッチを通過するパケットの数またはトラフィックのバイトを計数するのに用いられる。ポリシングは、スイッチを通過するパケットを、それぞれ異なるサービス品質の3色、すなわち、グリーン、イエロ、またはレッドに、分類する。サンプリングは、トラフィックの高速のフローを低速のストリームにサンプリングし、追加的な処理または解析のために、システムCPUに送信する。したがって、従来技術のネットワークスイッチでは、計数、トラフィック帯域監視、およびフローサンプリングを行うには柔軟性が欠如している。
【課題を解決するための手段】
【0004】
本発明の実施形態は、集中型ネットワーク解析装置に関し、この集中型ネットワーク解析装置は、オンチップメモリを効率的に用いて、計数、トラフィック帯域監視、およびフローサンプリングを柔軟(自由に変更可能)に行う。この装置は、全てのコアおよび各コアのパケット処理ステージによって共有される、メモリのプールを含む。装置においては、計数、監視、およびサンプリングが全てソフトウェアで定義されているため、高い柔軟性と効率的な解析とが可能になる。一部の実施形態において、この装置は、ネットワークスイッチである。
【0005】
一構成において、ネットワークスイッチが提供される。前記ネットワークスイッチは、複数のパイプラインステージを含む少なくとも1つのコアを備える。前記ネットワークスイッチは、また、前記少なくとも1つのコアの前記複数のパイプラインステージのそれぞれと通信して前記複数のパイプラインステージから要求を受信する要求・応答統合インタフェースを含むインタフェースモジュールを備える。前記ネットワークスイッチは、また、共用メモリプールを備える。この共用メモリプールは、前記要求を並行に処理するために前記インタフェースモジュールと連結される。
【0006】
一部の実施形態において、前記ネットワークスイッチは、また、多数の並行なネットワーク解析を実行する解析モジュールを備える。前記解析モジュールは、複数のクライアントインタフェースと、相互接続と、複数の解析バンクとを備える。前記複数のクライアントインタフェースと前記複数の解析バンクは、前記相互接続を介して相互に接続される。
【0007】
一部の実施形態において、前記複数のクライアントインタフェースのそれぞれは、前記複数の解析バンクの1つ以上にマッピングされるようにプログラム可能である。
【0008】
一部の実施形態において、前記共用メモリプールのメモリは、前記複数の解析バンクに分離される。
【0009】
一部の実施形態において、前記複数の解析バンクは同種である。
【0010】
一部の実施形態において、前記複数の解析バンクのそれぞれは、272ビット幅512エントリ深度のオンチップメモリのようなオンチップメモリを含む。
【0011】
一部の実施形態において、前記複数のクライアントインタフェースは互いに類似に構成される。
【0012】
一部の実施形態において、前記複数のクライアントインタフェースのそれぞれは、要求を受信する要求インタフェースと、応答を送信する応答インタフェースとを備える。前記要求インタフェースは、各要求を分類し、前記要求が対象とするべき対象解析バンクと、当該対象解析バンク内の対象エントリアドレスとを決定する。前記対象解析バンクは前記複数の解析バンクのうちの1つである。前記要求は、前記相互接続に送信されて、処理のために前記対象解析バンクにルーティングされる。
【0013】
一部の実施形態において、前記複数のクライアントインタフェースのそれぞれは、カウンタモード、ポリシングモード、ビリングカウンタを用いるポリシングモード、およびサンプリングモードの4つのモードのうちの1つに設定される。
【0014】
一部の実施形態において、前記カウンタモード、前記ポリシングモード、および前記サンプリングモードは、それぞれバンク粒度で割り当てられ、ビリングカウンタを用いるポリシングモードは、一対の解析バンクの粒度で割り当てられる。例えば、解析バンク2×iはポリシングのためのものであり、すぐ次の解析バンク2×i+1は、対応するビリングカウンタのためのものである。
【0015】
一部の実施形態において、ある解析バンクがカウンタモードにある場合、当該解析バンクは4つの設定のうちの1つに設定され、変更オペレーション(変更演算)は前記設定ごとに異なる。前記変更オペレーションは、受信要求ごとにイベント(events)フィールドの値を1だけ増加することと、前記受信要求の値だけ合計(sum)フィールドの値を増加することと、前記受信要求の値の2乗分だけ、合計2乗(sumOfSquare)フィールドの値を増加することとを含む。ネットワーク動作の標準偏差は、合計2乗(sumOfSquare)の平均から合計(sum)の平均の2乗を減算することで算出される。結果応答は前記解析バンクから送出されず、カウンタ値が前記解析バンクのメモリに格納される。一部の実施形態において、第5の設定は、ビリングカウンタを用いるポリシングモードにのみ用いられる。
【0016】
一部の実施形態において、ある解析バンクがポリシングモードにある場合、当該解析バンクは2レート3カラーの帯域監視機能を実行する。前記解析バンクは1行ごとに1つのポリサを有し、前記ポリサは設定および内部状態を有する。前記ポリサは、パケットの色を、前記パケットの送信元である前記クライアントインタフェースのうちの1つに返送する。一部の実施形態において、前記発信元のクライアントインタフェースが、ビリングカウンタを用いるポリシングモードに設定されると、前記解析バンクは、各色におけるパケットのバイト数を算出するためにすぐ次の(後方に隣接する)解析バンクにカウンタ要求を送信する。
【0017】
一部の実施形態において、ある解析バンクがサンプリングモードにある場合、当該解析バンクは、N/M個のランダムサンプリングをサポートする。ここで、NおよびMは、N個の連続したイベントがMイベント間隔ごとにサンプリングされると定義される。応答が、要求ごとに発信元のクライアントインタフェースに返送される。
【0018】
他の構成において、解析バンクが提供される。前記解析バンクは、少なくとも3つの処理ユニットと、メモリバイパスモジュールとを備える。
【0019】
前記少なくとも3つの処理ユニットは、カウンタ処理ユニットと、ポリシング処理ユニットと、サンプリング処理ユニットとを備える。ポリシング処理ユニットは、色のバイト計数のために他の解析バンクに要求をプッシュ(送ることが)可能である。前記他の解析バンクは、前記解析バンクのすぐ次にある解析バンクである。
【0020】
前記メモリバイパスモジュールは、メモリリードレイテンシを隠蔽する。特に、前記メモリバイパスモジュールの出力データは前記カウンタ処理ユニット、前記ポリシング処理ユニット、または前記サンプリング処理ユニットに向けられる。
【0021】
一部の実施形態において、前記解析バンクがカウンタモードにある場合、前記カウンタ処理ユニットは、ネットワーク動作統計解析のための平方和、加算、およびイベント計数を行う。一部の実施形態において、前記カウンタ処理ユニットは、ネットワーク動作の標準偏差を算出する。
【0022】
さらに別の構成において、ネットワークスイッチの動作方法が提供される。前記方法は、共有メモリのプールを複数の同種の解析バンクに分割することと、複数のクライアントインタフェースのそれぞれを、カウンタモード、ポリシングモード、ビリングカウンタを用いるポリシングモード、およびサンプリングモードの4つのモードのうちの1つに、プログラムで設定することとを含む。前記方法は、また、前記複数のクライアントインタフェースのそれぞれを、前記複数の同種の解析バンクのサブセットにプログラムでマッピングすることと、カウンタモード、ポリシングモード、およびサンプリングモードの3つのモードのうちの1つに前記複数の同種の解析バンクのそれぞれをプログラムで割り当てることとを含む。前記方法は、また、前記複数のクライアントインタフェースで受信した多数の要求を並行に処理することを含む。
【0023】
一部の実施形態において、前記多数の要求を並行に処理するステップは、前記多数の要求のそれぞれに対して、対象解析バンクおよび前記対象解析バンク内の対象エントリアドレスを決定することを含む。
【0024】
前記多数の要求を並行に処理するステップは、また、前記対象解析バンクがカウンタモードにある場合、前記対象解析バンクが、平方和、加算、またはイベント計数などの少なくとも1つの演算を行うことを含む。ネットワーク動作の標準偏差がさらに算出されてもよい。前記対象エントリアドレスに基づいて前記対象解析バンク内でカウンタエントリを決定し、前記対象解析バンク内でメモリの行をさらに決定してカウンタ値を格納する。
【0025】
前記多数の要求を並行に処理するステップは、また、前記対象解析バンクがポリシングモードにある場合、前記対象解析バンクは、2レート3カラーの帯域監視機能を実行することを含む。前記対象解析バンクは、パケットの色を前記パケットの発信元のクライアントインタフェースに返送する。ビリングカウンタを用いるポリシングとして構成される場合は、前記対象解析バンクは、次に、各色における前記パケットのバイト数を算出するために、すぐ次の解析バンクにカウンタ要求を送信する。
【0026】
前記多数の要求を並行に処理するステップは、また、前記対象解析バンクがサンプリングモードにある場合、前記対象解析バンクがN/M個のランダムサンプリングをサポートすることを含む。ここで、NおよびMは、N個の連続したイベントが、Mイベント間隔ごとにサンプリングされると定義される。前記対象解析バンクは、前記要求の発信元のクライアントインタフェースに応答を返送する。
【0027】
以下の説明において、多くの詳細が説明を目的として述べられる。しかし、当業者なら、これらの特定の詳細を用いることなく本発明が実施可能であることを理解するであろう。このため、本発明は、図示された実施形態に限定されることを意図するものではなく、本明細書に説明される原理および特徴に合致する最大限の範囲に従うものである。
【図面の簡単な説明】
【0028】
上記は、添付図面に示すように、以下の本発明の例示的な実施形態のさらに詳細な説明から明らかになるであろう。添付図面において、異なる図全体にわたり、同様の部分は同様の参照符号で示す。図面は必ずしも原寸に比例しておらず、本発明の実施形態の説明に重点が置かれている。
図1】本発明の一実施形態によるネットワークスイッチの例示的な構成を示す図である。
図2】本発明の一実施形態による解析モジュールを示す図である。
図3】本発明の一実施形態によるビリングカウンタを用いるポリシングモードのためのポリシング解析バンクメモリ編成を示す図である。
図4】本発明の一実施形態によるサンプリング解析バンクメモリ編成を示す図である。
図5】本発明の一実施形態による解析バンクのブロック図である。
図6】本発明の一実施形態によるネットワークスイッチの動作方法を示す図である。
【発明を実施するための形態】
【0029】
以下の説明では、説明の目的で様々な詳細を述べる。しかし、当業者ならば、これらの特定の詳細事項を用いずとも本発明を実施できることを理解するであろう。よって、本発明は、示される実施形態に限定されることを意図するものではなく、本明細書で説明される原理および特徴に合致する最も広い範囲に従うものである。
【0030】
本発明の実施形態は、集中型ネットワーク解析装置に関する。この集中型ネットワーク解析装置は、オンチップメモリを効率的に用いて、計数、トラフィック帯域監視、およびフローサンプリングを柔軟に行う。この装置は、全てのコアおよび各コアのパケット処理ステージによって共有されるメモリのプールを含む。この装置においては、計数、監視、およびサンプリングが全てソフトウェアで定義される。このため、高い柔軟性と効率的な解析が可能になる。一部の実施形態において、この装置はネットワークスイッチである。他のネットワーキング装置も意図される。
【0031】
図1に、本発明の一実施形態によるネットワークスイッチ100の例示的な構成を示す。ネットワークスイッチ100は、1つ以上のコア105と、トラフィック管理装置110とを含む。各コア105は、典型的に、複数のパイプラインステージを含む。この複数のパイプラインステージは、複数のパケット処理ユニット115と、少なくとも1つのパケット変更手段120とを含む。1つ以上のコア105における全ての処理ユニット115、120は、要求・応答統合インタフェースを介してインタフェースモジュール125と通信する(図2を参照)。インタフェースモジュール125は、要求処理のために共用メモリプール130に連結されている。
【0032】
図2は、本発明の実施形態による解析モジュール200を示す。解析モジュール200は、典型的には、図1のネットワークスイッチ100のようなネットワークスイッチの一部である。解析モジュール200は、複数のクライアントインタフェース205と、相互接続210と、複数の解析バンク215とを含む。複数のクライアントインタフェース205と複数の解析バンク215とは、オンチップネットワーク210を介して相互接続される。各クライアントインタフェース205は、複数の解析バンク215のうちの1つ以上にマッピングされるようにプログラム可能である。図1の共用メモリプール130からのメモリは、典型的に、複数の解析バンク215に分離される。一部の実施形態において、各解析バンク215は他の解析バンク215が含むのと同数のメモリを含むという点において、複数の解析バンク215は同種(homogenous)である。一部の実施形態において、各解析バンク215は、272ビット幅512エントリ深度のオンチップメモリを含むが、他のメモリサイズも可能である。
【0033】
一部の実施形態において、複数のクライアントインタフェース205が互いに類似に構成される。各クライアントインタフェース205は、典型的に、要求インタフェース205aと、応答インタフェース205bとを有する。クライアントインタフェース205の要求インタフェース205aは、要求アドレスおよび要求値をそれぞれ含む受信要求をパケット処理ユニットから受信するよう構成され、クライアントインタフェース205の応答インタフェース205bは、パケット処理ユニットへ応答を送信するよう構成される。一部の実施形態において、パケット処理ユニットは、図1のコア105である。各要求インタフェース205aは、典型的に、各受信要求を分類し、この要求が対象とするべき対象解析バンクと、その対象解析バンク内の対象エントリアドレスとを決定する。対象解析バンクは、典型的に、クライアントインタフェース205がマッピングされる複数の解析バンク215のうちの1つである。次に、要求はオンチップネットワーク210に送信されて、処理のために対象解析バンク215にルーティングされる。各要求は、典型的に、2つ以上の応答を有することはない(例えば、応答が無いか、まさに1つの応答かのいずれかである)。
【0034】
表1は、各クライアントインタフェース205に対する表設定を示す。モード(mode)フィールドによって示されるように、各クライアントインタフェース205は、4つの可能なモード(すなわち、カウンタモード、ポリシングモード、ビリングカウンタを用いるポリシングモード、およびサンプリングモード)のうちの1つに設定され得る。
【0035】
【表1】
【0036】
上述のように、解析バンク215のサイズは同一であるとともに、クライアントインタフェース205と解析バンク215との間の接続は、ソフトウェアによりプログラム可能である。特に、各クライアントインタフェース205を解析バンク215のサブセット(複数の解析バンク215のうちの一部)にマッピングすることを、ソフトウェアで定義できる。極端な場合、1つのクライアントインタフェース205は、1つの解析バンク215を用いることができる。対極的な場合、1つのクライアントインタフェース205は、解析バンク215の全てを用いることができる。2つ以上のクライアントインタフェース205が、解析バンク215の同一サブセットを用いることができる。
【0037】
各クライアントインタフェース205は、解析バンク開始(anaBankStart)フィールドおよび解析バンク終了(anaBankEnd)フィールドによって特定される1つ以上の解析バンク215を利用できる。解析バンク開始(anaBankStart)フィールドおよび解析バンク終了(anaBankEnd)フィールドの間の解析バンク215は、典型的に連続している。バンクごとエントリ(entryPerBank)フィールドは、各解析バンク215において存在するエントリの数を示す。バンクごとエントリ(entryPerBank)フィールドは、要求ごとに対象解析バンク215を割り出すのに用いられる。一部の実施形態において、解析バンク215ごとのエントリ数(すなわち、entryPerBank)で除される受信要求アドレスの整数部は、対象解析バンクIDになる。受信要求アドレスの最下位ビットは、解析バンク215内で対象エントリアドレスを生成するために用いられる。
【0038】
一部の実施形態において、解析バンク215のうちの1対または複数対が、ビリングカウンタを用いるポリシングモードのために接続される。換言すると、カウンタモード、ポリシングモード、およびサンプリングモードはそれぞれ、バンク粒度で割り当てられる一方、ビリングカウンタを用いるポリシングは、解析バンク2×iがポリシングのためのものとなり、すぐ次の解析バンク2×i+1が対応するビリングカウンタのためのものとなるように、一対の解析バンク215の粒度で割り当てられる。
【0039】
[計数]
表2に、カウンタモードにおける1つの解析バンク215のサポートされる計数設定を挙げる。カウンタモードでは、1つの解析バンク215が、4つの異なる設定A、B、C、およびDのうちの1つに設定され得る。
【0040】
【表2】
【0041】
変更オペレーションは、カウンタモード設定ごとに異なる。カウンタモード設定Aでは、カウンタエントリは、合計2乗(sumOfSquare)、合計(sum)、およびイベント(events)の3つのフィールドを含む。イベント(events)フィールドの値は、受信要求ごとに1だけ増分される。合計(sum)フィールドの値は、受信要求の値だけ増分される。合計2乗(sumOfSquare)フィールドの値は、受信要求の値の2乗分だけ増分される。このため、より高いレベルのアプリケーションであれば、このカウンタモード設定Aを用いて、sumOfSquareの平均(sumOfSquare/events)からsumの平均(すなわち、sum/events)の2乗を減算することで、標準偏差を導き出せるであろう。標準偏差は、ネットワークスイッチの追加的な統計解析を可能にする。カウンタモード設定B、C、D、およびPは、カウンタモード設定Aと同様に編成される。一部の実施形態において、カウンタモード設定Pは、ビリングカウンタを用いるポリシングモードにのみ用いられる。そのため、図2のクライアントインタフェース205には認識されない。ビリングカウンタを用いるポリシングについては、後述する。
【0042】
表2に示すように、各カウンタエントリは、メモリ幅よりも小さい。対象エントリアドレスの最下位ビットが、メモリ内のカウンタエントリを選択するのに用いられる。最上位ビットが、解析バンク内のメモリ行を選択するのに用いられる。典型的に、カウンタモードでは結果の応答はない。換言すれば、解析バンクから応答は送出されない。むしろ、カウンタ値が、システムCPUが読み出す解析バンクのメモリに格納される。
【0043】
解析バンクの設定に基づいて、フィールドのそれぞれは、当該フィールドの最大値を維持するか、ラップアラウンドするかのどちらかとなる。
【0044】
[ポリシング]
図2の解析バンク215のそれぞれは、2レート3カラーのマーキングポリシング解析バンクに設定されて、標準的な2レート3カラーの帯域監視機能を実行してもよい。ポリシング解析バンクの各行は、1つのポリサまたは帯域監視を有する。ここで、ポリサおよび帯域監視という用語は、本明細書において交換可能に用いられる。ポリサは、各パケットをレッド、イエロ、およびグリーンの3色のうちの1色に分類する。パケットは、ピークレートを超える場合はレッドにマーキングされる。その他の場合、パケットは、当該パケットがコミットレートを超えるか否かに応じて、イエロまたはグリーンにマーキングされる。
【0045】
各ポリサは、それ自体の設定および内部状態を有する。典型的に、内部状態はポリサの上半分であり、設定はポリサの下半分である。設定は、典型的に2レートを含み、状態は、典型的に、現在のレートが何であるかを含む。ポリサは、パケットの色を発信元のクライアントインタフェースに返す。
【0046】
ビリングカウンタを用いるポリシングは偶数個の解析バンクを含み、解析バンク2×iはポリシングのためのものであり、解析バンク2×i+1は関連するビリングカウンタのためのものである。図3に、本発明の実施形態によるビリングカウンタを用いるポリシングモードのためのポリシング解析バンクメモリ編成300を示す。図3に示すように、発信元のクライアントインタフェースが、ビリングカウンタを用いるポリシングモードに設定されると、ポリシングモードで設定される解析バンク305は、カウンタモード設定Pで設定されるそのすぐ次の解析バンク310にカウンタ要求を送信する。このため、各色のパケットについてのバイト数が、解析バンク310で算出される。
【0047】
[サンプリング]
表3に、サンプラモードにおける1つの解析バンク215のサポートされるサンプリング設定を挙げる。各解析バンク215は、N/M個のランダムサンプリングをサポートする。ここで、NおよびMは、N個の連続したイベントがMイベント間隔ごとにサンプリングされると定義される。各間隔内において、サンプリングされるイベントは、ランダムなオフセットから始まる。このモードにおいて、各サンプラは、表3に示すように、その対応の設定を有する。Mは、M_base×2M_expoとして算出される。
【0048】
【表3】
【0049】
表4は解析バンクにおける個々のサンプラについてのサンプラ状態を示す。
【0050】
【表4】
【0051】
表4に示すように、総数(total_cnt)フィールドは、サンプリングされたイベントの総数を記録する。総数(total_cnt)フィールドは、システムがサンプラに関して重要な統計を得ることができるように、CPUから読み出されクリアされる。総数(total_cnt)フィールドはまた、中間状態を維持して、各間隔の初めで間隔イベント数(interval_event_cnt)として現在のサンプリング間隔の始めおよび終わりを計数し、ランダムなサンプリングの開始点が決められ、間隔サンプリング開始(interval_smp_start)から間隔サンプリング開始(interval_smp_start)+N−1までのイベントがサンプリングされる。サンプリングの応答またはサンプリング以外の応答が要求ごとに発信元のクライアントインタフェースに返される。
【0052】
図4は、本発明の一実施形態によるサンプリング解析バンクメモリ編成400を示す。図4に示すように、2つのサンプルエントリが1メモリ行内に存在し、対象エントリアドレスの最下位ビットはこれらの2つのエントリのうちの1つを選択するのに用いられ、その他の全てのビットは対象のメモリ行を選択するのに用いられる。
【0053】
[解析バンク]
図5に、本発明の一実施形態による解析バンク500のブロック図を示す。解析バンク500は、解析バンク215と同様に構成される。カウンタ、ポリシング、およびサンプリングのための全てのオペレーションは、メモリの読出し(リード)、変更(モディファイ)および書込み(ライト)に分類され得る。メモリに対して、障害を引き起こす可能性のあるリードレイテンシがあり得るため、メモリバイパスモジュール505を用いて、メモリリードレイテンシを隠蔽する。メモリバイパスモジュール505の出力データは、3つの処理ユニットのうちの1つ、すなわち、カウンタ処理ユニット520、ポリシング処理ユニット510、またはサンプリング処理ユニット515に向けられる。上述のように、ポリシング処理ユニット510は、各色のバイト計数のために、そのすぐ次の解析バンク(図示せず)に要求をプッシュできる。
【0054】
図6に、本発明の一実施形態による、図1のネットワークスイッチ100のようなネットワークスイッチの動作方法600を示す。上述のように、ネットワークスイッチ100は、インタフェースモジュールと、共有メモリのプールとを含む。インタフェースモジュールは、典型的に、複数のクライアントインタフェースを含む。クライアントインタフェースのそれぞれは、要求を受信する要求インタフェースと、応答を送信する応答インタフェースとを含む。
【0055】
ステップ605において、共有メモリのプールは、複数の同種の解析バンクに分割される。一部の実施形態において、同種の解析バンクのそれぞれは、272ビット幅512エントリ深度のオンチップメモリを含む。
【0056】
ステップ610において、複数のクライアントインタフェースのそれぞれは、カウンタ、ポリシング、ビリングカウンタを用いるポリシング、およびサンプリングの4つのモードのうちの1つに、プログラムで設定される。
【0057】
ステップ615において、複数のクライアントインタフェースのそれぞれは、複数の同種の解析バンクのサブセットにプログラムでマッピングされる。極端な場合、1つのクライアントインタフェースが、1つの解析バンクにマッピングされる。対極的な場合、1つのクライアントインタフェースが、解析バンクの全てにマッピングされる。
【0058】
ステップ620において、複数の同種の解析バンクのそれぞれは、カウンタ、ポリシング、またはサンプリングの3つのモードのうちの1つにプログラムで割り当てられる。
【0059】
ステップ625において、複数のクライアントインタフェースで受信された多数の要求は、並行に処理される。多数の要求のそれぞれに対して、対象解析バンク、ならびにこの対象解析バンク内の対象エントリアドレスが決定される。
【0060】
対象解析バンクがカウンタモードにある場合、対象解析バンクは、例えば、平方和、加算、またはイベント計数などの少なくとも1つの演算を行う。ネットワーク動作の標準偏差も算出できる。対象解析バンク内のカウンタエントリは、対象エントリアドレスに基づいて決定される。対象解析バンク内のメモリ行も決定されて、カウンタ値が格納される。
【0061】
対象解析バンクがポリシングモードにある場合、対象解析バンクは、2レート3カラーの帯域監視機能を実行する。対象解析バンクは、パケットの色を、このパケットの発信元のクライアントインタフェースに返す。発信元のクライアントインタフェースが、ビリングカウンタを用いるポリシングに設定される場合、対象解析バンクは、各色におけるパケットのバイト数を算出するためにすぐ次の解析バンクに、カウンタ要求を送信する。
【0062】
対象解析バンクがサンプリングモードにある場合、対象解析バンクは、N/M個のランダムサンプリングをサポートする。ここで、NおよびMは、N個の連続したイベントがM個のイベントごとにサンプリングされると定義される。対象解析バンクは、要求の発信元のクライアントインタフェースに応答を返す。
【0063】
本発明のネットワークスイッチは、カウンタモジュール、ポリシングモジュール、サンプリングモジュール、またはその全てが特定の処理ユニットに固定されている従来技術のネットワークスイッチとは異なる。従来技術とは対照的に、本発明のネットワークスイッチにおいては、計数(カウンティング)、監視(モニタリング)、およびサンプリングが全てソフトウェアで定義つまりプログラムされているため、高い柔軟性と効率的な解析とが可能になる。
【0064】
当業者ならば、他の使用法や利点もまた存在することを理解するであろう。本発明を様々な特定の詳細を参照に説明したが、当業者ならば、本発明の精神から逸脱することなく本発明が他の特定の形式で実施され得ることを理解するであろう。したがって、当業者ならば、本発明が上述の例示の詳細によって限定されず、添付の特許請求の範囲によって定義されることを理解するであろう。
【符号の説明】
【0065】
105 コア
125 インタフェースモジュール
130 共用メモリプール
図1
図2
図3
図4
図5
図6