説明

転送処理装置

【課題】 ハードウェア構成を変更せずに、フレームのキューイングを動的に変更し得てバースト耐性を確保できる転送処理装置を提供する。
【解決手段】 送信元ポートからのフレームを宛先ポートへ転送する転送処理装置に関する。高速転送するフレームをバッファリングするフレームバッファと、複数のソフトウェアキューを内蔵し、キューイングされる高速転送のフレームをフレームバッファに格納させながら、高速転送処理する高速転送処理部とを有する。また、非高速転送のフレームに対する転送処理を行うと共に、非高速転送のフレームが高速転送のフレームへ変更が可能か否かを判定し、変更が可能な場合に、オフロード設定要求を発行するブリッジ処理部と、高速転送のフレームへ変更されるフレームに適用するソフトウェアキューを動的に割り当てるオフロード設定処理部とを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は転送処理装置に関し、例えば、複雑なフレーム処理や制御を行うアプリケーション用プロセッサと、フレームを高速にブリッジ転送するためのファストパス用プロセッサを有するものに適用し得るものである。
【背景技術】
【0002】
転送処理などを行う転送処理装置を有する通信装置において、リンク速度の速いポートからリンク速度の遅いポートヘフレーム転送する場合には、リンク速度の速いポートからのデータをシェーピングし、速度を調整する必要がある。シェーピングには、周知のように、バッファが利用される(特許文献1参照)。従来では、ハードウェア実装されたバッファ(例えば、内部スイッチに設けられているフレームバッファ)を利用し、フレームロスを抑制していた。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−205932号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、内部スイッチ内の入出力のタイミングを調整するバッファメモリをシェーピング用のフレームバッファとして用いているため、シェーピング機能から見た場合、そのバッファの容量は小さい。そのため、バースト耐性が低くなっていた。また、バッファ容量が少ないため、キューイングの観点を動的に変化させるようなことにも対応し難いものであった。
【0005】
一方、より大きなバースト耐性を達成でき、動的にキューイングできるようにするためには、バッファを大きくするなど、バッファ回りのハードウェア構成を変更しなければならないという課題があった。
【0006】
そのため、ハードウェア構成を変更することなく、フレームのキューイングを動的に変更し得て、バースト耐性を確保できる転送処理装置が望まれている。
【課題を解決するための手段】
【0007】
本発明は、入出力ポートから入力されたフレームを宛先の入出力ポートへ転送する転送処理装置において、(1)高速転送対象のフレーム情報を記憶した第1の記憶部と、(2)高速転送するフレームをバッファリングするフレームバッファと、(3)複数のソフトウェアキューを内蔵し、キューイングされる高速転送のフレームを上記フレームバッファに格納させながら、高速転送処理する高速転送処理部と、(4)非高速転送対象のフレーム情報を記憶した第2の記憶部と、(5)非高速転送のフレームに対する転送処理を行うと共に、非高速転送のフレームが高速転送のフレームへ変更が可能か否かを判定し、変更が可能な場合に、オフロード設定要求を発行するブリッジ処理部と、(6)オフロード設定要求が発行されたとき、高速転送のフレームへ変更されるフレームに適用するソフトウェアキューを動的に割り当てるオフロード設定処理部とを有することを特徴とする。
【発明の効果】
【0008】
本発明によれば、ハードウェア構成を変更することなく、フレームのキューイングを動的に変更し得て、バースト耐性を確保できる転送処理装置を実現できる。
【図面の簡単な説明】
【0009】
【図1】第1の実施形態の転送処理装置の構成を示すブロック図である。
【図2】第1の実施形態の転送処理装置における高速転送処理部がキューイングを制御するソフトウェアキューの説明図である。
【図3】第1の実施形態の転送処理装置におけるソフトウェアキューに対する優先度の設定例を示す説明図である。
【図4】第1の実施形態の転送処理装置における高速転送処理部及びブリッジ処理部が転送対象とするフレームの説明図である。
【図5】第1の実施形態の転送処理装置において、フレーム転送時にフレームの宛先ポートを自動的に判定し、ソフトウェアキューを割り当てる動作を示すシーケンス図である。
【図6】第1の実施形態の転送処理装置において、バースト耐性を具備したい方向と逆方向のフレーム転送時に、フレームの送信元ポートを自動的に判定し、ソフトウェアキューを割り当てる動作を示すシーケンス図である。
【図7】第1の実施形態の転送処理装置において、自動的にシェーパのシェーピング帯域(シェーピングレート)を設定する動作を示すシーケンス図である。
【図8】第2の実施形態の転送処理装置において、フレーム転送時にフレームの優先度を自動的に判定し、ソフトウェアキューを割り当てる動作を示すシーケンス図である。
【発明を実施するための形態】
【0010】
(A)第1の実施形態
以下、本発明による転送処理装置の第1の実施形態を、図面を参照しながら説明する。
【0011】
(A−1)第1の実施形態の構成
図1は、通信装置内に実装される第1の実施形態の転送処理装置1の構成を示すブロック図である。以下の構成説明では、後述する実施形態に関係する部分をも区別することなく説明している。
【0012】
ここで、通信装置は、例えば、有線通信機能に対応しているものであり、第1の実施形態の転送処理装置1に加え、受信部、送信部などを有している。通信装置は、例えば、VoIP(Voice over IP)ゲートウェイやホームゲートウェイなどである。
【0013】
第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用がそれぞれ別に接続されている。
【0014】
AP10上では、Linux(登録商標)のようなネットワークスタックを持つ汎用OS(Operating System)が動作しており、その上で、例えば、DHCP(Dynamic Host Confuguration Protocol)サーバ/クライアント、PPPoE(PPP over Ethernet)クライアント/サーバ、VoIPアプリケーション等のアプリケーションが動作する。
【0015】
FP20は、有線WANインタフェースや有線LANインタフェースから入ってきたフレームの高速転送を実現するものである。
【0016】
FP20は、高速転送処理部21、第1のアドレス記憶部22及び第1のフレームバッファ23を有する。ここで、高速転送処理部21はCPU2内の構成であり、CPU2内のプログラムメモリに記憶されているプログラムに従ってソフトウェア的に処理するものである。
【0017】
高速転送処理部21は、MACアドレスやIPアドレス等のパケットヘッダを検査することによって、高速転送(高速ブリッジ転送)の設定がなされているか否かを判定し、高速転送の設定がなされている場合には、そのフレームのヘッダを変換して、フレームの高速転送を行うものである。高速転送の設定がなされていないフレームを受信した場合には、高速転送処理部21は、そのフレームをAP10に転送する。高速転送処理部21は、高速転送の設定がなされているか否かの判定や、フレームヘッダの変換には、第1のアドレス記憶部22に保持された情報を利用する。
【0018】
また、高速転送処理部21は、フレームを転送する際、その転送フレームをどのソフトウェアキュー(Software queue)にキューイングするかを決定するのに、第1のアドレス記憶部22の後述するソフトウェアキュー番号の情報を利用する。このようなキューイング処理などを通じて、設定されたレートにシェーピングすることも可能である。
【0019】
図2は、高速転送処理部21がキューイングを制御するソフトウェアキューの説明図である。なお、フレームのデータ自体は、第1のフレームバッファ23に格納されるが、フレームの先入れ先出しを制御するためのフレーム特定情報だけをキューイングしたソフトウェアキューは高速転送処理部21内に設けられる。
【0020】
WANポート若しくはLANポートから入力され、内部スイッチ3を介して、高速転送処理部21に与えられたフレーム(の情報)は、目的側のWANポート若しくはLANポートに対応したソフトウェアキューSQ0〜SQNにキューイングされ、ソフトウェアキューSQ0〜SQNから出力されたフレームは、各ソフトウェアキューSQ0〜SQNにそれぞれ対応するシェーパ(Shaper)SH0〜SHNに与えられ、シェーパSH0〜SHNによって、送信帯域(レート)の設定値に応じて送信タイミングが制御され、シェーパSH0〜SHNから出力されたフレームは、内部スイッチ3を介して、目的側のWANポート若しくはLANポートに与えられる。
【0021】
ソフトウェアキューSQ0及びSQ1がシェーパSH0を共有しているように、複数のソフトウェアキュー(例えば優先度が異なるソフトウェアキュー)で1つのシェーパを共有することも可能である
また、各ソフトウェアキューSQ0〜SQNには優先度を設定することが可能で、設定された優先度に応じて、フレーム転送することが可能となる。
【0022】
図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に設定可能なものである。
【0023】
図3の5行目L5〜L8に示すように、同じLANポート#1宛てのフレームをキューイングするソフトウェアキューの番号は、「4」、「5」、「6」、「7」のように連番となっており、「最低優先」、「低優先」、「高優先」、「最高優先」の4段階の優先度を、「0」、「1」、「2」、「3」と数値化した場合、「低優先」、「高優先」、「最高優先」のフレームをキューイングするソフトウェアキューの番号「5」、「6」、「7」は、「最低優先」のフレームをキューイングするソフトウェアキューの番号「4」に優先度数値「1」、「2」、「3」を加算したものとなっている。後述する第2の実施形態では、このようなソフトウェアキューの番号の割り付けを利用している。
【0024】
図3に示すような設定が、高速転送処理部21に対して予めなされ、設定内容に応じて、高速転送処理部21がキューング処理やシェーピング処理を制御する。
【0025】
高速転送処理部21は、MACアドレスやIPアドレス等のパケットヘッダを検査することによって、高速転送の設定がなされているか否かを判定し、高速転送の設定がなされている場合には、そのフレームのヘッダを変換して、フレームの高速転送を行う。高速転送の設定がなされていないフレームを受信した場合には、高速転送処理部21は、そのフレームをAP10に転送する。
【0026】
第1のアドレス記憶部22は、FP20が高速転送処理すべきフレームの情報を保持しているものである。第1のアドレス記憶部22の記憶単位であるエントリは、[1]宛先MACアドレス、[2]送信元MACアドレス、[3]宛先IPアドレス、[4]送信元IPアドレス、[5]プロトコル、[6]宛先ポート、[7]送信元ポート、[8]イーサタイプ、[9]入力インタフェース、[10]出力インタフェース、[11]ソフトウェアキュー番号、[12]ハッシュ値などの項目を有する。
【0027】
プロトコルは、TCP、UDP等を規定している。イーサタイプは、IPv4なのか、IPv6なのか等を判定するためのものであり、この項目は、あってもなくても良い。入力インタフェースは、どのインタフェースから入ってきたものなのかを判定するために用いるものである。出力インタフェースは、どのインタフェースヘ転送すべきなのかを判定するために用いるものである。ソフトウェアキュー番号は、上述した[1]〜[10]の項目と一致するフレームをどのソフトウェアキュー番号のキューにキューイングするかを指定するものである。ハッシュ値は、第1のアドレス記憶部22で採用しているテーブルに対する検索速度を向上させるためものの値であり、テーブル内のエントリを一意に決めることができれば、上述した[1]〜[11]の全て又は一部の項目の値をハッシュ値の算出に使っても良い。ハッシュ値は、あってもなくても良いものである。
【0028】
以下、エントリの設定例を説明する。但し、以下では、項3]宛先IPアドレス、[4]送信元IPアドレス、[8]イーサタイプ、[9]入力インタフェース、[10]出力インタフェースについての設定内容のみ言及する。
【0029】
例えば、有線LAN端末Aと有線WAN端末Bが、当該転送処理装置1を有する通信装置に接続されており、IPv4のフレームを送受信するとする。この場合、下記のように双方向の2エントリが、第1のアドレス記憶部22に記述されることになる。
【0030】
[端末B→端末Aのエントリ]では、宛先IPアドレス=端末A、送信元IPアドレス=端末B、イーサタイプ=IPv4、入力インタフェース=WAN、出力インタフェース=LANが記述される。
【0031】
[端末A→端末Bのエントリ]では、宛先IPアドレス=端末B、送信元IPアドレス=端末A、イーサタイプ=IPv4、入力インタフェース=LAN、出力インタフェース=WANが記述される。
【0032】
また例えば、有線LAN端末Aと有線WAN端末Bが、当該転送処理装置1を有する通信装置に接続されており、IPv6のフレームを送受信するとする。この場合、下記のように双方向のそれぞれに、イーサタイプが異なる2エントリずつの計4エントリが、第1のアドレス記憶部22に記述されることになる。
【0033】
[端末B→端末Aの第1のエントリ]では、宛先IPアドレス=端末A、送信元IPアドレス=端末B、イーサタイプ=IPv4、入力インタフェース=WAN、出力インタフェース=LANが記述される。
【0034】
[端末A→端末Bの第1のエントリ]では、宛先IPアドレス=端末B、送信元IPアドレス=端末A、イーサタイプ=IPv4、入力インタフェース=LAN、出力インタフェース=WANが記述される。
【0035】
[端末B→端末Aの第2のエントリ]では、宛先IPアドレス=端末A、送信元IPアドレス=端末B、イーサタイプ=IPv6、入力インタフェース=WAN、出力インタフェース=LANが記述される。
【0036】
[端末A→端末Bの第2のエントリ]では、宛先IPアドレス=端末B、送信元IPアドレス=端末A、イーサタイプ=IPv6、入力インタフェース=LAN、出力インタフェース=WANが記述される。
【0037】
第1のフレームバッファ23は、高速転送処理部21がフレームを転送する際、一時的にフレームデータを保存するバッファである。ソフトウェアキューにキューイングされたフレームは、この第1のフレームバッファ23に保持される。ソフトウェアキューは、上述したように、フレームの優先度毎や、フレームの転送方向毎に複数持たせることが可能である。第1のフレームバッファ23としては、DRAM(Dynamic Random Acces Memory)を適用でき、動的な領域確保が可能なため、各ソフトウェアキューのサイズをコンフィグレーションすることが可能である。
【0038】
AP10は、ブリッジ処理部11、第2のアドレス記憶部12及びオフロード設定処理部13を有する。ここで、ブリッジ処理部11及びオフロード設定処理部13はCPU2内の構成であり、CPU2内のプログラムメモリに記憶されているプログラムに従ってソフトウェア的に処理するものである。
【0039】
ブリッジ処理部11は、例えば、Linuxカーネルのネットワークスタック内のブリッジ処理部が該当し、フレームの転送を行うものである。ブリッジ処理部11は、内蔵するMACテーブルリストを検索し、フレームの宛先MACと比較を行うことで出力先インタフェースの決定を行い、ブリッジ転送を行う。また、ブリッジ処理部11は、第2のアドレス記憶部12に保持されているエントリの各エージングタイマを監視し、一定の時間が経過した場合に、そのエントリを削除する機能を有する。
【0040】
図4は、高速転送処理部21及びブリッジ処理部11が転送対象とするフレームの説明図である。
【0041】
フレームは、いずれかの入出力ポートから入力され、高速転送処理部21で転送処理されて他の入出力ポートに出力される高速転送フレームと、いずれかの入出力ポートから入力され、高速転送処理部21を介してブリッジ処理部11に与えられ、ブリッジ処理部11で転送処理されて高速転送処理部21を介して他の入出力ポートに出力される例外フレームとがある。
【0042】
例外フレームは、(1)自装置発のフレーム若しくは自装置宛のフレーム、(2)FP20の高速転送に対応していない種類のパケット(ブロードキャストパケット、マルチキャストパケット、制御用パケットであるICMP(Internet Control Message Protocol)パケットなど)、(3)後述する高速転送の設定(オフロード設定)がされる前のフレーム、などである。この例外フレームは、HTTP(Hyper Text Transfer Protocol)サーバなどの様々なアプリケーションも動作することを想定しているAP10上で転送されるため、比較的低速な転送能力しかなく、フレーム転送処理そのものがそれらのアプリケーションの処理遅延を引き起こしたり、フレーム転送性能の低下/転送遅延を招く可能性がある。
【0043】
一方、高速転送フレームは、最小のAP負荷で、FP20による高速転送を実現することができる。そのため、後述のように、高速転送の設定(オフロード設定)を可能とし、例外フレームの一部を高速転送フレームに変換し得るようにしている。
【0044】
第2のアドレス記憶部12は、AP10のネットワークスタックが持っている各ストリーム情報を保持するテーブルである。テーブルのエントリは、[1]宛先MACアドレス、[2]送信元MACアドレス、[3]宛先IPアドレス、[4]送信元IPアドレス、[5]プロトコル、[6]宛先ポート、[7]送信元ポート、[8]イーサタイプ、[9]入力インタフェース、[10]出力インタフェース、[11]ソフトウェアキュー番号、[12]ハッシュ値などの項目を有する。
【0045】
オフロード設定処理部13は、ブリッジ処理部11からの要求を受け、ブリッジ転送しようとしているフレームが、FP20にオフロード設定が可能か否かを判定するものである。すなわち、オフロード設定処理部13は、ブリッジ処理部11が実行しようとする転送処理を、FP20側で実行して、ブリッジ処理部11の処理を軽減できるか否かを判定するものである。例えば、転送フレームが下記のフレームF1、F2の場合には、オフロード設定処理部13は、オフロード不可と判定する。
【0046】
F1:自装置発のフレーム若しくは自装置宛のフレーム
F2:FP20での高速転送に対応していない種類のパケット(ブロードキャストパケット、マルチキャストパケット、ICMPパケットなど)
オフロード設定処理部13は、オフロード設定可能と判定した場合には、FP20(正確には、第1のアドレス記憶部22)にオフロード設定を行う。オフロード設定処理部13は、オフロード設定不可能と判定した場合には何らの処理も実行しない。
【0047】
オフロード設定処理部13は、オフロードの重複設定を避けるため、第2のアドレス記憶部12の各エントリが既にFP20へオフロード設定されているかどうかも保持している。
【0048】
また、オフロード設定処理部13は、下記の(イ)及び(ロ)の判定処理を行い、その結果に応じ、第2のアドレス記憶部12への保存や、オフロード設定を行う。
【0049】
(イ)転送フレームが、どのポートヘ転送されるべきかを判定する。例えば、内部スイッチ3のMACアドレス記憶部32の情報と、その転送フレームの宛先MACアドレスを照合することで判定する。
【0050】
(ロ)転送フレームが、どの優先度かを判定する。例えば、フレームのヘッダ情報(CoS(Class of Service)値、DSCP値、IPアドレス、MACアドレス、ポート番号等)を照合することで判定する。
【0051】
さらに、オフロード設定処理部13は、各LANポート/WANポートがリンクアップした際、割り込みを受信することで、そのリンク速度を検知し、高速転送処理部21へ通知する機能を有する。こうすることで、FP20の高速転送処理部21が、各ポート宛のフレームをリンク速度にあわせてシェーピングすることが可能となる。高速転送処理部21は、例えば、リンク速度の範囲と、シェーピング帯域とを対応付けた変換テーブルを内蔵し、リンク速度に応じたシェーピング帯域を設定することができる。
【0052】
内部スイッチ3は、第2のフレームバッファ31とMACアドレス記憶部32とを有する。
【0053】
第2のフレームバッファ31は、内部スイッチ3がフレームを転送する際、一時的にフレームデータを保存するバッファである。FP20の第1のフレームバッファ23と比較すると、小容量であり、バッファサイズのコンフィグレーションを行うことができない。そのため、第1の実施形態では、転送フレームのキューイングにFP20の第1のフレームバッファ23を利用することとしている。
【0054】
MACアドレス記憶部32は、AP10内のブリッジ処理部11が有する下記のネイバー情報を保持するテーブルである。ネイバー情報は、例えば、[1]MACアドレス(受信フレームの送信元MACアドレス)、[2]LANポート/WANポートの番号(フレームを受信したLANポート/WANポートの番号;あるMACアドレスを持つ端末がどのポートに接続されているかを判定するのに使う)、[3]エージングタイマ(一定期間ごとにインクリメントされるタイマ値;一定時間経過後、この値が予め設定された閾値を越えると、このエントリはエージング(削除)される)、[4]スタティックフラグ(ユーザ等に静的に設定されたエントリか否かを示すフラグ;静的に設定されたエントリをフラグONとしエージング対象外とする)、[5]ハッシュ値(テーブル検索速度向上のために設けられたものであり、テーブル内のエントリを一意に決めることができれば、上記の項目のいくつかの値をハッシュ値算出に使うようにしても良い)などからなる。なお、スタティックフラグやハッシュ値はなくても良いものである。
【0055】
(A−2)第1の実施形態の動作
第1の実施形態の転送処理装置1は、ソフトウェアキューを適用していること、キューイングされているフレームのデータ自体は、FP20の第1のフレームバッファ23に格納することを1つの特徴としている。
【0056】
また、転送フレームをどのソフトウェアキューにどのように割り当てるかも特徴をなしており、シェーピングレートの設定も特徴をなしている。以下では、ソフトウェアキューへの割当て動作や、シェーピングレートの設定動作を順次説明する。
【0057】
ます、フレーム転送時にフレームの宛先ポートを自動的に判定し、自動的に各ソフトウェアキューにキューイングされるように割り当てる動作を、図5のシーケンス図を参照しながら説明する。なお、上述した図3では、優先度も割り当てる動作に影響するように記載しているが、優先度を利用した割当てについては、後述する第2の実施形態の動作の項で説明する。
【0058】
ブリッジ処理部11は、フレームの転送を検出すると(ステップ100)、そのフレームのヘッダ情報を含むオフロード設定要求を、オフロード設定処理部13に送出する(ステップ101)。
【0059】
このとき、オフロード設定処理部13は、ブリッジ転送しようとしているフレームが、オフロード設定が可能であることを確認した後、MACアドレス記憶部32の情報を得て(ステップ102)、その転送フレームの宛先MACアドレスを照合することで、宛先ポート番号を得、その結果、キューイングするソフトウェアキューの番号を取得する(ステップ103)。
【0060】
その後、オフロード設定処理部13は、上述した取得内容などに応じ、第2のアドレス記憶部12へエントリデータを保存させると共に(ステップ104)、高速転送処理部21へ高速転送対象としてのエントリ設定(オフロード設定)を行う(ステップ105)。高速転送処理部21は、これにより、第1のアドレス記憶部32に対して、当該フレームを高速転送対象とするエントリ追加を行う(ステップ106)。
【0061】
以上のようにして、フレーム転送時にフレームの宛先ポートを自動的に判定し、自動的に各ソフトウェアキューにキューイングされるように割り当てることができ、バースト耐性を確保することができる。
【0062】
次に、ソフトウェアキューヘの設定が行われていない状態で、突発的にフレームがバースト的に流れてくる場合に対応できるようにした割当て動作について説明する。上述の場合、まだ、FP20の高速転送処理部21に設定がなされていないため、低速なトラフィック転送しか行うことができないAP10のブリッジ処理部11でバースト状のフレームをロスしてしまう可能性がある。そのため、バースト耐性が必要なフレームとは逆方向のフレーム転送時に、予めソフトウェアキューの設定を行うことができるようにして、フレームが突発的かつバースト的に流れてくる場合に対応できるようにした。ここで、バースト耐性が必要なフレームとは、リンク速度の速いポートからリンク速度の遅いポートヘ流れるフレームである。
【0063】
以下では、バースト耐性を具備したい方向と逆方向のフレーム転送時に、フレームの送信元ポートを自動的に判定し、自動的に各ソフトウェアキューにキューイングされるように割り当てる動作を、図6のシーケンス図を参照しながら説明する。
【0064】
ブリッジ処理部11は、バースト耐性を具備したい方向と逆方向のフレームの転送を検出すると(ステップ150)、そのフレームのヘッダ情報を含む逆方向のオフロード設定要求を、オフロード設定処理部13に送出する(ステップ151)。
【0065】
このとき、オフロード設定処理部13は、ブリッジ転送しようとしているフレームが、オフロード設定が可能であることを確認した後、MACアドレス記憶部32の情報を得て(ステップ152)、その転送フレームの送信元MACアドレスを照合することで、逆方向についての宛先ポート番号を得、その結果、キューイングするソフトウェアキューの番号を取得する(ステップ153)。
【0066】
その後、オフロード設定処理部13は、上述した取得内容などに応じ、第2のアドレス記憶部12へ逆方向のエントリデータを保存させると共に(ステップ154)、高速転送処理部21へ逆方向の高速転送対象としてのエントリ設定(オフロード設定)を行う(ステップ155)。高速転送処理部21は、これにより、第1のアドレス記憶部32に対して、当該フレームと逆方向に流れるフレームを高速転送対象とするエントリ追加を行う(ステップ156)。
【0067】
次に、各LANポート/WANポートのリンクアップを検出した際、自動的に関連するシェーパのシェーピング帯域(シェーピングレート)を設定する動作を、図7のシーケンス図を参照しながら説明する。
【0068】
内部スイッチ3は、ある入出力ポートのリンクアップを検出すると(ステップ200)、オフロード設定処理部13へリンクアップ割り込み通知を送付する(ステップ201)。このとき、オフロード設定処理部13は、その入出力ポートのリンクアップを認識し、内部スイッチ3の通信速度に関するレジスタ値を読み込むことで(ステップ202)、その入出力ポートのリンク速度を取得する(ステップ203)。そして、オフロード設定処理部13は、取得したリンク速度から、FP20の高速転送処理部21のシェーパに設定するシェーピングレートを決定し(ステップ204)、高速転送処理部21のシェーパに設定させる。これにより、リンク速度に応じたフレーム高速転送を行うことができるようになる。
【0069】
(A−3)第1の実施形態の効果
以上のように、第1の実施形態によれば、従来ではハードウェア構成を変更することでしか対応できなかったバッファサイズを、ソフトウェアキューを用いて動的に確保することで、ハードウェア変更なしで、より大きなバースト耐性を有することができる。
【0070】
また、第1の実施形態によれば、ソフトウェアキューヘの設定が行われていない状態で、突発的にバースト状にフレームが流れてくる場合も、バースト耐性が必要なフレームとは逆方向のフレーム転送時に、予めソフトウェアキューの設定を行うようにしたので、フレームロスなしでバースト状のフレームを転送することができる。
【0071】
さらに、第1の実施形態によれば、オートネゴシエーションにより動的にリンク速度が変更された場合も、そのリンク速度の変更が各ソフトウェアキューに接続されたシェーパのシェーピングレートヘ動的に反映させるので、フレームロスなしでのバーストフレーム転送が可能となる。
【0072】
(B)第2の実施形態
次に、本発明による転送処理装置の第2の実施形態を、図面を参照しながら説明する。
【0073】
第2の実施形態の転送処理装置も、その構成は、第1の実施形態の説明で用いた図1で表すことができる。
【0074】
第2の実施形態の転送処理装置は、フレーム転送時にフレームの優先度を自動的に判定し、自動的に各ソフトウェアキューにキューイングされるように割り当てることで、バースト耐性を確保しつつ、自由な優先制御を行うことができるようにしたものである。
【0075】
以下では、フレーム転送時にフレームの優先度を自動的に判定し、自動的に各ソフトウェアキューにキューイングされるように割り当てる動作を、図8のシーケンス図を参照しながら説明する。
【0076】
ブリッジ処理部11は、フレームの転送を検出すると(ステップ250)、そのフレームのヘッダ情報を含むオフロード設定要求を、オフロード設定処理部13に送出する(ステップ251)。
【0077】
このとき、オフロード設定処理部13は、ブリッジ転送しようとしているフレームが、オフロード設定が可能であることを確認した後、MACアドレス記憶部32の情報を得て(ステップ252)、その転送フレームの宛先MACアドレスを照合することで、宛先ポート番号を得、その結果、ソフトウェアキューの番号を取得する(ステップ253)。
【0078】
その後、オフロード設定処理部13は、フレームのDSCP値から優先度を算出し、オフセットとして、ステップ253で取得したソフトウェアキューの番号に加算して、最終的に利用するソフトウェアキューの番号を得る(ステップ254)。例えば、ステップ253で得られたソフトウェアキューの番号が「4」で優先度が「3」であれば、最終的に利用するソフトウェアキューの番号として「7」(=4+3)を得る。
【0079】
そして、オフロード設定処理部13は、上述したようにして取得した内容などに応じ、第2のアドレス記憶部12へエントリデータを保存させると共に(ステップ255)、高速転送処理部21へ高速転送対象としてのエントリ設定(オフロード設定)を行う(ステップ256)。高速転送処理部21は、これにより、第1のアドレス記憶部32に対して、当該フレームを高速転送対象とするエントリ追加を行う(ステップ257)。
【0080】
以上のように、第2の実施形態によれば、従来ではハードウェア(内部スイッチ)で行っていたバースト耐性及び優先制御機能を、ソフトウェア上で具備することができる。
【0081】
(C)他の実施形態
上記各実施形態の説明においても、種々変形実施形態に言及したが、さらに、以下に例示するような変形実施形態を挙げることができる。
【0082】
上記各実施形態では、FP20の第1のフレームバッファ23にDRAMを適用したものを示したが、フレームを保持できる記憶媒体であれば、SRAM(Static RAM)等、他の記憶媒体であっても良い。
【0083】
上記各実施形態では、「内部スイッチ(内部SW)」を装置上に配置し、全LANポートは1本のCPUのインタフェースを経由して接続される構成を示したが、フレームがどのLANポート/WANポートで受信したのかを判定することができれば、各LANポート/WANポートが独立したインタフェース経由でCPUに接続するようにしても良い。
【0084】
上記各実施形態では、「AP」が1つの場合を示したが、2つ以上あっても良く、同様に、「FP」も1つに限定されず、2つ以上あっても良い。
【0085】
上記第2の実施形態では、フレームの宛先ポートと優先度との組み合わせで、適用するソフトウェアキューを決めるものを示したが、フレームの優先度だけで適用するソフトウェアキューを決めるようにしても良い。
【0086】
上記第2の実施形態では、フレームの宛先ポートに応じて、適用するソフトウェアキューを数個に絞った上で、フレームの優先度に応じて、最終的に適用する1つのソフトウェアキューを決定するものを示したが、逆に、フレームの優先度に応じて、適用するソフトウェアキューを数個に絞った上で、フレームの宛先ポートに応じて、最終的に適用する1つのソフトウェアキューを決定するようにしても良い。
【符号の説明】
【0087】
1…転送処理装置、2…CPU、3…内部スイッチ(内部SW)、10…アプリケーション用プロセッサ(AP)、11…ブリッジ処理部、12…第2のアドレス記憶部、13…オフロード設定処理部、20…ファストパス用プロセッサ(FP)、21…高速転送処理部、22…第1のアドレス記憶部、23…第1のフレームバッファ、31…第2のフレームバッファ、32…MACアドレス記憶部。

【特許請求の範囲】
【請求項1】
入出力ポートから入力されたフレームを宛先の入出力ポートへ転送する転送処理装置において、
高速転送対象のフレーム情報を記憶した第1の記憶部と、
高速転送するフレームをバッファリングするフレームバッファと、
複数のソフトウェアキューを内蔵し、キューイングされる高速転送のフレームを上記フレームバッファに格納させながら、高速転送処理する高速転送処理部と、
非高速転送対象のフレーム情報を記憶した第2の記憶部と、
非高速転送のフレームに対する転送処理を行うと共に、非高速転送のフレームが高速転送のフレームへ変更が可能か否かを判定し、変更が可能な場合に、オフロード設定要求を発行するブリッジ処理部と、
オフロード設定要求が発行されたとき、高速転送のフレームへ変更されるフレームに適用するソフトウェアキューを動的に割り当てるオフロード設定処理部と
を有することを特徴とする転送処理装置。
【請求項2】
上記オフロード設定処理部は、高速転送のフレームへ変更されるフレームの宛先の入出力ポートに応じて、適用するソフトウェアキューを割り当てることを特徴とする請求項1に記載の転送処理装置。
【請求項3】
上記オフロード設定処理部は、高速転送のフレームへ変更されるフレームの優先度に応じて、適用するソフトウェアキューを割り当てることを特徴とする請求項1又は2に記載の転送処理装置。
【請求項4】
上記オフロード設定処理部は、上記ブリッジ処理部からの要求により、バースト耐性が必要な方向に転送されるフレームとは逆方向のフレームの転送時に、バースト耐性が必要な方向に転送されるフレームに適用するソフトウェアキューを、少なくとも上記逆方向のフレームの送信元ポートに応じて割り当てることを特徴とする請求項1〜3のいずれかに記載の転送処理装置。
【請求項5】
上記高速転送処理部は、内蔵する各ソフトウェアキューに対応したシェーパを内蔵し、
上記オフロード設定処理部は、入出力ポートのリンク速度を検知し、その入出力ポートに係るソフトウェアキュー対応のシェーパのシェーピングレートを、検知したリンク速度に応じて設定することを特徴とする請求項1〜4のいずれかに記載の転送処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2013−110509(P2013−110509A)
【公開日】平成25年6月6日(2013.6.6)
【国際特許分類】
【出願番号】特願2011−252694(P2011−252694)
【出願日】平成23年11月18日(2011.11.18)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.ETHERNET
【出願人】(000000295)沖電気工業株式会社 (6,645)
【Fターム(参考)】