JP5180874B2 - バッファ管理方法、及びパケット通信装置 - Google Patents

バッファ管理方法、及びパケット通信装置 Download PDF

Info

Publication number
JP5180874B2
JP5180874B2 JP2009045876A JP2009045876A JP5180874B2 JP 5180874 B2 JP5180874 B2 JP 5180874B2 JP 2009045876 A JP2009045876 A JP 2009045876A JP 2009045876 A JP2009045876 A JP 2009045876A JP 5180874 B2 JP5180874 B2 JP 5180874B2
Authority
JP
Japan
Prior art keywords
buffer
information
linked list
packet communication
communication device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009045876A
Other languages
English (en)
Other versions
JP2010200264A (ja
Inventor
英樹 遠藤
晶彦 田中
隆行 菅野
誠由 高瀬
泰輔 植田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2009045876A priority Critical patent/JP5180874B2/ja
Priority to US12/699,221 priority patent/US8243745B2/en
Publication of JP2010200264A publication Critical patent/JP2010200264A/ja
Application granted granted Critical
Publication of JP5180874B2 publication Critical patent/JP5180874B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9015Buffering arrangements for supporting a linked list
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements

Landscapes

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

Description

本発明は、パケット通信装置に関し、特にパケット、フレームを一時保持するためのバッファの動的なキューサイズ変更が可能なバッファ管理技術に関する。
近年、テレビコンテンツのデジタル化やインタネットでの動画配信サービスの普及により、ネットワーク上で大容量データを通信する需要が高まっている。このため、高速通信を安価に実現できるイーサネット(商標登録、以下同じ)が広く普及している。IP(Internet Protocol)パケットなどの大容量のユーザデータを送信する場合には、イーサネットでは複数のフレームを連続的(バースト的)に送出する。このようなバーストトラヒックを複数多重するネットワークでは、時にワイヤレートを超過するデータが流入することによりフレームの廃棄が発生する。このため、QoS(Quality of Service)を確保するために網の入口でピークレートシェーピングを行い、バースト性を解消する必要がある。この際、シェーパでは設定帯域に応じたフレーム間隔を空けたタイミングで各ユーザフローのフレームを送出するため、ユーザフロー毎にフレームをバッファに格納することが求められる。その実現方法として、一つの物理バッファを複数ユーザで共有する方式(共有バッファ方式:特許文献1)や、一つの物理バッファを仮想的に分割して各フローに割当てる方式(リンクドリスト方式:特許文献2)が一般的に知られている。
特開平10−32581号公報 特開平07−221762号公報
しかしながら、共有バッファ方式を用いる場合、バッファの使用量はシェーパへの入力帯域に比例することになる。このため、シェーパからの出力帯域が低く設定されているにもかかわらず、シェーパへの入力帯域が非常に大きなユーザフローがある場合、バッファのほとんどを当該ユーザが占領することになり、ユーザ間でQoSの公平性を保てないという課題がある。
一方、リンクドリスト方式を用いる場合、1つの物理的なバッファを等分割し、各フローへ割当てることがもっとも簡単な方法である。しかし、トラヒックのバースト長はシェーパへの入力帯域が大きいほど長くなる可能性が高いため、全ユーザフローのQoSを保証するためには、ワーストケースとなる入力帯域の大きい場合に必要なバッファ量を全フローに割当てなければならなくなる。このため、数百から数千ユーザを収容するようなシェーパの場合、膨大なバッファ量が必要となってしまう。
そこで、運用開始前に、各フローの契約帯域に応じたバッファ量を割当てる方法が考えられるが、運用開始後にユーザ収容数や収容帯域を変更することは頻繁に行われるため、各ユーザフローへのバッファ割当て量はインサービス(フレーム導通中)で変更可能であることが望ましい。しかしながら、リンクドリスト方式ではバッファチェーンをフレーム導通中に変更した場合、以下のような課題がある。まず、バッファを増設した場合には、増設した空の領域からフレームを読み出す可能性があるため、不正なフレームが送出される。さらに、バッファを減設した場合には、減設した領域にライトポインタやリードポインタがある場合には、減設後にポインタが不正な領域を指し示すことになり正常動作が望めない。
本発明の課題は、リンクドリスト方式でバッファ量を変更した場合でも、空の領域からフレームを読み出したりすることなく、正常な動作でバッファ管理を行うことが可能なバッファ管理方法、及びパケット通信装置を提供することにある。
上記の課題を解決するため、本発明においては、リンクドリスト方式のバッファを有するパケット通信装置におけるバッファ管理方法であって、パケット通信装置は、各ユーザフローに対しするリンクドリストバッファを構成するためのチェーン情報とバッファサイズ情報を運用時の領域と更新用の領域の2つの領域で保持し、リンクドリストバッファをリードライトするためのライトポインタ及びリードポインタがリンクドリストバッファを巡回したことを示す巡回情報を保持しており、通常運用中は運用時の領域のチェーン情報とバッファサイズ情報を用いてリンクドリストバッファを構築して、ユーザフローのフレームをリンクドリストバッファにリードライトし、更新用の領域のチェーン情報とバッファサイズ情報が変更されると、巡回情報が、リードポインタ、ライトポインタそれぞれがリンクドリストバッファを一巡したことを示す場合、更新用の領域の更新されたチェーン情報とバッファサイズ情報を、運用中の領域に反映してキューサイズを更新するバッファ管理方法、及びその装置を提供する。
また、パケット通信装置は、リンクドリストバッファに格納されているフレームが無くなったことを契機に、更新用の領域の更新されたチェーン情報とバッファサイズ情報を運用中の領域へ反映してキューサイズを更新する。更に、パケット通信装置は、更新用の領域のチェーン情報とバッファサイズ情報が変更されると、巡回情報が示す巡回の回数に依存して、チェーン情報の更新、あるいはリンクドリストバッファの削除されたバッファ領域の無効化の処理を行う。
すなわち、上記課題を解決するため、本発明のパケット通信装置のシェーパは、リンクドリスト方式によるバッファを有し、各ユーザフローに対してリンクドリスト方式のバッファを構成するためのチェーン情報とバッファサイズ情報を運用時の領域と更新用の領域の2つの領域に保持し、バッファをリードライトするためのポインタがバッファを一巡したことを示すフラグを保持しており、通常運用中はチェーン情報とバッファサイズ情報の運用時の領域の情報を用いてバッファが構築され、各ユーザフローのフレームをバッファにリードライトし、チェーン情報とバッファサイズ情報のそれぞれの更新用の領域が変更されると、リードポインタ、ライトポインタの両方がそれぞれバッファを一巡するか、バッファに格納されているフレームがなくなったことを契機に、更新用の領域の更新されたチェーン情報とバッファサイズ情報を運用中の領域の該当情報とし、キューサイズを動的に変更することが可能な構成とする。
本発明によれば、複数ユーザに対するピークレートシェーピングなど、複数ユーザフロー毎にフレームをバッファに格納することが必要な場合に、フレーム導通中であっても各ユーザが必要なバッファのサイズをフレーム廃棄なく変更可能であるため、ユーザの要望するQoSが頻繁に変わるようなサービスにも柔軟に対応できる。
リンクドリスト方式バッファを有するパケット転送装置の概略ブロック図である。 第1の実施例に係わる、パケット転送装置の概略ブロック図である。 第1の実施例に係わる、通信システムに流れる通信フレームのフォーマットを示す図である。 第1の実施例に係わる、ユーザアクセス装置であるNIFの入力フレームに付加される装置内ヘッダのフォーマットを示す図である。 図2の入力ヘッダ処理部が備えるヘッダ処理テーブルを示す図である。 図2の出力フレームバッファ制御部の一構成を示すブロック図である。 図2の出力フレームバッファ制御部が備えるキュー管理テーブルを示す図である。 図2の出力フレームバッファ制御部が備えるチェーンテーブルを示す図である。 図2の出力フレームバッファ制御部が実行するバッファ書込み処理のフローチャートである。 図2の出力フレームバッファ制御部が実行するライトポインタ更新処理のフローチャートである。 図2の出力フレームバッファ制御部が実行するバッファ読出し処理のフローチャートである。 図2の出力フレームバッファ制御部が実行するリードポインタ更新処理のフローチャートである。 第1の実施例に係わる、リンクドリスト方式バッファの増設の概要の一例を示す図である。 第1の実施例に係わる、リンクドリスト方式バッファの減設の概要の一例を示す図である。 第2の実施例に係わる、図2の出力フレームバッファ制御部が備えるキュー管理テーブルの一例を示す図である。 第2の実施例に係わる、図2の出力フレームバッファ制御部が備えるチェーンテーブルの一例を示す図である。 第2の実施例に係わる、図2の出力フレームバッファ制御部が実行するライトポインタ更新処理のフローチャートである。 第2の実施例に係わる、図2の出力フレームバッファ制御部が実行するリードポインタ更新処理のフローチャートである。 第2の実施例に係わる、リンクドリスト方式バッファの減設の概要の一例を示す図である。
以下、本発明の実施例について図面を参照して説明するが、まずその前提となるリンクドリスト方式バッファを図1に従い説明する。
図1に見るように、リンクドリスト方式バッファでは、物理的なフレームバッファが一定の容量のバンク200に分割されており、各バンクアドレスに対応してチェーンテーブル24が存在する。このチェーンテーブル24には、各バンク200の接続された次のバンクアドレス240が格納されており、この次バンクアドレス240を辿っていくことによりリンクドリスバッファのアクセスが可能となる。図1では、フレームバッファのバンク#1:200−1、バンク#3:200−3、バンク#N:200−Nを用いてリンクドリストバッファを構成した例を示す。バンク#1:200−1に対応するチェーンテーブル24の次バンクアドレス240−1にはバンク#3:200−3と設定されているため、次にバンク#3:200−3へのアクセスが可能となる。さらに、バンク#3:200−3の次バンクアドレス240−3にはバンク#N:200−Nが設定されており、バンク#N:200−Nの次バンクアドレス240−Nにはバンク#1:200−1が設定されているため、チェーンが一周し、リンクドリストバッファが構成されていることがわかる。本発明は、このバンク200の個数(キューサイズ)をフレーム導通中(運用中)でも増減可能とするバッファ管理技術を提供するものである。
フレーム導通中(運用中)にキューサイズを変更する第1の実施例の概要を図13、図14を用いて説明する。
本実施例のバッファ管理方法では、フレームバッファ2000中の各バンクに対するチェーン情報構造を示す次バンクアドレスを運用次バンクアドレス2402と更新次バンクアドレス2403の2面保持し、キューサイズに関しても運用キューサイズ2304と更新キューサイズの2305の2面保持する。通常時のバッファ管理は運用次バンクアドレス2402および運用キューサイズ2304を用いており、キューサイズを変更したい場合は更新次バンクアドレス2403および更新キューサイズ2305を変更する。
図13はフレームバッファ2000中のバンクのキューサイズの増設の概要を示した図である。増加前の運用キューサイズ2304は4バンクであり、4バンクが接続されたチェーン構造を運用次バンクアドレス2402として保持している。これに対して、更新キューサイズ2305は6バンクと設定し、チェーン構造も更新次バンクアドレス2403のように書き換えている。
一方、図14はフレームバッファ2000中のバンクのキューサイズの減設の概要を示した図である。減設前の運用キューサイズ2304は6バンクであり、6バンクが接続されたチェーン構造を運用次バンクアドレス2402として保持している。これに対して、更新キューサイズ2305は4バンクと設定し、チェーン構造も更新次バンクアドレス2403のように書き換えている。
図13および図14のような状態で、キューサイズの変更開始のトリガを与える(後述するキューサイズ変更完了フラグ2311、WP(Write Pointer)周回フラグ2309、RP(Read Pointer)周回フラグ2310を‘0’に設定する)ことで、キューサイズ更新処理が開始され、ライトポインタおよびリードポインタがともに周回した(バッファ2000の先頭に戻った)ことを検出すると更新次バンクアドレス2403を運用次バンクアドレス2402にコピー、および更新キューサイズ2305を運用キューサイズ2304にコピー処理を実施し、このコピー処理が終了(リードポインタに2回目の周回が発生)したことを検出するとキューサイズの増設処理を完了(キューサイズ変更完了フラグ2311に‘1’を設定)する。ただし、バッファ2000からフレームを読み出した結果、バッファ2000にフレームがなくなった場合には、ライトポインタとリードポインタの周回を待たずに即時キューサイズの変更が可能であるため、各ポインタをバッファの先頭に初期化してしまうことが必要である。この機能がなく、各ポインタの周回のみでキューサイズ更新してしまうと、フレームが全く通らない場合に、キューサイズの変更が完了しないことになってしまう。
このように、本実施例の構成によれば、バッファ2000のチェーン情報やキューサイズを2面保持し、ライトポインタとリードポインタの周回状況を利用することで、運用中のキューサイズは変更可能となる。
図2は、本実施例のパケット通信装置であるパケット転送装置10Nの一構成例を示すブロック図である。
パケット転送装置10Nは、複数のネットワークインタフェースボード(NIF)10(10−1〜10−n)と、これらのNIFに接続されたフレーム中継部15からなる。
各NIF10は、FPGA(Field Programmable Gate Array)や専用ASIC(Application Specific Integrated Circuit)等で構成され、通信ポートとなる入出力回線インタフェース11と、処理部、制御部として機能する中央処理部(Central Processing Unit:CPU)と、テーブル等を記憶する記憶部であるメモリを備え、通信ポートを介して、他のパケット通信装置と接続されている。本実施例では、入出力回線インタフェース11は、イーサネット用の回線インタフェースとなっている。
ユーザアクセス装置として機能する各NIF10は、これらの入出力回線インタフェース11に接続された入力ヘッダ処理部12と、入力ヘッダ処理部12に接続された入力フレームバッファ制御部13を有する。また、各NIF10は、フレーム中継部15に接続されたSWインタフェース14と、このSWインタフェースに接続された出力フレームヘッダ処理部16と、出力フレームヘッダ処理部16に接続された出力フレームバッファ制御部17とを有する。さらに、NIF 10は、NIFの全体ブロックやテーブルを管理、設定するNIF管理部18を有する。これら処理部、制御部、管理部は、上記のCPUにおけるプログラム処理によって実現できるため、以下ではこれらの処理機能を実現するCPUを処理部として総称し、主にこの処理部におけるプログラム処理を示すフォローチャートを用いて種々の処理機能を説明する。これらの処理プログラムは図示されない記憶部としてメモリに予め記憶されているか、必要に応じてネットワークを使って導入されることは言うまでもない。
さて、入出力回線インタフェース11は、入力回線から図3に示すフォーマットの通信フレーム40を受信すると、図7に示す装置内ヘッダ41を付加する。
通信フレーム40は、宛先MACアドレス401、送信元MACアドレス402、VLANタグ403、後続ヘッダの種類を示すタイプ値404からなるMACヘッダと、ペイロード405と、フレームチェックシーケンス(FCS)406とからなる。
宛先MACアドレス401と送信元MACアドレス402には、パケット転送装置10Aまたは10N、または端末70のMACアドレスが設定される。VLANタグ403は、フロー識別子となるVLAN IDの値(VID♯)を示している。
装置内ヘッダ41は、出力ネットワークインタフェースボード識別子(NIF ID)411と、フローID412と、フレーム長413とを示す複数のフィールドとからなっている。このうち、NIF ID411は、内部ルーティング情報となっており、フレーム中継部15は、この内部ルーティング情報に従って、入力フレームを特定のネットワークインタフェースボードの特定のSWインタフェースに転送する。
入出力回線インタフェース11が、受信フレームに装置内ヘッダ41を付加した時点では、出力NIF ID411、フローID412は空欄となっている。これらのフィールドには、入力ヘッダ処理部12によって有効値が設定される。
入力ヘッダ処理部12は、ヘッダ処理テ−ブル21を参照して、各入力フレームの装置内ヘッダ41にNIF ID411、フローID412の値を追加する。
図5はヘッダ処理テ−ブル21の一例を示す構成図である。
ヘッダ処理テ−ブル21は、NIF管理部18が設定を行うテーブルであり、VLAN ID2101を検索キーとして、タグ処理2102と、新VLAN ID2103と、CoS(Class of Service)処理2104と、新CoS2105と、出力NIF ID2106と、フローID2107、送信元MACアドレス2108と、宛先MACアドレス2109とを示すテーブルエントリを検索するためのものである。ここで、タグ処理2102は、VLANタグの透過、変換、付与、削除などの処理方法を示し、新VLAN ID2103は、タグ処理2102が変換または付与と設定された場合にVLANタグに書き込む新たなVLAN IDを設定する。また、CoS処理2104は、VLANタグの中のCoSの変換、コピーなどの処理方法を示し、新CoS2105は、CoS処理2104が変換と設定された場合にVLANタグに書き込む新たなCoSを設定する。送信元MACアドレス2108は、入出力回線インタフェース11がもつMACアドレスであり、宛先MACアドレス2109は、上記入出力回線インタフェース11を介して接続されたフレームの宛先となるパケット転送装置のMACアドレスを示している。
入力ヘッダ処理部12は、フレームを受信すると、ヘッダ情報テーブル21から、入力フレームのVLANタグ403が示すVIDの値(VID♯)と対応するテーブルエントリを検索し、このテーブルエントリが示すタグ処理2102、CoS処理2105に従ってVLANタグ処理を行い、送信元MACアドレス2108、宛先MACアドレス2109を適用して、入力フレーム40のヘッダ処理を行う。さらに、入力ヘッダ処理部12は、上述のテーブルエントリが示す出力NIF ID2106、フローID2107の値を装置内ヘッダ41に上書きして、入力フレームを入力フレームバッファ制御部13に転送する。
入力フレームバッファ制御部13は、入力ヘッダ処理部12からフレームを受信すると、入力フレームバッファ19にフレームを格納する。さらに、入力フレームバッファ19に蓄積されたフレームを読み出し、フレーム間ギャップを調整してSWインタフェース12に送信する。
フレーム中継部15は、各インタフェースボード(NIF)のSWインタフェース14から入力フレームを受け取り、その装置内ヘッダが示す出力NIF ID411で特定されるインタフェースボード(NIF)のSWインタフェース14に、出力フレームとして転送する。
各SWインタフェース14が受信した出力フレームは、次々と出力ヘッダ処理部16に供給される。本実施例では、入力フレームから出力フレームへのフォーマット変換を入力ヘッダ処理部12で行ったが、このフォーマット変換機能は、出力ヘッダ処理部16にヘッダ変換に必要な情報を記憶したヘッダ変換テーブル22を設けて、出力ヘッダ処理部16で実行するようにしもよい。入力ヘッダ処理部12でヘッダ変換を行った場合は、出力ヘッダ処理部16は、SWインタフェース14から受信した出力フレームをそのまま出力フレームバッファ制御部17に送信する。
出力フレームバッファ制御部17は、出力フレームをフロー毎の出力フレームバッファ20に蓄積する。出力フレームバッファ制御部17は、蓄積された出力フレームを帯域管理テーブル25に設定されたフロー毎の帯域情報を用いてシェーピングしながら出力フレームバッファ20から読出し、入出力回線インタフェース11に送出する。
入出力回線インタフェース11は、受信した出力フレームから装置内ヘッダ41を除去し、図4または図5に示したフォーマットで出力フレームを出力回線に送出する。
図6は図2の出力フレームバッファ制御部17の一例を示す機能ブロック図である。
出力フレームバッファ制御部17は、バッファ書込み処理部171と、バッファ読出し処理部172と、帯域管理部173とからなるが、これらは上述したCPUのプログラム処理等で実現できることは言うまでもない。なお、以下、本実施例の説明は出力フレームバッファ制御部の構成に基づき説明するが、本構成は入力フレームバッファ制御部の構成に適用することもできる。この場合、出力ヘッダ制御部16および出力フレームバッファ20は、入力ヘッダ処理部12および入力フレームバッファ19等、適宜変更されることは言うまでもない。
さて、図6のバッファ書込み処理部171は、出力ヘッダ処理部16からのフレームを受信すると、図9を用いて後ほど詳述するバッファ書込み処理を実施し、フレームをバッファ20に格納し、格納したフレームのフローID412やフレーム長413とフレーム格納通知を帯域管理部173に送信する。帯域管理部173は、バッファ書込み処理部171からこのフレーム格納通知を受信すると、フローID412を用いて帯域管理テーブル25を検索し、当該フレームの読出しタイミングを決定し、フレーム出力リスト1731にフローID412を格納する。フレーム出力リスト1731は時刻と各エントリが1対1で対応した構造になっており、このフレーム出力リスト1731のどのエントリに登録したかで読み出しタイミングが一意に決定できる。
帯域管理部173は、このフレーム出力リスト1731の各エントリを一定間隔でリードしフローID412が格納されていればそれを取得し、フレーム送信要求とともにバッファ読出し処理部172へ通知する(なお、帯域管理部の処理は本発明と直接関係がないため、詳細は割愛する)。バッファ読出し処理部172は、上述のフレーム送信要求を受信するとフレーム送信処理(S300)を行い、フレームバッファ20からフレームを読出し、入出力回線インタフェース11に出力する。
図9は、バッファ書込み処理部171が実行するバッファ書込み処理(S100)のフローチャートを示している。
バッファ書込み処理部171は、出力ヘッダ処理部16からフレームを受信すると、受信フレームの装置内ヘッダ41からフローID412と、フレーム長413とを取得し、キュー管理テーブル23を検索する(S101)。
キュー管理テ−ブル23は、図7にその一例を示すように、NIF10のNIF管理部18が設定を行うテーブルであり、フローID2301を検索キーとして、先頭バンクアドレス2302と、A/D2303と、運用キューサイズ2304と、更新キューサイズ2306と、格納バイト数2306と、ライトポインタ2307と、リードポインタ2308と、WP周回フラグ2309と、RP周回フラグ2310と、キューサイズ変更完了フラグ2311とを示すテーブルエントリを検索するためのものである。ここで、先頭バンクアドレス2302は、当該フローのリンクドリストバッファの先頭となるバンク200のアドレスを示し、A/D2303は運用中のキューサイズの増減動作(‘0’:バッファ増設、‘1’:バッファ減設)を示し、運用キューサイズ2304は、当該フローの運用するキューサイズを示し、更新キューサイズ2305は、当該フローの運用キューサイズを変更する場合の変更後のキューサイズを示し、格納バイト数2306は、当該フローのバッファに格納されているバイト数を示し、ライトポインタ2307は、当該フローのバッファのライト開始アドレスを示し、リードポインタ2308は、当該フローのバッファのリード開始アドレスを示す。ここで、ライトポインタ2307およびリードポインタ2308の上位Xbitが当該バンク200のバンクアドレスを示し、下位Ybitがバンク200内のアドレスを示している。さらに、WP周回フラグ2309は、ライトポインタ2308がバッファの先頭バンクアドレスに戻った(周回した)ことを示すフラグであり、RD周回フラグ2310は、リードポインタ2309がバッファの先頭バンクアドレスに戻った(周回した)ことを示すフラグであり、キューサイズ変更完了フラグ2311は、運用中のキューサイズの変更が完了したことを示す各フィールドである。
図9に戻り、バッファ書込み処理部171は、キュー管理テーブル23を検索し、フィールド情報を取得すると、格納バイト数2306+フレーム長413で格納バイト数2306を上書きし(S102)、この格納バイト数2306が運用キューサイズ2304よりも大きいか比較し(S103)、格納バイト数2306が運用キューサイズ2304を上回っている場合、バッファオーバフローとなり、フレームを廃棄し(S107)、処理終了となる(S108)。一方、比較の結果、格納バイト数2306が運用キューサイズ2304以下である場合、ライトポインタ2307を用いてフレームをバッファに格納し(S104)、ライトポインタ2307の更新処理(S200)を実施し、更新したライトポインタ2307や格納バイト数2306をキュー管理テーブル23へ書込み(S105)、帯域管理部173に、格納したフレームのフローID412およびフレーム長413とともにフレーム格納通知を送信し(S106)、処理終了となる(S108)。
図10に図9のライトポインタ更新処理(S200)の一例を示す。まず今回のフレーム長413分の書込みの結果、バンクの移動になるかどうかを判定し(S201)、バンクの移動がなければライトポインタ2307にフレーム長413を加算して(S202)、処理終了となる(S216)。一方、上記判定の結果バンクが移動する場合、ライトポインタ2307の上位Xbitでチェーンテーブル24を検索する(S203)。
チェーンテーブル24は、NIF管理部18が設定を行うテーブルであり、リードポインタ2307またはリードポインタ2308の上位Xbitのバンクアドレス2401を検索キーとして、運用次バンクアドレス2402と、更新次バンクアドレス2403とを示すテーブルエントリを検索するためのものである。図13、図14で説明したように、運用次バンクアドレス2402は、運用中のチェーン情報となる次バンクアドレスを示し、更新次バンクアドレス2403は、運用キューサイズを変更する場合のチェーンの組み換えが発生する場合の変更後の次バンクアドレスを示す。
バッファ書込み処理部171は、チェーンテーブル24を検索し、チェーン情報を取得した後、キュー管理テーブル23から取得済みのキューサイズ変更完了フラグ2311を検査し(S204)、‘0’(変更未完了)である場合、RP周回フラグ2310を検査し(S205)、‘0’(リードポインタ2308未周回)である場合、WP周回フラグ2309を検査し(S206)、‘0’(ライトポインタ2307未周回)である場合、運用次バンクアドレス2402とフレーム長413を用いてライトポインタ2307を更新し(S207)、運用次バンクアドレス2402とキュー管理テーブル23から取得済みの先頭バンクアドレス2302と比較し(S208)、一致していなければそのまま処理終了となる(S216)。一方、S208において運用次バンクアドレス2402と先頭バンクアドレス2302が一致した場合、WP周回フラグ2309に‘1’を上書し(S209)、処理終了となる(S216)。
上記のS206にてWP周回フラグ2309が‘1’(ライトポインタ2307周回)であれば、更新次バンクアドレス2403とフレーム長413を用いてライトポインタ2407を更新し(S210)、A/D2303を検査し、‘0’(キューサイズ増加)の場合、処理終了となる(S216)。一方、上記のA/D2303が‘1’(キューサイズ減設)の場合、更新次バンクアドレス2403とキュー管理テーブル23から取得済みの先頭バンクアドレス2302と比較し(S212)、一致していればオーバフローとしてフレームを廃棄し(S213)、処理終了となる(S216)。一方、S212にて更新次バンクアドレス2403と先頭バンクアドレス2302が一致していなければ、そのまま処理終了となる(S216)。
上記のS205にてRP周回フラグ2310が‘1’(リードポインタ2308周回)であれば、更新次バンクアドレス2403とフレーム長413を用いてライトポインタ2407を更新し(S214)、処理終了となる(S216)。
上記のS204にてキューサイズ変更完了フラグ2311が‘1’(変更完了)であれば、運用次バンクアドレス2402とフレーム長413を用いてライトポインタ2407を更新し(S215)、処理終了となる(S216)。
図11は、バッフ読出し処理部172が、帯域管理部173からのフレーム送信要求受信に応じて実行するバッファ読出し処理(S300)のフローチャートを示している。
フレーム読出し処理部172は、フレーム送出要求を受信すると、同時に帯域管理部173から出力されるフローID412を用いてキュー管理テーブル23を検索し(S301)、リードポインタ2308を用いてフレームをバッファから読み出して送出開始し(S302)、格納バイト数2306から読み出したバッファから読み出したフレーム長413を減算し上書きし(S303)、リードポインタ更新処理(S400)を行い、更新後のリードポインタ2308や格納バイト数2306などをキュー管理テーブル23へ書込み(S304)、処理終了となる(S305)。
図12に図11のリードポインタ更新処理(S400)の一例を示す。まず、リードポインタ2308の上位Xbitのバンクアドレスでチェーンテーブル24を検索し(S401)、今回のフレーム長413分の読出しの結果、バンクの移動になるかどうかを判定し(S402)、バンクの移動がない場合はリードポインタ2308にフレーム長413を加算して上書きし(S403)、RP周回フラグ2310が‘1’かつキューサイズ完了フラグ2311が‘0’かを検査し(S404)、RP周回フラグ2310が‘1’かつキューサイズ完了フラグ2311が‘0’でなければそのまま処理を終了する(S414)。
S402にて、今回のフレーム長413分の読出しの結果バンクを移動する場合、運用次バンクアドレス2402とフレーム長413を用いてリードポインタ2308を更新し(S405)、RP周回フラグ2310を検査し(S406)、‘0’(リードポインタ2308未周回)であれば、上記更新した格納バイト数2306を検査し(S412)、‘0’でなければ運用次バンクアドレス2402と先頭バンクアドレス2302を比較し(S407)、不一致であれば終了する(S414)。一方、運用次バンクアドレス2402と先頭バンクアドレス2302が一致していれば、リードポインタ2308に1回目の周回が発生したためRP周回フラグ2310に‘1’を上書きし(S408)、終了する(S414)。
一方、S412にて、格納バイト数2306が‘0’(バッファ空)であれば、本バッファのキューサイズ変更を即時有効とするため、ライトポインタ2307とリードポインタ2308を先頭バンクアドレス2302の先頭に設定し、RP周回フラグ2310に‘1’を設定し(S413)、処理を終了する(S414)。ここで、即時キューサイズ変更完了フラグを‘1’としないのは、リードポインタ2308がバッファを1回周回してから(RP周回フラグが‘1’が立ってから)もう一度リードポインタ2308が周回するまでの間に、チェーン情報を更新する(運用次バンクアドレス2402に更新次バンクアドレス2403をコピーする)ためである。
S406にて、RP周回フラグ2310が‘1’(リードポインタ2308が1回周回)であれば終了する(S414)。
S404にて、RP周回フラグ2310が‘1’かつキューサイズ完了フラグ2311が‘0’であれば、運用次バンクアドレス2402に更新次バンクアドレス2403をコピーしてチェーンテーブル24に書き戻し(S409)、運用次バンクアドレス2402と先頭バンクアドレス2302を比較し(S410)、一致していなければS412以降の処理を実施する。一方、運用次バンクアドレス2402と先頭バンクアドレス2302が一致している場合、リードポインタ2308に2回目の周回が発生したことになるため、キューサイズ変更完了フラグ2311に‘1’(変更完了)を上書きし、運用キューサイズ2304に更新キューサイズ2305をコピーし(S411)、終了する(S414)。
上記において、運用中のキューサイズを変更する場合、NIF管理部18は、まずチェーンテーブル24の更新次バンクアドレス2403に新たなチェーン情報を設定し、その後、キュー管理テーブル23の更新キューサイズ2305に新たなキューサイズ、A/D 2303に増加(‘0’)または減設(‘1’)を設定し、WP周回フラグ2309、RP周回フラグ2310、キューサイズ変更完了フラグ2311にそれぞれ‘0’を設定する。これにより、出力フレームバッファ制御部17は、WP周回フラグ2309、RP周回フラグ2310、キューサイズ変更完了フラグ2311がそれぞれ‘0’であることから、キューサイズの変更処理が必要である事を認識し、上述のフローチャートに従って、キューサイズの更新を行う。ここで、バンクの増減設は、リンクドリストバッファの末尾から行うことが必須であり、さらに先頭バンクアドレス2302を含んではならない。
続いて、第二の実施例として、キューサイズが減設された場合に、減設され開放された領域を無効状態にするリンクドリストバッファの管理方法を説明する。本実施例のパケット通信装置の構成は、実施例1の図2と全く同様の構成であるが、チェーンテーブル24、キュー管理テーブル23、ライトポインタ更新処理(S200)、リードポインタ更新処理(S400)が、以下に説明する点で違いを有している。
図19は、キューサイズが減設された場合に、減設された領域のフレームバッファを開放する方法の概要を示す。
本実施例のリンクドリストバッファにおいて、運用中にキューサイズを減設した場合、バンクのどの領域が解放されたのかを把握し、新たに他のフローにバンクを割当てる場合は、開放されているバンクを使用するように管理する必要がある。このため、図19のようにフレームバッファ2000のキューサイズを6バンクから4バンクに減設した場合に、開放した領域(バンク#5、バンク#6)を無効状態にすることが求められる。
図16は、上記のようなバッファの開放を行うために、使用中フラグ2404のフィールドを追加したチェーンテーブル24を示す。
使用中フラグ2404は、当該エントリに対応するバンクが使用されているかどうかを示すフラグであり、使用中フラグ‘1’なら当該バンクが使用されていることを示し、‘0’なら開放されていることを示す。
図15は、上述したバッファの開放を行うために、WP周回カウンタ2312、RP周回カウンタ2313、および無効化フラグ2314のフィールドを備えたキュー管理テーブル23を示す。
上述したバッファの開放を実現するためには、ライトポインタ2307とリードポインタ2308が1回周回したことを検出し、各ポインタが削減されるバンクに存在しないことをトリガとしてチェーン情報を更新するだけでなく、もう一回周回させることにより、削減されたバンク領域の使用中フラグ2404を‘1’から‘0’に設定し、バンクを開放することが求められる。このため、WP周回フラグ2309、RP周回フラグ2310に代え、ライトポインタ2307とリードポインタ2308の周回数をカウントするWP周回カウンタ2312およびRP周回カウンタ2313を有する。さらに、図19に示される通り、開放するバンク領域は、バッファの途中からバンクの末尾までであるため、二回目の周回時にバッファの開放処理を開始した情報として無効化フラグ2314が必要である。
図17は、図9、10のライトポインタ更新処理(S200)の代わりにバッファ書込み部171にて行う、バッファ開放処理を加えたライトポインタ更新処理(S500)の内容を示す。
図17に示すライトポインタ更新処理(S500)では、まず今回のフレーム長413分の書込みの結果バンクを移動になるかどうかを判定し(S501)、バンクの移動がなければライトポインタ2307にフレーム長413を加算して(S502)、処理終了となる(S516)。一方、上記判定の結果バンクが移動する場合、ライトポインタ2307の上位Xbitで図16のチェーンテーブル24を検索する(S503)。
上記チェーンテーブル24を検索し、チェーン情報を取得した後、図15のキュー管理テーブル23から取得済みのキューサイズ変更完了フラグ2311を検査し(S504)、‘0’(変更未完了)である場合、RP周回カウンタ2313を検査し(S505)、“2”未満である場合、WP周回カウンタ2312を検査し(S506)、“2”未満である場合、運用次バンクアドレス2402とフレーム長413を用いてライトポインタ2307を更新し(S507)、運用次バンクアドレス2402とキュー管理テーブル23から取得済みの先頭バンクアドレス2302と比較し(S508)、一致していなければそのまま処理終了となる(S516)。一方、S508において運用次バンクアドレス2402と先頭バンクアドレス2302が一致した場合、WP周回カウンタ2312を‘1’カウントアップし(S509)、処理終了となる(S516)。
上記のS506にてWP周回カウンタ2312が“2”以上であれば、更新次バンクアドレス2403とフレーム長413を用いてライトポインタ2407を更新し(S510)、A/D2303を検査し、‘0’(キューサイズ増加)の場合、処理終了となる(S516)。一方、A/D2303が‘1’(キューサイズ減設)の場合、更新次バンクアドレス2403とキュー管理テーブル23から取得済みの先頭バンクアドレス2302と比較し(S512)、一致していればオーバフローとしてフレームを廃棄し(S513)、処理終了となる(S516)。一方、S512にて更新次バンクアドレス2403と先頭バンクアドレス2302が一致してば、そのまま処理終了となる(S516)。
上記S505にてRP周回カウンタ2313が“2”以上であれば、更新次バンクアドレス2403とフレーム長413を用いてライトポインタ2407を更新し(S514)、処理終了となる(S516)。
上記のS504にてキューサイズ変更完了フラグ2311が‘1’(変更完了)であれば、運用次バンクアドレス2402とフレーム長413を用いてライトポインタ2407を更新し(S515)、処理終了となる(S516)。
図18は、図11、12に示したリードポインタ更新処理(S400)の代わりにバッファ読出し部172にて行う、バッファ開放処理を加えたリードポインタ更新処理(S600)の内容を示す。
図18に示すリードポインタ更新処理(S600)では、リードポインタ2308の上位Xbitのバンクアドレスで図16のチェーンテーブル24を検索し(S601)、今回のフレーム長413分の読出しの結果バンクを移動になるかどうかを判定し(S602)、バンクの移動がない場合はリードポインタ2308にフレーム長413を加算して上書きし(S603)、RP周回カウンタ2313が“2”以上かつキューサイズ完了フラグ2311が‘0’かを検査し(S604)、RP周回カウンタ2313が“2”以上かつキューサイズ完了フラグ2311が‘0’でなければそのまま処理を終了する(S623)。
S602にて、今回のフレーム長413分の読出しの結果バンクを移動する場合、運用次バンクアドレス2402とフレーム長413を用いてリードポインタ2308を更新し(S605)、RP周回カウンタ2313が“2”以上またはキューサイズ完了フラグ2311が‘1’かを検査し(S606)、RP周回カウンタ2313が“2”以上またはキューサイズ完了フラグ2311が‘1’でなければ、上記更新した格納バイト数2306を検査し(S607)、‘0’(バッファ空)であれば、本バッファのキューサイズ変更を即時有効とするため、ライトポインタ2307とリードポインタ2308を先頭バンクアドレス2302の先頭に設定し、WP周回カウンタ2312に“2”、RP周回カウンタ2313に‘1’を設定する(S608)。ここで、即時キューサイズ変更完了フラグを‘1’、RP周回フラグを“2”としないのは、リードポインタ2308がバッファを1回周回してから(RP周回カウンタ2313が‘1’となってから)もう一度リードポインタ2308が周回するまでの間に、チェーンテーブル24の使用中フラグ2404を‘0’としバッファを開放し、さらにもう一度リードポインタ2308が周回する(二回転から三回転)までの間に、チェーン情報を更新(運用次バンクアドレス2402に更新次バンクアドレス2403をコピーする)するためである。
上述の処理後、または上記S607にて格納バイト数2306が‘0’でなければ、RP周回カウンタ2313を検査し(S609)、‘0’であれば運用次バンクアドレス2402と先頭バンクアドレス2302を比較し(S610)、不一致であれば終了する(S623)。一方、運用次バンクアドレス2402と先頭バンクアドレス2302が一致していれば、リードポインタ2308に1回目の周回が発生したためRP周回カウンタ2313を‘1’カウントアップし(S611)、A/D 2303を検査し(S612)、‘0’(キューサイズ減設)であればそのまま終了する(S623)。一方、A/D 2303が‘1’(キューサイズ増設)であれば、WP周回カウンタ2312およびRP周回カウンタ2313に“2”を設定し、無効化フラグ2314に‘1’を設定し、終了する(S623)。これは、キューサイズ増設の場合は、バッファ開放処理は行う必要がないためである。ただし、チェーン情報の更新処理は必要であるため、キューサイズ変更完了フラグ2311は‘1’には設定しない。
S609にて、RP周回カウンタ2313が‘1’(リードポインタ2308が1回周回)であれば、無効化フラグ2314を検査し(S614)、‘0’であれば運用次バンクアドレス2402と更新次バンクアドレス2403を比較し(S615)、一致していれば終了する(S623)。一方、運用次バンクアドレス2402と更新次バンクアドレス2403を比較し不一致であれば、バッファ開放処理を開始するため無効化フラグ2314に‘1’を設定し、終了する(S623)。
S614にて、無効化フラグ2314が‘1’であれば、バッファ開放処理中であるため、リードポインタ2308の上位Xbitのバンクアドレスに対応する図16のチェーンテーブル24の使用中フラグ2404を‘0’(開放)し(S617)、更新次バンクアドレス2403と先頭バンクアドレス2302を比較し(S618)、不一致であれば終了する(S623)。一方、更新次バンクアドレス2403と先頭バンクアドレス2302が一致していれば、リードポインタ2308に2回目の周回が発生したためRP周回カウンタ2313を‘1’カウントアップし(S619)、終了する(S623)。
上記のS606にて、RP周回カウンタ2313が“2”以上またはキューサイズ完了フラグ2311が‘1’であれば、そのまま終了する(S623)。
S604にて、RP周回カウンタ2313が“2”以上かつキューサイズ完了フラグ2311が‘0’であれば、運用次バンクアドレス2402に更新次バンクアドレス2403をコピーしてチェーンテーブル24に書き戻し(S20)、運用次バンクアドレス2402と先頭バンクアドレス2302を比較し(S621)、一致していなければ終了する(S623)。一方、運用次バンクアドレス2402と先頭バンクアドレス2302が一致している場合、リードポインタ2308に3回目の周回が発生したことになるため、キューサイズ変更完了フラグ2311に‘1’(変更完了)を上書きし、運用キューサイズ2304に更新キューサイズ2305をコピーし(S622)、終了する(S623)。
ここで、運用中のキューサイズを変更する場合、NIF管理部18は、まずチェーンテーブル24の更新次バンクアドレス2403に新たなチェーン情報を設定し、その後、キュー管理テーブル23の更新キューサイズ2305に新たなキューサイズ、A/D 2303に増加(‘0’)または減設(‘1’)を設定し、WP周回カウンタ2312、RP周回カウンタ2313、無効化フラグ2314、キューサイズ変更完了フラグ2311にそれぞれ‘0’を設定する。これにより、出力フレームバッファ制御部17は、WP周回カウンタ2312、RP周回カウンタ2313、無効化フラグ2314、キューサイズ変更完了フラグ2311がそれぞれ‘0’であることから、キューサイズの変更処理が必要である事を認識し、上記フローチャートに従って、キューサイズの更新を行う。ここで、バンクの増減設は、リンクドリストバッファの末尾から行うことが必須であり、さらに先頭バンクアドレス2302を含んではならない。
本発明は、パケット通信システムに関し、特にユーザ拠点に設置されるアクセス装置の遠隔制御を行う際の制御経路冗長化が可能なパケット通信装置として有用である。
10…ネットワークインタフェースボード(NIF)
11…入出力回線IF(ポート)
12…入出力ヘッダ処理部
13…入力フレームバッファ制御部
14…SW IF
15…フレーム中継部
16…出力ヘッダ処理部
17…出力フレームバッファ制御部
171…バッファ書込み処理部
172…バッファ読出し処理部
173…帯域管理部
1731…フレーム出力リスト
18…NIF管理部
19…入力フレームバッファ
20…出力フレームバッファ
200、2000…フレームバッファ
21…ヘッダ処理テーブル
22…ヘッダ変換テーブル
23…キュー管理テーブル
2304…運用キューサイズ
2305…更新キューサイズ
24…チェーンテーブル
25…帯域管理テーブル
2402…運用次バンクアドレス
2403…更新次バンクアドレス
40…入力フレーム
41…装置内ヘッダ。

Claims (15)

  1. リンクドリスト方式のバッファを有するパケット通信装置におけるバッファ管理方法であって、
    前記パケット通信装置は、
    各ユーザフローに対しするリンクドリストバッファを構成するためのチェーン情報とバッファサイズ情報を運用時の領域と更新用の領域の2つの領域で保持し、
    前記リンクドリストバッファをリードライトするためのライトポインタ及びリードポインタが前記リンクドリストバッファを巡回したことを示す巡回情報を保持しており、
    通常運用中は前記運用時の領域の前記チェーン情報と前記バッファサイズ情報を用いて前記リンクドリストバッファを構築して、前記ユーザフローのフレームを前記リンクドリストバッファにリードライトし、
    前記更新用の領域の前記チェーン情報と前記バッファサイズ情報が変更されると、前記巡回情報が、前記リードポインタ、前記ライトポインタそれぞれが前記リンクドリストバッファの先頭に戻ったことを示した場合、前記更新用の領域の変更された前記チェーン情報と前記バッファサイズ情報を、前記運用中の領域に反映してキューサイズを更新する、
    ことを特徴とするバッファ管理方法。
  2. 請求項1に記載のバッファ管理方法であって、
    前記パケット通信装置は、
    前記リンクドリストバッファに格納されている前記フレームが無くなったことを契機に、
    前記更新用の領域の変更された前記チェーン情報と前記バッファサイズ情報を前記運用中の領域へ反映し、前記キューサイズを更新する、
    ことを特徴とするバッファ管理方法。
  3. 請求項1に記載のバッファ管理方法であって、
    前記パケット通信装置は、
    前記更新用の領域の前記チェーン情報と前記バッファサイズ情報が変更されると、前記巡回情報が示す巡回の回数に依存して、前記チェーン情報の更新、あるいは前記リンクドリストバッファの削除されたバッファ領域の無効化の処理を行う、
    ことを特徴とするバッファ管理方法。
  4. 請求項1記載のバッファ管理方法であって、
    前記パケット通信装置は、
    前記キューサイズの更新が前記キューサイズの削減の場合に、前記キューサイズが更新される前のバッファオーバフロー判定に、変更された前記チェーン情報を使用する、
    ことを特徴とするバッファ管理方法。
  5. 請求項3に記載のバッファ管理方法であって、
    前記パケット通信装置は、
    前記リンクドリストバッファの使用中を示す使用中フラグを保持し、無効化された前記バッファ領域に対応する前記使用中フラグを変更する、
    ことを特徴とするバッファ管理方法。
  6. リンクドリスト方式によるバッファを有し、ユーザフローに対してリンクドリストバッファを構成して前記ユーザフローを処理するパケット通信装置であって、
    処理部と記憶部とインタフェース部とを備え、
    前記記憶部は、
    前記インタフェース部からの前記ユーザフロー各々に対して前記リンクドリストバッファを構成するためのチェーン情報とバッファサイズ情報をそれぞれ保持する運用時の領域と更新用の領域と、前記リンクドリストバッファをリードライトした結果、前記リンクドリストバッファを巡回したことを示す巡回情報を保持する領域とを有し、
    前記処理部は、
    通常運用中は前記運用時の領域の前記チェーン情報と前記バッファサイズ情報を用いて前記リンクドリストバッファを構築して、前記ユーザフローのフレームを前記リンクドリストバッファにリードライトし、
    前記更新用の領域の前記チェーン情報と前記バッファサイズ情報が変更されると、前記リンクドリストバッファのリードライトそれぞれが前記リンクドリストバッファの先頭に戻った場合に、前記更新用の領域の変更された前記チェーン情報と前記バッファサイズ情報を前記運用中の領域に書込む、
    ことを特徴とするパケット通信装置。
  7. 請求項6記載のパケット通信装置において、
    前記処理部は、
    前記リンクドリストバッファに格納されている前記ユーザのフレームがなくなった場合に、前記更新用の領域の変更された前記チェーン情報とバッファサイズ情報を、前記運用中の領域に書込む、
    ことを特徴とするパケット通信装置。
  8. 請求項6記載のパケット通信装置において、
    前記巡回情報は、前記リンクドリストバッファのリードライトの巡回回数を示し、
    前記処理部は、
    前記更新用の領域の前記チェーン情報と前記バッファサイズ情報が変更されると、前記巡回回数に基づき、前記チェーン情報の更新、あるいは前記リンクドリストバッファの削除されたバッファ領域の無効化の処理を行う、
    ことを特徴とするパケット通信装置。
  9. 請求項6のパケット通信装置において、
    前記処理部は、
    前記更新用の領域の更新された前記チェーン情報とバッファサイズ情報の前記運用中の領域への書込みにより、キューサイズが減設された場合に、前記キューサイズが減設される前のバッファオーバフロー判定に、変更された前記チェーン情報を使用する、
    ことを特徴とするパケット通信装置。
  10. 請求項8のパケット通信装置において、
    前記処理部は、
    前記リンクドリストバッファの使用中を示すフラグを保持し、無効化された前記バッファ領域に対応する前記フラグを変更するよう制御する、
    ことを特徴とするパケット通信装置。
  11. 各ユーザフローのフレームを順次、出力フレームバッファに書込み読出す出力フレームバッファ制御部と記憶部とを備えるパケット通信装置であって、
    前記記憶部は、
    前記出力フレームバッファに前記ユーザフロー各々に対してリンクドリストバッファを構成するため、運用時用および更新用のチェーン情報を保持するチェーンテーブルと、運用時用および更新用のバッファサイズ情報と前記リンクドリストバッファをリードライトするためのライトポインタおよびリードポインタが前記リンクドリストバッファを巡回したことを示す巡回情報とを保持するキュー管理テーブルとを記憶し、
    前記出力フレームバッファ制御部は、
    通常運用中は前記運用時用の前記チェーン情報と前記バッファサイズ情報を用いて前記リンクドリストバッファを構築することにより、前記ユーザフローのフレームを前記リンクドリストバッファにリードライトし、
    前記更新用の前記チェーン情報と前記バッファサイズ情報が変更された場合、前記巡回情報に基づき、前記ライトポインタおよび前記リードポインタそれぞれが前記リンクドリストバッファの先頭に戻ったことを検出したことを契機に、前記更新用の前記チェーン情報と前記バッファサイズ情報を前記運用時用の前記チェーン情報と前記バッファサイズ情報として、キューサイズを変更する、
    ことを特徴とするパケット通信装置。
  12. 請求項11記載のパケット通信装置において、
    前記出力フレームバッファ制御部は、
    前記リンクドリストバッファに格納されている前記ユーザフローのフレームがなくなった場合に、前記更新用の領域の前記チェーン情報と前記バッファサイズ情報を前記運用中用の前記チェーン情報と前記バッファサイズ情報として、前記キューサイズを変更する、
    ことを特徴とするパケット通信装置。
  13. 請求項11記載のパケット通信装置において、
    前記巡回情報は前記ライトポインタおよび前記リードポインタの巡回回数であり、
    前記出力フレームバッファ制御部は、
    前記更新用の前記チェーン情報と前記バッファサイズ情報それぞれが変更され場合、前記巡回回数に基づき、前記運用中用の前記チェーン情報及び前記バッファサイズ情報の更新処理、あるいは前記リンクドリストバッファから削除されたバッファ領域の無効化処理を行う、
    ことを特徴とするパケット通信装置。
  14. 請求項11記載のパケット通信装置であって、
    前記出力フレームバッファ制御部は、
    前記キューサイズが減設された場合に、前記キューサイズが変更される前のバッファオーバフロー判定に、前記更新用に更新された前記チェーン情報を使用する、
    ことを特徴とするパケット通信装置。
  15. 請求項13記載のパケット通信装置であって、
    前記記憶部に記憶された前記チェーンテーブルは、前記リンクドリストバッファの前記バッファ領域の使用中か否かを示す使用中フラグを保持し、
    前記出力フレームバッファ制御部は、
    無効化された前記バッファ領域に対応する前記使用中フラグを変更するよう制御する、
    ことを特徴とするパケット通信装置。
JP2009045876A 2009-02-27 2009-02-27 バッファ管理方法、及びパケット通信装置 Expired - Fee Related JP5180874B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009045876A JP5180874B2 (ja) 2009-02-27 2009-02-27 バッファ管理方法、及びパケット通信装置
US12/699,221 US8243745B2 (en) 2009-02-27 2010-02-03 Buffer management method and packet communication apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009045876A JP5180874B2 (ja) 2009-02-27 2009-02-27 バッファ管理方法、及びパケット通信装置

Publications (2)

Publication Number Publication Date
JP2010200264A JP2010200264A (ja) 2010-09-09
JP5180874B2 true JP5180874B2 (ja) 2013-04-10

Family

ID=42667058

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009045876A Expired - Fee Related JP5180874B2 (ja) 2009-02-27 2009-02-27 バッファ管理方法、及びパケット通信装置

Country Status (2)

Country Link
US (1) US8243745B2 (ja)
JP (1) JP5180874B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5829390B2 (ja) 2010-09-07 2015-12-09 ソニー株式会社 情報処理装置、および情報処理方法
US8706804B2 (en) * 2011-12-13 2014-04-22 Sap Ag Modeled chaining of service calls
US9197586B2 (en) 2012-12-18 2015-11-24 Mellanox Technologies Ltd. Maintaining consistent quality of service between subnets
US8982703B2 (en) 2012-12-18 2015-03-17 Mellanox Technologies Ltd. Routing support for lossless data traffic
US9385949B2 (en) 2012-12-20 2016-07-05 Mellanox Technologies Tlv Ltd. Routing controlled by subnet managers
US9785360B1 (en) * 2015-06-29 2017-10-10 EMC IP Holding Company LLC Adaptive and dynamic mixed read/write input/output balancer
US10033838B2 (en) 2015-10-01 2018-07-24 Oracle International Corporation Method and apparatus for conversion between logical and physical frames for a serial link application
FR3048293B1 (fr) * 2016-02-29 2018-07-06 Sagemcom Broadband Sas Procede de programmation d'une animation lors de la phase de demarrage d'un dispositif electronique et dispositif electronique associe
CN109240944B (zh) * 2018-08-16 2021-02-19 上海天数智芯半导体有限公司 一种基于可变长缓存行的数据读写方法
CN111865831B (zh) * 2019-04-30 2022-05-13 华为技术有限公司 数据处理的方法、网络设备、计算节点和***
EP4120657A1 (en) * 2021-07-15 2023-01-18 Sandvine Corporation System and method for prioritizing network traffic in a distributed environment

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07221762A (ja) 1994-01-27 1995-08-18 Hitachi Ltd パケット処理方法および通信インターフェイス装置
JPH1032581A (ja) 1996-07-16 1998-02-03 Matsushita Electric Ind Co Ltd Atmセルスイッチ
JP2000115174A (ja) * 1998-09-30 2000-04-21 Nec Corp パケット回線処理装置
JP2000330761A (ja) * 1999-05-18 2000-11-30 Canon Inc リングバッファ制御装置およびリングバッファ制御方法
JP2001223742A (ja) * 1999-12-22 2001-08-17 Alcatel Usa Sourcing Lp 輻輳の場合におけるセルバッファ保護の方法および装置
US8688853B2 (en) * 2001-12-21 2014-04-01 Agere Systems Llc Method and apparatus for maintaining multicast lists in a data network

Also Published As

Publication number Publication date
US8243745B2 (en) 2012-08-14
JP2010200264A (ja) 2010-09-09
US20100220743A1 (en) 2010-09-02

Similar Documents

Publication Publication Date Title
JP5180874B2 (ja) バッファ管理方法、及びパケット通信装置
JP4603102B2 (ja) ネットワークスイッチ内のブロックされた出力キューに関するパケットを選択的に廃棄するための方法および装置
JP4615030B2 (ja) バッファを再要求するための方法および装置
US10425359B2 (en) Packet data traffic management apparatus
JP3789395B2 (ja) パケット処理装置
JP4078445B2 (ja) データ識別子を複製することによって複数のコピーを送信するための方法および装置
JP4078446B2 (ja) 探索可能なキャッシュ領域を備えるマルチコピーキュー構造
US8515965B2 (en) Concurrent linked-list traversal for real-time hash processing in multi-core, multi-thread network processors
JP4755390B2 (ja) メモリを介してデータ処理システムの間でデータのフローを制御する方法および装置
EP0993635B1 (en) Method and apparatus for dynamic queue sizing
EP1662725B1 (en) Cut-through switching in a network device
JP3987915B2 (ja) ネットワークスイッチとホストコントローラとの間で送信する管理パケットを合成するための装置および方法
US7738385B2 (en) Mirroring of data in a network device
JP4541454B2 (ja) 受信データの関数としてデータの送信の開始を制御するための方法および装置
US20060114914A1 (en) Pipeline architecture of a network device
JP2007325271A (ja) スイッチ、スイッチングする方法及び論理装置
JP4317365B2 (ja) 周辺デバイスからホスト・コンピュータ・システムに割込みを転送する方法および装置
JPWO2004066570A1 (ja) ネットワークスイッチ装置およびネットワークスイッチ方法
TWI360744B (en) Data packet processing device
KR20070078347A (ko) Ppp 멀티링크를 지원하는 시스템에서의 멀티캐스트트래픽 포워딩 장치 및 제어방법
JP3506130B2 (ja) バッファリング装置及びバッファリング方法
US5913042A (en) Method and apparatus for managing packet memory
KR20050038028A (ko) 이더넷 (r) 에서의 프레임 전송 방법 및 노드
JP5251716B2 (ja) パケット中継装置
US6463065B1 (en) Mixed topology data switching system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110912

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120817

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120828

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121026

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130111

R150 Certificate of patent or registration of utility model

Ref document number: 5180874

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees