(57)【特許請求の範囲】
【請求項１】
受信したパケットを所定の出力帯域で送信する伝送装置において、
帯域補正パケットを生成するパケット生成回路と、
前記受信したパケットに前記帯域補正パケットを挿入し、所定の帯域でシェーピングするシェーピング回路と、
を備え、
前記帯域補正パケットは、前記所定の出力帯域と前記シェーピング回路でシェーピングした帯域の差分の帯域である
ことを特徴とする伝送装置。
【請求項２】
前記パケットの出力先を切替えるスイッチをさらに有し、
前記帯域補正パケットは、前記スイッチを介して前記シェーピング回路に入力されることを特徴とする請求項１記載の伝送装置。
【請求項３】
前記シェーピング回路の出力側に設けられ、前記帯域補正パケットを削除するプロセッサをさらに有することを特徴とする請求項１または２に記載の伝送装置。
【請求項４】
前記帯域補正パケットは、自身が帯域補正パケットであることを示す情報を有し、
前記プロセッサは、前記情報に基づいて前記帯域補正パケットを削除することを特徴とする請求項３記載の伝送装置。
【請求項５】
前記帯域補正パケットは、前記パケットの経路確認を行うためのチェックパターンを有していることを特徴とする請求項１乃至４のいずれかに記載の伝送装置。
【請求項６】
前記シェーピング回路は、前記パケットの有する優先度に基づいて前記パケットを出力し、
前記帯域補正パケットは、最も優先度が高いことを特徴とする請求項１乃至５のいずれかに記載の伝送装置。
【請求項７】
受信したパケットを所定の出力帯域で送信する伝送装置に具備されるインタフェースカードにおいて、
帯域補正パケットを生成するパケット生成回路と、
前記受信したパケットに前記帯域補正パケットを挿入し、所定の帯域でシェーピングするシェーピング回路と、
を備え、
前記帯域補正パケットは、前記所定の出力帯域と前記シェーピング回路でシェーピングした帯域の差分の帯域である
ことを特徴とするインタフェースカード。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、パケットを伝送する伝送装置およびそのインタフェースカードに関する。
【背景技術】
【０００２】
一般に、コンピュータネットワークにおけるトラヒックを制御する方法で、パケットの送出間隔を調整することで規定された最大速度を超過しないようにトラヒックを平準化する制御方法は、トラヒックシェーピングと呼ばれている。トラヒックシェーピング制御としては、最大転送レートを制御する方式（レート制限）が広く適用されている。
【０００３】
トラヒックシェーピングは、主にハードウェアにて実装される。トラヒックシェーピングは、一般にトークンバケットアルゴリズムによってトラヒック流量を測定し、各パケットをそれぞれ階層化されたＦＩＦＯ（First In First Out）バッファにバッファリングして、それぞれのトラヒック契約（ＳＬＡ：Service Level Agreement）に沿うよう平準化および流量制限して出力する。
【０００４】
上記ハードウェアでは、トークンバケットアルゴリズムのトークンサイズおよび可変長であるパケットの転送時間差により、制限したいデータレート設定に対して、実現可能な精度である粒度（granularity）が存在する。１０Ｇｂｐｓの物理インタフェースが普及してきた現在では、その粒度として、１Ｍｂｐｓ、５００ｋｂｐｓ等が一般に使用されている。
【０００５】
なお、従来、スイッチの特性劣化を引き起こすことなく、フロー間のスループットの公平性に優れたシステムを実現可能なパケット通信システムが提案されている（例えば、特許文献１参照）。
【０００６】
また、従来、複数の出力回線へ送信するパケットの総帯域を制御できるパケット中継装置が提案されている（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００３−１４３２１７号公報
【特許文献２】特開２００７−２０１９６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、トラヒックシェーピングのシェーパ設定レートは、パケットをシェーピングする粒度があるため、出力先の物理回線の帯域に対してずれが生じるという問題点があった。
【０００９】
例えば、パケットをシェーピングするシェーピング回路の粒度を５００ｋｂｐｓとする。シェーピング回路のシェーパ設定レート（シェーピング回路から出力されるパケットの帯域）を２．０Ｍｂｐｓとする。シェーピング回路の出力先の物理回線の帯域を１．９８０Ｍｂｐｓとする。
【００１０】
この場合、シェーピング回路の出力帯域は、物理回線の帯域に対し、２０ｋｂｐｓ（２．０Ｍｂｐｓ−１．９８０Ｍｂｐｓ）分だけ過剰になる。そのため、過剰分のパケットは、物理回線に出力される前に廃棄される。
【００１１】
また、上記条件において、シェーピング回路のシェーパ設定レートを、１．５Ｍｂｐｓにしたとする。
この場合、シェーピング回路の出力帯域は、物理回線の帯域に対し、４８０ｋｂｐｓ分不足（１．５Ｍｂｐｓ−１．９８０Ｍｂｐｓ）する。そのため、物理回線は、その分帯域を余らせてしまう。
【００１２】
本件はこのような点に鑑みてなされたものであり、パケットのシェーピング後の帯域と物理回線帯域とのずれを解消することができる伝送装置およびインタフェースカードを提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記課題を解決するために、パケットを伝送する伝送装置が提供される。この伝送装置は、前記パケットを所定の粒度の帯域でシェーピングするシェーピング回路と、前記シェーピング回路に入力される、前記所定の粒度の帯域より小さい帯域の帯域補正パケットを生成するパケット生成回路と、を有する。
【発明の効果】
【００１４】
開示の装置によれば、パケットのシェーピング後の帯域と物理回線帯域とのずれを解消することができる。
【図面の簡単な説明】
【００１５】
【図１】第１の実施の形態に係る伝送装置の一例を示した図である。
【図２】第２の実施の形態に係る伝送装置のハードウェアブロックの一例を示した図である。
【図３】帯域補正パケットのフォーマット例を示した図である。
【図４】伝送装置の動作を説明する図のその１である。
【図５】伝送装置の動作を説明する図のその２である。
【図６】ＦＰＧＡの機能ブロックの一例を示した図である。
【図７】ＦＰＧＡの動作を説明する図である。
【図８】Ｅｇｒｅｓｓ−ＴＭ回路およびＥｇｒｅｓｓ−ＮＰＵの動作を説明する図である。
【図９】帯域補正パケットの生成動作の一例を示したフローチャートである。
【図１０】帯域補正パケットの廃棄動作の一例を示したフローチャートである。
【図１１】シェーピングレートの一例を説明する図である。
【図１２】帯域補正パケットを生成しない場合の伝送装置の動作について説明する図のその１である。
【図１３】帯域補正パケットを生成しない場合の伝送装置の動作について説明する図のその２である。
【図１４】物理回線と帯域補正パケットの送出量の設定例を示した図である。
【発明を実施するための形態】
【００１６】
以下、実施の形態を、図面を参照して詳細に説明する。
［第１の実施の形態］
図１は、第１の実施の形態に係る伝送装置の一例を示した図である。図１に示すように、伝送装置は、インタフェースカード１およびスイッチ２を有している。インタフェースカード１は、図１では１枚しか示していないが、複数枚存在してもよい。
【００１７】
インタフェースカード１は、図示しない部位によって物理回線からパケットを受信し、スイッチ２に出力する。スイッチ２は、パケットの経路を切替え、切替えた経路に対応するインタフェースカードにパケットを出力する。インタフェースカード１は、スイッチ２によって経路が切替えられたパケットを物理回線に出力する。
【００１８】
インタフェースカード１は、シェーピング回路１ａおよびパケット生成回路１ｂを有している。シェーピング回路１ａは、パケットを所定の粒度の帯域でシェーピングする。例えば、シェーピング回路１ａは、スイッチ２から出力されるパケットを所定の粒度の帯域でシェーピングし、出力する。シェーピングされたパケットは、物理回線に出力される。
【００１９】
パケット生成回路１ｂは、シェーピング回路１ａの所定の粒度の帯域より小さい帯域の帯域補正パケットを生成する。例えば、シェーピング回路１ａのパケットをシェーピングする所定の粒度の帯域を５００ｋｂｐｓとすると、パケット生成回路１ｂは、それより小さい２０ｋｂｐｓの帯域補正パケットを生成する。パケット生成回路１ｂの生成した帯域補正パケットは、シェーピング回路１ａに入力される。インタフェースカード１の各部は、例えば、集積回路を備える半導体チップによって形成される。
【００２０】
図１の伝送装置の動作について説明する。以下では、シェーピング回路１ａのパケットをシェーピングする所定の粒度の帯域を５００ｋｂｐｓ、シェーパ設定レートを２．０Ｍｂｐｓ、パケットを出力する物理回線帯域を１９８０ｋｂｐｓとして説明する。また、帯域補正パケットのトラヒッククラスは、最高優先度とする。
【００２１】
パケット生成回路１ｂは、シェーピング回路１ａの所定の粒度の帯域‘５００ｋｂｐｓ’より小さい帯域の帯域補正パケットを生成する。例えば、パケット生成回路１ｂは、２０ｋｂｐｓの帯域補正パケットを生成する。
【００２２】
シェーピング回路１ａには、パケット生成回路１ｂで生成された２０ｋｂｐｓの帯域補正パケットと、スイッチ２から出力されるパケットとが入力される。帯域補正パケットは、最高優先度のパケットであるので、シェーピング回路１ａからは、２０ｋｂｐｓのフル帯域で出力される。従って、シェーピング回路１ａのシェーピング設定レートの２．０Ｍｂｐｓのうち、２０ｋｂｐｓは、帯域補正パケットによって費やされる。よって、スイッチ２から出力されるパケットの帯域は、シェーピング回路１ａから出力されるとき、物理回線帯域と同じ１．９８０Ｍｂｐｓとなる。
【００２３】
すなわち、シェーピング回路１ａは、パケットをシェーピングする所定の粒度の帯域より小さい帯域の帯域補正パケットが入力されることにより、所定の粒度の帯域より細かなシェーピングレートが可能になる。
【００２４】
このように、伝送装置のパケット生成回路１ｂは、パケットをシェーピングする所定の粒度の帯域より小さい帯域の帯域補正パケットを生成し、シェーピング回路１ａに入力する。これにより、シェーピング回路１ａは、所定の粒度の帯域より細かなシェーピングレートが可能になり、パケットのシェーピング後の帯域と物理回線帯域とのずれを解消することができる。
【００２５】
［第２の実施の形態］
次に、第２の実施の形態を、図面を参照して詳細に説明する。
図２は、第２の実施の形態に係る伝送装置のハードウェアブロックの一例を示した図である。図２に示すように、伝送装置は、インタフェースカード１０およびスイッチ２０を有している。図２では、インタフェースカード１０は、１枚しか示していないが、複数枚存在してもよい。伝送装置は、例えば、ＳＯＮＥＴ（Synchronous Optical Network）／ＳＤＨ（Synchronous Digital Hierarchy）ネットワークや、Ｅｔｈｅｒｎｅｔ（登録商標）  ｏｖｅｒ  ＳＯＮＥＴ／ＳＤＨネットワークに適用されるレイヤ２スイッチである。
【００２６】
インタフェースカード１０は、物理回線からパケットを受信し、スイッチ２０に出力する。スイッチ２０は、パケットの経路を切替えて、所定のインタフェースカードに出力する。インタフェースカード１０は、スイッチ２０によって経路が切替えられたパケットを物理回線に出力する。
【００２７】
インタフェースカード１０は、入力インタフェース回路１１、Ｉｎｇｒｅｓｓ−ＮＰＵ（ＮＰＵ：Network Processing Unit）１２、Ｉｎｇｒｅｓｓ−ＴＭ（ＴＭ：Traffic Management）回路１３、Ｅｇｒｅｓｓ−ＴＭ回路１４、Ｅｇｒｅｓｓ−ＮＰＵ１５、出力インタフェース回路１６、ＣＰＵ（Central Processing Unit）１７、およびＦＰＧＡ（Field Programmable Gate Array）１８を有している。インタフェースカード１０の各部は、例えば、集積回路を備える半導体チップによって形成される。
【００２８】
入力インタフェース回路１１は、物理回線からパケットを受信する。
Ｉｎｇｒｅｓｓ−ＮＰＵ１２は、入力インタフェース回路１１によって受信されたパケットを、例えば、クラシファイ（フィルタリング、パケット種別の識別、クラス分け等）し、用途に応じてＶＬＡＮ（Virtual Local Area Network）タグの取り外しや、装置内メタデータの付与などのパケット処理を行うプロセッサである。
【００２９】
Ｉｎｇｒｅｓｓ−ＴＭ回路１３は、Ｉｇｒｅｓｓ−ＮＰＵ１２から出力されるパケットを、例えば、ＶＯＱ（Virtual Output Queue）と呼ばれる出力回線（パケットの出力先物理回線）ごとのキュー（パケットの出力先インタフェースカードおよび出力先インタフェースごとに用意されたキュー）に格納し、ある出力回線向けのパケットが、他の出力回線向けのパケットに影響を与えないようにする。キューは、パケットを一時的に格納させる所定の容量を持つバッファであり、例えば、ＤＲＡＭ（Dynamic Random Access Memory）、ＳＲＡＭ（Static Random Access Memory）等のメモリで実現される。また、Ｉｎｇｒｅｓｓ−ＴＭ回路１３は、パケットの優先度クラスごとにパケット送出の優先制御を行いながら、パケットをスイッチ２０に出力する。
【００３０】
スイッチ２０は、例えば、複数のインタフェースカードのＩｎｇｒｅｓｓ−ＴＭ回路から出力されるパケットを、送出したいインタフェースカードのＥｇｒｅｓｓ−ＴＭ回路へスイッチングする。
【００３１】
Ｅｇｒｅｓｓ−ＴＭ回路１４は、スイッチ２０によってスイッチングされたパケットを、所定の粒度の帯域でシェーピングする。例えば、Ｅｇｒｅｓｓ−ＴＭ回路１４は、それぞれの出力回線に対応した、トラヒッククラスごとのキューにパケットを格納し、シェーピングのトラヒック送出量のマネジメントを行う。
【００３２】
Ｅｇｒｅｓｓ−ＮＰＵ１５は、Ｅｇｒｅｓｓ−ＴＭ回路１４から出力されたパケットをフィルタリングしたり、クラス分けしたり、また、ＶＬＡＮタグを付加、変更したり、パケットに様々な処理を施すプロセッサである。また、Ｅｇｒｅｓｓ−ＮＰＵ１５は、Ｅｇｒｅｓｓ−ＴＭ回路１４から出力される帯域補正パケットを廃棄する。
【００３３】
出力インタフェース回路１６は、例えば、１ＧＥ等のＥｔｈｅｒｎｅｔ回線や、Ｅ１−Ｘｖ等のＶＣＡＴ（Virtual Concatenation）回線へパケットを出力する。出力インタフェース回路１６は、ＦＩＦＯバッファを具備しているが、このＦＩＦＯバッファは、パケットをトラヒッククラスでクラス分けせず、パケットがオーバフローした場合は、無差別に破棄する。
【００３４】
ＣＰＵ１７は、インタフェースカード１０全体を制御している。ＣＰＵ１７は、ＦＰＧＡ１８を介して、インタフェースカード１０の各部を制御している。
ＦＰＧＡ１８は、ＣＰＵ１７とインタフェースカード１０の各部との間のデータのやり取りを仲介する。また、ＦＰＧＡ１８は、ＣＰＵ１７の指示に基づいて、Ｅｇｒｅｓｓ−ＴＭ回路１４の出力帯域（Ｅｇｒｅｓｓ−ＴＭ回路１４でパケットをシェーピングした後の帯域）と、物理回線帯域とのずれを解消するための帯域補正パケットを生成する。ＦＰＧＡ１８は、生成した帯域補正パケットを、ＣＰＵ１７の指示に基づいて、Ｉｎｇｒｅｓｓ−ＴＭ回路１３またはＥｇｒｅｓｓ−ＴＭ回路１４へ出力する。
【００３５】
図３は、帯域補正パケットのフォーマット例を示した図である。図３に示すように、帯域補正パケットは、２０バイトのメタデータ領域と、６４バイトのペイロード領域とを有している。
【００３６】
メタデータ領域には、インタフェースカード１０の制御に用いられるヘッダ情報が格納される。例えば、メタデータ領域には、フロータイプ、トラヒッククラス、ターゲットＩＦ−ＣａｒｄＩＤ、ターゲットＴＭキューＩＤ、およびフラグの情報が格納される。
【００３７】
＜フロータイプ＞
フロータイプは、帯域補正パケットのインタフェースカード１０内の伝送経路を選択するための情報である。例えば、フロータイプは、ＦＰＧＡ１８で生成された帯域補正パケットが、Ｉｎｇｒｅｓｓ−ＴＭ回路１３へ出力されるのかまたはＥｇｒｅｓｓ−ＴＭ回路１４へ出力されるのかを示す。
【００３８】
例えば、フロータイプが、‘Ｉｎｇｒｅｓｓ−ＴＭ回路１３へ出力される’旨の情報を示している場合、ＦＰＧＡ１８で生成された帯域補正パケットは、Ｉｎｇｒｅｓｓ−ＴＭ回路１３へ出力される。なお、Ｉｎｇｒｅｓｓ−ＴＭ回路１３へ出力された帯域補正パケットは、スイッチ２０、Ｅｇｒｅｓｓ−ＴＭ回路１４、およびＥｇｒｅｓｓ−ＮＰＵ１５の経路を辿り、Ｅｇｒｅｓｓ−ＮＰＵ１５で廃棄される。
【００３９】
また、フロータイプが、‘Ｅｇｒｅｓｓ−ＴＭ回路１４へ出力される’旨の情報を示している場合、ＦＰＧＡ１８で生成された帯域補正パケットは、Ｅｇｒｅｓｓ−ＴＭ回路１４へ出力される。なお、Ｅｇｒｅｓｓ−ＴＭ回路１４へ出力されたパケットは、Ｅｇｒｅｓｓ−ＮＰＵ１５へ出力され、Ｅｇｒｅｓｓ−ＮＰＵ１５で廃棄される。
【００４０】
＜トラヒッククラス＞
トラヒッククラスは、帯域補正パケットの優先度を示す。帯域補正パケットのトラヒッククラスは、最高優先クラスに設定される。すなわち、Ｅｇｒｅｓｓ−ＴＭ回路１４に入力された帯域補正パケットは、廃棄されずにＥｇｒｅｓｓ−ＮＰＵ１５に出力される。
【００４１】
＜ターゲットＩＦ−ＣａｒｄＩＤ＞
ターゲットＩＦ−ＣａｒｄＩＤは、帯域補正パケットの出力先インタフェースカードを示す。
【００４２】
＜ターゲットＴＭキューＩＤ＞
ターゲットＴＭキューＩＤは、Ｅｇｒｅｓｓ−ＴＭ回路１４の有するキュー番号を示す。Ｅｇｒｅｓｓ−ＴＭ回路１４は、以下で説明するが、出力先物理回線に対応したキューを有している。ターゲットＴＭキューＩＤは、帯域補正パケットが格納されるＥｇｒｅｓｓ−ＴＭ回路１４のキュー番号を示す。
【００４３】
＜フラグ＞
フラグは、当該パケットが帯域補正パケットであることを示す。これにより、Ｅｇｒｅｓｓ−ＮＰＵ１５は、Ｅｇｒｅｓｓ−ＴＭ回路１４から出力されるパケットが帯域補正パケットであるか否か判断することができる。
【００４４】
ペイロード領域の領域３１には、１６バイトのヘルスチェックパターン１が格納される。領域３２には、１６バイトのヘルスチェックパターン２が格納される。ヘルスチェックパターン１，２は、固定の値であり、例えば、ぞれぞれ‘０ｘ５Ａ５Ａ…５Ａ’と‘０ｘＡ５Ａ５…Ａ５’の値をとる。
【００４５】
帯域補正パケットを最終的に受信するＥｇｒｅｓｓ−ＮＰＵ１５は、ヘルスチェックパターン１，２によって、帯域補正パケットが伝搬した経路のエラーチェックを行うことができる。なお、帯域補正パケットは、伝送装置内で完結するパケットであるので、例えば、ＥｔｈｅｒｎｅｔフレームのようなＣＲＣ−３２等を付加せず、ヘルスチェックパターン１，２で処理を簡素化する。
【００４６】
ペイロード領域の残りの領域には、ペイロード領域の長さを６４バイトにするためのパディングが格納される。例えば、ペイロード領域の残りの領域には、‘０’が格納される。なお、ペイロード領域の長さは、６４バイトでなくてもよい。例えば、帯域補正パケットの伝送装置内を伝搬する帯域によって変えてもよい。
【００４７】
図４は、伝送装置の動作を説明する図のその１である。図４では、ＦＰＧＡ１８で生成された帯域補正パケットがＥｇｒｅｓｓ−ＴＭ回路１４に出力される場合の動作について説明する。図４において、図２と同じものには同じ符号を付し、その説明を省略する。なお、図４に示す矢印Ａ１１は、スイッチ２０によって経路がスイッチングされたユーザパケットの経路を示している。矢印Ａ１２は、ＦＰＧＡ１８によって生成された帯域補正パケットの経路を示している。
【００４８】
入力インタフェース回路１１は、物理回線に対応して、パケットを受信するインタフェース（図４中のＩＦ  ＃１Ｒｘ〜ＩＦ  ＃ｎＲｘ）をｎ個有している。また、入力インタフェース回路１１は、パケットを受信するインタフェースに対応した受信バッファ（図４中のＲｘ  Ｂｕｆｆｅｒ）をｎ個有している。
【００４９】
Ｉｎｇｒｅｓｓ−ＴＭ回路１３は、ｎ個のキュー（図４中のＩｎｇｒｅｓｓ  Ｑｕｅｕｅｓ）を有している。Ｉｎｇｒｅｓｓ−ＮＰＵ１２は、入力インタフェース回路１１から出力されるパケットを、Ｉｎｇｒｅｓｓ−ＴＭ回路１３の所定のキューに出力する。Ｉｎｇｒｅｓｓ−ＴＭ回路１３のキューに格納されたパケットは、スイッチ２０によって、所定のインタフェースカードのＥｇｒｅｓｓ−ＴＭ回路の所定のキューに格納される。
【００５０】
Ｅｇｒｅｓｓ−ＴＭ回路１４は、出力インタフェース回路１６の出力先物理回線に対応して、ｎ個のキュー（図４中のＴＭ  Ｑｕｅｕｅｓ）を有している。また、Ｅｇｒｅｓｓ−ＴＭ回路１４は、出力インタフェース回路１６の出力先物理回線に対応して、ｎ個のシェーパ（図４中のＳｈａｐｅｒ）を有している。ｎ個のシェーパのそれぞれは、トークンバケットアルゴリズムに基づいて、対応するキューから、トラヒッククラスの優先度の高いパケットを取得し、Ｅｇｒｅｓｓ−ＮＰＵ１５へ出力する。
【００５１】
出力インタフェース回路１６は、出力先物理回線に対応して、ＦＩＦＯバッファ（図４中のＴｘ  ＦＩＦＯ）を有している。また、出力インタフェース回路１６は、出力先物理回線に対応して、ｎ個のインタフェース（図４中のＩＦ  ＃１Ｔｘ〜ＩＦ  ＃ｎＴｘ）を有している。
【００５２】
ここで、伝送装置に接続されている物理回線帯域を１．９８０Ｍｂｐｓとする。また、Ｅｇｒｅｓｓ−ＴＭ回路１４のシェーピングの粒度を５００ｋｂｐｓとする。また、Ｅｇｒｅｓｓ−ＴＭ回路１４のシェーパ設定レートを２．０Ｍｂｐｓとする。また、ＦＰＧＡ１８によって生成される帯域補正パケットのメタデータのフロータイプには、‘Ｅｇｒｅｓｓ−ＴＭ回路１４へ出力される’旨の情報が格納されているとする。この場合、ＦＰＧＡ１８によって生成された帯域補正パケットは、矢印Ａ１２に示すように、Ｅｇｒｅｓｓ−ＴＭ回路１４に出力され、Ｅｇｒｅｓｓ−ＮＰＵ１５に受信される。
【００５３】
帯域補正パケットのメタデータには、図３で説明したように、当該パケットが帯域補正パケットであることを示すフラグが含まれている。Ｅｇｒｅｓｓ−ＮＰＵ１５は、帯域補正パケットのメタデータに含まれるフラグに基づいて、受信したパケットが帯域補正パケットであることを認識し、廃棄する。これにより、帯域補正パケットは、出力インタフェース回路１６を介して物理回線に出力されない。なお、スイッチ２０から出力されたユーザパケットは、矢印Ａ１１に示すように、Ｅｇｒｅｓｓ−ＴＭ回路１４、Ｅｇｒｅｓｓ−ＮＰＵ１５、および出力インタフェース回路１６を介して、物理回線へ出力される。
【００５４】
ＦＰＧＡ１８は、Ｅｇｒｅｓｓ−ＴＭ回路１４のシェーパ設定レート（Ｅｇｒｅｓｓ−ＴＭ回路１４から出力されるパケットの帯域）と、物理回線帯域との差の帯域で帯域補正パケットを送出する。例えば、上記例より、Ｅｇｒｅｓｓ−ＴＭ回路１４のシェーパ設定レートは、２．０Ｍｂｐｓであり、物理回線帯域は、１９８０ｋｂｐｓなので、ＦＰＧＡ１８は、２０ｋｂｐｓの帯域の帯域補正パケットを送出する。より具体的には、帯域補正パケットのパケット長は６４バイトなので、ＦＰＧＡ１８は、２５．６ｍｓ周期（３９．１ｆｐｓ）で帯域補正パケットを送出する。
【００５５】
ＦＰＧＡ１８からＥｇｒｅｓｓ−ＴＭ回路１４へ送出された帯域補正パケットは、メタデータのターゲットＴＭキューＩＤに基づいて、Ｅｇｒｅｓｓ−ＴＭ回路１４の所定のキューに格納される。例えば、ターゲットＴＭキューＩＤが‘＃１’を示している場合、帯域補正パケットは、図４に示すＦｏｒ  ＩＦ＃１のＳｈａｐｅｒに対応するＴＭ  Ｑｕｅｕｅｓ（Ｅｇｒｅｓｓ−ＴＭ回路１４の一番上のＴＭ  Ｑｕｅｕｅｓ）に格納される。
【００５６】
ＦＰＧＡ１８によって生成された帯域補正パケットのトラヒッククラスは、図３で説明したように、最高優先クラスである。従って、Ｅｇｒｅｓｓ−ＴＭ回路１４のシェーパは、キューに格納された帯域補正パケットを最優先でＥｇｒｅｓｓ−ＮＰＵ１５に出力する。これにより、２．０Ｍｂｐｓのシェーパ設定レートのうち、２０ｋｂｐｓは、帯域補正パケットによって消費される。つまり、Ｅｇｒｅｓｓ−ＴＭ回路１４から出力されるユーザパケットの帯域は、１．９８０Ｍｂｐｓとなる。例えば、Ｆｏｒ  ＩＦ＃１のＳｈａｐｅｒからは、１．９８０Ｍｂｐｓのユーザパケットが出力される。
【００５７】
上記したように、帯域補正パケットは、Ｅｇｒｅｓｓ−ＮＰＵ１５で廃棄される。従って、Ｅｇｒｅｓｓ−ＮＰＵ１５からは、帯域補正パケットは出力されず、１．９８０Ｍｂｐｓのユーザデータが出力インタフェース回路１６へ出力される。これにより、出力インタフェース回路１６でのパケットのオーバフローによる廃棄を回避できる。また、物理回線の１９８０ｋｐｓの帯域をフルに使い切ることができる。
【００５８】
なお、Ｅｇｒｅｓｓ−ＮＰＵ１５は、帯域補正パケットを廃棄するとき、帯域補正パケットのヘルスチェックパターンを確認する。例えば、Ｅｇｒｅｓｓ−ＮＰＵ１５は、受信した帯域補正パケットのヘルスチェックパターン１，２がそれぞれ‘０ｘ５Ａ５Ａ…５Ａ’および‘０ｘＡ５Ａ５…Ａ５’であるか否か確認する。Ｅｇｒｅｓｓ−ＮＰＵ１５は、ヘルスチェックパターン１，２が前記の値でない場合、帯域補正パケットの伝搬してきた経路に異常があることを認識する。例えば、Ｅｇｒｅｓｓ−ＮＰＵ１５は、Ｅｇｒｅｓｓ−ＴＭ回路１４とＥｇｒｅｓｓ−ＮＰＵ１５との間の経路に異常があると認識する。
【００５９】
図５は、伝送装置の動作を説明する図のその２である。図５では、ＦＰＧＡ１８で生成された帯域補正パケットがＩｎｇｒｅｓｓ−ＴＭ回路１３に出力される場合の動作について説明する。図５において、図４と同じものには同じ符号を付し、その説明を省略する。図５では、ＦＰＧＡ１８で生成されたパケットは、矢印Ａ１３に示すように、Ｉｎｇｒｅｓｓ−ＴＭ回路１３に出力され、スイッチ２０を介してＥｇｒｅｓｓ−ＴＭ回路１４へ出力される。
【００６０】
ＦＰＧＡ１８は、生成する帯域補正パケットのメタデータのターゲットＩＦ−ＣａｒｄＩＤに、インタフェースカード１０のＩＤを設定する。これにより、ＦＰＧＡ１８からＩｎｇｒｅｓｓ−ＴＭ回路１３へ出力された帯域補正パケットは、矢印Ａ１３に示すようにスイッチ２０を介して、インタフェースカード１０のＥｇｒｓｓ−ＴＭ回路１４に受信される。
【００６１】
Ｅｇｒｅｓｓ−ＴＭ回路１４によって受信された帯域補正パケットは、メタデータのターゲットＴＭキューＩＤに基づいて、所定のキューに格納される。なお、Ｅｇｒｅｓｓ−ＴＭ回路１４のシェーピング処理は、図４と同様であり、その説明を省略する。
【００６２】
Ｅｇｒｅｓｓ−ＮＰＵ１５は、帯域補正パケットを廃棄するとき、帯域補正パケットのヘルスチェックパターンを確認する。図５の場合、帯域補正パケットは、Ｉｎｇｒｅｓｓ−ＴＭ回路１３に出力され、スイッチ２０、Ｅｇｒｅｓｓ−ＴＭ回路１４を介して、Ｅｇｒｅｓｓ−ＮＰＵ１５に受信される。従って、図５の場合、Ｅｇｒｅｓｓ−ＮＰＵ１５は、Ｉｎｇｒｅｓｓ−ＴＭ回路１３とＥｇｒｅｓｓ−ＮＰＵ１５との間の経路の異常を確認することができる。
【００６３】
図６は、ＦＰＧＡの機能ブロックの一例を示した図である。図６には、パケット生成に関するＦＰＧＡの機能ブロックが示してある。図６に示すように、ＦＰＧＡ１８は、ＩＯ（Input Output）レジスタ４１、帯域補正パケット生成回路４２、スケジューラ４３、ＦＩＦＯバッファ４４，４５、および制御パケット生成回路４６を有している。
【００６４】
ＩＯレジスタ４１には、ＣＰＵ１７によってパラメータ設定がされる。ＣＰＵ１７によって設定されるパラメータは、図３で説明したメタデータ（フロータイプ、トラヒッククラス、ターゲットＩＦ−ＣａｒｄＩＤ、ターゲットＴＭキューＩＤ、およびフラグ）である。
【００６５】
また、ＣＰＵ１７によってＩＯレジスタ４１に設定されるパラメータには、帯域補正パケットの送出の有効または無効を示す情報がある。また、ＣＰＵ１７によってＩＯレジスタ４１に設定されるパラメータには、帯域補正パケットの送出周期がある。
【００６６】
帯域補正パケット生成回路４２は、ＩＯレジスタ４１からの指示に応じて、帯域補正パケットを生成する。例えば、帯域補正パケット生成回路４２は、図３で説明した帯域補正パケットを生成する。
【００６７】
帯域補正パケット生成回路４２は、Ｅｇｒｅｓｓ−ＴＭ回路１４の有するキューに対応して複数設けられる。例えば、帯域補正パケット生成回路４２は、図４に示すＦｏｒ  ＩＦ＃１〜Ｆｏｒ  ＩＦ＃ｎに対応するｎ個のＱｕｅｕｅｓに対応して、ｎ個設けられる。
【００６８】
スケジューラ４３は、ｎ個の帯域補正パケット生成回路４２から出力される帯域補正パケットと、制御パケット生成回路４６から出力される制御パケットとを、所定のスケジューリングに基づき、ＦＩＦＯバッファ４４またはＦＩＦＯバッファ４５のいずれか一方に出力する。
【００６９】
例えば、スケジューラ４３は、帯域補正パケットのメタデータのフロータイプに‘Ｉｎｇｒｅｓｓ−ＴＭ回路１３へ出力される’旨の情報が格納されている場合、ＦＩＦＯバッファ４４へ出力する。スケジューラ４３は、帯域補正パケットのメタデータのフロータイプに‘Ｅｇｒｅｓｓ−ＴＭ回路１４へ出力される’旨の情報が格納されている場合、ＦＩＦＯバッファ４５へ出力する。なお、スケジューラ４３のスケジューリング方式は、例えば、ラウンドロビンである。
【００７０】
ＦＩＦＯバッファ４４は、スケジューラ４３から出力された帯域補正パケットまたは制御パケットを一時保持し、Ｉｎｇｒｅｓｓ−ＴＭ回路１３へ出力する。ＦＩＦＯバッファ４５は、スケジューラ４３から出力された帯域補正パケットまたは制御パケットを一時保持し、Ｅｇｒｅｓｓ−ＴＭ回路１４へ出力する。
【００７１】
制御パケット生成回路４６は、例えば、伝送路の監視用のパケットなどを生成する。
図７は、ＦＰＧＡの動作を説明する図である。図７において、図６と同じものには同じ符号を付し、その説明を省略する。
【００７２】
ＩＯレジスタ４１には、帯域補正パケットのメタデータを生成するためのパラメータがＣＰＵ１７によって設定される。図７中のＦｌｏｗ  Ｔｙｐｅ、Ｔｒａｆｆｉｃ  Ｃｌａｓｓ、Ｔａｒｇｅｔ  ＩＦ−Ｃａｒｄ  ＩＤ、Ｔａｒｇｅｔ  ＴＭ  Ｑｕｅｕｅ  ＩＤ、およびＦｌａｇは、ＣＰＵ１７によって設定されるパラメータを示しており、図３で説明したフロータイプ、トラヒッククラス、ターゲットＩＦ−ＣａｒｄＩＤ、ターゲットＴＭキューＩＤ、およびフラグが対応する。
【００７３】
また、ＩＯレジスタ４１には、帯域補正パケットの送出の有効／無効を示すパラメータおよび帯域補正パケットの送出周期のパラメータ（図７の送出ｅｎａｂｌｅ／ｄｉｓａｂｌｅおよび送出周期）が設定される。
【００７４】
ＩＯレジスタ４１に設定されたパラメータは、帯域補正パケット生成回路４２に取り込まれる。帯域補正パケット生成回路４２は、取り込んだパラメータのフロータイプ、トラヒッククラス、ターゲットＩＦ−ＣａｒｄＩＤ、ターゲットＴＭキューＩＤ、およびフラグに基づいて、帯域補正パケットのメタデータを生成する。また、帯域補正パケット生成回路４２は、帯域補正パケットのヘルスチェックパターンを生成する。また、帯域補正パケット生成回路４２は、帯域補正パケットのパディングを生成する。
【００７５】
また、帯域補正パケット生成回路４２は、取り込んだパラメータの送出周期をタイマ（図７中の送出周期タイマ）にセットする。帯域補正パケット生成回路４２は、送出の有効／無効を示すパラメータが有効の場合、タイマのカウント値に基づいて、生成した帯域補正パケットをスケジューラ４３に出力する。例えば、帯域補正パケット生成回路４２は、タイマのカウント値が０になるたびに、生成した帯域補正パケットをスケジューラ４３に出力する。帯域補正パケット生成回路４２は、送出の有効／無効のパラメータが無効の場合、生成した帯域補正パケットをスケジューラ４３に出力しない。
【００７６】
スケジューラ４３には、ｎ個の帯域補正パケット生成回路４２から、ｎ個の帯域補正パケットが入力される。図７に示す帯域補正パケット［１…ｎ］の‘１…ｎ’は、図４および図５に示したＥｇｒｅｓｓ−ＴＭ回路１４のＦｏｒ  ＩＦ＃１…Ｆｏｒ  ＩＦ＃ｎの‘１…ｎ’に対応する。
【００７７】
また、スケジューラ４３には、帯域補正パケット生成回路４２から帯域補正パケットの送出の有効／無効を示す信号が入力される（図７中の送出ｅｎａｂｌｅ）。スケジューラ４３は、送出有効を示す信号が入力された場合、帯域補正パケット生成回路４２から出力された帯域補正パケットを、例えば、ラウンドロビンにてＦＩＦＯバッファ４４，４５に出力する。
【００７８】
図８は、Ｅｇｒｅｓｓ−ＴＭ回路およびＥｇｒｅｓｓ−ＮＰＵの動作を説明する図である。図８には、図２、図４、および図５で説明したＥｇｒｅｓｓ−ＴＭ回路１４およびＥｇｒｅｓｓ−ＮＰＵ１５が示してある。また、図８には、Ｅｇｒｅｓｓ−ＴＭ回路１４に入力される帯域補正パケットとユーザパケットとが示している。
【００７９】
図８のＥｇｒｅｓｓ−ＴＭ回路１４に示すＣｌａｓｓ  ｌｅｖｅｌ  ＱｕｅｕｅｓとＰｏｒｔ  ｌｅｖｅｌ  Ｑｕｅｕｅｓは、図４および図５に示したＴＭ  Ｑｕｅｕｅｓに対応する。また、図８のＥｇｒｅｓｓ−ＴＭ回路１４に示すＳｈａｐｅｒは、図４および図５に示したＳｈａｐｅｒに対応する。
【００８０】
Ｆｏｒ  ＩＦ＃１…Ｆｏｒ  ＩＦ＃ｎのＳｈａｐｅｒのそれぞれに対応している、複数のＣｌａｓｓ  ｌｅｖｅｌ  Ｑｕｅｕｅｓは、トラヒッククラスに対応している。例えば、図８のＦｏｒ  ＩＦ＃１のＳｈａｐｅｒに対応している、複数のＣｌａｓｓ  ｌｅｖｅｌ  Ｑｕｅｕｅｓの一番上のキューは、最も優先度の高いトラヒッククラスに対応している。また、Ｆｏｒ  ＩＦ＃１のＳｈａｐｅｒに対応している、複数のＣｌａｓｓ  ｌｅｖｅｌ  Ｑｕｅｕｅｓの一番下のキューは、最も優先度の低いトラヒッククラスに対応している。
【００８１】
帯域補正パケットは、メタデータに含まれるターゲットＴＭキューＩＤに基づいて、所定のＦｏｒ  ＩＦ＃１…Ｆｏｒ  ＩＦ＃ｎのＳｈａｐｅｒに対応する、Ｃｌａｓｓ  ｌｅｖｅｌ  Ｑｕｅｕｅｓに格納される。例えば、帯域補正パケットは、図８に示すように、Ｆｏｒ  ＩＦ＃１のＳｈａｐｅｒに対応するＣｌａｓｓ  ｌｅｖｅｌ  Ｑｕｅｕｅｓに格納されている。
【００８２】
また、帯域補正パケットは、トラヒッククラスの優先度が最も高いので、最高優先度のＣｌａｓｓ  ｌｅｖｅｌ  Ｑｕｅｕｅｓに格納される。例えば、帯域補正パケットは、図８に示すように、Ｆｏｒ  ＩＦ＃１のＳｈａｐｅｒに対応している、複数のＣｌａｓｓ  ｌｅｖｅｌ  Ｑｕｅｕｅｓの一番上のキューに格納される。
【００８３】
なお、図８の例では、ユーザパケットは、Ｆｏｒ  ＩＦ＃１のＳｈａｐｅｒに対応している、複数のＣｌａｓｓ  ｌｅｖｅｌ  Ｑｕｅｕｅｓの一番下のキューに格納されている。すなわち、図８に示すユーザパケットのトラヒッククラスの優先度は、最も低いものとなっている。
【００８４】
図８に示すＳｈａｐｅｒは、設定された粒度に基づき、所定のシェーパ設定レートとなるよう、帯域補正パケットとユーザデータとをＥｇｒｅｓｓ−ＮＰＵ１５に出力する。このとき、Ｓｈａｐｅｒは、優先度の高い順に、帯域補正パケットおよびユーザデータをＣｌａｓｓ  ｌｅｖｅｌ  ＱｕｅｕｅｓからＰｏｒｔ  ｌｅｖｅｌ  Ｑｕｅｕｅｓへ格納し、Ｅｇｒｅｓｓ−ＮＰＵ１５に出力する。
【００８５】
Ｅｇｒｅｓｓ−ＮＰＵ１５は、Ｅｇｒｅｓｓ−ＴＭ回路１４から出力される帯域補正パケットおよびユーザパケットのメタデータを解析する。例えば、Ｅｇｒｅｓｓ−ＮＰＵ１５は、メタデータに含まれるフラグに基づいて、Ｅｇｒｅｓｓ−ＴＭ回路１４から出力されるパケットが帯域補正パケットであるかユーザパケットであるか判断する。Ｅｇｒｅｓｓ−ＮＰＵ１５は、Ｅｇｒｅｓｓ−ＴＭ回路１４から出力されるパケットがユーザパケットの場合、ユーザパケットをフィルタリングしたり、クラス分けしたり、また、ＶＬＡＮタグを付加、変更したり、ユーザパケット処理を施す。
【００８６】
また、Ｅｇｒｅｓｓ−ＮＰＵ１５は、Ｅｇｒｅｓｓ−ＴＭ回路１４から出力されるパケットが帯域補正パケットである場合、帯域補正パケット処理を行う。例えば、Ｅｇｒｅｓｓ−ＮＰＵ１５は、帯域補正パケットのヘルスチェックパターンを確認する。例えば、Ｅｇｒｅｓｓ−ＮＰＵ１５は、図３の帯域補正パケットの領域３１，３２に、‘０ｘ５Ａ５Ａ…５Ａ’および‘０ｘＡ５Ａ５…Ａ５’のヘルスチェックパターンが格納されているか否か確認する。
【００８７】
Ｅｇｒｅｓｓ−ＮＰＵ１５は、帯域補正パケットのヘルスチェックパターンのエラー数について統計を取る。例えば、Ｅｇｒｅｓｓ−ＮＰＵ１５は、帯域補正パケットのヘルスチェックパターンのエラーが何回起きたかカウントする。Ｅｇｒｅｓｓ−ＮＰＵ１５は、帯域補正パケットのヘルスチェックパターンのエラー数について統計をとると、その帯域補正パケットを廃棄する。
【００８８】
図９は、帯域補正パケットの生成動作の一例を示したフローチャートである。図９のフローチャートは、帯域補正パケットｋ［ｋ＝１…ｎ］ごとに実行される。ｎは、例えば、図７に示すｎに対応する。
【００８９】
［ステップＳ１］帯域補正パケット生成回路４２は、ＩＯレジスタ４１のレジスタ値を取り込む。例えば、帯域補正パケット生成回路４２は、図９のステップＳ１に示す式の左辺の値（ＩＯレジスタ４１に設定されている値、例えば、図７のＩＯレジスタ４１の枠内に示しているパラメータ）を、右辺の変数に格納する。
【００９０】
［ステップＳ２ａ］帯域補正パケット生成回路４２は、ＩＯレジスタ４１から取り込んだＩＯレジスタ値を、メモリ（帯域補正パケット［ｋ］の該当アドレス）に書き込む。
［ステップＳ３ａ］帯域補正パケット生成回路４２は、ヘルスチェックパターン１をメモリに書き込む。
【００９１】
［ステップＳ４ａ］帯域補正パケット生成回路４２は、ヘルスチェックパターン２をメモリに書き込む。
［ステップＳ２ｂ］帯域補正パケット生成回路４２は、Ｓｅｎｄ＿Ｐｅｒｉｏｄ［ｋ］のカウント値で、送出周期タイマＴ［ｋ］を始動する。
【００９２】
［ステップＳ３ｂ］帯域補正パケット生成回路４２は、送出周期タイマＴ［ｋ］のカウント値に基づいて、帯域補正パケット［ｋ］の送出周期になったか否か判断する。例えば、帯域補正パケット生成回路４２は、送出周期タイマＴ［ｋ］のカウント値が、Ｓｅｎｄ＿Ｐｅｒｉｏｄ［ｋ］の値から減算して０になると、帯域補正パケット［ｋ］の送出周期になったと判断する。帯域補正パケット生成回路４２は、帯域補正パケット［ｋ］の送出周期になった場合、ステップＳ４ｂへ進む。帯域補正パケット生成回路４２は、帯域補正パケット［ｋ］の送出周期でない場合、ステップＳ３ｂの処理を繰り返す。
【００９３】
［ステップＳ４ｂ］帯域補正パケット生成回路４２は、送出タイミング信号［ｋ］にエッジを立てる。例えば、帯域補正パケット生成回路４２は、送出タイミング信号［ｋ］に‘１’を格納する。
【００９４】
なお、ステップＳ２ａ〜Ｓ４ａの処理とステップＳ２ｂ〜Ｓ４ｂの処理は、並列に実行される。
［ステップＳ５］帯域補正パケット生成回路４２は、Ｓｅｎｄ＿Ｅｎａｂｌｅ［ｋ］がｅｎａｂｌｅであるか否か判断する。帯域補正パケット生成回路４２は、Ｓｅｎｄ＿Ｅｎａｂｌｅ［ｋ］がｄｉｓａｂｌｅである場合、処理を終了する。帯域補正パケット生成回路４２は、Ｓｅｎｄ＿Ｅｎａｂｌｅ［ｋ］がｅｎａｂｌｅである場合、ステップＳ６へ進む。
【００９５】
［ステップＳ６］帯域補正パケット生成回路４２は、送出タイミング信号［ｋ］にエッジが立っているか否か判断する。帯域補正パケット生成回路４２は、送出タイミング信号［ｋ］にエッジが立っている場合、ステップＳ７へ進む。帯域補正パケット生成回路４２は、送出タイミング信号［ｋ］にエッジが立っていない場合、ステップＳ６の処理を繰り返す。
【００９６】
［ステップＳ７］スケジューラ４３は、帯域補正パケット生成回路４２で生成された帯域補正パケット［ｋ］が送信順番になったか否か判断する。スケジューラ４３は、例えば、ラウンドロビンによって、生成された帯域補正パケット［ｋ］の送信順番を判断する。スケジューラ４３は、生成された帯域補正パケット［ｋ］が送信順番になった場合、ステップＳ８へ進む。スケジューラ４３は、生成された帯域補正パケット［ｋ］が送信順番でない場合、ステップＳ７の処理を繰り返す。
【００９７】
［ステップＳ８］スケジューラ４３は、Ｆ＿Ｔｙｐｅ［ｋ］が‘Ｉｎｇｒｅｓｓ−ＴＭ回路１３へ出力される’旨の情報を示しているか否か判断する。スケジューラ４３は、Ｆ＿Ｔｙｐｅ［ｋ］が‘Ｉｎｇｒｅｓｓ−ＴＭ回路１３へ出力される’旨の情報を示している場合、ステップＳ９へ進む。スケジューラ４３は、Ｆ＿Ｔｙｐｅ［ｋ］が‘Ｉｎｇｒｅｓｓ−ＴＭ回路１３へ出力される’旨の情報を示していない場合、ステップＳ１０へ進む。
【００９８】
［ステップＳ９］スケジューラ４３は、Ｉｎｇｒｅｓｓ−ＴＭ回路１３に対応したＦＩＦＯバッファ４４に帯域補正パケットを書き込む。これにより、帯域補正パケット生成回路４２で生成された帯域補正パケット［ｋ］は、Ｉｎｇｒｅｓｓ−ＴＭ回路１３へ出力される。
【００９９】
［ステップＳ１０］スケジューラ４３は、Ｆ＿Ｔｙｐｅ［ｋ］が‘Ｅｇｒｅｓｓ−ＴＭ回路１４へ出力される’旨の情報を示しているか否か判断する。スケジューラ４３は、Ｆ＿Ｔｙｐｅ［ｋ］が‘Ｅｇｒｅｓｓ−ＴＭ回路１４へ出力される’旨の情報を示している場合、ステップＳ１１へ進む。スケジューラ４３は、Ｆ＿Ｔｙｐｅ［ｋ］が‘Ｅｇｒｅｓｓ−ＴＭ回路１４へ出力される’旨の情報を示していない場合、ステップＳ１２へ進む。
【０１００】
［ステップＳ１１］スケジューラ４３は、Ｅｇｒｅｓｓ−ＴＭ回路１４に対応したＦＩＦＯバッファ４５に帯域補正パケットを書き込む。これにより、帯域補正パケット生成回路４２で生成された帯域補正パケット［ｋ］は、Ｅｇｒｅｓｓ−ＴＭ回路１４へ出力される。
【０１０１】
［ステップＳ１２］ＦＰＧＡ１８は、エラー処理を行う。例えば、ＦＰＧＡ１８は、ＣＰＵ１７に帯域補正パケットが正常に出力されなかった旨を通知する。
図１０は、帯域補正パケットの廃棄動作の一例を示したフローチャートである。
【０１０２】
［ステップＳ２１］Ｅｇｒｅｓｓ−ＮＰＵ１５は、受信したパケットのメタデータを読み出す。例えば、Ｅｇｒｅｓｓ−ＮＰＵ１５は、受信したパケットの先頭から２０バイトを読み出す。Ｅｇｒｅｓｓ−ＮＰＵ１５は、読み出したメタデータのフラグを読み出し、ＲｘＦｌａｇに格納する。
【０１０３】
［ステップＳ２２］Ｅｇｒｅｓｓ−ＮＰＵ１５は、ＲｘＦｌａｇが‘１’であるか否か判断する。すなわち、Ｅｇｒｅｓｓ−ＮＰＵ１５は、受信したパケットが帯域補正パケットであるか否か判断する。Ｅｇｒｅｓｓ−ＮＰＵ１５は、受信したパケットが帯域補正パケットである場合、ステップＳ２４へ進む。Ｅｇｒｅｓｓ−ＮＰＵ１５は、受信したパケットが帯域補正パケットでない場合、すなわち、受信したパケットがユーザパケットである場合、ステップＳ２３へ進む。
【０１０４】
［ステップＳ２３］Ｅｇｒｅｓｓ−ＮＰＵ１５は、受信したパケットにユーザパケット処理を施す。
［ステップＳ２４］Ｅｇｒｅｓｓ−ＮＰＵ１５は、帯域補正パケットのヘルスチェックパターン１をＲｘＰａｔｔｅｒｎ１に格納する。
【０１０５】
［ステップＳ２５］Ｅｇｒｅｓｓ−ＮＰＵ１５は、ＲｘＰａｔｔｅｒｎ１のパターンが‘０ｘ５Ａ５Ａ…５Ａ’であるか否か判断する。Ｅｇｒｅｓｓ−ＮＰＵ１５は、ＲｘＰａｔｔｅｒｎ１のパターンが‘０ｘ５Ａ５Ａ…５Ａ’である場合、ステップＳ２６へ進む。Ｅｇｒｅｓｓ−ＮＰＵ１５は、ＲｘＰａｔｔｅｒｎ１のパターンが‘０ｘ５Ａ５Ａ…５Ａ’でない場合、ステップＳ２９へ進む。
【０１０６】
［ステップＳ２６］Ｅｇｒｅｓｓ−ＮＰＵ１５は、帯域補正パケットのヘルスチェックパターン２をＲｘＰａｔｔｅｒｎ２に格納する。
［ステップＳ２７］Ｅｇｒｅｓｓ−ＮＰＵ１５は、ＲｘＰａｔｔｅｒｎ２のパターンが‘０ｘＡ５Ａ５…Ａ５’であるか否か判断する。Ｅｇｒｅｓｓ−ＮＰＵ１５は、ＲｘＰａｔｔｅｒｎ２のパターンが‘０ｘＡ５Ａ５…Ａ５’である場合、ステップＳ２８へ進む。Ｅｇｒｅｓｓ−ＮＰＵ１５は、ＲｘＰａｔｔｅｒｎ２のパターンが‘０ｘＡ５Ａ５…Ａ５’でない場合、ステップＳ２９へ進む。
【０１０７】
［ステップＳ２８］Ｅｇｒｅｓｓ−ＮＰＵ１５は、帯域補正パケットの受信数をカウントしている統計カウンタを１インクリメントする。
［ステップＳ２９］Ｅｇｒｅｓｓ−ＮＰＵ１５は、ヘルスチェックエラーパケットの受信数をカウントしている統計カウンタを１インクリメントする。
【０１０８】
［ステップＳ３０］Ｅｇｒｅｓｓ−ＮＰＵ１５は、帯域補正パケットを廃棄する。
図１１は、シェーピングレートの一例を説明する図である。図１１に示す表のシェーパ設定レートは、図２のＥｇｒｅｓｓ−ＴＭ回路１４に設定されるシェーパ設定レートを示している。図１１には、‘５００ｋｂｐｓ’のシェーパ設定レートが設定された場合と‘１０００ｋｂｐｓ’のシェーパ設定レートが設定された場合とが示してある。Ｅｇｒｅｓｓ−ＴＭ回路１４の粒度は、５００ｋｂｐｓとする。
【０１０９】
図１１に示す帯域補正パケットレートは、ＦＰＧＡ１８から出力される帯域補正パケットのレートが示してある。ユーザパケットレートは、Ｅｇｒｅｓｓ−ＴＭ回路１４から出力されるユーザパケットのレートが示してある。
【０１１０】
例えば、Ｅｇｒｅｓｓ−ＴＭ回路１４に設定されたシェーパ設定レートが‘５００ｋｂｐｓ’であったとする。ＦＰＧＡ１８で生成される帯域補正パケットのレートが‘４５０ｋｂｐｓ’であったとする。この場合、Ｅｇｒｅｓｓ−ＴＭ回路１４からは、図１１に示すように‘５０ｋｂｐｓ’のユーザパケットが出力されることになる。
【０１１１】
また、例えば、Ｅｇｒｅｓｓ−ＴＭ回路１４に設定されたシェーパ設定レートが‘１０００ｋｂｐｓ’であったとする。ＦＰＧＡ１８で生成される帯域補正パケットのレートが‘４５０ｋｂｐｓ’であったとする。この場合、Ｅｇｒｅｓｓ−ＴＭ回路１４からは、図１１に示すように‘５５０ｋｂｐｓ’のユーザパケットが出力されることになる。
【０１１２】
図１１に示すように、ＦＰＧＡ１８の生成する帯域補正パケットのレートを‘５０ｋｂｐｓ’ごとに可変すれば、ユーザパケットの出力帯域を‘５０ｋｂｐｓ’単位で可変することができる。すなわち、図２の伝送装置では、設定される粒度が５００ｋｂｐｓであっても、シェーピングレートを細かく設定することができる。つまり、図２の伝送装置は、帯域補正パケットのレートを可変することにより、ユーザパケットの帯域を細かく制御でき、物理回線帯域に合わせることが可能となる。
【０１１３】
また、図２の伝送装置は、帯域補正パケットのレートを可変することにより、ユーザパケットの帯域を物理回線帯域に合わせることができるので、装置の設計・実装の柔軟性を実現することができる。
【０１１４】
ここで、帯域補正パケットを生成しない場合の伝送装置の動作について説明する。
図１２は、帯域補正パケットを生成しない場合の伝送装置の動作について説明する図のその１である。図１２に示すように、インタフェースカード５０は、Ｅｇｒｅｓｓ−ＴＭ回路５１、Ｅｇｒｅｓｓ−ＮＰＵ５２、および出力インタフェース回路５３を有している。図１２では、Ｉｎｇｒｅｓｓ部分については、図示を省略している。
【０１１５】
図１２では、物理回線帯域を１．９８０Ｍｂｐｓとする。Ｅｇｒｅｓｓ−ＴＭ回路５１の粒度を５００ｋｂｐｓとする。Ｅｇｒｅｓｓ−ＴＭ回路５１のシェーパ設定レートを２０００ｋｂｐｓとする。
【０１１６】
この場合、Ｅｇｒｅｓｓ−ＴＭ回路５１からは、２０００ｋｂｐｓのユーザパケットが出力される。これに対し、物理回線帯域は、１．９８０Ｍｂｐｓなので、出力インタフェース回路５３は、過剰分の２０ｋｂｐｓのユーザパケットを、ＴｘＦＩＦＯバッファにて無差別に廃棄する。すなわち、帯域補正パケットを生成しない場合、ユーザパケットが廃棄される場合がある。
【０１１７】
図１３は、帯域補正パケットを生成しない場合の伝送装置の動作について説明する図のその２である。図１３において、図１２と同じものには同じ符号を付し、その説明を省略する。
【０１１８】
図１３では、物理回線帯域を１．９８０Ｍｂｐｓとする。Ｅｇｒｅｓｓ−ＴＭ回路５１の粒度を５００ｋｂｐｓとする。Ｅｇｒｅｓｓ−ＴＭ回路５１のシェーパ設定レートを１５００ｋｂｐｓとする。
【０１１９】
この場合、Ｅｇｒｅｓｓ−ＴＭ回路５１の出力帯域は、物理回線帯域に対し、４８０ｋｂｐｓ分不足する。そのため、物理回線は、その分帯域を余らせてしまう。
図１２と図１３で説明したように、帯域補正パケットを生成しない場合、Ｅｇｒｅｓｓ−ＴＭ回路５１の出力帯域と物理回線帯域とにずれが生じ、ユーザパケットが無差別に廃棄されたり、物理回線帯域が余ったりする。これに対し、図２の伝送装置では、物理回線帯域に対し、Ｅｇｒｅｓｓ−ＴＭ回路５１から出力されるユーザパケットの帯域を合わせることができる。
【０１２０】
図２の伝送装置の物理回線に対する帯域補正パケットの送出量について説明する。
図１４は、物理回線と帯域補正パケットの送出量の設定例を示した図である。図１４では、物理回線がＥ１−Ｘｖ（Ｘ＝１…１６）の場合の、帯域補正パケットの送出量の設定例が示してある。図２の伝送装置のＥｇｒｅｓｓ−ＴＭ回路１４の粒度を５００ｋｂｐｓ（最大１０Ｇｂｐｓの設定レンジとして妥当な粒度設計）、ＦＰＧＡ１８の生成する帯域補正パケットのパケット長を６４バイトとする。
【０１２１】
図１４のＡの欄には、Ｅ１−Ｘｖの回線帯域が示してある。Ｂの欄には、Ｅ１−Ｘｖのペイロード帯域が示してある。Ｃの欄には、Ｅｇｒｅｓｓ−ＴＭ回路１４のシェーパ設定レートが示してある。Ｄの欄には、ＦＰＧＡ１８の帯域補正パケットの送出周期が示してある。Ｅの欄には、帯域補正パケットのパケット長が示してある。Ｆの欄には、帯域補正パケットのレート（ｐａｃｋｅｔｓ／ｓ）が示してある。Ｇの欄には、帯域補正パケットのレート（ｋｂｐｓ）が示してある。
【０１２２】
例えば、Ｅ１−１ｖにおいて、Ｅｇｒｅｓｓ−ＴＭ回路１４のシェーパ設定レートを、ペイロード帯域１９８０ｋｂｐｓより大きい２０００ｋｂｐｓに設定する。この場合、ＦＰＧＡ１８は、Ｄ欄およびＧ欄に示すように、６４バイトのパケット長の帯域補正パケットを、２５．６ｍｓ周期で送出するようにする。すると、Ｅｇｒｅｓｓ−ＴＭ回路１４には、２０ｋｂｐｓの帯域補正パケットが入力され、Ｅｇｒｅｓｓ−ＴＭ回路１４からは、１９８０ｋｂｐｓのユーザパケットが出力される。これにより、Ｅｇｒｅｓｓ−ＴＭ回路１４は、ＦＰＧＡ１８の生成する帯域補正パケットによって、ペイロード帯域と同等のシェーピングを行うことができる。
【０１２３】
このように、ＦＰＧＡ１８は、Ｅｇｒｅｓｓ−ＴＭ回路１４のパケットをシェーピングする所定の粒度の帯域より小さい帯域の帯域補正パケットを生成し、Ｅｇｒｅｓｓ−ＴＭ回路１４に入力する。これにより、Ｅｇｒｅｓｓ−ＴＭ回路１４は、所定の粒度の帯域より細かなシェーピングレートが可能になり、パケットをシェーピングした後の帯域と物理回線帯域とのずれを解消することができる。
【０１２４】
また、Ｅｇｒｅｓｓ−ＴＭ回路１４は、パケットをシェーピングした後の帯域と物理回線帯域とのずれを解消できるので、出力インタフェース回路１６は、ユーザパケットを破棄しなくて済む。また、伝送装置は、物理回線帯域を余らすことなく、ユーザパケットを物理回線に出力することができる。
【０１２５】
また、Ｅｇｒｅｓｓ−ＴＭ回路１４は、例えば、ハードウェアにて粒度を細かくすることで、パケットのシェーピング後の帯域と物理回線帯域とのずれを解消することも可能である。しかし、大容量化が進む昨今では、１０Ｇｂｐｓまたはそれ以上の設定レンジが要求されるので、粒度を細かくすればするほど、デバイス設計および設定の難度が上がり、コストも高くなる。
【０１２６】
また、例えば、Ｅｇｒｅｓｓ−ＴＭ回路１４と出力インタフェース回路１６との間にバックプレッシャ機能を実装することが考えられる。この場合、出力インタフェース回路１６でのバッファオーバフローによるパケットの廃棄を回避することが可能になる。しかし、バックプレッシャ信号の伝搬時間等、詳細なタイミング設計が要求されるため、デバイス設計および設定の難度が上がり、コストも高くなる。
【０１２７】
これに対し、図２の伝送装置では、帯域補正パケットの送出量を変えることによって、容易にＥｇｒｅｓｓ−ＴＭ回路１４のシェーパレートを変えることができる。また、容易にＥｇｒｅｓｓ−ＴＭ回路１４のシェーパレートを変えることができるので、コストを低減することができる。
【０１２８】
なお、上記では、ＦＰＧＡ１８がＣＰＵ１７の指示に基づいた帯域補正パケットを生成するとしたが、ＣＰＵ１７が帯域補正パケットを生成して出力するようにしてもよい。
また、ＦＰＧＡ１８の帯域補正パケットを生成する機能をＥｇｒｅｓｓ−ＴＭ回路１４に実装するようにしてもよい。
【符号の説明】
【０１２９】
１  インタフェースカード
１ａ  シェーピング回路
１ｂ  パケット生成回路
２  スイッチ
【図１】
0005673321.tif 000002
【図２】
0005673321.tif 000003
【図３】
0005673321.tif 000004
【図４】
0005673321.tif 000005
【図５】
0005673321.tif 000006
【図６】
0005673321.tif 000007
【図７】
0005673321.tif 000008
【図８】
0005673321.tif 000009
【図９】
0005673321.tif 000010
【図１０】
0005673321.tif 000011
【図１１】
0005673321.tif 000012
【図１２】
0005673321.tif 000013
【図１３】
0005673321.tif 000014
【図１４】
0005673321.tif 000015