JP6498356B2 - パケット処理 - Google Patents

パケット処理 Download PDF

Info

Publication number
JP6498356B2
JP6498356B2 JP2018512600A JP2018512600A JP6498356B2 JP 6498356 B2 JP6498356 B2 JP 6498356B2 JP 2018512600 A JP2018512600 A JP 2018512600A JP 2018512600 A JP2018512600 A JP 2018512600A JP 6498356 B2 JP6498356 B2 JP 6498356B2
Authority
JP
Japan
Prior art keywords
packet
entry
hash
module
result
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
Application number
JP2018512600A
Other languages
English (en)
Other versions
JP2018528699A (ja
Inventor
云峰 趙
云峰 趙
佳 李
佳 李
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.)
New H3C Technologies Co Ltd
Original Assignee
New H3C Technologies Co 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 New H3C Technologies Co Ltd filed Critical New H3C Technologies Co Ltd
Publication of JP2018528699A publication Critical patent/JP2018528699A/ja
Application granted granted Critical
Publication of JP6498356B2 publication Critical patent/JP6498356B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/324Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/325Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the network layer [OSI layer 3], e.g. X.25

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Description

パケットを処理する時には、ネットワーク機器はインターフェースの構成情報やパケットの種類などの情報によってパケットに対して各種の操作を実行し、転送やトラフィック処理などの目的を果たす。例えば、レイヤ2転送、レイヤ3転送、ユニキャスト転送、マルチキャスト転送およびACL(アクセスコントロールリスト)マッチサービスなどが挙げられる。そして、一般的には、同一のパケットに対する種類の異なる処理が排他的である。例えば、あるパケットに対してレイヤ2転送を実行したら、多くの場合は該パケットに対してさらにレイヤ3転送を実行しないことになる。あるパケットに対してユニキャスト転送を実行したら、多くの場合は該パケットに対してさらにマルチキャスト転送を実行しないことになる。
図1は本願の実施例のパケット処理方法のフローチャートである。 図2は本願の実施例のパケット処理方法のフローチャートである。 図3は本願の実施例のHashテーブルと結果テーブルを示す図である。 図4は本願の実施例のパケット処理装置の一つの構造模式図である。 図5は本願の実施例のパケット処理装置のもう一つの構造模式図である。 図6は本願の実施例のパケット処理装置のもう一つの構造模式図である。 図7は本願の実施例のパケット処理装置のハードウェアアーキテクチャの模式図である。
本願は以下の実施例においてパケット処理方法と、該方法を適用できるパケット処理装置とを提供している。
本願の以下の実施例はHashサーチモードによってパケットを処理するネットワーク機器に適用できる。
説明の便利上、本明細書にはHashインデックステーブルを取り入れている。Hashインデックステーブルは二つの形がある。一方のHashインデックステーブルはHashテーブルであり、該Hashテーブルは有効識別子と、操作種別と、処理モードとを含んでいる。該Hashテーブルの構造は表1に示されている。
表1において、Validは有効識別子であり、対応するエントリが有効であるかどうかを示すためのものであり、
Typeは操作種別であり、レイヤ2転送や、レイヤ3のIPv4転送や、レイヤ3のIPv6転送や、マルチキャスト転送や、ACLマッチサービスなどが可能であり、
処理情報はHashエントリとマッチしているパケットに対する処理モードであり、処理モードは、パケットを制御プレーンに送信してHashエントリを生成することと、パケットを制御プレーンに送信してARP学習することと、パケットを破棄することとを含むことが可能である。この場合は、パケットに対して実行すべく処理モードを該HashテーブルのHashエントリに直接に格納する。
他方のHashインデックステーブルはHashテーブルと、結果テーブルとを含み、Hashテーブルは少なくとも有効識別子と、結果テーブルポインターとを含み、該Hashテーブルは、表2や、表3に示すように、さらに操作種別を含んでもよい。
表2および表3において、Validは有効識別子であり、対応するエントリが有効であるかどうかを示すためのものであり、
Typeは操作種別であり、レイヤ2転送や、レイヤ3のIPv4転送や、レイヤ3のIPv6転送や、マルチキャスト転送やACLマッチサービスなどが可能であり、
処理情報は結果テーブルポインターであり、該結果テーブルポインターによって、HashテーブルにおけるHashエントリを結果テーブルにおける結果エントリへマッピングし、該結果テーブルポインターによって一つの結果エントリへマッピングしてもよく、複数の結果エントリへマッピングしてもよい。該結果テーブルは表4に示されている。
図4において、ValidおよびTypeの意味はHashテーブルのと一致している。
処理モードは結果エントリとマッチしているパケットに対する処理モードである。例えば、処理モードは、パケットを制御プレーンに送信してHashエントリを生成することと、パケットを破棄することとを含むことが可能である。
処理モードは内容が少なく、Hashテーブルの中へ十分に格納することができる時に、結果テーブルを設置しなくてもよく、処理モードは内容が多く、Hashテーブルの中へ全部格納することができない時に、Hashテーブルと結果テーブルを使用して、処理モードを結果テーブルに格納し、結果テーブルポインターを用いてHashテーブルと結果テーブルとのマッピンクを確立する。
本願の実施例におけるHashテーブルおよび/又は結果テーブルは、さらにKeyを含んでも良い。Keyはキーバリュー(Key Value)であり、異なるTypeに対応するKeyは異なっている。例えば、Typeがレイヤ2転送である場合に、Keyには宛先MAC(メディアアクセスコントロール)アドレスと、送信元MACアドレスと、VPN(Virtual Private Network、バーチャリプライベートネットワーク)ID(Identity:アイデンティティー)とが含まれており、Typeがレイヤ3のIPv4転送である場合に、Keyには宛先IP(Internet Protocol:インターネットプロトコル)アドレスと、送信元IPアドレスと、VPN IDとが含まれており、Typeがレイヤ3のIPv6転送である場合に、Keyには宛先IPアドレスと、送信元IPアドレスと、VPN IDと、レイヤ3のプロトコル番号とが含まれており、Typeがマルチキャスト転送である場合に、Keyには宛先IPアドレスと、送信元IPアドレスと、VPN IDと、宛先ポート番号とが含まれており、TypeがACL(Access Control List:アクセスコントロールリスト)マッチサービスである場合に、KeyにはACLマッチに必要な全てのキーバリューが含まれている。上記記載は異なるTypeに対して抽出すべくKeyの例示であり、本願では上記に限定するものではないことが言うまでもない。
TypeとKeyとはHashコンフリクトの解消に用いられる。Hashインデックステーブルには複数のHashインデックスエントリが格納されているとする。1つのパケットから抽出されたキーバリューに対してHash演算してなる演算結果がaとなり、もう一つのパケットから抽出されたキーバリューに対してHash演算してなる演算結果もaとなれば、Hashコンフリクトが生じる。この二つのパケットによって生成されたHashインデックスエントリの両方ともHashエントランスがaであるメモリスペースに保存される。TypeとKeyとによって、どのパケットが該Hashインデックスエントリとマッチできるかを確定する。
また、HashインデックステーブルがHashテーブルでありかつチェンリストである場合は、1つのパケットから抽出されたキーバリューに対してHash演算してなる演算結果がaとなり、該aが複数のHashエントリに対応していれば、Hashコンフリクトも生じる。TypeとKeyとによって、複数のHashインデックスエントリから1つのマッチしているHashエントリを見つける。
HashインデックステーブルにはHashテーブルと結果テーブルが含まれている場合に、上記過程と概ねに同じになるが、HashテーブルにおけるHashエントリとマッチしている時に、結果テーブルポインターによって結果テーブルにおいて処理モードをサーチすることが異なるだけで、贅言を控える。
なお、Hashインデックステーブルの構成は自由度が高いので、TypeとKeyとの配置位置がHashインデックステーブルの配置時のニーズによって調整できる。例えば、TypeをHashテーブルに配置し、Keyを結果テーブルに配置すること、または、TypeをHashテーブルと結果テーブルにそれぞれ配置し、KeyをHashテーブルに配置すること、または、TypeとKeyをHashテーブルに配置し、結果テーブルに配置しないことなどがある。
図1は本願の実施例のパケット処理方法のフローチャートである。図1に示すように、本願の実施例のパケット処理方法は以下のステップを含む。
ステップ102において、パケットを受信して、該パケットに対して実行すべく操作種別を識別する。
本ステップにおいて、一般的には、インターフェーステーブルから該パケットのイングレスインターフェースに関連する構成情報を得ることができる。得られた構成情報およびパケットを解析して得られた内容によって、該パケットに対して実行すべく操作種別(Type)を識別する。 例えば、操作種別はレイヤ2転送や、レイヤ3のIPv4転送や、レイヤ3のIPv6転送や、マルチキャスト転送や、ACLマッチサービスなどが可能である。Hashテーブルおよび/又は結果テーブルにおいて、Typeの値に対応する種別はユーザーによって予め設定している。例えば、レイヤ2転送に対応する値は01であり、レイヤ3のIPv4転送に対応する値は02である。
ACLマッチサービスを例として説明する。あるインターフェースに少なくとも1つのACLルールを設定していると、前記少なくとも1つのACLルールをプリセットした分類ルールによって少なくとも1つのACLマッチサービスサブクラスに仕切る。例えば、該少なくとも1つのACLマッチサービスサブクラスは、レイヤ2のACLマッチサービスサブクラスや、レイヤ3のIPv4のACLマッチサービスサブクラスや、レイヤ3のIPv6のACLマッチサービスサブクラスが可能である。そして、該インターフェースと該少なくとも1つのACLマッチサービスサブクラスとの対応関係をインターフェーステーブルに配置する。このようにすると、ステップ102において、パケットを受信してインターフェーステーブルに基づいて該パケットのイングレスインターフェースに対応する少なくとも1つのACLマッチサービスサブクラスをサーチし、得られた少なくとも1つのACLマッチサービスサブクラスから、該パケットとマッチしているACLマッチサービスサブクラスをパケットに対して実行すべく操作種別として確定する。例えば、該パケットはレイヤ2のパケットである場合に、該パケットとマッチしているACLマッチサービスサブクラスをレイヤ2のACLマッチサービスサブクラスとして確定し、 該パケットはレイヤ3のパケットかつIPv4のパケットである場合に、該パケットとマッチしているACLマッチサービスサブクラスをレイヤ3のIPv4のACLマッチサービスサブクラスとして確定し、該パケットはレイヤ3のパケットかつIPv6パケットである場合に、該パケットとマッチしているACLマッチサービスサブクラスをレイヤ3のIPv6のACLマッチサービスサブクラスとして確定する。
ステップ104において、識別された操作種別によって該パケットから複数のキーバリュー(Key)を抽出する。
本願の実施例において、操作種別がレイヤ2転送である場合に、パケットの宛先MACアドレスと、送信元MACアドレスと、VPN IDとを抽出する。
操作種別がレイヤ3のIPv4転送である場合に、パケットの宛先IPアドレスと、送信元IPアドレスと 、VPN IDとを抽出する。
操作種別がレイヤ3のIPv6転送である場合に、パケットの宛先IPアドレスと、送信元IPアドレスと、VPN IDと、レイヤ3のプロトコル番号とを抽出する。
操作種別がマルチキャスト転送である場合に、パケットの宛先IPアドレスと、送信元IPアドレスと、VPN IDと、宛先ポート番号とを抽出する。
操作種別がACLマッチサービスである場合に、ACLマッチに必要なキーバリューを抽出する。
上記は異なる操作種別に対して抽出すべくキーバリューの例示であり、本願において限定するものではない。
ステップ106において、抽出されたキーバリューに対してHash演算する。
本願の実施例において、特定なアルゴリズムによって、抽出されたキーバリューに対してHash演算する。特定なアルゴリズムはXORアルゴリズムやCRC(Cyclic・Redundancy・Check:巡回冗長検査)なとが可能である。
ステップ108において、ステップ106での演算結果をHashエントランスとし、本機器のHashインデックステーブルから少なくとも1つのHashインデックスエントリが見つけられた。
Hashコンフリクトが存在する可能性があるので、同一のHashエントランスでのHashインデックスエントリは一つまたは複数がある。
本願の実施例において、ステップ108で見つけられたのは少なくとも一つのHashエントリであり、そして、HashインデックステーブルがHashテーブルである場合に、見つけられたHashエントリには処理モードが含まれており、HashインデックステーブルにHashテーブルと結果テーブルとが含まれている場合に、Hashテーブルおよび/又は結果テーブルにはTypeが含まれており、見つけられたHashエントリには結果テーブルポインターが含まれている。
ステップ110において、識別された操作種別をこの少なくとも一つのHashインデックスエントリへマッチングを行う 。
この過程において、操作種別とキーバリューのそれぞれによってマッチングを行ってもよい。
ステップ112において、一つのHashインデックスエントリがヒットされたのかどうかと判断する。YESの場合に、ステップ114へ進み、NOの場合に、ステップ116へ進む。
ステップ114において、ヒットされたHashインデックスエントリによって、該パケットを処理する。
本願の実施例において、HashインデックステーブルがHashテーブルである場合に、Hashテーブルは表1に示すようにTypeを含んでいる。ステップ110において、識別された操作種別を得られた少なくとも一つのHashエントリへマッチングを行う。ステップ114において、一つのHashエントリがヒットされると、ヒットされたHashエントリに含まれている処理モードによって、該パケットを処理する。
本願の実施例において、HashインデックステーブルにHashテーブルと結果テーブルが含まれているとともに、Hashテーブルに表2に示すようにTypeが含まれていなく、結果テーブルに表4に示すようにTypeが含まれている場合には、ステップ110において、得られたHashエントリ毎に該Hashエントリに含まれている結果テーブルポインターによってインデックスして、対応する結果テーブルをサーチする。そして、識別された操作種別によって、得られた結果テーブルにおいて結果エントリへマッチングを行う。ステップ114において、一つの結果エントリがヒットされると、ヒットされた結果エントリに含まれている処理モードによって、該パケットを処理する。
本願の実施例において、HashインデックステーブルにHashテーブルと結果テーブルが含まれているとともに、Hashテーブルに表3に示すようにTypeが含まれており、結果テーブルに表4に示すようにTypeが含んまれている場合には、ステップ110において、識別された操作種別を得られた少なくとも一つのHashエントリへマッチングを行う。一つのHashエントリがヒットされると、ヒットされた結果エントリに含まれている結果テーブルポインターによってインデックスして、対応する結果テーブルをサーチする。そして、識別された操作種別によって、得られた結果テーブルにおいて結果エントリへマッチングを行う。ステップ114において、一つの結果エントリがヒットされると、ヒットされた結果エントリに含まれている処理モードによって、該パケットを処理する。
ステップ116において、識別された操作種別によって、該パケットに対応する操作をする。例えば、該パケットを破棄することや該パケットを制御プレーンに送信して該パケットに基づいてHashインデックスエントリを生成することである。
パケットを処理する時に、操作種別毎にデフォルトの処理モードを設置する。対応するHashインデックスエントリがマッチされることができなかった場合に、識別された操作種別によってデフォルトの処理モードを確定し、該デフォルトの処理モードによって処理を行う。該デフォルトの処理モードには該パケットを制御プレーンに送信して新しいHashインデックスエントリを生成することや該パケットを破棄することが含まれていてもよい。
本願の実施例において、ステップ116で該パケットに基づいてHashインデックスエントリを生成する過程は以下のようになる。該パケットから抽出されたキーバリューをHash演算してなる演算結果をHashエントランスとし、HashテーブルにHashエントリを追加する。Hashインデックステーブルが表1に示すようなHashテーブルである場合に、追加されるHashエントリには、Valid、Typeおよび処理モードとする処理情報が含まれている。Hashインデックステーブルに表2に示すようなHashテーブルと表4に示すような結果テーブルが含まれている場合に、追加されるHashエントリにはValidおよび処理情報が含まれている。そのうち、処理情報は結果テーブルポインターである。Hashインデックステーブルに表3に示すようなHashテーブルと表4に示すような結果テーブルが含まれている場合に、追加されるHashエントリにはValid、Typeおよび処理情報が含まれている。そのうち、処理情報は結果テーブルポインターである。
本願の上記実施例の方法において、Hashインデックステーブルに操作種別即ちTypeが取り入られているので、異なる操作種別に対応する複数のHashインデックステーブルを、操作種別が分別されて一つのHashインデックステーブルに統合することができ、異なる操作種別がそれぞれに複数のHashテーブルに対応することを避けている。異なるデータスティームを処理するために、いずれのHashテーブルにも機器が処理可能でデータスティームに対応する全てのメモリスペースを分配して、対応するHashエントリを格納する。このようにすると、ネットワーク機器はHashテーブル毎に全てのデータスティームに対応するHashエントリを十分に格納できるメモリスペース(1つのSumと称する)を分配する必要がある。本願の実施例に提供されたHashインデックステーブルは一つのSumのメモリスペースのみ占めているので、異なる複数の操作種別が同一のメモリスペースSumを使用してエントリのスペース資源を節約することができる。なお、Hashインデックステーブルに操作種別が取り入られているので、いずれのHashインデックスエントリも操作種別に対応するキーバリューを記録するだけでよく、さらにエントリのスペース資源を節約することができる。
以下、具体的な例示で本願に係るパケット処理方法を説明する。図2は本願の実施例のパケット処理方法のフローチャートである。本実施例においては、HashインデックステーブルにはHashテーブルと結果テーブルが含まれている。Hashテーブルは一つのHashエントランスが一つのHashエントリと対応する態様が採用されている。また、HashテーブルにはValid、Type、Keyおよび結果テーブルポインターが含まれている。結果テーブルにはValid、Typeおよび処理モードが含まれている。
S1において、パケットを受信し、該パケットのイングレスインターフェースにおける構成情報を得る。例えば、イングレスインターフェースにレイヤ2転送が配置された場合に、対応するTypeの値が01であると得る。
S2において、識別されたTypeによって、パケットからKeyである送信元MACアドレス、宛先MACアドレスおよびVPN IDを抽出する。
S3において、抽出されたKeyによって、Hash演算を行ってHashエントランスを得る。そして、Hashエントランスに対応するHashエントリを得る。本実施例に係るHashテーブルと結果テーブルは表3に示すようになる。
S4において、パケットのTypeによって、得られたHashエントリのTypeへマッチングを行う。Hashエントリとマッチしていると、S6へ進み、そうでないと、S5へ進む。
S5において、デフォルト処理モードを実行し、該パケットを破棄する。
S6において、Hashエントリの結果テーブルポインター1によって、結果テーブルをサーチして対応する結果エントリを得る。
S7において、パケットのTypeによって、対応する結果エントリへマッチングを行う。結果エントリとマッチしていると、S8へ進み、そうでないと、S5へ進む。
S8において、該結果エントリにおける処理モードによって、パケットを処理する。例えば、パケットを制御プレーンに送信してARP学習を行う。
このように、一回のパケット処理を完成した。パケットの操作種別に基づいて、必要であるキーバリューを識別してHashインデックステーブルへマッチングを行う。Hashインデックステーブルに大量のキーバリューを格納することや、異なる操作種別に対して異なるHashインデックステーブルを格納することがないので、パケット処理装置の転送性能を向上する。
上記実施例の方法に対して、本願の実施例は上記方法を利用することができるパケット処理装置をさらに提供している。該装置はHashテーブルをサーチすることによってパケットを処理するネットワーク機器に用いられることができる。
表4に示すように、該パケット処理装置には、受信モジュール201、識別演算モジュール202、エントリサーチモジュール203、マッチングモジュール204およびパケット処理モジュール205が含まれている。
受信モジュール201はパケットを受信する。
識別演算モジュール202は受信モジュール201によりパケットを受信して該パケットに対して実行すべく操作種別を識別し、該パケットからキーバリューを抽出してHash演算を行う。
エントリサーチモジュール203は識別演算モジュール202による演算結果をHashエントランスとし、機器のHashインデックステーブルから少なくとも一つのHashインデックスエントリをサーチする。
マッチングモジュール204は識別演算モジュール202により識別された操作種別をエントリサーチモジュール203により得れれた少なくとも一つのHashインデックスエントリへマッチングを行う。
パケット処理モジュール205はマッチングモジュール204により一つのHashインデックスエントリがヒットされると、ヒットされたHashインデックスエントリによって受信モジュール201により受信したパケットを処理する。
例えば、HashインデックステーブルがHashテーブルである場合には、マッチングモジュール204は識別演算モジュール202により識別された操作種別をエントリサーチモジュール203により得れれた少なくとも一つのHashエントリへマッチングを行い、パケット処理モジュール205はマッチングモジュール204により一つのHashエントリがヒットされると、ヒットされたHashエントリに含まれている処理モードによって受信モジュール201により受信したパケットを処理する。
HashインデックステーブルにHashテーブルと結果テーブルが含まれているとともに、HashテーブルにTypeが含まれていなく、結果テーブルにTypeが含まれている場合には、マッチングモジュール204にはサーチユニットと結果エントリマッチングユニットが含まれている。
サーチユニットはエントリサーチモジュール203によって得れれた各Hashエントリに対して、該Hashエントリに含まれている結果テーブルポインターによってインデックスして対応する結果テーブルをサーチする。
結果エントリマッチングユニットは識別演算モジュール202により識別された操作種別をサーチユニットにより得られた結果テーブルにおいて結果エントリへマッチングを行う。
パケット処理モジュール205は結果エントリマッチングユニットにより一つの結果エントリがヒットされると、ヒットされた結果エントリに含まれている処理モードによって受信モジュール201により受信したパケットを処理する。
HashインデックステーブルにHashテーブルと結果テーブルが含まれているとともに、Hashテーブルも結果テーブルもTypeが含まれている場合には、マッチングモジュール204にはHashエントリマッチングユニット、サーチユニットおよび結果エントリマッチングユニットが含まれている。
Hashエントリマッチングユニットは識別演算モジュール202により識別された操作種別をエントリサーチモジュール203により得れれた少なくとも一つのHashエントリへマッチングを行う。
サーチユニットはHashエントリマッチングユニットにより一つのHashエントリがヒットされると、ヒットされたHashエントリに含まれている結果テーブルポインターによってインデックスして対応する結果テーブルをサーチする。
結果エントリマッチングユニットは識別演算モジュール202により識別された操作種別をサーチユニットにより得られた結果テーブルにおいて結果エントリへマッチングを行う。
パケット処理モジュール205は結果エントリマッチングユニットにより一つの結果エントリがヒットされると、ヒットされた結果エントリに含まれている処理モードによって受信モジュール201により受信したパケットを処理する。
本願の実施例において、図5に示すように、該パケット処理装置には、さらに、追加モジュール206とパケット破棄モジュール207が含まれている。
追加モジュール206はマッチングモジュール204により一つのHashインデックスエントリもヒットされていない場合に、受信モジュール201により受信したパケットに基づいてHashインデックスエントリを生成すると確定した時に、識別演算モジュール202により識別された演算結果をHashエントランスとし、Hashインデックステーブルに識別演算モジュール202により識別された操作種別を含むHashインデックスエントリを追加する。
パケット破棄モジュール207はマッチングモジュール204により一つのHashインデックスエントリもヒットされていない場合に、受信モジュール201により受信したパケットを破棄すると確定した時に、該パケットを破棄する。
本願の実施例において、図6に示すように、該パケット処理装置には、さらに、仕切るモジュール208とインターフェーステーブル配置モジュール209が含まれている。識別演算モジュール202には、サブクラスサーチユニットと操作種別確定ユニットが含まれている。
仕切るモジュール208はインターフェースに少なくとも一つのACLルールが配置された場合に、プリセットした分類ルールによってこの少なくとも一つのACLルールを少なくとも一つのACLマッチサービスサブクラスに仕切る。
インターフェーステーブル配置モジュール209は該インターフェースと、仕切るモジュールに仕切されてなる少なくとも一つのACLマッチサービスサブクラスとの対応関係をインターフェーステーブルに配置する。
サブクラスサーチユニットは受信モジュール201によりパケットを受信して、インターフェーステーブルに基づいて該パケットのイングレスインターフェースと対応する少なくとも一つのACLマッチサービスサブクラスをサーチする。
操作種別確定ユニットはサブクラスサーチユニットにより得れれた少なくとも一つのACLマッチサービスサブクラスから、受信モジュール201により受信したパケットとマッチしているACLマッチサービスサブクラスを該パケットに対して実行すべく操作種別として確定する。
そのうち、上記の少なくとも一つのACLマッチサービスサブクラスには、レイヤ2のACLマッチサービスサブクラス、レイヤ3のIPv4のACLマッチサービスサブクラスおよびレイヤ3のIPv6のACLマッチサービスサブクラスが含まれている。操作種別確定ユニットは、具体的に、以下のように機能している。
受信モジュール201により受信したパケットがレイヤ2のパケットである場合に、該パケットとマッチしているACLマッチサービスサブクラスをレイヤ2のACLマッチサービスサブクラスとして確定する。
受信モジュール201より受信したパケットがレイヤ3かつIPv4のパケットである場合に、該パケットとマッチしているACLマッチサービスサブクラスをレイヤ3のIPv4のACLマッチサービスサブクラスとして確定する。
受信モジュール201により受信したパケットがレイヤ3かつIPv6のパケットである場合に、該パケットとマッチしているACLマッチサービスサブクラスをレイヤ3のIPv6のACLマッチサービスサブクラスとして確定する。
本願の実施例のパケット処理装置はソフトフェアとハードフェアの共作でプログラム可能な機器であってもよい。図7は該パケット処理装置のハードウェアのストラクチャーを示す図である。図7に示すように、該パケット処理装置には不揮発性メモリ、CPU(センタープロセッサー)、転送チップおよびメモリが含まれている。
メモリはインストラクションコードを記憶するものである。前記インストラクションコードが実行して機能されるのは、主に、受信モジュール、識別演算モジュール、エントリサーチモジュール、マッチングモジュール、パケット処理モジュール、追加モジュール、パケット破棄モジュール、仕切るモジュールおよびインターフェーステーブル配置モジュールである。ここで、詳細は省略する。
CPUは転送チップと通信してパケットの送受信を行うものである。また、メモリと通信してメモリに記憶されている前記インストラクションコードを読み取って実行し、上記パケット処理装置の、例えば受信モジュール、識別演算モジュール、エントリサーチモジュール、マッチングモジュール、パケット処理モジュール、追加モジュール、パケット破棄モジュール、仕切るモジュールおよびインターフェーステーブル配置モジュールに機能をさせ、転送チップから送信されたパケットを処理する。また、不揮発性メモリと通信して不揮発性メモリに記憶されているHashテーブル、結果テーブルおよびインターフェーステーブルを含むデータを読む/書く。
転送チップは当該チップの接続端によって他のネットワーク機器に接続してパケットの送受信を行うものである。例えば、受信して得られたパケットをCPUに送信してテーブルサーチを行う。
不揮発性メモリは例えばHashテーブル、結果テーブルおよびインターフェーステーブルを含む各種類のデータを記憶するものである。
以上、本願の実施例において、Hashインデックステーブルに操作種別即ちTypeが取り入られているので、異なる操作種別に対応する複数のHashインデックステーブルを操作種別が分別されて一つのHashインデックステーブルに統合することができ、異なる操作種別がそれぞれに複数のHashテーブルに対応することを避けている。異なるデータスティームを処理するために、いずれのHashテーブルにも機器が処理可能で全てのデータスティームに対応する全てのメモリスペースを分配して、対応するHashエントリを格納する。このようにすると、ネットワーク機器はHashテーブル毎に全てのデータスティームに対応するHashエントリを十分に格納できるメモリスペース(1つのSumと称する)を分配する必要がある。本願の実施例において、該Hashインデックステーブルは一つのSumのメモリスペースのみ占めているので、異なる複数の操作種別が同一のメモリスペースSumを使用してエントリのスペース資源を節約することができる。なお、Hashインデックステーブルに操作種別が取り入られているので、いずれのHashインデックスエントリも操作種別に対応するキーバリューを記録するだけでよく、さらにエントリのスペース資源を節約することができる。
以上の記載は本願に望ましい実施例だけであり、本願を限定するものではない。本願の主旨と原則の内になされるすべての補正、取り替え、改良などは本願の保護範囲に含まれることが言うまでもないものである。

Claims (14)

  1. パケットを受信して該パケットに対して実行すべく操作種別を識別し、該パケットからキーバリューを抽出してHash演算を行うことと、
    前記Hash演算による演算結果をHashエントランスとし、機器のHashインデックステーブルから少なくとも一つのHashインデックスエントリをサーチすることと、
    識別された操作種別を前記少なくとも一つのHashインデックスエントリへマッチングを行うことと、
    一つのHashインデックスエントリがヒットされると、ヒットされたHashインデックスエントリによって該パケットを処理することを含む
    ことを特徴とするパケット処理方法である。
  2. HashインデックステーブルがHashテーブルであり、
    識別された操作種別を前記少なくとも一つのHashインデックスエントリへマッチングを行うことは、識別された操作種別を少なくとも一つのHashエントリへマッチングを行うことを含み、
    一つのHashインデックスエントリがヒットされると、ヒットされたHashインデックスエントリによって該パケットを処理することは、一つのHashエントリがヒットされると、ヒットされたHashエントリに含まれている処理モードによって該パケットを処理することを含む
    ことを特徴とする請求項1に記載の方法である。
  3. HashインデックステーブルにHashテーブルと結果テーブルが含まれており、
    識別された操作種別を前記少なくとも一つのHashインデックスエントリへマッチングを行うことは、各Hashエントリに対して、該Hashエントリに含まれている結果テーブルポインターによってインデックスして対応する結果テーブルをサーチすることと、識別された操作種別を得られた結果テーブルにおいて結果エントリへマッチングを行うことを含み、
    一つのHashインデックスエントリがヒットされると、ヒットされたHashインデックスエントリによって該パケットを処理することは、一つの結果エントリがヒットされると、ヒットされた結果エントリに含まれている処理モードによって該パケットを処理することを含む
    ことを特徴とする請求項1に記載の方法である。
  4. HashインデックステーブルにHashテーブルと結果テーブルが含まれており、
    識別された操作種別を前記少なくとも一つのHashインデックスエントリへマッチングを行うことは、識別された操作種別を少なくとも一つのHashエントリへマッチングを行うことと、一つのHashエントリがヒットされると、ヒットされたHashエントリに含まれている結果テーブルポインターによってインデックスして対応する結果テーブルをサーチすることと、識別された操作種別を得られた結果テーブルにおいて結果エントリへマッチングを行うことを含み、
    一つのHashインデックスエントリがヒットされると、ヒットされたHashインデックスエントリによって該パケットを処理することは、一つの結果エントリがヒットされると、ヒットされた結果エントリに含まれている処理モードによって該パケットを処理することを含む
    ことを特徴とする請求項1に記載の方法である。
  5. 識別された操作種別を前記少なくとも一つのHashインデックスエントリへマッチングを行った後は、
    一つのHashインデックスエントリもヒットされていない場合は、該パケットに基づいてHashインデックスエントリを生成すると確定した時に、前記演算結果をHashエントランスとし、Hashインデックステーブルに識別された前記操作種別を含むHashインデックスエントリを追加することと、該パケットを破棄すると確定した時に、該パケットを破棄すること、をさらに含む
    ことを特徴とする請求項1に記載の方法である。
  6. インターフェースに少なくとも一つのACLルールが配置された場合に、プリセットした分類ルールによって前記少なくとも一つのACLルールを少なくとも一つのACLマッチサービスサブクラスに仕切ることと、
    該インターフェースと、前記少なくとも一つのACLマッチサービスサブクラスとの対応関係をインターフェーステーブルに配置することと、
    パケットを受信して該パケットに対して実行すべく操作種別を識別することと、をさらに含み、
    パケットを受信して該パケットに対して実行すべく操作種別を識別することは、
    パケットを受信して前記インターフェーステーブルに基づいて該受信したパケットのイングレスインターフェースと対応する少なくとも一つのACLマッチサービスサブクラスをサーチすることと、
    得られた少なくとも一つのACLマッチサービスサブクラスから、前記受信したパケットとマッチしているACLマッチサービスサブクラスを該パケットに対して実行すべく操作種別として確定することと、を含む
    ことを特徴とする請求項1に記載の方法である。
  7. 前記少なくとも一つのACLマッチサービスサブクラスには、レイヤ2のACLマッチサービスサブクラスと、レイヤ3のIPv4のACLマッチサービスサブクラスと、レイヤ3のIPv6のACLマッチサービスサブクラスとが含まれており、
    前記受信したパケットとマッチしているACLマッチサービスサブクラスを確定することは、
    該パケットがレイヤ2のパケットである場合に、該パケットとマッチしているACLマッチサービスサブクラスをレイヤ2のACLマッチサービスサブクラスとして確定することと、
    該パケットがレイヤ3かつIPv4のパケットである場合に、該パケットとマッチしているACLマッチサービスサブクラスをレイヤ3のIPv4のACLマッチサービスサブクラスとして確定することと、
    該パケットがレイヤ3かつIPv6のパケットである場合に、該パケットとマッチしているACLマッチサービスサブクラスをレイヤ3のIPv6のACLマッチサービスサブクラスとして確定することを含む
    ことを特徴とする請求項6に記載の方法である。
  8. パケットを受信する受信モジュールと、
    前記受信モジュールによりパケットを受信して該パケットに対して実行すべく操作種別を識別し、該パケットからキーバリューを抽出してHash演算を行う識別演算モジュールと、
    前記識別演算モジュールによる演算結果をHashエントランスとし、機器のHashインデックステーブルから少なくとも一つのHashインデックスエントリをサーチするエントリサーチモジュールと、
    前記識別演算モジュールにより識別された操作種別を前記エントリサーチモジュールにより得られた少なくとも一つのHashインデックスエントリへマッチングを行うマッチングモジュールと、
    前記マッチングモジュールにより一つのHashインデックスエントリがヒットされると、ヒットされたHashインデックスエントリによって前記受信モジュールにより受信したパケットを処理するパケット処理モジュールと、を含む
    ことを特徴とするパケット処理装置である。
  9. HashインデックステーブルがHashテーブルであり、
    前記マッチングモジュールは、前記識別演算モジュールにより識別された操作種別を前記エントリサーチモジュールにより得られた少なくとも一つのHashエントリへマッチングを行い、
    前記パケット処理モジュールは、前記マッチングモジュールにより一つのHashエントリがヒットされると、ヒットされたHashエントリに含まれている処理モードによって前記受信モジュールにより受信したパケットを処理する
    ことを特徴とする請求項8に記載の装置である。
  10. HashインデックステーブルにHashテーブルと結果テーブルが含まれており、
    前記マッチングモジュールは、
    前記エントリサーチモジュールによって得られた各Hashエントリに対して、該Hashエントリに含まれている結果テーブルポインターによってインデックスして、対応する結果テーブルをサーチするサーチユニットと、
    前記識別演算モジュールにより識別された操作種別を前記サーチユニットにより得られた結果テーブルにおいて結果エントリへマッチングを行う結果エントリマッチングユニットと、を含み、
    前記パケット処理モジュールは、前記結果エントリマッチングユニットにより一つの結果エントリがヒットされると、ヒットされた結果エントリに含まれている処理モードによって前記受信モジュールにより受信したパケットを処理する
    ことを特徴とする請求項8に記載の装置である。
  11. HashインデックステーブルにHashテーブルと結果テーブルが含まれており、
    前記マッチングモジュールは、
    前記識別演算モジュールにより識別された操作種別を前記エントリサーチモジュールにより得られた少なくとも一つのHashエントリへマッチングを行うHashエントリマッチングユニットと、
    前記Hashエントリマッチングユニットにより一つのHashエントリがヒットされると、ヒットされたHashエントリに含まれている結果テーブルポインターによってインデックスして、対応する結果テーブルをサーチするサーチユニットと、
    前記識別演算モジュールにより識別された操作種別を前記サーチユニットにより得られた結果テーブルにおいて結果エントリへマッチングを行う結果エントリマッチングユニットと、を含み、
    前記パケット処理モジュールは、前記結果エントリマッチングユニットにより一つの結果エントリがヒットされると、ヒットされた結果エントリに含まれている処理モードによって前記受信モジュールにより受信したパケットを処理する
    ことを特徴とする請求項8に記載の装置である。
  12. 前記マッチングモジュールにより一つのHashインデックスエントリもヒットされていない場合に、前記受信モジュールにより受信したパケットに基づいてHashインデックスエントリを生成すると確定した時に、前記識別演算モジュールによる演算結果をHashエントランスとし、Hashインデックステーブルに前記識別演算モジュールにより識別された操作種別を含むHashインデックスエントリを追加する追加モジュールと、
    前記マッチングモジュールにより一つのHashインデックスエントリもヒットされていない場合に、前記受信モジュールにより受信したパケットを破棄すると確定した時に、該パケットを破棄するパケット破棄モジュールと、をさらに含む
    ことを特徴とする請求項8に記載の装置である。
  13. 仕切るモジュールとインターフェーステーブル配置モジュールをさらに含み、
    前記識別演算モジュールは、サブクラスサーチユニットと操作種別確定ユニットとをさらに含み、
    前記仕切るモジュールは、インターフェースに少なくとも一つのACLルールが配置された場合に、プリセットした分類ルールによって前記少なくとも一つのACLルールを少なくとも一つのACLマッチサービスサブクラスに仕切り、
    前記インターフェーステーブル配置モジュールは、該インターフェースと、前記仕切るモジュールに仕切されてなる少なくとも一つのACLマッチサービスサブクラスとの対応関係をインターフェーステーブルに配置し、
    前記サブクラスサーチユニットは、前記受信モジュールによりパケットを受信して、前記インターフェーステーブルに基づいて該パケットのイングレスインターフェースと対応する少なくとも一つのACLマッチサービスサブクラスをサーチし、
    前記操作種別確定ユニットは、前記サブクラスサーチユニットにより得られた少なくとも一つのACLマッチサービスサブクラスから、前記受信モジュールにより受信したパケットとマッチしているACLマッチサービスサブクラスを該パケットに対して実行すべく操作種別として確定する
    ことを特徴とする請求項8に記載の装置である。
  14. 前記少なくとも一つのACLマッチサービスサブクラスは、レイヤ2のACLマッチサービスサブクラスと、レイヤ3のIPv4のACLマッチサービスサブクラスと、レイヤ3のIPv6のACLマッチサービスサブクラスとを含み、
    前記操作種別確定ユニットは、
    前記受信モジュールにより受信したパケットがレイヤ2のパケットである場合に、該パケットとマッチしているACLマッチサービスサブクラスをレイヤ2のACLマッチサービスサブクラスとして確定し、
    前記受信モジュールにより受信したパケットがレイヤ3かつIPv4のパケットである場合に、該パケットとマッチしているACLマッチサービスサブクラスをレイヤ3のIPv4のACLマッチサービスサブクラスとして確定し、
    前記受信モジュールにより受信したパケットがレイヤ3かつIPv6のパケットである場合に、該パケットとマッチしているACLマッチサービスサブクラスをレイヤ3のIPv6のACLマッチサービスサブクラスとして確定する
    ことを特徴とする請求項13に記載の装置である。
JP2018512600A 2015-09-11 2016-09-09 パケット処理 Active JP6498356B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201510575456.5 2015-09-11
CN201510575456.5A CN106533947B (zh) 2015-09-11 2015-09-11 报文处理方法及装置
PCT/CN2016/098523 WO2017041737A1 (zh) 2015-09-11 2016-09-09 报文处理

Publications (2)

Publication Number Publication Date
JP2018528699A JP2018528699A (ja) 2018-09-27
JP6498356B2 true JP6498356B2 (ja) 2019-04-10

Family

ID=58239133

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018512600A Active JP6498356B2 (ja) 2015-09-11 2016-09-09 パケット処理

Country Status (5)

Country Link
US (1) US10659361B2 (ja)
EP (1) EP3349403B1 (ja)
JP (1) JP6498356B2 (ja)
CN (1) CN106533947B (ja)
WO (1) WO2017041737A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10454965B1 (en) * 2017-04-17 2019-10-22 Symantec Corporation Detecting network packet injection
CN107911315B (zh) * 2017-11-17 2020-09-11 成都西加云杉科技有限公司 报文分类方法及网络设备
CN109062801B (zh) * 2018-08-01 2021-09-14 四川长虹电器股份有限公司 软件接口自动转换系统
CN111935021B (zh) * 2020-09-27 2020-12-25 翱捷智能科技(上海)有限公司 一种快速匹配网络数据包的方法及系统
CN113114574B (zh) * 2021-03-30 2023-04-25 杭州迪普科技股份有限公司 一种报文转发方法及装置
US11962494B2 (en) 2021-07-20 2024-04-16 Pensando Systems Inc. Methods and systems for data consistent search and storage using trees

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7324514B1 (en) * 2000-01-14 2008-01-29 Cisco Technology, Inc. Implementing access control lists using a balanced hash table of access control list binary comparison trees
US7474653B2 (en) * 2003-12-05 2009-01-06 Hewlett-Packard Development Company, L.P. Decision cache using multi-key lookup
CN100596062C (zh) * 2007-08-16 2010-03-24 杭州华三通信技术有限公司 分布式报文传输安全保护装置和方法
CN101247337B (zh) * 2008-02-18 2012-11-21 华为技术有限公司 一种报文转发的方法和设备
JP5012674B2 (ja) * 2008-06-03 2012-08-29 日本電気株式会社 Ipパケット制御装置におけるソフトウェア検索方法
US8515965B2 (en) * 2010-05-18 2013-08-20 Lsi Corporation Concurrent linked-list traversal for real-time hash processing in multi-core, multi-thread network processors
CN102025643B (zh) * 2010-12-30 2012-07-04 华为技术有限公司 一种流表查找方法和装置
US9237128B2 (en) 2013-03-15 2016-01-12 International Business Machines Corporation Firewall packet filtering
US9491069B2 (en) * 2012-07-29 2016-11-08 Verint Systems Ltd. System and method of high volume rule engine
CN102882810B (zh) * 2012-10-26 2016-02-10 杭州迪普科技有限公司 一种报文快速转发方法及装置
CN103905311B (zh) * 2012-12-28 2017-02-22 华为技术有限公司 流表匹配方法和装置以及交换机
US9659046B2 (en) * 2013-07-31 2017-05-23 Oracle Inernational Corporation Probing a hash table using vectorized instructions
CN103595637B (zh) * 2013-10-27 2017-03-29 西安电子科技大学 基于树与哈希表的内容中心网络结点处理数据方法
CN106326234A (zh) * 2015-06-18 2017-01-11 深圳市中兴微电子技术有限公司 流分类方法及装置
JP6582723B2 (ja) * 2015-08-19 2019-10-02 富士通株式会社 ネットワークシステム、スイッチ装置、及びネットワークシステム制御方法

Also Published As

Publication number Publication date
US20180270152A1 (en) 2018-09-20
EP3349403B1 (en) 2020-10-21
CN106533947A (zh) 2017-03-22
CN106533947B (zh) 2019-10-08
WO2017041737A1 (zh) 2017-03-16
EP3349403A4 (en) 2018-11-07
US10659361B2 (en) 2020-05-19
JP2018528699A (ja) 2018-09-27
EP3349403A1 (en) 2018-07-18

Similar Documents

Publication Publication Date Title
JP6498356B2 (ja) パケット処理
US9680747B2 (en) Internet protocol and Ethernet lookup via a unified hashed trie
TWI645694B (zh) 用於處理交替配置的最長首碼匹配表的裝置和方法
JP6437693B2 (ja) マルチキャストデータパケット転送
CN106878194B (zh) 一种报文处理方法和装置
US10200284B2 (en) Packet processing method and device
US10313154B2 (en) Packet forwarding
CN107547407B (zh) 报文传输方法、装置和实现装置
CN109921995B (zh) 一种配置地址表的方法、fpga和应用该fpga的网络设备
US11621853B1 (en) Protocol-independent multi-table packet routing using shared memory resource
WO2021135491A1 (zh) 流表的匹配方法及装置
EP3217611A1 (en) Media resource feedback method and device
WO2014154124A1 (en) Packet forwarding
WO2015131720A1 (zh) 报文处理方法及装置
US10313275B2 (en) Packet forwarding
US20160028628A1 (en) Communication system, control apparatus, address allocation method, and program
CN107147581B (zh) 路由表项的维护方法和装置
US10313274B2 (en) Packet forwarding
JP5050978B2 (ja) 伝送情報転送装置及び方法
TW201401170A (zh) 虛擬機器的通信方法以及伺服端系統
CN111131049B (zh) 路由表项的处理方法及装置
CN114389987B (zh) 数据包路由方法、计算机装置和存储介质
US20130013888A1 (en) Method and Appartus For Index-Based Virtual Addressing
CN113660279B (zh) 网络主机的安全防护方法、装置、设备及存储介质
US9544226B1 (en) Efficient address-based rule resolution in a network employing a bit-mapped index

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180308

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190207

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: 20190219

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190312

R150 Certificate of patent or registration of utility model

Ref document number: 6498356

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250