JP3784054B2 - Method and recording medium for rearranging MAC addresses - Google Patents

Method and recording medium for rearranging MAC addresses Download PDF

Info

Publication number
JP3784054B2
JP3784054B2 JP2002168178A JP2002168178A JP3784054B2 JP 3784054 B2 JP3784054 B2 JP 3784054B2 JP 2002168178 A JP2002168178 A JP 2002168178A JP 2002168178 A JP2002168178 A JP 2002168178A JP 3784054 B2 JP3784054 B2 JP 3784054B2
Authority
JP
Japan
Prior art keywords
bits
pointer
mac
entry
mac address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2002168178A
Other languages
Japanese (ja)
Other versions
JP2004015592A (en
Inventor
昌也 森
晋平 渡辺
登志男 砂永
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2002168178A priority Critical patent/JP3784054B2/en
Publication of JP2004015592A publication Critical patent/JP2004015592A/en
Application granted granted Critical
Publication of JP3784054B2 publication Critical patent/JP3784054B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、ネットワークで使用される大規模なスイッチ等における大量のMAC(Media Access Control)アドレスの中から任意のMACアドレスを高速に検索するためのMACアドレスポインタ構造およびMACアドレスの並べ替え方法に関する。
【0002】
【従来の技術】
従来のネットワークで使用されるL2スイッチにおいて、数十万を超えるMACアドレスをサポート出来るシステムは、多くのサーバーやクライアントをサポートできる反面、MACアドレスから該当するポートを特定する為に、保持している全てのMACアドレスを検索した上でMACアドレスに対応したポートを探し出さなければならない。これは数十万を超すMACアドレスを持つ大規模スイッチにとっては、パフォーマンスを落とす大きな要因となっている。
【0003】
数十万を超えるMACアドレステーブルから任意のMACアドレスを高速に検索する場合、以下の従来方法がある。
(1)一時的にMACアドレスを保持できるキャッシュメモリーを持ち、キャッシュメモリーに受信した宛先MACアドレスが存在する場合は、そのキャッシュメモリーからポートを導き出して、そのポートに対してのみ転送を行う。
(2)ただし、上記キャッシュメモリーが宛先MACアドレスを保持していない場合は、ブロードキャストによって送信ポートを除く、全ポートに転送を行う必要ある。
【0004】
(1)の場合、キャッシュのサイズは数十万を超すMACアドレスを格納することは不可能な為、キャッシュサイズ以上のネットワークホストが通信を行った場合、(2)のブロードキャストを行う頻度が高くなる。このブロードキャストは、関係する全てのネットワークに対して同時にパケットを載せる処理を行う為、関係するネットワークの負荷が増大する。その結果、全てのネットワークを一時的に止めてしまうハブのような動作状態に陥ってしまい、パフォーマンスを落とすことになる。
【0005】
また、別の従来方法としてCAMを使用した場合、CAMは数十万を超えるMACアドレステーブルを格納できない為、通常のメモリを使用してMACアドレスの高速検索をおこなう必要がある。その検索方法としては色々な方法が考えられる。そして、数十万のMACアドレスが検索方法に適応した形で整列してある場合は、高速に検索可能である。
【0006】
しかし、数十万のMACアドレスが常に検索しやすい状態で整列されているわけではない。数十万の接続状態にあるネットワークホストの中には、モバイル製品の様に接続場所が常に一定ではない場合も考えられる。よって一部のMACアドレスとスイッチやルーターのポートとの関係は、時間と共に変化し、常にデータ(アドレス)の追加、削除が繰り返されている可能性がある。MACアドレステーブルにおけるデータの追加削除に伴うMACアドレステーブルのデータの並べ替えは、周期的に行う必要がある。この並べ替え作業は数十万を超えるエントリー数においては、数ミリ秒単位の時間を要する事となり、通常のメモリを使用してMACアドレス検索を行う事は、現実的ではない。
【0007】
【発明が解決しようとする課題】
本発明の目的は、ネットワークで使用される大規模なスイッチ等における大量のMACアドレスの中から任意のMACアドレスを高速に検索することである。
【0008】
本発明の目的は、MACアドレスを高速に検索することを可能とするMACアドレスポインタ構造およびMACアドレスの並べ替え方法を提供することである。
【0009】
【課題を解決するための手段】
本発明は、MACアドレスを構成するビット中から選択するNビットのエントリー数を有するMACポインタテーブル構造であって、各エントリーはMACアドレスのエントリーテーブルを指定するためのポインタを含み、当該ポインタは前記MACアドレスのNビットからなる、MACポインタテーブル構造である。
【0010】
また、本発明は、MACアドレスを並べ替えるための方法であって、
(a)MACアドレスのエントリーテーブルを準備するステップと、
(b)MACポインタテーブルを準備するステップと、
(c)MACアドレスのエントリーデータを取得するステップと、
(d)前記MACポインタテーブルをチェックするステップと、
(e)前記チェックしたMACポインタテーブルのポインターが指示する前記エントリーテーブルのアドレスへデータを格納するステップと、を含むMACアドレスの並べ替えるための方法である。
【0011】
【発明の実施の形態】
本発明は、(1)「エントリーテーブルの細分化」、(2)「細分化したテーブルを直接指定するポインタテーブル構造」、および(3)「例外処理」の3つの特徴から成る。以下、これらの特徴について説明する。
【0012】
(1)「エントリーテーブルの細分化」について
エントリーテーブルの細分化について説明する前に、その前提となるMACアドレスの特徴について説明する。
MACアドレスは、24ビットのベンダーID(vendor ID)と24ビットのローカルアサインナンバー(Local Assigned number)の組合せ48ビットである。ベンダーIDは、現在5000程度の割り振られており、また連続に割り振られているわけではない。これに対して、ローカルアサインナンバーは、製造会社によって連続に割り振られているかどうかは、一概には言えないが、1つのベンダーIDに対して、1以上(通常数万以上)が割り振られている。よってローカルアサインナンバーを利用し、細分化したエントリーテーブルを指示する事ができ、かつその細分化したエントリーテーブルに全てのMACアドレスを分散して格納することができれば、MACアドレスから直接格納してあるテーブルを指定できることを意味している。
【0013】
ローカルアサインナンバーの下位のビットからの数ビットを細分化したテーブルを指定するポインタとして利用した場合、MACアドレスの数が増加するに伴い、それぞれの細分化したテーブルのエントリー数は、分散傾向が出てくる。実際のデータを当てはめてみると、少数のテーブルに対しては、他のテーブルより集中する場合があるが、多くのテーブルに対しては、ほぼ均等に分散する。これはMACアドレスの数が多くなることによって、ローカルアサインナンバーのランダム性が現れるからである。一部のテーブルだけは、MACアドレスのエントリーデータが集中する場合があるが、この集中に対する例外処理を行いさえすれば、MACアドレスから直接各テーブルを指定できる。
【0014】
例えば、10000程度のMACアドレスデータについて、
(a)下位ビビットから12ビットをポインターとして使用した場合の分散傾向
(b)同13、14ビットの場合の分散傾向
(c)最下位ビットではなく、3ビット目から12ビットの分散傾向
(d)各ビットについて0、1の割合が50:50に近い12ビット分をポインタとして使用した場合の分散傾向
(e)現在公開されているMACアドレスに対するハッシュ関数による分散傾向の以上について分散傾向を調べた場合、結果的に、ほぼ同様の分散傾向が得られた。すなわち、一部のテーブルを除き、ほぼエントリーデータの衝突個数は、0〜2に分散していることがわかった。これは、統計学におけるサンプル数が一定以上になると、ランダムなデータが得られる事と一致している。
【0015】
エントリーテーブルの細分化は、検索及び並び替え時間を短くする為に、MACアドレスの検索許容時間から必要なテーブルサイズを導き出す。例えばギガビットのイーサネット(R)対応の検索速度を必要とする場合は、最小パケットサイズ72バイトの場合、宛先、送信元アドレスを受け取ってから、FCSの受信までの間(52byte)間に検索できれば、MACアドレス検索によって処理の遅延の発生を防止する事ができる。リ−ドサイクルを20nSと仮定すると宛先、送信元アドレスに対する情報をそれぞれ得ることができる回数は、最大(52/2)*8/20=10回である。またMACアドレスのテーブルへのエントリー時には、検索時に挿入位置が決定するので、データのテーブル内での最大移動量はテーブルのサイズの半分である。リード及びライトの組合せでテーブル内を移動することを考えると、”検索回数(最大移動量の場合2回以内)”プラス”移動時間”からエントリー8のテーブルサイズとなる。
【0016】
最終的にMACアドレスの検索を高速に行う為に、MACアドレステーブルをエントリー数8以下にする。これにより2分岐検索方法を使用して検索する場合、最大4回の検索及び比較を行えば、MACアドレスが存在するか、また転送先ポートがどこかという情報を得る事ができる。そして、細分化によってエントリーテーブル自体が小さくなり、エントリー数を減らす事ができる為、例えば2分岐検索を使用する場合などのエントリーデータの並べ替えを高速化する事ができる。
【0017】
(2)「細分化したテーブルを直接指定するポインタテーブル構造」について
細分化したテーブルは、MACポインタテーブルによって指定される。図1は、MACポインタテーブルを用いた基本動作
(構成)を説明した図である。MACポインタテーブル10のサイズは、全MAC数(例えば17ビット)からエントリーテーブル12のサイズ(例えば3ビット)を引いた大きさである(例えば14ビット)。各エントリー14は、図1(1)のビット配列の構成16を持つ。MACポインタテーブル10の各エントリー14に対する配置アドレスは、MACアドレス18のローカルアサインナンバー20の下位14ビットを使用する。これは分散化の為のハッシュ関数に相当する。EXISTビット22(1ビット)は、このローカルアサインナンバー20の下位14ビットに対してMACアドレスデータのエントリーが存在するかどうかを表している。EXISTビット22がアクテイブ(”1”)の場合、エントリー22のメモリポインター(14ビット)は有効であり、これは細分化したエントリーテーブルの各先頭アドレスを示している(図1の24)。
【0018】
(3)「例外処理」について
例外処理は、
(a)ローカルアサインナンバーの下位ビットで分散傾向が現われない場合」と、
(b)「テーブルサイズを超えたエントリーデータがある場合」の2種類存在する。
(a)ローカルアサインナンバーの下位ビットで分散傾向が現われない場合の処理について
MACアドレスのエントリーデータが下位14ビット(数は今回の例)によって分散しない場合は、ローカルアサインナンバーの下位14ビット以外の組合せによって、分散化を行う。例としては、
(i)下位4ビット目から14ビットをとる、
(ii)各ビットについて0、1の割合が50:50に近いビットのうちの14ビット分を各エントリーに対する配置アドレスとして使用する、
等がある。
【0019】
これらを実現する為に図2のポインターマスクレジスター30を設ける。これはローカルアサインナンバーのうち、任意の14ビットを指定する為に使用される。図2の例は、ローカルアサインナンバー24ビットから選択するレジスター30であるが、MACアドレスの48ビットから14ビットを選択する構造も可能である。あとは、上記(2)ポインターテーブル構造と同様にMACポインターテーブル10のエントリー14は、図2(1)の構造16を持つことによって細分化したエントリーテーブル12を指定できる。
【0020】
(b)テーブルサイズ以上のエントリーデータがある場合の処理
完全なるハッシュ関数は存在しない為、一部のテーブルについては、テーブルサイズ以上のエントリーデータが存在する可能性がある。この場合、図3の構成をとる。
(i)テーブルサイズ以上のエントリーデータが存在する場合、テーブルのエントリーデータを二つのテーブルに分割しなければならない。このためのMACアドレス別に振り分けに使用するフラグとして、ローカルアサインナンバー24ビットのうち、使用していない10ビットのうち任意のビットを使用する。
(ii)図3(1)のポインタマスクレジスター32は、(a)の場合(図2)と同様であり、このレジスター32によって指定された14ビット以外の10ビットを(2)の2ndポインタマスク34によって指定する。2ndポインタメモリアドレス36は、”ポインタマスクレジスター32”プラス”2ndポインタマスク34”によって指定されたビット(アドレス)によって分けられるエントリーデータテーブルを指定する為の情報38(図3の(3))が格納されているメモリの先頭アドレスである。
(iii)2ndポインタメモリアドレス36によって指定された追加のMACポインタテーブルエントリー(3)は、基本動作における、MACポインタテーブルエントリー(図2の16、(1)参照)と同じ構成である。
【0021】
図4は上述した本発明のMACポインタテーブル構造を用いたデータエントリーテーブルの検索動作のフローを示した図である。図4で、スタート400から符合424までが図1の構成による基本動作のフローを示し、符合500から506は図2あるいは図3の構成による例外処理のフローを示している。また、図4の符合412から420までは、検索許容時間内に処理ができるか否かを判断するフローを示す。以上、本発明によれば、各エントリーテーブルをMACアドレスからポインタを使用して指定し、テーブル自体を細分化する事によって、検索、並び替えの高速化を実現できる。
【図面の簡単な説明】
【図1】本発明のMACポインタテーブル構造の一実施例の構成を示す図である。
【図2】本発明のMACポインタテーブル構造の一実施例の構成を示す図である。
【図3】本発明のMACポインタテーブル構造の一実施例の構成を示す図である。
【図4】本発明のMACポインタテーブル構造を用いたデータエントリーテーブルの検索動作のフローを示した図である。
【符号の説明】
10:MACポインタテーブル
12:エントリーテーブル
14:エントリーテーブル12内の一エントリー
16:エントリー14のビット配列構成
18:MACアドレス
20:ローカルアサインナンバー
22:EXSITビット
24:アドレス指示
30、32:ポインタマスクレジスター
34:2ndポインタマスク
36:2ndポインタメモリアドレス
38:追加のポインターテーブルの1エントリー
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a MAC address pointer structure and a MAC address rearrangement method for quickly searching an arbitrary MAC address from a large number of MAC (Media Access Control) addresses in a large-scale switch or the like used in a network. .
[0002]
[Prior art]
A system that can support hundreds of thousands of MAC addresses in an L2 switch used in a conventional network can support many servers and clients, but retains it to identify the corresponding port from the MAC address. After searching all the MAC addresses, a port corresponding to the MAC address must be found. This is a major factor in reducing performance for a large-scale switch having a MAC address exceeding hundreds of thousands.
[0003]
In order to search an arbitrary MAC address from a MAC address table exceeding hundreds of thousands at high speed, there are the following conventional methods.
(1) Having a cache memory that can temporarily hold a MAC address, and when the received destination MAC address exists in the cache memory, a port is derived from the cache memory, and transfer is performed only to that port.
(2) However, when the cache memory does not hold the destination MAC address, it is necessary to transfer to all ports except the transmission port by broadcast.
[0004]
In the case of (1), since it is impossible to store a MAC address whose cache size exceeds several hundred thousand, when a network host having a cache size or larger communicates, the frequency of performing the broadcast of (2) is high. Become. Since this broadcast performs a process of placing packets simultaneously on all the related networks, the load on the related networks increases. As a result, the network is in a state of operation like a hub that temporarily stops all the networks, resulting in a decrease in performance.
[0005]
In addition, when CAM is used as another conventional method, CAM cannot store a MAC address table exceeding hundreds of thousands, so it is necessary to perform high-speed MAC address search using a normal memory. There are various possible search methods. If hundreds of thousands of MAC addresses are arranged in a manner adapted to the search method, the search can be performed at high speed.
[0006]
However, hundreds of thousands of MAC addresses are not always arranged in an easy-to-search state. Some network hosts with hundreds of thousands of connected states may not always have the same connection location as in mobile products. Therefore, the relationship between some MAC addresses and the ports of switches and routers changes with time, and there is a possibility that data (address) is constantly added and deleted. The rearrangement of data in the MAC address table accompanying the addition and deletion of data in the MAC address table must be performed periodically. This rearranging operation requires a time of several milliseconds when the number of entries exceeds several hundred thousand, and it is not realistic to perform a MAC address search using a normal memory.
[0007]
[Problems to be solved by the invention]
An object of the present invention is to retrieve an arbitrary MAC address from a large number of MAC addresses in a large-scale switch or the like used in a network at high speed.
[0008]
An object of the present invention is to provide a MAC address pointer structure and a MAC address rearrangement method that enable a MAC address to be searched at high speed.
[0009]
[Means for Solving the Problems]
The present invention is a MAC pointer table structure having an N-bit entry number selected from among bits constituting a MAC address, each entry including a pointer for designating an MAC address entry table, the pointer being It is a MAC pointer table structure consisting of N bits of a MAC address.
[0010]
The present invention is also a method for rearranging MAC addresses,
(A) preparing a MAC address entry table;
(B) preparing a MAC pointer table;
(C) obtaining MAC address entry data;
(D) checking the MAC pointer table;
(E) storing data at the address of the entry table indicated by the pointer of the checked MAC pointer table, and reordering the MAC addresses.
[0011]
DETAILED DESCRIPTION OF THE INVENTION
The present invention comprises three features: (1) “segmentation of entry table”, (2) “pointer table structure for directly designating a segmented table”, and (3) “exception processing”. Hereinafter, these features will be described.
[0012]
(1) “Subdivision of entry table” Before describing the subdivision of the entry table, the characteristics of the premise of the MAC address will be described.
The MAC address is 48 bits in combination of a 24-bit vendor ID and a 24-bit local assigned number. The vendor ID is currently allocated about 5000, and is not allocated continuously. On the other hand, the local assignment number cannot be generally determined whether it is continuously assigned by the manufacturing company, but one or more (usually tens of thousands or more) is assigned to one vendor ID. . Therefore, if a local assignment number can be used to indicate a subdivided entry table and all MAC addresses can be distributed and stored in the subdivided entry table, the subaddresses are stored directly from the MAC address. This means that a table can be specified.
[0013]
When a few bits from the lower bits of the local assignment number are used as a pointer to specify a subdivided table, the number of entries in each subdivided table tends to be distributed as the number of MAC addresses increases. Come. When actual data is applied, it may be concentrated on other tables than on a small number of tables, but it is distributed almost evenly on many tables. This is because the randomness of the local assignment number appears as the number of MAC addresses increases. In some tables, MAC address entry data may be concentrated. However, as long as exception processing is performed for this concentration, each table can be directly specified from the MAC address.
[0014]
For example, about 10000 MAC address data,
(A) Dispersion tendency when 12 bits from the lower bit are used as a pointer (b) Dispersion tendency when the 13th and 14th bits are used (c) Dispersion tendency of 12 bits from the third bit (d) ) Distribution tendency when 12 bits of 0, 1 ratio close to 50:50 are used as pointers for each bit (e) The distribution tendency is examined more than the distribution tendency by the hash function for the MAC address currently disclosed As a result, almost the same dispersion tendency was obtained. That is, except for some tables, it was found that the number of collisions of entry data is distributed in 0-2. This is consistent with the fact that random data can be obtained when the number of samples in statistics exceeds a certain level.
[0015]
The subdivision of the entry table derives a necessary table size from the MAC address search allowable time in order to shorten the search and rearrangement time. For example, when a search speed corresponding to Gigabit Ethernet (R) is required, if the minimum packet size is 72 bytes, if a search can be performed between receiving the destination and the source address and receiving the FCS (52 bytes), The occurrence of processing delay can be prevented by the MAC address search. Assuming that the read cycle is 20 nS, the maximum number of times that information for the destination and the source address can be obtained is (52/2) * 8/20 = 10 times. When the MAC address is entered into the table, the insertion position is determined at the time of retrieval, so the maximum movement amount in the data table is half the size of the table. Considering moving within the table by a combination of read and write, the table size of entry 8 is determined from “number of searches (within 2 times for the maximum movement amount)” plus “movement time”.
[0016]
Finally, in order to search the MAC address at high speed, the number of entries in the MAC address table is 8 or less. As a result, when searching using the two-branch search method, if a search and comparison is performed a maximum of four times, it is possible to obtain information on whether the MAC address exists and where the transfer destination port is. Since the entry table itself is reduced by subdivision and the number of entries can be reduced, the sorting of entry data can be accelerated, for example, when using a two-branch search.
[0017]
(2) A table fragmented for “pointer table structure that directly designates a fragmented table” is designated by the MAC pointer table. Figure 1 shows the basic operation using the MAC pointer table.
It is a figure explaining (configuration). The size of the MAC pointer table 10 is a size obtained by subtracting the size (for example, 3 bits) of the entry table 12 from the total number of MACs (for example, 17 bits) (for example, 14 bits). Each entry 14 has a bit array configuration 16 shown in FIG. The arrangement address for each entry 14 in the MAC pointer table 10 uses the lower 14 bits of the local assignment number 20 of the MAC address 18. This corresponds to a hash function for decentralization. The EXIST bit 22 (1 bit) indicates whether or not there is an entry of MAC address data for the lower 14 bits of the local assignment number 20. When the EXIST bit 22 is active (“1”), the memory pointer (14 bits) of the entry 22 is valid, which indicates each head address of the fragmented entry table (24 in FIG. 1).
[0018]
(3) About “exception handling”
(A) When the distribution tendency does not appear in the lower bits of the local assignment number "
(B) There are two types, “when there is entry data exceeding the table size”.
(A) Processing when the distribution tendency does not appear in the lower bits of the local assignment number When the MAC address entry data is not distributed by the lower 14 bits (the number is an example of this time), other than the lower 14 bits of the local assignment number Dispersion is performed by combination. For example,
(I) Take 14 bits from the lower 4th bit,
(Ii) For each bit, 14 bits out of bits having a ratio of 0 and 1 close to 50:50 are used as arrangement addresses for each entry.
Etc.
[0019]
In order to realize these, the pointer mask register 30 of FIG. 2 is provided. This is used to designate any 14 bits of the local assignment number. The example of FIG. 2 shows the register 30 that selects from the local assignment number 24 bits, but a structure that selects 14 bits from 48 bits of the MAC address is also possible. After that, the entry 14 of the MAC pointer table 10 can specify the segment table 12 subdivided by having the structure 16 of FIG. 2A as in the above (2) pointer table structure.
[0020]
(B) Processing when there is entry data larger than the table size Since there is no complete hash function, entry data larger than the table size may exist for some tables. In this case, the configuration shown in FIG. 3 is adopted.
(I) When entry data larger than the table size exists, the entry data of the table must be divided into two tables. As a flag used for distribution for each MAC address for this purpose, an arbitrary bit out of 10 unused bits among the 24 bits of the local assignment number is used.
(Ii) The pointer mask register 32 of FIG. 3A is the same as that of FIG. 3A (FIG. 2), and 10 bits other than the 14 bits designated by this register 32 are replaced with the 2nd pointer mask of FIG. 34. The 2nd pointer memory address 36 includes information 38 ((3) in FIG. 3) for designating an entry data table divided by the bit (address) designated by the “pointer mask register 32” plus the “2nd pointer mask 34”. This is the start address of the stored memory.
(Iii) The additional MAC pointer table entry (3) designated by the 2nd pointer memory address 36 has the same configuration as the MAC pointer table entry (see 16, (1) in FIG. 2) in the basic operation.
[0021]
FIG. 4 is a diagram showing a flow of a data entry table search operation using the above-described MAC pointer table structure of the present invention. In FIG. 4, from start 400 to reference numeral 424 shows the flow of basic operations with the configuration of FIG. 1, and reference numerals 500 to 506 show the flow of exception processing with the configuration of FIG. 2 or FIG. Also, reference numerals 412 to 420 in FIG. 4 indicate a flow for determining whether or not processing can be performed within the search allowable time. As described above, according to the present invention, each entry table is designated from the MAC address using a pointer, and the table itself is subdivided, thereby realizing high-speed search and rearrangement.
[Brief description of the drawings]
FIG. 1 is a diagram showing a configuration of an embodiment of a MAC pointer table structure according to the present invention.
FIG. 2 is a diagram showing a configuration of an embodiment of a MAC pointer table structure according to the present invention.
FIG. 3 is a diagram showing a configuration of an embodiment of a MAC pointer table structure according to the present invention.
FIG. 4 is a diagram showing a flow of a data entry table search operation using the MAC pointer table structure of the present invention.
[Explanation of symbols]
10: MAC pointer table 12: entry table 14: one entry 16 in the entry table 12: bit array configuration 18 of the entry 14: MAC address 20: local assignment number 22: EXTIT bit 24: address indication 30, 32: pointer mask register 34: 2nd pointer mask 36: 2nd pointer memory address 38: 1 entry of additional pointer table

Claims (11)

コンピュータに、MACアドレスを並べ替えさせる方法であって、
(a)MACアドレスの検索許容時間から導出されるテーブルサイズから決定される所定のエントリー数を有する前記MACアドレスのエントリーテーブルを生成させるステップと、
(b)MACアドレスを構成するビット中のNビットのエントリー数を有するMACポインタテーブルを生成させるステップと、
(c)MACアドレスのエントリーデータを取得させるステップと、
(d)前記MACポインタテーブルの各エントリーのビット情報から、前記各エントリーが有するポインターが有効か、無効かを判定させるステップと、
(e)前記MACポインタテーブルの有効であると判定されたポインターが指示する前記エントリーテーブルのアドレスへデータを格納させるステップと、
を含む、方法。
A method for causing a computer to rearrange MAC addresses,
(A) a step of Ru to produce an entry table of the MAC address having a predetermined number of entries that are determined from the table size derived from the search time allowed MAC addresses,
(B) a step of Ru to produce a MAC pointer table having a number of entries in the N bits in the bits constituting the MAC address,
(C) a step of Ru to acquire entry data of the MAC address,
(D) determining from the bit information of each entry of the MAC pointer table whether the pointer of each entry is valid or invalid ;
(E) a step of said determined pointer to be effective for MAC pointer table Ru is stored data to the address of the entry table for indicating,
Including a method.
前記エントリーテーブルの各エントリーのサイズは3ビットである、請求項に記載の方法。The method of claim 1 , wherein the size of each entry in the entry table is 3 bits. 前記ポインタは前記Nビットからなり、前記Nビットは、前記MACアドレスを構成する下位のNビットである、請求項に記載の方法。The method according to claim 1 , wherein the pointer is composed of the N bits, and the N bits are lower-order N bits constituting the MAC address . 前記Nビットは全ての前記MACアドレス数から前記エントリーテーブルサイズを減算して得られる、請求項に記載の方法。The method of claim 1 , wherein the N bits are obtained by subtracting the entry table size from all the MAC address numbers . 前記MACポインタテーブルは、前記MACアドレスを構成するビット中から前記Nビットを指定するための第一のポインターマスクレジスタを有する、請求項に記載の方法。The method according to claim 1 , wherein the MAC pointer table includes a first pointer mask register for designating the N bits among bits constituting the MAC address . 前記MACポインタテーブルは、前記MACアドレスを構成するビット中から前記Nビットを除くMビットを指定するための第二のポインターマスクレジスタを有し、前記ポインターは、前記MACアドレスの(N+M)ビットからなる、請求項に記載の方法。 The MAC pointer table has a second pointer mask register for designating M bits excluding the N bits from among the bits constituting the MAC address, and the pointer is derived from (N + M) bits of the MAC address. It becomes the method of claim 5. MACアドレスを並べ替えるコンピュータ可読なプログラムが記録された記録媒体であって、前記プログラムは、前記コンピュータに、A recording medium on which a computer-readable program for rearranging MAC addresses is recorded, the program being stored in the computer,
(a)MACアドレスの検索許容時間から導出されるテーブルサイズから決定される所定のエントリー数を有する前記MACアドレスのエントリーテーブルを生成するステップと、(A) generating an entry table of the MAC address having a predetermined number of entries determined from a table size derived from a MAC address search allowable time;
(b)MACアドレスを構成するビット中のNビットのエントリー数を有するMACポインタテーブルを生成するステップと、(B) generating a MAC pointer table having the number of N-bit entries in the bits constituting the MAC address;
(c)MACアドレスのエントリーデータを取得するステップと、(C) obtaining MAC address entry data;
(d)前記MACポインタテーブルの各エントリーのビット情報から、前記各エントリーが有するポインターが有効か、無効かを判定するステップと、(D) determining whether the pointer of each entry is valid or invalid from the bit information of each entry in the MAC pointer table;
(e)前記MACポインタテーブルの有効であると判定したポインターが指示する前記エントリーテーブルのアドレスへデータを格納するステップと、(E) storing data at the address of the entry table indicated by the pointer determined to be valid in the MAC pointer table;
を実行させる、記録媒体。A recording medium that causes
前記MACポインタテーブルの各エントリーのサイズは3ビットである、請求項7に記載の記録媒体。The recording medium according to claim 7, wherein the size of each entry of the MAC pointer table is 3 bits. 前記ポインタは前記Nビットからなり、前記Nビットは、前記MACアドレスを構成する下位のNビットである、請求項7に記載の記録媒体。The recording medium according to claim 7, wherein the pointer includes the N bits, and the N bits are lower-order N bits constituting the MAC address. 前記Nビットは全ての前記MACアドレス数から前記エントリーテーブルサイズを減算して得られる、請求項7に記載の記録媒体。The recording medium according to claim 7, wherein the N bits are obtained by subtracting the entry table size from all the MAC address numbers. 前記MACポインタテーブルは、前記MACアドレスを構成するビット中から前記Nビットを指定するための第一のポインターマスクレジスタと、前記MACアドレスを構成するビット中から前記Nビットを除くMビットを指定するための第二のポインターマスクレジスタを有し、前記ポインターは、前記MACアドレスの(N+M)ビットからなる、請求項7に記載の記録媒体。The MAC pointer table specifies a first pointer mask register for designating the N bits from among the bits constituting the MAC address, and M bits excluding the N bits from the bits constituting the MAC address. The recording medium according to claim 7, further comprising: a second pointer mask register, wherein the pointer includes (N + M) bits of the MAC address.
JP2002168178A 2002-06-10 2002-06-10 Method and recording medium for rearranging MAC addresses Expired - Fee Related JP3784054B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002168178A JP3784054B2 (en) 2002-06-10 2002-06-10 Method and recording medium for rearranging MAC addresses

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002168178A JP3784054B2 (en) 2002-06-10 2002-06-10 Method and recording medium for rearranging MAC addresses

Publications (2)

Publication Number Publication Date
JP2004015592A JP2004015592A (en) 2004-01-15
JP3784054B2 true JP3784054B2 (en) 2006-06-07

Family

ID=30435156

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002168178A Expired - Fee Related JP3784054B2 (en) 2002-06-10 2002-06-10 Method and recording medium for rearranging MAC addresses

Country Status (1)

Country Link
JP (1) JP3784054B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8195705B2 (en) 2001-12-11 2012-06-05 International Business Machines Corporation Hybrid search memory for network processor and computer systems
US7565343B2 (en) 2004-03-31 2009-07-21 Ipt Corporation Search apparatus and search management method for fixed-length data

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS554605A (en) * 1978-06-26 1980-01-14 Fujitsu Ltd Address decoding system
JPS61148556A (en) * 1984-12-24 1986-07-07 Hitachi Ltd Control code detector of communication
JPS61201516A (en) * 1985-03-05 1986-09-06 Nec Corp Pattern detection circuit
JPS622317A (en) * 1985-06-27 1987-01-08 Toshiba Corp Multilevel comparison and coincidence detecting circuit
JPH01103341A (en) * 1987-10-16 1989-04-20 Nec Corp Address detecting circuit
US5530806A (en) * 1994-12-15 1996-06-25 At&T Corp. Method and apparatus for storing and retrieving routing information in a network node
JP3545858B2 (en) * 1995-12-01 2004-07-21 株式会社東芝 Network connection device and information search device
JP3520709B2 (en) * 1997-03-13 2004-04-19 三菱電機株式会社 Network address search method
JP2000022736A (en) * 1998-07-06 2000-01-21 Nec Eng Ltd Routing entry retrieval system, retrieval method therefor, and storage medium recorded with control program therefor
JP2000209216A (en) * 1999-01-12 2000-07-28 Shimada Phys & Chem Ind Co Ltd Address management method and device, and recording medium thereof
JP3216630B2 (en) * 1999-06-09 2001-10-09 日本電気株式会社 Communication control device
JP2001326679A (en) * 2000-05-15 2001-11-22 Fujitsu Ltd Information unit, table retrieval device, table retrieval method, and recording medium
JP2002016638A (en) * 2000-06-29 2002-01-18 Mitsubishi Electric Corp Routing information retrieving device and computer readable recording medium having routing information retrieval control data recorded thereon
JP3779619B2 (en) * 2002-01-11 2006-05-31 日本電信電話株式会社 Packet transfer device, network, program, and recording medium
JP3757882B2 (en) * 2002-03-12 2006-03-22 日本電信電話株式会社 Packet filtering method

Also Published As

Publication number Publication date
JP2004015592A (en) 2004-01-15

Similar Documents

Publication Publication Date Title
US7274693B1 (en) Search engine for forwarding table content addressable memory
US6842791B2 (en) Method and apparatus for memory efficient fast VLAN lookups and inserts in hardware-based packet switches
CA2274962C (en) High speed variable length best match look-up in a switching device
US5909440A (en) High speed variable length best match look-up in a switching device
US6606681B1 (en) Optimized content addressable memory (CAM)
US6775281B1 (en) Method and apparatus for a four-way hash table
US6266705B1 (en) Look up mechanism and associated hash table for a network switch
US7469243B2 (en) Method and device for searching fixed length data
US7146371B2 (en) Performance and memory bandwidth utilization for tree searches using tree fragmentation
US20030182291A1 (en) Method and data structure for a low memory overhead database
WO1999013587B1 (en) A high speed cache management unit for use in a bridge/router
JP2009532989A (en) Method for performing a table lookup operation using a table index that exceeds the CAM key size
US6163541A (en) Method for selecting virtual channels based on address priority in an asynchronous transfer mode device
US6507564B1 (en) Method and apparatus for testing aging function in a network switch
US6208662B1 (en) Method for distributing and recovering buffer memories in an asynchronous transfer mode edge device
US7400623B2 (en) Method and apparatus for managing medium access control (MAC) address
JP3784054B2 (en) Method and recording medium for rearranging MAC addresses
US6996664B2 (en) Ternary content addressable memory with enhanced priority matching
US6343289B1 (en) Efficient search and organization of a forwarding database or the like
EP4221134A1 (en) Systems for and methods of flow table management
US12028254B2 (en) Systems for and methods of flow table management
Tao et al. Guided multiple hashing: Achieving near perfect balance for fast routing lookup
CN111131197B (en) Filtering strategy management system and method thereof
JP2991007B2 (en) Key retrieval device, key retrieval method, sort processing device, and database processing device
JPH10190744A (en) Information storage device

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050301

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20050325

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20050325

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050601

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

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20060301

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060313

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees