JP2004056736A - Link switching method and link interface - Google Patents

Link switching method and link interface Download PDF

Info

Publication number
JP2004056736A
JP2004056736A JP2002215243A JP2002215243A JP2004056736A JP 2004056736 A JP2004056736 A JP 2004056736A JP 2002215243 A JP2002215243 A JP 2002215243A JP 2002215243 A JP2002215243 A JP 2002215243A JP 2004056736 A JP2004056736 A JP 2004056736A
Authority
JP
Japan
Prior art keywords
packet
link
counter
storage element
marker
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2002215243A
Other languages
Japanese (ja)
Other versions
JP3988039B2 (en
Inventor
Tomohiko Azuma
我妻 智彦
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2002215243A priority Critical patent/JP3988039B2/en
Publication of JP2004056736A publication Critical patent/JP2004056736A/en
Application granted granted Critical
Publication of JP3988039B2 publication Critical patent/JP3988039B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To carry out a link switching by a marker protocol by means of hardware processing. <P>SOLUTION: This link interface is provided with a packet processing counter 18 for counting packets stored in a transmission queue as a packet count value, a first storage cell 15 to which the packet count value is imparted as a write address for storing a payload of a packet, a second memory cell 16 to which the packet count value is imparted as a write address for storing an identification element of a packet, and a third storage cell 17 to which the identification element is imparted as a write address for storing the packet count value. When a marker response packet is received, a value is read out of the third storage cell 17 with the identification element of the marker response packet as a read address, and reading from the first and second storage cells 15 and 16 is carried out from an address next to the address corresponding to the read value. <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
本発明は、ネットワークデバイス間のリンクを集約する際に用いられるリンク切替方法及びリンクインターフェースに関し、特に、マーカプロトコルによるリンク切り替えの処理をハードウエアで実現するリンク切替方法及びリンクインターフェースに関する。
【0002】
【従来の技術】
近年、ネットワークデバイス間を接続する複数のリンクを集約するリンク集約化が注目を浴びている。リンク集約を行うことにより、例えば、大掛かりなハードウエアの更新を行うことなく実効的なリンク容量を増加させることができ、また、障害が発生したリンクを切り離して正常なリンクのみで通信を行えることから、リンクの可用性を高めることができる。
【0003】
リンク集約の対象となるリンクは、例えば、OSI参照モデルでのレイヤ2(データリンク層)のリンクであり、具体的には、いわゆるイーサネット(R)技術によるリンクである。IEEE802.3adでは、同一のデータレートで動作するイーサネット(R)リンクのリンク集約化が標準化されている。
【0004】
レイヤ2のリンクでは、一般に、伝送されるフレームやパケットに関しての順序制御は行われないから、例えば同一のアプリケーションに属するフレームやパケットについては、到達順序の逆転などが起こらないようにするために同一のリンクを使用するよう、リンクへのフレームやパケットの分配を制御する必要がある。以下の説明においては、この技術分野における通常の用法に基づいて、配送における順序を維持する必要があるトラフィックの集合のことを「対話」と定義する。同じ対話に属するフレームあるいはパケットは、同一のリンクを使って伝送されることになる。
【0005】
ところで、動的な負荷分散上の都合や、ネットワークの物理的構成の変更、いずれかのリンクにおいて障害が発生した場合などにおいて、集約化されたリンクの間でリンクの切替を行うことがある。上述したように同一の対話に属するフレームあるいはパケットは、同一のリンクで伝送する必要があるから、任意のタイミングでリンクを切り替えることはできず、通信中の対話の全フレームの伝送の完了を確認してからリンクの切り替えを行う必要がある。そこで、上述のIEEE802.3adは、マーカプロトコルによるリンク切替を規定している。
【0006】
マーカプロトコルでは、自デバイスから隣接するデバイスに対してあるリンク上で、送信中の対話の全フレームの伝送が完了したときなどに、ーカパケットを送信し、マーカパケットを受信した隣接デバイスはマーカ応答パケットを送り返すこととしており、マーカ応答パケットを自デバイスで受信した時点でリンクの切替を行うことができる。このとき、新たな切替後のリンク上では、新たな対話の通信をそのリンク上で最初から開始するために、マーカパケットを送信したデバイスでは、マーカパケットを送信した以降のパケットから再送を始める必要がある。
【0007】
このようなマーカプロトコルによるリンク切替を実現するために、従来は、キュー内の送信するパケットとそれらを一意的に管理するそれぞれのポインタとの関連付けをソフトウエアによって処理していた。例えば、マーカプロトコルによるリンク切替では、マーカパケットのアドレスをポインタによって管理し、受信したパケットがマーカ応答パケットであるかを判別し、マーカ応答パケットである場合には、リンクの切り替えを行うとともに、送信キューにおける次に送信すべきパケットを表わすポインタをマーカパケットのアドレスの次アドレスに書き替え、書き替えられたアドレスからパケットの再送を開始する処理を、全てソフトウエアで行うようになっていた。そのため、この処理は、ネットワークの性能を向上する上でのボトルネックとなることがある。将来的に、ネットワークトラフィックが急増していき、例えば10ギガビットイーサネット(R)でリンク集約化をさせようとしたときには、このソフトウエアによる処理性能の限界がネットワーク性能の低下に直接つながることが予想される。
【0008】
図1は、リンク集約が行われるネットワークの構成の一例を示している。図1において、デバイスAとデバイスBは、いずれも、リンク1及びリンク2によって接続されたネットワークデバイスである。ここでリンク1とリンク2は互いに集約化されたリンクである。さらに、デバイスAには加入ポートとしてリンク3〜リンクNが設けられており、同様にデバイスBには加入ポートとしてリンクN+1〜リンクMが設けられており、これらのリンク3〜リンクMはいずれも集約化されていないリンクである。
【0009】
以下、説明のために、ネットワークトラフィックはデバイスAからデバイスBへ流れるものとする。リンク1とリンク2は冗長構成のために集約化されており、デバイスAとデバイスBを接続する2本のリンクのうち、リンク1はワーク用(現用系)リンクであり、リンク2はプロテクション用(予備系)リンクであるとする。
【0010】
図2は、このようなデバイスAにおけるデータパケットの送信を行う部分の構成を示している。リンクインターフェース(データパケット送信部)93には、パケットキュー管理部94と、パケットキュー管理部94とリンク1との間に設けられたインターフェース97と、パケットキュー管理部94とリンク2との間に設けられたインターフェース98とを備えている。インターフェース97,98は、物理層でのインターフェース機能を有し、少なくともここではリンクに対する出力機能を有している。パケットキュー管理部94内には、デバイスBに対して転送されるべきパケットを一時的に送信すべき順で格納する出力キュー95と、出力キュー95内のパケットをリンク1及びリンク2のいずれかに振り分けるためのフレームディストリビュータ98と、を備えている。図において、pkt1〜pkt7は、デバイスBへ転送される出力キュー95内のパケットを示している。これらのパケットは、フレームディストリビュータ98によって、それらのパケットを送信するインターフェース97,98のいずれかへ振り分けられることになる。また、必要に応じて、出力キュー95内の適切な位置に、マーカパケットが挿入される。
【0011】
従来のリンクインターフェースでは、出力キュー95やフレームディストリビュータ96での処理や、出力キュー95に対するポインタ管理は、ソフトウエアによって実現されていた。そのようなソフトウエアでの処理にはそれなりの時間を要するため、ネットワークの性能低下という問題を引き起こしやすい。
【0012】
【発明が解決しようとする課題】
上述したように、従来、マーカプロトコルによるリンク切替を実行するリンクインターフェースは、従来は、キュー内の送信するパケットとそれらを一意的に管理するそれぞれのポインタとの関連付けをソフトウエアによって処理していた。そのため、この処理は、ネットワークの性能を向上する上でのボトルネックとなることがあり、ネットワークの性能低下の原因となるおそれがある。
【0013】
今後、ネットワークトラフィックの急増が見込まれ、また、集約化される個々のリンクのデータレートの大きな上昇も見込まれる。リンクインターフェースでの上述した処理をソフトウエアによって実現する場合、その処理は実際にはCPU(中央処理装置)によって行われることになるが、この処理は、CPUにとっては比較的重い処理である。CPUの能力も年々高まっているが、ネットワークトラフィックの増大やリンクのデータレートの上昇ほどにはCPUの能力の向上は見込めないため、リンク集約における性能問題のソフトウエア依存性はますます大きくなると考えられる。
【0014】
そこで本発明の目的は、マーカプロトコルによるリンク切替をハードウエア処理によって実行することによって処理の高速化を図ったリンク切替方法及びリンクインターフェースを提供することにある。
【0015】
【課題を解決するための手段】
本発明のリンク切替方法は、複数のリンクが接続するネットワークデバイスにおいてマーカプロトコル処理によって複数のリンク間でリンク切替を行うリンク切替方法であって、送信キューに格納されているパケットをパケット処理計数カウントによってカウントする段階と、パケット処理計数カウンタの計数値を書き込みアドレスとして第1の記憶素子に与えてパケットの第1の部分を第1の記憶素子に記憶させる段階と、パケット処理計数カウンタの計数値を書き込みアドレスとして第2の記憶素子に与えてパケットの第2の部分を第2の記憶素子に記憶させる段階と、パケットの第2の部分を書き込みアドレスとして第3の記憶素子に与えてパケット処理計数カウンタの計数値を第3の記憶素子に記憶させる段階と、マーカ応答パケットを受信したときに、リンクの切り替えを行うとともに、そのマーカ応答パケットの第2の部分を読み出しアドレスとして第3の記憶素子から値を読み出し、読み出された値に該当するアドレスの次のアドレスから第1及び第2の記憶素子からの読み出しを実行し、第1及び第2の記憶素子からの読み出し内容に応じて、切り替え後のリンクに送信パケットを送出する段階と、を有する。
【0016】
本発明のリンクインターフェースは、複数のリンクが接続するネットワークデバイスに設けられ、マーカプロトコル処理によって複数のリンク間でリンク切替を行うリンクインターフェースであって、送信キューに格納されているパケットをカウントするパケット処理計数カウンタと、パケット処理計数カウンタの計数値が書き込みアドレスとして与えられ、パケットのペイロード部分を記憶する第1の記憶素子と、パケット処理計数カウンタの計数値が書き込みアドレスとして与えられ、パケットの識別要素部分を記憶する第2の記憶素子と、パケットの識別要素部分が書き込みアドレスとして与えられ、パケット処理計数カウンタの計数値を記憶する第3の記憶素子と、第1の記憶素子から読み出されるペイロード部分と第2の記憶素子から読み出される識別要素部分とを組み合わせて送信パケットを組み立てるアセンブリ部と、リンクの切り替えを行い、選択されたリンクに送信パケットを送出するリンク切替部と、を有し、マーカ応答パケットを受信したときに、そのマーカ応答パケットの識別要素部分を読み出しアドレスとして第3の記憶素子から値を読み出し、読み出された値に該当するアドレスの次のアドレスから第1及び第2の記憶素子からの読み出しを実行する。
【0017】
本発明では、送信キューに格納されているパケットをパケット処理計数カウンタでカウントするとともに、このパケット処理計数カウンタの計数値を書き込みアドレスとして第1及び第2の記憶素子にそれぞれパケットの第1及び第2の部分を記憶させるとともに、パケットの第2の部分を書き込みアドレスとしてパケット処理計数カウンタの計数値を第3の記憶素子に記憶させている。ここで第2の部分とは、典型的には、宛先アドレスなどを含むパケットの識別要素部分であり、第1の部分とは、典型的には、パケットのペイロード部分、すなわちパケットのうち識別要素部分以外の部分である。
【0018】
マーカプロトコルでは、対向デバイスからマーカ応答パケットを受信した時点で、そのマーカ応答パケットの契機となったマーカパケットの送信時点からのパケットを再送する必要があるが、本発明では、第1及び第2の記憶素子には送信パケットを第1及び第2の部分に分けて格納し、同時に、第3の記憶素子には、パケットの第2の部分をキー(検索鍵)としてパケット処理計数カウンタの計数値が検索できるように、パケットの第2のキーを書き込みアドレスとしてパケット処理計数カウンタの計数値を記憶させる。
【0019】
一般に、マーカパケットとマーカ応答パケットの第2の部分は同一であるから(これは、マーカプロトコルにおいてマーカパケットとマーカ応答パケットに対し、宛先アドレスとして所定のグローバルに一意なマルチキャストアドレスを用いることになっていることによる)、マーカ応答パケット受信時にその第2の部分を取り出して読み出しアドレスとして第3の記憶素子にアクセスすることにより、第3の記憶素子からは、マーカパケット送出時のパケット処理計数カウンタの計数値が出力される。そこで本発明では、この読み出された計数値をアドレスとしたときにそのアドレスの次のアドレスから、第1及び第2の記憶素子からのデータの読み出しを行っている。その結果、第1及び第2の記憶素子からは、マーカパケットを送信した直後のパケットが読み出されることになり、これらを切り替え後のリンクに送信パケットとして送出することによって、マーカパケットを送信した時点からのパケットの再送が行われることになる。
【0020】
以上のパケット再送の処理は、パケット計数処理カウンタ、第1乃至第3の記憶素子といったハードウエアだけで実行されている。すなわち、マーカプロトコル処理に伴なうキュー(第1及び第2の記憶素子)のポインタ管理をハードウエアで実現できており、本発明のリンク切替方法では、リンク切替に係る再送処理をハードウエアで実現することができる。
【0021】
さらに、本発明のリンクインターフェースでは、従来のリンクインターフェースにおけるフレームディストリビュータの代わりに、マーカ応答パケットの受信に応じて切り替わるリンク切替部を使用しており、このリンク切替部の切替動作には、ソフトウエアによる処理の介入が必要ない。結局、本発明のリンクインターフェースでは、上述のリンク切替方法における場合と同様に、リンク切替に係る再送処理をハードウエアで実現することができるともに、リンク切替動作自体もハードウエアで実現することができ、高速処理が可能となり、ネットワークの性能低下を回避できる。
【0022】
【発明の実施の形態】
次に、本発明の好ましい実施の形態について、図面を参照して説明する。
【0023】
図3は、本発明の実施の一形態のリンクインターフェース部を構成を示す回路図である。このリンクインターフェース10は、集約化されたリンクと接続するネットワークデバイスにおいて、集約リンクに対してパケットを一時的に格納(キュー)するとともに送出する機能を有するものである。図2に示した従来の構成におけるパケットキュー管理部94に対応するものであるが、図3に示したようにハードウエア処理を行うように構成されている点で、図2に示したものと相違している。
【0024】
ここでのネットワークデバイスとは、典型的にはOSI参照モデルにおけるレイヤ2の処理を行うものである。このようなネットワークデバイスととしては、例えば、上位装置であるサーバ装置(サーバコンピュータ)内に組み込まれるいわゆるネットワークインターフェースカード(NIC)や、レイヤ2でのスイッチを行うスイッチングハブや、ルーターなどにおいて各入出力ポートごとに設けられるレイヤ2のインターフェースなどが挙げられる。
【0025】
以下の説明では、図1に示した場合と同様に、それぞれネットワークデバイスであって離れた場所に設けられているデバイスAとデバイスBとがネットワークによって接続しており、デバイスAとデバイスBとの間の2本のリンク(リンク1とリンク2)が集約化されており、本実施形態のリンクインターフェースは、少なくともデバイスAに搭載されるものとする。すなわち以下では、図1に示すネットワーク構成において、自デバイスがデバイスA、対向デバイスがデバイスBに対応するものとして説明を行う。また、リンク1やリンク2が相互にデータレートが等しいイーサネット(R)のリンクであるものとする。したがって、リンク上で転送されるパケットには、宛先アドレスや送信元アドレスとして、MAC(Media Access Control)アドレスが含まれることになる。このようなパケットは、1つのパケット内に、大別すると、識別要素とペイロードとを含んでおり、後述するアセンブリ部において識別要素とペイロードとを組み合わせることによって組み立てられるものである。識別要素とは、宛先アドレスや送信元アドレスなど、パケット自体を識別し、あるいはネットワークデバイスにおいてパケットの転送を制御するために使用される情報要素である。ペイロードとは、識別要素以外の情報であり、例えば、パケットが転送すべきデータなどである。
【0026】
リンクインターフェース10は、出力パケットをリンク1とリンク2のいずれかに出力するリンク切替部11と、識別要素とペイロードとを組み立ててパケットとしリンク切替部11に出力するアセンブリ部12と、このリンクインターフェース10に与えられるペイロードを一時的に保持する記憶素子e 15と、このリンクインターフェース10に与えられる識別要素を一時的に保持する記憶素子f 16と、パケット処理計数カウンタ18と、パケット処理計数カウンタ18の計数値を時間軸上の並びとして保持する記憶素子g 17と、カウンタ19とを備えている。リンクインターフェース10自体を構成するものではないが、リンクインターフェース10の周辺回路部分として、図3には、対向するネットワークデバイスから受信したパケットを一時的に格納する受信バッファ13と、受信パケットがマーカ受信パケットである場合にそのマーカ受信パケットのパケットとしての識別要素を取り出すセグメント部14と、このネットワークデバイス全体のホスト(CPU)20とが描かれている。また、リンクインターフェース10に対しては、リンク1あるいはリンク2に対して送出するパケットを構成するために、識別要素とペイロードとが、このネットワークデバイスに備えられた送信キュー25から供給されている。また、リンク1、リンク2に対する物理的なインターフェースとして、リンク切替部11には物理インターフェース(I/F)部25,26がそれぞれ接続している。物理インターフェース部25,26は、リンクを構成する物理的な信号媒体(ケーブル、光ファイバ)などとのインターフェースとなるものである。
【0027】
ここで、このリンクインターフェースにおける識別要素について、詳細に説明する。ここでは宛先アドレスなどの識別要素を記憶素子g 17にアドレスとして与えると説明したが、識別要素として宛先アドレスの全体を使用するものとすると、この宛先アドレスがMACアドレスであればMACアドレスは48ビット長(6オクテット)であることから、識別要素も最低48ビット長ということになる。リンク集約の実装によっては、宛先アドレスと送信元アドレスの両方を識別要素として使用する場合もあり、その場合は識別要素は96ビット長となる。このような長いビット長の識別要素を記憶素子におけるアドレスとして使用すると、記憶素子には極めて大きな記憶容量やアドレス空間が必要となり、現実的でない。
【0028】
このリンクインターフェースでは、以下の説明から明らかになるように、マーカパケットとマーカ応答パケットが同じ識別要素を持つこと、及び、マーカパケットとマーカ応答パケットとが他の種類のパケットとは異なる識別要素を持つことを利用して、リンク切替を行っている。そこで、このリンクインターフェースにおいては、以上のような観点から、リンク集約による使用リンクの分散やリンク切替を行うために最小限必要なものを識別要素とし、それ以外のものペイロードとすることができる。そこで、例えば、連続する“0”の部分を省略するとか、宛先アドレスの下位数ビットと上位数ビットとを組み合わせたものを用いるなどして、記憶素子として現実的な容量の範囲内に収まるように、記憶素子g 17にアドレスとして与えられる識別要素としては、数ビットから十数ビットとビット長を短くしたものを使用し、宛先アドレスの残りのビットを含めてパケットの他の部分をペイロードとみなすようにする。
【0029】
このリンクインターフェース10では、送信すべきパケットについて、ペイロードと識別要素とを分けてそれぞれ記憶素子e 15と記憶素子f 16に一時的に記憶させ、これら分離して記憶されたペイロードと識別要素とをアセンブリ部12において組み合わせて送信パケット(データパケットあるいはマーカパケット)に組み立て、リンク切替部11を介してリンク1またはリンク2に出力している。すなわち、記憶素子e 15及び記憶素子f 16は、リンク切替後のパケット再送信に備えて、リンク上に送出したパケットを一時的に格納するバッファとして機能する。そして、記憶素子g 17には、パケットの識別要素からその識別要素のパケットがどのタイミングであるいは何番目に送出されたパケットであるかを知ることができるようにするため、識別要素をアドレスとし、パケット処理計数カウンタ18の計数値をデータとして格納するようにしている。
【0030】
パケット処理計数カウンタ18は、送信キュー25に格納されているパケットがこのリンクインターフェースに送り込まれるたびに1だけカウントアップする動作を行っている。パケット処理計数カウンタ18の出力すなわち計数値は、記憶素子e 15や記憶素子f 16に対して書き込み時のアドレスとして与えられ、また、記憶素子g 17に対しては格納すべきデータとして与えられる。
【0031】
リンクインターフェース10においては高速の処理が要求され、またパケットの入出力や識別要素やペイロードの入力は非同期に発生し得るので、この実施形態のリンクインターフェース10では、記憶素子15〜17としてそれぞれデュアルポート素子(デュアルポートメモリ)を使用している。中でも、記憶素子e15及び記憶素子f 16には、デュアルポート素子を用いることが好ましい。図中、Aとあるのはアドレス入力端子を示し、Dとあるのはデータの入力端子または出力端子を示している。記憶素子e 15の入力側のポートをポートe1、出力側のポートをポートe2とする。ポートe1のアドレスにはパケット処理カウンタ18の計数値が入力し、データにはペイロードが入力する。ポートe2のアドレスにはカウンタ19の計数値が入力し、データはアセンブリ部12に出力される。記憶素子f 16の入力側のポートはポートf1であり、出力側のポートはポートf2であり、ポートf1のアドレスにはパケット処理カウンタ18の計数値が入力し、データには、記憶素子e 15に記憶されるペイロードに対応する識別要素(例えば宛先アドレスなど)が入力し、ポートe2のアドレスにはカウンタ19の計数値が入力し、データはアセンブリ部12に出力される。記憶素子g 17の入力側のポートはポートg1であり、出力側のポートはポートg2であり、ポートg1のアドレスには識別要素が入力し、データにはパケット処理カウンタ18の計数値が入力し、ポートe2のアドレスにはセグメント部14から出力されるマーカ応答パケットの識別要素が入力し、データはカウンタ19に出力される。後述するように、リンク切替ではない通常運転時のパケット送信の場合には、ポートe2とポートf2のアドレスには、カウンタ19は、パケット処理計数カウンタ18の計数値をそのまま透過して出力する。
【0032】
上述したように受信バッファ13は、対向するデバイスから送られてくるパケットを受信するバッファであり、もし受信パケットが自デバイス宛のパケットであれば、自デバイス宛パケット処理部へ渡す。また受信したパケットが隣接デバイスからのマーカ応答パケットであれば、セグメント部14へパケットを渡す。
【0033】
セグメント部14は、受信したマーカ応答パケットの識別要素を記憶素子g 17のポートg2のアドレスとして渡す。これによって記憶素子g 17のポートg2から、データとして、自デバイスがマーカパケットを送信したときのパケット計数値を読み出すことができるようになる。これは、マーカプロトコルにおいて、マーカパケットとマーカ応答パケットとでは、宛先アドレス等の識別要素が同じであることによる。IEEE802.3adによれば、マーカパケットもマーカ応答パケットも、宛先アドレスとして、グローバルに一意なマルチキャストアドレスである「01−80−C2−00−00−02」(16進表示)を持つことになっている。また、セグメント部14は、マーカ応答パケットを受信した場合、受信した旨の通知をカウンタ19とホスト20に対して行うようになっている。これによってホスト20は、カウンタ19に対して、ポートg2からの出力の値に1を加算したものを取り込むように命令を与える。
【0034】
次に、カウンタ19の構成について、図4を用いて説明する。
【0035】
カウンタ19は、リンク切替ではない通常運転時には、パケット処理計数カウンタ18のカウンタ出力値をそのままポートe2及びポートf2のアドレス端子に出力し、自デバイスが対向デバイスからマーカ応答パケットを受信した時点で、記憶素子g 17のポートg2から、自デバイスがマーカパケットを送信したときのパケット計数値を読み出してこれに1を加算し、加算後の値からカウントアップを開始してそのカウンタ値をポートe2及びポートf2のアドレス端子に出力するものである。カウンタ19のカウントアップによるカウンタ値がパケット処理計数カウンタ18が出力しているカウンタ値と一致した時点で、カウンタ19は、リンク切替でない通常運転時のモードに復帰し、パケット処理計数カウンタ18のカウンタ出力値をそのまま出力するように切り替わる。なお、カウンタ19がポートe2及びポートf2のアドレスのためにカウントアップを行っている期間中に自デバイスがマーカパケットを送信する場合もありうるが、その場合には、カウンタ19は、そのカウントアップを停止する。一般に、送信キュー25からのこのリンクインターフェース10へのパケット転送速度は、各リンク上でのパケット転送速度より低く抑えられるが、カウンタ19については、例えば、物理インターフェース部26,27におけるフロー制御などにより、リンク上にパケットが送出可能になったら即座にカウントアップを行い、リンク上になるべく早く次のパケットが送出されるようにすることが好ましい。少なくとも、カウンタ19の計数率(すなわちリンク切替に伴なう再送処理を行っている際のリンク上でのパケット転送速度)は、送信キュー25からパケットを取り込む際における転送速度よりも大きい必要がある。そうでないと、再送処理のための送信バッファである記憶素子e 15及び記憶素子f 16がバッファオーバーフローになってしまう。
【0036】
このようなカウンタ19は、マーカ応答パケットの受信をマーカ応答受信d1として通知されたときにカウントアップ動作を行うカウント部21と、カウント部21の出力とパケット処理計数カウンタ18のカウンタ出力値のいずれかを選択してこのカウンタ19の出力i1とするとともに、カウント部21でのカウンタ値とパケット処理計数カウンタ18のカウンタ出力値とを比較する比較・選択部22と、ホスト20からの命令j1に応じ、記憶素子g 17のポートg2のデータ出力を取り込んで1を加算し、加算結果をカウンタ部21に転送する加算部23と、を有している。
【0037】
次に、このリンクインターフェース10の動作について説明する。
【0038】
まず、自デバイスの送信キュー25内に格納されているパケットが、1つずつ、このリンクインタフェース10に送り込まれるものとする。もちろん、通常のOSIレイヤ2のデバイスと同様に適切なフロー制御が行われており、リンクインターフェース10での処理能力を超えてパケットが流入することはないようになっている。特に、リンク切替に伴うパケット再送を行っている期間中は、送信キューから送り込まれたパケットの送信よりも、リンクインターフェース10中に格納されているパケットの再送を優先して実行するので、リンクインターフェース10内でのバッファオーバーフローが発生しないように、リンク上に送出される単位時間あたりのパケット数よりも、リンクインターフェース10に送り込まれる単位時間あたりのパケット数が小さくなるようにする。
【0039】
図5は、リンク切替前後でのリンクインターフェース10の動作を示す図である。ここでは、パケットpkt1からパケットが順次、リンクインターフェース10に取り込まれるものとし、3番目のパケットpkt3がマーカパケット(識別要素が「m」)であるとする。リンク1がワーク用リンクであり、リンク2がプロテクション用リンクであるとして、ここでのリンク切替がリンク1からリンク2への切替であるとする。パケットpkt1に対するパケット処理計数カウンタ18の計数値がn−2(ということは、マーカパケットに対応するパケット処理計数カウンタ18の計数値がn)であるとする。また、8番目のパケットpkt8を送信したタイミングでマーカ応答パケットを受信したものとする。
【0040】
送信キュー25からのパケットは、それぞれ識別要素と、識別要素以外のペイロード部分とに分けられて与えられ、識別要素は記憶素子f 16にポートf1を介して記憶され、ペイロード部分は記憶素子e 15にポートe1を介して記憶される。この時、ポートe1及びポートf1のアドレス端子には、パケット処理計数カウンタ18の計数値が入力するようにする。パケット計数処理カウンタ18は、送信キュー25からパケットがリンクインターフェース10に取り込まれるごとにカウントアップするから、送信キュー25からパケットが1つ取り込まれると、そのときのパケット処理計数カウンタ18の計数値をアドレスとして、そのパケットのペイロードが記憶素子eに格納され、識別要素が記憶素子fに格納される。またこのとき、そのパケットの識別要素が記憶素子g 17のポートg1に書込みアドレスとして与えられて、パケット処理カウンタ18の計数値が記憶素子gに格納される。ここでは、アドレスとデータの関係が、記憶素子g17のポートg1と記憶素子f 16のポートf1では、ちょうど逆転している。また、記憶素子e 15及び記憶素子f 16には、各パケット(ペイロード及び識別要素)が時間順に記憶されることになる。
【0041】
図5では、時間の経過に伴うパケット処理計数カウンタの計数値の変化、各時点で送信キューからリンクウインターフェース10に取り込まれるパケット、その時点で記憶素子e及び記憶素子fに書き込まれるデータ、カウンタ19の出力値、その時点での記憶素子e及び記憶素子fから読み出されるデータ、リンク上に送出されるパケット及び使用リンクが示されている。カウンタ19の出力値において値の前に「→」が付されているものは、パケット処理計数カウンタ18の出力値がそのままカウンタ19の出力値となっていることを示している。各記憶素子e〜gとしてデュアルポートメモリを利用しているとしているので、図では、同じタイミングで同じ記憶素子に対して書き込みと読み出しの両方が行われるように示されているが、実際には、書き込みと読み出しのタイミングは多少ずれていてもよい。ここでS(pkt…)とあるのは、pkt…のペイロードを示しており、R(pkt…)とあるのは、pkt…の識別要素を示している。パケット処理計数カウンタ18の計数値は、時間の経過とともにn−2から1つずつカウントアップしており、その計数値が書き込みアドレスとして、記憶素子e及び記憶素子fに、各パケットのペイロードと識別要素とが書き込まれることが分かる。上述したように記憶素子g 17においては、各パケットの識別要素が書き込みアドレスとして与えられてパケット処理計数カウンタ18の計数値が格納されるから、記憶素子g 17の記憶内容は、9番目のパケットpkt9を送信キュー25から受け取った時点では、図6(a)に示すようになる。なお、各パケットの識別要素の値は、パケットの入力順とは無関係であるから、アドレス順で見た場合、データであるパケット処理計数カウンタ18の計数値は、順番には並ばない。ここで、マーカパケットの識別要素mをアドレスとして、マーカパケット送信時のパケット処理計数カウンタ18の計数値nが記憶されていることに注意する必要がある。なお、図6(b)は、記憶素子eと記憶素子fの各アドレスに何が格納されるかを示しており、以下の処理を経た後の最終的な記憶内容を示している。
【0042】
リンク切替が発生していない段階では、前述したように、ポートe1及びポートf1側でそれぞれ送信パケットの識別要素とペイロードを記憶するためのアドレスとして、パケット処理計数カウンタ18のカウント値を使用する。パケット処理計数カウンタ18のカウンタ値は、カウンタ19にも入力される。ここではリンク切替がまだ発生していないとしているから、カウンタ19は通常運転時の動作モードであり、パケット処理計数カウンタ18のカウンタ値がそのままカウンタ19の出力i1となる。この出力i1が、記憶素子e 15のポートe2及び記憶素子f 16のポートf2のアドレスとして渡される。したがって、記憶素子e 15のポートe2からは、送信するパケットのペイロードが読み出され、記憶素子f 16のポートf2からは、パケットの識別要素が読み出され、それらがアセンブリ部12で結合されて1つの送信パケットが生成される。この送信パケットは、リンク切替部11に転送され、使用するリンク(ここではリンク1)へ転送される。
【0043】
図5に示すものでは、パケット計数処理カウンタの計数値がn−2であるタイミングで、パケットpkt1が送信キュー25から読み込まれ、そのペイロードS(pkt1)と識別要素R(pkt1)がそれぞれ記憶素子eと記憶素子fのアドレスn−2に格納され、このとき、カウンタ19の出力はパケット計数処理カウンタの計数値であるから、記憶素子eと記憶素子fからペイロードS(pkt1)と識別要素R(pkt1)が読み出されて、アセンブリ部12でパケットpkt1として組み立てられ、リンク1上に送出される。またこのとき、記憶素子g 17のアドレスR(pkt1)にデータとしてn−2が書き込まれる。結局、送信キュー25から読み込まれたパケットpkt1は、記憶素子e 15及び記憶素子f 16のアドレスn−2に格納されるものの、実質的にはそのままリンク上に送出されることとなる。次のパケットpkt2についても同様である。
【0044】
次に、リンクの切替作業が発生したとする。リンクの切替作業が発生すると、従来の技術で述べたものと同様に、現在使用しているリンクを介し、隣接するネットワークデバイスへマーカパケットを転送する。パケット処理計数カウンタ18の計数値がnのときにマーカパケットが送信され、このマーカパケットの識別要素は識別要素mである。マーカパケットを送信した場合、カウンタ19は、陸切替のための後述するポートe2及びポートf2に対するカウント動作を行っていればそのカウント動作を停止する。カウント動作を行っていない場合には、そのまま、カウント動作を行わないままとする。なお、パケット処理計数カウンタ18の計数値を出力している場合には、図示するようにそのまま出力を続行してもよい。その結果、マーカ応答パケットを受信するまでに、切替前のリンクであるリンク1上に、パケットpkt4から数個のパケットが送出される。もっとも、これらのパケットは、隣接デバイス側で破棄されるものであるから、パケット処理計数カウンタ18の計数値を出力している場合にその出力を停止するようにしてもよい。
【0045】
図5に示すものでは、パケット計数処理カウンタ18の計数値nのタイミングでマーカパケットが読み込まれ、上述したパケットpkt1の場合と同様に、このマーカパケットも記憶素子e 15及び記憶素子f 16のアドレスnに格納されるとともに、リンク1上に送出される。また、記憶素子g 17のアドレスm(マーカパケットの識別要素)には、このときのパケット計数処理カウンタ18の計数値nが格納される(図6参照)。マーカパケットの次のパケットであるパケットpkt4についても、pkt1の場合と同様に、記憶素子e 15及び記憶素子f 16のアドレスn+1に格納されるとともに、リンク1上に送出される。また、記憶素子g 17のアドレスR(pkt4)には、このときのパケット計数処理カウンタ18の計数値n+1が格納される。以下、マーカアドレス送信後のパケットが、送信キュー25から順次読み込まれてリンク1上に送出されるとともに、記憶素子e 15及び記憶素子f 16の連続するアドレス領域に順番に格納されていくことになる。
【0046】
ここで、リンク1がワーク用リンクであり、リンク2がプロテクション用リンクであって、リンク1からリンク2へのリンク切替であるとしているから、マーカパケットは、リンク1を介して隣接デバイス(対向デバイス)に転送されることになる。隣接デバイスは、リンクの切替要求が来たことを認識すると、マーカパケットを送信したデバイスに対し、マーカ応答パケットを返送して、リンク切替要求を認識したことを通知する。ここでは、8番目のパケットpktを送出した時点(8番目のパケットpkt8を送信キュー25から受け取って上述したような各処理が終了した時点)で、マーカ応答パケットは受信バッファ13で受け付けられ、セグメント部14へ渡される。もし、受信バッファ13が受け付けたパケットが通常の自デバイス宛パケットであれば、これは受信バッファ13から自デバイス宛パケット処理部へと渡される。
【0047】
マーカ応答パケットは、セグメント部14において、宛先アドレス等のパケットの識別要素を取り出され、これは記憶素子gのポートg2のアドレスとなる。マーカプロトコルでは、マーカパケットもマーカ応答パケットも同一の宛先アドレスを有することになっているから、これらのパケットの識別要素も相互に同じであって、上述した識別要素mである。なお、マーカパケットもマーカ応答パケットも単一のリンク内だけに転送が制限されるものであるから、通常のパケット配送におけるような宛先の指定は本来不要なものであり、その代わりに、マーカパケットあるいはマーカ応答パケットであることを示す特殊な宛先アドレスが付与されている。
【0048】
識別要素mがアドレスとして記憶素子g 17のポートg2に渡されると、記憶素子g 17はデュアルポート素子であることから、図6に示したように、ポートg2からデータとしてパケットカウント値nが読み出される。このパケットカウント値nはマーカパケットを送信したときのパケット計数処理カウンタ18の計数値である。読み出されたカウント値nは、カウンタ19に渡される。また、セグメント部14は、マーカ応答パケットを受信した際に、マーカ応答の受信の通知をカウンタ19とホスト20に対して行う。
【0049】
カウンタ19は、セグメント部14からの通知をマーカ応答受信d1として受け取る。またホスト20は、カウンタ19に対して、記憶素子g 17のポートg2の出力g1を取り込んでその値を「+1」だけインクリメントするように命令する。これをホスト命令j1とする。この命令j1を受けたカウンタiは、ポートg2の出力g1を取り込み、加算部23によって出力g1に1を加算し、加算後の値すなわち「n+1」をカウント部21に転送し、カウント部21はこの「n+1」の値からカウントアップしていく。また、マーカ応答受信d1を受け取ったことにより、比較・選択部22は、パケット処理計数カウンタ18からの入力をマスクし、カウント部21での計数値を、カウンタ19の出力i1とする。この出力i1が記憶素子e 15のポートe2及び記憶素子f 16のポートf2でのアドレスとなる。これらの記憶素子15,16は上述したようにデュアルポート素子であり、カウンタ19の出力i1は「n+1」から計数されるため、記憶素子e 15のポートe2と記憶素子f 16のポートf2からのデータとして、マーカパケット送信以降のパケットのペイロード及び識別要素がそれぞれ新たに読み出されることになる。これらはアセンブリ部12(図3参照)で結合され送信パケットとなる。また、マーカ応答パケットを受信した時点で、セグメント部14からリンク切替部11へリンク切替の通知が伝達されているから、アセンブリ部12で生成された送信パケットは、リンク切替部11での新たな切替後のリンク上に転送される。リンク1からリンク2への切替がなされているのであれば、この送信パケットはリンク2上に転送される。これにより、マーカパケット送信した直後のパケットから、リンク2上に転送されることとなり、対話に支障をきたすことなく、リンク切替が行われたことになる。
【0050】
なお、カウンタ19内の比較・選択部22は、マーカ応答パケットを受信した以降のカウント部21でのカウンタ値とパケット処理計数カウンタ18から入力するカウンタ値とを常に比較しており、両者が一致した場合に切り替わり、それ以降は、次にマーカパケットの送信やマーカ応答バケットの受信があるまで、パケット処理計数カウンタ18から入力するカウンタ値をカウンタ19の出力i1とする。
【0051】
図5に示した例では、パケット処理計数カウンタ18の計数値がn+5のとき、マーカ応答パケットが受信される。すると上述したように、そのマーカ応答パケットの識別要素mが記憶素子gの読み出しアドレスとして与えられ、その結果、記憶素子gからは、マーカパケット送信時の計数値nがカウンタ19に出力される。また、カウンタ19も切り替わって、n+1からカウントアップを開始して、そのカウントアップされた値が記憶素子e及び記憶素子fに読み出しアドレスとして与えられるようになる。その結果、記憶素子e及び記憶素子fに与えられる読み出しアドレスは、n+5の次がn+1となり、記憶素子e及び記憶素子fからは、パケットpkt4も含めてそれ以降のパケットが順次再出力されることになる。ここで、マーカ応答パケットの受信に応じてリンク切替部11も切り替わっているから、その結果、パケット処理計数カウンタ18の計数値n+1から、対応するパケットのペイロード及び識別要素が記憶素子e及び記憶素子fからそれぞれ読み出され、送信パケットに組み立てられて、マーカ応答パケットに応じて切り替わった後のリンクに送出されることになる。その結果、マーカプロトコルによるパケットの再送処理が、ハードウエア構成で実行されたことになる。
【0052】
パケットの再送処理を開始した時点では、記憶素子e及び記憶素子fにおいて、書き込みアドレス(=パケット処理計数カウンタ18の計数値)よりも読み出しアドレス(カウンタ19の出力値)の方が遅れているが、カウンタ19のカウントアップのクロックはパケット処理計数カウンタ18のカウントアップのクロック(送信キューからこのリンクインターフェースに入力するパケットの転送速度)よりも速く設定されており、その結果、書き込みアドレスと読み出しアドレスとの差は徐々に小さくなり、ついには書き込みアドレスが読み出しアドレスに追いつくこととなる。その時点でカウンタ19は通常状態に切り替わって、その後は、カウンタ19を介してパケット処理計数カウンタ18の計数値が記憶素子e及び記憶素子fに読み出しアドレスとしても供給されるようになる。図5に示した例では、パケット処理計数カウンタ18の計数値がn+11のときに、カウンタ19の計数値もn+11となって追いつくことから、通常状態に切り替わる。
【0053】
次に、本発明の別の実施の形態のリンクインターフェースについて説明する。図3に示したリンクインターフェースは、冗長構成のために現用系のリンクと予備系のリンクとを切替えることを目的としたものであったが、ここでは、さらに、対話ごとにリンクを分散させる例を説明する。図7は、対話ごとにリンクを分散する機能を有するリンクインターフェースを示すブロック図である。
【0054】
図7に示したリンクインターフェースは、図3に示したリンクインターフェースと同様の構成のものであるが、対話ごとにリンクを分散させるために、送信すべき各パケットについて識別要素とペイロードのほかに、対話識別要素が入力する。対話識別要素は、そのパケットがどの対話に属するかを識別するフラグである。リンク切替の技術分野でよく知られているように、あるパケットがどの対話に属するかは、例えば、宛先アドレスが異なっている、あるいは送信元アドレスが異なっている、あるいは、上位レイヤ側で用いるポート番号などが異なっている、などに基づいて判別することができる。ここでは図示していないが、送信キューにおいてそのような判別を行い、その結果、送信キューから各パケットの識別要素、ペイロード及び対話識別要素がこのリンクインターフェースに与えられるようになっている。
【0055】
さらに、図7に示したリンクインターフェースは、リンク切替部11と、アセンブリ部12と、受信バッファ13と、セグメント部14と、記憶素子15〜17と、パケット処理計数カウンタ18と、カウンタ19との他に、個々のアプリケーションの対話パケットごとの対話識別要素と識別要素とによって、対話ごとにリンクを分散させるリンク制御部31と、パケット処理計数カウンタ18の計数値を一時的に格納するレジスタ32とを備えている。リンク制御部31は、リンク切替部11を制御し、対話ごとに使用するリンクを分散させる。またレジスタ32は、マーカ応答パケットを受信したときのパケット処理計数カウンタ18の値を格納するものであって、ホスト20からアクセス可能である。ホスト20は、通常運用時における負荷分散などのためのリンク切替も制御する。
【0056】
ここで、送信すべきパケットがpkt1〜pkt7までであるとし、pkt2とpkt4、pkt3とpkt6、pkt5とpkt7はそれぞれ同じ対話に属するパケットであるとする。また、ネットワークの通常運用時には、pkt1をリンク1、pkt2とpkt4及びpkt3とpkt6をリンク2、pkt5とpkt7をリンク1上に分散させるとする。自デバイスがデバイスAであり、対向デバイスがデバイスBであるとする。その結果、通常運用時におけるパケットの転送は、図8に示すようになる。デバイスAには、図7に示したリンクインターフェースが装備されているとする。
【0057】
ここで、トラフィックの負荷分散のためpkt3とpkt6に属する対話をリンク2からリンク1へ移動させるとすると、図2に示した場合と同様に、pkt3の後にマーカパケットを送信する準備を行う。図9は、このときのパケット転送を示している。マーカパケットは、リンク2上で、pkt3の直後にデバイスAからデバイスBへ転送され、これによりデバイスAは、pkt3とpkt6に属する対話をリンク1へ移動する要求を行う。マーカパケットを認識したデバイスBは、マーカ応答パケットをリンク2上でデバイスBからデバイスAへ転送し、pkt3とpkt6に属する対話をリンク1へ移動する要求を認識したことを通知する。このとき、pkt4はリンクの移動対象外であるため、前述したデバイスAのリンク制御部31とリンク切替部11によって、リンク2上に送信される。
【0058】
デバイスAのリンクインターフェース(図7参照)では、受信バッファ13においてマーカ応答パケットを受信すると、セグメント部14においてマーカ応答パケットの識別要素が取り出され、これが記憶素子g 17のポートg2のアドレスとして入力する。記憶素子g 17には、図3に示したリンクインターフェースと同様に、パケット処理計数カウンタ18のカウント値がデータとして格納されており、特に、マーカパケットの識別要素に対応するアドレスには、そのマーカパケットを送信したときのパケット処理計数カウンタ18のカウント値が記憶されているため、マーカパケットとマーカ応答パケットの識別要素が同じであることから、記憶素子g 17からは、マーカパケット送信時のパケット計数処理カウンタ18の計数値が読み出されることになる。読み出された値(マーカパケット送信時のカウント値)は、カウンタ19に送られ、カウンタ19は、マーカ応答受信の通知に基づいて、この送られた値に1を加算した値からカウントアップを行い、カウントアップされた値が、順次、記憶素子e 15のポートe2及び記憶素子f 16のポートf2のアドレスとして入力する。これらの記憶素子15,16は、デバイスAがマーカパケットを送信した時点及び以降のパケットのペイロード及び識別要素を記憶しているため、マーカパケットの送信の直後からのパケットのペイロード及び識別要素が記憶素子e 15のポートe2及び記憶素子f 16のポートf2から読み出され、これらはアセンブリ部12において送信パケットとして組み立てられる。そして、マーカパケットを送信した直後のパケットから、リンク制御部31とリンク切替部11によって、対話ごとに切替後のリンクへの転送が開始される。前述の例だと、pkt6は新たにリンク1から転送される。図10はこの様子を示している。
【0059】
図11は、ここでのパケット処理計数カウンタ18及びカウンタ19の動作を説明する図である。この実施の形態のリンクインターフェースにおいても、基本的な動作は図6を用いて示したものと同様であるが、対話の移動を行うために、細部の動作が異なっている。図11においては、記憶素子e及び記憶素子fの記憶内容がアドレスごとに1つにまとめられて、「マーカパケット」やpkt4〜pkt21としてまとめて示されている。
【0060】
ここで、マーカパケットは、パケット処理計数カウンタ18の計数値がNのときに送信され、マーカ応答パケットを受信したときのパケット処理計数カウンタ18の計数値はN+12であるとする。上述したように、マーカ応答パケットを受信したときのパケット処理計数カウンタ18の計数値(この例の場合はN+12)は、レジスタ32に格納される。マーカ応答パケットを受信したことによって、記憶素子g 17からカウント値Nが読み出され、カウンタ19はホスト20からの命令を受けてカウンタ値Nに1を加算した値(N+1)から計数を再開する。このN+1は、マーカパケットを送信した直後のパケットであるpkt4に対応するものである。このときpkt3やpkt6と同じ対話に属するパケットを、pkt8、pkt9、pkt14、pkt15とすると、これらのパケットは、新たな切替後のリンク1上で送信される。その他のパケットであるpkt4、pkt5、pkt7、pkt10〜pkt13は、リンク切替の対象外であるため再送の必要はない。これは、セグメント部14からのマーカ応答パケット受信通知をリンク切替部11に渡すとともに、ホスト20からリンク切替部11に対して、マーカプロトコルにしたがって再送処理を行うべき対話についてその対話に対応する識別情報を指定し、リンク切替部11において、指定された識別情報にもとづいてパケットをフィルタリングすることにより、その対話のパケットだけをリンクに送出することによって行われる。すなわち、記憶素子e及び記憶素子fからは、図6において説明したようにマーカパケット送出時点以降のパケットが、再送の必要性の有無に関わらず読み出されるが、リンク切替部11は、再送の必要のないパケットは破棄することになる。
【0061】
カウンタ19の計数値がレジスタ32に格納された値(この例ではN+12)に達するまでは、リンク移動する対話に属するパケットについてのみリンクを開放するが、パケット処理計数カウンタ18におけるこれ以降のカウント値に対応するパケットについては、通常動作、すなわち、リンク切替により改めて対話ごとに集約されたリンク上で、パケット転送を行う。このときホスト20は、カウンタ19からの出力値がレジスタ32に格納された値に達したことを検出すると、リンク切替部11に対し、上述したパケットを破棄する処理を止めるように指示する。ここでは、カウンタ19からの出力値がレジスタ32に格納された値に達したことをホスト20が検出するとしたが、ホスト20とは別のハードウエアを設けて、そのハードウエアからの指示でリンク切替部11がパケットの破棄を止めるようにしてもよい。
【0062】
したがって、この実施の形態によれば、ネットワークトラフィックの負荷を分散させるために対話ごとにリンクを切り替えるときであっても、リンクの切替後における対話ごとの伝送パケットの並びの順序を維持でき、対向デバイス側で廃棄されるパケットをなくすことができる。
【0063】
以上、本発明の好ましい実施形態について、リンクインターフェースを有する自デバイス(図1におけるデバイスA)と対向デバイス(図1におけるデバイスB)とが2本のリンクで接続され、これらのリンクがリンク集約あるいはリンク切替の対象となる場合を例に挙げて説明したが、本発明の適用範囲はこれに限定されるものではない。自デバイスと対向デバイスとの間のリンク集約の対象となるリンクの数は、3以上であってもよい。また、図1では自デバイス(デバイスA)と対向デバイス(デバイスB)とがリンク1やリンク2によって直接接続されているように描かれているが、マーカプロトコルの処理が行える限り、自デバイスと対向デバイスとの間にブリッジやルータ、スイッチなどの他のネットワーク要素が介在していてもよい。もちろん、集約化されたリンクの両端に位置する2つのネットワークデバイスの両方が、ここで述べたリンクインターフェースを備えるようにしてもよい。
【0064】
【発明の効果】
以上説明したように本発明では、ネットワークデバイス内でリンク上にパケットを送信するリンクインターフェースに、宛先アドレスなどパケットを識別する識別要素を格納する記憶素子とパケットのペイロードを格納する記憶素子と、送信パケットを計数、管理するカウンタ回路と、受信したマーカ応答パケットの識別要素からマーカパケットを送信したときのパケット計数の値を参照できる記憶素子とを用いることにより、送信キュー内でマーカパケットの直後に格納されていたパケットから順番に切替後のリンクによって送信できるようになる。したがって、本発明によれば、リンク切替の処理をハードウエアで高速処理することができるようになるという効果がある。
【図面の簡単な説明】
【図1】ネットワーク構成の一例を示す図である。
【図2】ネットワークデバイスにおける従来のリンクインターフェースの構成を示すブロック図である。
【図3】本発明の実施の一形態のリンクインターフェースの構成を示すブロック図である。
【図4】カウンタの構成を示すブロック図である。
【図5】図3に示すリンクインターフェースの動作を説明する図である。
【図6】記憶素子gの記憶内容を説明する図である。
【図7】本発明の別の実施の形態のリンクインターフェースの構成を示すブロック図である。
【図8】パケット転送を説明する図である。
【図9】パケット転送を説明する図である。
【図10】パケット転送を説明する図である。
【図11】パケット処理計数カウンタ及びカウンタの動作を説明する図である。
【符号の説明】
10  リンクインターフェース
11  リンク切替部
12  アセンブリ部
13  受信バッファ
14  セグメント部
15  記憶素子e
16  記憶素子f
17  記憶素子g
18  パケット処理計数カウンタ
19  カウンタ
20  ホスト
21  カウント部
22  比較・選択部
23  加算部
25  送信キュー
31  リンク制御部
32  バッファ
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a link switching method and a link interface used when aggregating links between network devices, and more particularly, to a link switching method and a link interface for realizing a link switching process using a marker protocol by hardware.
[0002]
[Prior art]
In recent years, link aggregation that aggregates a plurality of links connecting network devices has been receiving attention. By performing link aggregation, for example, it is possible to increase the effective link capacity without performing a large-scale hardware update, and it is possible to separate a failed link and perform communication only with a normal link. Therefore, the availability of the link can be increased.
[0003]
The link to be aggregated is, for example, a layer 2 (data link layer) link in the OSI reference model. (R) Link by technology. IEEE802.3ad is an Ethernet operating at the same data rate (R) Link aggregation of links is standardized.
[0004]
In the layer 2 link, generally, order control is not performed on frames and packets to be transmitted. For example, frames and packets belonging to the same application have the same order to prevent the arrival order from being reversed. It is necessary to control the distribution of frames and packets to the link so that the link is used. In the following description, a set of traffic that needs to maintain order in delivery, based on normal usage in this technical field, is defined as "interaction". Frames or packets belonging to the same conversation will be transmitted using the same link.
[0005]
By the way, links may be switched between aggregated links, for example, due to dynamic load distribution, changes in the physical configuration of the network, or when a failure occurs in any of the links. As described above, since frames or packets belonging to the same dialog need to be transmitted on the same link, the link cannot be switched at an arbitrary timing, and it is confirmed that transmission of all frames of the ongoing dialog is completed. And then switch the link. Therefore, the above-mentioned IEEE 802.3ad regulates link switching by a marker protocol.
[0006]
In the marker protocol, when the transmission of all frames of the dialog being transmitted is completed on a certain link from the own device to the adjacent device, a marker packet is transmitted, and the adjacent device receiving the marker packet transmits a marker response packet. Is returned, and the link can be switched when the marker response packet is received by the own device. At this time, on the new switched link, in order to start communication of a new dialogue from the beginning on the link, the device that transmitted the marker packet needs to start retransmission from the packet after transmitting the marker packet. There is.
[0007]
Conventionally, in order to realize such link switching by the marker protocol, the association between packets to be transmitted in a queue and respective pointers for uniquely managing the packets has been processed by software. For example, in link switching by the marker protocol, the address of the marker packet is managed by a pointer, it is determined whether the received packet is a marker response packet, and if the received packet is a marker response packet, the link is switched and the transmission is performed. The processing of rewriting the pointer indicating the packet to be transmitted next in the queue to the address next to the address of the marker packet, and starting the retransmission of the packet from the rewritten address is all performed by software. Therefore, this processing may be a bottleneck in improving the performance of the network. In the future, network traffic will increase rapidly, for example 10 Gigabit Ethernet (R) It is expected that when trying to consolidate links, the limit of processing performance by this software will directly lead to a decrease in network performance.
[0008]
FIG. 1 shows an example of a configuration of a network in which link aggregation is performed. In FIG. 1, device A and device B are both network devices connected by link 1 and link 2. Here, the link 1 and the link 2 are mutually integrated links. Further, device A is provided with links 3 to N as joining ports, and similarly, device B is provided with links N + 1 to M as joining ports, and all of these links 3 to M are provided. The link is not aggregated.
[0009]
Hereinafter, for the sake of explanation, it is assumed that network traffic flows from device A to device B. The link 1 and the link 2 are integrated for a redundant configuration. Of the two links connecting the device A and the device B, the link 1 is a work (working) link, and the link 2 is a protection link. It is assumed that this is a (standby) link.
[0010]
FIG. 2 shows a configuration of a portion for transmitting a data packet in such a device A. The link interface (data packet transmission unit) 93 includes a packet queue management unit 94, an interface 97 provided between the packet queue management unit 94 and the link 1, and a link interface between the packet queue management unit 94 and the link 2. An interface 98 is provided. The interfaces 97 and 98 have an interface function at the physical layer, and at least have an output function for a link here. In the packet queue management unit 94, an output queue 95 for storing packets to be transferred to the device B in the order in which the packets are to be temporarily transmitted, and the packets in the output queue 95 are stored in either the link 1 or the link 2. And a frame distributor 98 for distributing the image data. In the figure, pkt1 to pkt7 indicate packets in the output queue 95 transferred to the device B. These packets will be distributed by the frame distributor 98 to one of the interfaces 97 and 98 for transmitting the packets. Also, a marker packet is inserted at an appropriate position in the output queue 95 as needed.
[0011]
In the conventional link interface, processing in the output queue 95 and the frame distributor 96 and management of pointers to the output queue 95 are realized by software. Since processing with such software requires a certain amount of time, it tends to cause a problem of network performance degradation.
[0012]
[Problems to be solved by the invention]
As described above, conventionally, a link interface that executes link switching by a marker protocol conventionally processes, by software, association between packets to be transmitted in a queue and respective pointers that uniquely manage them. . Therefore, this processing may be a bottleneck in improving the performance of the network, and may cause a decrease in the performance of the network.
[0013]
In the future, a sharp increase in network traffic is expected, and a significant increase in the data rate of individual links to be aggregated is also expected. When the above-described processing at the link interface is realized by software, the processing is actually performed by a CPU (central processing unit), but this processing is relatively heavy for the CPU. CPU performance is increasing year by year, but CPU performance cannot be expected to increase as much as network traffic and link data rates increase. Can be
[0014]
SUMMARY OF THE INVENTION It is an object of the present invention to provide a link switching method and a link interface in which a link switching based on a marker protocol is executed by hardware processing to speed up the processing.
[0015]
[Means for Solving the Problems]
A link switching method according to the present invention is a link switching method for performing link switching between a plurality of links by a marker protocol process in a network device to which the plurality of links are connected, wherein a packet stored in a transmission queue is counted by a packet processing count. Counting, and applying the count value of the packet processing counter to the first storage element as a write address to store the first portion of the packet in the first storage element. As a write address to the second storage element to store the second part of the packet in the second storage element, and providing the second part of the packet as the write address to the third storage element to process the packet. Storing the count value of the count counter in the third storage element; Is received, the link is switched, the value is read from the third storage element using the second portion of the marker response packet as the read address, and the address is read from the address next to the address corresponding to the read value. Executing reading from the first and second storage elements and transmitting a transmission packet to the switched link in accordance with the contents read from the first and second storage elements.
[0016]
A link interface according to the present invention is a link interface provided in a network device to which a plurality of links are connected and performing link switching between the plurality of links by a marker protocol process, wherein the packet counts packets stored in a transmission queue. A count value of the processing count counter and the count value of the packet processing count counter are given as a write address, a first storage element for storing a payload portion of the packet, and a count value of the packet count counter are given as a write address. A second storage element for storing the element part, a third storage element for storing the count value of the packet processing counter, the identification element part of the packet being given as a write address, and a payload read from the first storage element Part and second storage element An assembly unit that assembles a transmission packet by combining an identification element portion read from the link unit, and a link switching unit that performs link switching and sends the transmission packet to the selected link, and receives a marker response packet. Then, a value is read from the third storage element using the identification element portion of the marker response packet as a read address, and reading from the first and second storage elements is performed from the address next to the address corresponding to the read value. Execute.
[0017]
In the present invention, the packets stored in the transmission queue are counted by the packet processing counter, and the first and second packets of the packet are stored in the first and second storage elements using the count value of the packet processing counter as a write address. 2 is stored, and the count value of the packet processing counter is stored in the third storage element using the second portion of the packet as a write address. Here, the second portion is typically an identification element portion of a packet including a destination address and the like, and the first portion is typically a payload portion of the packet, that is, an identification element of the packet. It is a part other than the part.
[0018]
In the marker protocol, when a marker response packet is received from a counterpart device, it is necessary to retransmit a packet from the time of transmission of the marker packet that triggered the marker response packet. The transmission element is divided into first and second parts and stored in the storage element. At the same time, the third storage element stores the packet processing count counter using the second part of the packet as a key (search key). The count value of the packet processing counter is stored using the second key of the packet as a write address so that a numerical value can be searched.
[0019]
In general, the second part of the marker packet and the marker response packet is the same (this would use a predetermined globally unique multicast address as the destination address for the marker packet and the marker response packet in the marker protocol). When the marker response packet is received, the second part is taken out and the third storage element is accessed as the read address, so that the packet processing count counter at the time of transmitting the marker packet is output from the third storage element. Is output. Therefore, in the present invention, when the read count value is used as an address, data is read from the first and second storage elements from the address next to that address. As a result, the packets immediately after transmitting the marker packet are read out from the first and second storage elements, and are transmitted as the transmission packet to the link after switching, so that the marker packet is transmitted at the time when the marker packet is transmitted. Will be retransmitted.
[0020]
The above-described packet retransmission processing is executed only by hardware such as a packet counting processing counter and first to third storage elements. That is, pointer management of queues (first and second storage elements) associated with the marker protocol processing can be realized by hardware, and in the link switching method of the present invention, retransmission processing related to link switching is performed by hardware. Can be realized.
[0021]
Further, in the link interface of the present invention, a link switching unit that switches in response to the reception of a marker response packet is used instead of the frame distributor in the conventional link interface, and the switching operation of the link switching unit is performed by software. There is no need for intervention in processing. As a result, in the link interface of the present invention, as in the above-described link switching method, the retransmission processing related to the link switching can be realized by hardware, and the link switching operation itself can be realized by hardware. Thus, high-speed processing can be performed and network performance degradation can be avoided.
[0022]
BEST MODE FOR CARRYING OUT THE INVENTION
Next, a preferred embodiment of the present invention will be described with reference to the drawings.
[0023]
FIG. 3 is a circuit diagram showing a configuration of the link interface unit according to the embodiment of the present invention. The link interface 10 has a function of temporarily storing (queueing) and transmitting packets to the aggregated link in a network device connected to the aggregated link. This corresponds to the packet queue management unit 94 in the conventional configuration shown in FIG. 2, but differs from the configuration shown in FIG. 2 in that it is configured to perform hardware processing as shown in FIG. Are different.
[0024]
Here, the network device typically performs layer 2 processing in the OSI reference model. Examples of such a network device include a so-called network interface card (NIC) incorporated in a server device (server computer) that is a higher-level device, a switching hub that performs layer 2 switching, a router, and the like. An example is a layer 2 interface provided for each output port.
[0025]
In the following description, as in the case shown in FIG. 1, device A and device B, which are network devices and are provided at distant locations, are connected by a network. It is assumed that two links (link 1 and link 2) between them are aggregated, and the link interface of the present embodiment is mounted at least on the device A. That is, in the following, in the network configuration shown in FIG. In addition, link 1 and link 2 have the same data rate with Ethernet. (R) Link. Therefore, a packet transferred on a link includes a MAC (Media Access Control) address as a destination address or a source address. Such a packet generally includes an identification element and a payload in one packet, and is assembled by combining the identification element and the payload in an assembly unit described later. The identification element is an information element used to identify the packet itself, such as a destination address and a source address, or to control the transfer of the packet in the network device. The payload is information other than the identification element, and is, for example, data to be transferred by the packet.
[0026]
The link interface 10 includes: a link switching unit 11 that outputs an output packet to one of the link 1 and the link 2; an assembly unit 12 that assembles an identification element and a payload into a packet to output to the link switching unit 11; 10, a storage element e15 for temporarily storing a payload provided to the link interface 10, a storage element f16 for temporarily storing an identification element provided to the link interface 10, a packet processing counter 18, and a packet processing counter 18 And a counter 19 for storing the count values of the above as a sequence on the time axis. Although not forming the link interface 10 itself, FIG. 3 shows, as a peripheral circuit part of the link interface 10, a reception buffer 13 for temporarily storing packets received from the facing network device, In the case of a packet, a segment unit 14 for extracting an identification element as a packet of the marker reception packet and a host (CPU) 20 of the entire network device are illustrated. To the link interface 10, an identification element and a payload are supplied from a transmission queue 25 provided in the network device in order to form a packet to be transmitted to the link 1 or the link 2. Further, physical interface (I / F) units 25 and 26 are connected to the link switching unit 11 as physical interfaces for the link 1 and the link 2 respectively. The physical interface units 25 and 26 serve as interfaces with a physical signal medium (cable, optical fiber) or the like that forms the link.
[0027]
Here, the identification element in this link interface will be described in detail. Here, it has been described that an identification element such as a destination address is given as an address to the storage element g17. However, assuming that the entire destination address is used as the identification element, if the destination address is a MAC address, the MAC address is 48 bits. Since it is long (6 octets), the identification element is also at least 48 bits long. Depending on the implementation of link aggregation, both the destination address and the source address may be used as identification elements, in which case the identification elements will be 96 bits long. When such a long bit length identification element is used as an address in a storage element, the storage element requires an extremely large storage capacity and address space, which is not practical.
[0028]
In this link interface, as will be apparent from the following description, the marker packet and the marker response packet have the same identification element, and the marker packet and the marker response packet have an identification element different from other types of packets. Link switching is performed by using the information. Therefore, in this link interface, from the above viewpoints, the minimum required for dispersing the used links and link switching by link aggregation can be used as the identification element, and the other elements can be used as the payload. Therefore, for example, by omitting a continuous “0” portion or using a combination of several low-order bits and several high-order bits of the destination address, the capacity of the storage element falls within a practical range of capacity. As the identification element given as an address to the storage element g17, an element whose bit length is reduced from several bits to tens of bits is used, and the other part of the packet including the remaining bits of the destination address is used as the payload. To be considered.
[0029]
In the link interface 10, for the packet to be transmitted, the payload and the identification element are separated and temporarily stored in the storage element e15 and the storage element f16, respectively. The data is combined into a transmission packet (data packet or marker packet) in the assembly unit 12 and output to the link 1 or link 2 via the link switching unit 11. That is, the storage element e15 and the storage element f16 function as buffers for temporarily storing packets transmitted on the link in preparation for packet retransmission after link switching. Then, in order to be able to know from the identification element of the packet at which timing or in what order the packet of the identification element is the packet transmitted, the storage element g17 has the identification element as an address, The count value of the packet processing counter 18 is stored as data.
[0030]
The packet processing counter 18 counts up by one each time a packet stored in the transmission queue 25 is sent to this link interface. The output of the packet processing counter 18, that is, the count value, is given to the storage element e 15 and the storage element f 16 as an address at the time of writing, and is given to the storage element g 17 as data to be stored.
[0031]
Since high-speed processing is required in the link interface 10 and input and output of packets and input of identification elements and payloads can occur asynchronously, in the link interface 10 of this embodiment, the dual-port The device (dual port memory) is used. In particular, a dual-port element is preferably used for the storage element e15 and the storage element f16. In the figure, "A" indicates an address input terminal, and "D" indicates a data input terminal or an output terminal. The port on the input side of the storage element e15 is port e1, and the port on the output side is port e2. The count value of the packet processing counter 18 is input to the address of the port e1, and the payload is input to the data. The count value of the counter 19 is input to the address of the port e2, and the data is output to the assembly unit 12. The port on the input side of the storage element f16 is the port f1, the port on the output side is the port f2, the count value of the packet processing counter 18 is input to the address of the port f1, and the data is the storage element e15. , An identification element (for example, a destination address) corresponding to the payload stored therein, the count value of the counter 19 is input to the address of the port e2, and the data is output to the assembly unit 12. The port on the input side of the storage element g17 is the port g1, the port on the output side is the port g2, the identification element is input to the address of the port g1, and the count value of the packet processing counter 18 is input to the data. The identification element of the marker response packet output from the segment unit 14 is input to the address of the port e2, and the data is output to the counter 19. As will be described later, in the case of packet transmission during normal operation other than link switching, the counter 19 transmits the count value of the packet processing counter 18 as it is to the addresses of the ports e2 and f2 as they are.
[0032]
As described above, the reception buffer 13 is a buffer for receiving a packet transmitted from a device opposite thereto, and if the received packet is a packet addressed to the own device, transfers the packet to the packet processing unit for the own device. If the received packet is a marker response packet from an adjacent device, the packet is passed to the segment unit 14.
[0033]
The segment unit 14 passes the identification element of the received marker response packet as the address of the port g2 of the storage element g17. As a result, a packet count value when the own device transmits the marker packet can be read as data from the port g2 of the storage element g17. This is because in the marker protocol, the marker packet and the marker response packet have the same identification element such as a destination address. According to IEEE 802.3ad, both the marker packet and the marker response packet have a globally unique multicast address “01-80-C2-00-00-02” (in hexadecimal notation) as a destination address. ing. In addition, when receiving the marker response packet, the segment unit 14 notifies the counter 19 and the host 20 of the reception of the marker response packet. As a result, the host 20 gives an instruction to the counter 19 to take in the value obtained by adding 1 to the value of the output from the port g2.
[0034]
Next, the configuration of the counter 19 will be described with reference to FIG.
[0035]
The counter 19 outputs the counter output value of the packet processing counter 18 to the address terminals of the port e2 and the port f2 as it is during normal operation without link switching, and when the own device receives the marker response packet from the opposite device, From the port g2 of the storage element g17, a packet count value when the own device transmits the marker packet is read, 1 is added to the packet count value, the count is started from the value after the addition, and the counter value is changed to the port e2 and the port e2. This is output to the address terminal of port f2. When the count value of the counter 19 by counting up matches the counter value output by the packet processing counter 18, the counter 19 returns to the normal operation mode without link switching, and the counter of the packet processing counter 18. Switches to output the output value as it is. In some cases, the own device may transmit a marker packet while the counter 19 is counting up for the address of the port e2 and the port f2. In that case, the counter 19 counts up the counter packet. To stop. In general, the packet transfer speed from the transmission queue 25 to the link interface 10 is suppressed to be lower than the packet transfer speed on each link, but the counter 19 is controlled by, for example, flow control in the physical interface units 26 and 27. It is preferable to count up as soon as a packet can be transmitted on the link so that the next packet is transmitted as soon as possible on the link. At least, the count rate of the counter 19 (that is, the packet transfer rate on the link when the retransmission processing accompanying the link switching is performed) needs to be higher than the transfer rate when the packet is fetched from the transmission queue 25. . Otherwise, the storage elements e15 and f16, which are transmission buffers for the retransmission processing, will overflow.
[0036]
Such a counter 19 includes a counting unit 21 that performs a count-up operation when the reception of the marker response packet is notified as the marker response reception d1, and any one of the output of the counting unit 21 and the counter output value of the packet processing count counter 18. And a comparison / selection unit 22 for comparing the counter value of the counting unit 21 with the counter output value of the packet processing counter 18 and an instruction j1 from the host 20. An adder 23 that takes in the data output of the port g2 of the storage element g17, adds 1, and transfers the addition result to the counter 21.
[0037]
Next, the operation of the link interface 10 will be described.
[0038]
First, it is assumed that packets stored in the transmission queue 25 of the own device are sent to the link interface 10 one by one. Of course, appropriate flow control is performed in the same manner as a normal OSI layer 2 device, so that packets do not flow in beyond the processing capacity of the link interface 10. In particular, during the period of retransmission of the packet accompanying the link switching, the retransmission of the packet stored in the link interface 10 is performed with priority over the transmission of the packet sent from the transmission queue. The number of packets transmitted to the link interface 10 per unit time is set to be smaller than the number of packets transmitted per unit time on the link so that a buffer overflow does not occur in the link 10.
[0039]
FIG. 5 is a diagram showing the operation of the link interface 10 before and after link switching. Here, it is assumed that packets are sequentially taken in from the packet pkt1 into the link interface 10, and the third packet pkt3 is a marker packet (identification element is “m”). It is assumed that link 1 is a link for work and link 2 is a link for protection, and that the link switching here is a switch from link 1 to link 2. It is assumed that the count value of the packet processing counter 18 for the packet pkt1 is n-2 (that is, the count value of the packet processing counter 18 corresponding to the marker packet is n). It is also assumed that the marker response packet has been received at the timing when the eighth packet pkt8 was transmitted.
[0040]
The packet from the transmission queue 25 is given by being divided into an identification element and a payload part other than the identification element. The identification element is stored in the storage element f16 via the port f1, and the payload part is stored in the storage element e15. Via the port e1. At this time, the count value of the packet processing counter 18 is input to the address terminals of the port e1 and the port f1. The packet counting counter 18 counts up each time a packet is taken from the transmission queue 25 into the link interface 10. Therefore, when one packet is taken from the transmission queue 25, the count value of the packet processing counter 18 at that time is incremented. As the address, the payload of the packet is stored in the storage element e, and the identification element is stored in the storage element f. At this time, the identification element of the packet is given to the port g1 of the storage element g17 as a write address, and the count value of the packet processing counter 18 is stored in the storage element g. Here, the relationship between the address and the data is just reversed at the port g1 of the storage element g17 and the port f1 of the storage element f16. Each packet (payload and identification element) is stored in the storage element e15 and the storage element f16 in chronological order.
[0041]
In FIG. 5, a change in the count value of the packet processing counter with the passage of time, a packet taken into the link interface 10 from the transmission queue at each time, data written to the storage elements e and f at that time, a counter 19, the output value of the storage element e and the data read from the storage element e and the storage element f at that time, the packet transmitted on the link, and the used link are shown. In the output value of the counter 19, the symbol “→” before the value indicates that the output value of the packet processing counter 18 is the output value of the counter 19 as it is. Since a dual-port memory is used as each of the storage elements e to g, the drawing shows that both writing and reading are performed on the same storage element at the same timing. Alternatively, the timing of writing and reading may be slightly shifted. Here, S (pkt ...) indicates the payload of pkt ..., and R (pkt ...) indicates the identification element of pkt .... The count value of the packet processing counter 18 is incremented by one from n−2 with the passage of time, and the count value is used as a write address in the storage elements e and f to identify the payload of each packet. It can be seen that the element is written. As described above, in the storage element g17, since the identification element of each packet is given as a write address and the count value of the packet processing counter 18 is stored, the storage content of the storage element g17 is the ninth packet. When pkt9 is received from the transmission queue 25, it becomes as shown in FIG. Since the value of the identification element of each packet is irrelevant to the input order of the packets, when viewed in the address order, the count value of the packet processing counter 18 which is data is not arranged in the order. Here, it should be noted that the count value n of the packet processing counter 18 at the time of transmission of the marker packet is stored using the identification element m of the marker packet as an address. FIG. 6B shows what is stored in each address of the storage element e and the storage element f, and shows the final storage content after the following processing.
[0042]
When link switching has not occurred, as described above, the port e1 and port f1 use the count value of the packet processing counter 18 as an address for storing the identification element and the payload of the transmission packet, respectively. The counter value of the packet processing counter 18 is also input to the counter 19. Here, since link switching has not yet occurred, the counter 19 is in the operation mode during normal operation, and the counter value of the packet processing counter 18 becomes the output i1 of the counter 19 as it is. This output i1 is passed as the address of the port e2 of the storage element e15 and the port f2 of the storage element f16. Therefore, the payload of the packet to be transmitted is read out from the port e2 of the storage element e15, and the identification elements of the packet are read out from the port f2 of the storage element f16. One transmission packet is generated. This transmission packet is transferred to the link switching unit 11, and is transferred to the link to be used (here, link 1).
[0043]
In the example shown in FIG. 5, the packet pkt1 is read from the transmission queue 25 at the timing when the count value of the packet counting process counter is n-2, and the payload S (pkt1) and the identification element R (pkt1) are stored in the storage element, respectively. e and the address n-2 of the storage element f. At this time, since the output of the counter 19 is the count value of the packet counting processing counter, the payload S (pkt1) and the identification element R are obtained from the storage element e and the storage element f. (Pkt1) is read out, assembled by the assembly unit 12 as a packet pkt1, and sent out on the link 1. At this time, n−2 is written as data to the address R (pkt1) of the storage element g17. Eventually, the packet pkt1 read from the transmission queue 25 is stored at the address n−2 of the storage element e15 and the storage element f16, but is transmitted on the link substantially as it is. The same applies to the next packet pkt2.
[0044]
Next, it is assumed that a link switching operation has occurred. When a link switching operation occurs, a marker packet is transferred to an adjacent network device via the currently used link, as described in the related art. When the count value of the packet processing counter 18 is n, a marker packet is transmitted, and the identification element of this marker packet is the identification element m. When transmitting the marker packet, the counter 19 stops the counting operation if the counting operation for the port e2 and the port f2 described later for the land switching is performed. When the count operation is not performed, the count operation is not performed. When the count value of the packet processing counter 18 is being output, the output may be continued as shown. As a result, several packets are transmitted from the packet pkt4 to the link 1 before the switching until the marker response packet is received. However, since these packets are discarded on the adjacent device side, when the count value of the packet processing counter 18 is being output, the output may be stopped.
[0045]
In the example shown in FIG. 5, the marker packet is read at the timing of the count value n of the packet counting process counter 18, and the marker packet also has the address of the storage element e15 and the storage element f16 as in the case of the packet pkt1 described above. n and sent out on link 1. The count value n of the packet count processing counter 18 at this time is stored in the address m (identification element of the marker packet) of the storage element g17 (see FIG. 6). The packet pkt4, which is the packet next to the marker packet, is stored at the address n + 1 of the storage element e15 and the storage element f16 and sent out on the link 1, as in the case of pkt1. Further, the count value n + 1 of the packet counting processing counter 18 at this time is stored in the address R (pkt4) of the storage element g17. Hereinafter, the packets after the transmission of the marker address are sequentially read from the transmission queue 25 and sent out on the link 1, and are sequentially stored in the continuous address area of the storage element e15 and the storage element f16. Become.
[0046]
Here, since it is assumed that the link 1 is a work link and the link 2 is a protection link and that the link is switched from the link 1 to the link 2, the marker packet is transmitted via the link 1 to the adjacent device (opposite device). Device). When recognizing that the link switching request has been received, the adjacent device returns a marker response packet to the device that has transmitted the marker packet, to notify that the link switching request has been recognized. Here, at the time when the eighth packet pkt is transmitted (when the eighth packet pkt8 is received from the transmission queue 25 and the above-described processes are completed), the marker response packet is received by the reception buffer 13 and the segment response packet is received. It is passed to the unit 14. If the packet received by the reception buffer 13 is a normal packet addressed to the own device, the packet is transferred from the reception buffer 13 to the packet processing unit addressed to the own device.
[0047]
From the marker response packet, an identification element of the packet such as a destination address is extracted in the segment unit 14, and this becomes the address of the port g2 of the storage element g. In the marker protocol, since both the marker packet and the marker response packet have the same destination address, the identification elements of these packets are the same as each other and the identification element m described above. Since the transfer of both the marker packet and the marker response packet is restricted only within a single link, the designation of the destination as in the normal packet delivery is essentially unnecessary. Alternatively, a special destination address indicating a marker response packet is added.
[0048]
When the identification element m is passed as an address to the port g2 of the storage element g17, since the storage element g17 is a dual-port element, the packet count value n is read as data from the port g2 as shown in FIG. It is. This packet count value n is the count value of the packet counting process counter 18 when transmitting the marker packet. The read count value n is passed to the counter 19. When receiving the marker response packet, the segment unit 14 notifies the counter 19 and the host 20 of the reception of the marker response.
[0049]
The counter 19 receives the notification from the segment unit 14 as the marker response reception d1. The host 20 also instructs the counter 19 to take in the output g1 of the port g2 of the storage element g17 and increment the value by “+1”. This is referred to as a host instruction j1. The counter i having received the instruction j1 takes in the output g1 of the port g2, adds 1 to the output g1 by the adder 23, and transfers the value after the addition, that is, “n + 1”, to the counter 21. It counts up from this value of “n + 1”. Further, upon receiving the marker response reception d1, the comparison / selection unit 22 masks the input from the packet processing count counter 18 and sets the count value of the count unit 21 as the output i1 of the counter 19. This output i1 is the address at port e2 of storage element e15 and port f2 of storage element f16. As described above, these storage elements 15 and 16 are dual-port elements, and the output i1 of the counter 19 is counted from "n + 1". Therefore, the output from the port e2 of the storage element e15 and the output from the port f2 of the storage element f16 are obtained. As the data, the payload and the identification element of the packet after the marker packet transmission are newly read. These are combined by the assembly unit 12 (see FIG. 3) to form a transmission packet. At the time when the marker response packet is received, the link switching notification is transmitted from the segment unit 14 to the link switching unit 11. Therefore, the transmission packet generated by the assembly unit 12 It is transferred on the link after switching. If the switching from the link 1 to the link 2 has been performed, the transmission packet is transferred onto the link 2. As a result, the packet immediately after the marker packet has been transmitted is transferred onto the link 2 and the link switching is performed without hindering the dialogue.
[0050]
The comparing / selecting unit 22 in the counter 19 always compares the counter value in the counting unit 21 after receiving the marker response packet with the counter value input from the packet processing counter 18, and the two match. After that, the counter value input from the packet processing counter 18 is used as the output i1 of the counter 19 until the marker packet is transmitted or the marker response bucket is received next time.
[0051]
In the example shown in FIG. 5, when the count value of the packet processing counter 18 is n + 5, a marker response packet is received. Then, as described above, the identification element m of the marker response packet is given as the read address of the storage element g. As a result, the count value n at the time of transmitting the marker packet is output from the storage element g to the counter 19. The counter 19 is also switched to start counting up from n + 1, and the counted up value is given to the storage element e and the storage element f as a read address. As a result, the read address given to the storage element e and the storage element f is n + 1 after n + 5, and the subsequent packets including the packet pkt4 are sequentially re-output from the storage element e and the storage element f. become. Here, since the link switching unit 11 is also switched in response to the reception of the marker response packet, as a result, from the count value n + 1 of the packet processing counter 18, the payload and identification element of the corresponding packet are stored in the storage elements e and storage elements. f, each is assembled into a transmission packet, and transmitted to the link after switching according to the marker response packet. As a result, the packet retransmission processing by the marker protocol is executed by the hardware configuration.
[0052]
When the packet retransmission process is started, in the storage elements e and f, the read address (the output value of the counter 19) is later than the write address (= the count value of the packet processing counter 18). , The count-up clock of the counter 19 is set faster than the count-up clock of the packet processing count counter 18 (the transfer speed of the packet input from the transmission queue to this link interface). As a result, the write address and the read address are set. Gradually decreases, and the write address eventually catches up with the read address. At that time, the counter 19 is switched to the normal state, and thereafter, the count value of the packet processing counter 18 is supplied to the storage elements e and f as read addresses via the counter 19. In the example shown in FIG. 5, when the count value of the packet processing counter 18 is n + 11, the count value of the counter 19 also becomes n + 11 and catches up.
[0053]
Next, a link interface according to another embodiment of the present invention will be described. The link interface shown in FIG. 3 is intended to switch between the active link and the standby link for a redundant configuration. However, here, an example in which the links are further distributed for each conversation is described. Will be described. FIG. 7 is a block diagram showing a link interface having a function of distributing links for each conversation.
[0054]
The link interface shown in FIG. 7 has the same configuration as the link interface shown in FIG. 3, but in order to distribute the link for each conversation, in addition to the identification element and the payload for each packet to be transmitted, The dialog identification element is input. The conversation identification element is a flag for identifying which conversation the packet belongs to. As is well known in the art of link switching, which conversation a packet belongs to is determined by, for example, a destination address being different, a source address being different, or a port used by an upper layer side. It can be determined based on the fact that the numbers are different. Although not shown here, such a determination is made in the transmission queue, and as a result, the identification element, the payload, and the dialogue identification element of each packet are provided to the link interface from the transmission queue.
[0055]
Further, the link interface shown in FIG. 7 includes a link switching unit 11, an assembly unit 12, a reception buffer 13, a segment unit 14, storage elements 15 to 17, a packet processing count counter 18, and a counter 19. In addition, a link control unit 31 for distributing links for each dialogue by a dialogue identification element for each dialogue packet of each application and an identification element, a register 32 for temporarily storing the count value of the packet processing count counter 18, and It has. The link control unit 31 controls the link switching unit 11 to distribute links used for each conversation. The register 32 stores the value of the packet processing counter 18 when the marker response packet is received, and is accessible from the host 20. The host 20 also controls link switching for load distribution during normal operation.
[0056]
Here, it is assumed that packets to be transmitted are pkt1 to pkt7, and that pkt2 and pkt4, pkt3 and pkt6, and pkt5 and pkt7 belong to the same conversation. In a normal operation of the network, pkt1 is distributed on link 1, pkt2 and pkt4, pkt3 and pkt6 are distributed on link 2, and pkt5 and pkt7 are distributed on link 1. It is assumed that the own device is device A and the opposite device is device B. As a result, packet transfer during normal operation is as shown in FIG. It is assumed that the device A has the link interface shown in FIG.
[0057]
Here, assuming that dialogues belonging to pkt3 and pkt6 are moved from link 2 to link 1 for traffic load distribution, preparation for transmitting a marker packet after pkt3 is performed as in the case shown in FIG. FIG. 9 shows the packet transfer at this time. The marker packet is transferred from device A to device B on link 2 immediately after pkt3, whereby device A makes a request to move the dialog belonging to pkt3 and pkt6 to link 1. The device B that has recognized the marker packet transfers the marker response packet from the device B to the device A on the link 2 and notifies that the request for moving the dialog belonging to pkt3 and pkt6 to the link 1 has been recognized. At this time, since the pkt 4 is not a link movement target, the pkt 4 is transmitted on the link 2 by the link control unit 31 and the link switching unit 11 of the device A described above.
[0058]
In the link interface of the device A (see FIG. 7), when the marker response packet is received in the reception buffer 13, the identification element of the marker response packet is extracted in the segment unit 14, and this is input as the address of the port g 2 of the storage element g 17. . As in the link interface shown in FIG. 3, the count value of the packet processing counter 18 is stored as data in the storage element g17. In particular, the address corresponding to the identification element of the marker packet has the marker Since the count value of the packet processing count counter 18 at the time of transmitting the packet is stored, since the identification element of the marker packet and the marker response packet are the same, the packet at the time of transmitting the marker packet is output from the storage element g17. The count value of the count processing counter 18 is read. The read value (count value at the time of transmitting the marker packet) is sent to the counter 19, and the counter 19 counts up from a value obtained by adding 1 to the sent value based on the notification of the reception of the marker response. The counted values are sequentially input as addresses of the port e2 of the storage element e15 and the port f2 of the storage element f16. Since these storage elements 15 and 16 store the payload and identification element of the packet at and after the time when the device A transmits the marker packet, the payload and identification element of the packet immediately after the transmission of the marker packet are stored. The data is read from the port e2 of the element e15 and the port f2 of the storage element f16, and these are assembled as a transmission packet in the assembly unit 12. Then, from the packet immediately after transmitting the marker packet, the link control unit 31 and the link switching unit 11 start transferring the link to the switched link for each conversation. In the above example, pkt6 is newly transferred from link 1. FIG. 10 shows this state.
[0059]
FIG. 11 is a diagram for explaining the operation of the packet processing counting counter 18 and the counter 19 here. The basic operation of the link interface of this embodiment is the same as that shown in FIG. 6, but the operation of the details is different in order to move the dialogue. In FIG. 11, the storage contents of the storage element e and the storage element f are grouped into one for each address, and are collectively shown as "marker packets" and pkt4 to pkt21.
[0060]
Here, the marker packet is transmitted when the count value of the packet processing counter 18 is N, and the count value of the packet processing counter 18 when the marker response packet is received is N + 12. As described above, the count value (N + 12 in this example) of the packet processing counter 18 when the marker response packet is received is stored in the register 32. By receiving the marker response packet, the count value N is read from the storage element g17, and the counter 19 restarts counting from the value (N + 1) obtained by adding 1 to the counter value N in response to an instruction from the host 20. . This N + 1 corresponds to pkt4, which is a packet immediately after transmitting the marker packet. At this time, assuming that packets belonging to the same conversation as pkt3 and pkt6 are pkt8, pkt9, pkt14, and pkt15, these packets are transmitted on the new switched link 1. The other packets pkt4, pkt5, pkt7, and pkt10 to pkt13 are not subject to link switching and do not need to be retransmitted. This is because the notification of the reception of the marker response packet from the segment unit 14 is passed to the link switching unit 11, and the host 20 transmits to the link switching unit 11 an identification corresponding to the dialog to be retransmitted according to the marker protocol. This is performed by designating information and filtering the packets in the link switching unit 11 based on the designated identification information, thereby transmitting only the packet of the dialogue to the link. That is, as described with reference to FIG. 6, the packets after the marker packet transmission time are read from the storage elements e and f regardless of the necessity of retransmission, but the link switching unit 11 A packet without a will be discarded.
[0061]
Until the count value of the counter 19 reaches the value stored in the register 32 (N + 12 in this example), the link is released only for packets belonging to the link-moving dialogue. Is transmitted in a normal operation, that is, on a link newly aggregated for each conversation by link switching. At this time, when detecting that the output value from the counter 19 has reached the value stored in the register 32, the host 20 instructs the link switching unit 11 to stop the process of discarding the packet. Here, it is assumed that the host 20 detects that the output value from the counter 19 has reached the value stored in the register 32. However, hardware other than the host 20 is provided, and linking is performed by an instruction from the hardware. The switching unit 11 may stop discarding the packet.
[0062]
Therefore, according to this embodiment, even when the link is switched for each conversation in order to distribute the load of the network traffic, the order of the transmission packets for each conversation after the link is switched can be maintained. Packets discarded on the device side can be eliminated.
[0063]
As described above, in the preferred embodiment of the present invention, the own device (device A in FIG. 1) having the link interface and the opposing device (device B in FIG. 1) are connected by two links, and these links are aggregated or linked. Although the description has been given by taking as an example the case of link switching, the scope of the present invention is not limited to this. The number of links subject to link aggregation between the own device and the opposing device may be three or more. Although FIG. 1 illustrates that the own device (device A) and the opposing device (device B) are directly connected by the link 1 or the link 2, as long as the marker protocol can be processed, the own device (device A) and the opposite device (device A) are connected. Other network elements such as bridges, routers, and switches may be interposed between the device and the other device. Of course, both network devices located at both ends of the aggregated link may include the link interface described herein.
[0064]
【The invention's effect】
As described above, according to the present invention, a storage element for storing an identification element for identifying a packet such as a destination address, a storage element for storing a payload of a packet, and a transmission element are provided in a link interface for transmitting a packet on a link in a network device. By using a counter circuit that counts and manages packets and a storage element that can refer to the value of the packet count when transmitting the marker packet from the identification element of the received marker response packet, immediately after the marker packet in the transmission queue The stored packets can be transmitted by the switched link in order from the stored packet. Therefore, according to the present invention, there is an effect that the link switching processing can be performed at high speed by hardware.
[Brief description of the drawings]
FIG. 1 is a diagram illustrating an example of a network configuration.
FIG. 2 is a block diagram showing a configuration of a conventional link interface in a network device.
FIG. 3 is a block diagram illustrating a configuration of a link interface according to an embodiment of the present invention.
FIG. 4 is a block diagram illustrating a configuration of a counter.
FIG. 5 is a diagram illustrating the operation of the link interface shown in FIG.
FIG. 6 is a diagram illustrating the storage contents of a storage element g.
FIG. 7 is a block diagram showing a configuration of a link interface according to another embodiment of the present invention.
FIG. 8 is a diagram illustrating packet transfer.
FIG. 9 is a diagram illustrating packet transfer.
FIG. 10 is a diagram illustrating packet transfer.
FIG. 11 is a diagram illustrating operations of a packet processing count counter and a counter.
[Explanation of symbols]
10 Link interface
11 Link switching unit
12 Assembly part
13 Receive buffer
14 Segment part
15 Storage element e
16 Storage element f
17 Storage element g
18 Packet processing counter
19 Counter
20 hosts
21 Count section
22 Comparison / selection section
23 Adder
25 transmission queue
31 Link control unit
32 buffers

Claims (23)

複数のリンクが接続するネットワークデバイスにおいてマーカプロトコル処理によって前記複数のリンク間でリンク切替を行うリンク切替方法であって、
送信キューに格納されているパケットをパケット処理計数カウントによってカウントする段階と、
前記パケット処理計数カウンタの計数値を書き込みアドレスとして第1の記憶素子に与えて前記パケットの第1の部分を前記第1の記憶素子に記憶させる段階と、
前記パケット処理計数カウンタの計数値を書き込みアドレスとして第2の記憶素子に与えて前記パケットの第2の部分を前記第2の記憶素子に記憶させる段階と、
前記パケットの第2の部分を書き込みアドレスとして第3の記憶素子に与えて前記パケット処理計数カウンタの計数値を前記第3の記憶素子に記憶させる段階と、
マーカ応答パケットを受信したときに、リンクの切り替えを行うとともに、当該マーカ応答パケットの第2の部分を読み出しアドレスとして前記第3の記憶素子から値を読み出し、読み出された値に該当するアドレスの次のアドレスから前記第1及び第2の記憶素子からの読み出しを実行し、前記第1及び第2の記憶素子からの読み出し内容に応じて、切り替え後のリンクに所定のデータを送出する段階と、
を有するリンク切替方法。
A link switching method for performing link switching between the plurality of links by a marker protocol process in a network device to which a plurality of links are connected,
Counting the packets stored in the transmission queue by a packet processing count count;
Providing the count value of the packet processing count counter to a first storage element as a write address to store a first portion of the packet in the first storage element;
Providing the count value of the packet processing counter to a second storage element as a write address to store a second portion of the packet in the second storage element;
Providing the second portion of the packet as a write address to a third storage element to store the count value of the packet processing counter in the third storage element;
When a marker response packet is received, switching of the link is performed, a value is read from the third storage element using the second portion of the marker response packet as a read address, and an address corresponding to the read value is read. Executing reading from the first and second storage elements from the next address, and sending predetermined data to the switched link according to the contents read from the first and second storage elements; ,
A link switching method having:
前記所定のデータを送出する段階は、前記第1の記憶素子から読み出される前記第1の部分と前記第2の記憶素子から読み出される前記第2の部分とを組み合わせて前記送信パケットとし、当該送信パケットを送出する段階を含む、請求項1に記載のリンク切替方法。The step of transmitting the predetermined data includes combining the first part read from the first storage element and the second part read from the second storage element to form the transmission packet, 2. The link switching method according to claim 1, comprising transmitting a packet. 前記第1の部分はペイロード部分であり、前記第2の部分は識別要素部分である、請求項1または2に記載のリンク切替方法。3. The link switching method according to claim 1, wherein the first part is a payload part, and the second part is an identification element part. 前記識別要素部分は、少なくともパケットの宛先アドレスに基づいている、請求項3に記載のリンク切替方法。The link switching method according to claim 3, wherein the identification element portion is based on at least a destination address of the packet. 通常動作時には前記パケット計数処理カウンタの計数値をそのまま読み出しアドレスとして前記第1及び第2の記憶素子に供給し、前記マーカ応答パケットを受信したときに前記第3の記憶素子から読み出された値を取り込んで1を加算し、加算後の値からカウントアップを行って前記第1及び第2の記憶素子に対する読み出しアドレスとして供給する段階を有する、請求項1乃至4のいずれか1項に記載のリンク切替方法。At the time of normal operation, the count value of the packet count processing counter is supplied as it is to the first and second storage elements as a read address, and the value read from the third storage element when the marker response packet is received. 5. The method according to claim 1, further comprising the steps of: taking in, adding 1 and counting up from the value after the addition, and supplying the result as a read address for the first and second storage elements. 6. Link switching method. 前記カウントアップ中にマーカパケットの送信があった場合に前記カウントアップを停止する請求項5に記載のリンク切替方法。The link switching method according to claim 5, wherein the counting up is stopped when a marker packet is transmitted during the counting up. 前記カウントアップされた値が前記パケット処理計数カウンタの計数値に達した場合に前記通常動作に復帰する、請求項5または6に記載のリンク切替方法。7. The link switching method according to claim 5, wherein the normal operation is returned when the counted up value reaches the count value of the packet processing counter. 前記送信キューに格納されているパケットの属する対話に応じて前記対話ごとに使用リンクを分散させる、請求項1乃至7のいずれか1項に記載のリンク切替方法。The link switching method according to any one of claims 1 to 7, wherein a used link is distributed for each conversation according to a conversation to which a packet stored in the transmission queue belongs. 複数のリンクが接続するネットワークデバイスに設けられ、マーカプロトコル処理によって前記複数のリンク間でリンク切替を行うリンクインターフェースであって、
送信キューに格納されているパケットをカウントするパケット処理計数カウンタと、
前記パケット処理計数カウンタの計数値が書き込みアドレスとして与えられ、前記パケットの第1の部分を記憶する第1の記憶素子と、
前記パケット処理計数カウンタの計数値が書き込みアドレスとして与えられ、前記パケットの第2の部分を記憶する第2の記憶素子と、
前記パケットの第2の部分が書き込みアドレスとして与えられ、前記パケット処理計数カウンタの計数値を記憶する第3の記憶素子と、
リンクの切り替えを行い、選択されたリンクに所定のデータを送出するリンク切替部と、
を有し、
マーカ応答パケットを受信したときに、当該マーカ応答パケットの第2の識別要素部分を読み出しアドレスとして前記第3の記憶素子から値を読み出し、読み出された値に該当するアドレスの次のアドレスから前記第1及び第2の記憶素子からの読み出しを実行し、前記選択されたリンクに前記所定のデータを送出するリンクインターフェース。
A link interface provided in a network device to which a plurality of links are connected, and performing link switching between the plurality of links by a marker protocol process,
A packet processing counter for counting packets stored in the transmission queue;
A first storage element that receives a count value of the packet processing count counter as a write address and stores a first portion of the packet;
A second storage element for receiving a count value of the packet processing counter as a write address and storing a second portion of the packet;
A third storage element in which a second portion of the packet is provided as a write address and stores a count value of the packet processing counter;
A link switching unit that performs link switching and sends predetermined data to the selected link;
Has,
When a marker response packet is received, a value is read from the third storage element using the second identification element portion of the marker response packet as a read address, and the value is read from the next address following the address corresponding to the read value. A link interface that executes reading from the first and second storage elements and sends the predetermined data to the selected link.
前記第1の記憶素子から読み出される前記ペイロード部分と前記第2の記憶素子から読み出される識別要素部分とを組み合わせて送信パケットを組み立てるアセンブリ部をさらに有し、前記送信パケットが前記所定のデータとして前記選択されたリンクに送出される、請求項9に記載のリンクインターフェース。An assembly unit that assembles a transmission packet by combining the payload part read from the first storage element and the identification element part read from the second storage element, wherein the transmission packet is the predetermined data as the predetermined data. 10. The link interface according to claim 9, wherein the link interface is sent to a selected link. 前記第1の部分はペイロード部分であり、前記第2の部分は識別要素部分である、請求項9または10に記載のリンクインターフェース。The link interface according to claim 9 or 10, wherein the first part is a payload part and the second part is an identification element part. 前記識別要素部分は、少なくともパケットの宛先アドレスに基づいている、請求項11に記載のリンクインターフェース。The link interface according to claim 11, wherein the identification element portion is based at least on a destination address of the packet. 前記第1及び第2の記憶素子がいずれもデュアルポートメモリである請求項9乃至12のいずれか1項に記載のリンクインターフェース。13. The link interface according to claim 9, wherein each of the first and second storage elements is a dual port memory. 前記第3の記憶素子がデュアルポートメモリである請求項13に記載のリンクインターフェース。14. The link interface according to claim 13, wherein the third storage element is a dual port memory. 対向デバイスからのパケットを受信する受信バッファと、
前記受信したパケットのうちの前記マーカ応答パケットの識別要素部分を抽出して前記第3の記憶素子の読み出しアドレスとして与えるセグメント部と、
をさらに有する請求項9乃至14のいずれか1項に記載のリンクインターフェース。
A reception buffer for receiving a packet from the opposite device;
A segment section for extracting an identification element portion of the marker response packet from the received packet and giving the identification element portion as a read address of the third storage element;
The link interface according to any one of claims 9 to 14, further comprising:
前記セグメント部は、前記マーカ応答パケットの受信に応じて前記リンク切替部にリンク切替要求を送る、請求項15に記載のリンクインターフェース。The link interface according to claim 15, wherein the segment unit sends a link switching request to the link switching unit in response to receiving the marker response packet. 前記パケット計数処理カウンタの計数値と前記第3の記憶素子から読み出された値が入力し、通常動作時には前記パケット計数処理カウンタの計数値をそのまま出力し、前記マーカ応答パケットを受信したときに前記第3の記憶素子から読み出された値を取り込んで1を加算し、加算後の値からカウントアップを行って前記第1及び第2の記憶素子に対する読み出しアドレスを供給するカウンタをさらに有する、請求項9乃至16のいずれか1項に記載のリンクインターフェース。When the count value of the packet counting process counter and the value read from the third storage element are input, and during normal operation, the count value of the packet counting process counter is output as it is, and when the marker response packet is received. A counter that takes in a value read from the third storage element, adds 1, adds up a value from the value after the addition, and supplies a read address to the first and second storage elements; The link interface according to any one of claims 9 to 16. 前記カウンタは、前記カウントアップ中にマーカパケットの送信があった場合に前記カウントアップを停止する請求項17に記載のリンクインターフェース。The link interface according to claim 17, wherein the counter stops the counting up when a marker packet is transmitted during the counting up. 前記カウンタは、前記カウントアップされた値が前記パケット処理計数カウンタの計数値に達した場合に、前記通常動作に復帰する、請求項17または18に記載のリンクインターフェース。19. The link interface according to claim 17, wherein the counter returns to the normal operation when the counted up value reaches the count value of the packet processing count counter. 前記カウンタは、
前記第3の記憶素子から読み出された値に1を加算する加算部と、
前記加算部での加算結果を取り込んで前記マーカ応答パケットの受信があったときにカウントアップを開始するカウント部と、
前記パケット処理計数カウンタの計数値と前記カウント部の計数値とが入力し、通常動作時には前記パケット計数処理カウンタの計数値を出力し、前記マーカ応答パケットの受信があったときに前記カウント部の計数値の出力に切り替わり、前記カウント部の計数値が前記パケット計数処理カウンタの計数値に達したときに前記パケット計数処理カウンタの計数値の出力に復帰する比較・選択部と、
を有する請求項19に記載のリンクインターフェース。
The counter is
An adder that adds 1 to a value read from the third storage element;
A counting unit that starts counting up when the marker response packet is received by taking in the addition result in the adding unit;
The count value of the packet processing count counter and the count value of the count unit are input, and the count value of the packet count processing counter is output during normal operation, and when the marker response packet is received, the count value of the count unit is output. A comparison / selection unit that switches to the output of the count value and returns to the output of the count value of the packet count processing counter when the count value of the count unit reaches the count value of the packet count processing counter;
The link interface according to claim 19, comprising:
前記送信キューに格納されているパケットの属する対話に応じて対話識別要素が入力し、前記対話識別要素に基づいて対話ごとに使用リンクを分散させる、請求項9乃至20のいずれか1項に記載のリンクインターフェース。21. The dialogue identification element according to any one of claims 9 to 20, wherein a dialogue identification element is input according to the dialogue to which the packet stored in the transmission queue belongs, and the used links are distributed for each interaction based on the dialogue identification element. Link interface. 前記対話識別要素に基づいて前記使用リンクを分散させるように前記リンク切替部を制御するリンク制御部をさらに有する請求項21に記載のリンクインターフェース。22. The link interface according to claim 21, further comprising a link control unit that controls the link switching unit to distribute the used links based on the dialogue identification element. 第1のネットワークデバイスと、第2のネットワークデバイスと、前記第1及び第2のネットワークデバイス間を接続する複数のリンクとを有し、マーカプロトコル処理によって前記複数のリンク間でリンクの切り替えが行われるシステムにおいて、
前記第1及び第2のネットワークデバイスの少なくとも一方が請求項9乃至21のいずれか1項に記載のリンクインターフェースを備えることを特徴とするシステム。
It has a first network device, a second network device, and a plurality of links connecting the first and second network devices, and switches the links between the plurality of links by marker protocol processing. System
A system wherein at least one of the first and second network devices comprises a link interface according to any one of claims 9 to 21.
JP2002215243A 2002-07-24 2002-07-24 Link switching method and link interface Expired - Fee Related JP3988039B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002215243A JP3988039B2 (en) 2002-07-24 2002-07-24 Link switching method and link interface

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002215243A JP3988039B2 (en) 2002-07-24 2002-07-24 Link switching method and link interface

Publications (2)

Publication Number Publication Date
JP2004056736A true JP2004056736A (en) 2004-02-19
JP3988039B2 JP3988039B2 (en) 2007-10-10

Family

ID=31937326

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002215243A Expired - Fee Related JP3988039B2 (en) 2002-07-24 2002-07-24 Link switching method and link interface

Country Status (1)

Country Link
JP (1) JP3988039B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006295935A (en) * 2005-04-12 2006-10-26 Fujitsu Ltd Method of moving communication in link aggregation group, network element, and logical apparatus
CN112532731A (en) * 2020-12-02 2021-03-19 上海英方软件股份有限公司 Automatic optimization method and device for multiple market data sources

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006295935A (en) * 2005-04-12 2006-10-26 Fujitsu Ltd Method of moving communication in link aggregation group, network element, and logical apparatus
US8451713B2 (en) 2005-04-12 2013-05-28 Fujitsu Limited Special marker message for link aggregation marker protocol
CN112532731A (en) * 2020-12-02 2021-03-19 上海英方软件股份有限公司 Automatic optimization method and device for multiple market data sources

Also Published As

Publication number Publication date
JP3988039B2 (en) 2007-10-10

Similar Documents

Publication Publication Date Title
JP3734704B2 (en) Packet classification engine
EP1019833B1 (en) Mechanism for packet field replacement in a multi-layered switched network element
EP0993635B1 (en) Method and apparatus for dynamic queue sizing
JP4068166B2 (en) Search engine architecture for high performance multilayer switch elements
US6975587B1 (en) Mechanism for automatic protection switching in a router
US6847645B1 (en) Method and apparatus for controlling packet header buffer wrap around in a forwarding engine of an intermediate network node
CA2358525C (en) Dynamic assignment of traffic classes to a priority queue in a packet forwarding device
JP3109591B2 (en) ATM switch
JP4890613B2 (en) Packet switch device
US8438244B2 (en) Bandwidth-proportioned datacenters
EP2092436A2 (en) A network interface card for use in parallel computing systems
US20070159960A1 (en) Method and apparatus for implementing N-way fast failover in virtualized Ethernet adapter
US9274586B2 (en) Intelligent memory interface
CN111026324B (en) Updating method and device of forwarding table entry
US11356372B2 (en) Data traffic processing method, device, and system
EP3136633B1 (en) Network module for sending and/or receiving of data packages from a network arrangement and method
US7215662B1 (en) Logical separation and accessing of descriptor memories
US20080263171A1 (en) Peripheral device that DMAS the same data to different locations in a computer
US7239630B1 (en) Dedicated processing resources for packet header generation
US7284074B2 (en) Pipelined network processing with FIFO queues
EP1508225B1 (en) Method for data storage in external and on-chip memory in a packet switch
CN113179228B (en) Method, device, equipment and medium for improving switch stacking reliability
JP3988039B2 (en) Link switching method and link interface
US20050044261A1 (en) Method of operating a network switch
US20110149988A1 (en) Communication controller

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20041209

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20041209

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050615

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060126

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070320

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070515

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070703

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

Free format text: PAYMENT UNTIL: 20100727

Year of fee payment: 3

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110727

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120727

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120727

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130727

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees