JP2013255159A - Communication device and priority control method - Google Patents
Communication device and priority control method Download PDFInfo
- Publication number
- JP2013255159A JP2013255159A JP2012130633A JP2012130633A JP2013255159A JP 2013255159 A JP2013255159 A JP 2013255159A JP 2012130633 A JP2012130633 A JP 2012130633A JP 2012130633 A JP2012130633 A JP 2012130633A JP 2013255159 A JP2013255159 A JP 2013255159A
- Authority
- JP
- Japan
- Prior art keywords
- frame
- queue
- sequence number
- weighted sequence
- management table
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Communication Control (AREA)
Abstract
Description
本発明は、通信装置および優先制御方法に係り、特にWFQ(Weighted Fair Queuing)機能を実装した通信装置および優先制御方法に関する。 The present invention relates to a communication apparatus and a priority control method, and more particularly, to a communication apparatus and a priority control method in which a WFQ (Weighted Fair Queuing) function is implemented.
近年、エンドユーザが使うアプリケーションの多様化、広帯域化、またやり取りするデータ容量の増加によりUNI(User Network Interface)からNNI(Network Node Interface)へのトラフィックの増加が特に著しい。そのため通信ネットワークのQoS(Quality of Service)を維持するために、UNIとNNIの境界面に設置される通信装置にトラフィックを制御するための帯域制御機能を具備させる要求がある。 In recent years, the increase in traffic from UNI (User Network Interface) to NNI (Network Node Interface) has been particularly remarkable due to diversification of applications used by end users, wider bandwidth, and an increase in data capacity to be exchanged. Therefore, in order to maintain the QoS (Quality of Service) of the communication network, there is a need to provide a bandwidth control function for controlling traffic in a communication device installed at the interface between UNI and NNI.
帯域制御を行なう上で、音声や画像など遅延が許されないデータ(優先されるべきデータ)とメールおよびデータ通信など比較的遅延が許される通信がある。ユーザの要望に答えるべく、キャリアは、データの優先度を付けて優先制御を行なう必要がある。 In performing bandwidth control, there are data such as voice and images that do not allow delay (data to be prioritized) and communication such as mail and data communication that allow relatively delay. In order to respond to the user's request, the carrier needs to perform priority control with data priority.
優先制御を実現する帯域制御機能の一つにWFQがある。WFQは、データの従量(多さ・大きさや重要性)に応じてパケットの優先順位を変える技術である。WFQは、音声および画像のストリーミングに優先的に順位を譲ることで、安定したストリーミングを実現しつつ、低優先のサービスについても帯域を確保できる。WFQは、複数のキューがある場合、どのキューのパケットから送出するかを決めるキューイング・アルゴリズムの一つである。WFQは、各キューに割り当てられた帯域や優先度に応じて、キューに重み付けを設定するとともに、パケットのサイズも考慮する。WFQによれば、サイズの大きいパケットは、相対的に送出時の優先順位は低くなる。 WFQ is one of the bandwidth control functions for realizing priority control. WFQ is a technique for changing the priority order of packets in accordance with the amount of data (volume, size, and importance). By giving priority to audio and image streaming, WFQ can secure a bandwidth for low priority services while realizing stable streaming. WFQ is one of queuing algorithms for determining which queue packet to send from when there are a plurality of queues. WFQ sets weights for the queues according to the bandwidth and priority assigned to each queue, and considers the packet size. According to WFQ, a packet with a large size has a relatively low priority during transmission.
WFQの装置への実装に関して様々な方法があり、大別するとハードウェア処理で実現する場合とソフトウェア処理で実現する場合がある。
本技術分野の背景技術として、特許文献1がある。特許文献1は、ソフトウェアでWFQを実現する。具体的には、受信したフレームからフレーム長、クラスキュー情報を読み出してその情報を元に読み出し順(シーケンス番号)を計算する。このとき、受信フレームバッファ(キューバッファ)に書き込む前にシーケンス番号をフレームに付与し、受信フレームバッファ(キューバッファ)から読み出し時にシーケンス番号を参照し優先度の高いフレームから読み出す。
There are various methods for mounting a WFQ on a device, which are roughly classified into hardware processing and software processing.
As a background art of this technical field, there is
一般的にWFQ機能を実現する場合、ソフトウェア処理またはハードウェア処理の両方で実現可能である。しかし、ソフトウェア処理を行なっている特許文献1において優先クラスキューに格納されているデータの読み出し遅延がユーザ数の増加、またクラスキュー数の増加に比例して大きくなる可能性がある。その結果、音声および映像など遅延が許されない通信において遅延が発生し帯域低下の要因となる可能性がある。
In general, when the WFQ function is realized, it can be realized by both software processing and hardware processing. However, in
またフローを識別するにあたりVLANにてユーザフローを識別するが、ユーザ単位にWFQを実現する上でユーザ数が増加してくると、ソフトウェア処理ではDSPなどより高速に処理できるWFQ専用のCPUが必要になる。またハードウェア処理をする場合にも処理するユーザフローが増えると格納するテーブルも増える事になり、効率的にハードウェア処理しなければ遅延が発生し帯域低下の要因となる可能性がある。具体的には帯域制御パラメータである重み付きシーケンス番号を効率良く計算処理し、フレーム読み出し時もより少ない処理シーケンスで一番小さい重み付きシーケンス番号のフレームから読み出しを行なうアルゴリズムを考える必要がある。 In order to identify the flow, the user flow is identified by VLAN. When the number of users increases in realizing WFQ for each user, a software-dedicated CPU for WFQ that can process at higher speed than DSP is required. become. Also, when hardware processing is performed, the number of tables to be stored increases when the number of user flows to be processed increases. If hardware processing is not performed efficiently, a delay may occur and this may cause a reduction in bandwidth. Specifically, it is necessary to consider an algorithm for efficiently calculating and processing a weighted sequence number that is a bandwidth control parameter, and reading from a frame having the smallest weighted sequence number with a smaller processing sequence even during frame reading.
上述した課題は、受信したフレームのキュー格納情報に基づいてフレーム受信バッファの複数のキューのいずれかに書き込むWR制御部と、フレーム受信バッファの複数のキューのいずれかからフレームを読み込むRD制御部と、キューごとの重み付きシーケンス番号と、ラウンド番号とを記録するキュー管理テーブルと、を備え、WR制御部またはRD制御部は、フレームごとに、フレームの優先度と長さとに依存する重み付きシーケンス番号を演算し、キュー管理テーブルに記録し、RD制御部は、キューの優先度と重み付きシーケンス番号とに基づいて、フレームを読み込むキューを選択し、選択したキューの重み付きシーケンス番号をラウンド番号として、キュー管理テーブルに記録する通信装置により、達成できる。 The above-described problems include a WR control unit that writes to one of a plurality of queues of the frame reception buffer based on queue storage information of the received frame, and an RD control unit that reads a frame from one of the plurality of queues of the frame reception buffer; A queue management table that records a weighted sequence number and a round number for each queue, and the WR control unit or the RD control unit is a weighted sequence that depends on the priority and length of the frame for each frame. The number is calculated and recorded in the queue management table, and the RD control unit selects a queue from which frames are read based on the priority of the queue and the weighted sequence number, and the weighted sequence number of the selected queue is the round number. This can be achieved by a communication device that records in the queue management table.
また、受信したフレームのキュー格納情報に基づいてフレーム受信バッファの複数のキューのいずれかに書き込むWR制御部と、フレーム受信バッファの複数のキューのいずれかからフレームを読み込むRD制御部と、キューごとの重み付きシーケンス番号と、ラウンド番号とを記録するキュー管理テーブルと、を備えた通信装置における優先制御方法であって、WR制御部またはRD制御部において、フレームごとに、フレームの優先度と長さとに依存する重み付きシーケンス番号を演算するステップと、重み付きシーケンス番号をキュー管理テーブルに記録するステップと、RD制御部において、キューの優先度と重み付きシーケンス番号とに基づいて、フレームを読み込むキューを選択するステップと、選択したキューの重み付きシーケンス番号をラウンド番号として、キュー管理テーブルに記録するステップと、を含む優先制御方法により、達成できる。 In addition, a WR control unit that writes to one of a plurality of queues of the frame reception buffer based on queue storage information of the received frame, an RD control unit that reads a frame from one of the plurality of queues of the frame reception buffer, and each queue Priority control method in a communication apparatus comprising a weighted sequence number and a queue management table for recording a round number, wherein a priority and length of a frame are determined for each frame in a WR control unit or an RD control unit. A step of calculating a weighted sequence number that depends on the weight, a step of recording the weighted sequence number in the queue management table, and a RD control unit reading a frame based on the priority of the queue and the weighted sequence number The step of selecting the queue and the weighted The Nsu number as round number, and recording the queue management table, the priority control method comprising, can be achieved.
テーブルにて重み付きシーケンス番号の情報を持ち、効率的にWFQ処理を行なうことにより汎用FPGAでも十分対応が可能な通信装置を提供できる。 It is possible to provide a communication apparatus that has a weighted sequence number information in a table and can sufficiently cope with a general-purpose FPGA by performing WFQ processing efficiently.
以下、本発明の実施の形態について、実施例を用い図面を参照しながら詳細に説明する。なお、実質同一部位には同じ参照番号を振り、説明は繰り返さない。また、実施例は、発明を限定するものではない。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings using examples. The same reference numerals are assigned to substantially the same parts, and the description will not be repeated. Also, the examples do not limit the invention.
図1を参照して、ネットワークの構成を説明する。図1において、ネットワーク100は、エンドユーザ10と、通信装置11と、キャリアネットワーク19とから構成されている。キャリアネットワーク19は、アクセス回線網12と、他キャリアアクセス回線網13と、ATMアクセスネットワーク14と、イーサアクセスネットワーク15と、VLANサービス網16と、専用線網17と、エッジSW(switch)18とから構成されている。
A network configuration will be described with reference to FIG. In FIG. 1, the
ATMアクセスネットワーク14は、通信装置11−1が接続されている。通信装置11−1は、エンドユーザ10−1、10−2と接続されている。アクセス回線網12は、通信装置11−2が接続されている。通信装置11−2は、エンドユーザ10−3と接続されている。他キャリアアクセス回線網13は、通信装置11−4が接続されている。通信装置11−4は、エンドユーザ10−5と接続されている。イーサアクセスネットワーク15は、通信装置11−3が接続されている。通信装置11−3は、エンドユーザ10−4と接続されている。
通信装置11からみて、キャリアネットワーク19側をNNI側と呼ぶ。通信装置11からみて、エンドユーザ10側をUNI側と呼ぶ。
The
From the viewpoint of the communication device 11, the
キャリアネットワーク19は、一般的にVLANサービス網16および専用線網17等の基幹網から構成される。それら基幹網は、エッジSW18等により接続されている。基幹網は、網間で通信が可能である。
The
これらの網とエンドユーザ10の接点として様々なアクセス回線網12がある。アクセス回線網12は、具体的にはATMアクセスネットワーク14、イーサアクセスネットワーク15、他キャリアのアクセス回線網13である。
There are various
エンドユーザ10は、通信装置11を介してキャリアネットワーク19へアクセスを行ない、通信を行ないたい対向のエンドユーザとの通信を実行する。なお、エンドユーザ10は、PC、ユーザ網等である。エンドユーザ10間で、やりとりするデータとして音声および画像など遅延が許されないデータ(優先されるべきデータ)とメールまたはデータ通信など比較的遅延がある程度許されるデータがある。
ユーザの要望に答えるべくキャリアは、データに優先度を付けて優先制御を行なう。通信装置11は、優先制御機能の一つであるWFQを実装し、優先制御を実現する。
The
In order to answer the user's request, the carrier gives priority to the data and performs priority control. The communication apparatus 11 implements priority control by implementing WFQ, which is one of priority control functions.
図2を参照して、通信装置の機能ブロックを説明する。図2において、通信装置11は、PHY20と、フレーム分離部21と、制御フレーム終端部22と、制御フレーム生成部23と、多重部24と、帯域制御部25とから構成されている。
With reference to FIG. 2, the functional block of a communication apparatus is demonstrated. In FIG. 2, the communication device 11 includes a
PHY20は、受信フレームの物理レイヤ終端処理を行なう。フレーム分離部21は、NNI側からの制御フレームと下りユーザフレームを分離する。制御フレーム終端部22は、分離した制御フレームを終端する。制御フレーム生成部23は、上り信号の帯域を制御する制御フレームを生成する。多重部24は、生成した制御フレームと上りユーザフレームとを多重する。帯域制御部25は、WFQを実装する。
The
図3を参照して、キューに格納するフレームの構成を説明する。図3において、後述する図4と図5の帯域制御部の場合、後述するWR制御ブロック30で計算された重み付きシーケンス番号(SN)50をフレームの先頭に付与する。ヘッダ部分には、COS(Class Of Service)またはTOS(Type Of Service)/TC(Traffic Class)51と、Length52を含む。
With reference to FIG. 3, the structure of the frame stored in the queue will be described. 3, in the case of the bandwidth control unit shown in FIGS. 4 and 5 described later, a weighted sequence number (SN) 50 calculated by a
COSまたはTOS/TC50は、格納キュー情報である。COSまたはTOS/TC50は、フレーム到着時に、フレーム受信バッファ32における格納キューを選択する情報である。Length52は、重み付きシーケンス番号を計算する時に使用するパラメータである。
COS or TOS / TC50 is storage queue information. COS or TOS /
図4を参照して、帯域制御部について、WFQをハードウェア処理にて実現する構成を説明する。図4において、帯域制御部25は、WR(write)制御ブロック30と、帯域キュー管理テーブル31と、受信フレームバッファ32と、RD(read)制御ブロック33とから構成されている。
With reference to FIG. 4, the structure which implement | achieves WFQ by a hardware process is demonstrated about a band control part. In FIG. 4, the
WR制御ブロック30は、フレーム受信をトリガとして、ユーザフローを特定するキュー格納情報を取得する。WR制御ブロック30は、フレーム受信バッファ32に受信フレームを格納する。
The
RD制御ブロック33は、受信バッファ32にフレーム有りを検出した事をトリガとして、帯域制御キュー管理テーブル31からキュー管理情報を取得する。RD(read)制御ブロック33は、フレーム受信バッファ32からフレームを読み出し送出する。
The
帯域制御キュー管理テーブル31は、帯域制御対象となるコネクションのキュー情報を保持する。帯域制御キュー管理テーブル31は、WA(Write Address)312と、フレーム先頭情報311と、RA(Read Address)314とを含む。帯域制御キュー管理テーブル31のレコードは、優先度が高い順に、クラス3(絶対優先)、クラス2、クラス1、クラス0を含む。クラス3(絶対優先)は、絶対優先であり、WFQには参加しない。したがって、クラス3(絶対優先)のフレーム先頭情報311欄には、ラウンド番号313を記録している。
The bandwidth control queue management table 31 holds queue information of connections to be bandwidth controlled. The bandwidth control queue management table 31 includes a WA (Write Address) 312,
ラウンド番号313は、WFQ出力フレームの重み付きシーケンス番号を保存するためのテーブルである。ラウンド番号313は、フロー単位に具備される。
WR制御ブロック30は、ラウンド番号取得部301と、重み付きシーケンス番号計算and付与部302と、を含む。ラウンド番号取得部301は、重み付きシーケンス番号を計算するために、帯域制御キュー管理テーブル31のクラス3(絶対優先)にあるラウンド番号313を取得する。重み付きシーケンス番号計算and付与部302は、到着したフレームのフレーム長と格納されるクラスキューの重みと301にて取得したラウンド番号により重み付きシーケンス番号を計算しフレームの先頭に付与する。
The
The
具体的にフレームの流れに沿って説明する。フレーム受信バッファ32に格納されるフレームの先頭に、WR制御ブロック30は、重み付きシーケンス番号を付与する。RD制御ブロック33は、フレーム読み出し時、重み付きシーケンス番号の小さい順に読み出しを行なう。
A specific description will be given along the flow of the frame. The
書き込み側のWR制御ブロック30の処理について説明する。WR制御ブロック30に受信フレームが到着する。受信フレームが格納されるキューがアクティブなクラスキューの場合(Not Empty)と非アクティブなクラスキューの場合(Empty)で重み付きシーケンス番号の計算方法が下記の通り異なる。なお、受信フレームの格納されるべきキューについて、WR制御ブロック30は、COSまたはTOS/TC51にて判定する。
Processing of the
アクティブなクラスキューの場合(Not Empty)
:前回の重み付きシーケンス番号+該当クラスのWeight値×フレームバイト数
非アクティブなクラスキューの場合(Empty)
:取得したラウンド番号+該当クラスのWeight値×フレームバイト数
WR制御ブロック30は、計算した重み付きシーケンス番号20をフレームの先頭に付与し、受信バッファ32の該当キューに格納する。アクティブなクラスキューの場合の前回の重み付きシーケンス番号は、クラスキューに最後に格納したフレームの先頭アドレスであるフレーム先頭情報311を帯域制御キュー管理テーブル31より読み出す。読み出したフレーム先頭情報311で示されるアドレスから前回の重み付きシーケンス番号を取得する。
For an active class queue (Not Empty)
: Last weighted sequence number + Weight value of the corresponding class x number of frame bytes Inactive class queue (Empty)
: Acquired round number + weight value of corresponding class × number of frame bytes The
次に、読み出し側の処理について説明する。RD制御ブロック33は、フレームの読み出し時に帯域制御キュー管理テーブル31の各クラスのRA314を読みだす。次に、RD制御ブロック33は、RA314で示される各クラスキューに格納されているフレームを読み出す。RD制御ブロック33は、読み出した各フレームに付与されている重み付きシーケンス番号を比較し、値の小さいフレームから順次読み出しを行なう。RD制御ブロック33は、帯域制御キュー管理テーブル31とフレーム受信バッファ32を読み出した後に重み付きシーケンス番号の比較を行ない、読み出すクラスキューの決定を行なう。
Next, processing on the reading side will be described. The
図5を参照して、帯域制御部について、WFQをハードウェア処理にて実現する他の構成を説明する。図5において、帯域制御部25は、WR制御ブロック30と、帯域キュー管理テーブル31Aと、受信フレームバッファ32と、RD制御ブロック33とから構成されている。なお、フレーム受信バッファ32は、FIFO(first-in first-out)メモリである。
With reference to FIG. 5, another configuration for realizing WFQ by hardware processing will be described for the bandwidth control unit. In FIG. 5, the
WR制御ブロック30は、フレーム受信をトリガとして、ユーザフローを特定するキュー格納情報を取得する。WR制御ブロック30は、フレーム受信バッファ32に受信フレームを格納する。
The
RD制御ブロック33は、受信バッファ32にフレーム有りを検出した事をトリガとして、帯域制御キュー管理テーブル31Aからキュー管理情報を取得する。RD(read)制御ブロック33は、フレーム受信バッファ32からフレームを読み出し送出する。
The
実施例1の特徴は、WR制御ブロック30で重み付きシーケンス番号411をフレームに付与する点である。なお、WR制御ブロック30、フレーム受信バッファ32、RD制御ブロック33、ラウンド番号313、ラウンド番号取得部301、重み付きシーケンス番号計算and付与部302に関しては、図4で説明した動作と同じである。
A feature of the first embodiment is that the
帯域キュー管理テーブル31Aは、帯域制御対象となるコネクションのキュー情報を保持する。帯域制御キュー管理テーブル31Aは、WA312と、重み付きシーケンス番号411と、先読み重み付きシーケンス番号412と、RA314とを含む。帯域制御キュー管理テーブル31Aのレコードは、優先度が高い順に、クラス3(絶対優先)、クラス2、クラス1、クラス0を含む。クラス3(絶対優先)は、絶対優先であり、WFQには参加しない。したがって、クラス3(絶対優先)の重み付きシーケンス番号411欄には、ラウンド番号313を記録している。
The bandwidth queue management table 31A holds the queue information of the connection to be bandwidth controlled. The bandwidth control queue management table 31A includes a
帯域制御キュー管理テーブル31の重み付きシーケンス番号411は、WFQ演算用シーケンス番号を格納する。
先読み重み付きシーケンス番号412は、RD制御ブロック33にてフレーム読み出し時に次のフレームの先頭の重み付きシーケンス番号まで読み、その値を先読み重み付きシーケンス番号412として格納する。先読み重み付きシーケンス番号412は、次に読みだすパケットの選択に利用する。
The
The pre-read
具体的にフレームの流れに沿って説明する。フレーム受信バッファ32に格納されるフレームの先頭に、WR制御ブロック30は、重み付きシーケンス番号411を付与する。RD制御ブロック33は、フレーム読み出し時、次のフレームの重み付きシーケンス番号を先読みする。
A specific description will be given along the flow of the frame. The
まず書き込み側のWR制御ブロック30処理について説明する。WR制御ブロック30に受信フレームが到着する。受信フレームが格納されるキューがアクティブなクラスキューの場合(Not Empty)と非アクティブなクラスキューの場合(Empty)で重み付きシーケンス番号の計算方法が下記の通り異なる。なお、受信フレームの格納されるべきキューは、COSまたはTOS/TC51にて判定する。
First, the
アクティブなクラスキューの場合(Not Empty)
:前回の重み付きシーケンス番号+該当クラスのWeight値×フレームバイト数
非アクティブなクラスキューの場合(Empty)
:取得したラウンド番号313+該当するクラスのWeight値×フレームバイト数
WR制御ブロック30は、計算した重み付きシーケンス番号をフレームの先頭(SN50)に付与し、受信バッファ32の該当キューに格納する。
For an active class queue (Not Empty)
: Last weighted sequence number + Weight value of the corresponding class x number of frame bytes Inactive class queue (Empty)
: Acquired
WR制御ブロック30は、帯域制御キュー管理テーブル31Aに重み付きシーケンス番号を書き込む。このとき、WR制御ブロック30は、該当するクラスの重み付きシーケンス番号411を上書きする。書き込んだ重み付きシーケンス番号411は、次フレームの重み付きシーケンス番号算出に使用する。
The
フレーム受信バッファ32にフレームを書き込み時キューが空であれば、WR制御ブロック30では、制御キュー管理テーブル31Aの先読み重み付きシーケンス番号412領域にも計算した重み付きシーケンス番号411を上書きする。
If the queue for writing a frame to the
帯域制御キュー管理テーブル31Aは、格納したフレームに該当するフローおよびクラスキューのエントリに対して、当該フレームに付与した重み付きシーケンス番号411も一緒に更新する。
The bandwidth control queue management table 31A also updates the
次に読み出し側の処理について説明する。RD制御ブロック33は、フレームの読み出し時に先読み重み付きシーケンス番号412を比較して読み出す。1回目の読み出し時はWR制御ブロック30にて重み付きシーケンス番号411と同じSNが先読み重み付きシーケンス番号412領域に書かれるため、その値を比較し読み出しを行なう。2回目以降は1回目の読み出しで先読みした先読み重み付きシーケンス番号412により、読む順番を決定する。
Next, processing on the reading side will be described. The
ここで先読みについて説明する。先読みとは、RD制御ブロック33が、フレーム読み出し時に次フレーム先頭のSN50まで読み、帯域制御キュー管理テーブル31の先読み重み付きシーケンス番号領域412に上書きする。
Here, prefetching will be described. In the prefetching, the
帯域制御キュー管理テーブル31Aは、読み出したフレームに該当するフローおよびクラスキューのエントリに対して、当該フレームの重み付きシーケンス番号411と先読みした先読み重み付きシーケンス番号412も一緒に更新する。
The bandwidth control queue management table 31A also updates the
WR制御ブロック30は、受信フレームに重み付きシーケンス番号(SN)を付与する。キューからの受信フレーム読み出し時、RD制御ブロック33は、各キューから出力されるフレームの重み付きシーケンス番号(SN)を比較し、重み付きシーケンス番号(SN)の最も小さいフレームを送信する。
The
RD制御ブロック33は、出力したフレームの重み付きシーケンス番号(SN)をラウンド番号という名称で帯域制御キュー管理テーブル31Aに記録しておく。なお、ラウンド番号は、SNを付与する際に使用される。重み付きシーケンス番号(SN)の付与則について、以下説明する。
The
WR制御ブロック30は、あらかじめ受信フレームのフレーム長を取得しておく。WR制御ブロック30は、格納するキューが空の場合、(ラウンド番号)+(フレーム長)×(該当キューのフレーム重み)を重み付きシーケンス番号(SN)とする。
The
格納するキューにフレームが蓄積されている場合、最後に蓄積されたフレームの重み付きシーケンス番号(SN)を使用し、WR制御ブロック30は、(最後に蓄積されたフレームのSN)+(フレーム長)×(該当キューのフレームの重み)を重み付きシーケンス番号(SN)とする。
When frames are accumulated in the queue to be stored, the weighted sequence number (SN) of the last accumulated frame is used, and the
次に優先割合からフレーム重みの算出方法について説明する。優先割合とフレーム重みは逆数の関係である。以下の説明では、クラスキュー#2、#1、#0の優先割合(P2:P1:P0)をP2=9、P1=2、P0=1とする。 Next, a method for calculating the frame weight from the priority ratio will be described. The priority ratio and the frame weight have a reciprocal relationship. In the following description, the priority ratios (P2: P1: P0) of the class queues # 2, # 1, and # 0 are P2 = 9, P1 = 2, and P0 = 1.
各キューのフレーム重みを整数とするため、以下の計算を行なう。優先割合(P2:P1:P0)=(9:2:1)の最小公倍数を算出する。この場合、最小公倍数は、18である。優先割合の逆数を取り、最小公倍数を掛け算する。計算の結果、クラスキュー#2、#1、#0のフレーム重みの割合(W2:W1:W0)は、
W2:W1:W0=2:9:18
となる。
In order to make the frame weight of each queue an integer, the following calculation is performed. The least common multiple of the priority ratio (P2: P1: P0) = (9: 2: 1) is calculated. In this case, the least common multiple is 18. Take the reciprocal of the priority ratio and multiply by the least common multiple. As a result of the calculation, the ratio of the frame weights of class queues # 2, # 1, and # 0 (W2: W1: W0) is
W2: W1: W0 = 2: 9: 18
It becomes.
WR制御ブロック30は、COSまたはTOS/TC51により格納するキューを決定する。RD制御ブロック33は、各キューから出力されるフレームの重み付きシーケンス番号(SN)を比較し、重み付きシーケンス番号(SN)の最も小さいフレームの読み出しを行なう。ただし、クラスキュー#3(絶対優先)にフレームが格納されている場合はクラスキュー#3(絶対優先)のフレームを優先する。
The
図6を参照して、受信フレームのキューへの格納と、読み出しを説明する。図6Aにおいて、以下のフレームが(A)、(B)、(C)の順で到着した場合を説明する。 With reference to FIG. 6, storage and reading of received frames in a queue will be described. In FIG. 6A, a case where the following frames arrive in the order of (A), (B), and (C) will be described.
(A) フレーム長:100、クラスキュー:#0
(B) フレーム長:150、クラスキュー:#1
(C) フレーム長:200、クラスキュー:#1
WR制御ブロック30は、到着したフレーム(A)、(B)、(C)の重み付きシーケンス番号(SN)をそれぞれ計算する。
・(A)の重み付きシーケンス番号(SN)計算
格納すべきクラスキュー#0が空のため、WR制御ブロック30は、ラウンド番号を使用する。なお、ラウンド番号の初期値は、0である。
(A) Frame length: 100, class queue: # 0
(B) Frame length: 150, class queue: # 1
(C) Frame length: 200, class queue: # 1
The
(A) Weighted sequence number (SN) calculation Since the
重み付きシーケンス番号(SN)
=(ラウンド番号)+(フレーム長)×(フレーム重み:W0)
=0+100×18
=1800
・(B)の重み付きシーケンス番号(SN)計算
格納すべきクラスキュー#1が空のため、WR制御ブロック30は、ラウンド番号を使用する。
重み付きシーケンス番号(SN)
=(ラウンド番号)+(フレーム長)×(フレーム重み:W1)
=0+150×9
=1350
・(C)の重み付きシーケンス番号(SN)計算
格納すべきクラスキュー#1にフレーム(B)が蓄積されているため、WR制御ブロック30は、最後に蓄積されたフレームのSNを使用する。
重み付きシーケンス番号(SN)
=(最後に蓄積されたフレームのSN)+(フレーム長)×(フレーム重み:W1)
=1350+200×9
=3150
WR制御ブロック30は、計算した各重み付きシーケンス番号(SN)をフレーム(A)(B)(C)の先頭にそれぞれ付与し、該当キュー323、324へ格納する。
Weighted sequence number (SN)
= (Round number) + (frame length) x (frame weight: W0)
= 0 + 100 × 18
= 1800
(B) Weighted sequence number (SN) calculation Since the
Weighted sequence number (SN)
= (Round number) + (frame length) x (frame weight: W1)
= 0 + 150 × 9
= 1350
(C) Weighted sequence number (SN) calculation Since the frame (B) is accumulated in the
Weighted sequence number (SN)
= (SN of last accumulated frame) + (frame length) × (frame weight: W1)
= 1350 + 200 × 9
= 3150
The
図6Bにおいて、RD制御ブロック33は、図6Aにてクラスキュー#0、#1に蓄積されたフレーム(A)、(B)の重み付きシーケンス番号(SN)を比較し、最も小さい(B)を帯域制御部25の図示しないシェーパへ出力する。この時、クラスキュー#2は、キュー内にフレームが存在しないため、比較対象ではない。
In FIG. 6B, the
RD制御ブロック33は、出力したフレーム(B)の重み付きシーケンス番号(SN)をラウンド番号とし、ラウンド番号領域313を0から1350へ書き換える。
The
図6Cにおいて、次に新たに以下のフレーム(D)が到着した場合を説明する。
(D) フレーム長:250、クラスキュー:#2
・(D)の重み付きシーケンス番号(SN)計算
格納すべきクラスキュー#2が空のため、WR制御ブロック30は、ラウンド番号を使用する。
重み付きシーケンス番号(SN)
=(ラウンド番号)+(フレーム長)×(フレーム重み:W2)
=1350+250×2
=1850
WR制御ブロック30は、計算した重み付きシーケンス番号(SN)をフレーム(D)の先頭に付与し、該当のクラスキュー#2へ格納する。
Next, in FIG. 6C, a case where the following new frame (D) arrives will be described.
(D) Frame length: 250, class queue: # 2
(D) Calculation of Weighted Sequence Number (SN) Since the class queue # 2 to be stored is empty, the
Weighted sequence number (SN)
= (Round number) + (frame length) x (frame weight: W2)
= 1350 + 250 × 2
= 1850
The
図6Dを参照して、現在キューに溜まっているフレーム(A)、(C)、(D)のキューからの読み出しの流れを説明する。図6Dにおいて、RD制御ブロック33は、クラスキュー#0、#1、#2に蓄積されたフレーム(A)、(C)、(D)の重み付きシーケンス番号(SN)を比較する。最も小さい重み付きシーケンス番号(SN)はフレーム(A)の1800のため、RD制御ブロック33は、フレーム(A)を最初に帯域制御部25の図示しないシェーパへ出力する。RD制御ブロック33は、出力したフレーム(A)の重み付きシーケンス番号(SN)をラウンド番号とし、ラウンド番号領域313を1350から1800へ書き換える。
With reference to FIG. 6D, the flow of reading from the queues of the frames (A), (C), and (D) currently accumulated in the queue will be described. In FIG. 6D, the
次に、RD制御ブロック33は、キュー内に存在するフレーム(C)、(D)のシーケンス番号を比較する。小さい重み付きシーケンス番号(SN)はフレーム(D)の1850のため、RD制御ブロック33は、フレーム(D)を次に出力する。RD制御ブロック33は、出力したフレーム(D)の重み付きシーケンス番号(SN)をラウンド番号とし、ラウンド番号領域313を1800から1850へ書き換える。
Next, the
最後に、RD制御ブロック33は、クラスキュー#1に残っているフレーム(C)を出力する。RD制御ブロック33は、出力したフレーム(C)の重み付きシーケンス番号(SN)をラウンド番号とし、ラウンド番号領域313を1850から3150へ書き換える。
Finally, the
図7を参照して、ユーザフローがnフローの場合の、帯域制御キュー管理テーブルとフレーム受信バッファを説明する。図7において、ユーザフローが複数(n>1)のとき、帯域制御部25は、ユーザフロー数分だけ帯域制御キュー管理テーブル31A−1〜31A−nとフレーム受信バッファ32−1〜32−nを具備する。
With reference to FIG. 7, the bandwidth control queue management table and the frame reception buffer when the user flow is n flow will be described. In FIG. 7, when there are a plurality of user flows (n> 1), the
重み付きシーケンス番号およびラウンド番号は、有限の値を取る。このため、最大値を超えた場合(ラップアラウンドと呼ぶ)、0に戻ることになる。0に戻った場合、単純に重み付きシーケンス番号の比較を行なうことはできない。これは、0に戻ったシーケンス番号が常に最小値となってしまうためである。ラウンドアップフラグは、ラップアラウンドが発生したキューを識別し、比較対象から外すために使用する。これを図8を参照して、説明する。 The weighted sequence number and round number take finite values. For this reason, when the maximum value is exceeded (referred to as wraparound), the value returns to 0. When it returns to 0, it is not possible to simply compare weighted sequence numbers. This is because the sequence number returned to 0 is always the minimum value. The round-up flag is used to identify a queue in which wraparound has occurred and remove it from the comparison target. This will be described with reference to FIG.
図8において、WR制御ブロック30は、重み付きシーケンス番号(SN)を計算する(S80)。WR制御ブロック30は、SNがラップアラウンド閾値以上か判定する(S81)。YESのとき、WR制御ブロック30は、当該優先キューのラップアラウンドフラグを立てる(S82)。ステップ81でNOのとき、WR制御ブロック30は、ラップアラウンドフラグが立っていない優先キューのSN比較を実施して(S83)、ステップ80に遷移する。
In FIG. 8, the
ステップ82のあと、WR制御ブロック30は、全ての優先キューでラップアラウンドフラグが立っているか判定する(S84)。YESのとき、WR制御ブロック30は、全優先キューのラップアラウンドフラグをクリアする(S86)。WR制御ブロック30は、SNを比較して(S87)、ステップ80に遷移する。ステップ84でNOのとき、WR制御ブロック30は、ステップ83に遷移する。
After
図9を参照して、実施例2の優先キューに保存されるフレーム構成を説明する。図9において、フレーム70Aは、ヘッダと、ペイロードとで構成され、ヘッダには、格納すべきキューの選択情報であるCOSまたはTOS/TC51と、重み付きシーケンス番号を演算するに必要なフレーム情報であるLength52を含んでいる。図3のフレーム70との対比から明らかなように、フレーム70AにはSNが含まれていない。
With reference to FIG. 9, the frame configuration stored in the priority queue according to the second embodiment will be described. In FIG. 9, a
図10を参照して、RD制御ブロック33Aで重み付きシーケンス番号411を生成し、その値に従ってフレーム受信バッファ32より読み出すフレームの順番を決定する実施例2を説明する。図10において、帯域制御部25Aは、WR制御ブロック30Aと、帯域制御キュー管理テーブル31Bと、フレーム受信バッファ32と、RD制御ブロック33Aとから構成される。
With reference to FIG. 10, a second embodiment in which the
帯域制御キュー管理テーブル31Bは、帯域制御対象となるコネクションのキュー情報を保持する。帯域制御キュー管理テーブル31Bは、重み付きシーケンス番号411と、RA314とを含む。帯域制御キュー管理テーブル31Bのレコードは、優先度が高い順に、クラス3(絶対優先)、クラス2、クラス1、クラス0を含む。クラス3(絶対優先)は、絶対優先であり、WFQには参加しない。したがって、クラス3(絶対優先)の重み付きシーケンス番号411欄には、ラウンド番号313を記録している。
The bandwidth control queue management table 31B holds queue information of connections that are bandwidth control targets. The bandwidth control queue management table 31B includes a
フレーム受信バッファ32は、クラス3キュー(絶対優先)321と、クラス2キュー(重み:W2)322と、クラス1キュー(重み:W1)323と、クラス0キュー(重み:W0)324とを保持する。なお、フレーム受信バッファ32は、FIFOメモリである。
RD制御ブロック33Aは、ラウンド番号取得部331と、重み付きシーケンス番号計算部332とを含む。ラウンド番号取得部331は、帯域制御キュー管理テーブル31Bから、ラウンド番号313を読みだす。重み付きシーケンス番号計算部332は、ラウンド番号311と、フレームのLength52と、重みとに基づいて、重み付きシーケンス番号を計算する。
The
The
実施例2において、RD制御ブロック33Aは、重み付きシーケンス番号411を生成し、その値に従って読み出す順番を決定する。以下、その具体的な動作を説明する。
WR制御ブロック30Aに到着したフレームについて、WR制御ブロック30Aは、図9のCOSまたはTOS/TC51をもとに、該当のクラスキュー321〜324に格納する。
In the second embodiment, the
The WR control block 30A stores the frames that have arrived at the
RD制御ブロック33Aでの1回目の読出しのとき(一番最初の読み出し)、RD制御ブロック33Aは、フレーム受信バッファ32のEmptyではない優先度の高いクラスキューから読出しを開始する。重み付きシーケンス番号計算部332は、読み出ししたフレームのバイト数から重み付きシーケンス番号を計算する。計算した重み付きシーケンス番号411について、重み付きシーケンス番号計算部332は、帯域制御キュー管理テーブル31Bの該当クラスに格納する。
At the time of the first reading in the
以降2回目の読み出しのとき、RD制御ブロック33Aは、読み出し時に帯域制御キュー管理テーブル31Bを参照し、重み付きシーケンス番号411の値が小さいキューの順にフレーム受信バッファ32よりフレームの読み出しを行なう。RD制御ブロック33Aは、その都度重み付きシーケンス番号計算部332にて、次のフレームの重み付きシーケンス番号を計算し、帯域制御キュー管理テーブル31Bの該当クラスに格納する。
Thereafter, at the time of the second reading, the
実施例1では、予め各クラスキューの重み付きシーケンス番号411がわかっている上で、重み付きシーケンス番号411の小さい順にフレーム受信バッファ32よりフレームを読み出す。しかし、実施例2では、フレーム受信バッファ32よりフレームを読み出して、重み付きシーケンス番号411を計算した結果、次に読みだすクラスキューを決定する。
In the first embodiment, the
この時、読み出し側であるRD制御ブロック33Aで、フレーム読み出しによる重み付きシーケンス番号411更新時、フレーム受信バッファ32が空のクラスについても、読み出したフレームの計算した重み付きシーケンス番号411にて上書きする。ただし、上書きする重み付きシーケンス番号411の値があらかじめ帯域制御キュー管理テーブル31Bに保存されている重み付きシーケンス番号411よりも大きい場合は、上書きを行なわない。
一方、書き込み側であるWR制御ブロック30Aは、重み付きシーケンス番号411の参照、上書きは一切行なわない。
At this time, when the
On the other hand, the
ここでラウンド番号313について説明する。RD制御ブロック33Aは、非アクティブなキュー=Emptyとし、帯域制御キュー管理テーブル31Bの各クラスの中で最も小さい値の重み付けシーケンス番号411を持つキューのパケットで計算した重み付けシーケンス番号をラウンド番号313とする。また、フレーム読出し後、RD制御ブロック33Aは、フローの内、Emptyとなっているクラスキューの重み付きシーケンス番号411にラウンド番号313を上書きする。
Here, the
ここで重み付きシーケンス番号411の計算方法について説明する。
重み付きシーケンス番号411
=帯域制御キュー管理テーブル31Bから読み出した重み付きシーケンス番号411+クラスに該当するWeight値×フレームバイト数
アクティブなクラスキューの場合(Not Empty)も非アクティブなクラスキューの場合(Empty)も上記の計算式である。なお、1回目の読み出し時(一番最初の読み出し時)、管理テーブル31Bは、重み付きシーケンス番号411シーケンス番号を保持していないので、ラウンド番号(初期値0)を利用する。
Here, a method of calculating the
=
図11を参照して、実施例2のフレームのキューへの格納と、読み出しを説明する。なお、図11では、帯域制御キュー管理テーブル31Bの重み付きシーケンス番号411をキュー内部に記載している。これは、図示の簡便のためである。
With reference to FIG. 11, storage and reading of frames in the queue according to the second embodiment will be described. In FIG. 11, the
まず、図11Aを参照して、以下のフレームが(A)、(B)、(C)の順で到着した場合を説明する。
(A) フレーム長:100、クラスキュー:#0
(B) フレーム長:150、クラスキュー:#1
(C) フレーム長:200、クラスキュー:#1
各キューの優先割合であるフレーム重みとして実施例1の値を使用する。
実施例2では、書き込み側ではWFQに関して一切処理をせず、WR制御ブロック30Aは、フレーム70AのCOSまたはTOS/TC51に従って、キュー323、324に格納する。
First, a case where the following frames arrive in the order of (A), (B), and (C) will be described with reference to FIG. 11A.
(A) Frame length: 100, class queue: # 0
(B) Frame length: 150, class queue: # 1
(C) Frame length: 200, class queue: # 1
The value of the first embodiment is used as the frame weight which is the priority ratio of each queue.
In the second embodiment, no processing is performed on the WFQ on the writing side, and the WR control block 30A stores in the
到着したフレーム(A)(B)(C)の重み付きシーケンス番号(SN)の計算は、読み出し側で行なう。
図11Bにおいて、RD制御ブロック33Aは、帯域制御キュー管理テーブル31Bを参照して、読み出すフレームを選択する。図11Bの場合、1回目の読み出し時(一番最初の読み出し時)のためEmptyではない優先度の高いクラスキューから読み出しを開始する。そのため、RD制御ブロック33Aは、クラスキュー#1に格納されているフレーム(B)を最初に読み出す。
The weighted sequence number (SN) of the arrived frames (A), (B), and (C) is calculated on the reading side.
In FIG. 11B, the
次に、RD制御ブロック33Aは、読み出したフレーム(B)の重み付きシーケンス番号(SN)計算を下記の通り行なう。
・(B)の重み付きシーケンス番号(SN)計算
フレーム(B)はアクティブなクラスキュー#1のため、RD制御ブロック33Aは、ラウンド番号を使用する。
Next, the
(B) Weighted sequence number (SN) calculation Since the frame (B) is the active
重み付きシーケンス番号(SN)
=(ラウンド番号)+(フレーム長)×(フレーム重み:W1)
=0+150×9
=1350
RD制御ブロック33Aは、計算したフレーム(B)の重み付きシーケンス番号(SN)1350にて、ラウンド番号313を0から1350に上書きする。また、RD制御ブロック33Aは、帯域制御キュー管理テーブル31Bのクラス#1、#2の重み付きシーケンス番号(SN)も0から1350へ上書きを行なう。#2の重み付きシーケンス番号(SN)を0から1350へ上書きを行なうのは、#2がEmptyだからである。
Weighted sequence number (SN)
= (Round number) + (frame length) x (frame weight: W1)
= 0 + 150 × 9
= 1350
The RD control block 33A overwrites the
図11Cを参照して、次に新たに以下のフレーム(D)が到着した場合を説明する。
(D) フレーム長:250、クラスキュー:#2
図11Cにおいて、図11Aと同様に、WR制御ブロック30Aは、COSまたはTOS/TC51に従ってキュー322に格納する。
Next, a case where the following frame (D) arrives newly will be described with reference to FIG. 11C.
(D) Frame length: 250, class queue: # 2
In FIG. 11C, as in FIG. 11A, the WR control block 30A stores in the
図11Dを参照して、現在キューに溜まっているフレーム(A)、(C)、(D)のキューからの読み出しの流れを説明する。図11Dにおいて、RD制御ブロック33Aは、図11Cにて更新された帯域制御キュー管理テーブル31Bのフレームが蓄積されているクラス#2、#1、#0の重み付きシーケンス番号を比較する。
With reference to FIG. 11D, the flow of reading from the queues of the frames (A), (C), and (D) currently accumulated in the queue will be described. 11D, the
最も小さい重み付きシーケンス番号(SN)はフレーム(A)の0のため、RD制御ブロック33Aは、フレーム(A)を最初に出力する。
Since the smallest weighted sequence number (SN) is 0 in frame (A),
次に読み出したフレーム(A)の重み付きシーケンス番号(SN)計算を行なう。
・(A)の重み付きシーケンス番号(SN)計算
フレーム(A)は非アクティブなクラスキュー#0のため、RD制御ブロック33Aは、帯域制御キュー管理テーブル31Bで読み出した重み付きシーケンス番号を使用する。
重み付きシーケンス番号(SN)
=(帯域制御キュー管理テーブル31Bで読み出したSN)+(フレーム長)×(フレーム重み:W0)
=0+100×18
=1800
計算結果の重み付きシーケンス番号(SN)1800を、RD制御ブロック33Aは、帯域制御キュー管理テーブル31Bのクラスキュー#0の重み付きシーケンス番号領域にを上書きする。また、RD制御ブロック33Aは、ラウンド番号313を1350から1800に上書きする。
Next, the weighted sequence number (SN) of the read frame (A) is calculated.
(A) Weighted sequence number (SN) calculation Since the frame (A) is the inactive
Weighted sequence number (SN)
= (SN read in bandwidth control queue management table 31B) + (frame length) × (frame weight: W0)
= 0 + 100 × 18
= 1800
The RD control block 33A overwrites the weighted sequence number (SN) 1800 of the calculation result in the weighted sequence number area of the
次に、RD制御ブロック33Aは、帯域制御キュー管理テーブル31Bのフレームが蓄積されているクラス#2、#1の重み付きシーケンス番号を比較する。クラス#2、#1ともに重み付きシーケンス番号は1350のため、RD制御ブロック33Aは、優先度の高いクラス#2に蓄積されているフレーム(D)を次に読み出す。
Next, the
RD制御ブロック33Aは、読み出したフレーム(D)の重み付きシーケンス番号(SN)計算を行なう。
・(D)の重み付きシーケンス番号(SN)計算
フレーム(D)は非アクティブなクラスキュー#2のため、RD制御ブロック33Aは、帯域制御キュー管理テーブル31Bで読み出した重み付きシーケンス番号を使用する。
重み付きシーケンス番号(SN)
=(帯域制御キュー管理テーブル31Bで読み出したSN)+(フレーム長)×(フレーム重み:W2)
=1350+250×2
=1850
RD制御ブロック33Aは、重み付きシーケンス番号(SN)1850を帯域制御キュー管理テーブル31Bのクラスキュー#2の重み付きシーケンス番号領域に上書きする。また優先クラスキュー#0もバッファが空のため、RD制御ブロック33Aは、重み付きシーケンス番号を1800から1850へ上書きを行なう。また、RD制御ブロック33Aは、ラウンド番号313を1800から1850に上書きする。
The
(D) Weighted sequence number (SN) calculation Since the frame (D) is the inactive class queue # 2, the RD control block 33A uses the weighted sequence number read in the bandwidth control queue management table 31B. .
Weighted sequence number (SN)
= (SN read in bandwidth control queue management table 31B) + (frame length) × (frame weight: W2)
= 1350 + 250 × 2
= 1850
The RD control block 33A overwrites the weighted sequence number (SN) 1850 in the weighted sequence number area of the class queue # 2 in the bandwidth control queue management table 31B. Since the priority
最後に、RD制御ブロック33Aは、帯域制御キュー管理テーブル31Bのクラス#1に蓄積されているフレーム(C)を読み出す。
Finally, the RD control block 33A reads the frame (C) stored in the
RD制御ブロック33Aは、読み出したフレーム(C)の重み付きシーケンス番号(SN)計算を行なう。
・(C)の重み付きシーケンス番号(SN)計算
フレーム(C)は非アクティブなクラスキュー#1のため、RD制御ブロック33Aは、帯域制御キュー管理テーブル31Bで読み出した重み付きシーケンス番号を使用する。
重み付きシーケンス番号(SN)
=(帯域制御キュー管理テーブル31Bで読み出したSN)+(フレーム長)×(フレーム重み:W1)
=1350+200×9
=3150
RD制御ブロック33Aは、重み付きシーケンス番号(SN)3150を帯域制御キュー管理テーブル31Bのクラスキュー#1の重み付きシーケンス番号領域に上書きする。また、RD制御ブロック33Aは、優先クラスキュー#2、#0もバッファが空のため重み付きシーケンス番号を3150へ上書きを行なう。また、RD制御ブロック33Aは、ラウンド番号313を1850から3150に上書きする。
The
(C) Weighted sequence number (SN) calculation Since the frame (C) is the inactive
Weighted sequence number (SN)
= (SN read in bandwidth control queue management table 31B) + (frame length) × (frame weight: W1)
= 1350 + 200 × 9
= 3150
The RD control block 33A overwrites the weighted sequence number (SN) 3150 in the weighted sequence number area of the
ラップアラウンドについて、実施例2は、実施例1と同様の動作とすればよい。
上述した実施例によれば、汎用FPGAにて高速にWFQ処理が可能な通信装置を提供することができた。
Regarding the wraparound, the second embodiment may perform the same operation as the first embodiment.
According to the above-described embodiment, a communication apparatus capable of performing WFQ processing at high speed with a general-purpose FPGA can be provided.
10…エンドユーザ、11…通信装置、12…アクセス回線網、13…他キャリアアクセス回線網、14…ATMアクセスネットワーク、15…イーサアクセスネットワーク、16…VLANサービス網、17…専用線網、18…エッジSW、19…キャリアネットワーク、20…PHY、21…フレーム分離部、22…制御フレーム終端部、23…制御フレーム生成部、24…多重部、25…帯域制御部、30…WR制御ブロック、31…帯域制御キュー管理テーブル、32…フレーム受信バッファ、33…RD制御ブロック、50…SN(シーケンス番号)、51…キュー格納情報、52…フレーム長情報、70…フレーム、100…ネットワーク、301…ラウンド番号取得部、302…重み付きシーケンス番号計算and付与部、311…フレーム先頭情報、312…WA(Write Address)、313…ラウンド番号、314…RA(Read Address)、321…クラス3キュー(絶対優先)、322…クラス2キュー(重み:W2)、323…クラス1キュー(重み:W1)、324…クラス0キュー(重み:W0)、331…ラウンド番号取得部、332…重み付きシーケンス番号計算部、411…重み付きシーケンス番号、412…先読み重み付きシーケンス番号。
DESCRIPTION OF
Claims (4)
前記フレーム受信バッファの複数の前記キューのいずれかからフレームを読み込むRD制御部と、
前記キューごとの重み付きシーケンス番号と、ラウンド番号とを記録するキュー管理テーブルと、
を備え、
前記WR制御部または前記RD制御部は、フレームごとに、フレームの優先度と長さとに依存する前記重み付きシーケンス番号を演算し、前記キュー管理テーブルに記録し、
前記RD制御部は、前記キューの優先度と前記重み付きシーケンス番号とに基づいて、フレームを読み込むキューを選択し、選択したキューの重み付きシーケンス番号を前記ラウンド番号として、前記キュー管理テーブルに記録することを特徴とする通信装置。 A WR control unit that writes to one of a plurality of queues of the frame reception buffer based on queue storage information of the received frame;
An RD control unit that reads a frame from any of the plurality of queues of the frame reception buffer;
A queue management table that records a weighted sequence number for each queue and a round number;
With
The WR control unit or the RD control unit calculates, for each frame, the weighted sequence number depending on the priority and length of the frame, and records the weighted sequence number in the queue management table.
The RD control unit selects a queue from which a frame is read based on the priority of the queue and the weighted sequence number, and records the weighted sequence number of the selected queue as the round number in the queue management table. A communication device characterized by:
前記RD制御部は、フレームごとに、フレームの優先度と長さとに依存する前記重み付きシーケンス番号を演算し、前記キュー管理テーブルに記録し、初回の読み込みは前記キューの優先度に基づいてフレームを読み込むキューを選択し、2回目以降の読み込みは最も小さい前記重み付きシーケンス番号を持つキューを選択することを特徴とする通信装置。 The communication device according to claim 1,
The RD control unit calculates, for each frame, the weighted sequence number that depends on the priority and length of the frame, records the weighted sequence number in the queue management table, and the first reading is performed based on the priority of the queue. And a queue having the smallest weighted sequence number for the second and subsequent readings is selected.
前記WR制御部は、フレームごとに、フレームの優先度と長さとに依存する前記重み付きシーケンス番号を演算し、前記キュー管理テーブルに記録し、さらに前記シーケンス番号を当該フレームの先頭に追加して、前記フレーム受信バッファの複数のキューのいずれかに書き込み、
前記RD制御部は、フレームを読みだすとき、前記読み出しフレームの次のフレームのシーケンス番号を先読みして、前記キュー管理テーブルに先読み重み付きシーケンス番号として記録し、前記先読み重み付きシーケンス番号に基づいて、読みだすキューを選択することを特徴とする通信装置。 The communication device according to claim 1,
The WR control unit calculates the weighted sequence number depending on the priority and length of the frame for each frame, records the weighted sequence number in the queue management table, and adds the sequence number to the head of the frame. Write to any of a plurality of queues in the frame receive buffer;
When the frame is read, the RD control unit prefetches the sequence number of the next frame of the read frame and records it as a prefetch weighted sequence number in the queue management table. Based on the prefetch weighted sequence number A communication device characterized by selecting a queue to be read out.
前記WR制御部または前記RD制御部において、
フレームごとに、フレームの優先度と長さとに依存する前記重み付きシーケンス番号を演算するステップと、
前記重み付きシーケンス番号を前記キュー管理テーブルに記録するステップと、
前記RD制御部において、
前記キューの優先度と前記重み付きシーケンス番号とに基づいて、フレームを読み込むキューを選択するステップと、
選択したキューの重み付きシーケンス番号を前記ラウンド番号として、前記キュー管理テーブルに記録するステップと、
を含む優先制御方法。 A WR control unit that writes to one of a plurality of queues of a frame reception buffer based on queue storage information of a received frame, an RD control unit that reads a frame from one of the plurality of queues of the frame reception buffer, and the queue A priority control method in a communication device comprising a weighted sequence number and a queue management table for recording a round number,
In the WR control unit or the RD control unit,
For each frame, calculating the weighted sequence number depending on the priority and length of the frame;
Recording the weighted sequence number in the queue management table;
In the RD control unit,
Selecting a queue to read frames based on the priority of the queue and the weighted sequence number;
Recording the weighted sequence number of the selected queue as the round number in the queue management table;
Priority control method.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012130633A JP5759941B2 (en) | 2012-06-08 | 2012-06-08 | Communication apparatus and priority control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012130633A JP5759941B2 (en) | 2012-06-08 | 2012-06-08 | Communication apparatus and priority control method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013255159A true JP2013255159A (en) | 2013-12-19 |
JP5759941B2 JP5759941B2 (en) | 2015-08-05 |
Family
ID=49952316
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012130633A Expired - Fee Related JP5759941B2 (en) | 2012-06-08 | 2012-06-08 | Communication apparatus and priority control method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5759941B2 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030103514A1 (en) * | 2001-12-03 | 2003-06-05 | Hong-Soon Nam | Apparatus and method for packet scheduling using credit based round robin |
JP2011004083A (en) * | 2009-06-17 | 2011-01-06 | Nippon Telegr & Teleph Corp <Ntt> | Communication quality control device and communication quality control method |
-
2012
- 2012-06-08 JP JP2012130633A patent/JP5759941B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030103514A1 (en) * | 2001-12-03 | 2003-06-05 | Hong-Soon Nam | Apparatus and method for packet scheduling using credit based round robin |
JP2011004083A (en) * | 2009-06-17 | 2011-01-06 | Nippon Telegr & Teleph Corp <Ntt> | Communication quality control device and communication quality control method |
Non-Patent Citations (2)
Title |
---|
JPN6015011297; Ruangchaijatupon, N. ; Liping Wang ; Yusheng Ji: 'A Study on the Performance of Scheduling Schemes for Broadband Wireless Access Networks' Communications and Information Technologies, 2006. ISCIT '06. International Symposium on , 20061018, pp.1008-1012 * |
JPN6015011298; S. Keshav: An Engineering Approach to Computer Networking Scheduling, 1997 * |
Also Published As
Publication number | Publication date |
---|---|
JP5759941B2 (en) | 2015-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8184540B1 (en) | Packet lifetime-based memory allocation | |
US8588241B1 (en) | Memory utilization in a priority queuing system of a network device | |
EP2466824B1 (en) | Service scheduling method and device | |
CN101977162B (en) | Load balancing method of high-speed network | |
US20080101233A1 (en) | Method and apparatus for load balancing internet traffic | |
US6795870B1 (en) | Method and system for network processor scheduler | |
JP5749732B2 (en) | Assembly and method for receiving and storing data while conserving bandwidth by controlling queue fill level updates | |
WO2011106288A2 (en) | Communication transport optimized for data center environment | |
EP3166269B1 (en) | Queue management method and apparatus | |
US9769092B2 (en) | Packet buffer comprising a data section and a data description section | |
CN113037640A (en) | Data forwarding method, data caching device and related equipment | |
US8514700B2 (en) | MLPPP occupancy based round robin | |
EP3907944A1 (en) | Congestion control measures in multi-host network adapter | |
CN111355673A (en) | Data processing method, device, equipment and storage medium | |
CN112866134A (en) | Method for sending message, first network equipment and computer readable storage medium | |
CN109842564A (en) | A kind of method, the network equipment and system that service message is sent | |
TW202002596A (en) | Queuing system to predict packet lifetime in a computing device | |
US7342936B2 (en) | Method of performing deficit round-robin scheduling and structure for implementing same | |
US20180176144A1 (en) | APPARATUS FOR SELF-REGULATER (SR) LAST-IN, FIRST-OUT (LIFO) SCHEDULING IN SOFTWARE DEFINED NETWORKS (SNDs) WITH HYBRID TRAFFIC | |
WO2011085934A1 (en) | A packet buffer comprising a data section and a data description section | |
US11108697B2 (en) | Technologies for controlling jitter at network packet egress | |
JP5759941B2 (en) | Communication apparatus and priority control method | |
JP4276094B2 (en) | Communication apparatus and priority control method for performing priority control of packet | |
US7746775B2 (en) | Instant service method for deficit-round-robin (DRR) data packet scheduling | |
US10084709B1 (en) | Methods and apparatus for scheduling transmission of data in a network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140616 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20140908 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150227 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150324 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150501 |
|
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: 20150526 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150608 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5759941 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |