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 PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/109—Integrated on microchip, e.g. switch-on-chip
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3009—Header 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
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.
上で述べたように、ハードウエアのみによるアドレス学習では、多様なアドレス学習に対応できない。そこで、ソフトウエアによるアドレス学習を導入するとしても、単純には全ての問題が解決するわけではない。 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.
[本技術の実施の形態の前提]
背景技術で述べたように、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
図4に、FDB111のデータ構成例を示す。図4に示すように、検索キーであるMACアドレスに対応付けて、当該MACアドレスの機器が接続されているポートの識別子が登録される出力ポート情報と、当該MACアドレスを学習中であるか学習済みであるかを表す学習状態フラグ1111とが登録されている。このようなテーブルの各行を以下ではエントリと呼び、以下ではその格納位置をインデックスと呼ぶ。
FIG. 4 shows a data configuration example of the
このようなFDB111を用いることによって、以下で述べるように重複するアドレス学習要求をフィルタすることができる。新たなSAを受信した場合には、FDB111に新たなエントリを登録すると共に、学習状態フラグ1111を「学習中」に設定する。管理プログラム121によるアドレス学習の結果スイッチ管理プロセッサ120からエントリ更新要求を受信すれば、学習状態フラグ1111を「学習済」に変更し、当該エントリに基づくパケットの転送が開始される。一方、スイッチ管理プロセッサ120からエントリ削除要求を受信すれば、該当エントリを削除する。
By using such an
具体的には、ポート部からパケット(=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
また、ポート部からパケットを受信すると、当該パケットの送信先アドレス(DA:Destination address。=送信先MACアドレス)でもFDB111に対してDA検索を実施する。この際対応エントリが存在しなければ、全ポートに対してパケットをブロードキャストする。また、対応エントリが存在して学習状態フラグ1111が「学習中」であれば、対応エントリが存在していないのと同様の状態として全ポートに対してパケットをブロードキャストする。すなわち、各ポートに接続されている各装置に自分宛のパケットであるかを判断させる。一方、対応エントリが存在して学習状態フラグ1111が「学習済」であれば、通常どおり該当ポートにパケットを転送する。
When a packet is received from the port unit, DA search is performed on the
次に、図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
さらに、管理部112は、最初にアドレス学習を実施すべきFDB111のエントリを指す先頭ポインタ(図5ではNext0)を保持しており、さらに最後にアドレス学習を実施すべきFDB111のエントリを指す末尾ポインタ(図5ではNext2)を保持している。
Further, the
このようにFDB111における学習中のエントリをキュー構造で管理して、スイッチ管理プロセッサ120のアクセスを効率化する。すなわち、スイッチ管理プロセッサ120からのアクセスは、キュー構造における学習中の先頭エントリに限定されるので、アクセスについてのオーバーヘッドが削減され、処理性能の向上が図られる。
In this way, the learning entry in the
また、本来学習できるアドレス数はFDB111のサイズが上限となる(すなわち学習済エントリ数+学習中エントリ数≦FDBエントリ総数)ので、FDB111の各エントリに対応付けてタグ(ポインタ領域)を設けるのが効率的である。また、タグ格納部113をFDB111に設ければさらにFDB111の空き領域を効率利用できるようになる。
Since the size of the
次に、図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
さらに、キューのサイズが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
管理部112は、スイッチ管理プロセッサ120からの要求がエントリ更新要求であれば、該当エントリの学習状態フラグ1111を「学習済」に変更し、エントリ削除要求であれば、FDB111において該当エントリを削除する(ステップ(7))。
If the request from the
ステップ(5)乃至(7)については、キューが空になるまでスイッチ管理プロセッサ120は処理を繰り返す。
For steps (5) to (7), the
このような処理を実施することにより、アドレス学習を無駄なく且つ漏れなく実施することができるようになる。 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
次に、図7Aを用いてSA処理について説明する。まず、受信パケットのSAでFDB111を検索する(ステップS11)。このステップは、図3のステップ(1)に対応するので、図7Aでも「*(1)」で示している。
Next, SA processing will be described with reference to FIG. 7A. First, the
そして、受信パケットの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
一方、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
そして、管理部112は、末尾ポインタがNULLであるか判断する(ステップS17)。末尾ポインタがNULLということは、キューの中にアドレス学習すべきエントリが無かったということで、今回追加された新規エントリが先頭エントリとなる。末尾ポインタがNULLであれば、管理部112は、先頭ポインタに追加エントリのインデックス(New1)を設定する(ステップS19)。そしてステップS23に移行する。一方、末尾ポインタがNULLでない場合には、既に学習中のエントリが存在するということで末尾に新規エントリを設定しなければならない。従って、末尾ポインタが指すエントリのポインタフィールド(すなわちタグ格納部113の該当フィールド)に追加エントリのインデックス(New1)を設定する(ステップS21)。これによって、追加エントリをキューの最後尾に登録できたことになる。そしてステップS23に移行する。
Then, the
ステップS23では、管理部112は、末尾ポインタに追加エントリのインデックス(New1)を設定する(ステップS23)。そして元の処理に戻る。
In step S23, the
ステップ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
このように、未登録のSAを含むパケットを受信した場合には、FDB111に新規エントリを登録すると共に、キューの末尾に当該新規エントリを設定する。
As described above, when a packet including an unregistered SA is received, a new entry is registered in the
次に、末尾ポインタ格納部1122を監視している管理部112の処理について図11を用いて説明する。管理部112は、末尾ポインタ格納部1122を監視しており、末尾ポインタがNULLであるか判断する(図11:ステップS31)。NULLであれば、学習すべきアドレスがないので、末尾ポインタが登録されるまで待つ。一方、末尾ポインタが登録されていれば、管理部112は、スイッチ管理プロセッサ120に対してアドレス登録要求割り込みをアサートする(ステップS33)。このステップは、図3のステップ(4)に対応する。そしてステップS31に戻る。
Next, processing of the
このようにして、末尾ポインタが設定されると、スイッチ管理プロセッサ120に対してアドレス登録要求割り込みがアサートされるようになり、アドレス学習が開始される。
When the tail pointer is set in this manner, an address registration request interrupt is asserted to the
また、管理部112は、スイッチ管理プロセッサ120からの要求に応じて以下のような処理を実施する。具体的には、管理部112は、スイッチ管理プロセッサ120から何らかの処理要求を受信したか判断し(図12:ステップS41)、受信していない場合には受信するまで待機する。一方、スイッチ管理プロセッサ120から何らかの処理要求を受信した場合には、管理部112内ポインタ(具体的には先頭ポインタ又は末尾ポインタ)へのアクセス要求か判断する(ステップS43)。管理部112内ポインタへのアクセス要求(読み出し/書き込み)であれば、管理部112が、要求先のポインタにアクセスして、結果をスイッチ管理プロセッサ120へ出力する(ステップS45)。このステップは、例えば図3のステップ(5)の一部である。そしてステップS41に戻る。
In addition, the
一方、管理部内ポインタへのアクセス要求でない場合には、管理部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
管理部112は、このようにスイッチ管理プロセッサ120とのインターフェースとしても動作する。
The
次に、スイッチ管理プロセッサ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
先頭ポインタが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
その後、管理プログラム121は、先頭ポインタ格納部1121に対して、取得エントリ(例えばインデックスが「Head1」のエントリ)のポインタフィールド値(タグ格納部113の対応フィールドの値。上の例では「New2」)を設定するようにスイッチLSI110の管理部112に指示する(ステップS59)。これによって、先頭エントリを次のエントリに入れ替えている。図16に示すように、先頭ポインタ格納部1121には、「New2」が登録される。但し、図15のインデックス「New2」のエントリのように、取得エントリのポインタフィールド値が「NULL」であれば、「NULL」を設定するように指示する。また、このステップは、図3のステップ(5)の一部に対応し、図12のステップS43に関連する。そして処理は端子Bを介して図14の処理に移行する。
After that, the
図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
そして、管理プログラム121は、ステップS61の判断結果SA(図15の例では「SB」)を登録するか判断し(ステップS63)、SAを登録する場合には、取得エントリ(インデックス「Head1」のエントリ)の学習状態フラグ1111を学習済に変更するようにエントリ更新要求を、スイッチLSI110の管理部112に出力する(ステップS65)。このステップは、図3のステップ(7)に対応し、図12のステップS49に関連する。そして処理はステップS69に移行する。このような処理を実施すれば、図15の状態から図17の状態に、FDB111等は変化する。
Then, the
一方、SAを登録しない場合、管理プログラム121は、取得エントリ(インデックス「Head1」のエントリ)を削除するようにエントリ削除要求を、スイッチLSI110の管理部112に出力する(ステップS67)。このステップは、図3のステップ(7)に対応する。そして処理はステップS69に移行する。
On the other hand, if the SA is not registered, the
ステップS69では、管理プログラム121は、先頭ポインタがNULLになっているか判断する。ステップS59でNULLを先頭ポインタに設定するようにスイッチLSI110の管理部112に指示したか否かで判断する。先頭ポインタがNULLになっていなければ端子Cを介して図13のステップS51に戻る。
In step S69, the
一方、先頭ポインタが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
このような処理を実施することによって、スイッチLSI110のキューの先頭エントリから適切にアドレス学習が実施されるようになる。さらに、キューを適切に更新して、存在する場合には順番に学習すべきエントリについてアドレス学習を行うようになっている。
By performing such processing, address learning is appropriately performed from the head entry of the queue of the
次に、図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
一方、DAがFDB111に登録済みであれば、本実施の形態では、学習状態フラグ1111が設定されているのでこれを確認する。そして、学習状態フラグ1111が学習中を示している場合には、まだこのアドレスについては登録すべきか否かを決定しておらず、他のポートにこのパケットを処理すべき装置がいるかもしれないので、ステップS89に移行して、パケットを受信したポートを除き全ポートにパケットを転送する。
On the other hand, if the DA is already registered in the
一方、学習状態フラグ1111が学習済を示している場合には、当該エントリに含まれる出力ポートにパケットを出力する(ステップS87)。学習済みであれば該当エントリを使用しても良いので、このようにパケットを出力する。そして元の処理に戻る。
On the other hand, when the learning
以上のような処理を実施することによって、DAが学習済としてFDB111に登録されていない場合には、全ポートに転送してそれらのポートに接続されている装置等に受信すべきパケットかを判断させるようになっている。
By performing the above processing, if the DA is not learned and registered in the
以上述べたように学習状態フラグ1111を適切に管理することにより、重複するアドレス学習を効率的にフィルタすることができ、キューを適切に管理することによってスイッチ管理プロセッサ120の処理速度が遅い場合においてもアドレス学習要求の取りこぼしがなくなる。すなわち、学習状態フラグ1111及びタグ格納部113という最小限のリソース追加で、アドレス学習の効率化が図られ、取りこぼしもなくなる。これにより、スイッチ管理プロセッサ120で高度なアドレス学習を実施しても、それによる性能インパクトを非常に小さなものに抑えることができる。
As described above, by appropriately managing the learning
以上本技術の実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、図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
また、処理フローについても、処理結果が変わらない限りにおいて、処理順番を入れ替えたり、並列に実行したりしても良い場合がある。 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
(付記3)
前記テーブルにおいて前記学習データが学習中であることを表しているエントリの学習順番を管理するための機構をさらに有する付記1又は2記載のネットワーク接続装置。
(Appendix 3)
The network connection device according to
(付記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
(付記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
(付記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
120
Claims (7)
前記スイッチ部からの要求に応答して特定のアドレスについて所定の学習処理を実施する管理プログラムを実行するプロセッサと、
を有し、
前記スイッチ部は、
前記ポートに接続されている装置のアドレスと、前記プロセッサが前記アドレスを学習したか否かを表す学習データと、前記装置が接続されているポートの識別子とを含むエントリを格納するテーブルを有しており、
特定のポートから受信したパケットに含まれる特定の装置の送信元アドレスが前記テーブルに登録されていない場合、前記送信元アドレスと前記送信元アドレスを学習中であることを表す学習データと前記特定のポートの識別子とを含むエントリを前記テーブルに登録すると共に、前記プロセッサに前記送信元アドレスの学習を要求し、
前記特定のポートから前記特定の装置の送信元アドレスを含む第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.
前記エントリ毎に、ポインタフィールドが設けられ、
前記ポインタフィールドに、前記学習データが学習中であることを表しているエントリに対応付けて、次に学習すべきエントリへのポインタが登録され、
さらに、最初に学習すべきエントリへのポインタ及び最後に学習すべきエントリへのポインタを別途保持する
請求項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.
前記ポートに接続されている装置のアドレスと前記プロセッサが前記アドレスを学習したか否かを表す学習データと前記装置が接続されているポートの識別子とを含むエントリを格納するテーブルに、特定のポートから受信したパケットに含まれる特定の装置の送信元アドレスが登録されていない場合、前記送信元アドレスと前記送信元アドレスを学習中であることを表す学習データと前記特定のポートの識別子とを含むエントリを前記テーブルに登録すると共に、前記プロセッサに前記送信元アドレスの学習を要求する要求ステップと、
前記特定のポートから前記特定の装置の送信元アドレスを含む第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.
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)
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)
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)
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 |
-
2009
- 2009-04-13 JP JP2009097404A patent/JP4823331B2/en not_active Expired - Fee Related
-
2010
- 2010-03-31 US US12/751,413 patent/US8559430B2/en not_active Expired - Fee Related
Patent Citations (4)
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 |