IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 新華三技術有限公司の特許一覧

特表2024-520161決定論的フロー伝送方法およびデバイス
<>
  • 特表-決定論的フロー伝送方法およびデバイス 図1
  • 特表-決定論的フロー伝送方法およびデバイス 図2
  • 特表-決定論的フロー伝送方法およびデバイス 図3
  • 特表-決定論的フロー伝送方法およびデバイス 図4
  • 特表-決定論的フロー伝送方法およびデバイス 図5
  • 特表-決定論的フロー伝送方法およびデバイス 図6
  • 特表-決定論的フロー伝送方法およびデバイス 図7
  • 特表-決定論的フロー伝送方法およびデバイス 図8
  • 特表-決定論的フロー伝送方法およびデバイス 図9
  • 特表-決定論的フロー伝送方法およびデバイス 図10
  • 特表-決定論的フロー伝送方法およびデバイス 図11
  • 特表-決定論的フロー伝送方法およびデバイス 図12
  • 特表-決定論的フロー伝送方法およびデバイス 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-05-21
(54)【発明の名称】決定論的フロー伝送方法およびデバイス
(51)【国際特許分類】
   H04L 47/50 20220101AFI20240514BHJP
   H04L 47/62 20220101ALI20240514BHJP
   H04L 47/10 20220101ALI20240514BHJP
【FI】
H04L47/50
H04L47/62
H04L47/10
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023574856
(86)(22)【出願日】2021-12-29
(85)【翻訳文提出日】2023-12-05
(86)【国際出願番号】 CN2021142636
(87)【国際公開番号】W WO2023123103
(87)【国際公開日】2023-07-06
(81)【指定国・地域】
(71)【出願人】
【識別番号】518056748
【氏名又は名称】新華三技術有限公司
【氏名又は名称原語表記】NEW H3C TECHNOLOGIES CO., LTD.
(74)【代理人】
【識別番号】110002468
【氏名又は名称】弁理士法人後藤特許事務所
(74)【代理人】
【識別番号】100230086
【弁理士】
【氏名又は名称】譚 粟元
(72)【発明者】
【氏名】郭 道栄
【テーマコード(参考)】
5K030
【Fターム(参考)】
5K030HB15
5K030KA05
5K030LC01
(57)【要約】
本発明は決定論的フロー伝送方法およびデバイスを提供する。当該方法は、受信されたパケットが決定論的フローに属し、当該パケットが周期指定キューイングおよび転送(CSQF)ドメインスケジューリング情報を含まないと判定した場合、前記パケットの到着時刻に対応する目標タイムスロット番号を決定することと、前記目標タイムスロット番号に基づいて、前記パケットのエグレスインターフェイスのタイムスロットスケジューリング周期マッピングテーブルを照会して、前記目標タイムスロット番号に対応する目標周期スケジューリングキューを決定することであって、前記タイムスロットスケジューリング周期マッピングテーブルは、前記ネットワークノードのノード内ジッタに基づいて決定され、タイムスロット番号と周期スケジューリングキューのキュー番号との間のマッピング関係を記録するために用いられることと、前記パケットを前記パケットのエグレスインターフェイスの目標周期スケジューリングキューにスケジューリングすることと、を含む。本発明の実施形態により、決定論的フロースケジューリングプロセスにおけるノード内ジッタを効果的に吸収することができる。
【選択図】図1
【特許請求の範囲】
【請求項1】
ネットワークノードに適用される決定論的フロー伝送方法であって、
受信されたパケットが決定論的フローに属し、前記パケットが周期指定キューイングおよび転送(CSQF)ドメインスケジューリング情報を含まないと判定した場合、前記パケットの到着時刻に対応する目標タイムスロット番号を決定することと、
前記目標タイムスロット番号に基づいて、前記パケットのエグレスインターフェイスのタイムスロットスケジューリング周期マッピングテーブルを照会して、前記目標タイムスロット番号に対応する目標周期スケジューリングキューを決定することであって、前記タイムスロットスケジューリング周期マッピングテーブルは、前記ネットワークノードのノード内ジッタに基づいて決定され、タイムスロット番号と周期スケジューリングキューのキュー番号との間のマッピング関係を記録するために用いられることと、
前記パケットを前記パケットのエグレスインターフェイスの目標周期スケジューリングキューにスケジューリングすることと、を含む、
ことを特徴とする決定論的フロー伝送方法。
【請求項2】
前記パケットの到着時刻に対応する目標タイムスロット番号を決定することは、
前記パケットの受信タイムスタンプを取得することと、
前記パケットの受信タイムスタンプをタイムスロット数に変換することと、
前記タイムスロット数と、前記タイムスロットスケジューリング周期マッピングテーブルにおけるタイムスロット数とに基づいて、前記パケットの到着時刻に対応する目標タイムスロット番号を決定することと、を含む、
ことを特徴とする請求項1に記載の方法。
【請求項3】
任意のCSQFが利用可能なエグレスインターフェイスに対して、当該エグレスインターフェイスの前記タイムスロットスケジューリング周期マッピングテーブルに記録されたタイムスロット番号と周期スケジューリングキューのキュー番号との間のマッピング関係は、
任意のタイムスロット番号に対して、当該タイムスロット番号、スケジューリングオフセット、および当該エグレスインターフェイスの周期スケジューリングキューの数に基づいて、当該タイムスロット番号に対応する周期スケジューリングキューのキュー番号を決定することによって決定され、
前記スケジューリングオフセットは、前記ネットワークノードのノード内ジッタに基づいて決定される、
ことを特徴とする請求項1に記載の方法。
【請求項4】
当該タイムスロット番号、スケジューリングオフセット、および当該エグレスインターフェイスの周期スケジューリングキューの数に基づいて、当該タイムスロット番号に対応する周期スケジューリングキューのキュー番号を決定することは、
当該タイムスロット番号と前記スケジューリングオフセットとの和を、当該エグレスインターフェイスの周期スケジューリングキューの数で割って余りを求め、第1の余り結果を得ることと、
前記第1の余り結果を当該タイムスロット番号に対応する周期スケジューリングキューのキュー番号として決定することと、を含む、
ことを特徴とする請求項3に記載の方法。
【請求項5】
前記スケジューリングオフセットは、
入力転送処理ユニットでのテストパケットの受信タイムスタンプに基づいて、前記テストパケットが出力インターフェイス処理ユニットに到着したときに、前記出力インターフェイス処理ユニットによってスケジューリングされている、当該エグレスインターフェイスの周期スケジューリングキューを決定することと、
前記出力インターフェイス処理ユニットによってスケジューリングされている当該エグレスインターフェイスの周期スケジューリングキューと、前記ネットワークノードのノード内ジッタとに基づいて、前記テストパケットの最適な周期スケジューリングキューを決定することと、
前記最適な周期スケジューリングキューと、当該エグレスインターフェイスの周期スケジューリングキューの数と、前記入力転送処理ユニットでのテストパケットの受信タイムスタンプに対応するタイムスロット番号とに基づいて、前記スケジューリングオフセットを決定することと、により決定される、
ことを特徴とする請求項3に記載の方法。
【請求項6】
前記最適な周期スケジューリングキューと、当該エグレスインターフェイスの周期スケジューリングキューの数と、前記入力転送処理ユニットでのテストパケットの受信タイムスタンプに対応するタイムスロット番号とに基づいて、前記スケジューリングオフセットを決定することは、
前記入力転送処理ユニットでのテストパケットの受信タイムスタンプに対応するタイムスロット番号を、当該エグレスインターフェイスの周期スケジューリングキューの数で割って余りを求め、第2の余り結果を得ることと、
前記最適な周期スケジューリングキューのキュー番号と、当該エグレスインターフェイスの周期スケジューリングキューの数とを加算して、加算結果を得ることと、
前記加算結果と前記第2の余り結果との差を、当該エグレスインターフェイスの周期スケジューリングキューの数で割って余りを求め、第3の余り結果を得ることと、
前記第3の余り結果を前記スケジューリングオフセットとして決定することと、を含む、
ことを特徴とする請求項5に記載の方法。
【請求項7】
前記パケットの到着時刻に対応する目標タイムスロット番号を決定した後、
前記目標タイムスロット番号に基づいて、前記パケットが属するサービスフローのタイムスロット更新テーブルを照会して、更新されたタイムスロット番号を取得することをさらに含み、
前記目標タイムスロット番号に基づいて、前記パケットのエグレスインターフェイスのタイムスロットスケジューリング周期マッピングテーブルを照会して、前記目標タイムスロット番号に対応する目標周期スケジューリングキューを決定することは、
前記更新されたタイムスロット番号に基づいて、前記パケットのエグレスインターフェイスのタイムスロットスケジューリング周期マッピングテーブルを照会して、前記パケットが到着するタイムスロットに対応する目標周期スケジューリングキューを決定することを含む、
ことを特徴とする請求項1に記載の方法。
【請求項8】
CSQFドメインのエッジノード内での決定論的フローパケットの転送プロセスは、
入力プロセスと、分配プロセスと、交換プロセスと、マッピングプロセスと、周期スケジューリングプロセスと、出力プロセスとを含み、ここで、
前記入力プロセスは、入力タイムスタンプのアンカリングを行うために用いられ、
前記分配プロセスはキャッシュ分配に用いられ、
前記交換プロセスは、ノード内の転送関連処理を行うために用いられ、
前記マッピングプロセスは、決定論的フローパケットを周期に従って周期スケジューリングキューにマッピングするために用いられ、
前記周期スケジューリングプロセスは、スケジューリング周期に従って周期スケジューリングキューをスケジューリングし、送信周期キュー内のデータを、予約された優先度が最も高いハードウェアキューに送信するために用いられ、
前記出力プロセスは、ハードウェア送信処理を行うために用いられる、
ことを特徴とする請求項1に記載の方法。
【請求項9】
前記ネットワークノードのノード内ジッタは、前記交換プロセスの処理遅延ジッタを含む、
ことを特徴とする請求項8に記載の方法。
【請求項10】
プロセッサと、機械可読記憶媒体とを含む電子デバイスであって、
前記機械可読記憶媒体には、前記プロセッサによって実行可能な機械実行可能命令が記憶され、
前記プロセッサは、請求項1~9のいずれか1項に記載の方法を実施するように、機械実行可能命令を実行するために用いられる、
ことを特徴とする電子デバイス。
【請求項11】
命令を記憶している非一時的な機械可読記憶媒体であって、前記命令はプロセッサに請求項1~9のいずれか一項に記載の方法を実施させる、
ことを特徴とする非一時的な機械可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、ネットワーク通信技術に関し、特に決定論的フロー(Deterministic Flow)伝送方法およびデバイスに関する。
【背景技術】
【0002】
決定論的ネットワーク(Deterministic Network、DetNet)は、ネットワークドメイン内でベアラサービスに決定論的サービス機能を提供することができる。これらの決定論的サービス機能には、遅延、パケット損失率などが含まれ得る。一例として、LANに基づいて実現される決定論的ネットワーク、すなわち時間に敏感なネットワーク(Time Sensitive Network、TSN)では、特に周期的キューイングおよび転送(Cyclic Queuing and Forwardingg、CQF)を使用することにより、転送層で転送パス全体の伝送遅延決定を確保する。
【0003】
ワイドエリアネットワーク上で決定論的な伝送を実現するために、業界では、CQFに基づいて、セグメントルーティングに基づいて周期指定キューイングおよび転送(Cycle Specified Queuing and Forwarding、CSQF)を実現することを提案した。
【0004】
CSQF方式にはグローバル・コントローラがあり、当該コントローラは伝送容量、インターフェイス、周期数、ノード内(intra-node)の最大ジッタなど、各ノードの情報を収集する。アプリケーションは、決定論的伝送ニーズをコントローラに申請し、コントローラが計算して十分な伝送リソースを見つけた後、アプリケーションに伝送パスを割り当て、同時にパスの情報をアプリケーションのネットワークノードに送信し、ネットワークノードは、転送が必要なパケットpacketを受信した後、パス内のノードのノード識別子、当該ノードのエグレスインターフェイス、当該ノードで指定される送信の周期のなど、パス内の各ノードの情報をpacketに追加する。データが或るノードに到着すると、当該ノードの転送レイヤは、対応するインターフェイスと周期の情報を取り出し、当該パケットを周期マッピングのキューに入れる。ノードは一定の周期で、CSQFの各キューについて、1周期につき1キューで順番に送信する。
【0005】
説明の便宜上、決定論的ネットワークで伝送される、遅延、パケット損失率などの決定論的サービス機能を持つサービスフローを決定論的フローと呼ぶ。決定論的フローとは異なる他のサービスフローについては、ソフトウェア転送デバイスやスイッチチップ又はNP(Network Processor)に基づいて実現されるハードウェア転送デバイスなど、既存の転送デバイスがベストエフォート(Best-effort)転送方式で転送することを組み合わせて、決定論的フローとは異なる他のサービスフローをベストエフォートフローと呼ぶことができる。
【発明の概要】
【0006】
本発明は、決定論的フロースケジューリングプロセスにおけるノード内ジッタを吸収する決定論的フロー伝送方法およびデバイスを提供する。
【0007】
本発明の実施形態により、ネットワークノードに適用される決定論的フロー伝送方法であって、
受信されたパケットが決定論的フローに属し、当該パケットがCSQFドメインスケジューリング情報を含まないと判定した場合、前記パケットの到着時刻に対応する目標タイムスロット番号を決定することと、
前記目標タイムスロット番号に基づいて、前記パケットのエグレスインターフェイス(egress interface)のタイムスロットスケジューリング周期マッピングテーブルを照会して、前記目標タイムスロット番号に対応する目標周期スケジューリングキューを決定することであって、前記タイムスロットスケジューリング周期マッピングテーブルは、前記ネットワークノードのノード内ジッタに基づいて決定され、タイムスロット番号と周期スケジューリングキューのキュー番号との間のマッピング関係を記録するために用いられることと、
前記パケットを前記パケットのエグレスインターフェイスの目標周期スケジューリングキューにスケジューリングすることと、を含む、
決定論的フロー伝送方法が提供される。
【0008】
本発明の実施形態により、プロセッサと、機械可読記憶媒体とを含む電子デバイスであって、前記機械可読記憶媒体には、前記プロセッサによって実行可能な機械実行可能命令が記憶され、前記プロセッサは、上記に開示された方法のステップを実施するように、機械実行可能命令を実行するために用いられる、
電子デバイスがさらに提供される。
【0009】
以上の技術的解決手段から分かるように、本実施形態では、ネットワークノードのノード内ジッタに基づいて、タイムスロット番号と周期スケジューリングキューのキュー番号との間のマッピング関係を決定して、タイムスロットスケジューリング周期マッピングテーブルを構築することにより、決定論的フロースケジューリングプロセスにおけるノード内ジッタを効果的に吸収する。
【図面の簡単な説明】
【0010】
添付の図面は、明細書に組み込まれ、本明細書の一部を構成するものであり、本発明に合致する実施形態を示し、明細書と併せて本発明の原理を説明するために使用される。
図1】本発明の実施形態にて提供される決定論的フロー伝送方法のフローを示す概略図である。
図2】User1のパケットの到着時刻およびキューに入る周期を示す概略図である。
図3】User1のパケット到着時にスケジューリングされている周期キューを示す概略図である。
図4】本発明の実施形態にて提供されるパケットの到着時刻に対応する目標タイムスロット番号を決定することの実現フローを示す概略図である。
図5】本発明の実施形態にて提供されるタイムスロット番号に対応する周期スケジューリングキューのキュー番号を決定することの実現フローを示す概略図である。
図6】本発明の実施形態にて提供されるスケジューリングオフセットを決定することの実現フローを示す概略図である。
図7】カレンダースケジューリングテーブルを示す概略図である。
図8】決定論的フローのパケット送信タイムスロットの分布を示す概略図である。
図9】タイムスロット更新テーブルを示す概略図である。
図10】本発明の実施形態にて提供される決定論的フロー伝送方法のフローを示す概略図である。
図11】本発明の実施形態にて提供されるCSQFドメインのエッジノードによる決定論的フローパケットの転送モデルにおけるノード内遅延分解を示す概略図である。
図12】本発明の実施形態にて提供される分散デバイスSwitch Processの転送モデルを示す概略図である。
図13】本発明の実施形態にて提供される電子デバイスのハードウェア構造を示す概略図である。
【発明を実施するための形態】
【0011】
例示的な実施形態をここで詳細に説明し、その例示は添付の図面に示される。以下の説明が図面に言及している場合、特に断りのない限り、異なる図面の同じ番号は、同じまたは類似の要素を示す。以下の例示的な実施形態に記載の実施形態は、本発明と一致する全ての実施形態を表すわけではない。それどころか、それらは、添付の特許請求の範囲に詳述されているような、本発明のいくつかの態様と一致する装置および方法の例に過ぎない。
【0012】
本発明で使用される用語は、特定の実施形態を説明するためのものに過ぎず、本発明を限定するものではない。本発明および添付の特許請求の範囲で使用される単数形「一種」、「前記」および「当該」は、文脈が明らかに他の意味を示さない限り、複数形も含むことを意図している。
【0013】
当業者が本発明の実施形態にて提供される技術的解決策をよりよく理解できるようにし、本発明の実施形態の上記目的、特徴および利点をより明白かつ理解できるようにするため、本発明の実施形態にて提供される技術的解決策を添付図面に関連して以下に説明する。
【0014】
本発明の実施形態にて提供される決定論的フロー伝送方法を、添付図面と併せて以下に説明する。
【0015】
図1を参照し、本発明の実施形態にて提供される決定論的フロー伝送方法のフローを示す概略図である。当該フローはネットワークノードに適用される。また、本発明の実施の形態は、ネットワークノードの具体的な構造形態を特に限定せず、例えば、ローエンドやミディアムエンドのルータなどであってもよいし、高い性能が要求され、より多くのCPUコアをサポートするハイエンドのルータ、ネットワークプロセッサ(NP:Network Process)転送に基づくハイエンドのコアルータなどであってもよく、本実施形態は、本発明の実施形態が広い適用範囲と拡張性を有することができるように、特に限定しない。
【0016】
図1に示すように、当該フローは以下のステップを含み得る。
【0017】
ステップ101、受信されたパケットが決定論的フローに属し、当該パケットがCSQFドメインスケジューリング情報を含まないと判定した場合、当該パケットの到着時刻に対応する目標タイムスロット番号を決定する。
【0018】
本実施形態において、決定論的フローに属するパケットは、決定論的プロパティ(DetProperty: Deterministic Property)を含んでいる。
【0019】
例示的に、決定論的プロパティは固定的なものではなく、現在の仕様でも具体的な指定はなく、決定論的プロパティを表現するために区別型サービスコードポイント(DSCP:Differentiated Services Code Point)などのフィールドの値を設定するなど、実際の要求に基づいて統合的に設定される。本実施形態では、決定論的プロパティを特に限定しない。ただし、決定論的プロパティが設定され、本ステップ101に適用されると、現在のパケットが決定論的プロパティを含むか否かが識別され、含んでいる場合、現在のパケットは決定論的フローに属するものとして識別される。
【0020】
本実施形態において、パケットが決定論的フローのパケットに属すると判定する場合、パケットがCSQFドメインのスケジューリング情報を含むか否かに基づいて、本ノードがCSQFドメインのエッジノードとして動作しているか否かを判定することができる。
【0021】
例示的に、CSQFドメインのスケジューリング情報は、当該パケットが、パケットのエグレスインターフェイスのどの周期スケジューリングキューにスケジューリングされる必要があるかを示すための情報を含み得る。
【0022】
本実施形態において、受信されたパケットが決定論的フローのパケットに属し且つパケットがCSQFドメインのスケジューリング情報を含まないと判定した場合、本ノードがCSQFドメインのエッジノードとして動作していると判定してもよい。
【0023】
本実施形態では、従来のCQSF方式で、決定論的フローのデータのエンドツーエンドの伝送について、2スケジューリング周期(2Tと表し得る)以内のジッタを実現するため、特定のユーザの決定論的フローは、特定のノードにおいて常に指定された周期で転送されるが、異なるサービスは、異なるパケット送信周期を有し、例えば、テレマティクスの周期は150us、産業制御の周期は250usであることを考慮すると、このような方法で決定論的フローをスケジューリングすると、周期的決定論的フローの周期幅(cycle width)がスケジューリング周期の完全な周期(large circulation)の整数倍でない場合に、かなりの量のジッタが発生する。
【0024】
例えば、ユーザUser1が150usの周期でパケットを送信し、転送ノードが周期スケジューリング・転送のために長さT(Tの長さは10us)のタイムスライスで8つの周期(Cycle0~7)に分割され、8つの周期スケジューリングキューQueue0~7の実現に対応するとする。CSQFの実現によると、図2に示すように、特定のノードにおいて、特定のユーザは、常に指定された周期で転送され、図2に示すように、User1は、CSQFドメインのエッジノードにおいて、Cycle0で転送される、すなわちキュー0に入るように固定されているとする。同時に、1つ目のパケットが到着するときに、スケジューリングされているのは、1つ前の完全な周期のCycle7であるとする。1つ目のパケットがキュー0に入った時点、すなわち、1つ目のパケットが到着した時点で、前のラウンドのCycle7に対応するキューがスケジューリングされており、1周期後にQueue0がスケジューリングされ、150us後に、User1の2つ目のパケットを受信し、この時点でCycle6に対応するキューがスケジューリングされているが、Queue0に入るように指定されているため、1つ目のパケットに対して、2つ目のパケットは1周期分のスケジューリングジッタを導入した。同様に、さらに150us後に3つ目のパケットが到着したときに、ちょうどCycle5がスケジューリングされているため、2周期のジッタが発生する。図3に示すように、パケット1から8が到着したときにスケジューリングされている周期番号の対応関係から、最大7周期のジッタがあることが分かる。
【0025】
このように、特定のユーザを固定のあるキューに入ることを指定する方法は、単純ではあるものの、ユーザのパケット送信周期が完全な周期の整数倍でなく且つスケジューリング周期との公約数を有しない場合には、d(キューの数)-1周期のジッタが導入されることになる。従って、CSQFドメインにおいてCSQFがエンドツーエンドで2周期のジッタを保証できるとしても、エンドノードによって導入されるジッタは無視できるものではない。
【0026】
また、実際のシナリオでは、決定論的フローのパケットを受信するCSQFドメインのエッジノード内では、パケットの受信とCSQFスケジューリング・転送を実行するコンポーネントとの間に大きな遅延ジッタ(20us~50usに達する可能性がある)が存在することが考えられる。
【0027】
例示的に、ネットワークノードのノード内遅延ジッタの分析は、CSQFドメインのエッジノードによる決定論的フローパケットの転送モデルに基づいて決定されてもよく、これについては図11と併せて以下に例示するので、ここでは説明を省略する。
【0028】
従って、上記の決定論的フローエッジアクセスによって導入される大きなジッタの問題を解決するために、CSQFドメインのエッジノードによって受信される決定論的フローパケットに対して、特定のユーザの決定論的フローは、特定のノードにおいて常に指定された周期で転送される方式に従ってスケジューリングするのではなく、代わりに、決定論的フローパケットの到着時刻に基づいて対応するタイムスロット番号を決定し(目標タイムスロット番号と呼ばれ得る)、当該タイムスロット番号に基づいて、決定論的フローパケットの周期スケジューリングキューを決定することができる。
【0029】
本実施形態において、ネットワークノードがパケットの到着時刻に対応する目標タイムスロット番号をどのように決定するかは、後述の図4に例を挙げて説明する実現フローを参照できるので、ここでは説明を省略する。
【0030】
本実施形態において、ネットワークノードがCSQFドメインのエッジノードとして決定論的フローパケットを受信する状況は、以下を含み得る。
【0031】
ネットワークノードがCSQFドメインにおける、非決定論的ネットワークドメインに接続するエッジノードであり、決定論的フローパケットを受信する。
【0032】
または、ネットワークノードは、広域決定論的ネットワークにおける、非広域決定論的ネットワーク(TSNなど)を接続するエッジノードであり、決定論的フローパケットを受信する。
【0033】
または、ネットワークノードは広域決定論的ネットワーク内の超長パスCSQF転送中継ノードであり、決定論的フローパケットを受信する。
【0034】
ここで、CSQF超長パスシナリオでは、CSQFドメインのエッジノードがサポートするラベル数に対応するホップ数が、転送パス中のある中間ノードに対応すると、当該中間ノードの次ホップのノードについては、受信された決定論的フローパケットにラベル情報がないため、ラベル情報に基づいて受信された決定論的フローパケットの周期スケジューリングキューを決定することができず、このときに、当該次ホップのノードは広域決定論的ネットワーク超長パスCSQF転送中継ノードと呼ばれ得る。
【0035】
同様に、広域決定論的ネットワーク超長パスCSQF転送中継ノードのラベル数のカバー範囲外の最初の転送ノードは、新しい広域決定論的ネットワーク超長パスCSQF転送中継ノードとして機能することもできる。
【0036】
ステップ102、目標タイムスロット番号に基づいて、パケットのエグレスインターフェイスのタイムスロットスケジューリング周期マッピングテーブルを照会して、目標タイムスロット番号に対応する目標周期スケジューリングキューを決定する。
【0037】
本実施形態において、任意のCSQFが利用可能なエグレスインターフェイスに対して、タイムスロット番号と周期スケジューリングキューのキュー番号との間のマッピング関係を記録するためのタイムスロットスケジューリング周期マッピングテーブルが、入力インターフェイス処理ユニットに実装されてもよく、ここで、タイムスロット番号と周期スケジューリングキューのキュー番号との間のマッピング関係を確立するプロセスにおいて、ネットワークノードのノード内ジッタが考慮されてもよく、これにより、当該マッピング関係を通じて決定論的フロースケジューリングプロセスにおけるネットワークノードのノード内ジッタを吸収する。
【0038】
本実施形態において、タイムスロット番号と周期スケジューリングキューのキュー番号との対応関係の確立、すなわち、タイムスロットスケジューリング周期マッピングテーブルの構築プロセスは、後述の図5に例を挙げて説明する実現フローを参照できるので、ここでは説明を省略する。
【0039】
本実施形態において、ステップ101で決定された目標タイムスロット番号に基づいて、パケットのエグレスインターフェイスのタイムスロットスケジューリング周期マッピングテーブルを照会して、目標タイムスロット番号にマッピングされる周期スケジューリングキューのキュー番号を決定し、当該周期スケジューリングキューのキュー番号によって特定される周期スケジューリングキューを、目標タイムスロット番号に対応する周期スケジューリングキュー(目標周期スケジューリングキューと呼ばれ得る)として決定してもよい。
【0040】
ステップ103、パケットをパケットのエグレスインターフェイスの目標周期スケジューリングキューにスケジューリングする。
【0041】
本実施形態において、ステップ101~102の方法で目標周期スケジューリングキューを決定した場合、当該パケットをパケットのエグレスインターフェイスの目標周期スケジューリングキューにスケジューリングしてもよい。
【0042】
図1に示す方法は、ネットワークノードのノード内ジッタに基づいて、タイムスロット番号と周期スケジューリングキューのキュー番号との間のマッピング関係を決定することにより、タイムスロットスケジューリング周期マッピングテーブルを構築するものであり、これにより、ネットワークノードは、受信したパケットが決定論的フローに属し且つ当該パケットがCSQFドメインスケジューリング情報を含まないと判定した場合、当該パケットの到達時刻に対応する目標タイムスロット番号に基づいて、当該パケットのエグレスインターフェイスのタイムスロットスケジューリング周期マッピングテーブルを照会して、当該パケットの到達時刻に対応する目標周期スケジューリングキューを決定し、すなわち、特定のユーザの決定論的フローは、特定のノードにおいて常に指定された周期で転送される方式に従ってスケジューリングするのではなく、代わりに、決定論的フローパケットの到着時刻に基づいてパケットの周期スケジューリングキューを決定することで、決定論的フロースケジューリングプロセスにおけるノード内ジッタを効果的に吸収する。
【0043】
これで図1に示すフローは完了した。
【0044】
図4に示すフローにより、パケットの到着時刻に対応する目標タイムスロット番号を決定する実現フローについて以下に説明する。
【0045】
図4を参照し、本発明の実施形態にて提供されるパケットの到着時刻に対応する目標タイムスロット番号を決定することの実現フローを示す概略図である。
【0046】
図4に示すように、当該フローは以下のステップを含み得る。
【0047】
ステップ401、前記パケットの受信タイムスタンプを取得する。
【0048】
本実施形態において、パケットの受信タイムスタンプは、ハードウェアが、受信したパケットに付けた受信タイムスタンプであってもよく、ハードウェアがタイムスタンプをサポートしていないシナリオでは、転送処理エントリにおいて本ノードのシステムクロックをパケットの受信タイムスタンプとして取得してもよい。
【0049】
ステップ402、当該パケットの受信タイムスタンプをタイムスロット数に変換する。
【0050】
ステップ403、当該タイムスロット数と、タイムスロットスケジューリング周期マッピングテーブルにおけるタイムスロット数とに基づいて、パケットの到着時刻に対応する目標タイムスロット番号を決定する。
【0051】
オプションで、パケットの到着時刻に対応する目標タイムスロット番号は、パケットの受信タイムスタンプを変換して得られたタイムスロット数を、タイムスロットスケジューリング周期マッピングテーブルにおけるタイムスロット数で割って余りを求めることによって得ることができる。
【0052】
例えば、タイムスロットスケジューリング周期マッピングテーブルにおけるタイムスロット数が256であり、パケットの受信タイムスタンプを変換して得られたタイムスロット数がTimeSlotNumであるとすると、
TimeSlotNum_Remainder=(TimeSlotNum&0xFF)、または(TimeSlotNum%256)となる。
【0053】
ここで、TimeSlotNum_Remainderはパケットの到着時刻に対応する目標タイムスロット番号である。
【0054】
例示的に、TimeSlotNum_Remainderをキーワードとしてタイムスロットスケジューリング周期マッピングテーブルを照会して、対応する周期スケジューリングキューのキュー番号を取得してもよく、当該周期スケジューリングキューのキュー番号は、当該ネットワークノードにおける、パケットが入る必要のある周期スケジューリングキューのキュー番号である。
【0055】
これで図4に示すフローは完了した。
【0056】
図5に示すフローにより、タイムスロット番号と周期スケジューリングキューのキュー番号との間のマッピング関係を決定する実現フローについて以下に説明する。
【0057】
実施形態において、任意のCSQFが利用可能なエグレスインターフェイスに対して、当該エグレスインターフェイスのタイムスロットスケジューリング周期マッピングテーブルに記録されたタイムスロット番号と周期スケジューリングキューのキュー番号との間のマッピング関係は、以下のように決定され得る。
【0058】
任意のタイムスロット番号に対して、当該タイムスロット番号、スケジューリングオフセット、および当該エグレスインターフェイスの周期スケジューリングキューの数に基づいて、当該タイムスロット番号に対応する周期スケジューリングキューのキュー番号を決定する。
【0059】
ここで、スケジューリングオフセットは、ネットワークノードのノード内ジッタに基づいて決定される。
【0060】
例示的に、本実施形態において、タイムスロットスケジューリング周期マッピングテーブルは、カレンダースケジューリングテーブル(calendar)とも呼ばれ得る。
【0061】
オプションで、カレンダースケジューリングテーブルは、以下の情報および特徴を含み得る。
1、タイムスロット番号(Calendar_Slot)
2、当該タイムスロット番号にマッピングする周期スケジューリングキューのキュー番号(Calendar_Que_No)
【0062】
ここで、カレンダースケジューリングテーブルのタイムスロット数は、周期スケジューリングキューの数の整数倍である。例えば、周期スケジューリングキューの数が8の場合、カレンダースケジューリングテーブルのタイムスロット数は8N(Nは正の整数)であり、例えば、カレンダースケジューリングテーブルのタイムスロット数は256である。
【0063】
図5を参照し、本発明の実施形態にて提供されるタイムスロット番号に対応する周期スケジューリングキューのキュー番号を決定することの実現フローを示す概略図である。
【0064】
図5に示すように、当該フローは以下のステップを含み得る。
【0065】
ステップ501、任意のタイムスロット番号に対して、当該タイムスロット番号とスケジューリングオフセットとの和を、当該エグレスインターフェイスの周期スケジューリングキューの数で割って余りを求め、第1の余り結果を得る。
【0066】
ステップ502、第1の余り結果を当該タイムスロット番号に対応する周期スケジューリングキューのキュー番号として決定する。
【0067】
本実施形態において、任意のタイムスロット番号に対して、タイムスロット番号とスケジューリングオフセットとの和に基づいて、当該タイムスロット番号に対応する周期スケジューリングキューを決定してもよい。タイムスロット番号とスケジューリングオフセットとの和は、周期スケジューリングキューの数よりも大きい場合があるので、当該タイムスロット番号とスケジューリングオフセットとの和を、周期スケジューリングキューの数で割って余りを求め、余り結果(すなわち、第1の余り結果)を当該タイムスロット番号に対応する周期スケジューリングキューのキュー番号として決定してもよい。
【0068】
例示的に、タイムスロット番号に対応する周期スケジューリングキューのキュー番号Calendar_Que_Noは以下のように決定され得る。
Calendar_Que_No=(Calendar_Slot+Schedule_Offset)%Que_Num
【0069】
ここで、Calendar_Slotはタイムスロット番号、Schedule_Offsetはスケジューリングオフセット、Que_Numは周期スケジューリングキューの数である。
【0070】
本実施形態において、スケジューリングオフセットは、タイムスロット0において入力転送処理ユニットによって受信され、本ノードのCSQF周期スケジューリングキューに入ったパケットに対応する周期の、本ノードのCSQFの最初の周期に対するオフセットを表現するために用いられ得、その決定方法については後述の図6に例を挙げて説明する実現フローを参照できるので、ここでは説明を省略する。
【0071】
これで図5に示すフローは完了した。
【0072】
図6に示すフローにより、スケジューリングオフセットを決定する実現フローについて以下に説明する。
【0073】
図6を参照し、本発明の実施形態にて提供されるスケジューリングオフセットを決定することの実現フローを示す概略図である。
【0074】
図6に示すように、任意のCSQFが利用可能なエグレスインターフェイスに対して、スケジューリングオフセットを決定するフローは以下を含み得る。
【0075】
ステップ601、入力転送処理ユニットでのテストパケットの受信タイムスタンプに基づいて、テストパケットが出力インターフェイス処理ユニットに到着したときに、前記出力インターフェイス処理ユニットによってスケジューリングされている、当該エグレスインターフェイスの周期スケジューリングキューを決定する。
【0076】
本実施形態では、周期測定および較正方法を利用して、テストパケットが入力転送処理ユニットによって送信され、出力インターフェイス処理ユニットに到着したときに、出力インターフェイス処理ユニットによってスケジューリングされている、当該エグレスインターフェイスの周期スケジューリングキューを決定してもよい。
【0077】
ステップ602、出力インターフェイス処理ユニットによってスケジューリングされている当該エグレスインターフェイスの周期スケジューリングキューと、ネットワークノードのノード内ジッタとに基づいて、テストパケットの最適な周期スケジューリングキューを決定する。
【0078】
本実施形態において、理想的には、ステップ601で決定された、テストパケットが出力インターフェイス処理ユニットに到着したときに、前記出力インターフェイス処理ユニットによってスケジューリングされている、当該エグレスインターフェイスの周期スケジューリングキューの次の周期スケジューリングキューが、テストパケットが入るのに最も適した周期スケジューリングキューである。
【0079】
しかし、テストパケットが入力転送処理ユニットから送信され、出力インターフェイス処理ユニットが当該テストパケットをキューにスケジューリングする過程では、ある程度の遅延ジッタ(すなわち、上述したネットワークノードのノード内ジッタ)が存在するため、当該遅延ジッタに基づいてテストパケットが入る必要のある周期スケジューリングキューをオフセットすることにより、テストパケットの最適な周期スケジューリングキューを決定してもよい。
【0080】
例えば、テストパケットが出力インターフェイス処理ユニットに到着したときに、前記出力インターフェイス処理ユニットによってスケジューリングされている当該エグレスインターフェイスの周期スケジューリングキューがキュー2であり、上述した遅延ジッタが30usであり、1つのタイムスロットが10usであるとすると、キュー2の次の周期スケジューリングキュー(すなわち、キュー3)を3キュー分オフセットした後の周期スケジューリングキュー(キュー6)を、当該テストパケットの最適な周期スケジューリングキューとして決定してもよい。
【0081】
ステップ603、最適な周期スケジューリングキューと、当該エグレスインターフェイスの周期スケジューリングキューの数と、入力転送処理ユニットでのテストパケットの受信タイムスタンプに対応するタイムスロット番号とに基づいて、スケジューリングオフセットを決定する。
【0082】
本実施形態において、上記ステップに基づき、入力転送処理ユニットでのテストパケットの受信タイムスタンプに対応するタイムスロット番号に対応する最適な周期スケジューリングキューを決定する、すなわち、1つのタイムスロット番号と最適な周期スケジューリングキューとの対応関係を得ることができる。
【0083】
1つのタイムスロットは1つのスケジューリング周期に対応するため、当該対応関係と、当該タイムスロット番号とタイムスロット0との間のオフセットとに基づいて、タイムスロット0に対応する最適な周期スケジューリングキューを決定することができ、当該最適な周期スケジューリングキューのキュー番号を上述のスケジューリングオフセットとすることができる。
【0084】
本実施形態では、スケジューリングオフセットを決定するとき、テストパケットは、CPUによって構築され、内部処理チャネルを介して入力転送処理ユニットにパススルーされてもよく、入力転送処理ユニットは、当該テストパケットを受信したシステム時間に基づいて、テストパケットに受信タイムスタンプを付け、当該受信タイムスタンプに基づいて、テストパケットが出力インターフェイス処理ユニットに到達したときに、前記出力インターフェイス処理ユニットによってスケジューリングされている当該テストパケットのエグレスインターフェイスの周期スケジューリングキューを決定してもよい。
【0085】
または、テストパケットは、入力転送処理ユニットによって構築されてもよく、例えば、入力転送処理ユニットは、テストコマンドの受信時にテストパケットを構築してもよく、この場合、入力転送処理ユニットは、テストパケットの構築完了時のシステム時間に基づいて、当該テストパケットに受信タイムスタンプを付け、当該受信タイムスタンプに基づいて、当該テストパケットが出力インターフェイス処理ユニットに到着したときに、前記出力インターフェイス処理ユニットによってスケジューリングされている当該テストパケットのエグレスインターフェイスの周期スケジューリングキューを決定してもよい。
【0086】
なお、入力転送処理ユニットがテストパケットを受信した後、または、テストパケットを構築した後、決定論的フローパケットがCSQFドメインのエッジノードの入力転送処理ユニットに到着した後の処理方式と一致する処理方式でテストパケットを転送してもよく、CSQFドメインのエッジノードによる決定論的フローパケットの転送処理のシミュレーションを実現する。
【0087】
また、決定性フローパケットの実際の転送処理において、決定性フローパケットがCSQFドメインのエッジノードに到着したときに、入力インターフェイス処理ユニットが当該パケットにタイムスタンプを付け、当該受信タイムスタンプに基づいて対応するタイムスロット番号(すなわち、上述した目標タイムスロット番号)を決定し、上述した方法で周期スケジューリングキューとのマッピングを行うが、通常、パケットが入力インターフェイス処理ユニットを経由して入力転送処理ユニットに到着する遅延は非常に小さく、ジッタも非常に小さいと考えられるため、上述した方法で行われたテストから得られたスケジューリングオフセットは、ノード内ジッタを比較的正確に吸収することができる。
【0088】
例示的に、上述のテストの精度をさらに向上させるために、テストパケットの受信タイムスタンプについて、テストパケットが入力転送処理ユニットによって受信されたシステム時間、または、テストパケットの構築完了時のシステム時間を基に、一定の時間(パケットが入力インターフェイス処理ユニットを通過してから入力転送処理ユニットに到達するまでの遅延に対応する)を減算することによって、テストパケットの受信タイムスタンプを得てもよい。
【0089】
一例において、最適な周期スケジューリングキューと、当該エグレスインターフェイスの周期スケジューリングキューの数と、入力転送処理ユニットでのテストパケットの受信タイムスタンプに対応するタイムスロット番号とに基づいて、スケジューリングオフセットを決定することは、
入力転送処理ユニットでのテストパケットの受信タイムスタンプに対応するタイムスロット番号を、当該エグレスインターフェイスの周期スケジューリングキューの数で割って余りを求め、第2の余り結果を得ることと、
最適な周期スケジューリングキューのキュー番号と、当該エグレスインターフェイスの周期スケジューリングキューの数とを加算して、加算結果を得ることと、
加算結果と第2の余り結果との差を、当該エグレスインターフェイスの周期スケジューリングキューの数で割って余りを求め、第3の余り結果を得ることと、
第3の余り結果をスケジューリングオフセットとして決定することと、を含む。
【0090】
例示的に、入力転送処理ユニットでのテストパケットの受信タイムスタンプに対応するタイムスロット番号は、入力転送処理ユニットでのテストパケットの受信タイムスタンプに対応するタイムスロット番号とタイムスロット0とのタイムスロット差であるため、当該タイムスロット差は、テストパケットの最適な周期スケジューリングキューのキュー番号とタイムスロット0の最適な周期スケジューリングキューのキュー番号との差と同じはずである。
【0091】
例えば、入力転送処理ユニットでのテストパケットの受信タイムスタンプがタイムスロットnに対応し、テストパケットの最適な周期スケジューリングキューのキュー番号をRQとすると、タイムスロット0に対応する最適な周期スケジューリングキューのキュー番号は、周期スケジューリングキューRQがn周期後退した後の周期スケジューリングキューとなる。
【0092】
nが周期数より大きい場合があることが考えられるため、nを当該エグレスインターフェイス周期スケジューリングキューの数で割って余りを求め、余り結果(すなわち、第2の余り結果)を得、テストパケットの最適な周期スケジューリングキューRQを第2の余り結果周期後退させてもよい。
【0093】
また、RQが第2の余り結果よりも小さい場合もあることが考えられるため、RQを後退させるときに、まず、当該エグレスインターフェイスの周期スケジューリングキューの数を加算してから、第2の余り結果周期後退させ、得られた周期スケジューリングキューのキュー番号を、当該エグレスインターフェイスの周期スケジューリングキューの数で割って余りを求め、当該余り結果(すなわち、第3の余り結果)がスケジューリングオフセットとなる。
【0094】
例示的に、スケジューリングオフセットSchedule_Offsetは、以下のポリシーによって決定され得る。
Schedule_Offset=(RQ+Que_Num-(n%Que_Num))%Que_Num
【0095】
例えば、入力転送処理ユニットでのテストパケットの受信タイムスタンプがxxx433usであり、テストパケットが出力インターフェイス処理ユニットに到着したときに、前記出力インターフェイス処理ユニットによってスケジューリングされている当該テストパケットのエグレスインターフェイスの周期スケジューリングキューはキュー2であるとすると、キュー3は、理論的にはテストパケットが入るのに最も適したキューであるが、テストパケットは入力転送処理ユニットから送信されるため、出力インターフェイス処理ユニットがテストパケットをキューに入れるまで、ある程度の遅延ジッタが存在し、30us(1つのタイムスロットを10usとする)とすると、テストパケットの最適な周期スケジューリングキューは、キュー2を30us(3周期)オフセットした後のキュー、すなわちキュー6(すなわちRQ=6)である。
【0096】
これに基づき、テストパケットの送信タイムスタンプに対応するタイムスロット番号43は、周期スケジューリングキュー6とマッピングされていることが分かる。タイムスロット番号43とタイムスロット0とのタイムスロット差は43であるため、タイムスロット0に対応する最適な周期スケジューリングキューのキュー番号、すなわちSchedule_Offsetの値は、以下のポリシーによって算出することができる(テストパケットのエグレスインターフェイスの周期スケジューリングキューの数が15であるとする)。
Schedule_Offset=(RQ+Que_Num-(n%Que_Num))%Que_Num=(6+15-(43%15))%15=8
【0097】
これで図6に示すフローは完了した。
【0098】
さらに、複数の決定論的フローアクセスが存在する場合、複数のフローが同じタイムスロットに到着し、トラヒック衝突が発生する可能性があることが想定される。
【0099】
トラヒック衝突により、一部の決定論的フローは最も近いタイムスロットにスケジューリングされることができず、近隣のスケジューリングタイムスロットに調整される必要がある(ジッタ要件が満たされる限り)ことがある。従って、各決定論的フローの到着時刻に対応するタイムスロット番号を調整するために、タイムスロット更新テーブルが必要となる。
【0100】
図7および図8を参照し、周期スケジューリングキューの数が10であり、タイムスロットスケジューリング周期テーブル(Calendarを例とする)におけるタイムスロット数が100であり、図8のユーザUser1は、730usの周期(すなわち、73個のスケジューリング周期)でパケットを送信し、当該ユーザの最初のパケットの到着時刻に対応するタイムスロット番号は53であり、2つ目のパケットの到着時刻に対応するタイムスロット番号は26であるとする。
【0101】
当該データフローのエグレスインターフェイスのタイムスロット72と74との間にトラヒック衝突が存在するが、タイムスロット73の使用率が非常に低い(コントローラまたは手動監視によって決定され得る)と仮定すると、図9のタイムスロットテーブルは、到着時刻に対応するタイムスロット番号が72および74であるパケットのタイムスロット番号を73に更新するように、すなわち、当該パケットをタイムスロット73に対応する周期スケジューリングキューにスケジューリングするように、更新され得る。
【0102】
図8に示すように、10個のCSQF周期キュー、100個のタイムスロットを有するカレンダーを実現するとする。図13のユーザUSER1のデータフローを例にとると、周期間隔が73個のタイムスロット(730us)であり、当該ユーザの最初のパケットはタイムスロット53、2つ目のパケットはタイムスロット26......にある。CSQFの同一インターフェイスのタイムスロット72と74が衝突しており、タイムスロット73はほとんど使用されていない(またはまったく使用されていない)とすると、タイムスロット更新テーブルは図9のように設計され、タイムスロット72と74にあるはずのパケットをタイムスロット73に対応する転送キューにスケジューリングする。
【0103】
図9に示すように、Calendar_Slotはパケットの受信タイムスタンプに基づいて算出されたタイムスロット番号であり、Calendar_Slot_Replaceは更新されたタイムスロット番号である。
【0104】
CSQFドメインにおける、非決定論的ネットワークドメインに接続するエッジノードに対して、決定論的フローが当該ノードに到着する前に、非決定論的ネットワークドメインを横断する必要がある場合があり、その結果、同一の決定論的フローが当該ノードに到着するタイムスロットに若干のジッタが存在し、このようなジッタを除去し、入力される決定論的フローの整形を実現するために、同一の決定論的フローのパケットに対して、当該ノードに到着する到着時刻に対応するタイムスロット番号が隣接するいくつかのタイムスロット番号である場合に、同一のタイムスロット番号にマッピングするように更新してもよい。
【0105】
例えば、ある決定論的フローに対して、決定論的フローの到着時刻に対応するタイムスロット番号は、0、1、および2を含む場合、これらはすべて、タイムスロット番号2にマッピングしてもよく、決定論的フローの整形を実現する。
【0106】
これに対応して、図10を参照し、決定論的フロー伝送方法のフローは図10に示すものであってもよい。
【0107】
図10に示すように、当該フローは以下のステップを含み得る。
【0108】
ステップ1001、受信されたパケットが決定論的フローに属し、当該パケットがCSQFドメインスケジューリング情報を含まないと判定した場合、当該パケットの到着時刻に対応する目標タイムスロット番号を決定する。
【0109】
ステップ1002、当該目標タイムスロット番号に基づいて、前記パケットが属するサービスフローのタイムスロット更新テーブルを照会して、更新されたタイムスロット番号を取得する。
【0110】
ステップ1003、更新されたタイムスロット番号に基づいて、パケットのエグレスインターフェイスのタイムスロットスケジューリング周期マッピングテーブルを照会して、パケットが到着するタイムスロットに対応する目標周期スケジューリングキューを決定する。
【0111】
ステップ1004、パケットをパケットのエグレスインターフェイスの目標周期スケジューリングキューにスケジューリングする。
【0112】
タイムスロット更新テーブルを生成することにより、CSQFドメインのエッジノードにおける決定論的フローのスケジューリングのタイムスロット衝突の問題が効果的に解決され、CSQFの適応性が向上し、同一パス上の決定論的フローの伝送容量(carring capacity)を増加させることができ、さらに、タイムスロット更新テーブルに基づいて決定論的フローの整形を実現することができる。
【0113】
なお、広域決定論的ネットワークにおける、非広域決定論的ネットワーク(TSNなど)を接続するエッジノード、または広域決定論的ネットワーク超長パスCSQF転送中継ノードに対して、受信された決定論的フローはいずれも決定論的ドメインから送られてきたものであり、通常、決定論的フローを整形する必要はなく、あるタイムスロットがほとんど使われず、他のタイムスロットが使われすぎるという状況もない。また、広域決定論的ネットワークにおける、非広域決定論的ネットワーク(TSNなど)を接続するエッジノード、または広域決定論的ネットワーク超長パスCSQF転送中継ノードに対して、通常、処理される決定論的フローの数は多く、決定論的フローごとにタイムスロット更新テーブルを設定・配布することは、膨大なリソースを消費することになる。従って、実際の適用では、広域決定論的ネットワークにおける、非広域決定論的ネットワーク(TSNなど)を接続するエッジノード、または広域決定論的ネットワーク超長パスCSQF転送中継ノードに対して、タイムスロット更新テーブルの設定・配布は行わなくてもよい。
【0114】
例示的に、CSQFドメインにおける、非決定論的ネットワークを接続するエッジノードにおいて、各決定論的フローに対して1つのタイムスロット更新テーブルを配布してもよい。
【0115】
図11に示すフローにより、CSQFドメインのエッジノードによる決定論的フローパケットの転送モデルについて以下に説明する。
【0116】
図11を参照し、本発明の実施形態にて提供されるCSQFドメインのエッジノードによる決定論的フローパケットの転送モデルにおけるノード内遅延分解を示す概略図である。
【0117】
図11に示すように、CSQFドメインのエッジノード内での決定論的フローパケットの転送プロセスは、
入力プロセスと、分配プロセスと、交換プロセスと、マッピングプロセスと、周期スケジューリングプロセスと、出力プロセスとを含む。
【0118】
入力プロセス(Input Process)は、入力タイムスタンプのアンカリングを行うために用いられる。
【0119】
例示的に、入力プロセスは、主に、入力タイムスタンプのアンカリングを実現するハードウェアコントローラの機能である。
【0120】
分配プロセス(Distributing)はキャッシュ分配に用いられる。
【0121】
例示的に、分配プロセスは、ハードウェアコントローラによって、またはソフトウェアによって実現され得る。
【0122】
交換プロセス(Switch Process)は、ノード内の転送関連処理を行うために用いられる。
【0123】
例示的に、交換プロセスは、NPのマイクロコードがハードウェアユニットと協働してパイプラインを実現するソフトウェア処理を含み得る。分散デバイスの場合、さらに、入力インターフェイスボード→ネットワークボード→出力インターフェイスボードの交換処理を含み得、具体的な実施方法については、後述の図12に例を挙げて説明する実施フローを参照できるので、ここでは説明を省略する。
【0124】
マッピングプロセス(Mapping)は、決定論的フローパケットを周期に従って周期スケジューリングキューにマッピングするために用いられる。
【0125】
例示的に、マッピングプロセスは、ソフトウェア(またはNPのマイクロコード)またはフィールドプログラマブルゲートアレイ(FPGA:Field Programmable Gate Arrays)の関与を必要とし、実現に柔軟性を持たせるためには、プログラマビリティが求められる。
【0126】
周期スケジューリングプロセス(Scheduled by Cycle)は、スケジューリング周期に従って周期スケジューリングキューをスケジューリングし、送信周期キュー内のデータを、予約された優先度が最も高いハードウェアキューに送信するために用いられる。
【0127】
出力プロセス(Output Process)は、ハードウェア送信処理を行うために用いられる。
【0128】
例示的に、出力プロセスは、予約された優先度が最も高いハードウェアキューを、決定論的フローを送信するためのハードウェアキューとすることによって、出力タイムスタンプを付けてもよい。
【0129】
図11に示す多段階の遅延分解では、Switch Processの処理遅延は不確定であり、ノード内キューイングに関連しては、20us~50usの差が生じる可能性がある。
【0130】
分散デバイスのSwitch Process処理を例にとる。
【0131】
図12を参照し、本発明の実施形態にて提供される分散デバイスSwitch Processの転送モデルを示す概略図であり、図12に示すように、Switch Processの処理遅延は、入力転送処理ユニット(例として図12のIngress NP)、内部交換ユニット(例として図12のFabric)、出力転送処理ユニット(例として図12のEgress NP)の処理遅延を含み得、そのうちのジッタが重畳して20us以上に達する場合がある。
【0132】
図12に示す実現では、MappingとSchedule by Cycleの2つの段階が出力インターフェイス処理ユニット(例として図12のFPGA2)によって実行されるため、パケットが入力インターフェイス処理ユニット(例として図12のFPGA1)に入力されてから、出力インターフェイス処理ユニットがMapping処理を実行するまでの間に大きな不確定な遅延ジッタ(すなわち、上述のノード内ジッタ)が存在する。
【0133】
例示的に、FPGA1とFPGA2は異なるFPGAであっても、同じFPGAであってもよい(トラヒックがループバックされるシナリオや、複数の外部ポートが同一のFPGAによって実現されるシナリオなど)。
【0134】
ノード内ジッタを除去するために、上述の方法でテストしてスケジューリングオフセットを決定してもよい。
【0135】
例えば、図12に示す実現を例にとると、スケジューリングオフセットの決定を行う場合、Ingress NPでのテストパケットの受信タイムスタンプに基づいて、テストパケットがFPGA2に到着したときにFPGA2によってスケジューリングされている当該テストパケットのエグレスインターフェイスの周期スケジューリングキューを決定し、当該周期スケジューリングキューとノード内ジッタ(例えば30us)とに基づいて、テストパケットの最適な周期スケジューリングキューを決定し、当該最適な周期スケジューリングキューのキュー番号と、Ingress NPでのテストパケットの受信タイムスタンプに対応するタイムスロット番号とに基づいて、上記方法に従い、スケジューリングオフセットを決定してもよい。
【0136】
以上、本発明の実施形態にて提供される方法の説明が完了した。本発明の実施形態にて提供される電子デバイスを以下に説明する。
【0137】
図13を参照し、本発明の実施形態にて提供される電子デバイスのハードウェア構造を示す概略図であり、図13に示すように、当該電子デバイスはプロセッサと、機械可読記憶媒体とを含み、機械可読記憶媒体には、前記プロセッサによって実行可能な機械実行可能命令が記憶され、前記プロセッサは、上記に開示された方法のステップを実施するように、機械実行可能命令を実行するために用いられる。
【0138】
具体的に、プロセッサは機械実行可能命令を実行することで、
受信されたパケットが決定論的フローに属し、当該パケットがCSQFドメインスケジューリング情報を含まないと判定した場合、前記パケットの到着時刻に対応する目標タイムスロット番号を決定することと、
前記目標タイムスロット番号に基づいて、前記パケットのエグレスインターフェイスのタイムスロットスケジューリング周期マッピングテーブルを照会して、前記目標タイムスロット番号に対応する目標周期スケジューリングキューを決定することであって、前記タイムスロットスケジューリング周期マッピングテーブルは、前記ネットワークノードのノード内ジッタに基づいて決定され、タイムスロット番号と周期スケジューリングキューのキュー番号との間のマッピング関係を記録するために用いられることと、
前記パケットを前記パケットのエグレスインターフェイスの目標周期スケジューリングキューにスケジューリングすることと、が実現される。
【0139】
一例において、プロセッサは機械実行可能命令を実行することで、
前記パケットの受信タイムスタンプを取得することと、
前記パケットの受信タイムスタンプをタイムスロット数に変換することと、
前記タイムスロット数と、前記タイムスロットスケジューリング周期マッピングテーブルにおけるタイムスロット数とに基づいて、前記パケットの到着時刻に対応する目標タイムスロット番号を決定することと、が実現される。
【0140】
一例において、プロセッサは機械実行可能命令を実行することで、
任意のCSQFが利用可能なエグレスインターフェイスに対して、当該エグレスインターフェイスの前記タイムスロットスケジューリング周期マッピングテーブルに記録されたタイムスロット番号と周期スケジューリングキューのキュー番号との間のマッピング関係は、
任意のタイムスロット番号に対して、当該タイムスロット番号、スケジューリングオフセット、および当該エグレスインターフェイスの周期スケジューリングキューの数に基づいて、当該タイムスロット番号に対応する周期スケジューリングキューのキュー番号を決定することによって決定され、
前記スケジューリングオフセットは、前記ネットワークノードのノード内ジッタに基づいて決定される、ことが実現される。
【0141】
一例において、プロセッサは機械実行可能命令を実行することで、
当該タイムスロット番号と前記スケジューリングオフセットとの和を、当該エグレスインターフェイスの周期スケジューリングキューの数で割って余りを求め、第1の余り結果を得ることと、
前記第1の余り結果を当該タイムスロット番号に対応する周期スケジューリングキューのキュー番号として決定することと、が実現される。
【0142】
一例において、プロセッサは機械実行可能命令を実行することで、
スケジューリングオフセットは、
入力転送処理ユニットでのテストパケットの受信タイムスタンプに基づいて、前記テストパケットが出力インターフェイス処理ユニットに到着したときに、前記出力インターフェイス処理ユニットによってスケジューリングされている、当該エグレスインターフェイスの周期スケジューリングキューを決定することと、
前記出力インターフェイス処理ユニットによってスケジューリングされている当該エグレスインターフェイスの周期スケジューリングキューと、前記ネットワークノードのノード内ジッタとに基づいて、前記テストパケットの最適な周期スケジューリングキューを決定することと、
前記最適な周期スケジューリングキューと、当該エグレスインターフェイスの周期スケジューリングキューの数と、前記入力転送処理ユニットでのテストパケットの受信タイムスタンプに対応するタイムスロット番号とに基づいて、前記スケジューリングオフセットを決定することと、により決定される、ことが実現される。
【0143】
一例において、プロセッサは機械実行可能命令を実行することで、
前記入力転送処理ユニットでのテストパケットの受信タイムスタンプに対応するタイムスロット番号を、前記周期スケジューリングキューの数で割って余りを求め、第2の余り結果を得ることと、
前記最適な周期スケジューリングキューのキュー番号と、当該エグレスインターフェイスの周期スケジューリングキューの数とを加算して、加算結果を得ることと、
前記加算結果と前記第2の余り結果との差を、当該エグレスインターフェイスの周期スケジューリングキューの数で割って余りを求め、第3の余り結果を得ることと、
前記第3の余り結果を前記スケジューリングオフセットとして決定することと、が実現される。
【0144】
一例において、プロセッサは機械実行可能命令を実行することで、さらに、
前記目標タイムスロット番号に基づいて、前記パケットが属するサービスフローのタイムスロット更新テーブルを照会して、更新されたタイムスロット番号を取得することと、
前記更新されたタイムスロット番号に基づいて、前記パケットのエグレスインターフェイスのタイムスロットスケジューリング周期マッピングテーブルを照会して、前記パケットが到着するタイムスロットに対応する目標周期スケジューリングキューを決定することと、が実現される。
【0145】
一例において、CSQFドメインのエッジノード内での決定論的フローパケットの転送プロセスは、
入力プロセスと、分配プロセスと、交換プロセスと、マッピングプロセスと、周期スケジューリングプロセスと、出力プロセスとを含み、ここで、
前記入力プロセスは、入力タイムスタンプのアンカリングを行うために用いられ、
前記分配プロセスはキャッシュ分配に用いられ、
前記交換プロセスは、ノード内の転送関連処理を行うために用いられ、
前記マッピングプロセスは、決定論的フローパケットを周期に従って周期スケジューリングキューにマッピングするために用いられ、
前記周期スケジューリングプロセスは、スケジューリング周期に従って周期スケジューリングキューをスケジューリングし、送信周期キュー内のデータを、予約された優先度が最も高いハードウェアキューに送信するために用いられ、
前記出力プロセスは、ハードウェア送信処理を行うために用いられる。
【0146】
一例において、ネットワークノードのノード内ジッタは、前記交換プロセスの処理遅延ジッタを含む。
【0147】
上述した方法と同じ発明思想に基づき、本発明の実施形態は、図13の機械可読記憶媒体のような、コンピュータ実行可能命令を記憶する非一時的な機械可読記憶媒体も提供し、コンピュータ実行可能命令は、上述した決定論的フロー伝送方法が実施されるように、図13に示される電子デバイス内のプロセッサ801によって実行され得る。
【0148】
例示的に、上記機械可読記憶媒体は任意の電子的、磁性的、光学的または他の物理的記憶装置であってもよく、実行可能な命令、データなどの情報を含むか、または記憶することができるものである。例えば、機械可読記憶媒体は、RAM(Radom Access Memory、ランダムアクセスメモリ)、揮発性メモリ、不揮発性メモリ、フラッシュメモリ、ストレージドライブ(ハードドライブなど)、ソリッドステートドライブ、任意の記憶ディスク(光ディスク、dvdなど)、または類似の記憶媒体や、これらの組み合わせなどが挙げられる。
【0149】
上記実施形態で説明したシステム、装置、モジュールまたはユニットは、具体的には、コンピュータチップ、エンティティ、または何らかの機能を有する製品によって実現されてもよい。典型的な実現デバイスはコンピュータであり、コンピュータの具体的な形態はパーソナルコンピュータ、ラップトップコンピュータ、携帯電話、カメラ付き電話、スマートフォン、パーソナルデジタルアシスタント、メディアプレーヤ、ナビゲーションデバイス、電子メール送受信デバイス、ゲーム機、タブレット、ウェアラブルデバイス、またはこれらのデバイスの任意のいくつかの組み合わせであってもよい。
【0150】
なお、説明の便宜上、上記の装置を説明するときに機能によって様々なユニットに分けてそれぞれ説明する。もちろん、本発明を実施する際に、各ユニットの機能を同一または複数のソフトウェアおよび/またはハードウェアで実現することも可能である。
【0151】
当業者であれば分かるように、本発明の実施形態が、方法、システム、またはコンピュータプログラム製品として提供されてもよい。従って、本発明は、ハードウェアだけからなる実施形態、ソフトウェアだけからなる実施形態、またはソフトウェアとハードウェアを組み合わせた実施形態なる形態を用いてもよい。さらに、本発明の実施形態は、コンピュータで使用可能なプログラムコードを含む1つまたは複数のコンピュータで使用可能な記憶媒体(磁気ディスクメモリ、CD-ROM、光学メモリなどを含むが、これらに限定されない)において実施されるコンピュータプログラム製品の形態であってもよい。
【0152】
本発明は、本発明の実施形態による方法、デバイス(システム)、およびコンピュータプログラム製品のフローチャートおよび/またはブロック図を参照して説明される。フローチャートおよび/またはブロック図における各フローおよび/またはブロック、並びにフローチャートおよび/またはブロック図におけるフローおよび/またはブロックの組み合わせは、コンピュータプログラム命令によって実現されてもよいことが理解されるべきである。これらのコンピュータプログラム命令は、マシンを生成するために、汎用コンピュータ、専用コンピュータ、組み込みプロセッサ、または他のプログラム可能なデータ処理デバイスのプロセッサに提供されてもよく、それにより、コンピュータまたは他のプログラム可能なデータ処理デバイスのプロセッサによって実行される命令により、フローチャートの1つまたは複数のフロー、および/またはブロック図の1つまたは複数のブロックにおいて指定される機能を実現するための装置が生成される。
【0153】
また、これらのコンピュータプログラム命令は、コンピュータまたは他のプログラム可能なデータ処理デバイスに特定の方法で作業するように指示することができるコンピュータ可読メモリに記憶されてもよく、その結果、当該コンピュータ可読メモリに記憶されている命令により、フローチャートの1つまたは複数のフローおよび/またはブロック図の1つまたは複数のブロックにおいて指定される機能を実現する命令装置を含む製品が生成される。
【0154】
これらのコンピュータプログラム命令は、コンピュータまたは他のプログラム可能なデータ処理デバイスにロードしてもよく、それにより、一連の動作ステップがコンピュータまたは他のプログラム可能なデバイス上で実行されることで、コンピュータにより実施される処理が生成され、それにより、コンピュータまたは他のプログラム可能なデバイス上で実行される命令により、フローチャートの1つまたは複数のフロー、および/またはブロック図の1つまたは複数のブロック内で指定される機能を実現するためのステップが提供される。
【0155】
上記は、本発明の実施形態にすぎず、本発明を限定するために使用されるものではない。当業者にとって、本発明は、様々な変更および変化があり得る。本発明の趣旨と原理から逸脱することなく修正、同等な置換、改善などを行った場合、いずれも本発明の特許請求の範囲に含まれるものとするべきである。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
【国際調査報告】