JP2010251928A - Network connection device, switching circuit device, and method for learning and processing of address - Google Patents

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

Info

Publication number
JP2010251928A
JP2010251928A JP2009097404A JP2009097404A JP2010251928A JP 2010251928 A JP2010251928 A JP 2010251928A JP 2009097404 A JP2009097404 A JP 2009097404A JP 2009097404 A JP2009097404 A JP 2009097404A JP 2010251928 A JP2010251928 A JP 2010251928A
Authority
JP
Japan
Prior art keywords
entry
address
learned
learning
specific
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.)
Granted
Application number
JP2009097404A
Other languages
Japanese (ja)
Other versions
JP4823331B2 (en
Inventor
Takashi Miyoshi
貴史 三吉
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 JP2009097404A priority Critical patent/JP4823331B2/en
Priority to US12/751,413 priority patent/US8559430B2/en
Publication of JP2010251928A publication Critical patent/JP2010251928A/en
Application granted granted Critical
Publication of JP4823331B2 publication Critical patent/JP4823331B2/en
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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/109Integrated on microchip, e.g. switch-on-chip
    • 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
    • H04L49/3009Header conversion, routing tables or routing tags

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To carry out address learning by software for a switch, etc. <P>SOLUTION: The switch includes: a switch unit which outputs a packet received from a first port to a second port; and a processor which replies to a request from the switch unit, and executes a management program which carries out predetermined learning processing for a specified address. The switch unit has a table including an entry which includes an apparatus address, a flag expressing whether the address is learned, and an identifier of a port. When the transmission source address of the specified apparatus included in a packet received from the specified port is not registered in the table, it requests the processor to learn the transmission source address while registering to the table the entry including the transmission source address, the flag expressing that the address is under learning, and the identifier of the specified port, and if it receives a request to change the flag of the specified entry to a flag showing that the change has finished from the processor, it change the flag of the specified entry to a flag showing that the learning has finished in the table. <P>COPYRIGHT: (C)2011,JPO&INPIT

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 not only to learn about a specific address but also to efficiently perform address learning.

特開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 an entry for the SA for which address learning is to be performed next. In the example of FIG. 5, the pointer for the entry of the index Next0 is the index Next1 of the entry for the SA for which address learning is to be performed next. The pointer of the entry of the index Next1 is the index Next2 of the entry for the SA for which address learning is to be performed 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. It is 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. ) 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 is already registered in the FDB 111, the learning state flag 1111 is set in the present 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 or not 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 (7)

複数のポートのうち第1のポートから受信したパケットを第2のポートへ出力するスイッチ部と、
前記スイッチ部からの要求に応答して特定のアドレスについて所定の学習処理を実施する管理プログラムを実行するプロセッサと、
を有し、
前記スイッチ部は、
前記ポートに接続されている装置のアドレスと、前記プロセッサが前記アドレスを学習したか否かを表す学習データと、前記装置が接続されているポートの識別子とを含むエントリを格納するテーブルを有しており、
特定のポートから受信したパケットに含まれる特定の装置の送信元アドレスが前記テーブルに登録されていない場合、前記送信元アドレスと前記送信元アドレスを学習中であることを表す学習データと前記特定のポートの識別子とを含むエントリを前記テーブルに登録すると共に、前記プロセッサに前記送信元アドレスの学習を要求し、
前記特定のポートから前記特定の装置の送信元アドレスを含む第2のパケットを受信した際に前記テーブルに前記特定の装置の送信元アドレスと学習中であることを表す学習データとを含むエントリが登録済みである場合には、前記プロセッサに前記送信元アドレスの学習を要求せず、
前記プロセッサから前記テーブルにおける特定のエントリの前記学習データを学習済みに変更する要求を受信した場合、前記テーブルにおいて前記特定のエントリの前記学習データを学習済みに設定する
ネットワーク接続装置。
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のパケットを、前記特定のポートを除く前記複数のポートに出力する
請求項1記載のネットワーク接続装置。
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.
前記テーブルにおいて前記学習データが学習中であることを表しているエントリの学習順番を管理するための機構をさらに有する請求項1又は2記載のネットワーク接続装置。   The network connection device according to claim 1, further comprising a mechanism for managing a learning order of entries indicating that the learning data is being learned in the table. 前記機構において、
前記エントリ毎に、ポインタフィールドが設けられ、
前記ポインタフィールドに、前記学習データが学習中であることを表しているエントリに対応付けて、次に学習すべきエントリへのポインタが登録され、
さらに、最初に学習すべきエントリへのポインタ及び最後に学習すべきエントリへのポインタを別途保持する
請求項3記載のネットワーク接続装置。
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 an entry to be learned first and a pointer to an entry to be learned last.
複数のポートのうち第1のポートから受信したパケットを第2のポートへ出力するスイッチ部と、前記スイッチ部からの要求に応答して特定のアドレスについて所定の学習処理を実施する管理プログラムを実行するプロセッサとを有するネットワーク接続装置により実行されるアドレス学習処理方法であって、
前記ポートに接続されている装置のアドレスと前記プロセッサが前記アドレスを学習したか否かを表す学習データと前記装置が接続されているポートの識別子とを含むエントリを格納するテーブルに、特定のポートから受信したパケットに含まれる特定の装置の送信元アドレスが登録されていない場合、前記送信元アドレスと前記送信元アドレスを学習中であることを表す学習データと前記特定のポートの識別子とを含むエントリを前記テーブルに登録すると共に、前記プロセッサに前記送信元アドレスの学習を要求する要求ステップと、
前記特定のポートから前記特定の装置の送信元アドレスを含む第2のパケットを受信した際に前記テーブルに前記特定の装置の送信元アドレスと学習中であることを表す学習データとを含むエントリが登録済みである場合には、前記プロセッサに対する前記送信元アドレスの学習の要求を抑制するステップと、
前記プロセッサから前記テーブルにおける特定のエントリの前記学習データを学習済みに変更する要求を受信した場合、前記テーブルにおいて前記特定のエントリの前記学習データを学習済みに設定するステップと、
を含むアドレス学習処理方法。
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 or not 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.
前記スイッチ部において、
前記エントリ毎に、ポインタフィールドが設けられ、
前記ポインタフィールドには、前記学習データが学習中であることを表しているエントリに対応付けて、次に学習すべきエントリへのポインタが登録され、
さらに、最初に学習すべきエントリへのポインタ及び最後に学習すべきエントリへのポインタを別途保持し、
前記要求ステップにおいて、
前記最後に学習すべきエントリへのポインタが既に登録されている場合には、当該最後に学習すべきエントリについての前記ポインタフィールドに、前記要求ステップにおいて前記テーブルに新たに登録されたエントリのアドレスを登録し、
前記要求ステップにおいて前記テーブルに新たに登録されたエントリのアドレスを、前記最後に学習すべきエントリへのポインタとして登録し、
前記要求ステップの後に前記プロセッサからの先頭ポインタの要求に応じて、前記最初に学習すべきエントリへのポインタが示す先頭エントリのアドレスを前記プロセッサに出力するステップと、
前記プロセッサからの前記先頭エントリのアドレスを指定した先頭エントリ取得要求に応じて、前記テーブルから前記先頭エントリのデータ及び当該先頭エントリに対応付けられている前記ポインタフィールドに格納されているアドレスを読み出して前記プロセッサに出力するステップと、
前記プロセッサからの前記先頭エントリに対応付けられている前記ポインタフィールドに格納されているアドレスの設定要求に応じて、前記最初に学習すべきエントリへのポインタとして前記アドレスの設定要求に含まれるアドレスを登録するステップと、
をさらに含む請求項5記載のアドレス学習処理方法。
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:
複数のポートのうちあるポートに接続されている装置のアドレスと、特定のアドレスについて所定の学習処理を実施する管理プログラムを実行するプロセッサが前記特定のアドレスを学習したか否かを表す学習データと、前記装置が接続されているポートの識別子とを含むエントリを格納するテーブルと、
管理部とを有しており、
前記管理部が、
特定のポートから受信したパケットに含まれる特定の装置の送信元アドレスが前記テーブルに登録されていない場合、前記送信元アドレスと前記送信元アドレスを学習中であることを表す学習データと前記特定のポートの識別子とを含むエントリを前記テーブルに登録すると共に、前記プロセッサに前記送信元アドレスの学習を要求し、
前記特定のポートから前記特定の装置の送信元アドレスを含む第2のパケットを受信した際に前記テーブルに前記特定の装置の送信元アドレスと学習中であることを表す学習データとを含むエントリが登録済みである場合には、前記プロセッサに前記送信元アドレスの学習を要求せず、
前記プロセッサから前記テーブルにおける特定のエントリの前記学習データを学習済みに変更する要求を受信した場合、前記テーブルにおいて前記特定のエントリの前記学習データを学習済みに設定する、
ネットワーク接続装置用のスイッチング回路装置。
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.
JP2009097404A 2009-04-13 2009-04-13 Network connection device, switching circuit device, and address learning processing method Expired - Fee Related JP4823331B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009097404A JP4823331B2 (en) 2009-04-13 2009-04-13 Network connection device, switching circuit device, and address learning processing method
US12/751,413 US8559430B2 (en) 2009-04-13 2010-03-31 Network connection device, switching circuit device, and method for learning address

Applications Claiming Priority (1)

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

Related Child Applications (1)

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

Publications (2)

Publication Number Publication Date
JP2010251928A true JP2010251928A (en) 2010-11-04
JP4823331B2 JP4823331B2 (en) 2011-11-24

Family

ID=42934350

Family Applications (1)

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

Country Status (2)

Country Link
US (1) US8559430B2 (en)
JP (1) JP4823331B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101610217B (en) * 2009-06-05 2011-08-24 中兴通讯股份有限公司 Method for implementing message transmission between extensible processor and switch chip and system thereof
US9455911B1 (en) * 2013-12-30 2016-09-27 Google Inc. In-band centralized control with connection-oriented control protocols
US10419267B2 (en) * 2014-01-22 2019-09-17 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Network control software notification with advance learning

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000059393A (en) * 1998-08-13 2000-02-25 Nec Corp Network line concentration device
JP2001186186A (en) * 1999-12-27 2001-07-06 Toshiba Corp Device for exchanging packets, network system and method for exchanging packets
JP2003046533A (en) * 2001-08-02 2003-02-14 Nec Commun Syst Ltd Network system, authentication method therefor and program thereof
JP2004072633A (en) * 2002-08-08 2004-03-04 Hitachi Ltd IPv6 NODE ACCOMMODATING METHOD AND IPv6 NODE ACCOMMODATING SYSTEM

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5909686A (en) * 1997-06-30 1999-06-01 Sun Microsystems, Inc. Hardware-assisted central processing unit access to a forwarding database
US6310874B1 (en) * 1998-03-19 2001-10-30 3Com Corporation Learn pending frame throttle
GB2360168B (en) * 2000-03-11 2003-07-16 3Com Corp Network switch including hysteresis in signalling fullness of transmit queues
WO2005004407A1 (en) * 2003-07-07 2005-01-13 Yazaki Corporation Transmission capacity assignment method, communication network, and network resource management device
US7660259B1 (en) * 2004-10-20 2010-02-09 Extreme Networks, Inc. Methods and systems for hybrid hardware- and software-base media access control (MAC) address learning
JP2006295550A (en) 2005-04-11 2006-10-26 Mitsubishi Electric Corp Packet transfer apparatus
JP2007318553A (en) * 2006-05-26 2007-12-06 Fujitsu Ltd Network managing method
JP5012553B2 (en) * 2008-02-15 2012-08-29 富士通株式会社 Frame relay apparatus, route learning program, and route learning method
JP5074314B2 (en) * 2008-07-07 2012-11-14 株式会社日立製作所 Frame transfer device
EP2242215B1 (en) * 2009-04-16 2017-01-11 Alcatel Lucent Method for client data transmission through a packet switched provider network
JP5336343B2 (en) * 2009-12-17 2013-11-06 富士通株式会社 Path connectivity confirmation method and transmission apparatus

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000059393A (en) * 1998-08-13 2000-02-25 Nec Corp Network line concentration device
JP2001186186A (en) * 1999-12-27 2001-07-06 Toshiba Corp Device for exchanging packets, network system and method for exchanging packets
JP2003046533A (en) * 2001-08-02 2003-02-14 Nec Commun Syst Ltd Network system, authentication method therefor and program thereof
JP2004072633A (en) * 2002-08-08 2004-03-04 Hitachi Ltd IPv6 NODE ACCOMMODATING METHOD AND IPv6 NODE ACCOMMODATING SYSTEM

Also Published As

Publication number Publication date
JP4823331B2 (en) 2011-11-24
US20100260183A1 (en) 2010-10-14
US8559430B2 (en) 2013-10-15

Similar Documents

Publication Publication Date Title
CN108809854B (en) Reconfigurable chip architecture for large-flow network processing
US7287255B2 (en) System and method for dynamic ordering in a network processor
US9110714B2 (en) Systems and methods for multi-tasking, resource sharing, and execution of computer instructions
US6330584B1 (en) Systems and methods for multi-tasking, resource sharing and execution of computer instructions
US8228908B2 (en) Apparatus for hardware-software classification of data packet flows
CN1808387B (en) Method and system for multiple multi-thread programmable processing core
CN104468401A (en) Message processing method and device
US20050074005A1 (en) Network-processor accelerator
JP2004172917A (en) Packet retrieving device, packet process retrieving method, and program
US7293158B2 (en) Systems and methods for implementing counters in a network processor with cost effective memory
JP4823331B2 (en) Network connection device, switching circuit device, and address learning processing method
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
JP2001237881A (en) Table type data retrieval device and packet processing system using it, and table type data retrieval method
JP4209186B2 (en) A processor configured to reduce memory requirements for fast routing and switching of packets
EP4322017A1 (en) On-chip integrated circuit, and data processing apparatus and method
WO2022037571A1 (en) Packet forwarding method and apparatus, and computer-readable storage medium
CN112653639B (en) IPv6 message fragment recombination method based on multi-thread interactive processing
US10228852B1 (en) Multi-stage counters
JP2004260532A (en) Network processor
James-Roxby et al. Time-critical software deceleration in a FCCM
US7603539B2 (en) Systems and methods for multi-frame control blocks
US11314711B2 (en) Network switch with network analysis data producer-consumer shared memory
CN116860488B (en) Process communication method and related device
JP2009123050A (en) Information retrieving device and registration method of entry information to the same

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110404

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110517

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110805

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20110812

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110906

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140916

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees