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 PDFInfo
- 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
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
制御用プロセッサ・コアへの管理指示は、コマンドライン・インターフェース(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.
本発明は、ネットワーク・プロセッサ等で構成され、ベアメタルの制御用コアとデータ処理用コアとをふくむデータ処理装置における、データ処理の管理に関する課題を解決する。 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.
以下、添付図面を参照して本発明の実施形態を説明する。本実施形態は本発明を実現するための一例にすぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。各図において共通の構成については同一の参照符号が付されている。 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
ネットワーク管理装置111は、ネットワーク全体の管理をおこなう。ネットワーク管理装置111は、CPU142、主記憶装置143をふくむ。オペレータは、オペレータ・コンソール102を経由して、ネットワーク管理装置111に、仮想ネットワークを生成するための指令をあたえることができる。
The
なお、ネットワーク管理装置111は、ひとつのネットワーク121上に複数個の仮想ネットワークを生成することができる。ネットワーク管理装置111は、それにしたがって物理ノード112−1〜112〜4に仮想ネットワークの構成要素を生成する指令をあたえる。仮想ネットワークの構成要素としては、仮想ノードおよび仮想リンク(リンクスリバーとよばれる)がある。
Note that the
以下、物理ノード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
図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
パケット処理ボード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
物理ノード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
仮想ノードは、物理ノード112上に生成される。1個の物理ノード112上に複数個の仮想ノードを生成することができる。また、仮想リンク(リンクスリバー)は仮想ノード間(物理ノード間)に生成される。仮想リンクの端点となる物理ノード112は物理的に隣接している必要はない(物理リンクで直接むすばれている必要はない)。すなわち、遠隔の物理ノード112間に仮想リンクを生成することができる。
The virtual node is generated on the
以下、パケット処理ボード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
図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
入力プロセッサ302は、入力キュー304−1〜304−lをふくむ。装置内ネットワーク281から出力されたパケットは、入力プロセッサ302に転送される。入力プロセッサ302に転送されたパケットは、入力キュー304−1〜304−lのうちのいずれかと、バス361と、を経由して、データ処理用コア321−1〜321−nのうちのいずれかに転送される。
The
出力プロセッサ303は、出力キュー305−1〜305−mをふくむ。データ処理用コア321−1〜321−nのいずれかから出力されたパケットは、バス361と、出力キュー305−1〜305−mのうちのいずれかと、を経由し、さらにネットワーク・インターフェース251を経由して、物理ノード112の外部に転送される。
The
なお、バス361は、チップ内ネットワークとしてもよい。また、ネットワーク・プロセッサ212の構成によっては入力キュー304−1〜304−l、および出力キュー305−1〜305−mが、入力プロセッサ302内に存在せず、各データ処理用コア321−1〜321−n内に存在してもよい。また、各入力キュー304−1〜304−lには、制御要求パケット、データ・パケットの双方を入力することができるが、制御要求パケットのみが入力される制御パケット用キューや、データ・パケットのみが入力されるデータ・パケット用キューが存在してもよい。
The
データ共有装置の一例である共有メモリ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
データ処理用コア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-
メモリコントローラ341は、ネットワーク・プロセッサ212の外部に存在する主記憶装置342に接続されている。主記憶装置342として、たとえば、DRAMを主要な媒体とする。汎用コア311は通常、この主記憶を仮想化するので、L1キャッシュ312、L2キャッシュ313などのハードウェアが付属する。主記憶装置342には、データ処理用コア321において実行されるプログラム351が格納され、必要に応じて共有メモリ331またはデータ処理用コア321−1〜321−nに付随する主記憶装置322−1〜322−nにキャッシュされる。
The
本実施例においては主記憶装置342へのプログラム351のロードのために汎用コア311を使用するが、後述するように、データ処理用コア321−1〜321−nの動作中には、汎用コア311による制御はおこなわない。そのため、本実施例においても、汎用コア311を使用して処理するプログラム351のロードと、データ処理用コアの起動・停止等の処理とを、汎用コア311を使用せずに処理できるようにネットワーク・プロセッサ212を構成すれば、汎用コア311をもうけない構成も可能である。
In this embodiment, the general-
汎用コア311をもうけない構成をとるときは、プログラム351のロードはネットワーク・プロセッサ212の外部からの直接メモリ・アクセス(DMA)によっておこなえばよい。また、データ処理用コア321の起動・停止も、入出力命令やDMAによるプログラム351や、データのかきかえによってネットワーク・プロセッサ212の外部からおこなえばよい。このようにして汎用コア311をなくすことにより、LSIの構造を単純化し、開発コストを低下させることが可能になる。
When the general-
以下、入力キュー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
(単純なデータ処理制御におけるメッセージの内容)
以下、制御要求メッセージによるデータ処理の制御法を説明する。まず、図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
このような処理は、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
なお、制御指令421のように、データ処理用コア321による処理が可能な状態に分解された指令を基本指令とよぶ。<CNPUMAC>は後述する制御要求パケットをうけとる制御用インターフェース(データ処理用コア321など)のMACアドレスである。<NeMIF>は制御指令を送信するインターフェースの識別子である。
Note that a command that is decomposed into a state in which processing by the
図4Bは、制御指令421に対応する制御要求パケット412と、制御要求パケット412に対応する制御応答パケット417の一例をしめす。制御要求パケット412は、制御指令421にふくまれる上記3個のMACアドレスをふくむ。制御要求パケット412は、イーサネットのパケットであり、先頭に格納されたCNPUMACが当該制御要求パケット412の転送先、すなわち後述する制御パケット処理コアを指示している。なお、当該制御要求パケット412の転送先の決定方法として、たとえばラウンドロビン等がある。
FIG. 4B shows an example of a
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
なお、制御要求メッセージ411にはXMLなどの、可変長のデータが使用されることがおおい。制御要求メッセージ411に、可変長のデータが使用される場合は、複数のパケットに分割されることもある。また、制御要求メッセージ411は、文字列として記述され、その文法を解析するには、構文および意味の解析処理という複雑な処理が必要であり、データ処理用コア321において実行するには適していない。
Note that variable length data such as XML is often used for the
これに対して制御要求パケット412は固定長であり、1個のパケットが1個の指令に対応する。そのため、制御要求パケット412は、複雑なプロトコル機能を実装していないベアメタルのデータ処理用コア321においても、容易にあつかうことができる。
In contrast, the
(単純なデータ処理制御法)
図5は、図4Aでしめした単純な制御要求メッセージ411による制御シーケンスの一例をしめす。図5では、オペレータによって制御シーケンスがオペレータ・コンソール102によって起動される例をしめしているが、ネットワーク管理装置111によって制御シーケンスが起動されてもよい。
(Simple data processing control method)
FIG. 5 shows an example of a control sequence by the simple
オペレータがオペレータ・コンソール102にコマンドを投入すると、オペレータ・コンソール102は、ネットワーク管理装置111にネットワーク121全体に対して、当該コマンドに対応する制御要求メッセージ410を送信する(S450)。
When the operator inputs a command to the
ネットワーク管理装置111は、制御要求メッセージ410を受信すると、制御要求メッセージ410に対応する制御要求メッセージ411作成し、配下の各物理ノード112の制御ボード241に送信する(S451)。
Upon receiving the control request message 410, the
なお、ネットワーク管理装置111は、制御の対象とならない物理ノード112に対しては、制御要求メッセージ411を送信しないようにすることもできる。また、物理ノード112に対して送信された制御要求メッセージ411は、物理ノード112内にある制御ボード241が受信するが、ネットワーク・プロセッサ212内にある汎用コア311が受信してもよい。
Note that the
制御ボード241は、制御要求メッセージ411を、翻訳することで、制御要求パケット412を作成し、制御要求パケット412を、当該物理ノード112内にあるネットワーク・プロセッサ212の入力プロセッサ302に転送する(S452)。入力プロセッサ302に転送された制御要求パケット412は、いずれかのデータ処理用コア321において処理可能になるまでの間、いずれかの入力キュー304に保管される。
The
なお、ステップS452において、制御ボード241が制御要求メッセージ411を処理しているが、物理ノード112の外部にあるプロセッサ(PC等)が当該処理をしてもよい。また、制御要求メッセージ411には、当該物理ノード112内のすべてのパケット処理ボード211に関するものと、当該物理ノード112内の特定のパケット処理ボード211だけに関するものとがあり、ステップS452では、それぞれについてことなる処理が必要になる。
In step S452, the
制御要求メッセージ411が、当該物理ノード112内のすべてのパケット処理ボード211に関するものであるときは、制御ボード241は、当該物理ノード112内のすべてのパケット処理ボード211にあてて制御要求パケット412を送信すればよい。また、ネットワーク管理装置111が、当該物理ノード112内のパケット処理ボード211にふくまれるすべての汎用コア311にあてて制御要求メッセージ411を送信してもよい。
When the
制御要求メッセージ411が、当該物理ノード112内の特定のパケット処理ボード211に関するときは、たとえば、制御ボード241は、制御するべきパケット処理ボード211を選択し、1個の制御要求パケット412を選択されたパケット処理ボード211にあてて送信すればよい。また、ネットワーク管理装置111が制御するべきパケット処理ボード211を選択し、選択されたパケット処理ボード211にふくまれる汎用コア311にあてて1個の制御要求メッセージ411を送信してもよい。
When the
なお、ステップS451で、汎用コア311が制御要求メッセージ411を受信した場合は、ステップS452において汎用コア311が制御要求パケット412を送信する。このとき、汎用コア311は、当該制御要求パケット412を、入力プロセッサ302内の入力キュー304に一旦もどす。入力キュー304が各データ処理用コア321内に存在するときは、汎用コア311は、当該制御要求パケット412を、各データ処理用コア321に転送する。
When the general-
さらに、いずれかのデータ処理用コア321において処理が可能になったら、当該データ処理用コア321は、入力プロセッサ302に処理が可能な旨を通知する。入力プロセッサ302は、当該通知を送信したデータ処理用コア321から、制御処理のために使用するデータ処理用コア321を選択し、制御要求パケット412を転送する(S453)。以下、制御処理を行う当該データ処理用コア321を、制御パケット処理コア401とよぶ。入力プロセッサ302が、制御パケット処理コア401を選択する方法については後述する。
Further, when processing is possible in any of the
制御パケット処理コア401は共有メモリ331を使用して、パケット・データ処理をおこなうデータ処理用コア321と、制御要求パケット412にふくまれる制御信号、および制御データ等をやりとりする。以下、パケット・データ処理を行う当該データ処理用コアをデータ・パケット処理コア402とよぶ。
The control
制御パケット処理コア401は、データ処理において必要なパラメータなどの、制御要求パケット412にふくまれるデータをデータ・パケット処理コア402にわたす必要があるときは、当該データを共有メモリ331にかきこむ(S454)。データ・パケット処理コア402は、共有メモリ331にかきこまれた当該データが必要になったときに、当該データをよみだす(S455)。
When the control
また、データ・パケット処理コア402は、データ処理中に生成された統計情報などを共有メモリ331にかきこむ(S456)。制御パケット処理コア401は、ネットワーク管理装置111にわたすべきデータをデータ・パケット処理コア402からうけとる必要があるときは、データ・パケット処理コア402が共有メモリにかきこんだデータをよみだす(S457)。
Further, the data
制御パケット処理コア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
(このデータ処理制御法の利点)
本実施例におけるデータ処理制御法には、以下のような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
第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
第3に、本実施例におけるデータ処理制御法では、制御パケット処理コア401は、データ・パケット処理コア402における情報を高速に把握することができる。したがって、サービス妨害攻撃(DoS)などの攻撃をうけた際に、制御パケット処理コア401は、当該攻撃を即座に検知し、対応することができるという利点がある。
Third, in the data processing control method according to the present embodiment, the control
たとえば、制御パケット処理コア401は、共有メモリ331にかきこまれたデータ・パケット処理コア402からの統計情報を収集し、1個のポートに対するアクセスが集中するときには攻撃の特徴を把握する。制御パケット処理コア401は、当該攻撃の特徴をもつパケットを廃棄するようにデータ・パケット処理コア402に指示することができる。
For example, the control
制御パケット処理コア401は、当該攻撃の特徴を単純な計算により把握することはできないが、ネットワーク・プロセッサ212のなかには、このような計算をハードウェアでおこなうものもある。また、本実施例においては、攻撃特徴把握処理専用のデータ・パケット処理コア402をわりあてることも可能である。
The control
データ・パケット処理コア402は、データ・パケット本来の処理と、このような攻撃に対するそなえと、を並列に実行することができる。そのためには、同一のパケットをミラーして両者にわたせばよい。入力プロセッサ302等が、このようなミラーリングをおこなうことができる。
The data
(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
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
前述した制御要求メッセージ411は、物理ノード112の外部のMACアドレス00−03−b0−00−00−11と、物理ノード112の内部のMACアドレス00−04−b0−00−00−01とを対応させて、VLANリンクスリバーを生成する指令である。つまり行711は、制御パケット処理コア401が、制御要求パケット412を受信した際に生成されたものである。他の行も同様に、制御パケット処理コア401が、他の制御要求パケットを受信した際に生成されたものである。
The
データ・パケットが物理ノード112の外部からとどいたときは、データ・パケット処理コア402は、MACアドレス対応表422を参照し、MACアドレス対応表422からのよみだしをおこなう。このとき、データ・パケット処理コア402は、データ・パケットの送信元のMACアドレスが登録された外部アドレスにマッチするかどうかを検索し、マッチすれば当該外部アドレスを対応する内部アドレスにかきかえる。これによって、当該物理ノード112の外部からとどいた仮想リンク上のパケットが当該物理ノード112の内部に入力される。
When the data packet arrives from the outside of the
また、データ・パケットが当該物理ノード112の内部からとどいたときは、当該物理ノード112の外部からとどいたときと同様に、データ・パケット処理コア402は、MACアドレス対応表422を参照し、MACアドレス対応表422からのよみだしをおこなう。データ・パケット処理コア402は、当該データ・パケットの送信元のMACアドレスが、MACアドレス対応表422に登録された内部アドレスにマッチするかどうかを検索し、マッチすれば当該内部アドレスを対応する外部アドレスにかきかえる。これによって、当該物理ノード112の内部からとどいた仮想リンク上のパケットが、当該物理ノード112の外部に出力される。
Further, when the data packet arrives from the inside of the
なお、データ・パケットが物理ノード112の外部からとどいた場合、内部からとどいた場合の双方において、データ・パケットに含まれる外部アドレス、または内部アドレスにマッチする行が存在しないデータ・パケットは、不正なパケットとして廃棄される。すなわち、対応する仮想リンクが存在しないパケットは廃棄される。
It should be noted that both when the data packet arrives from outside the
パケットが当該物理ノード112の外部からとどいたか、内部からとどいたかは、当該物理ノード112のどのインターフェースにとどいたかで識別するか、またはVLAN番号によって識別する。VLANリンクスリバー生成においては、データ・パケット処理コア402は、原則的に共有メモリ331へのかきこみをおこなわない。
Whether the packet has arrived from the outside of the
しかし、処理の内容によっては、ステップS456において、データ・パケット処理コア402は、共有メモリ331へのかきこみをおこなう。ステップS457において、制御パケット処理コア401は、共有メモリ331にかきこまれた結果をよみだす。制御パケット処理コア401は、当該結果を制御応答パケット417にのせ、出力プロセッサ303を経由して、制御ボード241に応答する。
However, depending on the content of the process, the data
ステップS460において、制御ボード241は、当該制御応答パケット417の内容を、制御応答メッセージ418にとりこみ、ネットワーク管理装置111に報告している。これによって、データ・パケット処理コア402がもつ情報を、ネットワーク管理装置111につたえることができる。
In step S 460, the
パケットをワイヤレートで処理するためには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
(データ処理用コアにおける処理プログラムの選択)
本実施例において、1つのデータ処理用コア321が、データ・パケットと制御要求パケットとをともにあつかうことがあるため、当該データ処理用コア321は、受信したパケットの種類によってデータ処理用プログラム、または制御用プログラムのどちらを実行するかを選択する必要がある。
(Selection of processing program in data processing core)
In the present embodiment, since one
図7Aは、データ処理用コア321におけるプログラム選択の処理をしめすフローチャートである。当該処理は、データ処理用コア321がパケットを受信するたびに、くりかえし実行される。
FIG. 7A is a flowchart showing a program selection process in the
まず、データ処理用コア321は、パケット受信待機状態にある(S1660)。データ処理用コアがパケットを受信する(S1661)。データ処理用コア321は、パケットのヘッダの一部の値を参照することによってパケットの種類を判定する(S1662)。データ処理用コア321は、受信したパケットの種類が制御要求パケットであると判定したとき(S1662:制御パケット)、制御用プログラムを実行する(S1663)。データ処理用コア321は、受信したパケットの種類がデータ・パケットであると判定したとき(S1662:データ・パケット)、データ処理用プログラムを実行する(S1664)。
First, the
この処理を可能にするために、制御ボード241は、制御要求パケット412を生成する際に、データ・パケットから識別可能なタグを、制御要求パケット412のヘッダに格納しておく必要がある。これは、制御要求パケットとデータ・パケットとが、同一のネットワーク・インターフェース251から到着することがあるためである。したがって、両者がことなるネットワーク・インターフェース251から到着する場合には、たとえば制御要求パケットにネットワーク・インターフェース251のアドレスを付加すれば、ステップS1662における判定を省略できる。上述した処理により、データ処理用コア321は、制御要求パケットと、データ・パケットの双方について処理をおこなうことができる。したがって、たとえば後述する混合処理の方法等を使用すれば、制御パケット処理コア401と、データ・パケット処理コア402の比率を動的に変更することができ、制御処理とデータ処理とのあいだでの動的な負荷配分が実現される。
In order to enable this processing, the
なお、本実施例では、制御用プログラムとデータ処理用プログラムは同一のプログラミング言語によって記述することができる。また、当該同一のプログラミング言語では、共有メモリ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
また、制御用プログラムとデータ処理用プログラムとを同一のプログラミング言語によって記述することができるため、移植可能なデータ処理用プログラムを開発することにより、制御用プログラムも同時に移植可能になる。 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
つまり、データ処理用コア321は、すべてのデータ処理用コア321に共通なプログラム、すなわちデータ処理機能と制御処理機能の両方をふくむプログラムを実行することができる。さらに、データ処理用コア321は、データ処理機能だけをもつプログラムや、制御処理機能だけをもつプログラムを実行することもできる。
That is, the
データ処理用コア321は、データ処理機能と制御処理機能の両方をふくむプログラムを実行するときは、パケットの処理開始時にパケット・ヘッダを参照し、パケットの種類を判定する。データ処理用コア321が、受信したパケットはデータ・パケットであると判定した場合、データ処理機能を実行する。データ処理用コア321が、受信したパケットは制御要求パケットであると判定した場合、制御処理機能を実行する。
When executing the program including both the data processing function and the control processing function, the
図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
入力プロセッサ302は、受信したパケットの種類が、制御要求パケットであると判定したとき(S1612:制御パケット)、当該パケットを、1個または複数個の制御パケット用の入力キュー304にいれる(S1613)。入力プロセッサ302は、受信したパケットの種類がデータ・パケットであると判定したとき(S1612:データ・パケット)、当該パケットを1個、または複数個のデータ・パケット用の入力キュー304にいれる(S1614)。
When the
この処理を可能にするために、制御ボード241は、制御要求パケット412を生成する際に、データ・パケットから識別可能なタグを、制御要求パケット412のヘッダに格納しておく必要がある。したがって、両者がことなるネットワーク・インターフェース251から到着する場合には、たとえば制御要求パケットにネットワーク・インターフェース251のアドレスを付加すれば、ステップS1662における判定を省略できる。上記処理によって、パケットを制御パケット用キューとデータ・パケット用キューとにわけて蓄積することで、データ処理と制御処理とを独立に制御できる。つまり、後述する制御専用処理やデータ専用処理の方法を使用できるようになる。
In order to enable this processing, the
入力プロセッサ302は、いずれかの入力キュー304から、データ処理用コア321へ、制御要求パケット、またはデータ・パケットを送信し、当該パケットを受信したデータ処理用コア321は当該パケットを処理する。この一連の処理をくりかえす。この一連の処理の方法として制御専用処理、データ専用処理、混合処理という3種類の処理方法がある。
The
第1は制御専用処理の方法である。すなわち、データ処理用コア321が、制御処理機能だけをふくむプログラムを実行しているときは、データ処理用コア321は、あらたな制御要求パケットを処理する準備がととのったとき、制御パケット用キューに制御要求パケットを送信するよう要求すればよい。これによって、あやまってデータ・パケットを入力することがなくなる。また、これによって制御処理のためのデータ処理用コア321が常に確保されるため、データ処理の負荷がたかいときでも制御処理のためのリソースが確保され、迅速に実行されるという利点がある。
The first is a method dedicated to control. In other words, when the
第2はデータ専用処理の方法である。すなわち、データ処理用コア321が、データ処理機能だけをふくむプログラムを実行しているときは、データ処理用コア321は、あらたなデータ・パケットを処理する準備がととのったとき、データ・パケット用キューにデータ・パケットを送信するよう要求すればよい。これによって、あやまって制御要求パケットを入力することがなくなる。これによって制御処理の負荷がたかいときでもデータ処理のためのリソースが確保される。
The second is a data-only processing method. In other words, when the
第3は混合処理の方法である。すなわち、データ処理用コア321が、データ処理機能と制御処理機能の両方をふくむプログラムを実行しているときには、あらたなパケットを処理する準備がととのったとき、制御パケット用キューから制御要求パケット、またはデータ・パケット用キューからからデータ・パケットを送信するよう要求すればよい。たとえば、データ処理用コア321が、制御パケット用キューとデータ・パケット用キューのうち蓄積されているパケットの数がおおい方にパケットを送信するよう要求すれば、制御処理とデータ処理とのあいだでの負荷配分が実現される。すなわち、制御処理の負荷が相対的にたかいときは、制御処理によりおおくのコアが使用されるようになり、データ処理の負荷が相対的にたかいときは、データ処理によりおおくのコアが使用されるようになる。また、データ処理用コア321は、制御要求パケット、データ・パケットのいずれかを優先的に処理してもよい。
The third method is a mixing process. That is, when the
なお、入力キュー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
(連接型データ処理制御法とメッセージの内容)
制御指令は基本的に連接、選択、反復という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
本実施例では、制御ボード241は、複数の基本指令をならべた連接型の複雑な指令をふくむ制御要求メッセージ811を処理することができる。
In this embodiment, the
図8Aは、連接型制御要求メッセージの一例として、VLANリンクスリバーを生成する2個の制御指令821、822と、VLANリンクスリバーを削除する1個の制御指令823と、をふくむ制御要求メッセージ811をしめす。制御指令821、822、823はいずれも基本指令である。
FIG. 8A shows a
制御指令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
図8Bは制御指令821〜823のそれぞれに対応する制御要求パケット812a〜812cと、制御要求パケット812a〜812cのそれぞれに対する制御応答パケット817a〜817cと、をしめす。制御要求パケット812aには制御指令821にふくまれる3個のMACアドレスがふくまれる。
FIG. 8B shows
制御要求パケット812a〜812cはイーサネット・パケットである。制御要求パケット812a、812bにおけるvlink_addは、当該パケットの内容がVLANリンクスリバー生成指令であることをあらわす。そして、それにつづく2個のMACアドレスがVLANリンクスリバー生成指令のパラメータである。制御パケット処理コア401は、これらの指令を受信するとMACアドレス対応表422の行711および行712を生成する。
The
制御要求パケット812cにおけるvlink_remは当該パケットの内容がVLANリンクスリバー削除指令であることをあらわす。そして、それにつづく2個のMACアドレスは、VLANリンクスリバー削除指令のパラメータをあらわす。また、制御要求パケット812cにふくまれる物理ノード外部のMACアドレスと、物理ノード内部のMACアドレスは、MACアドレス対応表422の行713の値のそれぞれとおなじである。したがって、制御パケット処理コア401は、制御要求パケット812cを受信すると、MACアドレス対応表422の行713を削除する。
Vlink_rem in the
制御要求パケット812a〜812cに対する制御応答パケット817a〜817cは、NeMMAC、CNPUMAC、type、および応答結果(図9(b)ではOK)をふくむ。
図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
制御要求メッセージ811を受信した制御ボード241は、当該制御要求メッセージ811を翻訳し、3個の制御要求パケット812a〜812cに分解する。すなわち、当該制御ボード241は、当該制御要求メッセージ811を翻訳し、第1のVLANリンクスリバー生成指令を制御要求パケット812aと、第2のVLANリンクスリバー生成指令を制御要求パケット812bと、第3のVLANリンクスリバー消去指令を制御要求パケット812cと、に分解する。
The
ステップ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
制御ボード241は、制御応答パケット817a〜817cをひとまとめにしたうえで翻訳することで制御応答メッセージ818を作成し、ネットワーク管理装置111に送信する(S860)。ネットワーク管理装置111は、制御応答メッセージ818に対応する制御応答メッセージ819を作成し、制御応答メッセージ819をオペレータ・コンソール102に送信する(S861)。
The
以上のように、制御ボード241が、連接型の制御要求メッセージ811を翻訳、分解することにより、それまでは1個のパケットに格納することができない制御要求メッセージ811を1個のパケットに格納できるようになる。したがって、データ処理用コア321は、制御要求パケット812a〜812cを、容易に処理できるようになるという利点がある。また、当該制御要求メッセージ811による制御処理が、データ処理と同程度の実行時間で終了するため、パケットが適切にスケジュールされるようになるという利点がある。
As described above, the
なお、本実施例においては、制御指令を1個ずつことなる制御要求パケットに分解した。しかし、データ処理用コア321が、同時に複数の制御指令を処理できれば、複数個の制御パケットをまとめて送信したほうが、効率がよいこともある。制御ボード241は、データ処理用コア321の種類や処理能力を考慮して分解の方法を変更することができる。
In this embodiment, the control command is broken down into different control request packets. However, if the
また、図9においては、制御ボード241は、分解した制御指令を1個のデータ処理用コア321に逐次的に送信しているため、制御パケット処理コア401として使用するデータ処理用コア321の数を減らすことができ、データ処理のためのリソースを確保することができる。なお、制御ボード241は、分解した制御指令を1つずつ別々のデータ処理用コア321に並列に送信することもできる。すなわち、制御指令を並列に実行することもできる。ただし、この場合には制御指令間に依存関係がないことが制御要求メッセージ811においてしめされるか、または物理ノード112において判定されなければならない。制御指令を並列に実行することにより、処理速度が向上する。
In FIG. 9, since the
(選択型データ処理制御法とメッセージの内容)
本実施例では、制御ボード241は、選択型の制御指令をふくむ制御要求メッセージ411aと、その処理することができる。
(Selective data processing control method and message contents)
In the present embodiment, the
図10Aは、選択型制御要求メッセージの一例として、VLANリンクスリバーを生成する制御指令1122と、GREリンクスリバーを消去する制御指令1124とをふくむ制御要求メッセージ411aをしめす。制御指令1122、1124は、いずれも基本指令である。制御指令1121において、リンクスリバーのタイプとしてVLANが要求されているときは、制御指令1122が実行される。制御指令1123において、GREが要求されているときは制御指令1124が実行される。制御ボード241は、自身の静的、または動的な状態によって、どちらの指令を選択するか決定する。
FIG. 10A shows a
図10Bは、制御指令1122、1124にそれぞれに対応する制御要求パケット412a、412bと、制御要求パケット412a、412bのそれぞれに対する制御応答パケット417a、417bの内容をしめす。制御要求パケット412aの内容は、図4Bでしめした、制御要求パケット412と同様である。
FIG. 10B shows the contents of
制御要求パケット412bは、制御指令1124にふくまれるIPアドレス、GREキーおよびMACアドレスをふくむ。制御要求パケット412bにおけるglink_addは、制御要求パケット412bの内容がGREリンクスリバー生成指令であることをあらわす。そして、それにつづく3個のパラメータがGREリンクスリバー生成指令のパラメータである。制御パケット処理コア401は、これらの指令を受信するとGREアドレス対応表の行を生成する。
The
選択型データ処理制御のシーケンスは図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
以上のように、制御ボード241が、選択型の制御要求メッセージ411aを翻訳、分解することによって分岐処理が削除される。したがって、高度な分岐最適化機能をもたないRISCアーキテクチャのデータ処理用コアにおいて、パイプラインがみだされずに処理できるようになるという利点がある。また、制御処理がデータ処理と同程度の実行時間で終了するようになるため、パケットが適切にスケジュールされるようになるという利点がある。
As described above, the
(反復型データ処理制御法とメッセージの内容)
本実施例では、制御ボード241は、制御要求メッセージの一例として、反復型の制御指令をふくむ制御要求メッセージ1311を処理することができる。
(Repetitive data processing control method and message contents)
In the present embodiment, the
図11Aは、反復型制御要求メッセージの一例として、VLANリンクスリバーを生成する制御指令1322をくりかえし適用する制御要求メッセージ811dをしめす。制御指令1321において、制御指令1322を3回反復することが指定されている。制御指令1322は基本指令である。ここでは、制御指令1321は固定回数の反復を指定しているが、可変回数の反復を指定することも可能である。
FIG. 11A shows a
図11Bは、制御指令1322の3回の反復にそれぞれ対応する制御要求パケット812d〜812fと、制御要求パケット812d〜812fのそれぞれ対する制御応答パケット817d〜817fの内容をしめす。制御要求パケット812dの内容は、図4(b)でしめした、制御要求パケット412と同様である。
FIG. 11B shows the contents of
反復型データ処理制御のシーケンスは図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
以上のように、反復型の制御要求メッセージ811dを分解することによって反復処理が削除される。したがって、高度な分岐最適化機能をもたないRISCアーキテクチャのデータ処理用コア321において、パイプラインがみだされずに処理ができるようになるという利点がある。また、制御処理がデータ処理と同程度の実行時間で終了するようになり、無限ループの危険がなくなる。したがって、パケットが適切にスケジュールされるようになるとともに、強制停止の必要がなくなるという利点がある。
As described above, the iterative process is deleted by decomposing the iterative
また、図9においては、制御ボード241は、分解した制御指令を1個のデータ処理用コア321に逐次的に送信したが、連接型の制御メッセージと同様、分解した制御指令をその数だけのデータ処理用コア321に並列に送信することもできる。ただし、この場合には制御指令間に依存関係がないことが制御要求メッセージ811においてしめされるか、または物理ノード112において判定されなければならない。
In FIG. 9, the
(一般のデータ処理制御法とメッセージの内容)
制御指令は、連接、選択、反復のくみあわせからなる。したがって、制御ボード241は、上述した連接型データ処理制御法、選択型データ処理制御法、反復型データ処理制御法をくみあわせることにより、どのような複雑な制御要求メッセージも、部分指令をふくむ制御要求パケットに分解することができる。なお、制御指令のうち連続した一部の指令を部分指令とよぶ。
(General data processing control method and message contents)
Control commands consist of a combination of articulation, selection, and repetition. Therefore, the
すなわち、制御ボード241は、制御要求メッセージを受信したときは、制御要求メッセージにふくまれる指令の種類ごとに、ことなる処理をおこなう。すなわち、第1に、制御要求メッセージが基本指令をふくむとき、制御ボード241は単純なデータ処理制御法によって処理する。第2に、制御要求メッセージが連接型の制御指令をふくむとき、制御ボード241は連接型データ処理制御法によって処理する。第3に、制御要求メッセージが選択型の制御指令をふくむとき、制御ボード241は選択型データ処理制御法によって処理する。第4に、制御要求メッセージが反復型の制御指令をふくむとき、制御ボード241は反復型データ処理制御法によって処理する。
That is, when the
第5に、制御要求メッセージがより複雑な制御指令をふくむとき、制御ボード241は、トップレベルの制御構造によって、すなわち連接型か選択型か反復型かによって、上記のいずれかの方法による指令の分解をおこなう。さらに、再帰的に下位の制御構造によって指令を分解する。この方法は、プログラミング言語のコンパイラやインタプリタにおける分解の方法にひとしい。
Fifth, when the control request message includes a more complicated control command, the
また、上述したように、制御ボード241は、制御要求メッセージがふくむすべての制御指令について、それを分解して制御パケット処理コア401に実行させることができるわけではない。たとえば、制御パケット処理コア401の動作を制御する指令、すなわち制御パケット処理コア401への(記憶装置への)プログラムのロード、制御パケット処理コア401の起動と停止などの指令は、制御パケット処理コア401に実行させることができない場合がある。
Further, as described above, the
このような場合には、制御ボード241が、当該処理を実行する必要がある。したがって、制御ボード241は、データ処理用コア321によって処理できる指令をふくまない制御要求メッセージ411を受信したときは、制御ボード241が当該処理をおこなう。また、制御ボード241は、データ処理用コアによって処理できる指令とデータ処理用コアによって処理できない指令とをふくむ制御要求メッセージ411を受信したときは、前者を制御要求パケットとして制御パケット処理コア401に送信し、後者は制御ボード241が処理する。
In such a case, the
(データ処理用プログラムのロードと制御プロセッサの構成・処理)
データ処理用コア321が実行するプログラム351は主記憶装置342に格納される。データ処理用コア321は、プログラム351をパケット・データ処理の停止中または動作中にロードすることができる。
(Data processing program load and control processor configuration / processing)
A
データ・パケット処理コア402が、プログラム351をロードする際には、ロード中のプログラムまたはローディングによってかきかえられるプログラム351を実行することがないように停止させるか、または他のプログラム351を実行するようにする。プログラム351は複数のプログラムによって構成することもでき、複数のデータ・パケット処理コア402がことなるプログラム351を実行するようにすることもできる。
When the data
このように複数のプログラムが実行されるときに、それに対応した制御をおこなうための制御ボード241の構成および処理方法を図12〜14を使用して説明する。ことなるプログラムを実行するデータ・パケット処理コア402に対してはことなる制御が必要な場合がある。そのため、制御要求メッセージを受信する制御ボード241には基本制御プログラム1711のほかにプラグイン制御プログラム1712、1713を使用する。
The configuration and processing method of the
図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
図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
また、図12、図13においては2個のプラグイン制御プログラム1712、1713を使用しているが、本実施例の機能を実現できる範囲であれば、その数に制限はない。また、プログラム351によっては、基本制御プログラム1711だけで処理可能である。
In FIG. 12 and FIG. 13, two plug-in
図14は、プラグイン制御プログラム1712、1713が存在し、制御ボード241が制御要求メッセージを受信したときの処理をしめすフローチャートである。制御ボード241は、受信した制御要求メッセージがふくむ部分指令をとりだして(S1911)、各部分指令について以下の処理をおこなう。
FIG. 14 is a flowchart showing processing when the plug-in
制御ボード241は、とりだした部分指令が基本制御プログラム用指令かどうか、すなわち基本制御プログラム1711において処理できるものであるかどうかを判定する(S1912)。当該部分指令が基本制御プログラム用指令であれば(S1912:Yes)、制御ボード241は、基本制御プログラム1711によって当該部分指令を処理する(S1913)。当該部分指令が基本制御プログラム用指令でなく、拡張指令の場合(S1912:No)、制御ボード241は、プラグイン制御プログラム1712、1713のうち、当該拡張指令の対応するプラグイン制御プログラムによって部分指令を処理する。
The
プラグイン制御プログラム1712、1713が同一プロセッサ内にあるときは、制御ボード241は、API(Application Programming Interface)等によってプラグイン制御プログラム1712、1713をよびだす。一方、プラグイン制御プログラム1712、1713がことなるプロセッサにあるときは、制御ボード241は、ソケット通信などによってプラグイン制御プログラム1712、1713をよびだす。本実施例によれば、データ処理用コア321において複数のプログラム351が実行されるとき、制御ボード241は、基本制御プログラム1711、またはプラグイン制御プログラム1712、1713により、対応した処理をおこなうことができる。
When the plug-in
汎用コア311がプラグイン制御プログラム1712、1713を実行する場合、汎用コア311はネットワークを介して制御ボード241から拡張指令を受信し、当該拡張指令の対応するプログラムによって部分指令を処理する。汎用コア311が基本制御プログラム1711とプラグイン制御プログラム1712、1713とを実行してもよい。このように、汎用コア311は、データ・パケット通信装置における制御装置に含まれる。また、図13において汎用コア311のかわりに、複数の制御ボード241、制御ボード241と別筐体内にある制御ボード、制御ボード241と別筐体内にあるパケット処理ボードに実装された汎用コア等を使用した場合、これらは、データ・パケット通信装置における制御装置に含まれる。
When the general-
なお、本発明は上述した実施例に限定されるものではなく、様々な変形例が含まれる。たとえば、上述した実施例は本発明をわかりやすく説明するために詳細に記載したものであり、かならずしも説明した全ての構成をそなえるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成におきかえることが可能であり、また、ある実施例の構成に他の実施例の構成をくわえることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。 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ベアメタル・コアが、受信したパケットの種類が制御要求パケットであると判定すると、
前記データ共有装置を介して、他のベアメタル・コアに、前記制御要求パケットにふくまれる前記制御データを送信する、ことを特徴とする方法。 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.
前記複数のベアメタル・コアは、前記すくなくともひとつの第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.
前記データ処理装置は、制御要求パケットを格納する制御パケット用キューと、データ・パケットを格納するデータ・パケット用キューと、をふくみ、
前記すくなくともひとつの第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.
前記複数のベアメタル・コアはデータ・パケットを処理することなく制御要求パケットを処理する、すくなくともひとつの第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.
前記制御装置が、前記制御要求メッセージを、複数の基本指令に翻訳し、それぞれが前記複数の基本指令におけるすくなくともひとつの基本指令をふくむ複数の制御要求パケットを作成する、ことを特徴とする方法。 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.
前記複数のベアメタル・コアが、複数の種類の制御プログラムを実行し、
前記制御装置が、基本制御プログラムと前記基本制御プログラムに対するプラグイン制御プログラムを実行し、
前記制御装置が、前記制御要求メッセージに含まれる指令に応じて前記基本制御プログラムおよび前記プラグイン制御プログラムから選択されたプログラムを実行する、ことを特徴とする方法。 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.
前記制御装置は、第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.
前記複数のベアメタル・コアのうちの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.
前記複数のベアメタル・コアのうちの複数のベアメタル・コアのそれぞれが、前記複数の基本指令のすくなくともひとつを受信する、ことを特徴とする方法。 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.
前記制御要求メッセージが、選択型制御指令をふくむとき、前記制御装置が、前記選択型制御指令における条件判定をおこない、前記条件判定において真と判定したとき、第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.
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)
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)
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 |
-
2013
- 2013-08-29 JP JP2013178416A patent/JP6037978B2/en active Active
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 |