(57)【特許請求の範囲】
【請求項１】
パケット・スイッチにおけるヘッダ・フィールドを選択的に置換する装置であって、
ヘッダ、データ、およびサイクル冗長符号（ＣＲＣ）を含む入力パケットを受信するために結合された、入力パケットを一時記憶するように構成されたバッファを含む入力ポート・プロセス（ＩＰＰ）と、
パケットと経路に関する情報を記憶するように構成されたデータベースと、
ヘッダを受信するために結合され、データベースをサーチして入力パケットのタイプに関する情報を決定するように構成された、ＩＰＰとデータベースの間に結合されたサーチ・エンジンと
を含み、前記ＩＰＰがさらに、入力パケットをバッファから出力し、サーチ・エンジンから提供された情報に応答してヘッダ中の少なくとも１つのフィールドを選択的に置換し、修正された入力パケットをスイッチから出力する前にさらに修正することを示す制御フィールド情報を選択的に出力するように構成された装置であり、
選択的に修正された入力パケットおよび制御フィールド情報を受信するように構成され、少なくとも１つの制御信号を選択的に生成して、修正された入力パケットをスイッチから出力する前にさらに修正すべきであることを通知し、この選択的に修正された入力パケットを出力するように構成された出力ポート・プロセス（ＯＰＰ）と、
少なくとも１つの制御信号および選択的に修正された入力パケットを受信するために結合され、選択的に修正された入力パケットに対応するパケットをスイッチから出力するように構成され、少なくとも１つの制御信号に応答して、少なくとも１つのヘッダ・フィールドおよびＣＲＣを、出力パケットを媒体上に伝送する前に選択的に修正するようにさらに構成された出力インタフェースと
を含む装置。
【請求項２】
前記タイプが、入力パケットが経路指定されるかどうかを示す指示を含み、入力パケットが経路指定される場合には、前記サーチ・エンジンが、入力パケットが経路指定されること、およびその経路の宛先アドレス（ＤＡ）をＩＰＰに通知するように構成される請求項１に記載の装置。
【請求項３】
サーチ・エンジンが入力パケットが経路指定されることをＩＰＰに通知した場合に、前記ＩＰＰが、ヘッダのＤＡフィールドをサーチ・エンジンから提供されたＤＡで置換するように構成される請求項２に記載の装置。
【請求項４】
前記制御フィールド情報が、修正された入力パケットを出力する前にヘッダの出所アドレス・フィールドが置換されることを示すための、ＩＰＰによってセットされたフィールドを含み、前記フィールドが、入力パケットが経路指定されるときにセットされる請求項２に記載の装置。
【請求項５】
少なくとも１つの制御信号が、ＣＲＣの生成および出所アドレスの置換を選択的に示すための制御信号を含む請求項２に記載の装置。
【請求項６】
出力インタフェースが、出所アドレスの置換を示す少なくとも１つの制御信号の受信に応答してヘッダの出所アドレス・フィールドに出力インタフェースのアドレスを挿入し、ＣＲＣの再生を示す少なくとも１つの制御信号に応答してＣＲＣを生成するように構成される請求項５に記載の装置。
【請求項７】
ヘッダが生存時間（ＴＴＬ）フィールドを含み、前記ＩＰＰが、出力する前にＴＴＬフィールド中の値を１だけ減分するようにさらに構成される請求項１に記載の装置。
【請求項８】
ヘッダがチェックサム・フィールドを含み、前記ＩＰＰが、出力する前にチェックサム・フィールド中の値を更新するようにさらに構成される請求項１に記載の装置。
【請求項９】
パケットがユニキャスト・パケットであるときに宛先アドレスが置換される請求項２に記載の装置。
【請求項１０】
出力インタフェースがＣＲＣを生成する場合に、ＯＰＰが、修正された入力パケットを出力インタフェースに伝送する間にＣＲＣを除去するようにさらに構成される請求項５に記載の装置。
【請求項１１】
出力インタフェースがＭＡＣである請求項１に記載の装置。
【請求項１２】
少なくとも１つの制御信号が信号ｒｅｐｌａｃｅ＿ｓａを含む請求項１１に記載の装置。
【請求項１３】
少なくとも１つの制御信号が、ＯＰＰからＭＡＣに伝送される制御ワード中のＮＯ＿ＣＲＣビットの状態を含む請求項１１に記載の装置。
【請求項１４】
スイッチが仮想ローカル・エリア・ネットワーク（ＶＬＡＮ）をサポートし、前記タイプが、入力パケットがタグ付けされていないか、有効なタグでタグ付けされているか、または無効なタグでタグ付けされているかを示す指示を含む装置であって、
入力パケットがタグ付けされておらず、入力パケットが決められているＶＬＡＮに属するとサーチ・エンジンが決定した場合に、前記サーチ・エンジンが、決められているＶＬＡＮのＶＬＡＮタグ、およびそのＶＬＡＮタグがヘッダのＶＬＡＮタグ・フィールドに挿入されることを示す少なくとも１つのインジケータをＩＰＰに通知するように構成され、
入力パケットが無効なタグでタグ付けされており、入力パケットが決められているＶＬＡＮに属するとサーチ・エンジンが決定した場合に、前記サーチ・エンジンが、決められているＶＬＡＮのＶＬＡＮタグ、およびそのＶＬＡＮタグが置換されることを示す少なくとも１つのインジケータをＩＰＰに通知するように構成され、
入力パケットが有効なタグでタグ付けされており、入力パケットを異なるＶＬＡＮに経路指定すべきであるとサーチ・エンジンが決定した場合に、前記サーチ・エンジンが、その異なるＶＬＡＮのＶＬＡＮタグ、およびそのＶＬＡＮタグが置換されることを示す少なくとも１つのインジケータをＩＰＰに通知するように構成され、
その他の場合には、サーチ・エンジンが、ＶＬＡＮタグの挿入も置換も示さない少なくとも１つのインジケータをＩＰＰに通知するように構成される請求項１に記載の装置。
【請求項１５】
ＩＰＰが、
ＶＬＡＮタグが挿入される場合に、サーチ・エンジンから提供されたＶＬＡＮタグを挿入し、第１の状態の制御フィールド情報を生成し、
ＶＬＡＮタグが置換される場合に、入力パケットのヘッダ中のＶＬＡＮタグをサーチ・エンジンから提供されたＶＬＡＮタグで置換し、第２の状態の制御フィールド情報を生成し、
その他の場合に、第３の状態の制御フィールド情報を生成する
ように構成される請求項１４に記載の装置。
【請求項１６】
前記ＯＰＰが、制御フィールド情報の状態に基づいて、修正された入力パケット中のＶＬＡＮタグ・フィールドを選択的に取り除くようにさらに構成される請求項１５に記載の装置。
【請求項１７】
前記ＯＰＰが、制御フィールド情報の状態に基づいて、ＣＲＣを再生するために制御信号を選択的に生成するように構成される請求項１５に記載の装置。
【請求項１８】
出力インタフェースが、ＣＲＣの再生を示す少なくとも１つの制御信号に応答してＣＲＣを生成するように構成される請求項１７に記載の装置。
【請求項１９】
ＩＰＰから受信した選択的に修正された入力パケットを記憶するように構成されたパケット・メモリをさらに含み、前記パケット・メモリが制御フィールド情報を記憶するようにさらに構成され、前記ＯＰＰが、パケット・メモリに結合され、選択的に修正された入力パケットおよび制御フィールド情報をパケット・メモリから受信するように構成される請求項１に記載の装置。
【請求項２０】
ネットワーク・スイッチ・デバイス中でヘッダ・フィールドの置換を選択的に実行する方法であって、
入力ポート・プロセス（ＩＰＰ）が入力パケットをバッファリングするステップと、
サーチ・エンジンがデータベースをサーチして入力パケットのタイプを決定し、この入力パケットのタイプをＩＰＰに通知するステップと、
前記ＩＰＰがサーチ・エンジンから提供された情報に応答してヘッダ中の少なくとも１つのフィールドを選択的に置換し、修正された入力パケットをスイッチから出力する前にさらに修正することを示す制御フィールド情報を選択的に出力するステップと、
出力ポート・プロセス（ＯＰＰ）が、修正された入力パケットおよび対応する制御フィールド情報を読み取り、前記ＯＰＰが、修正された入力パケットがスイッチから出力される前にさらに修正されることを通知し、この選択的に修正された入力パケットを出力するために、少なくとも１つの制御信号を出力インタフェースに対して選択的に生成するステップと、
前記出力インタフェースが、ＯＰＰから受信した少なくとも１つの制御信号に応答して選択的にさらに修正された、修正された入力パケットを出力するステップと
を含む方法。
【請求項２１】
修正された入力パケットおよび制御フィールド情報をパケット・メモリに記憶するステップをさらに含み、前記ＯＰＰがさらに、修正された入力パケットおよび制御フィールド情報をパケット・メモリから読み取る請求項２０に記載の方法。
【請求項２２】
前記タイプが入力パケットが経路指定されるかどうかを示す指示を含み、入力パケットが経路指定される場合に、前記サーチ・エンジンが、その入力パケットが経路指定されること、およびその経路の宛先アドレス（ＤＡ）をＩＰＰに通知する請求項２０に記載の方法。
【請求項２３】
ＩＰＰが選択的に置換するステップが、ヘッダのＤＡフィールドを、入力パケットが経路指定される場合にサーチ・エンジンから提供されるＤＡで置換するステップを含む請求項２２に記載の方法。
【請求項２４】
前記制御フィールド情報が、修正された入力パケットを出力する前にヘッダの出所アドレス・フィールドが置換されることを示すための、ＩＰＰによってセットされたフィールド（ｒｅｐｌａｃｅ＿ＳＡ）を含み、前記ｒｅｐｌａｃｅ＿ＳＡが、入力パケットが経路指定されるときにセットされる請求項２２に記載の方法。
【請求項２５】
少なくとも１つの制御信号を生成するステップが、ＣＲＣの生成および出所アドレスの置換を選択的に示すための制御信号を生成するステップを含む請求項２２に記載の方法。
【請求項２６】
出力するステップが、
出所アドレスの置換を示す少なくとも１つの制御信号の受信に応答して、ヘッダの出所アドレス・フィールドに出力インタフェースのアドレスを挿入するステップと、
ＣＲＣの再生を示す少なくとも１つの制御信号に応答してＣＲＣを生成するステップと
を含む請求項２５に記載の方法。
【請求項２７】
スイッチが仮想ローカル・エリア・ネットワーク（ＶＬＡＮ）をサポートし、前記タイプが、入力パケットがタグ付けされていないか、有効なタグでタグ付けされているか、または無効なタグでタグ付けされているかを示す指示を含む方法であって、
入力パケットがタグ付けされておらず、入力パケットが決められているＶＬＡＮに属するとサーチ・エンジンが決定した場合に、前記サーチ・エンジンが、決められているＶＬＡＮのＶＬＡＮタグをＩＰＰに通知し、さらにそのＶＬＡＮタグがヘッダのＶＬＡＮタグ・フィールドに挿入されることを示す少なくとも１つのインジケータを発行し、
入力パケットが無効なタグでタグ付けされており、入力パケットが決められているＶＬＡＮに属するとサーチ・エンジンが決定した場合に、前記サーチ・エンジンが、決められているＶＬＡＮのＶＬＡＮタグをＩＰＰに通知し、さらにそのＶＬＡＮタグが置換されることを示す少なくとも１つのインジケータを発行し、
入力パケットが有効なタグでタグ付けされており、入力パケットを異なるＶＬＡＮに経路指定すべきであるとサーチ・エンジンが決定した場合に、前記サーチ・エンジンが、その異なるＶＬＡＮのＶＬＡＮタグをＩＰＰに通知し、そのＶＬＡＮタグが置換されることを示す少なくとも１つのインジケータ発行し、
その他の場合には、サーチ・エンジンが、ＶＬＡＮタグの挿入も置換も示さない少なくとも１つのインジケータをＩＰＰに通知する請求項２０に記載の方法。
【請求項２８】
ＶＬＡＮタグが挿入される場合に、前記ＩＰＰが選択的に置換する前記ステップが、サーチ・エンジンから提供されたＶＬＡＮタグを挿入するステップを含み、制御フィールド情報を選択的に出力する前記ステップが、第１の状態の制御フィールド情報を生成するステップを含み、
ＶＬＡＮタグが置換される場合に、前記ＩＰＰが選択的に置換する前記ステップが、入力パケットのヘッダ中のＶＬＡＮタグをサーチ・エンジンから提供されたＶＬＡＮタグで置換するステップを含み、制御フィールド情報を選択的に出力する前記ステップが、第２の状態の制御フィールド情報を生成するステップを含み、
その他の場合には、制御フィールド情報を選択的に出力する前記ステップが、第３の状態の制御フィールド情報を生成するステップを含む請求項２７に記載の方法。
【請求項２９】
修正された入力パケット中のＶＬＡＮタグ・フィールドを、制御フィールド情報の状態に基づいて前記ＯＰＰが選択的に取り除くステップをさらに含む請求項２８に記載の方法。
【請求項３０】
少なくとも１つの制御信号を選択的に生成するステップが、制御フィールド情報の状態に基づいて制御信号がＣＲＣを再生することを含む請求項２８に記載の方法。
【請求項３１】
出力インタフェースが、ＣＲＣの再生を示す少なくとも１つの制御信号に応答してＣＲＣを生成することによって、修正された入力パケットをさらに選択的に修正する請求項３０に記載の方法。
【請求項３２】
パケット・スイッチにおいて選択的にヘッダのフィールドを置換する装置であって、
入力ポート・プロセス（ＩＰＰ）、データベース、サーチ・エンジン、出力ポート・プロセス（ＯＰＰ）及び媒体アクセス制御（ＭＡＣ）を含むスイッチング要素を備え、
ＩＰＰは、ＭＡＣとサーチ・エンジンとに結合され、ＭＡＣからヘッダ、データ及びサイクル冗長符号（ＣＲＣ）からなる入力パケットに関連したヘッダ情報を受信し、
データベースは、パケットの転送及びフィルタリングを容易にするための情報を記憶するように構成され、
サーチ・エンジンは、データベースに結合され、そしてＩＰＰからヘッダのコピーを受信するように結合され、サーチ・エンジンはデータベースをサーチして入力パケットのタイプに関する情報及び入力パケットの次のホップに関する情報を決定しそしてＩＰＰに供給するように構成され、
ＩＰＰは、タイプに応じてヘッダの少なくとも１つのフィールドを選択的に置換するように、そして制御フィールド情報をＯＰＰに選択的に出力してパケット・スイッチからの出力の前に入力パケットの付加的な修正の必要性を指示するように構成され、
スイッチング要素によって決定された情報が、ヘッダが変更されないことを示す場合には、入力パケットは修正されずにスイッチから出力され、それにより終端間のエラー頑強性が保持され、
スイッチング要素によって決定された情報が、ヘッダの少なくとも一部分が変更されることを示す場合には、入力パケットのヘッダが更新され、ＣＲＣが除去されて、スイッチから出力される更新されたパケットに基づいて再生される、
装置。
【発明の詳細な説明】
発明の分野
本発明のシステムおよび方法は、パケット・スイッチング・ネットワーク中でのパケット・フィールドの置換の分野に関し、さらに詳細には、本発明は、ネットワークに結合されたスイッチ内での、パケットのパケット・ヘッダ・フィールドのパケット・フィールド置換のハードウェア実現に関する。
技術背景
ローカル・エリア・ネットワーク（ＬＡＮ）のアーキテクチャは、かなり洗練されてきている。当初は、ＬＡＮはいくつかのコンピュータを接続する単線として考えられていた。現在では、ＬＡＮは、機能性およびフレキシビリティを向上させるために複雑な構成で実現されている。このようなネットワークでは、パケットは発信元デバイスから宛先デバイスに伝送され、より拡張性の高いネットワークでは、このパケットは１つまたは複数のスイッチおよび／あるいはルータを通って進行する。パケット構造ならびにネットワークの機能とソフィステケーション（sophistication）の層を規整した標準が設定されている。例えば、ＴＣＰ／ＩＰプロトコル・スタックは、４つの複数の層、例えば物理層（層１）、データ・リンク層（層２）、ネットワーク層（層３）、トランスポート層（層４）を定めている。ネットワーク・デバイスは、これらの層の１つまたは複数でサポートされ、したがってヘッダの特定のフィールドを参照することができる。
今日では、通常のＬＡＮでは、層２（データ・リンク層）および層３（ネットワーク層）のネットワーク・デバイスの組み合わせを利用している。高まり続けるネットワークからの性能面の要求に応えるために、ソフトウェアならびに／または層２および層３の個々のデバイス中で従来実行されていた機能性は、ハードウェアで性能決定機能を実現する１つの多層デバイスまたは多層スイッチに移植されている。
１つの性能決定機能は経路指定である。経路指定を実施するソフトウェアは性能に影響を及ぼす可能性がある。したがって、経路指定はより高速のハードウェアで実施することが望ましい。しかし、経路指定では、着信パケットの特定のヘッダ・フィールドを、デバイスから出力する前に修正する必要がある。ソフトウェアで実行することがおそらくは望ましいのであるが、ハードウェアの実施態様では、性能を損なうことなく、余分なハードウェアを最小限に抑えることが重要である。
最近、仮想ローカル・エリア・ネットワーク（ＶＬＡＮ）の概念が層２に導入された。層２のヘッダは、ＶＬＡＮの能力を与えるビットを追加するように修正されている。ＶＬＡＮでは、ネットワーク・トポロジの物理的な区分化または配列とは無関係に、ネットワーク・ノードを論理的に区分化することができる。パケットの状態に基づいて、ＶＬＡＮビット、例えばＶＬＡＮタグを修正する必要があることもある。ソフトウェア・ベースの技術を使用することもできるが、効率的なハードウェア手法を提供することが望ましい。
発明の概要
ネットワーク要素の性能に最低限の影響しか及ぼさないハードウェアを使用してパケット・ヘッダを更新するシステムおよび方法である。一実施態様では、このシステムは、受信した入力パケットをバッファリングし、ヘッダ情報をサーチ・エンジンに転送する入力ポート・プロセス（ＩＰＰ）を含む。サーチ・エンジンは、スイッチング要素上に維持されたデータベースをサーチし、パケットのタイプを決定する。一実施態様では、このタイプは、そのパケットをハードウェアで経路指定することができるかどうかを示すことができる。別の実施態様では、このタイプは、そのパケットがＶＬＡＮをサポートするかどうかを示すことができる。サーチ・エンジンは、パケット・タイプの情報を、そのパケットが経路指定される場合には更新すべき宛先アドレス（ＤＡ）とともに、あるいはそのパケットが特定のＶＬＡＮに中継されるものとして識別されている場合にはＶＬＡＮタグとともに、ＩＰＰに送信する。ＩＰＰは、パケット・メモリにパケットを伝送する間に、対応するフィールド、例えばＤＡフィールドやＶＬＡＮタグ・フィールドを選択的に置換し、修正されたパケットがパケット・メモリに記憶される。ＩＰＰによってパケット・メモリに送られる制御フィールド情報を含む制御フィールドが、パケット・メモリと関連づけられる。一実施態様では、制御フィールド情報は、出所アドレスが置換を必要としていることを示すフラグからなる。別の実施態様では、制御フィールド情報は、パケットがタグ付きで届いたか、パケットがタグ付きで届いたがこのタグが修正されるか、またはパケットにタグ付けしないかを示すフラグからなる。
出力ポート・プロセス（ＯＰＰ）は、修正された入力パケットおよび制御フィールド情報を読み取り、修正された入力パケットに対して追加の修正を選択的に実行し、制御信号を出力インタフェース（すなわちＭＡＣ）に発行する。一実施態様では、ＯＰＰはＣＲＣに対応するパケットの最後の４バイトを除去し、ＭＡＣに制御信号をアサートしてＣＲＣを添付し、出所アドレスを置換する。別の実施態様では、３つの制御フィールドの状態に応じて、ＯＰＰは、パケット中のＶＬＡＮタグ・フィールドを除去し、ＣＲＣに対応するパケットの最後の４バイトを除去し、ＭＡＣに制御信号を発行してＣＲＣを添付する。ＭＡＣは、ＯＰＰから受信した制御信号に基づいて、出所アドレス・フィールドをそれ自体のＭＡＣアドレスで置換し、パケットの末端に添付されるＣＲＣを生成する。
【図面の簡単な説明】
本発明の目的、特徴、および利点は、以下の図面で当業者には明らかになるであろう。
第１図は、本発明の教示に従って動作する高速スイッチを示す簡略なブロック図である。
第２図は、本発明の教示に従って動作する高速スイッチング要素を示す簡略なブロック図である。
第３図は、本発明のシステムの一実施形態を示す簡略なブロック図である。
第４ａ図はパケットの形式を示す図であり、第４ｂ図はＶＬＡＮにサポートされたパケットの形式を示す図である。
第５図は、本発明の方法の一実施形態を示す簡略な流れ図である。
第６図は、本発明の教示によるパケット・フィールドを修正する方法の一実施形態を示す簡略な流れ図である。
第７ａ図および第７ｂ図は、本発明の教示によるパケット・フィールドを修正する方法の別の実施形態を示す簡略な流れ図である。
詳細な説明
以下の記述では、説明を目的として、本発明が完全に理解できるように多数の特定の詳細について述べる。しかし、これらの特定の詳細が、本発明を実施するために必須であるわけではないことは、当業者には明らかであろう。他の場合には、本発明を不必要に分かりにくくしないために、周知の電気的構造および回路はブロック図の形態で示してある。
本発明の教示に従って動作するネットワーク要素の一実施形態の概要を、第１図に示す。このネットワーク要素は、いくつかのノードおよび端局を多種多様な方法で相互接続するために使用される。特に、多層分散ネットワーク要素（ＭＬＤＮＥ）の適用分野では、イーサネットとも呼ばれるＩＥＥＥ８０２．３標準など、均質なデータ・リンク層にわたる予め定められている経路指定プロトコルに従って、パケットを経路指定することになる。その他の経路指定プロトコルを使用することもできる。
ＭＬＤＮＥの分散アーキテクチャは、いくつかの既知のまたは将来的な経路指定アルゴリズムに従ってメッセージ・トラフィックを経路指定するように構成することができる。好ましい実施形態では、ＭＬＤＮＥは、イーサネットＬＡＮ標準および媒体アクセス制御（ＭＡＣ）データ・リンク層を介して、インターネットのプロトコル群、具体的に言うと伝送制御プロトコル（ＴＣＰ）およびインターネット・プロトコル（ＩＰ）を使用して、メッセージ・トラフィックを処理するように構成される。ＴＣＰはここでは層４プロトコルとも呼び、ＩＰは層３プロトコルと呼ぶことがある。
ＭＬＤＮＥの一実施形態では、ネットワーク要素は、分散型で、すなわちある機能の様々な部分がＭＬＤＮＥ中の様々なサブシステムによって実行され、それらの機能の最終的な結果が外部のノードおよび端局に対して透過なままとなるようなかたちで、パケット経路指定機能を実施するように構成されている。以下の記述および第１図のダイアグラムから分かるように、ＭＬＤＮＥは、設計者が、追加のサブシステムを付加することにより、予測によって外部接続の数を増加させることができるようにし、それによりＭＬＤＮＥを独立型のルータとして規整する際により大きなフレキシビリティを見込む、スケーラブルなアーキテクチャを有する。
第１図にブロックの形態で示すように、ＭＬＤＮＥ１０１は、いくつかの内部リンク１４１を使用して完全に網目状となって相互接続され、より大きなスイッチを形成する、いくつかのサブシステム１１０を含む。少なくとも１つの内部リンクは、任意の２つのサブシステムを結合する。各サブシステム１１０は、中継メモリ１１３および関連メモリ１１４に結合されたスイッチング要素１１１を含む。中継メモリ（またはデータベース）１１３は、受信したパケットのヘッダとの突合せに使用されるアドレス・テーブルを記憶する。関連メモリ（またはデータベース）は、ＭＬＤＮＥを介してパケットを中継するための中継属性を識別するために使用される、中継メモリ中の各エントリに関連するデータを記憶する。入出力能力を有するいくつかの外部ポート（図示せず）は、外部接続１１７とインタフェースをとる。一実施形態では、各サブシステムは、複数のギガビット・イーサネット・ポート、高速イーサネット・ポート、およびイーサネット・ポートをサポートする。各サブシステム中のやはり入出力能力を有する内部ポート（図示せず）は、内部リンク１４１に結合する。内部リンクを使用すると、ＭＬＤＮＥは複数のスイッチング要素を互いに接続して、マルチギガビット・スイッチを形成することができる。
ＭＬＤＮＥ１０１は、ｐｅｒｉｐｈｅｒａｌ  ｃｏｍｐｏｎｅｎｔｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＰＣＩ）などの通信バス１５１を介して個別のサブシステム１１０に結合された中央処理システム（ＣＰＳ）１６０をさらに含む。ＣＰＳ１６０は、中央メモリ１６３に結合された中央処理装置（ＣＰＵ）１６１を含む。中央メモリ１６３は、様々なサブシステムの個別の中継メモリ１１３に入っているエントリのコピーを含む。ＣＰＳは、各サブシステム１１０を直接制御し、これらと通信インタフェースをとり、ある程度集中化した通信および制御をスイッチング要素間にもたらす。
第２図は、第１図のスイッチング要素の例示的なアーキテクチャを示す簡略なブロック図である。図示のスイッチング要素２００は、中央処理装置（ＣＰＵ）インタフェース２１５、スイッチ構造ブロック２１０、ネットワーク・インタフェース２０５、カスケード・インタフェース２２５、および共用メモリ・マネージャ２２０を含む。
イーサネット・パケットは、３つのインタフェース２０５、２１５、または２２５のいずれか１つを通って、ネットワーク・スイッチング要素２００に入る、またはそこから出ることができる。簡単に言うと、ネットワーク・インタフェース２０５は、対応するイーサネット・プロトコルに従って動作し、１つまたは複数の外部ポート（図示せず）を介してネットワーク（図示せず）からイーサネット・パケットを受信し、ネットワーク上にイーサネット・パケットを送る。任意選択のカスケード・インタフェース２２５は、スイッチング要素を相互接続してより大きなスイッチを生成するための１つまたは複数の内部リンク（図示せず）を含むことができる。例えば、各スイッチング要素を完全な網目状トポロジとなるようにその他のスイッチング要素と互いに接続し、上述の多層スイッチを形成することもできる。別法として、スイッチは、カスケード・インタフェース２２５を備えた、または備えない、単一のスイッチング要素２００を含むこともできる。
ＣＰＵ（図示せず）は、ＣＰＵインタフェース２１５を介してネットワーク・スイッチング要素２００にコマンドまたはパケットを伝送することができる。こうして、ＣＰＵ上で実行される１つまたは複数のソフトウェア・プロセスで、外部の中継／フィルタリング・データベース２４０中のエントリの、新しいエントリを追加する、望ましくないエントリを無効にするなどの管理を行うことができる。しかし、代替実施形態では、ＣＰＵは、中継／フィルタリング・データベースに直接アクセスすることができる。いずれにしても、パケットを中継するために、ＣＰＵインタフェース２１５のＣＰＵポートは、スイッチング要素２００への総称入力ポートに類似しており、単にもう１つの外部ネットワーク・インタフェース・ポートであるように扱うことができる。ただし、ＣＰＵポートへのアクセスはＰＣＩバスなどのバスを介して行われるので、ＣＰＵポートはどのような媒体アクセス制御（ＭＡＣ）の機能も必要としない。
ネットワーク・インタフェース２０５に戻って、次に入力パケット処理および出力パケット処理という２つの主なタスクについて簡単に述べる。入力パケット処理は、ネットワーク・インタフェース２０５の１つまたは複数の入力ポートで実行することができる。入力パケット処理は、（１）着信するイーサネット・パケットを受信し、検査すること、（２）適切なときにパケット・ヘッダを修正すること、（３）着信パケットを記憶するために共用メモリ・マネージャ２２０からのバッファ・ポインタを要求すること、（４）スイッチ構造ブロック２１０からの中継決定を要求すること、（５）外部共用メモリ２３０中に一時記憶するために着信パケット・データを共用メモリ・マネージャ２２０に転送すること、および（６）中継決定を受信した後で、１つまたは複数のバッファ・ポインタを、中継決定によって示された１つまたは複数の出力ポートに中継することを含む。出力パケット処理は、ネットワーク・インタフェース２０５の１つまたは複数の出力ポートで実行することができる。出力処理は、共用メモリ・マネージャ２２０からのパケット・データを要求すること、パケットをネットワーク上に伝送すること、およびパケットを伝送した後で、１つまたは複数のバッファの割振り解除を要求することを含む。
ネットワーク・インタフェース２０５、ＣＰＵインタフェース２１５、およびカスケード・インタフェース２２５は、共用メモリ・マネージャ２２０およびスイッチ構造ブロック２１０に結合される。パケットの中継やパケットのバッファリングなど重要な機能は、第２図に示すように集中化されることが好ましい。共用メモリ・マネージャ２２０は、外部共用メモリに対する効率的な集中インタフェースとなり、着信パケットをバッファリングする。スイッチ構造ブロック２１０は、ＣＰＵの支援で中継／フィルタリング・データベースをサーチおよび維持するための、サーチ・エンジンおよび学習論理を含む。
集中化されたスイッチ構造ブロック２１０は、インタフェース２０５、２１５、および２２５の代わりに中継／フィルタリング・データベースへのアクセスを行うサーチ・エンジンを含む。パケット・ヘッダの突合せ、層２ベースの学習、層２および層３のパケットの中継、フィルタリング、およびエージングは、スイッチ構造ブロック２１０によって実行することができる例示的な機能である。各入力ポートは、スイッチ構造ブロック２１０と結合され、受信したパケットについての中継決定を受信する。中継決定は、対応するパケットを伝送すべき１つまたは複数の出発ポート（例えば外部ネットワーク・ポートまたは内部カスケード・ポート）を示す。追加の情報を中継決定に含めて、ＭＡＣ  ＤＡを置換するための新しいＭＡＣ宛先アドレス（ＤＡ）などのハードウェア経路指定をサポートすることもできる。さらに、優先順位指示を中継決定に含めて、スイッチング要素２００を通るパケット・トラフィックの優先順位づけを容易にすることもできる。
この実施形態では、イーサネット・パケットは共用メモリ・マネージャ２２０によって集中してバッファリングされ、管理される。共用メモリ・マネージャ２２０は、あらゆる入力ポートおよび出力ポートとインタフェースをとり、動的なメモリの割振りおよび割振り解除をそれぞれそれらの代わりに実施する。入力パケット処理中には、１つまたは複数のバッファが外部共用メモリ中で割り振られ、着信パケットは、例えばネットワーク・インタフェース２０５から受信したコマンドに応答して共用メモリ・マネージャ２２０を介して記憶される。その後、出力パケット処理中に、共用メモリ・マネージャ２２０は、このパケットを外部共用メモリから取り出し、使用されなくなったバッファを割振り解除する。全ての出力ポートがその中に記憶したデータの伝送を完了するまでバッファが解放されないことを保証するために、共用メモリ・マネージャ２２０は、バッファの所有権を追跡することが好ましい。
第３図は、本発明の教示にしたがって高速フィールド置換を実施する構造を示す簡略なブロック図である。入力媒体アクセス制御（ＭＡＣ）３０５、入力ポート・プロセス（ＩＰＰ）３１０、サーチ・エンジン３１５、データベース３２０、パケット・メモリ３２５、出力ポート・プロセス（ＯＰＰ）３３０、および出力ＭＡＣ３３５といった要素を使用する。前出のスイッチング要素の概要（第２図）から容易に分かるように、これらの要素の多くは多目的であり、追加の機能を備えている。したがって、この構造は時間効率が良いだけでなく費用効率も高く、フィールド置換をサポートするためにこの構造に追加する追加論理は最低限となる。
さらに、本発明は、必要なときにしかヘッダ情報を修正または更新しないことにより、エラー耐性を保持する。例えば、従来技術のシステムでは、ハードウェアで実施されたものであれ、ソフトウェアで実施されたものであれ、受信ＭＡＣは、パケットのヘッダが修正されているかどうかに関わらず、常にパケットからＣＲＣを除去するように構成される。したがって、このような従来技術のデバイス中の伝送ＭＡＣは、常にＣＲＣを生成するように構成される。以下で説明するように、ＣＲＣはヘッダが修正されたときにのみ除去され、ヘッダが修正されていない場合には、最初のＣＲＣがそのまま残り、エラー耐性が保持される。
この考察を簡単にするために、ここで記述するフィールド置換プロセスに直接関係のない様々な要素の追加機能の詳細については、詳細には述べない。さらに、本明細書に記載の構造は、同様の構造を有するその他のスイッチング要素に適用することができるものとする。最後に、ＶＬＡＮパケットのフィールド置換およびハードウェア経路指定について述べるが、同様にヘッダ・フィールド置換を必要とするその他のタイプのパケットも本発明の教示を利することができるものとする。
第３図を参照すると、入力ＭＡＣ３０５は、入力パケットを受信し、この入力パケットをＩＰＰ３１０に向けて送る。ＩＰＰは、先入れ先出し（ＦＩＦＯ）バッファ３１２を含み、入力パケットをバッファリングする。多重化回路および連想選択論理（associative select logic）を含むことが好ましい論理３１４も含まれ、制御情報を中継し、ＩＰＰ３１０からパケット・メモリ３２５にヘッダが伝送される際にヘッダの所定のフィールドを置換する。ＩＰＰ３１０は、ヘッダのコピーをサーチ・エンジン３１５に送り、サーチ・エンジンは、データベース３２０をサーチして、パケットのタイプ、例えばＶＬＡＮサポート型であるか、またはパケットを経路指定することができるかどうかといった、パケットに関連する情報があるかどうかを決定する。様々な構成のサーチ・エンジンおよびデータベースを使用することができる。一実施形態では、サーチ・エンジン３１５は、データベース３２０と協働して、入力パケットをハードウェアで経路指定することができるかどうかを決定する。入力パケットのための経路が既に存在しているかどうかということも含めて、これを決定するために、様々なサーチ基準を使用することができる。別の実施形態では、サーチ・エンジンは、ＶＬＡＮサポートに関する情報を戻す。
サーチ・エンジン３１５は、ＩＰＰ３１０に情報を戻す。この情報がヘッダが更新されないことを示す場合には、ヘッダは変更されずに、パケット・メモリ３２５、ＯＰＰ３３０、およびＭＡＣ３３５を介して出力される。そうでない場合には、ＩＰＰ３１０はＦＩＦＯからヘッダを出力し、ヘッダの所定のフィールドについて選択的にフライ・フィールド置換（fly field replacement）を実行する。サーチ・エンジンは、パケット中の生存時間（time to live：ＴＴＬ）フィールドのロケーションを識別するオフセットを提供する。さらに、ユニキャスト経路指定の場合には、ＩＰＰ３１０は、宛先アドレス（ＤＡ）フィールドを、サーチ・エンジン３１５から供給されたＤＡで置換する。例えば、これを単純にマルチプレクサ論理を使用して行い、サーチ・エンジン３１５から発行されたＤＡ置換制御信号に基づいて、ＤＡフィールド中で発見された最初の値またはサーチ・エンジン３１５から受信したＤＡ値のいずれかを選択することができる。ＶＬＡＮサポートの場合には、ＩＰＰ３１０は、ＶＬＡＮタグ・フィールド中の値を置換する、またはこれに値を挿入する。
ＩＰＰ３１０中でカウンタを使用して、出力されたバイト数をカウントし、それによりパケットのどのフィールドが現在出力されているかを決定し、置換が適時に実行されるようにすることが好ましい。さらに、ＩＰＰ３１０は、ヘッダのＴＴＬフィールド中の生存時間（ＴＴＬ）値、およびチェックサム・フィールド中のチェックサム値を調節することが好ましい。ＴＴＬフィールドのロケーションは、サーチ・エンジンによって与えられたオフセットによって識別される。チェックサム・フィールドは、ＴＴＬフィールドの直後にある。パケット・メモリ３２５に出力されるＴＴＬ値は、入力パケット・ヘッダ中で発見されたＴＴＬ値を１だけ減分した値である。同様に、出力されるチェックサム値は、（ＴＴＬ値の減分により）入力パケット・ヘッダのチェックサム値を定数分だけ減分した値である。
選択的にヘッダ・フィールド置換を実行するだけでなく、ＩＰＰ３１０は、パケット・メモリ３２５中の制御フィールド３２７に記憶された制御フィールド情報を出力する。例えば、ハードウェア経路指定の場合には、制御フィールド情報は、出所アドレスを置換するように示す指示（ｒｅｐｌａｃｅ＿ｓａ）からなる。ＶＬＡＮサポートの場合には、制御フィールド情報は、ｏｒｉｇ＿ｔａｇ、ｍｏｄ＿ｔａｇ、およびｄｏｎｔ＿ｔａｇといったインジケータからなる。インジケータｏｒｉｇ＿ｔａｇは、最初に到着したパケットがタグ付きであることを示す。インジケータｍｏｄ＿ｔａｇは、最初に到着したパケットがタグ付きであるが、これが修正されることを示す。インジケータｄｏｎｔ＿ｔａｇは、パケットがタグ付けされないことを示す。
パケット・メモリ３２５は、ＩＰＰ３１０からの修正された入力パケット、および連想フィールド制御情報を受信する。パケット・メモリはバッファの働きをし、スイッチに出入りする間に失われるパケットを最小限に抑える。
ＯＰＰ３３０は、パケット・メモリ３２５からパケットおよび関連する制御フィールド情報を取り出し、関連する制御フィールド情報に応じて、入力パケットをＭＡＣ３３５に出力する際にこれを選択的にさらに修正し、制御情報を出力ＭＡＣ３３５に与える。例えば、ハードウェア経路指定の場合には、ＯＰＰ３３０は、ＣＲＣを含むパケットの最後の４バイトを除去し、制御信号をＭＡＣ３３５に送信してそのアドレスをＳＡフィールド中に挿入し、ＣＲＣを生成する。一実施形態では、ＯＰＰ３３０は、後にＭＡＣ３３５に送信されるＭＡＣ制御ワード中のＮＯ＿ＣＲＣビットをクリアし、ＭＡＣ３３５にＣＲＣを添付するよう告げることによって、出力ＭＡＣ３３５に命令を与える。ＣＲＣの生成および挿入は、ＭＡＣその他のデバイスで見られる典型的な機能であり、ここには詳細には記述しない。さらに、一実施形態では、ＯＰＰ３３０はさらに制御信号をＭＡＣ３３５に発行し、ＳＡ値をそのアドレスで置換するようＭＡＣ３３５に通知する。同様に、ＶＬＡＮサポートの場合には、ＯＰＰ３３０は、ＶＬＡＮタグ・フィールド中の値を選択的に除去し、ＣＲＣをパケットから選択的に除去し、ＭＡＣ制御ワード中のＮｏ＿ＣＲＣビットをクリアし、ＭＡＣ３３５にＣＲＣを添付するよう通知する。
出力ＭＡＣ３３５は、受信した制御信号の状態に応じて、選択的にＣＲＣを生成し、出所アドレス・フィールドにそれ自体のアドレスを挿入して、ヘッダ・フィールド置換プロセスを完了する。次いで、修正されたパケットがスイッチング要素に出力される。
第４ａ図および第４ｂ図は、上述のシステムを使用して修正した２つの例示的なパケットの形式を示す簡略図である。第４ａ図は、データ４０２、層４ヘッダ（ＴＣＰヘッダ）４０４、層３ヘッダ（ＩＰヘッダ）４０６、層２ヘッダ（データ経路指定またはＭＡＣヘッダ）４０８、およびＣＲＣ４１０からなるパケットを示している。層２ヘッダは、ＤＡフィールド４１２、ＳＡフィールド４１４、およびパケット型／長さフィールド４１６を含む。層３ヘッダは、生存時間フィールド４１８およびチェックサム・フィールド４２０を含む。第４ｂ図は、ＶＬＡＮでサポートされるパケットを示している。この形式では、層２ヘッダ４０８は修正され、ＶＬＡＮタグとなる追加の４バイト４２２を含む。
次に、第５図に関連して、実行されるプロセスについて大まかに述べる。前述のように、このプロセスは、ハードウェア経路指定およびＶＬＡＮサポートで必要とされるフィールド置換も含めたフィールド置換に適用することができる。ステップ５１０で、ＩＰＰは、入力パケットを受信し、ＩＰＰのＦＩＦＯでこのパケットをバッファリングする。ヘッダのコピーはサーチ・エンジンに送られる。ステップ５１５で、サーチ・エンジンはデータベースをサーチし、パケットのタイプを決定する。タイプ情報および特定のフィールド置換値はＩＰＰに戻される。ステップ５１７で、サーチ・エンジンから供給された情報がヘッダが修正されないことを示す場合には、パケットは変更されずにスイッチング要素から出力される。こうして、ヘッダが変更されるときにしかＣＲＣが再生されないので、終端間のエラー耐性が維持される。ヘッダ・フィールドの置換が必要な場合には、ステップ５２０で、ＩＰＰは、データがＦＩＦＯからパケット・メモリに伝送される際に最初のフィールドの置換を選択的に実行する。置換されるフィールドは、サーチ・エンジンから提供された値、および既知の技術に従って計算された値（例えばＴＴＬ、チェックサム）で置換される。さらに、ＩＰＰは、修正された入力パケットを記憶するパケット・メモリ中の特定のロケーションと関連する制御フィールドに記憶すべき、特定の制御フィールド情報を送る。
ステップ５２５で、ＯＰＰは、パケット・メモリおよび関連する制御フィールド情報にアクセスし、パケットをさらに選択的に修正し、パケットおよび制御情報をＭＡＣに送る。ステップ５３０で、ＭＡＣは、パケットがスイッチング要素から出力される際に、このパケットの特定のフィールドを選択的に修正する。
第６図は、ハードウェアで経路指定される入力パケットについてヘッダ・フィールドの置換を実行するプロセスの一実施形態を示している。ステップ６０５で、入力パケットはＩＰＰで受信され、パケット・ヘッダはＩＰＰのＦＩＦＯで記憶される。ステップ６１０でヘッダがＦＩＦＯに記憶されるので、ステップ６１５で、ヘッダのコピーがサーチ・エンジンに送られ、サーチ・エンジンがデータベースをサーチし、そのパケットが経路指定されるかどうかを決定する。次いで、ＩＰＰは、ステップ６２０でサーチ・エンジンがパケットに関する情報を戻すのを待つ。ステップ６２５で、入力パケットがユニキャスト経路であるとサーチ・エンジンが決定した場合には、サーチ・エンジンは、制御信号ｒｅｐｌａｃｅ＿ＤＡ（宛先アドレス）および制御信号ｒｅｐｌａｃｅ＿ＳＡ（出所アドレス）をＩＰＰに送信し、置換ＤＡを提供し、さらに生存時間（ＴＴＬ）フィールドのオフセットを提供する。ＩＰＰは、制御信号ｒｅｐｌａｃｅ＿ＤＡに応答して、ＤＡフィールドの値をサーチ・エンジンから受信した値で置換し、更新したＴＴＬ値およびチェックサム値を計算し、対応するフィールド中の計算した値を、そのフィールドがパケット・メモリに出力される際に置換する。ＩＰＰは、さらにｒｅｐｌａｃｅ＿ＳＡ信号に応答して、対応する制御フィールド情報をパケット・メモリに入力し、出所アドレスを出力ＭＡＣの出所アドレスで置換すべきであることを示す。ステップ６４５でそれがマルチキャスト経路であることをサーチ・エンジンが示す場合には、サーチ・エンジンは、ステップ６５０で、ＴＴＬオフセットを提供し、ｒｅｐｌａｃｅ＿ＳＡ信号をＩＰＰに送信し、ＩＰＰは、ステップ６４０で、ＴＴＬ値およびチェックサム値を更新し、パケット・メモリと関連する制御フィールドに記憶される制御フィールド情報を生成する。
ステップ６５５で、出力された修正済みのパケットおよび関連する制御フィールド情報は、パケット・メモリに記憶される。ステップ６６０で、ＯＰＰは、パケット・メモリからデータおよび制御フィールド情報を受信し、ＯＰＰは、ステップ６６５で、ｒｅｐｌａｃｅ＿ＳＡ制御フィールドを検出した場合には、制御信号ｒｅｐｌａｃｅ＿ＳＡを出力ＭＡＣに対してアサートする。ステップ６７０で、ＯＰＰは、ＣＲＣに対応するパケットの最後の４バイトを除去し、ＭＡＣ制御ワード中のＮＯ＿ＣＲＣビットをクリアする。ステップ６８０で、ＭＡＣは、制御信号ｒｅｐｌａｃｅ＿ＳＡを検出し、出力パケットの伝送中にパケットのバイト７〜１２をそれ自体のＭＡＣアドレスで置換する。さらに、制御ワードの状態に応じて、ＭＡＣは、パケットのためのＣＲＣを生成する。ステップ６６５でｒｅｐｌａｃｅ＿ＳＡ制御フィールド情報が置換を示さない場合には、ステップ６７５で、ＭＡＣは修正していないパケットを伝送する。
第７ａ図および第７ｂ図は、ＶＬＡＮサポートの場合のプロセスを示している。ステップ７０５、７１０、７１５で、ＩＰＰは入力パケットを受信し、このパケットをバッファリングし、ヘッダをサーチ・エンジンに送る。サーチ・エンジンは、ステップ７２０で、タグ付けに関する情報、すなわちパケットがタグ付けされているかどうか、タグ付けの性質、およびスイッチング要素から出力される前にどのようにしてパケットにタグ付けするかを決定し、待機中のＩＰＰにこれを戻す。パケットがタグ付けされずに到着する、パケットが有効なタグを付けられて到着する、パケットが無効なタグを付けられて到着するといったシナリオも含めた、いくつかのシナリオが考えられる。無効なタグは、特定の状況では、エンド・ノードのＶＬＡＮグループ化ではなく、パケットの優先権情報のみを搬送するために使用される。
ステップ７２５でパケットがタグ付きであり、ステップ７３０でパケットが無効なタグを付けられている場合には、ステップ７３５で、制御信号がサーチ・エンジンからＩＰＰに送信され、インジケータｉｎｓｅｒｔ＿ｔａｇがクリアされ（新しいタグが挿入されないことを示す）、インジケータｒｅｐｌａｃｅ＿ｔａｇがセットされる（タグが置換されることを示す）。ステップ７３０でパケットが有効なタグを付けられており、ステップ７４０でＶＬＡＮの経路指定がサポートされる場合には、ステップ７４５で、インジケータｉｎｓｅｒｔ＿ｔａｇがクリアされ、インジケータｒｅｐｌａｃｅ＿ｔａｇがセットされ、サーチ・エンジンによって決定されたＶＬＡＮの経路指定を表す新しいＶＬＡＮタグがＩＰＰに与えられる。ステップ７４０で、ＶＬＡＮ経路指定がサポートされない場合には、ステップ７５０で、ｉｎｓｅｒｔ＿ｔａｇがクリアされ、ｒｅｐｌａｃｅ＿ｔａｇもクリアされる（タグが挿入も置換もされないことを示す）ことを示す信号がＩＰＰに送信される。
ステップ７２５に戻って、パケットがタグ付けされずに到着した場合には、ステップ７５５で、インジケータｉｎｓｅｒｔ＿ｔａｇがセットされ、インジケータｒｅｐｌａｃｅ＿ｔａｇがクリアされることを示す信号がＩＰＰに発行される。このプロセスの流れをたどると、パケットがタグ付けされていないシナリオおよびパケットが無効なタグを付けられているシナリオでは、ステップ７６０で、サーチ・エンジンから提供されるタグがデータベース中で決められているタグであるかどうかを決定する。データベース中で決められているものである場合には、このタグはステップ７６５でＩＰＰに提供される。このタグがデータベース中で決められているものでない場合には、ステップ７７０でデフォルト・タグが提供される。デフォルト・タグはプログラマブルな値であり、代表的な値は現在の標準で指定された値に従う。
ＩＰＰは、サーチ・エンジンから選択的に提供されるｉｎｓｅｒｔ＿ｔａｇ、ｒｅｐｌａｃｅ＿ｔａｇ、およびＶＬＡＮｔａｇの値の状態に応答して、パケット・ヘッダを選択的に修正し、制御フィールド情報を生成する。修正されたパケットおよび関連する制御フィールド情報は、その後パケット・メモリおよび関連する制御フィールドにそれぞれ記憶される。ステップ７７２で、インジケータｉｎｓｅｒｔ＿ｔａｇがセットされていた場合には、ステップ７７４で、「ｏｒｉｇ＿ｔａｇおよびｍｏｄ＿ｔａｇをともにクリアする」という制御フィールド情報が生成される。ｏｒｉｇ＿ｔａｇは、パケットがタグ付きで到着したことを示す。ｍｏｄ＿ｔａｇは、パケットがタグ付きで到着したが、このタグが修正されていることを示す。さらに、ステップ７７４で、好ましくはパケット・メモリに記憶するためにパケットを出力する際に、サーチ・エンジンから提供されたタグがＩＰＰによってヘッダ中の適切な位置に挿入される。
ステップ７７２に戻って、インジケータｉｎｓｅｒｔ＿ｔａｇがセットされず、ステップ７７６でインジケータｒｅｐｌａｃｅ＿ｔａｇがセットされる場合には、ステップ７７８で、ＩＰＰがヘッダ中のタグをサーチ・エンジンから提供されたタグで置換し、ステップ７８０で、「ｏｒｉｇ＿ｔａｇをセットし、ｍｏｄ＿ｔａｇをクリアする」という制御フィールド情報を生成する。ステップ７７６で、インジケータｒｅｐｌａｃｅ＿ｔａｇがセットされない場合には、ＩＰＰは、次のステップ７８０で、「ｏｒｉｇ＿ｔａｇをセットし、ｍｏｄ＿ｔａｇをクリアする」という制御フィールド情報を生成する。
この実施形態では、ネットワーク・スイッチのＣＰＵはスイッチング要素を介してパケットを伝達することができる。パケットがこのポートを介して到着した場合には、そのパケットには、その状態に関わらずタグ付けすることができない。したがって、インジケータｄｏｎｔ＿ｔａｇが制御フィールド情報としてパケットに与えられる。ステップ７８２に戻って、パケットがホスト伝送プロセス（ｈｏｓｔ  ｔｒａｎｓｍｉｔ  ｐｒｏｃｅｓｓ）（ＨＴＰ）を介して到着した場合には、ｄｏｎｔ＿ｔａｇはＣＰＵから与えられたパケット制御情報と等しくなるようにセットされ、そうでない場合にはステップ７８６でｄｏｎｔ＿ｔａｇはクリアされる。
ステップ７９０で、パケットはパケット・メモリに記憶され、制御フィールド情報は関連する制御フィールドに記憶される。ステップ７９２で、ＯＰＰはパケットおよび制御フィールド情報を取り出し、ステップ７９４で制御フィールド情報を復号する。ＯＰＰは、パケット・メモリから取り出した３つのインジケータ、ｏｒｉｇ＿ｔａｇ、ｍｏｄ＿ｔａｇ、およびｄｏｎｔ＿ｔａｇ、ならびに第４のインジケータｔａｇ＿ｅｎａｂｌｅを復号する。ｔａｇ＿ｅｎａｂｌｅは、出力されるパケットを受信することになるデバイスがＶＬＡＮ経路指定をサポートしないことを示す内部変数である。この変数は、ネットワーク管理機構によって、その基礎をなすネットワーク・トポロジに基づいて決定される。例えば、受信側ノードがＶＬＡＮ経路指定をサポートしない場合には、ｔａｇ＿ｅｎａｂｌｅビットはクリアされる。復号プロセスの結果は、ＯＰＰがタグを除去するかどうか、およびＭＡＣがＣＲＣを生成するかどうかを示す。ＯＰＰは次の表に従って復号を行う。
0004057067.tif 000002
したがって、ステップ７９６で、タグが除去されることになる場合には、ＯＰＰはステップ７９８で、好ましくはタグがＭＡＣに転送される際にこのタグを取り除く。ステップ８００で、ＣＲＣが生成されない場合には、ＯＰＰは、ステップ８０２で、ＣＲＣが生成されないことを示す信号を送信し（例えばｎｏ＿ＣＲＣをセットする）、ＭＡＣはパケットを受信したままで伝送する。ＣＲＣが生成されない場合には、ステップ８０６で、最後の４バイトがＯＰＰによってパケットから取り除かれ、ステップ８０８でＣＲＣを生成するための信号がＭＡＣに送信され（ｎｏ＿ＣＲＣをクリアする）、ステップ８１０で、ＭＡＣはパケットを伝送し、ＣＲＣを生成してパケットの末端に添付する。
フィールド置換のプロセスについて述べた。その他の変形形態も企図される。例えば、このスイッチが複数のスイッチング要素からなり、スイッチング要素間でパケットを転送することができる。スイッチング要素間でパケットが転送されるときには、特定のフィールドが選択的に修正される。
好ましい実施形態に関連して本発明について述べた。前述の説明に照らしてみれば、多数の代替形態、修正形態、変形形態、および使用法は当業者には明らかであろう。
【図１】
0004057067.tif 000003
【図２】
0004057067.tif 000004
【図３】
0004057067.tif 000005
【図４Ａ】
0004057067.tif 000006
【図４Ｂ】
0004057067.tif 000007
【図５】
0004057067.tif 000008
【図６】
0004057067.tif 000009
【図７Ａ】
0004057067.tif 000010
【図７Ｂ】
0004057067.tif 000011