(57)【要約】【課題】任意の順位数の優先制御を柔軟に実現できる伝送装置等を提供する。【解決手段】伝送装置は、第１の格納部と、第２の格納部と、帯域制御部と、制御部とを有する。第１の格納部は、第１の宛先情報を有するデータを格納する。第２の格納部は、第２の宛先情報を有するデータを格納する。帯域制御部は、設定レートに応じて、第１の格納部及び第２の格納部に格納されたデータの出力を制御する。制御部は、優先度に応じて、第１の格納部及び第２の格納部の何れか一方からデータを出力するように帯域制御部の設定レートを制御する。【選択図】図３
2018050246.tif 000002
【特許請求の範囲】
【請求項１】
第１の宛先情報を有するデータを格納する第１の格納部と、
第２の宛先情報を有するデータを格納する第２の格納部と、
設定レートに応じて、前記第１の格納部及び前記第２の格納部に格納された前記データの出力を制御する帯域制御部と、
優先度に応じて、前記第１の格納部及び前記第２の格納部の何れか一方から前記データを出力するように前記帯域制御部の前記設定レートを制御する制御部と
を有することを特徴とする伝送装置。
【請求項２】
前記制御部は、
前記宛先情報毎に、前記帯域制御部にて前記データを出力する前記出力レート量及び、そのデータ出力を継続する出力ＯＮ区間を調整して前記設定レートを制御することを特徴とする請求項１に記載の伝送装置。
【請求項３】
前記帯域制御部は、所定の加算周期毎にトークンをトークンバケットに加算するトークンバケット方式を採用し、
前記制御部は、
前記宛先情報毎の前記出力ＯＮ区間を前記帯域制御部の前記加算周期の倍数に設定することを特徴とする請求項２に記載の伝送装置。
【請求項４】
前記制御部は、
前記第１の宛先情報又は前記第２の宛先情報を有する前記データの前記出力ＯＮ区間中に同一の宛先情報を有する前記データの出力ＯＮを検出した場合に当該宛先情報を有する前記データの前記出力レート量を増加すると共に、前記出力ＯＮ区間中に同一の宛先情報を有する前記データの出力ＯＦＦを検出した場合に当該宛先情報を有する前記データの前記出力レート量を減少することを特徴とする請求項２に記載の伝送装置。
【請求項５】
前記第１の宛先情報又は前記第２の宛先情報を有する前記データの前記出力ＯＮ区間中に同一の宛先情報を有する前記データの出力ＯＮを所定時間内に検出した検出回数をカウントし、前記所定時間経過後に当該検出回数を出力する保持部を有し、
前記制御部は、
前記保持部からの前記検出回数に応じて当該宛先情報を有する前記データの前記出力レート量を増加し、増加後の出力レート量で前記設定レートを制御した後、当該宛先情報を有する前記データの前記出力レート量を減少することを特徴とする請求項２に記載の伝送装置。
【請求項６】
前記第１の宛先情報又は前記第２の宛先情報を有する前記データの前記出力ＯＮ区間中に同一の宛先情報を有する前記データの出力ＯＮを検出した検出回数をカウントし、前記検出回数が所定回数を超えた場合に当該検出回数を出力する保持部を有し、
前記制御部は、
前記保持部からの前記検出回数に応じて当該宛先情報を有する前記データの前記出力レート量を増加し、増加後の出力レート量で前記設定レートを制御した後、当該宛先情報を有する前記データの前記出力レート量を減少することを特徴とする請求項２に記載の伝送装置。
【請求項７】
同一宛先情報を有する前記データのトラヒック量に基づき、当該宛先情報を有する前記データを出力する前記出力レート量及び前記出力ＯＮ区間が異なる同一出力量の前記設定レートの各パターンを決定する決定部を有することを特徴とする請求項２に記載の伝送装置。
【請求項８】
同一宛先情報を有する前記データの遅延揺らぎに基づき、当該宛先情報を有する前記データを出力する前記出力レート量及び前記出力ＯＮ区間が異なる同一出力量の前記設定レートの各パターンを決定する決定部を有することを特徴とする請求項２に記載の伝送装置。
【請求項９】
前記制御部は、
同一宛先情報を有する前記データの出力ＯＮを検出した場合に重畳回数をカウントし、その重畳回数に応じて前記出力レート量及び前記出力ＯＮ区間が異なる同一出力量の前記設定レートの各パターンを決定し、決定したパターンで前記設定レートを制御するパターン制御部を有することを特徴とする請求項２に記載の伝送装置。
【請求項１０】
第１の宛先情報を有するデータを格納する第１の格納部と、第２の宛先情報を有するデータを格納する第２の格納部とを有する伝送装置が、
設定レートに応じて、前記第１の格納部及び前記第２の格納部に格納された前記データの出力を制御し、
優先度に応じて、前記第１の格納部及び前記第２の格納部の何れか一方から前記データを出力するように前記設定レートを制御する
処理を実行することを特徴とする伝送処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、伝送装置及び伝送処理方法に関する。
【背景技術】
【０００２】
近年、伝送システムでは、例えば、スマートフォン等の普及やインターネットを用いたサービスの多様化に伴って、局に集約するユーザ数や、通信するデータ量が増加傾向にある。伝送システムに使用する伝送装置では、例えば、データ遅延が許されない音声や、データ遅延がある程度許されるメール等の各種データを同時に処理するため、データ種別に応じて優先度を識別し、その優先度に応じてデータ処理を実行する。
【０００３】
伝送装置では、超高速性が求められるため、例えば、パケットのフロー識別、宛先検索やＱｏＳ制御等のデータプレーン処理を、例えば、ＦＰＧＡ（Field  Programmable  Gate  Array）等のハードウェアで実現している。また、近年、ＣＰＵ性能の向上に伴って、ネットワーク機能を汎用サーバ上で実行することで、ネットワーク設計・構築を柔軟にするＮＦＶ(Network  Functions  Virtualization)が注目されている。しかしながら、例えば、１００Ｇｂｐｓを超えるパケット処理を全てソフトウェアで処理することは現実的に未だ困難である。そこで、近年、伝送装置では、例えば、契約帯域や優先度に基づき、パケットの出力量を制御するスケジューラ機能をソフトウェアで、例えば、パケット毎の入出力機能をハードウェアで実現することも検討されている。
【０００４】
図２９は従来の伝送装置内のシェーピング機能の一例を示す説明図である。伝送装置２００は、入力処理部２０１と、キュー管理部２０２と、出力処理部２０３と、スケジューラ２０４とを有する。入力処理部２０１は、入力フローを識別する処理部である。キュー管理部２０２は、複数のキュー２０２Ａと、複数のシェーパ２０２Ｂとを管理する。各キュー２０２Ａは、フローＩＤ毎に１以上の入力フローを格納する。シェーパ２０２Ｂは、キュー２０２Ａ毎に配置し、キュー２０２Ａに格納中の入力フローをシェーピング出力する。出力処理部２０３は、シェーピング出力されたフローを出力する。スケジューラ２０４は、複数のキュー２０２Ａの各々に一定の読出許容量（クレジット）を与える。キュー管理部２０２は、複数のキュー２０２Ａから、キュー２０２Ａ毎の読出許容量（クレジット）及び該キュー２０２Ａ毎に蓄積された１以上のパケットのデータ量に関する読出条件を満たした順に、読出許容量（クレジット）を消費して１以上のパケットを読み出す。
【０００５】
伝送装置２００では、入力処理部２０１、キュー管理部２０２及び出力処理部２０３をハードウェアで構成し、スケジューラ２０４をソフトウェアで構成した。伝送装置２００では、ハードインプリの実現性を図りながら、ソフトウェアによるスケジューラ２０４の機能の向上を図るようにしている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１４−１３５５８１号公報
【特許文献２】特開２０１５−１９３６９号公報
【特許文献３】特開２０１５−１０９６７２号公報
【特許文献４】特開２０１５−９１０６１号公報
【特許文献５】特表２００５−５１０８９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、伝送装置２００では、スケジューラ２０４についてはソフトウェア構成であるため汎用化が可能であるが、キュー管理部２０３では、スケジューラ２０４からの読み出し許容量に応じてパケットを読み出す「専用」のハードウェアが必要となる。キュー管理部２０３では、例えば、優先クラスを４クラスまでの仕様に構成した場合、フローを５以上のクラスにマッピングできない。つまり、伝送装置２００では、スケジューラ２０４で優先制御を任意の順位数に設定変更したとしても、ハードウェア上の制約で優先制御を実現できない。
【０００８】
一つの側面では、任意の順位数の優先制御を柔軟に実現できる伝送装置及び伝送処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
一つの態様では、第１の格納部と、第２の格納部と、帯域制御部と、制御部とを有する。第１の格納部は、第１の宛先情報を有するデータを格納する。第２の格納部は、第２の宛先情報を有するデータを格納する。帯域制御部は、設定レートに応じて、前記第１の格納部及び前記第２の格納部に格納された前記データの出力を制御する。制御部は、優先度に応じて、前記第１の格納部及び前記第２の格納部の何れか一方から前記データを出力するように前記帯域制御部の前記設定レートを制御する。
【発明の効果】
【００１０】
一つの側面として、任意の順位数の優先制御を柔軟に実現できる。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例１の伝送装置のハードウェア構成の一例を示す説明図である。
【図２】図２は、ＩＦカードのハードウェア構成の一例を示す説明図である。
【図３】図３は、ＩＦカード内のＦＰＧＡ及びＣＰＵの一例を示す説明図である。
【図４】図４は、帯域制御部のトークンバケット方式の一例を示す説明図である。
【図５Ａ】図５Ａは、ＣＰＵ及びＦＰＧＡの設定タイミングの競合発生の一例を示す説明図である。
【図５Ｂ】図５Ｂは、ＣＰＵ及びＦＰＧＡのトークン加算タイミングのズレの一例を示す説明図である。
【図６】図６は、実施例２のＩＦカード内のＦＰＧＡ及びＣＰＵの一例を示す説明図である。
【図７Ａ】図７Ａは、ＣＰＵ及びＦＰＧＡの設定タイミングの競合回避及びトークン加算タイミングのズレ回避の一例を示す説明図である。
【図７Ｂ】図７Ｂは、ＣＰＵ及びＦＰＧＡのトークン加算タイミングの一例を示す説明図である。
【図８】図８は、従来の伝送装置のＣＰＵ及び専用ハードのトークン加算タイミングの一例を示す説明図である。
【図９】図９は、ＣＰＵ及びＦＰＧＡのトークン加算タイミングの一例を示す説明図である。
【図１０】図１０は、ＣＰＵ及びＦＰＧＡのトークン加算タイミングの一例を示す説明図である。
【図１１】図１１は、第１の倍率制御処理に関わる倍率制御部の処理動作の一例を示すフローチャートである。
【図１２】図１２は、第１のタイマ監視処理に関わるタイマ制御部の処理動作の一例を示すフローチャートである。
【図１３】図１３は、設定処理に関わるレート設定部の処理動作の一例を示すフローチャートである。
【図１４】図１４は、ＦＰＧＡ内の優先クラス制御の一例を示す説明図である。
【図１５】図１５は、実施例３のＩＦカード内のＦＰＧＡ及びＣＰＵの一例を示す説明図である。
【図１６】図１６は、ＣＰＵ及びＦＰＧＡのトークン加算タイミングの一例を示す説明図である。
【図１７】図１７は、第１の通知処理に関わる保持部の処理動作の一例を示すフローチャートである。
【図１８】図１８は、第２の倍率制御処理に関わる倍率制御部の処理動作の一例を示すフローチャートである。
【図１９】図１９は、第２の通知処理に関わる保持部の処理動作の一例を示すフローチャートである。
【図２０】図２０は、実施例５のＩＦカード内のＦＰＧＡ及びＣＰＵの一例を示す説明図である。
【図２１】図２１は、実施例５に使用するシェーピングレートの各出力パターンの一例を示す説明図である。
【図２２Ａ】図２２Ａは、ＣＰＵ及びＦＰＧＡのトークン加算タイミングの重畳動作の一例を示す説明図である。
【図２２Ｂ】図２２Ｂは、１回目〜３回目の選択フロー＃ＡのＯＦＦが遅延した場合のトークン加算タイミングの一例を示す説明図である。
【図２３】図２３は、出力パターン決定処理に関わる決定部の処理動作の一例を示すフローチャートである。
【図２４】図２４は、実施例６のＩＦカード内のＦＰＧＡ及びＣＰＵの一例を示す説明図である。
【図２５Ａ】図２５Ａは、遅延揺らぎが小さい場合のＣＰＵ及びＦＰＧＡの高レートの出力パターンの重畳動作の一例を示す説明図である。
【図２５Ｂ】図２５Ｂは、遅延揺らぎが大きい場合のＣＰＵ及びＦＰＧＡの低レートの出力パターンの重畳動作の一例を示す説明図である。
【図２６】図２６は、実施例７のＩＦカード内のＦＰＧＡ及びＣＰＵの一例を示す説明図である。
【図２７】図２７は、パターン制御処理に関わるパターン制御部の処理動作の一例を示すフローチャートである。
【図２８】図２８は、ＣＰＵ及びＦＰＧＡのトークン加算タイミングの一例を示す説明図である。
【図２９】図２９は、従来の伝送装置内のシェーピング機能の一例を示す説明図である。
【発明を実施するための形態】
【００１２】
以下、図面に基づいて、本願の開示する伝送装置及び伝送処理方法の実施例を詳細に説明する。尚、本実施例により、開示技術が限定されるものではない。また、以下に示す実施例は、矛盾を起こさない範囲で適宜組み合わせても良い。
【実施例１】
【００１３】
図１は、実施例１の伝送装置１のハードウェア構成の一例を示す説明図である。図１に示す伝送装置１は、例えば、光ファイバ等の物理リンク２で他の伝送装置と通信接続する。伝送装置１は、例えば、端末装置から収集した音声やメール等の各種データを格納したパケットを他の伝送装置や他の端末装置に伝送する伝送装置である。尚、伝送装置１は、例えば、端末装置が無線端末の場合に、無線端末を無線接続して収容する基地局等である。また、伝送装置１は、例えば、レイヤ２スイッチやルータ等のスイッチ装置等でも良い。また、パケットは、伝送されるデータ（情報）の伝送単位であり、例としてイーサネット（登録商標）フレームを挙げるが、これに限られず、ＩＰパケット等の他のフレームであってもよい。
【００１４】
図１に示す伝送装置１は、複数の＃１〜＃ｎのＩＦカード３と、ＳＷカード４と、制御カード５とを有する。ＩＦカード３は、物理リンク２と接続する通信インタフェースを内蔵したカードである。ＳＷカード４は、複数のＩＦカード３を切替接続するカードである。制御カード５は、伝送装置１全体を制御するカードである。制御カード５は、メモリ５Ａと、ＣＰＵ（Central  Processing  Unit）５Ｂとを有する。メモリ５Ａは、各種情報を記憶する領域である。ＣＰＵ５Ｂは、制御カード５全体を制御する。
【００１５】
図２は、ＩＦカード３のハードウェア構成の一例を示す説明図である。図２に示すＩＦカード３は、複数の光モジュール１１と、ＰＨＹ／ＭＡＣデバイス１２と、ＦＰＧＡ１３と、メモリ１４と、ＣＰＵ１５とを有する。光モジュール１１は、物理リンク２からの光信号を電気信号に変換する機能と、ＰＨＹ／ＭＡＣデバイス１２からの電気信号を光信号に変換して出力する機能とを有する。ＰＨＹ／ＭＡＣデバイス１２は、物理リンク２との間の確立処理や複数の光モジュール１１に対するパケットの分配処理等を実行する。ＰＨＹ／ＭＡＣデバイス１２は、複数の光モジュール１１からのパケットをＦＰＧＡ１３に出力し、ＦＰＧＡ１３からのパケットを複数の光モジュール１１に出力する。ＦＰＧＡ１３は、汎用型のハードウェアである。尚、ＦＰＧＡ１３の代わりに、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）等で実現しても良い。メモリ１４は、各種情報を記憶する領域である。ＣＰＵ１５は、ＩＦカード３全体を制御する。
【００１６】
図３は、ＩＦカード３内のＦＰＧＡ１３及びＣＰＵ１５の一例を示す説明図である。図３に示すＦＰＧＡ１３は、ＳＷＩＦ２１と、入力処理部２２と、キュー管理部２３と、帯域制御部２４と、出力処理部２５と、ＰＨＹ／ＭＡＣＩＦ２６と、帯域設定ＩＦ２７とを有する。ＳＷＩＦ２１は、ＳＷカード４と接続するＩＦである。入力処理部２２は、例えば、イングレス（ＩＮＧＲＥＳＳ）のパケット処理を実行する。入力処理部２２は、入力パケット内のフローＩＤでユーザフローを識別するフロー識別部２２Ａを有する。尚、ユーザフローとは、例えば、特定ユーザから他の特定ユーザへのデータの流れである。
【００１７】
キュー管理部２３は、入力パケットが属するユーザフロー毎に出力キュー２３Ａを配置し、出力キュー２３Ａ内に当該ユーザフローの入力パケットを格納する機能である。出力キュー２３Ａは、例えば、ＦＩＦＯ（First  In  First  Out）等の格納部である。帯域制御部２４は、例えば、トークンバケット方式等を用いてユーザフロー毎の出力キュー２３Ａのパケット出力の間隔を調整するシェーパ機能を有する。帯域制御部２４は、出力キュー２３Ａ毎にシェーパ２４Ａを有し、ＣＰＵ１５からの設定レートに応じて出力キュー２３Ａ毎のシェーパ２４Ａを制御する。シェーパ２４Ａは、トークンを蓄積するトークンバケット２４Ｂを有し、トークンバケット２４Ｂ内のトークン残量に応じて選択フローに対応する出力キュー２３Ａ内のパケットの読み出しを制限する。また、シェーパ２４Ａは、パケットの出力間隔を、トークンをトークンバケット２４Ｂに加算する加算レートで調整する。そして、帯域制御部２４は、出力キュー２３Ａ毎のシェーパ２４Ａを制御することで、複数の出力キュー２３Ａの内、対応する出力キュー２３Ａを選択し、選択した出力キュー２３Ａ内のパケットを出力処理部２５に出力する。出力処理部２５は、例えば、イーグレス（ＥＧＲＥＳＳ）のパケット処理を実行する。ＰＨＹ／ＭＡＣＩＦ２６は、ＰＨＹ／ＭＡＣデバイス１２と接続するＩＦである。帯域設定ＩＦ２７は、ＣＰＵ１５からの設定レートに応じて帯域制御部２４のシェーピングレートを設定するＩＦである。
【００１８】
ＣＰＵ１５は、スケジューラ（ＳＣＨ）３１と、設定部３２とを有する。ＳＣＨ３１は、複数の出力キュー２３Ａの内、出力対象の出力キュー２３Ａを効率良く、かつ、高速に決定する、例えば、優先制御機能、帯域制御機能や出力キュー選択機能を有する。優先制御機能は、ユーザフロー（宛先情報）の優先度に応じてパケットの出力タイミングを選択する機能である。尚、優先度は、パケットのクラス情報やトークン状態等に応じたユーザフローの出力優先度である。帯域制御機能は、ＦＰＧＡ１３内の帯域制御部２４のシェーピングレートを制御する機能である。出力キュー選択機能は、例えば、ラウンドロビン方式に基づき、複数の出力キュー２３Ａの内、出力対象の出力キュー２３Ａを選択する機能である。ＳＣＨ３１は、トークンバケット２４Ｂ内のトークン残量を消費して選択フローに対応するシェーパ２４Ａを通じて選択フローに対応する出力キュー２３Ａからパケットを読み出す。
【００１９】
ＳＣＨ３１は、仮想キュー長カウンタ３１Ａと、選択部３１Ｂとを有する。仮想キュー長カウンタ３１Ａは、出力キュー２３Ａ毎の仮想キュー長をカウントする。選択部３１Ｂは、出力対象のユーザフロー、すなわち選択フローの選択通知を設定部３２に通知する。
【００２０】
設定部３２は、選択通知に応じて選択フローに対応するシェーパ２４Ａのシェーピングレートを設定する。選択フローのシェーピングレートは、当該選択フローの出力キュー２３Ａに対応したシェーパ２４Ａを制御する設定レートである。シェーピングレートは、例えば、設定レート量を２００Ｍｂｐｓ及び、設定レート量のＯＮ継続時間であるＯＮ区間を１ｍｓの出力パターンである。設定部３２は、設定レート量及び設定レート量のＯＮ区間を調整することで、帯域制御部２４内の出力キュー２３Ａに対応したシェーパ２４Ａ毎のシェーピングレートを調整できる。
【００２１】
図４は、帯域制御部２４のトークンバケット方式の一例を示す説明図である。帯域制御部２４は、出力キュー２３Ａ毎にトークンバケット２４Ｂを有し、加算周期毎に加算トークン量をトークンバケット２４Ｂ内に加算し、トークバケット２４Ｂ内のトークン残量の範囲で出力キュー２３Ａからパケットを出力できる。シェーピングレートは、例えば、加算周期毎の加算トークン量÷加算周期である。加算周期は一定、加算トークン量はユーザフロー毎に調整可能とする。
【００２２】
例えば、加算周期を５０μｓ、フロー＃Ａの加算トークン量を６２５０バイトとした場合、加算周期毎に６２５０バイトをトークンバケット２４Ｂ内に加算するため、フロー＃Ａのシェーピングレートは、例えば、６２５０Ｂ／５０μｓ＝１Ｇｂｐｓとなる。また、フロー＃Ｂの加算トークン量を６２５バイトとした場合、加算周期毎に６２５バイトをトークンバケット２４Ｂ内に加算するため、フロー＃Ｂのシェーピングレートは、例えば、６２５Ｂ／５０μｓ＝１００Ｍｂｐｓとなる。また、フロー＃Ｚの加算トークン量を１２５バイトとした場合、加算周期毎に１２５バイトをトークンバケット２４Ｂ内に加算するため、フロー＃Ｃのシェーピングレートは、例えば、１２５Ｂ／５０μｓ＝２０Ｍｂｐｓとなる。
【００２３】
実施例１の伝送装置１は、選択フロー毎の設定レート量及び出力ＯＮ区間を調整することで選択フローのシェーピングレートを設定変更する。伝送装置１は、選択フロー毎のシェーピングレートに応じて選択フローの加算周期毎の加算トークン量を調整する。その結果、伝送装置１は、選択フロー毎にシェーピングレートを調整できるため、ハードウェア上の制約があっても、優先クラスの変動に柔軟に対応した優先制御を実現できる。
【００２４】
しかしながら、実施例１の伝送装置１では、例えば、設定レート量及び出力ＯＮ区間を調整する上で選択フローの設定タイミングの競合が発生する場合がある。図５Ａは、ＣＰＵ１５及びＦＰＧＡ１３の設定タイミングの競合発生の一例を示す説明図である。尚、例えば、加算周期を５０μｓ、フロー＃Ａの出力ＯＮ区間を１００μｓ及び＃Ｂの出力ＯＮ区間を５０μｓとする。設定部３２は、ＳＣＨ３１からのフロー＃Ａの選択通知を検出した場合、帯域制御部２４のフロー＃Ａのシェーパ２４ＡをＯＮにし、ＯＮ開始から１００μｓ経過後にシェーパ２４ＡをＯＦＦにする。また、設定部３２は、ＳＣＨ３１からのフロー＃Ｂの選択通知を検出した場合、フロー＃Ｂのシェーパ２４ＡをＯＮにし、そのＯＮ開始から５０μｓ経過後にシェーパ２４ＡをＯＦＦにする。しかしながら、帯域制御部２４は、フロー＃Ａ及び＃Ｂが同時にＯＦＦとなる競合が発生し、フロー＃Ａ及び＃Ｂが同時にＯＦＦできない状態となる。従って、実際には、設定タイミングの競合を防止する必要がある。
【００２５】
図５Ｂは、ＣＰＵ１５及びＦＰＧＡ１３のトークン加算タイミングのズレの一例を示す説明図である。例えば、加算周期を５０μｓ、フロー＃Ａの出力ＯＮ区間を８０μｓとする。ＦＰＧＡ１３は、例えば、フロー＃Ａの出力ＯＮ区間中に加算周期が２回到来した場合、トークン加算回数は２回となる。しかしながら、ＦＰＧＡ１３は、加算周期のタイミングが異なる場合、例えば、フロー＃Ａの出力ＯＮ区間中に加算周期が１回しか到来せず、その場合、トークン加算回数は１回となる。つまり、ＦＰＧＡ１３では、加算周期のタイミングによって出力ＯＮ区間中にトークン加算回数にズレが生じる。従って、実際には、加算周期のタイミングによるトークン加算回数のズレを防止する必要がある。
【００２６】
そこで、設定タイミングの競合及びトークン加算タイミングのズレを回避する伝送装置１の実施の形態につき、実施例２として以下に説明する。尚、実施例１の伝送装置１と同一の構成には同一符号を付すことで、その重複する構成及び動作の説明については省略する。
【実施例２】
【００２７】
図６は、実施例２のＩＦカード３内のＦＰＧＡ１３及びＣＰＵ１５Ａの一例を示す説明図である。図６に示す設定部３２Ａは、倍率制御部４１と、レート設定部４２と、タイマ制御部４３とを有する。倍率制御部４１は、選択フローのシェーパ２４Ａのシェーピングレートの設定倍率を制御する。レート設定部４２は、選択フローのシェーピングレートの設定倍率に基づき、選択フローのシェーパ２４Ａのシェーピングレートを帯域設定ＩＦ２７に設定する。タイマ制御部４３は、選択フローのシェーピングレートの出力ＯＮ区間の終了、すなわち出力ＯＦＦを監視するタイマである。
【００２８】
倍率制御部４１は、ＳＣＨ３１からの選択フローの選択通知を検出した場合、選択フローのシェーパ２４Ａのシェーピングレートの設定倍率を＋１インクリメントし、＋１インクリメント後の設定倍率をレート設定部４２に通知する。尚、シェーピングレートは、固定の出力パターンとする。レート設定部４２は、倍率制御部４１からの選択フローのシェーピングレートの設定倍率に応じてシェーピングレートを帯域設定ＩＦ２７に設定する。更に、レート設定部４２は、選択フローのシェーピングレートを帯域設定ＩＦ２７に設定した場合、選択フローのタイマ設定をタイマ制御部４３に通知する。
【００２９】
タイマ制御部４３は、選択フローのタイマ設定を検出した場合、選択フローのＯＮ区間タイマを起動し、ＯＮ区間タイマがタイムアップした場合に選択フローのタイムアップを倍率制御部４１に通知する。尚、ＯＮ区間タイマは、シェーピングレートの出力ＯＮ区間の終了タイミング、ＯＦＦを監視するタイマである。倍率制御部４１は、タイマ制御部４３からの選択フローのタイムアップに応じて設定倍率を−１デクリメントする。倍率制御部４１は、選択フローの−１デクリメント後の設定倍率をレート設定部４２に通知する。レート設定部４２は、−１デクリメント後の設定倍率に基づき、選択フローのシェーピングレートを帯域設定ＩＦ２７に設定する。
【００３０】
図７Ａは、ＣＰＵ１５Ａ及びＦＰＧＡ１３の設定タイミングの競合回避及びトークン加算タイミングのズレ回避の一例を示す説明図である。設定部３２Ａは、加算周期を一定、かつ、選択フローの出力ＯＮ区間を加算周期のＮ倍、例えば、２倍とし、出力ＯＮ区間を固定にする。設定部３２Ａは、１回目の選択フロー＃Ａの出力ＯＮ区間中に２回目の選択フロー＃Ａの選択通知、すなわちＯＮを検出した場合でも、出力ＯＮ区間が固定であるため、１回目の選択フロー＃Ａと２回目の選択フロー＃Ａとの間のＯＦＦの競合を回避できる。しかも、出力ＯＮ区間が固定であるため、トークン加算タイミングのズレによる加算回数の差異を防止できる。
【００３１】
図７Ｂは、ＣＰＵ１５Ａ及びＦＰＧＡ１３のトークン加算タイミングの一例を示す説明図である。設定部３２Ａは、１回目の選択フロー＃Ａの選択通知（出力ＯＮ）を検出した場合、１回目の選択フロー＃Ａのシェーピングレートの設定倍率を１倍に設定する。尚、設定倍率が１倍の場合、加算周期の到来に応じて１倍の加算トークン量を加算する。更に、設定部３２Ａは、１回目の選択フロー＃Ａの出力ＯＮ区間中に２回目の選択フロー＃Ａの選択通知（出力ＯＮ）を検出した場合、選択フロー＃Ａのシェーピングレートの設定倍率を＋１インクリメントして２倍に設定する。尚、設定倍率が２倍の場合、加算周期の到来に応じて２倍の加算トークン量を加算する。次に、設定部３２Ａは、１回目の選択フロー＃Ａの出力ＯＦＦを検出した場合、選択フロー＃Ａのシェーピングレートの設定倍率を−１デクリメントして１倍に設定する。更に、設定部３２Ａは、２回目の選択フロー＃Ａの出力ＯＦＦを検出した場合、選択フロー＃Ａのシェーピングレートの設定倍率を−１デクリメントして０倍に設定する。
【００３２】
図８は、従来の伝送装置２００のＣＰＵ及び専用ハードのトークン加算タイミングの一例を示す説明図である。従来の伝送装置のスケジューラ２０４は、１００μｓの区間中に３回の選択フロー＃Ａの選択を検出したものとする。スケジューラ２０４は、１回目の選択フロー＃Ａの選択を検出した場合、クレジット（２５ｋバイト）を専用ハード内のキュー管理部２０２に加算する。更に、スケジューラ２０４は、２回目の選択フロー＃Ａの選択を検出した場合、クレジット（２５ｋバイト）をキュー管理部２０２に加算し、クレジット量が合計５０ｋバイトとなる。更に、スケジューラ２０４は、３回目の選択フロー＃Ａの選択を検出した場合、クレジット（２５ｋバイト）をキュー管理部２０２に加算し、クレジット量が合計７５ｋバイトとなる。その結果、専用ハードは、例えば、１００μｓの区間中に７５ｋバイト分の選択フロー＃Ａのパケットが読出し可能となる。
【００３３】
図９は、ＣＰＵ１５Ａ及びＦＰＧＡ１３のトークン加算タイミングの一例を示す説明図である。実施例２の伝送装置１の設定部３２Ａは、１００μｓの区間中に３回の選択フロー＃Ａの選択を検出したものとする。設定部３２Ａは、１回目の選択フロー＃Ａの選択通知（出力ＯＮ）を検出した場合、選択フロー＃Ａのシェーピングレート（４Ｇｂｐｓ）の設定倍率を１倍に設定する。この際、帯域制御部２４は、選択フロー＃Ａのトークンバケット２４Ｂの加算周期の到来に応じて２５ｋバイト（４Ｇｂｐｓ）のトークンを加算する。
【００３４】
設定部３２Ａは、１回目の選択フロー＃Ａの出力ＯＮ区間中に２回目の選択フロー＃Ａの選択通知（出力ＯＮ）を検出した場合、選択フロー＃Ａのシェーピングレートの設定倍率を＋１インクリメントする。つまり、設定部３２Ａは、選択フロー＃Ａのシェーピングレート（４Ｇｂｐｓ）の設定倍率を２倍、すなわち８Ｇｂｐｓに設定する。設定部３２Ａは、１回目の選択フロー＃Ａの出力ＯＦＦを検出した場合、選択フロー＃Ａのシェーピングレートの設定倍率を−１デクリメントし、選択フロー＃Ａのシェーピングレート（４Ｇｂｐｓ）を１倍に設定する。この際、帯域制御部２４は、選択フロー＃Ａのトークンバケット２４Ｂの加算周期の到来に応じて２５ｋバイト（４Ｇｂｐｓ）のトークンを加算する。
【００３５】
また、設定部３２Ａは、２回目の選択フロー＃Ａの出力ＯＮ区間中に３回目の選択フロー＃Ａの選択通知（出力ＯＮ）を検出した場合、選択フロー＃Ａのシェーピングレートの設定倍率を＋１インクリメントする。設定部３２Ａは、選択フロー＃Ａのシェーピングレート（４Ｇｂｐｓ）の設定倍率を２倍に設定する。設定部３２Ａは、２回目の選択フロー＃Ａの出力ＯＦＦを検出した場合、選択フロー＃Ａの設定倍率を−１デクリメントし、選択フロー＃Ａのシェーピングレート（４Ｇｂｐｓ）を１倍に設定する。この際、帯域制御部２４は、選択フロー＃Ａのトークンバケット２４Ｂの加算周期の到来に応じて２５ｋバイト（４Ｇｂｐｓ）のトークンを加算する。
【００３６】
設定部３２Ａは、３回目の選択フロー＃Ａの出力ＯＦＦを検出した場合、選択フロー＃Ａの設定倍率を−１デクリメントし、選択フロー＃Ａのシェーピングレート（４Ｇｂｐｓ）を０倍に設定する。その結果、ＦＰＧＡ１３は、例えば、１００μｓの区間で７５ｋバイト分の選択フロー＃Ａのパケットが読出し可能となる。
【００３７】
図１０は、ＣＰＵ１５Ａ及びＦＰＧＡ１３のトークン加算タイミングの一例を示す説明図である。設定部３２Ａは、１回目の選択フロー＃Ａの選択通知（出力ＯＮ）を検出した場合、選択フロー＃Ａのシェーピングレート（４Ｇｂｐｓ）の設定倍率を１倍に設定する。この際、帯域制御部２４は、選択フロー＃Ａのトークンバケット２４Ｂの加算周期の到来に応じて２５ｋバイト（４Ｇｂｐｓ）のトークンを加算する。
【００３８】
設定部３２Ａは、１回目の選択フロー＃Ａの出力ＯＮ区間中に２回目の選択フロー＃Ａの選択通知（出力ＯＮ）を検出した場合、選択フロー＃Ａのシェーピングレートの設定倍率を＋１インクリメントする。そして、設定部３２Ａは、選択フロー＃Ａのシェーピングレート（４Ｇｂｐｓ）の設定倍率を２倍に設定する。更に、設定部３２Ａは、１回目の選択フロー＃Ａの出力ＯＦＦを検出した場合、選択フロー＃Ａのシェーピングレートの設定倍率を−１デクリメントし、選択フロー＃Ａのシェーピングレート（４Ｇｂｐｓ）の設定倍率を１倍に設定する。設定部３２Ａは、２回目の選択フロー＃Ａの出力ＯＮ区間中に３回目の選択フロー＃Ａの選択通知（出力ＯＮ）を検出した場合、選択フロー＃Ａのシェーピングレートの設定倍率を＋１インクリメントする。そして、設定部３２Ａは、選択フロー＃Ａのシェーピングレート（４Ｇｂｐｓ）の設定倍率を２倍に設定する。この際、帯域制御部２４は、選択フロー＃Ａのトークンバケット２４Ｂの加算周期の到来に応じて５０ｋバイト（８Ｇｂｐｓ）のトークンを加算する。
【００３９】
設定部３２Ａは、２回目の選択フロー＃ＡのＯＦＦを検出した場合、選択フロー＃Ａのシェーピングレートの設定倍率を−１デクリメントし、選択フロー＃Ａのシェーピングレート（４Ｇｂｐｓ）の設定倍率を１倍に設定する。更に、設定部３２Ａは、３回目の選択フロー＃Ａの選択通知（出力ＯＦＦ）を検出した場合、選択フロー＃Ａのシェーピングレートの設定倍率を−１デクリメントし、選択フロー＃Ａのシェーピングレート（４Ｇｂｐｓ）の設定倍率を０倍に設定する。この際、帯域制御部２４は、選択フロー＃Ａのトークンバケット２４Ｂの加算周期の到来に応じて０ｋバイト（０Ｇｂｐｓ）のトークンを加算する。その結果、ＦＰＧＡ１３は、例えば、１００μｓの区間内で７５ｋバイト分の選択フロー＃Ａのパケットが読出し可能となる。
【００４０】
次に実施例２の伝送装置１の動作について説明する。図１１は、第１の倍率制御処理に関わる倍率制御部４１の処理動作の一例を示すフローチャートである。図１１において倍率制御部４１は、タイマ制御部４３から選択フローのタイムアップ通知を検出したか否かを判定する（ステップＳ１１）。倍率制御部４１は、選択フローのタイムアップ通知を検出しなかった場合（ステップＳ１１否定）、ＳＣＨ３１から選択フローの選択通知（出力ＯＮ）を検出したか否かを判定する（ステップＳ１２）。倍率制御部４１は、選択フローの選択通知を検出した場合（ステップＳ１２肯定）、選択フローのシェーピングレートの設定倍率を＋１インクリメントする（ステップＳ１３）。そして、倍率制御部４１は、選択フローの設定倍率をレート設定部４２に通知し（ステップＳ１４）、図１１に示す処理動作を終了する。
【００４１】
倍率制御部４１は、ＳＣＨ３１から選択フローの選択通知を検出しなかった場合（ステップＳ１２否定）、図１１に示す処理動作を終了する。倍率制御部４１は、タイマ制御部４３からの選択フローのタイムアップ通知を検出した場合（ステップＳ１１肯定）、選択フローの出力ＯＮ区間が終了して出力ＯＦＦになったものと判断する。そして、倍率制御部４１は、選択フローの現在設定倍率が０以下であるか否かを判定する（ステップＳ１５）。
【００４２】
倍率制御部４１は、選択フローの現在の設定倍率が０以下でない場合（ステップＳ１５否定）、現在の設定倍率を−１デクリメントし（ステップＳ１６）、選択フローのシェーピングレートの設定倍率をレート設定部４２に通知すべく、ステップＳ１４に移行する。倍率制御部４１は、選択フローの現在の設定倍率が０以下の場合（ステップＳ１５肯定）、選択フローの設定倍率をレート設定部４２に通知すべく、ステップＳ１４に移行する。
【００４３】
倍率制御部４１は、選択フローの選択通知（出力ＯＮ）を検出した場合、選択フローのシェーピングレートの設定倍率を＋１インクリメントし、その設定倍率をレート設定部４２に通知する。その結果、倍率制御部４１は、選択フローの選択通知（出力ＯＮ）を検出する都度、シェーピングレートの設定倍率を加算する。
【００４４】
倍率制御部４１は、選択フローのタイムアップ通知を検出した場合、選択フローのシェーピングレートの設定倍率を−１デクリメントし、その設定倍率をレート設定部４２に通知する。その結果、倍率制御部４１は、選択フローのタイムアップ通知を検出する都度、設定倍率を減算する。
【００４５】
図１２は、第１のタイマ監視処理に関わるタイマ制御部４３の処理動作の一例を示すフローチャートである。図１２においてタイマ制御部４３は、レート設定部４２からの選択フローの設定通知を検出したか否かを判定する（ステップＳ２１）。タイマ制御部４３は、選択フローのタイマ設定を検出した場合（ステップＳ２１肯定）、選択フローのＯＮ区間タイマを起動する（ステップＳ２２）。タイマ制御部４３は、選択フローのＯＮ区間タイマがタイムアップしたか否かを判定する（ステップＳ２３）。タイマ制御部４３は、選択フローのＯＮ区間タイマがタイムアップした場合（ステップＳ２３肯定）、選択フローのタイムアップ通知を倍率制御部４１に通知し（ステップＳ２４）、図１２に示す処理動作を終了する。
【００４６】
タイマ制御部４３は、レート設定部４２からの選択フローの設定通知を検出しなかった場合（ステップＳ２１否定）、図１２に示す処理動作を終了する。タイマ制御部４３は、選択フローのＯＮ区間タイマがタイムアップしていない場合（ステップＳ２３否定）、選択フローの出力ＯＮ区間が継続中と判断し、ＯＮ区間タイマがタイムアップしたか否かを判定すべく、ステップＳ２３に移行する。
【００４７】
タイマ制御部４３は、選択フローの設定通知を検出した場合にＯＮ区間タイマを起動し、ＯＮ区間タイマがタイムアップした場合に、選択フローのタイムアップ通知を倍率制御部４１に通知する。その結果、倍率制御部４１は、選択フローの出力ＯＮ区間のＯＦＦを認識できる。
【００４８】
図１３は、設定処理に関わるレート設定部４２の処理動作の一例を示すフローチャートである。図１３においてレート設定部４２は、倍率制御部４１から選択フローの設定倍率を検出したか否かを判定する（ステップＳ３１）。レート設定部４２は、選択フローの設定倍率を検出した場合（ステップＳ３１肯定）、選択フローの設定倍率を帯域設定ＩＦ２７に設定する（ステップＳ３２）。その結果、帯域設定ＩＦ２７は、選択フローの出力キュー２３Ａに対応するシェーパ２４Ａにシェーピングレートの出力ＯＮ区間、設定レート量及び設定倍率を設定する。
【００４９】
レート設定部４２は、選択フローのシェーピングレートの設定倍率が＋１インクリメントの設定倍率であるか否かを判定する（ステップＳ３３）。レート設定部４２は、選択フローのシェーピングレートの設定倍率が＋１インクリメントの設定倍率の場合（ステップＳ３３肯定）、タイマ制御部４３に対して選択フローの設定通知を通知し（ステップＳ３４）、図１３に示す処理動作を終了する。
【００５０】
レート設定部４２は、選択フローの設定倍率を検出しなかった場合（ステップＳ３１否定）、図１３に示す処理動作を終了する。レート設定部４２は、選択フローの設定倍率が＋１インクリメントの設定倍率でない場合（ステップＳ３３否定）、図１３に示す処理動作を終了する。
【００５１】
レート設定部４２は、選択フローの設定倍率を検出した場合、選択フローの設定倍率、出力ＯＮ区間及び設定レート量を選択フローのシェーパ２４Ａに設定する。その結果、帯域制御部２４は、選択フローの設定倍率に基づき、選択フローを出力制御できる。
【００５２】
レート設定部４２は、選択フローの設定倍率が＋１インクリメントの設定倍率の場合、タイマ制御部４３に対してタイマ設定を通知する。その結果、タイマ制御部４３は、選択フローの出力ＯＮ区間を監視できる。
【００５３】
図１４は、ＦＰＧＡ１３内の優先クラス制御の一例を示す説明図である。優先クラス制御は、フローＩＤ毎の通信品質（ＱｏＳ：Quality  of  Service）のクラスに基づき、複数の出力キュー２３Ａから選択フローの出力を制御する。ＦＰＧＡ１３内の帯域制御部２４内の各シェーパ２４Ａは、ＳＣＨ３１からの選択フロー毎のシェーパ２４Ａのシェーピングレートの設定倍率、出力ＯＮ区間及び設定レート量に基づき、選択フローの出力を調整する。例えば、１００フローを全て同一クラスに収容し、ＳＣＨ３１でのフロー選択順に出力キュー２３Ａ毎のシェーパ２４Ａを時分割にＯＮ／ＯＦＦ制御することで、１位〜１００位までの優先クラス制御を実現できる。その結果、ハードウェア上の制約があっても、ＳＣＨ３１による優先クラスの変動に柔軟に対応できる。つまり、ＦＰＧＡ１３は、出力キュー２３Ａ毎にシェーパ２４Ａを配置したハードウェア構成を変更しなくても、シェーパ２４Ａの台数の範囲で、ＳＣＨ３１からの優先クラスの変更に柔軟に対応した優先制御を実現できる。
【００５４】
実施例２の伝送装置１は、選択フロー毎の出力ＯＮ区間を固定し、出力ＯＮ区間を加算周期の倍数に設定するため、選択フローの設定タイミングの競合及びトークン加算タイミングのズレを抑制できる。
【００５５】
伝送装置１では、ＳＣＨ３１の設定競合の発生を回避しながら、シェーパ２４Ａのトークン加算タイミングに依存することなく、シェーピングレート内の設定レート量、出力ＯＮ区間及び設定倍率の調整でＳＣＨ３１からの任意の順位数の優先制御を実現できる。
【００５６】
尚、上記実施例２の設定部３２Ａは、ＳＣＨ３１から選択フローの選択通知を検出した場合、選択フローのシェーピングレートの設定倍率を逐次変更した。しかしながら、選択通知を検出する毎に設定倍率を逐次変更する処理は設定部３２Ａに負担がかかる。そこで、このような事態に対処する実施の形態につき、実施例３として以下に説明する。
【実施例３】
【００５７】
図１５は、実施例３のＩＦカード３内のＦＰＧＡ１３及びＣＰＵ１５Ｂの一例を示す説明図である。尚、実施例２の伝送装置１と同一の構成には同一符号を付すことで、その重複する構成及び動作の説明については省略する。
【００５８】
設定部３２Ｂは、倍率制御部４１Ａ、レート設定部４２Ａ及びタイマ制御部４３Ａの他に、保持部４４を有する。保持部４４は、ＳＣＨ３１から選択フロー毎の選択通知（出力ＯＮ）の所定時間分の回数をカウントし、所定時間経過後に選択フロー毎の選択回数を一括で倍率制御部４１Ａに通知する。
【００５９】
倍率制御部４１Ａは、選択フロー毎の選択回数に応じて選択フローのシェーピングレートの設定倍率をインクリメントする。例えば、倍率制御部４１Ａは、選択回数が３回の場合、選択フローのシェーピングレートの設定倍率を３倍に設定する。そして、倍率制御部４１Ａは、選択フローの設定倍率をレート設定部４２Ａに通知する。
【００６０】
レート設定部４２Ａは、選択フローのシェーピングレートの設定倍率を帯域設定ＩＦ２７に設定した後、タイマ設定をタイマ制御部４３Ａに通知する。タイマ制御部４３Ａは、タイマ設定を検出した場合、選択フローのＯＮ区間タイマを起動する。タイマ制御部４３Ａは、選択フローのＯＮ区間タイマがタイムアップした場合、選択フローのタイムアップ通知を倍率制御部４１Ａに通知する。倍率制御部４１Ａは、選択フローのタイムアップ通知を検出した場合、選択フローのシェーピングレートの設定倍率を選択回数分デクリメントする。倍率制御部４１Ａは、例えば、設定倍率が３倍、選択回数が３回の場合、設定倍率の３倍を−３デクリメントして設定倍率を０倍に設定する。倍率制御部４１Ａは、デクリメント後の設定倍率をレート設定部４２Ａに通知する。
【００６１】
図１６は、ＣＰＵ１５Ｂ及びＦＰＧＡ１３のトークン加算タイミングの一例を示す説明図である。尚、保持部４４の所定時間を１００μｓ、シェーピングレートの出力ＯＮ区間を５０μｓとする。保持部４４は、所定時間タイマを起動し、ＳＣＨ３１から１回目の選択フロー＃Ａの選択通知（出力ＯＮ）を検出した場合、選択フロー＃Ａの選択回数を＋１インクリメントする。更に、保持部４４は、ＳＣＨ３１から２回目の選択フロー＃Ａの選択通知（出力ＯＮ）を検出した場合、選択フロー＃Ａの選択回数を＋１インクリメントし、選択回数を２回とする。更に、保持部４４は、ＳＣＨ３１から３回目の選択フロー＃Ａの選択通知を検出した場合、選択フロー＃Ａの選択回数を＋１インクリメントし、選択回数を３回とする。保持部４４は、所定時間タイマがタイムアップした場合、例えば、選択フロー＃Ａの選択回数を倍率制御部４１Ａに通知する。倍率制御部４１Ａは、選択フロー＃Ａの選択回数が３回のため、選択フロー＃Ａのシェーピングレートの設定倍率を選択回数に応じた３倍に設定する。その結果、選択フロー＃Ａのシェーピングレートは、４Ｇｂｐｓ×３＝１２Ｇｂｐｓとなる。
【００６２】
更に、タイマ制御部４３Ａは、選択フロー＃Ａのシェーピングレートの設定倍率を設定した後、ＯＮ区間タイマを起動し、ＯＮ区間タイマがタイムアップした場合、タイムアップ通知を倍率制御部４１Ａに通知する。倍率制御部４１Ａは、タイムアップ通知に応じて設定倍率を選択回数分でデクリメントするため、設定倍率を０倍に設定する。
【００６３】
尚、１回目の選択フロー＃Ａの選択通知（出力ＯＮ）を検出した後、加算周期が到来するが、トークン加算量は０、２回目の選択フロー＃Ａの選択通知（出力ＯＮ）を検出した後、加算周期が到来するが、トークン加算量も０となる。しかしながら、保持部４４からの選択回数の通知に応じてシェーピングレートを３倍に設定した後、加算周期が到来した場合、トークン加算量は７５ｋバイトとなる。つまり、１００μｓの区間中にトークン加算量が７５ｋバイトとなる。
【００６４】
次に実施例３の伝送装置１の動作について説明する。図１７は、第１の通知処理に関わる保持部４４の処理動作の一例を示すフローチャートである。図１７において保持部４４は、ＳＣＨ３１から選択フローの初回の選択通知（出力ＯＮ）を検出したか否かを判定する（ステップＳ４１）。保持部４４は、選択フローの初回の選択通知（出力ＯＮ）を検出した場合（ステップＳ４１肯定）、選択フローの選択回数を＋１インクリメントし（ステップＳ４２）、所定時間タイマを起動する（ステップＳ４３）。
【００６５】
保持部４４は、所定時間タイマがタイムアップしたか否かを判定する（ステップＳ４４）。保持部４４は、所定時間タイマがタイムアップしなかった場合（ステップＳ４４否定）、ＳＣＨ３１から選択フローの選択通知（出力ＯＮ）を検出したか否かを判定する（ステップＳ４５）。
【００６６】
保持部４４は、選択フローの選択通知（出力ＯＮ）を検出した場合（ステップＳ４５肯定）、選択フローの選択回数を＋１インクリメントし（ステップＳ４６）、所定時間タイマがタイムアップしたか否かを判定すべく、ステップＳ４４に移行する。保持部４４は、選択フローの選択通知（出力ＯＮ）を検出しなかった場合（ステップＳ４５否定）、所定時間タイマがタイムアップしたか否かを判定すべく、ステップＳ４４に移行する。
【００６７】
保持部４４は、所定時間タイマがタイムアップした場合（ステップＳ４４肯定）、選択フローの選択回数を倍率制御部４１Ａに通知する（ステップＳ４７）。保持部４４は、選択フローの選択回数をクリアし（ステップＳ４８）、所定時間タイマをクリアし（ステップＳ４９）、図１７に示す処理動作を終了する。保持部４４は、ＳＣＨ３１から選択フローの初回の選択通知（出力ＯＮ）を検出しなかった場合（ステップＳ４１否定）、図１７に示す処理動作を終了する。
【００６８】
保持部４４は、選択フローの所定時間分の選択回数を一括で倍率制御部４１Ａに通知する。倍率制御部４１Ａは、選択フローの選択回数に応じて選択フローのシェーピングレートの設定倍率を設定する。その結果、倍率制御部４１Ａは、選択通知毎の設定倍率の算出負担を軽減できる。
【００６９】
倍率制御部４１Ａは、選択フローのタイムアップ通知、すなわち出力ＯＦＦを検出した場合、選択フローの設定倍率を選択回数でデクリメントし、選択フローのシェーピングレートの設定倍率を設定する。その結果、倍率制御部４１Ａは、出力ＯＦＦ毎の設定倍率の算出負担を軽減できる。
【００７０】
図１８は、第２の倍率制御処理に関わる倍率制御部４１Ａの処理動作の一例を示すフローチャートである。図１８において倍率制御部４１Ａは、タイマ制御部４３Ａから選択フローのタイムアップ通知を検出したか否かを判定する（ステップＳ５１）。倍率制御部４１Ａは、選択フローのタイムアップ通知を検出しなかった場合（ステップＳ５１否定）、保持部４４から選択フローの選択回数を検出したか否かを判定する（ステップＳ５２）。
【００７１】
倍率制御部４１Ａは、選択フローの選択回数を検出した場合（ステップＳ５２肯定）、選択フローのシェーピングレートの設定倍率を選択回数分インクリメントする（ステップＳ５３）。倍率制御部４１Ａは、選択フローの設定倍率をレート設定部４２Ａに通知し（ステップＳ５４）、図１８に示す処理動作を終了する。
【００７２】
倍率制御部４１Ａは、選択フローの選択回数を検出しなかった場合（ステップＳ５２否定）、図１８に示す処理動作を終了する。倍率制御部４１Ａは、タイマ制御部４３Ａから選択フローのタイムアップ通知を検出した場合（ステップＳ５１肯定）、選択フローの現在の設定倍率が０以下であるか否かを判定する（ステップＳ５５）。倍率制御部４１Ａは、選択フローの現在の設定倍率が０以下でない場合（ステップＳ５５否定）、選択フローのシェーピングレートの設定倍率を選択回数分デクリメントする（ステップＳ５６）。倍率制御部４１Ａは、その選択フローの設定倍率をレート設定部４２Ａに通知すべく、ステップＳ５４に移行する。倍率制御部４１Ａは、選択フローの現在の設定倍率が０以下の場合（ステップＳ５５肯定）、選択フローの設定倍率をレート設定部４２Ａに通知すべく、ステップＳ５４に移行する。
【００７３】
倍率制御部４１Ａは、保持部４４から選択フローの選択回数を検出した場合、選択フローの設定倍率を選択回数分インクリメントし、その設定倍率をレート設定部４２Ａに通知する。その結果、レート設定部４２Ａは、選択回数分に対応するシェーピングレートの設定倍率を該当シェーパ２４Ａに一括で設定できる。
【００７４】
倍率制御部４１Ａは、選択フローのタイムアップ通知を検出した場合、選択フローの設定倍率を選択回数分デクリメントし、その設定倍率をレート設定部４２Ａに通知する。その結果、レート設定部４２Ａは、シェーピングレートの設定倍率を一括で設定できる。
【００７５】
実施例３の伝送装置１では、保持部４４が選択フローの所定時間分の選択回数を一括で倍率制御部４１Ａに通知する。倍率制御部４１Ａは、選択フローの選択回数に応じて選択フローのシェーピングレートの設定倍率を設定する。その結果、倍率制御部４１Ａは、選択通知毎の設定倍率の算出負担を軽減できる。
【００７６】
倍率制御部４１Ａは、選択フローのタイムアップ通知、すなわち出力ＯＦＦを検出した場合、選択フローの設定倍率を選択回数でデクリメントし、選択フローのシェーピングレートの設定倍率を設定する。その結果、倍率制御部４１Ａは、出力ＯＦＦ毎の設定倍率の算出負担を軽減できる。
【００７７】
尚、保持部４４は、所定時間タイマがタイムアップすると、選択フローの選択回数を倍率制御部４１Ａに通知したが、これに限定されるものではなく、適宜変更可能である。従って、その実施の形態につき、実施例４として以下に説明する。尚、実施例３の伝送装置１と同一の構成には同一符号を付すことで、その重複する構成及び動作の説明については省略する。
【実施例４】
【００７８】
実施例４の保持部４４Ａと実施例３の保持部４４とが異なるところは、所定時間タイマのタイムアップを待たずに選択フローの選択回数が所定回数を超えた場合に当該選択フローの選択回数を倍率制御部４１Ａに通知する点にある。
【００７９】
次に実施例４の伝送装置１の動作について説明する。図１９は、第２の通知処理に関わる保持部４４Ａの処理動作の一例を示すフローチャートである。保持部４４Ａは、ステップＳ４２にて所定時間タイマがタイムアップしていない場合（ステップＳ４４否定）、選択フローの選択回数が所定回数を超えたか否かを判定する（ステップＳ６１）。保持部４４Ａは、選択フローの選択回数が所定回数を超えた場合（ステップＳ６１肯定）、選択フローの選択回数を倍率制御部４１Ａに通知すべく、ステップＳ４７に移行する。保持部４４Ａは、選択フローの選択回数が所定回数を超えていない場合（ステップＳ６１否定）、ＳＣＨ３１から選択フローの選択通知を検出したか否かを判定すべく、ステップＳ４５に移行する。
【００８０】
保持部４４Ａは、選択フローの選択回数が所定回数を超えた場合、その選択回数を一括で倍率制御部４１Ａに通知する。倍率制御部４１Ａは、選択フローの選択回数に応じて選択フローのシェーピングレートの設定倍率を設定する。その結果、倍率制御部４１Ａは、設定倍率の算出負担を軽減しながら、シェーピングレートの倍率設定を迅速に反映できる。
【００８１】
倍率制御部４１Ａは、選択フローのタイムアップ通知を検出した場合、選択フローの設定倍率を選択回数でデクリメントし、選択フローのシェーピングレートの設定倍率を設定する。その結果、倍率制御部４１Ａは、設定倍率の算出負担を軽減できる。
【００８２】
実施例４の伝送装置１では、保持部４４Ａが選択フローの選択回数が所定回数を超えた場合、その選択回数を一括で倍率制御部４１Ａに通知する。倍率制御部４１Ａは、選択フローの選択回数に応じて選択フローのシェーピングレートの設定倍率を設定する。その結果、倍率制御部４１Ａは、設定倍率の算出負担を軽減しながら、シェーピングレートの倍率設定を迅速に反映できる。
【００８３】
倍率制御部４１Ａは、選択フローのタイムアップ通知を検出した場合、選択フローの設定倍率を選択回数でデクリメントし、選択フローのシェーピングレートの設定倍率を設定する。その結果、倍率制御部４１Ａは、設定倍率の算出負担を軽減できる。
【００８４】
尚、上記実施例２〜４の伝送装置１は、選択フロー毎の選択回数に応じてシェーピングレートの設定倍率を変更した。例えば、シェーピングレートの出力ＯＮ区間を固定化し、理論上のトークンの加算量を制御できるが、実際の機器では擾乱の影響を受ける場合がある。例えば、ＳＣＨ３１からＦＰＧＡ１３内の帯域制御部２４を制御する場合、ＰＣＩバス等の他デバイスと共有している制御線を使用するため、制御線上で他の制御パケットとの競合が発生し、制御時間の揺らぎが生じる場合がある。例えば、ＳＣＨ３１がＦＰＧＡ１３に対して５０μｓ間隔でＯＮ／ＯＦＦコマンドを出力する場合でも、制御線上の競合でＯＦＦ命令の遅延が生じ、ＦＰＧＡ１３上でＯＮ区間が５１μｓとなる場合もある。この場合、タイミング次第で本来１回分の設定レート量が２回分の設定レート量になってレート誤差が生じる。このようなレート誤差を緩和すべく、合計の設定レート量を同量にしながら、シェーピングレートの出力ＯＮ区間を拡張する方法も考えられる。例えば、設定レート量を１／１００、出力ＯＮ区間を１００倍にするシェーピングレートの出力パターンを設定しても良く、この場合の実施の形態につき、実施例５として以下に説明する。
【実施例５】
【００８５】
図２０は、実施例５のＩＦカード３内のＦＰＧＡ１３及びＣＰＵ１５Ｃの一例を示す説明図である。尚、実施例２の伝送装置１と同一の構成には同一符号を付すことで、その重複する構成及び動作の説明については省略する。ＣＰＵ１５Ｃ内の設定部３２Ｃは、倍率制御部４１Ｃ、レート設定部４２Ｃ及びタイマ制御部４３Ｃの他に、決定部４５と、計測部４６とを有する。決定部４５は、選択フロー毎のトラヒック量に応じてシェーピングレートの合計の設定レート量が同量で設定レート量及び出力ＯＮ区間を変更した出力パターンを決定する。計測部４６は、選択フロー毎のトラヒック量を計測する。
【００８６】
図２１は、実施例５に使用するシェーピングレートの各出力パターンの一例を示す説明図である。シェーピングレートの出力パターンは、選択フローのトラヒック量が高レートの場合、設定レート量を２．５ｋバイト、出力ＯＮ区間を１回（０．０１ｍｓ）とする。尚、高レートの出力パターンの場合、出力ＯＮ区間が１回（０．０１ｍｓ）のため、１回分の遅延が生じると、レート誤差が１００％となる。しかしながら、高レートの出力パターンは、通常パケットの到着頻度が高いため、出力遅延の低減が可能な１回分の供給量が多く、分割回数が少ないパターンに適している。
【００８７】
出力パターンは、選択フローのトラヒック量が中レートの場合、設定レート量を２５０バイト、出力ＯＮ区間を１０回（０．１ｍｓ）とする。尚、中レートの出力パターンの場合、出力ＯＮ区間が１０回（０．１ｍｓ）のため、１回分の遅延が生じても、レート誤差が１０％で収まる。
【００８８】
出力パターンは、選択フローのトラヒック量が低レートの場合、設定レート量を２５バイト、出力ＯＮ区間を１００回（１ｍｓ）とする。尚、低レートの出力パターンの場合、出力ＯＮ区間が１００回（１ｍｓ）のため、１回分の遅延が生じても、レート誤差が１％で収まる。低レートの出力パターンは、通常パケットの到着頻度が低く、出力遅延の低減が可能な１回分の供給量が少なく、分割回数が多いパターンに適している。高レートの出力パターンは、伝送時間が短くなるものの、レート誤差が大きくなる。これに対して、低レートの出力パターンは、伝送時間が長くなるものの、レート誤差が小さくなる。
【００８９】
図２２Ａは、ＣＰＵ１５Ｃ及びＦＰＧＡ１３のトークン加算タイミングの重畳動作の一例を示す説明図である。決定部４５は、選択フロー＃Ａのトラヒック量が高レートと判断し、高レートの出力パターンを採用するものとする。決定部４５は、採用した高レートの出力パターンを倍率制御部４１Ｃに通知する。倍率制御部４１Ｃは、ＳＣＨ３１から１回目の選択フロー＃Ａの選択通知（出力ＯＮ）を検出した場合、シェーピングレートの設定倍率を＋１インクリメントし、その設定倍率（１倍）及び高レートの出力パターンをレート設定部４２Ｃに通知する。レート設定部４２Ｃは、高レートの出力パターン及び設定倍率（１倍）をＦＰＧＡ１３内の帯域制御部２４に設定すると共に、１回目の選択フロー＃Ａのタイマ設定をタイマ制御部４３Ｃに通知する。この際、帯域制御部２４は、選択フロー＃Ａのトークンバケット２４Ｂの加算周期の到来に応じて１倍のトークンを加算する。
【００９０】
倍率制御部４１Ｃは、１回目の選択フロー＃Ａの出力ＯＮ区間中に２回目の選択フロー＃Ａの選択通知（出力ＯＮ）を検出した場合、シェーピングレートの設定倍率を＋１インクリメントする。倍率制御部４１Ｃは、その設定倍率（２倍）及び高レートの出力パターンをレート設定部４２Ｃに通知する。レート設定部４２Ｃは、高レートの出力パターン及び設定倍率（２倍）をＦＰＧＡ１３内の帯域制御部２４に設定すると共に、２回目の選択フロー＃Ａのタイマ設定をタイマ制御部４３Ｃに通知する。
【００９１】
更に、倍率制御部４１Ｃは、１回目及び２回目の選択フロー＃Ａの出力ＯＮ区間中に３回目の選択フロー＃Ａの選択通知（出力ＯＮ）を検出した場合、シェーピングレートの設定倍率を＋１インクリメントする。倍率制御部４１Ｃは、その設定倍率（３倍）及び高レートの出力パターンをレート設定部４２Ｃに通知する。レート設定部４２Ｃは、高レートの出力パターン及び設定倍率（３倍）をＦＰＧＡ１３内の帯域制御部２４に設定すると共に、３回目の選択フロー＃Ａのタイマ設定をタイマ制御部４３Ｃに通知する。
【００９２】
倍率制御部４１Ｃは、タイマ制御部４３Ｃから１回目の選択フロー＃Ａのタイムアップ通知を検出した場合、シェーピングレートの設定倍率を−１デクリメントし、その設定倍率（２倍）及び高レートの出力パターンをレート設定部４２Ｃに通知する。レート設定部４２Ｃは、高レートの出力パターン及び設定倍率（２倍）をＦＰＧＡ１３内の帯域制御部２４に設定する。この際、帯域制御部２４は、選択フロー＃Ａのトークンバケット２４Ｂの加算周期の到来に応じて２倍のトークンを加算する。
【００９３】
倍率制御部４１Ｃは、タイマ制御部４３Ｃから２回目の選択フロー＃Ａのタイムアップ通知を検出した場合、シェーピングレートの設定倍率を−１デクリメントし、その設定倍率（１倍）及び高レートの出力パターンをレート設定部４２Ｃに通知する。レート設定部４２Ｃは、高レートの出力パターン及び設定倍率（１倍）をＦＰＧＡ１３内の帯域制御部２４に設定する。倍率制御部４１Ｃは、タイマ制御部４３Ｃから３回目の選択フロー＃Ａのタイムアップ通知を検出した場合、シェーピングレートの設定倍率を−１デクリメントし、その設定倍率（０倍）及び高レートの出力パターンをレート設定部４２Ｃに通知する。レート設定部４２Ｃは、高レートの出力パターン及び設定倍率（０倍）をＦＰＧＡ１３内の帯域制御部２４に設定する。
【００９４】
図２２Ｂは、１回目〜３回目の選択フロー＃ＡのＯＦＦが遅延した場合のトークン加算タイミングの一例を示す説明図である。決定部４５は、１回目〜３回目の選択フロー＃Ａの出力ＯＮ区間中で高レートの出力パターンを採用しているとする。この際、１回目〜３回目の選択フロー＃Ａの出力ＯＦＦが遅延し、帯域制御部２４は、選択フロー＃Ａのトークンバケット２４Ｂの加算周期の到来に応じて３倍のトークンを加算することになる。しかしながら、制御遅延に伴う誤差が生じるのは３個の出力ＯＮ区間の内、１区間のみとなる。出力ＯＮ区間の重畳度合が多くなるに連れ、たとえ制御遅延が生じても誤差が生じない出力ＯＮ区間が多くなるため、相対的に誤差の影響を緩和できる。
【００９５】
次に実施例５の伝送装置１の動作について説明する。図２３は、出力パターン決定処理に関わる決定部４５の処理動作の一例を示すフローチャートである。図２３において決定部４５は、ＳＣＨ３１から選択フローの選択通知（出力ＯＮ）を検出したか否かを判定する（ステップＳ７１）。決定部４５は、選択フローの選択通知（出力ＯＮ）を検出した場合（ステップＳ７１肯定）、選択フローのトラヒック量を取得し（ステップＳ７２）、トラヒック量が高レートであるか否かを判定する（ステップＳ７３）。決定部４５は、トラヒック量が高レートの場合（ステップＳ７３肯定）、高レートの出力パターンを倍率制御部４１Ｃに通知し（ステップＳ７４）、図２３に示す処理動作を終了する。
【００９６】
決定部４５は、選択フローのトラヒック量が高レートでない場合（ステップＳ７３否定）、トラヒック量が低レートであるか否かを判定する（ステップＳ７５）。決定部４５は、トラヒック量が低レートの場合（ステップＳ７５肯定）、低レートの出力パターンを倍率制御部４１Ｃに通知し（ステップＳ７６）、図２３に示す処理動作を終了する。
【００９７】
決定部４５は、トラヒック量が低レートでない場合（ステップＳ７５否定）、トラヒック量が中レートと判断し、中レートの出力パターンを倍率制御部４１Ｃに通知し（ステップＳ７７）、図２３に示す処理動作を終了する。決定部４５は、選択フローの選択通知を検出しなかった場合（ステップＳ７１否定）、図２３に示す処理動作を終了する。
【００９８】
決定部４５は、選択フローのトラヒック量が高レートの場合、シェーピングレートの複数の出力パターンの内、高レートの出力パターンを採用し、その高レートの出力パターンを倍率制御部４１Ｃに通知する。その結果、高レートのトラヒック量に対応したシェーピングを実現できる。
【００９９】
決定部４５は、選択フローのトラヒック量が中レートの場合、シェーピングレートの複数の出力パターンの内、中レートの出力パターンを採用し、その中レートの出力パターンを倍率制御部４１Ｃに通知する。その結果、中レートのトラヒック量に対応したシェーピングを実現できる。
【０１００】
決定部４５は、選択フローのトラヒック量が低レートの場合、シェーピングレートの複数の出力パターンの内、低レートの出力パターンを採用し、その低レートの出力パターンを倍率制御部４１Ｃに通知する。その結果、低レートのトラヒック量に対応したシェーピングを実現できる。
【０１０１】
尚、上記実施例５の伝送装置１では、選択フロー毎にトラヒック量を取得したが、このような実施の形態に限定されるものではなく、適宜変更可能である。従って、その実施の形態につき、実施例６として以下に説明する。図２４は、実施例６のＩＦカード３内のＦＰＧＡ１３及びＣＰＵ１５Ｄの一例を示す説明図である。尚、実施例５の伝送装置１と同一の構成には同一符号を付すことで、その重複する構成及び動作の説明については省略する。
【実施例６】
【０１０２】
ＩＦカード３は、複数の光モジュール１１、ＰＨＹ／ＭＡＣデバイス１２、ＦＰＧＡ１３、メモリ１４及びＣＰＵ１５Ｄの他に、コピー部１６と、レート計測部１７とを有する。コピー部１６は、ＦＰＧＡ１３の出力処理部２５の出力段に配置され、出力段に出力された選択フローのトラヒックを複写する。レート計測部１７は、コピー部１６で複写された選択フローのトラヒックに基づき、選択フロー毎の出力レートを計測する。設定部３２Ｄは、倍率制御部４１Ｄと、レート設定部４２Ｄと、タイマ制御部４３Ｄと、決定部４５Ａとを有する。
【０１０３】
決定部４５Ａは、レート計測部１７の計測結果である選択フローの出力レートと、当該選択フローの設定レートとを比較し、その比較結果に基づき、遅延揺らぎを推定する。決定部４５Ａは、選択フロー毎の遅延揺らぎに基づき、選択フロー毎の出力パターンを決定する。
【０１０４】
決定部４５Ａは、選択フローの遅延揺らぎが小さい場合、シェーピングレートの複数の出力パターンの内、高レートの出力パターンを採用する。高レートの出力パターンは、例えば、設定レート量を２．５ｋバイト、出力ＯＮ区間を１回（０．０１ｍｓ）とする。決定部４５Ａは、選択フローの遅延揺らぎが中の場合、シェーピングレートの複数の出力パターンの内、中レートの出力パターンを採用する。中レートの出力パターンは、例えば、設定レート量を２５０バイト、出力ＯＮ区間を１０回（０．１ｍｓ）とする。
【０１０５】
決定部４５Ａは、選択フローの遅延揺らぎが大きい場合、シェーピングレートの複数の出力パターンの内、低レートの出力パターンを採用する。低レートの出力パターンは、例えば、設定レート量を２５バイト、出力ＯＮ区間を１００回（１ｍｓ）とする。
【０１０６】
図２５Ａは、遅延揺らぎが小さい場合のＣＰＵ１５Ｄ及びＦＰＧＡ１３の高レートの出力パターンの重畳動作の一例を示す説明図である。決定部４５Ａは、レート計測部１７の計測結果に基づき、選択フロー＃Ａの遅延揺らぎが小さいと判断し、高レートの出力パターンを採用するものとする。決定部４５Ａは、採用した高レートの出力パターンを倍率制御部４１Ｄに通知する。倍率制御部４１Ｄは、ＳＣＨ３１から１回目の選択フロー＃Ａの選択通知（出力ＯＮ）を検出した場合、シェーピングレートの設定倍率を＋１インクリメントし、その設定倍率（１倍）及び高レートの出力パターンをレート設定部４２Ｄに通知する。レート設定部４２Ｄは、高レートの出力パターン及び設定倍率（１倍）をＦＰＧＡ１３内の帯域制御部２４に設定すると共に、１回目の選択フロー＃Ａのタイマ設定をタイマ制御部４３Ｄに通知する。この際、帯域制御部２４は、選択フロー＃Ａのトークンバケット２４Ｂの加算周期の到来に応じて１倍のトークンを加算する。
【０１０７】
倍率制御部４１Ｄは、１回目の選択フロー＃Ａの出力ＯＮ区間中に２回目の選択フロー＃Ａの選択通知（出力ＯＮ）を検出した場合、シェーピングレートの設定倍率を＋１インクリメントする。倍率制御部４１Ｄは、その設定倍率（２倍）及び高レートの出力パターンをレート設定部４２Ｄに通知する。レート設定部４２Ｄは、高レートの出力パターン及び設定倍率（２倍）をＦＰＧＡ１３内の帯域制御部２４に設定すると共に、２回目の選択フロー＃Ａのタイマ設定をタイマ制御部４３Ｄに通知する。
【０１０８】
更に、倍率制御部４１Ｄは、１回目及び２回目の選択フロー＃Ａの出力ＯＮ区間中に３回目の選択フロー＃Ａの選択通知（出力ＯＮ）を検出した場合、シェーピングレートの設定倍率を＋１インクリメントする。倍率制御部４１Ｄは、その設定倍率（３倍）及び高レートの出力パターンをレート設定部４２Ｄに通知する。レート設定部４２Ｄは、高レートの出力パターン及び設定倍率（３倍）をＦＰＧＡ１３内の帯域制御部２４に設定すると共に、３回目の選択フロー＃Ａのタイマ設定をタイマ制御部４３Ｄに通知する。
【０１０９】
倍率制御部４１Ｄは、タイマ制御部４３Ｄから１回目の選択フロー＃Ａのタイムアップ通知を検出した場合、シェーピングレートの設定倍率を−１デクリメントし、その設定倍率（２倍）及び高レートの出力パターンをレート設定部４２Ｄに通知する。レート設定部４２Ｄは、高レートの出力パターン及び設定倍率（２倍）をＦＰＧＡ１３内の帯域制御部２４に設定する。この際、帯域制御部２４は、選択フロー＃Ａのトークンバケット２４Ｂの加算周期の到来に応じて２倍のトークンを加算する。
【０１１０】
倍率制御部４１Ｄは、タイマ制御部４３Ｄから２回目の選択フロー＃Ａのタイムアップ通知を検出した場合、シェーピングレートの設定倍率を−１デクリメントし、その設定倍率（１倍）及び高レートの出力パターンをレート設定部４２Ｄに通知する。レート設定部４２Ｄは、高レートの出力パターン及び設定倍率（１倍）をＦＰＧＡ１３内の帯域制御部２４に設定する。倍率制御部４１Ｄは、タイマ制御部４３Ｄから３回目の選択フロー＃Ａのタイムアップ通知を検出した場合、シェーピングレートの設定倍率を−１デクリメントし、その設定倍率（０倍）及び高レートの出力パターンをレート設定部４２Ｄに通知する。レート設定部４２Ｄは、高レートの出力パターン及び設定倍率（０倍）をＦＰＧＡ１３内の帯域制御部２４に設定する。
【０１１１】
図２５Ｂは、遅延揺らぎが大きい場合のＣＰＵ１５Ｄ及びＦＰＧＡ１３の低レートの出力パターンの重畳動作の一例を示す説明図である。決定部４５Ａは、レート計測部１７の計測結果に基づき、選択フロー＃Ａの遅延揺らぎが大きい場合、低レートの出力パターンを採用するものとする。決定部４５Ａは、１回目〜３回目の選択フロー＃Ａの出力ＯＮ区間中で１回目〜３回目の選択フロー＃Ａの出力ＯＦＦが遅延した場合でも、低レートの出力パターンを採用しているので、制御遅延に伴う誤差を小さく誤差の影響を緩和できる。
【０１１２】
実施例６の伝送装置１は、選択フロー毎の遅延揺らぎに基づき、選択フロー毎のシェーピングレートの出力パターンを決定する。その結果、遅延揺らぎの状況に応じて最適な出力パターンを自動的に設定できる。
【０１１３】
伝送装置１は、選択フローの遅延揺らぎが小さい場合、シェーピングレートの複数の出力パターンの内、高レートの出力パターンを使用する。その結果、遅延揺らぎが小さい場合に対応したシェーピングを実現できる。
【０１１４】
伝送装置１は、選択フローの遅延揺らぎが大きい場合、シェーピングレートの複数の出力パターンの内、低レートの出力パターンを使用する。その結果、遅延揺らぎが大きい場合に対応したシェーピングを実現できる。
【０１１５】
伝送装置１は、選択フローの遅延揺らぎが中の場合、シェーピングレートの複数の出力パターンの内、中レートの出力パターンを使用する。その結果、遅延揺らぎが中の場合に対応したシェーピングを実現できる。
【実施例７】
【０１１６】
図２６は、実施例７のＩＦカード３内のＦＰＧＡ１３及びＣＰＵ１５Ｅの一例を示す説明図である。尚、実施例２の伝送装置１と同一の構成には同一符号を付すことで、その重複する構成及び動作の説明については省略する。ＣＰＵ１５Ｅ内の設定部３２Ｅは、パターン制御部４７と、レート設定部４２Ｅと、タイマ制御部４３Ｅとを有する。パターン制御部４７は、選択フローの選択通知（出力ＯＮ）に応じて重畳回数を＋１インクリメントする。パターン制御部４７は、選択フローの重畳回数が０〜１回の場合、選択フローのシェーピングレートの出力パターンとして、例えば、設定レート量を４Ｍｂｐｓ、出力ＯＮ区間を５ｍｓの出力パターンを採用する。更に、パターン制御部４７は、その出力パターンをレート設定部４２Ｅに通知する。
【０１１７】
パターン制御部４７は、選択フローの重畳回数が２回の場合、選択フローのシェーピングレートの出力パターンとして、例えば、設定レート量を８Ｍｂｐｓ、出力ＯＮ区間を２．５ｍｓの出力パターンを採用する。パターン制御部４７は、その出力パターンをレート設定部４２Ｅに通知する。パターン制御部４７は、選択フローの重畳回数が３回以上の場合の選択フローのシェーピングレートの出力パターンとして、例えば、設定レート量を１６Ｍｂｐｓ、出力ＯＮ区間１．２５ｍｓの出力パターンを採用する。パターン制御部４７は、その出力パターンをレート設定部４２Ｅに通知する。
【０１１８】
レート設定部４２Ｅは、選択フローの出力パターンを帯域設定ＩＦ２７に設定した場合、タイマ設定をタイマ制御部４３Ｅに通知する。タイマ制御部４３Ｅは、タイマ設定を検出した場合、選択フローの出力パターンのＯＮ区間タイマを開始する。タイマ制御部４３Ｅは、選択フローの出力パターンのＯＮ区間タイマがタイムアップした場合、そのタイムアップ通知をパターン制御部４７に通知する。パターン制御部４７は、タイムアップ通知に応じて選択フローの重畳回数を−１デクリメントし、その重畳回数に応じた出力パターンをレート設定部４２Ｅに通知する。
【０１１９】
次に実施例７の伝送装置１の動作について説明する。図２７は、パターン制御処理に関わるパターン制御部４７の処理動作の一例を示すフローチャートである。パターン制御部４７は、タイマ制御部４３Ｅから選択フローのタイムアップ通知を検出したか否かを判定する（ステップＳ８１）。パターン制御部４７は、選択フローのタイムアップ通知を検出しなかった場合（ステップＳ８１否定）、ＳＣＨ３１から選択フローの選択通知（出力ＯＮ）を検出したか否かを判定する（ステップＳ８２）。
【０１２０】
パターン制御部４７は、選択フローの選択通知（出力ＯＮ）を検出した場合（ステップＳ８２肯定）、選択フローの重畳回数を＋１インクリメントし（ステップＳ８３）、重畳回数が１回であるか否かを判定する（ステップＳ８４）。パターン制御部４７は、重畳回数が１回の場合（ステップＳ８４肯定）、選択フローの出力パターンの設定レート量を４Ｍｂｐｓ及び出力ＯＮ区間を５ｍｓに設定する（ステップＳ８５）。そして、パターン制御部４７は、選択フローの出力パターンをレート設定部４２Ｅに通知し（ステップＳ８６）、図２７に示す処理動作を終了する。
【０１２１】
パターン制御部４７は、選択フローの重畳回数が１回でない場合（ステップＳ８４否定）、選択フローの重畳回数が２回であるか否かを判定する（ステップＳ８７）。パターン制御部４７は、選択フローの重畳回数が２回の場合（ステップＳ８７肯定）、選択フローの出力パターンの設定レート量を８Ｍｂｐｓ及び出力ＯＮ区間を２．５ｍｓに設定する（ステップＳ８８）。そして、パターン制御部４７は、選択フローの出力パターンをレート設定部４２Ｅに通知すべく、ステップＳ８６に移行する。
【０１２２】
パターン制御部４７は、選択フローの重畳回数が２回でない場合（ステップＳ８７否定）、重畳回数が３回以上と判断し、選択フローの出力パターンの設定レート量を１６Ｍｂｐｓ及び出力ＯＮ区間を１．２５ｍｓに設定する（ステップＳ８９）。そして、パターン制御部４７は、選択フローの出力パターンをレート設定部４２Ｅに通知すべく、ステップＳ８６に移行する。
【０１２３】
パターン制御部４７は、選択フローのタイムアップ通知を検出した場合（ステップＳ８１肯定）、選択フローの重畳回数が０以下であるか否かを判定する（ステップＳ９０）。パターン制御部４７は、選択フローの重畳回数が０以下でない場合（ステップＳ９０否定）、選択フローの重畳回数を−１デクリメントし（ステップＳ９１）、選択フローの重畳回数が１回であるか否かを判定すべく、ステップＳ８４に移行する。パターン制御部４７は、選択フローの重畳回数が０以下の場合（ステップＳ９０肯定）、選択フローの重畳回数が１回であるか否かを判定すべく、ステップＳ８４に移行する。パターン制御部４７は、選択フローの選択通知（出力ＯＮ）を検出しなかった場合（ステップＳ８２否定）、図２７に示す処理動作を終了する。
【０１２４】
パターン制御部４７は、選択フローの重畳回数が１回の場合、シェーピングレートの出力パターンの設定レート量を４Ｍｂｐｓ及び出力ＯＮ区間を５ｍｓに設定する。更に、パターン制御部４７は、選択フローの重畳回数が２回の場合、シェーピングレートの出力パターンの設定レート量を８Ｍｂｐｓ及び出力ＯＮ区間を２．５ｍｓに設定する。更に、パターン制御部４７は、選択フローの重畳回数が３回以上の場合、シェーピングレートの出力パターンの設定レート量を１６Ｍｂｐｓ及び出力ＯＮ区間を１．２５ｍｓに設定する。その結果、選択フローの重畳回数が増加するに連れて高レートの出力パターンでシェーピングを実現できる。
【０１２５】
尚、上記実施例７の伝送装置１では、選択フローの出力ＯＮ区間がタイムアップする毎に選択フローの重畳回数を−１デクリメントし、−１デクリメント後の重畳回数に応じた設定レート量及び出力ＯＮ区間の出力パターンを採用した。しかしながら、これに限定されるものではなく、適宜変更可能である。図２８は、ＣＰＵ１５Ｅ及びＦＰＧＡ１３のトークン加算タイミングの一例を示す説明図である。
【０１２６】
例えば、設定部３２Ｅは、１回目の選択フロー＃Ａの選択通知（出力ＯＮ）を検出した場合、選択フローの重畳回数が１回のため、選択フロー＃Ａの出力パターンとして、設定レート量を４Ｍｂｐｓ及び出力ＯＮ区間を５ｍｓに設定する。設定部３２Ｅは、１回目の選択フロー＃Ａの出力ＯＮ区間中に２回目の選択フロー＃Ａの選択通知（出力ＯＮ）を検出した場合、選択フロー＃Ａの重畳回数が２回となる。設定部３２Ｅは、選択フロー＃Ａの出力パターンとして設定レート量を４Ｍｂｐｓ及び出力ＯＮ区間を５ｍｓに設定する。設定部３２Ｅは、１回目及び２回目の選択フロー＃Ａの出力ＯＮ区間中に３回目の選択フロー＃Ａの選択通知（出力ＯＮ）を検出した場合、選択フロー＃Ａの重畳回数が３回となる。そして、設定部３２Ｅは、選択フロー＃Ａの出力パターンとして設定レート量を８Ｍｂｐｓ及び出力ＯＮ区間を２．５ｍｓに設定する。
【０１２７】
設定部３２Ｅは、１回目の選択フロー＃Ａが出力ＯＦＦした場合、選択フロー＃Ａの設定レート量を１６Ｍｂｐｓから４Ｍｂｐｓ減算して１２Ｍｂｐｓとする。更に、設定部３２Ｅは、２回目の選択フロー＃Ａが出力ＯＦＦした場合、選択フロー＃Ａの設定レート量を１２Ｍｂｐｓから８Ｍｂｐｓ減算して４Ｍｂｐｓとする。更に、設定部３２Ｅは、３回目の選択フロー＃Ａが出力ＯＦＦした場合、選択フロー＃Ａの設定レート量を４Ｍｂｐｓから４Ｍｂｐｓを減算して０とする。
【０１２８】
尚、上記実施例６の伝送装置１では選択フローのトラヒック量、実施例７の伝送装置１では選択フローの遅延揺らぎに基づき、選択フローのシェーピングレートの出力パターンを決定した。しかしながら、これらに限定されるものではなく、例えば、現在の設定倍率や、許容出力遅延や誤差等のフロー毎の条件に基づき、出力パターンを決定しても良い。
【０１２９】
本実施例の伝送装置１は、シャーシ型の伝送装置を例示したが、例えば、ピザボックス型の伝送装置にも適用可能である。
【０１３０】
伝送装置１は、可変長のパケットを伝送するパケット伝送装置を例示したが、固定長のパケットを伝送する伝送装置にも適用可能である。更に、伝送装置１は、パケットに限定されるものではなく、例えば、可変長や固定長のデータ単位でデータを伝送する伝送装置にも適用可能である。
【０１３１】
実施例６及び７の伝送装置１では、高レート、中レート及び低レートの３種類の出力パターンを例示したが、これらに限定されるものではなく、例えば、４種類以上であっても良く、適宜変更可能である。
【０１３２】
上記実施例の伝送装置１では、選択フロー毎のシェーパ２４Ａのシェーピングレートを制御したが、選択フロー毎のシェーパ２４ＡのＯＮ・ＯＦＦ制御でも良く。この場合でも、選択フロー毎のシェーパ２４ＡのＯＮ・ＯＦＦ制御で優先制御を実現できる。
【０１３３】
また、図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
【０１３４】
更に、各装置で行われる各種処理機能は、ＣＰＵ（Central  Processing  Unit）（又はＭＰＵ（Micro  Processing  Unit）、ＭＣＵ（Micro  Controller  Unit）等のマイクロ・コンピュータ）上で、その全部又は任意の一部を実行するようにしても良い。また、各種処理機能は、ＣＰＵ（又はＭＰＵ、ＭＣＵ等のマイクロ・コンピュータ）で解析実行するプログラム上、又はワイヤードロジックによるハードウェア上で、その全部又は任意の一部を実行するようにしても良いことは言うまでもない。
【符号の説明】
【０１３５】
１  伝送装置
２３  キュー管理部
２３Ａ  出力キュー
２４  帯域制御部
２４Ａ  シェーパ
３１  ＳＣＨ
３２，３２Ａ，３２Ｂ，３２Ｃ，３２Ｄ，３２Ｅ  設定部
４１，４１Ａ、４１Ｃ、４１Ｄ  倍率制御部
４２，４２Ａ、４２Ｃ、４２Ｄ、４２Ｅ  レート設定部
４３，４３Ａ、４３Ｃ、４３Ｄ、４３Ｅ  タイマ制御部
４４，４４Ａ  保持部
４５，４５Ａ  決定部
４６  計測部
４７  パターン制御部
【図１】
2018050246.tif 000003
【図２】
2018050246.tif 000004
【図３】
2018050246.tif 000005
【図４】
2018050246.tif 000006
【図５Ａ】
2018050246.tif 000007
【図５Ｂ】
2018050246.tif 000008
【図６】
2018050246.tif 000009
【図７Ａ】
2018050246.tif 000010
【図７Ｂ】
2018050246.tif 000011
【図８】
2018050246.tif 000012
【図９】
2018050246.tif 000013
【図１０】
2018050246.tif 000014
【図１１】
2018050246.tif 000015
【図１２】
2018050246.tif 000016
【図１３】
2018050246.tif 000017
【図１４】
2018050246.tif 000018
【図１５】
2018050246.tif 000019
【図１６】
2018050246.tif 000020
【図１７】
2018050246.tif 000021
【図１８】
2018050246.tif 000022
【図１９】
2018050246.tif 000023
【図２０】
2018050246.tif 000024
【図２１】
2018050246.tif 000025
【図２２Ａ】
2018050246.tif 000026
【図２２Ｂ】
2018050246.tif 000027
【図２３】
2018050246.tif 000028
【図２４】
2018050246.tif 000029
【図２５Ａ】
2018050246.tif 000030
【図２５Ｂ】
2018050246.tif 000031
【図２６】
2018050246.tif 000032
【図２７】
2018050246.tif 000033
【図２８】
2018050246.tif 000034
【図２９】
2018050246.tif 000035