JP6037978B2 - Method for controlling data packet communication device and data packet communication device - Google Patents

Method for controlling data packet communication device and data packet communication device Download PDF

Info

Publication number
JP6037978B2
JP6037978B2 JP2013178416A JP2013178416A JP6037978B2 JP 6037978 B2 JP6037978 B2 JP 6037978B2 JP 2013178416 A JP2013178416 A JP 2013178416A JP 2013178416 A JP2013178416 A JP 2013178416A JP 6037978 B2 JP6037978 B2 JP 6037978B2
Authority
JP
Japan
Prior art keywords
control
packet
data
control request
core
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
JP2013178416A
Other languages
Japanese (ja)
Other versions
JP2015050469A5 (en
JP2015050469A (en
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2013178416A priority Critical patent/JP6037978B2/en
Publication of JP2015050469A publication Critical patent/JP2015050469A/en
Publication of JP2015050469A5 publication Critical patent/JP2015050469A5/ja
Application granted granted Critical
Publication of JP6037978B2 publication Critical patent/JP6037978B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、データ・パケット通信装置を制御する方法、およびデータ・パケット通信装置に関する。   The present invention relates to a method for controlling a data packet communication device and a data packet communication device.

本発明の背景技術として、非特許文献1がある。非特許文献1においては、オペレーティング・システム(OS)が搭載されていない高速データ処理用(ベアメタル、ファストパスなどともいう)のOcteon(登録商標)プロセッサ・コア上で動作するアプリケーションの統計情報を、制御用プロセッサ・コアから制御するために、両者のあいだで共有メモリを使用して、情報をやりとりしている。   There is Non-Patent Document 1 as a background art of the present invention. In Non-Patent Document 1, statistical information of an application operating on an Octeon (registered trademark) processor core for high-speed data processing (also referred to as bare metal, fast path, etc.) without an operating system (OS) is provided. In order to control from the control processor core, information is exchanged between the two using a shared memory.

制御用プロセッサ・コアへの管理指示は、コマンドライン・インターフェース(CLI)があたえている。制御用プロセッサ・コアは、複雑な管理メッセージをあつかうことができる汎用性をもたせる必要があるため、OSを動作させている。   Management instructions to the control processor core are provided by a command line interface (CLI). Since the control processor core needs to be versatile enough to handle complicated management messages, the OS is operated.

Schmidt, A., "Profiling Bare-Metal Cores in AMP Systems", System, Software, SoC and Silicon Debug Conference (S4D), pp. 1-4, September 2012.Schmidt, A., "Profiling Bare-Metal Cores in AMP Systems", System, Software, SoC and Silicon Debug Conference (S4D), pp. 1-4, September 2012.

本発明は、ネットワーク・プロセッサ等で構成され、ベアメタルの制御用コアとデータ処理用コアとをふくむデータ処理装置における、データ処理の管理に関する課題を解決する。   The present invention solves a problem related to management of data processing in a data processing apparatus that is configured by a network processor or the like and includes a bare metal control core and a data processing core.

第1の課題は、制御・管理系とデータ系との間における情報わたしの単純化である。従来の方法においては、制御用コアとデータ処理用コアとのあいだで制御情報や処理パラメータをやりとりするとき、とくに両者のあいだで排他制御等の複雑な制御を必要とするときは、当該制御情報や当該処理パラメータのやりとりが複雑で困難になるという課題がある。   The first problem is my simplification of information between the control / management system and the data system. In the conventional method, when control information and processing parameters are exchanged between the control core and the data processing core, especially when complicated control such as exclusive control is required between them, the control information In addition, there is a problem that exchange of processing parameters becomes complicated and difficult.

当該制御情報や当該処理パラメータのやりとりが複雑になる理由を以下に述べる。第1の理由は、データ処理用コアと制御用コアとで、ソフトウェアがことなることがあげられる。すなわち、データ処理用コアは高速処理に適したベアメタルで使用されるのに対して、制御用プロセッサ・コアは複雑な管理メッセージをあつかうことができる汎用性をもたせる必要があるため、OSを搭載していることである。そのため、データ処理用コアと制御用コアとのあいだでデータを共有するための共有メモリや、ネットワーク等のインターフェースの制御方法がことなる。   The reason why the exchange of the control information and the processing parameter is complicated will be described below. The first reason is that the software differs between the data processing core and the control core. In other words, while the data processing core is used in bare metal suitable for high-speed processing, the control processor core needs to be versatile enough to handle complex management messages. It is that. Therefore, a shared memory for sharing data between the data processing core and the control core and a method for controlling an interface such as a network are different.

第2の理由は、データ処理用コアと制御用コアとのハードウェア・アーキテクチャがことなることである。とくに、制御用コアにおいては記憶が完全に仮想化されているのに対して、データ処理用コアにおいては記憶が仮想化されていないか、仮想化機構が単純化されているために、情報を共有するのが困難になっている場合がある。すなわち、上述のような制御・管理を、単純で低コストな方法にもとづいて、さらに疑念のない並列処理セマンティクスにもとづいて、実現することがひとつの課題である。   The second reason is that the hardware architecture of the data processing core and the control core is different. In particular, the memory is completely virtualized in the control core, whereas the memory is not virtualized in the data processing core or the virtualization mechanism is simplified. It may be difficult to share. That is, one of the issues is to realize the control and management as described above based on a simple and low-cost method and further based on unquestionable parallel processing semantics.

第2の課題は、制御・管理の高速化である。従来の方法においては、制御用コアにおける制御・管理処理、および制御用コアからデータ処理用コアへの制御・管理情報わたしにおいて、制御用コアのOSが介在する。それゆえ、それらの処理が遅延したり、速度が低下したりするという問題がある。たとえば、ネットワーク上のサーバ等がサービス妨害攻撃(DoS)などの攻撃をうけた際等に、高速な制御が要求されるため、このような制御・管理を高速化することがひとつの課題である。   The second problem is speeding up of control and management. In the conventional method, the control core OS is interposed in the control / management processing in the control core and the control / management information I from the control core to the data processing core. Therefore, there is a problem that these processes are delayed or the speed is lowered. For example, when a server on the network is subjected to a denial-of-service attack (DoS) or the like, high-speed control is required. Therefore, speeding up such control and management is one issue. .

上記課題を解決するために、本発明は、たとえば、以下のような構成を採用する。すなわち、データ・パケットの入力をうけつけ、前記入力されたデータ・パケットを処理し、前記処理されたデータ・パケットを出力するデータ処理装置と、前記データ処理装置を制御する制御装置と、をふくむデータ・パケット通信装置を制御する方法であって、前記データ処理装置は、複数のベアメタル・コアと、前記複数のベアメタル・コア間において共有されるデータ共有装置と、をふくみ、前記方法は、前記複数のベアメタル・コアにおけるすくなくともひとつが、入力されたデータ・パケットを受信し、当該受信したデータ・パケットを処理し、前記制御装置が、制御要求メッセージを受信すると、前記制御要求メッセージから制御データをふくむ制御要求パケットを作成し、前記データ処理装置に対して前記制御要求パケットを送信し、前記複数のベアメタル・コアにおけるすくなくともひとつが、前記制御要求パケットを受信し、前記データ共有装置を介して、他のベアメタル・コアに、前記制御要求パケットにふくまれる前記制御データを送信する、ことをふくむことを特徴とする方法。   In order to solve the above problems, the present invention employs the following configuration, for example. That is, data including an input of a data packet, a data processing device that processes the input data packet and outputs the processed data packet, and a control device that controls the data processing device A method for controlling a packet communication device, wherein the data processing device includes a plurality of bare metal cores and a data sharing device shared between the plurality of bare metal cores, At least one of the bare metal cores receives the input data packet, processes the received data packet, and includes the control data from the control request message when the control device receives the control request message. Create a control request packet and send the control request packet to the data processing device. And at least one of the plurality of bare metal cores receives the control request packet and transmits the control data included in the control request packet to another bare metal core via the data sharing apparatus. A method characterized by including a thing.

本発明によれば、制御・管理系−データ系間の情報わたしを単純化することができるとともに、制御・管理を高速化することができる。上述した以外の課題、構成および効果は、以下の実施形態の説明により明らかにされる。   According to the present invention, information between the control / management system and the data system can be simplified, and the control / management speed can be increased. Problems, configurations, and effects other than those described above will become apparent from the following description of embodiments.

実施例1において、コンピュータ・システムの概要例をしめす説明図である。1 is an explanatory diagram illustrating an example of an outline of a computer system in Embodiment 1. FIG. 実施例1において、物理ノードの構成例をしめすブロック図である。In Example 1, it is a block diagram which shows the structural example of a physical node. 実施例1において、ネットワーク・プロセッサの構成例をしめすブロック図である。FIG. 3 is a block diagram illustrating a configuration example of a network processor in the first embodiment. 実施例1において、制御ボードが受信する単純な制御要求メッセージの例である。In Example 1, it is an example of the simple control request message which a control board receives. 実施例1において、単純な制御要求メッセージに対応する制御要求パケット、および制御応答パケットの例である。In Example 1, it is an example of the control request packet corresponding to a simple control request message, and a control response packet. 実施例1において、単純な制御要求メッセージによる、データ処理用コアの制御例をしめすシーケンス図である。In Example 1, it is a sequence diagram which shows the example of control of the core for data processing by the simple control request message. 実施例1において、MACアドレス対応表の例である。In Example 1, it is an example of a MAC address correspondence table. 実施例1において、データ処理用コアにおけるプログラム選択の処理の例をしめすフローチャートである。6 is a flowchart illustrating an example of a program selection process in the data processing core according to the first exemplary embodiment. 実施例1において、入力プロセッサが受信した制御要求パケットを、複数のキューにふりわける処理の例をしめすフローチャートである4 is a flowchart illustrating an example of processing for distributing control request packets received by an input processor to a plurality of queues in the first embodiment. 実施例2において、制御ボードが受信する連接型制御要求メッセージの例である。In Example 2, it is an example of the connection type | mold control request message which a control board receives. 実施例2において、連接型制御要求メッセージに対応する制御要求パケット、および制御応答パケットの例である。In Example 2, it is an example of the control request packet corresponding to a connection type | mold control request message, and a control response packet. 実施例2において、連接型制御要求メッセージによる、データ処理用コアの制御例をしめすシーケンス図である。In Example 2, it is a sequence diagram which shows the example of control of the data processing core by a connection type | mold control request message. 実施例3において、制御ボードが受信する選択型制御要求メッセージの例である。In Example 3, it is an example of the selection type | mold control request message which a control board receives. 実施例3において、選択型制御要求メッセージに対応する制御要求パケット、および制御応答パケットの例である。In Example 3, it is an example of the control request packet corresponding to a selection type | mold control request message, and a control response packet. 実施例4において、制御ボードが受信する反復型制御要求メッセージの例である。In Example 4, it is an example of the repetition type | mold control request message which a control board receives. 実施例4において、反復型制御要求メッセージに対応する制御要求パケット、および制御応答パケットの例である。In Example 4, it is an example of the control request packet corresponding to a repetitive control request message, and a control response packet. 実施例6において、プラグイン制御プログラムを使用するときの、制御ボードの構成例をしめすブロック図である。In Example 6, it is a block diagram which shows the structural example of a control board when using a plug-in control program. 実施例6において、プラグイン制御プログラムを使用するときの、制御ボードと汎用コアの構成例をしめすブロック図である。In Example 6, it is a block diagram which shows the example of a structure of a control board and a general purpose core when using a plug-in control program. 実施例6において、プラグイン制御プログラムが存在し、制御ボードが制御要求メッセージを受信したときの処理の例をしめすフローチャートである。In Example 6, it is a flowchart which shows the example of a process when a plug-in control program exists and a control board receives a control request message.

以下、添付図面を参照して本発明の実施形態を説明する。本実施形態は本発明を実現するための一例にすぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。各図において共通の構成については同一の参照符号が付されている。   Embodiments of the present invention will be described below with reference to the accompanying drawings. It should be noted that this embodiment is only an example for realizing the present invention, and does not limit the technical scope of the present invention. In each figure, the same reference numerals are given to common configurations.

本実施形態においては、制御用コアとデータ処理用コアを、ベアメタルで使用することで、ベアメタルによる制御・管理を実現する。これにより、制御用コアとデータ処理用コアのハードウェア(すなわちコアの構造)およびソフトウェア(OSやベアメタルのランタイム・ルーティン)が異質であることに起因する上述した課題を解決することができる。   In this embodiment, the control core and the data processing core are used in bare metal, thereby realizing control and management by bare metal. As a result, the above-described problems caused by the heterogeneity of hardware (that is, the core structure) and software (OS and bare metal runtime routine) of the control core and the data processing core can be solved.

すなわち、本実施形態においては第1に、制御用コアにもベアメタル・コアを使用し、制御情報をベアメタルで処理する。データ処理用プロセッサが制御要求パケットを受信したときは、データ処理用プロセッサがそなえている負荷分散機構を使用して、複数のデータ処理用コアのうちのいずれかに制御要求パケットの処理をわりあてることによって、負荷配分を実現することができる。なお、1つのベアメタル・コアが制御処理とデータ処理との両方をおこなうこともできるし、制御処理のみ、またはデータ処理のみをおこなうこともできる。あるベアメタル・コアが制御処理とデータ処理とをおこなうか、制御処理のみをおこなうか、またはデータ処理のみをおこなうかは、当該ベアメタル・コアが実行するプログラムの種類をかえることにより変更できる。   That is, in the present embodiment, first, a bare metal core is also used for the control core, and the control information is processed with the bare metal. When the data processing processor receives the control request packet, the load distribution mechanism provided by the data processing processor is used to allocate the control request packet processing to one of the plurality of data processing cores. Thus, load distribution can be realized. Note that one bare metal core can perform both control processing and data processing, or can perform only control processing or only data processing. Whether a bare metal core performs control processing and data processing, only control processing, or only data processing can be changed by changing the type of program executed by the bare metal core.

またデータ処理装置が、制御処理とデータ処理との両方をおこなうコアをふくむ場合は、制御処理をおこなうコアとデータ処理をおこなうコアの個数の比率を動的に変化させることができる。つまり、動的な負荷配分が実現でき、ひいては制御処理の遅延を減少させ、ボトルネックを解消することができる。   When the data processing apparatus includes cores that perform both control processing and data processing, the ratio of the number of cores that perform control processing and the number of cores that perform data processing can be dynamically changed. That is, dynamic load distribution can be realized, and consequently, the delay of the control process can be reduced and the bottleneck can be eliminated.

制御用コアにベアメタル・コアを使用することにより、データ処理を記述するために移植可能な高級言語を用意すれば制御用プログラムも他のネットワーク・プロセッサ等に移植できるようになる。また、制御用プログラムの開発者が負荷配分法を高級言語によって記述することが容易になり、制御用プログラムとともに負荷配分のプログラムを移植することが容易になる。また、従来の制御用コアをなくすこともできるため、制御用コアのない単純な構造のLSIを使用できるようになり、開発コストを低下させることができる。   By using a bare metal core for the control core, if a portable high-level language is prepared for describing data processing, the control program can be ported to another network processor or the like. Further, it becomes easy for the developer of the control program to describe the load distribution method in a high-level language, and it becomes easy to port the load distribution program together with the control program. Further, since the conventional control core can be eliminated, an LSI having a simple structure without the control core can be used, and the development cost can be reduced.

第2に、制御用コアをベアメタルで使用するため、制御処理をベアメタル・コアに適合させる必要がある。データ処理用コアは、パケット等のデータ処理を高速実行することに特化したアーキテクチャをもつ。また、データ処理用コアにおいては、1個のLSI内に多数のデータ処理用コアを集積させることによって、多並列の高速処理を実現すると同時に、コストダウンがはかられている。そのため、制御用に使用される汎用コアと比較すると機能が限定され、高速化のために汎用コアより特殊なハードウェアや命令がつかわれていて、複雑な制御処理をおこなうことを困難にしている。   Second, since the control core is used in bare metal, it is necessary to adapt the control process to the bare metal core. The data processing core has an architecture specialized for high-speed processing of data such as packets. Further, in the data processing core, a large number of data processing cores are integrated in one LSI, thereby realizing multi-parallel high-speed processing and at the same time reducing the cost. For this reason, the functions are limited compared to the general-purpose core used for control, and special hardware and instructions are used for speedup, making it difficult to perform complex control processing. .

そのため、本実施形態においては、データ処理用コアを使用して複雑な制御処理を実現するために、外部からの複雑な制御指令(XML(Extensible Markup Language)にもとづく制御プロトコルなど)を処理する汎用CPU(中央処理装置)、あるいはPCのような汎用コンピュータを使用する。   Therefore, in the present embodiment, in order to realize a complex control process using the data processing core, a general-purpose process for processing a complex control command from the outside (control protocol based on XML (Extensible Markup Language), etc.) A general-purpose computer such as a CPU (Central Processing Unit) or a PC is used.

この汎用CPUにおいて、制御プレーン上でやりとりされる前記の制御指令を基本指令に変換し、分解して、個々の指令をデータプレーン上のパケットに翻訳してベアメタル・コアとのあいだで通信することにより、複雑な制御を実現する。汎用CPUは、データ処理用コアのアーキテクチャや、データ処理用コアがもつ機能に応じた粒度で、指令の分解をおこなうことにより、最適な制御を実現する。汎用CPUは、指令を変換することにより、複雑な処理を要する可変長の制御要求メッセージを、単純に処理できる固定長の制御要求パケットに変換する。また、汎用CPUは、指令を分解することにより再帰的な構造や反復構造をもつ指令を個別の指令に分解する。   In this general-purpose CPU, the control commands exchanged on the control plane are converted into basic commands, disassembled, individual commands are translated into packets on the data plane, and communicated with the bare metal core. As a result, complicated control is realized. The general-purpose CPU realizes optimal control by decomposing commands with a granularity according to the architecture of the data processing core and the functions of the data processing core. The general-purpose CPU converts a variable-length control request message that requires complicated processing into a fixed-length control request packet that can be simply processed by converting the command. Further, the general-purpose CPU decomposes a command having a recursive structure or a repetitive structure into individual commands by decomposing the commands.

第3に、本実施形態においては、ベアメタルの制御用コアと、ベアメタルのデータ処理用コアとのあいだで制御・管理情報をやりとりする際には、データ処理において複数のデータ処理用コア間で使用するベアメタル用のデータわたし手段を使用する。このような手段として共有メモリ、バス、コア間のネットワーク(たとえばLSI上のネットワークであるチップ内ネットワークやSAN)などがある。制御用に使用するコアとデータ処理用のコアとは同一のアーキテクチャをもち、記憶仮想化機構も同一であるから、単純で疑念のないセマンティクスにもとづくデータわたしが実現される。このデータわたし手段は共有メモリ、バス、ネットワークなど、ひろく使用されセマンティクスが確立されたものであるから、高級言語によって記述することができる。高級言語によって記述されたプログラムは、他の種類のネットワーク・プロセッサ等に容易に移植することができる。   Third, in this embodiment, when control / management information is exchanged between a bare metal control core and a bare metal data processing core, it is used between a plurality of data processing cores in data processing. Use data for bare metal. As such means, there are a shared memory, a bus, a network between cores (for example, an intra-chip network or SAN which is a network on an LSI) and the like. Since the core used for control and the data processing core have the same architecture and the same storage virtualization mechanism, data based on simple and unquestioning semantics can be realized. This data distribution means, such as shared memory, buses, and networks, are widely used and have established semantics, so they can be described in a high-level language. A program written in a high-level language can be easily ported to other types of network processors.

第4に、ベアメタルの制御用コアに外部から指示をあたえるには、データ処理用コアにおいてI/Oに使用されるのと同一のネットワーク・インターフェースを使用する。また、パケット・ヘッダ中の識別子によって、パケットがデータ・パケットであるか制御要求パケットであるかを判定する。同一のネットワーク・インターフェースを使用することにより、データ・パケットと制御要求パケットとを、ひとつのスケジューラによってあつかうことができるようになり、自由な負荷配分を容易に実現することが可能になる。また、ハードウェア依存やベンダ依存の負荷配分の方法を使用する必要がなくなるため、負荷配分法を高級言語によって記述すれば高い移植性を実現することができる。   Fourth, in order to give an external instruction to the bare metal control core, the same network interface as that used for I / O in the data processing core is used. Further, it is determined whether the packet is a data packet or a control request packet based on the identifier in the packet header. By using the same network interface, data packets and control request packets can be handled by one scheduler, and free load distribution can be easily realized. Further, since it is not necessary to use a hardware-dependent or vendor-dependent load distribution method, high portability can be realized by describing the load distribution method in a high-level language.

図1は、本実施例におけるコンピュータ・システムの概要の一例をしめす。本実施例のコンピュータ・システムは、ネットワーク仮想化機能をもち、データ・パケットを転送する物理ノード112−1〜112−4、ネットワーク管理装置111、オペレータ・コンソール102、エンド・ユーザのPC118−1、118−2をふくむ。ネットワーク121は、データ・パケット通信装置の一例である物理ノード112−1〜112−4によって構成される。エンド・ユーザのPC118−1、118−2は、ネットワーク121に接続されている。   FIG. 1 shows an example of an outline of a computer system in this embodiment. The computer system of this embodiment has a network virtualization function, and physical nodes 112-1 to 112-4 that transfer data packets, a network management device 111, an operator console 102, an end user PC 118-1, Including 118-2. The network 121 includes physical nodes 112-1 to 112-4 that are examples of data packet communication devices. The end user PCs 118-1 and 118-2 are connected to the network 121.

ネットワーク管理装置111は、ネットワーク全体の管理をおこなう。ネットワーク管理装置111は、CPU142、主記憶装置143をふくむ。オペレータは、オペレータ・コンソール102を経由して、ネットワーク管理装置111に、仮想ネットワークを生成するための指令をあたえることができる。   The network management device 111 manages the entire network. The network management device 111 includes a CPU 142 and a main storage device 143. The operator can give a command for generating a virtual network to the network management apparatus 111 via the operator console 102.

なお、ネットワーク管理装置111は、ひとつのネットワーク121上に複数個の仮想ネットワークを生成することができる。ネットワーク管理装置111は、それにしたがって物理ノード112−1〜112〜4に仮想ネットワークの構成要素を生成する指令をあたえる。仮想ネットワークの構成要素としては、仮想ノードおよび仮想リンク(リンクスリバーとよばれる)がある。   Note that the network management apparatus 111 can generate a plurality of virtual networks on one network 121. The network management device 111 gives a command to generate the components of the virtual network to the physical nodes 112-1 to 112-4 accordingly. As components of the virtual network, there are a virtual node and a virtual link (called a link sliver).

以下、物理ノード112−1〜112−4、エンド・ユーザのPC118−1、118−2を特に区別しない場合、それぞれ物理ノード112、エンド―ユーザのPC118と記載する。なお、本実施例の機能を実現できる範囲であれば、物理ノード112、およびエンド―ユーザのPC118の個数に制限はない。   Hereinafter, the physical nodes 112-1 to 112-4 and the end user PCs 118-1 and 118-2 will be referred to as the physical node 112 and the end-user PC 118, respectively, unless otherwise distinguished. The number of physical nodes 112 and end-user PCs 118 is not limited as long as the functions of this embodiment can be realized.

図2は、図1における物理ノード112の構成例をしめす。物理ノード112は、パケット処理ボード211−1〜211―l、制御ボード241、ネットワーク・インターフェース(NIF)251−1〜251―n、装置内ネットワーク281をふくむ。制御装置の一例である制御ボード241は、物理ノード112内の各要素を制御する。   FIG. 2 shows a configuration example of the physical node 112 in FIG. The physical node 112 includes packet processing boards 211-1 to 211-1, a control board 241, network interfaces (NIF) 251-1 to 251-n, and an in-device network 281. A control board 241, which is an example of a control device, controls each element in the physical node 112.

パケット処理ボード211−1〜211−l、制御ボード241、ネットワーク・インターフェース251は、それぞれ装置内ネットワーク281によってむすばれている。パケット処理ボード211−i(iは1からlまでの任意数)はネットワーク・プロセッサ(NPU)212−ij(jは1からmまでの任意数)をふくむ。   The packet processing boards 211-1 to 211-1, the control board 241, and the network interface 251 are each connected by an in-device network 281. The packet processing board 211-i (i is an arbitrary number from 1 to 1) includes a network processor (NPU) 212-ij (j is an arbitrary number from 1 to m).

物理ノード112に入力されたデータ・パケットは、ネットワーク・プロセッサ212−1〜212−lのうちのいずれかで処理されて、物理ノード112から出力される。また、物理ノード112が、これらのネットワーク・プロセッサ212−1〜212−lを制御するためのメッセージを受信すると、通常はこれを制御ボード241が処理していずれかのネットワーク・プロセッサ212−ijに送信する。なお、制御ボード241を制御のために使用しなくてもよい。この場合、各ネットワーク・プロセッサ212−11〜212−lm内に存在する汎用コアが制御ボード241の役割をになう。汎用コアについては、後述する。   The data packet input to the physical node 112 is processed by any one of the network processors 212-1 to 212-l and output from the physical node 112. When the physical node 112 receives a message for controlling these network processors 212-1 to 212-1, the control board 241 normally processes the message to control one of the network processors 212-ij. Send. Note that the control board 241 may not be used for control. In this case, a general-purpose core existing in each of the network processors 212-11 to 212-lm serves as the control board 241. The general-purpose core will be described later.

仮想ノードは、物理ノード112上に生成される。1個の物理ノード112上に複数個の仮想ノードを生成することができる。また、仮想リンク(リンクスリバー)は仮想ノード間(物理ノード間)に生成される。仮想リンクの端点となる物理ノード112は物理的に隣接している必要はない(物理リンクで直接むすばれている必要はない)。すなわち、遠隔の物理ノード112間に仮想リンクを生成することができる。   The virtual node is generated on the physical node 112. A plurality of virtual nodes can be generated on one physical node 112. Further, virtual links (link slivers) are generated between virtual nodes (between physical nodes). The physical node 112 that is the end point of the virtual link does not need to be physically adjacent (it does not have to be directly connected to the physical link). That is, a virtual link can be generated between remote physical nodes 112.

以下、パケット処理ボード211−1〜211〜l、ネットワーク・プロセッサ212−11〜212−lm、ネットワーク・インターフェース251−1〜251〜nを特に区別しない場合、それぞれパケット処理ボード211、ネットワーク・プロセッサ212、ネットワーク・インターフェース251と記載する。なお、本実施例の機能を実現できる範囲であれば、パケット処理ボード211、ネットワーク・プロセッサ212、およびネットワーク・インターフェース251の個数に制限はない。   Hereinafter, when the packet processing boards 211-1 to 211-1, the network processors 212-11 to 212 -lm, and the network interfaces 251-1 to 251 to n are not particularly distinguished, the packet processing board 211 and the network processor 212, respectively. Will be referred to as a network interface 251. The number of the packet processing board 211, the network processor 212, and the network interface 251 is not limited as long as the functions of the present embodiment can be realized.

図3は、図2におけるネットワーク・プロセッサ212の構成例をしめす。ネットワーク・プロセッサ212は、入力プロセッサ302、出力プロセッサ303、汎用コア311、L1キャッシュ312、L2キャッシュ313、データ処理用コア321−1〜321−n、主記憶装置322−1〜322−n、共有メモリ331、メモリコントローラ341、バス361をふくむ。   FIG. 3 shows a configuration example of the network processor 212 in FIG. The network processor 212 includes an input processor 302, an output processor 303, a general-purpose core 311, an L1 cache 312, an L2 cache 313, data processing cores 321-1 to 321-n, main storage devices 322-1 to 322-n, and shared The memory 331, the memory controller 341, and the bus 361 are included.

入力プロセッサ302は、入力キュー304−1〜304−lをふくむ。装置内ネットワーク281から出力されたパケットは、入力プロセッサ302に転送される。入力プロセッサ302に転送されたパケットは、入力キュー304−1〜304−lのうちのいずれかと、バス361と、を経由して、データ処理用コア321−1〜321−nのうちのいずれかに転送される。   The input processor 302 includes input queues 304-1 to 304-l. The packet output from the intra-device network 281 is transferred to the input processor 302. The packet transferred to the input processor 302 passes through one of the input queues 304-1 to 304-l and the bus 361, and one of the data processing cores 321-1 to 321-n. Forwarded to

出力プロセッサ303は、出力キュー305−1〜305−mをふくむ。データ処理用コア321−1〜321−nのいずれかから出力されたパケットは、バス361と、出力キュー305−1〜305−mのうちのいずれかと、を経由し、さらにネットワーク・インターフェース251を経由して、物理ノード112の外部に転送される。   The output processor 303 includes output queues 305-1 to 305-m. A packet output from one of the data processing cores 321-1 to 321-n passes through the bus 361 and one of the output queues 305-1 to 305-m, and further passes through the network interface 251. Via, it is transferred to the outside of the physical node 112.

なお、バス361は、チップ内ネットワークとしてもよい。また、ネットワーク・プロセッサ212の構成によっては入力キュー304−1〜304−l、および出力キュー305−1〜305−mが、入力プロセッサ302内に存在せず、各データ処理用コア321−1〜321−n内に存在してもよい。また、各入力キュー304−1〜304−lには、制御要求パケット、データ・パケットの双方を入力することができるが、制御要求パケットのみが入力される制御パケット用キューや、データ・パケットのみが入力されるデータ・パケット用キューが存在してもよい。   The bus 361 may be an on-chip network. Depending on the configuration of the network processor 212, the input queues 304-1 to 304-l and the output queues 305-1 to 305-m do not exist in the input processor 302, and the data processing cores 321-1 to 321-1 are not provided. 321-n may exist. In addition, both the control request packet and the data packet can be input to each of the input queues 304-1 to 304-l. However, only the control packet queue to which only the control request packet is input or only the data packet is input. There may be a queue for data packets to which.

データ共有装置の一例である共有メモリ331は、たとえば、後述する制御パケット処理コアと、パケット・データ処理をおこなうデータ処理用コア321−1〜321−nとのあいだにおける、制御データやデータ処理中に生成された情報の共有や、制御信号のやりとり等に使用される。データ処理用コア321−1〜321−nには、それぞれ主記憶装置322−1〜322nが付属する。なお、共有メモリ331、および主記憶装置322−1〜322−nには、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)のような汎用的なメモリを使用してもよいし、CAM(content addressable memory)やTCAM(ternary content addressable memory)のような限定された用途にしか使用できないがより高速なメモリを使用してもよい。また、データ共有装置の一例として、バス361を使用することもできる。   The shared memory 331, which is an example of a data sharing apparatus, is in the middle of control data and data processing, for example, between a control packet processing core, which will be described later, and data processing cores 321-1 to 321-n that perform packet data processing. It is used for sharing information generated in the system and for exchanging control signals. Main storage devices 322-1 to 322n are attached to the data processing cores 321-1 to 321-n, respectively. The shared memory 331 and the main storage devices 322-1 to 322-n may be general-purpose memories such as SRAM (Static Random Access Memory) and DRAM (Dynamic Random Access Memory). Although it can be used only for limited purposes such as CAM (content addressable memory) and TCAM (ternary content addressable memory), a higher-speed memory may be used. Further, the bus 361 can be used as an example of the data sharing apparatus.

データ処理用コア321−1〜321−nは、単純なパケット・データ処理のために最適化された小規模なRISC(Reduced Instruction Set Computer)アーキテクチャのコアである。したがって、データ処理用コア321−1〜321−nは、複雑な分岐高速化の機能や、並列演算等の高度な機能はもたない一方で、特殊化されたマルチスレッドなど、高速にパケット処理を実行するための機構をそなえている。データ処理用コア321−1〜321−nは、マルチスレッドの制御などのために、汎用のプログラミング言語においては対応していない特殊な命令を実行する必要が生じることがありうる。   The data processing cores 321-1 to 321-n are cores of a small RISC (Reduced Instruction Set Computer) architecture optimized for simple packet data processing. Therefore, the data processing cores 321-1 to 321-n do not have complicated branch speed-up functions or advanced functions such as parallel computation, but at the same time perform high-speed packet processing such as specialized multithreading. It has a mechanism to execute The data processing cores 321-1 to 321-n may need to execute special instructions that are not supported in a general-purpose programming language for multi-thread control and the like.

汎用コア311は、当該ネットワーク・プロセッサ212内の各要素、すなわちデータ処理用コア321−1〜321−n、入力プロセッサ302、出力プロセッサ303等を制御する。汎用コア311は、LinuxやWindowsなどのOSが効率よく実行できるように最適化された、比較的大規模なアーキテクチャのコアである。汎用コア311は、複数のコアで構成されていてもよい。   The general-purpose core 311 controls each element in the network processor 212, that is, the data processing cores 321-1 to 321-n, the input processor 302, the output processor 303, and the like. The general-purpose core 311 is a core of a relatively large-scale architecture optimized so that an OS such as Linux or Windows can be efficiently executed. The general-purpose core 311 may be composed of a plurality of cores.

メモリコントローラ341は、ネットワーク・プロセッサ212の外部に存在する主記憶装置342に接続されている。主記憶装置342として、たとえば、DRAMを主要な媒体とする。汎用コア311は通常、この主記憶を仮想化するので、L1キャッシュ312、L2キャッシュ313などのハードウェアが付属する。主記憶装置342には、データ処理用コア321において実行されるプログラム351が格納され、必要に応じて共有メモリ331またはデータ処理用コア321−1〜321−nに付随する主記憶装置322−1〜322−nにキャッシュされる。   The memory controller 341 is connected to a main storage device 342 existing outside the network processor 212. As the main storage device 342, for example, a DRAM is used as a main medium. Since the general-purpose core 311 normally virtualizes this main memory, hardware such as an L1 cache 312 and an L2 cache 313 is attached. The main storage device 342 stores a program 351 executed by the data processing core 321, and the main storage device 322-1 attached to the shared memory 331 or the data processing cores 321-1 to 321 -n as necessary. Cached at ~ 322-n.

本実施例においては主記憶装置342へのプログラム351のロードのために汎用コア311を使用するが、後述するように、データ処理用コア321−1〜321−nの動作中には、汎用コア311による制御はおこなわない。そのため、本実施例においても、汎用コア311を使用して処理するプログラム351のロードと、データ処理用コアの起動・停止等の処理とを、汎用コア311を使用せずに処理できるようにネットワーク・プロセッサ212を構成すれば、汎用コア311をもうけない構成も可能である。   In this embodiment, the general-purpose core 311 is used for loading the program 351 to the main storage device 342. As will be described later, during the operation of the data processing cores 321-1 to 321-n, the general-purpose core 311 is used. The control by 311 is not performed. Therefore, also in the present embodiment, the network is provided so that the loading of the program 351 to be processed using the general-purpose core 311 and the processing such as starting and stopping of the data processing core can be processed without using the general-purpose core 311. If the processor 212 is configured, a configuration without the general-purpose core 311 is possible.

汎用コア311をもうけない構成をとるときは、プログラム351のロードはネットワーク・プロセッサ212の外部からの直接メモリ・アクセス(DMA)によっておこなえばよい。また、データ処理用コア321の起動・停止も、入出力命令やDMAによるプログラム351や、データのかきかえによってネットワーク・プロセッサ212の外部からおこなえばよい。このようにして汎用コア311をなくすことにより、LSIの構造を単純化し、開発コストを低下させることが可能になる。   When the general-purpose core 311 is not provided, the program 351 may be loaded by direct memory access (DMA) from the outside of the network processor 212. The data processing core 321 may be started / stopped from the outside of the network processor 212 by input / output commands, a DMA program 351, or data exchange. By eliminating the general-purpose core 311, the LSI structure can be simplified and the development cost can be reduced.

以下、入力キュー304−1〜304−l、出力キュー305−305−m、データ処理用コア321−1〜321−n、主記憶装置322−1〜322−nを特に区別しない場合、それぞれ入力キュー304、出力キュー305、データ処理用コア321、主記憶装置322と記載する。なお、本実施例の機能を実現できる範囲であれば、入力キュー304、出力キュー305、汎用コア311、データ処理用コア321、および主記憶装置322の個数に制限はない。   Hereinafter, when the input queues 304-1 to 304-l, the output queue 305-305-m, the data processing cores 321-1 to 321-n, and the main storage devices 322-1 to 322-n are not particularly distinguished, they are respectively input. The queue 304, the output queue 305, the data processing core 321, and the main storage device 322 are described. Note that the number of the input queue 304, the output queue 305, the general-purpose core 311, the data processing core 321, and the main storage device 322 is not limited as long as the functions of the present embodiment can be realized.

(単純なデータ処理制御におけるメッセージの内容)
以下、制御要求メッセージによるデータ処理の制御法を説明する。まず、図4A、図4Bを使用して単純な制御要求メッセージ、および単純な制御要求メッセージを変換した制御要求パケットの内容を説明する。物理ノード112は、物理ノード112外部の通信、および物理ノード112内部の通信を、イーサネット(登録商標、以下同)によっておこなう。物理ノード112は、物理ノード112外部から到着したパケットのうち、特定のアドレスをもつものだけを内部にとりこみ、当該パケットにふくまれる外部のMACアドレスを内部のMACアドレスにかきかえる。
(Message contents in simple data processing control)
The data processing control method using the control request message will be described below. First, a simple control request message and the contents of a control request packet obtained by converting the simple control request message will be described with reference to FIGS. 4A and 4B. The physical node 112 performs communication outside the physical node 112 and communication inside the physical node 112 by Ethernet (registered trademark, hereinafter the same). The physical node 112 takes in only a packet having a specific address from the outside of the physical node 112 and rewrites the external MAC address included in the packet to the internal MAC address.

このような処理は、VLANを使用して実装されたネットワークを仮想化する際に必要になる。このような方法によって生成された仮想のリンクを、VLANリンクスリバーとよぶ。VLANリンクスリバーおよび後述するGREリンクスリバー(IETF標準であるGeneric Routing Encapsulation(GRE)プロトコルを使用する仮想リンク)については、たとえばつぎの文献に記述されている。
Yasusi Kanada, Kei Shiraishi, and Akihiro Nakao, "Network-virtualization Nodes that Support Mutually Independent Development and Evolution of Node Components", 13th IEEE International Conference on Communication Systems (ICCS 2012), 2012-11-23.
Such processing is required when virtualizing a network implemented using VLAN. A virtual link generated by such a method is called a VLAN link sliver. The VLAN link sliver and the GRE link sliver described later (virtual link using the Generic Routing Encapsulation (GRE) protocol which is an IETF standard) are described in, for example, the following documents.
Yasusi Kanada, Kei Shiraishi, and Akihiro Nakao, "Network-virtualization Nodes that Support Mutually Independent Development and Evolution of Node Components", 13th IEEE International Conference on Communication Systems (ICCS 2012), 2012-11-23.

図4Aは、VLANリンクスリバーを生成する制御指令421をふくむ制御要求メッセージ411の一例をしめす。制御指令421は、物理ノード112の外部のMACアドレス00−03−b0−00−00−11と、物理ノード112の内部のMACアドレス00−04−b0−00−00−01とを対応させて、VLANリンクスリバーを生成することを指令する。   FIG. 4A shows an example of a control request message 411 including a control command 421 for generating a VLAN link sliver. The control command 421 associates an external MAC address 00-03-b0-00-00-11 of the physical node 112 with an internal MAC address 00-04--b0-00-00-01 of the physical node 112. , Command to create a VLAN link sliver.

なお、制御指令421のように、データ処理用コア321による処理が可能な状態に分解された指令を基本指令とよぶ。<CNPUMAC>は後述する制御要求パケットをうけとる制御用インターフェース(データ処理用コア321など)のMACアドレスである。<NeMIF>は制御指令を送信するインターフェースの識別子である。   Note that a command that is decomposed into a state in which processing by the data processing core 321 is possible, such as the control command 421, is referred to as a basic command. <CNPUMAC> is a MAC address of a control interface (such as a data processing core 321) that receives a control request packet described later. <NeMIF> is an identifier of an interface that transmits a control command.

図4Bは、制御指令421に対応する制御要求パケット412と、制御要求パケット412に対応する制御応答パケット417の一例をしめす。制御要求パケット412は、制御指令421にふくまれる上記3個のMACアドレスをふくむ。制御要求パケット412は、イーサネットのパケットであり、先頭に格納されたCNPUMACが当該制御要求パケット412の転送先、すなわち後述する制御パケット処理コアを指示している。なお、当該制御要求パケット412の転送先の決定方法として、たとえばラウンドロビン等がある。   FIG. 4B shows an example of a control request packet 412 corresponding to the control command 421 and a control response packet 417 corresponding to the control request packet 412. The control request packet 412 includes the three MAC addresses included in the control command 421. The control request packet 412 is an Ethernet packet, and the CNPUMAC stored at the head indicates a transfer destination of the control request packet 412, that is, a control packet processing core described later. As a method for determining the transfer destination of the control request packet 412, for example, there is a round robin or the like.

NeMMACは当該制御要求パケット412の送信元のMACアドレスを表す。typeはイーサネットのタイプ・フィールドを表す。このイーサネット・パケットは専用の形式をしていて、vlink_add(2バイトの数値)はこの当該制御要求パケット412の内容がVLANリンクスリバー生成指令であることをあらわしている。そして、それにつづく2個のMACアドレスがVLANリンクスリバー生成指令のパラメータである。制御要求パケット412に対する制御応答パケット417は、NeMMAC、CNPUMAC、type、および応答結果(図4BではOK)をふくむ。   NeMMAC represents the MAC address of the transmission source of the control request packet 412. type represents an Ethernet type field. This Ethernet packet has a dedicated format, and vlink_add (2-byte numerical value) indicates that the content of the control request packet 412 is a VLAN link sliver generation command. The two MAC addresses that follow are parameters of the VLAN link sliver generation command. The control response packet 417 for the control request packet 412 includes NeMMAC, CNPUMAC, type, and the response result (OK in FIG. 4B).

なお、制御要求メッセージ411にはXMLなどの、可変長のデータが使用されることがおおい。制御要求メッセージ411に、可変長のデータが使用される場合は、複数のパケットに分割されることもある。また、制御要求メッセージ411は、文字列として記述され、その文法を解析するには、構文および意味の解析処理という複雑な処理が必要であり、データ処理用コア321において実行するには適していない。   Note that variable length data such as XML is often used for the control request message 411. When variable-length data is used for the control request message 411, it may be divided into a plurality of packets. Further, the control request message 411 is described as a character string, and in order to analyze the grammar, complicated processing such as syntax and semantic analysis processing is required, and it is not suitable for execution in the data processing core 321. .

これに対して制御要求パケット412は固定長であり、1個のパケットが1個の指令に対応する。そのため、制御要求パケット412は、複雑なプロトコル機能を実装していないベアメタルのデータ処理用コア321においても、容易にあつかうことができる。   In contrast, the control request packet 412 has a fixed length, and one packet corresponds to one command. Therefore, the control request packet 412 can be easily used even in a bare metal data processing core 321 that does not have a complicated protocol function.

(単純なデータ処理制御法)
図5は、図4Aでしめした単純な制御要求メッセージ411による制御シーケンスの一例をしめす。図5では、オペレータによって制御シーケンスがオペレータ・コンソール102によって起動される例をしめしているが、ネットワーク管理装置111によって制御シーケンスが起動されてもよい。
(Simple data processing control method)
FIG. 5 shows an example of a control sequence by the simple control request message 411 shown in FIG. 4A. FIG. 5 shows an example in which the control sequence is started by the operator console 102 by the operator, but the control sequence may be started by the network management apparatus 111.

オペレータがオペレータ・コンソール102にコマンドを投入すると、オペレータ・コンソール102は、ネットワーク管理装置111にネットワーク121全体に対して、当該コマンドに対応する制御要求メッセージ410を送信する(S450)。   When the operator inputs a command to the operator console 102, the operator console 102 transmits a control request message 410 corresponding to the command to the network management apparatus 111 to the entire network 121 (S450).

ネットワーク管理装置111は、制御要求メッセージ410を受信すると、制御要求メッセージ410に対応する制御要求メッセージ411作成し、配下の各物理ノード112の制御ボード241に送信する(S451)。   Upon receiving the control request message 410, the network management apparatus 111 creates a control request message 411 corresponding to the control request message 410 and transmits it to the control board 241 of each subordinate physical node 112 (S451).

なお、ネットワーク管理装置111は、制御の対象とならない物理ノード112に対しては、制御要求メッセージ411を送信しないようにすることもできる。また、物理ノード112に対して送信された制御要求メッセージ411は、物理ノード112内にある制御ボード241が受信するが、ネットワーク・プロセッサ212内にある汎用コア311が受信してもよい。   Note that the network management apparatus 111 may be configured not to transmit the control request message 411 to the physical node 112 that is not a control target. The control request message 411 transmitted to the physical node 112 is received by the control board 241 in the physical node 112, but may be received by the general-purpose core 311 in the network processor 212.

制御ボード241は、制御要求メッセージ411を、翻訳することで、制御要求パケット412を作成し、制御要求パケット412を、当該物理ノード112内にあるネットワーク・プロセッサ212の入力プロセッサ302に転送する(S452)。入力プロセッサ302に転送された制御要求パケット412は、いずれかのデータ処理用コア321において処理可能になるまでの間、いずれかの入力キュー304に保管される。   The control board 241 creates a control request packet 412 by translating the control request message 411, and transfers the control request packet 412 to the input processor 302 of the network processor 212 in the physical node 112 (S452). ). The control request packet 412 transferred to the input processor 302 is stored in one of the input queues 304 until it can be processed in one of the data processing cores 321.

なお、ステップS452において、制御ボード241が制御要求メッセージ411を処理しているが、物理ノード112の外部にあるプロセッサ(PC等)が当該処理をしてもよい。また、制御要求メッセージ411には、当該物理ノード112内のすべてのパケット処理ボード211に関するものと、当該物理ノード112内の特定のパケット処理ボード211だけに関するものとがあり、ステップS452では、それぞれについてことなる処理が必要になる。   In step S452, the control board 241 processes the control request message 411. However, a processor (such as a PC) outside the physical node 112 may perform the process. The control request message 411 includes a message related to all the packet processing boards 211 in the physical node 112 and a message related to only the specific packet processing board 211 in the physical node 112. In step S452, Different processing is required.

制御要求メッセージ411が、当該物理ノード112内のすべてのパケット処理ボード211に関するものであるときは、制御ボード241は、当該物理ノード112内のすべてのパケット処理ボード211にあてて制御要求パケット412を送信すればよい。また、ネットワーク管理装置111が、当該物理ノード112内のパケット処理ボード211にふくまれるすべての汎用コア311にあてて制御要求メッセージ411を送信してもよい。   When the control request message 411 relates to all the packet processing boards 211 in the physical node 112, the control board 241 applies the control request packet 412 to all the packet processing boards 211 in the physical node 112. Just send it. Further, the network management apparatus 111 may transmit the control request message 411 to all the general-purpose cores 311 included in the packet processing board 211 in the physical node 112.

制御要求メッセージ411が、当該物理ノード112内の特定のパケット処理ボード211に関するときは、たとえば、制御ボード241は、制御するべきパケット処理ボード211を選択し、1個の制御要求パケット412を選択されたパケット処理ボード211にあてて送信すればよい。また、ネットワーク管理装置111が制御するべきパケット処理ボード211を選択し、選択されたパケット処理ボード211にふくまれる汎用コア311にあてて1個の制御要求メッセージ411を送信してもよい。   When the control request message 411 relates to a specific packet processing board 211 in the physical node 112, for example, the control board 241 selects the packet processing board 211 to be controlled, and one control request packet 412 is selected. The packet processing board 211 may be transmitted. Alternatively, the packet management board 211 to be controlled by the network management apparatus 111 may be selected, and one control request message 411 may be transmitted to the general-purpose core 311 included in the selected packet processing board 211.

なお、ステップS451で、汎用コア311が制御要求メッセージ411を受信した場合は、ステップS452において汎用コア311が制御要求パケット412を送信する。このとき、汎用コア311は、当該制御要求パケット412を、入力プロセッサ302内の入力キュー304に一旦もどす。入力キュー304が各データ処理用コア321内に存在するときは、汎用コア311は、当該制御要求パケット412を、各データ処理用コア321に転送する。   When the general-purpose core 311 receives the control request message 411 in step S451, the general-purpose core 311 transmits a control request packet 412 in step S452. At this time, the general-purpose core 311 once returns the control request packet 412 to the input queue 304 in the input processor 302. When the input queue 304 exists in each data processing core 321, the general-purpose core 311 transfers the control request packet 412 to each data processing core 321.

さらに、いずれかのデータ処理用コア321において処理が可能になったら、当該データ処理用コア321は、入力プロセッサ302に処理が可能な旨を通知する。入力プロセッサ302は、当該通知を送信したデータ処理用コア321から、制御処理のために使用するデータ処理用コア321を選択し、制御要求パケット412を転送する(S453)。以下、制御処理を行う当該データ処理用コア321を、制御パケット処理コア401とよぶ。入力プロセッサ302が、制御パケット処理コア401を選択する方法については後述する。   Further, when processing is possible in any of the data processing cores 321, the data processing core 321 notifies the input processor 302 that processing is possible. The input processor 302 selects the data processing core 321 used for the control processing from the data processing core 321 that has transmitted the notification, and transfers the control request packet 412 (S453). Hereinafter, the data processing core 321 that performs control processing is referred to as a control packet processing core 401. A method by which the input processor 302 selects the control packet processing core 401 will be described later.

制御パケット処理コア401は共有メモリ331を使用して、パケット・データ処理をおこなうデータ処理用コア321と、制御要求パケット412にふくまれる制御信号、および制御データ等をやりとりする。以下、パケット・データ処理を行う当該データ処理用コアをデータ・パケット処理コア402とよぶ。   The control packet processing core 401 uses the shared memory 331 to exchange a control signal included in the control request packet 412, control data, and the like with a data processing core 321 that performs packet data processing. Hereinafter, the data processing core that performs packet data processing is referred to as a data packet processing core 402.

制御パケット処理コア401は、データ処理において必要なパラメータなどの、制御要求パケット412にふくまれるデータをデータ・パケット処理コア402にわたす必要があるときは、当該データを共有メモリ331にかきこむ(S454)。データ・パケット処理コア402は、共有メモリ331にかきこまれた当該データが必要になったときに、当該データをよみだす(S455)。   When the control packet processing core 401 needs to pass data included in the control request packet 412 such as parameters necessary for data processing to the data packet processing core 402, the control packet processing core 401 writes the data into the shared memory 331 (S454). . When the data / packet processing core 402 needs the data written in the shared memory 331, the data / packet processing core 402 reads the data (S455).

また、データ・パケット処理コア402は、データ処理中に生成された統計情報などを共有メモリ331にかきこむ(S456)。制御パケット処理コア401は、ネットワーク管理装置111にわたすべきデータをデータ・パケット処理コア402からうけとる必要があるときは、データ・パケット処理コア402が共有メモリにかきこんだデータをよみだす(S457)。   Further, the data packet processing core 402 writes the statistical information generated during the data processing into the shared memory 331 (S456). When it is necessary for the control packet processing core 401 to receive data to be transmitted to the network management apparatus 111 from the data packet processing core 402, the control packet processing core 401 reads out the data written in the shared memory (S457).

制御パケット処理コア401は、よみだした値を挿入した、制御応答パケット417を作成し、出力プロセッサ303に送信する(S458)。出力プロセッサ303に転送された制御応答パケット417は、制御ボード241が制御応答パケット417を受信できる状態になるまでの間、いずれかの出力キュー305に保管される。出力プロセッサ303は、制御応答パケット417を制御ボード241に送信する(S459)。制御ボード241は、受信した制御応答パケット417を、制御応答メッセージ418に翻訳し、ネットワーク管理装置111に送信する(S460)。ネットワーク管理装置111は、制御応答メッセージ418に対応する制御応答メッセージ419を作成し、オペレータ・コンソール102に送信する(S461)。   The control packet processing core 401 creates a control response packet 417 with the read value inserted, and transmits it to the output processor 303 (S458). The control response packet 417 transferred to the output processor 303 is stored in one of the output queues 305 until the control board 241 can receive the control response packet 417. The output processor 303 transmits the control response packet 417 to the control board 241 (S459). The control board 241 translates the received control response packet 417 into a control response message 418 and transmits it to the network management apparatus 111 (S460). The network management apparatus 111 creates a control response message 419 corresponding to the control response message 418 and transmits it to the operator console 102 (S461).

(このデータ処理制御法の利点)
本実施例におけるデータ処理制御法には、以下のような3つの利点がある。第1に、本実施例におけるデータ交換は、制御パケット処理コア401とデータ・パケット処理コア402とが、同一アーキテクチャでかつ、ともにベアメタルで動作する。さらに、データ交換に使用する手段も並列処理セマンティクスが確立された、共有メモリ331、バス361等の汎用の手段であるため、データ交換のただしさを容易に保証することができるという利点がある。
(Advantages of this data processing control method)
The data processing control method in this embodiment has the following three advantages. First, in the data exchange in the present embodiment, the control packet processing core 401 and the data packet processing core 402 operate on the same architecture and bare metal. Furthermore, since the means used for data exchange is general-purpose means such as the shared memory 331 and the bus 361 having established parallel processing semantics, there is an advantage that it is possible to easily guarantee the length of data exchange.

第2に、本実施例におけるデータ処理制御法は、データ交換インターフェースとして汎用の手段を使用するため、データ交換手続きを汎用のプログラミング言語によって記述することが可能である。つまり、プログラム351を、容易に他のネットワーク・プロセッサ212等に移植することができるという利点がある。   Second, since the data processing control method in the present embodiment uses general-purpose means as a data exchange interface, the data exchange procedure can be described in a general-purpose programming language. That is, there is an advantage that the program 351 can be easily ported to another network processor 212 or the like.

第3に、本実施例におけるデータ処理制御法では、制御パケット処理コア401は、データ・パケット処理コア402における情報を高速に把握することができる。したがって、サービス妨害攻撃(DoS)などの攻撃をうけた際に、制御パケット処理コア401は、当該攻撃を即座に検知し、対応することができるという利点がある。   Third, in the data processing control method according to the present embodiment, the control packet processing core 401 can grasp the information in the data packet processing core 402 at high speed. Therefore, when receiving an attack such as a denial-of-service attack (DoS), the control packet processing core 401 has an advantage that it can immediately detect and respond to the attack.

たとえば、制御パケット処理コア401は、共有メモリ331にかきこまれたデータ・パケット処理コア402からの統計情報を収集し、1個のポートに対するアクセスが集中するときには攻撃の特徴を把握する。制御パケット処理コア401は、当該攻撃の特徴をもつパケットを廃棄するようにデータ・パケット処理コア402に指示することができる。   For example, the control packet processing core 401 collects statistical information from the data packet processing core 402 written in the shared memory 331, and grasps the characteristics of the attack when access to one port is concentrated. The control packet processing core 401 can instruct the data packet processing core 402 to discard the packet having the characteristic of the attack.

制御パケット処理コア401は、当該攻撃の特徴を単純な計算により把握することはできないが、ネットワーク・プロセッサ212のなかには、このような計算をハードウェアでおこなうものもある。また、本実施例においては、攻撃特徴把握処理専用のデータ・パケット処理コア402をわりあてることも可能である。   The control packet processing core 401 cannot grasp the characteristics of the attack by simple calculation, but some network processors 212 perform such calculation by hardware. In this embodiment, it is also possible to allocate a data packet processing core 402 dedicated to attack feature grasp processing.

データ・パケット処理コア402は、データ・パケット本来の処理と、このような攻撃に対するそなえと、を並列に実行することができる。そのためには、同一のパケットをミラーして両者にわたせばよい。入力プロセッサ302等が、このようなミラーリングをおこなうことができる。   The data packet processing core 402 can execute the original processing of the data packet and the preparation for such an attack in parallel. For this purpose, the same packet may be mirrored and passed to both. The input processor 302 or the like can perform such mirroring.

(MACアドレス対応表の内容)
図6は、本実施例におけるデータ処理制御法において使用される、MACアドレス対応表422の構成例をしめす。MACアドレス対応表422は、たとえば、制御パケット処理コア401とデータ・パケット処理コア402とのあいだで共有される。また、データ・パケット処理コア402が単独でMACアドレス対応表422にアクセスし、両者のあいだのインターフェースを介して、制御パケット処理コア401からのかきこみ要求、およびよみだし要求が処理されてもよい。
(Contents of MAC address correspondence table)
FIG. 6 shows a configuration example of the MAC address correspondence table 422 used in the data processing control method in this embodiment. The MAC address correspondence table 422 is shared, for example, between the control packet processing core 401 and the data packet processing core 402. Further, the data packet processing core 402 may access the MAC address correspondence table 422 alone, and the write request and the read request from the control packet processing core 401 may be processed via the interface between the two.

MACアドレス対応表422の共有のための手段およびデータ・パケット処理コア402からの単独アクセスのための手段として、たとえば、SRAM、DRAM、CAM、TCAM等が使用される。   As means for sharing the MAC address correspondence table 422 and means for single access from the data packet processing core 402, for example, SRAM, DRAM, CAM, TCAM, or the like is used.

前述した制御要求メッセージ411は、物理ノード112の外部のMACアドレス00−03−b0−00−00−11と、物理ノード112の内部のMACアドレス00−04−b0−00−00−01とを対応させて、VLANリンクスリバーを生成する指令である。つまり行711は、制御パケット処理コア401が、制御要求パケット412を受信した際に生成されたものである。他の行も同様に、制御パケット処理コア401が、他の制御要求パケットを受信した際に生成されたものである。   The control request message 411 described above includes an external MAC address 00-03-b0-00-00-11 of the physical node 112 and an internal MAC address 00-04-b0-00-00-01 of the physical node 112. Correspondingly, this is a command for generating a VLAN link sliver. That is, the row 711 is generated when the control packet processing core 401 receives the control request packet 412. Similarly, the other rows are generated when the control packet processing core 401 receives another control request packet.

データ・パケットが物理ノード112の外部からとどいたときは、データ・パケット処理コア402は、MACアドレス対応表422を参照し、MACアドレス対応表422からのよみだしをおこなう。このとき、データ・パケット処理コア402は、データ・パケットの送信元のMACアドレスが登録された外部アドレスにマッチするかどうかを検索し、マッチすれば当該外部アドレスを対応する内部アドレスにかきかえる。これによって、当該物理ノード112の外部からとどいた仮想リンク上のパケットが当該物理ノード112の内部に入力される。   When the data packet arrives from the outside of the physical node 112, the data packet processing core 402 refers to the MAC address correspondence table 422 and reads out from the MAC address correspondence table 422. At this time, the data packet processing core 402 searches whether the MAC address of the transmission source of the data packet matches the registered external address, and if it matches, rewrites the external address to the corresponding internal address. As a result, a packet on the virtual link that has arrived from the outside of the physical node 112 is input to the inside of the physical node 112.

また、データ・パケットが当該物理ノード112の内部からとどいたときは、当該物理ノード112の外部からとどいたときと同様に、データ・パケット処理コア402は、MACアドレス対応表422を参照し、MACアドレス対応表422からのよみだしをおこなう。データ・パケット処理コア402は、当該データ・パケットの送信元のMACアドレスが、MACアドレス対応表422に登録された内部アドレスにマッチするかどうかを検索し、マッチすれば当該内部アドレスを対応する外部アドレスにかきかえる。これによって、当該物理ノード112の内部からとどいた仮想リンク上のパケットが、当該物理ノード112の外部に出力される。   Further, when the data packet arrives from the inside of the physical node 112, the data packet processing core 402 refers to the MAC address correspondence table 422 in the same manner as when the data packet arrives from the outside of the physical node 112. Read-out from the address correspondence table 422 is performed. The data packet processing core 402 searches whether or not the MAC address of the transmission source of the data packet matches the internal address registered in the MAC address correspondence table 422. Rewrite the address. As a result, the packet on the virtual link that has arrived from the inside of the physical node 112 is output to the outside of the physical node 112.

なお、データ・パケットが物理ノード112の外部からとどいた場合、内部からとどいた場合の双方において、データ・パケットに含まれる外部アドレス、または内部アドレスにマッチする行が存在しないデータ・パケットは、不正なパケットとして廃棄される。すなわち、対応する仮想リンクが存在しないパケットは廃棄される。   It should be noted that both when the data packet arrives from outside the physical node 112 and when it arrives from inside, an external address included in the data packet or a data packet that does not have a line matching the internal address is illegal. Discarded as a bad packet. That is, a packet for which no corresponding virtual link exists is discarded.

パケットが当該物理ノード112の外部からとどいたか、内部からとどいたかは、当該物理ノード112のどのインターフェースにとどいたかで識別するか、またはVLAN番号によって識別する。VLANリンクスリバー生成においては、データ・パケット処理コア402は、原則的に共有メモリ331へのかきこみをおこなわない。   Whether the packet has arrived from the outside of the physical node 112 or from the inside is identified by which interface of the physical node 112 is reached, or is identified by the VLAN number. In the VLAN link sliver generation, the data packet processing core 402 does not write to the shared memory 331 in principle.

しかし、処理の内容によっては、ステップS456において、データ・パケット処理コア402は、共有メモリ331へのかきこみをおこなう。ステップS457において、制御パケット処理コア401は、共有メモリ331にかきこまれた結果をよみだす。制御パケット処理コア401は、当該結果を制御応答パケット417にのせ、出力プロセッサ303を経由して、制御ボード241に応答する。   However, depending on the content of the process, the data packet processing core 402 writes into the shared memory 331 in step S456. In step S457, the control packet processing core 401 reads the result written in the shared memory 331. The control packet processing core 401 puts the result on the control response packet 417 and responds to the control board 241 via the output processor 303.

ステップS460において、制御ボード241は、当該制御応答パケット417の内容を、制御応答メッセージ418にとりこみ、ネットワーク管理装置111に報告している。これによって、データ・パケット処理コア402がもつ情報を、ネットワーク管理装置111につたえることができる。   In step S 460, the control board 241 incorporates the content of the control response packet 417 into the control response message 418 and reports it to the network management apparatus 111. As a result, the information held by the data packet processing core 402 can be provided to the network management apparatus 111.

パケットをワイヤレートで処理するためにはMACアドレス対応表422は高速なメモリ上に存在する必要がある。汎用のメモリとしては、データ処理用コア321に付属した主記憶装置322や共有メモリ331に、たとえばSRAMを使用することができるが、このような単純な表を表現するにはCAMが適している。MACアドレス対応表422はSRAMにおいてはハッシュやツリーなどのデータ構造によって表現する必要があるが、CAMを使用すればより直接的に表現することができるため、はるかに高速にアクセスすることができる。   In order to process a packet at a wire rate, the MAC address correspondence table 422 needs to exist on a high-speed memory. As a general-purpose memory, for example, SRAM can be used for the main memory 322 and the shared memory 331 attached to the data processing core 321, but CAM is suitable for expressing such a simple table. . The MAC address correspondence table 422 needs to be expressed by a data structure such as a hash or a tree in the SRAM. However, since it can be expressed more directly by using the CAM, it can be accessed much faster.

(データ処理用コアにおける処理プログラムの選択)
本実施例において、1つのデータ処理用コア321が、データ・パケットと制御要求パケットとをともにあつかうことがあるため、当該データ処理用コア321は、受信したパケットの種類によってデータ処理用プログラム、または制御用プログラムのどちらを実行するかを選択する必要がある。
(Selection of processing program in data processing core)
In the present embodiment, since one data processing core 321 may handle both a data packet and a control request packet, the data processing core 321 has a data processing program or a program depending on the type of received packet, or It is necessary to select which of the control programs to execute.

図7Aは、データ処理用コア321におけるプログラム選択の処理をしめすフローチャートである。当該処理は、データ処理用コア321がパケットを受信するたびに、くりかえし実行される。   FIG. 7A is a flowchart showing a program selection process in the data processing core 321. This process is repeated each time the data processing core 321 receives a packet.

まず、データ処理用コア321は、パケット受信待機状態にある(S1660)。データ処理用コアがパケットを受信する(S1661)。データ処理用コア321は、パケットのヘッダの一部の値を参照することによってパケットの種類を判定する(S1662)。データ処理用コア321は、受信したパケットの種類が制御要求パケットであると判定したとき(S1662:制御パケット)、制御用プログラムを実行する(S1663)。データ処理用コア321は、受信したパケットの種類がデータ・パケットであると判定したとき(S1662:データ・パケット)、データ処理用プログラムを実行する(S1664)。   First, the data processing core 321 is in a packet reception standby state (S1660). The data processing core receives the packet (S1661). The data processing core 321 determines the type of the packet by referring to a partial value of the packet header (S1662). When determining that the type of the received packet is a control request packet (S1662: control packet), the data processing core 321 executes the control program (S1663). When the data processing core 321 determines that the type of the received packet is a data packet (S1662: data packet), the data processing core 321 executes the data processing program (S1664).

この処理を可能にするために、制御ボード241は、制御要求パケット412を生成する際に、データ・パケットから識別可能なタグを、制御要求パケット412のヘッダに格納しておく必要がある。これは、制御要求パケットとデータ・パケットとが、同一のネットワーク・インターフェース251から到着することがあるためである。したがって、両者がことなるネットワーク・インターフェース251から到着する場合には、たとえば制御要求パケットにネットワーク・インターフェース251のアドレスを付加すれば、ステップS1662における判定を省略できる。上述した処理により、データ処理用コア321は、制御要求パケットと、データ・パケットの双方について処理をおこなうことができる。したがって、たとえば後述する混合処理の方法等を使用すれば、制御パケット処理コア401と、データ・パケット処理コア402の比率を動的に変更することができ、制御処理とデータ処理とのあいだでの動的な負荷配分が実現される。   In order to enable this processing, the control board 241 needs to store a tag identifiable from the data packet in the header of the control request packet 412 when generating the control request packet 412. This is because the control request packet and the data packet may arrive from the same network interface 251. Therefore, when both arrive from different network interfaces 251, the determination in step S1662 can be omitted by adding the address of the network interface 251 to the control request packet, for example. Through the processing described above, the data processing core 321 can perform processing on both the control request packet and the data packet. Therefore, for example, if the method of mixed processing described later is used, the ratio between the control packet processing core 401 and the data packet processing core 402 can be dynamically changed. Dynamic load distribution is realized.

なお、本実施例では、制御用プログラムとデータ処理用プログラムは同一のプログラミング言語によって記述することができる。また、当該同一のプログラミング言語では、共有メモリ331等のデータわたし手段を使用して、両者のあいだのデータわたしを実現することができる。これにより、制御用プログラムとデータ処理用プログラムとにおけるデータわたしを、統一されたセマンティクスにしたがって記述することができる。そのため、セマンティクス上、疑念のないデータわたしが実現される。   In the present embodiment, the control program and the data processing program can be described in the same programming language. In the same programming language, data i between the two can be realized by using data sharing means such as the shared memory 331. Thus, the data I in the control program and the data processing program can be described according to unified semantics. Therefore, data with no doubt in terms of semantics is realized.

また、制御用プログラムとデータ処理用プログラムとを同一のプログラミング言語によって記述することができるため、移植可能なデータ処理用プログラムを開発することにより、制御用プログラムも同時に移植可能になる。   In addition, since the control program and the data processing program can be described in the same programming language, the control program can be ported at the same time by developing a portable data processing program.

(制御要求パケット転送先コアの選択)
以下、データ処理用コア321のなかから、制御要求パケットを転送するべき制御パケット処理コア401を選択する方法について説明する。上述したようにデータ処理用コア321は、データ処理と単純な制御処理とを実行することができる。
(Selection of control request packet transfer destination core)
Hereinafter, a method for selecting the control packet processing core 401 to which the control request packet is to be transferred from the data processing core 321 will be described. As described above, the data processing core 321 can execute data processing and simple control processing.

つまり、データ処理用コア321は、すべてのデータ処理用コア321に共通なプログラム、すなわちデータ処理機能と制御処理機能の両方をふくむプログラムを実行することができる。さらに、データ処理用コア321は、データ処理機能だけをもつプログラムや、制御処理機能だけをもつプログラムを実行することもできる。   That is, the data processing core 321 can execute a program common to all the data processing cores 321, that is, a program including both the data processing function and the control processing function. Further, the data processing core 321 can execute a program having only a data processing function or a program having only a control processing function.

データ処理用コア321は、データ処理機能と制御処理機能の両方をふくむプログラムを実行するときは、パケットの処理開始時にパケット・ヘッダを参照し、パケットの種類を判定する。データ処理用コア321が、受信したパケットはデータ・パケットであると判定した場合、データ処理機能を実行する。データ処理用コア321が、受信したパケットは制御要求パケットであると判定した場合、制御処理機能を実行する。   When executing the program including both the data processing function and the control processing function, the data processing core 321 refers to the packet header at the start of packet processing and determines the type of the packet. If the data processing core 321 determines that the received packet is a data packet, it executes a data processing function. When the data processing core 321 determines that the received packet is a control request packet, the control processing function is executed.

図7Bは、入力プロセッサ302が受信した制御要求パケットを、複数の入力キュー304にふりわける処理をしめすフローチャートである。ここでは入力キュー304として、制御パケット用キューと、データ・パケット用キューとの双方が存在する場合を説明する。まず、入力プロセッサ302は、パケット受信待機状態にある(S1600)。入力プロセッサ302がパケットを受信すると(S1611)、パケットのヘッダの一部の値を参照することによってパケットの種類を判定する(S1612)。   FIG. 7B is a flowchart showing a process of distributing control request packets received by the input processor 302 to a plurality of input queues 304. Here, a case where both the control packet queue and the data packet queue exist as the input queue 304 will be described. First, the input processor 302 is in a packet reception standby state (S1600). When the input processor 302 receives the packet (S1611), the type of the packet is determined by referring to a partial value of the header of the packet (S1612).

入力プロセッサ302は、受信したパケットの種類が、制御要求パケットであると判定したとき(S1612:制御パケット)、当該パケットを、1個または複数個の制御パケット用の入力キュー304にいれる(S1613)。入力プロセッサ302は、受信したパケットの種類がデータ・パケットであると判定したとき(S1612:データ・パケット)、当該パケットを1個、または複数個のデータ・パケット用の入力キュー304にいれる(S1614)。   When the input processor 302 determines that the type of the received packet is a control request packet (S1612: control packet), the input processor 302 places the packet in the input queue 304 for one or more control packets (S1613). . When the input processor 302 determines that the type of the received packet is a data packet (S1612: data packet), the input processor 302 places the packet in the input queue 304 for one or more data packets (S1614). ).

この処理を可能にするために、制御ボード241は、制御要求パケット412を生成する際に、データ・パケットから識別可能なタグを、制御要求パケット412のヘッダに格納しておく必要がある。したがって、両者がことなるネットワーク・インターフェース251から到着する場合には、たとえば制御要求パケットにネットワーク・インターフェース251のアドレスを付加すれば、ステップS1662における判定を省略できる。上記処理によって、パケットを制御パケット用キューとデータ・パケット用キューとにわけて蓄積することで、データ処理と制御処理とを独立に制御できる。つまり、後述する制御専用処理やデータ専用処理の方法を使用できるようになる。   In order to enable this processing, the control board 241 needs to store a tag identifiable from the data packet in the header of the control request packet 412 when generating the control request packet 412. Therefore, when both arrive from different network interfaces 251, the determination in step S1662 can be omitted by adding the address of the network interface 251 to the control request packet, for example. By storing the packets separately in the control packet queue and the data packet queue by the above processing, the data processing and the control processing can be controlled independently. That is, it becomes possible to use a control-dedicated process and a data-dedicated process described later.

入力プロセッサ302は、いずれかの入力キュー304から、データ処理用コア321へ、制御要求パケット、またはデータ・パケットを送信し、当該パケットを受信したデータ処理用コア321は当該パケットを処理する。この一連の処理をくりかえす。この一連の処理の方法として制御専用処理、データ専用処理、混合処理という3種類の処理方法がある。   The input processor 302 transmits a control request packet or a data packet from one of the input queues 304 to the data processing core 321, and the data processing core 321 that has received the packet processes the packet. This series of processing is repeated. As a series of processing methods, there are three types of processing methods: control-only processing, data-only processing, and mixed processing.

第1は制御専用処理の方法である。すなわち、データ処理用コア321が、制御処理機能だけをふくむプログラムを実行しているときは、データ処理用コア321は、あらたな制御要求パケットを処理する準備がととのったとき、制御パケット用キューに制御要求パケットを送信するよう要求すればよい。これによって、あやまってデータ・パケットを入力することがなくなる。また、これによって制御処理のためのデータ処理用コア321が常に確保されるため、データ処理の負荷がたかいときでも制御処理のためのリソースが確保され、迅速に実行されるという利点がある。   The first is a method dedicated to control. In other words, when the data processing core 321 is executing a program including only the control processing function, the data processing core 321 is ready to process a new control request packet and enters the control packet queue. What is necessary is just to request | require to transmit a control request packet. This avoids accidental input of data packets. In addition, since the data processing core 321 for the control processing is always secured by this, there is an advantage that the resources for the control processing are secured and executed quickly even when the data processing load is high.

第2はデータ専用処理の方法である。すなわち、データ処理用コア321が、データ処理機能だけをふくむプログラムを実行しているときは、データ処理用コア321は、あらたなデータ・パケットを処理する準備がととのったとき、データ・パケット用キューにデータ・パケットを送信するよう要求すればよい。これによって、あやまって制御要求パケットを入力することがなくなる。これによって制御処理の負荷がたかいときでもデータ処理のためのリソースが確保される。   The second is a data-only processing method. In other words, when the data processing core 321 is executing a program including only the data processing function, the data processing core 321 is ready to process a new data packet, and when the data processing core 321 is ready to process a new data packet, Can be requested to send a data packet. As a result, the control request packet is not input by mistake. This ensures resources for data processing even when the control processing load is high.

第3は混合処理の方法である。すなわち、データ処理用コア321が、データ処理機能と制御処理機能の両方をふくむプログラムを実行しているときには、あらたなパケットを処理する準備がととのったとき、制御パケット用キューから制御要求パケット、またはデータ・パケット用キューからからデータ・パケットを送信するよう要求すればよい。たとえば、データ処理用コア321が、制御パケット用キューとデータ・パケット用キューのうち蓄積されているパケットの数がおおい方にパケットを送信するよう要求すれば、制御処理とデータ処理とのあいだでの負荷配分が実現される。すなわち、制御処理の負荷が相対的にたかいときは、制御処理によりおおくのコアが使用されるようになり、データ処理の負荷が相対的にたかいときは、データ処理によりおおくのコアが使用されるようになる。また、データ処理用コア321は、制御要求パケット、データ・パケットのいずれかを優先的に処理してもよい。   The third method is a mixing process. That is, when the data processing core 321 is executing a program including both the data processing function and the control processing function, when it is ready to process a new packet, the control request packet from the control packet queue, or What is necessary is just to request | require to transmit a data packet from the queue for data packets. For example, if the data processing core 321 requests that the packet stored in the control packet queue and the data packet queue have a large number of accumulated packets, the control processing and the data processing are performed. Load distribution is realized. That is, when the control processing load is relatively high, a large core is used by the control processing, and when the data processing load is relatively high, the large core is used by the data processing. It becomes like this. Further, the data processing core 321 may preferentially process either the control request packet or the data packet.

なお、入力キュー304の中に制御パケット用キュー、およびデータ・パケット用キューが存在しない場合、すなわち全ての入力キュー304に制御要求パケット、およびデータ・パケットの双方が入力される場合を考える。このとき、混合処理の方法によれば、データ処理用コア321は、制御要求パケットとデータ・パケットの双方を処理することができるので、あらたなパケットを処理する準備がととのったとき、いずれかの入力キュー304からパケットを送信するよう要求することができる。つまり混合処理の方法によれば、入力キュー304の中に制御パケット用キュー、およびデータ・パケット用キューが存在しなくても、同様の処理をおこなうことができる。   It is assumed that the control packet queue and the data packet queue do not exist in the input queue 304, that is, the case where both the control request packet and the data packet are input to all the input queues 304. At this time, according to the mixed processing method, since the data processing core 321 can process both the control request packet and the data packet, when the preparation for processing the new packet is ready, A request can be made to send a packet from the input queue 304. That is, according to the mixing processing method, the same processing can be performed even if the control packet queue and the data packet queue do not exist in the input queue 304.

(連接型データ処理制御法とメッセージの内容)
制御指令は基本的に連接、選択、反復という3種類の構造のくみあわせによって構成される。この点は、プログラムやプログラミング言語の制御構造と同様である。連接型、選択型、反復型のいずれかの制御指令をふくむ制御指令を、複雑な指令とよぶ。前述したとおり、複雑な指令を、データ処理用コア321において実現するのは困難がともなう。したがって、制御ボード241は、制御要求パケット生成の際に、複雑な指令を、複数の基本指令に分解する。
(Concatenated data processing control method and message content)
A control command is basically composed of a combination of three types of structures: connection, selection, and repetition. This is the same as the control structure of a program or programming language. A control command including one of a connection type, a selection type, and a repetitive type is called a complex command. As described above, it is difficult to realize a complicated command in the data processing core 321. Therefore, the control board 241 decomposes a complicated command into a plurality of basic commands when generating a control request packet.

本実施例では、制御ボード241は、複数の基本指令をならべた連接型の複雑な指令をふくむ制御要求メッセージ811を処理することができる。   In this embodiment, the control board 241 can process a control request message 811 including a complex articulated type including a plurality of basic commands.

図8Aは、連接型制御要求メッセージの一例として、VLANリンクスリバーを生成する2個の制御指令821、822と、VLANリンクスリバーを削除する1個の制御指令823と、をふくむ制御要求メッセージ811をしめす。制御指令821、822、823はいずれも基本指令である。   FIG. 8A shows a control request message 811 including two control commands 821 and 822 for generating a VLAN link sliver and one control command 823 for deleting a VLAN link sliver as an example of a concatenated control request message. Shimese. Control commands 821, 822, and 823 are all basic commands.

制御指令821は、物理ノード外部のMACアドレス00−03−b0−00−00−11と、内部のMACアドレス00−04−b0−00−00−01と、を対応させてVLANリンクスリバーを生成することを指令する。制御指令822は、物理ノード外部のMACアドレス00−03−b0−00−00−10と、内部のMACアドレス00−04−b0−00−00−04と、を対応させてVLANリンクスリバーを生成することを指令する。制御指令823は、物理ノード外部のMACアドレス00−03−b0−00−00−21と、内部のMACアドレス00−04−b0−00−00−21とが対応するVLANリンクスリバーを削除することを指令する。   The control command 821 generates a VLAN link sliver by associating the MAC address 00-03-b0-00-00-11 outside the physical node with the internal MAC address 00-04-b0-00-00-01. Command to do. The control command 822 generates a VLAN link sliver by associating the MAC address 00-03-b0-00-00-10 outside the physical node with the internal MAC address 00-04-b0-00-00-04. Command to do. The control command 823 deletes the VLAN link sliver corresponding to the MAC address 00-03-b0-00-00-21 outside the physical node and the internal MAC address 00-04-b0-00-00-21. Is commanded.

図8Bは制御指令821〜823のそれぞれに対応する制御要求パケット812a〜812cと、制御要求パケット812a〜812cのそれぞれに対する制御応答パケット817a〜817cと、をしめす。制御要求パケット812aには制御指令821にふくまれる3個のMACアドレスがふくまれる。   FIG. 8B shows control request packets 812a to 812c corresponding to the control commands 821 to 823 and control response packets 817a to 817c corresponding to the control request packets 812a to 812c, respectively. The control request packet 812a includes three MAC addresses included in the control command 821.

制御要求パケット812a〜812cはイーサネット・パケットである。制御要求パケット812a、812bにおけるvlink_addは、当該パケットの内容がVLANリンクスリバー生成指令であることをあらわす。そして、それにつづく2個のMACアドレスがVLANリンクスリバー生成指令のパラメータである。制御パケット処理コア401は、これらの指令を受信するとMACアドレス対応表422の行711および行712を生成する。   The control request packets 812a to 812c are Ethernet packets. Vlink_add in the control request packets 812a and 812b indicates that the content of the packet is a VLAN link sliver generation command. The two MAC addresses that follow are parameters of the VLAN link sliver generation command. When receiving these commands, the control packet processing core 401 generates the rows 711 and 712 of the MAC address correspondence table 422.

制御要求パケット812cにおけるvlink_remは当該パケットの内容がVLANリンクスリバー削除指令であることをあらわす。そして、それにつづく2個のMACアドレスは、VLANリンクスリバー削除指令のパラメータをあらわす。また、制御要求パケット812cにふくまれる物理ノード外部のMACアドレスと、物理ノード内部のMACアドレスは、MACアドレス対応表422の行713の値のそれぞれとおなじである。したがって、制御パケット処理コア401は、制御要求パケット812cを受信すると、MACアドレス対応表422の行713を削除する。   Vlink_rem in the control request packet 812c indicates that the content of the packet is a VLAN link sliver deletion command. The subsequent two MAC addresses represent the parameters of the VLAN link sliver deletion command. The MAC address outside the physical node included in the control request packet 812c and the MAC address inside the physical node are the same as the values in the row 713 of the MAC address correspondence table 422, respectively. Therefore, when receiving the control request packet 812c, the control packet processing core 401 deletes the row 713 of the MAC address correspondence table 422.

制御要求パケット812a〜812cに対する制御応答パケット817a〜817cは、NeMMAC、CNPUMAC、type、および応答結果(図9(b)ではOK)をふくむ。   Control response packets 817a to 817c corresponding to the control request packets 812a to 812c include NeMMAC, CNPUMAC, type, and response result (OK in FIG. 9B).

図9は、図8Aにしめした連接型データ処理の制御シーケンスの一例をしめす。オペレータ・コンソール102は3つの制御指令821〜823をふくむ制御要求メッセージ810をネットワーク管理装置111に送信する(S850)。制御要求メッセージ810を受信したネットワーク管理装置111は、制御要求メッセージ810に対応する制御要求メッセージ811を作成し、制御要求メッセージ811を各物理ノード112の制御ボード241に送信する(S851)。   FIG. 9 shows an example of the control sequence of the articulated data processing shown in FIG. 8A. The operator console 102 transmits a control request message 810 including three control commands 821 to 823 to the network management apparatus 111 (S850). The network management apparatus 111 that has received the control request message 810 creates a control request message 811 corresponding to the control request message 810, and transmits the control request message 811 to the control board 241 of each physical node 112 (S851).

制御要求メッセージ811を受信した制御ボード241は、当該制御要求メッセージ811を翻訳し、3個の制御要求パケット812a〜812cに分解する。すなわち、当該制御ボード241は、当該制御要求メッセージ811を翻訳し、第1のVLANリンクスリバー生成指令を制御要求パケット812aと、第2のVLANリンクスリバー生成指令を制御要求パケット812bと、第3のVLANリンクスリバー消去指令を制御要求パケット812cと、に分解する。   The control board 241 that has received the control request message 811 translates the control request message 811 and decomposes it into three control request packets 812a to 812c. That is, the control board 241 translates the control request message 811, generates a first VLAN link sliver generation command as a control request packet 812 a, a second VLAN link sliver generation command as a control request packet 812 b, and a third The VLAN link sliver erase command is disassembled into a control request packet 812c.

ステップS852〜S859は、図4のステップS452〜459と同様であり、制御要求パケット812aについて、ステップS452〜S459の動作をおこなう。制御要求パケット812aについてステップS852〜S859が終了したら、制御要求パケット812b、812cについても、順次ステップS852〜S859と同様の動作をおこなう。   Steps S852 to S859 are the same as steps S452 to 459 of FIG. 4, and the operations of steps S452 to S459 are performed for the control request packet 812a. When Steps S852 to S859 are completed for the control request packet 812a, operations similar to Steps S852 to S859 are sequentially performed for the control request packets 812b and 812c.

制御ボード241は、制御応答パケット817a〜817cをひとまとめにしたうえで翻訳することで制御応答メッセージ818を作成し、ネットワーク管理装置111に送信する(S860)。ネットワーク管理装置111は、制御応答メッセージ818に対応する制御応答メッセージ819を作成し、制御応答メッセージ819をオペレータ・コンソール102に送信する(S861)。   The control board 241 creates a control response message 818 by translating the control response packets 817a to 817c together, and transmits the control response message 818 to the network management apparatus 111 (S860). The network management device 111 creates a control response message 819 corresponding to the control response message 818, and transmits the control response message 819 to the operator console 102 (S861).

以上のように、制御ボード241が、連接型の制御要求メッセージ811を翻訳、分解することにより、それまでは1個のパケットに格納することができない制御要求メッセージ811を1個のパケットに格納できるようになる。したがって、データ処理用コア321は、制御要求パケット812a〜812cを、容易に処理できるようになるという利点がある。また、当該制御要求メッセージ811による制御処理が、データ処理と同程度の実行時間で終了するため、パケットが適切にスケジュールされるようになるという利点がある。   As described above, the control board 241 can store the control request message 811 that cannot be stored in one packet until then, by translating and disassembling the concatenated control request message 811. It becomes like this. Therefore, the data processing core 321 has an advantage that the control request packets 812a to 812c can be easily processed. In addition, since the control process by the control request message 811 is completed in the same execution time as the data process, there is an advantage that the packet is appropriately scheduled.

なお、本実施例においては、制御指令を1個ずつことなる制御要求パケットに分解した。しかし、データ処理用コア321が、同時に複数の制御指令を処理できれば、複数個の制御パケットをまとめて送信したほうが、効率がよいこともある。制御ボード241は、データ処理用コア321の種類や処理能力を考慮して分解の方法を変更することができる。   In this embodiment, the control command is broken down into different control request packets. However, if the data processing core 321 can process a plurality of control commands at the same time, it may be more efficient to transmit a plurality of control packets together. The control board 241 can change the disassembly method in consideration of the type and processing capability of the data processing core 321.

また、図9においては、制御ボード241は、分解した制御指令を1個のデータ処理用コア321に逐次的に送信しているため、制御パケット処理コア401として使用するデータ処理用コア321の数を減らすことができ、データ処理のためのリソースを確保することができる。なお、制御ボード241は、分解した制御指令を1つずつ別々のデータ処理用コア321に並列に送信することもできる。すなわち、制御指令を並列に実行することもできる。ただし、この場合には制御指令間に依存関係がないことが制御要求メッセージ811においてしめされるか、または物理ノード112において判定されなければならない。制御指令を並列に実行することにより、処理速度が向上する。   In FIG. 9, since the control board 241 sequentially transmits the disassembled control commands to one data processing core 321, the number of data processing cores 321 used as the control packet processing core 401. And resources for data processing can be secured. The control board 241 can also transmit the disassembled control commands one by one to different data processing cores 321 in parallel. That is, the control command can be executed in parallel. In this case, however, the control request message 811 indicates that there is no dependency between the control commands, or the physical node 112 must determine. By executing the control commands in parallel, the processing speed is improved.

(選択型データ処理制御法とメッセージの内容)
本実施例では、制御ボード241は、選択型の制御指令をふくむ制御要求メッセージ411aと、その処理することができる。
(Selective data processing control method and message contents)
In the present embodiment, the control board 241 can process the control request message 411a including a selection type control command.

図10Aは、選択型制御要求メッセージの一例として、VLANリンクスリバーを生成する制御指令1122と、GREリンクスリバーを消去する制御指令1124とをふくむ制御要求メッセージ411aをしめす。制御指令1122、1124は、いずれも基本指令である。制御指令1121において、リンクスリバーのタイプとしてVLANが要求されているときは、制御指令1122が実行される。制御指令1123において、GREが要求されているときは制御指令1124が実行される。制御ボード241は、自身の静的、または動的な状態によって、どちらの指令を選択するか決定する。   FIG. 10A shows a control request message 411a including a control command 1122 for generating a VLAN link sliver and a control command 1124 for deleting a GRE link sliver as an example of the selective control request message. The control commands 1122 and 1124 are all basic commands. In the control command 1121, when the VLAN is requested as the link sliver type, the control command 1122 is executed. When the GRE is requested in the control command 1123, the control command 1124 is executed. The control board 241 determines which command to select depending on its own static or dynamic state.

図10Bは、制御指令1122、1124にそれぞれに対応する制御要求パケット412a、412bと、制御要求パケット412a、412bのそれぞれに対する制御応答パケット417a、417bの内容をしめす。制御要求パケット412aの内容は、図4Bでしめした、制御要求パケット412と同様である。   FIG. 10B shows the contents of control request packets 412a and 412b corresponding to the control commands 1122 and 1124, and control response packets 417a and 417b corresponding to the control request packets 412a and 412b, respectively. The content of the control request packet 412a is the same as that of the control request packet 412 shown in FIG. 4B.

制御要求パケット412bは、制御指令1124にふくまれるIPアドレス、GREキーおよびMACアドレスをふくむ。制御要求パケット412bにおけるglink_addは、制御要求パケット412bの内容がGREリンクスリバー生成指令であることをあらわす。そして、それにつづく3個のパラメータがGREリンクスリバー生成指令のパラメータである。制御パケット処理コア401は、これらの指令を受信するとGREアドレス対応表の行を生成する。   The control request packet 412b includes the IP address, GRE key, and MAC address included in the control command 1124. “Link_add” in the control request packet 412b indicates that the content of the control request packet 412b is a GRE link sliver generation command. Then, the following three parameters are parameters of the GRE link sliver generation command. When the control packet processing core 401 receives these instructions, it generates a row of the GRE address correspondence table.

選択型データ処理制御のシーケンスは図5と同様である。ただしステップS451において、制御要求メッセージ411のかわりに411aが使用される。また、ステップS451において、制御ボード241は、制御要求メッセージ411aのどちらの分岐を選択するかを決定し、当該決定に応じて制御要求パケット412a、制御要求パケット412bのいずれかを作成する。また、ステップS452、S453において、制御要求パケット412のかわりに、制御要求パケット412a、412bのうち、S451で作成されたものが使用される。   The sequence of the selective data processing control is the same as that in FIG. However, in step S451, 411a is used instead of the control request message 411. In step S451, the control board 241 determines which branch of the control request message 411a is selected, and creates either the control request packet 412a or the control request packet 412b according to the determination. In steps S452 and S453, the control request packets 412a and 412b created in S451 are used instead of the control request packet 412.

以上のように、制御ボード241が、選択型の制御要求メッセージ411aを翻訳、分解することによって分岐処理が削除される。したがって、高度な分岐最適化機能をもたないRISCアーキテクチャのデータ処理用コアにおいて、パイプラインがみだされずに処理できるようになるという利点がある。また、制御処理がデータ処理と同程度の実行時間で終了するようになるため、パケットが適切にスケジュールされるようになるという利点がある。   As described above, the control board 241 translates and decomposes the selection-type control request message 411a to delete the branch process. Therefore, the RISC architecture data processing core having no advanced branch optimization function has an advantage that processing can be performed without finding a pipeline. In addition, since the control process ends with an execution time comparable to that of the data process, there is an advantage that the packet is appropriately scheduled.

(反復型データ処理制御法とメッセージの内容)
本実施例では、制御ボード241は、制御要求メッセージの一例として、反復型の制御指令をふくむ制御要求メッセージ1311を処理することができる。
(Repetitive data processing control method and message contents)
In the present embodiment, the control board 241 can process a control request message 1311 including a repetitive control command as an example of the control request message.

図11Aは、反復型制御要求メッセージの一例として、VLANリンクスリバーを生成する制御指令1322をくりかえし適用する制御要求メッセージ811dをしめす。制御指令1321において、制御指令1322を3回反復することが指定されている。制御指令1322は基本指令である。ここでは、制御指令1321は固定回数の反復を指定しているが、可変回数の反復を指定することも可能である。   FIG. 11A shows a control request message 811d that repeatedly applies a control command 1322 for generating a VLAN link sliver as an example of a repetitive control request message. The control command 1321 specifies that the control command 1322 is repeated three times. The control command 1322 is a basic command. Here, the control command 1321 designates a fixed number of iterations, but it is also possible to designate a variable number of iterations.

図11Bは、制御指令1322の3回の反復にそれぞれ対応する制御要求パケット812d〜812fと、制御要求パケット812d〜812fのそれぞれ対する制御応答パケット817d〜817fの内容をしめす。制御要求パケット812dの内容は、図4(b)でしめした、制御要求パケット412と同様である。   FIG. 11B shows the contents of control request packets 812d to 812f corresponding to three repetitions of the control command 1322 and control response packets 817d to 817f corresponding to the control request packets 812d to 812f, respectively. The content of the control request packet 812d is the same as that of the control request packet 412 shown in FIG.

反復型データ処理制御のシーケンスは図9と同様である。ただし、ステップS851において、制御要求メッセージ811のかわりに制御要求メッセージ811dが使用される。また、ステップS852、S853において、制御要求パケットの811a〜811cのかわりに制御要求パケット812d〜812fが使用される。また、ステップS858、S859において、制御応答パケット817a〜817cのかわりに制御応答パケット817d〜817fが使用される。   The sequence of iterative data processing control is the same as that in FIG. However, in step S851, a control request message 811d is used instead of the control request message 811. In steps S852 and S853, control request packets 812d to 812f are used instead of the control request packets 811a to 811c. In steps S858 and S859, control response packets 817d to 817f are used instead of the control response packets 817a to 817c.

以上のように、反復型の制御要求メッセージ811dを分解することによって反復処理が削除される。したがって、高度な分岐最適化機能をもたないRISCアーキテクチャのデータ処理用コア321において、パイプラインがみだされずに処理ができるようになるという利点がある。また、制御処理がデータ処理と同程度の実行時間で終了するようになり、無限ループの危険がなくなる。したがって、パケットが適切にスケジュールされるようになるとともに、強制停止の必要がなくなるという利点がある。   As described above, the iterative process is deleted by decomposing the iterative control request message 811d. Therefore, the RISC architecture data processing core 321 having no advanced branch optimization function has an advantage that processing can be performed without finding a pipeline. In addition, the control process ends in the same execution time as the data process, eliminating the danger of an infinite loop. Therefore, there is an advantage that the packet is scheduled appropriately and the forced stop is not necessary.

また、図9においては、制御ボード241は、分解した制御指令を1個のデータ処理用コア321に逐次的に送信したが、連接型の制御メッセージと同様、分解した制御指令をその数だけのデータ処理用コア321に並列に送信することもできる。ただし、この場合には制御指令間に依存関係がないことが制御要求メッセージ811においてしめされるか、または物理ノード112において判定されなければならない。   In FIG. 9, the control board 241 sequentially transmits the disassembled control commands to one data processing core 321, but as with the concatenated control message, the control board 241 has the same number of disassembled control commands. It can also be transmitted in parallel to the data processing core 321. In this case, however, the control request message 811 indicates that there is no dependency between the control commands, or the physical node 112 must determine.

(一般のデータ処理制御法とメッセージの内容)
制御指令は、連接、選択、反復のくみあわせからなる。したがって、制御ボード241は、上述した連接型データ処理制御法、選択型データ処理制御法、反復型データ処理制御法をくみあわせることにより、どのような複雑な制御要求メッセージも、部分指令をふくむ制御要求パケットに分解することができる。なお、制御指令のうち連続した一部の指令を部分指令とよぶ。
(General data processing control method and message contents)
Control commands consist of a combination of articulation, selection, and repetition. Therefore, the control board 241 can control any complicated control request message including a partial command by combining the above-described articulated data processing control method, selection type data processing control method, and iterative data processing control method. Can be broken down into request packets. A part of the control commands that are continuous are called partial commands.

すなわち、制御ボード241は、制御要求メッセージを受信したときは、制御要求メッセージにふくまれる指令の種類ごとに、ことなる処理をおこなう。すなわち、第1に、制御要求メッセージが基本指令をふくむとき、制御ボード241は単純なデータ処理制御法によって処理する。第2に、制御要求メッセージが連接型の制御指令をふくむとき、制御ボード241は連接型データ処理制御法によって処理する。第3に、制御要求メッセージが選択型の制御指令をふくむとき、制御ボード241は選択型データ処理制御法によって処理する。第4に、制御要求メッセージが反復型の制御指令をふくむとき、制御ボード241は反復型データ処理制御法によって処理する。   That is, when the control board 241 receives a control request message, the control board 241 performs different processing for each type of command included in the control request message. That is, first, when the control request message includes a basic command, the control board 241 processes by a simple data processing control method. Secondly, when the control request message includes an articulated control command, the control board 241 processes the articulated data processing control method. Third, when the control request message includes a selection-type control command, the control board 241 processes according to the selection-type data processing control method. Fourth, when the control request message includes a repetitive control command, the control board 241 processes the repetitive data processing control method.

第5に、制御要求メッセージがより複雑な制御指令をふくむとき、制御ボード241は、トップレベルの制御構造によって、すなわち連接型か選択型か反復型かによって、上記のいずれかの方法による指令の分解をおこなう。さらに、再帰的に下位の制御構造によって指令を分解する。この方法は、プログラミング言語のコンパイラやインタプリタにおける分解の方法にひとしい。   Fifth, when the control request message includes a more complicated control command, the control board 241 determines the command according to any of the above methods according to the top-level control structure, that is, the connection type, the selection type, or the repetition type. Decompose. Furthermore, the command is recursively decomposed by the lower control structure. This method is suitable for a decomposition method in a compiler or interpreter of a programming language.

また、上述したように、制御ボード241は、制御要求メッセージがふくむすべての制御指令について、それを分解して制御パケット処理コア401に実行させることができるわけではない。たとえば、制御パケット処理コア401の動作を制御する指令、すなわち制御パケット処理コア401への(記憶装置への)プログラムのロード、制御パケット処理コア401の起動と停止などの指令は、制御パケット処理コア401に実行させることができない場合がある。   Further, as described above, the control board 241 cannot disassemble all the control commands included in the control request message and cause the control packet processing core 401 to execute them. For example, a command for controlling the operation of the control packet processing core 401, that is, a command for loading a program (to a storage device) into the control packet processing core 401, starting or stopping the control packet processing core 401, etc. 401 may not be executed.

このような場合には、制御ボード241が、当該処理を実行する必要がある。したがって、制御ボード241は、データ処理用コア321によって処理できる指令をふくまない制御要求メッセージ411を受信したときは、制御ボード241が当該処理をおこなう。また、制御ボード241は、データ処理用コアによって処理できる指令とデータ処理用コアによって処理できない指令とをふくむ制御要求メッセージ411を受信したときは、前者を制御要求パケットとして制御パケット処理コア401に送信し、後者は制御ボード241が処理する。   In such a case, the control board 241 needs to execute the process. Therefore, when the control board 241 receives the control request message 411 that does not include a command that can be processed by the data processing core 321, the control board 241 performs the processing. In addition, when the control board 241 receives the control request message 411 including a command that can be processed by the data processing core and a command that cannot be processed by the data processing core, the control board 241 transmits the former to the control packet processing core 401 as a control request packet. The latter is processed by the control board 241.

(データ処理用プログラムのロードと制御プロセッサの構成・処理)
データ処理用コア321が実行するプログラム351は主記憶装置342に格納される。データ処理用コア321は、プログラム351をパケット・データ処理の停止中または動作中にロードすることができる。
(Data processing program load and control processor configuration / processing)
A program 351 executed by the data processing core 321 is stored in the main storage device 342. The data processing core 321 can load the program 351 while the packet data processing is stopped or during operation.

データ・パケット処理コア402が、プログラム351をロードする際には、ロード中のプログラムまたはローディングによってかきかえられるプログラム351を実行することがないように停止させるか、または他のプログラム351を実行するようにする。プログラム351は複数のプログラムによって構成することもでき、複数のデータ・パケット処理コア402がことなるプログラム351を実行するようにすることもできる。   When the data packet processing core 402 loads the program 351, the program 351 is stopped so as not to execute the program being loaded or the program 351 replaced by the loading, or another program 351 is executed. To. The program 351 can be composed of a plurality of programs, and a plurality of data packet processing cores 402 can execute different programs 351.

このように複数のプログラムが実行されるときに、それに対応した制御をおこなうための制御ボード241の構成および処理方法を図12〜14を使用して説明する。ことなるプログラムを実行するデータ・パケット処理コア402に対してはことなる制御が必要な場合がある。そのため、制御要求メッセージを受信する制御ボード241には基本制御プログラム1711のほかにプラグイン制御プログラム1712、1713を使用する。   The configuration and processing method of the control board 241 for performing control corresponding to a plurality of programs executed in this way will be described with reference to FIGS. Different control may be required for the data packet processing core 402 that executes different programs. Therefore, in addition to the basic control program 1711, plug-in control programs 1712 and 1713 are used for the control board 241 that receives the control request message.

図12は、プラグイン制御プログラムを使用するときの、制御ボード241の構成の一例をしめす。制御ボード241は、CPU1701、ネットワーク・インターフェース1703、メモリ1702をふくむ。基本制御プログラム1711とプラグイン制御プログラム1712、1713は、メモリ1702にロードされる。つまり、基本制御プログラム1711とプラグイン制御プログラム1712、1713とを、1つの制御ボード241に共存させる構成をとっている。   FIG. 12 shows an example of the configuration of the control board 241 when the plug-in control program is used. The control board 241 includes a CPU 1701, a network interface 1703, and a memory 1702. The basic control program 1711 and plug-in control programs 1712 and 1713 are loaded into the memory 1702. That is, the basic control program 1711 and the plug-in control programs 1712 and 1713 are configured to coexist on one control board 241.

図13は、プラグイン制御プログラムを使用するときの、制御ボード241と汎用コア311の構成の一例をしめす。図13においては、基本制御プログラム1711のみが、制御ボード241のメモリ1702にロードされ、プラグイン制御プログラム1712、1713は、パケット処理ボード211に実装された汎用コア311のメモリ1702bにロードされている。なお、プラグイン制御プログラム1712、1713を、たとえば複数の制御ボード241、制御ボード241と別筐体内にある制御ボード、制御ボード241と別筐体内にあるパケット処理ボードに実装された汎用コア等にロードすることもできる。   FIG. 13 shows an example of the configuration of the control board 241 and the general-purpose core 311 when the plug-in control program is used. In FIG. 13, only the basic control program 1711 is loaded into the memory 1702 of the control board 241, and the plug-in control programs 1712 and 1713 are loaded into the memory 1702 b of the general-purpose core 311 mounted on the packet processing board 211. . The plug-in control programs 1712 and 1713 are transferred to, for example, a plurality of control boards 241, a control board in a separate housing from the control board 241, a general-purpose core mounted on a packet processing board in a separate housing from the control board 241, and the like. It can also be loaded.

また、図12、図13においては2個のプラグイン制御プログラム1712、1713を使用しているが、本実施例の機能を実現できる範囲であれば、その数に制限はない。また、プログラム351によっては、基本制御プログラム1711だけで処理可能である。   In FIG. 12 and FIG. 13, two plug-in control programs 1712 and 1713 are used, but the number is not limited as long as the functions of this embodiment can be realized. Some programs 351 can be processed only by the basic control program 1711.

図14は、プラグイン制御プログラム1712、1713が存在し、制御ボード241が制御要求メッセージを受信したときの処理をしめすフローチャートである。制御ボード241は、受信した制御要求メッセージがふくむ部分指令をとりだして(S1911)、各部分指令について以下の処理をおこなう。   FIG. 14 is a flowchart showing processing when the plug-in control programs 1712 and 1713 exist and the control board 241 receives the control request message. The control board 241 takes out the partial commands included in the received control request message (S1911), and performs the following processing for each partial command.

制御ボード241は、とりだした部分指令が基本制御プログラム用指令かどうか、すなわち基本制御プログラム1711において処理できるものであるかどうかを判定する(S1912)。当該部分指令が基本制御プログラム用指令であれば(S1912:Yes)、制御ボード241は、基本制御プログラム1711によって当該部分指令を処理する(S1913)。当該部分指令が基本制御プログラム用指令でなく、拡張指令の場合(S1912:No)、制御ボード241は、プラグイン制御プログラム1712、1713のうち、当該拡張指令の対応するプラグイン制御プログラムによって部分指令を処理する。   The control board 241 determines whether the extracted partial command is a command for the basic control program, that is, whether it can be processed by the basic control program 1711 (S1912). If the partial command is a basic control program command (S1912: Yes), the control board 241 processes the partial command by the basic control program 1711 (S1913). When the partial command is not a basic control program command but an extended command (S1912: No), the control board 241 uses the plug-in control program corresponding to the extended command among the plug-in control programs 1712 and 1713 to execute the partial command. Process.

プラグイン制御プログラム1712、1713が同一プロセッサ内にあるときは、制御ボード241は、API(Application Programming Interface)等によってプラグイン制御プログラム1712、1713をよびだす。一方、プラグイン制御プログラム1712、1713がことなるプロセッサにあるときは、制御ボード241は、ソケット通信などによってプラグイン制御プログラム1712、1713をよびだす。本実施例によれば、データ処理用コア321において複数のプログラム351が実行されるとき、制御ボード241は、基本制御プログラム1711、またはプラグイン制御プログラム1712、1713により、対応した処理をおこなうことができる。   When the plug-in control programs 1712 and 1713 are in the same processor, the control board 241 calls the plug-in control programs 1712 and 1713 by an API (Application Programming Interface) or the like. On the other hand, when the plug-in control programs 1712 and 1713 are in different processors, the control board 241 calls the plug-in control programs 1712 and 1713 by socket communication or the like. According to the present embodiment, when a plurality of programs 351 are executed in the data processing core 321, the control board 241 can perform corresponding processing by the basic control program 1711 or the plug-in control programs 1712 and 1713. it can.

汎用コア311がプラグイン制御プログラム1712、1713を実行する場合、汎用コア311はネットワークを介して制御ボード241から拡張指令を受信し、当該拡張指令の対応するプログラムによって部分指令を処理する。汎用コア311が基本制御プログラム1711とプラグイン制御プログラム1712、1713とを実行してもよい。このように、汎用コア311は、データ・パケット通信装置における制御装置に含まれる。また、図13において汎用コア311のかわりに、複数の制御ボード241、制御ボード241と別筐体内にある制御ボード、制御ボード241と別筐体内にあるパケット処理ボードに実装された汎用コア等を使用した場合、これらは、データ・パケット通信装置における制御装置に含まれる。   When the general-purpose core 311 executes the plug-in control programs 1712 and 1713, the general-purpose core 311 receives the extension command from the control board 241 via the network, and processes the partial command by the program corresponding to the extension command. The general-purpose core 311 may execute the basic control program 1711 and the plug-in control programs 1712 and 1713. Thus, the general-purpose core 311 is included in the control device in the data packet communication device. Further, in FIG. 13, instead of the general-purpose core 311, a plurality of control boards 241, a control board in a separate housing from the control board 241, a general-purpose core mounted on a packet processing board in a separate housing from the control board 241, etc. When used, these are included in the control device in the data packet communication device.

なお、本発明は上述した実施例に限定されるものではなく、様々な変形例が含まれる。たとえば、上述した実施例は本発明をわかりやすく説明するために詳細に記載したものであり、かならずしも説明した全ての構成をそなえるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成におきかえることが可能であり、また、ある実施例の構成に他の実施例の構成をくわえることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。   In addition, this invention is not limited to the Example mentioned above, Various modifications are included. For example, the above-described embodiments are described in detail for easy understanding of the present invention, and are not necessarily limited to those having all the configurations described. In addition, a part of the configuration of one embodiment can be replaced with the configuration of another embodiment, and the configuration of another embodiment can be added to the configuration of one embodiment. Further, it is possible to add, delete, and replace other configurations for a part of the configuration of each embodiment.

また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、たとえば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体におくことができる。   Each of the above-described configurations, functions, processing units, processing means, and the like may be realized by hardware by designing a part or all of them with, for example, an integrated circuit. Each of the above-described configurations, functions, and the like may be realized by software by interpreting and executing a program that realizes each function by the processor. Information such as programs, tables, and files for realizing each function can be stored in a memory, a hard disk, a recording device such as an SSD (Solid State Drive), or a recording medium such as an IC card, an SD card, or a DVD.

102 オペレータ・コンソール、111 ネットワーク管理装置、 112 物理ノード、211 パケット処理ボード、212 ネットワーク・プロセッサ、241 制御ボード、251 ネットワーク・インターフェース、302 入力プロセッサ、303 出力プロセッサ、304 入力キュー、305 出力キュー、311 汎用コア、321 データ処理用コア、331 共有メモリ、401 制御パケット処理コア、402 データ・パケット処理コア、422 MACアドレス対応表、1711 基本制御プログラム、1712 プラグイン制御プログラム 102 operator console, 111 network management device, 112 physical node, 211 packet processing board, 212 network processor, 241 control board, 251 network interface, 302 input processor, 303 output processor, 304 input queue, 305 output queue, 311 General-purpose core, 321 data processing core, 331 shared memory, 401 control packet processing core, 402 data packet processing core, 422 MAC address correspondence table, 1711 basic control program, 1712 plug-in control program

Claims (12)

データ・パケットの入力をうけつけ、前記入力されたデータ・パケットを処理し、前記処理されたデータ・パケットを出力するデータ処理装置と、前記データ処理装置を制御する制御装置と、をふくむデータ・パケット通信装置を制御する方法であって、
前記データ処理装置は、複数のベアメタル・コアと、前記複数のベアメタル・コア間において共有されるデータ共有装置と、をふくみ、
前記方法は、
前記複数のベアメタル・コアにおけるすくなくともひとつが、入力されたデータ・パケットを受信し、当該受信したデータ・パケットを処理し、
前記制御装置が、制御要求メッセージを受信すると、前記制御要求メッセージから制御データをふくむ制御要求パケットを作成し、前記データ処理装置に対して前記制御要求パケットを送信し、
前記複数のベアメタル・コアにおけるすくなくともひとつが、前記制御要求パケットを受信し、前記データ共有装置を介して、他のベアメタル・コアに、前記制御要求パケットにふくまれる前記制御データを送信する、ことをふくむことを特徴とする方法。
A data packet including a data processing device that receives an input of a data packet, processes the input data packet, and outputs the processed data packet; and a control device that controls the data processing device A method for controlling a communication device, comprising:
The data processing device includes a plurality of bare metal cores and a data sharing device shared between the plurality of bare metal cores,
The method
At least one of the plurality of bare metal cores receives the input data packet and processes the received data packet;
When the control device receives the control request message, it creates a control request packet including control data from the control request message, and transmits the control request packet to the data processing device,
At least one of the plurality of bare metal cores receives the control request packet and transmits the control data included in the control request packet to another bare metal core via the data sharing device. A method characterized by including.
請求項1に記載の方法であって、
前記複数のベアメタル・コアは、制御要求パケットとデータ・パケットとを処理するすくなくともひとつの第1ベアメタル・コアをふくみ、
前記すくなくともひとつの第1ベアメタル・コアが、受信したパケットの種類がデータ・パケットであると判定すると、前記受信したデータ・パケットを処理し、
前記すくなくともひとつの第1ベアメタル・コアが、受信したパケットの種類が制御要求パケットであると判定すると、
前記データ共有装置を介して、他のベアメタル・コアに、前記制御要求パケットにふくまれる前記制御データを送信する、ことを特徴とする方法。
The method of claim 1, comprising:
The plurality of bare metal cores include at least one first bare metal core that processes a control request packet and a data packet;
When the at least one first bare metal core determines that the type of the received packet is a data packet, it processes the received data packet;
When the at least one first bare metal core determines that the type of the received packet is a control request packet,
Transmitting the control data included in the control request packet to another bare metal core via the data sharing device.
請求項2に記載の方法であって、
前記複数のベアメタル・コアは、前記すくなくともひとつの第1ベアメタル・コアをふくむ、制御パケットを処理する複数の制御パケット処理コアを含み、
前記制御装置により生成された制御要求パケットは、前記複数の制御パケット処理コアにふりわけられる、ことを特徴とする方法。
The method of claim 2, comprising:
The plurality of bare metal cores include a plurality of control packet processing cores for processing control packets, including the at least one first bare metal core,
The control request packet generated by the control device is distributed to the plurality of control packet processing cores.
請求項3に記載の方法であって、
前記データ処理装置は、制御要求パケットを格納する制御パケット用キューと、データ・パケットを格納するデータ・パケット用キューと、をふくみ、
前記すくなくともひとつの第1ベアメタル・コアが、前記制御パケット用キューから前記制御要求パケットを受信し、
前記すくなくともひとつの第1ベアメタル・コアが、前記データ・パケット用キューから前記データ・パケットを受信する、ことを特徴とする方法。
The method of claim 3, comprising:
The data processing apparatus includes a control packet queue for storing control request packets and a data packet queue for storing data packets.
The at least one first bare metal core receives the control request packet from the control packet queue;
The method wherein the at least one first bare metal core receives the data packet from the data packet queue.
請求項1に記載の方法であって、
前記複数のベアメタル・コアはデータ・パケットを処理することなく制御要求パケットを処理する、すくなくともひとつの第2ベアメタル・コアをふくみ、
前記データ処理装置は、制御要求パケットを格納する制御パケット用キューをふくみ、
前記すくなくともひとつの第2ベアメタル・コアが、前記制御パケット用キューから前記制御要求パケットを受信する、ことを特徴とする方法。
The method of claim 1, comprising:
The plurality of bare metal cores process control request packets without processing data packets, including at least one second bare metal core;
The data processing device includes a control packet queue for storing control request packets,
Wherein said at least one second bare-metal core, for receiving the control request packet from the queue for the control packets, and wherein the.
請求項1に記載の方法であって、
前記制御装置が、前記制御要求メッセージを、複数の基本指令に翻訳し、それぞれが前記複数の基本指令におけるすくなくともひとつの基本指令をふくむ複数の制御要求パケットを作成する、ことを特徴とする方法。
The method of claim 1, comprising:
The method, wherein the control device translates the control request message into a plurality of basic commands, and creates a plurality of control request packets each including at least one basic command in the plurality of basic commands.
請求項6に記載の方法であって、
前記複数のベアメタル・コアが、複数の種類の制御プログラムを実行し、
前記制御装置が、基本制御プログラムと前記基本制御プログラムに対するプラグイン制御プログラムを実行し、
前記制御装置が、前記制御要求メッセージに含まれる指令に応じて前記基本制御プログラムおよび前記プラグイン制御プログラムから選択されたプログラムを実行する、ことを特徴とする方法。
The method of claim 6, comprising:
The plurality of bare metal cores execute a plurality of types of control programs,
The control device executes a basic control program and a plug-in control program for the basic control program,
The method, wherein the control device executes a program selected from the basic control program and the plug-in control program in accordance with a command included in the control request message.
請求項7に記載の方法であって、
前記制御装置は、第1ボード上に実装される第1コアと、第2ボード上に実装される第2コアとをふくみ、
前記第1コアが、基本制御プログラムを実行して前記制御要求メッセージにふくまれる基本制御プログラム用指令を処理し、
前記第1コアが、前記制御要求メッセージにふくまれ、基本制御プログラム用指令とはことなる拡張指令を、ネットワークを介して前記第2コアへ転送し、
前記第2コアが、前記基本制御プログラムに対するプラグイン制御プログラムを実行して前記拡張指令を処理する、ことを特徴とする方法。
The method of claim 7, comprising:
The control device includes a first core mounted on the first board and a second core mounted on the second board,
The first core executes a basic control program to process a basic control program command included in the control request message;
The first core is included in the control request message and transfers an extension command different from the basic control program command to the second core via the network,
The second core executes the plug-in control program for the basic control program to process the extension command.
請求項6に記載の方法であって、
前記複数のベアメタル・コアのうちの1つが、前記複数の基本指令を逐次受信する、ことを特徴とする方法。
The method of claim 6, comprising:
A method wherein one of the plurality of bare metal cores receives the plurality of basic commands sequentially.
請求項6に記載の方法であって、
前記複数のベアメタル・コアのうちの複数のベアメタル・コアのそれぞれが、前記複数の基本指令のすくなくともひとつを受信する、ことを特徴とする方法。
The method of claim 6, comprising:
Each of the plurality of bare metal cores of the plurality of bare metal cores receives at least one of the plurality of basic commands.
請求項6に記載の方法であって、
前記制御要求メッセージが、選択型制御指令をふくむとき、前記制御装置が、前記選択型制御指令における条件判定をおこない、前記条件判定において真と判定したとき、第1の部分指令を翻訳し、前記条件判定において偽と判定したとき、第2の部分指令を翻訳する、ことを特徴とする方法。
The method of claim 6, comprising:
When the control request message includes a selection-type control command, the control device performs a condition determination in the selection-type control command, and when determined to be true in the condition determination, translates a first partial command, A method of translating the second partial command when it is determined to be false in the condition determination.
データ・パケットの入力をうけつけ、前記入力されたデータ・パケットを処理し、前記処理されたデータ・パケットを出力するデータ処理装置と、前記データ処理装置を制御する制御装置と、をふくみ、
前記データ処理装置は、複数のベアメタル・コアと、前記複数のベアメタル・コア間において共有されるデータ共有装置と、をふくみ、
前記複数のベアメタル・コアにおけるすくなくともひとつは、入力されたデータ・パケットを受信し、当該受信したデータ・パケットを処理し、
前記制御装置は、
制御要求メッセージを受信すると、前記制御要求メッセージから制御データをふくむ制御要求パケットを作成し、前記データ処理装置に対して前記制御要求パケットを送信し、
前記複数のベアメタル・コアにおけるすくなくともひとつは、
前記制御要求パケットを受信し、前記データ共有装置を介して、他のベアメタル・コアに、前記制御要求パケットにふくまれる前記制御データを送信することを特徴とするデータ・パケット通信装置。
Including a data processor that receives an input of a data packet, processes the input data packet, and outputs the processed data packet; and a control device that controls the data processor;
The data processing device includes a plurality of bare metal cores and a data sharing device shared between the plurality of bare metal cores,
At least one of the plurality of bare metal cores receives an input data packet, processes the received data packet,
The control device includes:
Upon receipt of the control request message, a control request packet including control data is created from the control request message, and the control request packet is transmitted to the data processing device,
At least one of the plurality of bare metal cores is
A data packet communication device, comprising: receiving the control request packet; and transmitting the control data included in the control request packet to another bare metal core via the data sharing device.
JP2013178416A 2013-08-29 2013-08-29 Method for controlling data packet communication device and data packet communication device Active JP6037978B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013178416A JP6037978B2 (en) 2013-08-29 2013-08-29 Method for controlling data packet communication device and data packet communication device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013178416A JP6037978B2 (en) 2013-08-29 2013-08-29 Method for controlling data packet communication device and data packet communication device

Publications (3)

Publication Number Publication Date
JP2015050469A JP2015050469A (en) 2015-03-16
JP2015050469A5 JP2015050469A5 (en) 2016-01-14
JP6037978B2 true JP6037978B2 (en) 2016-12-07

Family

ID=52700176

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013178416A Active JP6037978B2 (en) 2013-08-29 2013-08-29 Method for controlling data packet communication device and data packet communication device

Country Status (1)

Country Link
JP (1) JP6037978B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6699330B2 (en) * 2016-05-02 2020-05-27 富士通株式会社 Network device management apparatus, network system, program, and network device management method

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4365672B2 (en) * 2003-12-04 2009-11-18 株式会社日立製作所 Packet communication node equipment
JP5704567B2 (en) * 2011-09-13 2015-04-22 株式会社日立製作所 Node device, system, and packet processing method

Also Published As

Publication number Publication date
JP2015050469A (en) 2015-03-16

Similar Documents

Publication Publication Date Title
US11842216B2 (en) Data processing unit for stream processing
US9189449B2 (en) Memory management in a streaming application
WO2015078219A1 (en) Information caching method and apparatus, and communication device
US10630587B2 (en) Shared memory communication in software defined networking
US9092275B2 (en) Store operation with conditional push of a tag value to a queue
US11675633B2 (en) Virtualised gateways
CN114244919B (en) NDN mode realization method based on protocol non-perception forwarding
US11935600B2 (en) Programmable atomic operator resource locking
US20230244416A1 (en) Communicating a programmable atomic operator to a memory controller
US20140241347A1 (en) Static translation of network forwarding plane models into target implementation in the hardware abstraction layer
US9166912B2 (en) Translating network forwarding plane models into target implementation using sub models and hints
US20230074452A1 (en) Mechanism to trigger early termination of cooperating processes
JP5479710B2 (en) Processor-server hybrid system and method for processing data
US9426033B2 (en) Target mapping and implementation of abstract device model
JP6037978B2 (en) Method for controlling data packet communication device and data packet communication device
Lu et al. Impact of hpc cloud networking technologies on accelerating hadoop rpc and hbase
US11586443B2 (en) Thread-based processor halting
US20220121485A1 (en) Thread replay to preserve state in a barrel processor
Bolla et al. OpenFlow in the small: A flexible and efficient network acceleration framework for multi-core systems
JP2017184195A (en) Communication management device, communication management method and program
Gao et al. A general model for the virtual router
Liu Building Distributed Systems Using Programmable Networks
Xu et al. CLIP: Accelerating Features Deployment for Programmable Switch
Pimparkar Comparison of P4 Programmable Software Switches as WiFi Access Points
WO2023184513A1 (en) Reconfigurable packet direct memory access to support multiple descriptor ring specifications

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151120

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151120

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160928

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161101

R150 Certificate of patent or registration of utility model

Ref document number: 6037978

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150