JP2002057698A - パケットデータ処理装置 - Google Patents

パケットデータ処理装置

Info

Publication number
JP2002057698A
JP2002057698A JP2000240829A JP2000240829A JP2002057698A JP 2002057698 A JP2002057698 A JP 2002057698A JP 2000240829 A JP2000240829 A JP 2000240829A JP 2000240829 A JP2000240829 A JP 2000240829A JP 2002057698 A JP2002057698 A JP 2002057698A
Authority
JP
Japan
Prior art keywords
packet
data
data processing
processing
packet data
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.)
Withdrawn
Application number
JP2000240829A
Other languages
English (en)
Inventor
Satoshi Soejima
聡史 副島
Yuji Kojima
祐治 小島
Yasuyuki Umezaki
康之 梅崎
Yoshitomo Shimozono
善知 下園
Tetsuaki Tsuruoka
哲明 鶴岡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2000240829A priority Critical patent/JP2002057698A/ja
Priority to US09/818,354 priority patent/US6654823B2/en
Publication of JP2002057698A publication Critical patent/JP2002057698A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling

Abstract

(57)【要約】 【課題】 速度が低下することなくパケットを処理する
ことのできるパケットデータ処理装置を提供する。 【解決手段】 入力されるパケットのパケットデータに
対して演算処理をするパケットデータ装置において、演
算処理回数に係わる演算情報を算出する第1データ処理
部と、メモリと、パケットデータに対して演算処理をし
て第1演算結果をメモリに書き込む第2データ処理部
と、読み出し要求に基づいてメモリに最も以前に書き込
まれた第1演算結果を読み出し、読み出した第1演算結
果をメモリから削除するアクセス機構部と、パケットが
入力されると読み出し要求を行い、第1演算結果及びパ
ケットに基づいて処理をする第3データ処理部と、最大
パケットが第3データ処理部に入力されたとき、このパ
ケットについてのメモリへの書き込みが終了しているよ
うに遅延させる遅延部とを具備して構成する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、パケットデータ処
理装置に関し、特に、可変長のパケットのパイプライン
演算処理による高速化に関する。
【0002】
【従来の技術】IP(Internet Protocol)ネットワーク
間の中継を行うネットワークノードでは、パケット内の
ヘッダ書き換え処理や装置内に具備する宛先テーブルを
検索しルーディングを行うといったようなパケット処理
を行っている。近年のインターネットの高速化に伴い、
パケットの中継を行うネットワークノードではパケット
処理を高速に行うことが必要となっている。そのため、
このようなネットワークノードでは、パケット処理を専
用のハードウェアで行うことによりパケット処理の高速
化を図っている。
【0003】従来のパケット処理にはストアアンドフォ
ワードによる構成がある。この構成では、パケット処理
部(プロセッサ又は専用ハードウェア)とメモリをバス
によって接続し、パケット処理部がパケット処理を行
う。具体的には、受信パケットを一時的にメモリへ格納
し、パケット処理部によってパケット処理を受信パケッ
トに対して行った後に、決定した宛先情報等の情報と共
にスイッチ・ファブリックへパケットを送信するといっ
た処理を行う。スイッチ・ファブリックによって宛先情
報から宛先テーブルが参照されて、宛先情報に該当する
出方路に送出される。
【0004】また、ネットワークノードがIP及びその
下位層のプロトコルを処理するにあたっては各プロトコ
ルヘッダ内のある情報を元に処理を行い、IPのデータ
部にある情報を必要とすることは殆どない。そこで、高
速処理のため、処理対象が各プロトコルのヘッダだけで
あるといった局所性に注目して固定の処理数で演算を行
うようなプロセッサ構成をもったパケットデータ処理プ
ロセッサも考えられる。このような処理系でパケットを
処理することは処理がIP層までしか及ばない等、パケ
ット処理に局所性があるときは高速に処理を行うことが
できる。
【0005】一方、ネットワークノードにおける処理の
多機能化の必要性が高まっており、そのような処理によ
ってはIP層より上位のプロトコルを処理しなければな
らない処理も存在する。例えば、インターネットなどの
共有ネットワークをプライベートなネットワークとして
利用者が共有ネットワークを意識しないで利用できるV
PN(Virtual Private Network)と呼ばれる技術が浸透
してきているが、このようなVPNの技術の中にはトン
ネリング処理を行うプロトコルがある。
【0006】トリンネリング処理とは、遠隔地にある2
つのプライベートなネットワーク間の通信をインターネ
ットなどの共有ネットワークを経由して使用する時に使
われる。具体的には、プライベートなネットワークから
送信されたパケットがVPN対応のネットワークノード
によって共有ネットワーク用のヘッダを付加され(カプ
セル化処理)、インターネットなどの共有ネットワーク
を使用して相手のVPN対応のネットワークノードまで
送信する。そして、そのパケットを受信するもう1つの
プライベートネットワークにあるVPN対応のネットワ
ークノードはカプセル化の時に付加されたヘッダを削除
し(デカプセル処理)、カプセル化される前のパケット
をもう1つのプライベートなネットワークに送信すると
いった動作を行う。
【0007】例えば、トンネリング処理の必要なプロト
コルであるL2TPでは、PPPパケットをL2TP、
UDP、IPの各ヘッダを付加・削除することによりト
ンネリング処理を行っている。そのため、L2TPのカ
プセル処理・デカプセル処理を行うVPN対応のネット
ワークノードではこれらのヘッダの付加・削除操作が行
われないといけない。
【0008】
【発明が解決しようとする課題】しかしながら、従来の
ストアアンドフォワードによるパケット処理では、パケ
ットデータを一時的に格納するメモリへの読み込み・書
き込み処理が必要なため、パケット処理の高速化が難し
いという問題点があった。パケット全体を一度メモリに
蓄積するストアアンドフォワード処理では、パケット全
体を処理対象とすることができるので、どのような処理
にも対応することができる。しかし、プロセッサはプロ
セッサが書き込むメモリのアドレスをメモリに与えてか
ら、メモリからデータを読み込み、同様にプロセッサは
プロセッサが書き込むメモリのアドトレスをメモリに与
えてから、メモリへ書き込むという処理を行うことにな
る。
【0009】このとき、プロセッサがアドレスをメモリ
へ与えてから、プロセッサがデータをメモリから読み込
み・書き込みを行う時間はプロセッサのサイクルタイム
よりも大きい。これは、プロセッサだけでなく専用のパ
ケット処理ハードウェアで実行しても同様である。この
メモリへの読み込み・書き込み処理のオーバヘッドが問
題となり、パケット処理を高速に行うことができなくな
る。
【0010】パケット処理の局所性に注目して処理を行
うパケットデータ処理方式では、IP層以下の処理を高
速に行うことができた。しかし、この処理方式では、パ
ケット処理プロセッサが繰り返し同じ命令を実行するこ
とが可能で繰り返し加算を行えたとしても、UDPのチ
ェックサム計算結果をヘッダに格納するのは困難であ
る。UDPのチェックサムの計算はUDPデータ部の値
の全てを使用するので計算終了までの回数がパケット長
に依存することになるからである。
【0011】故に、チェックサムの計算結果をUDPヘ
ッダに格納しようとした場合、チェックサム計算に要す
る時間がパケット長により異なるため、チェックサム計
算が終わったときのUDPチェックサムを格納すべきレ
ジスタはパケット毎に変わってしまい、それに対応する
ようなパケットデータ処理プロセッサ用の命令を記述す
ることは不可能である。
【0012】また、計算結果をパイプライン結合された
各パケット処理プロセッサが共通にアクセスすることの
できるレジスタに保存し、これを後段のパケット処理プ
ロセッサが取り出す方法を取ったとする。このレジスタ
の値を取り出すことのできるパケット処理プロセッサは
サポートしているパケットの中で最も長いパケットの処
理が終わったときにUDPヘッダのチェックサムを格納
するフィールドが存在する先頭のパケットデータ処理プ
ロセッサ以降である。しかし、このレジスタの値は次に
入ってくるパケットの処理結果が書き込まれるまでしか
存在できず、そのためパケットデータ処理プロセッサが
データを受け取ろうとした場合、上書きされた他のパケ
ットの計算結果をレジスタから受け取ってしまう可能性
がある。
【0013】従って、UDPチェックサムの計算結果が
必要なパケット処理をパケットデータプロセッサを用い
て行うときには、パケットデータ処理プロセッサの処理
が終了後に一般的なプロセッサにパケットを渡してソフ
トウェアににるUDPチェックサムの計算を行わなけれ
ばならない。このようにソフトウェアによるUDPチェ
ックサムの計算を行わざるを得ない処理はUDPのヘッ
ダのチェックサムに限らず、パケット長によって存在フ
ィールドが変動するようなデータを演算対象に指定した
いときは一般的なプロセッサによるソフトウェア処理で
対処するしかなかった。しかし、この方法では、パケッ
トデータ処理プロセッサで処理をした後、さらに一般的
なプロセッサで処理を行うためどうしても余計な時間が
かかってしまい、パケット処理を高速に行うことができ
なくなる。
【0014】本発明の目的は、速度が低下することなく
パケットを処理することのできるパケットデータ処理装
置を提供することである。
【0015】
【課題を解決するための手段】本発明の一側面によれ
ば、入力されるパケットのパケットデータに対して演算
処理をするパケットデータ装置であって、前記パケット
のパケット長に基づいて演算処理回数に係わる演算情報
を算出し、該演算情報を出力する第1データ処理部と、
メモリと、前記演算情報に従って順次入力される前記パ
ケットのパケットデータに対して演算処理をして、前記
パケットについてのパケットデータに対する演算が終了
すると第1演算結果を前記メモリに書き込む第2データ
処理部と、読み出し要求に基づいて前記メモリに最も以
前に書き込まれた演算結果を読み出し、読み出した第1
演算結果を前記メモリから削除するアクセス機構部と、
前記パケットが入力されると前記読み出し要求を行い、
前記アクセス機構部より読み出された第1演算結果及び
前記パケットに基づいて処理をする第3データ処理部
と、最大パケット長のパケットの所定位置のパケットデ
ータが前記第3データ処理部に入力されたとき、該パケ
ットについてのパケットデータに対する第1演算結果の
前記メモリへの書き込みが終了しているように前記パケ
ットの前記第3データ処理部への入力を遅延させる遅延
部とを具備する。そして、前記メモリは、前記第3デー
タ処理部にパケットの前記所定位置のパケットデータが
入力されたとき、該パケットに対する第1演算結果を保
持する容量を有することを特徴とするパケットデータ処
理装置が提供される。
【0016】好ましくは、前記遅延部は前記第2〜第4
データ処理部にそれぞれ対応して設けられたシフトレジ
スタが縦続されたシフトレジスタ群で構成され、前記各
第2〜4データ処理部は、それぞれ対応して設けられた
前記シフトレジスタに格納される前記パケットに基づい
て処理をする。更に好ましくは、前記シフトレジスタ群
と並列に配置され、前記パケットに係る中間データを格
納する第2シフトレジスタ群を具備して構成する。
【0017】
【発明の実施の形態】本発明の実施形態を説明する前に
本発明の原理を説明する。図1は本発明の原理図であ
る。図1に示すように、パケットデータ処理装置は、第
1データ処理部2、メモリ4、第2データ処理部6、ア
クセス機構部8、第3データ処理部10及び遅延部12
を具備する。
【0018】第1データ処理部2は、パケットのパケッ
ト長に基づいて演算処理回数に係わる演算情報を算出し
て、該演算情報を出力する。第2データ処理部6は、演
算情報に従って、順次入力されるパケットのパケットデ
ータに対して演算処理をする。そして、パケットについ
てのパケットデータに対する演算が終了すると第1演算
結果をメモリ4に書き込む。第3データ処理部10は、
パケットが入力されると、メモリ4からの読み出し要求
をアクセス機構部8に行う。
【0019】アクセス機構部8は、読み出し要求に従っ
て、メモリ4から最も以前に書き込まれた第1演算結果
を読み出して、読み出した第1演算結果を第3データ処
理部10に出力する。この第1演算結果が第3データ処
理部10に入力されたパケットに対するものであること
が必要とされるが、最も以前にメモリ4に書き込まれた
パケットが読み出されること、読み出されたパケットが
メモリ4から削除されること、パケットに対する第1演
算結果がメモリ4から読み出されるまでは上書きされな
いこと、遅延部12により最大パケット長のパケットが
第3データ処理部10に入力されたとき、該パケットに
ついてのパケットデータに対する第1演算結果のメモリ
4への書き込みが終了しているようにパケットの第3デ
ータ処理部10への入力を遅延させていることより、そ
のことが保証される。
【0020】第3データ処理部10は、アクセス機構部
8より読み出された第1演算結果及びパケットに基づい
て処理をする。このように可変長のパケットを演算対象
とするような場合において、パイプライン処理によりパ
ケットデータに対する演算処理を行うことができるの
で、高速にパケットを処理することができる。
【0021】第1実施形態 図2は本発明の第1実施形態によるL2TPプロトコル
を使用したVPNネットワークの構成及びパケットフォ
ーマットを示す図である。図2に示すように、VPNネ
ットワークは、リモートユーザ30、LAC(L2TP Acce
ss Concentrator)32、インターネット網34、LNS
(L2TP Network Server)36及プライベートネットワー
ク38を含む。リモートユーザ30は、IPデータにP
PPヘッダを付加(PPPカプセル化)して、LAC3
2との間でPPPセクションでパケットの送受信を行
う。
【0022】LAC32は、複数のリモートユーザ30
を収容し、以下の機能を有する。
【0023】(1) リモートユーザ30から送信された
PPPセクションのパケットを受信すると、L2TPヘ
ッダ、UDPヘッダ、IPヘッダ及びイーサネット(登
録商標)ヘッダを付加して(L2TPカプセル化)、I
Pヘッダに設定したIPアドレスに該当する出方路のイ
ンターネット網34に送信する。
【0024】(2) インターネット網34よりL2TP
カプセルパケットデータを受信すると、パケットデータ
に設定されている、IPアドレスが自装置のIPアドレ
スであるか否かをチェックする。
【0025】i) IPアドレスが自装置のアドレスであ
れば、イーサネットヘッダ、IPヘッダ、L2TPヘッ
ダ及びUDPヘッダを削除(L2TPデカプセル化)し
て、IPデータをそのIPアドレスに該当するリモート
ユーザ30に送信する。
【0026】ii) IPアドレスが自装置のアドレスで
なければ、IPアドレスに該当する出方路のインターネ
ット網34に中継する。
【0027】インターネット網34は、TCP/IPプ
ロトコルに従って、IPパケットを中継するネットワー
クである。LNS36は、複数のプライベートネットワ
ーク38を収容し、以下の機能を有する。
【0028】(1) プライベートネットワーク38に収
容される端末から送信されたパケット(IPデータにイ
ーサネットヘッダが付加されたパケット)を受信する
と、L2TPヘッダ、UDPヘッダ、IPヘッダ及びP
PPヘッダを付加して(L2TPカプセル化)、イーサ
ネットヘッダに設定されたMACアドレスに該当する出
方路のインターネット網34に送信する。
【0029】(2) インターネット網34よりパケット
データを受信すると、パケットデータに設定されている
IPアドレスが自装置のIPアドレスであるか否かをチ
ェックする。
【0030】i) IPアドレスが自装置のアドレスであ
れば、IPヘッダ、L2TPヘッダ、UDPヘッダ及び
PPPヘッダを削除(L2TPデカプセル化)して、送
信先アドレスに該当するプライベートネットワーク38
に送信する。
【0031】ii) IPアドレスが自装置のアドレスで
なければ、IPアドレスに該当する出方路のインターネ
ット網34にパケットを中継する。
【0032】本発明は、可変長データに対して、チェッ
クサム演算等の演算処理を実行する場合に適用可能であ
り、例えば、LAC32やLNS36における、L2T
Pカプセル化でのUDPヘッダに設定するチェックサム
の計算及びデカプセル化でのUDPヘッダに設定された
L2TPチェックサムの正当性チェックに適用可能であ
る。本実施形態では、LNS36のL2TPカプセル化
及びL2TPデカプセル化に適用した場合を例に説明す
る。
【0033】図3は図2中のLNS36の構成図であ
る。図3に示すように、LNS36は、複数の受信IF
部42#i(i=1〜n)、スイッチ・ファブリック5
0及び複数の送信IF部52#i(i=1〜n)を含
む。各受信IF部42#iは、伝送路よりパケットを受
信すると、L2TPカプセル化又はL2TPデカプセル
化をして、カプセル化又はデカプセル化したパケットを
ルーティング情報と共にスイッチ・ファブリック50に
送信する。
【0034】本実施形態では、受信IF部42#1がパ
ケットのカプセル化、受信IF部42#nがパケットの
デカプセル化を行う。その他の受信IF部42#i(i
=2〜(n−1))はL2TPカプセル化又はL2TP
デカプセル化を行う。受信IF部42#iは、受信イン
タフェース部44#i、前段処理部46#i及びパケッ
ト処理部48#iを含む。受信インタフェース部44#
iは、伝送路からパケットを所定の物理インタフェース
に従って受信して、装置内の物理インタフェースに従っ
た信号に変換して、前段処理部46#iに出力する。
【0035】図4はプライベートネットワーク38との
間で送受信するパケットフォーマットを示す図である。
受信インタフェース部44#1が受信するパケットは、
図4に示すように、IPデータにイサーネットヘッダが
付加されたものである。
【0036】図5はインターネット網34との間で送受
信するL2TPカプセル化したパケットフォーマットを
示す図である。受信インタフェース部44#nが受信す
るパケットは、図5に示すようにIPデータ及びイーサ
ネットヘッダにIPヘッダ、UDPヘッダ、L2TPヘ
ッダ及びPPPヘッダが付加されたものである。
【0037】前段処理部46#iは、図示しないクロッ
クに同期してパケットを受信すると、パケットの先頭を
示すフラグの生成、パケットのシリアル/パラレル変
換、例えば、32ビットパラレルデータに変換する。そ
して、フラグ及びシリアル/パラレル変換したパケット
をパケット処理部48#iに出力する。
【0038】図6は図3中のパケット処理部(L2TP
カプセル化部)48#1の構成図である。図6に示すよ
うに、L2TPカプセル化部48#1は、前段のパケッ
トデータ処理プロセッサ62#1j(j=1,…,
A)、抽出加算器64、中段のパケットデータ処理プロ
セッサ66#1j(j=1,…,C,B)、後段のパケ
ットデータ処理プロセッサ68#1j(j=1〜m)、
FIFO70及びアクセス機構部72を含む。前段のパ
ケットデータ処理プロセッサ62#1j(j=1,…,
A)、抽出加算器64、中段のパケットデータ処理プロ
セッサ66#1j(j=1,…,C,B)及び後段のパ
ケットデータ処理プロセッサ68#1j(j=1〜m)
は、バス63によりパイプライン構成されている。
【0039】図7は図6中のパケットデータ処理プロセ
ッサの構成図である。パケットデータ処理プロセッサ6
2#1j(j=1,…,A),66#1j(j=1,
…,C,B)及び68#1j(j=1〜m)は、概略同
一構成である。図7に示すように、パケットデータ処理
プロセッサ62#1j…は、パケットアクセスレジスタ
80、中間データレジスタ82、汎用レジスタ84及び
演算器86を有する。
【0040】パケットアクセスレジスタ80は図5に示
すL2TPカプセル化パケットを格納するシフトレジス
タ(p0〜p15)である。パケットアクセスレジスタ
80の段数は、例えば、最小パケット長のパケットが格
納できるものとしている。パケット長に関係なく最小パ
ケット長までの固定長パケットデータをパケットアクセ
スレジスタ80に格納して、パケットデータ処理プロセ
ッサ62#1j等が処理可能とするためである。最小パ
ケット長を64バイトとすると、パケットアクセスレジ
スタ80の32ビットレジスタの段数は16(=64÷
4)段となる。
【0041】中間データレジスタ82は、パケットデー
タ処理プロセッサ62#1j…で算出した中間データを
格納するシフトレジスタ(e0〜e15)であり、パケ
ットアクセスレジスタ80と同様の構成としている。パ
ケットアクセスレジスタ80により転送されるパケット
データと中間データレジスタ82により転送される中間
データとの同期を取るためである。汎用レジスタ84
は、演算器86が処理をするための汎用レジスタ(r0
〜r7)である。例えば、32ビット長の8個のレジス
タから成る。演算器86は、プログラムを実行すること
により処理をするプロセッサである。パケットアクセス
レジスタ80及び中間レジスタ82に格納されるパケッ
ト及び中間データは図示しない装置内クロックに同期し
てシフトされ、バス63により転送される。
【0042】前段のパケットデータ処理プロセッサ62
#1j(j=1,…,A)は、前段処理部46#1より
出力されるパケットからL2TPカプセル化を行うため
のパケットの生成及び抽出加算器64等が必要とする中
間データの生成等をするプロセッサである。そのプロセ
ッサの段数は後段の抽出加算器64等が必要とする中間
データの種類等により決定される。その機能には、例え
ば、以下のものがある。
【0043】(1) 図4に示すフォーマットのパケット
をクロックに同期して受信すると、パケットの送信先ア
ドレスよりL2TPカプセル化に必要なパケットである
か否かを判断する。L2TPカプセル化に必要なパケッ
トであるか否かは、例えば、プライベートネットワーク
38から受信したパケットの送信先IPアドレスが、テ
ーブルに登録されているL2TPカプセル化が必要なI
Pアドレスだった場合、カプセル化処理を行うものと判
断する。
【0044】i) L2TPカプセル化に必要なパケット
のとき a)L2TPカプセル化に必要なパケットであることを
示すフラグを中間データとして中間レジスタ82により
転送する。
【0045】b)PPPヘッダの付加、L2TPヘッダ
の付加、UDPヘッダの付加、IPヘッダの付加及びイ
ーサネットヘッダの付加をして、図5に示すフォーマッ
トのパケットを生成する。付加するIPヘッダ等に設定
する送信先アドレスは、図4に示すパケットのイーサネ
ットヘッダ又はIPヘッダに設定されているアドレスに
該当する端末を収容するLAC等のIPアドレス等であ
り、送信先の端末のアドレス及びその端末を収容するL
AC等のパケット中継装置のIPアドレスを図示しない
テーブルに予め登録しておき、このテーブルを検索する
ことによりアドレスを取得する。
【0046】また、UDPヘッダのチェックサムのフィ
ールドに0を補充する。パケットが処理単位バウンダリ
にならないときは、0を補充して処理単位バウンダリに
する。例えば、4バイトバウンダでなければ、パケット
の最後尾に0を補充して4バイトバウンダリにする。但
し、UDPヘッダのlengthフィールドは、バウン
ダリ調整を行う前のパケット長とする。0を補充するの
は、0を加算してもチェックサムの計算結果に影響が無
いので、このチェックサムフィールドの値も加算するこ
とができ、チェックサムフィールドを判断して加算対象
から除外する必要がなく、チェックサム演算が複雑にな
らないからである。
【0047】c)パケットの所定位置(例えば、UDP
ヘッダの先頭位置)を示すフラグを中間データとして中
間レジスタ82により転送する。
【0048】ii) L2TPカプセル化が不要なパケッ
トのとき a)L2TPカプセル化が不要なパケットであることを
示すフラグを中間データとして中間レジスタ82により
転送する。
【0049】b)図4に示すパケットの所定位置(例え
ば、イーサネットヘッダの先頭位置)を示すフラグを中
間データとして中間レジスタ82により転送する。尚、
このフラグが示すパケットの所定位置は、パケットデー
タ処理プロセッサ62#1j(j=1,…,A)、抽出
加算器64等により、それを参照して処理をする後段に
位置するパケットデータ処理プロセッサ66#1j等の
処理に合わせて、変更しても良い。
【0050】(2) L2TPカプセル化が必要なとき、
抽出加算器64がチェックサムの計算を行うための計算
回数を算出する。例えば、計算回数は以下の様にして求
める。UDPヘッダのlengthフィールドからUD
Pデータ長を得る。その値はUDPヘッダとUDPデー
タ部を合わせたパケットの長さをバイト単位で表したも
のである。UDPデータ長にIPヘッダ長とイーサネッ
トヘッダ長を加算した値を抽出加算器54の処理単位バ
イト数で乗算して、乗算結果に余りがあれば、乗算結果
に1加算する。例えば、処理単位バイト数を4バイトと
すると、UDPデータ長をレジスタに格納してから、2
ビット右にシフトさせて、キャリが生じたならばシフト
した結果に1加算する。尚、計算回数は、例えば、(U
DPヘッダのlengthフィールドの値÷4+1(余
りがある場合))等の他の値であっても良く、抽出加算
器64が累積演算できるものであれば良い。
【0051】中間レジスタ82に設定されるフラグによ
り、L2TPカプセル化に必要なパケットであるか否か
を判断して、図5に示すパケットを生成する処理(1)
は、例えば、先頭のパケットデータ処理プロセッサ62
#11が行う。抽出加算器64が必要とする計算回数の
算出処理(2)は、例えば、パケットデータ処理プロセッ
サ62#1Aが行って、抽出加算器用レジスタ(ARレ
ジスタ)に格納する。ARレジスタは、パケットデータ
処理プロセッサ62#1Aに特別に設けられたレジスタ
であり、抽出加算器64がよりアクセスが可能となって
いる。
【0052】図8は図6中の抽出加算器64の構成図で
ある。図8に示す抽出加算器64は、専用ハードウェア
の構成を示す図であり、レジスタ90、レジスタ92、
制御部94、カウンタ96、累積加算器97を有する。
レジスタ90は、クロックに同期して、L2TPカプセ
ル化の必要の有無を示すフラグ及びパケットの所定位置
を示すフラグ等の中間データを格納して、制御部94及
びバス63を通して次段のパケットデータ処理プロセッ
サ66#11に出力する32ビットレジスタである。レ
ジスタ92は、クロックに同期してパケットを格納し
て、加算器100及び次段のパケットデータ処理プロセ
ッサ66#11に接続されるバス63に出力する32ビ
ットレジスタである。ここでは、レジスタ90,92は
1段構成としている。抽出加算器64は、32ビットを
処理単位として、1の補数の累積演算するからである。
抽出加算器64は、図8の様に専用のハードウェアで実
現しても、プロセッサで実現してもよい。
【0053】図9は抽出加算器64の計算対象領域を示
す図である。チェックサムの計算対象領域は、UDPヘ
ッダの先頭からIPデータの最後までであるが、抽出加
算器64は4バイトを処理単位とするので、図9に示す
ように、計算対象は4バイトバウンダリの先頭領域、即
ち、UDPヘッダの先頭から2バイト目(イーサネット
ヘッダの先頭から9バウンダ目)からIPデータを含む
4バイトデータまでとしている。制御部94は、以下の
機能を有する。
【0054】(1) レジスタ90に格納されるL2TP
カプセル化の必要の有無を示すフラグを参照して、L2
TPカプセル化が必要であるか否かを判断する。L2T
Pカプセル化の必要があれば、以下の処理(2)〜(7)を行
う。L2TPカプセル化の必要が無ければ、当該パケッ
トに対する以下の処理(2)〜(7)をスキップする。
【0055】(2) パケットの先頭が入力されると、計
算回数をパケットデータ処理プロセッサ62#1AのA
Rレジスタより読み出して、カウンタ96に設定する。
【0056】(3) 図示しないクロックに同期して、カ
ウンタ96をデクリメントする。
【0057】(4) パケットの先頭が入力されてから抽
出加算器64の計算対象領域のデータが入力されるまで
は、加算結果格納レジスタ104をディセーブルにす
る。即ち、図9に示すように、パケットの先頭から9個
のデータが入力されている間は、加算結果格納レジスタ
104をディセーブルにする。
【0058】(5) 抽出加算器64の計算対象領域の先
頭データが入力されたとき、セレクタ98に”0”を選
択するよう指示する選択信号を出力すると共に加算結果
格納レジスタ104をイネーブルにする。即ち、図9に
示すように、パケットの先頭から10番目のデータが入
力されると、加算結果格納レジスタ104をイネーブル
にする。
【0059】(6) 抽出加算器64の計算対象領域の先
頭データ以降のデータが入力されると、セレクタ98に
加算結果格納レジスタ104の出力を選択するよう指示
する選択信号を生成する。
【0060】(7) 抽出加算器64の計算対象領域の最
後のデータが入力されたとき、即ち、カウンタ96が”
0”になると、FIFO70に書き込みアドレスを出力
すると共に書き込み制御信号をイネーブルにして、加算
器102の出力をFIFO70に書き込む。
【0061】カウンタ96は、レジスタ90,92と同
一の装置内クロックに同期して、デクリメントする。累
積加算器97は、セレクタ98、加算器100、加算器
102、加算結果格納レジスタ104を有する。加算器
100,102は、1の補数和を算出するための演算回
路である。加算器100は、レジスタ92から4バイト
単位で出力されるパケットデータとセレクタ98の出力
データを加算して、キャリ及び加算結果を加算器102
に出力する。加算器102は、加算器100の加算結果
とキャリを加算して、FIFO70及び加算結果格納レ
ジスタ104に出力する。加算結果格納レジスタ104
は、加算器102の加算結果を制御部94から出力され
るイネーブル信号に従って格納して、セレクタ98に出
力する。
【0062】中間段のパケットデータ処理プロセッサ6
6#1j(j=1〜C)は、パケットデータ処理プロセ
ッサ66#1Bが処理を行うための前処理等を行うプロ
セッサ群である。これらのパケットデータ処理プロセッ
サ66#1j(j=1〜C)は、パケットデータ処理プ
ロセッサ66#1Bのための前処理だけでなく、その他
の処理を行うことができる。パケットデータ処理プロセ
ッサ66#1Bにパケットの先頭が入力されたとき、パ
ケットデータ処理プロセッサ66#1Bがそのパケット
に対する加算結果をFIFO70より読み出すので、そ
のパケットに対する加算処理が抽出加算器64で終了
し、その累積加算結果がFIFO70に書き込まれてい
る必要がある。
【0063】サポートしているパケット(UDPヘッダ
長+UDPデータ長)の最大長が1518バイトとする
と、抽出加算器64が最大パケット長のパケットの演算
を終了するのは、1518÷4=380クロックかか
る。そのとき、パケットの先頭にあるのは抽出加算器6
4から380÷16(各パケットデータ処理プロセッサ
66#1jのパケットアクセスレジスタ80の段数)=
24個先のパケットデータ処理プロセッサ66#1j
(j=24)である。そのため抽出加算器64より25
個以上先のパケットデータ処理プロセッサでしかチェッ
クサム演算の結果を演算に用いることができない。
【0064】そこで、最も高速に処理可能とするべく、
抽出加算器64から25個先のパケットデータ処理プロ
セッサがチェックサム演算結果を使用するとし、このパ
ケットデータ処理プロセッサBを66#1Bとしてい
る。従って、中間段のパケットデータ処理プロセッサ6
6#1j(j=1〜C)の段数は24段である。
【0065】尚、上記議論より分かるように、380段
以上の4バイトシフトレジスタとパケットデータ処理プ
ロセッサ66#1Bのための前処理等のように必須の処
理を行うパケットデータ処理プロセッサがあれば良く、
必ずしも、24個以上の中段のパケットデータ処理プロ
セッサ66#1j(j=1…)が必要であるという訳で
はない。しかし、新たな処理が必要となったとき、中段
のパケットデータ処理プロセッサ66#1jが多いと使
用していないパケットデータ処理プロセッサ66#1j
に新たな処理を適宜割り当てることができるのでハード
ウェアを追加する必要が無いという利点がある。
【0066】中段のパケットデータ処理プロセッサ66
#1j(j=1…)は、パケットデータ処理プロセッサ
66#1Bでの処理のために以下の前処理を行う。
【0067】(1) 中間レジスタ82に格納されるL2
TPカプセル化の必要の有無を示すフラグを参照して、
L2TPカプセル化が必要であるか否かを判断する。L
2TPカプセル化が必要であれば、以下の処理(2),(3)
を行う。L2TPカプセル化が必要で無ければ、当該パ
ケットに対する以下の処理(2),(3)をスキップする。
【0068】(2) 入力されたパケットより擬似ヘッダ
に設定される各フィールドを抽出する。
【0069】図10は擬似ヘッダのフォーマットを示す
図である。図10に示すように、擬似ヘッダは、送信元
IPアドレス、宛先IPアドレス、UDP Lengt
h等である。送信元IPアドレス及び宛先IPアドレス
は、図5中のIPヘッダに設定されたものであり、送信
元IPアドレスは自装置のIPアドレス、宛先IPアド
レスは送信先の端末装置を収容するL2TPをサポート
するLNSやLAC等のパケット中継装置のアドレスで
ある。UDP Lengthは図5中のUDPヘッダに
設定される値である。
【0070】(3) 抽出加算器64で演算対象となって
いない、擬似ヘッダとUDPヘッダの最初の16ビット
のデータに対して、16ビット単位での1の補数和を求
めて、中間レジスタ82に格納する。
【0071】パケットデータ処理プロセッサ66#1B
は、以下の機能を有する。
【0072】(1) 中間レジスタ82に格納されるL2
TPカプセル化の必要の有無を示すフラグを参照して、
L2TPカプセル化が必要であるか否かを判断する。L
2TPカプセル化が必要であれば、以下の処理(2)〜(5)
を行う。L2TPカプセル化が必要で無ければ、当該パ
ケットに対する以下の処理(2)〜(5)をスキップする。
【0073】(2) フラグにより指示されるパケットの
先頭(例えば、UDPヘッダの先頭)が入力されると、
アクセス機構部72にFIFO70から値の読み出しを
要求する。
【0074】(3) FIFO70から得られた抽出加算
器64での演算結果の上位16ビットと下位16ビット
で16ビット単位で1の補数和を求める。
【0075】(4) 擬似ヘッダとUDPヘッダの先頭1
6ビットの1の補数和を中間レジスタ82から取り出
し、(3)で求まった結果との間で1の補数和を求める。
【0076】(5) (4)で求まった結果が最終的に求めよ
うとしていたUDPチェックサムなので、その値をパケ
ットのUDPヘッダのチェックサムフィールドに格納す
る。
【0077】後段のパケットデータ処理プロセッサ68
#1j(j=1〜m)は、パケットのルーティング情報
等を求めて、中間レジスタ82に格納等をする。FIF
O(First In First Out)70は、抽出加算器64での計
算結果を蓄積するためのメモリである。尚、FIFO7
0は、抽出加算器64での加算結果の書き込みとアクセ
ス機構部72からの読み出しが同時に行うことができる
ようにデュアルポートラムで構成する。上述したように
最大の先頭パケットデータが抽出加算器64から出力さ
れてからパケットデータ処理プロセッサ66#1Cに入
力されるまでに、380クロック要する。よって、この
380クロックの間に、64バイトの最小のパケット
は、380÷16=24個入力されるので、FIFO7
0は少なくとも24個の計算結果を格納するメモリ領域
が必要となる。アクセス機構部72は、パケットデータ
処理プロセッサ66#1Cから読み込み要求を受ける
と、FIFO70に最も以前に書き込まれた先頭の値を
送信し、その後FIFO70の中のデータの1つ前に詰
める。
【0078】図11は、図3中の受信IF部42#n中
のデカプセル化部48#nの構成図であり、図4中の構
成要素と実質的に同一の構成要素には同一の符号を附し
ている。デカプセル化部48#nは、以下の機能を有す
る。
【0079】(1) 入力されるパケットよりL2TPデ
カプセル化が必要であるか否かを判別して、L2TPデ
カプセル化が必要であるか否かを指示するフラグを中間
レジスタ82に送信する。例えば、IP網34から受信
したパケットの送信先IPアドレスが自装置のアドレス
であり、そのパケットの中身がL2TPパケットを含ん
でいた場合にL2TPデカプセル化必要有りと判断す
る。この判断の詳しい手順は、 1.送信先IPアドレスが自アドレスの時、IPヘッダ
内にある上位プロトコルを示すフィールドがUDPであ
るかどうか判定する。
【0080】2.UDPであった場合、UDPヘッダ内
にある宛先ポート番号がL2TPであるかどうかを判断
する。という判定を行う。
【0081】(2) 中間レジスタ82に格納されるL2
TPデカプセル化の必要の有無を示すフラグを参照し
て、L2TPデカプセル化が必要であるか否かを判断す
る。L2TPデカプセル化が必要であれば、以下の処理
(3)〜(7)を行う。L2TPデカプセル化が必要無けれ
ば、当該パケットに対する以下の処理(2)〜(6)をスキッ
プして、(7)の処理をする。
【0082】(3) インターネット網34より受信した
L2TPパケットのUDPヘッダ、UDPデータ及び擬
似ヘッダの1の補数和を算出する。
【0083】(4) (3)で算出した1の補数和がUDPチ
ェックサムフィールドに設定されていた値に等しいか否
かをチェックして、チェックサムフィールド値が正しい
か否かを判定する。
【0084】(5) チェックサムフィールド値が正しく
なければ、パケットを廃棄する。
【0085】(6) チェックサムフィールド値が正しけ
れば、パケットをデカプセル化する。
【0086】(7) ルーティング情報を生成する。
【0087】(3)については、カプセル化部48#1と
実質的に同様であり、抽出加算器64及びパケットデー
タ処理プロセッサ66#nj(j=1,…,C,B)が
行う。(3)の前処理として、前段のパケットデータ処理
プロセッサ62#nj(j=1,…,A)が、パケット
データ処理プロセッサ62#1Aの処理(計算回数の算
出処理)に加えて、パケットのUDPチェックサムフィ
ールド値を中間レジスタ82にセーブする処理とUDP
チェックサムフィールド値に’0’を補充する処理を行
う。
【0088】(4)については、パケットデータ処理プロ
セッサ66#nCが計算したチェックサムの計算結果を
UDPヘッダのチェックサムフィールドに書き込む代わ
りに、その計算結果と中間レジスタ82にセーブされた
チェックサムフィールド値を比較して、値が一致するか
否かを判断する。UDPヘッダのチェックサムが正しい
か否かを示すフラグを中間レジスタ82に書き込む。
(5),(6),(7)については、後段のパケットデータ処理プ
ロセッサ68#nj(j=1〜m)が行う。
【0089】図3中のスイッチ・ファブリック50は、
受信IF部42#i(i=1〜n)から入力されるルー
ティング情報を元に、L2TPカプセル化/デカプセル
化されたパケットの送信先アドレスに該当する出方路の
送信IF部52#i(i=1〜n)に出力する。送信I
F部52#i(i=1〜n)は、スイッチ・ファブリッ
ク50より入力されるパケットを物理インタフェースに
従って、送信インタフェース部54#iを通して、伝送
路に送信する。
【0090】尚、本実施形態では、UDPのチェックサ
ムの演算に係る処理を受信IF部42#i(i=1〜
n)で行う構成としたが、送信IF部52#i(i=1
〜n)で行うことも可能である。図2中のLAC32で
のPPPセクションからL2TPのカプセル化及びL2
TPからPPPセクションへのデカプセル化処理におい
ても、チェックサムの計算に係る図6及び図10の構成
と同様の構成とすることができる。更に、可変長のパケ
ットデータを演算対象する他のパケットデータ処理装置
においても適用可能である。
【0091】以下、図3のLNS36の動作説明をす
る。
【0092】(1) パケットのL2TPカプセル化 LNS36の受信インタフェース部44#1には、図2
中のプライベートネットワーク38より送信された図5
に示すフォーマットのパケットが入力される。受信イン
タフェース部44#1は、伝送路より物理インタフェー
スに従ってパケットを受信する。前処理部46#iは、
受信されたパケットをシリアル/パラレル変換、パケッ
トヘッダの検出等を行う。パケットはパケットアクセス
レジスタ80に出力し、パケットヘッダを示すフラグ等
は中間レジスタ82に出力する。
【0093】図12は、図6のタイムチャートである。
パケットデータ処理プロセッサ62#1Aよりも前段の
パケットデータ処理プロセッサ62#11は、例えば、
プライベートネットワーク38から受信したパケットの
送信先IPアドレスが、テーブルに登録されているL2
TPカプセル化が必要なIPアドレスだった場合、カプ
セル化処理を行うものと判断する。L2TPカプセル化
に必要なパケットであるか否かを示すフラグを中間レジ
スタ82に書き込む。L2TP処理が必要なパケットで
あれば、図5及び図12に示すように、PPPヘッダの
付加、UDPヘッダの付加、IPヘッダの付加といった
処理を行って、パケットアクセスレジスタ80に出力す
る。このとき付加されたUDPヘッダのチェックサムフ
ィールドは0で補充している。
【0094】パケットデータ処理プロセッサ62#1A
は、パケットの先頭が入力されると起動されて、プロセ
ッサ内の命令コードに従って演算を行っていく。最初の
命令手順においてパケットからUDPヘッダのleng
thフィールドからUDPデータ長を得る。その値はU
DPヘッダとUDPデータ部を合わせたパケットの長さ
をバイト単位で表したものである。このUDPデータ長
にイーサットヘッダ長及びIPヘッダ長を加えたパケッ
ト長を求める。次の命令手順でパケット長を4で割り
(2ビット右にシフトさせる)、さらに次の命令手順で
前の命令にキャリが生じたならばシフトした結果に1を
足す。この結果を図12中の(1)に示すように、加算器
用レジスタ(AR)に保存する。
【0095】抽出加算器64は、中間レジスタ82に書
き込まれるパケットの先頭を示すフラグによりパケット
の先頭が入力されたことが分かると以下の処理を実行す
る。パケットデータ処理プロセッサ62#1Aの加算器
用レジスタ(AR)から(加算回数+9)を得て、カウ
ンタ96にセットする。そして、パケットの入力後の9
クロックは制御部94がカウンタ96値を1減らす以外
は何も行わず、図9に示すように、UDPヘッダの16
ビット目が入力される10クロック目から加算を行う。
【0096】抽出加算器64は、32ビット単位での1
の補数和を求める。最初の加算は0と行い、その結果を
加算結果格納レジスタ104に格納する。以降の加算は
このレジスタ104の値と入力されるパケットの値とで
行う、結果を加算結果格納レジスタ104に格納してゆ
く。制御部94は、加算を行うたびにカウンタ96の値
を1減らしていき、カウンタ96の値が1になった後の
加算が最終的な加算結果なので、図12中の(2)に示す
ように、これをFIFO70の最後尾に書き込むよう制
御する。
【0097】中段のパケットデータ処理プロセッサ66
#1Cは、中間レジスタ82に書き込まれるパケットの
先頭を示すフラグによりパケットの先頭が入力されたこ
とが分かると以下の処理を実行する。図10に示す擬似
ヘッダに設定される各値及びUDPヘッダの最初の16
ビットのパケットデータをパケットアクセスレジスタ8
0より読み出す。そして、擬似ヘッダ及びUDPヘッダ
の最初の16ビットのデータに対しては、16ビット単
位で1の補数和を算出して、図12中の(3)に示すよう
に、中間レジスタ82に格納する。この結果はパケット
と同期して送信される。
【0098】パケットデータ処理プロセッサ66#1B
は、中間レジスタ82に書き込まれるパケットの先頭を
示すフラグによりパケットのUDPヘッダが入力された
ことが分かるとプロセッサ内の命令コードに従って演算
を行ってゆく。パケットデータ処理プロセッサ66#1
Bは最初の命令手順でFIFO70から値を取り出す命
令を実行する。このとき、FIFO70を制御するアク
セス機構部72はパケットデータ処理プロセッサ66#
1Bからの要求によりFIFO70の先頭の値を送信
し、その後FIFO70の中のデータを1つ前に詰め
る。
【0099】上述したように入力されたパケットに対す
る演算処理が抽出加算器64で終了してFIFO70に
書き込まれているので、FIFO70より読み出された
値が入力されたパケットに対するものである。パケット
データ処理プロセッサ66#1Bは次の命令手順でFI
FO70から得られた抽出加算器64での演算結果の上
位16ビットと下位16ビットで16ビット単位の1の
補数和を求める。
【0100】次の命令手順で、前段のパケットデータ処
理プロセッサ66#1Cで求まった、擬似ヘッダとUD
Pヘッダの先頭16ビットの1の補数和を中間レジスタ
82より取り出し、前の命令で求まった結果との間で1
の補数和を求める。以上の動作でUDPチェックサムに
必要なデータの16ビット単位での1の補数和を求めた
ことになる。そして、次の命令手順でこの値の1の補数
和を求め、これが最終的に求めようとしていたUDPチ
ェックサムなので、図12中の(4)に示すように、その
値をチェックサムフィールドに格納する。以上の手順で
UDPヘッダのチェックサムの計算を行い、UDPヘッ
ダに格納する処理をパイプライン処理することができ
る。
【0101】この後パケットは後段のパケットデータ処
理プロセッサ68#1j(j=1〜m)によりルーティ
ング情報が検出されてからスイッチ・ファブリック50
に渡される。スイッチ・ファブリック50は、パケット
をルーティング情報に従ってルーティングして、該当す
る送信IF部52#i、例えば、52#nに渡し、送信
インタフェース部54#nから伝送路に送信する。この
パケットは、インターネット網34を経由して、L2T
Pカプセル化されたパケットの送信先IPアドレスであ
るパケット中継装置まで中継される。L2TPサポート
のパケット中継装置で受信され、デカプセル化の後、端
末等に送信される。
【0102】(2) L2TPデカプセル化 LNS36の受信インタフェース部44#nには、図2
中のインターネット網34より送信された図5に示すフ
ォーマットのパケットが入力される。受信インタフェー
ス部44#nは、伝送路より物理インタフェースに従っ
てパケットを受信する。前処理部46#nは、受信され
たパケットをシリアル/パラレル変換、パケットヘッダ
の検出等を行う。パケットはパケットアクセスレジスタ
80に出力し、パケットヘッダを示すフラグ等は中間レ
ジスタ82に出力する。パケットデータ処理プロセッサ
62#n1は、パケットのUDPチェックサムフィール
ドの値を中間レジスタ82に保存してから、0クリアす
る。
【0103】パケットデータ処理プロセッサ62#n
A、抽出加算器64、パケットデータ処理プロセッサ6
6#nCの処理は、L2TPカプセル化処理と同様であ
る。パケットデータ処理プロセッサ66#nBは、パケ
ットデータ処理プロセッサ66#1Bと同様に処理をし
て、UDPチェックサムを算出する。UDPチェックサ
ムと中間レジスタ82に保存されたUDPチェックサム
フィールドの値が一致するか否かを判別する。一致しな
ければ、パケットを破棄する。一致すれば、パケット
は、後段のパケットデータ処理プロセッサ68#1j
(j=1〜m)により、PPPヘッダ削除、UDPヘッ
ダ削除、IPヘッダ削除が行われた後、ルーティング情
報が検出されてからスイッチ・ファブリック50に渡さ
れる。
【0104】スイッチ・ファブリック50は、パケット
をルーティング情報に従ってルーティングして、該当す
る送信IF部52#i、例えば、52#1に渡し、送信
インタフェース部54#1からプライベートネットワー
ク38に送信する。
【0105】以上説明したように、本実施形態によれ
ば、UDPチェックサムの計算のように演算対象が可変
長データとなる場合にもFIFOを設け、パイプライン
構成により処理することができるので、パケット処理が
高速になる。尚、上述の構成では、抽出加算器にデータ
を送ることのできるパケットデータ処理プロセッサから
FIFOの値を取り出すことのできるパケットデータ処
理プロセッサの間のパケットデータ処理プロセッサは2
4個で固定となるが、この数はFIFOに格納できる値
の数(段数)を多く取ることにより24個からFIFO
の段数まで取ることができる。そこで、FIFOの段数
が多い場合には装置の起動時などにパケットデータ処理
プロセッサの中からパケット処理プロセッサ62#iA
とパケットデータ処理プロセッサ66#iBを任意に設
定することができるような構成を取ることもできる。ま
た、上述の構成では、抽出加算器を使用していたが、抽
出加算器以外にも演算結果が求まる処理数がパケット長
に依存しているようなプロセッサを使用するような構成
を取ることもできる。
【0106】第2実施形態 図13は、本発明の第2実施形態によるL2TPプロト
コルを用いたVPNネットワークの構成及びパケットフ
ォーマットを示す図であり、図2中の構成要素と実質的
に同一の構成要素には同一の符号を附している。
【0107】図14は、図13中のLNS120の構成
図であり、図3中の構成要素と実質的に同一の構成要素
には同一の符号を附している。
【0108】図15は、図13中のL2TPカプセル化
部122#1の構成図であり、図6中の構成要素と実質
的に同一の構成要素には同一の符号を附している。図1
5に示すように、L2TPカプセル化部122#1は、
カプセルカブパケットデータ処理プロセッサ62#1j
(j=1,…,A)、抽出加算器64及びパケットデー
タ処理プロセッサ66#1j(j=1,…,C,B)を
パイプライン構成するのではなく、パケットデータ処理
プロセッサ62#1j(j=1,…,A)及びパケット
データ処理プロセッサ66#1j(j=1,…,C,
B)で構成されるパイプラインから抽出加算器64を別
パスとする。即ち、抽出加算器64は中段のパケットデ
ータ処理プロセッサ部66#1j(j=1,…C,
B),68#1j(j=1〜m)と並列に配置されてい
る。
【0109】図16は、図15中の抽出加算器64の構
成図であり、図8中の構成要素と実質的に同一の構成要
素には同一の符号を附している。図16に示すように、
パケットデータ処理プロセッサ62#1Aのパケットア
クセスレジスタの出力側と抽出加算器64のレジスタ9
0,92の入力側とをバス130により接続するが、レ
ジスタ90,92の出力側とパケットデータ処理プロセ
ッサ66#11のパケットアクセスレジスタの入力側を
接続していない。
【0110】このように、パケットデータ処理プロセッ
サ62#1j(j=1,…,A),66#1j(j=
1,…,C,B),68#1j(j=1〜m)からなる
パイプラインプロセッサのデータパスから抽出加算器6
4を別パスとすることにより、バス130を別に設ける
必要があるというデメリットがあるが、抽出加算器64
のレジスタ92でのパケットの遅延が無くなり、パケッ
ト処理が高速になること、同種のパケットデータ処理プ
ロセッサのみによりパイプライン構成にすることにより
製造が容易になることのメリットがある。中段のパケッ
トデータ処理プロセッサ66#1j(j=1,…,C)
の個数は、レジスタ92が1段構成なので、第1実施形
態と変更なく、24個となる。L2TPカプセル化部1
22#1の動作は、L2TPカプセル化部48#1の動
作と同様である。
【0111】図17は、図14中のL2TPデカプセル
化部122#nの構成図であり、図11中の構成要素と
実質的に同一の構成要素には同一の符号を附している。
図17に示すように、L2TPデカプセル化部122#
nは、パケットデータ処理プロセッサ62#nj(j=
1,…,A)、抽出加算器64及びパケットデータ処理
プロセッサ66#nj(j=1,…,C,B)をパイプ
ライン構成するのではなく、パケットデータ処理プロセ
ッサ62#nj(j=1,…,A)及びパケットデータ
処理プロセッサ66#nj(j=1,…,C,B)で構
成されるパイプラインから抽出加算器64を別パスとす
る。即ち、抽出加算器64は中段のパケットデータ処理
プロセッサ部66#nj(j=1,…C,B),68#
nj(j=1〜m)と並列に配置されている。かかる構
成とした趣旨は、L2TPカプセル化部122#1と同
様である。以上説明したように、第2実施形態によれ
ば、第1実施形態と同様の効果がある。
【0112】
【発明の効果】以上説明したように本発明によれば、複
数のデータ処理部と並列にメモリを設置する手法をとる
ことによってパケットデータ処理方式の特徴であるパケ
ットの高速化を損なうことなく、UDPやTCPヘッダ
のチェックサムの演算のように、パケットによって取り
出すタイミングの異なるデータを取り出して、後段のデ
ータ処理部で使用することが可能となる。
【図面の簡単な説明】
【図1】本発明の原理図である。
【図2】本発明の第1実施形態によるVPNネットワー
ク構成図である。
【図3】図2中のLNSの構成図である。
【図4】プライベートネットワークの構成図である。
【図5】L2TPカプセル化パケットを示す図である。
【図6】図3中のL2TPカプセル化部の構成図であ
る。
【図7】図6中のパケットデータ処理プロセッサの構成
図である。
【図8】図6中の抽出加算器の構成図である。
【図9】抽出加算器の計算対象領域を示す図である。
【図10】擬似ヘッダを示す図である。
【図11】図3中のL2TPデカプセル化部の構成図で
ある。
【図12】図6のタイムチャートである。
【図13】本発明の第2実施形態によるVPNネットワ
ーク構成図である。
【図14】図13中のLNSの構成図である。
【図15】図14中のL2TPカプセル化部の構成図で
ある。
【図16】図15中の抽出加算器の構成図である。
【図17】図14中のL2TPデカプセル化部の構成図
である。
【符号の説明】
2 第1データ処理部 4 メモリ 6 第2データ処理部 8 アクセス機構部 10 第3データ処理部 12 遅延部
───────────────────────────────────────────────────── フロントページの続き (72)発明者 梅崎 康之 福岡県福岡市博多区博多駅前三丁目22番8 号 富士通九州ディジタル・テクノロジ株 式会社内 (72)発明者 下園 善知 福岡県福岡市博多区博多駅前三丁目22番8 号 富士通九州ディジタル・テクノロジ株 式会社内 (72)発明者 鶴岡 哲明 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 Fターム(参考) 5K030 GA03 HA08 HC01 JA05 KA03 KA13 KX13 LC01 MA13

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 入力されるパケットのパケットデータに
    対して演算処理をするパケットデータ装置であって、 前記パケットのパケット長に基づいて演算処理回数に係
    わる演算情報を算出し、該演算情報を出力する第1デー
    タ処理部と、 メモリと、 前記演算情報に従って、順次入力される前記パケットの
    パケットデータに対して演算処理をして、前記パケット
    についてのパケットデータに対する演算が終了すると第
    1演算結果を前記メモリに書き込む第2データ処理部
    と、 読み出し要求に基づいて前記メモリに最も以前に書き込
    まれた第1演算結果を読み出し、読み出した第1演算結
    果を前記メモリから削除するアクセス機構部と、 前記パケットの所定位置のパケットデータが入力される
    と前記読み出し要求を行い、前記アクセス機構部より読
    み出された第1演算結果及び前記パケットに基づいて処
    理をする第3データ処理部と、 最大パケット長のパケットの前記所定位置のパケットデ
    ータが前記第3データ処理部に入力されたとき、該パケ
    ットについてのパケットデータに対する第1演算結果の
    前記メモリへの書き込みが終了しているように、前記パ
    ケットの前記第3データ処理部への入力を遅延させる遅
    延部とを具備し、 前記メモリは、前記第3データ処理部にパケットが入力
    されたとき、該パケットに対する第1演算結果を保持す
    る容量を有することを特徴とするパケットデータ処理装
    置。
  2. 【請求項2】 前記パケットの固定長のフィールドに設
    定されたパケットデータに基づいて演算処理をして、第
    2演算結果を算出する第4データ処理部を更に具備し、
    前記第3データ処理部は、前記第1演算結果、前記第2
    演算結果及び前記パケットに基づいて処理をすることを
    特徴とする請求項1記載のパケットデータ処理装置。
  3. 【請求項3】 前記遅延部は前記第2〜第4データ処理
    部にそれぞれ対応して設けられたシフトレジスタが縦続
    されたシフトレジスタ群で構成され、前記各第2〜4デ
    ータ処理部は、それぞれ対応して設けられた前記シフト
    レジスタに格納される前記パケットに基づいて処理をす
    ることを特徴とする請求項2記載のパケットデータ処理
    装置。
  4. 【請求項4】 前記遅延部は前記第3〜第4データ処理
    部にそれぞれ対応して設けられたシフトレジスタが縦続
    されたシフトレジスタ群で構成され、前記第2データ処
    理部は前記シフトレジスタ群と並列に配置され、前記第
    3〜第4データ処理部は、それぞれ対応して設けられた
    前記シフトレジスタに格納される前記パケットに基づい
    て処理をすることを特徴とする請求項2記載のパケット
    データ処理装置。
  5. 【請求項5】 前記シフトレジスタ群と並列に配置さ
    れ、前記パケットに係る中間データを格納する第2シフ
    トレジスタ群を更に具備したことを特徴とする請求項3
    記載のパケットデータ処理装置。
JP2000240829A 2000-08-09 2000-08-09 パケットデータ処理装置 Withdrawn JP2002057698A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2000240829A JP2002057698A (ja) 2000-08-09 2000-08-09 パケットデータ処理装置
US09/818,354 US6654823B2 (en) 2000-08-09 2001-03-27 Packet-data processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000240829A JP2002057698A (ja) 2000-08-09 2000-08-09 パケットデータ処理装置

Publications (1)

Publication Number Publication Date
JP2002057698A true JP2002057698A (ja) 2002-02-22

Family

ID=18732121

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000240829A Withdrawn JP2002057698A (ja) 2000-08-09 2000-08-09 パケットデータ処理装置

Country Status (2)

Country Link
US (1) US6654823B2 (ja)
JP (1) JP2002057698A (ja)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE457489T1 (de) * 2000-09-15 2010-02-15 Nxp Bv Signalverarbeitungsanlage
US6968334B2 (en) * 2001-05-15 2005-11-22 Nokia Corporation Method and business process to maintain privacy in distributed recommendation systems
US6816890B2 (en) * 2001-05-28 2004-11-09 Hitachi, Ltd. Gateway apparatus with LAC function
US20030061269A1 (en) * 2001-09-17 2003-03-27 Flow Engines, Inc. Data flow engine
US7209476B1 (en) * 2001-10-12 2007-04-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and apparatus for input/output port mirroring for networking system bring-up and debug
US6744753B2 (en) * 2001-11-01 2004-06-01 Nokia Corporation Local service handover
US7555287B1 (en) 2001-11-01 2009-06-30 Nokia Corporation Customized messaging between wireless access point and services
US7151764B1 (en) 2001-11-01 2006-12-19 Nokia Corporation Service notification on a low bluetooth layer
US7340214B1 (en) * 2002-02-13 2008-03-04 Nokia Corporation Short-range wireless system and method for multimedia tags
US7102640B1 (en) * 2002-03-21 2006-09-05 Nokia Corporation Service/device indication with graphical interface
US7158520B1 (en) * 2002-03-22 2007-01-02 Juniper Networks, Inc. Mailbox registers for synchronizing header processing execution
US7236501B1 (en) 2002-03-22 2007-06-26 Juniper Networks, Inc. Systems and methods for handling packet fragmentation
US7215662B1 (en) * 2002-03-22 2007-05-08 Juniper Networks, Inc. Logical separation and accessing of descriptor memories
US7212530B1 (en) 2002-03-22 2007-05-01 Juniper Networks, Inc. Optimized buffer loading for packet header processing
US7239630B1 (en) 2002-03-22 2007-07-03 Juniper Networks, Inc. Dedicated processing resources for packet header generation
US7283528B1 (en) * 2002-03-22 2007-10-16 Raymond Marcelino Manese Lim On the fly header checksum processing using dedicated logic
US7103313B2 (en) * 2002-06-05 2006-09-05 Nokia Corporation Automatic determination of access point content and services for short-range wireless terminals
US7020836B2 (en) * 2002-07-30 2006-03-28 Intel Corporation One's complement pipelined checksum
US7401134B2 (en) * 2002-07-31 2008-07-15 Thomson Licensing Packet processing architecture
US7571258B2 (en) * 2002-12-12 2009-08-04 Adaptec, Inc. Method and apparatus for a pipeline architecture
US7429245B2 (en) * 2003-07-14 2008-09-30 Welch Allyn, Inc. Motion management in a fast blood pressure measurement device
US7459790B2 (en) * 2003-10-15 2008-12-02 Megica Corporation Post passivation interconnection schemes on top of the IC chips
US7903555B2 (en) * 2003-12-17 2011-03-08 Intel Corporation Packet tracing
US20050136837A1 (en) * 2003-12-22 2005-06-23 Nurminen Jukka K. Method and system for detecting and using context in wireless networks
US20060075075A1 (en) * 2004-10-01 2006-04-06 Malinen Jouni I Method and system to contextually initiate synchronization services on mobile terminals in an enterprise environment
US8326775B2 (en) 2005-10-26 2012-12-04 Cortica Ltd. Signature generation for multimedia deep-content-classification by a large-scale matching system and method thereof
US11361014B2 (en) 2005-10-26 2022-06-14 Cortica Ltd. System and method for completing a user profile
US10698939B2 (en) 2005-10-26 2020-06-30 Cortica Ltd System and method for customizing images
US10848590B2 (en) 2005-10-26 2020-11-24 Cortica Ltd System and method for determining a contextual insight and providing recommendations based thereon
US10621988B2 (en) 2005-10-26 2020-04-14 Cortica Ltd System and method for speech to text translation using cores of a natural liquid architecture system
US11386139B2 (en) 2005-10-26 2022-07-12 Cortica Ltd. System and method for generating analytics for entities depicted in multimedia content
US11019161B2 (en) 2005-10-26 2021-05-25 Cortica, Ltd. System and method for profiling users interest based on multimedia content analysis
US11003706B2 (en) 2005-10-26 2021-05-11 Cortica Ltd System and methods for determining access permissions on personalized clusters of multimedia content elements
US9646005B2 (en) 2005-10-26 2017-05-09 Cortica, Ltd. System and method for creating a database of multimedia content elements assigned to users
US10607355B2 (en) 2005-10-26 2020-03-31 Cortica, Ltd. Method and system for determining the dimensions of an object shown in a multimedia content item
US10635640B2 (en) 2005-10-26 2020-04-28 Cortica, Ltd. System and method for enriching a concept database
US10742340B2 (en) 2005-10-26 2020-08-11 Cortica Ltd. System and method for identifying the context of multimedia content elements displayed in a web-page and providing contextual filters respective thereto
US11216498B2 (en) 2005-10-26 2022-01-04 Cortica, Ltd. System and method for generating signatures to three-dimensional multimedia data elements
US11620327B2 (en) 2005-10-26 2023-04-04 Cortica Ltd System and method for determining a contextual insight and generating an interface with recommendations based thereon
US8818916B2 (en) 2005-10-26 2014-08-26 Cortica, Ltd. System and method for linking multimedia data elements to web pages
US10949773B2 (en) 2005-10-26 2021-03-16 Cortica, Ltd. System and methods thereof for recommending tags for multimedia content elements based on context
US11604847B2 (en) 2005-10-26 2023-03-14 Cortica Ltd. System and method for overlaying content on a multimedia content element based on user interest
US20160321253A1 (en) 2005-10-26 2016-11-03 Cortica, Ltd. System and method for providing recommendations based on user profiles
US10776585B2 (en) 2005-10-26 2020-09-15 Cortica, Ltd. System and method for recognizing characters in multimedia content
US7657526B2 (en) 2006-03-06 2010-02-02 Veveo, Inc. Methods and systems for selecting and presenting content based on activity level spikes associated with the content
US8316394B2 (en) 2006-03-24 2012-11-20 United Video Properties, Inc. Interactive media guidance application with intelligent navigation and display features
JP4509068B2 (ja) * 2006-07-24 2010-07-21 富士通株式会社 パケット処理装置
JP4893154B2 (ja) * 2006-08-21 2012-03-07 富士通セミコンダクター株式会社 画像処理装置及び画像処理方法
US9736524B2 (en) 2011-01-06 2017-08-15 Veveo, Inc. Methods of and systems for content search based on environment sampling
US8683307B2 (en) 2011-05-27 2014-03-25 International Business Machines Corporation Checksum calculation, prediction and validation
US8775685B1 (en) * 2011-10-13 2014-07-08 Xilinx, Inc. Parallel processing of network packets
US11037015B2 (en) 2015-12-15 2021-06-15 Cortica Ltd. Identification of key points in multimedia data elements
US11195043B2 (en) 2015-12-15 2021-12-07 Cortica, Ltd. System and method for determining common patterns in multimedia content elements based on key points
US11700356B2 (en) 2018-10-26 2023-07-11 AutoBrains Technologies Ltd. Control transfer of a vehicle
US10748038B1 (en) 2019-03-31 2020-08-18 Cortica Ltd. Efficient calculation of a robust signature of a media unit
US11704292B2 (en) 2019-09-26 2023-07-18 Cortica Ltd. System and method for enriching a concept database
CN114169878B (zh) * 2021-10-18 2022-09-20 中标慧安信息技术股份有限公司 基于边缘计算的预付费管理方法和系统

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4480307A (en) * 1982-01-04 1984-10-30 Intel Corporation Interface for use between a memory and components of a module switching apparatus
US5369775A (en) * 1988-12-20 1994-11-29 Mitsubishi Denki Kabushiki Kaisha Data-flow processing system having an input packet limiting section for preventing packet input based upon a threshold value indicative of an optimum pipeline processing capacity
US5623605A (en) * 1994-08-29 1997-04-22 Lucent Technologies Inc. Methods and systems for interprocess communication and inter-network data transfer
US5844918A (en) * 1995-11-28 1998-12-01 Sanyo Electric Co., Ltd. Digital transmission/receiving method, digital communications method, and data receiving apparatus
JP2953410B2 (ja) 1996-10-31 1999-09-27 日本電気株式会社 並列型誤り検出回路
US6452920B1 (en) * 1998-12-30 2002-09-17 Telefonaktiebolaget Lm Ericsson Mobile terminating L2TP using mobile IP data
US6654808B1 (en) * 1999-04-02 2003-11-25 Lucent Technologies Inc. Proving quality of service in layer two tunneling protocol networks
KR100699470B1 (ko) * 2000-09-27 2007-03-26 삼성전자주식회사 멀티레이어 패킷 처리 장치

Also Published As

Publication number Publication date
US20020019882A1 (en) 2002-02-14
US6654823B2 (en) 2003-11-25

Similar Documents

Publication Publication Date Title
JP2002057698A (ja) パケットデータ処理装置
US7283528B1 (en) On the fly header checksum processing using dedicated logic
US7616562B1 (en) Systems and methods for handling packet fragmentation
US8085780B1 (en) Optimized buffer loading for packet header processing
JP4203979B2 (ja) パケット処理装置
US7782857B2 (en) Logical separation and accessing of descriptor memories
JPH10171736A (ja) プリフェッチ装置及びプリフェッチ・アクセスの方法
JP3761980B2 (ja) 加法によるデータパッキングのための装置及びその方法
US20220360647A1 (en) Flexible header alteration in network devices
US7239630B1 (en) Dedicated processing resources for packet header generation
JPH11341076A (ja) ネットワ―ク中継装置及びネットワ―ク次転送先検索方法
JP4342128B2 (ja) パケット処理プロセッサ及びパケット処理プロセッサシステム
US7158520B1 (en) Mailbox registers for synchronizing header processing execution
JP3742250B2 (ja) パケットデータ処理装置及びそれを用いたパケット中継装置
JP4342100B2 (ja) パケット処理装置
US7180893B1 (en) Parallel layer 2 and layer 3 processing components in a network router
JP2002538522A (ja) 直接メモリアクセスを円滑にするための方法および装置
JP2002247095A (ja) パケットデータ処理装置
JP4850918B2 (ja) 高速フレーミング方法およびフレーミング性能を有する装置
JP2953362B2 (ja) Lanのスイッチング装置
JPS5998261A (ja) 情報処理装置
CN115296956A (zh) 一种内核的隧道转发方法、装置、电子设备及存储介质
JPS62226275A (ja) ベクトル処理装置
JP2003163702A (ja) ネットワーク中継装置
JPH04367138A (ja) パケット送信装置

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20071106