(57)【特許請求の範囲】
【請求項１】
ネットワークステーションからデータパケットを受信するステップと、
受信データパケットの受信に応答して新たな情報を生成するステップと、
管理エージェントが用いるための、新たな情報および受信データパケットの少なくとも一部を含む新たなデータパケットを出力するステップとを含み、新たな情報は受信データパケットの受信に対応する特性を特定する、ネットワークにおける方法。
【請求項２】
生成するステップが、受信データパケットの受信に応答してネットワークスイッチの特性を前記特性の少なくとも１つとして決定するステップを含み、前記生成するステップは決定されたネットワークスイッチ特性に基づいて新たな情報を生成する、請求項１に記載の方法。
【請求項３】
ネットワークスイッチが、データパケットを宛先ネットワークステーションに経路付けするためのスイッチ論理を含み、データパケットはネットワークステーションに対応するソースアドレスを有し、
決定するステップが、スイッチ論理によってソースアドレスを認識する能力を決定するステップを含み、
生成するステップが、スイッチ論理によって決定されたソースアドレスを認識する能力を特定するスイッチ論理データを生成するステップをさらに含む、請求項２に記載の方法。
【請求項４】
スイッチ論理が既知のソースアドレスの１つと、スイッチ論理によって学習された未知のソースアドレスと、スイッチ論理によって学習されなかった未知のソースアドレスとを特定する、請求項３に記載の方法。
【請求項５】
第２の生成するステップが、スイッチ論理によって学習された未知のソースアドレスに対応するアドレス情報のメモリ場所を特定するインデックスポインタを生成するステップを含む、請求項４に記載の方法。
【請求項６】
決定するステップが、受信データパケットを受信しかつネットワークステーションに対応する受信バッファのオーバフロー状況を特定するオーバフローフラグを前記特性の１つとして生成するステップを含む、請求項２に記載の方法。
【請求項７】
決定するステップが、受信データパケットでのエラーを明記するエラーフラグを前記特性の１つとして生成するステップを含む、請求項２に記載の方法。
【請求項８】
生成するステップが、管理エージェントに対してデータパケットを送受信するように構成されるネットワークスイッチポートに対応する新たな宛先アドレスフィールドを生成するステップを含む、請求項１に記載の方法。
【請求項９】
新たなデータパケットに対してエラーチェックコードを生成するステップをさらに含み、出力するステップが、新たな情報と、受信データパケットの少なくとも一部分と、エラーチェックコードとを含む新たなデータパケットを出力する、請求項１に記載の方法。
【請求項１０】
前記生成するステップが、受信データパケットの条件を前記特性の少なくとも１つとして決定するステップを含み、新たな情報が受信データパケットの決定された条件を含む、請求項１に記載の方法。
【請求項１１】
条件を決定するステップが、受信データパケットでのエラーの存在を決定するステップを含む、請求項１０に記載の方法。
【請求項１２】
受信データパケットのフレームタイプを前記特性の少なくとも１つとして決定するステップをさらに含み、新たな情報が決定されたフレームタイプを含む、請求項１に記載の方法。
【請求項１３】
フレームタイプを決定するステップが、受信データパケットを、管理フレームと、管理エージェントおよびネットワークスイッチのポートのうち１つに対応する宛先アドレスを有する宛先指定フレームと、監視されるフレームとのうちの１つとして識別するステップを含む、請求項１２に記載の方法。
【請求項１４】
受信データパケットがソースアドレスおよび宛先アドレスを含み、
ネットワークステーションがスイッチ論理を含み、
フレームタイプを決定するステップが、前記ソースアドレスおよび前記宛先アドレスのうち少なくとも１つに対応するスイッチ論理データに基づいて、受信データパケットを前記監視されるフレームとしてスイッチ論理によって識別するステップをさらに含む、請求項１３に記載の方法。
【請求項１５】
データパケットがソースアドレスおよび宛先アドレスを含み、
ネットワークステーションがスイッチ論理と、データパケットをネットワークステーションから受信するソースポートと、宛先ポートとを含み、スイッチ論理は宛先アドレスに基づいてネットワークポートの１つを宛先ポートとして選択するように構成され、
フレームタイプを決定するステップが、前記ソースポートおよび前記宛先ポートの少なくとも１つに基づいてデータパケットを前記監視されたフレームとして特定するステップをさらに含む、請求項１３に記載の方法。
【請求項１６】
管理フレームがブリッジプロトコルデータユニット（ＢＰＤＵ）およびブリッジマルチキャストフレームのうちの１つである、請求項１３に記載の方法。
【請求項１７】
生成するステップが、新規データパケットが受信データパケットの一部分のみを含むことを特定するデータを新たな情報内に生成するステップを含む、請求項１に記載の方法。
【請求項１８】
ネットワークスイッチがそれぞれのネットワークステーションに対してデータパケットを授受する複数のネットワークポートを有する請求項１に記載の方法であって、前記方法がネットワークデータパケットおよびポートベクタを含む管理データパケットを管理エージェントから受信するステップをさらに含み、ポートベクタがネットワークデータパケットを送信するために前記ネットワークポートのグループを特定する、請求項１に記載の方法。
【請求項１９】
それぞれのネットワークステーションに対してデータフレームを送受信するように構成された複数のネットワークポートと、
管理データフレームを管理エージェントに送信するように構成された管理ポートとを含み、管理データフレームは、選択された受信データフレームの少なくとも一部分と、選択されたデータフレームの受信に対応する新たな情報を特定する特性とを含み、さらに、
対応する受信データフレームについての新たな情報の少なくとも一部分を生成するように構成されたスイッチングサブシステムを含む、ネットワークスイッチ。
【請求項２０】
スイッチングサブシステムが、受信データフレームの１つを選択された受信データフレームとして選択し、スイッチ論理データを新たな情報の少なくとも一部分として生成するためのスイッチ論理を含む、請求項１９に記載のスイッチ。
【請求項２１】
前記ネットワークポートの各々および前記管理ポートが、対応するデータフレームの受信に応答して受信ステータスフィールドを各々生成し、スイッチ論理が対応の選択された受信データフレームに対する受信ステータスフィールドを前記管理データフレームに供給して送信する、請求項２０に記載のスイッチ。
【請求項２２】
受信ステータスが、選択された受信データフレームでのエラーおよび対応するネットワークポートでの受信バッファのオーバフローのうち少なくとも１つを特定する、請求項２１に記載のスイッチ。
【請求項２３】
スイッチ論理が、選択された受信データフレーム内の認識されないソースアドレスを検出することに応答して選択された受信データフレームを選択し、スイッチ論理が認識されないソースアドレスの検出を示すスイッチ論理データを生成する、請求項２０に記載のスイッチ。
【請求項２４】
スイッチ論理によって生成されたスイッチ論理データが、認識されないソースアドレスが新規に認識されたソースアドレスとして学習されたかをさらに明記する、請求項２３に記載のスイッチ。
【請求項２５】
スイッチ論理が前記ネットワークポートの予め定められたものの受信に基づいて選択された受信データフレームを選択し、スイッチ論理データが選択された受信データフレームを予め定められた１つのポートに受信されたと特定する、請求項２０に記載のスイッチ。
【請求項２６】
スイッチ論理が、前記ネットワークポートの予め定められた１つを選択された受信データポートの宛先ポートとして特定することに基づいて選択された受信データフレームを選択し、スイッチ論理データが予め定められたあるネットワークポートを選択された受信データフレームの宛先ポートとして特定する、請求項２０に記載のスイッチ。
【請求項２７】
スイッチ論理が、選択された受信データフレーム内のソースアドレスおよび宛先アドレスの予め定められた１つの検出に基づいて選択された受信データフレームを選択し、スイッチ論理データが選択された受信データフレームを予め定められたあるアドレスを有するものとして特定する、請求項２０に記載のスイッチ。
【請求項２８】
スイッチ論理が選択された受信データフレームを非ネットワークステーションフレームとして特定したことに基づいてそれを選択し、スイッチ論理データが選択された受信データフレームを非ネットワークステーションフレームとして特定する、請求項２０に記載のスイッチ。
【請求項２９】
管理ポートが管理エージェントから第２の管理フレームを受信し、第２の管理フレームがネットワークデータパケットと、ネットワークデータパケットを送信するためのネットワークポートを特定するポートベクタとを含む、請求項２０に記載のスイッチ。
【請求項３０】
管理ポートが、管理データフレームのヘッダの一部として新たな情報を出力する、請求項１９に記載のスイッチ。
【請求項３１】
新たな情報が、管理データフレームが選択された受信データフレームの全体を含むことを特定する、請求項３０に記載のスイッチ。
【発明の詳細な説明】
関連出願
この出願は、１９９７年２月１４日に出願され、「統合マルチポートスイッチ」と題された仮特許出願第６０／０３８，０２５号（代理人管理番号１０３３−２３０ＰＲＯ）から優先権を主張し、これをここに引用として援用する。
技術分野
この発明はネットワークスイッチングに関し、より特定的には、ネットワークスイッチとネットワークスイッチを制御するホストコンピュータとの間に管理データを提供する方法および装置に関する。
背景技術
スイッチトローカルエリアネットワークは、ネットワークステーション間でデータを供給するためにネットワークスイッチを用い、各ネットワークステーションは媒体によってネットワークスイッチに接続される。このスイッチトローカルエリアネットワークアーキテクチャは、ネットワークインタフェースカードが媒体にアクセスできるようにする媒体アクセス制御（ＭＡＣ）を用いる。ネットワークスイッチは、送信ステーションから受信したデータフレームを、受信データフレームのヘッダ情報に基づいて宛先ステーションへ伝達する。
ネットワークは典型的には、ハブまたはリピータによってアクティビティを監視する管理エージェントを含むであろう。管理エージェントは、分析および／または診断装置を含んでもよく、ネットワークがいかにうまく利用されているかを特定するためにネットワークに関する統計的情報にも関係する。このような統計的情報は、どのようなタイプのパケットがネットワーク上にあるか、どのようなプロトコルがネットワーク上で用いられているか、パケット送信者のアイデンティティ、パケット受信者のアイデンティティ、およびネットワーク上を転送されているパケット長の分布を含み得る。
ネットワークリピータは典型的には、管理情報をＭＡＣ層プロトコルの管理エージェントへ送信するであろう。たとえば、同一譲受人に譲渡された米国特許第５，５９２，４８６号は、受信データパケットの宛先アドレスを管理ユニットアドレスに対応する宛先アドレスと比較する、リピータを開示する。データパケットは、その宛先アドレスが、格納されている管理ユニットアドレスと整合しない場合は圧縮され、ここで管理ユニットへのデータパケットの送信は計数されたバイト数が一旦予め定められた数と整合すると停止する。その後有効なフレームチェックシーケンス（ＦＣＳ）が、受信データパケットの送信に続いて、圧縮されたデータパケットの終端に付される。
同一譲受人に譲渡された米国特許第５，５５０，８０３号もまた、管理ユニットへの受信データパケットのＭＡＣ層送信を提供し、ここでは受信データパケットのデータ部分はリピータによって管理ユニットへ転送される。統計的情報はそのとき、受信データパケットの送信に続いてパケット間ギャップ期間中にデータ部分に添付される。
上記に開示された構成は、リピータ装置を有するネットワークシステムにとっては有益である。というのは、リピータ装置はすべてのネットワーク装置と共有する媒体を有し、イーサネット（ＩＥＥＥ  ８０２．３）プロトコルに従って一度に単一データパケットを送信することを要求するからである。しかしながら、ネットワークスイッチを用いる切換ネットワークアーキテクチャは、それぞれのネットワークステーションのためのネットワークポートで複数のデータパケットを同時に送受信するように構成される。したがって、規定されたバイト数の後、受信データパケットの送信を停止し、それに続いて受信データパケットの受信が完了した後付加的データを添付する技術によると、送信の停止と付加的データの添付との間のアイドル時間中に無駄な帯域が生じてしまう。さらに、この技術は、ネットワークスイッチによって同時に受信された複数のデータパケットは想定していない。データパケットの終端に統計的情報を添付するにはまた、管理エージェントは全パケットが受信されるまで待機しなければデータパケットの性質（すなわち、なぜデータパケットが受信されたか）を判断できない。最後に、データパケットの終端にタグとして付された（すなわち添付された）統計的情報は、一般に、実際に受信されたデータパケットに関連する統計しか含んでいない。
発明の概要
それぞれのネットワークステーション間でデータパケットを同時に送受信するネットワークスイッチ内の管理媒体アクセス制御（ＭＡＣ）ポートを介して、管理情報をホスト管理エージェントに提供する構成が必要である。
また、管理エージェントに送信されるべき管理データフレームを生成し、管理フレームが少なくとも選択された受信データフレームの一部分と、選択されたデータフレームの受信に対応する特性を特定する新しい情報とを含むような構成も必要である。
また、管理エージェントのための管理データフレームを生成し、その管理データフレームがデータパケットを受信するネットワークスイッチの特性に対応する新しい情報を含むような配置も必要である。
また、データパケットを受信し、データパケットが受信された時間とは独立に、受信データパケットの受信に対応する特性を特定する新しい情報を含む新しいデータパケットを生成するネットワークスイッチ内の構成も必要である。
これらおよび他の要件は、データパケットを受信するネットワークスイッチが管理エージェントへ送信するために新しいデータパケットを生成し、この新しいデータパケットが、受信データパケットの受信に対応する特性を特定する新しい情報を含む、この発明によって満たされる。
この発明の一局面に従うと、ネットワークスイッチにおける方法は、ネットワークステーションからデータパケットを受信するステップと、受信データパケットの受信に応答して新しい情報を生成するステップと、新しい情報と受信データパケットの少なくとも一部分とを含む新しいデータパケットを、管理エージェントが使用するために出力するステップとを含み、新しい情報は、受信データパケットの受信に対応する特性を特定する。受信データパケットの受信に応答して生成される新しい情報は、データパケットの受信についての情報を含むこともあり、また受信データパケットを受信中のネットワークスイッチに関連する特徴を含んでもよい。さらに、新しいデータパケットの生成および出力はネットワークスイッチが受信データパケットを受信する時間とは独立で、これによりネットワークスイッチは、ネットワークステーションがそれぞれのネットワークステーションから複数のデータパケットを同時に送受信しながら、この新しいデータパケットを管理エージェントへ出力することができるようになる。したがって、管理エージェントは、ネットワークスイッチおよび受信データパケットの受信ステータスに関連する管理情報がのった新しい管理データパケットの流れを、スイッチとそれぞれのネットワークステーションとの間のネットワークトラヒック内に何ら中断を起こすことなく、得ることができる。
この発明の別の局面は、それぞれのネットワークステーションに対してデータフレームを送受信するように構成された複数のネットワークポートと、管理エージェントへ管理データフレームを送信するように構成された管理ポートとを含むネットワークスイッチであって、管理データフレームが、選択された受信データフレームの少なくとも一部分および選択されたデータフレームの受信に対応する特性を特定する新しい情報を含み、このネットワークスイッチはさらに、対応する選択された受信データフレームについての新しい情報の少なくとも一部分を生成するように構成されるスイッチングサブシステムを含む、ネットワークスイッチを提供する。スイッチングサブシステムは、選択された受信データフレームを識別し、選択された受信データフレームの特性を特定する新たな情報を生成し、これは管理ポートによって、新たな情報および選択された受信データフレームの少なくとも一部分を含む新たな管理データフレームを生成するために用いられる。したがって、ネットワークスイッチは、所定の条件に基づいて、選択された受信データフレームの識別を可能にし、受信ステータス情報および／またはデータフレームの受信に応答するスイッチの特性を含む、選択されたデータフレームの受信に対応する特性を特定する新規情報を含む、管理データフレームを出力する。
この発明のさらなる目的、利点、および新規な特徴は、一部は後に続く説明に記述され、一部は当業者がそれを実験することによって明らかになるか、またはこの発明の実施によって習得され得る。この発明の目的および利点は、特に添付の請求の範囲で指摘される手段および組合せによって実現かつ達成し得る。
【図面の簡単な説明】
添付の図面を参照して、同じ参照番号で指定される要素は、全図面を通して同様の要素を表す。
図１は、この発明の一実施例に従って構成されたパケット交換システムのブロック図である。
図２は、この発明の一実施例に従って構成され、図１のパケット交換システムに用いられるマルチポートスイッチのブロック図である。
図３は、この発明の一実施例に従って構成された、図２のマルチポートスイッチのスイッチサブシステムの概略図である。
図４は、この発明の一実施例に従って構成された、図１の外部メモリのメモリマップ図である。
図５は、図４のバッファ領域に対するフレームバッファヘッダフォーマットを示す図である。
図６は、図３のルールチェッカによって生成されたポートベクタを示す図である。
図７は、図６の動作制御フィールドの構造を示す図である。
図８Ａおよび図８Ｂは、それぞれ、図１のネットワークスイッチの管理ポートによって送信される管理パケットを示す図である。
図９Ａおよび図９Ｂは、それぞれ、タグ付でないフレームおよびタグ付フレームフォーマットを有するネットワークデータパケットの構造を示す図である。
図１０Ａおよび図１０Ｂは、この発明の一実施例に従った管理エージェントに対する管理データフレームを生成するための装置および方法を示す図である。
例示的な実施例の詳細な説明
イーサネット（ＩＥＥＥ  ８０２．３）網などのパケット交換ネットワークにおけるスイッチを例に挙げてこの発明を説明する。スイッチアーキテクチャの説明に続いて、この発明に従って管理フレームを生成するための構成について説明する。しかしながら、以下に詳細に説明するように、この発明は他のパケット交換システムおよび一般的な他のタイプのシステムにも適用可能であることが明らかとなるであろう。
スイッチアーキテクチャ
図１は、この発明が有利に採用され得る例示的なシステムのブロック図である。例示的なシステム１０はイーサネット網などのパケット交換ネットワークである。パケット交換ネットワークは、ネットワークステーション間でのデータパケットの通信を可能にする統合マルチポートスイッチ（ＩＭＳ）１２を含む。ネットワークはたとえば１０Ｍｂ／ｓのネットワークデータレートでデータの授受を行なう２４個の毎秒１０メガビットの速度（Ｍｂ／ｓ）のネットワークステーション１４と、１００Ｍｂ／ｓのネットワーク速度でデータパケットの授受を行なう２つの１００Ｍｂ／ｓネットワークステーション１６といった、種々の構成を有するネットワークステーションを含み得る。マルチポートスイッチ１２はネットワークステーション１４または１６から受けたデータパケットをイーサネットプロトコルに基づく適切な宛先に選択的に転送する。
開示される実施例によると、１０Ｍｂ／ｓネットワークステーション１４は媒体１８を介して、かつ半二重イーサネットプロトコルに従って、マルチポートスイッチ１２に対してデータパケットの授受を行なう。イーサネットプロトコルＩＳＯ／ＩＥＣ  ８８０２−３（ＡＮＳＩ／ＩＥＥＥ  Ｓｔｄ．  ８０２．３，１９９３Ｅｄ．）は、すべてのステーション１４が等しくネットワークチャネルにアクセスできるようにする半二重媒体アクセス機構を規定する。半二重環境のトラヒックは媒体１８と区別されたりまたはそれより優先されることはない。各ステーション１４はむしろ、媒体上のトラヒックを認識するために搬送波感知多重アクセス／衝突検出（ＣＳＭＡ／ＣＤ）を用いるイーサネットインタフェースカードを含む。媒体上の受信搬送波がデアサートされたことを感知することによりネットワークトラヒックの不在が検出される。送信するデータを有するステーション１４はすべて、パケット間ギャップ期間（ＩＰＧ）として公知である、媒体上の受信搬送波がデアサートされた後、予め定められた時間だけ待機することにより、チャネルにアクセスしようとする。複数のステーション１４がネットワーク上に送信するデータを有する場合、ステーションの各々が、媒体上の受信搬送波の、デアサートが感知されたことに応答してＩＰＧ期間の後に送信を行なおうとするため、衝突が生じる。したがって、送信ステーションは、別のステーションが同時にデータを送信することにより衝突が生じていないかを判断するために媒体を監視する。衝突が検出されれば、両方のステーションが停止し、ランダムな期間だけ待機し、再度送信を試みる。
１００Ｍｂ／ｓネットワークステーション１６は好ましくは、提案されているフロー制御によるイーサネット規格ＩＥＥＥ  ８０２．３ｘ全二重草案（０．３）に従う全二重モードで動作する。全二重環境は各１００Ｍｂ／ｓネットワークステーション１６とマルチポートスイッチ１２との間に双方向ポイントツーポイント通信リンクを設け、ＩＭＳおよびそれぞれのステーション１６は衝突することなくデータパケットの送受信を同時に行なうことができる。１００Ｍｂ／ｓネットワークステーション１６の各々は、１００ベース−ＴＸ、１００ベース−Ｔ４または１００ベース−ＦＸタイプの１００Ｍｂ／ｓ物理（ＰＨＹ）装置２６を介してネットワーク媒体１８に結合される。マルチポートスイッチ１２は、物理装置２６への接続をもたらす媒体独立インタフェース（ＭＩＩ）２８を含む。１００Ｍｂ／ｓネットワークステーション１６は他のネットワークへの接続のためのサーバまたはルータとして実現され得る。１００Ｍｂ／ｓネットワークステーション１６は、所望に応じて半二重モードでも動作する。同様に、１０Ｍｂ／ｓネットワークステーション１４は、フロー制御による全二重プロトコルに従って動作するように修正され得る。
図１に示されるように、ネットワーク１０は、マルチポートスイッチ１２と１０Ｍｂ／ｓステーション１４との間で送信されたデータパケットの時分割多重化および時分割非多重化を行なう一連のスイッチトランシーバ２０を含む。磁気変成器モジュール１９は媒体１８上の信号の波形を維持する。マルチポートスイッチ１２は、時分割多重化プロトコルを用いて単一のシリアルノンリターンツーゼロ（ＮＲＺ）インタフェース２４を介して各スイッチトランシーバ２０に対するデータパケットの送受信を行なうトランシーバインタフェース２２を含む。スイッチトランシーバ２０はシリアルＮＲＺインタフェース２４からパケットを受信し、受信されたパケットを非多重化し、ネットワーク媒体１８を介して適切なエンドステーション１４にそのパケットを出力する。開示される実施例によると、各スイッチトランシーバ２０は独立した４つの１０Ｍｂ／ｓツイストペアポートを有し、マルチポートスイッチ１２が必要とするＰＩＮの数が４分の１に減少するようにするシリアルＮＲＺインタフェースを介する４：１多重化を用いる。
マルチポートスイッチ１２は、意思決定エンジン、切換エンジン、バッファメモリインタフェース、構成／制御／状態レジスタ、管理カウンタ、ならびにネットワークステーション１４および１６のためのイーサネットポート間でデータパケットの経路制御を行なうためのＭＡＣ（媒体アクセス制御）プロトコルインタフェースを含む。マルチポートスイッチ１２はまた、インテリジェントな切換決定を行ない、後に説明するように、外部の管理エンティティに管理情報ベース（ＭＩＢ）オブジェクトの形式で統計的なネットワーク情報を与えるための優れた機能を有する。マルチポートスイッチ１２はさらに、マルチポートスイッチ１２のチップサイズを最小にするためにパケットデータの外部ストアおよびスイッチ論理を可能にするインタフェースを含む。たとえば、マルチポートスイッチ１２は、受信したフレームデータ、メモリ構造およびＭＩＢカウンタ情報をストアするための外部メモリ３４へのアクセスをもたらす同期型ダイナミックＲＡＭ（ＳＤＲＡＭ）インタフェース３２を含む。メモリ３４は２Ｍｂまたは４Ｍｂのメモリサイズを有する８０、１００または１２０ＭＨｚ同期型ＤＲＡＭであってもよい。
マルチポートスイッチ１２はさらに、外部管理エンティティが管理ＭＡＣインタフェース３８によってマルチポートスイッチ１２の全体的な動作を制御できるようにする、管理ポート３６を含む。後に詳細に述べるように、管理ポート３６は、選択された受信データパケットの少なくとも一部と管理情報を提供する新たな情報とを有する、管理フレームを出力する。マルチポートスイッチ１２は、ＰＣＩホストおよびブリッジ４０を介して管理エンティティがアクセスできるようにするＰＣＩインタフェース３９をさらに含む。これに代えて、ＰＣＩホストおよびブリッジ４０が複数のＩＭＳデバイス１２に対する拡張バスとしての役割を果たしてもよい。
マルチポートスイッチ１２は、１つのソースから少なくとも１つの宛先ステーションに受信データパケットを選択的に送信する内部意思決定エンジンを含む。内部意思決定エンジンには外部ルールチェッカが代用されてもよい。マルチポートスイッチ１２は外部ルールチェッカインタフェース（ＥＲＣＩ）４２を含み、これは内部意思決定エンジンの代わりにフレーム転送決定を行なうために外部ルールチェッカ４４が用いられるようにする。したがって、フレーム転送決定は、内部切換エンジンまたは外部ルールチェッカ４４のいずれかによって行なわれ得る。
マルチポートスイッチ１２は、ポートごとのステータスをクロックに合せて出力しＬＥＤ外部論理４８を駆動する、ＬＥＤインタフェース４６をさらに含む。ＬＥＤ外部論理４８は人間が読取ることができるＬＥＤディスプレイエレメント５０を駆動する。発振器４８はマルチポートスイッチ１２のシステム機能に４０ＭＨｚのクロック入力を与える。
図２は、図１のマルチポートスイッチ１２のブロック図である。マルチポートスイッチ１２はそれぞれの１０Ｍｂ／ｓネットワークステーション１４間で半二重のデータパケットの送受信を行なうための２４個の１０Ｍｂ／ｓ媒体アクセス制御（ＭＡＣ）ポート６０（ポート１から２４）と、それぞれの１００Ｍｂ／ｓネットワークステーション１６間で全二重のデータパケットの送受信を行なうための２つの１００Ｍｂ／ｓ  ＭＡＣポート６２（ポート２５および２６）とを含む。上述のとおり、管理インタフェース３６もまたＭＡＣ層プロトコル（ポート０）に従って動作する。ＭＡＣポート６０、６２および３６の各々は、受信先入れ先出し（ＦＩＦＯ）バッファ６４と送信ＦＩＦＯ６６とを有する。ネットワークステーションからのデータパケットは対応のＭＡＣポートで受信され、対応の受信ＦＩＦＯ６４にストアされる。受信されたデータパケットは対応の受信ＦＩＦＯ６４から外部メモリインタフェース３２に出力されて、外部メモリ３４にストアされる。
受信されたパケットのヘッダもまた、内部ルールチェッカ６８および外部ルールチェッカインタフェース４２を含む、意思決定エンジンに転送され、いずれのＭＡＣポートからデータパケットが出力されるかを決定する。具体的には、パケットヘッダは、マルチポートスイッチ１２が内部ルールチェッカ６８または外部ルールチェッカ４４を用いて動作するよう構成されているか否かに依存して、内部ルールチェッカ６８または外部ルールチェッカインタフェース４４に送られる。内部ルールチェッカ６８および外部ルールチェッカ４４は、所与のデータパケットに関する宛先ＭＡＣポートを決定するための意思決定論理を提供する。したがって、意思決定エンジンは、単一ポート、マルチプルポートまたは全ポート（すなわちブロードキャスト）のいずれかに所与のデータパケットを出力し得る。たとえば、各データパケットにはソースおよび宛先アドレスを有するヘッダが含まれ、意思決定エンジンは宛先アドレスに基づいて適切な出力ＭＡＣポートを特定する。これに代えて、宛先アドレスは、適切な意思決定エンジンが複数のネットワークステーションに対応するものと特定するバーチャルアドレスに対応してもよい。これに代えて、受信されたデータパケットは、（１００Ｍｂ／ｓステーション１６のうちの１つのルータを介する）別のネットワークまたは所定のグループのステーションを特定するＩＥＥＥ  ８０２．１ｄプロトコルに準拠するＶＬＡＮ（バーチャルＬＡＮ）タグ付フレームを含んでもよい。したがって、内部ルールチェッカ６８または外部ルールチェッカ４４のいずれかがインタフェース４２を介して、バッファメモリ３４に一時的にストアされたフレームが単一のＭＡＣポートまたは複数のＭＡＣポートに出力されるべきかを決定する。
外部ルールチェッカ４４を使用することにより、容量の増加、およびフレームが外部メモリに完全にバッファされる前にフレーム転送決定を可能にし、かつマルチポートスイッチ１２がフレームを受信する順からは独立した順で決定が行なわれるようにする、決定キューのうちランダムな順序付け、といった利点がもたらされる。
意思決定エンジン（すなわち内部ルールチェッカ６８または外部ルールチェッカ４４）は、データパケットを受信すべき各ＭＡＣポートを特定するポートベクタの形式で転送決定をスイッチサブシステム７０に出力する。適切なルールチェッカからのポートベクタは、外部メモリ３４にデータパケットをストアするアドレス場所と、データパケットを受信して送信するためのＭＡＣポート（たとえばＭＡＣポート０から２６）の識別子とを含む。スイッチサブシステム７０はポートベクタに特定されたデータパケットを外部メモリインタフェース３２を介して外部メモリ３４から取出し、取出されたデータパケットを特定されたポートの適切な送信ＦＩＦＯ６６に与える。
付加的なインタフェースにより管理および制御情報が与えられる。たとえば、管理データインタフェース７２は、ＭＩＩ管理仕様（ＩＥＥＥ  ８０２．３ｕ）に従うスイッチトランシーバ２０および１００Ｍｂ／ｓ物理装置２６と制御およびステータス情報をスイッチ１２が交換できるようにする。たとえば、管理データインタフェース７２は、双方向管理データＩＯ（ＭＤＩＯ）信号経路に時間基準を与える管理データクロック（ＭＤＣ）を出力する。
ＰＣＩインタフェース３９は、ＰＣＩホストプロセッサ４０によって内部ＩＭＳステータスおよび構成レジスタ７４にアクセスし、かつ外部メモリＳＤＲＡＭ３４にアクセスするための、３２ビットＰＣＩ改訂２．１に適合したスレーブインタフェースである。ＰＣＩインタフェース３９は複数のＩＭＳデバイスのための拡張バスとしての役割も果たし得る。管理ポート３６は標準７ワイヤ反転シリアルＧＰＳＩインタフェースを介して外部ＭＡＣエンジンにインタフェースされ、標準ＭＡＣ層プロトコルによりホストコントローラがマルチポートスイッチ１２にアクセスできるようにする。
図３は、この発明の例示的な実施例に従う、図２のスイッチサブシステム７０を説明する図である。図２に示されるマルチポートスイッチ１２の他のエレメントは、スイッチサブシステム７０とこれらの他のエレメントとの接続を示すために図３に再度示される。スイッチサブシステム７０はフレームの受信および転送を行なうためのコアスイッチングエンジンを含む。スイッチングエンジンを実現するために用いられる主な機能ブロックは、ポートベクタＦＩＦＯ６３と、バッファマネージャ６５と、複数のポート出力キュー６７と、管理ポート出力キュー７５と、拡張パスポート出力キュー７７と、フリーバッファプール１０４と、マルチコピーキュー９０と、マルチコピーキャッシュ９６と、リクレームキュー９８とを含む。これらの機能ブロックの動作および構成は後により詳細に説明するが、まず、個々のエレメントに関する後の説明に関連性を持たせるために、図３のスイッチサブシステム７０の全体像を簡単に説明する。
ポートからマルチポートスイッチ１２に入るフレームには基本的に２つのタイプがある。すなわち、単一コピーフレームとマルチコピーフレームとである。単一コピーフレームは、マルチポートスイッチ１２によって他の１つのポートにのみ送られることとなる、ポートで受信されたフレームである。これとは対照的に、マルチコピーフレームは、１つのポートで受信され、１つより多い数のポートに送信されるフレームである。図３では、各ポートは対応するＭＡＣ６０、６２、または３６によって表わされ、それ自体の受信ＦＩＦＯ６４および送信ＦＩＦＯ６６を有する。
単一コピーにせよマルチコピーにせよフレームは内部ＭＡＣエンジン６０、６２、または３６によって受信され、対応する受信ＦＩＦＯ６４に置かれる。各データフレームは、少なくとも宛先アドレス、ソースアドレス、およびタイプ／レングス情報を含むヘッダを有する。このヘッダはルールチェッカ（すなわち内部ルールチェッカ６８または外部ルールチェッカインタフェース４２のいずれか）に与えられる。ルールチェッカは、ヘッダの情報に基づいて、フレームパケットがどこから送り出されるか、すなわちいずれのポートを介してフレームパケットが送信されるかを決定する。
ルールチェッカ４２または６８が転送決定を行なうのと同時に、バッファマネージャ６５はフリーバッファプール１０４からフリーフレームポインタを得る。このフリーフレームポインタは、受信ＦＩＦＯ６４に現在ストアされているデータフレームをストアするために利用可能である外部メモリ３６の場所を特定する。
バッファマネージャ６５はＦＩＦＯ６４から受信されたデータフレームを、直接メモリアクセス（ＤＭＡ）トランザクションでデータバス８０（図２参照）を介して外部メモリ３４へ転送し、そのデータフレームはフリーバッファプール１０４から得られたフリーフレームポインタによってポイントされた場所にストアされる。
バッファマネージャ６５はまた、フリーフレームポインタをルールチェッカ４２または６８に送信し、データフレームのストア場所は維持しつつ、適切なルールチェッカがヘッダ情報を処理できるようにする。このフリーバッファポインタはここでは単にフレームポインタと呼ばれる。なぜなら、フレームがストアされる外部メモリ３４でのメモリ場所をポイントするからである。ルールチェッカ４２または６８は転送決定を行ない、ここでルールチェッカは、対応するヘッダ情報に基づいて外部メモリ３４にストアされたデータフレームに対する少なくとも１つの宛先ポートを特定し、かつ「ポートベクタ」の形式で転送命令を発生する。図示される例示的な実施例では、ポートベクタは、フレームが転送されるべき宛先ポートとして特定された、各出力ポートについて対応の１ビットがセットされている２８ビットベクタである。受信されたフレームが単一コピーフレームであると想定すると、ルールチェッカ４２または６８によって生成されたポートベクタには、１つの宛先ポートに対応する１ビットしかセットされない。したがってルールチェッカは、ポートベクタを用いてフレームポインタを少なくとも１つの宛先ポートに割り当てる。
ルールチェッカ４２または６８はポートベクタＦＩＦＯ６３にポートベクタおよび対応するフレームポインタ（ならびに制御操作コードおよびＶＬＡＮインデックス）を置く。ポートベクタはポートベクタＦＩＦＯ６３によって検査され、ポートベクタに関連したフレームポインタがどの特定の出力キュー６７に入力されるべきかを決定する。ポートベクタＦＩＦＯ６３は適切な出力キュー６７の一番上にフレームポインタを置き、対応する宛先ポートからのデータフレームの送信をキューとして維持することにより、フレームポインタを適切な宛先ポートに割り当てる。したがって、フレームポインタは「割当て済みフレームポインタ」となり、宛先ポートに割り当てられる。
ある時点で、フレームポインタは出力キュー６７を通過し、出力キュー６７の一番下まで到達する。バッファマネージャ６５は、フレームポインタ読み出しバス８６を用いて出力キュー６７の一番下から割当て済みフレームポインタを取り、割当て済みフレームポインタによってポイントされた外部メモリ３６内の場所から対応するデータフレームをＤＭＡトランザクションによって取り出し、取り出したデータフレームを対応するＭＡＣ層によって送信するために、データバス８２（図２参照）を介して適切な送信ＦＩＦＯ６６に置く。
マルチコピー送信は、ポートベクタが、フレームがそれらから送信されることとなる複数個の宛先ポートを示すため複数のビットがセットされている点を除いて、単一コピー送信と同様である。フレームポインタは、適切な出力キュー６７の各々に置かれ（すなわちストアされ）、対応の送信ＦＩＦＯ５４から送信される。
バッファマネージャ６５は特殊な制御キュー、すなわち、フリーバッファプール１０４と、マルチコピーキュー９０と、リクレームキュー９８と、マルチコピーキャッシュ９６とを用いて、受信データフレームをストアするためのバッファを割当て、フレームがその指定された出力ポートに送信されると再度使用できるようバッファを取出すプロセスを管理する。バッファマネージャ６５はまた、出力キュー６７、７５、７７ならびに制御キュー１０４、９０および９８のために外部メモリ３６に「オーバフロー」領域を維持する。特に、これらのキューは各々、チップ上およびチップ外ストア場所を含む３部構成である。性能をあげるためにはチップ上の記億部が好ましく、この場合すべてのキュー構成がチップ上に維持される（マルチポートスイッチ１２参照）。しかしながら、チップ上の占有面積は非常に高価であり、この価格は、チップが多数のエントリを切換えるように設計され、それらをキューとして維持する必要があるときには問題を生じる。この発明は、チップ上に高性能な小容量セクションを含み、チップ外、すなわち離れた別個のメモリチップ３４に実装されるオーバフロー領域を含む単一の出力キューを設けることによって、このジレンマを解消する。したがって、オーバフロー領域は、所要の大容量のキューとしてキューが役割を果たすようにし、またチップ外のオーバフロー領域の性能が比較的低いことが、出力キューの全体の性能に不利な影響を及ぼすことのないような態様で出力キュー内に構成される。
この発明の各論理キュー６７、７５、７７、９０、９８および１０４は、チップ１２上に位置づけられた書き込み側キュー７６と読み出し側キュー７８とを含み、書き込み側キューのオーバフロー領域（全般的に１１０と称される）は、外部メモリ３４の割り当てられた部分に位置づけられる。出力キュー６７のすべてに対する外部メモリ３４のアクセスは、前述のように、外部メモリインタフェース３２を介して行われる。この発明は、現在の外部メモリのバースト的な性質を利用し、（フレームポインタなどの）オーバフローデータが、外部メモリ３４へのバス８４を介してバースト状にチップとオーバフローキュー領域１１０との間で送られるようにする。
書込側キュー７６および読出側キュー７８はチップ１２上にあり、これらは小さくて高価な高性能のリソースであると考えられる。これとは対照的に、出力キュー６７の第３の部分を形成するオーバフロー領域１１０は大きく、安価で、低性能の大容量の経路を提供する。
各バッファ６７、７５、７７、９０、９８および１０４は、対応の書き込み側キュー７６がその入力端で対応のフレームポインタエントリを受信することによって動作する。フレームポインタは、データフレームの最初の２５６バイトをストアする外部メモリの第一のバッファ場所をポイントする。
エントリが書込側キュー７６内を完全に移動し、その一番下の出力端まで到達すると、出力キュー６７に関連した制御論理はエントリを外部メモリ３４の対応の割当て部分１１０に出力すべきか、または読出側キュー７８に出力すべきかを選択する。読出側キュー７８に利用可能なスペースがあり、出力キュー６７のオーバフロー領域１１０が空いていれば、１つまたはそれ以上のエントリが書込側キュー７６から読出側キュー７８に直接渡される。このように書込側キュー７６から読出側キュー７８に直接エントリを送ることはすべてチップ１２上で行なわれるので、エントリは低レイテンシで高速に流れる。
読出側キュー７８はいっぱいであるが、書込側キュー７６にはまだ１バーストサイズの量のデータがない場合は、エントリは書込側キュー７６に留まる。読出側キュー７８がいっぱいであり、書き込み側キュー７６に少なくとも１バーストサイズの量のデータ（たとえば１６バイトに値するエントリ）がある場合は、データはバッファマネージャ６５によってバースト形式で外部メモリ３４の対応する割当て部分にあるオーバフロー領域１１０内に書き込まれる。最終的には、読出側キュー７８は空になり、もしオーバフロー領域１１０にデータがあれば、読出側キュー７８にそのバーストサイズの量のデータを収容する十分なスペースが生まれると、バッファマネージャ６５はオーバフロー領域１１０から１バーストのデータを読出側キュー７８に供給する。したがって、読出側キュー７８は書込側キューまたは外部メモリ３４の割当て部分１１０から選択的にフレームポインタを受け取る。
したがって、もし出力キュー６７が多数のエントリ（たとえばフレームポインタ）を受信し始めると、これらのエントリはオーバフロー領域１１０に置かれ、チップ上のキュー７８のオーバフローを回避し、フレームの廃棄の可能性を最小にすることができる。オーバフロー領域１１０のためのメモリの合計量はまた、外部メモリ３６のサイズを変更することによって容易に変更可能である。さらに、個々の特定のオーバフロー領域１１０のサイズは、出力キュー７４の性能に影響を及ぼすことなくキューのサイズをカスタマイズするためにプログラム可能である。
図１および２に示すマルチポートスイッチは２８の出力キューを有し、これらはそれぞれ１０Ｍｂ／ｓユーザポート６０のためのものが２４個と、１００Ｍｂ／ｓサーバポートのためのものが２つと、管理ポート３６のためのものが１つと、拡張パスポート３８のためのものが１つとである。キュー作業は、転送ポートベクタに示されるさまざまな出力キュー６７、７５および７７に対してポートベクタＦＩＦＯ７０がフレームポインタを書込むという形態をとる。
図４は外部メモリ３４の例示的なマップを示す図である。外部メモリ３４の全体の容量はたとえば４Ｍｂであるが、種々の実施例において他の容量のメモリが採用されてもよい。この発明に従ってオーバフロー領域に外部メモリ３４を使用することにより、外部メモリを変更するだけで出力キューのサイズを増減することができる。これは、キューとして維持する容量全体がチップの製造時に設定される、キュー構成がすべてチップ上にあるシステムよりも有利である。
スイッチ１２のオーバフローストア要件を満たすために、外部メモリ３４のオーバフロー領域１１０は、フリーバッファプールオーバフロー１２０と、リクレームキューオーバフロー１２２と、マルチコピーキューオーバフロー１２４と、管理ポート出力キューオーバフロー１２６と、１０Ｍｂ／ｓおよび１００Ｍｂ／ｓ宛先ポート（ポート０から２６）の各々のための出力キューオーバフロー１２８と、拡張バスポート（ポート２７）出力キューオーバフロー１３０とに対して、メモリ部分を割り当てる。メモリ３４はまた、ＭＩＢカウンタ１３２と、グローバルフレームバッファプール１３４とについての割当て部分をも含む。
メモリ領域全体のＢＡＳＥアドレスはチップ上のレジスタ７４の中のメモリベースアドレスレジスタ内にプログラム可能である。外部メモリマップ内の各領域のＢＡＳＥアドレスはレジスタセット内にプログラム可能である。所与の領域の長さは、マッピング内のその領域のＢＡＳＥアドレスから次の領域のＢＡＳＥアドレスまでの領域に等しいので、領域長レジスタは不要である。
個々のオーバフロー領域の長さ（したがって容量）がプログラム可能であるため、各キューの容量全体がプログラム可能である。この発明のこの特徴により、必要に応じて容量の増大した特定の出力キューを提供するようにスイッチをカスタマイズすることが可能になる。
オーバフロー領域１１０は、チップ１２上の制御キューに適合しない超過のエントリをストアする。たとえば、フリーバッファプール１０４に対してフリーバッファプールオーバフロー領域１２０は、グローバルフレームバッファプール１３４中の現在未使用のバッファを特定するフリーフレームポインタの超過分をストアする。リクレームキュー９８に対してリクレームキューオーバフロー領域１２２は、必要でなくなったリンクトリストチェーンにフレームポインタの超過分をストアする。マルチコピーキューオーバフロー領域１２４は（キューとして維持されたフレームポインタについては）コピーナンバー「≧１」を付してフレームポインタの超過分をストアし、また（送信成功したフレームについては）コピーナンバー「−１」を付してフレームポインタをストアする。管理ポートキュー７４に対して管理ポート出力キューオーバフロー領域１２６は、管理ポート３６（ポート０）への送信を待機する割当て済みフレームポインタの超過分をストアする。出力キューオーバフロー領域１２８はそれぞれのポートキュー６７に対して適切な１０Ｍｂ／ｓポート（ポート１から２４）または１００Ｍｂ／ｓポート（ポート２５から２６）への送信を待機する割当て済みフレームポインタの超過分をストアする。拡張パスポート（ポート２７）キュー７７に対する拡張バスポート出力キューオーバフロー領域１３０は、拡張バスポートへの送信を待機するフレームポインタをストアする。
ＭＩＢカウンタ領域１３２は、スイッチ１２によって周期的に更新されるポートごとの統計をすべて含む。スイッチ１２はＭＩＢ統計をストアするための８ビットおよび１６ビットカウンタをチップ上に維持する。スイッチ１２はＭＩＢデータの損失を防止するために要求される周波数で、外部メモリ３６の３２ビットまたは６４ビットのＭＩＢカウンタを更新する。
グローバルフレームバッファプール１３４は、受信されたフレームデータをストアするリンクトリストのバッファを含む。任意の時点で、これらリンクトリストは有効フレームデータと無効になったバッファとを含み、無効になったこれらのバッファは、バッファマネージャ７２によってフリーバッファプール１０４に戻されるか、またはＰＣＩホストプロセッサ（図示せず）の所有となる。
管理データフレーム合成
この発明は、選択された受信データフレームの少なくとも一部分と、選択されたデータフレームの受信に対応する特性を特定する新たな情報とを含む、管理データフレームの合成に向けられる。たとえば、この新たな情報は、データパケットを受信したネットワークポート６０または６２に基づいて、もしくはデータパケットのソースアドレスに基づいて、データフレームのソースを特定できる。同様に、この新たな情報は宛先アドレスに基づいて受信データパケットの宛先を特定することができる。このように、新たな情報は管理エージェントによって、２つのネットワークポート間、またはこれに代えて、対応のＭＡＣアドレスに基づく２つのネットワークステーション間のネットワークトラヒックを監視するために用いられ得る。
この新たな情報はまた、データパケット自体もしくはネットワークスイッチ１２に関する受信ステータスも特定し得る。たとえば、新規情報は、受信データパケットにフレーム整列エラーや巡回冗長検査（ＣＲＣ）エラーがあったか、またはデータパケットを受信する受信ＦＩＦＯ６４がオーバフローに出会うかを特定し得る。この新規情報はさらに、データフレームの受信に応答してマルチポートスイッチ１２自体の特性を特定することもできる。上述したように、ルールチェッカ６０または４２は、ソースアドレスおよび宛先アドレスに基づいて受信データパケットの宛先を決定する。管理エージェントに、適切なルールチェッカの能力に関する情報を提供することが望ましい場合もある。たとえば、受信データパケットのソースアドレスが認識不可能であり、新規ネットワークスイッチ１２によってネットワーク上の新規なステーションとして登録（すなわち学習）されなければならない場合、新たな情報は、管理エージェントが新規なステーションの監視を始めるために用いられ得る。これに代えて、管理エージェントは、新規ステーションのネットワークスイッチ１２を再構成するために、たとえばバッファを再割当するかまたはネットワークポート構成レジスタを再設定することによって、再構成するために新たな情報を用いる場合もある。管理フレームもまた、２つのステーション間のトラヒックを監視するために用いられ得る。
したがって、管理エージェントは、管理データフレームのためにマルチポートスイッチ１２が生成した新たな情報により、データフレームの受信および選択されたポートを選択的に監視することに基づいて、または所定のソースもしくは宛先アドレスを有するデータパケットに基づいて、マルチポートスイッチのステータスに関する正確な情報を受信することが可能になる。したがって、管理インタフェース３６は複数の管理データフレームであって、その各々が、たとえば受信ステータス、データパケット特性、およびデータフレームの受信に対するスイッチ応答特性など、選択されたデータフレームの受信に対応する特性を特定する新たな情報を含む管理データフレームを出力する。
図１０Ａは、ネットワークスイッチ１２内の、管理エージェントに対する管理フレームを生成するための装置を表わすブロック図であり、図１０Ｂは、この発明の一実施例に従って管理フレームを生成するための方法を表わす図である。この方法はステップ５００で、ＭＡＣポート６０または６２がネットワークステーション１４または１６のうちの１つからデータパケットを受信することによって開始する。管理データフレームについての新たな管理情報は、スイッチ内の種々のソースから関連情報を選択的に収集することによって生成される。
受信特性は、ステップ５０２で、データパケットを受信して受信ステータスデータを生成するＭＡＣ６０または６２によって決定される。具体的には、ＭＡＣ６０または６２は入力データフレームを受信し、データパケットが、最小および最大の正当なパケットサイズに関してイーサネットプロトコルに従ったものであることを確認するため検査する。例示的なネットワークデータパケットが、タグ付でないフレームフォーマットについては図９Ａに、タグ付フレームフォーマット（ＩＥＥＥ  ８０２．１ｄ）については図９Ｂに示される。タグ付でないフレーム１４０およびタグ付フレーム１４２の各々は、６バイト宛先アドレスフィールド１４４と、６バイトソースアドレスフィールド１４６と、タイプ／レングスフィールド１４８（２バイト）と、フィールド幅が４６バイトから１５００バイトである可変長データフィールド１５０と、巡回冗長検査（ＣＲＣ）フィールドとも呼ばれるフレームチェックシーケンス（ＦＣＳ）フィールド１５２（４バイト）とを含む。タグ付フレーム１４２はまた、２バイトのＶＬＡＮイーサタイプフィールド１５４と２バイトのＶＬＡＮＩＤフィールド１５６とを含むＶＬＡＮタグも含む。当該技術分野で知られているように、タグ付でないフレーム１４０とタグ付フレーム１４２との前にはともに、５６ビットプリアンブルおよび８ビットフレーム開始デリミタ（ＳＦＤ）が付される。
ＣＲＣフィールドとも呼ばれるフレームチェックシーケンスフィールド１５２は、受信データパケットのエラーチェックコードとしての役割を果たし、ＭＡＣ６０または６２はＣＲＣフィールド１５２を用いてエラーを検査する。当該技術分野では知られているように、各データパケットは、受信データフレーム内の何らかのエラーを正確に検出するために、それら自身のＣＲＣフィールド１５２を１つだけ有する必要がある。データフレームを受信するＭＡＣ層６０または６２は、ステップ５０２で、そこに何らかのＣＲＣエラー（Ｃ）またはフレーム整列エラー（Ｌ）が存在するか否かを判断し、対応するエラーが検出されると適切なフラグをセットする。受信パケットがタグ付フレームである場合、ＭＡＣによって対応するビット（Ｔ）がセットされる。その後、受信データパケットは対応の受信ＦＩＦＯ６４に置かれ、バッファマネージャ６５によって外部メモリ３４にストアされる。ステップ５０４で受信ＦＩＦＯ６４のオーバフローがあると、ＭＡＣはステップ５０６でオーバフローフラグビット（Ｏ）をセットしてデータ損失の可能性を指摘する。受信ステータスデータ（Ｃ、Ｌ、Ｏ、およびＴフラグビットならびに受信ポートＩＤを含む）と、受信されたデータパケットとはその後、ステップ５０８で外部メモリ３４にストアされる。
図５は、受信データフレームを格納する外部メモリ３４内のバッファについてのフレームバッファヘッダフォーマットを表わす図である。バッファはメモリ内の次のバッファの場所を示す各バッファヘッダのアドレスポインタによって鎖状に繋がれる。バッファヘッダはまた、データパケットを受信した対応するＭＡＣによって送信された受信ステータス情報も含む。具体的には、第１のバッファヘッダ１７０およびそれに続くバッファヘッダ１７２は、バッファフォーマットビット１７４と、フレーム終端マーカ１７６と、受信ステータスデータ１７８と、バッファ長１８０と、ネクストバッファポインタ１８２とを含む。バッファフォーマットビット１７４は、ヘッダのフォーマットが先頭バッファヘッダ（１２バイトを有する）か後続バッファヘッダ（４バイトを有する）かを特定し、これはバッファ同士を鎖状に繋ぐのに用いられる。フレーム終端マーカ１７６は、ビットが１にセットされていると、対応するバッファヘッダがあるフレームについての最後のバッファであることを特定し、その鎖内にそれ以上バッファがないことを示す。バッファ長１８０は、バッファヘッダの後の最初のバイトから始まる、バッファのデータフィールド内の有効な全バイト数を特定し、ネクストバッファポインタ１８２は次のバッファに対するポインタを含む。ネクストバッファポインタ１８２はフレーム終端マーカ１７６がセットされていると無効である。
先頭バッファヘッダ１７０および後続バッファヘッダ１７２は、受信ステータスデータ１７８を含む。Ｃビット１７８ａはＣＲＣエラーがＭＡＣによって検出されたかを示す。Ｌビット１７８ｂは、フレーム整列エラーがＣＲＣエラーとともに受信フレーム内でＭＡＣ６０または６２によって検出されたかを示す。Ｏビット１７８ｃは、受信ＦＩＦＯ６４がオーバフローしたかを示し、これはバッファ内のデータが無効であるかもしれないことを示す。第１のバッファヘッダ１７０はまた、入力受信フレームのポート型を明記するＰビット１８４も含み、ここで０は１０Ｍｂ／ｓポートを指し、１は１００Ｍｂ／ｓポートを指す。Ｐビット１８４はタイムスタンプフィールド１８６とともにホストによって用いられ、このときマルチポートスイッチ１２は、フレームが外部メモリに完全に受信されかつバッファされる前に、フレームを拡張バスに転送するようにプログラムされる。第１のバッファヘッダ１７０はまた、フレームの受信元のポート番号を特定する受信ポート番号１８８と、受信されたフレームタイプがタグ付であるかタグ付でないかを示すＴビット１９０とを含む。第１のバッファヘッダ１７０はまた、ＶＬＡＮフィールド１５４および１５６からのＶＬＡＮ識別子１９２も含む。
したがって、ＭＡＣ層６０または６２は、受信データパケットの受信ステータスを決定し、外部メモリ３４にストアされたバッファヘッダ１７０のストレージについての情報をステップ５０８で転送する。受信されたデータフレームの状況（たとえばエラーなし、ＣＲＣエラー、フレーム整列エラー）に関する受信ステータスデータのストレージと、データパケットを受信する受信ポートのステータス（たとえば受信ＦＩＦＯオーバフローなど）とにより、マルチポートスイッチ１２は、管理エージェントが用いる受信データパケットの受信に関連する新たな情報を収集することが可能になる。したがって、受信ポートでＭＡＣ層６０または６２によって生成されたこの新たな情報は、以下に詳細に示すように、管理エンティティに提供する新たな管理情報の一部としてバッファヘッダ１７０にストアされる。
データパケットの受信に応答して、マルチポートスイッチの特性を特定する情報もまた、適切なルールチェッカ４２または６８によって受信データパケットのフレーム転送決定の間に生成される。ルールチェッカは情報を受信し、図６に示す転送ポートベクタを生成する処理を開始する。この処理中、ルールチェッカはデータパケットを受けるＭＡＣから情報を受信し、図６に示す転送ポートベクタ２００を生成する。たとえば、ルールチェッカは、宛先アドレスフィールド１４４と、ソースアドレスフィールド１４６と、受信ポート番号と、フレームポインタとを受信するであろう。フレームがタグ付ポートによって受信されると、ＶＬＡＮタイプフィールド１５４およびＶＬＡＮＩＤフィールド１５６を含むＶＬＡＮタグが入力フレームから取除かれ、バッファヘッダ１７０でＶＬＡＮ識別子フィールド１９２に格納されてルールチェッカおよび外部メモリに供給される。
ルールチェッカ４２または６８は、図３に示すスイッチングサブシステム７０のスイッチ論理としての役割を果たす。スイッチ論理は、受信データフレームが管理ポート３６を介して管理エージェントへ転送されるべきか否かを特定するスイッチ論理データを含む。ルールチェッカは、ＶＬＡＮ関係および転送ポートベクタとともに、１組のアドレスを含む。ルールチェッカはステップ５１０で適切なアドレスについてそのアドレステーブルを検索し、ソースアドレス、受信ポート、ＤＡ、およびＶＬＡＮ関係に基づいて転送決定をなす。
ルールチェッカアドレステーブルは、ルールチェッカがソースアドレス／受信ポート番号および宛先アドレス／ＶＬＡＮインデックスに基づいて転送決定を生成するのに十分な情報を含む。たとえば、ルールチェッカアドレステーブルは、選択されたＭＡＣアドレスまたはポート宛先に対するソースおよび宛先ＭＡＣアドレスが管理ポートに出力されるべきか否かを特定する、トラヒックキャプチャビット（たとえばトラヒックキャプチャ１およびトラヒックキャプチャ２）を含むであろう。ルールチェッカアドレステーブルはまた、１６ビットＶＬＡＮ識別子を参照するのに用いられるＶＬＡＮインデックスも含むであろう。アドレステーブルはまた、関係するアドレスがあるポートを特定するポート番号と、フレームを転送するための転送ベクタを提供するポートベクタとを含む。
ルールチェッカはステップ５１２でスイッチ論理データをポートベクタ２００の形態で生成し、図３に示すポートベクタＦＩＦＯ６３にポートベクタ２００を出力して、管理ポート３６を含む選択出力ポートに受信データパケットを送信する。図６に示すように、ポートベクタ２００は管理エージェントがルールチェッカアドレステーブルエントリを位置づけるのに用いるインデックスを形成する、ビン番号２００とエントリ番号２０２とを含む。ベクタ２００はまた、ＶＬＡＮインデックス２０４と、制御演算コード２０６と、宛先ポートを特定する転送ポートベクタ２０８と、図５に示すようにフレームデータおよび対応のヘッダ情報をストアする外部メモリ３４での場所を明記するフレームポインタ２１０とを含む。
ビン番号２００およびエントリ番号２０２によって形成されたアドレスインデックスは、管理エージェントが対応の受信フレームに対する切換決定を生成する特有のルールチェッカアドレステーブルエントリにアクセスすることを可能にする。具体的には、管理エージェントは、ルールチェッカ６８または外部ルールチェッカインタフェース４２を介して外部ルールチェッカ４４に対するアドレステーブルを作りかつ維持することについての責任を負う。管理エージェントはアドレステーブル内の３つのエントリすべての初期リストを生成し、アドレスおよびそれらの関係するフィールドをテーブル内に挿入し、エントリを適切に有効にし、加え、消去し、またはエージングするためにアドレステーブルのソフトウェアマッピングを管理し、さらにアドレスエントリ内のフィールドを更新する。
さらに、ルールチェッカは新規なステーション１４または１６がネットワーク上に存在することについて学習する能力がある。たとえば、予め定められたＭＡＣアドレスを有する新規ステーションは、マルチポートスイッチ１２を介してデータパケットを別のステーションへ送信できる。ルールチェッカが受信データパケットのソースアドレスフィールド１４６で特定されたソースアドレスに対するアドレステーブルエントリを含まない場合は、ルールチェッカは、その内部アドレステーブルを新規ソースアドレスについての新規アドレステーブルエントリを含むように更新することにより、新規ステーションについて「学習する」ことが可能である。一旦、新規アドレステーブルエントリが形成されると、ルールチェッカは転送ポートベクタを適切に生成することができる。
図７は中央の演算コードフィールド２０６のサブフィールドを表わす図である。制御演算コードフィールド２０６は、ステップ５１２でルールチェッカによって生成された、受信データパケットを受信することに応答して受信フレームおよび／またはルールチェッカの特性を特定することに関する情報を提供する。表１は、受信データパケットのアイデンティティおよび／またはデータフレームの受信に応答するルールチェッカのステータスに関する、管理エージェントについての情報を提供する、制御演算コードフィールド２０６内のコードの例を挙げる。
0003987915.tif 000002
表１および図７に示すように、制御演算コード２０６は３つのサブフィールド、すなわちトラヒックキャプチャ２０６ａと、ＩＲＣアドレス２０６ｂと、管理ポート／タグ付２０６ｃとを含む。トラヒックキャプチャフィールド２０６ａは受信データパケットが監視されたトラヒックからキャプチャされたかを特定する。たとえば、トラヒックキャプチャフィールドコード「００１」はスニファポートフレームを特定する。「スニファポート」は識別されたポートのすべてのトラヒックが管理エージェントに転送されることを特定する。たとえば、図２の「ＭＡＣ２３」がスニファポートと指定されたと仮定すると、管理エージェントは管理インタフェース３６によって「ＭＡＣ２３」によって授受されたデータパケットすべてについて通知されるであろう。同様に、トラヒックキャプチャ１フレームコードおよびトラヒックキャプチャ２フレームコードは、１つ以上のＭＡＣアドレスが所与の半二重ネットワークポート上に存在している場合に、管理エージェントが２つのポートまたは２つのＭＡＣアドレス間に起こるトラヒックを監視できるようにする。
ＩＲＣアドレスサブフィールド２０６ｂは、データフレームの受信に応答する内部ルールチェッカ６８の特性を含む。たとえば、ＩＲＣアドレスフィールド値０００は、ソースアドレスが、対応のアドレステーブルエントリをルールチェッカ内に有することを特定する。対照的に、ＩＲＣフィールド値「０１０」から「１０１」は、未知のソースアドレスが内部ルールチェッカ６８によって学習されたか否かとともに、未知のソースアドレスを特定する。未知のソースアドレスが学習されなかった場合は、種々のエラー条件が、管理エージェントに対して、未知のソースアドレスが学習されなかった理由、たとえば不良フレーム、アドレステーブルがいっぱいであること、またはビンもしくはフリーエントリチェーンがロックされていたこと（たとえばアドレステーブルを格納するメモリ構造がロックされていたことなど）などの追加情報を提供する。この具体的なエラー状況により、管理エージェントは内部ルールチェッカアドレステーブルエントリを未知の新規ステーションを認識するように再構成することが可能になることもある。
制御演算コード２０６の管理ポート／タグ付サブフィールド２０６ｃはまた、マルチポートスイッチ１２によって授受され得る特別な管理フレームのアイデンティティも特定する。たとえば、「０１」の値はブリッジプロトコルデータユニット（ＢＰＤＵ）フレームまたはブリッジマルチキャストフレームを特定する。ＢＰＤＵフレームは、ネットワークブリッジ間で送信されて極大木を決め、冗長データリンクを消去するための標準化プロトコルフレーム（ＩＥＥＥ８０２．１ｄ）である。管理ポート値「１０」は宛先指定フレームを特定し、ここで宛先アドレスは別のネットワークステーション１４または１６のＭＡＣアドレスではなくＭＡＣ６０または６２のうちの特定の１つを特定する。したがって、管理エージェントは、ネットワークポートの１つに特定的に送信されたデータフレームを特定することができる。管理ポート／タグ付値「１１」は、１００Ｍｂ／ｓポートについてのタグがＶＬＡＮ拡張動作をディセーブルにするためにディセーブルされたことを特定する。
したがって、ルールチェッカはステップ５１２で、管理エージェントがルールチェッカを必要に応じて監視および更新できるように、マルチポートスイッチおよびルールチェッカ４２または６８内の動作を特定する付加的情報を生成する。ルールチェッカはポートベクタ２００をポートベクタＦＩＦＯ６３に転送して適切な出力ポートへと配布する。制御演算コード２０６が、受信ＶＬＡＮ  ＩＤが認識されなかったことを示す値「ｘｘｘ１１０ｘｘ」を含む場合、ＶＬＡＮ  ＩＤはフィールド２０４では転送されない。しかしながら、制御演算コードが「ｘｘｘ１１０ｘｘ」と等しくない場合、ＶＬＡＮ  ＩＤはルールチェッカからフィールド２０４によりポートベクタＦＩＦＯ６３へ転送される。
上述したように、図３に示すポートベクタＦＩＦＯ６３はポートベクタ２００を受信し、適切な情報を転送ポートベクタ２０８で特定された出力キューへ出力する。管理フレームが管理ポート３６によって生成されると仮定すると、転送ポートベクタ２０８は管理ポート３６に対応するビットがセットされ、よってポートベクタＦＩＦＯ６３はフレームポインタおよびスイッチ論理データをステップ５１４で管理ポート出力キュー７５へ転送することになるであろう。具体的には、ポートベクタＦＩＦＯ６３は、ビン番号２００と、エントリ番号２０２と、（適切であれば）ＶＬＡＮインデックス２０４と、制御演算コード２０６と、図１０Ａで示す管理ポート出力キュー７５に対するフレームポインタ２１０とを転送するであろう。
一旦、管理情報（ビン番号２００、エントリ番号２０２、適切であればＶＬＡＮインデックス２０４、制御演算コード２０６、およびフレームポインタ２１０を含む）が管理ポート出力キュー７５の終端に到達すると、バッファマネージャ６５はステップ５１６で、外部メモリ３４にストアされた情報を得るためにフレームポインタ２１０に基づいて外部メモリにアクセスし、そこで得たヘッダ情報１７０をヘッダＦＩＦＯ６７にストアし、受信データパケットの対応のストアされたデータを送信ＦＩＦＯ６６にストアする。したがって、受信するＭＡＣによって生成された管理情報（受信ステータス）および、ルールチェッカによって生成された管理情報（スイッチステータス）は、ヘッダＦＩＦＯ６７にストアされる。ＦＩＦＯ６７はその後、図８Ａに示す管理データフレーム３００の２４バイトヘッダ３３０を生成する管理フレームジェネレータ６９に管理情報を出力する。
管理ＭＡＣ３６はジェネレータ６９から管理データヘッダを得て、また送信ＦＩＦＯ６６から外部メモリ３４にストアされた受信データの少なくとも一部分を得て、ステップ５１８で管理フレーム３００を生成する。具体的には、管理ポートＭＡＣ３６は、イーサネットプロトコルに従ったプリアンブル３０２およびフレーム開始デリミタ（ＳＦＤ）３０４を生成する。管理ポートＭＡＣ３６は、管理ポートＭＡＣ３６のベースアドレスに対応する宛先アドレス３０６を含む、ジェネレータ６９からのヘッダを付する。宛先アドレス３０６を管理ポート３６のアドレスと等しく設定することにより、管理ＭＡＣ３８を介してデータパケットを受信する管理エージェントが、管理フレームとして受信されたデータパケットを特定することが可能になる。ソースアドレス３０８は、受信データパケットを有するＭＡＣ６０または６２のアドレスと等しくなるようにジェネレータ６９によって設定される。たとえば、データパケットが図２に示す「ＭＡＣ２３」によって受信された場合、ソースアドレス３０８は「ＭＡＣ２３」のアドレスと等しくするように設定される。
管理ポート３６はその後、表１および図７に関して上述した管理情報を含む、ジェネレータ６９によって供給された演算コードフィールド２０６を挿入する。その後管理ポート３６は、ビン番号２００およびエントリ番号２０２を追加し、さらにそれに続いて、図９Ａおよび９Ｂに示すもとの受信フレームのフレーム長１４８を付加する。ビン番号およびエントリ番号フィールド２００および２０２は、受信データフレームが学習されたフレームである場合のみ、供給される必要がない。
管理ポートＭＡＣ３６はその後、受信ステータスビットであるＣＲＣエラービット１７８ａ、フレーム整列エラービット１７８ｂ、受信ＦＩＦＯオーバフローエラー１７８ｃ、およびもとのフレームがタグ付きか否かを特定するタグ付フレームビット１９０の値を含む、ステータスフィールド３１０を供給する。ステータスフィールド３１０はまた、フレームがもとのフレームの１２８バイトのみを有するかを特定する圧縮フレームビットも含む。具体的には、管理ポート３６は切捨て機能が管理ポート３６内で設定されている場合、受信データフレーム３１２の１２８バイトまで送信するように構成される。もとのデータフレーム３１２は、もとの宛先アドレス１３４と、もとのソースアドレス１４６と、もとのタイプ／レングス１４８と、データフィールド１５０とを含むように構成される。管理ポート３６内で切捨てが設定されると、１１４バイトより長い長さを有するデータフィールド１５０は切捨てられるので切捨て後の部分１５０′のみが送信される。しかしながら、データフィールド１５０が１１４バイトより短い場合には、データフィールド全体が送信される。
管理ポート３６がデータパケット３００のフィールドに挿入された後、管理ポート３６は管理フレーム３００のバイト数を正確に反映する新たなＣＲＣフィールド３１４を生成する。一旦ＣＲＣフィールド３１４が管理ポート３６によって生成されると、管理フレーム３００は管理ポート３６によって並直列変換器７１を介して管理ＭＡＣ３８へと出力され、管理エージェントによって処理される。
したがって、管理エージェントは、マルチポートスイッチによって受信されたデータパケットのタイプについての特定の情報と、データパケットを受信するポート６０と、受信されたデータフレーム自体およびデータパケットを受信する受信ポートに対応する受信ステータス情報と、トラヒックキャプチャ、ＩＲＣアドレス学習、および管理ポートタグ付に関する情報を特定するスイッチ論理によって生成された情報とを含む、管理データフレームを受信することができる。管理フレームはまた、受信データフレームの少なくとも一部分を含む。したがって、管理データフレームは受信されたデータパケットおよびマルチポートスイッチのデータパケット受信に対する応答とに関する特定の詳細な情報を提供する。したがって、管理エージェントは、マルチポートスイッチ１２がデータパケットを受信した順序に関係なく、管理ポート３６から複数の管理フレームを受信することができる。さらに、ＭＡＣ層およびルールチェッカによって提供された情報により、管理エージェントは、監視されたトラヒックに応答するか否か、またはルールチェッカ４４もしくは６８のスイッチ論理に関係するアドレステーブルを更新するか否かを含む、適切な方針を決定することができる。
管理エージェントはまた、図８Ｂに示す管理ポート３６に管理データパケット４００を出力し得る。図８Ｂに示すように、管理データパケット４００は、ネットワークポートのグループを特定してネットワークパケットを送信するポートベクタ２０８′と、特定されたネットワークポートによって送信されるネットワークデータパケット１４２′とを含む。したがって、管理データパケット４００によってルールチェッカはバイパスされるようになり、ポートベクタはポートベクタＦＩＦＯ６３に直接供給されて処理される。上記から容易にわかるように、バッファマネージャはまた、フレームポインタをネットワークデータパケット１４２′に割当て、スイッチサブシステム７０内にわたる送信を可能にする。
この発明を、現在最も実用的かつ好ましいと考えられる実施例に関して述べてきたが、当然、この発明は開示された実施例に限定されることはなく、対照的に、添付の請求の範囲の精神および範囲内に含まれるさまざまな変更および同等の配置を包含することが意図される。
【図１】
0003987915.tif 000003
【図２】
0003987915.tif 000004
【図２Ａ】
0003987915.tif 000005
【図２Ｂ】
0003987915.tif 000006
【図３】
0003987915.tif 000007
【図４】
0003987915.tif 000008
【図５】
0003987915.tif 000009
【図６】
0003987915.tif 000010
【図７】
0003987915.tif 000011
【図８Ａ】
0003987915.tif 000012
【図８Ｂ】
0003987915.tif 000013
【図９Ａ】
0003987915.tif 000014
【図９Ｂ】
0003987915.tif 000015
【図１０Ａ】
0003987915.tif 000016
【図１０Ｂ】
0003987915.tif 000017