以下、図面に基づいて、本発明の実施の形態を説明する。以下の実施形態の構成は例示であり、本発明は実施形態の構成に限定されない。
<通信装置の構成>
図1は、ネットワーク構成の一例を示す図である。ネットワーク500は、複数の通信装置100と複数のユーザ端末200とを含む。ユーザ端末200は、例えば、パーソナルコンピュータ,携帯電話端末,携帯情報端末,スマートフォン等の通信機能を有する端末装置である。通信装置100は、ユーザ端末200から送信されるフレームを受信し、フレーム内に格納されたアドレス情報等に基づいて、フレームの転送処理を行う。例えば、ユーザ端末200がEthernetフレームを送信する場合には、通信装置100は、アドレス情報として受信したEthernetフレーム内に格納されたMACアドレスに基づいて転送処理を行う。また、例えば、ユーザ端末200がIPフレームを送信する場合には、通信装置100は、アドレス情報として受信したIPフレーム内に格納されたIPアドレスに基づいて転送処理を行う。なお、以降は、一例として、通信装置100がEthernetフレームの転送処理を行う場合について説明する。Ethernetフレームは、態様におけるデータブロックの一例である。
図2は、通信装置100の構成例を示す図である。通信装置100は、複数の回線インタフェース(IF)回路1,スイッチ(SW)回路2,制御回路3を含む。回線IF回路1は、回線ポートを収容し、外部装置とのインタフェース機能,フレームの受信機能,フレームの送信機能等を提供する回路である。回線IF回路は、態様におけるインタフェースモジュールの一例である。SW回路2は、通信装置100内において回線IF回路1とデータ信号のやり取りを介して接続され、回線IF回路1間のフレーム転送のスイッチ機能を提供する回路である。SW回路2は、態様におけるスイッチ回路の一例である。制御回路3は、通信装置100内において回線IF回路1とSW回路2とに制御信号のやり取りを介して接続され、通信装置100内の各回路の各種設定,アラーム,統計情報の収集等を制御する回路である。制御回路3は、外部モニタ等の外部端末とも接続される。
通信装置100は、例えば、レイヤ2スイッチ,レイヤ3スイッチ等の中継装置である。また,例えば、通信装置100は、中継機能を備えた装置である。また、回線IF回路1,SW回路2,制御回路3は、それぞれ、例えば、通信装置100に着脱可能なモジュール又はカードとして提供される。また、回線IF回路1,SW回路2,制御回路3は、通信装置100のマザーボード又はマザーカードと一体化されていてもよい。
図3は、Ethernetフレームのフォーマットを示す図である。図3では、VLAN(Virtual Local Area Network)タグなしEthernetフレーム91,VLANタグ1段付与のEthernetフレーム92,VLANタグ2段付与のEthernetフレーム93のそれぞれのフレームフォーマットが示される。これら3つのフレームは、通信装置100の同一ポート内に混在することが可能である。
VLANタグなしEthernetフレーム91のフレームフォーマットは以下の通りである。MAC DAは、宛先のMACアドレスを示し、6バイトのフィールドである。MAC SAは、送信元のMACアドレスを示し、6バイトのフールドである。E−TYPEは、Ethernet Typeであり、後段のPDU(Protocol Data Unit)に格納されるメッセージのタイプが格納されるフィールドである。例えば、E−TYPEに0x0800が格納されている場合には、後段のPDUはIPv4(IP version 4)のパケ
ットであることが示される。E−TYPEは、2バイトである。また、E−TYPEに格納されるメッセージタイプは、IANA(Internet Assigned Number Authority)によって規定されている。
PDUには、IPv4フレーム等の上位レイヤのメッセージが格納される。FCS(Frame Check Sequence)はフレームの誤り検出のためのCRC−32符号が格納され、4バイトのフィールドである。
VLANタグ1段付与のEthernetフレーム92は、VLANタグなしEthernetフレーム91のMAC SAのフィールドとE−TYPEのフィールドとの間にVLANタグが1つ付与されたフレームである。VLANタグは、TPID(Tag Protocol ID)とVLAN IDとを含む。TPIDは、Ethernet Typeの一種で
あり、VLAN IDが後段に格納されていることを示すIDである。TPIDには、例えば、IEEE802.1Qを示す0x8100が設定される。TPIDは、2バイトのフィールドである。VLAN IDは、ユーザを特定するためのVLAN ID値が格納される。
VLANタグは、連続してスタックすることができる。VLANタグ2段付与のEthernetフレーム93には、VLANタグが2つ連続して付与されている。
VLANタグなしEthernetフレーム91は、各種のEthernetフレームが混在する回線ポートにおいて、例えば、特定のユーザ用や、通信装置100間で送受信される制御フレーム用に用いられる。
VLANタグ有りフレームEthernetは、例えば、ユーザAにはVLAN ID=100,ユーザBにはVLAN ID=200のように異なるユーザに対して、異なるVLAN IDを割り当てて用いられる。異なるユーザに対して異なるVLAN IDを割り当てることにより、ネットワーク上でVLAN IDによるユーザ識別を行うことが可能となる。
VLANタグ2段付与のEthenetフレーム93は、下位ネットワークのフレームが上位ネットワークで転送されるような場合において使用される。この場合、2段目(PDUに近い方)のVLANタグは、下位ネットワークにおけるユーザ識別タグや管理用タグとして使用される。1段目(MAC SAに近い方)のVLANタグは、上位ネットワークにおけるユーザ識別タグや管理用タグとして使用される。
図4は、通信装置100内において用いられる装置内ヘッダが付与されたEthernetフレームの例を示す図である。通信装置100の回線IF回路1は、フレームを受信すると、この受信フレームに装置内における宛先情報を含む装置内ヘッダを付与する。装置内ヘッダは、装置内宛先情報として宛先カード番号と宛先ポート番号とを含む。
通信装置100では、フレームを受信した回線IF回路1によって、受信フレームに装置内ヘッダが付与される。装置内ヘッダに含まれる宛先カード番号と宛先ポート番号とは、受信フレーム内の宛先MACアドレスに基づいて、フレームを受信した回線IF回路1によって決定される(詳細は後述)。装置内ヘッダを付与された受信フレームは、SW回路2に転送される。SW回路2は、受信フレームの装置内ヘッダにしたがって、受信フレームを装置内ヘッダに含まれる宛先カード番号が示す回線IF回路1に転送する。装置内ヘッダは、装置内ヘッダに含まれる宛先カード番号と宛先ポート番号とによって示されるポートから回線に出力される際に、装置内ヘッダに含まれる宛先カード番号が示す回線IF回路1によって外される。
図5は、回線IF回路1のフレーム受信側の構成例を示す図である。回線IF回路1は、PHY/MAC回路11,検索キー生成回路12,連想メモリアクセス制御回路13,連想メモリ14,アソシエイトメモリアクセス制御回路15,アソシエイトメモリ16,受信判定回路17,CPU18を含む。また、PHY/MAC回路11、連想アクセスメモリアクセス制御回路13,アソシエイト制御回路15,CPU18は、互いに制御バス19で接続される。
PHY/MAC回路11は、受信フレームの物理レイヤとMACレイヤの終端処理を行う。MACレイヤでは、PHY/MAC回路11は、受信フレームのFCSチェック等を行い、FCSエラーフレームを廃棄する。エラー無しフレームは、装置内部へ受信される。
検索キー生成回路12は、例えば、PHY/MAC回路11でエラー無しフレームとして受信されたEthernetフレームの先頭から20バイト目までのデータを取り出し、この20バイト分のデータと受信ポート番号とを結合して検索キーを生成する。検索キー生成回路12は、生成した検索キーを連想メモリアクセス制御回路13に送信する。
連想メモリアクセス制御回路13は、検索キー生成回路12から受信した検索キーによる連想メモリ14の検索処理と、CPU18から連想メモリ14に対するアクセス処理の調停制御と、を行う。連想メモリ14は、例えば、ポート番号とEthernetフレームの先頭から20バイト分のデータとを、すなわち、検索キーをエントリとして保持する。連想メモリ14は、連想メモリアクセス制御回路13から検索キーが入力されると、検索キーに合致するエントリを検索し、検索キーに合致するエントリが格納されているアドレスを出力する。このアドレスは、アソシエイトメモリ16のエントリのインデックスとなるアドレスと対応している。連想メモリ14から出力された検索キーに合致するエントリが格納されているアドレスは、アソシエイトメモリアクセス制御回路15に送信される。連想メモリ14の詳細については、後述の図6において説明する。
アソシエイトメモリアクセス制御回路15は、連想メモリ14から入力されたアソシエイトメモリ16のアドレスに対するアクセス処理と、CPU18からアソシエイトメモリ16に対するアクセス処理の調停制御と、を行う。アソシエイトメモリ16は、フレームの装置内ヘッダに含まれる装置内宛先情報(宛先カード番号と宛先ポート番号)と、エントリに対する受信許可を示す受信有効フラグとをエントリとして保持する。アソシエイトメモリアクセス制御回路15は、連想メモリ14から入力されたアドレスをインデックスとして、アソシエイトメモリ16からエントリを読み出す。アソシエイトメモリアクセス制御回路15は、アソシエイトメモリ16から読み出した該当アドレスのエントリを受信判定回路17に送信する。アソシエイトメモリ16の詳細については、後述の図7において説明する。
受信判定回路17は、アソシエイトメモリアクセス制御回路15から受信するアソシエイトメモリ16のエントリに基づいて、例えば、受信フレームの装置内宛先の判定と、廃棄判定とを行う。また、受信判定回路17は、検索キー生成回路12から受信フレームを受信する。受信判定回路17は、受信したアソシエイトメモリ16のエントリに含まれる受信有効フラグに基づいて、受信フレームの廃棄判定を行う。また、受信判定回路17は、受信フレームを廃棄しないことを判定した場合には、受信したアソシエイトメモリ16のエントリに装置内宛先情報として含まれる宛先カード番号及び宛先ポート番号を装置内ヘッダに格納し、受信フレームにこの装置内ヘッダを付与する。受信フレームは、宛先に応じてSW回路2又はCPU18のいずれかに送信される。受信判定回路17が受信したアソシエイトメモリ16のエントリの宛先カード番号が通信装置100内の回線IF回路
1のいずれかを示す場合には、受信フレームは、SW回路2に送信され、SW回路2によって宛先の回線IF回路1に転送される。受信判定回路17が受信したアソシエイトメモリ16のエントリの宛先カード番号がCPUを示す場合には、受信フレームはCPU18に送信される。
PHY/MAC回路11,検索キー生成回路12,連想メモリアクセス制御回路13,アソシエイトメモリアクセス制御回路15,受信判定回路17は、例えば、ICロジック素子,FPGA(Field Programmable Gate Array),NPU(Network Processing Unit)等である。PHY/MAC回路11,検索キー生成回路12,連想メモリアクセス制御回路13,アソシエイトメモリアクセス制御回路15,受信判定回路17は、それぞれ、個別の素子,デバイス等であってもよい。また、PHY/MAC回路11,検索キー生成回路12,連想メモリアクセス制御回路13,アソシエイトメモリアクセス制御回路15,受信判定回路17は、これらの回路の少なくとも2つを有する1つ又は複数の素子,デバイス等であってもよい。
図6は、連想メモリ14のエントリの構成例を示す図である。連想メモリ14は、例えば、TCAM(Ternary Content Addressable Memory)である。連想メモリ14のエントリには、エントリ有効フラグ,ポート番号,フレームの先頭から20バイト分のデータが含まれる。
エントリ有効フラグは、エントリの有効性を示すフラグである。例えば、エントリ有効フラグが1である場合には、エントリが有効であることが示される。例えば、エントリ有効フラグが0である場合には、エントリが無効であることが示される。
ポート番号は、受信ポート番号を示す。ポート番号のフィールドのサイズは、図6に示される例では1バイトである。したがって、図6に示される例では、最大256ポートについて、連想メモリ14のエントリを設定することができる。ただし、ポート番号のサイズは、1バイトに限定されず、通信装置100の仕様等に応じて設定される。
フレームの先頭から20バイト分のデータは、VLANタグが2段付与されたEthernetフレームにおいて、先頭から2段分のVLANタグまでを含むことを意味する。ただし、連想メモリ14のエントリに含まれるフレームの先頭からのデータ長は、先頭から20バイトに限定されない。通信装置100が配置されるネットワークの構成等に応じて、連想メモリ14のエントリに含まれるフレームの先頭からのデータ長は、設定可能である。ただし、連想メモリ14のエントリに含まれるフレームの先頭からのデータ長と、検索キーに用いられるフレームの先頭からのデータ長とは、一致する。
図6に示される例では、連想メモリ14のアドレス100には、ポート1用のVLANタグ1段付与のフレームのエントリが登録されている。このエントリのVLANタグは、TPID=0x8100,VLAN ID=100である。1段目のVLANタグは、Ethernetフレームの先頭から13バイト目から16バイト目に位置する。そのため、図6に示される連想メモリ14のアドレス100のエントリでは、Ethernetフレームの先頭から13バイト目と14バイト目とにTPIDの値0x8100と、15バイト目と16バイト目とにVLAN IDの値100とが格納されている。
また、図6に示される例では、連想メモリ14のアドレス101には、ポート1用の制御フレームの一つであるBPDU(Bridge Protocol Data Unit)フレームのエントリが
登録されている。BPDUフレームには、宛先MACアドレスとして、マルチキャストの0x0180 C200 0000が予約されている。そのため、図6に示されるアドレス101のエントリでは、Ethernetフレームの宛先MACアドレスに該当する先
頭から6バイト目までに、BPDUフレームであることを示すMACアドレス0x0180 C200 0000が格納されている。
また、図6に示される例では、連想メモリ14のアドレス200には、ポート1用のVLANタグ1段付与のフレームのエントリが登録されている。このエントリのVLANタグは、TPID=0x8100,VLAN ID=200である。そのため、図6に示される連想メモリ14のアドレス200のエントリでは、VLANタグに該当する、Ethernetフレームの先頭から13バイト目と14バイト目とにTPIDの値0x8100と、15バイト目と16バイト目とにVLAN IDの値200とが格納されている。
また、図6に示される例では、連想メモリ14のアドレス201には、ポート2用のVLANタグ2段付与のフレームのエントリが登録されている。このエントリの1段目(外側)のVLANタグは、TPID=0x8100,VLAN ID=300である。このエントリの2段目(内側)のVLANタグは、TPID=0x8100,VLAN ID=400である。1段目のVLANタグは、Ethernetフレームの先頭から13バイト目から16バイト目に位置する。2段目(内側)のVLANタグは、1段目のVLANタグに続いて、Ethernetフレームの先頭から17バイト目から20バイト目に位置する。そのため、図6に示されるアドレス201のエントリでは、Ethernetフレームの先頭から13バイト目から16バイト目までに1段目(外側)のVLANタグ(TPID=0x8100,VLAN ID=300)が格納されている。また、Ethernetフレームの先頭から17バイト目から20バイト目までに2段目(内側)のVLANタグ(TPID=0x8100,VLAN ID=400)が格納されている。
また、図6に示される例では、連想メモリ14のアドレス202にポート1用の制御フレームの一つであるLACP(Link Aggregation Control Protocol)フレームのエント
リが登録されている。LACPフレームは、宛先MACアドレスとして、0x0180 C200 0002が予約されている。そのため、図6に示されるアドレス202のエントリでは、Ethernetフレームの宛先MACアドレスに該当する先頭から6バイト目までに、LACPフレームであることを示すMACアドレス0x0180 C200 0002が格納されている。
連想メモリ14の検索キーによる検索処理は、若番アドレスから老番アドレスの順に実行される。検索キーと完全一致するエントリが見つかった場合には、その時点で検索処理は終了し、このエントリより老番のエントリについては検索されない。検索キーと完全一致するエントリが格納されている連想メモリ14のアドレス値が連想メモリ14より出力される。なお、連想メモリ14中の「マスク」に該当するビットは、「0」でも「1」でもよいビットである。
また、図6に示される例では、連想メモリ14の最終アドレスに全マスクのエントリが設定されている。このように設定することによって、検索キーに対応するエントリが連想メモリ14に登録されていない場合でも、この検索キーは最終アドレスのエントリに一致することが可能となる。
図7は、アソシエイトメモリ16に格納されるエントリの例を示す図である。アソシエイトメモリ16は、例えば、RAMである。アソシエイトメモリ16のエントリには、受信有効フラグ,装置内宛先情報(宛先カード番号,宛先ポート番号)が含まれる。アソシエイトメモリ16の各エントリが格納されるアドレス値は、連想メモリ14のアドレス値と対応している。アソシエイトメモリ16のエントリは、例えば、通信装置100のソフトウェアによってCPU18経由で設定される。
受信有効フラグは、エントリに該当する受信フレームの受信許可又は受信拒否を示すフラグである。例えば、受信有効フラグが1である場合には、受信有効が示され、エントリに該当する受信フレームは受信許可される。例えば、受信有効フラグが0である場合には、受信無効が示され、エントリに該当する受信フレームは廃棄される。
宛先カード番号と宛先ポート番号とは、エントリに該当する受信フレームの通信装置100内の宛先となる回線IF回路1とそのポート番号とが設定される。
例えば、通信装置100が、回線IFカード1のポート1でTPID=0x8100,VLAN ID=100のVLANタグを有するEthernetフレームを受信した場合を想定する。この場合、連想メモリアクセス制御回路13が、検索キー生成回路12から、ポート番号=ポート1と、TPID=0x8100,VLAN ID=100を含む受信フレームの先頭から20バイト分のデータと、を検索キーとして受信する。この検索キーは、連想メモリ14のアドレス100のエントリに合致するので、連想メモリアクセス制御回路13からこの検索キーが入力されると、連想メモリ14は、アドレス100をアソシエイトメモリアクセス制御回路15に送信する。アソシエイトメモリアクセス制御回路15は、アソシエイトメモリ16からアドレス100のエントリを読み出し、受信判定回路17に送信する。アソシエイトメモリ16のアドレス100のエントリの受信有効フラグは有効(1に設定)を示すので、受信判定回路17は、宛先カード番号と宛先ポート番号を装置内ヘッダとして受信フレームに付与し、SW回路2に送信する。
同様にして、アソシエイトメモリ16のアドレス200,201のエントリに該当する受信フレームは、ユーザフレームとして、各エントリが示す宛先カード番号と宛先ポート番号とにしたがって、SW回路2を経由して、宛先カードの宛先ポートに送信される。連想メモリ14のアドレス100,200,201のエントリに該当する受信フレームは、いずれもVLANタグを含んでおり、通信装置100は、VLAN IDごとに受信フレームを識別してネットワークに転送することが示される。
また、BPDUフレーム,LACPフレームに該当するアソシエイトメモリ16のアドレス101,202のエントリは、宛先カード番号がCPU18を示しているため、BPDUフレーム,LACPフレームは、回線IF回路1のCPU18に送信される。すなわち、通信装置100は、制御フレームを識別して装置内で終端することが示される。なお、図6及び図7では、制御フレームの例としてBPDUフレームとLACPフレームとについて示したが、制御フレームはこれに限られない。制御フレームとしては、例えば、物理リンクや対向装置の状態を監視制御するためのフレームや、ネットワーク内のトポロジ状態やルーティング状態を監視制御するためのフレームがある。
図6及び図7に示されるように、連想メモリ14及びアソシエイトメモリ16では、例えば、ポート,VLAN,ユーザフレーム,制御フレームといった各種情報に応じて個々のエントリが格納されている。そのため、フィルタリングの設定変更の場合には、通信装置100のソフトウェアは、フィルタリングの設定変更に伴って不要となる連想メモリ14及びアソシエイトメモリ16のエントリを1つずつ無効に設定する。また、通信装置100のソフトウェアは、フィルタリングの設定変更に伴って必要となる連想メモリ14及びアソシエイトメモリ16のエントリを、1つずつ有効に設定したり、追加したりする。該当するエントリが多数存在する場合には、該当エントリを無効又は有効に設定する処理数が増加し、手間がかかる。また、該当する全エントリの無効又は有効の設定処理の終了までに時間を要してしまい、結果として、パケットフィルタリングの切替時間が増加してしまう。また、パケットフィルタリングの切替時間の増加をなるべく抑制するためには、連想メモリ14の多数のエントリへのアクセス制御を短時間で行う必要があり、CPU18やソフトウェアへの負荷が増加してしまう。
<第1実施形態>
第1実施形態では、パケットフィルタリングの切替時間を短くし、CPU18やソフトウェアへの負荷を抑制するために、回線IF回路を以下のように構成する。以下、上述の説明と重複する箇所については、説明を省略する。
図8は、第1実施形態における回線IF回路1aの構成例を示す図である。回線IF回路1aは、PHY/MAC回路11a,検索キー生成回路12a,連想メモリアクセス制御回路13,連想メモリ14a,アソシエイトメモリアクセス制御回路15,アソシエイトメモリ16,受信判定回路17,CPU18,及びポートAC回路21を含む。なお、図8に示される例では、回線IF回路1aの受信側の構成のみが示されている。第1実施形態における回線IF回路1aの構成は、PHY/MAC回路11a,検索キー生成回路12a,連想メモリ14a,ポートAC回路21以外は、図5における回線IF回路1と同様である。
ポートAC(Action Code)回路21は、メモリを有しており、このメモリにはポート
ACテーブル22aが保持されている。ポートACテーブル22aには、回線IF回路1aの各ポートに対してフレームの処理動作を決定するAction Code値が設定されている。ポートAC回路21は、各ポートにおいてフレームが受信されると、ポートACテーブル22aから該当するポートのエントリを読み出し、Action Code値を取得する。ポートAC回路21は、取得したAction Code値をPHY/MAC回路11aに送信する。ポートAC回路21は、態様における取得回路の一例である。
PHY/MAC回路11aは、各ポートでフレームが受信されると、ポートAC回路21にアクセスして、受信ポートに対して設定されたAction Code値を取得する。PHY/MAC回路11aは、Action Code値と受信フレームとを検索キー生成回路12aに送信する。検索キー生成回路12aは、受信フレームの受信ポート番号と、Action Code値と、受信フレームの先頭から20バイト分のデータとを結合して検索キーを生成する。この検索キーによって、連想メモリ14aの検索処理が行われる。検索キー生成回路12aは、態様における生成回路の一例である。受信判定回路17は、態様における判定回路の一例である。
図9は、第1実施形態におけるポートACテーブル22aのエントリの例を示す図である。ポートACテーブル22aのアドレスはポート番号と対応している。Action Codeは、2ビットのコードである。Action Code値「00」は、フレームを全て廃棄することを示す。Action Code値「01」は、ユーザフレームを全て廃棄することを示す。Action Code値「11」は、フレームを廃棄しない(受信する)ことを示す。ポートACテーブル22aは、態様における第1のメモリの一例である。Action Code値は、態様における識別子の一例である。
図10は、第1実施形態における連想メモリ14aのエントリの例を示す図である。第1実施形態における連想メモリ14aのエントリには、エントリ有効フラグ,ポート番号,フレームの先頭から20バイト分のデータに加え、Action Codeが含まれる。連想メモリ14aは、態様における連想メモリの一例である。
連想メモリ14aのエントリは、若番から老番の順で検索処理がなされ、完全一致するエントリが見つかるとそれ以降のエントリの検索は行われない。そのため、連想メモリ14aのエントリは、(1)全フレーム廃棄エントリ,(2)制御フレーム用エントリ,(3)全ユーザフレーム廃棄エントリ,(4)ユーザフレーム用エントリの順で、且つ、条件の厳しいエントリから順に配置される。(1)全フレーム廃棄エントリは、Actio
n Code値「00」のエントリである。(3)全ユーザフレーム廃棄エントリは、Action Code値「01」のエントリである。(2)制御フレーム用エントリのAction Code値は、「マスク、1」に設定される。(4)ユーザフレーム用エントリのAction Code値は、「11」に設定される。
(1)全フレーム廃棄エントリと(3)全ユーザフレーム廃棄エントリとは、それぞれ、回線IF回路1aが備えるポートの数だけ用意される。また、(1)全フレーム廃棄エントリと(3)全ユーザフレーム廃棄エントリとのフレームの先頭から20バイト分のデータは、全てマスクである。(3)全ユーザフレーム廃棄エントリのフレームの先頭から20バイト分のデータが全てマスクに設定されるのは、連想メモリ14aのエントリにAction Codeが含まれているからである。なおかつ、(2)制御フレーム用のエントリが(3)全ユーザフレーム廃棄エントリよりも若番アドレスに存在するため、制御フレームの検索キーについての検索処理は(3)全ユーザフレーム廃棄エントリより前に終了する。そのため、(3)全ユーザフレーム廃棄エントリにおいて、フレームの先頭から20バイト分のデータはマスクに設定されていても、これより若番のアドレスのエントリにおいて制御フレームは処理されるため、ユーザフレームのみが廃棄される。なお、連想メモリ14aにも、最終アドレスには全マスクのエントリが登録されている。
図11は、第1実施形態におけるアソシエイトメモリ16のエントリの例を示す図である。アソシエイトメモリ16は、通信装置100のソフトウェアによって、連想メモリ14aの(1)全フレーム廃棄エントリと(3)全ユーザフレーム廃棄エントリとに対応するエントリの受信有効フラグは0(無効)に設定される。アソシエイトメモリ16は、態様における第2のメモリの一例である。受信有効フラグは、態様における処理情報の一例である。
<動作例>
図12は、回線IF回路1aにおけるフレーム受信処理のフローチャートの例である。図12に示されるフローチャートは、回線IF回路1aの各ポートでフレームが受信されると開始される。
OP1では、受信フレームは、PHY/MAC回路11aによって、物理レイヤとMACレイヤの終端処理をされる。例えば、MACレイヤでは、FCSチェックが行われ、受信フレームにFCSにエラーがあった場合には、受信フレームはこの時点で廃棄される。受信フレームにFCSのエラーがない場合には、処理がOP2に進む。
OP2では、受信フレームについて、ポートAC回路21によって、ポートACテーブル22aから受信ポートに対するAction Code値が取得される。Action
Code値は、PHY/MAC回路11aに送信される。次に処理がOP3に進む。
OP3では、受信フレームについて、検索キー生成回路12aによって、連想メモリ14aの検索キーが生成される。検索キー生成回路12aは、PHY/MAC回路11aから、受信フレームと、受信ポートに対するAction Code値とを受信する。検索キー生成回路12aは、受信ポート番号と、Action Code値と、受信フレームの先頭から20バイト分のデータとを結合して検索キーを生成する。検索キーは、連想メモリアクセス制御回路13に送信される。次に処理がOP4に進む。
OP4では、受信フレームの検索キーについて、連想メモリアクセス制御回路13によって連想メモリ14aが検索される。次に処理がOP5に進む。
OP5では、受信フレームの検索キーについて連想メモリ14aの検索の結果得られる
、検索キーに合致するエントリを格納するアドレスが、連想メモリ14aからアソシエイトメモリアクセス制御回路15に出力される。次に処理がOP6に進む。
OP6では、アソシエイトメモリアクセス制御回路15によって、アソシエイトメモリ16から、連想メモリ14aの検索の結果得られたアドレスに対応するエントリが読み出される。読み出されたアソシエイトメモリ16のエントリは、受信判定回路17に送信される。次に処理がOP7に進む。
OP7では、受信フレームについて検出されたアソシエイトメモリ16のエントリの受信有効フラグが1であるか否か、すなわち、受信フレームの受信許可であるか否かが受信判定回路17によって判定される。受信有効フラグが1である場合には(OP7:Yes)、処理がOP9に進む。受信有効フラグが0である場合には(OP7:No)、処理がOP8に進む。
OP8では、受信フレームについて検出されたアソシエイトメモリ16のエントリの受信有効フラグが0であり、受信フレームの受信が拒否されるので、受信フレームは廃棄される。その後、図12に示されるフローチャートが終了する。
OP9では、受信判定回路17によって、受信フレームの装置内宛先がCPU18であるか否かが判定される。受信判定回路17は、受信フレームの装置内宛先を、受信フレームについて検出されたアソシエイトメモリ16のエントリの宛先カード番号によって判定する。受信フレームの装置内宛先がCPU18である場合には(OP9:Yes)、処理がOP10に進む。受信フレームの装置内宛先が、CPU18でない、すなわち、他の回線IF回路である場合には(OP9:No)、処理がOP11に進む。
OP10では、受信フレームは、受信判定回路17によってCPU18に送信される。その後、図12に示されるフローチャートが終了する。
OP11では、受信フレームは、受信判定回路17によって、SW回路2に送信される。このとき、受信判定回路17は、受信フレームについて検出されたアソシエイトメモリ16のエントリの宛先カード番号と、宛先ポート番号とを含む装置内ヘッダを受信フレームに付与してからSW回路2に送信する。その後、図12に示されるフローチャートが終了する。なお、装置内ヘッダが付与された受信フレームは、SW回路2によって、受信フレームについて検出されたアソシエイトメモリ16のエントリの宛先カード番号が示す回線IF回路に転送される。
以下、回線IF回路1aのポート1の設定について、動作例を説明する。以下の動作例では、連想メモリ14aは図10の状態であり、アソシエイトメモリ16は図11の状態であるとする。
(動作例1)受信フレームを全て廃棄する場合
動作例1の場合には、通信装置100のソフトウェアによって、ポートACテーブル22aのポート1に対応するエントリのAction Code値は「00」に設定される。したがって、ポート1の受信フレームの検索キーには、Action Code=00が含まれることとなる。そのため、連想メモリ14aの検索によって、受信フレームの検索キーが図10の連想メモリ14aの(1)全フレーム廃棄エントリにヒットする。図10の連想メモリ14aの(1)全フレーム廃棄エントリに対応する図11のアソシエイトメモリ16の(1)全フレーム廃棄エントリでは、受信有効フラグ=0であるため(図12、OP7:No)、ポート1の受信フレームは受信判定回路17によって廃棄される(図12、OP8)。
(動作例2)制御フレームは受信し、ユーザフレームは廃棄する場合
動作例2の場合には、通信装置100のソフトウェアによって、ポートACテーブル22aのポート1に対応するエントリのAction Code値は「01」に設定される。したがって、ポート1の受信フレームの検索キーには、Action Code=01が含まれることとなる。
受信フレームが制御フレームである場合、連想メモリ14aの検索によって、受信フレームの検索キーが図10の連想メモリ14aの(2)制御フレーム用エントリにヒットする。図10の連想メモリ14aの(2)制御フレーム用エントリに対応する図11のアソシエイトメモリ16の(2)制御フレーム用エントリでは、受信有効フラグ=1であるため、ポート1の受信フレームは受信が許可される(図12、OP7:Yes)。また、図11のアソシエイトメモリ16の(2)制御フレーム用エントリでは、宛先カード番号=CPUであるため(図12、OP9:Yes)、ポート1の受信フレームは、受信判定回路17によってCPU18に送信される(図12、OP10)。
受信フレームがユーザフレームである場合、連想メモリ14aの検索によって、受信フレームの検索キーが図10の連想メモリ14aの(3)全ユーザフレーム廃棄エントリにヒットする。図10の連想メモリ14aの(3)全ユーザフレーム廃棄エントリに対応する図11のアソシエイトメモリ16の(3)全ユーザフレーム廃棄エントリでは、受信有効フラグ=0であるため(図12、OP7:No)、受信フレームは受信判定回路17によって廃棄される(図12、OP8)。
(動作例3)全フレームを受信する場合
動作例3の場合には、通信装置100のソフトウェアによって、ポートACテーブル22aのポート1に対応するエントリのAction Code値は「11」に設定される。したがって、ポート1の受信フレームの検索キーには、Action Code=11が含まれることとなる。
受信フレームが制御フレームである場合、連想メモリ14aの検索によって、受信フレームの検索キーが図10の連想メモリ14aの(2)制御フレーム用エントリにヒットする。図10の連想メモリ14aの(2)制御フレーム用エントリに対応する図11のアソシエイトメモリ16の(2)制御フレーム用エントリでは、受信有効フラグ=1であるため、ポート1の受信フレームは受信が許可される(図12、OP7:Yes)。また、図11のアソシエイトメモリ16の(2)制御フレーム用エントリでは、宛先カード番号=CPUであるため(図12、OP9:Yes)、ポート1の受信フレームは、受信判定回路17によってCPU18に送信される(図12、OP10)。
受信フレームがユーザフレームである場合、連想メモリ14aの検索によって、受信フレームの検索キーが図10の連想メモリ14aの(4)ユーザフレーム用エントリにヒットする。図10の連想メモリ14aの(4)ユーザフレーム用エントリに対応する図11のアソシエイトメモリ16の(4)ユーザフレーム用エントリでは、受信有効フラグ=1であるため、受信フレームの受信が許可される(図12、OP7:Yes)。また、図11のアソシエイトメモリ16の(4)ユーザフレーム用エントリでは、宛先カード番号に他の回線IF回路の番号が格納されているため(図12、OP9:No)、ポート1の受信フレームは、受信判定回路17によってSW回路2に送信される(図12、OP11)。
<第1実施形態の作用効果>
第1実施形態では、Action Codeを連想メモリ14aのエントリに含め、予
めAction Codeの各値に対応するエントリを連想メモリ14aとアソシエイトメモリ16とに登録しておく。また、アソシエイトメモリ16のエントリの受信有効フラグは、対応する連想メモリ14aのエントリのAction Codeの値が示す処理動作に連動して設定される。これによって、各ポートに対するAction Code値を変更するだけで、受信フレームの検索キーにヒットする連想メモリ14aのエントリも変わり、結果として、受信フレームのフィルタリングの設定が変わる。このとき、連想メモリ14a及びアソシエイトメモリ16のエントリの設定変更は生じない。
したがって、第1実施形態によれば、ポートACテーブル22aのエントリに含まれるAction Code値の変更によってパケットフィルタリングの設定を変更することができるので、パケットフィルタリングの切替に要する時間を短縮することができる。また、連想メモリ14a及びアソシエイトメモリ16のエントリの変更を行わなくてもよいため、パケットフィルタリングの切替に係る手間を抑えることができる。また、連想メモリ14aのエントリの変更を行わなくてもよいため、パケットフィルタリングの切替に伴って連想メモリ14の多数のエントリへのアクセス制御を行わない。このため、CPU18やソフトウェアへの負荷を抑制することができる。すなわち、第1実施形態によれば、パケットフィルタリングの設定変更を高速かつ一括して行うことができる。
<第2実施形態>
第2実施形態の回線IF回路1b(図8)は、連想メモリ14b,ポートACテーブル22b以外の構成は、第1実施形態の回線IF回路1aと同様である。第2実施形態では、回線IF回路1bの複数のポートを1つのグループとして扱うポートグループが導入される。連想メモリ14b及びアソシエイトメモリ16において、ポートグループに含まれる複数のポートは1つのエントリで制御される。第2実施形態では、第1実施形態と共通する箇所の説明は省略される。
図13は、第2実施形態におけるポートACテーブル22bのエントリの構成例を示す図である。ポートACテーブル22bのエントリには、Action Code値に加えて、ポートグループ番号が含まれる。同じポートグループに属する物理ポートのエントリには、ポートグループ番号に同一の値が設定される。いずれのポートグループにも属さないポートのエントリには、ポートグループ番号に値が設定されない(又は、Nullが設定される)。図13に示される例では、ポート1からポート10は、ポートグループ番号1のポートグループに含まれる。
ポートACテーブル22bに設定されるポートグループ値は、Action Code値とともにポートAC回路21によって読み出され、PHY/MAC回路11aを通じて検索キー生成回路12aに送信される。検索キー生成回路12aは、受信フレームの受信ポート番号,Action Code値,ポートグループ値,受信フレームの先頭から20バイト分のデータを結合して検索キーを生成する。
図14は、第2実施形態における連想メモリ14bのエントリの構成例を示す図である。連想メモリ14bのエントリには、エントリ有効フラグ,Action Code,ポート番号,フレームの先頭から20バイト分のデータに加え、ポートグループ番号が含まれる。連想メモリ14bのエントリのポートグループ番号には、受信ポートに格納されたポート番号に対応するポートACテーブル22bのエントリのポートグループ番号と同じ値が設定される。受信ポートがいずれのポートグループにも属さない場合には、連想メモリ14bのエントリのポートグループ番号はマスクに設定される。図14に示される連想メモリ14bの例は、図13に示されるポートACテーブル22bと対応しており、ポート1からポート10はポートグループ番号1のポートグループに含まれる。したがって、図14に示される連想メモリ14bのポート1からポート10に該当する(1)全フレー
ム廃棄エントリと(3)全ユーザフレーム廃棄エントリとは、それぞれ1つのエントリとなる。
図15は、第2実施形態におけるアソシエイトメモリ16のエントリの構成例を示す図である。図15に示されるアソシエイトメモリ16の例は、図14に示される連想メモリ14bに対応している。アソシエイトメモリ16においても、連想メモリ14bと同様に、ポート1からポート10に該当する(1)全フレーム廃棄エントリと(3)全ユーザフレーム廃棄エントリとは、それぞれ1つのエントリとなる。
第2実施形態では、ポートグループ番号を用いることによって、連想メモリ14b及びアソシエイトメモリ16の複数の物理ポート分のエントリを1つのエントリで管理することができる(例えば、図14、図15)。したがって、第2実施形態によれば、連想メモリ14bとアソシエイトメモリ16とのエントリ数を削減し、連想メモリ14bとアソシエイトメモリ16との容量を削減することができる。また、第2実施形態では、同じポートグループに属する複数の物理ポートのパケットフィルタリングの設定及び設定変更を一括して行うことができる。そのため、例えば、リンクアグリゲーション等の複数の物理ポートを1つの論理的なポートとして扱う場合に適している。
<第3実施形態>
第3実施形態では、通信装置100が受信フレームのループバックを行えるように、回線IF回路を構成する。ループバックとは、フレームを受信したポートから、同じフレームを送信することである。第3実施形態では、ループバックは、SW回路2を経由して、フレームを受信したポートへ折り返し返信することによって行われる。ループバックは、例えば、ネットワークの運用開始前や障害発生時の調査作業等において、ポート単位の装置の故障診断等に用いられる。第3実施形態における回線IF回路1c(図8)では、連想メモリ14c,ポートACテーブル22c以外の構成は、第1実施形態における回線IF回路1aの構成と同様である。尚、第3実施形態において、第1実施形態と共通する箇所の説明は省略される。
図16は、第3実施形態におけるポートACテーブル22cのエントリの例である。第3実施形態では、Action Codeは3ビットに拡張される。Action Code値「000」は、該当ポートで受信する全フレームの廃棄を示す。Action Code値「001」は、該当ポートで受信する全ユーザフレームの廃棄を示す。Action Code値「011」は、該当ポートで受信する全てのフレームを廃棄しないこと(受信すること)を示す。Action Code値「100」は、該当ポートで受信する全てのフレームのループバックを示す。Action Code値「101」は、該当ポートで受信する全てのユーザフレームのループバックを示す。
図17は、第3実施形態における連想メモリ14cのエントリの構成例を示す図である。第3実施形態の連想メモリ14cのエントリでは、Action Codeが3ビットに拡張されている。また、第3実施形態の連想メモリ14cでは、ループバック用のエントリが追加されている。
連想メモリ14cのエントリは、若番から老番の順で検索処理がなされるため、(1)全フレーム廃棄エントリ,(2)全フレームループバックエントリ,(3)制御フレーム用エントリ,(4)全ユーザフレーム廃棄エントリ,(5)全ユーザフレームループバックエントリ,(6)ユーザフレーム用エントリの順に配置される。(1)全フレーム廃棄エントリは、Action Code値「000」のエントリである。(2)全フレームループバックエントリは、Action Code値「100」のエントリである。(4)全ユーザフレーム廃棄エントリは、Action Code値「001」のエントリで
ある。(5)全ユーザフレームループバックエントリは、Action Code値「101」のエントリである。(3)制御フレーム用エントリのAction Code値は、「0,マスク,1」に設定される。(4)ユーザフレーム用エントリのAction Code値は、「011」に設定される。
(1)全フレーム廃棄エントリ,(2)全フレームループバックエントリ,(4)全ユーザフレーム廃棄エントリ,(5)全ユーザフレームループバックエントリは、それぞれ、回線IF回路1cが備えるポートの数だけ用意される。また、(1)全フレーム廃棄エントリ,(2)全フレームループバックエントリ,(4)全ユーザフレーム廃棄エントリ,(5)全ユーザフレームループバックエントリのそれぞれのフレームの先頭から20バイト分のデータは、全てマスクである。なお、連想メモリ14cにも、最終アドレスには全マスクのエントリが登録されている。
図18は、第3実施形態におけるアソシエイトメモリ16のエントリの構成例である。図18に示されるアソシエイトメモリ16は、図17に示される連想メモリ14cに対応している。第3実施形態におけるアソシエイトメモリ16も、連想メモリ14cと同様に、ループバック用のエントリが追加されている。アソシエイトメモリでも、(1)全フレーム廃棄エントリ,(2)全フレームループバックエントリ,(4)全ユーザフレーム廃棄エントリ,(5)全ユーザフレームループバックエントリは、それぞれ、回線IF回路1cが備えるポートの数だけ用意される。アソシエイトメモリ16の(2)全フレームループバックエントリと(4)全ユーザフレームループバックエントリとでは、受信有効フラグ=1(有効),宛先カード番号が回線IF回路1c自身のカード番号,宛先ポート番号が回線IF回路1cのそれぞれのポート番号となる。
(動作例4)全フレームをループバックする場合
動作例4の場合には、通信装置100のソフトウェアによって、ポートACテーブル22cのポート1に対応するエントリのAction Code値は「100」に設定される。これによって、ポート1における受信フレームの検索キーには、Action Code=100が含まれることとなる。
検索キーに含まれるAction Code値が「100」であるため、連想メモリ14cの検索によって、受信フレームの検索キーは図17の連想メモリ14cの(2)全フレームループバックエントリにヒットする。図17の連想メモリ14cの(2)全フレームループバックエントリに対応する図18のアソシエイトメモリ16の(2)全フレームループバックエントリでは、受信有効フラグ=1であるため、ポート1の受信フレームは受信が許可される。また、図18のアソシエイトメモリ16の(2)全フレームループバックエントリでは、宛先カード番号に回線IF回路1c自身の番号と、宛先ポート番号に受信ポートであるポート1が格納されている。したがって、受信フレームは、宛先カード番号が自身の番号,宛先ポート番号が受信ポートであるポート1の装置内ヘッダが付与されて、受信判定回路17によってSW回路2に送信される。受信フレームは、その後、SW回路2によって再び回線IF回路1cに送信され、回線IF回路1cにおいて装置内ヘッダを取り除かれて、ポート1から再び送信される。
(動作例5)全ユーザフレームをループバックする場合
動作例5の場合には、通信装置100のソフトウェアによって、ポートACテーブル22cのポート1に対応するエントリのAction Code値は「101」に設定される。これによって、ポート1における受信フレームの検索キーには、Action Code=101が含まれることとなる。
受信フレームが制御フレームである場合、連想メモリ14cの検索によって、受信フレ
ームの検索キーが図17の連想メモリ14cの(3)制御フレーム用エントリにヒットする。図17の連想メモリ14cの(3)制御フレーム用エントリに対応する図18のアソシエイトメモリ16の(3)制御フレーム用エントリでは、受信有効フラグ=1であるため、ポート1の受信フレームは受信が許可される。また、図18のアソシエイトメモリ16の(3)制御フレーム用エントリでは、宛先カード番号=CPUであるため、ポート1の受信フレームは、受信判定回路17によってCPU18に送信される。
受信フレームがユーザフレームである場合、検索キーに含まれるAction Code値が「101」であるため、受信フレームの検索キーは図17の連想メモリ14cの(5)全ユーザフレームループバックエントリにヒットする。図17の連想メモリ14cの(5)全ユーザフレームループバックエントリに対応する図18のアソシエイトメモリ16の(5)全ユーザフレームループバックエントリでは、受信有効フラグ=1であるため、ポート1の受信フレームは受信が許可される。また、図18のアソシエイトメモリ16の(5)全ユーザフレームループバックエントリでは、宛先カード番号に回線IF回路1c自身の番号と、宛先ポート番号に受信ポートであるポート1が格納されている。したがって、受信フレームは、宛先カード番号が自身の番号,宛先ポート番号が受信ポートであるポート1の装置内ヘッダが付与されて、受信判定回路17によってSW回路2に送信される。受信フレームは、その後、SW回路2によって再び回線IF回路1cに送信され、回線IF回路1cにおいて装置内ヘッダを取り除かれて、ポート1から再び送信される。
以上のように、第3実施形態によれば、Action Codeを3ビットに拡張し、ループバックを指定するAction Code値を導入する。これによって、連想メモリ14cのエントリの追加,削除,並び替え,及び変更を行うことなく、通信装置100は、ポートごとにループバックを実行することが可能となる。なお、ポートACテーブル22c及び連想メモリ14cのエントリに、第2実施形態におけるポートグループ番号を設定することも可能である。
<第4実施形態>
第4実施形態における回線IF回路1d(図8)では、アソシエイトメモリ16d以外の構成は、第1実施形態における回線IF回路1aから第3実施形態における回線IF回路1cのいずれであってもよい。
図19は、第4実施形態におけるアソシエイトメモリ16dのエントリの構成例を示す図である。第4実施形態におけるアソシエイトメモリ16dのエントリには、受信有効フラグ,宛先カード番号,宛先ポート番号に加え、廃棄フラグが含まれる。廃棄フラグは、例えば、0が廃棄無し、1が廃棄有りを示す。アソシエイトメモリ16dのエントリの廃棄フラグが1である場合に、このエントリに対応する受信フレームは廃棄される。なお、図19に示されるアソシエイトメモリ16dのエントリは、第3実施形態の連想メモリ14cに対応している。ただし、これに限られず、第4実施形態のアソシエイトメモリ16dのエントリは、第1実施形態の連想メモリ14a、第2実施形態の連想メモリ14bのいずれに対応していてもよい。
アソシエイトメモリ16dのエントリ内の受信有効フラグも、例えば、有効(1に設定)でフレームの受信、無効(0に設定)でフレームの廃棄を行うことを示す。ただし、受信有効フラグは、エントリの有効性を示すものである。例えば、ソフトウェアのエントリ登録、削除等の設定ミスにより、連想メモリ14cのエントリのエントリ有効フラグが有効(1に設定)であるが、アソシエイトメモリ16dの対応するエントリの受信有効フラグが廃棄(0に設定)の場合には、受信フレームは廃棄される。この場合、受信フレームの廃棄は意図したものなのか、連想メモリ14cとアソシエイトメモリ16dとの設定の不一致によるものなのかは明確に分からない。
アソシエイトメモリ16dに廃棄フラグを設けることにより、フレームの廃棄が明示的な廃棄であるのか、設定ミスによる廃棄であるのかが明確に判定することが可能となる。例えば、受信有効フラグが無効(0設定)であることにより受信フレームが廃棄された場合には、受信判定回路17がCPU18に通知し、CPU18がこのエントリの廃棄フラグを確認することによって、連想メモリ14cとアソシエイトメモリ16dとの設定不一致の検出が可能となる。
<第5実施形態>
第5実施形態では、通信装置100は、連想メモリのエントリにヒットした受信フレーム数をカウントし、統計情報を収集する。
図20は、第5実施形態における回線IF回路1eの構成例を示す図である。回線IF回路1eは、新たに、統計情報収集回路23を含む。なお、図20に示される例では、回線IF回路1eの受信側の構成のみが示されている。なお、第5実施形態の回線IF回路1eでは、統計情報収集回路23以外の構成は、第1実施形態から第4実施形態のいずれの回線IF回路と同様であってもよい。ただし、以下では、回線IF回路1eの統計情報収集回路23以外の構成は、第1実施形態と同様であることを想定して説明する。
第5実施形態では、アソシエイトメモリアクセス制御回路15は、連想メモリ14aから受信した、受信フレームにヒットした連想メモリ14aのエントリのアドレスを統計情報収集回路23に送信する。
統計情報収集回路23は、統計情報収集回路23内のメモリに統計情報テーブル24を保持する。アソシエイトメモリアクセス制御回路15から連想メモリ14aのアドレスを受信すると、統計情報収集回路23は、受信した連想メモリ14aのアドレスに対するカウント値を1つ加算する。
図21は、統計情報テーブル24の構成例を示す図である。統計情報テーブル24は、連想メモリ14aのアドレスをテーブルインデックスとしてそれぞれのカウンタ値を保持する。このカウンタ値が、連想メモリ14aのそれぞれのエントリのヒットした受信フレーム数を示す。図21では、カウント値は受信フレーム数を示しているが、これに限られず、受信バイト数とカウント値として保持してもよい。
例えば、受信フレームが連想メモリ14aのアドレス100のエントリにヒットした場合には、アソシエイトメモリアクセス制御回路15は、アドレス100を統計情報収集回路23に送信する。統計情報収集回路23は、統計情報テーブル24のアドレス100のカウント値に1を加算する。
統計情報テーブル24をソフトウェアが読みだすことによって、連想メモリ14aの各エントリに対してヒットしたフレーム数を把握することができる。連想メモリ14aのアドレスはアソシエイトメモリ16のアドレスと対応しているため、統計情報テーブル24の各エントリに対してヒットしたフレーム数が、受信フレーム数であるか、廃棄フレーム数であるかを判定することが可能である。例えば、アソシエイトメモリ16の受信有効フラグが有効を示すエントリのアドレスに該当する統計情報テーブル24の各エントリのフレーム数を加算することによって、回線IF回路1eの総受信フレーム数をユーザへ提供することが可能となる。また、例えば、アソシエイトメモリ16の受信有効フラグが無効(廃棄)を示すエントリのアドレスに該当する統計情報テーブル24の各エントリのフレーム数を加算することによって、回線IF回路1eの総廃棄フレーム数をユーザへ提供することが可能となる。第5実施形態では、連想メモリのエントリ単位に統計情報を収集す
ることが可能であるため、通信装置100内で処理されるフレームの詳細な統計情報を提供することができる。
<第6実施形態>
第6実施形態では、通信装置100は、統計情報を集約して収集する。第6実施形態の回線IF回路1f(図20)の構成は、アソシエイトメモリ16f,統計情報テーブル24f以外は第5実施形態と同様である。
図22は、第6実施形態におけるアソシエイトメモリ16fのエントリの構成例を示す図である。第6実施形態では、アソシエイトメモリ16fのエントリには、統計番号が追加される。なお、図22に示されるアソシエイトメモリ16fの例は、第4実施形態のアソシエイトメモリ16d(図19)のエントリに統計番号が追加されたものとなっている。ただし、これに限られず、第6実施形態のアソシエイトメモリ16fは、第1実施形態から第3実施形態のアソシエイトメモリ16のエントリに統計番号が追加されたものでもよい。
図23は、第6実施形態における統計情報テーブル24fの構成例を示す図である。第6実施形態における統計情報テーブル24fのテーブルインデックスは、アソシエイトメモリ16fの統計番号である。すなわち、統計情報テーブル24fのアドレスは、統計番号に対応している。
第6実施形態では、アソシエイトメモリ制御回路15は、受信フレームがヒットしたアソシエイトメモリ16fのエントリを統計情報収集回路23にも送信する。統計情報収集回路23は、アソシエイトメモリ制御回路15から受信したアソシエイトメモリ16fのエントリに含まれる統計番号に対応する統計情報テーブル24fのアドレスに格納されるカウント値に1を加算する。
アソシエイトメモリ16fの異なる複数エントリの統計情報を一括して収集したい場合には、異なる複数のエントリに共通の統計番号を設定することによって、一括でこれらの統計情報を取得することが可能となる。例えば、共通するVLAN IDを持つ複数のユーザフレームの統計情報をまとめて収集したい場合や、回線IF回路1f内で廃棄されたフレーム数を一括で収集したい場合である。
第6実施形態では、集約した統計情報を収集することができ、ソフトウェアが個々の統計情報の足し合わせを行うことがないので、ソフトウェアにかかる負荷を軽減することができる。また、第6実施形態では、集約した統計情報が収集されるため、統計情報テーブル24fのサイズを縮小することが可能である。また、連想メモリの最終アドレスには、全マスク設定のエントリが配置されているので、最終アドレスのエントリ以外に合致しない受信フレームは、最終アドレスのエントリにヒットする。これによって、登録されたフレーム以外のフレームを受信したことを示す統計情報も収集可能となる。例えば、通信装置100は、意図しないVLAN IDを持つフレームを受信したことを示す統計情報も収集可能である。
<第7実施形態>
第7実施形態では、連想メモリのエントリにAction Codeは含まれず、連想メモリの検索結果によってパケットフィルタリングの判定は行われない。第7実施形態では、新たに、パケットフィルタリングの判定を行う回路が追加される。
図24は、第7実施形態における回線IF回路1gの構成例を示す図である。第7実施形態における回線IF回路1gは、新たにパケットフィルタリングの判定を行うACフィ
ルタ回路25を含む。また、図24では、回線IF回路1gの送信側の回路である送信判定回路26も示される。第7実施形態における回線IF回路1gの構成は、アソシエイトメモリ16g,受信判定回路17g,ポートAC回路21g,ポートACテーブル22g,ACフィルタ回路25、送信判定回路26以外の構成は、図5に示される回線IF回路1と同様であるとする。
図25は、第7実施形態におけるアソシエイトメモリ16gのエントリの構成例を示す図である。第7実施形態におけるアソシエイトメモリ16gのエントリには、受信有効フラグ,宛先カード番号,宛先ポート番号に加え、エントリAction Codeが含まれる。エントリAction Codeは、受信フレームがユーザフレームであるか、制御フレームであるかを示すコードである。
エントリAction Code値が「001」である場合には、フレームが制御フレームであることが示される。エントリAction Code値が「010」である場合には、フレームがユーザフレームであることが示される。
図26は、第7実施形態におけるポートACテーブル22gの例を示す図である。ポートACテーブル22gは、ポート番号をテーブルインデックスとして、各ポートに対するポートAction Code値が設定されている。第7実施形態におけるポートAction Code値が「000」である場合には、フレーム全廃棄を示す。ポートAction Code値が「001」である場合には、制御フレームのみ受信、すなわち、ユーザフレーム全廃棄を示す。ポートAction Code値が「010」である場合には、ユーザフレームのみ受信、すなわち、制御フレーム全廃棄を示す。ポートAction Code値が「011」である場合には、全フレーム受信が示される。ポートAction Code値が「100」である場合には、ユーザフレームのみループバックされることが示される。
第7実施形態において、ポートAction Code値に、全フレームのループバックを指定する値が存在しないのは、以下の理由のためである。制御フレームには、ループバックの設定及び解除を指示する制御フレームが含まれる。全フレームのループバックがポートに設定されると、ループバックの解除を指示する制御フレームまでループバックされてしまうため、ループバックの解除ができなくなるおそれがある。そのため、ポートAction Code値には、全フレームのループバックを指定する値が存在しない。
第7実施形態では、受信判定回路17gは、受信フレームに対応するアソシエイトメモリ16gのエントリの受信有効フラグが有効(1に設定)である場合に、アソシエイトメモリ16gのエントリと受信フレームの受信ポート番号とをACフィルタ回路25に送信する。ACフィルタ回路25は、受信した受信ポート番号をもとにポートAC回路21gにアクセスする。ポートAC回路21gは、受信ポート番号に対応するポートAction Code値をポートACテーブル22gから読出し、ACフィルタ回路25に送信する。
ACフィルタ回路25は、アソシエイトメモリ16gのエントリに含まれるエントリAction Code値と、受信ポートのポートAction Code値と、から、受信フレームの廃棄の有無,ループバックの有無を判定するACフィルタ判定処理を行う。ACフィルタ回路25によるACフィルタ判定処理の結果は受信判定回路17gに送信される。受信判定回路17gは、ACフィルタ判定回路25の判定結果に基づいて、受信フレームの廃棄,転送,ループバック等に係る処理を実行する。また、第7実施形態において、受信判定回路17gは、ACフィルタ判定回路25によるACフィルタ判定処理の結果、受信フレームをループバックする際には、この受信フレームをSW回路2ではなく、
送信判定回路26に送信する。
送信判定回路26は、SW回路2,受信判定回路17g,CPU18からフレームを受信する。なお、SW回路2からの入力,受信判定回路17gからの入力,CPU18からの入力は、それぞれ異なる信号線を介して行われる。送信判定回路26が受信するフレームには、装置内ヘッダが付与されている。送信判定回路26は、受信フレームに付与される装置内ヘッダの宛先ポート番号のポートに受信フレームを送信する。
図27は、ACフィルタ回路25の受信フレームのACフィルタ判定処理のフローチャートの例である。図27に示されるフローチャートは、ACフィルタ回路25が、アソシエイトメモリ16gのエントリと、受信ポート番号に対するポートAction Code値とを受信すると開始される。以降、Action Code値は、AC値と表記する。
OP21では、ACフィルタ回路25は、受信ポートに対するポートAC値が011であるか否かを判定する。受信ポートに対するポートAC値が011である場合には(OP21:Yes)、受信ポートでは全フレームを受信することが示される。この場合には、ACフィルタ回路25は、受信フレームを廃棄しないことを判定する(OP24)。その後、図27に示されるフローチャートが終了する。受信ポートに対するポートAC値が011でない場合には(OP21:No)、処理がOP22に進む。
OP22では、ACフィルタ回路25は、受信ポートに対するポートAC値が001であるか否かを判定する。受信ポートに対するポートAC値が001である場合には(OP22:Yes)、受信ポートでは制御フレームのみを受信することが示される。この場合には、処理がOP23に進む。受信ポートに対するポートAC値が001でない場合には(OP22:No)、処理がOP26に進む。
OP23では、ACフィルタ回路25は、受信フレームについて検出されたアソシエイトメモリ16gのエントリに含まれるエントリAC値が001であるか否かを判定する。エントリAC値が001である場合には(OP23:Yes)、受信フレームが制御フレームであるので、ACフィルタ回路25は、受信フレームを廃棄しないことを判定する(OP24)。その後、図27に示されるフローチャートが終了する。エントリAC値が001でない場合、すなわち、受信フレームが制御フレームであることが明示されていない場合には(OP23:No)、ACフィルタ回路25は、受信フレームを廃棄することを判定する(OP25)。その後、図27に示されるフローチャートが終了する。
OP26では、ACフィルタ回路25は、受信ポートに対するポートAC値が010であるか否かを判定する。受信ポートに対するポートAC値が010である場合には(OP26:Yes)、受信ポートではユーザフレームのみを受信することが示される。この場合には、処理がOP27に進む。受信ポートに対するポートAC値が010でない場合には(OP26:No)、処理がOP30に進む。
OP27では、ACフィルタ回路25は、受信フレームについて検出されたアソシエイトメモリ16gのエントリに含まれるエントリAC値が010であるか否かを判定する。エントリAC値が010である場合には(OP27:Yes)、受信フレームがユーザフレームであるので、ACフィルタ回路25は、受信フレームを廃棄しないことを判定する(OP28)。その後、図27に示されるフローチャートが終了する。エントリAC値が010でない場合、すなわち、受信フレームがユーザフレームであることが明示されていない場合には(OP27:No)、ACフィルタ回路25は、受信フレームを廃棄することを判定する(OP29)。その後、図27に示されるフローチャートが終了する。
OP30では、ACフィルタ回路25は、受信ポートに対するポートAC値が100であるか否かを判定する。受信ポートに対するポートAC値が100である場合には(OP30:Yes)、受信ポートではユーザフレームのみをループバックすることが示される。この場合には、処理がOP31に進む。受信ポートに対するポートAC値が100でない場合には(OP30:No)、ACフィルタ回路25は、受信フレームを廃棄することを判定する(OP34)。その後、図27に示されるフローチャートが終了する。
OP31では、ACフィルタ回路25は、受信フレームについて検出されたアソシエイトメモリ16gのエントリに含まれるエントリAC値が010であるか否かを判定する。エントリAC値が010である場合には(OP31:Yes)、受信フレームがユーザフレームであるので、ACフィルタ回路25は、受信フレームをループバックすることを判定する(OP32)。その後、図27に示されるフローチャートが終了する。エントリAC値が010でない場合、すなわち、受信フレームがユーザフレームであることが明示されていない場合には(OP31:No)、ACフィルタ回路25は、受信フレームを廃棄しないことを判定する(OP33)。その後、図27に示されるフローチャートが終了する。
図28A及び図28Bは、第7実施形態における回線IF回路1gのフレーム受信処理のフローチャートの例である。図28A及び図28Bに示されるフローチャートは、回線IF回路1gがフレームを受信すると開始される。
OP41では、受信フレームは、PHY/MAC処理回路11によって、物理レイヤとMACレイヤの終端処理をされる。例えば、MACレイヤでは、FCSチェックが行われ、受信フレームにFCSにエラーがあった場合には、受信フレームはこの時点で廃棄される。受信フレームにFCSのエラーがない場合には、処理がOP42に進む。
OP42では、受信フレームについて、検索キー生成回路12によって、連想メモリ14の検索キーが生成される。検索キー生成回路12は、受信フレームを受信したポート番号と、受信フレームの先頭から20バイト分のデータとを結合して検索キーを生成する。検索キーは、連想メモリアクセス制御回路13に送信される。次に処理がOP43に進む。
OP43では、受信フレームの検索キーについて、連想メモリアクセス制御回路13によって連想メモリ14が検索される。次に処理がOP44に進む。
OP44では、受信フレームの検索キーについて連想メモリ14の検索の結果得られたエントリを格納するアドレスが、連想メモリ14からアソシエイトメモリアクセス制御回路15に出力される。次に処理がOP45に進む。
OP45では、アソシエイトメモリアクセス制御回路15によって、アソシエイトメモリ16gから、受信したアドレスに対応するエントリが読み出される。読み出されたアソシエイトメモリ16gのエントリは、受信判定回路17gに送信される。次に処理がOP46に進む。
OP46では、受信フレームについて検出されたアソシエイトメモリ16gのエントリの受信有効フラグが0であるか否か、すなわち、受信フレームの受信が許可されている時か否かが受信判定回路17gによって判定される。受信有効フラグが0である場合には(OP46:Yes)、処理がOP47に進む。受信有効フラグが1である場合には(OP46:No)、処理がOP48に進む。
OP47では、受信フレームについて検出されたアソシエイトメモリ16gのエントリの受信有効フラグが0であり、受信フレームの受信が拒否されるので、受信フレームは廃棄される。その後、図28Aに示されるフローチャートが終了する。
OP48では、受信判定回路17gは、受信フレームのアソシエイトメモリ16gのエントリと受信ポート番号とをACフィルタ回路25に送信する。ACフィルタ回路25は、受信ポート番号によってポートAC回路21gにアクセスし、受信ポートに対して設定されるポートAC値を取得する。次に処理がOP49に進む。
OP49では、ACフィルタ回路25は、ACフィルタ判定処理を実行する。ACフィルタ判定処理は、例えば、図27に示されるフローチャートの処理である。ACフィルタ回路25は、ACフィルタ判定処理の結果を受信判定回路17gに送信する。次に処理がOP50に進む。
OP50では、受信判定回路17gは、ACフィルタ判定処理の結果が受信フレームの廃棄であるか否かを判定する。ACフィルタ判定処理の結果が受信フレームの廃棄である場合には(OP50:Yes)、処理がOP51に進む。ACフィルタ判定処理の結果が受信フレームの廃棄でない場合には(OP50:No)、処理がOP52に進む。
OP51では、ACフィルタ判定処理の結果が受信フレームの廃棄であるので、受信判定回路17gは、受信フレームを廃棄する。その後、図28Bに示されるフローチャートが終了する。
OP52では、受信判定回路17gは、ACフィルタ判定処理の結果が、受信フレームのループバックであるか否かを判定する。ACフィルタ判定処理の結果が受信フレームのループバックである場合には(OP52:Yes)、処理がOP53に進む。ACフィルタ判定処理の結果が受信フレームのループバックでない場合には(OP52:No)、処理がOP54に進む。
OP53では、受信判定回路17gは、受信フレームに、宛先カード番号が回線IF回路1g自身の番号、宛先ポート番号が受信フレームの受信ポート番号である装置内ヘッダを付与し、受信フレームを送信判定回路26に送信する。この受信フレームは、送信判定回路26によって、装置内ヘッダの宛先ポート番号のポートへ送信され、該ポートから出力される。その後、図28Bに示されるフローチャートが終了する。
OP54では、受信判定回路17gは、受信フレームがユーザフレームであるか否かを判定する。この判定は、受信フレームのアソシエイトメモリ16gのエントリ内のエントリAC値から判定されてもよいし、アソシエイトメモリ16gのエントリの宛先カードがCPU18であるか否かで判定されてもよい。受信フレームがユーザフレームである場合には(OP54:Yes)、処理がOP55に進む。受信フレームがユーザフレームでない場合には(OP54:No)、処理がOP56に進む。
OP55では、受信フレームは、受信判定回路17gによって、SW回路2に送信される。このとき、受信判定回路17gは、受信フレームについて検出されたアソシエイトメモリ16gのエントリの宛先カード番号と、宛先ポート番号とを含む装置内ヘッダを受信フレームに付与してからSW回路2に送信する。その後、図28Bに示されるフローチャートが終了する。
OP56では、受信フレームが制御フレームであるので、受信判定回路17gは、受信
フレームをCPU18に送信する。その後、図28Bに示されるフローチャートが終了する。
第7実施形態においても、各ポートに対するポートAC値を変更することによって、連想メモリ14、アソシエイトメモリ16gのエントリを追加、削除、変更等をすることなく、パケットフィルタリングの設定を変更することができる。なお、第7実施形態では、受信判定回路17gは、受信フレームをループバックする場合には、SW回路2に送信せずに直接送信判定回路26に受信フレームを送信する。ただし、これに限られず、受信判定回路17gは、第3実施形態と同様に、受信フレームをループバックする場合には、SW回路2に送信してもよい。
<第8実施形態>
第8実施形態では、通信装置100は、VLAN単位のパケットフィルタリングを実行する。
図29は、第8実施形態における回線IF回路1hの構成例を示す図である。第8実施形態における回線IF回路1hでは、新たにVLAN AC回路27が含まれる。第8実施形態における回線IF回路1hの構成は、VLAN AC回路27とACフィルタ回路25h以外は、第7実施形態における回線IF回路1gと同様である。
ACフィルタ回路25hは、受信判定回路17gから受信した受信フレームに含まれるVLAN IDをもとにVLAN AC回路27にアクセスする。VLAN AC回路27は、VLAN AC回路27内に備えられるメモリ内にVLAN ACテーブル28を有する。VLAN ACテーブル28には、VLAN IDに対するVLAN Action Code値が保持されている。VLAN AC回路27は、受信フレームのVLANタグに含まれるVLAN IDに対応するVLAN Action Code値をVLAN ACテーブル28から読み出し、ACフィルタ回路25hに送信する。ACフィルタ回路25hは、VLAN AC回路27から受信するVLAN AC値と、受信フレームのアソシエイトメモリ16gのエントリとから、受信フレームのACフィルタ判定処理を行う。なお、受信フレームに2段以上のVLANタグが含まれる場合には、例えば、VLAN AC回路27は、最も外側のVLANタグに含まれるVLAN IDについてVLAN AC値をVLAN ACテーブルから読み出す。
図30は、VLAN ACテーブル28の例を示す図である。VLAN ACテーブル28では、VLAN IDをテーブルインデックスとして、各VLAN IDに対してVLAN Action Code値が設定される。すなわち、VLAN ACテーブル28のアドレスはVLAN IDに対応している。VLAN AC値が「000」である場合には、該当VLANの受信フレーム全廃棄が示される。VLAN AC値が「001」である場合には、該当VLANの受信フレームのうち制御フレームのみを受信することが示される。VLAN AC値が「010」である場合には、該当VLANの受信フレームのうちユーザフレームのみを受信することが示される。VLAN AC値が「011」である場合には、該当VLANの受信フレームをすべて受信することが示される。VLAN
AC値が「100」である場合には、該当VLANの受信フレームのうちユーザフレームのみがループバックされることが示される。なお、VLAN AC値に全フレームのループバックを指定する値が存在しないのは、前述のポートAC値に全フレームのループバックを指定する値が存在しないことと同じ理由である。
図31は、第8実施形態におけるACフィルタ回路25hのACフィルタ判定処理のフローチャートの例である。図31に示されるフローチャートは、ACフィルタ回路25hが受信フレームのアソシエイトメモリ16gのエントリと、VLAN AC値とを取得す
ると開始される。
OP61では、ACフィルタ回路25hは、受信フレームのVLAN AC値が011であるか否かを判定する。VLAN AC値が011である場合には(OP61:Yes)、受信フレームが示すVLANでは受信フレームをすべて受信することが示され、ACフィルタ回路25hは、受信フレームを廃棄しないことを判定する(OP76)。その後、図31に示されるフローチャートが終了する。VLAN AC値が011でない場合には(OP61:No)、処理がOP62に進む。
OP62では、ACフィルタ回路25hは、受信フレームのVLAN AC値が001であるか否かを判定する。VLAN AC値が001である場合には(OP62:Yes)、受信フレームが示すVLANでは制御フレームのみが受信されることが示される。この場合には、処理がOP63に進む。VLAN AC値が001でない場合には(OP62:No)、処理がOP66に進む。
OP63では、ACフィルタ回路25hは、受信フレームについて検出されたアソシエイトメモリ16gのエントリに含まれるエントリAC値が001であるか否かを判定する。エントリAC値が001である場合には(OP63:Yes)、受信フレームが制御フレームであるので、ACフィルタ回路25hは、受信フレームを廃棄しないことを判定する(OP64)。その後、図31に示されるフローチャートが終了する。エントリAC値が001でない場合、すなわち、受信フレームが制御フレームであることが明示されていない場合には(OP63:No)、ACフィルタ回路25hは、受信フレームを廃棄することを判定する(OP65)。その後、図31に示されるフローチャートが終了する。
OP66では、ACフィルタ回路25hは、受信フレームのVLAN AC値が010であるか否かを判定する。VLAN AC値が010である場合には(OP66:Yes)、受信フレームが示すVLANではユーザフレームのみが受信されることが示される。この場合には、処理がOP67に進む。VLAN AC値が010でない場合には(OP66:No)、処理がOP70に進む。
OP67では、ACフィルタ回路25hは、受信フレームについて検出されたアソシエイトメモリ16gのエントリに含まれるエントリAC値が010であるか否かを判定する。エントリAC値が010である場合には(OP67:Yes)、受信フレームがユーザフレームであるので、ACフィルタ回路25hは、受信フレームを廃棄しないことを判定する(OP68)。その後、図31に示されるフローチャートが終了する。エントリAC値が010でない場合、すなわち、受信フレームがユーザフレームであることが明示されていない場合には(OP67:No)、ACフィルタ回路25hは、受信フレームを廃棄することを判定する(OP69)。その後、図31に示されるフローチャートが終了する。
OP70では、ACフィルタ回路25hは、受信フレームのVALN AC値が100であるか否かを判定する。VLAN AC値が100である場合には(OP70:Yes)、受信フレームが示すVLANではユーザフレームのみをループバックすることが示される。この場合には、処理がOP71に進む。VLAN AC値が100でない場合には(OP70:No)、ACフィルタ回路25hは、受信フレームを廃棄することを判定する(OP74)。その後、図31に示されるフローチャートが終了する。
OP71では、ACフィルタ回路25hは、受信フレームについて検出されたアソシエイトメモリ16gのエントリに含まれるエントリAC値が010であるか否かを判定する。エントリAC値が010である場合には(OP71:Yes)、受信フレームがユーザ
フレームであるので、ACフィルタ回路25hは、受信フレームをループバックすることを判定する(OP72)。その後、図31に示されるフローチャートが終了する。エントリAC値が010でない場合、すなわち、受信フレームがユーザフレームであることが明示されていない場合には(OP71:No)、ACフィルタ回路25hは、受信フレームを廃棄しないことを判定する(OP73)。その後、図31に示されるフローチャートが終了する。
図31のフローチャートが示すACフィルタ回路25hのACフィルタ判定処理が終了すると、ACフィルタ判定処理の結果が受信判定回路17gに送信される。受信判定回路17gは、第7実施形態と同様にしてACフィルタ判定処理の結果に基づいて、受信フレームの廃棄、受信フレームの転送,受信フレームのループバック等を実行する(図28B参照)。
第8実施形態によれば、パケットフィルタリングをVLAN単位にも設定することができる。また、各VLANにVLAN AC値を設定することによって、連想メモリ14及びアソシエイトメモリ16gのエントリを追加、削除、変更等をすることなく、VLAN単位のパケットフィルタリングを設定することができる。
<第9実施形態>
第9実施形態では、通信装置100は、ポート単位のパケットフィルタリングとVLAN単位のパケットフィルタリングとを併用する。
図32は、第9実施形態における回線IF回路1iの構成例を示す図である。第9実施系形態における回線IF回路1iは、ポートAC回路21gとVLAN AC回路27との双方を備える。回線IF回路1iの構成は、ポートAC回路21gとVLAN AC回路27との双方を備えることと、ACフィルタ回路25i以外は、第7実施形態及び第8実施形態と同様である。
図33A及び図33Bは、第9実施形態におけるACフィルタ回路25iによるACフィルタ判定処理のフローチャートの例である。図33A及び図33Bに示されるフローチャートは、ACフィルタ回路25iが、受信フレームのアソシエイトメモリ16gのエントリと、受信ポートのポートAC値と、受信フレームのVLAN AC値とを取得すると開始される。
OP81では、ACフィルタ回路25iは、受信ポートに対するポートAC値が011であるか否かを判定する。受信ポートに対するポートAC値が011である場合には(OP81:Yes)、受信ポートでは全フレームを受信することが示される。この場合には、処理がOP95に進む。受信ポートに対するポートAC値が011でない場合には(OP81:No)、処理がOP82に進む。
OP82からOP94の処理は、図27に示されるフローチャートのOP22からOP34までの処理と同様の、ポートAC値とエントリAC値とに基づくACフィルタ判定処理であるため、説明を省略する。
OP95からOP109の処理は、図31におけるフローチャートのOP61からOP74までの処理と同様の、VLAN AC値とエントリAC値とに基づくACフィルタ判定処理であるため、説明を省略する。
図33A及び図33Bに示されるACフィルタ判定処理では、ポートAC値が優先され、ポートAC値が011(フレーム全受信)である場合に、VLAN AC値に基づくA
Cフィルタ判定処理が行われる。ただし、これに限られず、ポートAC値,VLAN AC値,エントリAC値を用いてACフィルタ判定処理を行う場合には、ネットワーク管理者の意向に応じて、ポートAC値又はVLAN AC値のいずれが優先されてもよい。
第9実施形態によれば、ポート単位のパケットフィルタリングと、VLAN単位のパケットフィルタリングとを併用することができる。また、この場合にも、ポートに対するポートAC値,VLANに対するVLAN AC値を設定することによって、連想メモリ14及びアソシエイトメモリ16gのエントリの追加、削除、変更等を行わずに、パケットフィルタリングを設定することができる。
<第10実施形態>
第10実施形態では、通信装置100は、受信フレームのパケットフィルタリングを、ポートから回線に送信する送信フレームに対して、すなわち、フレーム送信処理において実行する。第10実施形態では、回線IF回路1jの構成は、受信判定回路17j,ACフィルタ回路25j,送信判定回路26j以外は、第9実施形態の回線IF回路1iと同様である(図32参照)。
第10実施形態では、受信判定回路17jは、アソシエイトメモリアクセス制御回路15から受信フレームのアソシエイトメモリ16gのエントリを受信する。受信判定回路17jは、受信したアソシエイトメモリ16gのエントリに含まれる受信有効フラグに基づく、受信フレームの廃棄の有無を判定する。第10実施形態では、この時点では、ACフィルタ回路25jによるACフィルタ判定処理は実行されない。受信判定回路17jは、受信したアソシエイトメモリ16gのエントリに含まれる受信有効フラグが1(有効)である場合に、装置内ヘッダを受信フレームに付与して、SW回路2に送信する。このとき、受信回路17jは、装置内ヘッダに、受信フレームのアソシエイトメモリ16gのエントリに含まれるエントリAC値を含める。
図34は、第10実施形態における装置内ヘッダが付与されたEthernetフレームのフォーマットを示す図である。第10実施形態では、装置内ヘッダに、宛先カード番号,宛先ポート番号に加え、エントリAC値が含まれる。また、宛先カード番号,宛先ポート番号,エントリAC値は、いずれも、受信フレームのアソシエイトメモリ16gのエントリに含まれる値が用いられる。なお、図34では、VLANタグ1段付与のEthernetフレームに装置内ヘッダが付与された例が示されるが、これに限られない。図34に示される装置内ヘッダは、VLANタグなしEthernetフレーム、VLANタグが2段以上付与されているEthernetフレームにも付与される。
送信判定回路26jは、図34に示される装置内ヘッダが付与されたフレームをSW回路2から受信する。送信判定回路26jは、受信したフレームに含まれる宛先ポート番号,エントリAC値,VLAN IDをACフィルタ回路25jに送信する。例えば、送信判定回路26jは、受信したフレームの先頭から20バイト分のデータ(装置内ヘッダから2段目のVLANタグまでが含まれるサイズ)をACフィルタ回路25jに送信してもよい。
ACフィルタ回路25jは、送信判定回路26jから受信した、宛先ポート番号によってポートAC回路21gにアクセスして、宛先ポート番号に対応するポートAC値を取得する。また、ACフィルタ回路25jは、送信判定回路26jから受信した、VLAN IDによって、VLAN AC回路27jにアクセスして、VLAN IDに対応するVLAN AC値を取得する。ACフィルタ回路25jは、エントリAC値,ポートAC値,VLAN AC値に基づいて、ACフィルタ判定処理を行う。ACフィルタ回路25jによるACフィルタ判定処理の結果は、送信判定回路26jに送信される。送信判定回路
26jは、ACフィルタ判定回路25jの判定結果に基づいて、フレームの廃棄,転送等を実行する。
図35は、第10実施形態におけるポートACテーブル22jの例を示す図である。ポートACテーブル22jは、ポート番号をテーブルインデックスとして、各ポートに対するポートAC値が設定されている。第10実施形態におけるポートAC値が「000」である場合には、フレーム全廃棄が示される。ポートAC値が「001」である場合には、制御フレームのみ送信、すなわち、ユーザフレーム全廃棄が示される。ポートAC値が「010」である場合には、ユーザフレームのみ送信、すなわち、制御フレーム全廃棄が示される。ポートAC値が「011」である場合には、全フレーム送信が示される。ポートAC値が「100」である場合には、ユーザフレームのみループバックされることが示される。ただし、第10実施形態においては、ポートAC値「100」は用いられない。すなわち、第10実施形態においては、ループバックは実行されない(ループバックについては、後述の第11実施形態において説明する)。
図36は、第10実施形態におけるVLAN ACテーブル28jの例を示す図である。VLAN ACテーブル28jでは、VLAN IDをテーブルインデックスとして、各VLAN IDに対してVLAN Action Code値が設定される。VLAN
AC値が「000」である場合には、該当VLANのフレーム全廃棄が示される。VLAN AC値が「001」である場合には、該当VLANのフレームのうち制御フレームのみを送信することが示される。VLAN AC値が「010」である場合には、該当VLANのフレームのうちユーザフレームのみを送信することが示される。VLAN AC値が「011」である場合には、該当VLANのフレームをすべて送信することが示される。VLAN AC値が「100」である場合には、該当VLANの送信フレームのうちユーザフレームのみがループバックされることが示される。ただし、第10実施形態においては、VLAN AC値100は用いられない。すなわち、第10実施形態においては、ループバックは実行されない(ループバックについては、後述の第11実施形態において説明する)。なお、第10実施形態におけるポートAC値及びVLAN AC値に全フレームのループバックを指定する値が存在しないのは、第7実施形態において説明されたポートAC値に全フレームのループバックを指定する値が存在しないことと同じ理由である。
図37A及び図37Bは、第10実施形態におけるACフィルタ回路25jのACフィルタ判定処理のフローチャートの例である。図37A及び図37Bに示されるフローチャートは、ACフィルタ回路25jが、SW回路2から受信したフレームに対応する、ポートAC値と、VLAN AC値と、エントリAC値と、を取得すると、開始される。
OP111では、ACフィルタ回路25jは、SW回路2から受信したフレームの装置内ヘッダに含まれる宛先ポート番号に対するポートAC値が011であるか否かを判定する。ポートAC値が011である場合には(OP111:Yes)、宛先ポートでは全フレームを送信することが示される。この場合には、処理がOP120に進む。ポートAC値が011でない場合には(OP111:No)、処理がOP112に進む。
OP112では、ACフィルタ回路25jは、SW回路2から受信したフレームの装置内ヘッダに含まれる宛先ポート番号に対するポートAC値が001であるか否かを判定する。ポートAC値が001である場合には(OP112:Yes)、宛先ポートでは制御フレームのみを送信することが示される。この場合には、処理がOP113に進む。ポートAC値が001でない場合には(OP112:No)、処理がOP116に進む。
OP113では、ACフィルタ回路25jは、SW回路2から受信したフレームの装置
内ヘッダに含まれるエントリAC値が001であるか否かを判定する。エントリAC値が001である場合には(OP113:Yes)、SW回路2から受信したフレームが制御フレームであるので、ACフィルタ回路25jは、このフレームを廃棄しないことを判定する(OP114)。その後、図37Aに示されるフローチャートが終了する。エントリAC値が001でない場合、すなわち、SW回路2から受信したフレームが制御フレームであることが明示されていない場合には(OP113:No)、ACフィルタ回路25jは、このフレームを廃棄することを判定する(OP115)。その後、図37Aに示されるフローチャートが終了する。
OP116では、ACフィルタ回路25jは、SW回路2から受信したフレームの装置内ヘッダの宛先ポート番号に対するポートAC値が010であるか否かを判定する。ポートAC値が010である場合には(OP116:Yes)、宛先ポートではユーザフレームのみを送信することが示される。この場合には、処理がOP117に進む。ポートAC値が010でない場合には(OP116:No)、ACフィルタ回路25jは、SW回路2から受信したフレームを廃棄することを判定する(OP119)。その後、図37Aに示されるフローチャートが終了する。
OP117では、ACフィルタ回路25jは、SW回路2から受信したフレームの装置内ヘッダに含まれるエントリAC値が010であるか否かを判定する。エントリAC値が010である場合には(OP117:Yes)、SW回路2から受信したフレームがユーザフレームであるので、ACフィルタ回路25jは、このフレームを廃棄しないことを判定する(OP118)。その後、図37Aに示されるフローチャートが終了する。エントリAC値が010でない場合、すなわち、SW回路2から受信したフレームがユーザフレームであることが明示されていない場合には(OP117:No)、ACフィルタ回路25jは、このフレームを廃棄することを判定する(OP119)。その後、図37Aに示されるフローチャートが終了する。
OP120では、ACフィルタ回路25jは、SW回路2から受信したフレームのVLAN AC値が011であるか否かを判定する。VLAN AC値が011である場合には(OP120:Yes)、SW回路2から受信したフレームが属するVLANではフレームをすべて送信することが示され、ACフィルタ回路25jは、このフレームを廃棄しないことを判定する(OP121)。その後、図37Bに示されるフローチャートが終了する。VLAN AC値が011でない場合には(OP120:No)、処理がOP122に進む。
OP122では、ACフィルタ回路25jは、SW回路2から受信したフレームのVLAN AC値が001であるか否かを判定する。VLAN AC値が001である場合には(OP122:Yes)、SW回路2から受信したフレームが属するVLANでは制御フレームのみが送信されることが示される。この場合には、処理がOP123に進む。VLAN AC値が001でない場合には(OP122:No)、処理がOP126に進む。
OP123では、ACフィルタ回路25jは、SW回路2から受信したフレームの装置内ヘッダに含まれるエントリAC値が001であるか否かを判定する。エントリAC値が001である場合には(OP123:Yes)、SW回路2から受信したフレームが制御フレームであるので、ACフィルタ回路25jは、このフレームを廃棄しないことを判定する(OP124)。その後、図37Bに示されるフローチャートが終了する。エントリAC値が001でない場合、すなわち、SW回路2から受信したフレームが制御フレームであることが明示されていない場合には(OP123:No)、ACフィルタ回路25jは、このフレームを廃棄することを判定する(OP125)。その後、図37Bに示され
るフローチャートが終了する。
OP126では、ACフィルタ回路25jは、SW回路2から受信したフレームのVLAN AC値が010であるか否かを判定する。VLAN AC値が010である場合には(OP126:Yes)、SW回路2から受信したフレームが属するVLANではユーザフレームのみが受信されることが示される。この場合には、処理がOP127に進む。VLAN AC値が010でない場合には(OP126:No)、ACフィルタ回路25jは、SW回路2から受信したフレームを廃棄することを判定する(OP129)。
OP127では、ACフィルタ回路25jは、SW回路2から受信したフレームの装置内ヘッダに含まれるエントリAC値が010であるか否かを判定する。エントリAC値が010である場合には(OP127:Yes)、SW回路2から受信したフレームがユーザフレームであるので、ACフィルタ回路25jは、このフレームを廃棄しないことを判定する(OP128)。その後、図37Bに示されるフローチャートが終了する。エントリAC値が010でない場合、すなわち、SW回路2から受信したフレームがユーザフレームであることが明示されていない場合には(OP127:No)、ACフィルタ回路25jは、このフレームを廃棄することを判定する(OP129)。その後、図37Bに示されるフローチャートが終了する。
図38は、第10実施形態における回線IF回路1jのフレーム送信処理のフローチャートの例である。図38に示されるフローチャートは、回線IF回路1jがSW回路2からフレームを受信すると開始される。
OP130では、送信判定回路26jは、SW回路2から受信したフレームの装置内ヘッダに含まれる宛先ポート番号とエントリAC値と、このフレームに含まれるVLAN IDとをACフィルタ回路25jに送信する。ACフィルタ回路25jは、宛先ポート番号によってポートAC回路21jにアクセスし、ポートAC値を取得する。また、ACフィルタ回路25jは、VLAN IDによってVLAN AC回路27にアクセスし、VLAN AC値を取得する。次に処理がOP131に進む。
OP131では、ACフィルタ回路25jは、ACフィルタ判定処理を実行する。ACフィルタ判定処理は、例えば、図37A及び図37Bに示されるフローチャートの処理である。ACフィルタ回路25jは、ACフィルタ判定処理の結果を送信判定回路26jに送信する。次に処理がOP132に進む。
OP132では、送信判定回路26jは、ACフィルタ判定処理の結果がSW回路2から受信したフレームの廃棄であるか否かを判定する。ACフィルタ判定処理の結果がSW回路2から受信したフレームの廃棄である場合には(OP132:Yes)、処理がOP133に進む。ACフィルタ判定処理の結果がSW回路2から受信したフレームの廃棄でない場合には(OP132:No)、処理がOP134に進む。
OP133では、ACフィルタ判定処理の結果がSW回路2から受信したフレームの廃棄であるので、送信判定回路26jは、このフレームを廃棄する。その後、図38に示されるフローチャートが終了する。
OP134では、送信判定回路26jは、SW回路2から受信したフレームがユーザフレームであるか否かを判定する。この判定は、フレームの装置内ヘッダに含まれるエントリAC値から判定されてもよいし、フレームの装置内ヘッダの宛先カード番号がCPU18であるか否かで判定されてもよい。SW回路2から受信したフレームがユーザフレームである場合には(OP134:Yes)、処理がOP135に進む。SW回路2から受信
したフレームがユーザフレームでない場合には(OP134:No)、処理がOP136に進む。
OP135では、SW回路2から受信したフレームは制御フレームであるので、送信判定回路26jは、このフレームの装置内ヘッダを外して、CPU18に送信する。その後、図38に示されるフローチャートが終了する。
OP136では、SW回路2から受信したフレームがユーザフレームであるので、送信判定回路26jは、このフレームの装置内ヘッダを外して、装置内ヘッダに含まれる宛先ポート番号のポートに送信する。その後、図38に示されるフローチャートが終了する。
第10実施形態によれば、通信装置100は、送信フレーム(回線IF回路1jがSW回路2から受信するフレーム)に対してもパケットフィルタリングを行うことができる。また、送信フレームのパケットフィルタリングは、連想メモリ14及びアソシエイトメモリ16gのエントリの追加、削除、変更等を行うことなく、ポートACテーブル22jのポートAC値、VLAN ACテーブル28jのVLAN AC値を設定するのみで設定できる。
なお、第10実施形態において、回線IF回路1jは、ポートAC回路22j、VLAN AC回路27jのいずれか一方のみを使用してもよい。この場合には、ACフィルタ回路25jは、使用される回路に応じて、ポートAC値とエントリAC値とに基づいて、又は、VLAN AC値とエントリAC値とに基づいてACフィルタ判定処理を実行する。
また、第10実施形態は、第7実施形態−第9実施形態のいずれかと組み合わせることも可能である。第10実施形態と第7実施形態―第9実施形態のいずれかとを組み合わせると、通信装置100は、受信フレームと送信フレームとの双方に対してパケットフィルタリングを実行することができる。また、受信フレームと送信フレームとの双方のパケットフィルタリングは、ポートAC値、VLAN AC値で制御することができる。
<第11実施形態>
第11実施形態では、通信装置100は、第10実施形態と同様に、回線IF回路の送信側でACフィルタ判定処理を実行するとともに、ポート単位、VLAN単位でユーザフレームのループバックを実行する。第11実施形態では、回線IF回路1kの構成は、受信判定回路17k,ACフィルタ回路25k,送信判定回路26k以外は、第10実施形態の回線IF回路1jと同様である(図32参照)。第11実施形態では、受信判定回路17kは、受信フレームを送信する際に、装置内ヘッダに、受信フレームを受信する受信カード番号と受信ポート番号とエントリAC値とを含める。
図39は、第11実施形態における装置内ヘッダが付与されたEthernetフレームのフォーマットを示す図である。第11実施形態では、装置内ヘッダに、宛先カード番号,宛先ポート番号に加え、受信フレームを受信する受信カード番号,受信ポート番号,エントリAC値が含まれる。また、宛先カード番号,宛先ポート番号,エントリAC値は、いずれも、受信フレームのアソシエイトメモリ16gのエントリに含まれる値が用いられる。受信フレームの受信カード番号には、回線IF回路1k自身の番号が用いられる。装置内ヘッダに受信フレームの受信カード番号と受信ポート番号とを含めることによって、このフレームを回線に送信する回線IF回路1kの送信判定回路26kに受信カード番号と受信ポート番号とを通知することができる。なお、図39では、VLANタグ1段付与のEthernetフレームに装置内ヘッダが付与された例が示されるが、これに限られない。図39に示される装置内ヘッダは、VLANタグなしEthernetフレーム
、VLANタグが2段以上付与されているEthernetフレームにも付与される。
図40は、第11実施形態における回線IF回路1kのフレーム送信処理のフローチャートの例である。図40に示されるフローチャートは、回線IF回路1kがSW回路2からフレームを受信すると開始される。
OP140では、送信判定回路26kは、SW回路2から受信したフレームの装置内ヘッダに含まれる宛先ポート番号とエントリAC値と、このフレームに含まれるVLAN IDとをACフィルタ回路25kに送信する。ACフィルタ回路25kは、宛先ポート番号によってポートAC回路21kにアクセスし、ポートACテーブル22jからポートAC値を取得する。また、ACフィルタ回路25kは、VLAN IDによってVLAN AC回路27にアクセスし、VLAN ACテーブル28jからVLAN AC値を取得する。次に処理がOP141に進む。
OP141では、ACフィルタ回路25kは、ACフィルタ判定処理を実行する。ACフィルタ判定処理は、例えば、図33A及び図33Bに示されるフローチャートの処理である。ただし、OP141で行われるACフィルタ判定処理では、図33A及び図33Bにおいて、エントリAC値は、SW回路2から受信したフレームの装置内ヘッダに含まれるエントリAC値に置き換わる。また、ポートAC値は、SW回路2から受信したフレームの装置内ヘッダに含まれる宛先ポートのポートAC値に置き換わる。ACフィルタ回路25kは、ACフィルタ判定処理の結果を送信判定回路26kに送信する。次に処理がOP142に進む。
OP142では、送信判定回路26kは、ACフィルタ判定処理の結果がSW回路2から受信したフレームの廃棄であるか否かを判定する。ACフィルタ判定処理の結果がSW回路2から受信したフレームの廃棄である場合には(OP142:Yes)、処理がOP143に進む。ACフィルタ判定処理の結果がSW回路2から受信したフレームの廃棄でない場合には(OP142:No)、処理がOP144に進む。
OP143では、ACフィルタ判定処理の結果がSW回路2から受信したフレームの廃棄であるので、送信判定回路26kは、このフレームを廃棄する。その後、図40に示されるフローチャートが終了する。
OP144では、送信判定回路26kは、ACフィルタ判定処理の結果がSW回路2から受信したフレームのループバックであるか否かを判定する。ACフィルタ判定処理の結果がSW回路2から受信したフレームのループバックである場合には(OP144:Yes)、処理がOP145に進む。ACフィルタ判定処理の結果がSW回路2から受信したフレームのループバックでない場合には(OP144:No)、処理がOP146に進む。
OP145では、送信判定回路26kは、SW回路2から受信したフレームを受信判定回路17kに送信する。受信判定回路17kでは、受信したフレームの装置内ヘッダに含まれる宛先カード番号は、装置内ヘッダに含まれる受信カード番号に書き換えられる。また、受信したフレームの装置内ヘッダに含まれる宛先ポート番号は、装置内ヘッダに含まれる受信ポート番号に書き換えられる。装置内ヘッダの宛先カード番号と宛先ポート番号とが書き換えられたフレームは、受信判定回路17kからSW回路2に送信される。その後、このフレームは、SW回路2によって受信カード番号の回線IF回路1kに転送され、受信ポートから回線に送信される。これによって、ループバックが実行される。その後、図40に示されるフローチャートが終了する。
OP146では、送信判定回路26kは、SW回路2から受信したフレームがユーザフレームであるか否かを判定する。この判定は、フレームの装置内ヘッダに含まれるエントリAC値から判定されてもよいし、フレームの装置内ヘッダの宛先カード番号がCPU18であるか否かで判定されてもよい。SW回路2から受信したフレームがユーザフレームである場合には(OP146:Yes)、処理がOP148に進む。SW回路2から受信したフレームがユーザフレームでない場合、すなわち、制御フレームである場合には(OP146:No)、処理がOP147に進む。
OP147では、SW回路2から受信したフレームは制御フレームであるので、送信判定回路26kは、このフレームの装置内ヘッダを外して、CPU18に送信する。その後、図40に示されるフローチャートが終了する。
OP148では、SW回路2から受信したフレームがユーザフレームであり、自カードのいずれかのポートが宛先ポートであるので、送信判定回路26kは、このフレームの装置内ヘッダを外して、装置内ヘッダに含まれる宛先ポート番号のポートに送信する。その後、図40に示されるフローチャートが終了する。
第11実施形態によれば、通信装置100は、回線IF回路1jから送信されるフレーム(回線IF回路1jがSW回路2から受信するフレーム)に対してもループバックを実行することができる。なお、第11実施形態において、回線IF回路1kは、ポートAC回路22k、VLAN AC回路27kのいずれか一方のみを使用してもよい。この場合には、ACフィルタ回路25jk、使用される回路に応じて、ポートAC値とエントリAC値とに基づいて、又は、VLAN AC値とエントリAC値とに基づいてACフィルタ判定処理を実行する。
また、第11実施形態によれば、障害発生時の診断機能として、ポート単位、VLAN単位のループバック制御による障害切り分けが可能となり、ネットワークの信頼性に大きく寄与することが可能となる。
また、第11実施形態は、フレームの受信カードの受信ポートと、このフレームの装置内宛先カードの宛先ポートとがポイントツーポイントの関係にある場合に有効である。ループバックを含む受信フレームに係る処理の負荷を受信側の回線IF回路と送信側の回線IF回路とに分散することができるためである。
<第12実施形態>
第12実施形態では、通信装置100は、フレームの受信時と送信時との双方において、ACフィルタ判定処理を実行する。
図41は、第12実施形態における回線IF回路1mの構成例を示す図である。第12実施形態では、受信判定回路17m,ACフィルタ判定回路25m,送信判定回路26m以外の回路は、第1実施形態から第11実施形態のうちのいずれの実施形態と同様であってよい。ただし、以下では、回線IF回路1mは、ポート単位及びVLAN単位でパケットフィルタリングを行うものとして説明する。
ACフィルタ回路25mは、受信判定回路17mと送信判定回路26mとの双方からの入力に応じてACフィルタ判定処理を実行する。具体的には、受信判定回路17mから受信フレームのアソシエイトメモリ16gのエントリが入力されると、ACフィルタ回路25mは、第9実施形態のACフィルタ回路25iと同様のACフィルタ判定処理を実行する。送信判定回路26mから、フレームの装置内ヘッダに含まれる宛先ポート番号とエントリAC値と、このフレームに含まれるVLAN IDとを入力されると、ACフィルタ
回路25mは、第11実施形態のACフィルタ回路25kと同様のACフィルタ判定処理を実行する。
受信判定回路17mと送信判定回路26mとは、ACフィルタ判定処理の結果、フレームをループバックする場合に、ループバックするためのルートとしての信号線29a,29bで接続されている。例えば、信号線29aは、フレーム受信時に、受信フレームのループバックが判定された場合に、受信判定回路17mが直接送信判定回路26mに受信フレームを送信するためのルートである。例えば、信号線29bは、SW回路2からフレームを受信したときに、このフレームをループバックすることが判定された場合に、送信判定回路26mから受信判定回路17mにフレームを送信するためのルートである。
送信判定回路26mは、ループバックのための信号線29aからフレームを受信した場合には、このフレームをACフィルタ判定処理のためにACフィルタ回路25mに送信せずに、装置内ヘッダの宛先ポートにフレームを送信する。すなわち、フレーム送信処理において、ACフィルタ判定処理の対象となるのは、送信判定回路26mがSW回路2から受信したフレームである。
受信判定回路17mは、ループバックのための信号線29bからフレームを受信した場合には、ACフィルタ判定処理のためにこのフレームをACフィルタ回路25mに送信せずに、SW回路2に送信する。すなわち、フレーム受信処理において、受信判定回路17mがループバックのための信号線29bから受信したフレームは、ACフィルタ判定処理の対象とならない。また、受信判定回路17mは、第11実施形態の受信判定回路17kと同様に、フレームに対して図39に示す装置内ヘッダを付与する。
図42は、第12実施形態における回線IF回路1mのフレーム受信処理のフローチャートの例である。ただし、図42では、回線IF回路1mのポートにおいてフレームが受信され、受信判定回路17mに入力されるまでの処理(例えば、図28AのOP41からOP45までの処理)は省略されている。そのため、図42では、受信判定回路17mに受信フレームが入力されたところからフローチャートがスタートしている。
OP150では、受信判定回路17mにおいて、フレームがポート(回線)から入力されたものであるか否かが判定される。受信判定回路17mでは、アソシエイトメモリアクセス制御回路15からの入力と、送信判定回路26mからの入力とでは、入力ルート(信号線)が異なる。そのため、フレームがポートから入力されたものであるか否かは、フレームの入力ルートから判定可能である。フレームが回線から入力されたものである場合には(OP150:Yes)、処理がOP151に進む。
OP151では、フレームがポート(回線)から入力されたものであり、このフレームは、フレーム受信処理においてAC判定処理の対象となるため、このフレームについて、ACフィルタ判定処理が実行される。OP151からOP160の処理は、図28A及び図28BのOP46−OP56の処理と同様であるため、説明を省略する。フレームは、AC判定処理の結果に応じて処理される。
フレームがポート(回線)から入力されたものでない場合には(OP150:No)、このフレームはフレーム受信処理においてAC判定処理の対象ではないため、処理がOP160に進み、フレームは受信判定回路17mからSW回路2に送信される(OP160)。ポート(回線)から入力されたフレームではないフレームには、例えば、フレームが送信判定回路26mからループバックされたフレームがある。例えば、送信判定回路26mからループバックされたフレームが入力された場合には、受信判定回路17mは、装置内ヘッダに含まれる宛先カード番号及び宛先ポート番号を、同じく装置内ヘッダに含まれ
る受信カード番号及び受信ポート番号に書換る。このフレームはSW回路2に送信され、装置内ヘッダに含まれる宛先カードに転送される。装置内ヘッダに含まれる宛先カード及び宛先ポートは、受信判定回路17mによって、このフレームの受信カードと受信ポートとに書き換えられている。そのため、このフレームは、受信カードの受信ポートから回線に送信され、ループバックが実行される。
図43は、第12実施形態における回線IF回路1mのフレーム送信処理のフローチャートの例である。図43に示されるフローチャートは、送信判定回路26mフレームを受信すると開始される。
OP171では、送信判定回路26mにおいて受信されたフレームがSW回路2から受信されたフレームであるか否かが判定される。送信判定回路26mでは、SW回路2からの入力と、受信判定回路17mからの入力と、CPU18からの入力とでは、入力ルート(信号線)が異なる。そのため、フレームがSW回路2から入力されたものであるか否かは、フレームの入力ルートから判定可能である。フレームがSW回路2から入力されたものである場合には(OP171:Yes)、処理がOP172に進む。
OP172では、フレームがSW回路2から入力されたものであり、フレーム送信処理におけるACフィルタ判定処理の対象であるため、このフレームについて、ACフィルタ判定処理が実行される。OP172からOP180の処理は、図40のOP140−OP148の処理と同様であるため、説明を省略する。
フレームがSW回路2から入力されたものでない場合には(OP171:No)、このフレームはAC判定処理の対象ではないため、処理がOP180に進み、フレームは送信判定回路26mから装置内ヘッダに含まれる宛先ポートに送信され、この宛先ポートから回線に送信される(OP180)。SW回路2から入力されたものではないフレームには、例えば、フレームが受信判定回路17mからループバックされたフレーム,CPU18から受信されたフレーム等がある。例えば、送信判定回路26mに、受信判定回路17mからループバックされたフレームが入力された場合には、このフレームは装置内ヘッダに含まれる宛先ポートに転送される。装置内ヘッダに含まれる宛先カード及び宛先ポートは、受信判定回路17mによって、このフレームの受信カードと受信ポートとに書き換えられているため、このフレームは、受信カードの受信ポートから回線に送信され、ループバックが実行される。
以上のように、第12実施形態では、フレーム受信処理とフレーム送信処理の双方においてAC判定処理を実行することによって、どちらか片方のみでAC判定処理を実行するよりも高速にパケットフィルタリングを行うことができる。
また、第7実施形態から第12実施形態においては、制御フレームのループバックが実行されるのを防ぐために、全フレームのループバックを指定するAC値は設定されていない。これによって、制御フレームを利用して、遠隔からポート単位、又はVLAN単位のループバック制御が可能となる。ポート単位、VLAN単位のループバックが実現されることによって、障害発生時の診断機能として、ポート単位又はVLAN単位の障害切り分けが可能となり、ネットワークの信頼性の向上に寄与する。