(57)【特許請求の範囲】
【請求項１】
所定数の可能値を有する品質スケール中の品質レベル値をデータ・パケットに付する方法であって、前記パケットは複数の優先度標識値を包含し、前記方法は、
前記パケットから前記複数の優先度標識値を抽出するステップと、
前記複数の優先度標識値を単一の合成集合優先度値に変換するステップと、
中に可能な各集合優先度値がそれぞれの品質レベル値に関連付けられている品質テーブルを参照するステップと、
前記合成集合優先度値に関連付けられた前記品質レベル値を前記パケットに付するステップと、
を含み、
前記変換するステップは、前記複数の優先度標識値のいくつかのビットを廃棄し、残りのビットを連鎖するステップを含む、方法。
【請求項２】
前記データ・パケットは、階層化通信プロトコルに準拠し、前記複数の優先度標識値は、前記パケットの相異なる通信レイヤに対応する少なくとも２つの部分に配置されている、請求項１に記載の方法。
【請求項３】
前記パケットは、各々が所定の複数のビットを含むいくつかのデータ・ユニットに分割され、前記優先度標識値を包含する前記データ・ユニットのそれぞれは、各々が全体として抽出される、請求項１または２に記載の方法。
【請求項４】
前記廃棄されるビットは、選定パターン・テーブル中に格納された選定パターンによって定義され、前記選定パターン・テーブルは、それぞれの通信シナリオに対応する複数の前記選定パターンを含み、前記ビットを廃棄するのに適用された前記選定パターンが、対処中の通信シナリオに対応するように選定される、請求項３に記載の方法。
【請求項５】
複数の論理ポートが定義され、各論理ポートは、それぞれの通信シナリオに従って通信を処理し、それに沿ってそれぞれの前記選定パターンを適用する、請求項４に記載の方法。
【請求項６】
前記品質テーブルは複数のサブテーブルに分割され、各々が、前記選定パターン・テーブル中に格納されたそれぞれ別個の選定パターンに対応する、請求項４または５に記載の方法。
【請求項７】
ある特定の合成集合優先度値に適用される、前記選定パターンを選ぶ選定値は、前記優先度値にその最上位ディジットとして連鎖され、前記優先度値を前記品質テーブルに適用する際に、前記品質テーブルの前記対応サブテーブルがアクセスされるようにする、請求項６に記載の方法。
【請求項８】
前記複数の優先度標識値はバイト単位で前記パケットから抽出され、前記方法は、優先度情報に関係ないビットを前記抽出されたバイトから廃棄するさらなるステップを含む、請求項１乃至７のいずれかに記載の方法。
【請求項９】
優先度情報に関係ないビットを前記抽出されたバイトから廃棄する前記ステップは、前記パケットの判明している構造を考慮しながら、優先度情報に関係するビットだけを格納するようサイズ設定、構成された、個別のレジスタに前記抽出されたバイトを書き込むステップを含む、請求項８に記載の方法。
【請求項１０】
請求項１乃至９のいずれかに記載の方法を実行するように構成されるネットワーク装置。
【請求項１１】
コンピュータ・プログラムがコンピュータ上で実行されることにより、前記コンピュータに請求項１乃至９のいずれかに記載の方法を遂行させるコンピュータ・プログラム。
【請求項１２】
前記コンピュータが構文解析制御モジュールである、請求項１１に記載のコンピュータ・プログラム。
【請求項１３】
請求項１１に記載のコンピュータ・プログラムが記憶されるコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、例えば、高性能のネットワーク・プロセッサに、複数の優先度クラスで入来するパケットの分類など、パケット分類に関し、一般に、これは複数の受信キューへの最終的パケット分類の一環である。
【背景技術】
【０００２】
慣例的に、パケットの判定は、パケットのヘッダ中にある「サービス品質」（ＱＯＳ：Ｑｕａｌｉｔｙ−ｏｆ−Ｓｅｒｖｉｃｅ）パラメータに依って行われている。この判定は、通常、一つのパケット・ヘッダ中にあるＱＯＳフィールドの簡単な復号を使って行われる。例えば、
−  ＶＬＡＮブリッジは、ＶＬＡＮヘッダ中にユーザ優先度として定義される３つの「Ｐビット」に従ってパケットを分類する。
−  ＭＰＬＳスイッチは、最初に実験ビットとして定義され、現時点ではパケットのＱＯＳ値を搬送している３つの「Ｅビット」に従ってパケットを分類する。
−  ＩＰルータは、ＩＰｖ４またはＩＰｖ６ヘッダ中に差別化サービスとして定義される「ＤＳＣＰバイト」に従ってパケットを分類する。
【０００３】
特許文献１は、ある電気通信システムにおいて、サービス品質（ＱＯＳ）を考慮した、無線ポイント−マルチポイント間の電気通信を提供する方法を記載している。この電気通信システムは、第一データ・ネットワークに連結された無線基地局と、該第一データ・ネットワークに連結された一つ以上のホスト・ワークステーションと、パケット中心のプロトコルを用い、共用バンド幅を介して無線基地局と無線通信する、一つ以上の加入者用顧客構内設備（ＣＰＥ：ｃｕｓｔｏｍｅｒ  ｐｒｅｍｉｓｅ  ｅｑｕｉｐｍｅｎｔ）ステーションと、第二ネットワークを介し加入者用ＣＰＥステーションの各々と連結している一つ以上の加入者ワークステーションとを含む。この方法は、エンドユーザのＱＯＳを最適化する仕方で、加入者用ＣＰＥステーションの間に共用バンド幅を割り当てるステップを含む。該方法は、共用の無線バンド幅を介するＩＰフロー群を分析しスケジューリングするステップを含む。これには、ＩＰフローを識別するステップ、ＩＰフローを特性付けるステップ、ＩＰフローを分類するステップ、およびＩＰフローを優先付するステップが含まれる。
【０００４】
特許文献２は、フレキシビリティとパフォーマンス改良を備えた、レイヤ２〜レイヤ７のハードウエア検索エンジンを有する高速ネットワーク管理アプリケーション設備に関する。マルチレイヤ・スイッチ／ルータ、ネットワーク・アドレス変換（ＮＡＴ：ｎｅｔｗｏｒｋ  ａｄｄｒｅｓｓ  ｔｒａｎｓｌａｔｉｏｎ）ゲートウェイ、ファイアウォール／ＶＰＮルータ、およびネットワーク接続ストレージ（ＮＡＳ：ｎｅｔｗｏｒｋ  ａｔｔａｃｈｅｄ  ｓｔｏｒａｇｅ）は、高速で効率的な検索要件に対しこの検索エンジンを使うことができる。
【０００５】
特許文献３は、高速のパケット分類を可能にするクラシファイア・ルールを格納するデータ構造を含む、高速パケット分類に対する新規なソリューションを提案し、その構造は、分類が要求される入来パケットの各フィールドに対するビットマップを採用している。この新規なデータ構造を用いた高速のパケット分類アルゴリズムは、最優先のマッチング・ルールを迅速に得ることを可能にする。新規ルールの更新アルゴリズムは、新しいクラシファイア・ルールが漸増的にデータ構造中に付加されることを可能にする。この発明の構造およびアルゴリズムを用いる分類エンジンの一つの実用的な実装において、カスタム化された命令を使う設定可能なプロセッサが、パケット分類を加速するために用いられている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国特許出願公開第２００７００３８７５０号
【特許文献２】米国特許出願公開２００８００１９３６８号
【特許文献３】米国特許第７２２７８４２号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ネットワーク通信データ・パケットは、多くの場合、階層化通信プロトコルに準拠しており、個別の異なる通信レイヤに対応する、パケットの少なくとも２つの部分に配置された優先度標識値を含む。統合化高速ネットワーク・プロセッサの出現とともに、優先度分類に関して新しい要求事項が識別され、現在では、この分類はいろいろなパケット・ヘッダ中に見られる優先度標識値の任意の混成に対応する能力が必要となっている。というのは、かかるネットワーク・プロセッサは、例えば、ＶＬＡＮのレイヤ２、ＭＰＬＳのレイヤ２．５、ＩＰのレイヤ３など、複数のネットワーク・レイヤにおけるパケットを処理する設備の中で使われることが多いからである。
【０００８】
この例をさらに詳細に検討すると、前述のプロトコルの各々（ＶＬＡＮ、ＭＰＬＳ、ＩＰｖ４、またはＩＰｖ６）は、そのそれぞれのレベルにおける優先度または品質に関する優先度標識値を定義しており、これら相異なる値のいくつかまたは全てにアクセスして、パケットの優先度または品質の要件を、全体としてまたはそのいずれかのコンポーネントとして判定することが望ましいことがある。
【課題を解決するための手段】
【０００９】
本発明によって、所定数の可能値を含む品質スケール中の品質レベル値をデータ・パケットに付する方法と、ネットワーク装置と、コンピュータ・プログラムと、媒体中に符号化されたコンピュータ・プログラムを有するコンピュータ可読媒体とが提供される。
【００１０】
ＩＰパケット全体に亘って分散されたさまざまな関連値から簡潔な優先度値を抜き出し、異なるレイヤからの情報を組み合わせ、サービス・シナリオ（ＶＬＡＮ、ＭＰＬＳなど）を考慮に入れることによって、パケット中の全ての関連データの品質分類への取り入れを確実することが可能である。
【００１１】
当業者は、図面および詳細な説明を検証することによって、本発明のさらなる利点をよく理解できよう。本明細書に任意の追加の利点を組み入れることが意図されている。
【図面の簡単な説明】
【００１２】
【図１】各種例示的優先度標識値の詳細を示す。
【図２】第一実施形態を示す。
【図３】第一実施形態の主要ステップのフローチャートを示す。
【図４】抽出されたバイト群に亘る優先度標識値の分布を示す。
【図５】第二実施形態による、優先度標識値レジスタの構造を示す。
【図６】優先度標識値レジスタからの代表ビットの選定を提供する第三実施形態を示す。
【図７】第三実施形態が複数の論理ポート収容するように適合された、第四実施形態を示す。
【発明を実施するための形態】
【００１３】
例示として、添付の図面を参照しながら本発明の実施形態を以下に説明する。図面中の同じ参照記号は類似のエレメントを示す。
【００１４】
図１は、各種例示的優先度標識値の詳細を示す。
【００１５】
図１ａに示されるように、ＶＬＡＮヘッダは、基底形式（Ｃａｎｏｎｉｃａｌ  Ｆｏｒｍ）標識ビットＣ１１２の前に配置された、３ビットの「ユーザ優先度」値Ｐ１１１を含む。
【００１６】
図１ｂに示されるように、ＭＰＬＳヘッダは、３ビットの「実験用（Ｅｘｐｅｒｉｍｅｎｔａｌ  Ｕｓｅ）」値Ｅ１２１を含み、これは、慣行的にサービス品質情報のため使われ、スタックの底（Ｂｏｔｔｏｍ  ｏｆ  Ｓｔａｃｋ）標識ビットＳ１２２の前に配置されている。
【００１７】
図１ｃに示されるように、ＩＰｖ４ヘッダは、８ビットの「差別化サービス・コード・ポイント（Ｄｉｆｆｅｒｅｎｔｉａｌ  Ｓｅｒｖｉｃｅｓ  Ｃｏｄｅ  Ｐｏｉｎｔ）」値ＤＳＣＰ１３１を含み、これはサービス品質情報のため使われ、「レン（Ｌｅｎ）」値１３２の前に配置されている。
【００１８】
図１ｄに示されるように、ＩＰｖ６ヘッダは、８ビットの「差別化サービス・コード・ポイント」値ＤＳＣＰ１４１を含み、これはサービス品質情報のため使われ、「フロー・ラベル（Ｆｌｏｗ  Ｌａｂｅｌ）」値１４２の前に配置されている。
【００１９】
図２は第一実施形態を示す。
【００２０】
図２に示されるように、パーサ２１０は構文解析レジスタ２１１および構文解析制御モジュール２１２を含む。構文解析レジスタは、一つ以上の受信済みパケットまたはその部分を格納し、通常少なくとも一パケットのヘッダを包含する。構文解析制御モジュールは、パーサのさまざまな機能を制御するプログラム可能モジュールであり、具体的に、本実施形態においては、レジスタ２１１のコンテンツの特定の部分を抽出する能力がある。
【００２１】
図示のように、構文解析制御モジュールは、抽出したデータを、配送バス２２０を介して優先度標識値レジスタ２３０にアドレス指定することができ、また、データを本発明の範囲外の他のシステムに経路指定するために用いることもできる。
【００２２】
図１の例から始めると、一般に遭遇する可能性のある最も複雑なヘッダは、各々３ビットが必要な２つの連続するＭＰＬＳラベルを有するメッセージに関連し、各々３ビットが必要な、２つの連続するＶＬＡＮに対する明細を包含し、ＩＰｖ４（１バイト）もしくはＩＰｖ６（１バイト）の下にＩＰトンネルを備えたものであり得ることに基づけば、これから、合計（２×３）＋（２×３）＋（２×８）＋（２×８）＝４４ビットが得られる。当然ながら、レジスタ２３０のサイズと可能な全てのヘッダ構成を取り扱うシステムの能力との間での異なる妥協点を取った、他の多くのシナリオも考えられることは十分理解されよう。
【００２３】
図示のように、優先度標識値レジスタは、各種の優先度標識値を構成するとして上記で識別された４４ビットを収容するように、４４ビット幅となっている。これにより、これら４４ビットは、単一の４４ビット優先度値として読み取ることができ、次いでこれは指標値として品質テーブル２５０に適用される。このテーブルは、各可能な優先度値に対する品質レベル値を含む。
【００２４】
このＱＯＳテーブルは、各可能な品質レベル値が複数のエントリに格納できるようなサイズにされる。すなわち、品質レベル値がＰビットで符号化されている場合、このとき品質テーブルは２Ｐより多いエントリを有する。この対処法のフレキシビリティは、品質テーブル中でルックアップが行われるやり方、より正確には、ルックアップ指標が作成されるやり方から来ている。図示のように、品質レベルは３ビット値であり、２４４の可能なインプット値の各々は、２３＝８の可能な品質レベルの一つに関連付けられる。
【００２５】
しかして、前述のやり方によって、ヘッダ構造シナリオに関する当初の仮定に適合する任意のパケットは、元のパケット中の全ての関連データを考慮に入れて、３ビットの品質レベル値に自動的に短縮できる。
【００２６】
図３は、第一実施形態の主要ステップのフローチャートを示す。
【００２７】
本方法はステップ３００から開始され、次いでステップ３１０に進み、さまざまな優先度標識値が、例えば、構文解析レジスタ２１１と通信している構文解析制御モジュール２１２によって、パケットから抽出される。方法は、次にステップ３２０に進み、別々の優先度標識値が、例えば、優先度標識値レジスタ２３０において連鎖されることによって、単一の合成集合優先度値に変換される。方法は、次にステップ３３０に進み、テーブル中に可能な各集合優先度値がそれぞれの品質レベル値に関連付けられている、品質テーブル２５０が参照され、最後にステップ３４０において、上記品質テーブル中の合成集合優先度値に関連付けられた品質レベル値がパケットに付され、ステップ３５０において本方法は終了する。
【００２８】
ある実施形態において、構文解析制御モジュールの能力が、例えば、レジスタのコンテンツの部分を抽出できる粒度に関し限定されることがあり得る。具体的には、構文解析制御モジュールが、８、１６、または３２ビット単位だけで構文解析レジスタからのデータ抽出ができることがある。このような場合、パケットをいくつかのかかる単位に分割し、上記優先度標識値を包含する個別の単位体の各々の全体を抽出することができる。
【００２９】
この場合、優先度標識値レジスタは、データの全バイトを受信するよう構築される必要があることになり、これらは、品質または優先度情報だけで構成されてはいない。
【００３０】
図１に戻ると、Ｐ値１１１があるバイトの最初の３ビットを占めているのが示されている。Ｅ値はあるバイトの５、６、および７番目のビットを占め、ＤＳＣＰ値は、ＩＰｖ４中の一つのバイトの全体を占め、ＩＰｖ６においては、一つのバイトの最後の４ビットおよび次のバイトの最初の４ビットを占めている。これをベースに、第一実施形態のヘッド構造シナリオを続けると、全ての関連情報を得るには、パケットから１０の別個のバイトを抽出しなければならないことがよく理解できよう。
【００３１】
図４は、抽出されたバイト群に亘る優先度標識値の分布を示す。
【００３２】
図示のように、１０バイトが抽出されている。バイト４０１は、その最初の４ビットに第一ＶＬＡＮラベルのＰ値を包含する。バイト４０２は、その最初の４ビットに第二ＶＬＡＮラベルのＰ値を包含する。バイト４０３は、その第５、第６、および第７ビットに第一ＭＰＬＳヘッダのＥ値を包含する。バイト４０４は、その第５、第６、および第７ビットに第二ＭＰＬＳヘッダのＥ値を包含する。バイト４０５は、全体が、第一ＩＰトンネル中のＩＰｖ４・ＤＳＣＰ値によって占められている。バイト４０６は、その最後の４ビット中に第一ＩＰトンネル中のＩＰｖ６のＤＳＣＰ値の前半を包含し、バイト４０７は、その最初の４ビット中に第一ＩＰトンネル中のＩＰｖ６のＤＳＣＰ値の後半を包含する。バイト４０８は、全体が、第二ＩＰトンネル中のＩＰｖ４のＤＳＣＰ値によって占められている。バイト４０９は、その最後の４ビット中に第二ＩＰトンネル中のＩＰｖ６のＤＳＣＰ値の前半を包含し、バイト４１０は、その最初の４ビット中に第二ＩＰトンネル中のＩＰｖ６のＤＳＣＰ値の後半を包含する。
【００３３】
図４のデータ・フィールドによって与えられた構成を、一般化して優先度標識値レジスタに対する構造を定義することができる。
【００３４】
図５は、第二実施形態による、優先度標識値レジスタの構造を示す。
【００３５】
図示のように、本第二実施形態による優先度標識値レジスタ５３０は、それぞれ構文解析レジスタ２１１中に格納されたパケットから抽出された１０個のバイト４０１〜４１０を受信するようになっている１０個のレジスタ５０１〜５１０を含む。上記に沿って、優先度標識値レジスタ５０１および５０２は、これらが受信したバイトの最初の３ビットを格納し、残部は廃棄するよう構成されている。レジスタ５０３および５０４は、これらが受信したバイトの最後の３ビットを格納し、残部は廃棄するよう構成されている。レジスタ５０５および５０８は、これらが受信したバイトの全体を格納するよう構成されている。レジスタ５０７および５１０は、これらが受信したバイトの最初の４ビットを格納し、残部は廃棄するよう構成されている。レジスタ５０６および５０９は、これらが受信したバイトの最後の４ビットを格納し、残部は廃棄するよう構成されている。このようなやり方で、構文解析制御モジュール２１２は、構文解析レジスタ２１１からバイト単位でデータを抽出することができるが、優先度標識値レジスタ２３０のアウトプットにおいては、複数の優先度標識値は、異質なコンテントを含まない単一の合成集合優先度値に変換されることになる。
【００３６】
あるケースにおいては、優先度標識値レジスタ２３０または５３０に書き込まれた優先度および品質に関連するデータの必ずしも全てが要求品質レベルの十分な表現を確保する必要はないことがあり得る。
【００３７】
このアプローチに対し多くの変形が可能なのはよく理解できるであろう。具体的には、レジスタ５０１〜５０４のサイズを、各３ビットから各４ビットに有利に増加し、合計アウトプット集合優先度値の幅を４８ビット、または６バイトにすることができる。
【００３８】
言い方を換えれば、優先度標識値レジスタ５３０は、パーサからのＱＯＳパラメータを、ＱＯＳパラメータの種類に従ってサイズを最適化された１０個のインプット・レジスタのセット中に受信することができる。
−  例えばＶＬＡＮヘッダ、ＩＰｖ６ヘッダ（ＤＳＣＰバイトのＬＳ部分）に見られるような、左配列の小さなＱＯＳパラメータに対しては４ビットのレジスタ
−  例えばＭＰＬＳヘッダ、ＩＰｖ６ヘッダ（ＤＳＣＰバイトのＭＳ部分）に見られるような、右配列の小さなＱＯＳパラメータに対しては４ビットのレジスタ
−  例えばＩＰｖ４ヘッダに見られるような、大きなＱＯＳパラメータに対しては８ビットのレジスタ
これらのレジスタの配置はフレキシブルである、すなわち、パーサのピココードによって決まるだけで、一般的な値割り当てには対応する
−  ２つのＶＬＡＮヘッダ（２つの左配列４ビット・レジスタ）、ＶＬＡＮ−ｉｎ−ＶＬＡＮ（ａｋａ  ＱｉｎＱ）機能をサポートする
−  ２つのＭＰＬＳヘッダ（２つの右配列４ビット・レジスタ）、２レベル・スタックＭＰＬＳプロトコルをサポートする
−  ２つのＩＰｖ４ヘッダ（２つの８ビット・レジスタ）、ＩＰｖ４トンネリングをサポートする
−  ２つのＩＰｖ６ヘッダ（２つの右配列４ビット・レジスタ、プラス２つの左配列４ビット・レジスタ）、ＩＰｖ６トンネリングをサポートする
【００３９】
これは、整数のバイトに適合するだけでなく、各レジスタに格納可能なデータの種類の点で追加的なフレキシビリティをも提供する利点を有する。例えば、２つのこういった半バイトのレジスタを使って、８ビットのＤＳＣＰ値を格納することができる。不利点は、これが異質のコンテント、すなわち、図４に提示された形式のデータの場合では、データの、品質または優先度に関係ない４ビットのコンテント、を包含する単一合成集合優先度値をもたらす可能性があることである。一方で、第三および第四実施形態に関連して後記で説明する優先度値アグリゲータおよび選定パターン・テーブルは、かかる異質なコンテントを無視するための手段を提供することがわかるであろう。
【００４０】
このように、優先度標識値は、パケットのバイト単位で抽出することができる。さらに、抽出したバイトから優先度情報と関係のないビットを廃棄するさらなるステップを提供することができる。さらにまだ、優先度情報に関係ないビットを抽出されたバイトから廃棄するこの追加ステップには、パケットの判明している構造を考慮しながら、優先度情報に関係するビットだけを格納するようサイズ設定、構成された、個別のレジスタに抽出されたバイトを書き込むステップを含めることができる。
【００４１】
図６は、優先度標識値レジスタからの代表ビットの選定を提供する第三実施形態を示す。
【００４２】
図示のように、優先度値アグリゲータ６６０が提示され、これは６つの４４対１マルチプレクサ６６１〜６６６を含む。これら６つのマルチプレクサの各々は、優先度標識値レジスタ５３０中に格納された、全４４個のビット値を供給され、選定パターン・テーブル６４０からの制御信号に基づいて、優先度値アグリゲータからの優先度値アウトプットが合計６ビットに制限されるようにして、４４のインプット・ビット値の一つを選定し、そのそれぞれのアウトプット・ラインに出力する。次いで、これらの６ビットは、品質レベルを得るため、ほぼ第一実施形態に関連して説明したようにして、品質テーブル６５０に入力される。図示のように、選定パターン・テーブル６４０は、６つのレジスタ６４１、６４２、６４３、６４４、６４５、６４６を含み、その各々が、優先度標識値レジスタ５３０中に格納されたビット値のそれぞれ一つを識別する値を収容する。各選定パターン・テーブルのレジスタ６４１、６４２、６４３、６４４、６４５、６４６は、その識別値を、それぞれの優先度値アグリゲータのマルチプレクサ６６１、６６２、６６３、６６４、６６５、６６６に供給する。レジスタ６４１およびマルチプレクサ６６１は、優先度値の最高位ビットに対応していると見なすことができ、レジスタ６４６およびマルチプレクサ６６６は優先度値の最下位ビットに対応していると見なすことができる。本例において、各レジスタ６４１、６４２、６４３、６４４、６４５、６４６は、優先度標識値レジスタ５３０に格納された４４ビット値のいずれかを指定するための６ビット値を包含する
【００４３】
従って、変換するステップ３２０には、複数の優先度標識値の特定のビットを廃棄し、残りのビットを連鎖するステップを含めることができる。さらに、廃棄されるビットは、選定パターン・テーブル６４０中に格納された選定パターンによって定義することができる。さらにまだ、選定パターン・テーブル６４０には、それぞれの通信シナリオに対応する複数の選定パターンを含めることができ、これにより、ビットを廃棄するのに適用される選定パターンは、対処中の通信シナリオに対応して選択される。
【００４４】
例として、以下に、かかる３つのシナリオを検討することにする。
【００４５】
例示シナリオ１−ＩＰｖ４
ＩＰｖ４パケットに対するＱＯＳ実施の一般的な例は、３つの「先行」ビット、すなわち、ＩＰｖ４ヘッダ中のＤＳＣＰバイト１３１の最初の３ビットに依ることである。図５のパターンを用いれば、これら３つのビットは、優先度標識値レジスタ５３０に格納された４４ビット値の第１５番、１６番、および１７番にあたる。
【００４６】
従って、４４優先度標識値ビットのレジスタが、００００００から１０１０１１までに数値付されている場合、選定パターン・テーブル６４０には、このシナリオに対する次の選定パターンを含めることができる。
【００４７】
【表１】
0005833903.tif 000002
【００４８】
従って、このスキームは、ＩＰｖ４ヘッダ中のＴＯＳ（ＤＳＣＰ）バイトの３ビットＰ２、Ｐ１、Ｐ０を選定し、これらを、ＱＯＳ指標の最下位３ビットとして使用する。ＱＯＳ指標の最上位３ビットは使われず、品質テーブル６５０は、２３＝８の可能優先度値を２３＝８の利用可能な品質レベル上にマップする。
【００４９】
例示シナリオ２−ＩＰｖ６
ＩＰｖ６パケットに対するＱＯＳ実施の一般的な例は、ＩＰｖ６ヘッダ中のＤｉｆｆＳｅｒｖバイトの６つの「ＤＳＣＰ」ビットに依ることである。
【００５０】
このスキームは、ＩＰｖ６ヘッダ中のＤｉｆｆＳｅｒｖフィールドの最初の６ビットであるＤＳ５からＤＳ０の６ビットを選定し、これらをＱＯＳ指標の６ビットとして使用することによって実施できようし、ＱＯＳテーブルは、６４のＤｉｆｆＳｅｒｖコード・ポイント値を８つの優先度値にマップすることができよう。図５のパターンを用いれば、これら６つのビットは、優先度標識値レジスタ５３０に格納された４４ビット値の第２３番〜２８番にあたる。
【００５１】
従って、選定パターン・テーブル６４０には、このシナリオに対する次の選定パターンを含めることができる。
【００５２】
【表２】
0005833903.tif 000003
【００５３】
例示シナリオ３−ＶＬＡＮ／ＩＰｖ４
ＱＯＳの混成定義の例は、ＶＬＡＮタグ中のＰビット、およびＩＰｖ４ヘッダ中のＴＯＳバイトの３つの「先行」ビットに基づくものとすることができる。
【００５４】
このスキームは、ＩＰｖ４ヘッダ中のＴＯＳバイトの３ビットＰ２、Ｐ１、Ｐ０を選定し、それらをＱＯＳ指標の最下位３ビットとして使用し、３つのＶＬＡＮタグの優先（Ｐ）ビット１１１すなわち最初の３つもビットを選定し、それらをＱＯＳ指標の最上位３ビットとして使用することによって実施することができよう。
【００５５】
図５のパターンを用いれば、ＴＯＳバイトのこれら３つのビットＰ２、Ｐ１、Ｐ０は、優先度標識値レジスタ５３０に格納された４４ビット値の第１５番、１６番、および１７番にあたり、ＶＬＡＮタグの３つの優先（Ｐ）ビット１１１は、優先度標識値レジスタ５３０に格納された４４ビット値の第１番、２番、および３番にあたる。
【００５６】
従って、選定パターン・テーブル６４０には、このシナリオに対する次の選定パターンを含めることができる。
【００５７】
【表３】
0005833903.tif 000004
【００５８】
一般的なケースは、ＴＯＳバイトおよびＶＬＡＮタグは、同じＱＯＳ値を保持するが、このスキームでは、ＶＬＡＮ  ＱＯＳがＩＰｖ４ＱＯＳを上書きするという例外を取り扱うことが可能である。次いで、品質テーブル６５０は、６４のＱＯＳ値を８つの品質レベルにマップすることができよう。
【００５９】
本実施形態では優先度値は、４４ビットから６ビットに低減されるが、もっと大きいまたは小さい度合いの任意の圧縮が可能であり、設計上の制約および他の考慮事項に応じてこれを適用することができる。具体的には、優先度値を形成するビットの数を、各種の優先度標識値の最大のサイズに等しいように選択することができる。
【００６０】
本アプローチの利点は、優先度値のビット幅を削減することによって、品質テーブル６５０のサイズを２４４から２６エントリに低減し、全体としてデバイスのレイアウト面積の低減につなげることができることである。
【００６１】
本アプローチのさらなる利点は、いろいろな状況に適合された選定パターン・テーブル６４０中の選定パターンを提供することによって、構文解析制御モジュールの動作を変更する必要なくして、何時でも優先度値の構成を変更することを可能にし、これによりデバイスのフレキシビリティを増大させることである。
【００６２】
さらに具体的には、優先度値アグリゲータは、優先度値ビットの各々に対し、パーサによってロードされた全優先度標識値ビットのどれを選定するかを判定するよう機能することができる。このことは、アプリケーションが、どのＱＯＳパラメータを取り上げ、どれを無視すべきかを判断することを可能にする。考慮されたビットの和は、ｌｏｇ２（Ｎ）より大きくすべきではない。前式のＮは品質テーブルのエントリの数である。このとき、品質テーブルは、ＱＯＳパラメータのあり得る混成の各々に対応する優先度値を用いて構成しなければならない。
【００６３】
本発明に対応可能なあるネットワーク・デバイスは、複数の論理ポートを定義することができる。多くの場合、かかる各論理ポートを特定の種類のトラヒックまたはアクティビティに関連付けて、当該論理ポート上の全トラヒックに対し、同じ様な品質検討を適用するのが適切であり得る。
【００６４】
図７は、第三実施形態が複数の論理ポート収容するように適合化された、第四実施形態を示す。
【００６５】
図示のように、このデバイスは２つの論理ポートをサポートしている。品質テーブル７５０は、第一サブテーブル７５１と第二サブテーブル７５２とにサブ分割されている。２つのサブテーブル７５１および７５２は、それぞれ第一および第二論理ポートに対する品質レベル・ルックアップを提供しており、このため、各々別個に２６のエントリを含む。さらに、選定パターン・テーブル７４０は、第一論理ポートまたは第二論理ポートそれぞれにパケットが到着したとき、優先度値アグリゲータ６６０が受信する値に適用するための、第一選定パターン７４１および第二選定パターン７４２を含む。言い換えれば、品質テーブル７５０は、各々が、選定パターン・テーブル７４０に格納されたそれぞれ別個の選定パターンに対応する、複数のサブテーブルに分割される。構文解析制御モジュール２１２は、選定パターン制御ライン７７０によって、品質テーブル７５０にさらに接続される。
【００６６】
第四実施形態によれば、構文解析制御モジュール２１２が、ある特定のパケットが第一論理ポートに関連すると判定したとき、選定パターン制御ライン７７０は０に設定される。この値は、選定パターン・テーブルに、優先度値アグリゲータ６６０に対し第一選定パターン７４１を出力させる。選定パターン制御ライン７７０上の値は、優先度値アグリゲータから出力される優先度値に、最上位ビットとしてさらに加えられる。この新しい７ビットの優先度値は、ほぼ先行の実施形態に関連して説明したようにして、品質テーブル７５０に入力される。選定パターン制御ライン７７０に由来するＭＳＢ値０は、残りの６ビットに対し第一品質サブテーブル７５１を適用させることになり、第一論理ポートの適切なコンテキストにおいて品質ルックアップが遂行されることになる。同様に、構文解析制御モジュール２１２が、ある特定のパケットが第二論理ポートに関連すると判定したとき、選定パターン制御ライン７７０は１に設定される。この値は、選定パターン・テーブルに、優先度値アグリゲータ６６０に対し第二選定パターン７４２を出力させる。選定パターン制御ライン７７０上の値は、優先度値アグリゲータから出力される優先度値に、最上位ビットとしてさらに加えられる。この新しい７ビット優先度値は、ほぼ先行の実施形態に関連して説明したようにして、品質テーブル７５０に入力される。選定パターン制御ライン７７０に由来するＭＳＢ値は１、残りの６ビットに対し第二品質サブテーブル７５２を適用させることになり、第二論理ポートの適切なコンテキストにおいて品質ルックアップが遂行されることになる。言い換えれば、ある特定の集合優先度値に適用される選定パターンを選ぶ選定値は、上記の優先度値をその最上位ディジットに使って連鎖設定され、上記優先度値を品質テーブルに適用する際に、品質テーブルの対応するサブタイトルにアクセスが行われるようにする。
【００６７】
このように、複数の論理ポートを定義することができ、各論理ポートは、それぞれの通信シナリオに従って通信を取扱い、これに従ってそれぞれの選定パターンを適用する。
【００６８】
選定パターン・テーブルには任意の数の選定パターンを備えることができ、任意の数の論理ポートが可能なことはよく理解できよう。さらに、各論理ポートに対し複数の選定パターンを備え、一部または全部の論理ポートに対するこれら選定パターンの数を異なるようにすることができる。さらに、選定パターン・テーブルには、特定の論理ポートに特定されない選定パターンを備えることもできる。例えば、入来パケットのＭＡＣアドレスが特定の論理ポートに関連付けられていない場合など、入来パケットがどの特定の論理ポートにもマップできない場合のための選定パターンを備えることができよう。さらに、受信パケットの他の特性に対応する例外処理などのために、複数の追加的選定パターンを備えることもできる。例えば、マルチキャスト・パケット、同時通信パケット、およびユニキャスト・パケットのそれぞれ、またはこれらのサブセットに対する別個の選定パターンを備えることができる。
【００６９】
諸実施形態は、アプリケーションのＱＯＳ要件に沿ってソフトウエアにより構成されたテーブル中の優先度標識のフレキシブルな選定に関する。ある実施形態によれば、連続ネットワーク・レイヤによる、入れ子のヘッダを含むマルチレイヤ・ネットワーク通信パケットが構文解析され、ヘッダ群全体に亘って分散された、各個別レイヤのデータに対する優先度またはサービス品質要件（優先度標識値）に関する値が抽出される。集合されたデータ（合成集合優先度値）が、より低分解能の品質レベル値に対する異なった可能な合成集合優先度値がマップされた表に、適用される。優先度標識値または合成集合優先度値は、フィルタし、マスクし、または圧縮することができる。ある実施形態によれば、優先度標識値を格納する相異なるビット・サブセットが、パケットが関連付けられた論理ポートと、その論理ポートに適合する品質レベル値のマッピングを備える区別されたサブテーブルに適用される最終的な優先度標識値と、に基づいて選定される。
【００７０】
レジスタ５０１〜５１０が、ＶＬＡＮ、ＭＰＬＳ、およびＩＰプロトコルだけに専用のものでないことを理解する。構文解析制御モジュールがプログラム可能であるとの前提で、本発明は、（まだ）標準化されていない新規の先端プロトコルを含め、マルチレイヤＱＯＳの他の組み合わせをもサポートする利点を提供する。またあるいは、エンドユーザは、標準的ＱＯＳ基準をそのＱＯＳルールに基づいて改良する可能性を有する（例えば、レイヤ２のイーサタイプ、レイヤ３のプロトコル・タイプ、またはレイヤ４のポート・タイプなど非ＱＯＳフィールドに基づいて、特定のトラヒック・タイプを分類およびさらに優先付けするなど）。
【００７１】
本発明は、全体がハードウエアの実施形態、全体がソフトウエアの実施形態、またはハードウエアおよびソフトウエア両方のエレメントを包含する実施形態の形を取ることができる。ある好適な実施形態において、本発明は、以下に限らないが、ファームウエア、常駐ソフトウエア、マイクロコード、構文解析ピココードなどを含めた、ソフトウエアに実装される。
【００７２】
さらに、本発明は、コンピュータまたは任意の命令実行システムによってまたはこれに関連させて使用するプログラム・コードを備えるコンピュータ・プログラム、コンピュータ可読媒体の形態を採ることもできる。本説明目的の上で、コンピュータ可読媒体は、任意の命令実行システム、装置、またはデバイスによってまたはこれに関連させて使用するためのプログラムを、収容、格納、通信、伝搬、または伝送できる任意の装置であり得る。具体的には、前述の構文解析制御モジュールは、この意味で命令実行システム、または「コンピュータ」を構成する。
【００７３】
媒体は、電子的、磁気的、光学的、電磁気的、赤外的、または半導体のシステム（もしくは装置もしくはデバイス）または伝搬媒体とすることができる。コンピュータ可読媒体の例には、半導体または固体メモリ、磁気テープ、着脱可能コンピュータ・ディスケット、ランダム・アクセス・メモリ（ＲＡＭ：ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、読み取り専用メモリ（ＲＯＭ：ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、剛体磁気ディスク、および光ディスクが含まれる。光ディスクの現時点での例には、コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ：ｃｏｍｐａｃｔ  ｄｉｓｋ  ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）、コンパクト・ディスク読み取り／書き込み（ＣＤ−Ｒ／Ｗ：ｃｏｍｐａｃｔ  ｄｉｓｋ  ｒｅａｄ／ｗｒｉｔｅ）メモリ、およびＤＶＤが含まれる。
【００７４】
プログラム・コードを格納もしくは実行またはその両方を行うのに適したデータ処理システムは、システム・バスを介して直接的または間接的にメモリ・エレメントに連結された少なくとも一つのプロセッサを含み得る。このメモリ・エレメントには、プログラム・コードの実際の実行の過程で使われるローカル・メモリ、バルク記憶装置、および、実行中にバルク記憶装置から読み出さねばならない回数を低減するために、少なくとも一部のプログラム・コードに一時的保管を提供するキャッシュ・メモリを含めることができる。
【００７５】
直接に、あるいは仲介Ｉ／Ｏコントローラを介して、入力／出力またはＩ／Ｏデバイス（以下に限らないが、キーボード、ディスプレイ、ポインティング・デバイスなどを含む）をシステムに連結することができる。
【００７６】
また、ネットワーク・アダプタをシステムに連結し、データ処理システムが、仲介の私有または公衆ネットワークを介して、他のデータ処理システムあるいは遠隔のプリンタまたは記憶デバイスに繋がるようにすることができる。モデム、ケーブル・モデム、およびイーサネット（Ｒ）カードは、現在入手可能なネットワーク・アダプタのごく一部である。
【符号の説明】
【００７７】
１３０〜１３９    ＤＳＣＰバイト
２１０    パーサ
２１１    構文解析レジスタ
２１２    構文解析制御モジュール
２２０    配送バス
５３０    優先度標識値レジスタ
６６０    優先度値アグリゲータ
７４０    選定パターン・テーブル
７４１    第一選定パターン
７４２    第二選定パターン
７５０    品質テーブル
７７０    選定パターン制御ライン
【図１】
0005833903.tif 000005
【図２】
0005833903.tif 000006
【図３】
0005833903.tif 000007
【図４】
0005833903.tif 000008
【図５】
0005833903.tif 000009
【図６】
0005833903.tif 000010
【図７】
0005833903.tif 000011