JP5817458B2 - Transfer processing device - Google Patents
Transfer processing device Download PDFInfo
- Publication number
- JP5817458B2 JP5817458B2 JP2011252694A JP2011252694A JP5817458B2 JP 5817458 B2 JP5817458 B2 JP 5817458B2 JP 2011252694 A JP2011252694 A JP 2011252694A JP 2011252694 A JP2011252694 A JP 2011252694A JP 5817458 B2 JP5817458 B2 JP 5817458B2
- Authority
- JP
- Japan
- Prior art keywords
- frame
- processing unit
- transfer
- speed
- speed transfer
- 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.)
- Active
Links
- 238000012546 transfer Methods 0.000 title claims description 155
- 238000012545 processing Methods 0.000 title claims description 131
- 238000007493 shaping process Methods 0.000 claims description 16
- 230000005540 biological transmission Effects 0.000 claims description 8
- 230000003139 buffering effect Effects 0.000 claims description 2
- RTZKZFJDLAIYFH-UHFFFAOYSA-N Diethyl ether Chemical compound CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 description 22
- 238000010586 diagram Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 8
- 238000000034 method Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 5
- 230000032683 aging Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Description
本発明は転送処理装置に関し、例えば、複雑なフレーム処理や制御を行うアプリケーション用プロセッサと、フレームを高速にブリッジ転送するためのファストパス用プロセッサを有するものに適用し得るものである。 The present invention relates to a transfer processing apparatus and can be applied to, for example, an application processor that performs complex frame processing and control and a fast path processor that bridges and transfers frames at high speed.
転送処理などを行う転送処理装置を有する通信装置において、リンク速度の速いポートからリンク速度の遅いポートヘフレーム転送する場合には、リンク速度の速いポートからのデータをシェーピングし、速度を調整する必要がある。シェーピングには、周知のように、バッファが利用される(特許文献1参照)。従来では、ハードウェア実装されたバッファ(例えば、内部スイッチに設けられているフレームバッファ)を利用し、フレームロスを抑制していた。 When a frame transfer is performed from a port with a high link speed to a port with a low link speed in a communication apparatus having a transfer processing apparatus that performs transfer processing, etc., it is necessary to shape the data from the port with a high link speed and adjust the speed. There is. As is well known, a buffer is used for shaping (see Patent Document 1). Conventionally, a frame loss is suppressed by using a hardware-mounted buffer (for example, a frame buffer provided in an internal switch).
しかしながら、内部スイッチ内の入出力のタイミングを調整するバッファメモリをシェーピング用のフレームバッファとして用いているため、シェーピング機能から見た場合、そのバッファの容量は小さい。そのため、バースト耐性が低くなっていた。また、バッファ容量が少ないため、キューイングの観点を動的に変化させるようなことにも対応し難いものであった。 However, since the buffer memory for adjusting the input / output timing in the internal switch is used as a frame buffer for shaping, the capacity of the buffer is small when viewed from the shaping function. Therefore, the burst tolerance was low. In addition, since the buffer capacity is small, it is difficult to cope with dynamically changing the viewpoint of queuing.
一方、より大きなバースト耐性を達成でき、動的にキューイングできるようにするためには、バッファを大きくするなど、バッファ回りのハードウェア構成を変更しなければならないという課題があった。 On the other hand, in order to achieve greater burst tolerance and to enable dynamic queuing, there has been a problem that the hardware configuration around the buffer has to be changed, such as increasing the buffer.
そのため、ハードウェア構成を変更することなく、フレームのキューイングを動的に変更し得て、バースト耐性を確保できる転送処理装置が望まれている。 Therefore, there is a demand for a transfer processing device that can dynamically change the queuing of frames without changing the hardware configuration and can ensure burst tolerance.
本発明は、入出力ポートから入力されたフレームを宛先の入出力ポートへ転送する転送処理装置において、(1)高速転送対象のフレーム情報を記憶した第1の記憶部と、(2)高速転送するフレームをバッファリングするフレームバッファと、(3)複数のソフトウェアキューを内蔵し、キューイングされる高速転送のフレームを上記フレームバッファに格納させながら、高速転送処理する高速転送処理部と、(4)非高速転送対象のフレーム情報を記憶した第2の記憶部と、(5)非高速転送のフレームに対する転送処理を行うと共に、非高速転送のフレームが高速転送のフレームへ変更が可能か否かを判定し、変更が可能な場合に、オフロード設定要求を発行するブリッジ処理部と、(6)オフロード設定要求が発行されたとき、高速転送のフレームへ変更されるフレームに適用するソフトウェアキューを動的に割り当てるオフロード設定処理部とを有することを特徴とする。 The present invention relates to a transfer processing apparatus for transferring a frame input from an input / output port to a destination input / output port. (1) a first storage unit storing frame information to be transferred at high speed; and (2) high-speed transfer. A frame buffer for buffering frames to be transmitted; (3) a high-speed transfer processing unit that incorporates a plurality of software queues and performs high-speed transfer processing while storing the queued high-speed transfer frames in the frame buffer; ) Second storage unit storing frame information for non-high-speed transfer; and (5) Performing transfer processing for non-high-speed transfer frames and whether non-high-speed transfer frames can be changed to high-speed transfer frames. A bridge processing unit that issues an offload setting request when the change is possible, and (6) a high speed when the offload setting request is issued And having a offload setting processing unit for dynamically allocating a software queue to be applied to the frame to be changed to send the frame.
本発明によれば、ハードウェア構成を変更することなく、フレームのキューイングを動的に変更し得て、バースト耐性を確保できる転送処理装置を実現できる。 According to the present invention, it is possible to realize a transfer processing apparatus that can dynamically change the queuing of frames without changing the hardware configuration and can ensure burst tolerance.
(A)第1の実施形態
以下、本発明による転送処理装置の第1の実施形態を、図面を参照しながら説明する。
(A) First Embodiment Hereinafter, a first embodiment of a transfer processing apparatus according to the present invention will be described with reference to the drawings.
(A−1)第1の実施形態の構成
図1は、通信装置内に実装される第1の実施形態の転送処理装置1の構成を示すブロック図である。以下の構成説明では、後述する実施形態に関係する部分をも区別することなく説明している。
(A-1) Configuration of First Embodiment FIG. 1 is a block diagram illustrating a configuration of a
ここで、通信装置は、例えば、有線通信機能に対応しているものであり、第1の実施形態の転送処理装置1に加え、受信部、送信部などを有している。通信装置は、例えば、VoIP(Voice over IP)ゲートウェイやホームゲートウェイなどである。
Here, the communication device corresponds to, for example, a wired communication function, and includes a reception unit, a transmission unit, and the like in addition to the
第1の実施形態の転送処理装置1は、例えば、全体が1チップの半導体集積回路で構成されており、大きくは、CPU(Central Processing Unit)2と内部スイッチ(内部SW)3とに分かれている。CPU2は、複雑なフレーム処理や制御を行うアプリケーション用プロセッサ(以下、APと呼ぶ)10と、フレームを高速にブリッジ転送するためのファストパス用プロセッサ(以下、FPと呼ぶ)20とを有する。内部スイッチ3は、例えば、CPU2とLAN(Local Area Network)ポート/WAN(Wide Area Network)ポートを中継するためのレイヤ2スイッチである。CPU2と内部スイッチ3は、RGMII(Reduced Gigabit Media Independent Interface)等で接続されており、LAN用とWAN用がそれぞれ別に接続されている。
The
AP10上では、Linux(登録商標)のようなネットワークスタックを持つ汎用OS(Operating System)が動作しており、その上で、例えば、DHCP(Dynamic Host Confuguration Protocol)サーバ/クライアント、PPPoE(PPP over Ethernet)クライアント/サーバ、VoIPアプリケーション等のアプリケーションが動作する。 On the AP 10, a general-purpose OS (Operating System) having a network stack such as Linux (registered trademark) operates, and, for example, a DHCP (Dynamic Host Configuration Protocol) server / client, a PPPoE (PPP over Ethernet). ) Applications such as a client / server and a VoIP application operate.
FP20は、有線WANインタフェースや有線LANインタフェースから入ってきたフレームの高速転送を実現するものである。 The FP 20 realizes high-speed transfer of a frame that has entered from a wired WAN interface or a wired LAN interface.
FP20は、高速転送処理部21、第1のアドレス記憶部22及び第1のフレームバッファ23を有する。ここで、高速転送処理部21はCPU2内の構成であり、CPU2内のプログラムメモリに記憶されているプログラムに従ってソフトウェア的に処理するものである。
The FP 20 includes a high-speed
高速転送処理部21は、MACアドレスやIPアドレス等のパケットヘッダを検査することによって、高速転送(高速ブリッジ転送)の設定がなされているか否かを判定し、高速転送の設定がなされている場合には、そのフレームのヘッダを変換して、フレームの高速転送を行うものである。高速転送の設定がなされていないフレームを受信した場合には、高速転送処理部21は、そのフレームをAP10に転送する。高速転送処理部21は、高速転送の設定がなされているか否かの判定や、フレームヘッダの変換には、第1のアドレス記憶部22に保持された情報を利用する。
The high-speed
また、高速転送処理部21は、フレームを転送する際、その転送フレームをどのソフトウェアキュー(Software queue)にキューイングするかを決定するのに、第1のアドレス記憶部22の後述するソフトウェアキュー番号の情報を利用する。このようなキューイング処理などを通じて、設定されたレートにシェーピングすることも可能である。
In addition, the high-speed
図2は、高速転送処理部21がキューイングを制御するソフトウェアキューの説明図である。なお、フレームのデータ自体は、第1のフレームバッファ23に格納されるが、フレームの先入れ先出しを制御するためのフレーム特定情報だけをキューイングしたソフトウェアキューは高速転送処理部21内に設けられる。
FIG. 2 is an explanatory diagram of a software queue in which the high-speed
WANポート若しくはLANポートから入力され、内部スイッチ3を介して、高速転送処理部21に与えられたフレーム(の情報)は、目的側のWANポート若しくはLANポートに対応したソフトウェアキューSQ0〜SQNにキューイングされ、ソフトウェアキューSQ0〜SQNから出力されたフレームは、各ソフトウェアキューSQ0〜SQNにそれぞれ対応するシェーパ(Shaper)SH0〜SHNに与えられ、シェーパSH0〜SHNによって、送信帯域(レート)の設定値に応じて送信タイミングが制御され、シェーパSH0〜SHNから出力されたフレームは、内部スイッチ3を介して、目的側のWANポート若しくはLANポートに与えられる。
Frames (information) input from the WAN port or LAN port and given to the high-speed
ソフトウェアキューSQ0及びSQ1がシェーパSH0を共有しているように、複数のソフトウェアキュー(例えば優先度が異なるソフトウェアキュー)で1つのシェーパを共有することも可能である
また、各ソフトウェアキューSQ0〜SQNには優先度を設定することが可能で、設定された優先度に応じて、フレーム転送することが可能となる。
As the software queues SQ0 and SQ1 share the shaper SH0, a plurality of software queues (for example, software queues having different priorities) can share one shaper. Also, each software queue SQ0 to SQN It is possible to set a priority, and it is possible to transfer a frame according to the set priority.
図3は、ソフトウェアキューに対する優先度の設定例を示す説明図である。図3の例は、入出力ポートとして、1Gbps、100Mbps、10Mbpsに設定可能な4つのLANポート#1〜#4と、1Gbpsに固定であって設定不可の1つのWANポートを有し、フレームの優先度は、IPヘッダに含まれているDSCP(Differentiated Services Code Point)値によって4段階に設定されており、シェーパは、5つの入出力ポートに対応して5つ設けられている例である。ソフトウェアキューの数は、入出力ポートの数と、優先度の段階とを乗算した20である。図3の1行目L1は、ソフトウェアキュー「0」に関する設定を記述している。ソフトウェアキュー「0」は、WANポート宛てのフレームのうち、DSCP値が「46」の最低優先のフレームをキューイングするものであり、これに対応するシェーパは存在していない。また、図3の8行目L8は、ソフトウェアキュー「7」に関する設定を記述している。ソフトウェアキュー「7」は、LANポート#1宛てのフレームのうち、DSCP値が「46」、「32」及び「8」以外の値である最高優先のフレームをキューイングするものであり、これに対応するシェーパはシェーパ「1」であって、このシェーパ「1」はシェーピング帯域として、0、100Mbps、10Mbpsに設定可能なものである。
FIG. 3 is an explanatory diagram showing a setting example of priority for the software queue. The example of FIG. 3 has four
図3の5行目L5〜L8に示すように、同じLANポート#1宛てのフレームをキューイングするソフトウェアキューの番号は、「4」、「5」、「6」、「7」のように連番となっており、「最低優先」、「低優先」、「高優先」、「最高優先」の4段階の優先度を、「0」、「1」、「2」、「3」と数値化した場合、「低優先」、「高優先」、「最高優先」のフレームをキューイングするソフトウェアキューの番号「5」、「6」、「7」は、「最低優先」のフレームをキューイングするソフトウェアキューの番号「4」に優先度数値「1」、「2」、「3」を加算したものとなっている。後述する第2の実施形態では、このようなソフトウェアキューの番号の割り付けを利用している。
As shown in the fifth line L5 to L8 in FIG. 3, the numbers of software queues for queuing frames addressed to the same
図3に示すような設定が、高速転送処理部21に対して予めなされ、設定内容に応じて、高速転送処理部21がキューング処理やシェーピング処理を制御する。
Settings as shown in FIG. 3 are made in advance for the high-speed
高速転送処理部21は、MACアドレスやIPアドレス等のパケットヘッダを検査することによって、高速転送の設定がなされているか否かを判定し、高速転送の設定がなされている場合には、そのフレームのヘッダを変換して、フレームの高速転送を行う。高速転送の設定がなされていないフレームを受信した場合には、高速転送処理部21は、そのフレームをAP10に転送する。
The high-speed
第1のアドレス記憶部22は、FP20が高速転送処理すべきフレームの情報を保持しているものである。第1のアドレス記憶部22の記憶単位であるエントリは、[1]宛先MACアドレス、[2]送信元MACアドレス、[3]宛先IPアドレス、[4]送信元IPアドレス、[5]プロトコル、[6]宛先ポート、[7]送信元ポート、[8]イーサタイプ、[9]入力インタフェース、[10]出力インタフェース、[11]ソフトウェアキュー番号、[12]ハッシュ値などの項目を有する。
The first
プロトコルは、TCP、UDP等を規定している。イーサタイプは、IPv4なのか、IPv6なのか等を判定するためのものであり、この項目は、あってもなくても良い。入力インタフェースは、どのインタフェースから入ってきたものなのかを判定するために用いるものである。出力インタフェースは、どのインタフェースヘ転送すべきなのかを判定するために用いるものである。ソフトウェアキュー番号は、上述した[1]〜[10]の項目と一致するフレームをどのソフトウェアキュー番号のキューにキューイングするかを指定するものである。ハッシュ値は、第1のアドレス記憶部22で採用しているテーブルに対する検索速度を向上させるためものの値であり、テーブル内のエントリを一意に決めることができれば、上述した[1]〜[11]の全て又は一部の項目の値をハッシュ値の算出に使っても良い。ハッシュ値は、あってもなくても良いものである。
The protocol defines TCP, UDP and the like. The ether type is for determining whether it is IPv4 or IPv6, and this item may or may not be present. The input interface is used to determine from which interface the input has been received. The output interface is used to determine which interface to transfer to. The software queue number designates to which software queue number a queue that matches the items [1] to [10] described above is queued. The hash value is a value for improving the search speed with respect to the table adopted in the first
以下、エントリの設定例を説明する。但し、以下では、項3]宛先IPアドレス、[4]送信元IPアドレス、[8]イーサタイプ、[9]入力インタフェース、[10]出力インタフェースについての設定内容のみ言及する。 An example of entry setting will be described below. However, in the following, only the setting contents for item 3] destination IP address, [4] source IP address, [8] ether type, [9] input interface, and [10] output interface will be mentioned.
例えば、有線LAN端末Aと有線WAN端末Bが、当該転送処理装置1を有する通信装置に接続されており、IPv4のフレームを送受信するとする。この場合、下記のように双方向の2エントリが、第1のアドレス記憶部22に記述されることになる。
For example, it is assumed that a wired LAN terminal A and a wired WAN terminal B are connected to a communication apparatus having the
[端末B→端末Aのエントリ]では、宛先IPアドレス=端末A、送信元IPアドレス=端末B、イーサタイプ=IPv4、入力インタフェース=WAN、出力インタフェース=LANが記述される。 [Entry of terminal B → terminal A] describes destination IP address = terminal A, transmission source IP address = terminal B, ether type = IPv4, input interface = WAN, and output interface = LAN.
[端末A→端末Bのエントリ]では、宛先IPアドレス=端末B、送信元IPアドレス=端末A、イーサタイプ=IPv4、入力インタフェース=LAN、出力インタフェース=WANが記述される。 [Entry of terminal A → terminal B] describes destination IP address = terminal B, transmission source IP address = terminal A, ether type = IPv4, input interface = LAN, and output interface = WAN.
また例えば、有線LAN端末Aと有線WAN端末Bが、当該転送処理装置1を有する通信装置に接続されており、IPv6のフレームを送受信するとする。この場合、下記のように双方向のそれぞれに、イーサタイプが異なる2エントリずつの計4エントリが、第1のアドレス記憶部22に記述されることになる。
Further, for example, it is assumed that the wired LAN terminal A and the wired WAN terminal B are connected to a communication apparatus having the
[端末B→端末Aの第1のエントリ]では、宛先IPアドレス=端末A、送信元IPアドレス=端末B、イーサタイプ=IPv4、入力インタフェース=WAN、出力インタフェース=LANが記述される。 [First entry of terminal B → terminal A] describes destination IP address = terminal A, source IP address = terminal B, ether type = IPv4, input interface = WAN, and output interface = LAN.
[端末A→端末Bの第1のエントリ]では、宛先IPアドレス=端末B、送信元IPアドレス=端末A、イーサタイプ=IPv4、入力インタフェース=LAN、出力インタフェース=WANが記述される。 [First entry of terminal A → terminal B] describes destination IP address = terminal B, transmission source IP address = terminal A, ether type = IPv4, input interface = LAN, and output interface = WAN.
[端末B→端末Aの第2のエントリ]では、宛先IPアドレス=端末A、送信元IPアドレス=端末B、イーサタイプ=IPv6、入力インタフェース=WAN、出力インタフェース=LANが記述される。 [Second entry of terminal B → terminal A] describes destination IP address = terminal A, source IP address = terminal B, ether type = IPv6, input interface = WAN, and output interface = LAN.
[端末A→端末Bの第2のエントリ]では、宛先IPアドレス=端末B、送信元IPアドレス=端末A、イーサタイプ=IPv6、入力インタフェース=LAN、出力インタフェース=WANが記述される。 [Second entry of terminal A → terminal B] describes destination IP address = terminal B, transmission source IP address = terminal A, ether type = IPv6, input interface = LAN, and output interface = WAN.
第1のフレームバッファ23は、高速転送処理部21がフレームを転送する際、一時的にフレームデータを保存するバッファである。ソフトウェアキューにキューイングされたフレームは、この第1のフレームバッファ23に保持される。ソフトウェアキューは、上述したように、フレームの優先度毎や、フレームの転送方向毎に複数持たせることが可能である。第1のフレームバッファ23としては、DRAM(Dynamic Random Acces Memory)を適用でき、動的な領域確保が可能なため、各ソフトウェアキューのサイズをコンフィグレーションすることが可能である。
The
AP10は、ブリッジ処理部11、第2のアドレス記憶部12及びオフロード設定処理部13を有する。ここで、ブリッジ処理部11及びオフロード設定処理部13はCPU2内の構成であり、CPU2内のプログラムメモリに記憶されているプログラムに従ってソフトウェア的に処理するものである。
The
ブリッジ処理部11は、例えば、Linuxカーネルのネットワークスタック内のブリッジ処理部が該当し、フレームの転送を行うものである。ブリッジ処理部11は、内蔵するMACテーブルリストを検索し、フレームの宛先MACと比較を行うことで出力先インタフェースの決定を行い、ブリッジ転送を行う。また、ブリッジ処理部11は、第2のアドレス記憶部12に保持されているエントリの各エージングタイマを監視し、一定の時間が経過した場合に、そのエントリを削除する機能を有する。
The
図4は、高速転送処理部21及びブリッジ処理部11が転送対象とするフレームの説明図である。
FIG. 4 is an explanatory diagram of frames to be transferred by the high-speed
フレームは、いずれかの入出力ポートから入力され、高速転送処理部21で転送処理されて他の入出力ポートに出力される高速転送フレームと、いずれかの入出力ポートから入力され、高速転送処理部21を介してブリッジ処理部11に与えられ、ブリッジ処理部11で転送処理されて高速転送処理部21を介して他の入出力ポートに出力される例外フレームとがある。
A frame is input from one of the input / output ports, transferred at the high-speed
例外フレームは、(1)自装置発のフレーム若しくは自装置宛のフレーム、(2)FP20の高速転送に対応していない種類のパケット(ブロードキャストパケット、マルチキャストパケット、制御用パケットであるICMP(Internet Control Message Protocol)パケットなど)、(3)後述する高速転送の設定(オフロード設定)がされる前のフレーム、などである。この例外フレームは、HTTP(Hyper Text Transfer Protocol)サーバなどの様々なアプリケーションも動作することを想定しているAP10上で転送されるため、比較的低速な転送能力しかなく、フレーム転送処理そのものがそれらのアプリケーションの処理遅延を引き起こしたり、フレーム転送性能の低下/転送遅延を招く可能性がある。
The exception frame includes (1) a frame originated from the own device or a frame addressed to the own device, and (2) a packet of a type not compatible with high-speed transfer of the FP 20 (an ICMP (Internet Control) which is a broadcast packet, a multicast packet, or a control packet (Message Protocol) packet), (3) a frame before high-speed transfer setting (offload setting) described later is set, and the like. Since this exceptional frame is transferred on the
一方、高速転送フレームは、最小のAP負荷で、FP20による高速転送を実現することができる。そのため、後述のように、高速転送の設定(オフロード設定)を可能とし、例外フレームの一部を高速転送フレームに変換し得るようにしている。 On the other hand, the high-speed transfer frame can realize high-speed transfer by the FP 20 with a minimum AP load. Therefore, as described later, high-speed transfer setting (offload setting) is enabled, and a part of the exception frame can be converted into a high-speed transfer frame.
第2のアドレス記憶部12は、AP10のネットワークスタックが持っている各ストリーム情報を保持するテーブルである。テーブルのエントリは、[1]宛先MACアドレス、[2]送信元MACアドレス、[3]宛先IPアドレス、[4]送信元IPアドレス、[5]プロトコル、[6]宛先ポート、[7]送信元ポート、[8]イーサタイプ、[9]入力インタフェース、[10]出力インタフェース、[11]ソフトウェアキュー番号、[12]ハッシュ値などの項目を有する。
The second
オフロード設定処理部13は、ブリッジ処理部11からの要求を受け、ブリッジ転送しようとしているフレームが、FP20にオフロード設定が可能か否かを判定するものである。すなわち、オフロード設定処理部13は、ブリッジ処理部11が実行しようとする転送処理を、FP20側で実行して、ブリッジ処理部11の処理を軽減できるか否かを判定するものである。例えば、転送フレームが下記のフレームF1、F2の場合には、オフロード設定処理部13は、オフロード不可と判定する。
The offload
F1:自装置発のフレーム若しくは自装置宛のフレーム
F2:FP20での高速転送に対応していない種類のパケット(ブロードキャストパケット、マルチキャストパケット、ICMPパケットなど)
オフロード設定処理部13は、オフロード設定可能と判定した場合には、FP20(正確には、第1のアドレス記憶部22)にオフロード設定を行う。オフロード設定処理部13は、オフロード設定不可能と判定した場合には何らの処理も実行しない。
F1: Frame originating from own device or frame destined for own device F2: Type of packet not compatible with high-speed transfer in FP20 (broadcast packet, multicast packet, ICMP packet, etc.)
When the offload
オフロード設定処理部13は、オフロードの重複設定を避けるため、第2のアドレス記憶部12の各エントリが既にFP20へオフロード設定されているかどうかも保持している。
The offload
また、オフロード設定処理部13は、下記の(イ)及び(ロ)の判定処理を行い、その結果に応じ、第2のアドレス記憶部12への保存や、オフロード設定を行う。
In addition, the offload
(イ)転送フレームが、どのポートヘ転送されるべきかを判定する。例えば、内部スイッチ3のMACアドレス記憶部32の情報と、その転送フレームの宛先MACアドレスを照合することで判定する。
(A) It is determined to which port the transfer frame should be transferred. For example, the determination is made by comparing the information in the MAC
(ロ)転送フレームが、どの優先度かを判定する。例えば、フレームのヘッダ情報(CoS(Class of Service)値、DSCP値、IPアドレス、MACアドレス、ポート番号等)を照合することで判定する。 (B) The priority level of the transfer frame is determined. For example, it is determined by collating frame header information (CoS (Class of Service) value, DSCP value, IP address, MAC address, port number, etc.).
さらに、オフロード設定処理部13は、各LANポート/WANポートがリンクアップした際、割り込みを受信することで、そのリンク速度を検知し、高速転送処理部21へ通知する機能を有する。こうすることで、FP20の高速転送処理部21が、各ポート宛のフレームをリンク速度にあわせてシェーピングすることが可能となる。高速転送処理部21は、例えば、リンク速度の範囲と、シェーピング帯域とを対応付けた変換テーブルを内蔵し、リンク速度に応じたシェーピング帯域を設定することができる。
Further, the offload
内部スイッチ3は、第2のフレームバッファ31とMACアドレス記憶部32とを有する。
The
第2のフレームバッファ31は、内部スイッチ3がフレームを転送する際、一時的にフレームデータを保存するバッファである。FP20の第1のフレームバッファ23と比較すると、小容量であり、バッファサイズのコンフィグレーションを行うことができない。そのため、第1の実施形態では、転送フレームのキューイングにFP20の第1のフレームバッファ23を利用することとしている。
The
MACアドレス記憶部32は、AP10内のブリッジ処理部11が有する下記のネイバー情報を保持するテーブルである。ネイバー情報は、例えば、[1]MACアドレス(受信フレームの送信元MACアドレス)、[2]LANポート/WANポートの番号(フレームを受信したLANポート/WANポートの番号;あるMACアドレスを持つ端末がどのポートに接続されているかを判定するのに使う)、[3]エージングタイマ(一定期間ごとにインクリメントされるタイマ値;一定時間経過後、この値が予め設定された閾値を越えると、このエントリはエージング(削除)される)、[4]スタティックフラグ(ユーザ等に静的に設定されたエントリか否かを示すフラグ;静的に設定されたエントリをフラグONとしエージング対象外とする)、[5]ハッシュ値(テーブル検索速度向上のために設けられたものであり、テーブル内のエントリを一意に決めることができれば、上記の項目のいくつかの値をハッシュ値算出に使うようにしても良い)などからなる。なお、スタティックフラグやハッシュ値はなくても良いものである。
The MAC
(A−2)第1の実施形態の動作
第1の実施形態の転送処理装置1は、ソフトウェアキューを適用していること、キューイングされているフレームのデータ自体は、FP20の第1のフレームバッファ23に格納することを1つの特徴としている。
(A-2) Operation of the first embodiment The
また、転送フレームをどのソフトウェアキューにどのように割り当てるかも特徴をなしており、シェーピングレートの設定も特徴をなしている。以下では、ソフトウェアキューへの割当て動作や、シェーピングレートの設定動作を順次説明する。 In addition, it is characterized by how to assign the transfer frame to which software queue, and the shaping rate setting is also characteristic. In the following, the assignment operation to the software queue and the setting operation of the shaping rate will be sequentially described.
ます、フレーム転送時にフレームの宛先ポートを自動的に判定し、自動的に各ソフトウェアキューにキューイングされるように割り当てる動作を、図5のシーケンス図を参照しながら説明する。なお、上述した図3では、優先度も割り当てる動作に影響するように記載しているが、優先度を利用した割当てについては、後述する第2の実施形態の動作の項で説明する。 First, the operation of automatically determining the destination port of a frame at the time of frame transfer and automatically allocating it to each software queue will be described with reference to the sequence diagram of FIG. In FIG. 3 described above, the priority is also described so as to affect the operation of assigning. However, the assignment using the priority will be described in the operation section of the second embodiment to be described later.
ブリッジ処理部11は、フレームの転送を検出すると(ステップ100)、そのフレームのヘッダ情報を含むオフロード設定要求を、オフロード設定処理部13に送出する(ステップ101)。
When the
このとき、オフロード設定処理部13は、ブリッジ転送しようとしているフレームが、オフロード設定が可能であることを確認した後、MACアドレス記憶部32の情報を得て(ステップ102)、その転送フレームの宛先MACアドレスを照合することで、宛先ポート番号を得、その結果、キューイングするソフトウェアキューの番号を取得する(ステップ103)。
At this time, the offload
その後、オフロード設定処理部13は、上述した取得内容などに応じ、第2のアドレス記憶部12へエントリデータを保存させると共に(ステップ104)、高速転送処理部21へ高速転送対象としてのエントリ設定(オフロード設定)を行う(ステップ105)。
高速転送処理部21は、これにより、第1のアドレス記憶部22に対して、当該フレームを高速転送対象とするエントリ追加を行う(ステップ106)。
Thereafter, the offload
Accordingly, the high-speed
以上のようにして、フレーム転送時にフレームの宛先ポートを自動的に判定し、自動的に各ソフトウェアキューにキューイングされるように割り当てることができ、バースト耐性を確保することができる。 As described above, it is possible to automatically determine the destination port of the frame at the time of frame transfer and assign it to be automatically queued in each software queue, and to ensure burst tolerance.
次に、ソフトウェアキューヘの設定が行われていない状態で、突発的にフレームがバースト的に流れてくる場合に対応できるようにした割当て動作について説明する。上述の場合、まだ、FP20の高速転送処理部21に設定がなされていないため、低速なトラフィック転送しか行うことができないAP10のブリッジ処理部11でバースト状のフレームをロスしてしまう可能性がある。そのため、バースト耐性が必要なフレームとは逆方向のフレーム転送時に、予めソフトウェアキューの設定を行うことができるようにして、フレームが突発的かつバースト的に流れてくる場合に対応できるようにした。ここで、バースト耐性が必要なフレームとは、リンク速度の速いポートからリンク速度の遅いポートヘ流れるフレームである。
Next, an allocation operation that can cope with a case where a frame suddenly flows in a burst state without setting the software queue will be described. In the above-described case, since the high-speed
以下では、バースト耐性を具備したい方向と逆方向のフレーム転送時に、フレームの送信元ポートを自動的に判定し、自動的に各ソフトウェアキューにキューイングされるように割り当てる動作を、図6のシーケンス図を参照しながら説明する。 In the following, the operation of automatically determining the frame source port and assigning it to be queued in each software queue at the time of frame transfer in the direction opposite to the direction in which burst tolerance is desired is performed as shown in the sequence of FIG. This will be described with reference to the drawings.
ブリッジ処理部11は、バースト耐性を具備したい方向と逆方向のフレームの転送を検出すると(ステップ150)、そのフレームのヘッダ情報を含む逆方向のオフロード設定要求を、オフロード設定処理部13に送出する(ステップ151)。
When the
このとき、オフロード設定処理部13は、ブリッジ転送しようとしているフレームが、オフロード設定が可能であることを確認した後、MACアドレス記憶部32の情報を得て(ステップ152)、その転送フレームの送信元MACアドレスを照合することで、逆方向についての宛先ポート番号を得、その結果、キューイングするソフトウェアキューの番号を取得する(ステップ153)。
At this time, the offload
その後、オフロード設定処理部13は、上述した取得内容などに応じ、第2のアドレス記憶部12へ逆方向のエントリデータを保存させると共に(ステップ154)、高速転送処理部21へ逆方向の高速転送対象としてのエントリ設定(オフロード設定)を行う(ステップ155)。高速転送処理部21は、これにより、第1のアドレス記憶部22に対して、当該フレームと逆方向に流れるフレームを高速転送対象とするエントリ追加を行う(ステップ156)。
Thereafter, the offload
次に、各LANポート/WANポートのリンクアップを検出した際、自動的に関連するシェーパのシェーピング帯域(シェーピングレート)を設定する動作を、図7のシーケンス図を参照しながら説明する。 Next, an operation of automatically setting a shaping band (shaping rate) of a related shaper when a link up of each LAN port / WAN port is detected will be described with reference to the sequence diagram of FIG.
内部スイッチ3は、ある入出力ポートのリンクアップを検出すると(ステップ200)、オフロード設定処理部13へリンクアップ割り込み通知を送付する(ステップ201)。このとき、オフロード設定処理部13は、その入出力ポートのリンクアップを認識し、内部スイッチ3の通信速度に関するレジスタ値を読み込むことで(ステップ202)、その入出力ポートのリンク速度を取得する(ステップ203)。そして、オフロード設定処理部13は、取得したリンク速度から、FP20の高速転送処理部21のシェーパに設定するシェーピングレートを決定し(ステップ204)、高速転送処理部21のシェーパに設定させる。これにより、リンク速度に応じたフレーム高速転送を行うことができるようになる。
When the
(A−3)第1の実施形態の効果
以上のように、第1の実施形態によれば、従来ではハードウェア構成を変更することでしか対応できなかったバッファサイズを、ソフトウェアキューを用いて動的に確保することで、ハードウェア変更なしで、より大きなバースト耐性を有することができる。
(A-3) Effects of the First Embodiment As described above, according to the first embodiment, the buffer size that can only be dealt with by changing the hardware configuration in the past can be obtained using the software queue. By securing dynamically, it is possible to have greater burst tolerance without hardware change.
また、第1の実施形態によれば、ソフトウェアキューヘの設定が行われていない状態で、突発的にバースト状にフレームが流れてくる場合も、バースト耐性が必要なフレームとは逆方向のフレーム転送時に、予めソフトウェアキューの設定を行うようにしたので、フレームロスなしでバースト状のフレームを転送することができる。 Further, according to the first embodiment, even when a frame suddenly flows in a burst state when the software queue is not set, a frame in a direction opposite to a frame that requires burst tolerance is used. Since the software queue is set in advance at the time of transfer, burst-like frames can be transferred without frame loss.
さらに、第1の実施形態によれば、オートネゴシエーションにより動的にリンク速度が変更された場合も、そのリンク速度の変更が各ソフトウェアキューに接続されたシェーパのシェーピングレートヘ動的に反映させるので、フレームロスなしでのバーストフレーム転送が可能となる。 Furthermore, according to the first embodiment, even when the link speed is dynamically changed by auto-negotiation, the change in the link speed is dynamically reflected on the shaping rate of the shaper connected to each software queue. Thus, burst frame transfer without frame loss is possible.
(B)第2の実施形態
次に、本発明による転送処理装置の第2の実施形態を、図面を参照しながら説明する。
(B) Second Embodiment Next, a second embodiment of the transfer processing apparatus according to the present invention will be described with reference to the drawings.
第2の実施形態の転送処理装置も、その構成は、第1の実施形態の説明で用いた図1で表すことができる。 The configuration of the transfer processing apparatus of the second embodiment can also be represented by FIG. 1 used in the description of the first embodiment.
第2の実施形態の転送処理装置は、フレーム転送時にフレームの優先度を自動的に判定し、自動的に各ソフトウェアキューにキューイングされるように割り当てることで、バースト耐性を確保しつつ、自由な優先制御を行うことができるようにしたものである。 The transfer processing device of the second embodiment automatically determines the priority of a frame at the time of frame transfer, and assigns it to be automatically queued to each software queue, thereby ensuring burst tolerance and free. Thus, priority control can be performed.
以下では、フレーム転送時にフレームの優先度を自動的に判定し、自動的に各ソフトウェアキューにキューイングされるように割り当てる動作を、図8のシーケンス図を参照しながら説明する。 In the following, an operation for automatically determining the priority of a frame at the time of frame transfer and automatically allocating it to each software queue will be described with reference to the sequence diagram of FIG.
ブリッジ処理部11は、フレームの転送を検出すると(ステップ250)、そのフレームのヘッダ情報を含むオフロード設定要求を、オフロード設定処理部13に送出する(ステップ251)。
When the
このとき、オフロード設定処理部13は、ブリッジ転送しようとしているフレームが、オフロード設定が可能であることを確認した後、MACアドレス記憶部32の情報を得て(ステップ252)、その転送フレームの宛先MACアドレスを照合することで、宛先ポート番号を得、その結果、ソフトウェアキューの番号を取得する(ステップ253)。
At this time, the offload
その後、オフロード設定処理部13は、フレームのDSCP値から優先度を算出し、オフセットとして、ステップ253で取得したソフトウェアキューの番号に加算して、最終的に利用するソフトウェアキューの番号を得る(ステップ254)。例えば、ステップ253で得られたソフトウェアキューの番号が「4」で優先度が「3」であれば、最終的に利用するソフトウェアキューの番号として「7」(=4+3)を得る。
After that, the offload
そして、オフロード設定処理部13は、上述したようにして取得した内容などに応じ、第2のアドレス記憶部12へエントリデータを保存させると共に(ステップ255)、高速転送処理部21へ高速転送対象としてのエントリ設定(オフロード設定)を行う(ステップ256)。高速転送処理部21は、これにより、第1のアドレス記憶部22に対して、当該フレームを高速転送対象とするエントリ追加を行う(ステップ257)。
Then, the offload
以上のように、第2の実施形態によれば、従来ではハードウェア(内部スイッチ)で行っていたバースト耐性及び優先制御機能を、ソフトウェア上で具備することができる。 As described above, according to the second embodiment, the burst tolerance and priority control function that has been conventionally performed by hardware (internal switch) can be provided on software.
(C)他の実施形態
上記各実施形態の説明においても、種々変形実施形態に言及したが、さらに、以下に例示するような変形実施形態を挙げることができる。
(C) Other Embodiments In the description of each of the above-described embodiments, various modified embodiments have been referred to. However, modified embodiments as exemplified below can be given.
上記各実施形態では、FP20の第1のフレームバッファ23にDRAMを適用したものを示したが、フレームを保持できる記憶媒体であれば、SRAM(Static RAM)等、他の記憶媒体であっても良い。
In each of the above embodiments, a DRAM is applied to the
上記各実施形態では、「内部スイッチ(内部SW)」を装置上に配置し、全LANポートは1本のCPUのインタフェースを経由して接続される構成を示したが、フレームがどのLANポート/WANポートで受信したのかを判定することができれば、各LANポート/WANポートが独立したインタフェース経由でCPUに接続するようにしても良い。 In each of the above embodiments, the “internal switch (internal SW)” is arranged on the apparatus and all LAN ports are connected via the interface of one CPU. Each LAN port / WAN port may be connected to the CPU via an independent interface as long as it can be determined whether the message is received at the WAN port.
上記各実施形態では、「AP」が1つの場合を示したが、2つ以上あっても良く、同様に、「FP」も1つに限定されず、2つ以上あっても良い。 In each of the embodiments described above, the case where there is one “AP” is shown, but there may be two or more, and similarly, “FP” is not limited to one and may be two or more.
上記第2の実施形態では、フレームの宛先ポートと優先度との組み合わせで、適用するソフトウェアキューを決めるものを示したが、フレームの優先度だけで適用するソフトウェアキューを決めるようにしても良い。 In the second embodiment, the software queue to be applied is determined by the combination of the frame destination port and the priority. However, the software queue to be applied may be determined only by the frame priority.
上記第2の実施形態では、フレームの宛先ポートに応じて、適用するソフトウェアキューを数個に絞った上で、フレームの優先度に応じて、最終的に適用する1つのソフトウェアキューを決定するものを示したが、逆に、フレームの優先度に応じて、適用するソフトウェアキューを数個に絞った上で、フレームの宛先ポートに応じて、最終的に適用する1つのソフトウェアキューを決定するようにしても良い。 In the second embodiment, the number of software queues to be applied is limited to several according to the destination port of the frame, and finally one software queue to be applied is determined according to the priority of the frame. However, conversely, after limiting the number of software queues to be applied to several according to the priority of the frame, one software queue to be finally applied is determined according to the destination port of the frame. Anyway.
1…転送処理装置、2…CPU、3…内部スイッチ(内部SW)、10…アプリケーション用プロセッサ(AP)、11…ブリッジ処理部、12…第2のアドレス記憶部、13…オフロード設定処理部、20…ファストパス用プロセッサ(FP)、21…高速転送処理部、22…第1のアドレス記憶部、23…第1のフレームバッファ、31…第2のフレームバッファ、32…MACアドレス記憶部。
DESCRIPTION OF
Claims (5)
高速転送対象のフレーム情報を記憶した第1の記憶部と、
高速転送するフレームをバッファリングするフレームバッファと、
複数のソフトウェアキューを内蔵し、キューイングされる高速転送のフレームを上記フレームバッファに格納させながら、高速転送処理する高速転送処理部と、
非高速転送対象のフレーム情報を記憶した第2の記憶部と、
非高速転送のフレームに対する転送処理を行うと共に、非高速転送のフレームが高速転送のフレームへ変更が可能か否かを判定し、変更が可能な場合に、オフロード設定要求を発行するブリッジ処理部と、
オフロード設定要求が発行されたとき、高速転送のフレームへ変更されるフレームに適用するソフトウェアキューを動的に割り当てるオフロード設定処理部と
を有することを特徴とする転送処理装置。 In a transfer processing device that transfers a frame input from an input / output port to a destination input / output port,
A first storage unit storing frame information for high-speed transfer;
A frame buffer for buffering high-speed transfer frames;
A high-speed transfer processing unit that incorporates a plurality of software queues and performs high-speed transfer processing while storing the queued high-speed transfer frames in the frame buffer;
A second storage unit storing frame information for non-high-speed transfer;
Bridge processing unit that performs transfer processing for non-high-speed transfer frames, determines whether non-high-speed transfer frames can be changed to high-speed transfer frames, and issues an offload setting request if change is possible When,
An offload setting processing unit that dynamically assigns a software queue to be applied to a frame to be changed to a high-speed transfer frame when an offload setting request is issued.
上記オフロード設定処理部は、入出力ポートのリンク速度を検知し、その入出力ポートに係るソフトウェアキュー対応のシェーパのシェーピングレートを、検知したリンク速度に応じて設定することを特徴とする請求項1〜4のいずれかに記載の転送処理装置。 The high-speed transfer processing unit has a built-in shaper corresponding to each built-in software queue,
The offload setting processing unit detects a link speed of an input / output port, and sets a shaping rate of a shaper corresponding to a software queue related to the input / output port according to the detected link speed. The transfer processing device according to any one of 1 to 4.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2011252694A JP5817458B2 (en) | 2011-11-18 | 2011-11-18 | Transfer processing device |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2011252694A JP5817458B2 (en) | 2011-11-18 | 2011-11-18 | Transfer processing device |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2013110509A JP2013110509A (en) | 2013-06-06 |
| JP5817458B2 true JP5817458B2 (en) | 2015-11-18 |
Family
ID=48706891
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2011252694A Active JP5817458B2 (en) | 2011-11-18 | 2011-11-18 | Transfer processing device |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP5817458B2 (en) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2016035306A1 (en) * | 2014-09-01 | 2016-03-10 | 日本電気株式会社 | Control system, communication system, communication method, and recording medium |
| JP6396934B2 (en) * | 2016-02-15 | 2018-09-26 | 日本電信電話株式会社 | Packet processing system and packet processing method |
-
2011
- 2011-11-18 JP JP2011252694A patent/JP5817458B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| JP2013110509A (en) | 2013-06-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN113676361B (en) | On-demand probing for quality of experience metrics | |
| US7701849B1 (en) | Flow-based queuing of network traffic | |
| US10225204B2 (en) | Content based overload protection | |
| EP3393094A1 (en) | Method and device for allocating service traffic | |
| WO2017215392A1 (en) | Network congestion control method, device, and system | |
| US20210218831A1 (en) | TCP Packet Processing Method, Toe Component, and Network Device | |
| WO2020022209A1 (en) | Network control device and network control method | |
| CN106059821A (en) | Software-defined network (SDN)-based data center service quality assurance method | |
| CN111585896A (en) | A data forwarding method, device and readable storage medium | |
| WO2017025021A1 (en) | Method and device for processing flow table | |
| TWI721103B (en) | Cluster accurate speed limiting method and device | |
| CN111224888A (en) | Method for sending message and message forwarding device | |
| WO2011095017A1 (en) | Method and routing device for implementing load sharing | |
| WO2020088624A1 (en) | Traffic balancing method and device | |
| CN102413051B (en) | Method and device for scheduling quality of service (QOS) | |
| US8160105B2 (en) | Apparatus and method for processing IP packet fragmentation in routing system using network processor | |
| JP5817458B2 (en) | Transfer processing device | |
| CN109547352B (en) | Dynamic allocation method and device for message buffer queue | |
| US20060251071A1 (en) | Apparatus and method for IP packet processing using network processor | |
| US20060176893A1 (en) | Method of dynamic queue management for stable packet forwarding and network processor element therefor | |
| CN113691410B (en) | Network performance data acquisition method, device and server | |
| CN109792405B (en) | Method and apparatus for shared buffer allocation in a transmission node | |
| CN105634842A (en) | Method and system for detecting bandwidth, and devices | |
| JP2011087068A (en) | Communication equipment and congestion control method | |
| CN116248590A (en) | Data forwarding method, device, equipment and storage medium |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140815 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150410 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150414 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150615 |
|
| RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20150615 |
|
| 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: 20150901 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150914 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 5817458 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |