JP2004504769A - パケットのデータバイトを複数の最小項でバッファなしに評価するための装置および方法 - Google Patents
パケットのデータバイトを複数の最小項でバッファなしに評価するための装置および方法 Download PDFInfo
- Publication number
- JP2004504769A JP2004504769A JP2002513166A JP2002513166A JP2004504769A JP 2004504769 A JP2004504769 A JP 2004504769A JP 2002513166 A JP2002513166 A JP 2002513166A JP 2002513166 A JP2002513166 A JP 2002513166A JP 2004504769 A JP2004504769 A JP 2004504769A
- Authority
- JP
- Japan
- Prior art keywords
- equation
- minterm
- incoming data
- minimum term
- minimum
- 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
- H04L49/00—Packet switching elements
- H04L49/60—Software-defined switches
- H04L49/602—Multilayer or multiprotocol switching, e.g. IP switching
-
- 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
-
- 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/3018—Input queuing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
- H04L49/351—Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Abstract
Description
【発明の分野】
この発明は、サブネットワーク間でデータパケットをスイッチするよう構成された、FIFOを行なわないノンブロッキングネットワークスイッチにおけるデータパケットのスイッチングに関する。
【0002】
【背景技術】
ローカルエリアネットワークは、ネットワークケーブルまたは他の媒体を用いてネットワーク上のステーションをリンクする。各ローカルエリアネットワークアーキテクチャは、各ネットワークノードにおいてネットワークインターフェイス装置がネットワーク媒体にアクセスできるようにする、メディアアクセス制御(MAC)を用いる。
【0003】
イーサネット(R)プロトコルIEEE802.3は、データパケットを送信するための、半二重メディアアクセスメカニズムおよび全二重メディアアクセスメカニズムを特定するよう発展した。全二重メディアアクセスメカニズムは、2つのネットワーク要素間、たとえばネットワークノードとスイッチされたハブとの間に、ツーウェイのポイントツーポイント通信リンクをもたらす。
【0004】
スイッチされたローカルエリアネットワークは、より高速の接続性、より柔軟なスイッチング性能、およびより複雑なネットワークアーキテクチャに適応する能力に対する需要の高まりに直面している。たとえば、本願出願人に譲渡された米国特許第5,953,335号は、異なるネットワークノード間でレイヤ2タイプのイーサネット(R)(IEEE802.3)データパケットをスイッチするよう構成されたネットワークスイッチを開示しており、受信されたデータパケットは、(ルータを介して)別のサブネットワークまたは所定の群のステーションを特定する、IEEE802.1qプロトコルに従ったVLAN(仮想LAN)タグ付きフレームを含むことができる。スイッチイングはレイヤ2レベルで生じるため、データパケットをサブネットワーク間で転送するために、典型的にはルータが必要となる。
【0005】
レイヤ3(たとえばインターネットプロトコル)の処理を含むようにネットワークスイッチのスイッチング性能を高める努力は、重大な欠点を有するおそれがある。なぜなら、現在のレイヤ2スイッチは、好ましくは、ノンブロッキングモードで動作するよう構成されており、データパケットは、データパケットが受信される速度と同じ速度でスイッチから出力され得るからである。より高速のスイッチが、100Mbpsまたはギガビットのネットワーク等のより高速なネットワークに対し、レイヤ2スイッチングおよびレイヤ3スイッチングのどちらの能力も確実に提供できるよう、より新規な設計が必要とされる。
【0006】
ノンブロッキングモードで動作するネットワークスイッチを開発する際の考慮事項の1つは、ネットワークスイッチの設計にバッファを含むことである。しかしながら、レイヤ2およびレイヤ3のデータパケットをスイッチする際に、ワイヤ速度と合致するためには、バッファのサイズが1500バイトという大きさになり得る。バッファがネットワークスイッチの他の構成要素と比べ、ウェハチップ上で比較的大きな空間を占めるという事実と併せると、ワイヤ速度に合致するバッファを用いることにより、ウェハチップの全体サイズが増大することによってネットワークスイッチの全体コストを上げてしまう。
【0007】
【発明の概要】
ネットワークスイッチが、データパケットをブロックすることなく、100Mbpsおよびギガビットのリンクに対してレイヤ2スイッチングおよびレイヤ3スイッチングの能力を提供することのできる構成が必要とされる。
【0008】
さらに、ネットワークスイッチが、レイヤ2スイッチングおよびレイヤ3スイッチングの能力を、そうでなければスイッチされたデータパケットの待ち時間またはネットワークスイッチのサイズに影響を及ぼすであろう、ネットワークスイッチにおいて最小のバッファリングで提供することのできる構成が必要とされる。
【0009】
さらに、データパケットの非ブロッキングを維持したまま、ネットワークスイッチにおいて最小のコストでレイヤ2スイッチングおよびレイヤ3スイッチングの能力を提供する構成が必要とされる。
【0010】
さらに、バッファリングなしでレイヤ2スイッチングおよびレイヤ3スイッチングの能力を提供して、ネットワークスイッチのコストを下げる構成が必要とされる。
【0011】
さらに、ネットワークスイッチポートが、入来するデータパケットを瞬時に評価してレイヤ3またはより上位のプロトコルを判定し、検出されたプロトコルに従い、関連するスイッチファブリックに対して、入来するデータパケットを処理するのに十分な時間をもたらすことのできる構成が必要とされる。
【0012】
これらのおよび他の必要性は、ネットワークスイッチポートフィルタが入来するデータパケットを評価するよう構成されたこの発明によって達成される。ネットワークスイッチポートフィルタは、複数の等式の最小項(min term)値を記憶するよう構成された最小項メモリを含む。各最小項値は、入来するデータパケットの、対応する選択されたバイトと比較されるための所定の値を特定し、各等式は、対応する等式識別子によって識別される。ネットワークスイッチポートフィルタはまた、入来するデータパケットの受信されたバイトを、受信されたバイトに対応する最小項と同時に比較して、それぞれの最小項の比較結果を生成するよう構成された、対応する最小項生成器を含む。ネットワークスイッチポートフィルタは、複数の等式コアモジュールをさらに含む。各コアモジュールは、対応する選択された等式に対する対応する等式識別子と、最小項の比較結果とに基づき、対応するフレームタグを同時に生成するよう構成される。入来するデータパケットの、所与の受信されたバイトは、関連するすべての最小項と同時に比較されるため、このことにより、入来するデータパケットのリアルタイムの評価が確実となる。さらに、複数の等式コアモジュールは、バッファに対する必要性を最小にする。なぜなら、多数のフレームタグが同時に生成されることにより、入来するデータパケットをスイッチする際の待ち時間が最小になるためである。
【0013】
この発明の一局面は、ネットワークスイッチポートで入来するデータパケットを評価する方法を提供する。この方法は、最小項メモリに複数の等式の最小項値を記憶するステップを含む。各最小項値は、入来するデータパケットの、対応する選択されたバイトと比較されるための所定の値を特定し、各等式は、対応する等式識別子によって識別される。この方法はまた、入来するデータパケットの受信されたバイトを、受信されたバイトに対応する最小項と同時に比較して、最小項生成器で最小項の比較結果を生成するステップを含む。この方法は、複数の等式コアモジュールから複数のフレームタグを同時に生成するステップをさらに含む。各等式コアモジュールは、対応する選択された等式に対する対応する等式識別子と、最小項の比較結果とに基づき、対応するフレームタグを同時に生成するよう構成される。最小項と多数の等式コアモジュールとを同時に比較することにより、入来するデータパケットをリアルタイムで確実に評価することができ、入来するデータパケットをバッファする必要性が減じられ、したがって、ネットワークスイッチポートの全体コストが減じられる。
【0014】
この発明のさらなる利点および新規の特徴の、或る部分は以下の説明に述べられるであろうし、或る部分は以下の説明を考察することによって当業者に明らかになるか、この発明を実施することによって認識されるであろう。この発明の利点は、前掲の請求項において特に示された手段および組合せによって実現され、達成され得る。
【0015】
同じ参照番号表示を有する要素が全体にわたって同じ要素を示す、添付の図面を参照する。
【0016】
【発明を実施するための最良のモード】
図1は、イーサネット(R)(IEEE802.3)ネットワーク等のパケットスイッチネットワーク10を示すブロック図である。パケットスイッチネットワークは、ネットワークステーション14間でのデータパケットの通信を可能にする、集積された(すなわち、シングルチップの)マルチポートスイッチ12を含む。各ネットワークステーション14、たとえばクライアントワークステーションは、典型的に、IEEE802.3プロトコルに従ってデータパケットを10Mbpsまたは100Mbpsで送受信するよう構成される。集積されたマルチポートスイッチ12の各々は、ギガビットのイーサネット(R)リンク16によって相互接続され、サブネットワーク18a、18b、および18c間でのデータパケットの転送を可能にする。したがって、各サブネットワークは、スイッチ12と、関連する群のネットワークステーション14とを含む。
【0017】
各スイッチ12は、メディアアクセス制御(MAC)モジュール22とパケット分類モジュール24とを含むスイッチポート20を含む。MACモジュール20は、IEEE802.3uプロトコルに従い、10/100Mbpsの物理層(PHY)トランシーバ(図示せず)を介して関連するネットワークステーション14とデータパケットの送受信を行なう。各スイッチ12はまた、受信されたデータパケットに対してフレーム転送判断を行なうよう構成されたスイッチファブリック25を含む。特に、スイッチファブリック25は、イーサネット(R)(IEEE802.3)ヘッダ内の発信元アドレス、宛先アドレス、およびVLAN情報に基づいて、レイヤ2スイッチング判断を行なうよう構成される。スイッチファブリック25はまた、イーサネット(R)パケット内のIPデータパケットの評価に基づいて、選択的レイヤ3スイッチング判断を行なうよう構成される。
【0018】
図1に示されるように、各スイッチ12は、関連するホストCPU26と、バッファメモリ28、たとえばSSRAMとを有する。ホストCPU26は、スイッチファブリック25のプログラミングを含む、対応するスイッチ12の動作の全体を制御する。バッファメモリ28は、スイッチファブリック25が、受信されたデータパケットに対する転送判断を処理している間に、対応するスイッチ12に用いられてデータフレームを記憶する。
【0019】
上述のとおり、スイッチファブリック25は、レイヤ2スイッチング判断およびレイヤ3スイッチング判断を行なうよう構成される。レイヤ3スイッチング判断の利用可能性は、サブネットワーク18a内のエンドステーション14が、サブネットワーク18b、18c、またはその両方内の選択されたネットワークステーションにeメールのメッセージを送信したいときに、特に有効となり得る。レイヤ2スイッチング判断しか利用できない場合、スイッチ12aのスイッチファブリック25は特定の宛先アドレス情報なしにeメールのメッセージをスイッチ12bおよび12cに送信し、スイッチ12bおよび12cはそれらのポートのすべてを溢れさせてしまうだろう。そうでなければ、スイッチ12aのスイッチファブリック25はeメールのメッセージをルータ(図示せず)に送らなければならず、そのことにより、さらなる遅延を招くであろう。スイッチファブリック25がレイヤ3スイッチング判断を用いることにより、スイッチファブリック25は、高度な転送判断を含む、パケットの扱い方について、さらに、パケットをビデオまたは音声等の待ち時間に敏感な適用例用の高い優先順位のパケットと考えるべきであるかどうか、といったインテリジェントな判断を行なうことができる。スイッチファブリック25がレイヤ3スイッチング判断を用いることにより、スイッチ12aのホストCPU26は、スイッチ12bのIPアドレスに対応するIPアドレスを有するメッセージを送ることによって、別のスイッチ、たとえばスイッチ12bを遠隔にプログラムすることもできる。すなわち、スイッチ12bは、スイッチ12bにアドレス指定されたメッセージを検出することに応答して、そのメッセージを対応するホストCPU26に転送し、スイッチ12bをプログラムすることができる。
【0020】
開示された実施例によれば、図1のパケット分類モジュール24は、入来するデータストリームと、入来するデータストリームのデータフォーマットを識別するテンプレートとの多数の同時比較を行なうよう構成される。特に、ホストプロセッサ26のユーザは、或るIPプロトコルを有するデータパケットがスイッチファブリック25によってどのように扱われるべきかを規定するポリシーを特定する。これらのポリシーは、スイッチファブリック25内に、対応するIPプロトコルタイプの各々に対して1組のフレーム転送判断をロードすることによって実現される。したがって、スイッチファブリック25は、HTTPパケットに対して1組のフレーム転送命令を、SNMPパケットに対して別の組のフレーム転送命令を、および高い優先順位のパケット(たとえばビデオ、または音声等)に対して別の組のフレーム転送命令を含むことができる。
【0021】
図2Aおよび図2Bは、パケット分類モジュール24による、1つの等式の2つのテンプレートの同時処理を示す図である。図2Aは等式のパケット分類モジュール24による論理評価を示す。
【0022】
Eq1=M1*M2*M3*M4*(M5+M6+M7+M8)
図2Bは、等式Eq1が最小項メモリ70に実際にどのように記憶されるかを示す。等式Eq1は、4つのテンプレート62a、62b、62c、および62dを含む。テンプレート62aは、最小項M1、M2、M3、M4、およびM5を含み、テンプレート62bは、最小項M1、M2、M3、M4、およびM6を含み、テンプレート62cは、最小項M1、M2、M3、M4、およびM7を含み、テンプレート62dは、最小項M1、M2、M3、M4、およびM8を含む。各テンプレート62は、IPデータパケット32のヘッダに基づいて認識することのできる特定のIPデータフォーマットに対応する。たとえば、テンプレート62aおよび62cはHTTPパケットを識別するよう構成されてよく、テンプレート62bおよび62dはSNMPパケットを識別するよう構成されてよい。特に、HTTPパケットの識別は、それがIPv4フォーマットであり、IP内の生存時間フィールドが1より大きく、IPヘッダ内のプロトコルフィールドがTCPであり、ヘッダチェックサムが正しく、発信元TCPポートが80であるか、または宛先TCPポートが80であると、行なわれる。SNMPパケットの識別は、それがIPv4フォーマットであり、IP内の生存時間フィールドが1より大きく、IPヘッダ内のプロトコルフィールドがTCPであり、ヘッダチェックサムが正しく、発信元TCPポートが25であるか、または宛先TCPポートが25であると、行なわれる。
【0023】
したがって、以下の最小項は、上述の基準のすべてを表わすよう確立され得る。
【0024】
M1=パケットはIPv4フォーマットである
M2=IP内の生存時間フィールドは1より大きい
M3=IPヘッダ内のプロトコルフィールドはTCPである
M4=ヘッダチェックサムは正しい
M5=発信元TCPポートは80である
M6=宛先TCPポートは80である
M7=発信元TCPポートは25である
M8=宛先TCPポートは25である
したがって、テンプレート62aおよび62cはHTTPパケットを識別し、テンプレート62bおよび62dはSNMPパケットを識別する。したがって、等式1(Eq1)は、テンプレート62a、62b、62c、または62dのいずれかが真であると、特定の結果(たとえば、特定された値を有するタグ)がスイッチファブリック25に出力されるべきであると規定する。
【0025】
さらに、最小項M1…M8は、関連するテンプレート62aおよび/または62b内に、入来するデータストリーム内のデータバイトの関連位置に対応する所定の順序で配置される。図3に示されるように、最小項M1は、IPパケット32の第1のバイト(B1)と比較されるよう構成され、最小項M2は、B1に続く、IPパケット32の後のバイト(B2)と比較されるよう構成され、最小項M3は、B2に続く後のバイト(B3)と比較されるよう構成され、以下同様である。したがって、入来するデータストリーム内のデータバイトの関連位置に基づいた順序で最小項を有するテンプレート62を用いることにより、入来するデータストリームと最小項との同時比較を多数行なうことができる。したがって、入来するデータパケットは多数のテンプレートと比較されて、入来するデータパケットのデータフォーマットだけでなく、スイッチファブリック25がどのような処置を取るべきかをも判定することができる。
【0026】
図3は、この発明の一実施例に従った、パケット分類モジュール24を示すブロック図である。図3に示されるように、ネットワークスイッチポート20は、MAC22、受信FIFOバッファ27、ヘッダモディファィア29、およびパケット分類モジュール24を含む。パケット分類モジュール24は、ネットワークスイッチポートフィルタとも称され、ネットワークスイッチポート20において入来するデータパケットをバッファなしで識別(すなわち評価)して、受信されたデータパケットのタイプに基づき、データパケットに対して行なわれるべき処置を特定する多数のタグをスイッチファブリック25に与えるよう構成される。特に、パケット分類モジュール24は、入来するデータパケットを、それぞれのデータフォーマットを識別するよう構成された複数の等式の複数のテンプレートと同時に比較する。パケット分類モジュール24は、入来するデータパケットと複数のテンプレートとの比較に基づき、スイッチファブリック25に与えられるべきタグを同時に生成する。
【0027】
特に、パケット分類モジュール24は、複数のテンプレートから少なくとも1つの合致したテンプレートを検出することにより、入来するデータパケットを識別する比較結果を生成する。次に、パケット分類モジュール24は、どの等式が合致したテンプレートに対応するかを識別して、それらの等式によって特定されたタグを生成する。
【0028】
図3に示されるように、ネットワークスイッチポートフィルタ24は、最小項メモリ70、フレーム識別子72、最小項コントローラ74、複数の等式コアモジュール78a、78b、78c、および78d、等式結果メモリ80、ならびにpi_modインターフェイス84を含む。図3のネットワークポートフィルタはまた、最小項メモリコントローラ81を含む。
【0029】
プロセッサインターフェイスモジュール(pi_mod)82は、生成された最小項をホストCPU26から最小項メモリ70内に転送するために用いられる。
【0030】
最小項メモリ70は、最小項値(たとえばM1、M2、M3等)を記憶するよう構成される。さらに、最小項メモリ70は、最小項メモリコントローラ81により、4つの区分に論理的に細分されるか、または分割され得る。
【0031】
最小項メモリコントローラ81は、最小項メモリ70から最小項値を記憶し、検索するよう構成される。最小項メモリコントローラ81はまた、pi_modインターフェイス84から最小項値を受取り、最小項コントローラ74からのリクエストに応答して最小項値を検索するよう構成される。
【0032】
最小項メモリコントローラ81は、最小項メモリ70を4つの論理区分71a、71b、71c、および71dに論理的に分割するようさらに構成される。最小項メモリコントローラ81は、図5に示される等式識別子フィールド110の2つの最下位ビットに基づいた、各等式の各最小項の位置に基づいて最小項値を記憶するよう構成される。
【0033】
図5は、最小項メモリ70内の最小項構造のデータフォーマットを示す図である。開示された実施例によると、最小項は、等式識別子フィールド110の2つの最下位ビットに基づいた、比較されるべきデータバイトの関連位置に対応する順序で最小項メモリ70に記憶される。したがって、2つの最下位ビットが「00」と特定された、等式の第1のデータバイトと比較されるべき最小項のすべては、最小項メモリ70の論理区分71aの第1の部分内に共に記憶され、その後、第2のデータバイトと比較されるべき最小項が続き、以下同様である。
【0034】
代替的に、最小項は、IPヘッダ内の関連情報だけでなく、比較されるべきデータバイトの関連位置に基づいた順序で記憶されてよい。したがって、最小項は、発信元IPアドレス、宛先IPアドレス、および発信元を提供するデータバイトのシーケンスを、発信元ポートおよび宛先ポートと比較するための順序で記憶されてよい。この場合、IPフレームの始まりにある、関連性のないデータバイトは、最小項メモリ70の始まりに記憶される関連最小項を有さず、最小項メモリ70の効率をさらに高めるだろう。
【0035】
各テーブルエントリ90は、最小項部分と評価部分とを含む。最小項部分は、マスクフィールド(MASK)94、期待データフィールド(EXP_DATA)96、およびオペレータフィールド(OPERATOR)98を含む。最小項メモリ70内のテーブルエントリ90の位置に基づき、最小項コントローラ74は、IPパケットの始まり64に対し、IPパケット32のどのバイトを対応する最小項と比較する必要があるのかを判定することができる。マスクフィールド94は、比較を行なう際に最小項生成器76によって用いられるマスクである。このマスクが1にセットされたビットを有すると、値が比較され、マスク値がフィールド内に0を有すると、比較はドントケア(don’t care)となる。期待データフィールド96は、IPパケット32の関連するデータバイトと比較されるべき期待データを特定する。オペレータフィールド98は、最小項生成器によって行なわれるべき比較のタイプ、たとえば、未満、以下、等しい、より大きい、以上、および等しくない、を特定する。
【0036】
評価部分は、ブランチ部分100、最小項部分の比較が真である場合に対する応答部分(RINP1)102、最小項部分の比較が偽である場合に対する第2の応答部分(RINP0)106、および等式識別子110を含む。ブランチ部分100は、等式内のOR項の順序を特定する。たとえば、図2および図4に示される最小項M1は、そのブランチ部分が00001111にセットされて、等式識別子フィールド110内で特定される等式の最初の4つのブランチが、対応する最小項を含むべきであることを示す。ブランチ部分に対して8つのビットを用いるのは、いかなる所与の等式にも最大8つのブランチがあると仮定したものである。
【0037】
応答部分102は、比較されるデータバイトに対して最小項部分が真であると評価されると行なわれるべき動作を特定する。特に、終了ビット(FIN)は、等式の結果が判定されて最小項の結果が真であると1にセットされる。初期に戻る(BINIT)は、最小項の結果が真であると評価プロセスが初期状態(init)に戻るべき場合に、1にセットされる。たとえば、最小項M1の場合、RINP1のFINビットおよびBINITビットは0にセットされる。なぜなら、最小項の結果が真であれば、さらに比較が必要とされるからである。最小項M5、M6、M7およびM8の場合、RINP1のFINビットは1にセットされる。なぜなら、図2に示されるように、「真」の結果の比較結果が評価の終了となるからである。
【0038】
応答部分106は、比較されるデータバイトに対して最小項部分が偽であると評価されると行なわれるべき動作を特定する。特に、終了ビット(FIN)は、等式の結果が判定されて最小項の結果が偽であると1にセットされる。初期に戻る(BINIT)は、最小項の結果が偽であると評価プロセスが初期状態(init)に戻るべき場合に、1にセットされる。たとえば、最小項M1の場合、図2に示されるように、最小項の結果M1が偽であると等式がINIT状態に戻るように、FINビットは0にセットされ、RINP1のBINITビットは1にセットされる。
【0039】
等式識別子フィールド110は、最小項が対応する等式(または、等式内に1つしかテンプレートがない場合はテンプレート)を識別する。
【0040】
したがって、方程式のコア78a…78dは、特定された等式の中に、入来するデータストリームと合致するテンプレート62を有するものがあるかどうかを判定する。入来するデータストリームと多数のテンプレート62との多数の同時比較に基づき、等式コアモジュール78a…78dは合致する等式を識別し、合致した方程式に対応する適切なタグを生成して、これをスイッチファブリック25に与えることができる。所望であれば、コア78a…78dはまた、ヘッダモデファイア29にコマンドを出力することにより、データをスイッチに転送する前にレイヤ2のヘッダ、レイヤ3のヘッダ、または両方のヘッダを変更する。
【0041】
図3に戻ると、パケット分類器24はまた、受信されたレイヤ2フレームのタイプを識別するよう構成されるフレーム識別子72を含む。特に、受信されたレイヤ2フレームのタイプ(たとえばイーサネット(R)、IEEE802〜3等)を識別することにより、レイヤ2パケット30内のIPパケット32の開始位置64を識別することができる。
【0042】
最小項コントローラ74は、最小項メモリコントローラ82を介し、IPフレーム32の選択されたバイトに対応する最小項メモリ70から最小項をフェッチするよう構成される。最小項コントローラ74はまた、レイヤ2フレームのタイプを特定するフレーム識別子72からフレームタイプ(frm_type)信号を受信することに応答して、開始ポイント64の実際のバイトの位置(byte_location)を特定するよう構成される位置コンバータ82を含む。したがって、最小項コントローラ74は、IPパケットの始まりを検出するのに応答して、IPパケット32の第1のバイト(B1)と比較されるべき最小項のすべて、たとえば、図6の等式Eq1、Eq2、およびEq3に対する最小項M1、M9、およびM14を、最小項メモリコントローラ81にリクエストする。次に、最小項メモリコントローラ81は、4線式シリアルバスを介して、最小項値(M_STRU INFO)を最小項生成器76および等式コアモジュール78a…78dに転送する。
【0043】
最小項生成器76は、最小項コントローラ74によってフェッチされた複数の等式の最小項と、入来するデータストリームの選択されたバイトとの間で実際に最小項の比較を行なう。所与の受信されたいかなるバイトも、最大4つの等式の最小項と比較され得る。しかしながら、最小項生成器76は、対応するバイトの各々に対して最大32個(32)の最小項を比較するようにのみ構成される。したがって、所与の受信されたいかなるバイトに対しても、最小項生成器は最大32個の最小項の比較を行なうことができ、32個の最小項は4つ以下の等式に分配され得る。実際に、最小項生成器76は、4つの最小項生成器76a…76dに論理的に分割され得る。
【0044】
最小項生成器76は、8クロックサイクル毎に一度、MACインタフェース22から転送される、入来するデータパケットの入来するバイトを受信するよう構成される。図6に示されるように、最小項生成器76は、各クロックサイクル中に、受信されたバイトを複数の等式の最小項と比較するよう構成される。
【0045】
図6は、受信されたバイトと、4つの等式に関連する最小項との比較サイクル中にある、図3の最小項生成器76を示す。受信されたバイト120は、ネットワークスイッチポートフィルタ24の8クロックサイクル毎に一度、最小項生成器76に転送されるため、最小項生成器内の比較サイクル126は、ネットワークスイッチポートフィルタ24の8つのクロックサイクルを含む。受信されたバイト120は、クロックサイクル0の124aにおいて最小項生成器76によって受信され、たとえば、等式122a…122dそれぞれの最小項M1、M1、M2、およびM4と比較され、クロックサイクル1の124bにおいて、最小項生成器76は、等式122a…122dそれぞれの最小項M2、M4、M3、およびM4と比較する。これらの比較は、比較サイクル126の終わりまで続く。次の比較サイクル中に、最小項生成器76は、後に入来するデータバイトを、後に入来するデータバイトに関連する最小項と同時に比較する。この態様で、多数の最小項比較が最小項生成器76によって生成されて、等式コアモジュール78a…78dに転送される。
【0046】
図3に戻ると、等式コアモジュール78a…78dは、最小項生成器76から受信された最小項の比較結果と、対応する選択された等式に対する対応する等式識別子とに基づいて、対応するフレームタグを同時に生成するよう構成される。等式コアモジュール78a…78dは、等式識別子フィールドの2つの最下位ビットに基づいて等式を評価する。たとえば、図5の等式122aの等式識別子フィールドは「00」によって特定され、等式122bの等式識別子フィールドは「01」によって特定される。等式コアモジュール78aは、等式122aを評価して、最小項生成器76からの最小項の結果に基づいて対応するフレームタグを生成し、等式コアモジュール78bは、122bを同時に評価して、それに対応するフレームタグを生成する。各等式コアモジュール78a…78dからの結果は、対応する等式結果メモリ80a…80dに記憶される。
【0047】
上に開示された実施例によれば、ネットワークスイッチポートは、データパケットの入来するデータストリームと、対応するプロトコルを識別するよう構成された多数のテンプレートとの多数の同時比較を最小のバッファリングで行なうことのできるフィルタを含む。イーサネット(R)適用例において、バッファリングは1500バイトの大きさを必要とし得る。ネットワークスイッチポートフィルタ24は、フレームタグを並行して同時に生成する多数の等式コアモジュール78a…78dを含むため、ネットワークスイッチポートフィルタ24は、入来するデータパケットのワイヤ速度についていくことができ、入来するデータのバッファリングに対する必要性が減じられる。したがって、大きなFIFOバッファに対する必要性をなくすことにより、ネットワークスイッチポート20の全体のコストが減じられる。さらに、多数の同時比較により、ネットワークスイッチ12は、ネットワークスイッチ内をブロックすることなく100Mbpsおよびギガビットのネットワークに対しレイヤ3スイッチングを行なうことができる。最後に、データが受信される順序での多数の同時比較により、ヘッダ全体が受信された後にしか処理を開始することのできないプログラマブル論理アレイ(PLA)等の代替的スキームとは対照的に、リアルタイムの比較を行なうことができる。
【0048】
この発明を、現時点で最も実用的な好ましい実施例であると考えられるものと共に説明してきたが、この発明が開示された実施例に限定されず、その反対に、前掲の請求項の精神および範囲内に含まれるさまざまな変更例および等価の構成物を包含するよう意図されることが理解されるべきである。
【図面の簡単な説明】
【図1】この発明の一実施例に従った、それぞれのサブネットワーク間でデータパケットをスイッチするための多数のネットワークスイッチを含む、パケットスイッチネットワークのブロック図である。
【図2A】パケット分類モジュール24による、1つの等式の2つのテンプレートの同時処理を示す図である。
【図2B】パケット分類モジュール24による、1つの等式の2つのテンプレートの同時処理を示す図である。
【図3】この発明の一実施例に従った、ネットワークスイッチポートフィルタを含む、図1のネットワークスイッチポートを示すブロック図である。
【図4】ネットワークスイッチポートフィルタ24による最小項の同時処理をさらに詳細に示す図である。
【図5】この発明の一実施例に従った、図3の最小項メモリにおける最小項のテーブルエントリを示す図である。
【図6】受信されたバイトと、4つの等式に関連する最小項との比較サイクル中にある、図3の最小項生成器76を示す図である。
Claims (14)
- 入来するデータパケットを評価するよう構成されたネットワークスイッチポートフィルタであって、
複数の等式の最小項を記憶するよう構成された最小項メモリを含み、各最小項は、前記入来するデータパケットの、対応する選択されたバイトと比較されるための所定の値を特定し、各等式は、対応する等式識別子によって識別され、前記ネットワークスイッチポートフィルタはさらに、
前記入来するデータパケットの受信されたバイトを、前記受信されたバイトに対応する最小項と同時に比較して、最小項の比較結果を生成するよう構成された最小項生成器と、
複数の等式コアモジュールとを含み、各等式コアモジュールは、対応する選択された等式に対する対応する等式識別子と、最小項の比較結果とに基づき、対応するフレームタグを同時に生成するよう構成される、ネットワークスイッチポートフィルタ。 - 各等式の最小項を受取るよう構成された中央処理ユニットインターフェイスと、
各等式の前記対応する等式識別子に基づき、前記最小項メモリに各等式の最小項を記憶するよう構成された最小項メモリコントローラとをさらに含む、請求項1に記載のネットワークスイッチポートフィルタ。 - 前記最小項コントローラは、前記対応する等式識別子の2つの最下位ビットに基づき、前記最小項メモリに各等式の最小項値を記憶するよう構成される、請求項2に記載のネットワークスイッチポートフィルタ。
- 前記最小項生成器は、前記入来するデータパケットの前記受信されたバイトを8クロックサイクル毎に一度受信するようさらに構成される、請求項1に記載のネットワークスイッチポートフィルタ。
- 前記最小項生成器は、前記入来するデータパケットの前記受信されたバイトを、前記受信されたバイトに対応する前記最小項と、等式コアモジュールの数に基づいたクロックサイクル毎に一度、同時に比較するようさらに構成される、請求項4に記載のネットワークスイッチポートフィルタ。
- 前記最小項メモリ内の、記憶された最小項の各々の位置は、レイヤ2パケット内のIPフレームの始まりと関連する、請求項3に記載のネットワークスイッチポートフィルタ。
- 各等式コアモジュールは、前記入来するデータパケットのワイヤ速度で、かつ前記入来するデータパケットの終わりの前に、フレームタグを生成する、請求項1に記載のネットワークスイッチポートフィルタ。
- ネットワークスイッチポートで入来するデータパケットを評価する方法であって、
最小項メモリに複数の等式の最小項値を記憶するステップを含み、各最小項は、前記入来するデータパケットの、対応する選択されたバイトと比較されるための所定の値を特定し、各等式はそれぞれの等式識別子を含み、前記方法はさらに、
前記入来するデータパケットの受信されたバイトを、前記受信されたバイトに対応する前記最小項と同時に比較して、最小項生成器で最小項の比較結果を生成するステップと、
複数の等式コアモジュールから複数のフレームタグを同時に生成するステップとを含み、各等式コアモジュールは、対応する選択された等式に対する対応する等式識別子と、最小項の比較結果とに基づき、対応するフレームタグを同時に生成するよう構成される、方法。 - 中央処理ユニットインターフェイスから前記複数の等式の前記最小項を受取るステップと、
各等式の前記対応する等式識別子に基づき、前記最小項メモリに各等式の最小項を記憶するステップとをさらに含む、請求項8に記載の方法。 - 前記記憶するステップは、それぞれの等式識別子フィールドの2つの最下位ビットに基づき、前記最小項メモリに最小項を記憶するステップを含む、請求項9に記載の方法。
- 前記同時に比較するステップは、
前記最小項生成器により、8クロックサイクル毎に一度、前記入来するデータパケットの前記受信されたバイトを受信するステップを含む、請求項8に記載の方法。 - 前記同時に比較するステップは、前記入来するデータパケットの前記受信されたバイトを、前記受信されたバイトに対応する前記最小項と、等式コアモジュールの数に基づいたクロックサイクル毎に一度、同時に比較するステップをさらに含む、請求項11に記載の方法。
- 前記記憶するステップは、レイヤ2パケット内のIPフレームの関連する始まりに基づき、前記最小項メモリ内に各最小項を位置付けるステップをさらに含む、請求項8に記載の方法。
- 前記同時に生成するステップは、各等式コアモジュールが、前記入来するデータパケットのワイヤ速度で、かつ前記入来するデータパケットの終わりの前に、それぞれのフレームタグを生成するステップを含む、請求項8に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/618,059 US6693906B1 (en) | 2000-07-17 | 2000-07-17 | Apparatus and method for buffer-free evaluation of packet data bytes with multiple min terms |
PCT/US2001/006518 WO2002007391A1 (en) | 2000-07-17 | 2001-02-27 | Apparatus and method for buffer-free evaluation of packet data bytes with multiple min terms |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004504769A true JP2004504769A (ja) | 2004-02-12 |
JP4680478B2 JP4680478B2 (ja) | 2011-05-11 |
Family
ID=24476158
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002513166A Expired - Fee Related JP4680478B2 (ja) | 2000-07-17 | 2001-02-27 | パケットのデータバイトを複数の最小項でバッファなしに評価するための装置および方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US6693906B1 (ja) |
EP (1) | EP1303949B1 (ja) |
JP (1) | JP4680478B2 (ja) |
KR (1) | KR100682645B1 (ja) |
CN (1) | CN1178434C (ja) |
DE (1) | DE60142291D1 (ja) |
WO (1) | WO2002007391A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005235219A (ja) * | 2004-02-18 | 2005-09-02 | Harman Becker Automotive Systems Gmbh | Atapiスイッチ |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6963565B1 (en) * | 2000-08-14 | 2005-11-08 | Advanced Micro Devices, Inc. | Apparatus and method for identifying data packet at wire rate on a network switch port |
US6976134B1 (en) | 2001-09-28 | 2005-12-13 | Emc Corporation | Pooling and provisioning storage resources in a storage network |
US7558264B1 (en) | 2001-09-28 | 2009-07-07 | Emc Corporation | Packet classification in a storage system |
US7707304B1 (en) * | 2001-09-28 | 2010-04-27 | Emc Corporation | Storage switch for storage area network |
US7864758B1 (en) * | 2001-09-28 | 2011-01-04 | Emc Corporation | Virtualization in a storage system |
US7404000B2 (en) * | 2001-09-28 | 2008-07-22 | Emc Corporation | Protocol translation in a storage system |
US7421509B2 (en) * | 2001-09-28 | 2008-09-02 | Emc Corporation | Enforcing quality of service in a storage network |
US20040264479A1 (en) * | 2003-06-30 | 2004-12-30 | Makaram Raghunandan | Method for generating a trie having a reduced number of trie blocks |
US7519995B2 (en) * | 2004-04-19 | 2009-04-14 | Regents Of The University Of California | Programmable hardware for deep packet filtering |
US7529781B2 (en) * | 2004-04-30 | 2009-05-05 | Emc Corporation | Online initial mirror synchronization and mirror synchronization verification in storage area networks |
CN101242344B (zh) * | 2007-02-05 | 2013-03-20 | 财团法人工业技术研究院 | 网络封包分类器与其方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08288950A (ja) * | 1995-04-12 | 1996-11-01 | Kawasaki Steel Corp | セルリレー形交換装置 |
JP2000083055A (ja) * | 1998-09-04 | 2000-03-21 | Hitachi Ltd | ルータ |
JP2000092110A (ja) * | 1998-09-16 | 2000-03-31 | Toshiba Corp | ネットワーク間接続装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5802054A (en) * | 1996-08-15 | 1998-09-01 | 3Com Corporation | Atomic network switch with integrated circuit switch nodes |
EP0960517A1 (en) | 1997-02-11 | 1999-12-01 | Xaqti Corporation | Media access control micro-risc stream processor and method for implementing the same |
US5953335A (en) | 1997-02-14 | 1999-09-14 | Advanced Micro Devices, Inc. | Method and apparatus for selectively discarding packets for blocked output queues in the network switch |
US6430184B1 (en) | 1998-04-10 | 2002-08-06 | Top Layer Networks, Inc. | System and process for GHIH-speed pattern matching for application-level switching of data packets |
-
2000
- 2000-07-17 US US09/618,059 patent/US6693906B1/en not_active Expired - Fee Related
-
2001
- 2001-02-27 EP EP01913189A patent/EP1303949B1/en not_active Expired - Lifetime
- 2001-02-27 KR KR1020037000630A patent/KR100682645B1/ko not_active IP Right Cessation
- 2001-02-27 JP JP2002513166A patent/JP4680478B2/ja not_active Expired - Fee Related
- 2001-02-27 CN CNB018128688A patent/CN1178434C/zh not_active Expired - Fee Related
- 2001-02-27 WO PCT/US2001/006518 patent/WO2002007391A1/en active Application Filing
- 2001-02-27 DE DE60142291T patent/DE60142291D1/de not_active Expired - Lifetime
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08288950A (ja) * | 1995-04-12 | 1996-11-01 | Kawasaki Steel Corp | セルリレー形交換装置 |
JP2000083055A (ja) * | 1998-09-04 | 2000-03-21 | Hitachi Ltd | ルータ |
JP2000092110A (ja) * | 1998-09-16 | 2000-03-31 | Toshiba Corp | ネットワーク間接続装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005235219A (ja) * | 2004-02-18 | 2005-09-02 | Harman Becker Automotive Systems Gmbh | Atapiスイッチ |
Also Published As
Publication number | Publication date |
---|---|
WO2002007391A1 (en) | 2002-01-24 |
KR20030022285A (ko) | 2003-03-15 |
CN1178434C (zh) | 2004-12-01 |
KR100682645B1 (ko) | 2007-02-15 |
JP4680478B2 (ja) | 2011-05-11 |
EP1303949A1 (en) | 2003-04-23 |
DE60142291D1 (de) | 2010-07-15 |
US6693906B1 (en) | 2004-02-17 |
EP1303949B1 (en) | 2010-06-02 |
CN1443411A (zh) | 2003-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4732654B2 (ja) | ネットワークスイッチポート上でデータパケットのタイプをリアルタイムで識別するための装置および方法 | |
US6571291B1 (en) | Apparatus and method for validating and updating an IP checksum in a network switching system | |
US6950434B1 (en) | Arrangement for searching packet policies using multi-key hash searches in a network switch | |
US6574240B1 (en) | Apparatus and method for implementing distributed layer 3 learning in a network switch | |
US6798788B1 (en) | Arrangement determining policies for layer 3 frame fragments in a network switch | |
US6674769B1 (en) | Simultaneous searching of layer 3 policy filter and policy cache in a network switch port | |
US20020167950A1 (en) | Fast data path protocol for network switching | |
EP1329073B1 (en) | Apparatus and method for packet classification | |
US6807183B1 (en) | Arrangement for reading a prescribed location of a FIFO buffer in a network switch port | |
EP1262043A1 (en) | Selective address table aging in a network switch | |
JP4680478B2 (ja) | パケットのデータバイトを複数の最小項でバッファなしに評価するための装置および方法 | |
US6907036B1 (en) | Network switch enhancements directed to processing of internal operations in the network switch | |
US6711165B1 (en) | Apparatus and method for storing min terms in network switch port memory for access and compactness | |
US6778547B1 (en) | Method and apparatus for improving throughput of a rules checker logic | |
US6741594B1 (en) | Arrangement for identifying data packet types from multiple protocol formats on a network switch port | |
US6678272B1 (en) | Apparatus and method using a register scheme for efficient evaluation of equations in a network switch | |
US6728255B1 (en) | Apparatus and method for storing min terms in a network switch port memory for identifying data packet types in a real time | |
US6714542B1 (en) | Apparatus and method for storing min terms in a central min term memory for efficient sharing by a plurality of network switch ports | |
EP1212867B1 (en) | Constructing an address table in a network switch | |
US6885666B1 (en) | Apparatus and method in a network switch for synchronizing transfer of a control tag to a switch fabric with transfer of frame data to a buffer memory | |
US6693908B1 (en) | Apparatus and method for efficient evaluation of equations which generate frame tags in a network switch | |
EP1273139A2 (en) | Method and device for layer 3 address learning |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080129 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110114 |
|
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: 20110125 |
|
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: 20110203 |
|
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: 20140210 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140210 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140210 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |