(57)【要約】【課題】異なる通信パケット受信方式の共存を同一ソフトウェアにて吸収することができる通信パケット処理装置および通信パケット処理方法を提供する【解決手段】通信パケットの送受信インタフェースである通信インタフェースと、通信インタフェースが対応可能な通信パケット受信処理方式の対応情報を格納した第１のテーブルを有し、通信パケット受信処理方式には第１および第２の通信パケット受信処理方式があり、通信インタフェースは第１および第２の通信パケット受信処理方式のいずれか一方または両方で動作するものであり装置起動時に、第１の通信パケット受信処理方式が指定された場合には、第１のテーブルを参照して通信インタフェースが第１の通信パケット受信処理方式に対応しているか否かを確認し、対応している場合には、第１の通信パケット受信処理方式で動作する。【選択図】  図４
2015104093.tif 000002
【特許請求の範囲】
【請求項１】
通信パケットの送受信を行う通信パケット処理装置であって、
通信パケットの送受信インタフェースである通信インタフェースと、該通信インタフェースを制御する通信インタフェース制御部と、通信パケットの送受信制御をおこなう通信パケット制御部と、通信インタフェースのハードウェア情報と通信インタフェースが対応可能な通信パケット受信処理方式の対応情報を格納した第１のテーブルと、前記通信パケット処理装置の通信パケット受信処理方式が指定されるパラメータを有し、
前記通信パケット受信処理方式には第１および第２の通信パケット受信処理方式があり、前記通信インタフェースは前記第１および第２の通信パケット受信処理方式のいずれか一方または両方で動作するものであり
前記通信パケット処理装置は、装置起動時に、前記パラメータを参照して、第１の通信パケット受信処理方式が指定されている場合には、前記第１のテーブルを参照して前記通信インタフェースが前記第１の通信パケット受信処理方式に対応しているか否かを確認し、対応している場合には、前記通信インタフェース制御部および通信パケット制御部を前記第１の通信パケット受信処理方式で動作するよう制御することを特徴とする通信パケット処理装置。
【請求項２】
請求項１に記載の通信パケット処理装置であって、
前記通信インタフェースを複数有する場合には、
該複数の通信インタフェースについて、前記第１のテーブルを参照して前記第１の通信パケット受信処理方式に対応しているか否かを確認し、複数の通信インタフェースがすべて前記第１の通信パケット受信処理方式に対応している場合には、前記通信インタフェース制御部および通信パケット制御部を前記第１の通信パケット受信処理方式で動作するよう制御することを特徴とする通信パケット処理装置。
【請求項３】
請求項１または２に記載の通信パケット処理装置であって。
前記通信インタフェースが前記第１の通信パケット受信処理方式に対応していない場合には、前記通信インタフェース制御部および通信パケット制御部を前記第２の通信パケット受信処理方式で動作するよう制御することを特徴とする通信パケット処理装置。
【請求項４】
請求項１または２に記載の通信パケット処理装置であって。
前記第１の通信パケット受信処理方式での動作の結果、正常に通信パケットの受信処理が行えなかった場合には、前記通信インタフェース制御部および通信パケット制御部を前記第２の通信パケット受信処理方式で動作するよう制御することを特徴とする通信パケット処理装置。
【請求項５】
請求項１または２に記載の通信パケット処理装置であって、前記第１のテーブルは前記通信パケット処理装置の装置起動時に通信パケット処理装置の外部より読み込む構成であることを特徴とする通信パケット処理装置。
【請求項６】
通信パケットの送受信を行う通信パケット処理装置における通信パケット処理方法であって、
通信パケットの送受信インタフェースである通信インタフェースと、通信インタフェースが対応可能な通信パケット受信処理方式の対応情報を格納した第１のテーブルを有し、
前記通信パケット受信処理方式には第１および第２の通信パケット受信処理方式があり、前記通信インタフェースは前記第１および第２の通信パケット受信処理方式のいずれか一方または両方で動作するものであり
装置起動時に、第１の通信パケット受信処理方式が指定された場合には、前記第１のテーブルを参照して前記通信インタフェースが前記第１の通信パケット受信処理方式に対応しているか否かを確認し、対応している場合には、前記第１の通信パケット受信処理方式で動作することを特徴とする通信パケット処理方法。
【請求項７】
請求項６に記載の通信パケット処理方法であって、
前記通信インタフェースを複数有する場合には、
該複数の通信インタフェースについて、前記第１のテーブルを参照して前記第１の通信パケット受信処理方式に対応しているか否かを確認し、複数の通信インタフェースがすべて前記第１の通信パケット受信処理方式に対応している場合には、前記第１の通信パケット受信処理方式で動作することを特徴とする通信パケット処理方法。
【請求項８】
請求項６または７に記載の通信パケット処理方法であって。
前記通信インタフェースが前記第１の通信パケット受信処理方式に対応していない場合には、前記第２の通信パケット受信処理方式で動作することを特徴とする通信パケット処理方法。
【請求項９】
請求項６または７に記載の通信パケット処理方法であって。
前記第１の通信パケット受信処理方式での動作の結果、正常に通信パケットの受信処理が行えなかった場合には、前記第２の通信パケット受信処理方式で動作することを特徴とする通信パケット処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信パケット処理に関し、特に、通信パケットを処理する装置における通信パケットの受信方式の切り替え技術に関する。
【背景技術】
【０００２】
通信パケットを処理する装置は、通信パケット処理の多様化に対応するため、多くがソフトウェアにより通信パケットの処理を行うものとなっている。ソフトウェアによる通信パケットの受信処理は、大きく二つのソフトウェア処理部により実現される。一つめは、通信パケットが到着するハードウェアを制御するソフトウェア処理部であり、もう一つはハードウェアに到着した通信パケットをハードウェアから受信するソフトウェア処理部である。
【０００３】
このうち、ハードウェアに到着した通信パケットをハードウェアから受信するソフトウェア処理部における受信方式には、従来から用いられている方式と、近年使われるようになった方式がある。
従来から用いられている方式は、ハードウェアに通信パケットが到着するとハードウェアを制御するソフトウェア処理部がハードウェアから受信するソフトウェア処理部に通知し、その通知により、ハードウェアから受信するソフトウェア処理部が受信処理を行うという方式であり、広く用いられている方式である。これを割り込み通知方式と記載する。割り込み通知方式は、割り込み通知方式の際はソケットインタフェースを用いるため、ソケット方式とも呼ばれる。
【０００４】
しかし、近年においては、通信速度の向上に伴い、割り込み通知方式による通信パケット受信処理効率を改善することを目的に、ハードウェアに通信パケットが到着した際にハードウェアを制御するソフトウェア処理部が行うハードウェアから受信するソフトウェア処理部への通知を行わない方式が使用されるようになりつつある。この方式の場合、ハードウェアへの通信パケット到着をポーリング監視することから、ポーリング方式と記載する。ポーリング方式の場合は、通知発行と通知受信処理を行う必要がなく、割り込み通知方式に比べ、より高速な通信パケット処理を行うことが可能である。
【０００５】
なお、本技術分野に関連する背景技術として、特許文献１に記載された技術がある。特許文献１では、パケット転送処理をソフトウェアによる転送処理とハードウェアによる転送処理とを切り替えることで低消費電力のネットワーク中継装置を実現する技術が記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−１２００８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
通信パケット処理装置における通信パケットの受信方式は、上述のとおり、割り込み通知方式とポーリング方式の二方式が存在する。今後の通信速度のさらなる向上を考慮すると、効率が良く高速な通信パケット受信が可能であるポーリング方式を用いていくことが望ましい。しかし、ポーリング方式では、ハードウェアに対する制御方法が従来から変更となるため、通信インタフェースなどのハードウェア製品が従来方式である割り込み通知方式に対応するものから新方式であるポーリング方式にも対応可能な製品に移行するには時間を要する。つまり、今後、通信パケット処理装置における通信パケットの受信方式は、割り込み通知方式とポーリング方式の両方式が共存することとなる。上述のようにこれら二方式は、ハードウェアに対する制御方法が異なることから、各方式に対応するソフトウェアをそれぞれ製造する必要があり非効率である。
【０００８】
特許文献１には、通信パケットの転送処理に関する切り替え技術について開示されているが、ソフトウェアによる転送処理とハードウェアによる転送処理との切り替えについて記載されているのみで、転送処理に関する効率化は実現できるが、異なる通信パケット受信方式を同一ソフトウェアで取り扱うことについては考慮されていない。
【０００９】
本発明は、上記課題を解決するためになされたもので、異なる通信パケット受信方式の共存を同一ソフトウェアにて吸収することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明の通信パケット処理装置は、一例として、通信パケットの送受信インタフェースである通信インタフェースと、該通信インタフェースを制御する通信インタフェース制御部と、通信パケットの送受信制御をおこなう通信パケット制御部と、通信インタフェースのハードウェア情報と通信インタフェースが対応可能な通信パケット受信処理方式の対応情報を格納した第１のテーブルと、通信パケット処理装置の通信パケット受信処理方式が指定されるパラメータを有し、通信パケット受信処理方式には第１および第２の通信パケット受信処理方式があり、通信インタフェースは前記第１および第２の通信パケット受信処理方式のいずれか一方または両方で動作するものであり、通信パケット処理装置は、装置起動時に、パラメータを参照して、第１の通信パケット受信処理方式が指定されている場合には、第１のテーブルを参照して通信インタフェースが第１の通信パケット受信処理方式に対応しているか否かを確認し、対応している場合には、通信インタフェース制御部および通信パケット制御部を第１の通信パケット受信処理方式で動作するよう制御するようにしたものである。
【００１１】
また、通信パケットの送受信インタフェースである通信インタフェースと、通信インタフェースが対応可能な通信パケット受信処理方式の対応情報を格納した第１のテーブルを有し、通信パケット受信処理方式には第１および第２の通信パケット受信処理方式があり、通信インタフェースは第１および第２の通信パケット受信処理方式のいずれか一方または両方で動作するものであり、装置起動時に、第１の通信パケット受信処理方式が指定された場合には、第１のテーブルを参照して通信インタフェースが第１の通信パケット受信処理方式に対応しているか否かを確認し、対応している場合には、第１の通信パケット受信処理方式で動作するようにしたものである。
【発明の効果】
【００１２】
本発明によれば、異なる通信パケット受信方式の共存を同一ソフトウェアにて吸収することが可能となり、割り込み通知方式とポーリング方式のそれぞれに対応するソフトウェアを製造する必要がなくなる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施例における通信パケット処理装置のハードウェア構成例を示す図である。
【図２】本発明の一実施例における通信パケット処理装置のソフトウェア構成例を示す図である。
【図３】本発明の一実施例における通信パケット処理装置の起動処理例を説明するフローチャートである。
【図４】本発明の一実施例におけるパケット受信方式の決定処理を説明するフローチャートである。
【図５】本発明の一実施例におけるコンフィグパラメータを示す図である。
【図６】本発明の一実施例におけるＮＩＣ対応確認処理を説明するフローチャートである。
【図７】本発明の一実施例におけるポーリング方式対応ＮＩＣ一覧テーブルを説明する図である。
【図８】本発明の一実施例におけるＩＦ情報管理テーブルを説明する図である。
【図９】アプリケーションにおけるポーリング方式でのパケット受信処理の例を説明する図である。
【図１０】ＯＳにおけるポーリング方式でのパケット受信処理の例を説明する図である。
【図１１】割り込み方式でのパケット受信処理を説明する図である。
【図１２】本発明の一実施例における通信パケット処理装置のハードウェア構成を説明するである。
【図１３】通信インタフェースの冗長切替処理に関するフローチャートの例である。
【発明を実施するための形態】
【００１４】
以下、実施例について図面を用いて説明する。
【実施例１】
【００１５】
本実施例では、通信パケット受信処理方式の切り替え機能を具備する通信パケット処理装置の例を説明する。
【００１６】
図１は、本発明の一実施例における通信パケット処理装置のハードウェア構成例を示す図である。
通信パケット処理装置１００は、ポーリング方式での通信パケット受信方式に対応する通信インタフェース（ＮＩＣ：Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）１０９を１つもしくは複数具備する装置であり、また、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１、キャッシュメモリ１０３、主記憶装置（メインメモリ）１０４、グラフィックコントローラ１０６、ハードディスクコントローラ１０７、通信インタフェースコントローラ１０８が内部バス１０５により接続されている。なお、通信インタフェースコントローラ１０８は通信インタフェース１０９を制御する役割をもつハードウェアデバイスである。また、ポーリング方式対応の通信インタフェース１０９は、割り込み通知方式での動作も可能であることを前提とする。
【００１７】
ＣＰＵ１０１は、コア１０２が１つであるシングルコアＣＰＵであってもよいし、コア１０２が複数であるマルチコアＣＰＵであってもよい。また、複数のＣＰＵ６０１からなるマルチプロセッサであってもよい。さらに、キャッシュメモリ１０３はＣＰＵ１０１に対するキャッシュメモリ１０３に加え、ＣＰＵ１０１内に存在してもよい。
【００１８】
図２は、本発明の一実施例における通信パケット処理装置のソフトウェア構成例を示す図である。
通信パケット処理装置のソフトウェアは、ハードウェア２１０上で動作するＯＳ（オペレーティングシステム）２２０とアプリケーション２３０により構成される。
アプリケーション２３０は本実施例で述べるパケット受信処理方式切り替え処理の起点となるソフトウェアである。
【００１９】
ＯＳ２２０は、ＮＩＣ制御部２２１、通信パケット制御部２２２、アプリケーション制御部２２３から構成される。ＮＩＣ制御部２２１は通信インタフェースコントローラ１０８を介して通信インタフェース１０９の制御を行う制御部であり、それぞれの通信インタフェースコントローラ１０８について通信パケット受信方式ごとに存在し、使用する通信インタフェースコントローラ１０８および通信パケット受信方式に対応するＮＩＣ制御部２２１を適宜選択して使用する。
【００２０】
通信パケット制御部２２２はＮＩＣ制御部２２１からの通信パケット受信処理やＮＩＣ制御部２２１への通信パケット送信処理、また、受信したパケットをアプリケーションへ渡す処理やアプリケーションから送信パケットを受け取る処理を行う。また、ＩＰプロトコルスタックやＥＴＨＥＲプロトコルスタックなどの基本的な通信プロトコルスタックを備えており、通信パケット送受信時にこれらの通信プロトコル処理を行うことが可能である。
【００２１】
アプリケーション制御部２２３はアプリケーション２３０を動作させるための基本的な制御を行う。基本的な制御とは、アプリケーション２３０が動作するためのメモリ領域やＣＰＵ時間などのハードウェアリソース割り当てを行い、アプリケーション２３０を起動する処理などである。
【００２２】
図３は、本発明の一実施例における通信パケット処理装置の起動処理例を説明するフローチャートである。
通信パケット処理装置の起動処理は、装置起動開始（Ｓ３００）により、まずハードウェアが起動し（Ｓ３０１）、その後、ＯＳ２２０が起動する（Ｓ３０２）。ＯＳ起動処理（Ｓ３０２）の中で、ＮＩＣ制御部初期化（Ｓ３０３）、通信パケット制御部初期化（Ｓ３０４）、アプリケーション制御部初期化（Ｓ３０５）が行われる。とくに、ＮＩＣ制御部初期化（Ｓ３０３）では、ＯＳ２２０は通信パケット処理装置１００が具備するすべての通信インタフェース１０９を認識してハードウェア情報を取得し、それらのハードウェア情報をＯＳ２２０内に保持する。ＯＳ２２０が保持するハードウェア情報には通信インタフェース１０９を特定できる情報、例えばベンダＩＤとデバイスＩＤが含まれる。その後、各通信インタフェース１０９の割り込み通知方式に対応するＮＩＣ制御部２２１を選択し、通信インタフェース１０９に対して、通信パケットの送受信ができるよう、通信インタフェースコントローラ１０８を介して初期設定を行う。
ＯＳ起動（Ｓ３０２）の完了後、ＯＳ２２０はアプリケーション２３０に対してアプリケーションの起動（Ｓ３０６）を行う。
【００２３】
図４は、本発明の一実施例におけるパケット受信方式の決定処理を説明するフローチャートである。
ＯＳ２２０によりアプリケーション２３０が起動されると（Ｓ３０６）、アプリケーションによりパケット受信方式が決定される（Ｓ４１０）。パケット受信方式の決定処理（Ｓ４１０）では、まずコンフィグパラメータの確認を行う（Ｓ４１１）。本実施例では、コンフィグパラメータはパケットの受信方式を識別するためのパラメータで、事前にコンフィグファイルとして用意されているものとする。
【００２４】
図５は、本発明の一実施例におけるコンフィグパラメータを説明する図である。
コンフィグパラメータ５００は、図５に示す例では、項番５０１、パラメータ５０２、値５０３、説明５０４からなる。コンフィグパラメータは、通信パケット処理装置を使用する保守者が、値５０３を変更することで、パケット受信方式を設定することができるものである。
【００２５】
コンフィグパラメータ５００において割り込み通知方式が指定された場合は、アプリケーションは、パケット受信方式を割り込み通知方式と決定する（Ｓ４１３）。
一方、コンフィグパラメータ５００においてポーリング方式が指定された場合、アプリケーションは、ポーリング方式で動作が可能かを確認するためにＮＩＣ対応確認を行う（Ｓ４１４）。ＮＩＣ対応確認（Ｓ４１４）の詳細については図６を用いて後述する。ＮＩＣ対応確認（Ｓ４１４）の結果、ポーリング方式での動作が可能であれば、パケット受信方式をポーリング方式と決定する（Ｓ４１６）。ＮＩＣ対応確認（Ｓ４１４）の結果、ポーリング方式での動作が不可能であればパケット受信方式を割り込み通知方式と決定（Ｓ４１３）する。
【００２６】
図６は、本発明の一実施例におけるＮＩＣ対応確認処理を説明するフローチャートである。
ＮＩＣ対応確認処理では、まず、ＯＳ２２０から通信パケット処理装置１００が具備する通信インタフェース１０９のハードウェア情報を取得する（Ｓ６０１）。ハードウェア情報は、本実施例では、ハードウェア個体を特定できるベンダＩＤとデバイスＩＤである。次に、取得したベンダＩＤとデバイスＩＤの組み合わせと図７に示すポーリング方式対応ＮＩＣ一覧とを比較する（Ｓ６０２）。
【００２７】
図７は、本発明の一実施例におけるポーリング方式対応ＮＩＣ一覧テーブルを説明する図である。
ポーリング方式対応ＮＩＣ一覧テーブル７００は、項番７０１、ベンダＩＤ７０２、デバイスＩＤ７０３から構成され、ポーリング方式で動作可能な通信インタフェースを特定できる情報である。ベンダＩＤ７０２は通信インタフェース１０９の製造ベンダを特定することが可能なベンダ固有の識別子である。また、デバイスＩＤ７０３は通信インタフェース１０９のハードウェア個体を同一製造ベンダ内で特定することが可能なハードウェア固有の識別子である。つまり、ベンダＩＤ７０２とデバイスＩＤ７０３の組が、図７のポーリング方式対応ＮＩＣ一覧テーブルに含まれているか否かにより、通信インタフェース１０９がポーリング方式で動作可能であるか否かを一意に特定できることになる。
ポーリング方式対応ＮＩＣ一覧テーブル７００は、ポーリング方式で動作可能な通信インタフェースの情報を事前に把握し、アプリケーション２３０製造時にアプリケーション２３０内部に保持するか、もしくは外部ファイルとして用意し、アプリケーション２３０が起動する際に読み込む。外部ファイルとする利点は、ポーリング方式対応の通信インタフェースが新規に製造された場合においても、外部ファイルへ該当通信インタフェースに関するハードウェア情報を追記することで対応可能であり、ソフトウェアの再製造が不要な点である。また、外部ファイルとすることで、通信インタフェースの増設にも対応が可能となる。
【００２８】
図６に戻り、ステップ６０２でアプリケーションが取得した通信インタフェース１０９のハードウェア情報（ベンダＩＤとデバイスＩＤの組み合わせ）と図７に示すポーリング方式対応ＮＩＣ一覧とを比較した結果、該当ＮＩＣがポーリング方式対応ＮＩＣ一覧７００に存在すれば該当ＮＩＣはポーリング方式での動作が可能な通信インタフェースであると認識する（Ｓ６０５）。
該当ＮＩＣがポーリング方式対応ＮＩＣ一覧７００に存在しなければ該当ＮＩＣはポーリング方式での動作が不可能な通信インタフェースである認識する（Ｓ６０４）。通信パケット処理装置１００が具備するすべての通信インタフェース１０９について上記比較を行う。
【００２９】
通信パケット処理装置１００が具備するすべての通信インタフェース１０９について上記比較を行った結果は、図８に示すＩＦ情報管理テーブル８００に保持する。
図８は、本発明の一実施例におけるＩＦ情報管理テーブルを説明する図である。
ＩＦ情報管理テーブルは、項番８０１、ＩＦ８０２、ポーリング方式対応状況８０３から構成され、通信パケット処理装置１００が具備する各ＩＦのポーリング方式対応状況を管理するテーブルである。ＩＦ８０２は通信パケット処理装置１００が具備する各通信インタフェース１０９のＩＦ名称である。また、ポーリング方式対応状況８０３はＩＦ８０２のポーリング方式対応状況を示す識別子であり、ポーリング方式対応かポーリング方式非対応かを示すものである。ＩＦ情報管理テーブル８００は、アプリケーション２３０内に保持される情報である。
【００３０】
図４に戻り、通信パケット処理装置１００が具備するすべての通信インタフェース１０９についてＩＦ情報管理テーブル８００への登録が完了した後、ポーリング方式非対応の通信インタフェース１０９が含まれていないかをＩＦ情報管理テーブル８００を用いて確認する（Ｓ４１５）。確認の結果、すべての通信インタフェース１０９がポーリング方式での動作が可能であれば、パケット受信方式をポーリング方式と決定する（図４のＳ４１６）。
【００３１】
なお、上記確認については、通信パケット処理装置１００においてポーリング方式を用いる通信インタフェース１０９の情報を外部コンフィグファイルとして事前に用意しておき、外部コンフィグファイルに情報が含まれている通信インタフェース１０９についてのみポーリング方式での動作が可能かを確認する方法でもよい。ポーリング方式を用いる通信インタフェース１０９の情報とは該当通信インタフェース１０９のインタフェース名称８０２を指す。
【００３２】
パケット受信方式の決定（Ｓ４１０）後、事前処理を行う（Ｓ４２０）。事前処理は、パケット受信方式の決定（Ｓ４１０）で決定したパケット受信方式を用いて通信パケットの受信を行うための処理である。
【００３３】
パケット受信方式の決定（Ｓ４１０）において、パケット受信方式を割り込み通知方式と決定した場合（Ｓ４１３）、アプリケーション２３０はＯＳ２２０が受信した通信パケットをＯＳ２２０から受信するためにＯＳ２２０とのソケットインタフェースを生成する（Ｓ４２１）。以降、アプリケーション２３０はソケットインタフェースを監視することで通信パケットの受信が可能となる（Ｓ４３１）。
【００３４】
パケット受信方式の決定（Ｓ４１０）において、パケット受信方式をポーリング方式と決定した場合（Ｓ４１６）、アプリケーション２３０はＯＳ２２０に対してＮＩＣ制御方式の変更を通知する（Ｓ４２２）。アプリケーション２３０よりＮＩＣ制御方式変更通知（Ｓ４２２）を受けたＯＳ２２０の処理を以下に示す。
【００３５】
ＯＳ２２０は、通信パケット処理装置１００の起動処理におけるＮＩＣ制御部初期化（Ｓ３０３）時に通信インタフェース１０９の割り込み通知方式に対応するＮＩＣ制御部２２１を選択している。そのため、アプリケーション２３０よりＮＩＣ制御方式変更通知Ｓ４２２を受けると、割り込み通知方式に対応するＮＩＣ制御部２２１を取り外し、ポーリング方式に対応するＮＩＣ制御部２２１の組み込みを行う。
【００３６】
ここで、割り込み通知方式に対応するＮＩＣ制御部の取り外しとは、ＯＳに登録されているＮＩＣ制御部が備えるＮＩＣ制御を行うための処理群をＯＳの登録から外すことである。また、ポーリング方式に対応するＮＩＣ制御部の組み込みとは、ＮＩＣ制御部が備えるＮＩＣ制御を行うための処理群をＯＳに登録することであり、以降、該当する通信インタフェースをポーリング方式にて使用できるようにすることである。ＮＩＣ制御を行うための処理群には、例えば、ハードウェアを使用するための準備処理、ハードウェアへのデータ入力処理、ハードウェアへのデータ出力処理、ハードウェアへの設定変更処理（ハードウェアオプション機能の切替など）、ハードウェアの使用を終了するための終了処理を行うための処理などが含まれる。
【００３７】
割り込み通知方式に対応するＮＩＣ制御部とポーリング方式に対応するＮＩＣ制御部とでは、通信インタフェースコントローラ１０８を介して行う通信インタフェース１０９のハードウェア制御内容および通信パケット制御部２２２やアプリケーション２３０に対して行うパケット受信通知方法が異なるが、詳細は図９、図１０、図１１を用いて後述する。
【００３８】
アプリケーション２３０がＯＳ２２０に対してＮＩＣ制御方式の変更を通知し（Ｓ４２２）、上述したＯＳ２２０内の処理が完了すると、以降、アプリケーション２３０もしくはＯＳ２２０内の通信パケット制御部２２２は、通信インタフェース１０９への通信パケット受信を周期的に監視（ポーリング監視）することで通信パケットの受信が可能となり、ＮＩＣに対するポーリング監視を開始する（Ｓ４３２）。なお、アプリケーション２３０がＯＳ２２０に対してＮＩＣ制御方式の変更を通知し（Ｓ４２２）、上述したＯＳ３２０内の処理が正常に処理できなかった場合は、パケット受信方式の決定（Ｓ４１０）で決定したパケット受信方式をポーリング方式から割り込み通知方式へ変更し、割り込み通知方式時の事前処理（Ｓ４２０）を実施し、ソケットインタフェースにおいて通信パケットの受信を行う。この処理により、技術的に新しいポーリング方式対応ＮＩＣ制御部２２１に不備が存在していた場合においても、通信パケット処理装置１００が起動できずに通信パケット処理が不可となるなどを防ぐことが可能である。なお、割り込み通知方式時の事前処理Ｓ４２０については、従来から行われている処理であり、ポーリング方式の事前処理に比較して失敗する可能性は低いと言えるため、上記のように通信パケット処理装置１００の起動失敗を防ぐことが可能となる。
【００３９】
以下、各パケット受信方式（ポーリング方式、割り込み通知方式）における通信パケット処理装置１００の通信パケット処理について、図９、図１０、図１１を用いて述べる。
【００４０】
図９は、アプリケーション２３０におけるポーリング方式でのパケット受信処理の例を説明する図である。
まず、ＮＩＣ制御部２２１はＯＳ２２０内の制御部であり、通常アプリケーション２３０からは直接アクセスできない。これは、通常、ＯＳ２２０とアプリケーション２３０は処理を行うメモリ空間が明確に分けられているためである。しかし、近年においては、ＯＳ２２０内のＮＩＣ制御部２２１をアプリケーション２３０から直接アクセスすることが可能な技術が公開されている。この技術は、ＯＳ２２０内での処理に使用されるメモリ空間へのアクセスをアプリケーション２３０からも可能とすることで、本来はＯＳ２２０で行われる処理をアプリケーション２３０においても実施することが可能な技術である。一般的にＯＳ２２０内で行われる処理を変更することは、アプリケーション２３０の処理を変更することに比べて手間がかかる。この技術を使用する場合には、この技術に対応するＯＳ２２０が必要となるが、ＯＳ２２０内の処理を変更する際には手間がかからず変更することが可能となる技術であり、この技術を用いることで、より柔軟にハードウェアアクセスを実施することができる。図９では、アプリケーション２３０がＮＩＣ制御部２２１を直接アクセスする場合の例として述べる。
【００４１】
図９に示す通信パケット処理装置１００は、ポーリング方式での動作が可能な通信インタフェース１０９を２つ具備しており、一方を受信用、もう一方を送信用として使用する。受信用通信インタフェース１０９−１を制御するＮＩＣ制御部２２１−１と送信用通信インタフェース１０９−２を制御するＮＩＣ制御部２２１−２はともにポーリング方式用のＮＩＣ制御部２２１である。アプリケーション２３０は、アプリケーション起動後（図３のＳ３０６）、ポーリング方式として動作しており、受信用ＮＩＣ制御部２２１−１から提供される通信インタフェース１０９−１から通信パケットを受信する処理９１２を周期的に実行している。実行時、通信インタフェース１０９−１に通信パケットが無ければ、受信処理は行われない。よって、ポーリング方式用の受信用ＮＩＣ制御部２２１−１は受信用通信インタフェース１０９−１に通信パケットが到着した際にＯＳ２２０へ割り込み通知を行わないものとなっている。
【００４２】
ここで、受信用通信インタフェース１０９−１に通信パケット９１１が到着すると、受信用通信インタフェース１０９−１は受信した通信パケットを保持する。受信用通信インタフェース１０９−１が通信パケットを保持している時に、アプリケーション２３０が受信用ＮＩＣ制御部２２１から提供される通信パケット受信処理９１２を実行すると、ＮＩＣ制御部２２１は受信用通信インタフェース１０９−１に保持されている通信パケットを取得し、アプリケーション２３０に通信パケットを渡す。
【００４３】
通信パケットを受信９１２したアプリケーション２３０は、転送処理９１３を行う。転送処理とは、通信パケット処理装置１００がサービスを行うにあたり必要な固有の処理を指す。
アプリケーション２３０は転送処理９１３の後、送信用ＮＩＣ制御部２２１−２から提供される通信インタフェース１０９−２への送信処理を実行することで、通信パケットの送信９１４を行う。
送信する通信パケットを受け取った送信用通信インタフェース１０９−２は、通信パケットの送出９１５を行う。
【００４４】
図１０は、ＯＳにおけるポーリング方式でのパケット受信処理の例を説明する図である。
図９では、ＯＳ２２０内のＮＩＣ制御部２２１をアプリケーション２３０から直接アクセスすることが可能な技術を用いたケースについて示したが、図１０はこの技術を用いずに通信パケットの処理をＯＳ２２０内にて行う場合について説明するものである。
【００４５】
図１０に示す通信パケット処理装置１００は、ポーリング方式での動作が可能な通信インタフェース１０９を２つ具備しており、一方を受信用、もう一方を送信用として使用する。受信用通信インタフェース１０９−１を制御するＮＩＣ制御部２２１−１と送信用通信インタフェース１０９−１を制御するＮＩＣ制御部２２１−１はともにポーリング方式用のＮＩＣ制御部である。通信パケット制御部２２２は、ＯＳ２２０起動後（図３のＳ３０２）、ポーリング方式として動作しており、受信用ＮＩＣ制御部２２１−１から提供される通信インタフェース１０９−１から通信パケットを受信する処理１０１２を周期的に実行している。実行時、通信インタフェース１０９−１に通信パケットが無ければ、受信処理は行われない。よって、ポーリング方式用の受信用ＮＩＣ制御部２２１−１は受信用通信インタフェース１０９−１に通信パケットが到着した際にＯＳ２２０へ割り込み通知を行わないものとなっている。
ここで、受信用通信インタフェース１０９−１に通信パケットが到着１０１１すると、受信用通信インタフェース１０９−１は受信した通信パケットを保持する。受信用通信インタフェース１０９−１が通信パケットを保持している時に、通信パケット制御部２２２が受信用ＮＩＣ制御部２２１−１から提供される通信パケット受信処理１０１２を実行すると、ＮＩＣ制御部２２１−１は受信用通信インタフェース１０９−１に保持されている通信パケットを取得し、通信パケット制御部２２２に通信パケットを渡す。
【００４６】
通信パケットを受信１０１２した通信パケット制御部２２２は、転送処理１０１３を行う。転送処理とは、通信パケット処理装置１００がサービスを行うにあたり必要な固有の処理を指す。
通信パケット制御部２２２は転送処理１０１３の後、送信用ＮＩＣ制御部２２１−２から提供される通信インタフェース１０９−２への送信処理を実行することで、通信パケットの送信１０１４を行う。
送信する通信パケットを受け取った送信用通信インタフェース１０９−２は、通信パケットの送出１０１５を行う。
【００４７】
図９で示したアプリケーション２３０におけるポーリング方式でのパケット受信処理例と図１０で示したＯＳ２２０におけるポーリング方式でのパケット受信処理例のうち、どちらの方式を適用するかは、通信パケット処理装置１００を製造する際に決定し、各方式に対応するアプリケーション２３０およびＯＳ２２０を製造するという方法でもよいし、両方式に対応するアプリケーション２３０とＯＳ２２０を製造し、通信パケット処理装置１００の運用時に外部コンフィグファイルを用いて例えば保守者に適用する方式を指定させ、その指定された方式でアプリケーション２３０およびＯＳ２２０を動作させる方法でもよい。
【００４８】
図１１は、割り込み方式でのパケット受信処理を説明する図である。
通信パケット処理装置１００は、通信インタフェース１０９を二つ具備しており、一方を受信用、もう一方を送信用として使用する。受信用通信インタフェース１０９−１を制御するＮＩＣ制御部２２１−１と送信用通信インタフェース１０９−２を制御するＮＩＣ制御部２２１−２はともに割り込み通知方式用のＮＩＣ制御部である。すなわち、受信用通信インタフェース１０９−１に通信パケットが到着した際はＯＳ２２０に対して割り込み通知によりパケット到着を通知する。通信パケット制御部２２２は、ＯＳ２２０起動後（図３のＳ３０２）、割り込み通知方式として動作しており、ＯＳ２２０からの通信パケット受信要求を待っている状態となっている。また、アプリケーション２３０とＯＳ２２０内の通信パケット制御部２２２の間はソケットインタフェース１１００により接続され、アプリケーション２３０はソケットインタフェース１１００を監視し、パケットの到着を待っている状態となっている。
【００４９】
ここで、受信用通信インタフェース１０９−１に通信パケットが到着１１１１すると、受信用通信インタフェース１０９−１は受信した通信パケットを保持し、受信用ＮＩＣ制御部２２１−１へ通信パケットの到着を通知する。通信インタフェース１０９−１からパケット到着通知を受けた受信用ＮＩＣ制御部２２１−１はＯＳ２２０に対して、割り込み通知による通知１１１２を行う。受信用ＮＩＣ制御部２２１−１より割り込み通知を受けたＯＳ２２０は通信パケット制御部２２２に通信パケット受信要求を行う。ＯＳ２２０から通信パケット受信要求を受けた通信パケット制御部２２２は、受信用ＮＩＣ制御部２２１−１から提供される通信パケット受信処理１１１３より、受信用通信インタフェース１０９−１に保持されている通信パケットを取得１１１３し、ソケットインタフェース１１００を用いてアプリケーション２３０へ受信した通信パケットを渡す１１１４。
【００５０】
通信パケットをソケットインタフェース１１００より受信したアプリケーション２３０は、転送処理１１１５を行う。転送処理とは、通信パケット処理装置１００がサービスを行うにあたり必要な固有の処理を指す。
アプリケーション２３０は転送処理１１１５の後、ソケットインタフェース１１００を用いてＯＳ２２０へ通信パケット送信要求１１１６を行う。
アプリケーション２３０より通信パケット送信要求を受信したＯＳ２２０は、通信パケット制御部２２２に通信パケット送信要求を行い、送信要求を受けた通信パケット制御部２２２は、ソケットインタフェース１１００から送信する通信パケットを取得し、送信用ＮＩＣ制御部２２１−２から提供される通信インタフェース１０９−２への送信処理を実行することで、通信パケットの送信１１１７を行う。
送信する通信パケットを受け取った送信用通信インタフェース１０９−２は、通信パケットの送出１１１８を行う。
【００５１】
以上より、本案を用いることで、異なる通信パケット受信方式の共存を同一ソフトウェアにて吸収することが可能となる。つまり、今後の割り込み通知方式とポーリング方式の両方式共存に対し、それぞれに対応するソフトウェアを製造することなく、ソフトウェア起動時に自装置が対応する通信パケット受信方式を判別することで装置に適する通信パケット受信方式にて動作することが可能となる。
【実施例２】
【００５２】
本実施例では、ポーリング方式対応の通信インタフェースとポーリング方式非対応の通信インタフェースが混在し、それらの通信インタフェースを運用中に切り替えることが可能な通信パケット処理装置の例を示す。
【００５３】
図１２は、本発明の一実施例における通信パケット処理装置のハードウェア構成を説明する図である。
図１の通信パケット処理装置１００のうち、既に図１で説明した構成と同一の機能を有する構成には同一の符号を付け、説明を省略する。
【００５４】
図１２に示す通信パケット処理装置１００は、ポーリング方式対応通信インタフェース１０９とは別にポーリング方式非対応通信インタフェース１２００を具備し、これらパケット受信方式が異なる通信インタフェース間において通信インタフェースの冗長機能を備えるものとする。
例えば、運用系通信インタフェースとしてポーリング方式対応通信インタフェース１０９を使用しており、ポーリング方式非対応通信インタフェース１２００を使用している待機系通信インタフェース１２００へ通信インタフェースの切り替えを行うことが可能である。
【００５５】
通信インタフェースの冗長切替について図１３を用いて説明する。
図１３は、通信インタフェースの冗長切替処理に関するフローチャートの例である。
アプリケーション２３０が、保守者による通信インタフェース１０９の切替通知もしくは通信インタフェースの故障検知（Ｓ１３０１）により、通信インタフェース１０９の切替が必要と判断すると、現在動作しているパケット受信方式を確認し（Ｓ１３０２）、現在動作しているパケット受信方式が割り込み通知方式であれば、通信インタフェース切替後のパケット受信方式を割り込み通知方式と決定する（Ｓ１３０４）。その後、通信インタフェースの切替を行う（Ｓ１３０５）。通信インタフェースの切替（Ｓ１３０５）後は割り込み通知方式でのパケット受信が可能となる。
【００５６】
現在動作しているパケット受信方式を確認（Ｓ１３０２）した結果、現在動作しているパケット受信方式がポーリング方式であれば、切替先ＮＩＣの対応確認（Ｓ１３０６）を行う。切替先ＮＩＣの対応確認（Ｓ１３０６）の処理内容は図６で示した内容と同じである。切替先ＮＩＣの対応確認（Ｓ１３０６）を行った結果、ポーリング方式での動作が可能であれば、通信インタフェース切替後のパケット受信方式をポーリング方式と決定し（Ｓ１３１０）、通信インタフェースの切替を行う（Ｓ１３０５）。通信インタフェースの切替（Ｓ１３０５）後はポーリング方式でのパケット受信が可能となる。
切替先ＮＩＣの対応確認（Ｓ１３０６）を行った結果、ポーリング方式での動作が不可であれば、ＯＳ２２０に対してパケット受信方式をポーリング方式から割り込み通知方式へ変更する変更通知（Ｓ１３０８）を行う。その後、ＯＳ２２０とのソケットインタフェースを生成し（Ｓ１３０９）、通信インタフェース切替後のパケット受信方式を割り込み通知方式と決定（Ｓ１３０４）する。その後、通信インタフェースの切替を行う（Ｓ１３０５）。通信インタフェースの切替（Ｓ１３０５）後は割り込み通知方式でのパケット受信が可能となる。
【００５７】
以上より、本実施例によれば、ポーリング方式対応通信インタフェースとポーリング方式非対応通信インタフェースが混在し、それらの通信インタフェースを同一ソフトウェアにおいて運用中に切り替えることが可能である。
【符号の説明】
【００５８】
１００  通信パケット処理装置
１０８  通信インタフェースコントローラ
１０９  ポーリング方式対応通信インタフェース
２１０  ハードウェア
２２０  ＯＳ
２２１  ＮＩＣ制御部
２２２  通信パケット制御部
２２３  アプリケーション制御部
２３０  アプリケーション
５００  コンフィグパラメータ
７００  ポーリング方式対応ＮＩＣ一覧テーブル
８００  ＩＦ情報管理テーブル
１１００  ソケットインタフェース
１２００  ポーリング方式非対応通信インタフェース
【図１】
2015104093.tif 000003
【図２】
2015104093.tif 000004
【図３】
2015104093.tif 000005
【図４】
2015104093.tif 000006
【図５】
2015104093.tif 000007
【図６】
2015104093.tif 000008
【図７】
2015104093.tif 000009
【図８】
2015104093.tif 000010
【図９】
2015104093.tif 000011
【図１０】
2015104093.tif 000012
【図１１】
2015104093.tif 000013
【図１２】
2015104093.tif 000014
【図１３】
2015104093.tif 000015