JP6015304B2 - 通信装置およびアドレス学習方法 - Google Patents

通信装置およびアドレス学習方法 Download PDF

Info

Publication number
JP6015304B2
JP6015304B2 JP2012215174A JP2012215174A JP6015304B2 JP 6015304 B2 JP6015304 B2 JP 6015304B2 JP 2012215174 A JP2012215174 A JP 2012215174A JP 2012215174 A JP2012215174 A JP 2012215174A JP 6015304 B2 JP6015304 B2 JP 6015304B2
Authority
JP
Japan
Prior art keywords
learning
received frame
priority
upper limit
frame
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2012215174A
Other languages
English (en)
Other versions
JP2014072581A (ja
Inventor
康之 三森
康之 三森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2012215174A priority Critical patent/JP6015304B2/ja
Priority to US13/942,980 priority patent/US9325613B2/en
Publication of JP2014072581A publication Critical patent/JP2014072581A/ja
Application granted granted Critical
Publication of JP6015304B2 publication Critical patent/JP6015304B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/72Routing based on the source address
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/742Route cache; Operation thereof

Description

本発明は、フレーム転送を制御する通信装置に係わる。
インターネットおよびモバイル通信の普及などにより、通信事業者が提供するキャリアネットワークは、SONET/SDH(Synchronous Optical NETwork/Synchronous Digital Hierarchy)等のTDMネットワークから、Ethernet(登録商標)技術およびIP技術を利用するパケットネットワークへ移行しつつある。広域Ethernetサービスまたはモバイルネットワークのようなパケットネットワークにおいて、フレーム転送処理は、フレームのMAC(Media Access Control)アドレスを学習することで行われる。
MACアドレスの学習は、フレーム転送装置などの通信装置において、受信フレームの送信元MACアドレスおよびその受信フレームの入力ポート情報をMACアドレステーブルに登録することにより実現される。入力ポート情報は、例えば、インタフェースカードを識別するカード番号および物理的な通信ポートを識別するポート番号を含む。例えば、フレーム転送装置において、ある1つのインタフェースカードのある1つの物理的な通信ポートにフレームが到着したときは、そのインタフェースカードを識別するカード番号およびその通信ポートを識別するポート番号が、受信フレームの送信元MACアドレスと共にMACアドレステーブルに登録される。
フレーム転送装置は、上述のMACアドレステーブルを利用して受信フレームを転送する。すなわち、フレーム転送装置は、受信フレームの宛先MACアドレスでMACアドレステーブルを検索することにより、宛先に対応するカード番号およびポート番号を特定する。そして、フレーム転送装置は、特定したインタフェースカードの通信ポートを介してフレームを送信する。
なお、受信フレームの宛先MACアドレスが学習されていないとき(すなわち、受信フレームの宛先MACアドレスがMACアドレステーブルに登録いないとき)は、フレーム転送装置は、すべての通信ポートを介してそのフレームをブロードキャスト転送する。このようなブロードキャスト転送は、フラッディングと呼ばれることがある。
特開2010−114724号公報
IEEE Std 802.1D-2004
従来技術のMACアドレス学習においては、新規のMACアドレスが検出されると、その新規のMACアドレスは、単に、MACアドレステーブル内の空きエントリに登録される。このため、たとえば、特定のユーザに係わる大量のMACアドレスの学習が行われると、MACアドレステーブルの多くのエントリがその特定のユーザによって占有されてしまい、他のユーザに係わるMACアドレスの学習が行えなくなってしまう。この場合、他のユーザのトラヒックに対して大量のフラッディングが発生し、ネットワークが輻輳してしまう。このように、従来技術においては、各ユーザに対してネットワーク資源(ここでは、MACアドレステーブルのエントリ)が公平に割り当てられないことがある。
なお、上述の問題は、MACアドレスの学習のみに係わるものではなく、フレームの転送先を制御するための情報をメモリに格納する通信装置において発生し得る。
本発明の目的は、アドレス学習に基づいてフレームを転送するネットワークの輻輳を抑制することである。
本発明の1つの態様の通信装置は、フレーム転送を制御するための転送情報を格納するテーブルと、受信フレームの送信元アドレスおよび対応する転送情報を前記テーブルに登録することにより前記受信フレームの送信元アドレスを学習する学習制御部と、指定されたグループ毎に学習可能なアドレスの上限数を格納する格納部と、を有する。前記学習制御部は、受信フレームに対応するグループにおけるアドレスの学習数と、前記受信フレームに対応するグループに対して与えられている上限数との比較に基づいて、前記受信フレームの送信元アドレスを学習できるか否かを判定する。
上述の態様によれば、アドレス学習に基づいてフレームを転送するネットワークの輻輳が抑制される。
本発明の実施形態の通信装置が使用されるネットワークの一例を示す図である。 通信装置の構成を示す図である。 通信装置により転送されるフレームのフォーマットの例を示す図である。 第1の実施形態に係る通信装置の構成を示す図である。 通信装置内で伝送されるフレームのフォーマットの例を示す図である。 第1の実施形態において管理されるテーブルの例を示す図である。 第1の実施形態のアドレス学習を示すフローチャートである。 第2の実施形態に係る通信装置の構成を示す図である。 第2の実施形態において管理されるテーブルの例を示す図である。 第2の実施形態のアドレス学習を示すフローチャートである。 第3の実施形態に係る通信装置の構成を示す図である。 第3の実施形態において管理されるテーブルの例を示す図である。 第3の実施形態のアドレス学習を示すフローチャートである。 図13の学習処理Aを示すフローチャートである。 図13の学習処理Bを示すフローチャートである。 図13の学習処理Cを示すフローチャートである。 図13の学習処理Dを示すフローチャートである。 図13の学習処理Eを示すフローチャートである。 図13の学習処理Fを示すフローチャートである。 学習上限数の設定例を示す図である。 エージング処理の一例を示すフローチャートである。 第5の実施形態に係る通信装置の構成を示す図である。 第5の実施形態において管理されるテーブルの例を示す図である。 第5の実施形態のアドレス学習を示すフローチャートである。 第6の実施形態のアドレス学習を示すフローチャートである。
図1は、本発明の実施形態の通信装置が使用されるネットワークの一例を示す。このネットワークは、図1に示すように、複数の通信装置1(1a〜1f)によって構築されている。各通信装置1は、例えば光ファイバにより、1または複数の他の通信装置1と接続されている。例えば、通信装置1aは、通信装置1b、1d、1eと接続されており、通信装置1bは、通信装置1a、1c、1d、1e、1fと接続されている。また、各通信装置1は、1または複数のユーザ端末2を収容することができる。図1に示す例では、通信装置1a、1c、1d、1fが、それぞれ複数のユーザ端末2を収容している。
通信装置1は、ユーザ端末2または他の通信装置1から受信するフレームを、宛先へ向かって転送する。すなわち、通信装置1は、受信フレームの宛先アドレスに基づいてそのフレームを転送することができる。例えば、ユーザ端末2からEthernetフレームまたはIPフレームが送信される場合、通信装置1は、受信フレーム内に格納されているMACアドレスまたはIPアドレス等に基づいて、そのフレームの転送処理を行う。なお、この明細書では、フレームおよびパケットを互いに区別しないことにする。したがって、「フレーム」は、パケットを含むものとする。
図2は、通信装置1の構成を示す。通信装置1は、図2に示すように、複数のインタフェース部11、スイッチ部12、制御部13を有する。また、通信装置1には、制御端末14が接続されている。
各インタフェース部11は、複数のポートを有する。この実施例では、通信装置1は、1つの対向装置(他の通信装置1またはユーザ端末2)に対して1組の入力ポートおよび出力ポートを有する。すなわち、通信装置1は、対向装置から送信されるフレームを入力ポートを介して受信し、出力ポートを介して対向装置へフレームを送信する。
インタフェース部11は、ポートを介して受信するフレームを終端し、そのフレームをスイッチ部12へ送る。また、インタフェース部11は、スイッチ部12から導かれてくるフレームを、そのパケットの宛先に対応するポートを介して出力する。なお、インタフェース部11は、例えば、着脱可能なモジュール、ボード、またはカードで実現される。
スイッチ部12は、複数のインタフェース部11に接続されている。そして、スイッチ部12は、インタフェース部11から入力されるフレームを、その宛先に対応するインタフェース部11へ導く。なお、スイッチ部12は、フレーム転送を制御するためのプロセッサ、メモリ、およびハードウェア回路を含む。また、スイッチ部12は、例えば、着脱可能なモジュール、ボード、またはカードで実現される。
制御部13は、CPUおよびメモリを含み、インタフェース部11およびスイッチ部12の動作を制御する。また、制御部13は、アラーム情報および/または統計情報を収集することもできる。なお、制御部13は、例えば、着脱可能なモジュール、ボード、またはカードで実現される。
制御端末14は、制御部13に接続されるコンピュータであり、ユーザまたはネットワーク管理者の指示を通信装置1に与える。なお、制御端末14は、通信装置1の一部であってもよい。
インタフェース部11、スイッチ部12、制御部13は、個々に着脱可能である必要はなく、例えば、マザーボードによって一体化されていてもよい。また、通信装置1は、インタフェース部11、スイッチ部12、制御部13に加えて、他の要素を含んでいてもよい。
図3は、通信装置1により伝送されるフレームのフォーマットの例を示す。ここでは、通信装置1は、Ethernetフレームを伝送するものとする。なお、図3に示す括弧付きの数字は、ビット数を表す。
Ethernetフレームは、図3(a)に示すように、宛先MACアドレス(MAC DA)、送信元MACアドレス(MAC SA)、イーサネット(登録商標)タイプ(E-TYPE)、プロトコルデータユニット(PDU)、フレームチェックシーケンス(FCS)を有する。イーサネットタイプは、プロトコルデータユニットに格納されるメッセージのタイプを識別する。一例としては、0x0800は、IPv4フレームを表す。なお、イーサネットタイプは、例えば、IANAにより規定される。プロトコルデータユニットは、上位レイヤのメッセージを格納する。フレームチェックシーケンスは、フレーム誤り検出のために使用され、例えば、CRC32符号により実現される。
図3(b)は、VLANタグが付与されたEthernetフレームのフォーマットを示す。VLANタグは、タグプロトコル識別子(TPID)、優先度(Priority)、DEI(Drop Eligible Indicator)、仮想LAN識別子(VLAN ID)を含む。タグプロトコル識別子には、フレーム内に仮想LAN識別子が格納されていることを表す値が設定される。たとえば、タグプロトコル識別子として、IEEE802.1Qで規定される0x8100が設定される。優先度は、フレーム自体の優先度を表す。図3(b)に示す例では、優先度は、3ビットであり、8クラスの優先度を表示できる。DEIは、廃棄優先度を表す。ネットワークが輻輳しているときは、DEI=1が設定されているフレームが優先的に廃棄される。仮想LAN識別子は、ユーザを識別することができる。なお、タグプロトコル識別子および仮想LAN識別子の組合せがVLANタグと呼ばれることがある。
<第1の実施形態>
図4は、第1の実施形態に係る通信装置の構成を示す。図4においては、スイッチ部12および2つのインタフェース部11のみが示されている。各インタフェース部11は、着脱可能なカードにより実現され、IFカード番号(#0、#1、...)で識別されるものとする。
インタフェース部11には、複数のポートが実装されている。図4に示す例では、各インタフェース部11に10個のポートが実装されている。各ポートは、ポート番号(#0〜#9)により識別される。
インタフェース部11は、PHY/MAC回路21を有する。PHY/MAC回路21は、物理レイヤおよびMACレイヤを制御する機能を有し、Ethernetフレームを終端する。すなわち、PHY/MAC回路21は、ネットワークからポートを介して入力されるフレームを終端し、スイッチ部12へ送る。また、PHY/MAC回路21は、スイッチ部12から導かれてくるフレームを、ヘッダ情報が指定するポートを介してネットワークへ送信する。
図5は、通信装置内で伝送されるフレームのフォーマットの例を示す。通信装置1の内部では、Ethernetフレームに装置内フレームヘッダが付与される。装置内フレームヘッダは、宛先IFカード番号、宛先ポート番号、送信元IFカード番号、送信元ポート番号を含む。
ネットワークからフレームを受信したインタフェース部11(以下、入力IFカード)は、受信フレームに装置内フレームヘッダを付与する。送信元IFカード番号には、入力IFカードを識別するカード番号(図4に示す例では、カード番号#0)が設定される。また、送信元ポート番号には、受信フレームが到着したポートを識別するポート番号(図4に示す例では、ポート番号#0)が設定される。なお、この時点では、宛先IFカード番号および宛先ポート番号は特定されていないので、これらの領域には、例えば、デフォルト値が設定される。
宛先IFカード番号および宛先ポート番号は、後で説明するが、スイッチ部12においてMACアドレステーブルを参照することによって特定される。すなわち、宛先IFカード番号および宛先ポート番号は、スイッチ部12において設定される。宛先IFカード番号は、フレームの宛先に接続されるインタフェース部11(以下、出力IFカード)を識別する。また、宛先ポート番号は、フレームの宛先に接続されるポートを識別する。
このように、入力IFカードは、受信フレームに装置内フレームヘッダを付与してスイッチ部12に送る。スイッチ部12は、MACアドレステーブルを検索することにより、宛先IFカード番号および宛先ポート番号を取得する。そして、スイッチ部12は、宛先IFカード番号により識別される出力IFカードへそのフレームを導く。そして、出力IFカードは、宛先ポート番号により識別されるポートを介してそのフレームを出力する。このとき、出力IFカードのPHY/MAC回路21は、送信フレームから装置内フレームヘッダを削除する。
スイッチ部12は、宛先MACアドレスに基づいて受信フレームを転送する機能を有する。また、スイッチ部12は、効率的なフレーム転送を実現するために、MACアドレスを学習する機能を有する。そして、スイッチ部12は、これらの機能を実現するために、MACアドレステーブル31、スイッチ回路32、テーブル制御部33、ポートテーブル34、ポート学習カウンタ35を有する。
MACアドレステーブル31は、図6(c)に示すように、MACアドレスをインデックスとして、有効ビット(V)、ポートID、IFカード番号、ポート番号、エージング時間を格納する。有効ビットは、対応するエントリが有効であるか否かを表す。IFカード番号は、受信フレームの転送先のインタフェース部11(すなわち、出力IFカード)を表す。ポート番号は、受信フレームの転送先のポート番号を表す。ポートIDおよびエージング時間については、後で説明する。
インデックスとして使用されるMACアドレスは、ハッシュ演算などにより、本来のビット数(例えば、48ビット)よりも少ないビット数へ縮退されていてもよい。また、MACアドレステーブル31は、たとえば、SRAMメモリで実現してもよいし、連想メモリ(CAM:Content Addressable Memory)で実現してもよい。MACアドレステーブル31を連想メモリで実現する場合は、MACアドレスに基づく検索キーが、メモリインデックスとして使用される。
スイッチ回路32は、受信フレームをいったんバッファに格納する。また、スイッチ回路32は、その受信フレームの宛先MACアドレス、送信元MACアドレス、および装置内フレームヘッダをテーブル制御部33に渡す。そうすると、テーブル制御部33は、宛先MACアドレスに対応する宛先IFカード番号および宛先ポート番号を特定する。スイッチ回路32は、宛先IFカード番号および宛先ポート番号が設定された装置内フレームヘッダをテーブル制御部33から受け取る。そして、スイッチ回路32は、バッファに格納されている受信フレームを、宛先IFカード番号によって識別されるインタフェース部11へ転送する。なお、スイッチ回路32は、受信フレームの装置内フレームヘッダに格納されている送信元カード番号および送信元ポート番号で、後述するポートテーブル34にアクセスすることができる。
テーブル制御部33は、受信フレームの宛先MACアドレスでMACアドレステーブル31を検索する。このMACアドレスがMACアドレステーブル31に登録されていれば(すなわち、MACアドレスが既に学習されていれば)、テーブル制御部33は、対応する宛先カード番号および宛先ポート番号を取得する。そして、テーブル制御部33は、検索により取得した宛先カード番号および宛先ポート番号を、受信パケットの装置内フレームヘッダに設定する。この場合、スイッチ回路32は、上述したように、宛先IFカード番号によって識別されるインタフェース部11へ、受信フレームを転送する。
受信フレームの宛先MACアドレスがMACアドレステーブル31に登録されていなければ(すなわち、MACアドレスが学習されていなければ)、テーブル制御部33は、受信フレームのMACアドレスが未学習であることをスイッチ回路32に通知する。そうすると、スイッチ回路32は、受信フレームが到着したポートを除くすべてのポートに対して、その受信フレームをブロードキャスト転送(すなわち、フラッディング)する。ブロードキャスト転送においては、スイッチ回路32が受信フレームをコピーして複数の同じフレームを生成する。
テーブル制御部33は、受信フレームの宛先MACアドレスに基づいて宛先カード番号および宛先ポート番号を特定する機能に加えて、受信フレームの送信元MACアドレスを学習する機能を有する。すなわち、テーブル制御部33は、受信フレームの送信元アドレスを学習する学習制御部の一例である。或いは、テーブル制御部33は、受信フレームの送信元アドレスおよび対応する転送情報をMACアドレステーブルに登録することにより受信フレームの送信元アドレスを学習する機能を有する。テーブル制御部33は、MACアドレス学習において、以下の処理を行う。
(1)受信フレームの送信元MACアドレスがMACアドレステーブル31に登録されておらず、且つ、MACアドレステーブル31に空きエントリがあるときは、テーブル制御部33は、その送信元MACアドレスを学習する。このとき、対応する転送情報として、受信フレームの送信元カード番号および送信元ポート番号がMACアドレステーブル31に登録される。また、予め指定されているエージング時間の初期値が設定される。
(2)受信フレームの送信元MACアドレスが既にMACアドレステーブル31に登録されており、且つ、受信フレームの送信元カード番号および送信元ポート番号と、MACアドレステーブル31に登録されている送信元カード番号および送信元ポート番号とが互いに一致するときは、テーブル制御部33は、対応するエントリのエージング時間を初期値に更新する。
(3)受信フレームの送信元MACアドレスが既にMACアドレステーブル31に登録されており、且つ、受信フレームの送信元カード番号および送信元ポート番号が、MACアドレステーブル31に登録されている送信元カード番号および送信元ポート番号と異なるときは、テーブル制御部33は、MACアドレステーブル31に登録されている送信元カード番号および送信元ポート番号を更新する。また、エージング時間は、初期値に更新される。なお、このような状態は、例えば、端末装置が移動して異なるポートに接続された場合などに起り得る。
なお、第1の実施形態においては、後述するように、ポートID毎に、学習録可能なアドレスの上限数が決められている。よって、第1の実施形態では、上述のケース(1)であっても、MACアドレス学習が行われないことがある。
テーブル制御部33は、古いMACアドレスをMACアドレステーブル31から削除するエージング処理を実行する。すなわち、MACアドレステーブル31にMACアドレスが登録されたときに、対応するエントリの「エージング時間」として所定の初期値が設定される。初期値は、例えば、5分である。テーブル制御部33は、定期的に(例えば、1秒間隔)、各エントリのエージング時間をデクリメントする。そして、エージング時間がゼロになったエントリにおいて、有効ビットが「1:有効」から「0:無効」に書き換えられる。この結果、このエントリは、空きエントリとなる。
なお、あるエントリのエージング時間がゼロになる前に、そのエントリに対応する送信元MACアドレスを有するフレームがスイッチ部12に入力されると、エージング時間は初期値(例えば、5分)に戻る。したがって、同じ送信元MACアドレスを有するフレームが繰り返し通信装置1に到着している期間は、そのMACアドレスに対応するエントリがMACアドレステーブル31から削除されることはない。
スイッチ回路32およびテーブル制御部33は、例えば、プロセッサシステム30により実現される。プロセッサシステム30は、プロセッサおよびメモリを含む。この場合、プロセッサシステム30は、ソフトウェアプログラムを実行することで、アドレス学習機能を提供してもよい。ただし、スイッチ回路32およびテーブル制御部33は、ハードウェア回路を含んでもよい。また、スイッチ回路32およびテーブル制御部33は、ASIC(Application Specific IC)、FPGA(Field Programmable gate array)等で実現されるようにしてもよい。
ポートテーブル34は、図6(a)に示すように、カード番号およびポート番号をインデックスとして、有効ビット(V)、ポートID、学数上限数、エージング時間、フレームコピー情報を格納する。ポートテーブル34は、スイッチ回路32がアクセス可能なメモリ領域に作成される。なお、ポートテーブル34は、指定されたグループ毎に学習可能なアドレスの上限数を格納する格納部の一例である。
有効ビットは、対応するエントリが有効であるか否かを表す。ポートIDは、通信装置内で使用される識別情報であり、論理的に定義されるポート(以下、論理ポート)を識別する。論理ポートは、1または複数の物理ポートに対応して生成される。図6(a)に示す例では、論理ポート1には、2つの物理ポート(カード#0のポート#0およびカード#0のポート#1)が対応付けられている。論理ポート2には、1つの物理ポート(カード#0のポート#2)が対応付けられている。なお、第1の実施形態では、1つの物理ポートには1つのユーザのみが収容されるものとする。この場合、ポートIDは、実質的にユーザを識別することができる。
このように、ポートIDを用いることにより、複数の物理ポートを1つの論理ポートとして管理することが可能になる。したがって、ポートIDを用いる構成は、リンクアグリゲーションのようなポートの冗長構成を有するシステムにおいて有用である。
学習上限数は、MACアドレステーブル31に登録可能なMACアドレスの最大数(或いは、MACアドレステーブル31にMACアドレスを登録するために使用可能なエントリの最大数)を表す。図6(a)に示す例では、論理ポート1に対して「学習上限数=100」が設定され、論理ポート2に対して「学習上限数=300」が設定されている。なお、学習上限数は、例えば、論理ポートに対応するユーザと通信サービスの提供者との間の契約等に基づいて決定される。
エージング時間は、MACアドレステーブル31の対応するエントリが削除されるまでの期間を表す。図6(a)に示す例では、論理ポート1に対して「エントリ時間=5分」が設定され、論理ポート2に対して「エントリ時間=3分」が設定されている。なお、エントリ時間も、例えば、論理ポートに対応するユーザと通信サービスの提供者との間の契約等に基づいて決定される。
フレームコピー情報は、ブロードキャスト転送時(すなわち、フラッディング時)に、受信フレームが転送される宛先物理ポートを表す。例えば、「C0P0」は、IFカード#0のポート#0を表し、「CmPn」は、IFカード#mのポート#nを表す。そして、スイッチ回路32は、ブロードキャスト転送時には、「1」が設定されているポートへ受信フレームを転送する。
ポート学習カウンタ35は、図6(b)に示すように、ポートIDをインデックスとして、現在の学習数を格納する。学習数は、MACアドレステーブル31に登録されているMACアドレスの数(或いは、MACアドレステーブル31にMACアドレスを登録するために使用されているエントリの数)を表す。したがって、MACアドレステーブル31に新たなMACアドレスが登録されると、学習数はインクリメントされる。また、エージング処理等によってMACアドレステーブル31からMACアドレスが削除されると、学習数はデクリメントされる。
次に、ネットワークからフレームを受信したときの通信装置1の動作を説明する。ここでは、カードID#0で識別されるインタフェース部11のポート#0を介してフレームが入力されるものとする。以下、このインタフェース部11を「IFカード#0」と呼ぶことがある。
IFカード#0のPHY/MAC回路21は、受信フレームに装置内フレームヘッダを付与する。装置内フレームヘッダには、以下の情報が書き込まれる。
送信元カード番号:#0
送信元ポート番号:#0
そして、IFカード#0は、装置内フレームヘッダが付与された受信フレームをスイッチ部12に導く。そうすると、スイッチ部12は、フレーム転送処理およびアドレス学習処理を行う。
フレーム転送処理において、テーブル制御部33は、受信フレームの宛先MACアドレスでMACアドレステーブル31を検索する。検索がヒットしたときは(すなわち、宛先MACアドレスが既に学習されているときは)、テーブル制御部33は、図6(c)に示すMACアドレステーブル31から、宛先MACアドレスに対応する宛先カード番号および宛先ポート番号を取得する。そして、テーブル制御部33は、取得した宛先カード番号および宛先ポート番号を図5に示す装置内フレームヘッダに格納する。そうすると、スイッチ回路32は、受信フレームを、この宛先カード番号により指定されるインタフェース部11(ここでは、IFカード#1)へ転送する。また、IFカード#1は、装置内フレームヘッダ内の宛先ポート番号で識別される物理ポートを介して、そのフレームを送信する。
なお、上記検索がヒットしなかったときは(すなわち、宛先MACアドレスが学習されていないときは)、スイッチ回路32は、受信フレームのブロードキャスト転送を行う。この場合、スイッチ回路32は、受信フレームが到着したポート(ここでは、IFカード#0のポート#0)以外のすべてのポートへ、受信フレームを転送してもよい。ただし、この実施例では、スイッチ回路32は、ポートテーブル34に格納されているフレームコピー情報に従って受信フレームを転送する。
図7は、第1の実施形態のアドレス学習を示すフローチャートである。このフローチャートの処理は、スイッチ部12にフレームが入力されたときに実行される。
S1において、スイッチ回路32は、ポートテーブル34をリードする。すなわち、スイッチ回路32は、受信フレームの装置内フレームヘッダに格納されている送信元カード番号および送信元ポート番号で、ポートテーブル34を検索する。この検索において、対応するエントリが存在しないとき、または対応するエントリの有効ビットが「0」であったときは、スイッチ回路32は、受信フレームを廃棄する。一方、対応するエントリの有効ビットが「1」であったときは、スイッチ回路32は、そのエントリからポートID、学習上限数、エージング時間、フレームコピー情報を取得する。なお、フレームコピー情報は、上述したように、フレーム転送処理においてブロードキャスト転送を行うときに使用される。
S2において、テーブル制御部33は、ポート学習カウンタ35をリードする。すなわち、テーブル制御部33は、ポートテーブル34から取得したポートIDでポート学習カウンタ35を検索し、このポートIDに対応する学習数を取得する。
S3において、テーブル制御部33は、ポートテーブル34から取得した学習上限数とポート学習カウンタ35から取得した学習数とを比較する。ポート学習カウンタ35の学習数が学習上限数よりも小さいときは、テーブル制御部33の処理はS4へ移行する。一方、ポート学習カウンタ35の学習数が学習上限数に達していたときは、テーブル制御部33は、MACアドレステーブル31へのアクセスを行うことなく、アドレス学習処理を終了する。
S4において、テーブル制御部33は、受信フレームの送信元MACアドレスがMACアドレステーブル31に登録されているか否かを判定する。すなわち、受信フレームの送信元MACアドレスが学習されているか否かが判定される。また、S5において、テーブル制御部33は、MACアドレステーブル31に空きエントリが有るか判定する。
送信元MACアドレスが未学習であり、且つ、MACアドレステーブル31に空きエントリが有るときは、テーブル制御部33は、S6において、その送信元MACアドレスをMACアドレステーブル31の空きエントリに格納する。このとき、テーブル制御部33は、以下の処理を実行する。
(1)送信元MACアドレスを格納するエントリの有効ビットを「1」に更新する。
(2)ポートテーブル34から取得したポートIDをエントリ内に格納する。
(3)受信フレームの装置内フレームヘッダから取得した送信元カード番号および送信元ポート番号をエントリ内に格納する。
(4)ポートテーブル34から取得したエージング時間をエントリ内に設定する。
S7において、テーブル制御部33は、ポートテーブル34から取得したポートIDでポート学習カウンタ35にアクセスする。そして、テーブル制御部33は、ポート学習カウンタ35の対応する学習数をインクリメントする。
受信フレームの送信元MACアドレスがMACアドレステーブル31に登録されているときは(S4:No)、テーブル制御部33は、エージング時間を初期値に更新する。また、MACアドレステーブル31に空きエントリが無いときは(S5:No)、テーブル制御部33の処理は終了する。
なお、ポート学習カウンタ35は、ポートID毎に、MACアドレステーブル31に登録されているMACアドレスの数を示す。カウンタ値は、累積学習数を表すのではなく、現在の学習数を表す。すなわち、あるポートIDに属するMACアドレスが学習されたときは、そのポートIDに対応するカウンタ値に「1」が加算される。また、エージング処理によってMACアドレステーブル31のエントリが削除されると、その削除エントリに格納されていたポートIDに対応するカウンタ値から「1」が減算される。
テーブル制御部33は、MACアドレスを学習するときに、ポートIDも学習する。すなわち、テーブル制御部33は、学習したMACアドレスに対応するポートIDを、MACアドレステーブル31に書き込む。このため、エージング処理によってMACアドレステーブル31のエントリが削除されるときに、テーブル制御部33は、どのポートIDに係わるエントリが削除されたのかを検出できる。したがって、テーブル制御部33は、エージング処理でエントリを削除したときに、そのエントリに対応するポートIDの学習数をデクリメントできる。
図7に示すフローチャートにおいて、処理ステップの実行順序は、変更可能である。例えば、ポート学習カウンタ35によりカウントされている学習数と学習上限数との比較の前に、送信元MACアドレスが学習されているか否かを判定する処理および/または空きエントリが有るか否かを判定する処理を実行してもよい。
このように、第1の実施形態においては、ポートID毎に、MACアドレステーブル31の学習上限数が設定される。ここで、第1の実施形態では、1つの物理ポートに1つのユーザが収容される。また、各物理ポートと論理ポートを識別するポートIDとの対応関係が予め決められている。よって、ポートIDは、実質的に、ユーザを識別する。すなわち、第1の実施形態においては、ユーザ毎に、MACアドレステーブル31の学習上限数が設定される。したがって、特定のユーザによってMACアドレステーブル31の多くのエントリが占有されることはない。
この結果、各ユーザに対してネットワーク資源(ここでは、MACアドレステーブル31のエントリ)が公平に割り当てられ、MACアドレスの未学習に起因するフラッディングが抑制される。これにより、ネットワークの輻輳が抑制される。
また、上述の例では、1つのポートIDに対して複数の物理ポートを対応付けることができる。したがって、1つのユーザが複数の物理ポートを使用する場合であっても、ユーザ毎に、MACアドレステーブル31の学習上限数が管理される。
<第2の実施形態>
図8は、第2の実施形態に係る通信装置の構成を示す。第1の実施形態では、ポート毎にMACアドレスの学習数が管理されるが、第2の実施形態では、VLAN毎にMACアドレスの学習数が管理される。このため、第2の実施形態の通信装置は、第1の実施形態のポートテーブル34、ポート学習カウンタ35、MACアドレステーブル31の代わりに、VLANテーブル41、VLAN学習カウンタ42、MACアドレステーブル43を有する。
VLANテーブル41は、図9(a)に示すように、VIDをインデックスとして、有効ビット(V)、サービスID、学数上限数、エージング時間、フレームコピー情報を格納する。なお、VLANテーブル41は、指定されたグループ毎に学習可能なアドレスの上限数を格納する格納部の一例である。
VIDは、図3(b)に示すように、各フレームのVLANタグ内に格納されており、仮想LANを識別する。したがって、スイッチ部12は、受信フレームのVIDでVLANテーブル41にアクセスすることができる。なお、図3(b)では、VIDは、VLANIDと表記されている。
なお、VLANテーブル41のインデックスは、複数段のVLANタグのVIDに対応するように構成してもよい。例えば、VLANテーブル41がSRAMまたはDRAMで形成される場合、1段目のVIDおよび2段目のVIDをテーブルのインデックスとしてもよい。また、VLANテーブル41が連想メモリを利用して実現される場合、1段目のVIDおよび2段目のVIDを連想メモリの検索キーとして使用してもよい。
サービスIDは、通信装置内で使用される識別情報であり、ユーザに提供されるサービスを識別する。すなわち、サービスIDは、実質的に、ユーザを識別する。また、各VIDに対して、所望のサービスIDを割り当てることが可能である。図9(a)に示す例では、サービス1には、2つの仮想LAN(VID#0およびVID#1)が対応付けられている。サービス2には、1つの仮想LAN(VID#2)が対応付けられている。
学習上限数は、第2の実施形態では、サービスID毎に設定される。すなわち、ユーザ毎にMACアドレステーブル43の学習上限数が設定される。図9(a)に示す例では、サービス1に対して「学習上限数=100」が設定され、サービス2に対して「学習上限数=300」が設定されている。なお、学習上限数は、例えば、サービスIDに対応するユーザと通信サービスの提供者との間の契約等に基づいて決定される。
エージング時間は、第2の実施形態では、サービスID毎に設定される。また、フレームコピー情報は、VID毎に設定される。
VLAN学習カウンタ42は、図9(b)に示すように、サービスIDをインデックスとして、現在の学習数を格納する。なお、第1の実施形態と同様に、MACアドレスが新たに学習されると、学習数がインクリメントされる。また、エージング処理によりMACアドレスが削除されると、学習数はデクリメントされる。
MACアドレステーブル43の構成は、第1および第2の実施形態において実質的に互いに同じである。ただし、第2の実施形態のMACアドレステーブル43は、図9(c)に示すように、第1の実施形態のポートIDの代わりに、サービスIDを管理する。
図10は、第2の実施形態のアドレス学習を示すフローチャートである。このフローチャートの処理は、スイッチ部12にフレームが入力されたときに実行される。
S11において、スイッチ回路32は、VLANテーブル41をリードする。すなわち、スイッチ回路32は、受信フレームのVIDでVLANテーブル41を検索する。この検索において、対応するエントリが存在しないとき、または対応するエントリの有効ビットが「0」であったときは、スイッチ回路32は、受信フレームを廃棄する。一方、対応するエントリの有効ビットが「1」であったときは、スイッチ回路32は、そのエントリからサービスID、学習上限数、エージング時間、フレームコピー情報を取得する。
S12において、テーブル制御部33は、VLAN学習カウンタ42をリードする。すなわち、テーブル制御部33は、VLANテーブル41から取得したサービスIDでVLAN学習カウンタ42を検索し、このサービスIDに対応する現在の学習数を取得する。
S13において、テーブル制御部33は、VLANテーブル41から取得した学習上限数とVLAN学習カウンタ42から取得した学習数とを比較する。VLAN学習カウンタ42の学習数が学習上限数よりも小さいときは、テーブル制御部33の処理はS14へ移行する。一方、VLAN学習カウンタ42の学習数が学習上限数に達していたときは、テーブル制御部33は、MACアドレステーブル43へのアクセスを行うことなく、アドレス学習処理を終了する。
S14およびS15の処理は、図7のS4およびS5と実質的に同じである。即ち、テーブル制御部33は、受信フレームの送信元MACアドレスが学習されているか否かを判定し、また、MACアドレステーブル43に空きエントリが有るか判定する。
送信元MACアドレスが未学習であり、且つ、MACアドレステーブル43に空きエントリが有るときは、テーブル制御部33は、S16において、その送信元MACアドレスをMACアドレステーブル31の空きエントリに格納する。このとき、テーブル制御部33は、以下の処理を実行する。
(1)送信元MACアドレスを格納するエントリの有効ビットを「1」に更新する。
(2)VLANテーブル41から取得したサービスIDをエントリ内に格納する。
(3)受信フレームの装置内フレームヘッダから取得した送信元カード番号および送信元ポート番号をエントリ内に格納する。
(4)VLANテーブル41から取得したエージング時間をエントリ内に設定する。
S17において、テーブル制御部33は、VLANテーブル41から取得したサービスIDでVLAN学習カウンタ42にアクセスする。そして、テーブル制御部33は、VLAN学習カウンタ42の対応する学習数をインクリメントする。
受信フレームの送信元MACアドレスがMACアドレステーブル43に登録されているときは(S14:No)、テーブル制御部33は、エージング時間を初期値に更新する。また、MACアドレステーブル43に空きエントリが無いときは(S15:No)、テーブル制御部33の処理は終了する。
なお、VLAN学習カウンタ42は、サービスID毎に、MACアドレステーブル43に登録されているMACアドレスの数を示す。すなわち、あるサービスIDに属するMACアドレスが学習されたときは、そのサービスIDに対応するカウンタ値に「1」が加算される。また、エージング処理によりMACアドレステーブル43のエントリが削除されると、その削除エントリに格納されていたサービスIDに対応するカウンタ値から「1」が減算される。
テーブル制御部33は、MACアドレスを学習したときに、サービスIDも学習する。このため、エージング処理によってMACアドレステーブル43のエントリが削除されるときに、テーブル制御部33は、どのサービスIDに係わるエントリが削除されたのかを検出できる。したがって、テーブル制御部33は、エージング処理でエントリを削除したときに、対応するサービスIDの学習数をデクリメントできる。
図10に示すフローチャートにおいて、処理ステップの実行順序は、変更可能である。例えば、VLAN学習カウンタ42によりカウントされている学習数と学習上限数との比較の前に、送信元MACアドレスが学習されているか否かを判定する処理および/または空きエントリが有るか否かを判定する処理を実行してもよい。
このように、第2の実施形態においては、仮想LANのユーザ毎に、MACアドレスの学習上限数を決めることができる。したがって、第2の実施形態においても、特定のユーザによってMACアドレステーブル43の多くのエントリが占有されることはない。この結果、ネットワークの輻輳が抑制される。
第2の実施形態では、1つのサービスIDに対して複数の仮想LANを対応付けることができる。したがって、同一のユーザが複数の仮想LANを使用する場合、そのユーザのアドレス学習数の上限を管理できる。また、ベストエフォート(低優先)サービスが適用される複数の仮想LANに対して1つの学習上限数を設定してもよい。
<第3の実施形態>
第1の実施形態では、各ポートに対して1つの学習上限数が与えられる。第2の実施形態では、各サービスID(または、各仮想LAN)に対して1つの学習上限数が与えられる。これに対して、第3の実施形態では、各サービスID(または、各VLAN)に対して複数の学習上限数が与えられる。
図11は、第3の実施形態に係る通信装置の構成を示す。第3の実施形態では、スイッチ部12は、スイッチ回路32、テーブル制御部33、VLANテーブル51、VLAN学習カウンタ52、全体学習カウンタ53、MACアドレステーブル54を有する。
VLANテーブル51は、図12(a)に示すように、VIDをインデックスとして、有効ビット(V)、サービスID、学数上限数、エージング時間を格納する。VLANテーブル51は、指定されたグループ毎に学習可能なアドレスの上限数を格納する格納部の一例である。なお、VLANテーブル51も、第2の実施形態のVLANテーブル41と同様に、フレームコピー情報を格納する。ただし、フレームコピー情報は、第2および第3の実施形態において同じなので、記載を省略する。
第3の実施形態においては、学習優先度が定義される。この実施例では、3つの学習優先度(高優先、中優先、低優先)が用意されている。なお、学習優先度は、フレームに付与されている優先度(Priority)とは異なる。また、通信装置が提供する学習優先度の数は、3に限定されるものではなく、所望の数(例えば、4、8)でよい。
学習上限数は、第2の実施形態と同様に、サービスID毎に設定される。ただし、第3の実施形態では、各学習優先度に対して学習上限数が設定される。図12(a)に示す例では、例えば、サービス1(VID#0)において、高優先度、中優先度、低優先度でMACアドレスを学習できる上限数として、それぞれ400、300、100が設定されている。また、サービス2(VID#1)においては、高優先度、中優先度、低優先度でMACアドレスを学習できる上限数として、それぞれ500、400、100が設定されている。
エージング時間も、第2の実施形態と同様に、サービスID毎に設定される。ただし、第3の実施形態では、各学習優先度に対してエージング時間が設定される。図12(a)に示す例では、例えば、サービス1(VID#0)において、高優先度、中優先度、低優先度で学習されたMACアドレスのエージング時間として、それぞれ5分、3分、1分が設定されている。また、サービス2(VID#1)においては、高優先度、中優先度、低優先度で学習されたMACアドレスのエージング時間として、それぞれ5分、5分、5分が設定されている。
VLAN学習カウンタ52は、図12(b)に示すように、サービスIDをインデックスとして、現在の学習数をカウントする。ただし、第3の実施形態では、各学習優先度に対して学習数が管理される。すなわち、VLAN学習カウンタ52により、各サービスIDに対して、且つ、各学習優先度に対して、MACアドレステーブル54に登録されているMACアドレスの数が管理される。
全体学習カウンタ53は、図12(c)に示すように、各学習優先度について、それぞれ総学習数を管理する。すなわち、全体学習カウンタ53により、学習優先度毎に、MACアドレステーブル54に登録されているMACアドレスの総数が管理される。なお、全体学習カウンタ53のエントリ数は、1つである。
MACアドレステーブル54の各エントリには、有効ビット(V)、サービスID、IFカード番号、ポート番号、エージング時間に加えて、学習優先度が格納される。MACアドレステーブル54に格納される学習優先度は、どの優先度でMACアドレスが学習されたのかを表す。たとえば、ある受信フレームの送信元MACアドレスが高優先度で学習されたときは、そのMACアドレスに対応するエントリに「学習優先度=高」が書き込まれる。
図13は、第3の実施形態のアドレス学習を示すフローチャートである。このフローチャートの処理は、スイッチ部12にフレームが入力されたときに実行される。
S21において、スイッチ回路32は、図12(a)に示すVLANテーブル51をリードする。すなわち、スイッチ回路32は、受信フレームのVIDでVLANテーブル51を検索し、受信フレームのVIDに対応するサービスID、学習上限数、エージング時間、フレームコピー情報を取得する。この検索により、スイッチ回路32は、受信フレームのVIDに対して、高優先度でMACアドレスを学習できる上限数(以下、「学習上限数(高)」)、中優先度でMACアドレスを学習できる上限数(以下、「学習上限数(中)」)、低優先度でMACアドレスを学習できる上限数(以下、「学習上限数(低)」)を取得する。
S22において、テーブル制御部33は、VLAN学習カウンタ52をリードする。すなわち、テーブル制御部33は、VLANテーブル51から取得したサービスIDでVLAN学習カウンタ52を検索し、このサービスIDに対応する学習数を取得する。この検索により、スイッチ回路32は、受信フレームのVIDに対して、高優先度で学習しているMACアドレスの数(以下、「学習数(高)」)、中優先度で学習しているMACアドレスの数(以下、「学習数(中)」)、および低優先度で学習しているMACアドレスの数(以下、「学習数(低)」)を取得する。
S23において、テーブル制御部33は、全体学習カウンタ53をリードする。すなわち、テーブル制御部33は、全体学習カウンタ53から、各学習優先度について、総学習数を取得する。この検索により、スイッチ回路32は、高優先度で学習しているMACアドレスの総数(以下、「総学習数(高)」)、中優先度で学習しているMACアドレスの総数(以下、「総学習数(中)」)、および低優先度で学習しているMACアドレスの総数(以下、「総学習数(低)」)を取得する。
S24において、テーブル制御部33は、受信フレームの送信元MACアドレスがMACアドレステーブル54に登録されているか否かを判定する。すなわち、受信フレームの送信元MACアドレスが学習されているか否かが判定される。そして、送信元MACアドレスが学習されていなければ、テーブル制御部33の処理はS25へ移行する。一方、送信元MACアドレスが既に学習されていれば、テーブル制御部33は、S25〜S36を実行することなく、エージング時間を初期値に更新して処理を終了する。
S25、S29、S33は、どの学習優先度でMACアドレスを学習するのかを判定するために設けられている。
S25において、テーブル制御部33は、VLANテーブル51から取得した学習上限数(高)とVLAN学習カウンタ52から取得した学習数(高)とを比較する。そして、学習数(高)が学習上限数(高)よりも小さいときは、テーブル制御部33の処理はS26へ移行する。一方、学習数(高)が学習上限数(高)に達していれば、テーブル制御部33の処理はS29へ移行する。
S29において、テーブル制御部33は、学習数(中)と学習上限数(中)とを比較する。そして、学習数(中)が学習上限数(中)よりも小さいときは、テーブル制御部33の処理はS30へ移行する。一方、学習数(中)が学習上限数(中)に達していれば、テーブル制御部33の処理はS33へ移行する。
S33において、テーブル制御部33は、学習数(低)と学習上限数(低)とを比較する。そして、学習数(低)が学習上限数(低)よりも小さいときは、テーブル制御部33の処理はS34へ移行する。一方、学習数(低)が学習上限数(低)に達していれば、テーブル制御部33の処理は終了する。
S26〜S28において、受信フレームの送信元MACアドレスは、高優先度で学習される。S26において、テーブル制御部33は、全体学習カウンタ53から取得した総学習数(高)と、MACアドレステーブル54の最大エントリ数とを比較する。そして、総学習数(高)が最大エントリ数よりも小さいときは、テーブル制御部33は、S27において学習処理Aを実行する。一方、総学習数(高)が最大エントリ数に達していれば、テーブル制御部33は、S28において学習処理Bを実行する。
図14は、図13の学習処理Aを示すフローチャートである。学習処理Aは、受信フレームの送信元MACアドレスを高優先度で学習するために、以下の条件が満たされたときに実行される。
(1)受信フレームに対応するサービスIDにおいて、学習数(高)が学習上限数(高)よりも小さい。
(2)総学習数(高)がMACアドレステーブル54の最大エントリ数よりも小さい。
S41において、テーブル制御部33は、MACアドレステーブル54に空きエントリが有るか否かを判定する。空きエントリが有るときは、テーブル制御部33は、S42において、受信フレームの送信元MACアドレスを、その空きエントリに格納する。なお、「MACアドレステーブル54にMACアドレスを格納する」は、MACアドレスをインデックスとするエントリに、図12(d)に示すように、サービスID、学習優先度、IFカード番号、ポート番号、エージング時間を格納する処理に相当する。このとき、このエントリには「学習優先度=高」が設定される。なお、MACアドレステーブル54に格納されるIFカード番号およびポート番号は、フレーム転送を制御するための転送情報の一例である。
S43において、テーブル制御部33は、VLAN学習カウンタ52において、受信フレームのサービスIDに対応する学習数(高)をインクリメントする。また、テーブル制御部33は、全体学習カウンタ53において、総学習数(高)をインクリメントする。
MACアドレステーブル54に空きエントリが無いときは(S41:No)、テーブル制御部33は、S44において、中優先度または低優先度でMACアドレスが格納されているエントリを1つ選択し、受信フレームの送信元MACアドレスを、その選択したエントリに格納する。このとき、このエントリには「学習優先度=高」が設定される。また、選択されたエントリは、受信フレームの送信元MACアドレスによって上書きされる。なお、テーブル制御部33は、例えば、中優先度または低優先度でMACアドレスが格納されているエントリの中で、最も古い(または、所定の閾値よりも古い)エントリを選択する。また、テーブル制御部33は、好ましくは、低優先度でMACアドレスが格納されているエントリを1つ選択する。
S45において、テーブル制御部33は、S44で上書きされたエントリに対応する学習集および総学習数をそれぞれデクリメントする。たとえば、S44で上書きされたエントリに「サービスID=#2」および「学習優先度=低」が格納されていたものとする。このケースでは、VLAN学習カウンタ52において、サービスID=#2に対応する学習数(低)がデクリメントされ、全体学習カウンタ53において、総学習数(低)がデクリメントされる。
図15は、図13の学習処理Bを示すフローチャートである。学習処理Bは、受信フレームの送信元MACアドレスを高優先度で学習するために、以下の条件が満たされたときに実行される。
(1)受信フレームに対応するサービスIDにおいて、学習数(高)が学習上限数(高)よりも小さい。
(2)総学習数(高)がMACアドレステーブル54の最大エントリ数に達している。
S51において、テーブル制御部33は、高優先度でMACアドレスが格納されているエントリを1つ選択し、受信フレームの送信元MACアドレスを、その選択したエントリに格納する。このとき、このエントリには「学習優先度=高」が設定される。また、選択されたエントリは、受信フレームの送信元MACアドレスによって上書きされる。なお、テーブル制御部33は、例えば、高優先度でMACアドレスが格納されているエントリの中で、最も古い(または、所定の閾値よりも古い)エントリを選択する。
S52において、テーブル制御部33は、S51で上書きされたエントリに対応する学習集および総学習数をそれぞれデクリメントする。例えば、S51で上書きされたエントリに「サービスID=#1」が格納されていたものとする。この場合、VLAN学習カウンタ52において、サービスID=#1に対応する学習数(高)がデクリメントされ、全体学習カウンタ53において、総学習数(高)がデクリメントされる。
S53において、テーブル制御部33は、VLAN学習カウンタ52において、受信フレームのサービスIDに対応する学習数(高)をインクリメントする。また、テーブル制御部33は、全体学習カウンタ53において、総学習数(高)をインクリメントする。
図13に戻る。S30〜S32において、受信フレームの送信元MACアドレスは、中優先度で学習される。S30において、テーブル制御部33は、全体学習カウンタ53から取得した総学習数(高)と総学習数(中)との和と、MACアドレステーブル54の最大エントリ数とを比較する。以下、全体学習カウンタ53から取得した総学習数(高)と総学習数(中)との和を「総学習数(高+中)」と呼ぶことがある。そして、総学習数(高+中)が最大エントリ数よりも小さいときは、テーブル制御部33は、S31において学習処理Cを実行する。一方、総学習数(高+中)が最大エントリ数に達していれば、テーブル制御部33は、S32において学習処理Dを実行する。
図16は、図13の学習処理Cを示すフローチャートである。学習処理Cは、受信フレームの送信元MACアドレスを中優先度で学習するために、以下の条件が満たされたときに実行される。
(1)受信フレームに対応するサービスIDにおいて、学習数(高)が学習上限数(高)に達している。
(2)受信フレームに対応するサービスIDにおいて、学習数(中)が学習上限数(中)よりも小さい。
(3)総学習数(高+中)は、MACアドレステーブル54の最大エントリ数よりも小さい。
学習処理CのS61〜S65は、図14に示す学習処理AのS41〜S45と類似している。ただし、学習処理Cでは、受信フレームの送信元MACアドレスは中優先度で学習される。よって、学習処理Aと学習処理Cとでは、以下の処理が異なる。
S62において、受信フレームの送信元MACアドレスが格納されるときに、「学習優先度=中」が設定される。S63では、テーブル制御部33は、VLAN学習カウンタ52において、受信フレームのサービスIDに対応する学習数(中)をインクリメントし、全体学習カウンタ53において、総学習数(中)をインクリメントする。S64では、テーブル制御部33は、低優先度でMACアドレスが格納されているエントリを1つ選択し、受信フレームの送信元MACアドレスを、その選択したエントリに格納する。また、S64において、「学習優先度=中」が設定される。
図17は、図13の学習処理Dを示すフローチャートである。学習処理Dは、受信フレームの送信元MACアドレスを中優先度で学習するために、以下の条件が満たされたときに実行される。
(1)受信フレームに対応するサービスIDにおいて、学習数(高)が学習上限数(高)に達している。
(2)受信フレームに対応するサービスIDにおいて、学習数(中)が学習上限数(中)より小さい。
(3)総学習数(高+中)は、MACアドレステーブル54の最大エントリ数に達している。
学習処理DのS71〜S73は、図15に示す学習処理BのS51〜S53と類似している。ただし、学習処理Dでは、受信フレームの送信元MACアドレスは中優先度で学習される。よって、学習処理Bと学習処理Dとでは、以下の処理が異なる。
S71において、テーブル制御部33は、中優先度でMACアドレスが格納されているエントリを1つ選択し、受信フレームの送信元MACアドレスを、その選択したエントリに格納する。このとき、新たなMACアドレスのためのエントリに対して「学習優先度=中」が設定される。また、S73では、テーブル制御部33は、VLAN学習カウンタ52において、受信フレームのサービスIDに対応する学習数(中)をインクリメントし、全体学習カウンタ53において、総学習数(中)をインクリメントする。
図13に戻る。S34〜S36において、受信フレームの送信元MACアドレスは、低優先度で学習される。S34において、テーブル制御部33は、全体学習カウンタ53から取得した総学習数(高)、総学習数(中)、総学習数(低)の和と、MACアドレステーブル54の最大エントリ数とを比較する。以下、全体学習カウンタ53から取得した総学習数(高)、総学習数(中)、総学習数(低)の和を「総学習数(高+中+低)」と呼ぶことがある。そして、総学習数(高+中+低)が最大エントリ数よりも小さいときは、テーブル制御部33は、S35において学習処理Eを実行する。一方、総学習数(高+中+低)が最大エントリ数に達していれば、テーブル制御部33は、S36において学習処理Fを実行する。
図18は、図13の学習処理Eを示すフローチャートである。学習処理Eは、受信フレームの送信元MACアドレスを低優先度で学習するために、以下の条件が満たされたときに実行される。
(1)受信フレームに対応するサービスIDにおいて、学習数(高)が学習上限数(高)に達している。
(2)受信フレームに対応するサービスIDにおいて、学習数(中)が学習上限数(中)に達している。
(3)受信フレームに対応するサービスIDにおいて、学習数(低)が学習上限数(低)よりも小さい。
(4)総学習数(高+中+低)は、MACアドレステーブル54の最大エントリ数よりも小さい。
学習処理EのS81、S82は、図14に示す学習処理AのS42、S43と類似している。ただし、学習処理Eでは、受信フレームの送信元MACアドレスは低優先度で学習される。よって、学習処理AのS42、S43と学習処理EのS81、S82とでは、以下の処理が異なる。
S81において、受信フレームの送信元MACアドレスが格納されるときに、対応するエントリに「学習優先度=低」が設定される。S82では、テーブル制御部33は、VLAN学習カウンタ52において、受信フレームのサービスIDに対応する学習数(低)をインクリメントし、全体学習カウンタ53において、総学習数(低)をインクリメントする。
図19は、図13の学習処理Fを示すフローチャートである。学習処理Fは、受信フレームの送信元MACアドレスを低優先度で学習するために、以下の条件が満たされたときに実行される。
(1)受信フレームに対応するサービスIDにおいて、学習数(高)が学習上限数(高)に達している。
(2)受信フレームに対応するサービスIDにおいて、学習数(中)が学習上限数(中)に達している。
(3)受信フレームに対応するサービスIDにおいて、学習数(低)が学習上限数(低)よりも小さい。
(4)総学習数(高+中+低)は、MACアドレステーブル54の最大エントリ数に達している。
S90において、テーブル制御部33は、低優先度でMACアドレスが格納されているエントリが有るか判定する。低優先度でMACアドレスが格納されているエントリが有れば、テーブル制御部33の処理は、S91へ移行する。一方、MACアドレステーブル54のすべてのエントリが、高優先度または中優先度で学習されたMACアドレスを格納しているときは、テーブル制御部33は、受信フレームの送信元MACアドレスを学習することなく処理を終了する。
学習処理FのS91〜S93は、図15に示す学習処理BのS51〜S53と類似している。ただし、学習処理Fでは、受信フレームの送信元MACアドレスは低優先度で学習される。よって、学習処理Bと学習処理Fとでは、以下の処理が異なる。
S91において、テーブル制御部33は、低優先度でMACアドレスが格納されているエントリを1つ選択し、受信フレームの送信元MACアドレスを、その選択したエントリに格納する。このとき、新たなMACアドレスのためのエントリに「学習優先度=低」が設定される。また、S93では、テーブル制御部33は、VLAN学習カウンタ52において、受信フレームのサービスIDに対応する学習数(低)をインクリメントし、全体学習カウンタ53において、総学習数(低)をインクリメントする。
なお、S25、S29、S33のすべてにおいて「No」と判定されたときは、受信フレームの送信元MACアドレスの学習は行われない。すなわち、受信フレームに対応するサービスIDに対して、各優先度の学習数がいずれも対応する学習上限数に達していたときは、テーブル制御部33は、その受信フレームの送信元MACアドレスを学習しない。
このように、第3の実施形態では、学習数が学習上限数よりも小さい学習優先度のうちの最も高い学習優先度で、受信フレームの送信元MACアドレスが学習される。例えば、受信フレームに対応する仮想LANにおいて、学習数(高)が学習上限数(高)よりも小さければ、スイッチ部12は、その受信フレームの送信元MACアドレスを高優先度で学習する。また、学習数(高)が学習上限数(高)に達しており、且つ、学習数(中)が学習上限数(中)よりも小さいときは、スイッチ部12は、その受信フレームの送信元MACアドレスを中優先度で学習する。さらに、学習数(高)および学習数(中)がそれぞれ学習上限数(高)および学習上限数(中)に達しており、且つ、学習数(低)が学習上限数(低)よりも小さいときは、スイッチ部12は、その受信フレームの送信元MACアドレスを低優先度で学習する。
また、第1および第2の実施形態では、あるユーザの学習数が学習上限数に達しているときは、MACアドレステーブルに空きアントリが有る場合であっても、スイッチ部12は、そのユーザのMACアドレスを学習しない。これに対して、第3の実施形態では、例えば、あるユーザについての高優先度での学習数が学習上限数に達していても、スイッチ部12は、他の優先度でそのユーザのMACアドレスを学習することができる。したがって、ユーザ毎に各優先度の学習上限数を適切に決定することにより、MACアドレステーブルを効率的に利用しながら、ネットワークの輻輳を抑制することができる。
次に、図20に示す学習上限数の設定例を参照しながら、第3の実施形態のアドレス学習方法を説明する。図20に示す例では、5ユーザに対して仮想LAN(VID=#1、#3、#5、#7、#9)が提供されている。また、MACアドレステーブル54の最大エントリ数は10000である。
図20に示す例では、高優先度の学習上限数の合計は、8000であり、MACアドレステーブル54の最大エントリ数より少ない。この場合、高優先度でのアドレス学習は、MACアドレステーブル54の状態にかかわらず、常に実行可能である。すなわち、高優先度の学習上限数の合計がMACアドレステーブル54の最大エントリ数よりも少ないときは、高優先度でのアドレス学習は保証される。たとえば、仮想LAN#1、#3に対して、それぞれ、4000個のMACアドレスの学習が保証される。このように、仮想LAN#1、#3のMACアドレスは、他の仮想LANと比較して優先的に学習される。すなわち、仮想LAN#1、#3のユーザに対して提供されるサービスのレベルは、他のユーザと比較して高い。
多数のMACアドレスが高優先度で学習されているときは、中優先度または低優先度で学習可能なMACアドレスの個数は少なくなる。たとえば、仮想LAN#1、#3に対して合計8000個のMACアドレスが高優先度で学習されているときは、中優先度または低優先度で学習可能なMACアドレスの個数は2000である。この場合、仮想LAN#5、#7のアドレス学習数は、学習上限数よりもさらに少ない値に制限されてしまう。すなわち、仮想LAN#5、#7のユーザに対して提供されるサービスのレベルは、仮想LAN#1、#3と比較して低い。
仮想LAN#9に対しては、低優先度でのアドレス学習のみが可能である。このため、高優先度および中優先度でのアドレス学習の総数がMACアドレステーブル54の最大エントリ数に達しているときは、仮想LAN#9のMACアドレスの学習は拒絶されることになる。この場合、図19に示すフローチャートにおいて、S90で「No」と判定される。このように、仮想LAN#9のユーザに対して提供されるサービスのレベルは、仮想LAN#1、#3、#5、#7と比較して低い。なお、低優先度でのアドレス学習のみが可能なユーザには、例えば、ベストエフォート型のサービスが適用される。この場合、通信事業者は、このユーザと低料金で契約することができる。
中優先度および低優先度の学習上限数の合計は、それぞれ、MACアドレステーブル54の最大エントリ数より多くてもよい。この場合、各仮想LAN(または、各ユーザ)がMACアドレステーブル54を共有しながらMACアドレスの学習が行われる。
各仮想LAN(または、各ユーザ)に対して設定される高優先度、中優先度、低優先度の学習上限数の和は、MACアドレステーブル54の最大エントリ数と同じであってもよい。この場合、他のユーザが通信を行っていないときは、1つのユーザがMACアドレステーブル54のすべてのエントリを利用できる。
<第4の実施形態>
第4の実施形態は、MACアドレステーブルに登録されているMACアドレスに対するエージング処理に係わる。第4の実施形態に係るエージング処理は、例えば、図11に示す通信装置において実行される。
第4の実施形態においては、図12(a)に示すように、各仮想LANに対してそれぞれ複数のエージング時間が設定される。各仮想LANに対して設定される複数のエージング時間は、それぞれ、上述した複数の学習優先度に対応する。なお、以下の説明においては、各仮想LANに対して学習優先度に応じて設定される3つのエージング時間を、「エージング時間(高)」「エージング時間(中)」「エージング時間(低)」と呼ぶことがある。
MACアドレステーブル54に高優先度で登録されたMACアドレスは、登録時または更新時から対応するエージング時間(高)が経過した時点で削除される。同様に、MACアドレステーブル54に中優先度で登録されたMACアドレスは、登録時または更新時から対応するエージング時間(中)が経過した時点で削除される。また、MACアドレステーブル54に低優先度で登録されたMACアドレスは、登録時または更新時から対応するエージング時間(低)が経過した時点で削除される。
エージング時間は、学習優先度に依存することが好ましい。例えば、学習優先度が高いほどエージング時間が長く、学習優先度が低いほどエージング時間は短い。この場合、上位の優先度で学習されたMACアドレスは、MACアドレステーブル54から削除されにくい。したがって、上位の優先度で学習されたMACアドレスへのフレーム転送は、フラッディングが発生しにくくなる。反対に、下位の優先度で学習されたMACアドレスは、MACアドレステーブル54から削除されやすい。このように、学習優先度に応じてエージング時間を設定することによって、MACアドレステーブル54をさらに効率的に利用することが可能となる。
図21は、エージング処理の一例を示すフローチャートである。このフローチャートの処理は、テーブル制御部33によって実行されるものとする。また、このフローチャートの処理は、定期的(例えば、1秒間隔)に実行される。すなわち、このフローチャートの処理は、フレームの入力とは無関係に実行される。なお、図21を参照する説明では、エージング時間は、「秒」を単位として表されているものとする。
S101において、テーブル制御部33は、MACアドレステーブル54のリードポインタをゼロにセットする。S102において、テーブル制御部33は、リードポインタをリードアドレスとして、MACアドレステーブル54の対応するエントリをリードする。S103において、テーブル制御部33は、リードしたエントリの有効ビット(V)の値をチェックする。
有効ビットが「1」でなないときには、テーブル制御部33の処理はS108へ移行する。一方、有効ビットが「1」であれば、テーブル制御部33は、S104において、リードしたエージング時間から「1」を減算する。そして、S105において、テーブル制御部33は、減算演算後のエージング時間が「0」であるか判定する。
エージング時間が「0」であれば、テーブル制御部33は、S106において、当該エントリの有効ビットを「0」に更新する。これにより、当該エントリに登録されていたMACアドレスは削除される。一方、エージング時間が「0」でなければ、テーブル制御部33は、S107において、当該エントリのエージング時間を更新する。このとき、このエントリには、S104の減算演算の結果が書き込まれる(上書き)。
S108において、テーブル制御部33は、リードポインタがMACアドレステーブル54の最終アドレスか否かを判定する。そして、リードポインタがMACアドレステーブル54の最終アドレスでなければ、テーブル制御部33は、S109において、リードポインタをインクリメントする。この後、テーブル制御部33の処理は、S102に戻る。したがって、MACアドレステーブル54の各エントリに対してS103〜S107の処理が実行される。
このように、テーブル制御部33は、MACアドレステーブル54の各エントリのエージング時間を定期的にデクリメントする。この結果、エージング時間がゼロになったエントリに登録されていたMACアドレスが削除される。
<第5の実施形態>
第1〜第3の実施形態では、ユーザ毎(ポート毎または仮想LAN毎)にMACアドレスの学習上限数が設定される。第5の実施形態では、ユーザ毎にMACアドレスの学習上限数が設定される構成を前提として、MACアドレス学習においてさらにフレーム自体の優先度が考慮される。各フレームの優先度は、図3(b)に示すVLANタグの中に格納されている「優先度(Priority)」により特定される。なお、以下の説明では、フレームの優先度と学習優先度とを区別するために、フレームの優先度を「フレーム優先度」を呼ぶことがある。
図22は、第5の実施形態に係る通信装置の構成を示す。第5の実施形態の通信装置の構成は、図11に示す第3の実施形態とほぼ同じである。ただし、第5の実施形態のスイッチ部12は、スイッチ回路32、テーブル制御部33、VLANテーブル61、VLAN学習カウンタ52、全体学習カウンタ53、MACアドレステーブル54、クラステーブル62を有する。VLAN学習カウンタ52、全体学習カウンタ53、MACアドレステーブル54は、第3および第5の実施形態において実質的に互いに同じである。
VLANテーブル61は、図23(a)に示すように、VIDをインデックスとして、有効ビット(V)、サービスID、クラスID、学数上限数、エージング時間を格納する。有効ビット(V)、サービスID、学数上限数、エージング時間は、実質的に第3の実施形態と同じなので、説明を省略する。また、VLANテーブル61も、第2の実施形態のVLANテーブル41と同様にフレームコピー情報を格納するが、記載を省略する。
クラスIDは、例えば、仮想LANのユーザと通信事業者との間の契約等により、各仮想LANに対して決定される。図23(a)に示す例では、仮想LAN#0に対してクラス0が設定され、仮想LAN#2に対してクラス1が設定されている。なお、この実施例では、通信装置によって4つのクラスが提供される。
クラステーブル62は、図23(b)に示すように、クラスIDおよびフレーム優先度をインデックスとして、学習優先度を管理する。学習優先度は、上述したように、高優先度、中優先度、低優先度を含む。
スイッチ部12は、受信フレームが属する仮想LANおよびその受信フレームのフレーム優先度に基づいて、受信フレームのMACアドレスを学習する際の学習優先度を決定する。例えば、受信フレームのVLANタグに「VID=#0」「フレーム優先度=7」が格納されているものとする。この場合、スイッチ部12は、「VID=#0」でVLANテーブル61を検索することにより「クラスID=0」を得る。そうすると、スイッチ部12は、「クラスID=0」および「フレーム優先度=7」でクラステーブル62を検索することにより、「学習優先度=高」を得る。このように、スイッチ部12は、クラステーブル62を参照することにより、受信フレームの送信元MACアドレスを学習する際の学習優先度を決定する。
図24は、第5の実施形態のアドレス学習を示すフローチャートである。このフローチャートの処理は、スイッチ部12にフレームが入力されたときに実行される。
第5の実施形態において実行されるS21〜S36は、第3の実施形態と実質的に同じである。ただし、第5の実施形態のフローチャートは、S21〜S36に加えて、S111〜S113を有する。
S111において、テーブル制御部33は、クラステーブル62をリードする。すなわち、テーブル制御部33は、クラスIDおよびフレーム優先度でクラステーブル62を検索する。クラスIDは、S21において、受信フレームのVIDでVLANテーブル61を検索することによって得られる。また、フレーム優先度は、受信フレームのVLANタグから得られる。そして、テーブル制御部33は、この検索により、受信フレームの送信元MACアドレスを学習するための学習優先度を特定する。
受信フレームの送信元MACアドレスが学習されていないときは(S24:Yes)、テーブル制御部33は、S112〜S113において、学習優先度に応じて実行すべき処理を決定する。すなわち、学習優先度が「高」であれば、テーブル制御部33の処理はS25へ移行する。学習優先度が「中」であれば、テーブル制御部33の処理はS29へ移行する。学習優先度が「高」または「中」のいずれでもないときは、テーブル制御部33の処理はS33へ移行する。
学習優先度が「高」であるときは、テーブル制御部33は、図14に示す学習処理Aまたは図15に示す学習処理Bで、受信フレームの送信元MACアドレスを学習する。この場合、MACアドレスは、高優先度で学習される。ただし、S25において、現在の学習数(高)が学習上限数(高)に達していたときは、テーブル制御部33は、受信フレームの送信元MACアドレスを学習することなく、処理を終了する。
学習優先度が「中」であるときは、テーブル制御部33は、図16に示す学習処理Cまたは図17に示す学習処理Dで、受信フレームの送信元MACアドレスを学習する。この場合、MACアドレスは、中優先度で学習される。ただし、S29において、現在の学習数(中)が学習上限数(中)に達していたときは、テーブル制御部33は、受信フレームの送信元MACアドレスを学習することなく、処理を終了する。
学習優先度が「低」であるときは、テーブル制御部33は、図18に示す学習処理Eまたは図19に示す学習処理Fで、受信フレームの送信元MACアドレスを学習する。この場合、MACアドレスは、低優先度で学習される。ただし、S33において、現在の学習数(低)が学習上限数(低)に達していたときは、テーブル制御部33は、受信フレームの送信元MACアドレスを学習することなく、処理を終了する。
なお、受信フレームがVLANタグを有していないときは、スイッチ部12は、その受信フレームに対して所定のフレーム優先度(例えば、ゼロ)を与えてアドレス学習処理を実行する。この方式を採用すれば、スイッチ部12は、VLANタグを有していないフレームを受信したときであっても、図24に示すフローチャートに従って学習優先度を決定してアドレス学習を行うことができる。
上述のように、第3の実施形態では、フレーム自体の優先度とは無関係に学習優先度が決定される。この方式は、フレーム優先度が高いフレームに対して、必ずしも高い学習優先度を与える必要はない、というポリシに基づいている。第3の実施形態では、通信頻度の高い端末またはサーバのアドレスが、高優先度で学習されて、MACアドレステーブル54に保持されやすくなる。
第5の実施形態では、フレーム自体の優先度を考慮して学習優先度が決定される。この方式は、フレーム優先度が高いフレームに対して、高い学習優先度を与える、というポリシに基づいている。なお、第3の実施形態または第5の実施形態の選択は、例えば、通信事業者が提供するサービスのポリシ、およびユーザの要求などに応じて行われることが好ましい。
<第6の実施形態>
第5の実施形態では、フレーム優先度に基づいて学習優先度が決定され、その学習優先度でMACアドレスが学習される。このとき、決定された学習優先度の学習数が学習上限数に達していたときは、MACアドレスの学習は行われない。
第6の実施形態でも、第5の実施形態と同様に、フレーム優先度に基づいて学習優先度が決定され、その学習優先度でMACアドレスが学習される。ただし、第6の実施形態では、決定された学習優先度の学習数が対応する学習上限数に達していた場合であっても、下位の学習優先度の学習数が対応する学習上限数に達していなければ、MACアドレスの学習が行われる。なお、通信装置の構成は、第5および第6の実施形態において実質的に互いに同じである。
図25は、第6の実施形態のアドレス学習を示すフローチャートである。このフローチャートの処理は、スイッチ部12にフレームが入力されたときに実行される。
第6の実施形態においては、図25に示すように、学習数(高)が学習上限数(高)に達しているときは(S25:No)、テーブル制御部33の処理はS29へ移行する。また、学習数(中)が学習上限数(中)に達しているときは(S29:No)、テーブル制御部33の処理はS33へ移行する。その他の処理は、第5および第6の実施形態において実質的に互いに同じである。
このように、第6の実施形態では、MACアドレスの学習が可能か否かが柔軟に判定される。よって、MACアドレステーブル54をさらに効率的に使用することができる。
<他の実施形態>
図11〜図25に示す例では、第3〜第6の実施形態において仮想LANに対して学習上限数が設定されるが、第3〜第6の実施形態において物理ポートまたは論理ポートに対して学習上限数を設定してもよい。
図6に示す例では、各論理ポート(ポートID)に対して1または複数の物理ポートが対応付けられ、論理ポート毎に学習上限数が設定されるが、本発明はこの構成に限定されるものではない。すなわち、本発明は、物理ポート毎に学習上限数が設定される構成を含む。この場合、1つの物理ポートに1つのユーザのみが収容されるようにネットワークを構築すれば、ユーザ毎にMACアドレスの学習数が制限される。
図9、図12、図23に示す例では、各サービスIDに対して1または複数の仮想LANが対応付けられ、サービスID毎に学習上限数が設定されるが、本発明はこの構成に限定されるものではない。すなわち、本発明は、仮想LAN毎に学習上限数が設定される構成を含む。
上述の実施例では、フレームを転送する通信装置においてMACアドレスが学習されるが、本発明はこの構成に限定されるものではない。すなわち、本発明は、フレームに格納されている他のアドレスを学習する通信装置にも適用可能である。
以上記載した各実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
フレーム転送を制御するための転送情報を格納するテーブルと、
受信フレームの送信元アドレスおよび対応する転送情報を前記テーブルに登録することにより前記受信フレームの送信元アドレスを学習する学習制御部と、
指定されたグループ毎に学習可能なアドレスの上限数を格納する格納部と、を有し、
前記学習制御部は、受信フレームに対応するグループにおけるアドレスの学習数と、前記受信フレームに対応するグループに対して与えられている上限数との比較に基づいて、前記受信フレームの送信元アドレスを学習できるか否かを判定する
ことを特徴とする通信装置。
(付記2)
受信フレームに対応するグループにおけるアドレスの学習数が、前記受信フレームに対応するグループに対して与えられている上限数に達しているときは、前記学習制御部は、前記受信フレームの送信元アドレスを学習できないと判定する
ことを特徴とする付記1に記載の通信装置。
(付記3)
前記格納部は、前記グループ毎に、前記テーブルへのアドレスの登録の優先度を表す複数の学習優先度に対してそれぞれ学習可能なアドレスの上限数を格納する
ことを特徴とする付記1に記載の通信装置。
(付記4)
前記学習制御部は、アドレスの学習数が対応する上限数よりも少ない学習優先度の中の最も高い学習優先度で、前記受信フレームの送信元アドレスを学習する
ことを特徴とする付記3に記載の通信装置。
(付記5)
前記格納部は、前記グループ毎に、第1の学習優先度で学習可能なアドレスの上限数を表す第1の上限数、および前記第1の学習優先度よりも低い第2の学習優先度で学習可能なアドレスの上限数を表す第2の上限数を格納し、
受信フレームに対応するグループにおける前記第1の学習優先度でのアドレスの学習数が、前記受信フレームに対応するグループに対して与えられている前記第1の上限数よりも少ないときは、前記学習制御部は、前記受信フレームの送信元アドレスを学習できると判定し、
受信フレームに対応するグループにおける前記第1の学習優先度でのアドレスの学習数が、前記受信フレームに対応するグループに対して与えられている前記第1の上限数に達しているときは、前記学習制御部は、受信フレームに対応するグループにおける前記第2の学習優先度でのアドレスの学習数と、前記受信フレームに対応するグループに対して与えられている前記第2の上限数との比較に基づいて、前記受信フレームの送信元アドレスを学習できるか否かを判定する
ことを特徴とする付記1に記載の通信装置。
(付記6)
受信フレームに対応するグループにおける前記第1の学習優先度でのアドレスの学習数が、前記受信フレームに対応するグループに対して与えられている前記第1の上限数よりも少なく、且つ、各グループにおける前記第1の学習優先度でのアドレスの学習数の合計が、前記テーブルの最大エントリ数よりも少ないときは、前記学習制御部は、前記受信フレームの送信元アドレスおよび対応する転送情報を前記テーブルの空きエントリに格納する
ことを特徴とする付記5に記載の通信装置。
(付記7)
受信フレームに対応するグループにおける前記第1の学習優先度でのアドレスの学習数が、前記受信フレームに対応するグループに対して与えられている前記第1の上限数よりも少なく、且つ、各グループにおける前記第1の学習優先度でのアドレスの学習数の合計が、前記テーブルの最大エントリ数よりも少ないときは、前記学習制御部は、前記受信フレームの送信元アドレスおよび対応する転送情報を、前記第2の学習優先度でアドレスが登録されているエントリの1つに格納する
ことを特徴とする付記5に記載の通信装置。
(付記8)
受信フレームに対応するグループにおける前記第1の学習優先度でのアドレスの学習数が、前記受信フレームに対応するグループに対して与えられている前記第1の上限数よりも少なく、且つ、各グループにおける前記第1の学習優先度でのアドレスの学習数の合計が、前記テーブルの最大エントリ数に達しているときは、前記学習制御部は、前記受信フレームの送信元アドレスおよび対応する転送情報を、前記第1の学習優先度でアドレスが登録されているエントリの1つに格納する
ことを特徴とする付記5に記載の通信装置。
(付記9)
受信フレームに対応するグループおよび前記受信フレームに付与されているフレーム優先度に基づいて、学習優先度を選択する学習優先度選択部をさらに有し、
前記学習制御部は、受信フレームに対応するグループにおける前記学習優先度選択部により選択された学習優先度でのアドレスの学習数と、前記受信フレームに対応するグループに対して与えられている、前記学習優先度選択部により選択された学習優先度に対応する上限数との比較に基づいて、前記受信フレームの送信元アドレスを学習できるか否かを判定する
ことを特徴とする付記5に記載の通信装置。
(付記10)
前記学習優先度選択部は、前記受信フレームに付与されているフレーム優先度を対応する学習優先度に変換する
ことを特徴とする付記9に記載の通信装置。
(付記11)
前記格納部は、前記グループ毎に、前記第1の学習優先度で学習されたアドレスを前記テーブルに保持しておく時間を表す第1のエージング時間、および前記第2の学習優先度で学習されたアドレスを前記テーブル保持しておく時間を表す第2のエージング時間を格納し、
前記学習制御部は、前記第1の学習優先度で前記テーブルに登録されているアドレスに対して前記第1のエージング時間でエージング処理を行い、前記第2の学習優先度で前記テーブルに登録されているアドレスに対して前記第2のエージング時間でエージング処理を行う
ことを特徴とする付記5に記載の通信装置。
(付記12)
それぞれフレームを受信および送信するための複数の通信ポートをさらに有し、
前記グループは、各通信ポートを識別する識別情報に基づいて指定される
ことを特徴とする付記1〜11のいずれか1つに記載の通信装置。
(付記13)
前記グループは、各フレームに格納されている、ユーザまたはネットワークを識別するための識別情報に基づいて指定される
ことを特徴とする付記1〜11のいずれか1つに記載の通信装置。
(付記14)
フレーム転送を制御するための転送情報を格納するテーブルに、受信フレームの送信元アドレスおよび対応する転送情報を登録することにより、前記受信フレームの送信元アドレスを学習するアドレス学習方法であって、
ネットワーク毎に学習可能なアドレスの上限数を格納する格納部から、受信フレームが属するネットワークに対応する上限数を取得し、
前記受信フレームが属するネットワークのアドレスの学習数と、前記受信フレームが属するネットワークに対応する上限数との比較の結果に基づいて、前記受信フレームの送信元アドレスを学習できるか否かを判定する
ことを特徴とするアドレス学習方法。
1 通信装置
11 インタフェース部
12 スイッチ部
13 制御部
31、43、54 MACアドレステーブル
32 スイッチ回路
33 テーブル制御部
34 ポートテーブル
35 ポート学習カウンタ
41、51、61 VLANテーブル
42、52 VLAN学習カウンタ
53 全体学習カウンタ
62 クラステーブル

Claims (9)

  1. フレーム転送を制御するための転送情報を格納するテーブルと、
    受信フレームの送信元アドレスおよび対応する転送情報を前記テーブルに登録することにより前記受信フレームの送信元アドレスを学習する学習制御部と、
    指定されたグループ毎に、第1の学習優先度で学習可能なアドレスの上限数を表す第1の上限数、および前記第1の学習優先度よりも低い第2の学習優先度で学習可能なアドレスの上限数を表す第2の上限数を格納する格納部と、を有し、
    受信フレームに対応するグループにおける前記第1の学習優先度でのアドレスの学習数が、前記受信フレームに対応するグループに対して与えられている前記第1の上限数よりも少ないときは、前記学習制御部は、前記受信フレームの送信元アドレスを学習できると判定し、
    受信フレームに対応するグループにおける前記第1の学習優先度でのアドレスの学習数が、前記受信フレームに対応するグループに対して与えられている前記第1の上限数に達しているときは、前記学習制御部は、受信フレームに対応するグループにおける前記第2の学習優先度でのアドレスの学習数と、前記受信フレームに対応するグループに対して与えられている前記第2の上限数との比較に基づいて、前記受信フレームの送信元アドレスを学習できるか否かを判定し、
    受信フレームに対応するグループにおける前記第1の学習優先度でのアドレスの学習数が、前記受信フレームに対応するグループに対して与えられている前記第1の上限数よりも少なく、且つ、各グループにおける前記第1の学習優先度でのアドレスの学習数の合計が、前記テーブルの最大エントリ数よりも少ないときは、前記学習制御部は、前記受信フレームの送信元アドレスおよび対応する転送情報を前記テーブルの空きエントリに格納する
    ことを特徴とする通信装置。
  2. フレーム転送を制御するための転送情報を格納するテーブルと、
    受信フレームの送信元アドレスおよび対応する転送情報を前記テーブルに登録することにより前記受信フレームの送信元アドレスを学習する学習制御部と、
    指定されたグループ毎に、第1の学習優先度で学習可能なアドレスの上限数を表す第1の上限数、および前記第1の学習優先度よりも低い第2の学習優先度で学習可能なアドレスの上限数を表す第2の上限数を格納する格納部と、を有し、
    受信フレームに対応するグループにおける前記第1の学習優先度でのアドレスの学習数が、前記受信フレームに対応するグループに対して与えられている前記第1の上限数よりも少ないときは、前記学習制御部は、前記受信フレームの送信元アドレスを学習できると判定し、
    受信フレームに対応するグループにおける前記第1の学習優先度でのアドレスの学習数が、前記受信フレームに対応するグループに対して与えられている前記第1の上限数に達しているときは、前記学習制御部は、受信フレームに対応するグループにおける前記第2の学習優先度でのアドレスの学習数と、前記受信フレームに対応するグループに対して与えられている前記第2の上限数との比較に基づいて、前記受信フレームの送信元アドレスを学習できるか否かを判定し、
    受信フレームに対応するグループにおける前記第1の学習優先度でのアドレスの学習数が、前記受信フレームに対応するグループに対して与えられている前記第1の上限数よりも少なく、且つ、各グループにおける前記第1の学習優先度でのアドレスの学習数の合計が、前記テーブルの最大エントリ数よりも少ないときは、前記学習制御部は、前記受信フレームの送信元アドレスおよび対応する転送情報を、前記第2の学習優先度でアドレスが登録されているエントリの1つに格納する
    ことを特徴とする通信装置。
  3. フレーム転送を制御するための転送情報を格納するテーブルと、
    受信フレームの送信元アドレスおよび対応する転送情報を前記テーブルに登録することにより前記受信フレームの送信元アドレスを学習する学習制御部と、
    指定されたグループ毎に、第1の学習優先度で学習可能なアドレスの上限数を表す第1の上限数、および前記第1の学習優先度よりも低い第2の学習優先度で学習可能なアドレスの上限数を表す第2の上限数を格納する格納部と、を有し、
    受信フレームに対応するグループにおける前記第1の学習優先度でのアドレスの学習数が、前記受信フレームに対応するグループに対して与えられている前記第1の上限数よりも少ないときは、前記学習制御部は、前記受信フレームの送信元アドレスを学習できると判定し、
    受信フレームに対応するグループにおける前記第1の学習優先度でのアドレスの学習数が、前記受信フレームに対応するグループに対して与えられている前記第1の上限数に達しているときは、前記学習制御部は、受信フレームに対応するグループにおける前記第2の学習優先度でのアドレスの学習数と、前記受信フレームに対応するグループに対して与えられている前記第2の上限数との比較に基づいて、前記受信フレームの送信元アドレスを学習できるか否かを判定し、
    受信フレームに対応するグループにおける前記第1の学習優先度でのアドレスの学習数が、前記受信フレームに対応するグループに対して与えられている前記第1の上限数よりも少なく、且つ、各グループにおける前記第1の学習優先度でのアドレスの学習数の合計が、前記テーブルの最大エントリ数に達しているときは、前記学習制御部は、前記受信フレームの送信元アドレスおよび対応する転送情報を、前記第1の学習優先度でアドレスが登録されているエントリの1つに格納する
    ことを特徴とする通信装置。
  4. フレーム転送を制御するための転送情報を格納するテーブルと、
    受信フレームの送信元アドレスおよび対応する転送情報を前記テーブルに登録することにより前記受信フレームの送信元アドレスを学習する学習制御部と、
    指定されたグループ毎に、前記テーブルへのアドレスの登録の優先度を表す複数の学習優先度に対してそれぞれ学習可能なアドレスの上限数を格納する格納部と、
    受信フレームに対応するグループおよび前記受信フレームに付与されているフレーム優先度に基づいて、学習優先度を選択する学習優先度選択部と、を有し、
    前記学習制御部は、受信フレームに対応するグループにおける前記学習優先度選択部により選択された学習優先度でのアドレスの学習数と、前記受信フレームに対応するグループに対して与えられている、前記学習優先度選択部により選択された学習優先度に対応する上限数との比較に基づいて、前記受信フレームの送信元アドレスを学習できるか否かを判定する
    ことを特徴とする通信装置。
  5. 前記格納部は、前記グループ毎に、前記第1の学習優先度で学習されたアドレスを前記テーブルに保持しておく時間を表す第1のエージング時間、および前記第2の学習優先度で学習されたアドレスを前記テーブル保持しておく時間を表す第2のエージング時間を格納し、
    前記学習制御部は、前記第1の学習優先度で前記テーブルに登録されているアドレスに対して前記第1のエージング時間でエージング処理を行い、前記第2の学習優先度で前記テーブルに登録されているアドレスに対して前記第2のエージング時間でエージング処理を行う
    ことを特徴とする請求項1〜4のいずれか1つに記載の通信装置。
  6. フレーム転送を制御するための転送情報を格納するテーブルに、受信フレームの送信元アドレスおよび対応する転送情報を登録することにより、前記受信フレームの送信元アドレスを学習するアドレス学習方法であって、
    指定されたグループ毎に、第1の学習優先度で学習可能なアドレスの上限数を表す第1の上限数、および前記第1の学習優先度よりも低い第2の学習優先度で学習可能なアドレスの上限数を表す第2の上限数を格納する格納部を参照して、前記受信フレームの送信元アドレスを学習するか否かを判定する処理において、
    受信フレームに対応するグループにおける前記第1の学習優先度でのアドレスの学習数が、前記受信フレームに対応するグループに対して与えられている前記第1の上限数よりも少ないときは、前記受信フレームの送信元アドレスを学習できると判定し、
    受信フレームに対応するグループにおける前記第1の学習優先度でのアドレスの学習数が、前記受信フレームに対応するグループに対して与えられている前記第1の上限数に達しているときは、受信フレームに対応するグループにおける前記第2の学習優先度でのアドレスの学習数と、前記受信フレームに対応するグループに対して与えられている前記第2の上限数との比較に基づいて、前記受信フレームの送信元アドレスを学習できるか否かを判定し、
    受信フレームに対応するグループにおける前記第1の学習優先度でのアドレスの学習数が、前記受信フレームに対応するグループに対して与えられている前記第1の上限数よりも少なく、且つ、各グループにおける前記第1の学習優先度でのアドレスの学習数の合計が、前記テーブルの最大エントリ数よりも少ないときは、前記受信フレームの送信元アドレスおよび対応する転送情報を前記テーブルの空きエントリに格納する
    ことを特徴とするアドレス学習方法。
  7. フレーム転送を制御するための転送情報を格納するテーブルに、受信フレームの送信元アドレスおよび対応する転送情報を登録することにより、前記受信フレームの送信元アドレスを学習するアドレス学習方法であって、
    指定されたグループ毎に、第1の学習優先度で学習可能なアドレスの上限数を表す第1の上限数、および前記第1の学習優先度よりも低い第2の学習優先度で学習可能なアドレスの上限数を表す第2の上限数を格納する格納部を参照して、前記受信フレームの送信元アドレスを学習するか否かを判定する処理において、
    受信フレームに対応するグループにおける前記第1の学習優先度でのアドレスの学習数が、前記受信フレームに対応するグループに対して与えられている前記第1の上限数よりも少ないときは、前記受信フレームの送信元アドレスを学習できると判定し、
    受信フレームに対応するグループにおける前記第1の学習優先度でのアドレスの学習数が、前記受信フレームに対応するグループに対して与えられている前記第1の上限数に達しているときは、受信フレームに対応するグループにおける前記第2の学習優先度でのアドレスの学習数と、前記受信フレームに対応するグループに対して与えられている前記第2の上限数との比較に基づいて、前記受信フレームの送信元アドレスを学習できるか否かを判定し、
    受信フレームに対応するグループにおける前記第1の学習優先度でのアドレスの学習数が、前記受信フレームに対応するグループに対して与えられている前記第1の上限数よりも少なく、且つ、各グループにおける前記第1の学習優先度でのアドレスの学習数の合計が、前記テーブルの最大エントリ数よりも少ないときは、前記受信フレームの送信元アドレスおよび対応する転送情報を、前記第2の学習優先度でアドレスが登録されているエントリの1つに格納する
    ことを特徴とするアドレス学習方法。
  8. フレーム転送を制御するための転送情報を格納するテーブルに、受信フレームの送信元アドレスおよび対応する転送情報を登録することにより、前記受信フレームの送信元アドレスを学習するアドレス学習方法であって、
    指定されたグループ毎に、第1の学習優先度で学習可能なアドレスの上限数を表す第1の上限数、および前記第1の学習優先度よりも低い第2の学習優先度で学習可能なアドレスの上限数を表す第2の上限数を格納する格納部を参照して、前記受信フレームの送信元アドレスを学習するか否かを判定する処理において、
    受信フレームに対応するグループにおける前記第1の学習優先度でのアドレスの学習数が、前記受信フレームに対応するグループに対して与えられている前記第1の上限数よりも少ないときは、前記受信フレームの送信元アドレスを学習できると判定し、
    受信フレームに対応するグループにおける前記第1の学習優先度でのアドレスの学習数が、前記受信フレームに対応するグループに対して与えられている前記第1の上限数に達しているときは、受信フレームに対応するグループにおける前記第2の学習優先度でのアドレスの学習数と、前記受信フレームに対応するグループに対して与えられている前記第2の上限数との比較に基づいて、前記受信フレームの送信元アドレスを学習できるか否かを判定し、
    受信フレームに対応するグループにおける前記第1の学習優先度でのアドレスの学習数が、前記受信フレームに対応するグループに対して与えられている前記第1の上限数よりも少なく、且つ、各グループにおける前記第1の学習優先度でのアドレスの学習数の合計が、前記テーブルの最大エントリ数に達しているときは、前記受信フレームの送信元アドレスおよび対応する転送情報を、前記第1の学習優先度でアドレスが登録されているエントリの1つに格納する
    ことを特徴とするアドレス学習方法。
  9. フレーム転送を制御するための転送情報を格納するテーブルに、受信フレームの送信元アドレスおよび対応する転送情報を登録することにより、前記受信フレームの送信元アドレスを学習するアドレス学習方法であって、
    指定されたグループ毎に前記テーブルへのアドレスの登録の優先度を表す複数の学習優先度に対してそれぞれ学習可能なアドレスの上限数を格納する格納部を参照して、前記受信フレームの送信元アドレスを学習するか否かを判定する処理において、
    受信フレームに対応するグループおよび前記受信フレームに付与されているフレーム優先度に基づいて学習優先度を選択し、
    受信フレームに対応するグループにおける、学習優先度を選択する処理により選択された前記学習優先度でのアドレスの学習数と、前記受信フレームに対応するグループに対して与えられている、学習優先度を選択する処理により選択された前記学習優先度に対応する上限数との比較に基づいて、前記受信フレームの送信元アドレスを学習できるか否かを判定する
    ことを特徴とするアドレス学習方法。
JP2012215174A 2012-09-27 2012-09-27 通信装置およびアドレス学習方法 Expired - Fee Related JP6015304B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012215174A JP6015304B2 (ja) 2012-09-27 2012-09-27 通信装置およびアドレス学習方法
US13/942,980 US9325613B2 (en) 2012-09-27 2013-07-16 Communication device and address learning method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012215174A JP6015304B2 (ja) 2012-09-27 2012-09-27 通信装置およびアドレス学習方法

Publications (2)

Publication Number Publication Date
JP2014072581A JP2014072581A (ja) 2014-04-21
JP6015304B2 true JP6015304B2 (ja) 2016-10-26

Family

ID=50338806

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012215174A Expired - Fee Related JP6015304B2 (ja) 2012-09-27 2012-09-27 通信装置およびアドレス学習方法

Country Status (2)

Country Link
US (1) US9325613B2 (ja)
JP (1) JP6015304B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6086020B2 (ja) * 2013-04-24 2017-03-01 富士通株式会社 通信装置、アドレス学習方法及びアドレス学習プログラム
US9912612B2 (en) * 2013-10-28 2018-03-06 Brocade Communications Systems LLC Extended ethernet fabric switches
JP6520259B2 (ja) * 2015-03-18 2019-05-29 富士通株式会社 通信装置及び通信制御方法
JP6634718B2 (ja) * 2015-07-01 2020-01-22 富士通株式会社 仮想ネットワーク設定方法、仮想ネットワーク設定プログラム及び中継装置
CN106603736B (zh) * 2015-10-20 2020-05-19 中兴通讯股份有限公司 Mac地址处理方法及装置
US11032185B2 (en) 2016-09-09 2021-06-08 Nec Corporation Communication system, edge node, communication method and program
WO2020147039A1 (zh) * 2019-01-16 2020-07-23 Oppo广东移动通信有限公司 以太网帧头压缩处理方法、装置、芯片及计算机程序
JP7435778B2 (ja) 2020-07-03 2024-02-21 日本電信電話株式会社 通信装置、アドレス学習方法及びプログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3525124B2 (ja) * 2001-08-07 2004-05-10 株式会社フジクラ Macブリッジのアドレス管理方法及び接続可能端末数管理機能付きmacブリッジ
JP4101631B2 (ja) * 2002-12-13 2008-06-18 富士通株式会社 スイッチング装置
JP2006303968A (ja) 2005-04-21 2006-11-02 Nippon Telegr & Teleph Corp <Ntt> Arpキャッシュメモリの制御方法および制御プログラム
JP5074314B2 (ja) * 2008-07-07 2012-11-14 株式会社日立製作所 フレーム転送装置
JP2010114724A (ja) 2008-11-07 2010-05-20 Fujitsu Ltd ネットワークスイッチ装置、ネットワークスイッチ方法及びネットワークスイッチプログラム

Also Published As

Publication number Publication date
US9325613B2 (en) 2016-04-26
JP2014072581A (ja) 2014-04-21
US20140086250A1 (en) 2014-03-27

Similar Documents

Publication Publication Date Title
JP6015304B2 (ja) 通信装置およびアドレス学習方法
EP2926513B1 (en) Packet prioritization in a software-defined network implementing openflow
US9294395B2 (en) Media access control bridging in a mesh network
EP2904745B1 (en) Method and apparatus for accelerating forwarding in software-defined networks
US9800503B2 (en) Control plane protection for various tables using storm prevention entries
US7889655B2 (en) Techniques for detecting loop-free paths that cross routing information boundaries
US11303553B1 (en) Return path trace
TW202034737A (zh) 在網路運算環境中的路由最佳化
US20150131666A1 (en) Apparatus and method for transmitting packet
EP2568670B1 (en) Method for message forwarding and device for deep packet inspection
EP2619953B1 (en) A control apparatus, a communication system, a communication method and a recording medium having recorded thereon a communication program
US20080031247A1 (en) Network device and data control program
US20040225725A1 (en) Network system, learning bridge node, learning method and its program
US10693790B1 (en) Load balancing for multipath group routed flows by re-routing the congested route
US20100232322A1 (en) Node, network system, frame transfer method, and frame transfer program
US10097467B1 (en) Load balancing for multipath groups routed flows by re-associating routes to multipath groups
JPWO2011118566A1 (ja) パケット転送システム、制御装置、転送装置、処理規則の作成方法およびプログラム
US7451203B2 (en) Method and system for communicating between a management station and at least two networks having duplicate internet protocol addresses
US20150023173A1 (en) Systems And Methods For Managing A Network
RU2602333C2 (ru) Сетевая система, способ обработки пакетов и носитель записи
US9548929B2 (en) Frame transfer apparatus and frame transfer method
JPWO2018047943A1 (ja) 通信システム、エッジノード、通信方法及びプログラム
US20120106555A1 (en) Low latency carrier class switch-router
US8352637B2 (en) Techniques for resolving network connectivity
Cisco Cisco IOS Commands - s

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150604

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160308

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160425

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160830

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160912

R150 Certificate of patent or registration of utility model

Ref document number: 6015304

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees