(57)【特許請求の範囲】
【請求項１】
エントリしたフレームの種別を示すエントリフラグ情報と、前記エントリしたフレームの制御情報であるエントリ制御情報とを有するエントリ検索情報を記憶するエントリ検索情報記憶部と、
受信したフレームが有するフレーム制御情報に、フレームの種別に対応する数だけ含まれるフレーム識別子に基づいて前記受信したフレームの種別を示すフレームフラグ情報を生成するフラグ生成部と、
前記フラグ生成部によって生成された前記フレームフラグ情報と前記受信したフレームが有する前記フレーム制御情報の全部または一部とを有する検索キー情報を生成する検索キー生成部と、
前記エントリ検索情報記憶部を制御して、前記検索キー情報が有する前記フレームフラグ情報と前記エントリ検索情報が有する前記エントリフラグ情報とを比較して、比較結果が一致した前記エントリ検索情報について、前記検索キー情報が有する前記フレーム制御情報で検索する検索制御部とを有することを特徴とする通信装置。
【請求項２】
前記検索制御部は、前記エントリ検索情報記憶部を制御して、前記検索キー情報が有する前記フレームフラグ情報と前記エントリ検索情報が有する前記エントリフラグ情報とを比較して、比較結果が一致した前記エントリ検索情報について、当該エントリ検索情報が有する前記エントリ制御情報と前記検索キー情報が有する前記フレーム制御情報とを比較して検索することを特徴とする請求項１記載の通信装置。
【請求項３】
前記フレームフラグ情報は、前記受信したフレームのＶＬＡＮタグの有無を示し、
前記エントリフラグ情報は、前記エントリしたフレームの前記ＶＬＡＮタグの有無を示すことを特徴とする請求項１記載の通信装置。
【請求項４】
前記フレームフラグ情報は、前記受信したフレームの前記ＶＬＡＮタグの有無と共に個数を示し、
前記エントリフラグ情報は、前記エントリしたフレームの前記ＶＬＡＮタグの有無と共に個数を示すことを特徴とする請求項３記載の通信装置。
【請求項５】
前記フレーム制御情報は、前記受信したフレームの上位レイヤのプロトコルを示すフレーム上位プロトコル情報を有し、
前記エントリ制御情報は、前記エントリされたフレームの上位レイヤのプロトコルを示すエントリ上位プロトコル情報を有し、
前記検索制御部は、前記フレーム制御情報が有する前記フレーム上位プロトコル情報と、前記エントリフラグ制御情報が有する前記エントリ上位プロトコル情報とを比較して検索することを特徴とする請求項１記載の通信装置。
【請求項６】
フラグ生成部が、受信したフレームが有するフレーム制御情報に、フレームの種別に対応する数だけ含まれるフレーム識別子に基づいて前記受信したフレームの種別を示すフレームフラグ情報を生成し、
検索キー生成部が、前記フラグ生成部によって生成された前記フレームフラグ情報と前記受信したフレームが有する前記フレーム制御情報の全部または一部とを有する検索キー情報を生成し、
検索制御部が、エントリしたフレームの種別を示すエントリフラグ情報と前記エントリしたフレームの制御情報であるエントリ制御情報とを有するエントリ検索情報を記憶するエントリ検索情報記憶部を制御して、前記検索キー情報が有する前記フレームフラグ情報と、前記エントリ検索情報が有する前記エントリフラグ情報とを比較して、比較結果が一致した前記エントリ検索情報について、前記検索キー情報が有する前記フレーム制御情報で検索することを特徴とする通信制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エントリの検索を行う通信装置および通信制御方法に関する。
【背景技術】
【０００２】
近年、通信事業者等のキャリアネットワークにおいて、Ｅｔｈｅｒｎｅｔ（登録商標）技術を利用したネットワークの需要が高まってきている。また、Ｅｔｈｅｒｎｅｔフレームによるネットワークでは、仮想的なサブネットワークであるＶＬＡＮ（Virtual Local Area Network）技術が広く利用されており、ＶＬＡＮタグを使用して、ユーザ（カスタマ）やキャリアのサービスを識別する方法が一般的に用いられている。このＶＬＡＮで送受信されるフレームが有するＶＬＡＮタグは、ＴＰＩＤ（Tag Protocol Identifier：タグ・プロトコル識別子）およびＶＬＡＮ  ＩＤ等のフレームの種別を示す情報を有している。例えば、ＥｔｈｅｒｎｅｔフレームにこのＶＬＡＮタグを複数用いることにより、複数のＶＬＡＮタグを連続してスタック（stack）することが可能である。
【０００３】
また、Ｅｔｈｅｒｎｅｔフレームを転送する通信装置におけるこのＶＬＡＮタグを複数用いたＥｔｈｅｒｎｅｔフレームのエントリに、連想メモリおよびアソシエイトメモリを用いることができる。連想メモリにＶＬＡＮタグを複数段含むＥｔｈｅｒｎｅｔフレームのエントリを登録する場合、ＶＬＡＮタグを１段有するフレームである１段タグフレームや、２段タグのフレームを受信すると、例えば、この受信したフレームの先頭から２０バイトを取り出して、取り出した部分と受信ポート番号とを結合した検索キーが生成される。
【０００４】
しかし、１段タグのフレームのエントリや２段タグのフレームのエントリと受信したフレームの検索キーとがそれぞれ一致することが判断される前に、受信ポート番号以外がマスクされているタグ無しフレームのエントリと受信したフレームの検索キーとが比較されてしまうことになる。すると、検索キーと本来は一致していないエントリとが誤って“一致する”と判断されてしまい、適切な検索ができない場合が生じ得る。また、同様に、２段タグと判断されるべきフレームの検索キーが、先に判断が行われる位置にエントリが格納されていた１段タグと比較され、誤って“一致する”と判断されてしまう場合も生じ得る。
【０００５】
これを防止するために、連想メモリのエントリ構成を、マスク領域が少なく検索対象となるマスク領域以外の領域が多いエントリが若番のアドレスに配置され、マスク領域が多いエントリが老番のアドレスに配置されるように、２段タグのエントリ、１段タグのエントリ、タグ無しのフレームのエントリの順番に格納されているように整列する。そして、２段タグ、１段タグ、タグ無しの順に検索キーと一致するか否かの判断が行われるようにする必要がある。このように通信装置の連想メモリのエントリの設定を行う際は、アドレス順序を考慮して行われる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−１５９０１９号公報
【特許文献２】特開２００８−２２７６９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ここで、上記のような通信装置では、一般的に新規のユーザフレームのエントリの登録や不要となったユーザフレームのエントリの削除など、エントリの追加や削除が頻繁に行われる。従って、フレームの種別の一例である、タグ無しのフレームのエントリ、１段タグのフレームのエントリ、２段タグのフレームのエントリの各エントリが適切に判断されるように、ソフトウェアは各フレームのエントリの追加や削除に応じて、エントリのアドレス内の適切な配置を維持するために、エントリのソート（並べ替え）を行う必要がある。これはソフトウェアやＣＰＵ（Central Processing Unit）にとって複雑な処理となり、且つ負荷の高い処理となる。また、収容するエントリ数が多い場合、適切な並べ替えが完了するまでに時間を要することになる。これらにより、場合によっては、処理の負荷が増加したり、エントリの登録に要する時間が増加したりして、通信の遅延や停止等の影響を与える場合もあるという問題点があった。
【０００８】
本件はこのような点に鑑みてなされたものであり、エントリの検索処理の負荷を低減する通信装置および通信制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、開示の通信装置および通信制御方法が提供される。開示の通信装置では、エントリ検索情報記憶部は、エントリしたフレームの種別を示すエントリフラグ情報と、エントリしたフレームの制御情報であるエントリ制御情報とを有するエントリ検索情報を記憶する。フラグ生成部は、受信したフレームが有するフレーム制御情報に基づいて受信したフレームの種別を示すフレームフラグ情報を生成する。検索キー生成部は、フラグ生成部によって生成されたフレームフラグ情報と受信したフレームが有するフレーム制御情報の全部または一部とを有する検索キー情報を生成する。検索制御部は、エントリ検索情報記憶部を制御して、検索キー情報が有するフレームフラグ情報とエントリ検索情報が有するエントリフラグ情報とを比較して、比較結果が一致したエントリ検索情報について、検索キー情報が有するフレーム制御情報で検索する。
【発明の効果】
【００１０】
開示の通信装置および通信制御方法によれば、エントリフラグ情報およびフレームフラグ情報により、検索するエントリを特定することが可能になるので、エントリのアドレスの順序を意識する必要が無くなり、任意のアドレスに任意のエントリを設定することが可能になるので、エントリのソートが不要になる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施の形態を示す図である。
【図２】第２の実施の形態の通信システムの全体構成を示す図である。
【図３】第２の実施の形態のスイッチのハードウェア構成を示す図である。
【図４】第２の実施の形態のフレームのデータ構造例を示す図である。
【図５】第２の実施の形態のスイッチの機能を示すブロック図である。
【図６】第２の実施の形態のエントリ検索テーブルのデータ構造例を示す図である。
【図７】第２の実施の形態の宛先テーブルのデータ構造例を示す図である。
【図８】第２の実施の形態のフラグ生成処理の手順を示すフローチャートである。
【図９】第３の実施の形態のスイッチの機能を示すブロック図である。
【図１０】第３の実施の形態のエントリ検索テーブルのデータ構造例を示す図である。
【図１１】第３の実施の形態のフラグ生成処理の手順を示すフローチャートである。
【図１２】第４の実施の形態のスイッチの機能を示すブロック図である。
【図１３】第４の実施の形態のＴＰＩＤ設定テーブルのデータ構造例を示す図である。
【図１４】第４の実施の形態のフラグ生成処理の手順を示すフローチャートである。
【図１５】第５の実施の形態のスイッチの機能を示すブロック図である。
【図１６】第５の実施の形態のエントリ検索テーブルのデータ構造例を示す図である。
【図１７】第５の実施の形態の宛先テーブルのデータ構造例を示す図である。
【発明を実施するための形態】
【００１２】
以下、実施の形態について、図面を参照して説明する。
［第１の実施の形態］
図１は、第１の実施の形態を示す図である。図１に示す通信装置１は、フラグ生成部１１、検索キー生成部１２、検索制御部１３、エントリ検索情報記憶部１４を有する。また、通信装置１は、検索制御部１３による検索結果に応じて受信したフレームの転送先を判定する受信フレーム判定部１５を有する。
【００１３】
通信装置１は、ユーザが使用する端末装置（図示省略）から送信されるフレームやパケット等のデータを受信し、データ内に格納されたアドレス情報等の制御情報に基づいて転送する処理を行う。例えば、端末装置から送信されたＥｔｈｅｒｎｅｔフレームやＩＰフレームを転送する場合、通信装置１は、Ｅｔｈｅｒｎｅｔフレーム内に格納されたＭＡＣアドレス（Media Access Control address）やＩＰフレーム内に格納された ＩＰアドレス（Internet Protocol address）等に基づいて転送する処理を行う。このデータは、通信装置１が接続されているネットワークにおいて分割されて転送される。具体的には、通信装置１がＬ２（Layer 2）スイッチであれば、分割されたデータはフレーム（frame）である。通信装置１がＬ３（Layer 3）スイッチであれば、分割されたデータはパケット（packet）である。本実施の形態では、転送されるデータとしてフレームを例示して説明する。しかし、これに制限されず、転送されるデータとしてはパケットであってもよく、分割されないデータであってもよい。
【００１４】
フラグ生成部１１は、受信したフレームが有するフレーム制御情報に基づいて受信したフレームの種別を示すフレームフラグ情報を生成する。
検索キー生成部１２は、フラグ生成部１１によって生成されたフレームフラグ情報と受信したフレームが有するフレーム制御情報の全部または一部とを有する検索キー情報を生成する。
【００１５】
検索制御部１３は、エントリ検索情報記憶部１４を制御して、検索キー情報が有するフレームフラグ情報とエントリ検索情報が有するエントリフラグ情報とを比較して、比較結果が一致したエントリ検索情報について、検索キー情報が有するフレーム制御情報で検索する。
【００１６】
エントリ検索情報記憶部１４は、エントリしたフレームの種別を示すエントリフラグ情報と、エントリしたフレームの制御情報であるエントリ制御情報とを有するエントリ検索情報を記憶する。
【００１７】
このようにして、受信したフレームの種別をチェックし、種別に応じたフレームフラグ情報を生成する。そして、そのフレームフラグ情報を、エントリの検索を行う検索キーに含ませる。また、エントリには、フレームの種別を示すエントリフラグ情報を含ませ、これらを用いて検索を行う。これにより、エントリフラグ情報およびフレームフラグ情報により、検索するエントリを特定することが可能になるので、エントリのアドレス順序性を意識する必要が無くなり、任意のアドレスに任意のエントリを設定することが可能になるので、エントリのソートが不要になる。
【００１８】
次に、上記の通信装置のさらに具体的な実施の態様について説明する。
なお、以下の実施の形態では通信装置をスイッチとして、特にＭＡＣアドレスに基づいてデータリンク層のフレームを中継するＬ２スイッチを例示しして説明する。なお、これに制限されず、本実施形態は、通信装置として、例えばＩＰアドレスに基づいてネットワーク層のパケットを中継するＩＰルータやＬ３スイッチにも適用することができる。また、ＯＳＩ（Open Systems Interconnection）参照モデルにおけるＬ２のデータの単位を、パケットと呼ぶこともあるが、以下の実施の形態では、説明の便宜上、すべてフレームに統一して表現する。
【００１９】
［第２の実施の形態］
次に、第２の実施の形態について説明する。
図２は、第２の実施の形態の通信システムの全体構成を示す図である。本実施の形態の通信システムは、端末装置間でデータの送受信を行えるように、複数のＬ２スイッチがデータリンク層のフレームを中継するものである。
【００２０】
図２に示す通信システムは、スイッチ１００，１００ａ，１００ｂ，１００ｃ，１００ｄ，１００ｅ，１００ｆ，１００ｇと端末装置６１，６２，６３，６４，６５，６６，６７，６８とで構成される。スイッチ１００，１００ａ，１００ｂ，１００ｃ，１００ｄ，１００ｅ，１００ｆ，１００ｇは、Ｌ２スイッチである。端末装置６１，６２，６３，６４，６５，６６，６７，６８は、ユーザが使用する端末装置である。スイッチ１００ａ，１００ｂ，１００ｃ，１００ｄ，１００ｅ，１００ｆ，１００ｇは、スイッチ１００と同様に構成されており、同等の機能を有する。
【００２１】
スイッチ１００は、スイッチ１００ａ，１００ｂ，１００ｃと接続されている。スイッチ１００ａは、スイッチ１００，１００ｂ，１００ｃと接続されている。スイッチ１００ｂは、スイッチ１００，１００ａ，１００ｃ，１００ｄ，１００ｅと接続されている。スイッチ１００ｃは、スイッチ１００，１００ａ，１００ｂ，１００ｄ，１００ｅと接続されている。スイッチ１００ｄは、スイッチ１００ｂ，１００ｃ，１００ｅ，１００ｆ，１００ｇと接続されている。スイッチ１００ｅは、スイッチ１００ｂ，１００ｃ，１００ｄ，１００ｆ，１００ｇと接続されている。スイッチ１００ｆは、スイッチ１００ｄ，１００ｅ，１００ｇと接続されている。スイッチ１００ｇは、スイッチ１００ｄ，１００ｅ，１００ｆと接続されている。
【００２２】
端末装置６１，６２は、スイッチ１００と接続されている。端末装置６３，６４は、スイッチ１００ａと接続されている。端末装置６５，６６は、スイッチ１００ｆと接続されている。端末装置６７，６８は、スイッチ１００ｇと接続されている。２つのスイッチ間またはスイッチと端末装置の間は、１つ以上の物理リンク（ネットワークケーブル）で接続されている。
【００２３】
スイッチ１００，１００ａ，１００ｂ，１００ｃ，１００ｄ，１００ｅ，１００ｆ，１００ｇは、フレームに含まれるアドレスに従って、送信元の端末装置から宛て先の端末装置まで、フレームを中継する。具体的には、端末装置６１が端末装置６８へフレームを送信する場合、例えば、スイッチ１００、スイッチ１００ｃ、スイッチ１００ｄ、スイッチ１００ｇの順にフレームが中継される。
【００２４】
図３は、第２の実施の形態のスイッチのハードウェア構成を示す図である。図３は、スイッチ１００の内部構成を示したものであるが、スイッチ１００ａ，１００ｂ，１００ｃ，１００ｄ,１００ｅ，１００ｆ，１００ｇも同様の構成で実現できる。スイッチ１００は、ＣＰＵ１０１、インタフェースカード１０２ａ，１０２ｂ，１０２ｃ，１０２ｄ、スイッチカード１０３、テーブル記憶メモリ１０４、ポート監視部１０５、バス１０６を有している。
【００２５】
ＣＰＵ１０１は、スイッチ１００全体を制御している。ＣＰＵ１０１は、プログラムによる処理を実行する。ＣＰＵ１０１は、図示しないメモリに保持されたデータを用いて、同じくメモリに保持されたプログラムを実行する。ＣＰＵ１０１は、図示しない通信インタフェースを介して、管理者が使用する図示しない管理用端末装置から送信されるコマンドを受信するとともに、コマンドに対する実行結果を管理用端末装置に応答する。
【００２６】
テーブル記憶メモリ１０４は、複数のテーブルを記憶している。テーブル記憶メモリ１０４に記憶されるテーブルには、論理リンクの構成を管理するテーブル、論理リンク内でのフレームの転送先を決定するためのテーブル、フレームの転送先を示す情報を格納するテーブルが含まれる。
【００２７】
バス１０６には、ＣＰＵ１０１、インタフェースカード１０２ａ，１０２ｂ，１０２ｃ，１０２ｄ、スイッチカード１０３、テーブル記憶メモリ１０４、ポート監視部１０５が接続されている。
【００２８】
インタフェースカード１０２ａ，１０２ｂ，１０２ｃ，１０２ｄは、それぞれ複数個（例えば、８個）の通信ポートを有している。それぞれの通信ポートには、１つの物理リンクを接続できる。インタフェースカード１０２ａ，１０２ｂ，１０２ｃ，１０２ｄは、それぞれの通信ポートを監視してフレームを取得する。なお、インタフェースカード１０２ａ，１０２ｂ，１０２ｃ，１０２ｄは、複数の通信ポートに同時にフレームが到来した場合に備えて、フレームを一時的に保持するバッファを内部に有している。そして、インタフェースカード１０２ａ，１０２ｂ，１０２ｃ，１０２ｄは、取得したフレームをスイッチカード１０３に送る。
【００２９】
スイッチカード１０３は、フレームの宛先を示すテーブルを有している。スイッチカード１０３は、テーブルに、受信したフレームの送信元アドレスと、そのフレームが到来した通信ポートまたは論理リンクの識別情報とを対応付けて記憶している。このテーブルの内容は、事前に静的に設定されたものである。
【００３０】
そして、スイッチカード１０３は、インタフェースカード１０２ａ，１０２ｂ，１０２ｃ，１０２ｄのいずれかからフレームを受け取ると、テーブルを参照して、そのフレームの転送先を決定する。ここで、決定した転送先が論理リンクである場合、スイッチカード１０３は、テーブル記憶メモリ１０４に記憶されたテーブルを参照して、転送に使用する具体的なインタフェースカード１０２ａ，１０２ｂ，１０２ｃ，１０２ｄおよび通信ポートを決定する。その後、スイッチカード１０３は、フレームを、決定したインタフェースカード１０２ａ，１０２ｂ，１０２ｃ，１０２ｄに送る。
【００３１】
フレームを受け取ったインタフェースカード１０２ａ，１０２ｂ，１０２ｃ，１０２ｄは、受け取ったフレームを、決定された通信ポートから送信先に送出する。
ポート監視部１０５は、インタフェースカード１０２ａ，１０２ｂ，１０２ｃ，１０２ｄの通信ポートを監視する。そして、ポート監視部１０５は、インタフェースカード１０２ａ，１０２ｂ，１０２ｃ，１０２ｄの通信ポートに接続された物理リンクの故障や復旧を検出すると、ＣＰＵ１０１にその旨を通知する。
【００３２】
図４は、第２の実施の形態のフレームのデータ構造例を示す図である。図４に示すフレーム３０，３１，３２が、インタフェースカード１０２ａ，１０２ｂ，１０２ｃ，１０２ｄの通信ポートを介して、スイッチ１００等との間で送受信される。
【００３３】
フレーム３０は、ＶＬＡＮタグを有さないタグ無しのフレームである。フレーム３１は、１段のＶＬＡＮタグを有する１段タグのフレームである。フレーム３２は、２段のＶＬＡＮタグを有する２段タグのフレームである。これらのフレーム３０〜３２は、スイッチ１００における同一の物理ポート内に混在させて転送される場合がある。
【００３４】
フレーム３０は、宛先ＭＡＣアドレス（ＭＡＣ  ＤＡ：Media Access Control address Destination Address）、送信元ＭＡＣアドレス、Ｅ−ＴＹＰＥ（EtherType）、ペイロードおよびＦＣＳ（Frame Check Sequence）を有する。フレーム３１，３２は、さらにそれぞれ１段または２段のＶＬＡＮタグを有する。
【００３５】
宛先ＭＡＣアドレスは、送信先の端末装置が有する通信インタフェースを一意に識別するアドレスである。送信元ＭＡＣアドレスは、送信元の端末装置が有する通信インタフェースを一意に識別するアドレスである。ＶＬＡＮタグは、ＴＰＩＤおよびＶＬＡＮ  ＩＤを有している。図４のフレーム３２に示すように、複数のＶＬＡＮタグを連続してスタックすることも可能である。Ｅ−ＴＹＰＥは、使用するプロトコルを指定するフィールドである。Ｅ−ＴＹＰＥは、後段のペイロードに格納されるメッセージタイプが格納される。例えば、０ｘ０８００はＩＰｖ４フレームを示す。ペイロードは、ＩＰｖ４フレーム等の上位レイヤのメッセージが格納される。ペイロードは、例えば、送受信するデータ本体であり、ＩＰパケットを所定のデータ長に分割したものである。ＦＣＳは、受信したフレームの誤りを検出するために用いられる値である。
【００３６】
ＴＰＩＤは、ＶＬＡＮ  ＩＤが後段に格納されていることを示すと共に、当該フレームの種類（例えば、ＶＬＡＮのフレームであるか通常のフレームであるか）を示す値である。ＴＰＩＤは、一般的にＩＥＥＥ８０２．１ｑで規定される０ｘ８１００が設定される。ＶＬＡＮ  ＩＤは、１つのネットワークを複数の論理的なネットワークに分割して運用する場合に、個々の論理的なネットワークに割り当てられる一意に定められた値である。ＶＬＡＮ  ＩＤには例えば、ユーザを特定するためのＶＬＡＮ  ＩＤ値が格納される。
【００３７】
図４に示す各種類のフレームが混在するスイッチ１００のＥｔｈｅｒｎｅｔの物理ポートにおいて、一般的にタグ無しフレーム（フレーム３０）は、特定のユーザ専用のフレームとして使用され、または、スイッチ間で送受信される制御フレームとして使用される。
【００３８】
ＶＬＡＮタグを有するフレーム（フレーム３１，３２）は、ＶＬＡＮ  ＩＤフィールドにユーザを識別するためのＶＬＡＮ  ＩＤが格納される。例えば、ユーザＡにはＶＬＡＮ  ＩＤ＝１００を割り当て、ユーザＢにはＶＬＡＮ  ＩＤ＝２００を割り当てることができる。このように、異なるユーザに対して異なるＶＬＡＮ  ＩＤを割り当てることにより、ネットワーク上でＶＬＡＮ  ＩＤによるユーザの識別を行うことが可能になる。
【００３９】
また２段タグフレーム（フレーム３２）は、下位ネットワークのフレームを上位ネットワークで転送するような場合において使用される。一般的に２段目のＶＬＡＮタグは、下位ネットワークのユーザを識別するためのタグや管理用タグとして使用される。また、一般的に１段目のＶＬＡＮタグは、上位ネットワークにおけるユーザを識別するためのタグや管理用タグとして使用される。
【００４０】
また、このような場合、下位ネットワークのフレームから上位ネットワークへの入り口において、外側タグとして、上位ネットワーク管理用のＶＬＡＮタグ（例えば、フレーム３２における２段目のＶＬＡＮタグ）が新たに付与される。さらに、上位ネットワークから下位ネットワークへの出口において、上位ネットワーク管理用のＶＬＡＮタグとして付与された、外側タグが削除される。
【００４１】
なお、フレームのデータ構造は、ネットワークの運用形態等に応じて、種々の変形例が考えられる。また、図４に示したもの以外のヘッダ情報が付加される場合もある。
図５は、第２の実施の形態のスイッチの機能を示すブロック図である。なお、図５ではスイッチ１００を示しているが、他のスイッチ１００ａ，１００ｂ，１００ｃ，１００ｄ，１００ｅ，１００ｆ，１００ｇもスイッチ１００と同様の機能を持たせることにより実現できる。
【００４２】
図５は、インタフェースカード１０２ａによってフレームが受信され、スイッチカード１０３を介してインタフェースカード１０２ｂ，１０２ｃ，・・・が有するポート＃１〜＃Ｎによって転送される時のスイッチ１００の動作を示す。
【００４３】
インタフェースカード１０２ａは、フレーム受信部１２１、フラグ生成部１２２、検索キー生成部１２３、受信フレーム判定部１２４、連想メモリアクセス制御部１２５、連想メモリ１２６、アソシエイトメモリアクセス制御部１２７、アソシエイトメモリ１２８を有する。
【００４４】
インタフェースカード１０２ａは、接続されている他の通信装置や端末装置等の通信機器と通信する回線ポート（例えば、ポート＃１）を収容しており、通信機器とのインタフェース機能、受信フレーム処理、送信フレーム処理等を提供する。インタフェースカード１０２ａは、スイッチ１００に対して着脱可能としてもよく、スイッチ１００やスイッチ１００のマザーボードと一体化してもよい。
【００４５】
フレーム受信部１２１は、インタフェースカード１０２ａが有する各受信ポート（例えば、ポート＃１〜＃Ｎ）の物理レイヤおよびＭＡＣレイヤの終端を行う。ＭＡＣレイヤでは、受信したフレームのＦＣＳチェック等を行い、ＦＣＳエラーが検出されたフレームは廃棄し、エラーが検出されなかったフレームは受信する。このフレームは、スイッチ１００が接続されているネットワークを用いて統計多重化により転送されるユーザデータである。
【００４６】
フラグ生成部１２２は、受信したフレームが有するフレーム制御情報に基づいて、受信したフレームの種別を示すフラグ情報であるフレームフラグ情報を生成する。フレームフラグ情報は、受信したフレームのＶＬＡＮタグの有無および個数を示す。フラグ生成部１２２は、受信したフレームのＴＰＩＤが設定される領域の値が所定の値と一致する場合には、受信したフレームはＶＬＡＮタグを有すると判定してフレームフラグ情報を生成する。フラグ生成部１２２は、受信フレームのＶＬＡＮタグのタグ段数をチェックし、タグ段数に応じてフレームフラグ情報の値を決定する。生成されたフレームフラグ情報は受信フレームと共に検索キー生成部１２３に送信される。
【００４７】
検索キー生成部１２３は、フラグ生成部１２２によって生成されたフレームフラグ情報と受信したフレームが有するフレーム制御情報の全部または一部とを有する検索キー情報を生成する。
【００４８】
検索キー生成部１２３は、受信したフレームから制御情報を取得する。このとき、検索キー生成部１２３は、受信したフレームの先頭から２０バイト目までの、２０バイト分のデータを切り出して制御情報を取得し、取得した制御情報をフラグ生成部１２２から受信したフレームフラグ情報および受信したポート番号と結合して、連想メモリアクセス制御部１２５に対して連想メモリ１２６の検索キーとして送信する。
【００４９】
受信フレーム判定部１２４は、フレーム受信部１２１で受信したフレームについて、上記検索の結果に基づいて、送信先の判定や廃棄の判定等、受信したフレームの制御を行う。受信フレーム判定部１２４は、アソシエイトメモリアクセス制御部１２７から送信された宛先情報に基づいて受信したフレームの宛先を判定する。また、受信フレーム判定部１２４は、宛先情報が有する受信有効フラグが受信を拒否することを示す場合には、受信したフレームを廃棄する。
【００５０】
連想メモリアクセス制御部１２５は、検索キー生成部１２３から送信された連想メモリ１２６に対する検索と、ＣＰＵ１０１から連想メモリ１２６に対するアクセスとの調停制御を行う。
【００５１】
連想メモリアクセス制御部１２５は、連想メモリ１２６を制御して、検索キー情報が有するフレームフラグ情報とエントリ検索情報が有するエントリフラグ情報とを比較して、比較結果が一致したエントリ検索情報について、そのエントリ検索情報が有するエントリ制御情報と検索キー情報が有するフレーム制御情報とを比較して検索する。連想メモリアクセス制御部１２５は、検索制御部として機能する。
【００５２】
連想メモリ１２６は、エントリしたフレームの種別を示すフラグ情報であるエントリフラグ情報と、エントリしたフレームの制御情報であるエントリ制御情報とを有するエントリ検索情報を記憶する。エントリフラグ情報は、エントリしたフレームのＶＬＡＮタグの有無および個数を示す。連想メモリ１２６は、連想メモリアクセス制御部１２５から送信された検索キーによる検索を実行して、一致するエントリがあった場合には、そのエントリが格納されているアドレスをアソシエイトメモリアクセス制御部１２７に送信する。この送信されたアドレスをインデックスとして、アソシエイトメモリ１２８のエントリを読み出すことが可能となる。連想メモリ１２６は、エントリ検索情報記憶部として機能する。なお、本実施の形態では連想メモリ１２６を用いているが、これに限らず、ＳＲＡＭ（Static Random Access Memory）等、他の方式の記憶装置を用いてもよい。
【００５３】
アソシエイトメモリアクセス制御部１２７は、連想メモリ１２６からのアクセスと、ＣＰＵ１０１からアソシエイトメモリ１２８に対するアクセスとの調停制御を行う。また、アソシエイトメモリアクセス制御部１２７は、一連の検索処理により連想メモリ１２６から検索されたエントリ検索情報に応じて、アソシエイトメモリ１２８に記憶されている受信したフレームの宛先情報を受信フレーム判定部１２４に送信する。アソシエイトメモリアクセス制御部１２７は、宛先制御部として機能する。
【００５４】
アソシエイトメモリ１２８は、受信したフレームの宛先を示す宛先情報を記憶する。宛先情報は、受信したフレームについて受信を許可するかまたは受信を拒否するかを示す受信有効フラグを有する。アソシエイトメモリ１２８は、宛先情報記憶部として機能する。なお、アソシエイトメモリ１２８は、ＳＲＡＭで構成されるが、これに限らず、ＤＲＡＭ（Dynamic Random Access Memory）等、他の方式の記憶装置を用いてもよい。
【００５５】
インタフェースカード１０２ｂ，１０２ｃ，・・・は、インタフェースカード１０２ａと同様に構成され、同様の機能を有する。
スイッチカード１０３は、受信フレーム判定部１２４の判定結果に基づいて、ユーザフレームを受信したインタフェースカードから送信するインタフェースカードに転送する。これに基づいて、転送されたインタフェースカードのポートからフレームが出力される。
スイッチカード１０３は、スイッチ１００においてインタフェースカード１０２ａ等とデータ信号で接続されており、インタフェースカード１０２ａ等の間のフレーム転送の切り替えを行う。スイッチカード１０３は、スイッチ１００に対して着脱可能としてもよく、スイッチ１００やスイッチ１００のマザーボードと一体化してもよい。
【００５６】
図６は、第２の実施の形態のエントリ検索テーブルのデータ構造例を示す図である。図６に示すエントリ検索テーブル１２６ａは、連想メモリ１２６に記憶されている、スイッチ１００で受信したフレームのエントリの構成を示す。エントリ検索テーブル１２６ａは、スイッチ１００で受信するフレームの検索キーと比較される各エントリの検索条件を示すエントリ検索情報を記憶するテーブルである。エントリ検索テーブル１２６ａには、“アドレス”、“タグ無しフラグ”フィールド、“１段タグフラグ”フィールド、“２段タグフラグ”フィールド、“受信ポート番号”フィールド、“宛先ＭＡＣアドレス”フィールド、“送信元ＭＡＣアドレス”フィールド、“ＴＰＩＤ”フィールド（１段目）、“ＶＬＡＮ  ＩＤ”フィールド（１段目）、“ＴＰＩＤ”フィールド（２段目）、“ＶＬＡＮ  ＩＤ”フィールド（２段目）が設けられている。各フィールドの横方向に並べられた情報同士がエントリ検索情報として互いに関連付けられている。
【００５７】
“アドレス”は、連想メモリ１２６における各エントリ検索情報が格納されているアドレスである。
“タグ無しフラグ”フィールド、“１段タグフラグ”フィールド、”２段タグフラグ”フィールドは、エントリの検索条件であるＶＬＡＮタグの有無および段数を示すエントリフラグ情報が設定される各１ビットの領域である。エントリのフレームがタグ無しであれば、タグ無しフラグに“１”が設定される。エントリのフレームが１段タグであれば、１段タグフラグに“１”が設定される。エントリのフレームが２段タグであれば、２段タグフラグに“１”が設定される。
【００５８】
“受信ポート番号”フィールドは、エントリの検索条件であるフレームを受信した受信ポート番号を示す１バイトの領域である。
“宛先ＭＡＣアドレス”フィールドは、エントリの検索条件であるスイッチ１００で受信したフレームに示されている宛先ＭＡＣアドレスを示す６バイトの領域である。“送信元ＭＡＣアドレス”フィールドは、エントリの検索条件であるスイッチ１００で受信したフレームに示されている送信元ＭＡＣアドレスを示す６バイトの領域である。“ＴＰＩＤ”フィールド（１段目）は、エントリの検索条件である１段目のＶＬＡＮタグのＴＰＩＤの値を示す２バイトの領域である。“ＶＬＡＮ  ＩＤ”フィールド（１段目）は、エントリの検索条件である１段目のＶＬＡＮタグのＶＬＡＮ  ＩＤの値を示す２バイトの領域である。“ＴＰＩＤ”フィールド（２段目）は、エントリの検索条件である２段目のＶＬＡＮタグのＴＰＩＤの値を示す２バイトの領域である。“ＶＬＡＮ  ＩＤ”フィールド（２段目）は、エントリの検索条件である２段目のＶＬＡＮタグのＶＬＡＮ  ＩＤの値を示す２バイトの領域である。
【００５９】
本実施の形態では、図６に示すエントリ検索テーブル１２６ａにおいて、上記のように、最初の３ビットは、“タグ無しフラグ”フィールド、“１段タグフラグ”フィールド、”２段タグフラグ”フィールドのエントリフラグ情報であり、次の１バイトは、受信ポート番号である。そして、残り２０バイト（宛先ＭＡＣアドレスフィールドからＶＬＡＮ  ＩＤフィールド（２段目）まで）は、スイッチ１００で受信したフレームの先頭から２０バイト分のデータに対応するものである。このエントリ検索テーブル１２６ａに示された各エントリのエントリフラグ情報および宛先ＭＡＣアドレスフィールドからＶＬＡＮ  ＩＤフィールド（２段目）までを、スイッチ１００で受信したフレームについて、フラグ生成処理で生成されたフラグおよび先頭から２０バイト分のデータである検索キーと比較することにより、フレームの検索が行われる。
【００６０】
また、エントリ検索テーブル１２６ａにおいて、“−”はマスクされた領域を示す。マスクは、検索キーにおいてその領域がフレームとの比較の対象としないことを示しており、フレーム側においてマスクに対応する領域がいかなる値であっても、当該領域は一致しているものと判定される。また、連想メモリ１２６は、ビット単位に比較対象の制御が可能である。
【００６１】
エントリ検索テーブル１２６ａの例では、アドレス１００にタグ無しフレームのエントリが登録され、アドレス１０１に１段タグのフレームのエントリ（ＴＰＩＤ＝０ｘ８１００、ＶＬＡＮ  ＩＤ＝１００）が登録されている。アドレス１０２に２段タグのフレームのエントリ（１段目のタグ（外側タグ）のＴＰＩＤ＝０ｘ８１００、１段目のタグのＶＬＡＮ  ＩＤ＝１００、２段目のタグ（内側タグ）のＴＰＩＤ＝０ｘ８１００、２段目のタグのＶＬＡＮ  ＩＤ＝２００）が登録されている。
【００６２】
また、連想メモリ１２６の検索キーによる検索は、若番アドレスから老番アドレスへ順に実施され、完全一致するエントリが見つかった場合、その時点で検索処理は終了し、そのエントリが格納されている連想メモリ１２６のアドレス値が連想メモリ１２６より出力される。
【００６３】
最終アドレスには、全マスクが設定された最終エントリを設定しておくものとする。これにより、受信したフレームに一致するエントリが登録されていない場合でも、受信したフレームを必ず最終アドレスのエントリに一致すると判定することが可能である。これに従い、受信したフレームの検索キーと比較して、連想メモリ１２６から送信される検索結果のアドレスが最終アドレスである場合には、「受信したフレームは、一致するエントリが無い」と判断される。
【００６４】
本実施の形態では、エントリ検索テーブル１２６ａが有するエントリフラグ情報により、例えば１段タグ（ＴＰＩＤ＝０ｘ８１００、ＶＬＡＮ  ＩＤ＝１００）のフレームや２段タグ（１段目のタグのＴＰＩＤ＝０ｘ８１００、１段目のタグのＶＬＡＮ  ＩＤ＝１００、２段目のタグのＴＰＩＤ＝０ｘ８１００、２段目のタグのＶＬＡＮ  ＩＤ＝２００）のフレームを受信し、受信したフレームの検索キーによって連想メモリ１２６が検索された場合に、タグ無し、１段タグ、２段タグではそれぞれ検索時に制御情報まで比較されるエントリフラグ情報が異なるため、１段タグや２段タグのフレームの検索キーが、タグ無しのフレームのエントリと一致することは無い。また、同様に、２段タグのフレームを受信し、受信したフレームの検索キーによって連想メモリ１２６が検索された場合に、検索キーが１段タグのフレームのエントリと一致することは無い。
【００６５】
このように本実施の形態では、フラグ生成処理によって、受信したフレームについて予めＶＬＡＮタグのタグ段数がチェックされ、ＶＬＡＮタグの段数に応じたフレームフラグ情報が生成される。そして、生成されたフレームフラグ情報が検索キーに含まれる。これにより、連想メモリ１２６のエントリ検索テーブル１２６ａに登録されるエントリのアドレスの順序を意識する必要が無くなるので、連想メモリ１２６の任意のアドレスに任意のエントリを設定することが可能であり、この場合にもエントリのソートが不要になる。
【００６６】
また、エントリ検索テーブル１２６ａに示すように、最終エントリには全マスクのエントリを設定する。これにより、連想メモリ１２６における他のいずれのエントリにも一致しないフレームが存在する場合にも、そのようなフレームが最終エントリに一致したことにより未登録フレームと判定して廃棄することが可能になる。
【００６７】
なお、図６は、インタフェースカード１０２ａが有する連想メモリ１２６に記憶されているエントリ検索テーブル１２６ａを示したものであるが、インタフェースカード１０２ｂ，１０２ｃ，・・・が有するエントリ検索テーブル（図示省略）も同様の構成で実現できる。
【００６８】
図７は、第２の実施の形態の宛先テーブルのデータ構造例を示す図である。図７に示す宛先テーブル１２８ａは、アソシエイトメモリ１２８に記憶されている、スイッチ１００で受信したフレームの宛先を示す宛先情報を記憶するテーブルである。宛先テーブル１２８ａには、“アドレス”、“受信有効フラグ”フィールド、“宛先カード情報”フィールド、“宛先ポート情報”フィールドが設けられている。各フィールドの横方向に並べられた情報同士が宛先情報として互いに関連付けられている。
【００６９】
“アドレス”は、アソシエイトメモリ１２８における各宛先情報が格納されているアドレスである。
“受信有効フラグ”フィールドには、エントリ検索テーブル１２６ａにおいてそのアドレスに対応するエントリ検索情報と検索キーとを比較して、検索キーが一致したインタフェースカード１０２ａで受信したフレームについて受信の許可または拒否を示すフラグが設定される。検索キーが、アドレスに対応するエントリ検索情報と一致したフレームについて、そのフレームの受信を許可する場合には、有効を示す値（例えば、“１”）が設定される。受信有効フラグに有効を示す値が設定されている場合、そのフレームは受信され、宛先カード情報および宛先ポート情報が示す宛先に転送される。検索キーが、アドレスに対応するエントリ検索情報と一致したフレームについて、そのフレームの受信を拒否する場合には、無効を示す値が設定される。受信有効フラグに無効を示す値（例えば、“０”）が設定されている場合、そのフレームは廃棄される。
【００７０】
“宛先カード情報”フィールドには、受信有効フラグにより受信が許可された各フレームの転送先のインタフェースカードを示す情報が設定される。宛先ポート情報”フィールドには、受信有効フラグにより受信が許可された各フレームの転送先のインタフェースカードにおけるポート番号を示す情報が設定される。
【００７１】
また、宛先テーブル１２８ａに示すように、最終エントリには全マスクのエントリを設定する。この全マスクエントリに対応するエントリの受信有効フラグについて無効を示す“０”を設定する。これにより、アソシエイトメモリ１２８のどのエントリにも一致しないエントリに対して、そのエントリに一致したフレームを未登録フレームとして廃棄することが可能になる。
【００７２】
図８は、第２の実施の形態のフラグ生成処理の手順を示すフローチャートである。図８に示すフラグ生成処理は、受信されたフレームの先頭部分を取得し、取得した先頭部分に基づいてフレームフラグ情報が生成される処理である。フラグ生成処理は、フレーム受信部１２１にユーザフレームを受信し、フラグ生成部１２２にフレームが送信された場合に実行が開始される。
【００７３】
本実施の形態のフラグ生成処理では、以下に示すように、ユーザフレームを受信したインタフェースカード１０２ａにより、受信したフレームの先頭部分が取得される。次に、取得した先頭部分に含まれているＶＬＡＮタグのＴＰＩＤを取得してＶＬＡＮタグが設定されているか否かおよび何段設定されているかを判定し、判定結果に基づいてフレームフラグ情報がセットされる。フラグ生成処理によって生成されたフラグは、受信したフレームの検索キーの一部であって、エントリ検索情報のエントリフラグ情報に対応する部分となる。
【００７４】
［ステップＳ１１］フラグ生成部１２２は、受信したフレームの先頭部分（例えば、先頭から２０バイト分）を切り出して取得する。
［ステップＳ１２］フラグ生成部１２２は、ステップＳ１１で取得したフレームの先頭部分における１段目のＶＬＡＮタグのＴＰＩＤの領域（先頭から１３バイト目および１４バイト目）を参照して、１段目にＶＬＡＮタグが設定されていることを示す所定値（例えば、“０ｘ８１００”）であるか否かについて判定する。１段目のＶＬＡＮタグのＴＰＩＤの領域が所定値であれば、処理はステップＳ１４に進められる。一方、１段目のＶＬＡＮタグのＴＰＩＤの領域が所定値でなければ、処理はステップＳ１３に進められる。
【００７５】
［ステップＳ１３］フラグ生成部１２２は、受信したフレームのフレームフラグ情報に“タグ無し”を示す値（例えば、タグ無しフラグ＝“１”、１段タグフラグ＝“０”、２段タグフラグ＝“０”）をセットする。その後、処理は終了する。
【００７６】
［ステップＳ１４］フラグ生成部１２２は、ステップＳ１１で取得したフレームの先頭部分における２段目のＶＬＡＮタグのＴＰＩＤの領域（先頭から１７バイト目および１８バイト目）を参照して、２段目にＶＬＡＮタグが設定されていることを示す所定値であるか否かについて判定する。２段目のＶＬＡＮタグのＴＰＩＤの領域が所定値であれば、処理はステップＳ１５に進められる。一方、２段目のＶＬＡＮタグのＴＰＩＤの領域が所定値でなければ、処理はステップＳ１６に進められる。
【００７７】
［ステップＳ１５］フラグ生成部１２２は、受信したフレームのフレームフラグ情報に“２段タグ”を示す値（例えば、タグ無しフラグ＝“０”、１段タグフラグ＝“０”、２段タグフラグ＝“１”）をセットする。その後、処理は終了する。
【００７８】
［ステップＳ１６］フラグ生成部１２２は、受信したフレームのフレームフラグ情報に“１段タグ”を示す値（例えば、タグ無しフラグ＝“０”、１段タグフラグ＝“１”、２段タグフラグ＝“０”）をセットする。その後、処理は終了する。
【００７９】
以上のように、第２の実施の形態によれば、予めＶＬＡＮタグのタグ段数をチェックして、タグ段数に応じたフレームフラグ情報を生成する。そして、そのフレームフラグ情報を検索キーに含ませる。これにより、連想メモリ１２６に登録されているエントリのマスクがあっても、フレームフラグ情報およびエントリフラグ情報を比較することにより、検索するエントリを特定することが可能になるので、一致するフレームおよびエントリ同士を一意に特定することが可能になる。このため、連想メモリ１２６に登録されるエントリのアドレスの順序を意識する必要が無くなり、ソフトウェアは任意のアドレスに任意のエントリを設定すると共に、エントリのソートが不要になるので、スイッチ１００における転送処理の負荷を軽減し、転送処理の安定化および高速化を図ることが可能になる。
【００８０】
また、全マスクのエントリを連想メモリ１２６の最終アドレスに登録することにより、最終エントリに一致したフレームを未登録フレームとして廃棄することが可能になる。
また、同様に、全マスクのエントリをアソシエイトメモリ１２８の最終アドレスに登録することにより、最終エントリに一致したフレームを未登録フレームとして廃棄することが可能になる。
【００８１】
［第３の実施の形態］
次に、第３の実施の形態について説明する。上記の第２の実施の形態との相違点を中心に説明し、同様の事項については同一の符号を用いると共に説明を省略する。
【００８２】
第３の実施の形態は、ＴＰＩＤの値が複数種類存在する場合に対応可能である点で、第２の実施の形態と異なる。
図９は、第３の実施の形態のスイッチの機能を示すブロック図である。図９は、インタフェースカード２０２ａによってフレームが受信され、スイッチカード２０３を介してインタフェースカード２０２ｂ，２０２ｃ，・・・が有するポート＃１〜＃Ｎによって転送される時のスイッチ２００の動作を示す。
【００８３】
インタフェースカード２０２ａは、フレーム受信部２２１、フラグ生成部２２２、検索キー生成部２２３、受信フレーム判定部２２４、連想メモリアクセス制御部２２５、連想メモリ２２６、アソシエイトメモリアクセス制御部２２７、アソシエイトメモリ２２８を有する。
【００８４】
インタフェースカード２０２ａは、接続されている他の通信装置や端末装置等の通信機器と通信する回線ポートを収容しており、通信機器とのインタフェース機能、受信フレーム処理、送信フレーム処理等を提供する。
【００８５】
フレーム受信部２２１は、インタフェースカード２０２ａが有する各受信ポートの物理レイヤおよびＭＡＣレイヤの終端を行う。
フラグ生成部２２２は、受信したフレームが有するフレーム制御情報に基づいて受信したフレームの種別を示すフラグ情報であるフレームフラグ情報を生成する。フレームフラグ情報は、受信したフレームのＶＬＡＮタグの有無および個数を示す。
【００８６】
ここで、本実施の形態では、フレームフラグ情報の生成の判定に用いられるＴＰＩＤの値は、予め複数種類設定されている。フラグ生成部２２２は、受信したフレームのＴＰＩＤが設定される領域の値が、予め設定されているいずれかの値と一致する場合には、受信したフレームはＶＬＡＮタグを有すると判定してフレームフラグ情報を生成する。フラグ生成部２２２は、受信フレームのＶＬＡＮタグのタグ段数をチェックし、タグ段数に応じてフレームフラグ情報の値を決定する。生成されたフレームフラグ情報は受信フレームと共に検索キー生成部２２３に送信される。
【００８７】
検索キー生成部２２３は、フラグ生成部２２２によって生成されたフレームフラグ情報と受信したフレームが有するフレーム制御情報の全部または一部とを有する検索キー情報を生成する。
【００８８】
検索キー生成部２２３は、受信したフレームから制御情報を取得する。このとき、検索キー生成部２２３は、受信したフレームの先頭から２０バイト目までの、２０バイト分のデータを切り出して制御情報を取得し、取得した制御情報をフラグ生成部２２２から受信したフレームフラグ情報および受信したポート番号と結合して、連想メモリアクセス制御部２２５に対して連想メモリ２２６の検索キーとして送信する。
【００８９】
受信フレーム判定部２２４は、フレーム受信部２２１で受信したフレームについて、上記検索の結果に基づいて、送信先の判定や廃棄の判定等、受信したフレームの制御を行う。受信フレーム判定部２２４は、アソシエイトメモリアクセス制御部２２７から送信された宛先情報に基づいて受信したフレームの宛先を判定する。また、受信フレーム判定部２２４は、宛先情報が有する受信有効フラグが受信を拒否することを示す場合には、受信したフレームを廃棄する。
【００９０】
連想メモリアクセス制御部２２５は、検索キー生成部２２３から送信された連想メモリ２２６に対する検索と、ＣＰＵ１０１から連想メモリ２２６に対するアクセスとの調停制御を行う。
【００９１】
連想メモリアクセス制御部２２５は、連想メモリ２２６を制御して、検索キー情報が有するフレームフラグ情報とエントリ検索情報が有するエントリフラグ情報とを比較して、比較結果が一致したエントリ検索情報について、そのエントリ検索情報が有するエントリ制御情報と検索キー情報が有するフレーム制御情報とを比較して検索する。連想メモリアクセス制御部２２５は、検索制御部として機能する。
【００９２】
連想メモリ２２６は、エントリしたフレームの種別を示すフラグ情報であるエントリフラグ情報と、エントリしたフレームの制御情報であるエントリ制御情報とを有するエントリ検索情報を記憶する。エントリフラグ情報は、エントリしたフレームのＶＬＡＮタグの有無および個数を示す。連想メモリ２２６は、連想メモリアクセス制御部２２５から送信された検索キーによる検索を実行して、一致するエントリがあった場合には、そのエントリが格納されているアドレスをアソシエイトメモリアクセス制御部２２７に送信する。ここで、本実施の形態では、図１０に後述するように、エントリ検索情報においても、ＴＰＩＤの値は予め複数種類設定されている。この送信されたアドレスをインデックスとして、アソシエイトメモリ２２８のエントリを読み出すことが可能となる。連想メモリ２２６は、エントリ検索情報記憶部として機能する。
【００９３】
アソシエイトメモリアクセス制御部２２７は、連想メモリ２２６からのアクセスと、ＣＰＵ１０１からアソシエイトメモリ２２８に対するアクセスとの調停制御を行う。また、アソシエイトメモリアクセス制御部２２７は、一連の検索処理により連想メモリ２２６から検索されたエントリ検索情報に応じて、アソシエイトメモリ２２８に記憶されている受信したフレームの宛先情報を受信フレーム判定部２２４に送信する。アソシエイトメモリアクセス制御部２２７は、宛先制御部として機能する。
【００９４】
アソシエイトメモリ２２８は、受信したフレームの宛先を示す宛先情報を記憶する。宛先情報は、受信したフレームについて受信を許可するかまたは受信を拒否するかを示す受信有効フラグを有する。アソシエイトメモリ２２８は、宛先情報記憶部として機能する。
【００９５】
インタフェースカード２０２ｂ，２０２ｃ，・・・は、インタフェースカード２０２ａと同様に構成され、同様の機能を有する。
スイッチカード２０３は、受信フレーム判定部２２４の判定結果に基づいて、ユーザフレームを受信したインタフェースカードから送信するインタフェースカードに転送する。これに基づいて、転送されたインタフェースカードのポートからフレームが出力される。
【００９６】
図１０は、第３の実施の形態のエントリ検索テーブルのデータ構造例を示す図である。図１０に示すエントリ検索テーブル２２６ａは、連想メモリ２２６に記憶されている、スイッチ２００で受信したフレームのエントリの構成を示す。エントリ検索テーブル２２６ａは、スイッチ２００で受信するフレームの検索キーと比較される各エントリの検索条件を示すエントリ検索情報を記憶するテーブルである。エントリ検索テーブル２２６ａには、第２の実施の形態のエントリ検索テーブル１２６ａと同様、“アドレス”、“タグ無しフラグ”フィールド、“１段タグフラグ”フィールド、“２段タグフラグ”フィールド、“受信ポート番号”フィールド、“宛先ＭＡＣアドレス”フィールド、“送信元ＭＡＣアドレス”フィールド、“ＴＰＩＤ”フィールド（１段目）、“ＶＬＡＮ  ＩＤ”フィールド（１段目）、“ＴＰＩＤ”フィールド（２段目）、“ＶＬＡＮ  ＩＤ”フィールド（２段目）が設けられている。各フィールドの横方向に並べられた情報同士がエントリ検索情報として互いに関連付けられている。
【００９７】
ここで、ＩＥＥＥ８０２．１ｑにおいて、複数のＶＬＡＮタグがスタックされる構成において、ユーザーネットワークで使用するカスマタタグ（Ｃタグ）と、通信事業者であるキャリアネットワークで使用するサービスタグ（Ｓタグ）の２種類について、ＣタグのＴＰＩＤは０ｘ８１００と規定されており、ＳタグのＴＰＩＤは０ｘ８８ａ８と規定されている。本実施の形態では、複数のタグ段数をサポートするＶＬＡＮタグフレームであって、１段目のタグと２段目のタグにおいて、２種類の異なるＴＰＩＤが使用される場合に対応可能である。
【００９８】
エントリ検索テーブル２２６ａの例では、第２の実施の形態と同様、アドレス１００にタグ無しフレームのエントリが登録され、アドレス１０１に１段タグのフレームのエントリ（ＴＰＩＤ＝０ｘ８２００、ＶＬＡＮ  ＩＤ＝１００）が登録されている。アドレス１０２に２段タグのフレームのエントリ（１段目のタグのＴＰＩＤ＝０ｘ８１００、ＶＬＡＮ  ＩＤ＝１００、２段目のタグのＴＰＩＤ＝０ｘ８１００、ＶＬＡＮ  ＩＤ＝２００）が登録されている。
【００９９】
さらに、エントリ検索テーブル２２６ａの例では、アドレス１０３に１段タグのフレームのエントリ（ＴＰＩＤ＝０ｘ８８ａ８、ＶＬＡＮ  ＩＤ＝１００）が登録されている。アドレス１０４に２段タグのフレームのエントリ（１段目のタグのＴＰＩＤ＝０ｘ８８ａ８、１段目のタグのＶＬＡＮ  ＩＤ＝１００、２段目のタグのＴＰＩＤ＝０ｘ８１００、２段目のタグのＶＬＡＮ  ＩＤ＝２００）が登録されている。
【０１００】
なお、図１０は、インタフェースカード２０２ａが有する連想メモリ２２６に記憶されているエントリ検索テーブル２２６ａを示したものであるが、インタフェースカード２０２ｂ，２０２ｃ，・・・のスイッチ２００における他のインタフェースカードが有するエントリ検索テーブル（図示省略）も同様の構成で実現できる。
【０１０１】
図１１は、第３の実施の形態のフラグ生成処理の手順を示すフローチャートである。図１１に示すフラグ生成処理は、受信されたフレームの先頭部分を取得し、取得した先頭部分に基づいてフレームフラグ情報が生成される処理である。フラグ生成処理は、フレーム受信部２２１にユーザフレームを受信し、フラグ生成部２２２にフレームが送信された場合に実行が開始される。
【０１０２】
本実施の形態のフラグ生成処理では、以下に示すように、ユーザフレームを受信したインタフェースカード２０２ａにより、受信したフレームの先頭部分が取得される。次に、ＶＬＡＮタグのＴＰＩＤが、例えば、“０ｘ８１００”および“０ｘ８８ａ８”の２種類存在する場合において、取得した先頭部分に含まれているＶＬＡＮタグのＴＰＩＤを取得していずれかのＴＰＩＤのＶＬＡＮタグが設定されているか否かおよび何段設定されているかを判定し、判定結果に基づいてフレームフラグ情報がセットされる。フラグ生成処理によって生成されたフラグは、受信したフレームの検索キーの一部であって、エントリ検索情報のエントリフラグ情報に対応する部分となる。
【０１０３】
［ステップＳ２１］フラグ生成部２２２は、受信したフレームの先頭部分（例えば、先頭から２０バイト分）を切り出して取得する。
［ステップＳ２２］フラグ生成部２２２は、ステップＳ２１で取得したフレームの先頭部分における１段目のＶＬＡＮタグのＴＰＩＤの領域（先頭から１３バイト目および１４バイト目）を参照して、１段目にＶＬＡＮタグが設定されていることを示す所定値１（例えば、“０ｘ８１００”）であるか否かについて判定する。１段目のＶＬＡＮタグのＴＰＩＤの領域が所定値１であれば、処理はステップＳ２５に進められる。一方、１段目のＶＬＡＮタグのＴＰＩＤの領域が所定値１でなければ、処理はステップＳ２３に進められる。
【０１０４】
［ステップＳ２３］フラグ生成部２２２は、ステップＳ２１で取得したフレームの先頭部分における１段目のＶＬＡＮタグのＴＰＩＤの領域を参照して、１段目にＶＬＡＮタグが設定されていることを示す所定値２（例えば、“０ｘ８８ａ８”）であるか否かについて判定する。１段目のＶＬＡＮタグのＴＰＩＤの領域が所定値２であれば、処理はステップＳ２５に進められる。一方、１段目のＶＬＡＮタグのＴＰＩＤの領域が所定値２でなければ、処理はステップＳ２４に進められる。
【０１０５】
［ステップＳ２４］フラグ生成部２２２は、受信したフレームのフレームフラグ情報に“タグ無し”を示す値（例えば、タグ無しフラグ＝“１”、１段タグフラグ＝“０”、２段タグフラグ＝“０”）をセットする。その後、処理は終了する。
【０１０６】
［ステップＳ２５］フラグ生成部２２２は、ステップＳ２１で取得したフレームの先頭部分における２段目のＶＬＡＮタグのＴＰＩＤの領域（先頭から１７バイト目および１８バイト目）を参照して、２段目にＶＬＡＮタグが設定されていることを示す所定値１であるか否かについて判定する。２段目のＶＬＡＮタグのＴＰＩＤの領域が所定値１であれば、処理はステップＳ２７に進められる。一方、２段目のＶＬＡＮタグのＴＰＩＤの領域が所定値１でなければ、処理はステップＳ２６に進められる。
【０１０７】
［ステップＳ２６］フラグ生成部２２２は、ステップＳ２１で取得したフレームの先頭部分における２段目のＶＬＡＮタグのＴＰＩＤの領域を参照して、２段目にＶＬＡＮタグが設定されていることを示す所定値２であるか否かについて判定する。２段目のＶＬＡＮタグのＴＰＩＤの領域が所定値２であれば、処理はステップＳ２７に進められる。一方、２段目のＶＬＡＮタグのＴＰＩＤの領域が所定値２でなければ、処理はステップＳ２８に進められる。
【０１０８】
［ステップＳ２７］フラグ生成部２２２は、受信したフレームのフレームフラグ情報に“２段タグ”を示す値（例えば、タグ無しフラグ＝“０”、１段タグフラグ＝“０”、２段タグフラグ＝“１”）をセットする。その後、処理は終了する。
【０１０９】
［ステップＳ２８］フラグ生成部２２２は、受信したフレームのフレームフラグ情報に“１段タグ”を示す値（例えば、タグ無しフラグ＝“０”、１段タグフラグ＝“１”、２段タグフラグ＝“０”）をセットする。その後、処理は終了する。
【０１１０】
以上のように、第３の実施の形態によれば、第２の実施の形態に加えて、複数種類のＴＰＩＤを持つＶＬＡＮタグが存在する場合に対しても適用可能である。
［第４の実施の形態］
次に、第４の実施の形態について説明する。上記の第２の実施の形態との相違点を中心に説明し、同様の事項については同一の符号を用いると共に説明を省略する。
【０１１１】
第４の実施の形態は、任意のＴＰＩＤ値を設定可能である点で、第２の実施の形態と異なる。
図１２は、第４の実施の形態のスイッチの機能を示すブロック図である。図１２は、インタフェースカード３０２ａによってフレームが受信され、スイッチカード３０３を介してインタフェースカード３０２ｂ，３０２ｃ，・・・が有するポート＃１〜＃Ｎによって転送される時のスイッチ３００の動作を示す。
【０１１２】
インタフェースカード３０２ａは、フレーム受信部３２１、フラグ生成部３２２、検索キー生成部３２３、受信フレーム判定部３２４、連想メモリアクセス制御部３２５、連想メモリ３２６、アソシエイトメモリアクセス制御部３２７、アソシエイトメモリ３２８、ＴＰＩＤ設定部３２９を有する。
【０１１３】
インタフェースカード３０２ａは、接続されている他の通信装置や端末装置等の通信機器と通信する回線ポートを収容しており、通信機器とのインタフェース機能、受信フレーム処理、送信フレーム処理等を提供する。
【０１１４】
フレーム受信部３２１は、インタフェースカード３０２ａが有する各受信ポートの物理レイヤおよびＭＡＣレイヤの終端を行う。
フラグ生成部３２２は、受信したフレームが有するフレーム制御情報に基づいて受信したフレームの種別を示すフラグ情報であるフレームフラグ情報を生成する。フレームフラグ情報は、受信したフレームのＶＬＡＮタグの有無および個数を示す。
【０１１５】
ここで、本実施の形態では、フレームフラグ情報の生成の判定に用いられるＴＰＩＤの値は、予め複数種類設定されている。フラグ生成部３２２は、受信したフレームのＴＰＩＤが設定される領域の値が、予め設定されているいずれかの値と一致する場合には、受信したフレームはＶＬＡＮタグを有すると判定してフレームフラグ情報を生成する。フラグ生成部３２２は、受信フレームのＶＬＡＮタグのタグ段数をチェックし、タグ段数に応じてフレームフラグ情報の値を決定する。生成されたフレームフラグ情報は受信フレームと共に検索キー生成部３２３に送信される。
【０１１６】
検索キー生成部３２３は、フラグ生成部３２２によって生成されたフレームフラグ情報と受信したフレームが有するフレーム制御情報の全部または一部とを有する検索キー情報を生成する。
【０１１７】
検索キー生成部３２３は、受信したフレームから制御情報を取得する。このとき、検索キー生成部３２３は、受信したフレームの先頭から２０バイト目までの、２０バイト分のデータを切り出して制御情報を取得し、取得した制御情報をフラグ生成部３２２から受信したフレームフラグ情報および受信したポート番号と結合して、連想メモリアクセス制御部３２５に対して連想メモリ３２６の検索キーとして送信する。
【０１１８】
受信フレーム判定部３２４は、フレーム受信部３２１で受信したフレームについて、上記検索の結果に基づいて、送信先の判定や廃棄の判定等、受信したフレームの制御を行う。受信フレーム判定部３２４は、アソシエイトメモリアクセス制御部３２７から送信された宛先情報に基づいて受信したフレームの宛先を判定する。また、受信フレーム判定部３２４は、宛先情報が有する受信有効フラグが受信を拒否することを示す場合には、受信したフレームを廃棄する。
【０１１９】
連想メモリアクセス制御部３２５は、検索キー生成部３２３から送信された連想メモリ３２６に対する検索と、ＣＰＵ１０１から連想メモリ３２６に対するアクセスとの調停制御を行う。
【０１２０】
連想メモリアクセス制御部３２５は、連想メモリ３２６を制御して、検索キー情報が有するフレームフラグ情報とエントリ検索情報が有するエントリフラグ情報とを比較して、比較結果が一致したエントリ検索情報について、そのエントリ検索情報が有するエントリ制御情報と検索キー情報が有するフレーム制御情報とを比較して検索する。連想メモリアクセス制御部３２５は、検索制御部として機能する。
【０１２１】
連想メモリ３２６は、エントリしたフレームの種別を示すフラグ情報であるエントリフラグ情報と、エントリしたフレームの制御情報であるエントリ制御情報とを有するエントリ検索情報を記憶する。エントリフラグ情報は、エントリしたフレームのＶＬＡＮタグの有無および個数を示す。連想メモリ３２６は、連想メモリアクセス制御部３２５から送信された検索キーによる検索を実行して、一致するエントリがあった場合には、そのエントリが格納されているアドレスをアソシエイトメモリアクセス制御部３２７に送信する。ここで、本実施の形態では、エントリ検索情報においても、ＴＰＩＤの値は予め複数種類設定されている。この送信されたアドレスをインデックスとして、アソシエイトメモリ３２８のエントリを読み出すことが可能となる。連想メモリ３２６は、エントリ検索情報記憶部として機能する。
【０１２２】
アソシエイトメモリアクセス制御部３２７は、連想メモリ３２６からのアクセスと、ＣＰＵ１０１からアソシエイトメモリ３２８に対するアクセスとの調停制御を行う。また、アソシエイトメモリアクセス制御部３２７は、一連の検索処理により連想メモリ３２６から検索されたエントリ検索情報に応じて、アソシエイトメモリ３２８に記憶されている受信したフレームの宛先情報を受信フレーム判定部３２４に送信する。アソシエイトメモリアクセス制御部３２７は、宛先制御部として機能する。
【０１２３】
アソシエイトメモリ３２８は、受信したフレームの宛先を示す宛先情報を記憶する。宛先情報は、受信したフレームについて受信を許可するかまたは受信を拒否するかを示す受信有効フラグを有する。アソシエイトメモリ３２８は、宛先情報記憶部として機能する。
【０１２４】
ＴＰＩＤ設定部３２９は、図示しない管理用端末装置によるＴＰＩＤの値の入力を受け付け、受け付けたＴＰＩＤの値を示すＴＰＩＤ設定情報を設定すると共に、設定したＴＰＩＤ設定情報を記憶する。ＴＰＩＤ設定部３２９は、フラグ生成部３２２の要求に応じてＴＰＩＤ設定情報を送信する。
【０１２５】
インタフェースカード３０２ｂ，３０２ｃ，・・・は、インタフェースカード３０２ａと同様に構成され、同様の機能を有する。
スイッチカード３０３は、受信フレーム判定部３２４の判定結果に基づいて、ユーザフレームを受信したインタフェースカードから送信するインタフェースカードに転送する。これに基づいて、転送されたインタフェースカードのポートからフレームが出力される。
【０１２６】
図１３は、第４の実施の形態のＴＰＩＤ設定テーブルのデータ構造例を示す図である。図１３に示すＴＰＩＤ設定テーブル３２９ａは、スイッチ３００で受信したフレームが有するＶＬＡＮタグを有効にするか無効にするかを示すＴＰＩＤ設定情報を記憶するテーブルである。ＴＰＩＤ設定テーブル３２９ａは、ＴＰＩＤ設定部３２９で管理されると共に記憶されている。このＴＰＩＤ設定テーブル３２９ａは、インタフェースカード３０２ａのポート毎に１段目のＶＬＡＮタグに使用されるＴＰＩＤであるＴＰＩＤ１の値と、２段目のＶＬＡＮタグに使用されるＴＰＩＤであるＴＰＩＤ２の値とを設定可能とする。
【０１２７】
ＴＰＩＤ設定テーブル３２９ａには、“ポート番号”フィールド、“ＴＰＩＤ１有効フラグ”フィールド、“ＴＰＩＤ１”フィールド、“ＴＰＩＤ２有効フラグ”フィールド、“ＴＰＩＤ２”フィールドが設けられている。各フィールドの横方向に並べられた情報同士がＴＰＩＤ設定情報として互いに関連付けられている。
【０１２８】
“ポート番号”フィールドには、フレームを受信したポート番号が設定される。各ＴＰＩＤ設定情報は、このポート番号フィールドで示されたポート番号から受信したフレームのＴＰＩＤの判定に用いられる。
【０１２９】
“ＴＰＩＤ１有効フラグ”フィールドには、ＴＰＩＤ１に設定されたＴＰＩＤが有効であるか無効であるかを示すフラグが設定される。そのＴＰＩＤが有効である場合には、有効を示す値（例えば、“１”）が設定される。ＴＰＩＤ１有効フラグに有効を示す値が設定されている場合、そのＴＰＩＤ１が示すＴＰＩＤは、インタフェースカード３０２ａで受信したフレームのフラグ生成において１段目のＶＬＡＮタグの有無の判定に使用される。ＴＰＩＤ有効フラグに無効を示す値（例えば、“０”）が設定されている場合、ＴＰＩＤ１が示すＴＰＩＤは、インタフェースカード３０２ａで受信したフレームのフラグ生成において使用されず、１段目のＶＬＡＮタグは無いと判定される。
【０１３０】
“ＴＰＩＤ１”フィールドには、ＴＰＩＤ１有効フラグの値が有効を示す場合に受信したフレームが１段目のＶＬＡＮタグを有するか否かの判定に用いられるＴＰＩＤの値が設定される。
【０１３１】
“ＴＰＩＤ２有効フラグ”フィールドには、ＴＰＩＤ２に設定されたＴＰＩＤが有効であるか無効であるかを示すフラグが設定される。そのＴＰＩＤが有効である場合には、有効を示す値が設定される。ＴＰＩＤ２有効フラグに有効を示す値が設定されている場合、そのＴＰＩＤ２が示すＴＰＩＤは、インタフェースカード３０２ａで受信したフレームのフラグ生成において２段目のＶＬＡＮタグの有無の判定に使用される。ＴＰＩＤ有効フラグに無効を示す値が設定されている場合、ＴＰＩＤ２が示すＴＰＩＤは、インタフェースカード３０２ａで受信したフレームのフラグ生成において使用されず、２段目のＶＬＡＮタグは無いと判定される。
【０１３２】
“ＴＰＩＤ２”フィールドには、ＴＰＩＤ２有効フラグの値が有効を示す場合に受信したフレームが２段目のＶＬＡＮタグを有するか否かの判定に用いられるＴＰＩＤの値が設定される。
【０１３３】
本実施の形態では、ＴＰＩＤ設定テーブル３２９ａにより、ポート毎に各段のＶＬＡＮタグのＴＰＩＤ値を、明示的に設定することが可能になる。
図１４は、第４の実施の形態のフラグ生成処理の手順を示すフローチャートである。図１４に示すフラグ生成処理は、受信されたフレームの先頭部分を取得し、取得した先頭部分に基づいてフレームフラグ情報が生成される処理である。フラグ生成処理は、フレーム受信部３２１にユーザフレームを受信し、フラグ生成部３２２にフレームが送信された場合に実行が開始される。
【０１３４】
本実施の形態のフラグ生成処理では、以下に示すように、ユーザフレームを受信したインタフェースカード３０２ａにより、受信したフレームの先頭部分が取得される。次に、取得した先頭部分に含まれているＶＬＡＮタグのＴＰＩＤを取得してＶＬＡＮタグが設定されているか否かおよび何段設定されているかを判定し、判定結果に基づいてフレームフラグ情報がセットされる。フラグ生成処理によって生成されたフラグは、受信したフレームの検索キーの一部であって、エントリ検索情報のエントリフラグ情報に対応する部分となる。
【０１３５】
［ステップＳ３１］フラグ生成部３２２は、受信したフレームの先頭部分（例えば、先頭から２０バイト分）を切り出して取得する。
［ステップＳ３２］フラグ生成部３２２は、ＴＰＩＤ設定部３２９から、フレームを受信したポート番号に応じたＴＰＩＤ設定情報を取得する。
【０１３６】
［ステップＳ３３］フラグ生成部３２２は、ステップＳ３２で取得したＴＰＩＤ設定情報を参照して、ＴＰＩＤ１有効フラグの値が有効を示す“１”であるか無効を示す“０”であるかについて判定する。ＴＰＩＤ１有効フラグの値が有効であれば、処理はステップＳ３４に進められる。一方、ＴＰＩＤ１有効フラグの値が無効であれば、処理はステップＳ３５に進められる。
【０１３７】
［ステップＳ３４］フラグ生成部３２２は、ステップＳ３１で取得したフレームの先頭部分における１段目のＶＬＡＮタグのＴＰＩＤの領域（先頭から１３バイト目および１４バイト目）を参照して、ステップＳ３２で取得したＴＰＩＤ設定情報のＴＰＩＤ１に設定されている設定値１（例えば、“０ｘ９１００”）であるか否かについて判定する。１段目のＶＬＡＮタグのＴＰＩＤの領域が設定値１であれば、処理はステップＳ３６に進められる。一方、１段目のＶＬＡＮタグのＴＰＩＤの領域が設定値１でなければ、処理はステップＳ３５に進められる。
【０１３８】
［ステップＳ３５］フラグ生成部３２２は、受信したフレームのフレームフラグ情報に“タグ無し”を示す値（例えば、タグ無しフラグ＝“１”、１段タグフラグ＝“０”、２段タグフラグ＝“０”）をセットする。その後、処理は終了する。
【０１３９】
［ステップＳ３６］フラグ生成部３２２は、ステップＳ３２で取得したＴＰＩＤ設定情報を参照して、ＴＰＩＤ２有効フラグの値が有効を示す“１”であるか無効を示す“０”であるかについて判定する。ＴＰＩＤ２有効フラグの値が有効であれば、処理はステップＳ３７に進められる。一方、ＴＰＩＤ２有効フラグの値が無効であれば、処理はステップＳ３９に進められる。
【０１４０】
［ステップＳ３７］フラグ生成部３２２は、ステップＳ３１で取得したフレームの先頭部分における２段目のＶＬＡＮタグのＴＰＩＤの領域（先頭から１７バイト目および１８バイト目）を参照して、ステップＳ３２で取得したＴＰＩＤ設定情報のＴＰＩＤ２に設定されている設定値２（例えば、“０ｘ９２００”）であるか否かについて判定する。２段目のＶＬＡＮタグのＴＰＩＤの領域が設定値２であれば、処理はステップＳ３８に進められる。一方、２段目のＶＬＡＮタグのＴＰＩＤの領域が設定値２でなければ、処理はステップＳ３９に進められる。
【０１４１】
［ステップＳ３８］フラグ生成部３２２は、受信したフレームのフレームフラグ情報に“２段タグ”を示す値（例えば、タグ無しフラグ＝“０”、１段タグフラグ＝“０”、２段タグフラグ＝“１”）をセットする。その後、処理は終了する。
【０１４２】
［ステップＳ３９］フラグ生成部３２２は、受信したフレームのフレームフラグ情報に“１段タグ”を示す値（例えば、タグ無しフラグ＝“０”、１段タグフラグ＝“１”、２段タグフラグ＝“０”）をセットする。その後、処理は終了する。
【０１４３】
上記のように、ＩＥＥＥ標準仕様においては、ＣタグのＴＰＩＤは０ｘ８１００と規定されており、ＳタグのＴＰＩＤは０ｘ８８ａ８と規定されている。しかし、例えば、プライベートネットワークや特定の通信事業者で使用される場合等において、任意のＴＰＩＤ値を設定可能であることが要求される場合もある。本実施の形態では、ポート毎に１段目のＶＬＡＮタグおよび２段目のＶＬＡＮタグのそれぞれに対して、任意のＴＰＩＤ値を設定することが可能になる。
【０１４４】
以上のように、第４の実施の形態によれば、第２の実施の形態に加えて、複数の段数のＶＬＡＮタグを持つＥｔｈｅｒｎｅｔフレームに対して、ポート毎に任意のＴＰＩＤ値による判定を行うことができる。これにより、より柔軟なＶＬＡＮネットワークの構築が可能になる。
【０１４５】
［第５の実施の形態］
次に、第５の実施の形態について説明する。上記の第２の実施の形態との相違点を中心に説明し、同様の事項については同一の符号を用いると共に説明を省略する。
【０１４６】
第５の実施の形態は、Ｅｔｈｅｒｎｅｔフレームが転送する上位レイヤの判定も可能である点で、第２の実施の形態と異なる。
図１５は、第５の実施の形態のスイッチの機能を示すブロック図である。図１５は、インタフェースカード４０２ａによってフレームが受信され、スイッチカード４０３を介してインタフェースカード４０２ｂ，４０２ｃ，・・・が有するポート＃１〜＃Ｎによって転送される時のスイッチ４００の動作を示す。
【０１４７】
インタフェースカード４０２ａは、フレーム受信部４２１、フラグ生成部４２２、検索キー生成部４２３、受信フレーム判定部４２４、連想メモリアクセス制御部４２５、連想メモリ４２６、アソシエイトメモリアクセス制御部４２７、アソシエイトメモリ４２８を有する。
【０１４８】
インタフェースカード４０２ａは、接続されている他の通信装置や端末装置等の通信機器と通信する回線ポートを収容しており、通信機器とのインタフェース機能、受信フレーム処理、送信フレーム処理等を提供する。
【０１４９】
フレーム受信部４２１は、インタフェースカード４０２ａが有する各受信ポートの物理レイヤおよびＭＡＣレイヤの終端を行う。
フラグ生成部４２２は、受信したフレームが有するフレーム制御情報に基づいて受信したフレームの種別を示すフラグ情報であるフレームフラグ情報を生成する。フレームフラグ情報は、受信したフレームのＶＬＡＮタグの有無および個数を示す。
【０１５０】
ここで、本実施の形態では、フレームフラグ情報の生成の判定に用いられるＴＰＩＤの値は、予め複数種類設定されている。フラグ生成部４２２は、受信したフレームのＴＰＩＤが設定される領域の値が、予め設定されているいずれかの値と一致する場合には、受信したフレームはＶＬＡＮタグを有すると判定してフレームフラグ情報を生成する。フラグ生成部４２２は、受信フレームのＶＬＡＮタグのタグ段数をチェックし、タグ段数に応じてフレームフラグ情報の値を決定する。生成されたフレームフラグ情報は受信フレームと共に検索キー生成部４２３に送信される。
【０１５１】
検索キー生成部４２３は、フラグ生成部４２２によって生成されたフレームフラグ情報と受信したフレームが有するフレーム制御情報の全部または一部とを有する検索キー情報を生成する。
【０１５２】
検索キー生成部４２３は、受信したフレームから制御情報を取得する。このとき、本実施の形態の検索キー生成部４２３は、受信したフレームの先頭から２２バイト目までの、２２バイト分のデータを切り出して制御情報を取得し、取得した制御情報をフラグ生成部４２２から受信したフレームフラグ情報および受信したポート番号と結合して、連想メモリアクセス制御部４２５に対して連想メモリ４２６の検索キーとして送信する。
【０１５３】
このように、本実施の形態では、フレーム制御情報は、受信したフレームの上位レイヤのプロトコルを示すフレーム上位プロトコル情報として、２段目のＶＬＡＮタグの直後に位置する領域のデータであるＥ−ＴＹＰＥを有する。これにより、２段タグのＶＬＡＮをフレーム受信した場合にも、連想メモリ４２６で検索するときに、Ｅ−ＴＹＰＥの検索が可能になる。
【０１５４】
受信フレーム判定部４２４は、フレーム受信部４２１で受信したフレームについて、上記検索の結果に基づいて、送信先の判定や廃棄の判定等、受信したフレームの制御を行う。受信フレーム判定部４２４は、アソシエイトメモリアクセス制御部４２７から送信された宛先情報に基づいて受信したフレームの宛先を判定する。また、受信フレーム判定部４２４は、宛先情報が有する受信有効フラグが受信を拒否することを示す場合には、受信したフレームを廃棄する。
【０１５５】
連想メモリアクセス制御部４２５は、検索キー生成部４２３から送信された連想メモリ４２６に対する検索と、ＣＰＵ１０１から連想メモリ４２６に対するアクセスとの調停制御を行う。
【０１５６】
連想メモリアクセス制御部４２５は、連想メモリ４２６を制御して、検索キー情報が有するフレームフラグ情報とエントリ検索情報が有するエントリフラグ情報とを比較して、比較結果が一致したエントリ検索情報について、そのエントリ検索情報が有するエントリ制御情報と検索キー情報が有するフレーム制御情報とを比較して検索する。連想メモリアクセス制御部４２５は、検索制御部として機能する。
【０１５７】
連想メモリ４２６は、エントリしたフレームの種別を示すフラグ情報であるエントリフラグ情報と、エントリしたフレームの制御情報であるエントリ制御情報とを有するエントリ検索情報を記憶する。エントリフラグ情報は、エントリしたフレームのＶＬＡＮタグの有無および個数を示す。連想メモリ４２６は、連想メモリアクセス制御部４２５から送信された検索キーによる検索を実行して、一致するエントリがあった場合には、そのエントリが格納されているアドレスをアソシエイトメモリアクセス制御部４２７に送信する。
【０１５８】
ここで、本実施の形態では、エントリ制御情報は、エントリされたフレームの上位レイヤのプロトコルを示すエントリ上位プロトコル情報として、Ｅ−ＴＹＰＥの領域が設けられている。これにより、受信したフレームについてＥ−ＴＹＰＥを検索条件に含めてエントリを検索することが可能になる。この送信されたアドレスをインデックスとして、アソシエイトメモリ４２８のエントリを読み出すことが可能となる。連想メモリ４２６は、エントリ検索情報記憶部として機能する。
【０１５９】
アソシエイトメモリアクセス制御部４２７は、連想メモリ４２６からのアクセスと、ＣＰＵ１０１からアソシエイトメモリ４２８に対するアクセスとの調停制御を行う。また、アソシエイトメモリアクセス制御部４２７は、一連の検索処理により連想メモリ４２６から検索されたエントリ検索情報に応じて、アソシエイトメモリ４２８に記憶されている受信したフレームの宛先情報を受信フレーム判定部４２４に送信する。アソシエイトメモリアクセス制御部４２７は、宛先制御部として機能する。
【０１６０】
アソシエイトメモリ４２８は、受信したフレームの宛先を示す宛先情報を記憶する。宛先情報は、受信したフレームについて受信を許可するかまたは受信を拒否するかを示す受信有効フラグを有する。アソシエイトメモリ４２８は、宛先情報記憶部として機能する。
【０１６１】
インタフェースカード４０２ｂ，４０２ｃ，・・・は、インタフェースカード４０２ａと同様に構成され、同様の機能を有する。
スイッチカード４０３は、受信フレーム判定部４２４の判定結果に基づいて、ユーザフレームを受信したインタフェースカードから送信するインタフェースカードに転送する。これに基づいて、転送されたインタフェースカードのポートからフレームが出力される。
【０１６２】
連想メモリアクセス制御部４２５は、受信したフレームの制御情報が有するＥ−ＴＹＰＥと、エントリフラグ制御情報が有するＥ−ＴＹＰＥとを比較して検索することが可能である。
【０１６３】
図１６は、第５の実施の形態のエントリ検索テーブルのデータ構造例を示す図である。図１６に示すエントリ検索テーブル４２６ａは、連想メモリ４２６に記憶されている、スイッチ４００で受信したフレームのエントリの構成を示す。エントリ検索テーブル４２６ａは、スイッチ４００で受信するフレームの検索キーと比較される各エントリの検索条件を示すエントリ検索情報を記憶するテーブルである。エントリ検索テーブル４２６ａには、 “アドレス”、“タグ無しフラグ”フィールド、“１段タグフラグ”フィールド、“２段タグフラグ”フィールド、“受信ポート番号”フィールド、“宛先ＭＡＣアドレス”フィールド、“送信元ＭＡＣアドレス”フィールド、“ＴＰＩＤ”フィールド（１段目）、“ＶＬＡＮ  ＩＤ”フィールド（１段目）、“ＴＰＩＤ”フィールド（２段目）、“ＶＬＡＮ  ＩＤ”フィールド（２段目）、“Ｅ−ＴＹＰＥ”フィールドが設けられている。各フィールドの横方向に並べられた情報同士がエントリ検索情報として互いに関連付けられている。
【０１６４】
“Ｅ−ＴＹＰＥ”フィールドは、エントリの検索条件である上位レイヤの識別子であるＥ−ＴＹＰＥを示す２バイトの領域である。Ｅ−ＴＹＰＥフィールドにおいて、“０ｘ０８００”はＩＰｖ４フレームを表す。また、０ｘ８６ｄｄはＩＰｖ６フレームを表す。
【０１６５】
エントリ検索テーブル４２６ａの例では、アドレス１００にタグ無しフレームのエントリが登録され、アドレス１０１に１段タグのフレームのエントリ（ＴＰＩＤ＝０ｘ８１００、ＶＬＡＮ  ＩＤ＝１００）が登録されている。アドレス１０２に２段タグのフレームのエントリ（１段目のタグのＴＰＩＤ＝０ｘ８８ａ８、１段目のタグのＶＬＡＮ  ＩＤ＝１００、２段目のタグのＴＰＩＤ＝０ｘ８１００、２段目のタグのＶＬＡＮ  ＩＤ＝２００、Ｅ−ＴＹＰＥ＝０ｘ０８００）が登録されている。アドレス１０３に２段タグのフレームのエントリ（１段目のタグのＴＰＩＤ＝０ｘ８８ａ８、１段目のタグのＶＬＡＮ  ＩＤ＝１００、２段目のタグのＴＰＩＤ＝０ｘ８１００、２段目のタグのＶＬＡＮ  ＩＤ＝２００、Ｅ−ＴＹＰＥ＝０ｘ８６ｄｄ）が登録されている。
【０１６６】
本実施の形態では、このＥ−ＴＹＰＥフィールドによって、エントリ検索テーブル４２６ａのアドレス１０２，１０３のエントリに示すように、１段目タグのＴＰＩＤ＝０ｘ８８ａ８、ＶＬＡＮ  ＩＤ＝１００に対して、上位レイヤがＩＰｖ４フレームの場合とＩＰｖ６フレームの場合に、異なるエントリを設定することが可能になる。これにより、フレームの判定について上位レイヤまで含めて行うことが可能になる。
【０１６７】
また、エントリ検索テーブル４２６ａに示すように、最終エントリには全マスクのエントリを設定する。これにより、連想メモリ４２６における他のいずれのエントリにも一致しないフレームが存在する場合にも、そのようなフレームが最終エントリに一致したことにより未登録フレームと判定して廃棄することが可能になる。
【０１６８】
なお、図１６は、インタフェースカード４０２ａが有する連想メモリ４２６に記憶されているエントリ検索テーブル４２６ａを示したものであるが、インタフェースカード４０２ｂ，４０２ｃ，・・・のスイッチ４００における他のインタフェースカードが有するエントリ検索テーブル（図示省略）も同様の構成で実現できる。
【０１６９】
図１７は、第５の実施の形態の宛先テーブルのデータ構造例を示す図である。図１７に示す宛先テーブル４２８ａは、アソシエイトメモリ４２８に記憶されている、スイッチ４００で受信したフレームの宛先を示す宛先情報を記憶するテーブルである。宛先テーブル４２８ａには、第２の実施の形態の宛先テーブル１２８ａと同様、“アドレス”、“受信有効フラグ”フィールド、“宛先カード情報”フィールド、“宛先ポート情報”フィールドが設けられている。各フィールドの横方向に並べられた情報同士が宛先情報として互いに関連付けられている。
【０１７０】
宛先テーブル４２８ａに示すアソシエイトメモリ４２８のエントリでは、ＩＰｖ４フレームのエントリに対応するアドレス１０２は、“カード＃３”（例えば、インタフェースカード４０２ｃを示すものとする）の“ポート＃１”が宛先として設定されている。また、ＩＰｖ６フレームのエントリに対応するアドレス１０３は、“カード＃３”の“ポート＃２”が宛先として設定されている。このように、本実施の形態では、上位レイヤのフレーム種別単位に異なる宛先に対して転送することが可能になる。
【０１７１】
また、宛先テーブル４２８ａに示すように、最終エントリには全マスクのエントリを設定する。この全マスクエントリに対応するエントリの受信有効フラグについて無効を示す“０”を設定する。これにより、アソシエイトメモリ４２８における他のいずれのエントリにも一致しないフレームが存在する場合にも、そのようなフレームが最終エントリに一致したことにより未登録フレームとして廃棄することが可能になる。
【０１７２】
以上のように、第５の実施の形態によれば、第２の実施の形態に加えて、異なる上位レイヤのフレーム種別についての判定を行うことが可能となる。
また、異なる上位レイヤの判定結果を用いて、フレームの上位レイヤに応じて異なる宛先に転送することが可能になる。
【０１７３】
以上、開示の通信装置および通信制御方法を、図示の実施の形態に基づいて説明したが、上記については単に本発明の原理を示すものである。開示の技術は、多数の変形、変更が当業者にとって可能であり、上記に示し、説明した正確な構成および応用例に限定されるものではなく、各部の構成は同様の機能を有する任意の構成のものに置換することができる。また、開示の技術に他の任意の構成物や工程が付加されてもよい。また、開示の技術は前述した実施の形態のうちの任意の２以上の構成を組み合わせたものであってもよい。また、開示の技術に対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【０１７４】
（付記１）  エントリしたフレームの種別を示すエントリフラグ情報と、前記エントリしたフレームの制御情報であるエントリ制御情報とを有するエントリ検索情報を記憶するエントリ検索情報記憶部と、
受信したフレームが有するフレーム制御情報に基づいて前記受信したフレームの種別を示すフレームフラグ情報を生成するフラグ生成部と、
前記フラグ生成部によって生成された前記フレームフラグ情報と前記受信したフレームが有する前記フレーム制御情報の全部または一部とを有する検索キー情報を生成する検索キー生成部と、
前記エントリ検索情報記憶部を制御して、前記検索キー情報が有する前記フレームフラグ情報と前記エントリ検索情報が有する前記エントリフラグ情報とを比較して、比較結果が一致した前記エントリ検索情報について、前記検索キー情報が有する前記フレーム制御情報で検索する検索制御部とを有することを特徴とする通信装置。
【０１７５】
（付記２）  前記検索制御部は、前記エントリ検索情報記憶部を制御して、前記検索キー情報が有する前記フレームフラグ情報と前記エントリ検索情報が有する前記エントリフラグ情報とを比較して、比較結果が一致した前記エントリ検索情報について、当該エントリ検索情報が有する前記エントリ制御情報と前記検索キー情報が有する前記フレーム制御情報とを比較して検索することを特徴とする付記１記載の通信装置。
【０１７６】
（付記３）  前記フレームフラグ情報は、前記受信したフレームのＶＬＡＮタグの有無を示し、
前記エントリフラグ情報は、前記エントリしたフレームの前記ＶＬＡＮタグの有無を示すことを特徴とする付記１記載の通信装置。
【０１７７】
（付記４）  前記フラグ生成部は、前記受信したフレームのＴＰＩＤが設定される領域の値が所定の値と一致する場合には、前記受信したフレームは前記ＶＬＡＮタグを有すると判定して、前記フラグ情報を生成することを特徴とする付記３記載の通信装置。
【０１７８】
（付記５）  前記ＴＰＩＤの値は予め複数種類設定されており、
前記フラグ生成部は、前記受信したフレームの前記ＴＰＩＤが設定される領域の値が予め設定されているいずれかの値と一致する場合には、前記受信したフレームは前記ＶＬＡＮタグを有すると判定して、前記フラグ情報を生成することを特徴とする付記４記載の通信装置。
【０１７９】
（付記６）  前記ＴＰＩＤの値の入力を受け付け、受け付けた当該ＴＰＩＤの値を示すＴＰＩＤ設定情報を設定すると共に当該ＴＰＩＤ設定情報を記憶するＴＰＩＤ設定部を有することを特徴とする付記４記載の通信装置。
【０１８０】
（付記７）  前記フレームフラグ情報は、前記受信したフレームの前記ＶＬＡＮタグの有無と共に個数を示し、
前記エントリフラグ情報は、前記エントリしたフレームの前記ＶＬＡＮタグの有無と共に個数を示すことを特徴とする付記３記載の通信装置。
【０１８１】
（付記８）  前記エントリ検索情報記憶部は、前記エントリ検索情報を記憶する連想メモリを有し、
前記検索制御部は、前記検索キー情報を前記連想メモリに送信することにより前記エントリ検索情報を検索することを特徴とする付記１記載の通信装置。
【０１８２】
（付記９）  前記フレーム制御情報は、前記受信したフレームの上位レイヤのプロトコルを示すフレーム上位プロトコル情報を有し、
前記エントリ制御情報は、前記エントリされたフレームの上位レイヤのプロトコルを示すエントリ上位プロトコル情報を有し、
前記検索制御部は、前記フレーム制御情報が有する前記フレーム上位プロトコル情報と、前記エントリフラグ制御情報が有する前記エントリ上位プロトコル情報とを比較して検索することを特徴とする付記１記載の通信装置。
【０１８３】
（付記１０）  前記受信したフレームの宛先を示す宛先情報を記憶する宛先情報記憶部と、
前記エントリ検索情報記憶部から検索されたエントリ検索情報に応じて、前記宛先情報記憶部に記憶されている前記受信したフレームの前記宛先情報を送信する宛先制御部と、
前記宛先制御部から送信された前記宛先情報に基づいて前記受信したフレームの宛先を判定する受信フレーム判定部とを有することを特徴とする付記１記載の通信装置。
【０１８４】
（付記１１）  前記宛先情報は、前記受信したフレームについて受信を許可するかまたは受信を拒否するかを示す受信有効フラグを有し、
前記受信フレーム判定部は、前記宛先情報が有する受信有効フラグが受信を拒否することを示す場合には、前記受信したフレームを廃棄することを特徴とする付記１０記載の通信装置。
【０１８５】
（付記１２）  フラグ生成部が、受信したフレームが有するフレーム制御情報に基づいて前記受信したフレームの種別を示すフレームフラグ情報を生成し、
検索キー生成部が、前記フラグ生成部によって生成された前記フレームフラグ情報と前記受信したフレームが有する前記フレーム制御情報の全部または一部とを有する検索キー情報を生成し、
検索制御部が、エントリしたフレームの種別を示すエントリフラグ情報と前記エントリしたフレームの制御情報であるエントリ制御情報とを有するエントリ検索情報を記憶するエントリ検索情報記憶部を制御して、前記検索キー情報が有する前記フレームフラグ情報と、前記エントリ検索情報が有する前記エントリフラグ情報とを比較して、比較結果が一致した前記エントリ検索情報について、前記検索キー情報が有する前記フレーム制御情報で検索することを特徴とする通信制御方法。
【符号の説明】
【０１８６】
１  通信装置
１１  フラグ生成部
１２  検索キー生成部
１３  検索制御部
１４  エントリ検索情報記憶部
１５  受信フレーム判定部
【図１】
0005407712.tif 000002
【図２】
0005407712.tif 000003
【図３】
0005407712.tif 000004
【図４】
0005407712.tif 000005
【図５】
0005407712.tif 000006
【図６】
0005407712.tif 000007
【図７】
0005407712.tif 000008
【図８】
0005407712.tif 000009
【図９】
0005407712.tif 000010
【図１０】
0005407712.tif 000011
【図１１】
0005407712.tif 000012
【図１２】
0005407712.tif 000013
【図１３】
0005407712.tif 000014
【図１４】
0005407712.tif 000015
【図１５】
0005407712.tif 000016
【図１６】
0005407712.tif 000017
【図１７】
0005407712.tif 000018