JP5278511B2 - Network connection device, switching circuit device, and address learning processing method - Google Patents

Network connection device, switching circuit device, and address learning processing method Download PDF

Info

Publication number
JP5278511B2
JP5278511B2 JP2011171472A JP2011171472A JP5278511B2 JP 5278511 B2 JP5278511 B2 JP 5278511B2 JP 2011171472 A JP2011171472 A JP 2011171472A JP 2011171472 A JP2011171472 A JP 2011171472A JP 5278511 B2 JP5278511 B2 JP 5278511B2
Authority
JP
Japan
Prior art keywords
source address
address
processor
registered
request
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
JP2011171472A
Other languages
Japanese (ja)
Other versions
JP2011217422A (en
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 JP2011171472A priority Critical patent/JP5278511B2/en
Publication of JP2011217422A publication Critical patent/JP2011217422A/en
Application granted granted Critical
Publication of JP5278511B2 publication Critical patent/JP5278511B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本技術は、スイッチなどのネットワーク接続装置におけるアドレス学習に関連する技術に関する。   The present technology relates to a technology related to address learning in a network connection device such as a switch.

従来、レイヤ2(L2)スイッチにおいて、FDB(Forwarding DataBase)に送信元アドレス(SA:Source Address)を登録するためのアドレス学習は、スイッチハードウエアで行われてきた。例えば図1に示すように、スイッチハードウエアであるスイッチLSI(Large Scale Integrated circuit)は、ポートと、FDBと、管理部とを有している。そして、ポートで受信したパケットの送信元アドレス(SA)によりFDBを検索して(ステップ(1001))、このSA検索結果を管理部に通知する(ステップ(1002))。管理部は、SAがFDBに登録されていなければ、FDBにSAを登録する(ステップ(1003))。しかし、このようなスイッチLSIに含まれる管理部では、単純なSA登録しか行うことができず、認証など高度な処理によるフィルタリングが必要なケースには対処できない。高度な処理によるフィルタリングが必要なケースとしては、例えば、受信パケットのVLAN(Virtual Local Area Network)と登録すべきアドレスのVLAN IDが異なるケース、受信パケットのSAを登録する際、VLAN IDが異なる複数のエントリを登録したいケース、ドメインの異なるポートに対してアドレス変換を行うケースなどが挙げられる。   Conventionally, in a layer 2 (L2) switch, address learning for registering a source address (SA) in FDB (Forwarding DataBase) has been performed by switch hardware. For example, as shown in FIG. 1, a switch LSI (Large Scale Integrated circuit), which is switch hardware, includes a port, an FDB, and a management unit. Then, the FDB is searched by the source address (SA) of the packet received at the port (step (1001)), and the SA search result is notified to the management unit (step (1002)). If the SA is not registered in the FDB, the management unit registers the SA in the FDB (step (1003)). However, the management unit included in such a switch LSI can only perform simple SA registration, and cannot deal with a case where filtering by advanced processing such as authentication is necessary. Examples of cases where filtering by advanced processing is necessary include, for example, a case where the VLAN ID of the received packet is different from the VLAN ID of the received packet, and a plurality of different VLAN IDs when registering the SA of the received packet. There are cases where you want to register entries, and cases where you perform address translation for ports in different domains.

なお、このようなハードウエアでアドレス学習を行う技術には、以下のようなものもある。すなわち、パケット長から当該パケットの転送処理所要時間を求めるとともに転送先判定処理の実実行時間を測定し、転送処理所要時間と測定された転送先判定処理の実実行時間との差時間に応じてMACアドレス学習などの付加処理を実行するか否かを決定するようにしている。これによると、必ずMACアドレス学習などの付加処理を実施する場合に比べ、パケットの廃棄が少なくなるとともに、安価なコストパフォーマンスの良いシステムが構成できる。さらに、特定のアドレスについての学習ばかりを行うことにならず、効率的にアドレス学習を行うことができる、というものである。   There are the following techniques for performing address learning using such hardware. That is, the transfer processing time required for the packet is obtained from the packet length and the actual execution time of the transfer destination determination process is measured. According to the time difference between the transfer processing required time and the measured transfer destination determination process. It is determined whether or not to perform additional processing such as MAC address learning. According to this, as compared with the case where additional processing such as MAC address learning is always performed, packet discard is reduced, and an inexpensive system with good cost performance can be configured. Furthermore, it is possible to efficiently perform address learning without performing only learning for a specific address.

特開2006−295550号公報JP 2006-295550 A

上で述べたように、ハードウエアのみによるアドレス学習では、多様なアドレス学習に対応できない。そこで、ソフトウエアによるアドレス学習を導入するとしても、単純には全ての問題が解決するわけではない。   As described above, address learning using only hardware cannot support various address learning. Therefore, even if software-based address learning is introduced, not all problems are simply solved.

従って、本技術の目的は、スイッチなどのネットワーク接続装置においてソフトウエアによるアドレス学習を適切に実施できるようにすることである。   Accordingly, an object of the present technology is to enable appropriate address learning by software in a network connection device such as a switch.

本ネットワーク接続装置は、複数のポートのうち第1のポートから受信したパケットを第2のポートへ出力するスイッチ部と、スイッチ部からの要求に応答して特定のアドレスについて所定の学習処理を実施する管理プログラムを実行するプロセッサとを有する。そして、上で述べたスイッチ部は、ポートに接続されている装置のアドレスと、プロセッサがアドレスを学習したか否かを表す学習データと、上記装置が接続されているポートの識別子とを含むエントリを格納するテーブルを有している。そして、スイッチ部は、特定のポートから受信したパケットに含まれる特定の装置の送信元アドレスが上記テーブルに登録されていない場合、送信元アドレスと送信元アドレスを学習中であることを表す学習データと特定のポートの識別子とを含むエントリを上記テーブルに登録すると共に、プロセッサに送信元アドレスの学習を要求し、特定のポートから特定の装置の送信元アドレスを含む第2のパケットを受信した際に上記テーブルに特定の装置の送信元アドレスと学習中であることを表す学習データとを含むエントリが登録済みである場合には、上記プロセッサに送信元アドレスの学習を要求しない。さらに、上記プロセッサからテーブルにおける特定のエントリの学習データを学習済みに変更する要求を受信した場合、上記テーブルにおいて特定のエントリの学習データを学習済みに設定する。   The network connection device performs a predetermined learning process for a specific address in response to a request from the switch unit that outputs a packet received from the first port to the second port among a plurality of ports. And a processor that executes a management program. The switch unit described above is an entry including an address of a device connected to the port, learning data indicating whether the processor has learned the address, and an identifier of the port to which the device is connected. Is stored in the table. When the switch unit does not register the source address of the specific device included in the packet received from the specific port in the table, learning data indicating that the source address and the source address are being learned When the second packet including the source address of the specific device is received from the specific port, the entry including the ID and the identifier of the specific port is registered in the table, and the processor is requested to learn the source address. If an entry including the transmission source address of a specific device and learning data indicating that learning is in progress has already been registered in the table, the processor is not requested to learn the transmission source address. Further, when a request for changing learning data of a specific entry in the table to learned is received from the processor, the learning data of the specific entry in the table is set to learned.

ネットワーク接続装置においてソフトウエアによるアドレス学習を適切に実施できるようになる。   It becomes possible to appropriately perform address learning by software in the network connection device.

図1は、従来技術を説明するための図である。FIG. 1 is a diagram for explaining the prior art. 図2は、本技術の実施の形態の前提となる技術を説明する図である。FIG. 2 is a diagram illustrating a technology that is a premise of the embodiment of the present technology. 図3は、本実施の形態に係るL2スイッチの機能ブロック図である。FIG. 3 is a functional block diagram of the L2 switch according to the present embodiment. 図4は、FDBの構成例を示す図である。FIG. 4 is a diagram illustrating a configuration example of the FDB. 図5は、本実施の形態におけるキューの構造を説明するための図である。FIG. 5 is a diagram for explaining a queue structure according to the present embodiment. 図6は、本実施の形態のメインの処理フローを示す図である。FIG. 6 is a diagram showing a main processing flow of the present embodiment. 図7Aは、SA処理の処理フローを示す図である。FIG. 7A is a diagram illustrating a processing flow of SA processing. 図7Bは、SA処理を説明するためのFDB等の状態を表す図である。FIG. 7B is a diagram illustrating a state of an FDB or the like for explaining the SA processing. 図8は、SA処理を説明するための先頭ポインタ格納部及び末尾ポインタ格納部の状態を表す図である。FIG. 8 is a diagram illustrating the states of the head pointer storage unit and the tail pointer storage unit for explaining the SA processing. 図9は、SA処理を説明するためのFDB等の状態を表す図である。FIG. 9 is a diagram illustrating a state of an FDB or the like for explaining the SA processing. 図10は、SA処理を説明するための先頭ポインタ格納部及び末尾ポインタ格納部の状態を表す図である。FIG. 10 is a diagram illustrating the states of the head pointer storage unit and the tail pointer storage unit for explaining the SA processing. 図11は、割り込み発生処理の処理フローを示す図である。FIG. 11 is a diagram illustrating a processing flow of interrupt generation processing. 図12は、プロセッサからの内部資源アクセス処理の処理フローを示す図である。FIG. 12 is a diagram showing a processing flow of internal resource access processing from the processor. 図13は、アドレス登録割り込み処理の処理フローを示す図である。FIG. 13 is a diagram showing a processing flow of address registration interrupt processing. 図14は、アドレス登録割り込み処理の処理フローを示す図である。FIG. 14 is a diagram showing a processing flow of address registration interrupt processing. 図15は、アドレス登録割り込み処理を説明するためのFDB等の状態を表す図である。FIG. 15 is a diagram illustrating a state of an FDB or the like for explaining address registration interrupt processing. 図16は、アドレス登録割り込み処理を説明するための先頭ポインタ格納部及び末尾ポインタ格納部の状態を表す図である。FIG. 16 is a diagram illustrating the states of the head pointer storage unit and the tail pointer storage unit for explaining the address registration interrupt processing. 図17は、アドレス登録割り込み処理を説明するためのFDB等の状態を表す図である。FIG. 17 is a diagram illustrating a state of an FDB or the like for explaining address registration interrupt processing. 図18は、アドレス登録割り込み処理を説明するための先頭ポインタ格納部及び末尾ポインタ格納部の状態を表す図である。FIG. 18 is a diagram illustrating the states of the head pointer storage unit and the tail pointer storage unit for explaining the address registration interrupt processing. 図19は、DA処理の処理フローを示す図である。FIG. 19 is a diagram showing a processing flow of DA processing.

[本技術の実施の形態の前提]
背景技術で述べたように、L2スイッチにおけるハードウエアのみによるアドレス学習では、MAC VLAN認証など高度な、そして学習の有無を切り替えたり学習内容を変更したりする柔軟なアドレス学習パターンに対応できない。そこで、スイッチLSIとは別にスイッチ管理プロセッサを導入して、当該スイッチ管理プロセッサで各種アドレス学習を実施するための管理プログラムを実行するような構成が考えられる。
[Assumptions of the embodiment of the present technology]
As described in the background art, the address learning using only the hardware in the L2 switch cannot cope with an advanced and flexible address learning pattern such as MAC VLAN authentication that switches learning and changes learning contents. Therefore, a configuration is conceivable in which a switch management processor is introduced separately from the switch LSI, and a management program for executing various address learning is executed by the switch management processor.

このようなケースの一例を図2に示す。図2の例では、スイッチLSIは、複数のポートと、FDBと、管理部とを有する。そして、スイッチLSIは通信路(バス又はネットワーク)によってスイッチ管理プロセッサと接続しており、スイッチ管理プロセッサでは、オペレーティング・システム(OS)及び当該OS上で管理プログラムが実行されている。このような構成では、ポートで受信したパケットの送信元アドレス(SA)によりFDBを検索して(ステップ(1101))、このSA検索結果を管理部に通知する(ステップ(1102))。SAがFDBに登録されていなければ、管理部は、プロセッサに対して学習要求割り込みを行う(ステップ(1103))。   An example of such a case is shown in FIG. In the example of FIG. 2, the switch LSI has a plurality of ports, an FDB, and a management unit. The switch LSI is connected to the switch management processor via a communication path (bus or network), and the switch management processor executes an operating system (OS) and a management program on the OS. In such a configuration, the FDB is searched by the source address (SA) of the packet received at the port (step (1101)), and the SA search result is notified to the management unit (step (1102)). If the SA is not registered in the FDB, the management unit issues a learning request interrupt to the processor (step (1103)).

この後、SA等の情報をスイッチLSIの管理部からスイッチ管理プロセッサで実行されている管理プログラムに受け渡したり、FDBの内容を管理プログラムからの要求に応じてスイッチ管理プロセッサ及び管理部を介して受け渡したりする。このように受け渡されたデータを用いて管理プログラムでアドレス学習を実施して結果としてSAをFDBに登録する又は破棄するかを指示する要求をスイッチ管理プロセッサからスイッチLSIの管理部に出力する(ステップ(1104))。そして、スイッチLSIの管理部は、スイッチ管理プロセッサからの要求に応じて、FDBにSAを登録するか又はSAを破棄する(ステップ(1105))。   Thereafter, information such as SA is transferred from the management unit of the switch LSI to the management program executed by the switch management processor, or the contents of the FDB are transferred via the switch management processor and the management unit in response to a request from the management program. Or Using the data thus transferred, address learning is performed by the management program, and as a result, a request instructing whether to register or discard the SA in the FDB is output from the switch management processor to the management unit of the switch LSI ( Step (1104)). Then, in response to a request from the switch management processor, the switch LSI management unit registers the SA in the FDB or discards the SA (step (1105)).

このような管理プログラムを用いたアドレス学習では、ステップ(1102)乃至(1105)のレイテンシが大きく、学習スループットが低くなってしまう。そして、FDBに登録されていないSAを含むパケットが連続すると、学習が間に合わなくなって学習の取りこぼしが発生する。これに対処するためには、後続のSA検索結果をマスクするか、キューイングする必要がある。しかし、マスクする場合には、当然マスク中は新規の学習要求は破棄されるので取りこぼしが発生し、単純にキューイングする場合には、同じSAについての学習要求が連続してキューに追加される事態が生じうる。この場合、スイッチLSIとスイッチ管理プロセッサとの間の帯域を含む資源が無駄に消費され、ますますスループットが低下するという問題が生じてしまう。   In address learning using such a management program, the latency in steps (1102) to (1105) is large, and the learning throughput is low. If packets containing SAs that are not registered in the FDB continue, learning will not be in time and learning will be lost. In order to cope with this, it is necessary to mask or queue subsequent SA search results. However, when masking, naturally, a new learning request is discarded during masking, so that a miss occurs, and when simply queuing, learning requests for the same SA are continuously added to the queue. Things can happen. In this case, a resource including a band between the switch LSI and the switch management processor is wasted, resulting in a problem that throughput is further reduced.

このように、単純にスイッチLSIとは別にスイッチ管理プロセッサにアドレス学習を実施する管理プログラムを実行させるだけでは、アドレス学習が適切に実施できない。   As described above, address learning cannot be performed properly simply by causing the switch management processor to execute a management program for performing address learning separately from the switch LSI.

本実施の形態では、このような具体的な問題を解決するような構成を導入する。   In this embodiment, a configuration that solves such a specific problem is introduced.

[本実施の形態の具体的内容]
図3に、本実施の形態におけるL2スイッチ100の構成例を示す。L2スイッチ100は、スイッチLSI110と、当該スイッチLSI110と通信路131及び割り込み信号線132で接続されたスイッチ管理プロセッサ120とを有する。スイッチLSI110は、端末装置等(図3では端末101乃至103)に接続されるポート部(図3ではポート1乃至3)と、ポート部に接続されるFDB111と、FDB111に接続されている管理部112と、管理部112と接続されており且つアドレス学習の順番を管理するためのキューとして機能するタグ格納部113とを有する。以下でも述べるが、図3で点線で示されるようにFDB111とタグ格納部113とは一体化される場合もある。また、FDB111には、以下で説明するようにアドレス学習中であるか否かを表す学習状態フラグ1111が新たに追加されている。また、管理部112は、タグ格納部113と共にアドレス学習の順番を管理するためのキューとして機能する先頭ポインタを格納する先頭ポインタ格納部1121及び末尾ポインタを格納する末尾ポインタ格納部1122を有する。また、スイッチ管理プロセッサ120は、OS上で管理プログラム121を実行している。
[Specific contents of this embodiment]
FIG. 3 shows a configuration example of the L2 switch 100 in the present embodiment. The L2 switch 100 includes a switch LSI 110 and a switch management processor 120 connected to the switch LSI 110 via a communication path 131 and an interrupt signal line 132. The switch LSI 110 includes a port unit (ports 1 to 3 in FIG. 3) connected to a terminal device or the like (terminals 101 to 103 in FIG. 3), an FDB 111 connected to the port unit, and a management unit connected to the FDB 111. 112 and a tag storage unit 113 connected to the management unit 112 and functioning as a queue for managing the order of address learning. As will be described below, the FDB 111 and the tag storage unit 113 may be integrated as shown by a dotted line in FIG. In addition, a learning state flag 1111 indicating whether or not address learning is being performed is newly added to the FDB 111 as described below. The management unit 112 includes a head pointer storage unit 1121 that stores a head pointer that functions as a queue for managing the order of address learning together with the tag storage unit 113 and a tail pointer storage unit 1122 that stores a tail pointer. Further, the switch management processor 120 executes a management program 121 on the OS.

図4に、FDB111のデータ構成例を示す。図4に示すように、検索キーであるMACアドレスに対応付けて、当該MACアドレスの機器が接続されているポートの識別子が登録される出力ポート情報と、当該MACアドレスを学習中であるか学習済みであるかを表す学習状態フラグ1111とが登録されている。このようなテーブルの各行を以下ではエントリと呼び、以下ではその格納位置をインデックスと呼ぶ。   FIG. 4 shows a data configuration example of the FDB 111. As shown in FIG. 4, in association with the MAC address that is the search key, output port information in which the identifier of the port to which the device with the MAC address is connected is registered, and whether or not the MAC address is being learned A learning state flag 1111 indicating whether it is already registered is registered. Each row of such a table is hereinafter referred to as an entry, and its storage location is hereinafter referred to as an index.

このようなFDB111を用いることによって、以下で述べるように重複するアドレス学習要求をフィルタすることができる。新たなSAを受信した場合には、FDB111に新たなエントリを登録すると共に、学習状態フラグ1111を「学習中」に設定する。管理プログラム121によるアドレス学習の結果スイッチ管理プロセッサ120からエントリ更新要求を受信すれば、学習状態フラグ1111を「学習済」に変更し、当該エントリに基づくパケットの転送が開始される。一方、スイッチ管理プロセッサ120からエントリ削除要求を受信すれば、該当エントリを削除する。   By using such an FDB 111, it is possible to filter overlapping address learning requests as described below. When a new SA is received, a new entry is registered in the FDB 111 and the learning state flag 1111 is set to “learning”. When an entry update request is received from the switch management processor 120 as a result of address learning by the management program 121, the learning state flag 1111 is changed to “learned”, and packet transfer based on the entry is started. On the other hand, when an entry deletion request is received from the switch management processor 120, the corresponding entry is deleted.

具体的には、ポート部からパケット(=MACフレーム)を受信すると、当該パケットのSA(=送信元MACアドレス)でFDB111に対してSA検索を実施する。その際、FDB111に対応エントリが存在しなければ、学習状態フラグ1111が「学習中」を表す新規エントリをFDB111に追加し、アドレス学習を実施する。一方、対応エントリが存在し、学習状態フラグ1111が「学習中」であればこれ以上アドレス学習を行う必要がないので、アドレス学習要求を抑制する。これによって重複するアドレス学習をフィルタリングし、アドレス学習のスループットを向上させることができる。一方、学習状態フラグ1111が「学習済」であれば特にアドレス学習は必要なく、通常のとおりに処理する。   Specifically, when a packet (= MAC frame) is received from the port unit, an SA search is performed on the FDB 111 with the SA (= source MAC address) of the packet. At this time, if there is no corresponding entry in the FDB 111, a new entry whose learning state flag 1111 indicates “learning” is added to the FDB 111, and address learning is performed. On the other hand, if there is a corresponding entry and the learning state flag 1111 is “learning”, it is not necessary to perform any more address learning, so the address learning request is suppressed. As a result, overlapping address learning can be filtered to improve the address learning throughput. On the other hand, if the learning state flag 1111 is “learned”, address learning is not particularly required, and processing is performed as usual.

また、ポート部からパケットを受信すると、当該パケットの送信先アドレス(DA:Destination address。=送信先MACアドレス)でもFDB111に対してDA検索を実施する。この際対応エントリが存在しなければ、全ポートに対してパケットをブロードキャストする。また、対応エントリが存在して学習状態フラグ1111が「学習中」であれば、対応エントリが存在していないのと同様の状態として全ポートに対してパケットをブロードキャストする。すなわち、各ポートに接続されている各装置に自分宛のパケットであるかを判断させる。一方、対応エントリが存在して学習状態フラグ1111が「学習済」であれば、通常どおり該当ポートにパケットを転送する。   When a packet is received from the port unit, DA search is performed on the FDB 111 even with the transmission destination address (DA: Destination address. = Transmission destination MAC address) of the packet. At this time, if there is no corresponding entry, the packet is broadcast to all ports. If there is a corresponding entry and the learning state flag 1111 is “learning”, the packet is broadcast to all the ports in the same state as when there is no corresponding entry. In other words, each device connected to each port is caused to determine whether the packet is addressed to itself. On the other hand, if the corresponding entry exists and the learning state flag 1111 is “learned”, the packet is transferred to the corresponding port as usual.

次に、図5を用いて、アドレス学習の順番を管理するためのキューについて説明する。タグ格納部113においては、FDB111の対応エントリについてのポインタが格納される。このポインタは、次に登録することによりアドレス学習を実施すべきSAについてのエントリを指している。図5の例では、Next0というインデックスのエントリについてのポインタは、次に登録することによりアドレス学習を実施すべきSAについてのエントリのインデックスNext1となっている。インデックスNext1のエントリのポインタは、さらに次に登録することによりアドレス学習を実施すべきSAについてのエントリのインデックスNext2となっている。インデックスNext2のエントリのポインタは、次にアドレス学習を実施すべきSAが存在していないのでNULLとなっている。なお、図5では明示していないが、学習状態フラグ1111が「学習済」であるエントリについてのポインタは、使用されない(すなわちDon't careとして扱う)。 Next, a queue for managing the order of address learning will be described with reference to FIG. In the tag storage unit 113, pointers for corresponding entries in the FDB 111 are stored. This pointer points to the entry for the SA that should perform address learning by registering next. In the example of FIG. 5, the pointer of the index of the entry of Next0 has a index Next1 entry for SA should be carried out address learning by the next register. The pointer of the entry of the index Next1 becomes the index Next2 of the entry for the SA for which address learning is to be performed by further registering next. The pointer of the entry of the index Next2 is NULL because there is no SA for which address learning is to be performed next. Although not explicitly shown in FIG. 5, the pointer for the entry whose learning state flag 1111 is “learned” is not used (that is, treated as Don't care).

さらに、管理部112は、最初にアドレス学習を実施すべきFDB111のエントリを指す先頭ポインタ(図5ではNext0)を保持しており、さらに最後にアドレス学習を実施すべきFDB111のエントリを指す末尾ポインタ(図5ではNext2)を保持している。   Further, the management unit 112 holds a head pointer (Next0 in FIG. 5) that points to the entry of the FDB 111 that should first perform address learning, and finally a tail pointer that points to the entry of the FDB 111 that should perform address learning. (Next2 in FIG. 5) is held.

このようにFDB111における学習中のエントリをキュー構造で管理して、スイッチ管理プロセッサ120のアクセスを効率化する。すなわち、スイッチ管理プロセッサ120からのアクセスは、キュー構造における学習中の先頭エントリに限定されるので、アクセスについてのオーバーヘッドが削減され、処理性能の向上が図られる。   In this way, the learning entry in the FDB 111 is managed in a queue structure, and the access of the switch management processor 120 is made efficient. That is, access from the switch management processor 120 is limited to the first entry being learned in the queue structure, so that the overhead for access is reduced and the processing performance is improved.

また、本来学習できるアドレス数はFDB111のサイズが上限となる(すなわち学習済エントリ数+学習中エントリ数≦FDBエントリ総数)ので、FDB111の各エントリに対応付けてタグ(ポインタ領域)を設けるのが効率的である。また、タグ格納部113をFDB111に設ければさらにFDB111の空き領域を効率利用できるようになる。   Since the size of the FDB 111 is the upper limit for the number of addresses that can be learned originally (that is, the number of learned entries + the number of entries being learned ≦ the total number of FDB entries), a tag (pointer area) is provided in association with each entry in the FDB 111. Efficient. Further, if the tag storage unit 113 is provided in the FDB 111, the free area of the FDB 111 can be used more efficiently.

次に、図3に示した本実施の形態に係るL2スイッチ100の動作の概要を説明する。例えばポート1には端末101が接続されて、ポート1が端末101から送信元アドレスSA(MACアドレス=A1)のパケットを受信すると、このSA(MACアドレス=A1)でFDB111を検索する(ステップ(1))。そして、SA検索結果を管理部112に通知する(ステップ(2))。ここでSA検索結果が当該SAがFDB111に登録されていないことを示していれば、管理部112は、FDB111に当該SAのためのエントリを追加する(ステップ(3))。追加エントリの学習状態フラグ1111は「学習中」となる。また、管理部112における先頭ポインタ格納部1121及び末尾ポインタ格納部1122並びにタグ格納部113により追加エントリをキューに登録するための必要な処理を行う。   Next, an outline of the operation of the L2 switch 100 according to the present embodiment shown in FIG. 3 will be described. For example, when the terminal 101 is connected to the port 1 and the port 1 receives a packet of the transmission source address SA (MAC address = A1) from the terminal 101, the FDB 111 is searched with this SA (MAC address = A1) (step ( 1)). Then, the SA search result is notified to the management unit 112 (step (2)). If the SA search result indicates that the SA is not registered in the FDB 111, the management unit 112 adds an entry for the SA to the FDB 111 (step (3)). The learning status flag 1111 of the additional entry is “learning”. In addition, the head pointer storage unit 1121 and the tail pointer storage unit 1122 and the tag storage unit 113 in the management unit 112 perform necessary processing for registering additional entries in the queue.

さらに、キューのサイズが1以上になると、管理部112から、スイッチ管理プロセッサ120に対して割り込み信号線132を介して割り込みを行う(ステップ(4))。割り込みを受けたスイッチ管理プロセッサ120の管理プログラム121により、スイッチLSI110の管理部112にアクセスし、キューの先頭エントリを特定すると共に当該キューの先頭エントリのデータを通信路131を介して取得し、アドレス学習のための所定の処理を実施する(ステップ(5))。このスイッチ管理プロセッサ120の管理プログラム121による所定のアドレス学習の結果、キューの先頭エントリのSAを登録しても良い場合にはエントリ更新要求を、登録してはならない場合にはエントリ削除要求を、スイッチ管理プロセッサ120の管理部112に出力する(ステップ(6))。   Further, when the queue size becomes 1 or more, the management unit 112 interrupts the switch management processor 120 via the interrupt signal line 132 (step (4)). The management program 121 of the switch management processor 120 that has received the interrupt accesses the management unit 112 of the switch LSI 110 to identify the head entry of the queue and acquire data of the head entry of the queue via the communication path 131, A predetermined process for learning is performed (step (5)). As a result of the predetermined address learning by the management program 121 of the switch management processor 120, if the SA of the first entry in the queue may be registered, an entry update request is issued. The data is output to the management unit 112 of the switch management processor 120 (step (6)).

管理部112は、スイッチ管理プロセッサ120からの要求がエントリ更新要求であれば、該当エントリの学習状態フラグ1111を「学習済」に変更し、エントリ削除要求であれば、FDB111において該当エントリを削除する(ステップ(7))。   If the request from the switch management processor 120 is an entry update request, the management unit 112 changes the learning state flag 1111 of the corresponding entry to “learned”, and if the request is an entry deletion request, deletes the corresponding entry in the FDB 111. (Step (7)).

ステップ(5)乃至(7)については、キューが空になるまでスイッチ管理プロセッサ120は処理を繰り返す。   For steps (5) to (7), the switch management processor 120 repeats the process until the queue becomes empty.

このような処理を実施することにより、アドレス学習を無駄なく且つ漏れなく実施することができるようになる。   By performing such processing, address learning can be performed without waste and without omission.

以下、L2スイッチ100の処理の詳細について図6乃至図19を用いて説明する。まず、例えばポート1乃至3のいずれかで端末101乃至103のいずれかからパケットを受信する(図6:ステップS1)。そして、受信したパケットのSAによるSA処理を実施する(ステップS3)。この処理については、以下で詳細に述べる。また、受信したパケットのDAによるDA処理も実施する(ステップS5)。DA処理は、受信したパケットをどのように転送するのかを決定するための処理であり、以下で詳細に述べる。このような処理をパケットを受信する毎に実施する。   Details of the processing of the L2 switch 100 will be described below with reference to FIGS. First, for example, a packet is received from any of the terminals 101 to 103 at any of the ports 1 to 3 (FIG. 6: step S1). Then, SA processing by SA of the received packet is performed (step S3). This process will be described in detail below. Also, DA processing by DA of the received packet is performed (step S5). The DA process is a process for determining how to transfer a received packet, and will be described in detail below. Such processing is performed every time a packet is received.

次に、図7Aを用いてSA処理について説明する。まず、受信パケットのSAでFDB111を検索する(ステップS11)。このステップは、図3のステップ(1)に対応するので、図7Aでも「*(1)」で示している。   Next, SA processing will be described with reference to FIG. 7A. First, the FDB 111 is searched with the SA of the received packet (step S11). Since this step corresponds to step (1) in FIG. 3, it is indicated by “* (1)” in FIG. 7A.

そして、受信パケットのSAがFDB111に未登録であるか判断する(ステップS13)。このステップは、図7のステップ(2)に対応する。SAが既にFDB111に登録されていれば、当該SAのエントリの学習状態フラグ1111が「学習中」であっても「学習済」であっても、SAに対するアドレス学習を行わない(ステップS25)。「学習中」であれば重複したアドレス学習を避け、「学習済」であれば元来学習は不要であるので、このように何も行わず(図7では点線ブロックで表示)、元の処理に戻る。   Then, it is determined whether the SA of the received packet is unregistered in the FDB 111 (step S13). This step corresponds to step (2) in FIG. If the SA is already registered in the FDB 111, address learning for the SA is not performed regardless of whether the learning state flag 1111 of the SA entry is “learning” or “learned” (step S25). If “learning”, duplicate address learning is avoided, and if “learned”, originally learning is unnecessary, so nothing is done in this way (displayed as a dotted line block in FIG. 7). Return to.

一方、FDB111に受信パケットのSAが未登録であるとすると、管理部112は、FDB111において、新規エントリ(MACアドレス=SA、学習状態フラグ1111=学習中、タグ格納部113の該当エントリについてのポインタ=NULL)をインデックス=New1に追加する(ステップS15)。このステップは、図3のステップ(3)に該当する。また、FDB111は、図7Bに示すような状態になる。   On the other hand, if the SA of the received packet is not registered in the FDB 111, the management unit 112 in the FDB 111 has a new entry (MAC address = SA, learning state flag 1111 = during learning, pointer to the corresponding entry in the tag storage unit 113) = NULL) is added to the index = New1 (step S15). This step corresponds to step (3) in FIG. Further, the FDB 111 is in a state as shown in FIG. 7B.

そして、管理部112は、末尾ポインタがNULLであるか判断する(ステップS17)。末尾ポインタがNULLということは、キューの中にアドレス学習すべきエントリが無かったということで、今回追加された新規エントリが先頭エントリとなる。末尾ポインタがNULLであれば、管理部112は、先頭ポインタに追加エントリのインデックス(New1)を設定する(ステップS19)。そしてステップS23に移行する。一方、末尾ポインタがNULLでない場合には、既に学習中のエントリが存在するということで末尾に新規エントリを設定しなければならない。従って、末尾ポインタが指すエントリのポインタフィールド(すなわちタグ格納部113の該当フィールド)に追加エントリのインデックス(New1)を設定する(ステップS21)。これによって、追加エントリをキューの最後尾に登録できたことになる。そしてステップS23に移行する。   Then, the management unit 112 determines whether the end pointer is NULL (step S17). The fact that the tail pointer is NULL means that there is no entry for address learning in the queue, and the new entry added this time becomes the head entry. If the tail pointer is NULL, the management unit 112 sets the index (New1) of the additional entry as the head pointer (step S19). Then, control goes to a step S23. On the other hand, if the end pointer is not NULL, a new entry must be set at the end because there is already an entry that is being learned. Therefore, the index (New1) of the additional entry is set in the pointer field of the entry pointed to by the end pointer (that is, the corresponding field in the tag storage unit 113) (step S21). As a result, the additional entry can be registered at the end of the queue. Then, control goes to a step S23.

ステップS23では、管理部112は、末尾ポインタに追加エントリのインデックス(New1)を設定する(ステップS23)。そして元の処理に戻る。   In step S23, the management unit 112 sets the index (New1) of the additional entry in the end pointer (step S23). Then, the process returns to the original process.

ステップS19及びS23を実行する場合には、図8に示すように、先頭ポインタ格納部1121及び末尾ポインタ格納部1122にインデックスNew1が登録される。一方ステップS21及びS23が実行された場合には、図9に示すように、FDB111については、これまで末尾エントリであってインデックスがNew0のエントリについてのポインタフィールド(タグ格納部113の該当フィールド)に、今回追加されたエントリのインデックスNew1を登録する。また、図10に示すように、先頭ポインタ格納部1121には、先頭エントリのインデックスHead0が格納されており、末尾ポインタ格納部1122には、今回追加されたエントリのインデックスNew1が登録される。   When steps S19 and S23 are executed, the index New1 is registered in the head pointer storage unit 1121 and the tail pointer storage unit 1122, as shown in FIG. On the other hand, when steps S21 and S23 are executed, as shown in FIG. 9, in the FDB 111, the pointer field (the corresponding field in the tag storage unit 113) for the entry that has been the last entry and the index is New0. Then, the index New1 of the entry added this time is registered. Also, as shown in FIG. 10, the head pointer storage unit 1121 stores the index Head 0 of the head entry, and the tail pointer storage unit 1122 registers the index New 1 of the entry added this time.

このように、未登録のSAを含むパケットを受信した場合には、FDB111に新規エントリを登録すると共に、キューの末尾に当該新規エントリを設定する。   As described above, when a packet including an unregistered SA is received, a new entry is registered in the FDB 111 and the new entry is set at the end of the queue.

次に、末尾ポインタ格納部1122を監視している管理部112の処理について図11を用いて説明する。管理部112は、末尾ポインタ格納部1122を監視しており、末尾ポインタがNULLであるか判断する(図11:ステップS31)。NULLであれば、学習すべきアドレスがないので、末尾ポインタが登録されるまで待つ。一方、末尾ポインタが登録されていれば、管理部112は、スイッチ管理プロセッサ120に対してアドレス登録要求割り込みをアサートする(ステップS33)。このステップは、図3のステップ(4)に対応する。そしてステップS31に戻る。   Next, processing of the management unit 112 that monitors the tail pointer storage unit 1122 will be described with reference to FIG. The management unit 112 monitors the tail pointer storage unit 1122 and determines whether the tail pointer is NULL (FIG. 11: step S31). If NULL, there is no address to learn, so wait until the tail pointer is registered. On the other hand, if the tail pointer is registered, the management unit 112 asserts an address registration request interrupt to the switch management processor 120 (step S33). This step corresponds to step (4) in FIG. Then, the process returns to step S31.

このようにして、末尾ポインタが設定されると、スイッチ管理プロセッサ120に対してアドレス登録要求割り込みがアサートされるようになり、アドレス学習が開始される。   When the tail pointer is set in this manner, an address registration request interrupt is asserted to the switch management processor 120, and address learning is started.

また、管理部112は、スイッチ管理プロセッサ120からの要求に応じて以下のような処理を実施する。具体的には、管理部112は、スイッチ管理プロセッサ120から何らかの処理要求を受信したか判断し(図12:ステップS41)、受信していない場合には受信するまで待機する。一方、スイッチ管理プロセッサ120から何らかの処理要求を受信した場合には、管理部112内ポインタ(具体的には先頭ポインタ又は末尾ポインタ)へのアクセス要求か判断する(ステップS43)。管理部112内ポインタへのアクセス要求(読み出し/書き込み)であれば、管理部112が、要求先のポインタにアクセスして、結果をスイッチ管理プロセッサ120へ出力する(ステップS45)。このステップは、例えば図3のステップ(5)の一部である。そしてステップS41に戻る。   In addition, the management unit 112 performs the following processing in response to a request from the switch management processor 120. Specifically, the management unit 112 determines whether any processing request has been received from the switch management processor 120 (FIG. 12: step S41), and waits until it is received if not received. On the other hand, when any processing request is received from the switch management processor 120, it is determined whether it is an access request to the pointer in the management unit 112 (specifically, the start pointer or the end pointer) (step S43). If it is an access request (read / write) to the pointer in the management unit 112, the management unit 112 accesses the pointer of the request destination and outputs the result to the switch management processor 120 (step S45). This step is a part of step (5) in FIG. 3, for example. Then, the process returns to step S41.

一方、管理部内ポインタへのアクセス要求でない場合には、管理部112は、FDB111へのアクセス要求であるか判断する(ステップS47)。FDB111へのアクセス要求であれば、管理部112は、要求に従ってFDB111にアクセスし、結果をスイッチ管理プロセッサ120へ出力する(ステップS49)。例えば、エントリの内容を読み出すような要求に応じてエントリの内容を読み出してスイッチ管理プロセッサ120へ出力したりする場合もあれば、要求に応じてエントリの学習状態フラグ1111を変更したり、エントリを削除したりする。このステップは、図3のステップ(7)の一部である。ステップS49の後にはステップS41に戻る。また、FDB111へのアクセス要求でなければステップS41に戻る。   On the other hand, if it is not an access request to the management unit pointer, the management unit 112 determines whether it is an access request to the FDB 111 (step S47). If it is an access request to the FDB 111, the management unit 112 accesses the FDB 111 according to the request, and outputs the result to the switch management processor 120 (step S49). For example, the contents of the entry may be read out and output to the switch management processor 120 in response to a request to read out the contents of the entry, the learning state flag 1111 of the entry may be changed in response to the request, Or delete it. This step is part of step (7) in FIG. After step S49, the process returns to step S41. If the access request is not for the FDB 111, the process returns to step S41.

管理部112は、このようにスイッチ管理プロセッサ120とのインターフェースとしても動作する。   The management unit 112 also operates as an interface with the switch management processor 120 in this way.

次に、スイッチ管理プロセッサ120の管理プログラム121の処理について図13乃至図18を用いて説明する。まず、スイッチ管理プロセッサ120は、スイッチLSI110からアドレス登録割り込みを割り込み信号線132を介して受信する(ステップS51)。このステップは、図3のステップ(4)に対応する。そして、スイッチ管理プロセッサ120で実行されている管理プログラム121は、先頭ポインタの取得をスイッチLSI110の管理部112に指示し、スイッチLSI110の管理部112から先頭ポインタを取得する(ステップS53)。このステップは、図3のステップ(5)に対応し、図12のステップS45と関連する。そして、先頭ポインタがNULLであるか判断する(ステップS55)。このステップは、処理の終了確認であって後続の処理から戻ってきた際に有効となる。すなわち、最初は当然NULLではない。先頭ポインタがNULLである場合には、処理を終了する。   Next, processing of the management program 121 of the switch management processor 120 will be described with reference to FIGS. First, the switch management processor 120 receives an address registration interrupt from the switch LSI 110 via the interrupt signal line 132 (step S51). This step corresponds to step (4) in FIG. Then, the management program 121 executed by the switch management processor 120 instructs the management unit 112 of the switch LSI 110 to acquire the start pointer, and acquires the start pointer from the management unit 112 of the switch LSI 110 (step S53). This step corresponds to step (5) in FIG. 3 and is related to step S45 in FIG. Then, it is determined whether the head pointer is NULL (step S55). This step is effective when the process is completed and returned from the subsequent process. That is, it is naturally not NULL at first. If the head pointer is NULL, the process ends.

先頭ポインタがNULLでない場合には、管理プログラム121は、先頭ポインタが指すエントリ(例えばインデックス「Head1」)の取得を管理部112に指示し、スイッチLSI110の管理部112から先頭ポインタが指すエントリのデータを取得する(ステップS57)。ここでは、タグ格納部113の対応するフィールドに格納されているポインタについても同時に取得する。このステップは、図3のステップ(5)の一部に対応しており、図12のステップS49に関連する。例えば、図15に示すように、インデックス「Head1」のエントリについては、MACアドレスがSBで、出力ポート情報はポート2で、学習状態フラグ1111が学習中で、タグ格納部113の対応フィールドのポインタがNew2であるとする。   If the head pointer is not NULL, the management program 121 instructs the management unit 112 to acquire the entry (for example, index “Head1”) pointed to by the head pointer, and the data of the entry pointed to by the head pointer from the management unit 112 of the switch LSI 110 Is acquired (step S57). Here, the pointer stored in the corresponding field of the tag storage unit 113 is also acquired at the same time. This step corresponds to part of step (5) in FIG. 3 and relates to step S49 in FIG. For example, as shown in FIG. 15, for the entry of index “Head 1”, the MAC address is SB, the output port information is port 2, the learning state flag 1111 is being learned, and the pointer of the corresponding field in the tag storage unit 113 Is New2.

その後、管理プログラム121は、先頭ポインタ格納部1121に対して、取得エントリ(例えばインデックスが「Head1」のエントリ)のポインタフィールド値(タグ格納部113の対応フィールドの値。上の例では「New2」)を設定するようにスイッチLSI110の管理部112に指示する(ステップS59)。これによって、先頭エントリを次のエントリに入れ替えている。図16に示すように、先頭ポインタ格納部1121には、「New2」が登録される。但し、図15のインデックス「New2」のエントリのように、取得エントリのポインタフィールド値が「NULL」であれば、「NULL」を設定するように指示する。また、このステップは、図3のステップ(5)の一部に対応し、図12のステップS43に関連する。そして処理は端子Bを介して図14の処理に移行する。   After that, the management program 121 makes the pointer field value (the value of the corresponding field in the tag storage unit 113) of the acquired entry (for example, the entry whose index is “Head1”) with respect to the head pointer storage unit 1121, “New2” in the above example. ) Is set to the management unit 112 of the switch LSI 110 (step S59). As a result, the top entry is replaced with the next entry. As illustrated in FIG. 16, “New2” is registered in the head pointer storage unit 1121. However, if the pointer field value of the acquired entry is “NULL” as in the entry of the index “New2” in FIG. 15, it is instructed to set “NULL”. This step corresponds to part of step (5) in FIG. 3 and relates to step S43 in FIG. Then, the processing shifts to the processing in FIG.

図14の処理の説明に移行して、取得エントリの内容を用いて、所定の判断処理(すなわちアドレス学習処理)を実施する(ステップS61)。例えば、特定のアドレス、VLANの組み合わせに一致するか判断し、該当する場合には登録を拒否する。また、FDB111のエントリだけではなくIPパケットの情報を取得して、登録の是非を判断するなど、様々なバリエーションがある。但し、このような処理自体は本実施の形態の主旨ではなく、従来から知られている処理であるのでこれ以上述べない。   Shifting to the description of the process of FIG. 14, a predetermined determination process (that is, an address learning process) is performed using the contents of the acquired entry (step S61). For example, it is determined whether or not the combination matches a specific address and VLAN, and registration is rejected if applicable. In addition, there are various variations such as obtaining information on IP packets as well as entries in the FDB 111 and determining whether to register. However, such processing itself is not the main point of the present embodiment but is conventionally known processing, and thus will not be described further.

そして、管理プログラム121は、ステップS61の判断結果SA(図15の例では「SB」)を登録するか判断し(ステップS63)、SAを登録する場合には、取得エントリ(インデックス「Head1」のエントリ)の学習状態フラグ1111を学習済に変更するようにエントリ更新要求を、スイッチLSI110の管理部112に出力する(ステップS65)。このステップは、図3のステップ(7)に対応し、図12のステップS49に関連する。そして処理はステップS69に移行する。このような処理を実施すれば、図15の状態から図17の状態に、FDB111等は変化する。   Then, the management program 121 determines whether or not to register the determination result SA in step S61 (“SB” in the example of FIG. 15) (step S63). When registering the SA, the management program 121 registers the acquired entry (index “Head1”). An entry update request is output to the management unit 112 of the switch LSI 110 so as to change the learning state flag 1111 of (entry) to learned (step S65). This step corresponds to step (7) in FIG. 3 and relates to step S49 in FIG. Then, the process proceeds to step S69. If such processing is performed, the FDB 111 and the like change from the state of FIG. 15 to the state of FIG.

一方、SAを登録しない場合、管理プログラム121は、取得エントリ(インデックス「Head1」のエントリ)を削除するようにエントリ削除要求を、スイッチLSI110の管理部112に出力する(ステップS67)。このステップは、図3のステップ(7)に対応する。そして処理はステップS69に移行する。   On the other hand, if the SA is not registered, the management program 121 outputs an entry deletion request to the management unit 112 of the switch LSI 110 so as to delete the acquired entry (entry of index “Head1”) (step S67). This step corresponds to step (7) in FIG. Then, the process proceeds to step S69.

ステップS69では、管理プログラム121は、先頭ポインタがNULLになっているか判断する。ステップS59でNULLを先頭ポインタに設定するようにスイッチLSI110の管理部112に指示したか否かで判断する。先頭ポインタがNULLになっていなければ端子Cを介して図13のステップS51に戻る。   In step S69, the management program 121 determines whether the head pointer is NULL. In step S59, determination is made based on whether or not the management unit 112 of the switch LSI 110 is instructed to set NULL as the head pointer. If the head pointer is not NULL, the process returns to step S51 in FIG.

一方、先頭ポインタがNULLであれば、管理プログラム121は、末尾ポインタにNULLを設定するようにスイッチLSI110の管理部112に指示する(ステップS71)。これによって、スイッチLSI110のキューにアドレス学習すべきエントリが存在しない状態が確定する。すなわち、図16に示すように、管理部112内の先頭ポインタ格納部1121及び末尾ポインタ格納部1122には共にNULLが登録されることになる。このステップは、図12のステップS45に関連する。そして端子Cを介して図13のステップS51に戻る。   On the other hand, if the head pointer is NULL, the management program 121 instructs the management unit 112 of the switch LSI 110 to set NULL to the tail pointer (step S71). As a result, a state in which there is no entry for address learning in the queue of the switch LSI 110 is determined. That is, as shown in FIG. 16, NULL is registered in both the start pointer storage unit 1121 and the end pointer storage unit 1122 in the management unit 112. This step is related to step S45 of FIG. Then, the process returns to step S51 in FIG.

このような処理を実施することによって、スイッチLSI110のキューの先頭エントリから適切にアドレス学習が実施されるようになる。さらに、キューを適切に更新して、存在する場合には順番に学習すべきエントリについてアドレス学習を行うようになっている。   By performing such processing, address learning is appropriately performed from the head entry of the queue of the switch LSI 110. Furthermore, the queue is appropriately updated, and if it exists, address learning is performed for entries to be learned in order.

次に、図19を用いて、DA処理について説明する。まず、受信したパケットのDAでFDB111を検索する(ステップS81)。そしてDAがFDB111に未登録であるか判断する(ステップS83)。DAがFDB111に未登録の場合には、いずれのポートにDAに係る装置が接続されているか分からないということになるので、パケットを受信したポートを除き全ポートに対してパケットを転送する(ステップS89)。そして元の処理に戻る。   Next, the DA process will be described with reference to FIG. First, the FDB 111 is searched with the DA of the received packet (step S81). Then, it is determined whether the DA is unregistered in the FDB 111 (step S83). If the DA is not registered in the FDB 111, it means that it is not known to which port the device related to the DA is connected, so the packet is transferred to all ports except the port that received the packet (step S89). Then, the process returns to the original process.

一方、DAがFDB111に登録済みであれば、本実施の形態では、学習状態フラグ1111が設定されているのでこれを確認する。そして、学習状態フラグ1111が学習中を示している場合には、まだこのアドレスについては登録すべきか否かを決定しておらず、他のポートにこのパケットを処理すべき装置がいるかもしれないので、ステップS89に移行して、パケットを受信したポートを除き全ポートにパケットを転送する。   On the other hand, if the DA has already been registered in the FDB 111, the learning state flag 1111 is set in this embodiment, so this is confirmed. If the learning state flag 1111 indicates that learning is in progress, whether or not to register this address has not yet been determined, and there may be a device that processes this packet at another port. Therefore, the process proceeds to step S89, and the packet is transferred to all ports except the port that received the packet.

一方、学習状態フラグ1111が学習済を示している場合には、当該エントリに含まれる出力ポートにパケットを出力する(ステップS87)。学習済みであれば該当エントリを使用しても良いので、このようにパケットを出力する。そして元の処理に戻る。   On the other hand, when the learning state flag 1111 indicates that learning has been completed, the packet is output to the output port included in the entry (step S87). Since the corresponding entry may be used if it has been learned, the packet is output in this way. Then, the process returns to the original process.

以上のような処理を実施することによって、DAが学習済としてFDB111に登録されていない場合には、全ポートに転送してそれらのポートに接続されている装置等に受信すべきパケットかを判断させるようになっている。   By performing the above processing, if the DA is not learned and registered in the FDB 111, it is determined whether the packet should be transferred to all ports and received by devices connected to those ports. It is supposed to let you.

以上述べたように学習状態フラグ1111を適切に管理することにより、重複するアドレス学習を効率的にフィルタすることができ、キューを適切に管理することによってスイッチ管理プロセッサ120の処理速度が遅い場合においてもアドレス学習要求の取りこぼしがなくなる。すなわち、学習状態フラグ1111及びタグ格納部113という最小限のリソース追加で、アドレス学習の効率化が図られ、取りこぼしもなくなる。これにより、スイッチ管理プロセッサ120で高度なアドレス学習を実施しても、それによる性能インパクトを非常に小さなものに抑えることができる。   As described above, by appropriately managing the learning state flag 1111, it is possible to efficiently filter overlapping address learning, and when the processing speed of the switch management processor 120 is slow by appropriately managing the queue. Also, missed address learning requests are eliminated. That is, with the minimum addition of the learning state flag 1111 and the tag storage unit 113, the efficiency of address learning can be improved, and there is no loss of information. As a result, even if the switch management processor 120 performs advanced address learning, the performance impact caused by the address learning can be suppressed to a very small value.

以上本技術の実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、図3に示した機能ブロック図は一例であって、場合によってはスイッチLSI110とスイッチ管理プロセッサ120が一体化される場合もある。そのような場合においても本実施の形態は動作する。   Although the embodiment of the present technology has been described above, the present technology is not limited to this. For example, the functional block diagram shown in FIG. 3 is an example, and in some cases, the switch LSI 110 and the switch management processor 120 may be integrated. Even in such a case, the present embodiment operates.

また、処理フローについても、処理結果が変わらない限りにおいて、処理順番を入れ替えたり、並列に実行したりしても良い場合がある。   As for the processing flow, as long as the processing result does not change, the processing order may be changed or may be executed in parallel.

以上本実施の形態をまとめると以下のようになる。   The present embodiment can be summarized as follows.

本技術の第1の態様に係るネットワーク接続装置は、複数のポートのうち第1のポートから受信したパケットを第2のポートへ出力するスイッチ部と、スイッチ部からの要求に応答して特定のアドレスについて所定の学習処理を実施する管理プログラムを実行するプロセッサとを有する。そして、上で述べたスイッチ部は、ポートに接続されている装置のアドレスと、プロセッサがアドレスを学習したか否かを表す学習データと、装置が接続されているポートの識別子とを含むエントリを格納するテーブルを有している。そして、スイッチ部は、特定のポートから受信したパケットに含まれる特定の装置の送信元アドレスが上記テーブルに登録されていない場合、送信元アドレスと送信元アドレスを学習中であることを表す学習データと特定のポートの識別子とを含むエントリを上記テーブルに登録すると共に、プロセッサに送信元アドレスの学習を要求し、特定のポートから特定の装置の送信元アドレスを含む第2のパケットを受信した際に上記テーブルに特定の装置の送信元アドレスと学習中であることを表す学習データとを含むエントリが登録済みである場合には、上記プロセッサに送信元アドレスの学習を要求しない。さらに、上記プロセッサから上記テーブルにおける特定のエントリの学習データを学習済みに変更する要求を受信した場合、上記テーブルにおいて特定のエントリの学習データを学習済みに設定する。   The network connection device according to the first aspect of the present technology includes: a switch unit that outputs a packet received from the first port among the plurality of ports to the second port; and a specific unit in response to a request from the switch unit And a processor that executes a management program that performs a predetermined learning process on the address. The switch unit described above includes an entry including the address of the device connected to the port, learning data indicating whether the processor has learned the address, and the identifier of the port to which the device is connected. It has a table to store. When the switch unit does not register the source address of the specific device included in the packet received from the specific port in the table, learning data indicating that the source address and the source address are being learned When the second packet including the source address of the specific device is received from the specific port, the entry including the ID and the identifier of the specific port is registered in the table, and the processor is requested to learn the source address. If an entry including the transmission source address of a specific device and learning data indicating that learning is in progress has already been registered in the table, the processor is not requested to learn the transmission source address. Further, when a request for changing learning data of a specific entry in the table to learned is received from the processor, the learning data of the specific entry is set to learned in the table.

このように学習データを上で述べたようなテーブルにおいて管理することによって、重複するアドレス学習を適切にフィルタリングすることができるようになり、効率的なアドレス学習がプロセッサで実施できるようになる。   Thus, by managing the learning data in the table as described above, it becomes possible to appropriately filter the overlapping address learning, and the efficient address learning can be performed by the processor.

なお、上で述べたスイッチ部とプロセッサとは別のハードウエア・モジュールである場合もある。このような場合には、レイテンシの問題から、上で述べたような構成が特に有効である。   Note that the switch unit and the processor described above may be different hardware modules. In such a case, the configuration as described above is particularly effective due to latency problems.

また、上で述べたスイッチ部が、特定のポートから特定の送信先アドレスを含む第2のパケットを受信した際に上記テーブルに特定の送信先アドレスと学習中であることを表す学習データとを含むエントリが登録済みである場合には、第2のパケットを、特定のポートを除く複数のポートに出力するようにしてもよい。このように学習中においては、送信先アドレスが本当に登録しても良いものであるか未確定であるので、パケットをブロードキャストすることによって各ポートに接続されている装置において自らが該当する装置であるか否かを判断させるものである。   In addition, when the above-described switch unit receives a second packet including a specific destination address from a specific port, the specific destination address and learning data indicating that learning is being performed are stored in the table. If the entry to be included is already registered, the second packet may be output to a plurality of ports excluding a specific port. In this way, during learning, since it is uncertain whether the transmission destination address can be really registered, the device connected to each port by broadcasting a packet is a corresponding device. Or not.

さらに、上で述べたテーブルにおいて学習データが学習中であることを表しているエントリの学習順番を管理するための機構をさらに有するようにしてもよい。このような構成を保持することによって、プロセッサの処理速度が低い場合においても、正しい順番で取りこぼしなくアドレスの学習を行うことができるようになる。   Furthermore, a mechanism for managing the learning order of entries indicating that learning data is being learned in the table described above may be further provided. By maintaining such a configuration, even when the processing speed of the processor is low, it becomes possible to learn addresses without missing them in the correct order.

また、上で述べた機構において、エントリ毎に、ポインタフィールドが設けられ、ポインタフィールドに、学習データが学習中であることを表しているエントリに対応付けて、次に学習すべきエントリへのポインタが登録されるようにしてもよい。さらに、最初に学習すべきエントリへのポインタ及び最後に学習すべきエントリへのポインタを別途保持するようにしてもよい。このようにすれば、簡単な構成で上で述べた機構を実現でき、上記テーブルがアドレス学習のリクエストキューとしても機能することとなる。なお、ポインタフィールドが上で述べたテーブルと一体化される場合もあれば、異なるメモリ又は記録領域に保持される場合もある。一体化された場合の方が、処理が簡単でメモリ利用効率も高くなる。   In the mechanism described above, a pointer field is provided for each entry, and a pointer to the entry to be learned next is associated with the entry indicating that the learning data is being learned in the pointer field. May be registered. Further, a pointer to the entry to be learned first and a pointer to the entry to be learned last may be separately held. In this way, the mechanism described above can be realized with a simple configuration, and the table also functions as a request queue for address learning. The pointer field may be integrated with the table described above, or may be held in a different memory or recording area. In the case of being integrated, the processing is simpler and the memory utilization efficiency is higher.

なお、このようなポインタフィールド等を用いる場合には、上で述べたスイッチ部は、最後に学習すべきエントリへのポインタが既に登録されている場合には、当該最後に学習すべきエントリについてのポインタフィールドに、上記テーブルに新たに登録されたエントリのアドレスを登録し、上記テーブルに新たに登録されたエントリのアドレスを、最後に学習すべきエントリへのポインタとして登録するようにしてもよい。そして、上記プロセッサに送信元アドレスの学習を要求した後に上記プロセッサからの先頭ポインタの要求に応じて、最初に学習すべきエントリへのポインタが示す先頭エントリのアドレスを上記プロセッサに出力し、上記プロセッサからの先頭エントリのアドレスを指定した先頭エントリ取得要求に応じて、上記テーブルから先頭エントリのデータ及び当該先頭エントリに対応付けられているポインタフィールドに格納されているアドレスを読み出してプロセッサに出力し、さらにプロセッサからの先頭エントリに対応付けられているポインタフィールドに格納されているアドレスの設定要求に応じて、最初に学習すべきエントリへのポインタとして上記アドレスの設定要求に含まれるアドレスを登録するようにしてもよい。このようにすれば、適切に学習の順番が管理されるようになる。   When such a pointer field or the like is used, the above-described switch unit, when a pointer to the last entry to be learned has already been registered, The address of the entry newly registered in the table may be registered in the pointer field, and the address of the entry newly registered in the table may be registered as a pointer to the entry to be learned last. Then, after requesting the processor to learn the transmission source address, in response to the request for the head pointer from the processor, the address of the head entry indicated by the pointer to the entry to be learned first is output to the processor. In response to the first entry acquisition request specifying the first entry address from the first entry, the first entry data and the address stored in the pointer field associated with the first entry are read from the table and output to the processor. Further, in response to an address setting request stored in the pointer field associated with the first entry from the processor, the address included in the address setting request is registered as a pointer to the entry to be learned first. It may be. In this way, the learning order is appropriately managed.

また、本技術の第2の態様に係る、ネットワーク接続装置用のスイッチング回路装置は、複数のポートのうちあるポートに接続されている装置のアドレスと、特定のアドレスについて所定の学習処理を実施する管理プログラムを実行するプロセッサが特定のアドレスを学習したか否かを表す学習データと、上記装置が接続されているポートの識別子とを含むエントリを格納するテーブルと、管理部とを有している。そして、管理部は、特定のポートから受信したパケットに含まれる特定の装置の送信元アドレスが上記テーブルに登録されていない場合、送信元アドレスと送信元アドレスを学習中であることを表す学習データと特定のポートの識別子とを含むエントリを上記テーブルに登録すると共に、上記プロセッサに送信元アドレスの学習を要求する。また、特定のポートから特定の装置の送信元アドレスを含む第2のパケットを受信した際に上記テーブルに特定の装置の送信元アドレスと学習中であることを表す学習データとを含むエントリが登録済みである場合には、上記プロセッサに送信元アドレスの学習を要求しない。さらに、上記プロセッサから上記テーブルにおける特定のエントリの学習データを学習済みに変更する要求を受信した場合、上記テーブルにおいて特定のエントリの学習データを学習済みに設定する。   In addition, the switching circuit device for a network connection device according to the second aspect of the present technology performs a predetermined learning process on a device address connected to a certain port among the plurality of ports and a specific address. It has a table for storing an entry including learning data indicating whether or not a processor executing the management program has learned a specific address, an identifier of a port to which the device is connected, and a management unit. . When the transmission source address of the specific device included in the packet received from the specific port is not registered in the table, the management unit learns the transmission source address and the transmission source address. And an entry including a specific port identifier are registered in the table, and the processor is requested to learn the source address. In addition, when a second packet including a transmission source address of a specific device is received from a specific port, an entry including the transmission source address of the specific device and learning data indicating that learning is in progress is registered in the table. If it has already been completed, the processor is not requested to learn the source address. Further, when a request for changing learning data of a specific entry in the table to learned is received from the processor, the learning data of the specific entry is set to learned in the table.

以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。   The following supplementary notes are further disclosed with respect to the embodiments including the above examples.

(付記1)
複数のポートのうち第1のポートから受信したパケットを第2のポートへ出力するスイッチ部と、
前記スイッチ部からの要求に応答して特定のアドレスについて所定の学習処理を実施する管理プログラムを実行するプロセッサと、
を有し、
前記スイッチ部は、
前記ポートに接続されている装置のアドレスと、前記プロセッサが前記アドレスを学習したか否かを表す学習データと、前記装置が接続されているポートの識別子とを含むエントリを格納するテーブルを有しており、
特定のポートから受信したパケットに含まれる特定の装置の送信元アドレスが前記テーブルに登録されていない場合、前記送信元アドレスと前記送信元アドレスを学習中であることを表す学習データと前記特定のポートの識別子とを含むエントリを前記テーブルに登録すると共に、前記プロセッサに前記送信元アドレスの学習を要求し、
前記特定のポートから前記特定の装置の送信元アドレスを含む第2のパケットを受信した際に前記テーブルに前記特定の装置の送信元アドレスと学習中であることを表す学習データとを含むエントリが登録済みである場合には、前記プロセッサに前記送信元アドレスの学習を要求せず、
前記プロセッサから前記テーブルにおける特定のエントリの前記学習データを学習済みに変更する要求を受信した場合、前記テーブルにおいて前記特定のエントリの前記学習データを学習済みに設定する
ネットワーク接続装置。
(Appendix 1)
A switch unit for outputting a packet received from the first port among the plurality of ports to the second port;
A processor that executes a management program that performs a predetermined learning process for a specific address in response to a request from the switch unit;
Have
The switch part is
A table storing an entry including an address of a device connected to the port, learning data indicating whether or not the processor has learned the address, and an identifier of the port to which the device is connected And
When a source address of a specific device included in a packet received from a specific port is not registered in the table, learning data indicating that the source address and the source address are being learned, and the specific address Registering an entry including a port identifier in the table and requesting the processor to learn the source address;
When the second packet including the transmission source address of the specific device is received from the specific port, the table includes an entry including the transmission source address of the specific device and learning data indicating that learning is being performed. If registered, do not request the processor to learn the source address,
A network connection device that sets the learning data of the specific entry in the table as learned when a request for changing the learning data of the specific entry in the table to learned is received from the processor.

(付記2)
前記スイッチ部が、
前記特定のポートから特定の送信先アドレスを含む第2のパケットを受信した際に前記テーブルに前記特定の送信先アドレスと学習中であることを表す学習データとを含むエントリが登録済みである場合には、前記第2のパケットを、前記特定のポートを除く前記複数のポートに出力する
付記1記載のネットワーク接続装置。
(Appendix 2)
The switch part is
When a second packet including a specific destination address is received from the specific port, an entry including the specific destination address and learning data indicating learning is registered in the table. The network connection device according to claim 1, wherein the second packet is output to the plurality of ports excluding the specific port.

(付記3)
前記テーブルにおいて前記学習データが学習中であることを表しているエントリの学習順番を管理するための機構をさらに有する付記1又は2記載のネットワーク接続装置。
(Appendix 3)
The network connection device according to appendix 1 or 2, further comprising a mechanism for managing a learning order of entries indicating that the learning data is being learned in the table.

(付記4)
前記機構において、
前記エントリ毎に、ポインタフィールドが設けられ、
前記ポインタフィールドに、前記学習データが学習中であることを表しているエントリに対応付けて、次に学習すべきエントリへのポインタが登録され、
さらに、最初に学習すべきエントリへのポインタ及び最後に学習すべきエントリへのポインタを別途保持する
付記3記載のネットワーク接続装置。
(Appendix 4)
In the mechanism,
A pointer field is provided for each entry,
In the pointer field, a pointer to an entry to be learned next is registered in association with an entry indicating that the learning data is being learned,
The network connection device according to claim 3, further comprising a pointer to the entry to be learned first and a pointer to the entry to be learned last.

(付記5)
複数のポートのうち第1のポートから受信したパケットを第2のポートへ出力するスイッチ部と、前記スイッチ部からの要求に応答して特定のアドレスについて所定の学習処理を実施する管理プログラムを実行するプロセッサとを有するネットワーク接続装置により実行されるアドレス学習処理方法であって、
前記ポートに接続されている装置のアドレスと前記プロセッサが前記アドレスを学習したか否かを表す学習データと前記装置が接続されているポートの識別子とを含むエントリを格納するテーブルに、特定のポートから受信したパケットに含まれる特定の装置の送信元アドレスが登録されていない場合、前記送信元アドレスと前記送信元アドレスを学習中であることを表す学習データと前記特定のポートの識別子とを含むエントリを前記テーブルに登録すると共に、前記プロセッサに前記送信元アドレスの学習を要求する要求ステップと、
前記特定のポートから前記特定の装置の送信元アドレスを含む第2のパケットを受信した際に前記テーブルに前記特定の装置の送信元アドレスと学習中であることを表す学習データとを含むエントリが登録済みである場合には、前記プロセッサに対する前記送信元アドレスの学習の要求を抑制するステップと、
前記プロセッサから前記テーブルにおける特定のエントリの前記学習データを学習済みに変更する要求を受信した場合、前記テーブルにおいて前記特定のエントリの前記学習データを学習済みに設定するステップと、
を含むアドレス学習処理方法。
(Appendix 5)
A switch unit that outputs a packet received from the first port among the plurality of ports to the second port, and a management program that executes a predetermined learning process for a specific address in response to a request from the switch unit An address learning processing method executed by a network connection device having a processor
A specific port is stored in a table storing an entry including an address of a device connected to the port, learning data indicating whether the processor has learned the address, and an identifier of the port to which the device is connected. If the transmission source address of a specific device included in the packet received from is not registered, the transmission source address, learning data indicating that the transmission source address is being learned, and an identifier of the specific port are included. A requesting step of registering an entry in the table and requesting the processor to learn the source address;
When the second packet including the transmission source address of the specific device is received from the specific port, the table includes an entry including the transmission source address of the specific device and learning data indicating that learning is being performed. If registered, suppressing the request for learning the source address to the processor; and
When receiving a request to change the learning data of a specific entry in the table to learned from the processor, setting the learning data of the specific entry to learned in the table;
Address learning processing method.

(付記6)
前記スイッチ部において、
前記エントリ毎に、ポインタフィールドが設けられ、
前記ポインタフィールドには、前記学習データが学習中であることを表しているエントリに対応付けて、次に学習すべきエントリへのポインタが登録され、
さらに、最初に学習すべきエントリへのポインタ及び最後に学習すべきエントリへのポインタを別途保持し、
前記要求ステップにおいて、
前記最後に学習すべきエントリへのポインタが既に登録されている場合には、当該最後に学習すべきエントリについての前記ポインタフィールドに、前記要求ステップにおいて前記テーブルに新たに登録されたエントリのアドレスを登録し、
前記要求ステップにおいて前記テーブルに新たに登録されたエントリのアドレスを、前記最後に学習すべきエントリへのポインタとして登録し、
前記要求ステップの後に前記プロセッサからの先頭ポインタの要求に応じて、前記最初に学習すべきエントリへのポインタが示す先頭エントリのアドレスを前記プロセッサに出力するステップと、
前記プロセッサからの前記先頭エントリのアドレスを指定した先頭エントリ取得要求に応じて、前記テーブルから前記先頭エントリのデータ及び当該先頭エントリに対応付けられている前記ポインタフィールドに格納されているアドレスを読み出して前記プロセッサに出力するステップと、
前記プロセッサからの前記先頭エントリに対応付けられている前記ポインタフィールドに格納されているアドレスの設定要求に応じて、前記最初に学習すべきエントリへのポインタとして前記アドレスの設定要求に含まれるアドレスを登録するステップと、
をさらに含む付記5記載のアドレス学習処理方法。
(Appendix 6)
In the switch part,
A pointer field is provided for each entry,
In the pointer field, a pointer to an entry to be learned next is registered in association with an entry indicating that the learning data is being learned.
Furthermore, a pointer to the entry to be learned first and a pointer to the entry to be learned last are separately held,
In the request step,
If a pointer to the last entry to be learned has already been registered, the address of the entry newly registered in the table in the request step is stored in the pointer field for the last entry to be learned. Register,
Registering the address of the entry newly registered in the table in the requesting step as a pointer to the entry to be learned last;
Outputting the address of the head entry indicated by the pointer to the entry to be learned first to the processor in response to a request for the head pointer from the processor after the requesting step;
In response to a first entry acquisition request specifying the first entry address from the processor, the first entry data and the address stored in the pointer field associated with the first entry are read from the table. Outputting to the processor;
In response to an address setting request stored in the pointer field associated with the head entry from the processor, an address included in the address setting request is used as a pointer to the entry to be learned first. Registering, and
The address learning processing method according to claim 5, further comprising:

(付記7)
複数のポートのうちあるポートに接続されている装置のアドレスと、特定のアドレスについて所定の学習処理を実施する管理プログラムを実行するプロセッサが前記特定のアドレスを学習したか否かを表す学習データと、前記装置が接続されているポートの識別子とを含むエントリを格納するテーブルと、
管理部とを有しており、
前記管理部が、
特定のポートから受信したパケットに含まれる特定の装置の送信元アドレスが前記テーブルに登録されていない場合、前記送信元アドレスと前記送信元アドレスを学習中であることを表す学習データと前記特定のポートの識別子とを含むエントリを前記テーブルに登録すると共に、前記プロセッサに前記送信元アドレスの学習を要求し、
前記特定のポートから前記特定の装置の送信元アドレスを含む第2のパケットを受信した際に前記テーブルに前記特定の装置の送信元アドレスと学習中であることを表す学習データとを含むエントリが登録済みである場合には、前記プロセッサに前記送信元アドレスの学習を要求せず、
前記プロセッサから前記テーブルにおける特定のエントリの前記学習データを学習済みに変更する要求を受信した場合、前記テーブルにおいて前記特定のエントリの前記学習データを学習済みに設定する、
ネットワーク接続装置用のスイッチング回路装置。
(Appendix 7)
An address of a device connected to a certain port among a plurality of ports, and learning data indicating whether or not a processor that executes a management program for performing a predetermined learning process for a specific address has learned the specific address; A table storing an entry including an identifier of a port to which the device is connected;
And a management department,
The management unit
When a source address of a specific device included in a packet received from a specific port is not registered in the table, learning data indicating that the source address and the source address are being learned, and the specific address Registering an entry including a port identifier in the table and requesting the processor to learn the source address;
When the second packet including the transmission source address of the specific device is received from the specific port, the table includes an entry including the transmission source address of the specific device and learning data indicating that learning is being performed. If registered, do not request the processor to learn the source address,
When the request to change the learning data of a specific entry in the table to learned is received from the processor, the learning data of the specific entry is set to learned in the table.
Switching circuit device for network connection devices.

100 L2スイッチ 110 スイッチLSI
120 スイッチ管理プロセッサ
111 FDB 112 管理部
113 タグ格納部
1111 学習状態フラグ
1121 先頭ポインタ格納部
1122 末尾ポインタ格納部
121 管理プログラム
100 L2 switch 110 Switch LSI
120 switch management processor 111 FDB 112 management unit 113 tag storage unit 1111 learning state flag 1121 head pointer storage unit 1122 tail pointer storage unit 121 management program

Claims (8)

スイッチとプロセッサとを備えるネットワーク接続装置において、
前記スイッチは、
それぞれパケットを受信する複数のポートと、
前記複数のポートのうち、いずれかのポートから受信したパケットの送信元アドレス、前記プロセッサが当該送信元アドレスの登録可否を判断処理中であるかを表す登録処理情報、及び、当該パケットを受信したポートを識別する識別子を対応させて記憶する記憶部と、
前記複数のポートのうちいずれかのポートを介して受信したパケットに含まれる送信元アドレスが前記記憶部に記憶されているを判断し、
受信した前記パケットに含まれる送信元アドレスが前記記憶部に記憶されていない場合、受信した前記パケットに含まれる送信元アドレスと、アドレスの登録処理中であることを示す登録処理情報と、前記パケットを受信したポートの識別子とを対応させて、前記パケットの受信順に前記記憶部に記憶し、
前記記憶部に最初に記憶され送信元アドレスの登録可否の判断処理の要求を前記プロセッサに送信し、
前記判断処理要求に対応して、前記プロセッサより登録処理情報を登録済みに変更する要求を受信した場合、当該送信元アドレスに対応する登録処理情報を登録済みに変更する管理部と
を備え、
前記プロセッサは、
前記スイッチから送信元アドレスの登録可否の判断処理の要求を受信した場合、当該送信元アドレスの登録がされた場合、当該送信元アドレスに対応する登録処理情報を登録済みに変更する要求を、前記スイッチに送信する
ことを特徴とするネットワーク接続装置。
In a network connection device comprising a switch and a processor,
The switch is
Multiple ports each receiving packets ,
A source address of a packet received from any one of the plurality of ports, registration processing information indicating whether the processor is determining whether to register the source address, and the packet are received A storage unit that stores an identifier for identifying the port in association with each other;
Determining whether a source address included in a packet received via any one of the plurality of ports is stored in the storage unit;
If the transmission source address included in the received packet is not stored in the storage unit, the transmission source address included in the received packet, registration processing information indicating that address registration processing is being performed, and the packet Are stored in the storage unit in the order in which the packets are received,
A request for determining whether or not to register the transmission source address first stored in the storage unit is transmitted to the processor;
In response to a request of the determination processing, when receiving a request to change the registration processing information from said processor registered, and a management unit for changing the registration process information corresponding to the source address registered,
The processor is
If a request determination process of registering whether the source address from the switch, if it is registered in the transmission source address, a request to change the registration process information corresponding to the source address registered, A network connection device that transmits to the switch.
前記ネットワーク接続装置はさらに、
前記記憶部において登録処理中を示す登録処理情報が対応付けられている送信元アドレスの登録順序を管理する機構をし、
前記機構おいて、
前記送信元アドレス毎にポインタフィールドが設けられ、
前記ポインタフィールドに、対応する登録処理情報が登録処理中である送信元アドレスに対応付けて、次に登録すべき送信元アドレスのポインタが登録され、
さらに、最初に登録すべき送信元アドレスへのポインタ及び最後に登録すべき送信元アドレスへのポインタを別途保持する
ことを特徴とする請求項1記載のネットワーク接続装置。
The network connection device further includes
Have a mechanism for managing the registration order of the transmission source address registration processing information indicating that the registration process in the storage unit is associated,
Oite to the mechanism,
A pointer field is provided for each source address,
In the pointer field, a pointer of a transmission source address to be registered next is registered in association with a transmission source address whose corresponding registration processing information is being registered,
Further, a pointer to the source address to be registered first and a pointer to the source address to be registered last are separately held.
The network connection device according to claim 1.
前記管理部は、
受信した前記パケットに含まれる送信元アドレスが前記記憶部に記憶されており、当該送信元アドレスに対応する登録処理情報がアドレスの登録処理中を示す情報である場合には、前記プロセッサに当該送信元アドレスの登録可否の判断処理の要求を送信しない
ことを特徴とする請求項1又は2記載のネットワーク接続装置。
The management unit
When the transmission source address included in the received packet is stored in the storage unit and the registration processing information corresponding to the transmission source address is information indicating that the address registration processing is being performed, the transmission is sent to the processor. 3. The network connection device according to claim 1, wherein a request for determining whether or not to register an original address is not transmitted.
前記プロセッサは、
前記スイッチから送信元アドレスの登録可否の判断処理の要求を受信した場合、当該送信元アドレスの登録を実行できないときには、当該送信元アドレスに対応する登録処理情報を削除する削除要求を前記スイッチに送信し、
前記管理部は、
前記削除要求を前記プロセッサから受信した場合には、当該送信元アドレスに対応する登録処理情報を前記記憶部から削除する
ことを特徴とする請求項1乃至3のいずれか1つ記載のネットワーク接続装置。
The processor is
When a request for determining whether or not to register a transmission source address is received from the switch, if registration of the transmission source address cannot be performed, a deletion request for deleting registration processing information corresponding to the transmission source address is transmitted to the switch. And
The management unit
4. The network connection device according to claim 1, wherein when the deletion request is received from the processor, registration processing information corresponding to the transmission source address is deleted from the storage unit. 5. .
プロセッサに接続されるスイッチング回路装置において、
それぞれパケットを受信する複数のポートと、
受信したパケットの送信元アドレス、前記プロセッサによる送信元アドレスの登録状況を示す登録処理情報、およびパケットを受信したポートの識別子を対応させて記憶する記憶部と、
前記複数のポートのうち、いずれかのポートを介して受信したパケットに含まれる送信元アドレスが前記記憶部に記憶されていない場合、受信した前記パケットに含まれる送信元アドレスと、アドレスの登録処理中であることを示す登録処理情報と、前記パケットを受信したポートの識別子とを対応させて、パケットの受信順に前記記憶部に記憶し、
前記記憶部に最初に記憶された送信元アドレスの登録可否の判断処理要求を前記プロセッサに送信し、
前記判断処理要求を受信した前記プロセッサから登録処理情報を登録済みに変更する要求を受信した場合、前記判断処理要求対象の送信元アドレスに対応する登録処理情報を登録済みに変更する管理部とを有する
ことを特徴とするスイッチング回路装置。
In a switching circuit device connected to a processor,
Multiple ports each receiving packets ,
A storage unit that stores a source address of a received packet, registration processing information indicating a registration status of the source address by the processor, and an identifier of a port that has received the packet;
When the transmission source address included in the packet received via any one of the plurality of ports is not stored in the storage unit, the transmission source address included in the received packet and address registration processing The registration processing information indicating that the packet is in correspondence with the identifier of the port that has received the packet, and stores it in the storage unit in the order of packet reception,
Sending a processing request for determining whether or not to register a transmission source address first stored in the storage unit to the processor,
When receiving a request to change the registration process information registered from the processor receiving the determination process request, and a management unit for changing the registration process information corresponding to the source address of the determination process request target to the registered Have
A switching circuit device.
前記スイッチング回路はさらに、
前記記憶部において登録処理中を示す登録処理情報が対応付けられている送信元アドレスの登録順序を管理する手段をし、
前記手段には、
前記送信元アドレス毎にポインタフィールドが設けられ、
前記ポインタフィールドに、対応する登録処理情報が登録処理中である送信元アドレスに対応付けて、次に登録すべき送信元アドレスのポインタが登録され、
さらに、最初に登録すべき送信元アドレスへのポインタ及び最後に登録すべき送信元アドレスへのポインタを別途保持する
ことを特徴とする請求項5記載のスイッチング回路装置。
The switching circuit further includes:
Have a means for managing the registration order of the transmission source address registration processing information indicating that the registration process in the storage unit is associated,
The means include
A pointer field is provided for each source address,
In the pointer field, a pointer of a transmission source address to be registered next is registered in association with a transmission source address whose corresponding registration processing information is being registered,
Further, a pointer to the source address to be registered first and a pointer to the source address to be registered last are separately held.
The switching circuit device according to claim 5.
前記管理部は、
受信した前記パケットに含まれる送信元アドレスが前記記憶部に記憶されており、当該送信元アドレスに対応する登録処理情報がアドレスの登録処理中を示す場合には、前記プロセッサに当該送信元アドレスの登録可否の判断処理の要求を送信しない
ことを特徴とする請求項5又は6記載のスイッチング回路装置。
The management unit
When the transmission source address included in the received packet is stored in the storage unit, and the registration processing information corresponding to the transmission source address indicates that the address registration processing is being performed, the processor is notified of the transmission source address. The switching circuit device according to claim 5 or 6, wherein a request for registration permission determination processing is not transmitted.
前記管理部は、
登録処理情報の削除要求を前記プロセッサから受信した場合には、当該削除要求にかかる送信元アドレスに対応する登録処理情報を前記記憶部から削除する
ことを特徴とする請求項5乃至7のいずれか1つ記載のスイッチング回路装置。
The management unit
The registration processing information corresponding to the source address related to the deletion request is deleted from the storage unit when a registration processing information deletion request is received from the processor. One switching circuit device.
JP2011171472A 2011-08-05 2011-08-05 Network connection device, switching circuit device, and address learning processing method Expired - Fee Related JP5278511B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011171472A JP5278511B2 (en) 2011-08-05 2011-08-05 Network connection device, switching circuit device, and address learning processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011171472A JP5278511B2 (en) 2011-08-05 2011-08-05 Network connection device, switching circuit device, and address learning processing method

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2009097404A Division JP4823331B2 (en) 2009-04-13 2009-04-13 Network connection device, switching circuit device, and address learning processing method

Publications (2)

Publication Number Publication Date
JP2011217422A JP2011217422A (en) 2011-10-27
JP5278511B2 true JP5278511B2 (en) 2013-09-04

Family

ID=44946603

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011171472A Expired - Fee Related JP5278511B2 (en) 2011-08-05 2011-08-05 Network connection device, switching circuit device, and address learning processing method

Country Status (1)

Country Link
JP (1) JP5278511B2 (en)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008160467A (en) * 2006-12-22 2008-07-10 Hitachi Cable Ltd Switching hub

Also Published As

Publication number Publication date
JP2011217422A (en) 2011-10-27

Similar Documents

Publication Publication Date Title
US11811660B2 (en) Flow classification apparatus, methods, and systems
CN109587065B (en) Method, device, switch, equipment and storage medium for forwarding message
US8228908B2 (en) Apparatus for hardware-software classification of data packet flows
AU2012384904B2 (en) Method, device, system and storage medium for implementing packet transmission in PCIE switching network
US7287255B2 (en) System and method for dynamic ordering in a network processor
US6804815B1 (en) Sequence control mechanism for enabling out of order context processing
USRE43825E1 (en) System and method for data forwarding in a programmable multiple network processor environment
CN1808387B (en) Method and system for multiple multi-thread programmable processing core
US11616738B2 (en) Packet processing method and related device
CN104468401A (en) Message processing method and device
JP2000295274A (en) Packet exchange
CN105897589A (en) Technologies for concurrency of CUCKOO hashing flow lookup
US10228869B1 (en) Controlling shared resources and context data
US20060209827A1 (en) Systems and methods for implementing counters in a network processor with cost effective memory
KR102126592B1 (en) A look-aside processor unit with internal and external access for multicore processors
JP4823331B2 (en) Network connection device, switching circuit device, and address learning processing method
US9817594B2 (en) System and method for broadcasting data to multiple hardware forwarding engines
CN112866139A (en) Method, equipment and storage medium for realizing multi-rule flow classification
JP5278511B2 (en) Network connection device, switching circuit device, and address learning processing method
CN112653639B (en) IPv6 message fragment recombination method based on multi-thread interactive processing
US10228852B1 (en) Multi-stage counters
James-Roxby et al. Time-critical software deceleration in a FCCM
US7603539B2 (en) Systems and methods for multi-frame control blocks
WO2023130953A1 (en) Data search method and apparatus, and network device
US11314711B2 (en) Network switch with network analysis data producer-consumer shared memory

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110805

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121204

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130131

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: 20130423

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130506

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees