JP6195316B2 - Information processing apparatus, information processing method, and program - Google Patents

Information processing apparatus, information processing method, and program Download PDF

Info

Publication number
JP6195316B2
JP6195316B2 JP2015169018A JP2015169018A JP6195316B2 JP 6195316 B2 JP6195316 B2 JP 6195316B2 JP 2015169018 A JP2015169018 A JP 2015169018A JP 2015169018 A JP2015169018 A JP 2015169018A JP 6195316 B2 JP6195316 B2 JP 6195316B2
Authority
JP
Japan
Prior art keywords
transmission
lan card
reception
unit
processing
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
JP2015169018A
Other languages
Japanese (ja)
Other versions
JP2017046283A (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.)
PFU Ltd
Original Assignee
PFU 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 PFU Ltd filed Critical PFU Ltd
Priority to JP2015169018A priority Critical patent/JP6195316B2/en
Publication of JP2017046283A publication Critical patent/JP2017046283A/en
Application granted granted Critical
Publication of JP6195316B2 publication Critical patent/JP6195316B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、情報処理装置、情報処理方法、及びプログラムに関する。   The present invention relates to an information processing apparatus, an information processing method, and a program.

例えば、特許文献1には、調整システムを利用して共有リソースの障害を判断し、リセットと、共有リソースへのアクセスを制御できるマルチコアシステムが開示されている。   For example, Patent Document 1 discloses a multi-core system that can determine a failure of a shared resource using an adjustment system, and control reset and access to the shared resource.

米国特許出願公開第2010/0325495号明細書US Patent Application Publication No. 2010/0325495

他のモジュールに対する影響を抑えながら、LANカードを再起動させることができる情報処理装置を提供することを目的とする。   An object of the present invention is to provide an information processing apparatus capable of restarting a LAN card while suppressing the influence on other modules.

本発明に係る情報処理装置は、LANカードを介してデータの送受信を行う送受信部と、前記送受信部からの制御情報に応じて、前記LANカードにアクセスし、データの送受信を行う下位送受信部と、前記LANカードの異常を検知する検知部と、前記検知部により異常が検知された場合に、LANカードに対して再起動動作を指示する復帰指示部とを有し、前記送受信部は、前記復帰指示部により指示された再起動動作が実行されている間、前記下位送受信部に対して、少なくとも送信処理を禁止する制御情報を出力する。   An information processing apparatus according to the present invention includes: a transmission / reception unit that transmits / receives data via a LAN card; and a lower-level transmission / reception unit that accesses the LAN card and transmits / receives data according to control information from the transmission / reception unit A detection unit that detects an abnormality of the LAN card; and a return instruction unit that instructs a restart operation to the LAN card when an abnormality is detected by the detection unit. While the restart operation instructed by the return instruction unit is being executed, control information for prohibiting at least transmission processing is output to the lower-level transmission / reception unit.

好適には、前記検知部は、前記送受信部が管理している送信キューの状態に基づいて、前記LANカードの異常を検知する。   Preferably, the detection unit detects an abnormality of the LAN card based on a state of a transmission queue managed by the transmission / reception unit.

好適には、前記復帰指示部は、単一の制御プレーンコアであり、前記送受信部は、複数のデータプレーンコアを含み、全ての前記データプレーンコアが、少なくとも送信処理を禁止する制御情報を前記下位送信部に出力する。   Preferably, the return instruction unit is a single control plane core, the transmission / reception unit includes a plurality of data plane cores, and all the data plane cores at least transmit control information for prohibiting transmission processing. Output to the lower transmission unit.

好適には、前記検知部は、いずれかの前記データプレーンコアで既定期間、送信キューが変化しなかった場合に、LANカードの異常であると判断する。   Preferably, the detection unit determines that the LAN card is abnormal when the transmission queue does not change for a predetermined period in any of the data plane cores.

好適には、前記制御プレーンコアは、LANカードの再起動動作が実施されている間、上位層からの要求を無視し、前記下位送信部に対して、LANカードの終了処理、初期化処理及び開始処理を順に実行させる制御情報を出力して、LANカードの再起動動作を実現させる。   Preferably, the control plane core ignores a request from an upper layer while a restart operation of the LAN card is being performed, and terminates a LAN card termination process, an initialization process, and Control information for sequentially executing the start processing is output, and the restarting operation of the LAN card is realized.

本発明に係る情報処理方法は、LANカードを介してデータの送受信処理を行う送受信ステップと、前記送受信ステップからの制御情報に応じて、前記LANカードにアクセスし、データの送受信を行う下位送受信ステップと、前記LANカードの異常を検知する検知ステップと、前記LANカードの異常が検知された場合に、前記LANカードに対して再起動動作を指示する復帰指示ステップと、前記LANカードの前記再起動動作が実行されている間、データの送受信処理を行う下位送受信ステップに対して、少なくとも送信処理を禁止する制御情報を出力する出力ステップとを有する。   An information processing method according to the present invention includes a transmission / reception step for transmitting / receiving data via a LAN card, and a lower transmission / reception step for transmitting / receiving data in accordance with control information from the transmission / reception step. A detection step of detecting an abnormality of the LAN card, a return instruction step of instructing a restart operation to the LAN card when an abnormality of the LAN card is detected, and the restart of the LAN card While the operation is being executed, an output step for outputting at least control information for prohibiting the transmission process is provided for the lower transmission / reception step for performing the data transmission / reception process.

本発明に係るプログラムは、LANカードを介してデータの送受信処理を行う送受信機能と、前記送受信機能からの制御情報に応じて、前記LANカードにアクセスし、データの送受信を行う下位送受信機能と、前記LANカードの異常を検知する検知機能と、前記LANカードの異常が検知された場合に、前記LANカードに対して再起動動作を指示する復帰指示機能と、前記LANカードの前記再起動動作が実行されている間、データの送受信処理を行う下位送受信機能に対して、少なくとも送信処理を禁止する制御情報を出力する出力機能とをコンピュータに実現させる。   A program according to the present invention includes a transmission / reception function for performing data transmission / reception processing via a LAN card, a lower-level transmission / reception function for accessing the LAN card and transmitting / receiving data according to control information from the transmission / reception function, A detection function for detecting an abnormality of the LAN card, a return instruction function for instructing a restart operation to the LAN card when an abnormality of the LAN card is detected, and the restart operation of the LAN card. While the program is being executed, the computer realizes at least an output function for outputting control information for prohibiting the transmission process for the lower-level transmission / reception function for performing the data transmission / reception process.

他のモジュールに対する影響を抑えながら、LANカードを再起動させることができる。   The LAN card can be restarted while suppressing the influence on other modules.

ネットワーク装置10を含むネットワーク通信システム1のハードウェア構成を例示する図である。1 is a diagram illustrating a hardware configuration of a network communication system 1 including a network device 10. FIG. ネットワーク装置10のハードウェア構成を例示する図である。2 is a diagram illustrating a hardware configuration of a network device 10. FIG. ネットワーク装置10の機能ブロックを例示する図である。2 is a diagram illustrating a functional block of a network device 10. FIG. 図3のLANドライバ360(制御プレーンコア側)及びLANドライバ460(データプレーンコア側)のより詳細な機能構成を例示する図である。FIG. 4 is a diagram illustrating a detailed functional configuration of a LAN driver 360 (control plane core side) and a LAN driver 460 (data plane core side) in FIG. 3. (A)は、制御プレーンコア及びデータプレーンコアと、LANカードのインタフェースとの間の関係を中心としたシステム構成を例示する図であり、(B)は、単一のインタフェースに着目してみた場合のシステム構成を例示する図である。(A) is a figure which illustrates the system configuration centering on the relationship between a control plane core and a data plane core, and the interface of a LAN card, (B) tried paying attention to a single interface It is a figure which illustrates the system configuration in the case. 通常状態のデータプレーンコア処理部400によるパケット送受信処理を模式的に説明する図である。It is a figure which illustrates typically the packet transmission / reception process by the data plane core process part 400 of a normal state. LANカード再起動中のデータプレーンコア処理部400の状態を模式的に説明する図である。It is a figure which illustrates typically the state of the data plane core process part 400 during a LAN card restart. データプレーンコア側の異常検知処理(S10)を説明するフローチャートである。It is a flowchart explaining the abnormality detection process (S10) by the side of a data plane core. 制御プレーンコア側の異常検知処理(S20)を説明するフローチャートである。It is a flowchart explaining the abnormality detection process (S20) by the side of a control plane core. LANカードの再起動処理(S30)を説明するフローチャートである。It is a flowchart explaining the restart process (S30) of a LAN card.

以下、本発明の実施形態を、図面を参照して説明する。
図1は、ネットワーク装置10を含むネットワーク通信システム1のハードウェア構成を例示する図である。
図1に例示するように、ネットワーク通信システム1は、複数のネットワーク装置10と、これを接続するネットワークスイッチ20とを含む。
ネットワーク装置10は、ネットワークに接続して使用されるネットワーク機器である。ネットワーク装置10は、本発明に係る情報処理装置の一例である。本例のネットワーク装置は、LANケーブル及びネットワークスイッチ20を介してLANに接続しており、帯域制御機能及びファイアウォール機能などを有すると共に、他のネットワーク装置10と二重化して冗長構成によって耐障害性を高めている。具体的には、稼働中のネットワーク装置10A(Active)と、待機中のネットワーク装置10B(Standby)との間で生存監視パケットが送受信され、既定時間生存監視パケットが送受信されない場合に、待機中のネットワーク装置10Bが稼働状態となり、役割を引き継ぐ。
Embodiments of the present invention will be described below with reference to the drawings.
FIG. 1 is a diagram illustrating a hardware configuration of a network communication system 1 including a network device 10.
As illustrated in FIG. 1, the network communication system 1 includes a plurality of network devices 10 and a network switch 20 that connects the network devices 10.
The network device 10 is a network device used by connecting to a network. The network device 10 is an example of an information processing device according to the present invention. The network device of this example is connected to the LAN via the LAN cable and the network switch 20 and has a bandwidth control function, a firewall function, etc., and is redundant with other network devices 10 to provide fault tolerance through a redundant configuration. It is increasing. Specifically, when the survival monitoring packet is transmitted and received between the operating network device 10A (Active) and the waiting network device 10B (Standby) and the predetermined time survival monitoring packet is not transmitted and received, The network device 10B becomes operational and takes over the role.

例えば、本例のネットワーク通信システム1では、2台のネットワーク装置10の間で、1秒間隔で生存監視パケットが送信され、生存監視パケットの送信が3秒以上滞ると、二重化監視でエラー検出となり、Active/Standbyのネットワーク装置10の切り替えが発生するように設定されている。この場合、LANカードの異常などで送信タイムアウトが検出され、リセットリカバリして復旧させるまでに3秒以上の時間がかかってしまうと、ネットワーク装置10間で生存監視パケットの送信ができず、リカバリできる事象であるにも関わらずActive/Standbyの系切り替えが発生してしまう。したがって、本例では、送信タイムアウト検出からリセットリカバリまでを3秒以内に完了させることが望ましい。   For example, in the network communication system 1 of this example, a survival monitoring packet is transmitted between two network devices 10 at intervals of 1 second, and if the survival monitoring packet is transmitted for 3 seconds or more, an error is detected by duplex monitoring. , Active / Standby network device 10 is set to switch. In this case, if a transmission timeout is detected due to an abnormality in the LAN card and it takes 3 seconds or more to recover after reset recovery, the survival monitoring packet cannot be transmitted between the network devices 10 and can be recovered. Although it is an event, Active / Standby system switching occurs. Therefore, in this example, it is desirable to complete the transmission timeout detection to reset recovery within 3 seconds.

図2は、ネットワーク装置10のハードウェア構成を例示する図である。
図2に例示するように、ネットワーク装置10は、CPU100、メモリ102、複数のスロット104、サウスブリッジ106、ハードディスクドライブ108、コンパクトフラッシュ変換アダプタ110、及び、DVDドライブ112を有する。
CPU100は、中央処理装置である。本例のCPU100は、複数のコアからなるマルチコアプロセッサである。
メモリ102は、例えば、半導体メモリであり、CPU100に接続され、主記憶装置として機能する。
スロット104は、拡張スロットであり、例えば、LANカード120などが挿入される。本例のスロット104には、LANカード120が挿入されており、本例のLANカード120には、PCIスイッチを介して複数のインタフェース(#0〜#3)が設けられている。ここで、LANカードとは、広義のネットワークカードを意味し、イーサネット(登録商標)に対する狭義のLANカードだけではなく、ファイバーチャネルカードなどのネットワークカードやネットワークアダプタなどを含む概念である。
サウスブリッジ106は、例えば、SATAバスなどを接続するICチップである。本例では、サウスブリッジ106には、ハードディスクドライブ108、コンパクトフラッシュ変換アダプタ110、及び、DVDドライブ112が接続されている。
本例のネットワーク装置10は、上記ハードウェア構成にデータプレーン開発キット(Data Plane Development Kit)を採用して、パケット処理の高速化を実現している。
FIG. 2 is a diagram illustrating a hardware configuration of the network device 10.
As illustrated in FIG. 2, the network device 10 includes a CPU 100, a memory 102, a plurality of slots 104, a south bridge 106, a hard disk drive 108, a compact flash conversion adapter 110, and a DVD drive 112.
The CPU 100 is a central processing unit. The CPU 100 in this example is a multi-core processor including a plurality of cores.
The memory 102 is, for example, a semiconductor memory, is connected to the CPU 100, and functions as a main storage device.
The slot 104 is an expansion slot, and for example, a LAN card 120 or the like is inserted therein. A LAN card 120 is inserted into the slot 104 of this example, and the LAN card 120 of this example is provided with a plurality of interfaces (# 0 to # 3) via PCI switches. Here, the LAN card means a network card in a broad sense, and is a concept including not only a LAN card in a narrow sense for Ethernet (registered trademark) but also a network card such as a fiber channel card, a network adapter, and the like.
The south bridge 106 is an IC chip that connects, for example, a SATA bus. In this example, a hard disk drive 108, a compact flash conversion adapter 110, and a DVD drive 112 are connected to the south bridge 106.
The network apparatus 10 of this example employs a data plane development kit (Data Plane Development Kit) in the hardware configuration described above, thereby realizing high-speed packet processing.

ここで、オープンソースソフトウェアであるデータプレーン開発キットでは、送信処理が複数コア(複数のデータプレーンコア)に跨って実行される場合の送信タイムアウト検出処理及びリセット処理が用意されていない。すなわち、データプレーン開発キットで採用されているLANドライバ(PMD:Polling Mode Driver)では、制御プレーンコアとデータプレーンコアという二つの機能に分離されている。制御プレーンコアでは、主にLANカードに対する制御を行い、データプレーンコアでは、パケット送受信処理を行うという特殊なCPUコアの使い方となっている。さらに、パケットを高速に処理するためにデータプレーンコアが複数存在し、一つのLANカード上のインタフェースに対して、コア毎に送受信キューを用意している。この、各コアに割り当てられた送受信キューを常時ポーリングすることで、高速なパケット処理を実現している。このパケット処理機構に則って、タイムアウト検出処理とリセット処理を実装する必要がある。
パケット送信キューはデータプレーンコアが管理しているため、送信キューの状態が変化しないことを検出して、その状況が所定時間続いてタイムアウトしたことを判定する処理は、データプレーンコア上に実装する必要がある。一方、LANカードのインタフェースに対してリセットを指示してリカバリを行う処理は、制御プレーンコア上に実装する必要がある。このため、これらの機能をデータプレーン開発キットで実現するには、複数コア間の連携が必要になる。つまり、異常検知処理及び再起動処理の影響範囲が広くなり、排他制御などが複雑になる可能性があった。
Here, in the data plane development kit that is open source software, a transmission timeout detection process and a reset process when the transmission process is executed across a plurality of cores (a plurality of data plane cores) are not prepared. In other words, the LAN driver (PMD: Polling Mode Driver) employed in the data plane development kit is separated into two functions: a control plane core and a data plane core. The control plane core mainly controls the LAN card, and the data plane core uses a special CPU core that performs packet transmission / reception processing. Furthermore, in order to process packets at high speed, there are a plurality of data plane cores, and for each interface on one LAN card, a transmission / reception queue is prepared for each core. By constantly polling the transmission / reception queue assigned to each core, high-speed packet processing is realized. In accordance with this packet processing mechanism, it is necessary to implement timeout detection processing and reset processing.
Since the packet transmission queue is managed by the data plane core, the processing to detect that the status of the transmission queue does not change and determine that the situation has timed out for a predetermined time is implemented on the data plane core. There is a need. On the other hand, it is necessary to mount a process for performing recovery by instructing reset to the interface of the LAN card on the control plane core. For this reason, in order to realize these functions with the data plane development kit, cooperation between multiple cores is required. That is, the range of influence of the abnormality detection process and the restart process is widened, and there is a possibility that exclusive control and the like become complicated.

図3は、ネットワーク装置10の機能ブロックを例示する図である。
図3に例示するように、ネットワーク装置10は、LANドライバの機能ブロックとして、制御プレーンコア処理部300と、データプレーンコア処理部400とを有する。ここで、制御プレーンコアと制御プレーンコア処理部は実質的に同じものであるが、ハードウェアに着目した場合には「制御プレーンコア」と呼び、機能又はソフトウェアに着目した場合には「制御プレーンコア処理部」と呼ぶ。データプレーンコアとデータプレーンコア処理部の関係も同様である。
制御プレーンコア処理部300は、LANカード120などの制御処理を行う。本例の制御プレーンコア処理部300は、上位エンジン処理部320、LANドライバ共通部340、及びLANドライバ360を有する。上位エンジン処理部320は、上位層からの指示に応じて、制御に必要なデータを、LANドライバ共通部340及びLANドライバ360を介して、LANカード120に出力する。制御プレーンコア処理部300は、本発明に係る復帰指示部の一例である。本例の制御プレーンコア処理部300は、LANカード120の異常が検知された場合に、LANカード120の終了処理、初期化処理及び開始処理を順に実行させる制御情報を出力して、LANカード120の再起動動作を実現させる。
FIG. 3 is a diagram illustrating functional blocks of the network device 10.
As illustrated in FIG. 3, the network device 10 includes a control plane core processing unit 300 and a data plane core processing unit 400 as functional blocks of the LAN driver. Here, the control plane core and the control plane core processing unit are substantially the same. However, when attention is paid to hardware, the control plane core is referred to as a “control plane core”, and when attention is paid to functions or software, the control plane core is referred to as “control plane core”. It is called “core processing unit”. The relationship between the data plane core and the data plane core processing unit is the same.
The control plane core processing unit 300 performs control processing for the LAN card 120 and the like. The control plane core processing unit 300 of this example includes an upper engine processing unit 320, a LAN driver common unit 340, and a LAN driver 360. The upper engine processing unit 320 outputs data necessary for control to the LAN card 120 via the LAN driver common unit 340 and the LAN driver 360 in accordance with an instruction from the upper layer. The control plane core processing unit 300 is an example of a return instruction unit according to the present invention. When an abnormality of the LAN card 120 is detected, the control plane core processing unit 300 of this example outputs control information for sequentially executing the termination process, initialization process, and start process of the LAN card 120, and the LAN card 120. Realize the restart operation.

データプレーンコア処理部400は、パケット処理を行う。本例のデータプレーンコア処理部400は、上位エンジン処理部420、LANドライバ共通部440、及びLANドライバ460を有する。上位エンジン処理部420は、ファイアウォールなどの処理を実行する。
LANドライバ共通部440は、上位エンジン処理部420からの指示に応じて、送受信するパケットに対してLANカード共通の処理を施す。LANドライバ共通部440は、本発明に係る送受信部の一例であり、LANカードの再起動動作が実行されている間、LANドライバ460に対して、少なくとも送信処理を禁止する制御情報を出力する。より具体的には、LANドライバ共通部440は、送受信処理を空振りさせる空振り関数をコールする。
The data plane core processing unit 400 performs packet processing. The data plane core processing unit 400 of this example includes an upper engine processing unit 420, a LAN driver common unit 440, and a LAN driver 460. The upper engine processing unit 420 executes processing such as a firewall.
The LAN driver common unit 440 performs a process common to the LAN card on packets to be transmitted and received in response to an instruction from the upper engine processing unit 420. The LAN driver common unit 440 is an example of a transmission / reception unit according to the present invention, and outputs at least control information for prohibiting transmission processing to the LAN driver 460 while the restarting operation of the LAN card is being performed. More specifically, the LAN driver common unit 440 calls an idle function that makes the transmission / reception process idle.

LANドライバ460は、LANカード120に直接アクセスして、LANドライバ共通部440から指示されたパケットの送受信を行う。すなわち、受信パケットは、LANドライバ460でLANカード120から受け取り、LANドライバ共通部440を通過して、上位エンジン処理部420でファイアウォール機能などの固有機能を適用する。送信パケットは、上位エンジン処理部420からLANドライバ共通部440を通過して、LANドライバ460からLANカード120に受け渡される。LANドライバ460は、本発明に係る下位送受信部の一例である。   The LAN driver 460 directly accesses the LAN card 120 and transmits / receives a packet instructed from the LAN driver common unit 440. That is, the received packet is received from the LAN card 120 by the LAN driver 460, passes through the LAN driver common unit 440, and a unique function such as a firewall function is applied by the upper engine processing unit 420. The transmission packet passes from the upper engine processing unit 420 through the LAN driver common unit 440 and is transferred from the LAN driver 460 to the LAN card 120. The LAN driver 460 is an example of a lower-level transmission / reception unit according to the present invention.

図4は、図3のLANドライバ360(制御プレーンコア処理部)及びLANドライバ460(データプレーンコア処理部)のより詳細な機能構成を例示する図である。
図4に例示するように、制御プレーンコア処理部300に設けられたLANドライバ360は、アクセス制御部362、ダミーアクセス制御部364、監視スレッド部366、及びリセット処理部368を有する。
アクセス制御部362は、上位からの制御依頼に応じて、パケット処理に関与する各構成を制御する。本例のアクセス制御部362は、データプレーン開発キットにおいて用意されている制御機能を実現する。
ダミーアクセス制御部364は、リセット処理部368によりLANカード120の再起動動作が実行されている間に、上位からの制御依頼を受けても、制御プレーンコア処理部300がこの依頼に対応する処理を何もしない状態にする。
FIG. 4 is a diagram illustrating a more detailed functional configuration of the LAN driver 360 (control plane core processing unit) and the LAN driver 460 (data plane core processing unit) in FIG.
As illustrated in FIG. 4, the LAN driver 360 provided in the control plane core processing unit 300 includes an access control unit 362, a dummy access control unit 364, a monitoring thread unit 366, and a reset processing unit 368.
The access control unit 362 controls each component involved in packet processing in response to a control request from the host. The access control unit 362 in this example implements a control function prepared in the data plane development kit.
Even if the dummy access control unit 364 receives a control request from the host while the reset processing unit 368 performs the restart operation of the LAN card 120, the control plane core processing unit 300 performs processing corresponding to this request. To do nothing.

監視スレッド部366は、複数のデータプレーンコア処理部400を定期的にチェックして、送信タイムアウト検出フラグがセットされているか否かを監視する。監視スレッド部366は、いずれかのデータプレーンコア処理部400に送信タイムアウト検出フラグがセットされている場合に、LANカード120の異常が発生したものと判定する。監視スレッド部366は、本発明に係る検知部の一例である。   The monitoring thread unit 366 periodically checks the plurality of data plane core processing units 400 to monitor whether the transmission timeout detection flag is set. The monitoring thread unit 366 determines that an abnormality of the LAN card 120 has occurred when the transmission timeout detection flag is set in any of the data plane core processing units 400. The monitoring thread unit 366 is an example of a detection unit according to the present invention.

リセット処理部368は、監視スレッド部366によりLANカード120の異常が検知された場合に、LANカード120に対して、再起動動作を実施するよう指示する。本例のリセット処理部368は、LANカード120の終了処理、初期化処理及び開始処理を順に実行させる制御情報を出力して、LANカード120の再起動動作を実現させる。   When the monitoring thread unit 366 detects an abnormality of the LAN card 120, the reset processing unit 368 instructs the LAN card 120 to perform a restart operation. The reset processing unit 368 of this example outputs control information for sequentially executing termination processing, initialization processing, and start processing of the LAN card 120, and realizes a restart operation of the LAN card 120.

データプレーンコア処理部400に設けられたLANドライバ460は、送信処理部462、ダミー送信処理部466、受信処理部468、及びダミー受信処理部470を有する。送信処理部462は、タイムアウトチェック部464を含む。
送信処理部462は、データプレーン開発キットに即したパケット送信処理を実行する。本例の送信処理部462は、各データプレーンコア処理部400に割り当てられた送信キューを常時ポーリングして、パケットの送信処理を繰り返し実行する。
タイムアウトチェック部464は、送信キューの状態を監視し、既定時間送信キューの状態が変化しない場合に、送信タイムアウト検出フラグをセットする。
The LAN driver 460 provided in the data plane core processing unit 400 includes a transmission processing unit 462, a dummy transmission processing unit 466, a reception processing unit 468, and a dummy reception processing unit 470. The transmission processing unit 462 includes a timeout check unit 464.
The transmission processing unit 462 executes packet transmission processing in accordance with the data plane development kit. The transmission processing unit 462 of this example constantly polls the transmission queue assigned to each data plane core processing unit 400 and repeatedly executes packet transmission processing.
The timeout check unit 464 monitors the state of the transmission queue, and sets the transmission timeout detection flag when the state of the transmission queue for the predetermined time does not change.

ダミー送信処理部466は、LANドライバ共通部440によりコールされた送信空振り関数に応じて、パケット送信処理の空振りを行う。すなわち、ダミー送信処理部466は、LANドライバ共通部440によりコールされた送信空振り関数に従って、LANカード120に対するアクセスを行わずに、パケット送信できなかった旨を上位層に返す。これにより、上位層では、送信不可を検知し、リトライ処理やパケットドロップ扱いとすることができる。換言すると、リンクアップ状態を継続させながらハードウェアにアクセスしない状態となり、疑似的に送信しているようにエミュレートしている。   The dummy transmission processing unit 466 performs packet transmission processing idle according to the transmission idle function called by the LAN driver common unit 440. That is, the dummy transmission processing unit 466 returns to the upper layer that the packet could not be transmitted without accessing the LAN card 120 according to the transmission idle function called by the LAN driver common unit 440. As a result, the upper layer can detect that transmission is not possible, and can perform retry processing or packet drop handling. In other words, the hardware is not accessed while continuing the link-up state, and it is emulated as if it is being transmitted in a pseudo manner.

受信処理部468は、データプレーン開発キットに即したパケット受信処理を実行する。本例の受信処理部468は、送信処理部462に続いて、パケットの受信処理を繰り返し実行する。
ダミー受信処理部470は、LANドライバ共通部440によりコールされた受信空振り関数に応じて、パケット受信処理の空振りを行う。すなわち、ダミー受信処理部470は、LANドライバ共通部440によりコールされた受信空振り関数に従って、LANカード120に対するアクセスを行わずに、パケット受信できなかった旨を上位層に返す。これにより、上位層では、受信パケット無しということで処理を継続できる。
The reception processing unit 468 executes packet reception processing in accordance with the data plane development kit. Following the transmission processing unit 462, the reception processing unit 468 of this example repeatedly executes packet reception processing.
The dummy reception processing unit 470 performs packet reception processing idle according to the reception idle function called by the LAN driver common unit 440. That is, the dummy reception processing unit 470 returns to the upper layer that the packet could not be received without accessing the LAN card 120 in accordance with the reception idle function called by the LAN driver common unit 440. As a result, the upper layer can continue processing because there is no received packet.

図5(A)は、制御プレーンコア及びデータプレーンコアと、LANカードのインタフェースとの間の関係を中心としたシステム構成を例示する図である。
図5(B)は、単一のインタフェースに着目してみた場合のシステム構成を例示する図である。
図5に例示するように、CPU100の複数のコア(#0〜#N)のうち、一つが制御プレーンコアとして割り当て、残りのN個のコアがデータプレーンコアとして割り当てられている。それぞれのデータプレーンコアが、ループ処理によってパケット送受信処理を実行している。
つまり、それぞれのデータプレーンコアでは、LANカード120のインタフェース毎に送受信キューを用意しており、送受信処理を無限ループで実行することで、高速なパケット処理を実現している。この高速パケット処理では、送信処理と受信処理を延々ループして実行しており、当然、タイミングによってはパケットが存在しない場合が存在するが、このような場合も「通常状態」として存在しうる。したがって、パケット送受信処理の空振りも多くの構成は「通常状態」として処理を継続することができる。
これにより、LANカード120の再起動処理中も、その影響範囲を必要最小限に限定することができる。
FIG. 5A is a diagram illustrating a system configuration centering on the relationship between the control plane core and data plane core and the interface of the LAN card.
FIG. 5B is a diagram illustrating a system configuration when attention is paid to a single interface.
As illustrated in FIG. 5, one of the plurality of cores (# 0 to #N) of the CPU 100 is assigned as a control plane core, and the remaining N cores are assigned as data plane cores. Each data plane core executes packet transmission / reception processing by loop processing.
That is, in each data plane core, a transmission / reception queue is prepared for each interface of the LAN card 120, and high-speed packet processing is realized by executing transmission / reception processing in an infinite loop. In this high-speed packet processing, transmission processing and reception processing are executed in a loop. Of course, there is a case where there is no packet depending on timing, but such a case may exist as a “normal state”. Therefore, many configurations of packet transmission / reception processing can be continued in the “normal state”.
Thereby, even during the restart process of the LAN card 120, the influence range can be limited to the minimum necessary.

図6は、通常状態のデータプレーンコア処理部400によるパケット送受信処理を模式的に説明する図である。
図7は、LANカード再起動中のデータプレーンコア処理部400の状態を模式的に説明する図である。
図6に示すように、各データプレーンコア処理部400では、各コアにくくりつけられた単一スレッドがパケット送受信関数を無限ループで起動している。上位エンジン処理部420からの指示が、LANドライバ共通部440(図のLANドライバ共通部)を介して、最下層のLANドライバ460に入力され、LANドライバ460がLANカード120に直接アクセスしてパケットの送受信を連続的に行っている。
LANカード120の異常が検知され、再起動動作が開始されると、図7に示すように、LANドライバ共通部440は、LANドライバ460に対して、パケットの送受信を実行させない関数(送受信空振り関数)に置換する。これにより、下位のLANドライバ460では、リセット中のLANカード120に対するアクセスを行わずに、結果をLANドライバ共通部440に返し、これが上位エンジン処理部420に結果として返される。上位エンジン処理部420では、通常時(図6の場合)と同じ処理が継続される。
なお、LANカード120の再起動が完了すると、LANドライバ共通部440は、送受信空振り関数を、図6の通常の関数に戻して、通常状態に戻す。
FIG. 6 is a diagram schematically illustrating packet transmission / reception processing by the data plane core processing unit 400 in a normal state.
FIG. 7 is a diagram schematically illustrating the state of the data plane core processing unit 400 during the restart of the LAN card.
As shown in FIG. 6, in each data plane core processing unit 400, a single thread linked to each core starts a packet transmission / reception function in an infinite loop. An instruction from the upper engine processing unit 420 is input to the lowermost LAN driver 460 via the LAN driver common unit 440 (LAN driver common unit in the figure), and the LAN driver 460 directly accesses the LAN card 120 to transmit the packet. Sending and receiving are performed continuously.
When the abnormality of the LAN card 120 is detected and the restart operation is started, as shown in FIG. 7, the LAN driver common unit 440 does not cause the LAN driver 460 to perform packet transmission / reception (transmission / reception idle function). ). As a result, the lower LAN driver 460 returns the result to the LAN driver common unit 440 without accessing the LAN card 120 being reset, and returns the result to the upper engine processing unit 420 as a result. In the upper engine processing unit 420, the same processing as that in the normal state (in the case of FIG. 6) is continued.
When the restart of the LAN card 120 is completed, the LAN driver common unit 440 returns the transmission / reception idle function to the normal function of FIG. 6 to return to the normal state.

図8は、データプレーンコア側の異常検知処理(S10)を説明するフローチャートである。
図8に例示するように、データプレーンコア処理部400のタイムアウトチェック部464(図4)は、使用可能ディスクリプタの有無を判定し、使用可能ディスクリプタが存在しない場合(S100:Yes)、S110の処理に移行し、使用可能なディスクリプタが存在する場合(S100:No)、S105の処理に移行する。
FIG. 8 is a flowchart for explaining the abnormality detection process (S10) on the data plane core side.
As illustrated in FIG. 8, the time-out check unit 464 (FIG. 4) of the data plane core processing unit 400 determines whether there is a usable descriptor. If there is no usable descriptor (S100: Yes), the process of S110 is performed. If there is a usable descriptor (S100: No), the process proceeds to S105.

ステップ105(S105)において、タイムアウトチェック部464は、変数last_tx_endにAll Fを設定し、送信タイムアウト検出フラグdetect_tx_hungにfalseを設定する。   In step 105 (S105), the timeout check unit 464 sets All F to the variable last_tx_end and sets false to the transmission timeout detection flag detect_tx_hung.

ステップ110(S110)において、タイムアウトチェック部464は、変数tx_endが変数last_tx_endと不一致か否かを判定する。変数tx_endが変数last_tx_endと不一致である場合(S110:Yes)、以前検出した送信停止とは異なるインデックスで停止しているため、停止は解消され、また異なる停止が発生したと判断する。変数tx_endが変数last_tx_endと一致している場合(S110:No)、タイムアウトチェック部464は、検出した送信停止が継続していると判断し、送信停止継続時間の判断(S120)に移る。   In step 110 (S110), the timeout check unit 464 determines whether the variable tx_end does not match the variable last_tx_end. If the variable tx_end does not match the variable last_tx_end (S110: Yes), it is determined that the stop has been canceled and a different stop has occurred because the stop has been stopped at an index different from the transmission stop detected previously. If the variable tx_end matches the variable last_tx_end (S110: No), the timeout check unit 464 determines that the detected transmission stop is continuing, and proceeds to determination of the transmission stop duration (S120).

ステップ115(S115)において、タイムアウトチェック部464は、送信キューの最後のエントリインデックスを変数last_tx_endに設定し、送信ディスクリプタ獲得不可を検出した時刻tx_busy_timeに、現在時刻を設定する。
タイムS100の処理に戻る。
In step 115 (S115), the timeout check unit 464 sets the last entry index of the transmission queue to the variable last_tx_end, and sets the current time to the time tx_busy_time when the transmission descriptor acquisition failure is detected.
The processing returns to time S100.

ステップ120(S120)において、タイムアウトチェック部464は、送信キューが変化しない時間が2.9秒を超えている否かを判定し、2.9秒を超えた場合(S120:Yes)、S125の処理に移行し、2.9秒以下である場合(S120:No)、S100の処理に戻る。   In step 120 (S120), the timeout check unit 464 determines whether or not the time during which the transmission queue does not change exceeds 2.9 seconds (S120: Yes). If the process proceeds to 2.9 seconds or less (S120: No), the process returns to S100.

ステップ125(S125)において、タイムアウトチェック部464は、送信タイムアウト検出フラグdetect_tx_hungにtrueを設定して、フラグを立てる。
このように、本例のタイムアウトチェック部464は、送信ディスクリプタ獲得不可を検出後、2.9秒間送信キューが変化しない場合、送信タイムアウト検出とする。これは、二重化切り替えの閾値として、3秒間送信不可という値があるため、制御プレーンコアとデータプレーンコアの処理時間の合計を3秒以内にする必要があることを前提として、送信タイムアウトの検出閾値を極力長くしたためである。
In step 125 (S125), the timeout check unit 464 sets the transmission timeout detection flag detect_tx_hung to true and sets a flag.
As described above, the timeout check unit 464 of this example sets transmission timeout detection when the transmission queue does not change for 2.9 seconds after detecting that the transmission descriptor cannot be acquired. This is because the threshold for duplex switching has a value that transmission for 3 seconds is not possible, and it is assumed that the total processing time of the control plane core and data plane core must be within 3 seconds. This is because is made as long as possible.

図9は、制御プレーンコア側の異常検知処理(S20)を説明するフローチャートである。
図9に例示するように、ステップ200(S200)において、制御プレーンコア処理部300は、送信タイムアウト検出フラグと共に、送信処理の初期化を行う。
ステップ205(S205)において、制御プレーンコア処理部300は、監視スレッド部366(図4)を定期的に起動させる。
ステップ210(S210)において、起動した監視スレッド部366は、全データプレーンコア処理部400の管理領域をチェックする。
FIG. 9 is a flowchart for explaining the abnormality detection process (S20) on the control plane core side.
As illustrated in FIG. 9, in step 200 (S200), the control plane core processing unit 300 initializes the transmission process together with the transmission timeout detection flag.
In step 205 (S205), the control plane core processing unit 300 periodically activates the monitoring thread unit 366 (FIG. 4).
In step 210 (S210), the activated monitoring thread unit 366 checks the management area of all the data plane core processing units 400.

ステップ215(S215)において、監視スレッド部366は、いずれかのデータプレーンコア処理部400において送信タイムアウト検出フラグdetect_tx_hungがtrueに設定されているか否かを判定し、いずれかのデータプレーンコア処理部400において送信タイムアウト検出フラグdetect_tx_hungがtrueに設定されている場合(S215:Yes)、S220の処理に移行し、いずれの送信タイムアウト検出フラグdetect_tx_hungもfalseに設定されている場合(S215:No)、S230の処理に移行する。   In step 215 (S215), the monitoring thread unit 366 determines whether the transmission timeout detection flag detect_tx_hung is set to true in any of the data plane core processing units 400, and any of the data plane core processing units 400. If the transmission timeout detection flag detect_tx_hung is set to true (S215: Yes), the process proceeds to S220. If any transmission timeout detection flag detect_tx_hung is set to false (S215: No), the process proceeds to S230. Transition to processing.

ステップ220(S220)において、制御プレーンコア処理部300は、PAUSEフレームを受信中であるか否かを判定し、PAUSE受信中である場合(S220:Yes)に、S230の処理に移行し、これ以外の場合(S220:No)に、S225の処理に移行する。
ステップ225(S225)において、監視スレッド部366は、LANカード120の異常を検知したものと判断して、リセット処理部368にリセット処理を指示する。
リセット処理部368は、LANカード120に再起動動作を指示する。制御プレーンコア処理部300は、全てのデータプレーンコア処理部用の資源を初期化し、変数及び送信タイムアウトフラグをfalseに初期化する。
In step 220 (S220), the control plane core processing unit 300 determines whether or not the PAUSE frame is being received. If PAUSE frame is being received (S220: Yes), the control plane core processing unit 300 proceeds to the process of S230. Otherwise (S220: No), the process proceeds to S225.
In step 225 (S225), the monitoring thread unit 366 determines that an abnormality of the LAN card 120 has been detected, and instructs the reset processing unit 368 to perform reset processing.
The reset processing unit 368 instructs the LAN card 120 to restart. The control plane core processing unit 300 initializes resources for all data plane core processing units, and initializes variables and a transmission timeout flag to false.

ステップ230(S230)において、監視スレッド部366は、0.1秒間待機して、S210の処理に戻る。
このように、制御プレーンコア処理部300では、全データプレーンコア処理部400の送信タイムアウト検出フラグをチェックするために、監視スレッド部366を起動させる。監視スレッド部366は、起動後、全データプレーンコア処理部400の送信タイムアウト検出フラグを0.1秒間隔で定期的にチェックする。こうすることで、データプレーンコア処理部400で要した2.9秒と合わせて、3秒以内にリセットリカバリを実行することができる。
In step 230 (S230), the monitoring thread unit 366 waits for 0.1 second and returns to the process of S210.
Thus, the control plane core processing unit 300 activates the monitoring thread unit 366 in order to check the transmission timeout detection flag of all the data plane core processing units 400. After startup, the monitoring thread unit 366 periodically checks the transmission timeout detection flag of all the data plane core processing units 400 at 0.1 second intervals. By doing so, the reset recovery can be executed within 3 seconds together with the 2.9 seconds required by the data plane core processing unit 400.

図10は、LANカードの再起動処理(S30)を説明するフローチャートである。
図10に例示するように、ステップ300(S300)において、制御プレーンコア処理部300は、リセットフラグを設定する。
ステップ305(S305)において、制御プレーンコア処理部300は、全てのデータプレーンコア処理部400のLANドライバ共通部440に対して、送受信空振り関数を設定するよう指示し、各データプレーンコア処理部400のLANドライバ共通部440は、送受信空振り関数をLANドライバ460に設定する。これにより、送信処理部462及び受信処理部468が送受信処理を停止し、ダミー送信処理部466及びダミー受信処理部470が送受信空振り処理を開始する。結果、LANカード120に対するデータプレーンコア処理部400のアクセスが無くなる。
FIG. 10 is a flowchart for explaining the LAN card restart process (S30).
As illustrated in FIG. 10, in step 300 (S300), the control plane core processing unit 300 sets a reset flag.
In step 305 (S305), the control plane core processing unit 300 instructs the LAN driver common unit 440 of all the data plane core processing units 400 to set a transmission / reception idle function, and each data plane core processing unit 400. The LAN driver common unit 440 sets a transmission / reception idle function in the LAN driver 460. Thereby, the transmission processing unit 462 and the reception processing unit 468 stop the transmission / reception process, and the dummy transmission processing unit 466 and the dummy reception processing unit 470 start the transmission / reception idle process. As a result, the data plane core processing unit 400 does not access the LAN card 120.

ステップ310(S310)において、制御プレーンコア処理部300のダミーアクセス制御部364は、上位層からの要求に対して未サポート応答するように設定して、別スレッドからの要求に対して、未サポートである旨を応答する。
ステップ315(S315)において、制御プレーンコア処理部300は、20ミリ秒待機して、現在のデータプレーン処理部400における処理を完了させる。
ステップ320(S320)において、制御プレーンコア処理部300は、close処理を実行する。具体的には、リセット処理部368が、LANカード120の終了処理を実行させる。
In step 310 (S310), the dummy access control unit 364 of the control plane core processing unit 300 is set so as to make an unsupported response to a request from an upper layer, and is not supported in response to a request from another thread. It responds that it is.
In step 315 (S315), the control plane core processing unit 300 waits for 20 milliseconds and completes the processing in the current data plane processing unit 400.
In step 320 (S320), the control plane core processing unit 300 executes a close process. Specifically, the reset processing unit 368 causes the LAN card 120 to end.

ステップ325(S325)において、制御プレーンコア処理部300は、900ミリ秒待機する。リンクダウンからアップまでの間に、最低でも700ミリ秒を要するため、上記待機期間が設けられている。
ステップ330(S330)において、制御プレーンコア処理部300のリセット処理部368は、LANカード120の初期化処理を開始する。なお、初期化処理中には、データプレーンコア処理部400に送受信関数を設定させない。
ステップ335(S335)において、リセット処理部368は、LANカード120のconfigure処理を実行する。
ステップ340(S340)において、リセット処理部368は、LANカード120に、送受信処理に用いる送受信キューのキューセットアップ処理を実行する。
In step 325 (S325), the control plane core processing unit 300 waits for 900 milliseconds. Since at least 700 milliseconds are required between link down and up, the waiting period is provided.
In step 330 (S330), the reset processing unit 368 of the control plane core processing unit 300 starts the initialization process of the LAN card 120. During the initialization process, the data plane core processing unit 400 is not allowed to set a transmission / reception function.
In step 335 (S335), the reset processing unit 368 executes configure processing for the LAN card 120.
In step 340 (S340), the reset processing unit 368 performs queue setup processing for the transmission / reception queue used for the transmission / reception processing on the LAN card 120.

ステップ345(S345)において、リセット処理部368は、LANカード120の開始処理を開始する。なお、開始処理中にも、データプレーンコア処理部400に送受信関数を設定させない。
ステップ350(S350)において、リセット処理部368は、LANカード120にプロミスキャスモードを設定する。
In step 345 (S345), the reset processing unit 368 starts the start processing of the LAN card 120. Note that the transmission / reception function is not set in the data plane core processing unit 400 even during the start process.
In step 350 (S350), the reset processing unit 368 sets the promiscuous mode in the LAN card 120.

ステップ355(S355)において、ダミーアクセス制御部364は、未サポート応答を終了し、アクセス制御部364が、通常の動作モードを再開する。
ステップ360(S360)において、制御プレーンコア処理部300は、全てのデータプレーンコア処理部400のLANドライバ共通部440に対して、送受信関数を元に戻すよう指示する。
各データプレーンコア処理部400のLANドライバ共通部440は、送受信空振り関数を通常の送受信関数に戻す。すなわち、ダミー送信処理部466及びダミー受信処理部470が送受信空振り処理を終了し、送信処理部462及び受信処理部468が送受信処理を再開する。
In step 355 (S355), the dummy access control unit 364 ends the unsupported response, and the access control unit 364 resumes the normal operation mode.
In step 360 (S360), the control plane core processing unit 300 instructs the LAN driver common unit 440 of all the data plane core processing units 400 to restore the transmission / reception function.
The LAN driver common unit 440 of each data plane core processing unit 400 returns the transmission / reception idle function to the normal transmission / reception function. That is, the dummy transmission processing unit 466 and the dummy reception processing unit 470 end the transmission / reception idle processing, and the transmission processing unit 462 and the reception processing unit 468 resume transmission / reception processing.

ステップ365(S365)において、制御プレーンコア処理部300は、リセットフラグを解除して、LANカード120の再起動処理を完了する。   In step 365 (S365), the control plane core processing unit 300 releases the reset flag and completes the restart processing of the LAN card 120.

次に、システムの一例を用いて、送受信空振り関数の具体例を説明する。
データプレーンコア処理部400のパケット送受信処理において、LANドライバ460の送受信関数は、グローバル領域のI/Fデバイス構造体に設定された関数ポインタ(rx_pkt_burst、tx_pkt_burst)をLANドライバ共通部440がコールすることで起動される。
struct rte_eth_dev {
eth_rx_burst_t rx_pkt_burst; /**< Pointer to PMD receive function. */
eth_tx_burst_t tx_pkt_burst; /**< Pointer to PMD transmit function. */
struct rte_eth_dev_data *data; /**< Pointer to device data */
const struct eth_driver *driver;/**< Driver for this device */
struct eth_dev_ops *dev_ops; /**< Functions exported by PMD */
struct rte_pci_device *pci_dev; /**< PCI info. supplied by probing */
struct rte_eth_dev_cb_list callbacks; /**< User application callbacks */
};
Next, a specific example of the transmission / reception idle function will be described using an example of the system.
In the packet transmission / reception process of the data plane core processing unit 400, the LAN driver common unit 440 calls the function pointer (rx_pkt_burst, tx_pkt_burst) set in the global area I / F device structure as the transmission / reception function of the LAN driver 460. It is started with.
struct rte_eth_dev {
eth_rx_burst_t rx_pkt_burst; / ** <Pointer to PMD receive function. * /
eth_tx_burst_t tx_pkt_burst; / ** <Pointer to PMD transmit function. * /
struct rte_eth_dev_data * data; / ** <Pointer to device data * /
const struct eth_driver * driver; / ** <Driver for this device * /
struct eth_dev_ops * dev_ops; / ** <Functions exported by PMD * /
struct rte_pci_device * pci_dev; / ** <PCI info. supplied by probing * /
struct rte_eth_dev_cb_list callbacks; / ** <User application callbacks * /
};

送受信関数のインタフェースは、以下の通り形式が決まっており、パケット情報域など必要な情報を引数で渡して、復帰値で受信パケット数、送信パケット数を応答する。
typedef uint16_t (*eth_rx_burst_t)(void *rxq,
struct rte_mbuf **rx_pkts,
uint16_t nb_pkts);
/**< @internal Retrieve input packets from a receive queue of an Ethernet device. */
typedef uint16_t (*eth_tx_burst_t)(void *txq,
struct rte_mbuf **tx_pkts,
uint16_t nb_pkts);
/**< @internal Send output packets on a transmit queue of an Ethernet device. */
The interface of the transmission / reception function is determined as follows, and passes necessary information such as a packet information area as an argument, and returns the number of received packets and the number of transmitted packets as return values.
typedef uint16_t (* eth_rx_burst_t) (void * rxq,
struct rte_mbuf ** rx_pkts,
uint16_t nb_pkts);
/ ** <@internal Retrieve input packets from a receive queue of an Ethernet device.
typedef uint16_t (* eth_tx_burst_t) (void * txq,
struct rte_mbuf ** tx_pkts,
uint16_t nb_pkts);
/ ** <@internal Send output packets on a transmit queue of an Ethernet device. * /

今回、上記の関数インタフェースに合わせて、以下の空振り関数を実装した。受信関数を起動して受信処理を行ったが、LANカード120から受信したパケットが存在しなかった、というように上位層に対して見せている。また、送信関数を起動して送信処理を行ったが、LANカード120に対して送信依頼できたパケットが存在しなかった、というように上位層に対して見せている。   This time, according to the above function interface, the following swing function was implemented. The reception function is activated and reception processing is performed, but it is shown to the upper layer that the packet received from the LAN card 120 does not exist. In addition, although the transmission function is activated and transmission processing is performed, it is shown to the upper layer that there is no packet that can be transmitted to the LAN card 120.

(受信処理の空振り関数)
uint16_t
eth_igb_recv_pkts_reinit(__rte_unused void *rx_queue,
__rte_unused struct rte_mbuf **rx_pkts,
__rte_unused uint16_t nb_pkts)
{
/* now resetting */
return 0;
}
(送信処理の空振り関数)
uint16_t
eth_igb_xmit_pkts_reinit(__rte_unused void *tx_queue,
__rte_unused struct rte_mbuf **tx_pkts,
__rte_unused uint16_t nb_pkts)
{
/* now resetting */
return 0;
}
(Receiving processing idle function)
uint16_t
eth_igb_recv_pkts_reinit (__ rte_unused void * rx_queue,
__rte_unused struct rte_mbuf ** rx_pkts,
__rte_unused uint16_t nb_pkts)
{
/ * now resetting * /
return 0;
}
(Empty function for transmission processing)
uint16_t
eth_igb_xmit_pkts_reinit (__ rte_unused void * tx_queue,
__rte_unused struct rte_mbuf ** tx_pkts,
__rte_unused uint16_t nb_pkts)
{
/ * now resetting * /
return 0;
}

上記は、LANカード120の1Gbpsインタフェースの実装例だが、10Gbpsインタフェースの場合も同様に以下の関数を登録する実装を行った。   The above is an implementation example of the 1 Gbps interface of the LAN card 120. In the case of the 10 Gbps interface, the following functions are registered in the same manner.

uint16_t
ixgbe_recv_pkts_reinit(__rte_unused void *rx_queue,
__rte_unused struct rte_mbuf **rx_pkts,
__rte_unused uint16_t nb_pkts)
{
/* now resetting */
return 0;
}
uint16_t
ixgbe_xmit_pkts_reinit(__rte_unused void *tx_queue,
__rte_unused struct rte_mbuf **tx_pkts,
__rte_unused uint16_t nb_pkts)
{
/* now resetting */
return 0;
}
uint16_t
ixgbe_recv_pkts_reinit (__ rte_unused void * rx_queue,
__rte_unused struct rte_mbuf ** rx_pkts,
__rte_unused uint16_t nb_pkts)
{
/ * now resetting * /
return 0;
}
uint16_t
ixgbe_xmit_pkts_reinit (__ rte_unused void * tx_queue,
__rte_unused struct rte_mbuf ** tx_pkts,
__rte_unused uint16_t nb_pkts)
{
/ * now resetting * /
return 0;
}

同様に、制御プレーンコア処理部300においても、LANドライバ360に対する各種制御関数は、グローバル領域のI/Fデバイス構造体に設定された関数ポインタをLANドライバ共通部340がコールすることで起動される。これらを「NULL」に設定することで、各種制御関数が未サポートである状態を作り出す。例として、インタフェースの設定を変更する場合、dev_configureという関数ポインタに制御関数が登録されている。制御関数起動には、以下のマクロを使用しているが、関数ポインタが「NULL」になることで、-ENOTSUPを応答する処理となる。
FUNC_PTR_OR_ERR_RET(*dev->dev_ops->dev_configure, -ENOTSUP);
Similarly, also in the control plane core processing unit 300, various control functions for the LAN driver 360 are activated when the LAN driver common unit 340 calls a function pointer set in the I / F device structure in the global area. . Setting these to “NULL” creates a state in which various control functions are not supported. For example, when changing the interface setting, a control function is registered in a function pointer called dev_configure. The following macro is used to start the control function. However, when the function pointer becomes “NULL”, -ENOTSUP is returned.
FUNC_PTR_OR_ERR_RET (* dev->dev_ops-> dev_configure, -ENOTSUP);

図10のフローチャートでは、「制御プレーンコア処理部300の別スレッドからの要求には、未サポート応答するように設定」の箇所では、例えば、各種制御関数を「NULL」に設定し、「制御プレーンの別スレッドからの要求には未サポート応答する設定を解除」の箇所では、通常の制御関数に戻す。
ちなみに、本実施形態では、制御プレーンコア処理部300では監視スレッド部366がインタフェースの個数分生成され、それらが性能に影響を及ぼすことが懸念されたが、本例のネットワーク装置10にて上記の設定で性能影響は無視できる範囲(0.7%)であることが確認されている。
In the flowchart of FIG. 10, for example, various control functions are set to “NULL” in the “set to unsupport response to a request from another thread of the control plane core processing unit 300”, and “control plane Return to the normal control function at the point of “cancel unsupported response to request from other thread”.
Incidentally, in this embodiment, the control plane core processing unit 300 generates the number of monitoring thread units 366 for the number of interfaces, and there is a concern that these may affect the performance. It has been confirmed that the performance impact is negligible (0.7%) in the settings.

以上説明したように、本実施形態のネットワーク装置10は、LANカード120に異常が発生した場合に、その異常を検知し、影響範囲を限定しながらLANカード120の再起動動作を実行させることができる。   As described above, when an abnormality occurs in the LAN card 120, the network device 10 according to the present embodiment can detect the abnormality and execute the restart operation of the LAN card 120 while limiting the range of influence. it can.

1…ネットワーク通信システム
10…ネットワーク装置
100…CPU
102…メモリ
104…スロット
120…LANカード
300…制御プレーンコア処理部
320…上位エンジン処理部
340…LANドライバ共通部
360…LANドライバ
362…アクセス制御部
364…ダミーアクセス制御部
366…監視スレッド部
368…リセット処理部
400…データプレーンコア処理部
420…上位エンジン処理部
440…LANドライバ共通部
460…LANドライバ
462…送信処理部
464…タイムアウトチェック部
466…ダミー送信処理部
468…受信処理部
470…ダミー受信処理部
DESCRIPTION OF SYMBOLS 1 ... Network communication system 10 ... Network apparatus 100 ... CPU
DESCRIPTION OF SYMBOLS 102 ... Memory 104 ... Slot 120 ... LAN card 300 ... Control plane core process part 320 ... High-order engine process part 340 ... LAN driver common part 360 ... LAN driver 362 ... Access control part 364 ... Dummy access control part 366 ... Monitoring thread part 368 ... reset processing section 400 ... data plane core processing section 420 ... upper engine processing section 440 ... LAN driver common section 460 ... LAN driver 462 ... transmission processing section 464 ... timeout check section 466 ... dummy transmission processing section 468 ... reception processing section 470 ... Dummy reception processor

Claims (7)

LANカードを介してデータの送受信を行う送受信部と、
前記送受信部からの制御情報に応じて、前記LANカードにアクセスし、データの送受信を行う下位送受信部と、
前記LANカードの異常を検知する検知部と、
前記検知部により異常が検知された場合に、LANカードに対して再起動動作を指示する復帰指示部と
を有し、
前記送受信部は、前記復帰指示部により指示された再起動動作が実行されている間、前記下位送受信部に対して、少なくとも送信処理を禁止する制御情報を出力する
情報処理装置。
A transmission / reception unit for transmitting / receiving data via a LAN card;
In accordance with control information from the transmission / reception unit, a lower-level transmission / reception unit that accesses the LAN card and transmits / receives data;
A detection unit for detecting an abnormality of the LAN card;
A recovery instruction unit for instructing a restart operation to the LAN card when an abnormality is detected by the detection unit;
The transmission / reception unit outputs at least control information for prohibiting transmission processing to the lower-level transmission / reception unit while the restart operation instructed by the return instruction unit is being performed.
前記検知部は、前記送受信部が管理している送信キューの状態に基づいて、前記LANカードの異常を検知する
請求項1に記載の情報処理装置。
The information processing apparatus according to claim 1, wherein the detection unit detects an abnormality of the LAN card based on a state of a transmission queue managed by the transmission / reception unit.
前記復帰指示部は、単一の制御プレーンコアであり、
前記送受信部は、複数のデータプレーンコアを含み、
全ての前記データプレーンコアが、少なくとも送信処理を禁止する制御情報を前記下位送信部に出力する
請求項2に記載の情報処理装置。
The return instruction unit is a single control plane core,
The transceiver unit includes a plurality of data plane cores,
The information processing apparatus according to claim 2, wherein all the data plane cores output control information that prohibits at least transmission processing to the lower transmission unit.
前記検知部は、いずれかの前記データプレーンコアで既定期間、送信キューが変化しなかった場合に、LANカードの異常であると判断する
請求項3に記載の情報処理装置。
The information processing apparatus according to claim 3, wherein the detection unit determines that the LAN card is abnormal when a transmission queue does not change for a predetermined period in any of the data plane cores.
前記制御プレーンコアは、LANカードの再起動動作が実施されている間、上位層からの要求を無視し、前記下位送信部に対して、LANカードの終了処理、初期化処理及び開始処理を順に実行させる制御情報を出力して、LANカードの再起動動作を実現させる
請求項4に記載の情報処理装置。
While the restart operation of the LAN card is being performed, the control plane core ignores the request from the upper layer, and sequentially performs the LAN card termination processing, initialization processing, and start processing to the lower transmission unit. The information processing apparatus according to claim 4, wherein control information to be executed is output to realize a restart operation of the LAN card.
LANカードを介してデータの送受信処理を行う送受信ステップと、
前記送受信ステップからの制御情報に応じて、前記LANカードにアクセスし、データの送受信を行う下位送受信ステップと、
前記LANカードの異常を検知する検知ステップと、
前記LANカードの異常が検知された場合に、前記LANカードに対して再起動動作を指示する復帰指示ステップと、
前記LANカードの前記再起動動作が実行されている間、データの送受信処理を行う下位送受信ステップに対して、少なくとも送信処理を禁止する制御情報を出力する出力ステップと
を有する情報処理方法。
A transmission / reception step for performing data transmission / reception processing via a LAN card;
In accordance with control information from the transmission / reception step, a lower transmission / reception step of accessing the LAN card and transmitting / receiving data;
A detection step of detecting an abnormality of the LAN card;
A return instruction step for instructing a restart operation to the LAN card when an abnormality of the LAN card is detected;
An information processing method comprising: an output step of outputting at least control information for prohibiting transmission processing to a lower transmission / reception step of performing data transmission / reception processing while the restarting operation of the LAN card is being performed.
LANカードを介してデータの送受信処理を行う送受信機能と、
前記送受信機能からの制御情報に応じて、前記LANカードにアクセスし、データの送受信を行う下位送受信機能と、
前記LANカードの異常を検知する検知機能と、
前記LANカードの異常が検知された場合に、前記LANカードに対して再起動動作を指示する復帰指示機能と、
前記LANカードの前記再起動動作が実行されている間、データの送受信処理を行う下位送受信機能に対して、少なくとも送信処理を禁止する制御情報を出力する出力機能と
をコンピュータに実現させるプログラム。
A transmission / reception function for performing data transmission / reception processing via a LAN card;
In accordance with control information from the transmission / reception function, a lower transmission / reception function for accessing the LAN card and transmitting / receiving data;
A detection function for detecting an abnormality of the LAN card;
A return instruction function for instructing a restart operation to the LAN card when an abnormality of the LAN card is detected;
A program for causing a computer to realize at least an output function for outputting control information for prohibiting transmission processing to a lower transmission / reception function for performing data transmission / reception processing while the restart operation of the LAN card is being executed.
JP2015169018A 2015-08-28 2015-08-28 Information processing apparatus, information processing method, and program Active JP6195316B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015169018A JP6195316B2 (en) 2015-08-28 2015-08-28 Information processing apparatus, information processing method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015169018A JP6195316B2 (en) 2015-08-28 2015-08-28 Information processing apparatus, information processing method, and program

Publications (2)

Publication Number Publication Date
JP2017046283A JP2017046283A (en) 2017-03-02
JP6195316B2 true JP6195316B2 (en) 2017-09-13

Family

ID=58212296

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015169018A Active JP6195316B2 (en) 2015-08-28 2015-08-28 Information processing apparatus, information processing method, and program

Country Status (1)

Country Link
JP (1) JP6195316B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6881116B2 (en) * 2017-07-12 2021-06-02 富士通株式会社 Information processing equipment, information processing methods and programs
JP6979913B2 (en) * 2018-03-29 2021-12-15 株式会社Pfu Information processing equipment, information processing methods, and programs
JP7304250B2 (en) * 2019-09-19 2023-07-06 株式会社Pfu Information processing device, information processing method, and program

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05173903A (en) * 1991-12-25 1993-07-13 Mazda Motor Corp Multiplex transmission equipment
JP2003018312A (en) * 2001-07-04 2003-01-17 Hitachi Kokusai Electric Inc Remote monitor system and communication equipment to be remotely monitored
US8634302B2 (en) * 2010-07-30 2014-01-21 Alcatel Lucent Apparatus for multi-cell support in a network

Also Published As

Publication number Publication date
JP2017046283A (en) 2017-03-02

Similar Documents

Publication Publication Date Title
US20140149985A1 (en) Control method for i/o device and virtual computer system
US9331870B2 (en) Switch, information processing apparatus, and information processing system
US20140089492A1 (en) Data collection and control by network devices in communication networks
KR101466791B1 (en) Automatic recovery after loss of signal event in a network device
JP6195316B2 (en) Information processing apparatus, information processing method, and program
US10530636B2 (en) Link management method, device and system in virtual machine environment
US11398976B2 (en) Method, device, and system for implementing MUX machine
US9164824B2 (en) Information processing apparatus and operation status monitoring method
US20200136912A1 (en) Method, Device, and System for Implementing MUX Machine
CN103684899A (en) Remote debugging method and device
CN104536853B (en) A kind of device ensureing dual controller storage device resource continuous availability
CN101951327B (en) iSCSI network system and network fault detection method
CN104394012A (en) Cluster router, MPU (microprocessor unit), determining method for faults of MPU and sensing controller
JP7304250B2 (en) Information processing device, information processing method, and program
US10491544B2 (en) Consistency control of a logical path passing through a relay device
JP6979913B2 (en) Information processing equipment, information processing methods, and programs
Kitamura et al. Development of a Server Management System Incorporating a Peer-to-Peer Method for Constructing a High-availability Server System
EP2775678B1 (en) Diagnostic port for inter-switch and node link testing in electrical, optical and remote loopback modes
JP3266841B2 (en) Communication control device
CN115202803A (en) Fault processing method and device
US11483102B1 (en) Review and retry for minimum speed port channel
JP2008148034A (en) Communication device and its duplex setting method
WO2024066857A1 (en) Electronic device, processor, and data transmission method and apparatus
CN116010131A (en) Managing applications in clusters
CN117251039A (en) Equipment resetting method and device, storage medium and electronic equipment

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161202

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170809

R150 Certificate of patent or registration of utility model

Ref document number: 6195316

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150