(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-11-16
(54)【発明の名称】クロック・ソースを選択するための方法、装置、及びシステム、並びに記憶媒体
(51)【国際特許分類】
H04L 7/00 20060101AFI20221109BHJP
【FI】
H04L7/00 990
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022514714
(86)(22)【出願日】2020-06-04
(85)【翻訳文提出日】2022-04-05
(86)【国際出願番号】 CN2020094411
(87)【国際公開番号】W WO2021042789
(87)【国際公開日】2021-03-11
(31)【優先権主張番号】201910844122.1
(32)【優先日】2019-09-06
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
(71)【出願人】
【識別番号】503433420
【氏名又は名称】華為技術有限公司
【氏名又は名称原語表記】HUAWEI TECHNOLOGIES CO.,LTD.
【住所又は居所原語表記】Huawei Administration Building, Bantian, Longgang District, Shenzhen, Guangdong 518129, P.R. China
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ルゥー,ジーンフェイ
(72)【発明者】
【氏名】シュイ,ドーァジエン
(72)【発明者】
【氏名】リー,シヤオシア
【テーマコード(参考)】
5K047
【Fターム(参考)】
5K047AA03
5K047AA18
(57)【要約】
この出願は、クロック・ソースを選択するための方法、装置、及びシステム、並びに記憶媒体を開示し、クロック技術の分野に関係する。この方法は、第1のノードによって、第1のノードの第1のポートで、第2のノードによって送信された第1のパケットを受信することと、第1のパケットが第1のフラグを搬送するときに、第1のノードによって、クロック・ソースを選択するときに、第1のポートに対応するクロック・ソースを選択しないこととを、含み、第1のフラグは、第2のノードの時間同期が不確定であることを示すために使用される。この方法によれば、上流の第2のノードの時間同期が不確定であるときに、第1のフラグが第1のパケットで搬送されて、第2のノードの時間同期が不確定であることを示す。第1のフラグを搬送する第1のパケットが第1のポートで受信された後、第1のポートに対応するクロック・ソース・データは、クロック・ソースを選択するために使用されず、上流ノードの時間同期が不確定であるという事実によって生じる下流ノードの時間ジャンプによるネットワーク全体の時間ジャンプを避け、サービスの正常な実行を保証する。
【特許請求の範囲】
【請求項1】
クロック・ソースを選択するための方法であって、
第1のノードによって、前記第1のノードの第1のポートで、第2のノードによって送信された第1のパケットを受信することと、
前記第1のパケットが第1のフラグを搬送するときに、前記第1のノードによって、クロック・ソースを選択するときに、前記第1のポートに対応するクロック・ソースを選択しないことと、を含み、前記第1のフラグは、前記第2のノードの時間同期が不確定であることを示すために使用される、方法。
【請求項2】
前記第1のノードによって、クロック・ソースを選択するときに、前記第1のポートに対応するクロック・ソースを選択しないことは、前記第1のノードによって、前記クロック・ソースを選択するために前記第1のポートで受信されたクロック・ソース・データを使用しないことを含む、請求項1に記載の方法。
【請求項3】
前記第1のノードによって、クロック・ソースを選択するときに、前記クロック・ソースを選択するために前記第1のポートで受信されたクロック・ソース・データを使用しないことは、
前記第1のポートに対応するクロック・ソース・データセットを、前記第1のフラグに基づいて空のセットにセットすることと、
前記第1のノードのポートに対応するクロック・ソース・データセットに基づいてクロック・ソースを選択すること、又は前記第1のノードのポートに対応するクロック・ソース・データセットにおける空ではないクロック・ソース・データセットに基づいてクロック・ソースを選択することと、を含む、請求項2に記載の方法。
【請求項4】
前記第1のポートに対応するクロック・ソース・データセットを、前記第1のフラグに基づいて空のセットにセットすることは、
前記第1のポートの信号失敗属性の値を、前記第1のフラグに基づいて第1の値にセットすることであって、前記第1の値は、信号失敗が前記第1のポートで発生したことを示すために使用される、セットすることと、
前記信号失敗属性の前記第1の値に基づいて、前記第1のポートに対応する前記クロック・ソース・データセットを空のセットにセットすることと、含む、請求項3に記載の方法。
【請求項5】
前記第1のポートの前記信号失敗属性は、ポート信号失敗属性portDS.SFであり、前記portDS.SFの前記第1の値は、真TRUEである、請求項4に記載の方法。
【請求項6】
前記第1のポートの信号失敗属性の値を、前記第1のフラグに基づいて第1の値にセットすることは、
前記第1のフラグに基づいて、パケット・タイミング信号失敗PTSFイベントが前記第1のポートで発生することを判定することと、
前記第1のポートの前記portDS.SFの値を、前記PTSFイベントに基づいて前記第1の値にセットすることと、を含む、請求項5に記載の方法。
【請求項7】
前記PTSFイベントは、パケット・タイミング信号失敗損失同期PTSF-lossSyncイベント、パケット・タイミング信号失敗使用不可PTSF-unusableイベント、又は拡張PTSFイベントである、請求項6に記載の方法。
【請求項8】
前記第1のパケットは、アナウンスAnnounceパケットである、請求項1~7のいずれか一項に記載の方法。
【請求項9】
前記Announceパケット内の同期不確定synchronizationUncertainフラグは、前記第1のフラグを搬送するために使用され、前記synchronizationUncertainフラグの値がTRUEであるときに、前記第1のフラグは、前記第2のノードの時間同期が不確定であることを示すために使用される、請求項8に記載の方法。
【請求項10】
クロック・ソースを選択するための方法であって、
第2のノードによって、第1のアナウンスAnnounceパケットを生成することであって、前記第2のノードの時間同期が不確定であるときに、前記第1のAnnounceパケットで搬送されるターゲット・パラメータは、前記第2のノードの上流ノードから受信された第2のAnnounceパケットで搬送されるターゲット・パラメータよりも劣る、生成することと、
前記第2のノードによって、第1のAnnounceパケットを第1のノードに送信することであって、前記第1のAnnounceパケットで搬送されたパラメータは、クロック・ソースを選択するために前記第1のノードによって使用される、送信することと、を含む、方法。
【請求項11】
前記ターゲット・パラメータは、第1のターゲット・パラメータ及び/又は第2のターゲット・パラメータを含み、前記第1のターゲット・パラメータは、マスタ・クロック優先度を表すために使用され、前記第2のターゲット・パラメータは、マスタ・クロック品質を表すために使用される、請求項10に記載の方法。
【請求項12】
前記第2のターゲット・パラメータは、クロックの国際原子時間TAIトレーサビリティを表すために使用されるパラメータ、クロック精度を表すために使用されるパラメータ、及びクロック安定性を表すために使用されるパラメータのうちの1つ以上を含む、請求項11に記載の方法。
【請求項13】
クロックの国際原子時間TAIトレーサビリティを表すために使用される前記パラメータは、クロッククラスclockclassを含み、クロック精度を表すために使用される前記パラメータは、クロック精度clockAccuracyを含み、クロック安定性を表すために使用される前記パラメータは、オフセット・スケールド対数分散offsetScaledLogVarianceを含む、請求項12に記載の方法。
【請求項14】
前記第1のAnnounceパケットは、マスタ・クロック識別子を含み、前記第1のAnnounceパケットに含まれる前記マスタ・クロック識別子は、前記第2のAnnounceパケットに含まれるマスタ・クロック識別子とは異なる、請求項10~13のいずれか一項に記載の方法。
【請求項15】
前記第1のAnnounceパケットに含まれる前記マスタ・クロック識別子は、前記第2のノードのデフォルト・データセットにおけるクロック識別子clockIdentityである、請求項14に記載の方法。
【請求項16】
前記第2のノードの時間同期が不確定であることは、
前記第2のAnnounceパケットを受信するための前記第2のノードのポートが校正されていないUNCALIBRATED状態にあることか、又は
前記第2のノードの時間とクロック・ソース信号の時間との間の時間差がしきい値より大きいことを含む、請求項10~15のいずれか一項に記載の方法。
【請求項17】
クロック・ソースを選択するための方法であって、
タイム・サーバによって、第1のAnnounceパケットを生成することであって、前記タイム・サーバの時間同期が不確定であるときに、前記第1のAnnounceパケットで搬送されるターゲット・パラメータは、前記タイム・サーバがロック・モードにあるときのターゲット・パラメータに劣る、生成することと、
前記タイム・サーバによって、第1のAnnounceパケットを第1のノードに送信することであって、前記第1のAnnounceパケットで搬送されたパラメータは、クロック・ソースを選択するために前記第1のノードによって使用される、送信することと、を含む、方法。
【請求項18】
前記ターゲット・パラメータは、第1のターゲット・パラメータ及び/又は第2のターゲット・パラメータを含み、前記第1のターゲット・パラメータは、マスタ・クロック優先度を表すために使用され、前記第2のターゲット・パラメータは、マスタ・クロック品質を表すために使用される、請求項17に記載の方法。
【請求項19】
前記第2のターゲット・パラメータは、クロックの国際原子時間TAIトレーサビリティを表すために使用されるパラメータ、クロック精度を表すために使用されるパラメータ、及びクロック安定性を表すために使用されるパラメータのうちの1つ以上を含む、請求項18に記載の方法。
【請求項20】
クロックの国際原子時間TAIトレーサビリティを表すために使用される前記パラメータは、クロッククラスclockclassを含み、クロック精度を表すために使用される前記パラメータは、クロック精度clockAccuracyを含み、クロック安定性を表すために使用される前記パラメータは、オフセット・スケールド対数分散offsetScaledLogVarianceを含む、請求項19に記載の方法。
【請求項21】
前記タイム・サーバの時間同期が不確定であることは、前記タイム・サーバの時間と受信された衛星信号の時間との間の時間差がしきい値より大きいことを含む、請求項17~20のいずれか一項に記載の方法。
【請求項22】
クロック・ソースを選択するための方法であって、
第2のノードによって、第1のアナウンスAnnounceパケットを生成することであって、前記第2のノードの時間同期が不確定であるときに、前記第1のAnnounceパケットで搬送されるターゲット・パラメータは、前記第2のノードのデフォルト・クロック・パラメータである、生成することと、
前記第2のノードによって、前記第1のAnnounceパケットを第1のノードに送信することであって、前記第1のAnnounceパケットで搬送されたパラメータは、クロック・ソースを選択するために前記第1のノードによって使用される、送信することと、を含む、方法。
【請求項23】
前記ターゲット・パラメータは、第1のターゲット・パラメータ及び/又は第2のターゲット・パラメータを含み、前記第1のターゲット・パラメータは、マスタ・クロック優先度を表すために使用され、前記第2のターゲット・パラメータは、マスタ・クロック品質を表すために使用される、請求項22に記載の方法。
【請求項24】
前記第2のターゲット・パラメータは、クロックの国際原子時間TAIトレーサビリティを表すために使用されるパラメータ、クロック精度を表すために使用されるパラメータ、及びクロック安定性を表すために使用されるパラメータのうちの1つ以上を含む、請求項23に記載の方法。
【請求項25】
クロックの国際原子時間TAIトレーサビリティを表すために使用される前記パラメータは、クロッククラスclockclassを含み、クロック精度を表すために使用される前記パラメータは、クロック精度clockAccuracyを含み、クロック安定性を表すために使用される前記パラメータは、オフセット・スケールド対数分散offsetScaledLogVarianceを含む、請求項24に記載の方法。
【請求項26】
前記第2のノードによって、第1のAnnounceパケットを生成する前に、前記方法は、前記第2のノードによって、上流ノードによって送信された第2のAnnounceパケットを受信することをさらに含み、
前記第2のノードによって、前記第1のAnounceパケットを第2のノードによって生成することは、前記第2のAnnounceパケットに基づいて前記第1のAnnounceパケットを生成することを含む、請求項22~25に記載の方法。
【請求項27】
前記第2のノードのデフォルト・クロック・パラメータは、前記第2のノードのデフォルト・データセットdefault datasetにおけるパラメータである、請求項22~26に記載の方法。
【請求項28】
前記第2のノードの時間同期が不確定であることは、
前記第2のAnnounceパケットを受信するための前記第2のノードのポートが校正されていないUNCALIBRATED状態にあることか、又は
前記第2のノードの時間とクロック・ソース信号の時間との間の時間差がしきい値より大きいことを含む、請求項22~27に記載の方法。
【請求項29】
クロック・ソースを選択するための装置であって、前記装置は、第1のノードにおいて使用され、前記装置は、
前記第1のノードの第1のポートで、第2のノードによって送信された第1のパケットを受信するように構成されている受信モジュールと、
前記第1のパケットが第1のフラグを搬送するときに、前記第1のノードがクロック・ソースを選択するときに、前記第1のポートに対応するクロック・ソースを選択しないことであって、前記第1のフラグは、前記第2のノードの時間同期が不確定であることを示すために使用される、選択しないことを行うように構成されている選択モジュールと、を含む、装置。
【請求項30】
前記選択モジュールは、クロック・ソースを選択するときに、前記クロック・ソースを選択するために前記第1のポートで受信されたクロック・ソース・データを使用しないように構成されている、請求項29に記載の装置。
【請求項31】
前記選択モジュールは、前記第1のフラグに基づいて、前記第1のポートに対応するクロック・ソース・データセットを空のセットにセットし、前記第1のノードのポートに対応するクロック・ソース・データセットに基づいてクロック・ソースを選択するか、又は前記第1のノードのポートに対応するクロック・ソース・データセットにおける空ではないクロック・ソース・データセットに基づいてクロック・ソースを選択するように構成されている、請求項30に記載の装置。
【請求項32】
前記選択モジュールは、前記第1のポートの信号失敗属性の値を、前記第1のフラグに基づいて第1の値にセットすることであって、前記第1の値は、信号失敗が前記第1のポートで発生したことを示すために使用される、セットすることと、前記信号失敗属性の前記第1の値に基づいて、前記第1のポートに対応する前記クロック・ソース・データセットを空のセットにセットすることと、を行うように構成されている、請求項31に記載の装置。
【請求項33】
前記第1のポートの前記信号失敗属性は、ポート信号失敗属性portDS.SFであり、前記portDS.SFの前記第1の値は、真TRUEである、請求項32に記載の装置。
【請求項34】
前記選択モジュールは、前記第1のフラグに基づいて、パケット・タイミング信号失敗PTSFイベントが前記第1のポートで発生したことを判定し、前記第1のポートの前記portDS.SFの値を、前記PTSFイベントに基づいて前記第1の値にセットするように構成されている、請求項33に記載の装置。
【請求項35】
前記PTSFイベントは、パケット・タイミング信号失敗損失同期PTSF-lossSyncイベント、パケット・タイミング信号失敗使用不可PTSF-unusableイベント、又は拡張PTSFイベントである、請求項34に記載の装置。
【請求項36】
前記第1のパケットは、アナウンスannounceパケットである、請求項29~35のいずれか一項に記載の装置。
【請求項37】
前記Announceパケット内の同期不確定synchronizationUncertainフラグは、前記第1のフラグを搬送するために使用され、前記synchronizationUncertainフラグの値がTRUEであるときに、前記第1のフラグは、前記第2のノードの時間同期が不確定であることを示すために使用される、請求項36に記載の装置。
【請求項38】
クロック・ソースを選択するための装置であって、前記装置は、生成モジュール及び送信モジュールを含み、
前記生成モジュールは、請求項10~28のいずれか一項に記載の方法において、第1のAnnounceパケットを生成する動作を実行するように構成されており、
前記送信モジュールは、前記第1のAnnounceパケットを第1のノードに送信することであって、前記第1のAnnounceパケットで搬送されたパラメータは、クロック・ソースを選択するために前記第1のノードによって使用される、送信することを行うように構成されている、装置。
【請求項39】
クロック・ソースを選択するためのシステムであって、前記システムは、第1のノード及び第2のノードを含み、
前記第2のノードは、第1のパケットを前記第1のノードの第1のポートに送信するように構成されており、
前記第1のノードは、前記第1のノードの前記第1のポートで、前記第2のノードによって送信された前記第1のパケットを受信することと、前記第1のパケットが第1のフラグを搬送するときに、前記第1のノードがクロック・ソースを選択するときに、前記第1のポートに対応するクロック・ソースを選択しないことであって、前記第1のフラグは、前記第2のノードの時間同期が不確定であることを示すために使用される、選択しないことと、を行うように構成されている、システム。
【請求項40】
前記第1のノードは、クロック・ソースを選択するときに、前記クロック・ソースを選択するために前記第1のポートで受信されたクロック・ソース・データを使用しないように構成されている、請求項39に記載のシステム。
【請求項41】
前記第1のノードは、前記第1のフラグに基づいて、前記第1のポートに対応するクロック・ソース・データセットを空のセットにセットし、前記第1のノードのポートに対応するクロック・ソース・データセットに基づいてクロック・ソースを選択するか、又は前記第1のノードのポートに対応するクロック・ソース・データセットにおける空ではないクロック・ソース・データセットに基づいてクロック・ソースを選択するように構成されている、請求項40に記載のシステム。
【請求項42】
前記第1のノードは、前記第1のポートの信号失敗属性の値を、前記第1のフラグに基づいて第1の値にセットすることであって、前記第1の値は、信号失敗が前記第1のポートで発生したことを示すために使用される、セットすることと、前記信号失敗属性の前記第1の値に基づいて、前記第1のポートに対応する前記クロック・ソース・データセットを空のセットにセットすることと、を行うように構成されている、請求項41に記載のシステム。
【請求項43】
前記第1のポートの前記信号失敗属性は、ポート信号失敗属性portDS.SFであり、前記portDS.SFの前記第1の値は、真TRUEである、請求項42に記載のシステム。
【請求項44】
前記第1のノードは、前記第1のフラグに基づいて、パケット・タイミング信号が前記第1のポートでPTSFイベントが発生したことを判定し、前記第1のポートの前記portDS.SFの値を、前記PTSFイベントに基づいて前記第1の値にセットするように構成されている、請求項43に記載のシステム。
【請求項45】
前記PTSFイベントは、パケット・タイミング信号失敗損失同期PTSF-lossSyncイベント、パケット・タイミング信号失敗使用不可PTSF-unusableイベント、又は拡張PTSFイベントである、請求項44に記載のシステム。
【請求項46】
前記第1のパケットは、アナウンスAnnounceパケットである、請求項39~45のいずれか一項に記載のシステム。
【請求項47】
クロック・ソースを選択するためのシステムであって、前記システムは、第1のノード及び第2のノードを含み、
前記第2のノードは、請求項10~28のいずれか一項に記載の方法を実装するように構成されており、
前記第1のノードは、前記第2のノードによって送信された第1のAnnounceパケットを受信し、前記第1のAnnounceパケットで搬送されたパラメータに基づいてクロック・ソースを選択するように構成されている、システム。
【請求項48】
クロック・ソースを選択するためのデバイスであって、前記デバイスは、ポートとプロセッサとを含み、前記ポートは、別のノードとの通信のために使用され、前記プロセッサは、請求項1~28のいずれか一項に記載のクロック・ソースを選択するための前記方法を実装するように構成されている、デバイス。
【請求項49】
コンピュータ可読記憶媒体であって、前記記憶媒体は、少なくとも1つの命令を記憶し、前記命令は、請求項1~28のいずれか一項に記載のクロック・ソースを選択するための前記方法を実装するように、ロードされ、プロセッサによって実行される、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
この出願は、クロック技術の分野に関し、特に、クロック・ソースを選択するための方法、装置、及びシステム、並びに記憶媒体に関連する。
【背景技術】
【0002】
分散システムが通信及びネットワーク・アプリケーションでますます使用されるようになるにつれて、クロック同期はますます重要になっている。クロック同期方式として、ネットワーク時間プロトコル(network time protocol、NTP)が広く適用されている。追加的に、増大する高精度時間同期要求を満たすために、米国電気電子技術者協会(institute of electrical and electronics engineers、IEEE)1588プロトコル規格が開発されて、分散システム内の最も精密なクロックを他のクロックと同期させる。IEEE 1588プロトコル規格のフルネームは、ネットワーク測定及び制御システムのための精密クロック同期プロトコル(IEEE 1588 precision clock synchronization protocol)規格であり、略して、精密時間プロトコル(precision time protocol、PTP)と呼ばれる。IEEE 1588とNTPの両方のアプリケーション・シナリオでは、クロック・ソースをどのように選択するかが、クロック同期を維持するための鍵である。
【発明の概要】
【0003】
この出願の実施形態は、クロック・ソースを選択するための方法、装置、及びシステム、並びに記憶媒体を提供して、関連する技術における問題を解決する。技術的解決策は以下の通りである。
【0004】
一態様によれば、クロック・ソースを選択するための方法が提供される。方法は、第1のノードが、第1のノードの第1のポートで、第2のノードによって送信された第1のパケットを受信する。第1のパケットが第1のフラグを搬送するときに、第1のノードは、クロック・ソースを選択するときに、第1のポートに対応するクロック・ソースを選択しない。第1のフラグは、第2のノードの時間同期が不確定であることを示すために使用される。
【0005】
第1のフラグを搬送する第1のパケットが第1のポートで受信された後、クロック・ソースを選択するときに、第1のノードは、クロック・ソースを選択するために第1のポートに対応するクロック・ソース・データを使用せず、上流ノードの時間同期が不確定であるという事実によって生じる下流ノードの時間ジャンプによるネットワーク全体の時間ジャンプを避け、サービスの正常な実行を保証する。
【0006】
例示的な実施形態では、第1のノードが、クロック・ソースを選択するときに、第1のポートに対応するクロック・ソースを選択しないことは、第1のノードが、クロック・ソースを選択するときに、クロック・ソースを選択するために第1のポートで受信されたクロック・ソース・データを使用しないことを含む。
【0007】
例示的な実施形態では、第1のノードがクロック・ソースを選択するときに、クロック・ソースを選択するために第1のポートで受信されたクロック・ソース・データを使用しないことは、第1のポートに対応するクロック・ソース・データセットを、第1のフラグに基づいて空のセットにセットすることと、クロック・ソースを、第1のノードのポートに対応するクロック・ソース・データセットに基づいて選択することとを含む。第1のポートに対応するクロック・ソース・データセットは、空のセットとしてセットされ、第1のポートのクロック・ソース・データが、第1のノードのポートに対応するクロック・ソース・データセットに基づいてクロック・ソースを選択する間選択されないようにする。これは、上流ノードの時間同期が不確定であるという事実によって引き起こされる下流ノードの時間ジャンプを避ける。
【0008】
例示的な実施形態では、第1のノードがクロック・ソースを選択するときに、クロック・ソースを選択するために第1のポートで受信されたクロック・ソース・データを使用しないことは、第1のポートに対応するクロック・ソース・データセットを、第1のフラグに基づいて空のセットにセットすることと、クロック・ソースを、第1のノードのポートに対応するクロック・ソース・データセットにおける空ではないクロック・ソース・データセットに基づいて選択することとを含む。第1のポートに対応するクロック・ソース・データセットは、空のセットとしてセットされ、クロック・ソースの選択の間、クロック・ソースは、第1のノードのポートに対応するクロック・ソース・データセット内の空ではないクロック・ソース・データセットに基づいて選択されるようにし、空のセットであるクロック・ソース・データセットは、さらにスクリーニングして除かれる必要がない。これは、選択処理を単純化する。
【0009】
例示的な実施形態では、第1のポートに対応するクロック・ソース・データセットを、第1のフラグに基づいて空のセットにセットすることは、第1のポートの信号失敗属性の値を、第1のフラグに基づいて第1の値にセットすることであって、第1の値は、信号失敗が第1のポートで発生したことを示すために使用される、セットすることと、信号失敗属性の第1の値に基づいて、第1のポートに対応するクロック・ソース・データセットを空のセットにセットすることとを含む。
【0010】
例示的な実施形態では、第1のポートの信号失敗属性は、ポート信号失敗属性portDS.SFであり、portDS.SFの第1の値は、真TRUEである。ポート信号失敗属性portDS.SFは、既存の規格で定義された属性である。したがって、第1のポートに対応するクロック・ソース・データセットが、ポート信号失敗属性portDS.SFに基づいて空のセットにセットされることは、既存の規格に適用可能であり、この出願のこの実施形態で提供される方法の適用可能性を改善する。
【0011】
例示的な実施形態では、第1のポートの信号失敗属性の値を、第1のフラグに基づいて第1の値にセットすることは、第1のフラグに基づいて、パケット・タイミング信号が第1のポートでPTSFイベントが発生したことを判定することと、第1のポートのportDS.SFの値を、PTSFイベントに基づいて第1の値にセットすることと、を含む。
【0012】
例示的な実施形態では、PTSFイベントは、パケット・タイミング信号失敗損失同期PTSF-lossSyncイベント、パケット・タイミング信号失敗使用不可PTSF-unusableイベント、又は拡張PTSFイベントである。パケット・タイミング信号失敗損失同期PTSF-lossSyncイベント及びパケット・タイミング信号失敗使用不可PTSF-unusableイベントは、既存の標準で定義されたイベントであり、既存の規格に適用可能であり、この出願のこの実施形態で提供される方法の適用可能性が改善される。追加的に、PTSFイベントが拡張PTSFイベント使用することによって拡張され、ポート信号失敗属性portDS.SFを判定する方式が拡張される。
【0013】
例示の実施形態では、第1のパケットは、アナウンスAnnounceパケットである。
【0014】
例示的な実施形態では、Announceパケット内の同期不確定synchronizationUncertainフラグが、第1のフラグを搬送するために使用される。synchronizationUncertainの値が第3の値であるときに、第1のフラグは、第2のノードの時間同期が不確定であることを示すために使用される。
【0015】
例示的な実施形態では、synchronizationUncertainフラグの第3の値は、TRUEである。
【0016】
第2の態様によれば、クロック・ソースを選択するための方法が提供される。方法は、第2のノードが、第1のAnnounceパケットを生成することを含む。第2のノードの時間同期が不確定であるときに、第1のAnnounceパケットで搬送されるターゲット・パラメータに対応するレベルは、参照レベルより低い。参照レベルは、第2のノードが時間同期を実行するときのターゲット・パラメータに対応するレベルである。第2のノードは、第1のAnnounceパケットを第1のノードに送信する。第1のAnnounceパケットで搬送されるパラメータは、クロック・ソースを選択するために使用される。
【0017】
一実装では、第2のノードは、中間ノードである。第1のAnnounceパケットを生成する前に、第2のノードは、上流ノードによって送信された第2のAnnounceパケットをさらに受信し、それに対応して、第1のAnnounceパケットを、第2のAnnounceパケットに基づいて生成する。この実装では、第1のAnnounceパケットで搬送されたターゲット・パラメータは、第2のAnnounceパケットで搬送されたターゲット・パラメータに劣る(すなわち、第2のAnnounceパケットで搬送されたターゲット・パラメータのレベルが参照レベルとして使用される)。
【0018】
別の実装では、第2のノードがタイム・サーバであるときに、第1のAnnounceパケットで搬送されたターゲット・パラメータは、タイム・サーバがロック・モードにあるときのターゲット・パラメータに劣る(すなわち、タイム・サーバがロック・モードのときのターゲット・パラメータのレベルが参照レベルとして使用される)。
【0019】
上流の第2のノードの時間同期が不確定であるときに、第1のAnnounceパケットは、参照レベルより低いレベルのターゲット・パラメータを搬送する。このようにして、下流の第1のノードがクロック・ソースを選択するときに、第1のAnnounceパケットにおけるターゲット・パラメータのレベルが低いため、第1のAnnounceパケットが受信されるポートに対応するクロック・ソースは選択されず、上流ノードの時間同期が不確定であるという事実によって生じる下流のノードの時間ジャンプによるネットワーク全体の時間ジャンプを避け、サービスの正常な動作を保証する。
【0020】
例示的な実施形態では、ターゲット・パラメータは、クロッククラスclockclass、クロック精度clockAccuracy、及びオフセット・スケールド対数分散offsetScaledLogVarianceのうちの1つ以上のパラメータである。
【0021】
例示的な実施形態では、第2のノードが第1のAnnounceパケットを生成することは、第2のノードが、上流ノードによって送信された第2のAnnounceパケットを受信し、第2のAnnounceパケットにおけるターゲット・パラメータのレベルを修正して、第1のAnnounceパケットを取得することか、又は第2のAnnounceパケットにおける情報に基づいて第1のAnnounceパケットを生成することを含む。
【0022】
第3の態様によれば、クロック・ソースを選択するための装置が提供される。装置は、第1のノードにおいて使用され、装置は、第1のノードの第1のポートで、第2のノードによって送信された第1のパケットを受信するように構成されている受信モジュールと、第1のパケットが第1のフラグを搬送するときに、第1のノードがクロック・ソースを選択するときに、第1のポートに対応するクロック・ソースを選択しないことであって、第1のフラグは、第2のノードの時間同期が不確定であることを示すために使用される、選択しないことを行うように構成されている選択モジュールと、を含む。
【0023】
例示的な実施形態では、選択モジュールは、クロック・ソースを選択するときに、クロック・ソースを選択するために第1のポートで受信されたクロック・ソース・データを使用しないように構成されている。
【0024】
例示的な実施形態では、選択モジュールは、第1のフラグに基づいて、第1のポートに対応するクロック・ソース・データセットを空のセットにセットし、第1のノードのポートに対応するクロック・ソース・データセットに基づいてクロック・ソースを選択するか、又は第1のノードのポートに対応するクロック・ソース・データセットにおける空ではないクロック・ソース・データセットに基づいてクロック・ソースを選択するように構成されている。
【0025】
例示的な実施形態では、選択モジュールは、第1のポートの信号失敗属性の値を、第1のフラグに基づいて第1の値にセットすることであって、第1の値は、信号失敗が第1のポートで発生したことを示すために使用される、セットすることと、信号失敗属性の第1の値に基づいて、第1のポートに対応するクロック・ソース・データセットを空のセットにセットすることと、を行うように構成されている。
【0026】
例示的な実施形態において、第1のポートの信号失敗属性は、ポート信号失敗属性portDS.SFであり、portDS.SFの第1の値は、真TRUEである。
【0027】
例示的な実施形態では、選択モジュールは、第1のフラグに基づいて、パケット・タイミング信号が第1のポートでPTSFイベントが発生したことを判定し、第1のポートのportDS.SFの値を、PTSFイベントに基づいて第1の値にセットするように構成されている。
【0028】
例示的な実施形態では、PTSFイベントは、パケット・タイミング信号失敗損失同期PTSF-lossSyncイベント、パケット・タイミング信号失敗使用不可PTSF-unusableイベント、又は拡張PTSFイベントである。
【0029】
例示の実施形態では、第1のパケットは、アナウンスAnnounceパケットである。
【0030】
例示的な実施形態では、Announceパケット内の同期不確定synchronizationUncertainフラグが、第1のフラグを搬送するために使用される。synchronizationUncertainの値が第3の値であるときに、第1のフラグは、第2のノードの時間同期が不確定であることを示すために使用される。
【0031】
例示的な実施形態では、synchronizationUncertainフラグの第3の値は、TRUEである。
【0032】
第4の態様によれば、クロック・ソースを選択するための装置が提供される。装置は第2のノードで使用され、装置は、
第2のノードの時間同期が不確定であるときに、第1のAnnounceパケットを生成することであって、第1のAnnounceパケットで搬送されるターゲット・パラメータに対応するレベルは、参照レベルより低く、参照レベルは、第2のノードが時間同期を実行するときのターゲット・パラメータに対応するレベルである、生成することを行うように構成されている生成モジュールと、
第1のAnnounceパケットを第1のノードに送信することであって、第1のAnnounceパケットで搬送されたパラメータは、クロック・ソースを選択するために使用される、送信することを行うように構成されている送信モジュールと、を含む。
【0033】
実装では、第2のノードは中間ノードであり、生成モジュールは、具体的には、第1のAnnounceパケットを、第2のノードの上流ノードから受信された第2のAnnounceパケットに基づいて生成するように構成されている。この実装では、第1のAnnounceパケットで搬送されたターゲット・パラメータは、第2のAnnounceパケットで搬送されたターゲット・パラメータに劣る(すなわち、第2のAnnounceパケットで搬送されたターゲット・パラメータのレベルが参照レベルとして使用される)。
【0034】
別の実装では、第2のノードがタイム・サーバであるときに、第1のAnnounceパケットで搬送されたターゲット・パラメータは、タイム・サーバがロック・モードにあるときのターゲット・パラメータに劣る(すなわち、タイム・サーバがロック・モードのときのターゲット・パラメータのレベルが参照レベルとして使用される)。
【0035】
例示的な実施形態では、ターゲット・パラメータは、クロッククラスclockclass、クロック精度clockAccuracy、及びオフセット・スケールド対数分散offsetScaledLogVarianceのうちの1つ以上のパラメータである。
【0036】
例示的な実施形態では、生成モジュールは、上流ノードによって送信された第2のAnnounceパケットを受信し、第2のAnnounceパケットにおけるターゲット・パラメータのレベルを修正して、第1のAnnounceパケットを取得することが、又は第2のAnnounceパケットにおける情報に基づいて第1のアナウンスAnnounceパケットを生成することを行うように構成されている。
【0037】
第5の態様によれば、クロック・ソースを選択するための方法が提供される。システムは、第1のノード及び第2のノードを含む。第2のノードは、第1のパケットを第1のノードの第1のポートに送信するように構成されている。第1のノードは、第1のノードの第1のポートで、第2のノードによって送信された第1のパケットを受信するように構成されている。第1のパケットが第1のフラグを搬送するときに、第1のノードがクロック・ソースを選択するときに、第1のポートに対応するクロック・ソースを選択しない。第1のフラグは、第2のノードの時間同期が不確定であることを示すために使用される。
【0038】
例示的な実施形態では、第1のノードは、クロック・ソースを選択するときに、クロック・ソースを選択するために第1のポートで受信されたクロック・ソース・データを使用しないように構成されている。
【0039】
例示的な実施形態では、第1のノードは、第1のフラグに基づいて、第1のポートに対応するクロック・ソース・データセットを空のセットにセットし、第1のノードのポートに対応するクロック・ソース・データセットに基づいてクロック・ソースを選択するか、又は第1のノードのポートに対応するクロック・ソース・データセットにおける空ではないクロック・ソース・データセットに基づいてクロック・ソースを選択するように構成されている。
【0040】
例示的な実施形態では、第1のノードは、第1のポートの信号失敗属性の値を、第1のフラグに基づいて第1の値にセットすることであって、第1の値は、信号失敗が第1のポートで発生したことを示すために使用される、セットすることと、信号失敗属性の第1の値に基づいて、第1のポートに対応するクロック・ソース・データセットを空のセットにセットすることと、を行うように構成されている。
【0041】
例示的な実施形態において、第1のポートの信号失敗属性は、ポート信号失敗属性portDS.SFであり、portDS.SFの第1の値は、真TRUEである。
【0042】
例示的な実施形態では、第1のノードは、第1のフラグに基づいて、パケット・タイミング信号が第1のポートでPTSFイベントが発生したことを判定し、第1のポートのportDS.SFの値を、PTSFイベントに基づいて第1の値にセットするように構成されている。
【0043】
例示的な実施形態では、PTSFイベントは、パケット・タイミング信号失敗損失同期PTSF-lossSyncイベント、パケット・タイミング信号失敗使用不可PTSF-unusableイベント、又は拡張PTSFイベントである。
【0044】
例示の実施形態では、第1のパケットは、アナウンスAnnounceパケットである。
【0045】
例示的な実施形態では、Announceパケット内の同期不確定synchronizationUncertainフラグが、第1のフラグを搬送するために使用される。synchronizationUncertainの値が第3の値であるときに、第1のフラグは、第2のノードの時間同期が不確定であることを示すために使用される。
【0046】
例示的な実施形態では、synchronizationUncertainフラグの第3の値は、TRUEである。
【0047】
第6の態様によれば、クロック・ソースを選択するための方法が提供される。システムは、第1のノード及び第2のノードを含む。第2のノードは、第2のノードの時間同期が不確定であるときに、第1のAnnounceパケットを生成することであって、第1のAnnounceパケットで搬送されるターゲット・パラメータに対応するレベルは、参照レベルより低く、参照レベルは、第2のノードが時間同期を実行するときのターゲット・パラメータに対応するレベルである、生成することと、第1のAnnounceパケットを第1のノードに送信することとを行うように構成されている。第1のノードは、第2のノードによって送信された第1のAnnounceパケットを受信することであって、第1のAnnounceパケットで搬送されたパラメータがクロック・ソースを選択するために使用される、受信することを行うように構成されている。
【0048】
実装では、第2のノードは中間ノードであり、第1のAnnounceパケットを生成する前に、上流ノードによって送信された第2のAnnounceパケットを受信するように構成されている。これに対応して、第1のAnnounceパケットを生成するときに、第2のノードは、具体的には、第1のAnnounceパケットを、第2のAnnounceパケットに基づいて生成するように構成されている。この実装では、第1のAnnounceパケットで搬送されたターゲット・パラメータは、第2のAnnounceパケットで搬送されたターゲット・パラメータに劣る(すなわち、第2のAnnounceパケットで搬送されたターゲット・パラメータのレベルが参照レベルとして使用される)。
【0049】
別の実装では、第2のノードがタイム・サーバであるときに、第1のAnnounceパケットで搬送されたターゲット・パラメータは、タイム・サーバがロック・モードにあるときのターゲット・パラメータに劣る(すなわち、タイム・サーバがロック・モードのときのターゲット・パラメータのレベルが参照レベルとして使用される)。
【0050】
例示的な実施形態では、ターゲット・パラメータは、クロッククラスclockclass、クロック精度clockAccuracy、及びオフセット・スケールド対数分散offsetScaledLogVarianceのうちの1つ以上のパラメータである。
【0051】
例示的な実施形態では、第2のノードは、上流ノードによって送信された第2のAnnounceパケットを受信し、第2のAnnounceパケットにおけるターゲット・パラメータのレベルを修正して、第1のAnnounceパケットを取得することが、又は第2のAnnounceパケットにおける情報に基づいて第1のアナウンスAnnounceパケットを生成することを行うように構成されている。
【0052】
クロック・ソースを選択するためのデバイスがさらに提供される。デバイスは、ポート及びプロセッサを含む。ポートは、別のデバイスと通信するように構成されている。プロセッサは、クロック・ソースを選択するための前述の方法のいずれか1つを実装するように構成されている。クロック・ソースを選択するためのデバイスが第1のノードであるときに、ポートは、前述の第1のポートである。
【0053】
コンピュータ可読記憶媒体がさらに提供される。記憶媒体は、少なくとも1つの命令を記憶し、命令は、プロセッサによってロードされ、実行されて、クロック・ソースを選択するための前述の方法のいずれか1つを実装する。
【0054】
別の通信装置が提供される。装置は、トランシーバ、メモリ、及びプロセッサを含む。トランシーバ、メモリ、及びプロセッサは、内部接続チャネルを介して互いに通信する。メモリは、メモリを記憶するように構成されている。プロセッサは、メモリに記憶された命令を実行し、トランシーバを制御して信号を受信及び送信するように構成されている。追加的に、プロセッサがメモリに記憶された命令を実行するときに、プロセッサは、前述の可能な実装のいずれか1つで方法を実行することが可能となる。
【0055】
例示的な実施形態では、1つ以上のプロセッサがあり、1つ以上のメモリがある。
【0056】
例示的な実施形態では、メモリは、プロセッサと一体化されてもよく、又は、メモリとプロセッサは別々に配設される。
【0057】
特定の実装処理では、メモリは、読み出し専用メモリ(read-only memory、ROM)のような非一時的(non-transitory)メモリであってもよい。メモリ及びプロセッサは、1つのチップに一体化されてもよく、異なるチップに配設されてもよい。メモリのタイプ並びにメモリ及びプロセッサが配設される方式は、この出願のこの実施形態では限定されない。
【0058】
コンピュータ・プログラム(製品)が提供される。コンピュータ・プログラム(製品)は、コンピュータ・プログラムコードを含む。コンピュータ・プログラムがコンピュータ上で実行するときに、コンピュータは、前述の態様における方法を実行することが可能となる。
【0059】
チップが提供される。チップは、メモリに記憶された命令を呼び出して実行するように構成されているプロセッサを含み、チップがインストールされた通信デバイスは、前述の態様における方法を実行する。
【0060】
入力インターフェース、出力インターフェース、プロセッサ、及びメモリを含む別のチップが提供される。入力インターフェース、出力インターフェース、プロセッサ、及びメモリは、内部接続チャネルを介して互いに接続される。プロセッサは、メモリ内でコードを実行するように構成されている。コードが実行されるときに、プロセッサは、前述の態様における方法を実行するように構成されている。
【図面の簡単な説明】
【0061】
【
図1】この出願の一実施形態による、1588同期ネットワーク・シナリオの概略図である。
【0062】
【
図2】この出願の一実施形態による、クロック・ソースを選択するための方法のフローチャートである。
【0063】
【
図3】この出願の一実施形態による、クロック・ソースを選択するための方法のフローチャートである。
【0064】
【
図4】この出願の一実施形態による、クロック・ソースを選択するための方法のフローチャートである。
【0065】
【
図5】この出願の一実施形態による、クロック・ソースを選択するための方法のフローチャートである。
【0066】
【
図6】この出願の一実施形態による、クロック・ソースを選択するための方法のフローチャートである。
【0067】
【
図7】この出願の一実施形態による、クロック・ソースを選択するための方法のフローチャートである。
【0068】
【
図8】この出願の一実施形態による、クロック・ソースを選択するための方法のフローチャートである。
【0069】
【
図9】この出願の一実施形態による、クロック・ソースを選択するための装置の概略構造図である。
【0070】
【
図10】この出願の一実施形態による、クロック・ソースを選択するための装置の概略構造図である。
【0071】
【
図11】この出願の一実施形態による、クロック・ソースを選択するためのデバイスの概略構造図である。
【発明を実施するための形態】
【0072】
この出願の実施形態の説明において使用される用語は、この出願の特定の実施態様を説明するためにのみ使用され、この出願を限定することを意図していない。
【0073】
IEEE 1588又はNTPアプリケーション・シナリオでは、ネットワーク上のノードが停電若しくは故障整流により再起動するか、クロック・ソースを切り替えるときに、再起動又はクロック・ソースの切り替え後にノードの出力時間がジャンプする。下流ノードが、再起動が停電若しくは故障整流の後に実行されるか、又はクロック・ソース選択が実行されるクロック・ソースとしてノードを使用する場合、下流ノードの出力時間もジャンプする。その結果、ネットワーク全体の時間ジャンプが発生し、サービスの正常な動作に影響が及ぶ。
【0074】
図1に示されるIEEE 1588同期ネットワーク・シナリオが、例として使用される。ネットワークは、ノードA、B、C、D、E、及びFを含む。ノードEは、ポート1とポート2の2つのポートを含む。ポート1は、ノードBに対応し、ノードBによって送信されたPTPパケットを受信するように構成されている。ポート2は、ノードDに対応し、ノードDによって送信されたPTPパケットを受信するように構成されている。通常の場合は、ノードAとノードCは、全地球測位システム(global positioning system、GPS)をトレースし、ノードA及びノードCから下流ノードBとノードDに送信されたアナウンス(Announce)パケットにおけるクロッククラス(clockClass)の値は、6である。追加的に、ノードA及びノードCによって送信されるAnnounceパケットの他のパラメータ、例えば、IEEE 1588品質レベルを表すクロック精度(clockAccuracy)及びオフセット・スケールド対数分散(offsetScaledLogiance)は同じである。ノードBとノードDが下流ノードEに送るAnnounceパケットのclockClassの値も6である。ノードB及びノードDから送信されるAnnounceパケットの他のパラメータ、例えば、IEEE 1588品質レベルを表すclockAccuracy及びoffsetScaledLogianceも同じである。
【0075】
各ノードのポートには、マスタ状態(master、M)、スレーブ状態(slave、S)、パッシブ状態(パッシブ、P)、及び未較正(UNCALIBRATED)状態を含む4つのポート状態を有する。ポート・ステータスがmasterである通信ポートは、略してマスタ・ポートと呼ばれる。マスタ・ポートは、ノードによって選択された最高品質のクロック・ソースをネットワーク全体にブロードキャストするために使用されます。スレーブ状態のポート(略してスレーブ・ポートと呼ぶ)と未較正状態のポートは、上流ノードのクロックをトレースするために使用される。時間同期のためにポートが上流ノードのクロックをトレースするために使用されるときに、ポートのステータスは、時間同期のステータスに基づいて、スレーブ状態から未較正状態へ、又は未較正状態からスレーブ状態へと変化する。パッシブ・ポートは中間位置にあり、クロック・ソースをブロードキャストしたり、上流ノードのクロックをトレースしたりしない。ポートがパッシブ状態にある場合、PTPネットワークシステム全体に同じ品質のクロック・ソースが2つ以上あることを示す。例えば、
図1に示すように、ノードBに対応するノードE上のポートはスレーブ状態にあり、ノードDに対応するノードE上のポートはパッシブ状態にある。IEEE 1588v2プロトコル及び国際電気通信連合電気通信標準化部門(International Telecommunication Union Telecommunication Standardization Sector,、ITU-T)のG.8275.1プロトコルによれば、ノードEは、最良のマスタ・クロック(BMC)アルゴリズムに基づいて、トレースされるクロック・ソースとしてノードB又はノードDを選択する。例えば、
図1において、ノードAのclockIDはノードCのclockIDより小さく、ノードEのプライマリ・トレース・パスはA->B->Eであり、セカンダリ・トレース・パスはC->D->Eである。
【0076】
ノードBの電源がオフにされる場合、ノードEは、同期のためにセカンダリ・パスC->D->Eを選択する。このようにして、ノードEは、ノードFへの時間出力がジャンプしないことを保証することができる。ノードBの電源が再度オンにされるときに、ノードAは、PTPパケットをノードBに送信する。したがって、ノードBは、ノードAと最初に同期する、すなわち、ノードAからのPTPパケットに基づいてノードAの時間と同期する。ノードAの時間と同期する処理においては、ノードBの時刻同期は不確定である。ノードの時間同期が不確定であるということは、ノードの時間が同期期間中に大きく調整されることを意味する。大きな時間調整があると判定する方法は、この出願のこの実施形態では限定されない。例えば、方式は、以下の3つの場合に基づいて大きな時間調整があると判定することを含むが、これに限定されない。ケース1、2A、及び3Aでは、ノードは中間ノードである。ケース2B及び3Bでは、ノードは、ソース・ノード(すなわち、タイム・サーバ)である。ソース・ノードは、衛星信号(例えば、GPS信号)を直接トレースすることによって時間同期を実行するノード、例えば、
図1におけるノードA又はノードCを参照する。中間ノードは、上流ノードをトレースすることによって時間同期を実行するノード、例えば、
図1のノードB、ノードD、ノードE、又はノードFを指す。これに対応して、ソース・ノードのクロック・ソース信号はトレースされた衛星信号であり、中間ノードのクロック・ソース信号は上流ノードをトレースすることによって取得される時間信号であり、一般に上流ノードの時間信号と考慮されてもよい。
【0077】
ケース1:ノードがクロック・ソースを再起動又は切り替えるときに、ノードのイングレス・ポートは未較正状態(UNCALIBRATED状態)であり、ノードがクロック同期を実行していることを示す。この場合に、ノードの時間は大幅に調整される。したがって、この場合に、ノードの時間同期は不確定であると判定される。
【0078】
例示的な実施形態では、この場合、ノードの時間同期は、参照継続時間の後に確実であると考慮されてもよい。参照持続時間は、経験に基づいてセットされてもよいし、アプリケーション・シナリオに基づいてセットされてもよい。参照持続時間は、この出願のこの実施形態で限定されない。
【0079】
ケース2にはケース2Aとケース2Bを含む。
【0080】
ケース2A:ノードは、中間ノードである。ノードは、ノードの時間とクロック・ソースの時間との間の時間差(すなわち、ノードの時間と上流ノードの時間との間の時間差)がしきい値より小さいかどうかを定期的にチェックする。時間差がしきい値より大きいなら、ノードのイングレス・ポートは未較正状態(UNCALIBRATED状態)である。この場合に、ノードの時間は大幅に調整される。したがって、ノードの時間同期は不確定であると判定される。
【0081】
ケース2B:ノードは、ソース・ノード(すなわちタイム・サーバ)である。ノードは、ノードの時間とクロック・ソースの時間との間の時間差(すなわち、ノードの時間と受信された衛星信号の時間との間の時間差)がしきい値より小さいかどうかを定期的にチェックする。時間差がしきい値より大きい場合、ノードの時間同期が不確定であると判定される。
【0082】
ケース3にはケース3Aとケース3Bを含む。
【0083】
ケース3A:ノードは、中間ノードである。ノードがクロック・ソースを再起動又は切り替えた後、ノードは、ノードと上流ノードとの間の時間差がしきい値より小さいかどうかをチェックする。時間差がしきい値より大きい場合、ノードのイングレス・ポートが未較正状態(UNCALIBRATED状態)であると理解されてもよい。この場合に、ノードの時間は大幅に調整される。したがって、ノードの時間同期は不確定であると判定される。
【0084】
ケース3B:ノードは、ソース・ノードである。ノードがクロック・ソースを再起動又はスイッチングした後、ノードは、ノードと受信された衛星信号との間の時間差がしきい値より小さいかどうかをチェックする。時間差がしきい値より大きい場合、ノードの時間同期が不確定であると判定される。
【0085】
前述のケース2及びケース3の両方において、ノードの時間同期が不確定であることは、ノードと上流ノードとの間の時間差がしきい値より大きいかどうかをチェックすることによって判定されると理解されよう。ノードと上流ノードとの間の時間差がしきい値より小さいことがチェックされる場合に、ノードの時間が同期されていると判定されてもよい。追加的に、ケース2A、2B、3A、及び3Bにおけるしきい値は、同じであってもよいし、異なってもよい。しきい値の値は、経験に基づいてセットされてもよいし、又はアプリケーション・シナリオに基づいて制限されてもよい。しきい値の値は、この出願のこの実施形態において制限されない。
【0086】
図1を例にとると、ノードBの時間同期処理において、ノードBの時間は、ノードAの時間(すなわち、クロック・ソース信号で搬送される時間)に基づいて調整される。追加的に、ノードBは、さらに、ノードBの時間とノードAの時間との差がしきい値より小さいかどうかを判定することによって、ノードBの時間がノードAの時間と同期しているかどうかを判定してもよい。例えば、ノードAからPTPパケットを受信した後、ノードBは、ノードAからのPTPパケットに基づいてノードBとノードAとの間の時間差を計算する。時間差がしきい値より小さい場合、ノードBの時間がクロック・ソース信号の時間と同期していることを示す。言い換えれば、ノードBの時間は、同期確定状態(同期確定状態は、同期確定又は略して同期と呼ばれる)にある。時間差がしきい値より小さくない場合、ノードBの時間が同期不確定状態(同期不確定状態は、以後、略して同期不確定と呼ばれる)にあることを示す。
【0087】
ノードBの時間同期が不確定であるときに、ノードBの出力時間はジャンプする。ノードBがPTPパケットをノードEに送信する場合、ノードEは、PTPパケットが受信されるポートに対応するクロック・ソースを選択し、ノードEの出力時間もジャンプするようにする。この状況は、IEEE 1588アプリケーションでは避けるべきである。そうでなければ、ネットワーク全体の時間ジャンプが発生し、サービスの正常な動作に影響が及ぶ。前述は、説明のためにIEEE1588シナリオの例を使用する。NTPの場合、クロック同期の間、ノードの出力時間がジャンプし、ネットワーク全体の時間ジャンプを引き起こし、サービスの正常の動作に影響を与えるという問題も存在する。
【0088】
この観点から、この出願の実施形態は、クロック・ソースを選択するための方法を提供する。この方法では、第1のフラグが第1のパケットで搬送されて、クロック・ソースパス上のノードの時間が同期されているかどうかを下流ノードに通知する。下流ノードが上流のクロック・ソースの時間同期が不確定であることを検出した場合、下流ノードは、上流ノードのポートに対応するクロック・ソースを選択しない。このようにして、下流ノードの出力時間は影響を受けない。次に、この出願のこの実施形態で提供されるクロック・ソースを選択するための方法について、上流ノードが第2のノードであり、下流ノードが第1のノードであり、及び第1のノードがクロック・ソースを選択する例を使用して説明する。
図2に示すように、本方法は、以下の処理を含む。
【0089】
201: 第1のノードが、第1のノードの第1のポートで、第2のノードによって送信された第1のパケットを受信する。
【0090】
第1のノードは、1つ以上の上流の第2のノードに接続されており、第1のノードは、第1のノードの第1のポートで、第2のノードによって送信された第1のパケットを受信し、第1のパケットは、PTPパケット又はNTPパケットを含むが、これらに限定されない。例えば、第1のパケットは任意のタイプのPTPパケットである。IEEE1588v1には、sync(sync)パケット、follow_up(follow_up)パケット、delay_req (delay_req)パケット、delay_resp (delay_resp)パケット、管理パケットの5タイプのPTPパケットがある。バージョン1に基づくと、ピア・ディレイ・メカニズム(peer-delay mechanism)において3タプのPTPがあり、Pdelay_req (Pdelay_req)パケット、Pdelay_resp (Pdelay_resp)パケット、及びPdelay_resp_Follow_up (Pdelay_resp_Follow_up)パケットがバージョン2に追加されている。追加的に、シグナリング(signaling)パケットとアナウンス(Announce)パケットが追加される。
【0091】
sync、delay_req、follow_up、delay_respなどのパケットは、応答機構(delay request-response mechanism)を介して、通常クロックと境界クロックの時間情報の同期に使用される。Pdelay_req、Pdelay_resp、及びPdelay_resp_Follow_upパケットは、ピア・ディレイ・メカニズム(peer delay mechanism)を介して、2つのクロックポート(port)間のリンク・ディレイを測定するために使用される。Announceパケットは、同期パスを確立し、ルート・ノード及びAnnounceパケットを送信するノードのステータス及び特徴情報を送信するために使用される。管理パケットは、クロックによって維持されるPTPデータセットを照会及び更新するために使用される。シグナリング・パケットは、例えば、マスタ・ノードとスレーブ・ノードとの間でユニキャスト・パケットを送信する周波数を調整するために、他の目的のために使用される。この出願のこの実施形態で提供される方法では、第1のノードは、第1のポート上で、第2のノードによって第1のノードに送信された前述の第1のパケットのいずれか1つを受信してもよい。
【0092】
例示的な実施形態では、停電又は故障整流により第2のノードが再起動し、第2のノードの時間が第2のノードの上流ノードの時間と同期しない場合、第1のフラグは、上流の第2のノードの時間同期が不確定であることを下流のノードに通知するために、第1のパケットで搬送されてもよい。この出願のこの実施形態において提供される方法において、第1のフラグは、第1のパケットの既存のフィールドで搬送されてもよいし、第1のパケットの新たに定義されたフィールドで搬送されてもよい。第1のパケットで第1のフラグを搬送する方式は、この出願のこの実施形態では限定されない。
【0093】
例えば、第2のノードによって第1のノードの第1のポートに送信される第1のパケットは、Announceパケットである。第2のノードの時間同期が不確定である場合、第2のノードによって第1のノードに送信されたAnnounceパケットは、第1のフラグを搬送し、第1のフラグは、第2のノードの時間同期が不確定であることを示すために使用される。例示的な実施形態では、第1のフラグは、Announceパケットの既存のフィールドで搬送されてもよいし、Announceパケットの新たに追加されたフィールドで搬送されてもよい。例えば、第1のフラグはAnnounceパケットの既存のフィールドで搬送され、第1のフラグはAnnounceパケットの同期不確定(synchronizationUncertain)フラグで搬送されてもよい。例えば、synchronizationUncertainの値がTRUEであるときに、第1のフラグは、第2のノードの時間同期が不確定であることを示すために使用される。代替的には、synchronizationUncertain フラグの値は、TRUE及びFALSE以外の別の値であってもよい。第2のノードの時間同期が不確定であることを示すために使用されるsynchronizationUncertainフラグの値は、この出願のこの実施形態において限定されない。追加的に、第2のノードの時間同期が不確定であることを示すために使用されるsynchronizationUncertainフラグの値の表現形式にかかわらず、第2のノードによって送信されるAnnounceパケットは、第1フラグを搬送し、さらに、clockClass、clockAccuracy、及びoffsetScaledLogVarianceなどの他のパラメータを搬送する。
【0094】
AnnounceパケットにおけるsynchronizationUncertainでの第1のフラグを搬送する方式に加えて、この出願のこの実施形態で提供される方法は、さらに、第2のノードの時間同期が不確定であるときに、Announceパケットにおいて別のパラメータにおける第1のフラグを搬送することをサポートする。例えば、第2のノードが、時間同期が不確定であると判定した場合、第2のノードは、送信されるべきAnnounceパケットにおけるclockClass、clockAccuracy、offsetScaledLogVarianceなどの1つ以上のパラメータのうちの値を特定の値にセットする。特定の値は、第2のノードの時間同期が不確定であることを示す。
図1に示すネットワークは、一例として使用される。正常な場合に、ノードAとノードCがGPSをトレースした後、ノードAとノードCによって下流ノードBとノードDに送信されるAnnounceパケットにおけるclockClassの値は6である。第2のノードが、第2のノードの時間同期が不確定であると判定したときに、第2のノードは、AnnounceパケットにおけるclockClassを187又は248にセットし、Announceパケットを第1のノードに送信する。clockClassは、第2のノードの時間同期が不確定であることを示すために、特定の値187又は248にセットされ、第1のノードが、第2のノードをクロック・ソースとして選択しないようにする。
【0095】
第1のフラグを搬送する方式は、この出願のこの実施形態において限定されないことに留意されたい。IEEE 1588v2規格によれば、スレーブ・ポート状態のノードがクロック・ソースを選択した後、ノードは、clockClassを劣化させることなく、マスタ・ポートでのAnnounceパケットにおいて、スレーブ・ポートによって受信されたclockClassを送信する。したがって、既存のIEEE 1588v2規格が変更されない場合、AnnounceパケットにおけるsynchronizationUncertainで第1のフラグを搬送する前述の方式が使用されてもよい。
【0096】
202: 第1のパケットが第1のフラグを搬送するときに、第1のノードは、クロック・ソースを選択するときに、第1のポートに対応するクロック・ソースを選択せず、ここで、第1のフラグは、第2のノードの時間同期が不確定であることを示すために使用される。
【0097】
第1のノードが第2のノードによって送信された第1のパケットを受信した後、第1のノードは第1のパケットを解析する。第1のパケットが第1のフラグを搬送することを解析によって知ることができれば、第2のノードの時間同期が不確定であり、第1のポートに対応するクロック・ソースがクロック・ソースの選択中に選択されないことが判定されてもよい。例えば、第1のノードが、クロック・ソースを選択するときに、第1のポートに対応するクロック・ソースを選択しない方式は、第1のノードが、クロック・ソースを選択するときに、クロック・ソースを選択するために第1のポートで受信されたクロック・ソース・データを使用しないことを含むが、これに限定されない。第1のノードは、第1のポートで第1のパケットを受信する。クロック・ソースを選択するとき、第1のノードはクロック・ソースを選択するために第1のポートで受信されたクロック・ソース・データを使用せず、したがって、第1のポートに対応するクロック・ソースを選択しない。これは、時間のジャンプを避ける。
【0098】
例示的な実施形態では、第1のノードの第1のポートが第1のフラグを搬送する第1のパケットを受信した後、第1のフラグは、第2のノードの時間同期が不確定であることを示すため、第1のノードは第2のノードの時間同期不確定状態を記録してもよい。例えば、第1のノードは、第1のフラグを搬送する第1のパケットを第1のポートで受信した場合を記録し、第1のノードがクロック・ソースを選択するときに、第1のノードは、第2のノードの記録された時間同期不確定状態に基づいて、第1のポートで受信されたクロック・ソース・データを使用せず、したがって、クロック・ソースを選択するときに、第1のポートに対応するクロック・ソースを選択しない。
【0099】
第1のフラグに対応するポートを記録する前述の方式に加えて、第1のノードの各ポートはクロック・ソース・データセットを有する。例えば、第1のパケットはAnnounceパケットである。第1のフラグに加えて、第1のパケットは、clockClassやclockIDのようなクロック・ソース・データをさらに搬送する。クロック・ソース・データセットは、AnnounceパケットにおけるclockClass及びclockIDのようなクロック・ソース・データを含む。したがって、第2のノードの時間同期が不確定であるときに、クロック・ソースを選択するときに、第1のノードは、クロック・ソースを選択するために第1のポートで受信されたクロック・ソース・データを使用せず、これは、以下の2つの方式をさらに含んでもよいが、これらに限定されない。
【0100】
方式1:クロック・ソースを選択するときに、第1のノードは、第1のフラグに基づいて、第1のポートに対応するクロック・ソース・データセットを空のセットにセットし、クロック・ソースを、第1のノードのポートに対応するクロック・ソース・データセットに基づいて選択する。
【0101】
方式1では、第1のパケットは第1のフラグを搬送し、第1のフラグは、第2のノードの時間同期が不確定であることを示す。したがって、クロック・ソースを選択するときに、第1のノードは、第1のフラグに基づいて、第1のポートに対応するクロック・ソース・データセットを空のセットにセットし、次いで、クロック・ソースを、第1のノードのポートに対応するクロック・ソース・データセットに基づいて選択する。第1のノードのポートに対応するクロック・ソース・データセットは、第1のポートに対応するクロック・ソース・データセットを含む。言い換えれば、クロック・ソースを選択するときに、第1のノードは、第1のノードの全てのポートに対応するクロック・ソース・データセットを取得してもよく、次いで、全てのクロック・ソース・データセットにおけるクロック・ソース・データを比較し、クロック・ソースを選択する。第1のポートに対応するクロック・ソース・データセットは空のセットであるため、第1のポートで受信されたクロック・ソース・データは、クロック・ソースを選択するために使用されない。例えば、クロック・ソースを選択する方式については、2018年3月にリリースされたITU-T G.8275.1及びG.8275.2で定義されているBMCソースの選択処理を参照のこと。
【0102】
方式2:クロック・ソースを選択するときに、第1のノードは、第1のフラグに基づいて、第1のポートに対応するクロック・ソース・データセットを空のセットにセットし、クロック・ソースを、第1のノードのポートに対応するクロック・ソース・データセットにおける空ではないクロック・ソース・データセットにおけるクロック・ソース・データセットに基づいて選択する。
【0103】
方式2では、同様に、第1のパケットは第1のフラグを搬送し、第1のフラグは、第2のノードの時間同期が不確定であることを示す。したがって、クロック・ソースを選択するときに、第1のノードは、第1のフラグに基づいて、第1のポートに対応するクロック・ソース・データセットを空のセットにセットする。方式1とは異なり、方式2では、第1のポートに対応するクロック・ソース・データセットを空のセットにセットした後、第1のノードは、第1のノードの全てのポートに対応するクロック・ソース・データセットに基づいてクロック・ソースを選択せず、空ではないクロック・ソース・データセットのみを取得し、空ではないクロック・ソース・データセットに基づいてクロック・ソースを選択する。言い換えれば、方式2では、第1のノードは空ではないクロック・ソース・データセットにおけるクロック・ソース・データを比較して、クロック・ソースを選択する。
【0104】
例示的な実施形態では、前述の方式1又は方式2のいずれかにおいて、第1のノードが第1のフラグに基づいて、クロック・ソースを選択するときに、第1のポートに対応するクロック・ソース・データセットを空のセットにセットする方法は、クロック・ソースを選択するときに、第1のノードが、第1のポートの信号失敗属性の値を、第1のフラグに基づいて第1の値にセットし、第1の値は、信号失敗が第1のポートで発生したことを示すために使用される、セットすることと、信号失敗属性の第1の値に基づいて、第1のポートに対応するクロック・ソース・データセットを空のセットにセットすることと、を含むが、これらに限定されない。
【0105】
例えば、信号失敗属性portDS.SFは、現在ITU-T G.8275.2で定義されている。第1のポートのportDS.SFの値が第1の値、例えば真(TRUE)である場合、第1のノードは、第1のポートに対応するクロック・ソース・データセット(Erbef)を空のセットにセットする。したがって、この出願のこの実施形態で提供される方法では、ポートの信号失敗属性portDS.SFが、信号失敗属性として使用されてもよい。第1のポートのportDS.SFの第1の値がTRUEである場合、第1のポートのクロック・ソース・データセット(Erbef)は空のセットにセットされる。
【0106】
第1のポートのportDS.SFの値は、パケット・タイミング信号失敗(packet timing signal fail、PTSF)イベントを使用して判定されてもよい。例えば、第1のポートの信号失敗属性の値を、第1のフラグに基づいて第1の値にセットすることは、第1のフラグに基づいて、PTSFイベントが第1のポートで発生したことを判定することと、第1のポートのportDS.SFの値を、PTSFイベントに基づいて第1の値にセットすることと、を含む。PTSFイベントのデフォルト値はFALSEであってもよく、PTSFイベントが発生してないことを示す。PTSFイベントが発生した後、PTSFイベントの値がTRUEにセットされてもよい。PTSFイベントの値がTRUEであるときに、第1のポートのportDS.SFの値は、第1の値にセットされる。
【0107】
例えば、ITU-T G.8275.2では、portDS.SF属性は、パケット・タイミング信号失敗損失同期(PTSF-lossSync)イベントとパケット・タイミング信号失敗使用不可(PTSF-unusable)イベントに基づいて判定される。ポートがPTPパケットを受信しない場合、PTSF-lossSyncイベントが発生し、PTSF-lossSyncイベントの値が第2の値(例えば、第2の値は、TRUE)にセットされると判定される。そうでなければ、PTSF-lossSyncイベントの値は、FALSEである。ポートによって受信されたPTPパケットのパフォーマンスがノードの許容範囲を超えた場合、PTSF-unusableイベントが発生したと判定され、PTSF-unusableの値が第2の値(例えば、第2の値は、TRUE)にセットされる。そうでなければ、PTSF-unusableイベントの値は、FALSEである。PTSF-lossSyncイベント又はPTSF-unusableイベントが発生した場合、portDS.SFの値はTRUEである。この出願のこの実施形態で提供される方法では、第1のフラグに基づいて、PTSF-lossSyncイベント又はPTSF-unusableイベントが発生し、portDS.SFの値が第1の値(例えば、TRUE)であると判定されてもよい。追加的に、この出願のこの実施形態で提供される方法は、第1のポートのportDS.SF属性の値の第1の値へのセットをトリガする新しいPTSFイベントの拡張をさらにサポートする。
例えば、受信されたAnnounceパケットにおけるsynchronizationUncertain は、新しい拡張PTSFイベントに対応する。例えば、拡張PTSFイベントは、上流ノードの時間同期が不確定であるため、信号失敗が第1のポートで発生したことを示すために使用される、パケット・タイミング信号失敗同期不確定(PTSF-syncUncertain)イベントとして名付けられる。受信されたAnnounceパケットにおけるsynchronizationUncertainの値がTRUEであるときに、PTSF-syncUncertainイベントが発生すると判定される。この場合、PTSF-syncUncertainイベントの値は第2の値(例えばTRUE)にセットされ、portDS.SFの値は第1の値にセットされる。
【0108】
結論として、PTSF-lossSyncイベント、PTSF-unusableイベント、又は拡張PTSFイベント(例えば、PTSF-syncUncertain)が発生した場合、portDS.SFの値はTRUEであり、第1のポートのErbestは空のセットにセットされ、クロック・ソースを選択するときに、第1のノードは第1のポートに対応するクロック・ソース・データを使用しないようにする。したがって、第1のポートの信号失敗属性の値が第1のフラグに基づいて第1の値にセットされることは、以下の方式を含むが、これらに限定されない。
【0109】
方式1:拡張PTSFイベントがPTSF-syncUncertain イベントであることを例にとる。第1のフラグに基づいて、PTSF-syncUncertainイベントが第1のポートで発生することが判定され、上流ノードの時間同期が不確定であるため、信号失敗イベントが第1のポートで発生することを示すために使用される。追加的に、第1のポートのportDS.SFの値は、PTSF-syncUncertainイベントに基づいて第1の値にセットされる。
【0110】
例えば、PTSF-syncUncertainイベントが発生したときに、PTSF-syncUncertainイベントの値は、第2の値にセットされる。例えば、第2の値はTRUEである。言い換えると、PTSF-syncUncertain イベントが発生したときに、上流ノードの時間同期が不確定であるため、信号失敗イベントが第1のポートで発生したことを示し、したがって、第1のポートのportDS.SFの値を第1の値にセットすることがトリガされる。例えば、portDS.SFの値がTRUEにセットされ、第1のポートに対応するクロック・ソース・データセットを空のセットにセットするとトリガされる。追加的に、PTSF-syncUncertainイベントが発生したときに、PTSF-syncUncertainイベントの第2の値がまたFALSEにセットされてもよい。言い換えると、PTSF-syncUncertainイベントが発生したときに、PTSF-syncUncertainイベントの値はFALSEであり、これは、上流ノードの時間同期が不確定であるため、信号失敗イベントが第1のポートで発生したことを示す。したがって、第1のポートのportDS.SFの値を第1の値にセットすることがトリガされる。例えば、portDS.SFの値はTRUEであり、これは第1のポートに対応するクロック・ソース・データセットを空のセットにセットすることをトリガする。代替的には、PTSF-syncUncertainイベントの第2の値は、TRUE及びFALSE以外の別の形式で表わされてもよい。これは、この出願のこの実施態様において限定されない。
【0111】
方式2:第1のフラグに基づいて、PTSF-lossSyncイベントが第1のポートで発生し、第1のポートのportDS.SFの値を、PTSF-lossSyncイベントに基づいて第1の値にセットする。
【0112】
例えば、PTSF-lossSyncイベントが発生したときに、PTSF-lossSyncイベントの値は、第2の値にセットされる。第2の値は、TRUEである。言い換えると、PTSF-lossSyncイベントの値がTRUEであるときに、上流ノードの時間同期が不確定であるため、信号失敗イベントが第1のポートで発生したことを示し、したがって、第1のポートのportDS.SFの値を第1の値にセットすることがトリガされる。例えば、portDS.SFの値がTRUEにセットされ、第1のポートに対応するクロック・ソース・データセットを空のセットにセットするとトリガされる。代替的には、PTSF-lossSyncイベントの第2の値は、TRUE以外の別の形式で表わされてもよい。これは、この出願のこの実施態様で限定されない。
【0113】
方式3:第1のフラグに基づいて、PTSF-unusableなイベントが第1のポートで発生したことが判定され、第1のポートのportDS.SFの値は、PTSF-unusableイベントに基づいて第1の値にセットされる。
【0114】
例えば、PTSF-unusableイベントが発生したときに、PTSF-unusableイベントの値は、第2の値にセットされる。例えば、第2の値はTRUEである。言い換えると、PTSF-unusableイベントの値がTRUEであるときに、上流ノードの時間同期が不確定であるため、信号失敗イベントが第1のポートで発生したことを示し、したがって、第1のポートのportDS.SFの値を第1の値にセットすることがトリガされる。例えば、portDS.SFの値がTRUEにセットされ、第1のポートに対応するクロック・ソース・データセットを空のセットにセットするとトリガされる。代替的には、PTSF-unusableイベントの第2の値は、TRUE以外の別の形式で表わされてもよい。これは、この出願のこの実施態様において限定されない。
【0115】
この出願のこの実施態様において提供される方法によれば、上流の第2のノードの時間同期が不確定であるときに、第1のフラグが第1のパケットで搬送されて、第2のノードの時間同期が不確定であることを示す。このようにして、第1のフラグを搬送する第1のパケットが第1のポートで受信された後、クロック・ソースを選択するときに、下流の第1のノードは、クロック・ソースを選択するために第1のポートに対応するクロック・ソース・データを使用せず、上流ノードの時間同期が不確定であるという事実によって生じる下流ノードの時間ジャンプによるネットワーク全体の時間ジャンプを避け、サービスの正常な実行を保証する。
【0116】
次に、
図1に示すネットワークを例として使用して、この出願の実施態様において提供される方法のいくつかの可能な実装を説明する。
図1のノードEが第1のノードであり、ノードBが第2のノードであり、第1のパケットがAnnounceパケットである。
図3に示すように、クロック・ソースを、選択するための方法は、以下のステップを含む。
【0117】
301: ノードBの時間同期が不確定であるときに、ノードBは、AnnounceパケットをノードEに送信し、ここで、AnnounceパケットにおけるsynchronizationUncertainの値はTRUEである。
【0118】
302: ノードEは、第1のポートでAnnounceパケットを受信し、AnnounceパケットにおけるsynchronizationUncertainの値がTRUEであることを解析によって学び、第1のポートに対応するクロック・ソース・データセットを空のセットにセットする。
【0119】
303: ノードEは、ノードEの全てポートのクロック・ソース・データセットを取得し、ここで、クロック・ソース・データセットは、空のクロック・ソース・データセット及び空ではないクロック・ソース・データセットを含む。
【0120】
304: ノードEは、クロック・ソースを、空ではないクロック・ソース・データセットにおけるクロック・ソース・データに基づいて選択し、クロック・ソースを選択するために第1のポートに対応するクロック・ソース・データを使用しない。
【0121】
ノードEによるクロック・ソースを選択処理については、2018年3月にリリースされたITU-T G.8275.1及びG.8275.2で定義されているBMCソースの選択処理を参照のこと。
【0122】
引き続き、
図1に示すネットワークを、この出願の実施形態において提供される方法を説明するための例として使用する。
図1のノードEが第1のノードであり、ノードBが第2のノードであり、第1のパケットがAnnounceパケットである。
図4に示すように、クロック・ソースを、選択するための方法は、以下のステップを含む。
【0123】
401: ノードBの時間同期が不確定であるときに、ノードBは、AnnounceパケットをノードEに送信し、ここで、AnnounceパケットにおけるsynchronizationUncertainの値はTRUEである。
【0124】
402:ノードEは、第1のポートでAnnounceパケットを受信し、AnnounceパケットにおけるsynchronizationUncertainの値がTRUEであることを解析によって学び、第1のポートのportDS.SFの値をTRUEにセットする。
【0125】
403: ノードEは、portDS.SFの値に基づいて、第1のポートに対応するクロック・ソース・データセットを空のセットにセットする。
【0126】
404: ノードEは、ノードEの全てポートのクロック・ソース・データセットを取得し、ここで、クロック・ソース・データセットは、空のクロック・ソース・データセット及び空ではないクロック・ソース・データセットを含む。
【0127】
405: ノードEは、クロック・ソースを、空ではないクロック・ソース・データセットにおけるクロック・ソース・データに基づいて選択し、クロック・ソースを選択するために第1のポートに対応するクロック・ソース・データを使用しない。
【0128】
ノードEによるクロック・ソースを選択処理については、2018年3月にリリースされたITU-T G.8275.1及びG.8275.2で定義されているBMCソースの選択処理を参照のこと。
【0129】
図1に示されるネットワークは、依然として、この出願の実施形態において提供される方法を記述するための例として使用される。
図1のノードEが第1のノードであり、ノードBが第2のノードであり、第1のパケットがAnnounceパケットである。
図5に示すように、クロック・ソースを選択するための方法は、以下のステップを含む:。
【0130】
501: ノードBの時間同期が不確定であるときに、ノードBは、AnnounceパケットをノードEに送信し、ここで、AnnounceパケットにおけるsynchronizationUncertainの値はTRUEである。
【0131】
502: ノードEは、第1のポートでAnnounceパケットを受信し、AnnounceパケットにおけるsynchronizationUncertainの値がTRUEであることを解析によって学び、第1のポートでPTSF-syncUncertainイベントが発生したことを判定する。
【0132】
503: ノードEは、第1のポートのportDS.SFの値を、PTSF-syncUncertainイベントに基づいてTRUEにセットする。
【0133】
504: ノードEは、portDS.SFの値に基づいて、第1のポートに対応するクロック・ソース・データセットを空にセットする。
【0134】
505: ノードEは、ノードEの全てポートのクロック・ソース・データセットを取得し、クロック・ソース・データセットは、空のクロック・ソース・データセット及び空ではないクロック・ソース・データセットを含む。
【0135】
506: ノードEは、クロック・ソースを、空ではないクロック・ソース・データセットにおけるクロック・ソース・データに基づいて選択し、クロック・ソースを選択するために第1のポートに対応するクロック・ソース・データを使用しない。
【0136】
ノードEによるクロック・ソースを選択処理については、2018年3月にリリースされたITU-T G.8275.1及びG.8275.2で定義されているBMCソースの選択処理を参照のこと。
【0137】
図1に示されるネットワークは、依然として、この出願の実施形態において提供される方法を説明するための例として使用される。
図1のノードEが第1のノードであり、ノードBが第2のノードであり、第1のパケットがAnnounceパケットである。
図6に示すように、クロック・ソースを、選択するための方法は、以下のステップを含む。
【0138】
601: ノードBの時間同期が不確定であるときに、ノードBは、AnnounceパケットをノードEに送信し、ここで、AnnounceパケットにおけるsynchronizationUncertainの値はTRUEである。
【0139】
602: ノードEは、第1のポートでAnnounceパケットを受信し、AnnounceパケットにおけるsynchronizationUncertainの値がTRUEであることを解析によって学び、第1のポートでPTSF-lossSyncイベントが発生したことを判定する。
【0140】
603: ノードEは、第1のポートのportDS.SFの値を、PTSF-lossSyncイベントに基づいてTRUEにセットする。
【0141】
604: ノードEは、portDS.SFの値に基づいて、第1のポートのクロック・ソース・データセットを空にセットする。
【0142】
605: ノードEは、ノードEの全てポートのクロック・ソース・データセットを取得し、クロック・ソース・データセットは、空のクロック・ソース・データセット及び空ではないクロック・ソース・データセットを含む。
【0143】
606: ノードEは、クロック・ソースを、空ではないクロック・ソース・データセットにおけるクロック・ソース・データに基づいて選択し、クロック・ソースを選択するために第1のポートに対応するクロック・ソース・データを使用しない。
【0144】
ノードEによるクロック・ソースを選択処理については、2018年3月にリリースされたITU-T G.8275.1及びG.8275.2で定義されているBMCソースの選択処理を参照のこと。
【0145】
図1に示されるネットワークは、依然として、この出願の実施形態において提供される方法を説明するための例として使用される。
図1のノードEが第1のノードであり、ノードBが第2のノードであり、第1のパケットがAnnounceパケットである。
図7に示すように、クロック・ソースを、選択するための方法は、以下のステップを含む。
【0146】
701: ノードBの時間同期が不確定であるときに、ノードBは、ノードEにAnnounceパケットを送信し、ここで、AnnounceパケットにおけるsynchronizationUncertainの値はTRUEである。
【0147】
702: ノードEは、第1のポートでAnnounceパケットを受信し、AnnounceパケットにおけるsynchronizationUncertainの値がTRUEであることを解析によって学び、第1のポートでPTSF-unusableイベントが発生したことを判定する。
【0148】
703: ノードEは、第1のポートのportDS.SFの値を、PTSF-unusableイベントに基づいてTRUEにセットする。
【0149】
704: ノードEは、portDS.SFの値に基づいて、第1のポートのクロック・ソース・データセットを空にセットする。
【0150】
705: ノードEは、ノードEの全てポートのクロック・ソース・データセットを取得し、クロック・ソース・データセットは、空のクロック・ソース・データセット及び空ではないクロック・ソース・データセットを含む。
【0151】
706: ノードEは、クロック・ソースを、空ではないクロック・ソース・データセットにおけるクロック・ソース・データに基づいて選択し、クロック・ソースを選択するために第1のポートに対応するクロック・ソース・データを使用しない。
【0152】
ノードEによるクロック・ソースを選択処理については、2018年3月にリリースされたITU-T G.8275.1及びG.8275.2で定義されているBMCソースの選択処理を参照のこと。
【0153】
図2~
図7に示す実施形態では、第2のノードの時間同期が不確定である場合、第1のノードが、第1のノードの第1ポートで、第2のノードによって送信され、かつ第1フラグを搬送する第1パケットを受信した後、第1のノードは、第1ポートに対応するクロック・ソースを選択せず、それにより時間ジャンプを避けることに留意されたい。第2のノードの時間がその後同期される場合、第2のパケットが第1のノードに送信される。第2のパケットは第2のフラグを搬送してもよく、第2のフラグは、第2のノードの時間同期を示すために使用される。第2のフラグを搬送する第2のパケットを受信した後、第1のノードは、第1のポートで、第2のポートに対応するクロック・ソース・データセットを、空のセットとしてセットしなくてもよく、第1のポートに対応するクロック・ソースが、クロック・ソースを選択するための選択オブジェクトとして使用される。例えば、引き続き
図1に示すネットワークを使用し、ノードBの時間が同期された後、マスタ・ポートでのノードBによって送信されたAnnounceパケットにおける同期不確定synchronizationUncertainフラグの値は、FALSEである。言い換えると、第2のフラグは、synchronizationUncertainの値を介して搬送される。このようにして、ノードBの時間が同期されることが下流ノードに通知される。ノードEは、BMCアルゴリズムに基づいて、トレースされるクロック・ソースとしてノードB又はノードDを選択する。ポート1でノードBからのAnnounceパケットを受信した後、下流のノードEは、解析によって、ノードBのAnnounceパケットのsynchronizationUncertain の値がFALSEであることを学ぶ。この場合、ノードEは、ポート1のErbestデータセットをノードBのAnnounceパケット情報にセットする。依然として、
図1のノードAのclockIDがノードCのclockIDより小さいことを例としてとると、ノードEは、ノードBをトレースするためにポート1を再選択する。
【0154】
例示的な実施形態では、下流の第1のノードが第2のノードから第1のパケットを受信する第1のポートに対応するクロック・ソースを選択しないように、第2のノードの時間同期が不確定であることを示すために第1のフラグが使用される前述の方法に加えて、この出願のこの実施形態で提供される方法は、パラメータ劣化方式をサポートし、第1のポートのクロック・ソースが選択することを防止し、それによって第1のノードの時間ジャンプを避ける。具体的な実装は、以下の方法で実装Aと実装Bとを含む。
【0155】
図8に示すように、この出願のこの実施形態で提供されるクロック・ソースを選択するための方法は、以下のステップを含む。
【0156】
801: 第2のノードは第1のAnnounceパケットを生成し、ここで、第1のAnnounceパケットはターゲット・パラメータを含む。
【0157】
第1のAnnounceパケットにおけるターゲット・パラメータは、第1のターゲット・パラメータと第2のターゲット・パラメータのうちの少なくとも1つを含む。
【0158】
第1のターゲット・パラメータは、例えばPTPプロトコルにおけるマスタ・クロック優先、例えば、グランドマスタ優先度1(grandmasterPriority1)及びグランドマスタ優先度2(grandmasterPriority2)を表す。
【0159】
第2のターゲット・パラメータは、マスタ・クロック品質、例えば、PTPプロトコルにおけるグランドマスタクロック品質(grandmasterClockQuality)を表すために使用され、
クロックの国際原子時間TAIトレーサビリティを表すために使用されるパラメータ、例えば、PTPプロトコルにおいて定義されているクロッククラス(clockclass)、
クロック精度を表すために使用されるパラメータ、例えば、PTPプロトコルにおいて定義されているクロック精度(clockAccuracy)、及び
クロック安定性を表すために使用されるパラメータ、例えば、オフセット・スケールド対数分散(offsetScaledLogVariance)のうちの少なくとも1つの品質パラメータを含んでもよい。
【0160】
第2のノードは、具体的には、中間ノードであってもよいし、ソース・ノードであってもよい。第2のノードが中間ノードであるときに、ステップ801の前に、第2のノードは、さらに、上流ノードによって送信された第2のAnnounceパケットを受信し、ステップ801で、第2のAnnounceパケットに基づいて第1のAnnounceパケットを生成する。
【0161】
上述のように、第2のノードの時間は、同期確定状態であってもよいし、同期不確定状態であってもよい。この出願のこの実施形態によれば、第2のノードの時間が同期不確定状態にあるときに、第1のAnnounceパケットで搬送されるターゲット・パラメータは劣るパラメータであり、第2のノードの時間が同期確定状態にあるときに、第1のAnnounceパケットで搬送されるターゲット・パラメータは好ましいパラメータである。
【0162】
実装Aでは、第2のノードの時間同期が不確定(すなわち、第2のノードが同期不確定状態)であるときに、第1のAnnounceパケットで搬送されるターゲット・パラメータに対応するレベルは、参照レベルよりも低い。参照レベルは、第2のノードが時間同期(すなわち、同期確定状態)を実行するときのターゲット・パラメータに対応するレベルである。特定の実装の間、第1のAnnounceパケットにおけるターゲット・パラメータは、プリセット値にセットされてもよく、プリセット値に対応するレベルは、参照レベルより低い。例えば、ターゲット・パラメータはclockclass及びclockAccuracyを含み、clockclassに対応するプリセット値は248であり、clockAccuracyに対応するプリセット値は不明である。追加的に、第2のノードの時間が同期しているときに、第1のAnnounceパケットで搬送されるターゲット・パラメータに対応するレベルが参照レベルである。
【0163】
第2のノードが中間ノードであるときに、第2のAnnounceパケットで搬送されるターゲット・パラメータのレベルが参照レベルとして使用されてもよい。これに対応して、第1のAnnounceパケットで搬送されるターゲット・パラメータは、第2のAnnounceパケットで搬送されるターゲット・パラメータに劣る。例えば、第2のAnnounceパケットで搬送されるclockclassの値は6であり、第1のAnnounceパケットで搬送されるclockclassの値は6より大きい値、例えば、187又は248である。ターゲット・パラメータが複数のパラメータを含むときに、第1のAnnounceパケットで搬送されるターゲット・パラメータは、第2のAnnounceパケットで搬送されるターゲット・パラメータよりも劣ることは、第1のAnnounceパケットで搬送されるターゲット・パラメータの全てのパラメータが、第2のAnnounceパケットで搬送されるターゲット・パラメータの対応するパラメータよりも劣ることを意味することに留意されたい。例えば、ターゲット・パラメータがclockclass及びclockAccuracyを含む場合、第1のAnnounceパケットで搬送されるclockclassは、第2のAnnounceパケットで搬送されるclockclassに劣り、第1のAnnounceパケットで搬送されるclockAccuracyは、第2のAnnounceパケットで搬送されるclockAccuracyに劣る。
【0164】
第2のノードがソース・ノード(つまり、タイム・サーバ)であるときに、タイム・サーバがロック・モードにあるときのターゲット・パラメータに対応するレベルが、参照レベルとして使用されてもよい。これに対応して、第1のAnnounceパケットで搬送されるターゲット・パラメータは、タイム・サーバがロック・モードにあるときのターゲット・パラメータに劣る。ロック・モードにおけるタイム・サーバのターゲット・パラメータは、PTPプロトコルによって定義されてもよい。例えば、PTPプロトコルにおいて、タイム・サーバがロック・モードにあるときのclockclassの値は6であり、第1のAnnounceパケットで搬送されたclockclassの値は6より大きい値、例えば248であると定義される。また、タイム・サーバの時間同期が確実であるときに、第1のAnnounceパケットで搬送されるターゲット・パラメータは、時間サーバがロック・モードにあるときのターゲット・パラメータである。
【0165】
ターゲット・パラメータに対応するレベルが参照レベルより低いため、クロック・ソースを選択するときに、第1のノードは、第1のAnnounceパケットが受信されたポートに対応するクロック・ソースを選択する可能性が低くなる。
【0166】
規格が異なる場合、時間同期中の第2のノードのターゲット・パラメータに対応する参照レベルが異なり、ターゲット・パラメータの値は、参照レベルが異なるときに異なることに留意されたい。様々なノードの参照レベルは通常同じである。ノードの参照レベルが異なる可能性がある場合に、第2のノードによって第1のAnnounceパケットで搬送されるターゲット・パラメータに対応するレベルは、全てのタイプのノードの参照レベルの最小値よりも低くてもよい。例えば、ターゲット・パラメータclockclassに対して、1588v2、G.8275.1、及びG.8275.2プロトコル規格において、clockclassが参照レベルであるときに、clockclassの値は6である。G8265.1プロトコル規格では、clockclassが参照レベルであるときに、clockclassの値は84である。
【0167】
例えば、1588v2プロトコル規格では、クロッククラスが参照レベルであるときに、クロッククラスの値は6である。第2のノードの時間同期が不確定である場合、clockclassの値は187又は248にセットされてもよく、clockclassの値187又は248に対応するレベルは、clockclassの値6に対応するレベルよりも低く、またclockclassの値84に対応するレベルよりも低い。この場合に、時間が同期される他のノードによって送信された第1のAnnounceパケットのターゲット・パラメータのレベルが、第2のノードによって送信された第1のAnnounceパケットにおけるターゲット・パラメータのレベルより高い場合、第1のノードは、第1のAnnounceパケットが受信されたポートに対応するクロック・ソースを選択しない。
【0168】
追加的に、第1のAnnounceパケットに含まれるマスタ・クロック識別子はまた、第2のノードのデフォルト・データセット(default dataset)におけるクロック識別子(clockIdentity)でもよい。
【0169】
例示的な実施形態では、第2のノードが第1のAnnounceパケットを、第2のAnnounceパケットに基づいて生成する方式は、以下の方式を含むが、これらに限定されない。
【0170】
方式1:第2のAnnounceパケットにおけるターゲット・パラメータのレベルは、第1のAnnounceパケットを取得するように修正される。修正中に、第2のAnnounceパケットにおけるターゲット・パラメータは、ターゲット・パラメータのレベルより低いレベルのパラメータに修正される。例えば、第2のAnnounceパケットにおいてclockclassの値が6である場合、clockclassの値は、6より大きい値、例えば248に修正される。
【0171】
このように、第2のノードは中間ノードとして機能し、上流ノードによって送信された第2のAnnounceパケットを受信する。上流ノードの時間が同期している場合、第2のAnnounceパケットにおけるターゲット・パラメータのレベルは、上流ノードの参照レベルである。異なるノードは、異なる参照レベルを有してもよい。第2のノードの時間同期が不確定であるときに、第2のノードは、第2のAnnounceパケットにおけるターゲット・パラメータのレベルを修正し、例えば、第2のAnnounceパケットのターゲット・パラメータを劣化させ、劣化したターゲット・パラメータを搬送する第1のAnnounceパケットを取得する。ノードの参照レベルが同じである場合、第1の通知パケットで搬送され劣化したターゲット・パラメータに対応するレベルは、第2のノードの参照レベルよりも低い。ノードの参照レベルが異なる場合、第1の通知パケットで搬送され劣化したターゲット・パラメータに対応するレベルは、全てのタイプのノードの参照レベルの最小値より低い。
【0172】
第2のAnnounceパケットに対応するソース・ポートと宛先ポートは、第1のAnnounceパケットに対応するソース・ポートと宛先ポートとは異なるため、第2のAnnounceパケットを修正して第1のAnnounceパケットを取得する処理では、ターゲット・パラメータを劣化させることに加えて、第2のAnnounceパケットのソース・ポートと宛先ポートのアドレスを修正する必要がある。
【0173】
方式2:第1のAnnounceパケットは、第2のAnnounceパケットにおける情報に基づいて生成される。第1のAnnounceパケットの生成中に、第2のAnnounceパケットにおけるターゲット・パラメータより低いレベルのパラメータが、第1のAnnounceパケットの対応するフィールドにパディングされる。例えば、第2のAnnounceパケットにおけるclockclassの値は6であり、6より大きい値(例えば、248)は、第1のAnnounceパケットのclockclassフィールドにパディングされる。
【0174】
方式2では、第2のノードは、中間ノードとして機能する。第2のAnnounceパケットを受信した後、第2のノードは、第2のAnnounceパケットを解析して、第2のAnnounceパケットにおける情報を取得する。次いで、第2のノードの時間同期が不確定であるときに、第2のノードは、第2のノードのステータスと第2のAnnounceパケットにおける情報に基づいて、第1のAnnounceパケットを生成する。言い換えれば、方式2と方式1の違いは、方式2では、新しいAnnounceパケット、すなわち第1のAnnounceパケットが、第2のAnnounceパケットを修正することによって取得されるのではなく、直接生成される点にある。
【0175】
実装Bでは、第1のAnnounceパケットで搬送されるターゲット・パラメータは、第2のノードのデフォルト・クロック・パラメータ、例えば、第2のノードのデフォルト・データセット(default dataset)におけるパラメータである。デフォルト・クロック・パラメータは、プリセット・パラメータである。
【0176】
なお、デフォルト・クロック・パラメータにおける値は一般に劣る値であるため、第2のノードのデフォルト・クロック・パラメータに対応するレベルは、一般に、実装Aの参照レベルよりも低い。
【0177】
追加的に、第1のAnnounceパケットに含まれるマスタ・クロック識別子はまた、第2のノードのデフォルト・データセット(default dataset)におけるクロック識別子(clockIdentity)でもよい。
【0178】
第2のノードが、第1のAnnounceパケットを第2のAnnounceパケットに基づいて生成する方式については、前述の方式1及び方式2を参照し、詳細は再度説明しない。
【0179】
なお、上述の方式1、方式2では、第2のノードが中間ノードである例が使用される。第2のノードがネットワーク内で最初にAnnounceパケットを開始するノード(すなわち、ソース・ノード)であり、中間ノードではない場合、第2のノードの時間同期が不確定であるときに、第2のノードは、第2のノードの状態に基づいて、直接、第1のAnnounceパケットを生成してもよい。
【0180】
802: 第2のノードは第1のAnnounceパケットを第1のノードに送信し、ここで、第1のAnnounceパケットで搬送されたパラメータは、クロック・ソースを選択するために使用される。
【0181】
第2のノードが第1のAnnounceパケットを第1のノードに送信した後、第1のノードは、第1のAnnounceパケットを解析する。ノードの参照レベルが同じである場合、第1の通知パケットで搬送され劣化したターゲット・パラメータに対応するレベルは、第2のノードの参照レベルよりも低い。ノードの参照レベルが異なる場合、第1の通知パケットで搬送され劣化したターゲット・パラメータに対応するレベルは、全てのタイプのノードの参照レベルの最小値より低い。したがって、クロック・ソースを選択するときに、第1のノードは、第1のAnnounceパケットが受信されたポートに対応するクロック・ソースを選択しない。
【0182】
この出願のこの実施形態の方法によれば、上流の第2のノードの時間同期が不確定であるときに、第1のAnnounceパケットは、参照レベルより低いレベルのターゲット・パラメータを搬送する。このように、下流の第1のノードがクロック・ソースを選択するときに、第1のAnnounceパケットにおけるターゲット・パラメータのレベルが低いため、第1のAnnounceパケットが受信されるポートに対応するクロック・ソースは選択されず、上流ノードの時間同期が不確定であるという事実によって生じる下流のノードの時間ジャンプによるネットワーク全体の時間ジャンプを避け、サービスの正常な動作を保証する。
【0183】
図8に示す実施形態では、以下の例が説明のために使用されるにすぎない。すなわち、第2のノードの時間同期が不確定であるときに、第1のノードは、第1のAnnounceパケットが受信されるポートに対応するクロック・ソースを選択せず、時間ジャンプを避ける。その後、第2のノードの時間が同期される場合、第1のノードに送信されるAnnounceパケットのターゲット・パラメータのレベルは、第2のノードの参照レベルであってもよく、第1のノードは、第1のAnnounceパケットが受信されたポートに対応するクロック・ソースを選択オブジェクトとして使用して、クロック・ソースを選択する。
【0184】
この出願の一実施形態は、クロック・ソースを選択するための装置を提供する。デバイスは、第1のノードに適用される。
図9を参照すると、装置は、前記第1のノードの第1のポートで、第2のノードによって送信された第1のパケットを受信するように構成されている受信モジュール901と、前記第1のパケットが第1のフラグを搬送するときに、前記第1のノードがクロック・ソースを選択するときに、前記第1のポートに対応するクロック・ソースを選択しないことであって、前記第1のフラグは、前記第2のノードの時間同期が不確定であることを示すために使用される、選択しないことを行うように構成されている選択モジュール902と、を含む。
【0185】
例示的な実施形態では、選択モジュール902は、クロック・ソースを選択するときに、クロック・ソースを選択するために第1のポートで受信されたクロック・ソース・データを使用しないように構成されている。
【0186】
例示的な実施形態では、選択モジュール902は、第1のフラグに基づいて、第1のポートに対応するクロック・ソース・データセットを空のセットにセットし、第1のノードのポートに対応するクロック・ソース・データセットに基づいてクロック・ソースを選択するか、又は第1のノードのポートに対応するクロック・ソース・データセットにおける空ではないクロック・ソース・データセットに基づいてクロック・ソースを選択するように構成されている。
【0187】
例示的な実施形態では、選択モジュール902は、第1のポートの信号失敗属性の値を、第1のフラグに基づいて第1の値にセットすることであって、第1の値は、信号失敗が第1のポートで発生したことを示すために使用される、セットすることと、信号失敗属性の第1の値に基づいて、第1のポートに対応するクロック・ソース・データセットを空のセットにセットすることと、を行うように構成されている。
【0188】
例示的な実施形態において、第1のポートの信号失敗属性は、ポート信号失敗属性portDS.SFであり、portDS.SFの第1の値は、真TRUEである。
【0189】
例示的な実施形態では、選択モジュール902は、第1のフラグに基づいて、パケット・タイミング信号が第1のポートでPTSFイベントが発生したことを判定し、第1のポートのportDS.SFの値を、PTSFイベントに基づいて第1の値にセットするように構成されている。
【0190】
例示的な実施形態では、PTSFイベントは、パケット・タイミング信号失敗損失同期PTSF-lossSyncイベント、パケット・タイミング信号失敗使用不可PTSF-unusableイベント、又は拡張PTSFイベントである。
【0191】
例示の実施形態では、第1のパケットは、アナウンスAnnounceパケットである。
【0192】
例示的な実施形態では、Announceパケット内の同期不確定synchronizationUncertainフラグが、第1のフラグを搬送するために使用される。synchronizationUncertainの値が第3の値であるときに、第1のフラグは、第2のノードの時間同期が不確定であることを示すために使用される。
【0193】
例示的な実施形態では、synchronizationUncertainの第3の値は、TRUEである。
【0194】
この出願の一実施形態は、クロック・ソースを選択するための装置を提供する。装置は、第2のノードに適用される。
図10を参照すると、装置は、第1のアナウンスAnnounceパケットを生成するように構成されている生成モジュール1001と、第1のAnnounceパケットを第1のノードに送信することであって、第1のAnnounceパケットで搬送されたパラメータは、クロック・ソースを選択するために使用される、送信することを行うように構成されている送信モジュール1002と、を含む。
【0195】
生成モジュール1001の具体的な実装は、以下の実装X及び実装Yを含み、これらは、それぞれ、
図8に示す方法の実施形態における実装A及び実装Bに対応する。
【0196】
実装X:第2のノードの時間同期が不確定であるときに、生成モジュール1001によって生成された第1のAnnounceパケットで搬送されるターゲット・パラメータに対応するレベルは、参照レベルより低く、参照レベルは、第2のノードが時間同期を実行するときのターゲット・パラメータに対応するレベルである。
【0197】
例示的な実施形態では、ターゲット・パラメータは、クロッククラスclockclass、クロック精度clockAccuracy、及びオフセット・スケールド対数分散offsetScaledLogVarianceのうちの1つ以上のパラメータである。
【0198】
第2のノードが中間ノードであるときに、例示的な実施形態では、生成モジュール1001は、上流ノードによって送信された第2のAnnounceパケットを受信し、第2のAnnounceパケットに基づいて第1のAnnounceパケットを生成するように構成されている。この実装では、第1のAnnounceパケットで搬送されたターゲット・パラメータは、第2のAnnounceパケットで搬送されたターゲット・パラメータに劣る(すなわち、第2のAnnounceパケットで搬送されたターゲット・パラメータのレベルが参照レベルとして使用される)。第1のAnnounceパケットの生成中に、第2のAnnounceパケットにおけるターゲット・パラメータのレベルが第1のAnnounceパケットを取得するために修正されてもよく、第1のAnnounceパケットが、第2のAnnounceパケットにおける情報に基づいて生成される。
【0199】
第2のノードがタイム・サーバであるときに、第1のAnnounceパケットで搬送されたターゲット・パラメータは、タイム・サーバがロック・モードにあるときのターゲット・パラメータに劣る(すなわち、タイム・サーバがロック・モードのときのターゲット・パラメータのレベルが参照レベルとして使用される)。
【0200】
実装Y:第2のノードの時間同期が不確定であるときに、生成モジュール1001によって生成された第1のAnnounceパケットで搬送されたターゲット・パラメータは、第2のノードのデフォルト・クロック・パラメータ、例えば、第2のノードのデフォルト・データセット(default dataset)におけるパラメータである。
【0201】
図9及び
図10に提供される装置が装置の機能を実装するときに、前述の機能モジュールへの分割は、説明のための例として使用されるに過ぎない。実際のアプリケーションでは、上述の機能は、要求に基づいて実装のために異なる機能モジュールに割り当てられてもよい。言い換えれば、デバイスの内部構造は、異なる機能モジュールに分割され、上記に説明された機能の全部又は一部を実装する。追加的に、前述の実施形態で提供される装置及び方法の実施形態は、同じ概念に基づいて提供される。装置の具体的な実装処理については、方法の実施形態を参照のこと。詳細は、ここでは再度説明しない。
【0202】
この出願の一実施形態は、クロック・ソース選択を実装するためのシステムを提供し、システムは、第1のノードと第2のノードとを含む。
【0203】
第2のノードは、第1のパケットを第1のノードの第1のポートに送信するように構成されている。
【0204】
第1のノードは、第1のノードの第1のポートで、第2のノードによって送信された第1のパケットを受信するように構成されている。第1のパケットが第1のフラグを搬送するときに、第1のノードがクロック・ソースを選択するときに、第1のポートに対応するクロック・ソースを選択しない。第1のフラグは、第2のノードの時間同期が不確定であることを示すために使用される。
【0205】
例示的な実施形態では、第1のノードは、クロック・ソースを選択するときに、クロック・ソースを選択するために第1のポートで受信されたクロック・ソース・データを使用しないように構成されている。
【0206】
例示的な実施形態では、第1のノードは、第1のフラグに基づいて、第1のポートに対応するクロック・ソース・データセットを空のセットにセットし、第1のノードのポートに対応するクロック・ソース・データセットに基づいてクロック・ソースを選択するか、又は第1のノードのポートに対応するクロック・ソース・データセットにおける空ではないクロック・ソース・データセットに基づいてクロック・ソースを選択するように構成されている。
【0207】
例示的な実施形態では、第1のノードは、第1のポートの信号失敗属性の値を、第1のフラグに基づいて第1の値にセットすることであって、第1の値は、信号失敗が第1のポートで発生したことを示すために使用される、セットすることと、信号失敗属性の第1の値に基づいて、第1のポートに対応するクロック・ソース・データセットを空のセットにセットすることと、を行うように構成されている。
【0208】
例示的な実施形態において、第1のポートの信号失敗属性は、ポート信号失敗属性portDS.SFであり、portDS.SFの第1の値は、真TRUEである。
【0209】
例示的な実施形態では、第1のノードは、第1のフラグに基づいて、パケット・タイミング信号が第1のポートでPTSFイベントが発生したことを判定し、第1のポートのportDS.SFの値を、PTSFイベントに基づいて第1の値にセットするように構成されている。
【0210】
例示的な実施形態では、PTSFイベントは、パケット・タイミング信号失敗損失同期PTSF-lossSyncイベント、パケット・タイミング信号失敗使用不可PTSF-unusableイベント、又は拡張PTSFイベントである。
【0211】
例示の実施形態では、第1のパケットは、Announceパケットである。
【0212】
例示的な実施形態では、Announceパケット内の同期不確定synchronizationUncertainフラグが、第1のフラグを搬送するために使用される。synchronizationUncertainの値が第3の値であるときに、第1のフラグは、第2のノードの時間同期が不確定であることを示すために使用される。
【0213】
例示的な実施形態では、synchronizationUncertainの第3の値は、TRUEである。
【0214】
図2の前述のシステム及び方法の実施形態は、同じ概念に基づいて提供されると理解されたい。システムの具体的な実装処理については、方法の実施形態を参照のこと。詳細は、ここでは再度説明しない。
【0215】
この出願の一実施形態は、クロック・ソース選択を実装するためのシステムを提供し、システムは、第1のノードと第2のノードとを含む。
【0216】
第2のノードは、第1のAnnounceパケットを生成し、第1のAnnounceパケットを第1ノードに送信するように較正されている。
【0217】
第1のノードは、第2のノードによって送信された第1のAnnounceパケットを受信することであって、第1のAnnounceパケットで搬送されたパラメータがクロック・ソースを選択するために使用される、受信することを行うように構成されている。
【0218】
図8に示す方法の実施形態の実装Aに説明されているように、第2のノードの時間同期が不確定であるときに、第1のAnnounceパケットで搬送されるターゲット・パラメータに対応するレベルは、参照レベルより低く、参照レベルは、第2のノードが時間同期を実行するときのターゲット・パラメータに対応するレベルである。
【0219】
例示的な実施形態では、ターゲット・パラメータは、クロッククラスclockclass、クロック精度clockAccuracy、及びオフセット・スケールド対数分散offsetScaledLogVarianceのうちの1つ以上のパラメータである。
【0220】
例示的な実施形態では、第2のノードは、上流ノードによって送信された第2のAnnounceパケットを受信し、第1のAnnounceパケットを、第2のAnnounceパケットに基づいて生成するように構成されている。この実装では、第1のAnnounceパケットで搬送されたターゲット・パラメータは、第2のAnnounceパケットで搬送されたターゲット・パラメータに劣る(すなわち、第2のAnnounceパケットで搬送されたターゲット・パラメータのレベルが参照レベルとして使用される)。第1のAnnounceパケットの生成中に、第2のAnnounceパケットにおけるターゲット・パラメータのレベルが第1のAnnounceパケットを取得するために修正されてもよく、第1のAnnounceパケットが、第2のAnnounceパケットにおける情報に基づいて生成される。
【0221】
第2のノードがタイム・サーバであるときに、第1のAnnounceパケットで搬送されたターゲット・パラメータは、タイム・サーバがロック・モードにあるときのターゲット・パラメータに劣る(すなわち、タイム・サーバがロック・モードのときのターゲット・パラメータのレベルが参照レベルとして使用される)。
【0222】
図8に示す方法の実施形態の実装Bに説明されているように、第2のノードの時間同期が不確定であるときに、第1のAnnounceパケットで搬送されるターゲット・パラメータは、第2のノードのデフォルト・クロック・パラメータ、例えば、第2のノードのデフォルト・データセット(default dataset)におけるパラメータである。
【0223】
図8の前述のシステム及び方法の実施形態は、同じ概念に基づいて提供されると理解されたい。システムの具体的な実装処理については、方法の実施形態を参照のこと。詳細は、ここでは再度説明しない。
【0224】
図11を参照すると、この出願の一実施形態は、クロック・ソースを選択するためのデバイス1100をさらに提供する。
図11に示すクロック・ソースを選択するためのデバイス1100は、クロック・ソースを選択するための前述の方法に関係する動作を実行するように構成されている。クロック・ソース選択を選択するためのデバイス1100は、プロセッサ1102及びポート1103を含み、ここで、プロセッサ1102及びポート1103は、バス1104を介して接続される。
【0225】
ポート1103は、ネットワーク内の他のデバイスと通信するように構成されている。ポート1103は、無線又は有線方式で実装されてもよい。プロセッサ1102は、クロック・ソースを選択するための前述の方法のいずれか1つを実装するように構成されている。
【0226】
例示的な実施形態では、クロック・ソースを選択するためのデバイス1100は、メモリ1101をさらに含む。メモリ1101は、少なくとも1つの命令を記憶し、少なくとも1つの命令は、プロセッサ1102によってロード及び実行される。メモリ1101、プロセッサ1102、及びポート1103は、バス1104を介して互いに接続される。
【0227】
図11は、クロック・ソースを選択するためのデバイス1100の単純化された設計のみを示すことを理解されたい。実際のアプリケーションでは、クロック・ソースを選択するためのデバイスは、任意の数のインターフェース、プロセッサ、又はメモリを含んでもよい。追加的に、プロセッサは、中央処理ユニット(Central Processing Unit、CPU)であってもよいし、別の汎用プロセッサ、デジタル信号プロセッサ(digital signal processing、DSP)、特定用途向け集積回路(application-specific integrated circuit、ASIC)、フィールド・プログラマブル・ゲート・アレイ(field-programmable gate array、FPGA)、又は別のプログラマブル論理デバイス、個別ゲート若しくはトランジスタ論理デバイス、個別ハードウェア・コンポーネントなどであってもよい。汎用プロセッサは、マイクロプロセッサ、任意の従来のプロセッサなどであってもよい。プロセッサは、高度な縮小命令セット・コンピューティング・マシン(advanced RISC machines、ARM)アーキテクチャをサポートするプロセッサであってもよいことに留意されたい。
【0228】
さらに、任意選択の実施形態では、メモリは、読み出し専用メモリ及びランダム・アクセス・メモリを含み、命令及びデータをプロセッサに提供することができる。メモリは、さらに、不揮発性ランダム・アクセス・メモリを含んでもよい。例えば、メモリは、デバイス・タイプの情報をさらに記憶してもよい。
【0229】
メモリは、揮発性メモリ又は不揮発性メモリであってもよいし、揮発性メモリ及び不揮発性メモリの両方を含んでもよい。不揮発性メモリは、読み出し専用メモリ(read-only memory、ROM)、プログラマブル読み出し専用メモリ(programmable ROM、PROM)、消去可能なプログラマブル読み出し専用メモリ(erasable PROM、EPROM)、電気的に消去可能なプログラマブル読み出し専用メモリ(electrically EPROM、EEPROM)、又はフラッシュメモリであってもよい。揮発性メモリは、ランダム・アクセス・メモリ(v、RAM)であってもよく、外部キャッシュとして使用される。例えば、限定ではないが、多くの形式のRAMが利用可能であり、例えば、スタティック・ランダム・アクセス・メモリ(static RAM、SRAM)、ダイナミック・ランダム・アクセス・メモリ(dynamic random access memory、DRAM)、同期ダイナミック・ランダム・アクセス・メモリ(synchronous DRAM、SDRAM)、ダブル・データ・レート同期ダイナミック・ランダム・アクセス・メモリ(double data rate SDRAM、DDR SDRAM)、拡張同期ダイナミック・ランダム・アクセス・メモリ(enhanced SDRAM、ESDRAM)、同期ダイナミック・ランダム・アクセス・メモリ(synchlink DRAM、SLDRAM)、及びダイレクト・ランバス・ランダム・アクセス・メモリ((direct rambus RAM、DR RAM)である。
【0230】
コンピュータ可読記憶媒体がさらに提供される。記憶媒体は、少なくとも1つの命令を記憶し、命令は、プロセッサによってロードされ、実行されて、クロック・ソースを選択するための前述の方法のいずれか1つを実装する。
【0231】
この出願は、コンピュータ・プログラムを提供する。コンピュータ・プログラムがコンピュータによって実行されるときに、プロセッサ又はコンピュータは、前述の方法の実施形態において対応する動作及び/又は手順を実行することが可能になる。
【0232】
前述の実施形態の全部又は一部は、前述の実施形態では、ソフトウェア、ハードウェア、ファームウェア、又はそれらの任意の組み合わせを使用して実装されてもよい。実施形態がソフトウェアを使用して実施されるときに、実施形態の全部又は一部は、コンピュータ・プログラム製品の形式で実装されてもよい。コンピュータ・プログラム製品は、1つ以上のコンピュータ命令を含む。コンピュータ・プログラム命令がロードされ、コンピュータ上で実行されるときに、この出願による手順又は機能の全部又は一部が生成される。コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータ・ネットワーク、又は他のプログラム可能なデバイスであってもよい。コンピュータ命令は、コンピュータ可読記憶媒体に記憶されてもよいし、1つのコンピュータ可読記憶媒体から別のコンピュータ可読記憶媒体に送信されてもよい。例えば、コンピュータ命令は、ウェブサイト、コンピュータ、サーバ、又はデータ・センタから、有線(例えば、同軸ケーブル、光ファイバ、又はデジタル加入者線)又は無線(例えば、赤外線、ラジオ、又はマイクロ波)において別のウェブサイト、コンピュータ、サーバ、又はデータ・センタに送信されてもよい。コンピュータ可読記憶媒体は、コンピュータによってアクセス可能な任意の使用可能な媒体、又は1つ以上の使用可能な媒体を一体化するサーバ若しくはデータ・センタなどのデータ記憶デバイスであってもよい。使用可能な媒体は、磁気媒体(例えば、フロッピー・ディスク、ハード・ディスク、又は磁気テープ)、光媒体(例えば、DVD)、又は半導体媒体(例えば、ソリッド・ステート・ドライブSolid State Disk)などである。
【0233】
前述の説明は、この出願の実施形態に過ぎず、この出願を限定することを意図していない。この出願の精神及び原理から逸脱することなくなされるいかなる修正、同等の交換、改善などは、この出願の保護範囲に含まれるべきである。
【手続補正書】
【提出日】2022-05-12
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【0001】
この出願は、クロック技術の分野に関し、特に、クロック・ソースを選択するための方法、装置、及びシステム、並びに記憶媒体に関連する。
【背景技術】
【0002】
分散システムが通信及びネットワーク・アプリケーションでますます使用されるようになるにつれて、クロック同期はますます重要になっている。クロック同期方式として、ネットワーク時間プロトコル(network time protocol、NTP)が広く適用されている。追加的に、増大する高精度時間同期要求を満たすために、米国電気電子技術者協会(institute of electrical and electronics engineers、IEEE)1588プロトコル規格が開発されて、分散システム内の最も精密なクロックを他のクロックと同期させる。IEEE 1588プロトコル規格のフルネームは、ネットワーク測定及び制御システムのための精密クロック同期プロトコル(IEEE 1588 precision clock synchronization protocol)規格であり、略して、精密時間プロトコル(precision time protocol、PTP)と呼ばれる。IEEE 1588とNTPの両方のアプリケーション・シナリオでは、クロック・ソースをどのように選択するかが、クロック同期を維持するための鍵である。
【発明の概要】
【0003】
この出願の実施形態は、クロック・ソースを選択するための方法、装置、及びシステム、並びに記憶媒体を提供して、関連する技術における問題を解決する。技術的解決策は以下の通りである。
【0004】
第1の態様によれば、クロック・ソースを選択するための方法が提供される。方法は、第1のノードが、第1のノードの第1のポートで、第2のノードによって送信された第1のパケットを受信する。第1のパケットが第1のフラグを搬送するときに、第1のノードは、クロック・ソースを選択するときに、第1のポートに対応するクロック・ソースを選択しない。第1のフラグは、第2のノードの時間同期が不確定であることを示すために使用される。
【0005】
第1のフラグを搬送する第1のパケットが第1のポートで受信された後、クロック・ソースを選択するときに、第1のノードは、クロック・ソースを選択するために第1のポートに対応するクロック・ソース・データを使用せず、上流ノードの時間同期が不確定であるという事実によって生じる下流ノードの時間ジャンプによるネットワーク全体の時間ジャンプを避け、サービスの正常な実行を保証する。
【0006】
例示的な実施形態では、第1のノードが、クロック・ソースを選択するときに、第1のポートに対応するクロック・ソースを選択しないことは、第1のノードが、クロック・ソースを選択するときに、クロック・ソースを選択するために第1のポートで受信されたクロック・ソース・データを使用しないことを含む。
【0007】
例示的な実施形態では、第1のノードがクロック・ソースを選択するときに、クロック・ソースを選択するために第1のポートで受信されたクロック・ソース・データを使用しないことは、第1のポートに対応するクロック・ソース・データセットを、第1のフラグに基づいて空のセットにセットすることと、クロック・ソースを、第1のノードのポートに対応するクロック・ソース・データセットに基づいて選択することとを含む。第1のポートに対応するクロック・ソース・データセットは、空のセットとしてセットされ、第1のポートのクロック・ソース・データが、第1のノードのポートに対応するクロック・ソース・データセットに基づいてクロック・ソースを選択する間選択されないようにする。これは、上流ノードの時間同期が不確定であるという事実によって引き起こされる下流ノードの時間ジャンプを避ける。
【0008】
例示的な実施形態では、第1のノードがクロック・ソースを選択するときに、クロック・ソースを選択するために第1のポートで受信されたクロック・ソース・データを使用しないことは、第1のポートに対応するクロック・ソース・データセットを、第1のフラグに基づいて空のセットにセットすることと、クロック・ソースを、第1のノードのポートに対応するクロック・ソース・データセットにおける空ではないクロック・ソース・データセットに基づいて選択することとを含む。第1のポートに対応するクロック・ソース・データセットは、空のセットとしてセットされ、クロック・ソースの選択の間、クロック・ソースは、第1のノードのポートに対応するクロック・ソース・データセット内の空ではないクロック・ソース・データセットに基づいて選択されるようにし、空のセットであるクロック・ソース・データセットは、さらにスクリーニングして除かれる必要がない。これは、選択処理を単純化する。
【0009】
例示的な実施形態では、第1のポートに対応するクロック・ソース・データセットを、第1のフラグに基づいて空のセットにセットすることは、第1のポートの信号失敗属性の値を、第1のフラグに基づいて第1の値にセットすることであって、第1の値は、信号失敗が第1のポートで発生したことを示すために使用される、セットすることと、信号失敗属性の第1の値に基づいて、第1のポートに対応するクロック・ソース・データセットを空のセットにセットすることとを含む。
【0010】
例示的な実施形態では、第1のポートの信号失敗属性は、ポート信号失敗属性portDS.SFであり、portDS.SFの第1の値は、真TRUEである。ポート信号失敗属性portDS.SFは、既存の規格で定義された属性である。したがって、第1のポートに対応するクロック・ソース・データセットが、ポート信号失敗属性portDS.SFに基づいて空のセットにセットされることは、既存の規格に適用可能であり、この出願のこの実施形態で提供される方法の適用可能性を改善する。
【0011】
例示的な実施形態では、第1のポートの信号失敗属性の値を、第1のフラグに基づいて第1の値にセットすることは、第1のフラグに基づいて、パケット・タイミング信号が第1のポートでPTSFイベントが発生したことを判定することと、第1のポートのportDS.SFの値を、PTSFイベントに基づいて第1の値にセットすることと、を含む。
【0012】
例示的な実施形態では、PTSFイベントは、パケット・タイミング信号失敗損失同期PTSF-lossSyncイベント、パケット・タイミング信号失敗使用不可PTSF-unusableイベント、又は拡張PTSFイベントである。パケット・タイミング信号失敗損失同期PTSF-lossSyncイベント及びパケット・タイミング信号失敗使用不可PTSF-unusableイベントは、既存の標準で定義されたイベントであり、既存の規格に適用可能であり、この出願のこの実施形態で提供される方法の適用可能性が改善される。追加的に、PTSFイベントが拡張PTSFイベント使用することによって拡張され、ポート信号失敗属性portDS.SFを判定する方式が拡張される。
【0013】
例示の実施形態では、第1のパケットは、アナウンスAnnounceパケットである。
【0014】
例示的な実施形態では、Announceパケット内の同期不確定synchronizationUncertainフラグが、第1のフラグを搬送するために使用される。synchronizationUncertainの値が第3の値であるときに、第1のフラグは、第2のノードの時間同期が不確定であることを示すために使用される。
【0015】
例示的な実施形態では、synchronizationUncertainフラグの第3の値は、TRUEである。
【0016】
第2の態様によれば、クロック・ソースを選択するための方法が提供される。方法は、第2のノードが、第1のAnnounceパケットを生成することを含む。第2のノードの時間同期が不確定であるときに、第1のAnnounceパケットで搬送されるターゲット・パラメータに対応するレベルは、参照レベルより低い。参照レベルは、第2のノードが時間同期を実行するときのターゲット・パラメータに対応するレベルである。第2のノードは、第1のAnnounceパケットを第1のノードに送信する。第1のAnnounceパケットで搬送されるパラメータは、クロック・ソースを選択するために使用される。
【0017】
一実装では、第2のノードは、中間ノードである。第1のAnnounceパケットを生成する前に、第2のノードは、上流ノードによって送信された第2のAnnounceパケットをさらに受信し、それに対応して、第1のAnnounceパケットを、第2のAnnounceパケットに基づいて生成する。この実装では、第1のAnnounceパケットで搬送されたターゲット・パラメータは、第2のAnnounceパケットで搬送されたターゲット・パラメータに劣る(すなわち、第2のAnnounceパケットで搬送されたターゲット・パラメータのレベルが参照レベルとして使用される)。
【0018】
別の実装では、第2のノードがタイム・サーバであるときに、第1のAnnounceパケットで搬送されたターゲット・パラメータは、タイム・サーバがロック・モードにあるときのターゲット・パラメータに劣る(すなわち、タイム・サーバがロック・モードのときのターゲット・パラメータのレベルが参照レベルとして使用される)。
【0019】
上流の第2のノードの時間同期が不確定であるときに、第1のAnnounceパケットは、参照レベルより低いレベルのターゲット・パラメータを搬送する。このようにして、下流の第1のノードがクロック・ソースを選択するときに、第1のAnnounceパケットにおけるターゲット・パラメータのレベルが低いため、第1のAnnounceパケットが受信されるポートに対応するクロック・ソースは選択されず、上流ノードの時間同期が不確定であるという事実によって生じる下流のノードの時間ジャンプによるネットワーク全体の時間ジャンプを避け、サービスの正常な動作を保証する。
【0020】
例示的な実施形態では、ターゲット・パラメータは、クロッククラスclockClass、クロック精度clockAccuracy、及びオフセット・スケールド対数分散offsetScaledLogVarianceのうちの1つ以上のパラメータである。
【0021】
例示的な実施形態では、第2のノードが第1のAnnounceパケットを生成することは、第2のノードが、上流ノードによって送信された第2のAnnounceパケットを受信し、第2のAnnounceパケットにおけるターゲット・パラメータのレベルを修正して、第1のAnnounceパケットを取得することか、又は第2のAnnounceパケットにおける情報に基づいて第1のAnnounceパケットを生成することを含む。
【0022】
第3の態様によれば、クロック・ソースを選択するための装置が提供される。装置は、第1のノードにおいて使用され、装置は、第1のノードの第1のポートで、第2のノードによって送信された第1のパケットを受信するように構成されている受信モジュールと、第1のパケットが第1のフラグを搬送するときに、第1のノードがクロック・ソースを選択するときに、第1のポートに対応するクロック・ソースを選択しないことであって、第1のフラグは、第2のノードの時間同期が不確定であることを示すために使用される、選択しないことを行うように構成されている選択モジュールと、を含む。
【0023】
例示的な実施形態では、選択モジュールは、クロック・ソースを選択するときに、クロック・ソースを選択するために第1のポートで受信されたクロック・ソース・データを使用しないように構成されている。
【0024】
例示的な実施形態では、選択モジュールは、第1のフラグに基づいて、第1のポートに対応するクロック・ソース・データセットを空のセットにセットし、第1のノードのポートに対応するクロック・ソース・データセットに基づいてクロック・ソースを選択するか、又は第1のノードのポートに対応するクロック・ソース・データセットにおける空ではないクロック・ソース・データセットに基づいてクロック・ソースを選択するように構成されている。
【0025】
例示的な実施形態では、選択モジュールは、第1のポートの信号失敗属性の値を、第1のフラグに基づいて第1の値にセットすることであって、第1の値は、信号失敗が第1のポートで発生したことを示すために使用される、セットすることと、信号失敗属性の第1の値に基づいて、第1のポートに対応するクロック・ソース・データセットを空のセットにセットすることと、を行うように構成されている。
【0026】
例示的な実施形態において、第1のポートの信号失敗属性は、ポート信号失敗属性portDS.SFであり、portDS.SFの第1の値は、真TRUEである。
【0027】
例示的な実施形態では、選択モジュールは、第1のフラグに基づいて、パケット・タイミング信号が第1のポートでPTSFイベントが発生したことを判定し、第1のポートのportDS.SFの値を、PTSFイベントに基づいて第1の値にセットするように構成されている。
【0028】
例示的な実施形態では、PTSFイベントは、パケット・タイミング信号失敗損失同期PTSF-lossSyncイベント、パケット・タイミング信号失敗使用不可PTSF-unusableイベント、又は拡張PTSFイベントである。
【0029】
例示の実施形態では、第1のパケットは、アナウンスAnnounceパケットである。
【0030】
例示的な実施形態では、Announceパケット内の同期不確定synchronizationUncertainフラグが、第1のフラグを搬送するために使用される。synchronizationUncertainの値が第3の値であるときに、第1のフラグは、第2のノードの時間同期が不確定であることを示すために使用される。
【0031】
例示的な実施形態では、synchronizationUncertainフラグの第3の値は、TRUEである。
【0032】
第4の態様によれば、クロック・ソースを選択するための装置が提供される。装置は第2のノードで使用され、装置は、
第2のノードの時間同期が不確定であるときに、第1のAnnounceパケットを生成することであって、第1のAnnounceパケットで搬送されるターゲット・パラメータに対応するレベルは、参照レベルより低く、参照レベルは、第2のノードが時間同期を実行するときのターゲット・パラメータに対応するレベルである、生成することを行うように構成されている生成モジュールと、
第1のAnnounceパケットを第1のノードに送信することであって、第1のAnnounceパケットで搬送されたパラメータは、クロック・ソースを選択するために使用される、送信することを行うように構成されている送信モジュールと、を含む。
【0033】
実装では、第2のノードは中間ノードであり、生成モジュールは、具体的には、第1のAnnounceパケットを、第2のノードの上流ノードから受信された第2のAnnounceパケットに基づいて生成するように構成されている。この実装では、第1のAnnounceパケットで搬送されたターゲット・パラメータは、第2のAnnounceパケットで搬送されたターゲット・パラメータに劣る(すなわち、第2のAnnounceパケットで搬送されたターゲット・パラメータのレベルが参照レベルとして使用される)。
【0034】
別の実装では、第2のノードがタイム・サーバであるときに、第1のAnnounceパケットで搬送されたターゲット・パラメータは、タイム・サーバがロック・モードにあるときのターゲット・パラメータに劣る(すなわち、タイム・サーバがロック・モードのときのターゲット・パラメータのレベルが参照レベルとして使用される)。
【0035】
例示的な実施形態では、ターゲット・パラメータは、クロッククラスclockClass、クロック精度clockAccuracy、及びオフセット・スケールド対数分散offsetScaledLogVarianceのうちの1つ以上のパラメータである。
【0036】
例示的な実施形態では、生成モジュールは、上流ノードによって送信された第2のAnnounceパケットを受信し、第2のAnnounceパケットにおけるターゲット・パラメータのレベルを修正して、第1のAnnounceパケットを取得することが、又は第2のAnnounceパケットにおける情報に基づいて第1のアナウンスAnnounceパケットを生成することを行うように構成されている。
【0037】
第5の態様によれば、クロック・ソースを選択するための方法が提供される。システムは、第1のノード及び第2のノードを含む。第2のノードは、第1のパケットを第1のノードの第1のポートに送信するように構成されている。第1のノードは、第1のノードの第1のポートで、第2のノードによって送信された第1のパケットを受信するように構成されている。第1のパケットが第1のフラグを搬送するときに、第1のノードがクロック・ソースを選択するときに、第1のポートに対応するクロック・ソースを選択しない。第1のフラグは、第2のノードの時間同期が不確定であることを示すために使用される。
【0038】
例示的な実施形態では、第1のノードは、クロック・ソースを選択するときに、クロック・ソースを選択するために第1のポートで受信されたクロック・ソース・データを使用しないように構成されている。
【0039】
例示的な実施形態では、第1のノードは、第1のフラグに基づいて、第1のポートに対応するクロック・ソース・データセットを空のセットにセットし、第1のノードのポートに対応するクロック・ソース・データセットに基づいてクロック・ソースを選択するか、又は第1のノードのポートに対応するクロック・ソース・データセットにおける空ではないクロック・ソース・データセットに基づいてクロック・ソースを選択するように構成されている。
【0040】
例示的な実施形態では、第1のノードは、第1のポートの信号失敗属性の値を、第1のフラグに基づいて第1の値にセットすることであって、第1の値は、信号失敗が第1のポートで発生したことを示すために使用される、セットすることと、信号失敗属性の第1の値に基づいて、第1のポートに対応するクロック・ソース・データセットを空のセットにセットすることと、を行うように構成されている。
【0041】
例示的な実施形態において、第1のポートの信号失敗属性は、ポート信号失敗属性portDS.SFであり、portDS.SFの第1の値は、真TRUEである。
【0042】
例示的な実施形態では、第1のノードは、第1のフラグに基づいて、パケット・タイミング信号が第1のポートでPTSFイベントが発生したことを判定し、第1のポートのportDS.SFの値を、PTSFイベントに基づいて第1の値にセットするように構成されている。
【0043】
例示的な実施形態では、PTSFイベントは、パケット・タイミング信号失敗損失同期PTSF-lossSyncイベント、パケット・タイミング信号失敗使用不可PTSF-unusableイベント、又は拡張PTSFイベントである。
【0044】
例示の実施形態では、第1のパケットは、アナウンスAnnounceパケットである。
【0045】
例示的な実施形態では、Announceパケット内の同期不確定synchronizationUncertainフラグが、第1のフラグを搬送するために使用される。synchronizationUncertainの値が第3の値であるときに、第1のフラグは、第2のノードの時間同期が不確定であることを示すために使用される。
【0046】
例示的な実施形態では、synchronizationUncertainフラグの第3の値は、TRUEである。
【0047】
第6の態様によれば、クロック・ソースを選択するための方法が提供される。システムは、第1のノード及び第2のノードを含む。第2のノードは、第2のノードの時間同期が不確定であるときに、第1のAnnounceパケットを生成することであって、第1のAnnounceパケットで搬送されるターゲット・パラメータに対応するレベルは、参照レベルより低く、参照レベルは、第2のノードが時間同期を実行するときのターゲット・パラメータに対応するレベルである、生成することと、第1のAnnounceパケットを第1のノードに送信することとを行うように構成されている。第1のノードは、第2のノードによって送信された第1のAnnounceパケットを受信することであって、第1のAnnounceパケットで搬送されたパラメータがクロック・ソースを選択するために使用される、受信することを行うように構成されている。
【0048】
実装では、第2のノードは中間ノードであり、第1のAnnounceパケットを生成する前に、上流ノードによって送信された第2のAnnounceパケットを受信するように構成されている。これに対応して、第1のAnnounceパケットを生成するときに、第2のノードは、具体的には、第1のAnnounceパケットを、第2のAnnounceパケットに基づいて生成するように構成されている。この実装では、第1のAnnounceパケットで搬送されたターゲット・パラメータは、第2のAnnounceパケットで搬送されたターゲット・パラメータに劣る(すなわち、第2のAnnounceパケットで搬送されたターゲット・パラメータのレベルが参照レベルとして使用される)。
【0049】
別の実装では、第2のノードがタイム・サーバであるときに、第1のAnnounceパケットで搬送されたターゲット・パラメータは、タイム・サーバがロック・モードにあるときのターゲット・パラメータに劣る(すなわち、タイム・サーバがロック・モードのときのターゲット・パラメータのレベルが参照レベルとして使用される)。
【0050】
例示的な実施形態では、ターゲット・パラメータは、クロッククラスclockClass、クロック精度clockAccuracy、及びオフセット・スケールド対数分散offsetScaledLogVarianceのうちの1つ以上のパラメータである。
【0051】
例示的な実施形態では、第2のノードは、上流ノードによって送信された第2のAnnounceパケットを受信し、第2のAnnounceパケットにおけるターゲット・パラメータのレベルを修正して、第1のAnnounceパケットを取得することが、又は第2のAnnounceパケットにおける情報に基づいて第1のアナウンスAnnounceパケットを生成することを行うように構成されている。
【0052】
クロック・ソースを選択するためのデバイスがさらに提供される。デバイスは、ポート及びプロセッサを含む。ポートは、別のデバイスと通信するように構成されている。プロセッサは、クロック・ソースを選択するための前述の方法のいずれか1つを実装するように構成されている。クロック・ソースを選択するためのデバイスが第1のノードであるときに、ポートは、前述の第1のポートである。
【0053】
コンピュータ可読記憶媒体がさらに提供される。記憶媒体は、少なくとも1つの命令を記憶し、命令は、プロセッサによってロードされ、実行されて、クロック・ソースを選択するための前述の方法のいずれか1つを実装する。
【0054】
別の通信装置が提供される。装置は、トランシーバ、メモリ、及びプロセッサを含む。トランシーバ、メモリ、及びプロセッサは、内部接続チャネルを介して互いに通信する。メモリは、メモリを記憶するように構成されている。プロセッサは、メモリに記憶された命令を実行し、トランシーバを制御して信号を受信及び送信するように構成されている。追加的に、プロセッサがメモリに記憶された命令を実行するときに、プロセッサは、前述の可能な実装のいずれか1つで方法を実行することが可能となる。
【0055】
例示的な実施形態では、1つ以上のプロセッサがあり、1つ以上のメモリがある。
【0056】
例示的な実施形態では、メモリは、プロセッサと一体化されてもよく、又は、メモリとプロセッサは別々に配設される。
【0057】
特定の実装処理では、メモリは、読み出し専用メモリ(read-only memory、ROM)のような非一時的(non-transitory)メモリであってもよい。メモリ及びプロセッサは、1つのチップに一体化されてもよく、異なるチップに配設されてもよい。メモリのタイプ並びにメモリ及びプロセッサが配設される方式は、この出願のこの実施形態では限定されない。
【0058】
コンピュータ・プログラム(製品)が提供される。コンピュータ・プログラム(製品)は、コンピュータ・プログラムコードを含む。コンピュータ・プログラムがコンピュータ上で実行するときに、コンピュータは、前述の態様における方法を実行することが可能となる。
【0059】
チップが提供される。チップは、メモリに記憶された命令を呼び出して実行するように構成されているプロセッサを含み、チップがインストールされた通信デバイスは、前述の態様における方法を実行する。
【0060】
入力インターフェース、出力インターフェース、プロセッサ、及びメモリを含む別のチップが提供される。入力インターフェース、出力インターフェース、プロセッサ、及びメモリは、内部接続チャネルを介して互いに接続される。プロセッサは、メモリ内でコードを実行するように構成されている。コードが実行されるときに、プロセッサは、前述の態様における方法を実行するように構成されている。
【図面の簡単な説明】
【0061】
【
図1】この出願の一実施形態による、1588同期ネットワーク・シナリオの概略図である。
【0062】
【
図2】この出願の一実施形態による、クロック・ソースを選択するための方法のフローチャートである。
【0063】
【
図3】この出願の一実施形態による、クロック・ソースを選択するための方法のフローチャートである。
【0064】
【
図4】この出願の一実施形態による、クロック・ソースを選択するための方法のフローチャートである。
【0065】
【
図5】この出願の一実施形態による、クロック・ソースを選択するための方法のフローチャートである。
【0066】
【
図6】この出願の一実施形態による、クロック・ソースを選択するための方法のフローチャートである。
【0067】
【
図7】この出願の一実施形態による、クロック・ソースを選択するための方法のフローチャートである。
【0068】
【
図8】この出願の一実施形態による、クロック・ソースを選択するための方法のフローチャートである。
【0069】
【
図9】この出願の一実施形態による、クロック・ソースを選択するための装置の概略構造図である。
【0070】
【
図10】この出願の一実施形態による、クロック・ソースを選択するための装置の概略構造図である。
【0071】
【
図11】この出願の一実施形態による、クロック・ソースを選択するためのデバイスの概略構造図である。
【発明を実施するための形態】
【0072】
この出願の実施形態の説明において使用される用語は、この出願の特定の実施態様を説明するためにのみ使用され、この出願を限定することを意図していない。
【0073】
IEEE 1588又はNTPアプリケーション・シナリオでは、ネットワーク上のノードが停電若しくは故障整流により再起動するか、クロック・ソースを切り替えるときに、再起動又はクロック・ソースの切り替え後にノードの出力時間がジャンプする。下流ノードが、再起動が停電若しくは故障整流の後に実行されるか、又はクロック・ソース選択が実行されるクロック・ソースとしてノードを使用する場合、下流ノードの出力時間もジャンプする。その結果、ネットワーク全体の時間ジャンプが発生し、サービスの正常な動作に影響が及ぶ。
【0074】
図1に示されるIEEE 1588同期ネットワーク・シナリオが、例として使用される。ネットワークは、ノードA、B、C、D、E、及びFを含む。ノードEは、ポート1とポート2の2つのポートを含む。ポート1は、ノードBに対応し、ノードBによって送信されたPTPパケットを受信するように構成されている。ポート2は、ノードDに対応し、ノードDによって送信されたPTPパケットを受信するように構成されている。通常の場合は、ノードAとノードCは、全地球測位システム(global positioning system、GPS)をトレースし、ノードA及びノードCから下流ノードBとノードDに送信されたアナウンス(Announce)パケットにおけるクロッククラス(clockClass)の値は、6である。追加的に、ノードA及びノードCによって送信されるAnnounceパケットの他のパラメータ、例えば、IEEE 1588品質レベルを表すクロック精度(clockAccuracy)及びオフセット・スケールド対数分散(offsetScaledLogiance)は同じである。ノードBとノードDが下流ノードEに送るAnnounceパケットのclockClassの値も6である。ノードB及びノードDから送信されるAnnounceパケットの他のパラメータ、例えば、IEEE 1588品質レベルを表すclockAccuracy及びoffsetScaledLogianceも同じである。
【0075】
各ノードのポートには、マスタ状態(master、M)、スレーブ状態(slave、S)、パッシブ状態(パッシブ、P)、及び未較正(UNCALIBRATED)状態を含む4つのポート状態を有する。ポート・ステータスがmasterである通信ポートは、略してマスタ・ポートと呼ばれる。マスタ・ポートは、ノードによって選択された最高品質のクロック・ソースをネットワーク全体にブロードキャストするために使用されます。スレーブ状態のポート(略してスレーブ・ポートと呼ぶ)と未較正状態のポートは、上流ノードのクロックをトレースするために使用される。時間同期のためにポートが上流ノードのクロックをトレースするために使用されるときに、ポートのステータスは、時間同期のステータスに基づいて、スレーブ状態から未較正状態へ、又は未較正状態からスレーブ状態へと変化する。パッシブ・ポートは中間位置にあり、クロック・ソースをブロードキャストしたり、上流ノードのクロックをトレースしたりしない。ポートがパッシブ状態にある場合、PTPネットワークシステム全体に同じ品質のクロック・ソースが2つ以上あることを示す。例えば、
図1に示すように、ノードBに対応するノードE上のポートはスレーブ状態にあり、ノードDに対応するノードE上のポートはパッシブ状態にある。IEEE 1588v2プロトコル及び国際電気通信連合電気通信標準化部門(International Telecommunication Union Telecommunication Standardization Sector,、ITU-T)のG.8275.1プロトコルによれば、ノードEは、最良のマスタ・クロック(BMC)アルゴリズムに基づいて、トレースされるクロック・ソースとしてノードB又はノードDを選択する。例えば、
図1において、ノードAのclockIDはノードCのclockIDより小さく、ノードEのプライマリ・トレース・パスはA->B->Eであり、セカンダリ・トレース・パスはC->D->Eである。
【0076】
ノードBの電源がオフにされる場合、ノードEは、同期のためにセカンダリ・パスC->D->Eを選択する。このようにして、ノードEは、ノードFへの時間出力がジャンプしないことを保証することができる。ノードBの電源が再度オンにされるときに、ノードAは、PTPパケットをノードBに送信する。したがって、ノードBは、ノードAと最初に同期する、すなわち、ノードAからのPTPパケットに基づいてノードAの時間と同期する。ノードAの時間と同期する処理においては、ノードBの時刻同期は不確定である。ノードの時間同期が不確定であるということは、ノードの時間が同期期間中に大きく調整されることを意味する。大きな時間調整があると判定する方法は、この出願のこの実施形態では限定されない。例えば、方式は、以下の3つの場合に基づいて大きな時間調整があると判定することを含むが、これに限定されない。ケース1、2A、及び3Aでは、ノードは中間ノードである。ケース2B及び3Bでは、ノードは、ソース・ノード(すなわち、タイム・サーバ)である。ソース・ノードは、衛星信号(例えば、GPS信号)を直接トレースすることによって時間同期を実行するノード、例えば、
図1におけるノードA又はノードCを参照する。中間ノードは、上流ノードをトレースすることによって時間同期を実行するノード、例えば、
図1のノードB、ノードD、ノードE、又はノードFを指す。これに対応して、ソース・ノードのクロック・ソース信号はトレースされた衛星信号であり、中間ノードのクロック・ソース信号は上流ノードをトレースすることによって取得される時間信号であり、一般に上流ノードの時間信号と考慮されてもよい。
【0077】
ケース1:ノードがクロック・ソースを再起動又は切り替えるときに、ノードのイングレス・ポートは未較正状態(UNCALIBRATED状態)であり、ノードがクロック同期を実行していることを示す。この場合に、ノードの時間は大幅に調整される。したがって、この場合に、ノードの時間同期は不確定であると判定される。
【0078】
例示的な実施形態では、この場合、ノードの時間同期は、参照継続時間の後に確実であると考慮されてもよい。参照持続時間は、経験に基づいてセットされてもよいし、アプリケーション・シナリオに基づいてセットされてもよい。参照持続時間は、この出願のこの実施形態で限定されない。
【0079】
ケース2にはケース2Aとケース2Bを含む。
【0080】
ケース2A:ノードは、中間ノードである。ノードは、ノードの時間とクロック・ソースの時間との間の時間差(すなわち、ノードの時間と上流ノードの時間との間の時間差)がしきい値より小さいかどうかを定期的にチェックする。時間差がしきい値より大きいなら、ノードのイングレス・ポートは未較正状態(UNCALIBRATED状態)である。この場合に、ノードの時間は大幅に調整される。したがって、ノードの時間同期は不確定であると判定される。
【0081】
ケース2B:ノードは、ソース・ノード(すなわちタイム・サーバ)である。ノードは、ノードの時間とクロック・ソースの時間との間の時間差(すなわち、ノードの時間と受信された衛星信号の時間との間の時間差)がしきい値より小さいかどうかを定期的にチェックする。時間差がしきい値より大きい場合、ノードの時間同期が不確定であると判定される。
【0082】
ケース3にはケース3Aとケース3Bを含む。
【0083】
ケース3A:ノードは、中間ノードである。ノードがクロック・ソースを再起動又は切り替えた後、ノードは、ノードと上流ノードとの間の時間差がしきい値より小さいかどうかをチェックする。時間差がしきい値より大きい場合、ノードのイングレス・ポートが未較正状態(UNCALIBRATED状態)であると理解されてもよい。この場合に、ノードの時間は大幅に調整される。したがって、ノードの時間同期は不確定であると判定される。
【0084】
ケース3B:ノードは、ソース・ノードである。ノードがクロック・ソースを再起動又はスイッチングした後、ノードは、ノードと受信された衛星信号との間の時間差がしきい値より小さいかどうかをチェックする。時間差がしきい値より大きい場合、ノードの時間同期が不確定であると判定される。
【0085】
前述のケース2及びケース3の両方において、ノードの時間同期が不確定であることは、ノードと上流ノードとの間の時間差がしきい値より大きいかどうかをチェックすることによって判定されると理解されよう。ノードと上流ノードとの間の時間差がしきい値より小さいことがチェックされる場合に、ノードの時間が同期されていると判定されてもよい。追加的に、ケース2A、2B、3A、及び3Bにおけるしきい値は、同じであってもよいし、異なってもよい。しきい値の値は、経験に基づいてセットされてもよいし、又はアプリケーション・シナリオに基づいて制限されてもよい。しきい値の値は、この出願のこの実施形態において制限されない。
【0086】
図1を例にとると、ノードBの時間同期処理において、ノードBの時間は、ノードAの時間(すなわち、クロック・ソース信号で搬送される時間)に基づいて調整される。追加的に、ノードBは、さらに、ノードBの時間とノードAの時間との差がしきい値より小さいかどうかを判定することによって、ノードBの時間がノードAの時間と同期しているかどうかを判定してもよい。例えば、ノードAからPTPパケットを受信した後、ノードBは、ノードAからのPTPパケットに基づいてノードBとノードAとの間の時間差を計算する。時間差がしきい値より小さい場合、ノードBの時間がクロック・ソース信号の時間と同期していることを示す。言い換えれば、ノードBの時間は、同期確定状態(同期確定状態は、同期確定又は略して同期と呼ばれる)にある。時間差がしきい値より小さくない場合、ノードBの時間が同期不確定状態(同期不確定状態は、以後、略して同期不確定と呼ばれる)にあることを示す。
【0087】
ノードBの時間同期が不確定であるときに、ノードBの出力時間はジャンプする。ノードBがPTPパケットをノードEに送信する場合、ノードEは、PTPパケットが受信されるポートに対応するクロック・ソースを選択し、ノードEの出力時間もジャンプするようにする。この状況は、IEEE 1588アプリケーションでは避けるべきである。そうでなければ、ネットワーク全体の時間ジャンプが発生し、サービスの正常な動作に影響が及ぶ。前述は、説明のためにIEEE1588シナリオの例を使用する。NTPの場合、クロック同期の間、ノードの出力時間がジャンプし、ネットワーク全体の時間ジャンプを引き起こし、サービスの正常の動作に影響を与えるという問題も存在する。
【0088】
この観点から、この出願の実施形態は、クロック・ソースを選択するための方法を提供する。この方法では、第1のフラグが第1のパケットで搬送されて、クロック・ソースパス上のノードの時間が同期されているかどうかを下流ノードに通知する。下流ノードが上流のクロック・ソースの時間同期が不確定であることを検出した場合、下流ノードは、上流ノードのポートに対応するクロック・ソースを選択しない。このようにして、下流ノードの出力時間は影響を受けない。次に、この出願のこの実施形態で提供されるクロック・ソースを選択するための方法について、上流ノードが第2のノードであり、下流ノードが第1のノードであり、及び第1のノードがクロック・ソースを選択する例を使用して説明する。
図2に示すように、本方法は、以下の処理を含む。
【0089】
201: 第1のノードが、第1のノードの第1のポートで、第2のノードによって送信された第1のパケットを受信する。
【0090】
第1のノードは、1つ以上の上流の第2のノードに接続されており、第1のノードは、第1のノードの第1のポートで、第2のノードによって送信された第1のパケットを受信し、第1のパケットは、PTPパケット又はNTPパケットを含むが、これらに限定されない。例えば、第1のパケットは任意のタイプのPTPパケットである。IEEE1588v1には、sync(sync)パケット、follow_up(follow_up)パケット、delay_req (delay_req)パケット、delay_resp (delay_resp)パケット、管理パケットの5タイプのPTPパケットがある。バージョン1に基づくと、ピア・ディレイ・メカニズム(peer-delay mechanism)において3タプのPTPがあり、Pdelay_req (Pdelay_req)パケット、Pdelay_resp (Pdelay_resp)パケット、及びPdelay_resp_Follow_up (Pdelay_resp_Follow_up)パケットがバージョン2に追加されている。追加的に、シグナリング(signaling)パケットとアナウンス(Announce)パケットが追加される。
【0091】
sync、delay_req、follow_up、delay_respなどのパケットは、応答機構(delay request-response mechanism)を介して、通常クロックと境界クロックの時間情報の同期に使用される。Pdelay_req、Pdelay_resp、及びPdelay_resp_Follow_upパケットは、ピア・ディレイ・メカニズム(peer delay mechanism)を介して、2つのクロックポート(port)間のリンク・ディレイを測定するために使用される。Announceパケットは、同期パスを確立し、ルート・ノード及びAnnounceパケットを送信するノードのステータス及び特徴情報を送信するために使用される。管理パケットは、クロックによって維持されるPTPデータセットを照会及び更新するために使用される。シグナリング・パケットは、例えば、マスタ・ノードとスレーブ・ノードとの間でユニキャスト・パケットを送信する周波数を調整するために、他の目的のために使用される。この出願のこの実施形態で提供される方法では、第1のノードは、第1のポート上で、第2のノードによって第1のノードに送信された前述の第1のパケットのいずれか1つを受信してもよい。
【0092】
例示的な実施形態では、停電又は故障整流により第2のノードが再起動し、第2のノードの時間が第2のノードの上流ノードの時間と同期しない場合、第1のフラグは、上流の第2のノードの時間同期が不確定であることを下流のノードに通知するために、第1のパケットで搬送されてもよい。この出願のこの実施形態において提供される方法において、第1のフラグは、第1のパケットの既存のフィールドで搬送されてもよいし、第1のパケットの新たに定義されたフィールドで搬送されてもよい。第1のパケットで第1のフラグを搬送する方式は、この出願のこの実施形態では限定されない。
【0093】
例えば、第2のノードによって第1のノードの第1のポートに送信される第1のパケットは、Announceパケットである。第2のノードの時間同期が不確定である場合、第2のノードによって第1のノードに送信されたAnnounceパケットは、第1のフラグを搬送し、第1のフラグは、第2のノードの時間同期が不確定であることを示すために使用される。例示的な実施形態では、第1のフラグは、Announceパケットの既存のフィールドで搬送されてもよいし、Announceパケットの新たに追加されたフィールドで搬送されてもよい。例えば、第1のフラグはAnnounceパケットの既存のフィールドで搬送され、第1のフラグはAnnounceパケットの同期不確定(synchronizationUncertain)フラグで搬送されてもよい。例えば、synchronizationUncertainの値がTRUEであるときに、第1のフラグは、第2のノードの時間同期が不確定であることを示すために使用される。代替的には、synchronizationUncertain フラグの値は、TRUE及びFALSE以外の別の値であってもよい。第2のノードの時間同期が不確定であることを示すために使用されるsynchronizationUncertainフラグの値は、この出願のこの実施形態において限定されない。追加的に、第2のノードの時間同期が不確定であることを示すために使用されるsynchronizationUncertainフラグの値の表現形式にかかわらず、第2のノードによって送信されるAnnounceパケットは、第1フラグを搬送し、さらに、clockClass、clockAccuracy、及びoffsetScaledLogVarianceなどの他のパラメータを搬送する。
【0094】
AnnounceパケットにおけるsynchronizationUncertainでの第1のフラグを搬送する方式に加えて、この出願のこの実施形態で提供される方法は、さらに、第2のノードの時間同期が不確定であるときに、Announceパケットにおいて別のパラメータにおける第1のフラグを搬送することをサポートする。例えば、第2のノードが、時間同期が不確定であると判定した場合、第2のノードは、送信されるべきAnnounceパケットにおけるclockClass、clockAccuracy、offsetScaledLogVarianceなどの1つ以上のパラメータのうちの値を特定の値にセットする。特定の値は、第2のノードの時間同期が不確定であることを示す。
図1に示すネットワークは、一例として使用される。正常な場合に、ノードAとノードCがGPSをトレースした後、ノードAとノードCによって下流ノードBとノードDに送信されるAnnounceパケットにおけるclockClassの値は6である。第2のノードが、第2のノードの時間同期が不確定であると判定したときに、第2のノードは、AnnounceパケットにおけるclockClassを187又は248にセットし、Announceパケットを第1のノードに送信する。clockClassは、第2のノードの時間同期が不確定であることを示すために、特定の値187又は248にセットされ、第1のノードが、第2のノードをクロック・ソースとして選択しないようにする。
【0095】
第1のフラグを搬送する方式は、この出願のこの実施形態において限定されないことに留意されたい。IEEE 1588v2規格によれば、スレーブ・ポート状態のノードがクロック・ソースを選択した後、ノードは、clockClassを劣化させることなく、マスタ・ポートでのAnnounceパケットにおいて、スレーブ・ポートによって受信されたclockClassを送信する。したがって、既存のIEEE 1588v2規格が変更されない場合、AnnounceパケットにおけるsynchronizationUncertainで第1のフラグを搬送する前述の方式が使用されてもよい。
【0096】
202: 第1のパケットが第1のフラグを搬送するときに、第1のノードは、クロック・ソースを選択するときに、第1のポートに対応するクロック・ソースを選択せず、ここで、第1のフラグは、第2のノードの時間同期が不確定であることを示すために使用される。
【0097】
第1のノードが第2のノードによって送信された第1のパケットを受信した後、第1のノードは第1のパケットを解析する。第1のパケットが第1のフラグを搬送することを解析によって知ることができれば、第2のノードの時間同期が不確定であり、第1のポートに対応するクロック・ソースがクロック・ソースの選択中に選択されないことが判定されてもよい。例えば、第1のノードが、クロック・ソースを選択するときに、第1のポートに対応するクロック・ソースを選択しない方式は、第1のノードが、クロック・ソースを選択するときに、クロック・ソースを選択するために第1のポートで受信されたクロック・ソース・データを使用しないことを含むが、これに限定されない。第1のノードは、第1のポートで第1のパケットを受信する。クロック・ソースを選択するとき、第1のノードはクロック・ソースを選択するために第1のポートで受信されたクロック・ソース・データを使用せず、したがって、第1のポートに対応するクロック・ソースを選択しない。これは、時間のジャンプを避ける。
【0098】
例示的な実施形態では、第1のノードの第1のポートが第1のフラグを搬送する第1のパケットを受信した後、第1のフラグは、第2のノードの時間同期が不確定であることを示すため、第1のノードは第2のノードの時間同期不確定状態を記録してもよい。例えば、第1のノードは、第1のフラグを搬送する第1のパケットを第1のポートで受信した場合を記録し、第1のノードがクロック・ソースを選択するときに、第1のノードは、第2のノードの記録された時間同期不確定状態に基づいて、第1のポートで受信されたクロック・ソース・データを使用せず、したがって、クロック・ソースを選択するときに、第1のポートに対応するクロック・ソースを選択しない。
【0099】
第1のフラグに対応するポートを記録する前述の方式に加えて、第1のノードの各ポートはクロック・ソース・データセットを有する。例えば、第1のパケットはAnnounceパケットである。第1のフラグに加えて、第1のパケットは、clockClassやclockIDのようなクロック・ソース・データをさらに搬送する。クロック・ソース・データセットは、AnnounceパケットにおけるclockClass及びclockIDのようなクロック・ソース・データを含む。したがって、第2のノードの時間同期が不確定であるときに、クロック・ソースを選択するときに、第1のノードは、クロック・ソースを選択するために第1のポートで受信されたクロック・ソース・データを使用せず、これは、以下の2つの方式をさらに含んでもよいが、これらに限定されない。
【0100】
方式1:クロック・ソースを選択するときに、第1のノードは、第1のフラグに基づいて、第1のポートに対応するクロック・ソース・データセットを空のセットにセットし、クロック・ソースを、第1のノードのポートに対応するクロック・ソース・データセットに基づいて選択する。
【0101】
方式1では、第1のパケットは第1のフラグを搬送し、第1のフラグは、第2のノードの時間同期が不確定であることを示す。したがって、クロック・ソースを選択するときに、第1のノードは、第1のフラグに基づいて、第1のポートに対応するクロック・ソース・データセットを空のセットにセットし、次いで、クロック・ソースを、第1のノードのポートに対応するクロック・ソース・データセットに基づいて選択する。第1のノードのポートに対応するクロック・ソース・データセットは、第1のポートに対応するクロック・ソース・データセットを含む。言い換えれば、クロック・ソースを選択するときに、第1のノードは、第1のノードの全てのポートに対応するクロック・ソース・データセットを取得してもよく、次いで、全てのクロック・ソース・データセットにおけるクロック・ソース・データを比較し、クロック・ソースを選択する。第1のポートに対応するクロック・ソース・データセットは空のセットであるため、第1のポートで受信されたクロック・ソース・データは、クロック・ソースを選択するために使用されない。例えば、クロック・ソースを選択する方式については、2018年3月にリリースされたITU-T G.8275.1及びG.8275.2で定義されているBMCソースの選択処理を参照のこと。
【0102】
方式2:クロック・ソースを選択するときに、第1のノードは、第1のフラグに基づいて、第1のポートに対応するクロック・ソース・データセットを空のセットにセットし、クロック・ソースを、第1のノードのポートに対応するクロック・ソース・データセットにおける空ではないクロック・ソース・データセットにおけるクロック・ソース・データセットに基づいて選択する。
【0103】
方式2では、同様に、第1のパケットは第1のフラグを搬送し、第1のフラグは、第2のノードの時間同期が不確定であることを示す。したがって、クロック・ソースを選択するときに、第1のノードは、第1のフラグに基づいて、第1のポートに対応するクロック・ソース・データセットを空のセットにセットする。方式1とは異なり、方式2では、第1のポートに対応するクロック・ソース・データセットを空のセットにセットした後、第1のノードは、第1のノードの全てのポートに対応するクロック・ソース・データセットに基づいてクロック・ソースを選択せず、空ではないクロック・ソース・データセットのみを取得し、空ではないクロック・ソース・データセットに基づいてクロック・ソースを選択する。言い換えれば、方式2では、第1のノードは空ではないクロック・ソース・データセットにおけるクロック・ソース・データを比較して、クロック・ソースを選択する。
【0104】
例示的な実施形態では、前述の方式1又は方式2のいずれかにおいて、第1のノードが第1のフラグに基づいて、クロック・ソースを選択するときに、第1のポートに対応するクロック・ソース・データセットを空のセットにセットする方法は、クロック・ソースを選択するときに、第1のノードが、第1のポートの信号失敗属性の値を、第1のフラグに基づいて第1の値にセットし、第1の値は、信号失敗が第1のポートで発生したことを示すために使用される、セットすることと、信号失敗属性の第1の値に基づいて、第1のポートに対応するクロック・ソース・データセットを空のセットにセットすることと、を含むが、これらに限定されない。
【0105】
例えば、信号失敗属性portDS.SFは、現在ITU-T G.8275.2で定義されている。第1のポートのportDS.SFの値が第1の値、例えば真(TRUE)である場合、第1のノードは、第1のポートに対応するクロック・ソース・データセット(Erbef)を空のセットにセットする。したがって、この出願のこの実施形態で提供される方法では、ポートの信号失敗属性portDS.SFが、信号失敗属性として使用されてもよい。第1のポートのportDS.SFの第1の値がTRUEである場合、第1のポートのクロック・ソース・データセット(Erbef)は空のセットにセットされる。
【0106】
第1のポートのportDS.SFの値は、パケット・タイミング信号失敗(packet timing signal fail、PTSF)イベントを使用して判定されてもよい。例えば、第1のポートの信号失敗属性の値を、第1のフラグに基づいて第1の値にセットすることは、第1のフラグに基づいて、PTSFイベントが第1のポートで発生したことを判定することと、第1のポートのportDS.SFの値を、PTSFイベントに基づいて第1の値にセットすることと、を含む。PTSFイベントのデフォルト値はFALSEであってもよく、PTSFイベントが発生してないことを示す。PTSFイベントが発生した後、PTSFイベントの値がTRUEにセットされてもよい。PTSFイベントの値がTRUEであるときに、第1のポートのportDS.SFの値は、第1の値にセットされる。
【0107】
例えば、ITU-T G.8275.2では、portDS.SF属性は、パケット・タイミング信号失敗損失同期(PTSF-lossSync)イベントとパケット・タイミング信号失敗使用不可(PTSF-unusable)イベントに基づいて判定される。ポートがPTPパケットを受信しない場合、PTSF-lossSyncイベントが発生し、PTSF-lossSyncイベントの値が第2の値(例えば、第2の値は、TRUE)にセットされると判定される。そうでなければ、PTSF-lossSyncイベントの値は、FALSEである。ポートによって受信されたPTPパケットのパフォーマンスがノードの許容範囲を超えた場合、PTSF-unusableイベントが発生したと判定され、PTSF-unusableの値が第2の値(例えば、第2の値は、TRUE)にセットされる。そうでなければ、PTSF-unusableイベントの値は、FALSEである。PTSF-lossSyncイベント又はPTSF-unusableイベントが発生した場合、portDS.SFの値はTRUEである。この出願のこの実施形態で提供される方法では、第1のフラグに基づいて、PTSF-lossSyncイベント又はPTSF-unusableイベントが発生し、portDS.SFの値が第1の値(例えば、TRUE)であると判定されてもよい。追加的に、この出願のこの実施形態で提供される方法は、第1のポートのportDS.SF属性の値の第1の値へのセットをトリガする新しいPTSFイベントの拡張をさらにサポートする。
例えば、受信されたAnnounceパケットにおけるsynchronizationUncertain は、新しい拡張PTSFイベントに対応する。例えば、拡張PTSFイベントは、上流ノードの時間同期が不確定であるため、信号失敗が第1のポートで発生したことを示すために使用される、パケット・タイミング信号失敗同期不確定(PTSF-syncUncertain)イベントとして名付けられる。受信されたAnnounceパケットにおけるsynchronizationUncertainの値がTRUEであるときに、PTSF-syncUncertainイベントが発生すると判定される。この場合、PTSF-syncUncertainイベントの値は第2の値(例えばTRUE)にセットされ、portDS.SFの値は第1の値にセットされる。
【0108】
結論として、PTSF-lossSyncイベント、PTSF-unusableイベント、又は拡張PTSFイベント(例えば、PTSF-syncUncertain)が発生した場合、portDS.SFの値はTRUEであり、第1のポートのErbestは空のセットにセットされ、クロック・ソースを選択するときに、第1のノードは第1のポートに対応するクロック・ソース・データを使用しないようにする。したがって、第1のポートの信号失敗属性の値が第1のフラグに基づいて第1の値にセットされることは、以下の方式を含むが、これらに限定されない。
【0109】
方式1:拡張PTSFイベントがPTSF-syncUncertain イベントであることを例にとる。第1のフラグに基づいて、PTSF-syncUncertainイベントが第1のポートで発生することが判定され、上流ノードの時間同期が不確定であるため、信号失敗イベントが第1のポートで発生することを示すために使用される。追加的に、第1のポートのportDS.SFの値は、PTSF-syncUncertainイベントに基づいて第1の値にセットされる。
【0110】
例えば、PTSF-syncUncertainイベントが発生したときに、PTSF-syncUncertainイベントの値は、第2の値にセットされる。例えば、第2の値はTRUEである。言い換えると、PTSF-syncUncertain イベントが発生したときに、上流ノードの時間同期が不確定であるため、信号失敗イベントが第1のポートで発生したことを示し、したがって、第1のポートのportDS.SFの値を第1の値にセットすることがトリガされる。例えば、portDS.SFの値がTRUEにセットされ、第1のポートに対応するクロック・ソース・データセットを空のセットにセットするとトリガされる。追加的に、PTSF-syncUncertainイベントが発生したときに、PTSF-syncUncertainイベントの第2の値がまたFALSEにセットされてもよい。言い換えると、PTSF-syncUncertainイベントが発生したときに、PTSF-syncUncertainイベントの値はFALSEであり、これは、上流ノードの時間同期が不確定であるため、信号失敗イベントが第1のポートで発生したことを示す。したがって、第1のポートのportDS.SFの値を第1の値にセットすることがトリガされる。例えば、portDS.SFの値はTRUEであり、これは第1のポートに対応するクロック・ソース・データセットを空のセットにセットすることをトリガする。代替的には、PTSF-syncUncertainイベントの第2の値は、TRUE及びFALSE以外の別の形式で表わされてもよい。これは、この出願のこの実施態様において限定されない。
【0111】
方式2:第1のフラグに基づいて、PTSF-lossSyncイベントが第1のポートで発生し、第1のポートのportDS.SFの値を、PTSF-lossSyncイベントに基づいて第1の値にセットする。
【0112】
例えば、PTSF-lossSyncイベントが発生したときに、PTSF-lossSyncイベントの値は、第2の値にセットされる。第2の値は、TRUEである。言い換えると、PTSF-lossSyncイベントの値がTRUEであるときに、上流ノードの時間同期が不確定であるため、信号失敗イベントが第1のポートで発生したことを示し、したがって、第1のポートのportDS.SFの値を第1の値にセットすることがトリガされる。例えば、portDS.SFの値がTRUEにセットされ、第1のポートに対応するクロック・ソース・データセットを空のセットにセットするとトリガされる。代替的には、PTSF-lossSyncイベントの第2の値は、TRUE以外の別の形式で表わされてもよい。これは、この出願のこの実施態様で限定されない。
【0113】
方式3:第1のフラグに基づいて、PTSF-unusableなイベントが第1のポートで発生したことが判定され、第1のポートのportDS.SFの値は、PTSF-unusableイベントに基づいて第1の値にセットされる。
【0114】
例えば、PTSF-unusableイベントが発生したときに、PTSF-unusableイベントの値は、第2の値にセットされる。例えば、第2の値はTRUEである。言い換えると、PTSF-unusableイベントの値がTRUEであるときに、上流ノードの時間同期が不確定であるため、信号失敗イベントが第1のポートで発生したことを示し、したがって、第1のポートのportDS.SFの値を第1の値にセットすることがトリガされる。例えば、portDS.SFの値がTRUEにセットされ、第1のポートに対応するクロック・ソース・データセットを空のセットにセットするとトリガされる。代替的には、PTSF-unusableイベントの第2の値は、TRUE以外の別の形式で表わされてもよい。これは、この出願のこの実施態様において限定されない。
【0115】
この出願のこの実施態様において提供される方法によれば、上流の第2のノードの時間同期が不確定であるときに、第1のフラグが第1のパケットで搬送されて、第2のノードの時間同期が不確定であることを示す。このようにして、第1のフラグを搬送する第1のパケットが第1のポートで受信された後、クロック・ソースを選択するときに、下流の第1のノードは、クロック・ソースを選択するために第1のポートに対応するクロック・ソース・データを使用せず、上流ノードの時間同期が不確定であるという事実によって生じる下流ノードの時間ジャンプによるネットワーク全体の時間ジャンプを避け、サービスの正常な実行を保証する。
【0116】
次に、
図1に示すネットワークを例として使用して、この出願の実施態様において提供される方法のいくつかの可能な実装を説明する。
図1のノードEが第1のノードであり、ノードBが第2のノードであり、第1のパケットがAnnounceパケットである。
図3に示すように、クロック・ソースを、選択するための方法は、以下のステップを含む。
【0117】
301: ノードBの時間同期が不確定であるときに、ノードBは、AnnounceパケットをノードEに送信し、ここで、AnnounceパケットにおけるsynchronizationUncertainの値はTRUEである。
【0118】
302: ノードEは、第1のポートでAnnounceパケットを受信し、AnnounceパケットにおけるsynchronizationUncertainの値がTRUEであることを解析によって学び、第1のポートに対応するクロック・ソース・データセットを空のセットにセットする。
【0119】
303: ノードEは、ノードEの全てポートのクロック・ソース・データセットを取得し、ここで、クロック・ソース・データセットは、空のクロック・ソース・データセット及び空ではないクロック・ソース・データセットを含む。
【0120】
304: ノードEは、クロック・ソースを、空ではないクロック・ソース・データセットにおけるクロック・ソース・データに基づいて選択し、クロック・ソースを選択するために第1のポートに対応するクロック・ソース・データを使用しない。
【0121】
ノードEによるクロック・ソースを選択処理については、2018年3月にリリースされたITU-T G.8275.1及びG.8275.2で定義されているBMCソースの選択処理を参照のこと。
【0122】
引き続き、
図1に示すネットワークを、この出願の実施形態において提供される方法を説明するための例として使用する。
図1のノードEが第1のノードであり、ノードBが第2のノードであり、第1のパケットがAnnounceパケットである。
図4に示すように、クロック・ソースを、選択するための方法は、以下のステップを含む。
【0123】
401: ノードBの時間同期が不確定であるときに、ノードBは、AnnounceパケットをノードEに送信し、ここで、AnnounceパケットにおけるsynchronizationUncertainの値はTRUEである。
【0124】
402:ノードEは、第1のポートでAnnounceパケットを受信し、AnnounceパケットにおけるsynchronizationUncertainの値がTRUEであることを解析によって学び、第1のポートのportDS.SFの値をTRUEにセットする。
【0125】
403: ノードEは、portDS.SFの値に基づいて、第1のポートに対応するクロック・ソース・データセットを空のセットにセットする。
【0126】
404: ノードEは、ノードEの全てポートのクロック・ソース・データセットを取得し、ここで、クロック・ソース・データセットは、空のクロック・ソース・データセット及び空ではないクロック・ソース・データセットを含む。
【0127】
405: ノードEは、クロック・ソースを、空ではないクロック・ソース・データセットにおけるクロック・ソース・データに基づいて選択し、クロック・ソースを選択するために第1のポートに対応するクロック・ソース・データを使用しない。
【0128】
ノードEによるクロック・ソースを選択処理については、2018年3月にリリースされたITU-T G.8275.1及びG.8275.2で定義されているBMCソースの選択処理を参照のこと。
【0129】
図1に示されるネットワークは、依然として、この出願の実施形態において提供される方法を記述するための例として使用される。
図1のノードEが第1のノードであり、ノードBが第2のノードであり、第1のパケットがAnnounceパケットである。
図5に示すように、クロック・ソースを選択するための方法は、以下のステップを含む:。
【0130】
501: ノードBの時間同期が不確定であるときに、ノードBは、AnnounceパケットをノードEに送信し、ここで、AnnounceパケットにおけるsynchronizationUncertainの値はTRUEである。
【0131】
502: ノードEは、第1のポートでAnnounceパケットを受信し、AnnounceパケットにおけるsynchronizationUncertainの値がTRUEであることを解析によって学び、第1のポートでPTSF-syncUncertainイベントが発生したことを判定する。
【0132】
503: ノードEは、第1のポートのportDS.SFの値を、PTSF-syncUncertainイベントに基づいてTRUEにセットする。
【0133】
504: ノードEは、portDS.SFの値に基づいて、第1のポートに対応するクロック・ソース・データセットを空にセットする。
【0134】
505: ノードEは、ノードEの全てポートのクロック・ソース・データセットを取得し、クロック・ソース・データセットは、空のクロック・ソース・データセット及び空ではないクロック・ソース・データセットを含む。
【0135】
506: ノードEは、クロック・ソースを、空ではないクロック・ソース・データセットにおけるクロック・ソース・データに基づいて選択し、クロック・ソースを選択するために第1のポートに対応するクロック・ソース・データを使用しない。
【0136】
ノードEによるクロック・ソースを選択処理については、2018年3月にリリースされたITU-T G.8275.1及びG.8275.2で定義されているBMCソースの選択処理を参照のこと。
【0137】
図1に示されるネットワークは、依然として、この出願の実施形態において提供される方法を説明するための例として使用される。
図1のノードEが第1のノードであり、ノードBが第2のノードであり、第1のパケットがAnnounceパケットである。
図6に示すように、クロック・ソースを、選択するための方法は、以下のステップを含む。
【0138】
601: ノードBの時間同期が不確定であるときに、ノードBは、AnnounceパケットをノードEに送信し、ここで、AnnounceパケットにおけるsynchronizationUncertainの値はTRUEである。
【0139】
602: ノードEは、第1のポートでAnnounceパケットを受信し、AnnounceパケットにおけるsynchronizationUncertainの値がTRUEであることを解析によって学び、第1のポートでPTSF-lossSyncイベントが発生したことを判定する。
【0140】
603: ノードEは、第1のポートのportDS.SFの値を、PTSF-lossSyncイベントに基づいてTRUEにセットする。
【0141】
604: ノードEは、portDS.SFの値に基づいて、第1のポートのクロック・ソース・データセットを空にセットする。
【0142】
605: ノードEは、ノードEの全てポートのクロック・ソース・データセットを取得し、クロック・ソース・データセットは、空のクロック・ソース・データセット及び空ではないクロック・ソース・データセットを含む。
【0143】
606: ノードEは、クロック・ソースを、空ではないクロック・ソース・データセットにおけるクロック・ソース・データに基づいて選択し、クロック・ソースを選択するために第1のポートに対応するクロック・ソース・データを使用しない。
【0144】
ノードEによるクロック・ソースを選択処理については、2018年3月にリリースされたITU-T G.8275.1及びG.8275.2で定義されているBMCソースの選択処理を参照のこと。
【0145】
図1に示されるネットワークは、依然として、この出願の実施形態において提供される方法を説明するための例として使用される。
図1のノードEが第1のノードであり、ノードBが第2のノードであり、第1のパケットがAnnounceパケットである。
図7に示すように、クロック・ソースを、選択するための方法は、以下のステップを含む。
【0146】
701: ノードBの時間同期が不確定であるときに、ノードBは、ノードEにAnnounceパケットを送信し、ここで、AnnounceパケットにおけるsynchronizationUncertainの値はTRUEである。
【0147】
702: ノードEは、第1のポートでAnnounceパケットを受信し、AnnounceパケットにおけるsynchronizationUncertainの値がTRUEであることを解析によって学び、第1のポートでPTSF-unusableイベントが発生したことを判定する。
【0148】
703: ノードEは、第1のポートのportDS.SFの値を、PTSF-unusableイベントに基づいてTRUEにセットする。
【0149】
704: ノードEは、portDS.SFの値に基づいて、第1のポートのクロック・ソース・データセットを空にセットする。
【0150】
705: ノードEは、ノードEの全てポートのクロック・ソース・データセットを取得し、クロック・ソース・データセットは、空のクロック・ソース・データセット及び空ではないクロック・ソース・データセットを含む。
【0151】
706: ノードEは、クロック・ソースを、空ではないクロック・ソース・データセットにおけるクロック・ソース・データに基づいて選択し、クロック・ソースを選択するために第1のポートに対応するクロック・ソース・データを使用しない。
【0152】
ノードEによるクロック・ソースを選択処理については、2018年3月にリリースされたITU-T G.8275.1及びG.8275.2で定義されているBMCソースの選択処理を参照のこと。
【0153】
図2~
図7に示す実施形態では、第2のノードの時間同期が不確定である場合、第1のノードが、第1のノードの第1ポートで、第2のノードによって送信され、かつ第1フラグを搬送する第1パケットを受信した後、第1のノードは、第1ポートに対応するクロック・ソースを選択せず、それにより時間ジャンプを避けることに留意されたい。第2のノードの時間がその後同期される場合、第2のパケットが第1のノードに送信される。第2のパケットは第2のフラグを搬送してもよく、第2のフラグは、第2のノードの時間同期を示すために使用される。第2のフラグを搬送する第2のパケットを受信した後、第1のノードは、第1のポートで、第2のポートに対応するクロック・ソース・データセットを、空のセットとしてセットしなくてもよく、第1のポートに対応するクロック・ソースが、クロック・ソースを選択するための選択オブジェクトとして使用される。例えば、引き続き
図1に示すネットワークを使用し、ノードBの時間が同期された後、マスタ・ポートでのノードBによって送信されたAnnounceパケットにおける同期不確定synchronizationUncertainフラグの値は、FALSEである。言い換えると、第2のフラグは、synchronizationUncertainの値を介して搬送される。このようにして、ノードBの時間が同期されることが下流ノードに通知される。ノードEは、BMCアルゴリズムに基づいて、トレースされるクロック・ソースとしてノードB又はノードDを選択する。ポート1でノードBからのAnnounceパケットを受信した後、下流のノードEは、解析によって、ノードBのAnnounceパケットのsynchronizationUncertain の値がFALSEであることを学ぶ。この場合、ノードEは、ポート1のErbestデータセットをノードBのAnnounceパケット情報にセットする。依然として、
図1のノードAのclockIDがノードCのclockIDより小さいことを例としてとると、ノードEは、ノードBをトレースするためにポート1を再選択する。
【0154】
例示的な実施形態では、下流の第1のノードが第2のノードから第1のパケットを受信する第1のポートに対応するクロック・ソースを選択しないように、第2のノードの時間同期が不確定であることを示すために第1のフラグが使用される前述の方法に加えて、この出願のこの実施形態で提供される方法は、パラメータ劣化方式をサポートし、第1のポートのクロック・ソースが選択することを防止し、それによって第1のノードの時間ジャンプを避ける。具体的な実装は、以下の方法で実装Aと実装Bとを含む。
【0155】
図8に示すように、この出願のこの実施形態で提供されるクロック・ソースを選択するための方法は、以下のステップを含む。
【0156】
801: 第2のノードは第1のAnnounceパケットを生成し、ここで、第1のAnnounceパケットはターゲット・パラメータを含む。
【0157】
第1のAnnounceパケットにおけるターゲット・パラメータは、第1のターゲット・パラメータと第2のターゲット・パラメータのうちの少なくとも1つを含む。
【0158】
第1のターゲット・パラメータは、例えばPTPプロトコルにおけるマスタ・クロック優先、例えば、グランドマスタ優先度1(grandmasterPriority1)及びグランドマスタ優先度2(grandmasterPriority2)を表す。
【0159】
第2のターゲット・パラメータは、マスタ・クロック品質、例えば、PTPプロトコルにおけるグランドマスタクロック品質(grandmasterClockQuality)を表すために使用され、
クロックの国際原子時間TAIトレーサビリティを表すために使用されるパラメータ、例えば、PTPプロトコルにおいて定義されているクロッククラス(clockClass)、
クロック精度を表すために使用されるパラメータ、例えば、PTPプロトコルにおいて定義されているクロック精度(clockAccuracy)、及び
クロック安定性を表すために使用されるパラメータ、例えば、オフセット・スケールド対数分散(offsetScaledLogVariance)のうちの少なくとも1つの品質パラメータを含んでもよい。
【0160】
第2のノードは、具体的には、中間ノードであってもよいし、ソース・ノードであってもよい。第2のノードが中間ノードであるときに、ステップ801の前に、第2のノードは、さらに、上流ノードによって送信された第2のAnnounceパケットを受信し、ステップ801で、第2のAnnounceパケットに基づいて第1のAnnounceパケットを生成する。
【0161】
上述のように、第2のノードの時間は、同期確定状態であってもよいし、同期不確定状態であってもよい。この出願のこの実施形態によれば、第2のノードの時間が同期不確定状態にあるときに、第1のAnnounceパケットで搬送されるターゲット・パラメータは劣るパラメータであり、第2のノードの時間が同期確定状態にあるときに、第1のAnnounceパケットで搬送されるターゲット・パラメータは好ましいパラメータである。
【0162】
実装Aでは、第2のノードの時間同期が不確定(すなわち、第2のノードが同期不確定状態)であるときに、第1のAnnounceパケットで搬送されるターゲット・パラメータに対応するレベルは、参照レベルよりも低い。参照レベルは、第2のノードが時間同期(すなわち、同期確定状態)を実行するときのターゲット・パラメータに対応するレベルである。特定の実装の間、第1のAnnounceパケットにおけるターゲット・パラメータは、プリセット値にセットされてもよく、プリセット値に対応するレベルは、参照レベルより低い。例えば、ターゲット・パラメータはclockclass及びclockAccuracyを含み、clockclassに対応するプリセット値は248であり、clockAccuracyに対応するプリセット値は不明である。追加的に、第2のノードの時間が同期しているときに、第1のAnnounceパケットで搬送されるターゲット・パラメータに対応するレベルが参照レベルである。
【0163】
第2のノードが中間ノードであるときに、第2のAnnounceパケットで搬送されるターゲット・パラメータのレベルが参照レベルとして使用されてもよい。これに対応して、第1のAnnounceパケットで搬送されるターゲット・パラメータは、第2のAnnounceパケットで搬送されるターゲット・パラメータに劣る。例えば、第2のAnnounceパケットで搬送されるclockclassの値は6であり、第1のAnnounceパケットで搬送されるclockclassの値は6より大きい値、例えば、187又は248である。ターゲット・パラメータが複数のパラメータを含むときに、第1のAnnounceパケットで搬送されるターゲット・パラメータは、第2のAnnounceパケットで搬送されるターゲット・パラメータよりも劣ることは、第1のAnnounceパケットで搬送されるターゲット・パラメータの全てのパラメータが、第2のAnnounceパケットで搬送されるターゲット・パラメータの対応するパラメータよりも劣ることを意味することに留意されたい。例えば、ターゲット・パラメータがclockclass及びclockAccuracyを含む場合、第1のAnnounceパケットで搬送されるclockclassは、第2のAnnounceパケットで搬送されるclockclassに劣り、第1のAnnounceパケットで搬送されるclockAccuracyは、第2のAnnounceパケットで搬送されるclockAccuracyに劣る。
【0164】
第2のノードがソース・ノード(つまり、タイム・サーバ)であるときに、タイム・サーバがロック・モードにあるときのターゲット・パラメータに対応するレベルが、参照レベルとして使用されてもよい。これに対応して、第1のAnnounceパケットで搬送されるターゲット・パラメータは、タイム・サーバがロック・モードにあるときのターゲット・パラメータに劣る。ロック・モードにおけるタイム・サーバのターゲット・パラメータは、PTPプロトコルによって定義されてもよい。例えば、PTPプロトコルにおいて、タイム・サーバがロック・モードにあるときのclockclassの値は6であり、第1のAnnounceパケットで搬送されたclockclassの値は6より大きい値、例えば248であると定義される。また、タイム・サーバの時間同期が確実であるときに、第1のAnnounceパケットで搬送されるターゲット・パラメータは、時間サーバがロック・モードにあるときのターゲット・パラメータである。
【0165】
ターゲット・パラメータに対応するレベルが参照レベルより低いため、クロック・ソースを選択するときに、第1のノードは、第1のAnnounceパケットが受信されたポートに対応するクロック・ソースを選択する可能性が低くなる。
【0166】
規格が異なる場合、時間同期中の第2のノードのターゲット・パラメータに対応する参照レベルが異なり、ターゲット・パラメータの値は、参照レベルが異なるときに異なることに留意されたい。様々なノードの参照レベルは通常同じである。ノードの参照レベルが異なる可能性がある場合に、第2のノードによって第1のAnnounceパケットで搬送されるターゲット・パラメータに対応するレベルは、全てのタイプのノードの参照レベルの最小値よりも低くてもよい。例えば、ターゲット・パラメータclockclassに対して、1588v2、G.8275.1、及びG.8275.2プロトコル規格において、clockclassが参照レベルであるときに、clockclassの値は6である。G8265.1プロトコル規格では、clockclassが参照レベルであるときに、clockclassの値は84である。
【0167】
例えば、1588v2プロトコル規格では、クロッククラスが参照レベルであるときに、クロッククラスの値は6である。第2のノードの時間同期が不確定である場合、clockclassの値は187又は248にセットされてもよく、clockclassの値187又は248に対応するレベルは、clockclassの値6に対応するレベルよりも低く、またclockclassの値84に対応するレベルよりも低い。この場合に、時間が同期される他のノードによって送信された第1のAnnounceパケットのターゲット・パラメータのレベルが、第2のノードによって送信された第1のAnnounceパケットにおけるターゲット・パラメータのレベルより高い場合、第1のノードは、第1のAnnounceパケットが受信されたポートに対応するクロック・ソースを選択しない。
【0168】
追加的に、第1のAnnounceパケットに含まれるマスタ・クロック識別子はまた、第2のノードのデフォルト・データセット(default dataset)におけるクロック識別子(clockIdentity)でもよい。
【0169】
例示的な実施形態では、第2のノードが第1のAnnounceパケットを、第2のAnnounceパケットに基づいて生成する方式は、以下の方式を含むが、これらに限定されない。
【0170】
方式1:第2のAnnounceパケットにおけるターゲット・パラメータのレベルは、第1のAnnounceパケットを取得するように修正される。修正中に、第2のAnnounceパケットにおけるターゲット・パラメータは、ターゲット・パラメータのレベルより低いレベルのパラメータに修正される。例えば、第2のAnnounceパケットにおいてclockclassの値が6である場合、clockclassの値は、6より大きい値、例えば248に修正される。
【0171】
このように、第2のノードは中間ノードとして機能し、上流ノードによって送信された第2のAnnounceパケットを受信する。上流ノードの時間が同期している場合、第2のAnnounceパケットにおけるターゲット・パラメータのレベルは、上流ノードの参照レベルである。異なるノードは、異なる参照レベルを有してもよい。第2のノードの時間同期が不確定であるときに、第2のノードは、第2のAnnounceパケットにおけるターゲット・パラメータのレベルを修正し、例えば、第2のAnnounceパケットのターゲット・パラメータを劣化させ、劣化したターゲット・パラメータを搬送する第1のAnnounceパケットを取得する。ノードの参照レベルが同じである場合、第1の通知パケットで搬送され劣化したターゲット・パラメータに対応するレベルは、第2のノードの参照レベルよりも低い。ノードの参照レベルが異なる場合、第1の通知パケットで搬送され劣化したターゲット・パラメータに対応するレベルは、全てのタイプのノードの参照レベルの最小値より低い。
【0172】
第2のAnnounceパケットに対応するソース・ポートと宛先ポートは、第1のAnnounceパケットに対応するソース・ポートと宛先ポートとは異なるため、第2のAnnounceパケットを修正して第1のAnnounceパケットを取得する処理では、ターゲット・パラメータを劣化させることに加えて、第2のAnnounceパケットのソース・ポートと宛先ポートのアドレスを修正する必要がある。
【0173】
方式2:第1のAnnounceパケットは、第2のAnnounceパケットにおける情報に基づいて生成される。第1のAnnounceパケットの生成中に、第2のAnnounceパケットにおけるターゲット・パラメータより低いレベルのパラメータが、第1のAnnounceパケットの対応するフィールドにパディングされる。例えば、第2のAnnounceパケットにおけるclockclassの値は6であり、6より大きい値(例えば、248)は、第1のAnnounceパケットのclockclassフィールドにパディングされる。
【0174】
方式2では、第2のノードは、中間ノードとして機能する。第2のAnnounceパケットを受信した後、第2のノードは、第2のAnnounceパケットを解析して、第2のAnnounceパケットにおける情報を取得する。次いで、第2のノードの時間同期が不確定であるときに、第2のノードは、第2のノードのステータスと第2のAnnounceパケットにおける情報に基づいて、第1のAnnounceパケットを生成する。言い換えれば、方式2と方式1の違いは、方式2では、新しいAnnounceパケット、すなわち第1のAnnounceパケットが、第2のAnnounceパケットを修正することによって取得されるのではなく、直接生成される点にある。
【0175】
実装Bでは、第1のAnnounceパケットで搬送されるターゲット・パラメータは、第2のノードのデフォルト・クロック・パラメータ、例えば、第2のノードのデフォルト・データセット(default dataset)におけるパラメータである。デフォルト・クロック・パラメータは、プリセット・パラメータである。
【0176】
なお、デフォルト・クロック・パラメータにおける値は一般に劣る値であるため、第2のノードのデフォルト・クロック・パラメータに対応するレベルは、一般に、実装Aの参照レベルよりも低い。
【0177】
追加的に、第1のAnnounceパケットに含まれるマスタ・クロック識別子はまた、第2のノードのデフォルト・データセット(default dataset)におけるクロック識別子(clockIdentity)でもよい。
【0178】
第2のノードが、第1のAnnounceパケットを第2のAnnounceパケットに基づいて生成する方式については、前述の方式1及び方式2を参照し、詳細は再度説明しない。
【0179】
なお、上述の方式1、方式2では、第2のノードが中間ノードである例が使用される。第2のノードがネットワーク内で最初にAnnounceパケットを開始するノード(すなわち、ソース・ノード)であり、中間ノードではない場合、第2のノードの時間同期が不確定であるときに、第2のノードは、第2のノードの状態に基づいて、直接、第1のAnnounceパケットを生成してもよい。
【0180】
802: 第2のノードは第1のAnnounceパケットを第1のノードに送信し、ここで、第1のAnnounceパケットで搬送されたパラメータは、クロック・ソースを選択するために使用される。
【0181】
第2のノードが第1のAnnounceパケットを第1のノードに送信した後、第1のノードは、第1のAnnounceパケットを解析する。ノードの参照レベルが同じである場合、第1の通知パケットで搬送され劣化したターゲット・パラメータに対応するレベルは、第2のノードの参照レベルよりも低い。ノードの参照レベルが異なる場合、第1の通知パケットで搬送され劣化したターゲット・パラメータに対応するレベルは、全てのタイプのノードの参照レベルの最小値より低い。したがって、クロック・ソースを選択するときに、第1のノードは、第1のAnnounceパケットが受信されたポートに対応するクロック・ソースを選択しない。
【0182】
この出願のこの実施形態の方法によれば、上流の第2のノードの時間同期が不確定であるときに、第1のAnnounceパケットは、参照レベルより低いレベルのターゲット・パラメータを搬送する。このように、下流の第1のノードがクロック・ソースを選択するときに、第1のAnnounceパケットにおけるターゲット・パラメータのレベルが低いため、第1のAnnounceパケットが受信されるポートに対応するクロック・ソースは選択されず、上流ノードの時間同期が不確定であるという事実によって生じる下流のノードの時間ジャンプによるネットワーク全体の時間ジャンプを避け、サービスの正常な動作を保証する。
【0183】
図8に示す実施形態では、以下の例が説明のために使用されるにすぎない。すなわち、第2のノードの時間同期が不確定であるときに、第1のノードは、第1のAnnounceパケットが受信されるポートに対応するクロック・ソースを選択せず、時間ジャンプを避ける。その後、第2のノードの時間が同期される場合、第1のノードに送信されるAnnounceパケットのターゲット・パラメータのレベルは、第2のノードの参照レベルであってもよく、第1のノードは、第1のAnnounceパケットが受信されたポートに対応するクロック・ソースを選択オブジェクトとして使用して、クロック・ソースを選択する。
【0184】
この出願の一実施形態は、クロック・ソースを選択するための装置を提供する。デバイスは、第1のノードに適用される。
図9を参照すると、装置は、前記第1のノードの第1のポートで、第2のノードによって送信された第1のパケットを受信するように構成されている受信モジュール901と、前記第1のパケットが第1のフラグを搬送するときに、前記第1のノードがクロック・ソースを選択するときに、前記第1のポートに対応するクロック・ソースを選択しないことであって、前記第1のフラグは、前記第2のノードの時間同期が不確定であることを示すために使用される、選択しないことを行うように構成されている選択モジュール902と、を含む。
【0185】
例示的な実施形態では、選択モジュール902は、クロック・ソースを選択するときに、クロック・ソースを選択するために第1のポートで受信されたクロック・ソース・データを使用しないように構成されている。
【0186】
例示的な実施形態では、選択モジュール902は、第1のフラグに基づいて、第1のポートに対応するクロック・ソース・データセットを空のセットにセットし、第1のノードのポートに対応するクロック・ソース・データセットに基づいてクロック・ソースを選択するか、又は第1のノードのポートに対応するクロック・ソース・データセットにおける空ではないクロック・ソース・データセットに基づいてクロック・ソースを選択するように構成されている。
【0187】
例示的な実施形態では、選択モジュール902は、第1のポートの信号失敗属性の値を、第1のフラグに基づいて第1の値にセットすることであって、第1の値は、信号失敗が第1のポートで発生したことを示すために使用される、セットすることと、信号失敗属性の第1の値に基づいて、第1のポートに対応するクロック・ソース・データセットを空のセットにセットすることと、を行うように構成されている。
【0188】
例示的な実施形態において、第1のポートの信号失敗属性は、ポート信号失敗属性portDS.SFであり、portDS.SFの第1の値は、真TRUEである。
【0189】
例示的な実施形態では、選択モジュール902は、第1のフラグに基づいて、パケット・タイミング信号が第1のポートでPTSFイベントが発生したことを判定し、第1のポートのportDS.SFの値を、PTSFイベントに基づいて第1の値にセットするように構成されている。
【0190】
例示的な実施形態では、PTSFイベントは、パケット・タイミング信号失敗損失同期PTSF-lossSyncイベント、パケット・タイミング信号失敗使用不可PTSF-unusableイベント、又は拡張PTSFイベントである。
【0191】
例示の実施形態では、第1のパケットは、アナウンスAnnounceパケットである。
【0192】
例示的な実施形態では、Announceパケット内の同期不確定synchronizationUncertainフラグが、第1のフラグを搬送するために使用される。synchronizationUncertainの値が第3の値であるときに、第1のフラグは、第2のノードの時間同期が不確定であることを示すために使用される。
【0193】
例示的な実施形態では、synchronizationUncertainの第3の値は、TRUEである。
【0194】
この出願の一実施形態は、クロック・ソースを選択するための装置を提供する。装置は、第2のノードに適用される。
図10を参照すると、装置は、第1のアナウンスAnnounceパケットを生成するように構成されている生成モジュール1001と、第1のAnnounceパケットを第1のノードに送信することであって、第1のAnnounceパケットで搬送されたパラメータは、クロック・ソースを選択するために使用される、送信することを行うように構成されている送信モジュール1002と、を含む。
【0195】
生成モジュール1001の具体的な実装は、以下の実装X及び実装Yを含み、これらは、それぞれ、
図8に示す方法の実施形態における実装A及び実装Bに対応する。
【0196】
実装X:第2のノードの時間同期が不確定であるときに、生成モジュール1001によって生成された第1のAnnounceパケットで搬送されるターゲット・パラメータに対応するレベルは、参照レベルより低く、参照レベルは、第2のノードが時間同期を実行するときのターゲット・パラメータに対応するレベルである。
【0197】
例示的な実施形態では、ターゲット・パラメータは、クロッククラスclockClass、クロック精度clockAccuracy、及びオフセット・スケールド対数分散offsetScaledLogVarianceのうちの1つ以上のパラメータである。
【0198】
第2のノードが中間ノードであるときに、例示的な実施形態では、生成モジュール1001は、上流ノードによって送信された第2のAnnounceパケットを受信し、第2のAnnounceパケットに基づいて第1のAnnounceパケットを生成するように構成されている。この実装では、第1のAnnounceパケットで搬送されたターゲット・パラメータは、第2のAnnounceパケットで搬送されたターゲット・パラメータに劣る(すなわち、第2のAnnounceパケットで搬送されたターゲット・パラメータのレベルが参照レベルとして使用される)。第1のAnnounceパケットの生成中に、第2のAnnounceパケットにおけるターゲット・パラメータのレベルが第1のAnnounceパケットを取得するために修正されてもよく、第1のAnnounceパケットが、第2のAnnounceパケットにおける情報に基づいて生成される。
【0199】
第2のノードがタイム・サーバであるときに、第1のAnnounceパケットで搬送されたターゲット・パラメータは、タイム・サーバがロック・モードにあるときのターゲット・パラメータに劣る(すなわち、タイム・サーバがロック・モードのときのターゲット・パラメータのレベルが参照レベルとして使用される)。
【0200】
実装Y:第2のノードの時間同期が不確定であるときに、生成モジュール1001によって生成された第1のAnnounceパケットで搬送されたターゲット・パラメータは、第2のノードのデフォルト・クロック・パラメータ、例えば、第2のノードのデフォルト・データセット(default dataset)におけるパラメータである。
【0201】
図9及び
図10に提供される装置が装置の機能を実装するときに、前述の機能モジュールへの分割は、説明のための例として使用されるに過ぎない。実際のアプリケーションでは、上述の機能は、要求に基づいて実装のために異なる機能モジュールに割り当てられてもよい。言い換えれば、デバイスの内部構造は、異なる機能モジュールに分割され、上記に説明された機能の全部又は一部を実装する。追加的に、前述の実施形態で提供される装置及び方法の実施形態は、同じ概念に基づいて提供される。装置の具体的な実装処理については、方法の実施形態を参照のこと。詳細は、ここでは再度説明しない。
【0202】
この出願の一実施形態は、クロック・ソース選択を実装するためのシステムを提供し、システムは、第1のノードと第2のノードとを含む。
【0203】
第2のノードは、第1のパケットを第1のノードの第1のポートに送信するように構成されている。
【0204】
第1のノードは、第1のノードの第1のポートで、第2のノードによって送信された第1のパケットを受信するように構成されている。第1のパケットが第1のフラグを搬送するときに、第1のノードがクロック・ソースを選択するときに、第1のポートに対応するクロック・ソースを選択しない。第1のフラグは、第2のノードの時間同期が不確定であることを示すために使用される。
【0205】
例示的な実施形態では、第1のノードは、クロック・ソースを選択するときに、クロック・ソースを選択するために第1のポートで受信されたクロック・ソース・データを使用しないように構成されている。
【0206】
例示的な実施形態では、第1のノードは、第1のフラグに基づいて、第1のポートに対応するクロック・ソース・データセットを空のセットにセットし、第1のノードのポートに対応するクロック・ソース・データセットに基づいてクロック・ソースを選択するか、又は第1のノードのポートに対応するクロック・ソース・データセットにおける空ではないクロック・ソース・データセットに基づいてクロック・ソースを選択するように構成されている。
【0207】
例示的な実施形態では、第1のノードは、第1のポートの信号失敗属性の値を、第1のフラグに基づいて第1の値にセットすることであって、第1の値は、信号失敗が第1のポートで発生したことを示すために使用される、セットすることと、信号失敗属性の第1の値に基づいて、第1のポートに対応するクロック・ソース・データセットを空のセットにセットすることと、を行うように構成されている。
【0208】
例示的な実施形態において、第1のポートの信号失敗属性は、ポート信号失敗属性portDS.SFであり、portDS.SFの第1の値は、真TRUEである。
【0209】
例示的な実施形態では、第1のノードは、第1のフラグに基づいて、パケット・タイミング信号が第1のポートでPTSFイベントが発生したことを判定し、第1のポートのportDS.SFの値を、PTSFイベントに基づいて第1の値にセットするように構成されている。
【0210】
例示的な実施形態では、PTSFイベントは、パケット・タイミング信号失敗損失同期PTSF-lossSyncイベント、パケット・タイミング信号失敗使用不可PTSF-unusableイベント、又は拡張PTSFイベントである。
【0211】
例示の実施形態では、第1のパケットは、Announceパケットである。
【0212】
例示的な実施形態では、Announceパケット内の同期不確定synchronizationUncertainフラグが、第1のフラグを搬送するために使用される。synchronizationUncertainの値が第3の値であるときに、第1のフラグは、第2のノードの時間同期が不確定であることを示すために使用される。
【0213】
例示的な実施形態では、synchronizationUncertainの第3の値は、TRUEである。
【0214】
図2の前述のシステム及び方法の実施形態は、同じ概念に基づいて提供されると理解されたい。システムの具体的な実装処理については、方法の実施形態を参照のこと。詳細は、ここでは再度説明しない。
【0215】
この出願の一実施形態は、クロック・ソース選択を実装するためのシステムを提供し、システムは、第1のノードと第2のノードとを含む。
【0216】
第2のノードは、第1のAnnounceパケットを生成し、第1のAnnounceパケットを第1ノードに送信するように較正されている。
【0217】
第1のノードは、第2のノードによって送信された第1のAnnounceパケットを受信することであって、第1のAnnounceパケットで搬送されたパラメータがクロック・ソースを選択するために使用される、受信することを行うように構成されている。
【0218】
図8に示す方法の実施形態の実装Aに説明されているように、第2のノードの時間同期が不確定であるときに、第1のAnnounceパケットで搬送されるターゲット・パラメータに対応するレベルは、参照レベルより低く、参照レベルは、第2のノードが時間同期を実行するときのターゲット・パラメータに対応するレベルである。
【0219】
例示的な実施形態では、ターゲット・パラメータは、クロッククラスclockClass、クロック精度clockAccuracy、及びオフセット・スケールド対数分散offsetScaledLogVarianceのうちの1つ以上のパラメータである。
【0220】
例示的な実施形態では、第2のノードは、上流ノードによって送信された第2のAnnounceパケットを受信し、第1のAnnounceパケットを、第2のAnnounceパケットに基づいて生成するように構成されている。この実装では、第1のAnnounceパケットで搬送されたターゲット・パラメータは、第2のAnnounceパケットで搬送されたターゲット・パラメータに劣る(すなわち、第2のAnnounceパケットで搬送されたターゲット・パラメータのレベルが参照レベルとして使用される)。第1のAnnounceパケットの生成中に、第2のAnnounceパケットにおけるターゲット・パラメータのレベルが第1のAnnounceパケットを取得するために修正されてもよく、第1のAnnounceパケットが、第2のAnnounceパケットにおける情報に基づいて生成される。
【0221】
第2のノードがタイム・サーバであるときに、第1のAnnounceパケットで搬送されたターゲット・パラメータは、タイム・サーバがロック・モードにあるときのターゲット・パラメータに劣る(すなわち、タイム・サーバがロック・モードのときのターゲット・パラメータのレベルが参照レベルとして使用される)。
【0222】
図8に示す方法の実施形態の実装Bに説明されているように、第2のノードの時間同期が不確定であるときに、第1のAnnounceパケットで搬送されるターゲット・パラメータは、第2のノードのデフォルト・クロック・パラメータ、例えば、第2のノードのデフォルト・データセット(default dataset)におけるパラメータである。
【0223】
図8の前述のシステム及び方法の実施形態は、同じ概念に基づいて提供されると理解されたい。システムの具体的な実装処理については、方法の実施形態を参照のこと。詳細は、ここでは再度説明しない。
【0224】
図11を参照すると、この出願の一実施形態は、クロック・ソースを選択するためのデバイス1100をさらに提供する。
図11に示すクロック・ソースを選択するためのデバイス1100は、クロック・ソースを選択するための前述の方法に関係する動作を実行するように構成されている。クロック・ソース選択を選択するためのデバイス1100は、プロセッサ1102及びポート1103を含み、ここで、プロセッサ1102及びポート1103は、バス1104を介して接続される。
【0225】
ポート1103は、ネットワーク内の他のデバイスと通信するように構成されている。ポート1103は、無線又は有線方式で実装されてもよい。プロセッサ1102は、クロック・ソースを選択するための前述の方法のいずれか1つを実装するように構成されている。
【0226】
例示的な実施形態では、クロック・ソースを選択するためのデバイス1100は、メモリ1101をさらに含む。メモリ1101は、少なくとも1つの命令を記憶し、少なくとも1つの命令は、プロセッサ1102によってロード及び実行される。メモリ1101、プロセッサ1102、及びポート1103は、バス1104を介して互いに接続される。
【0227】
図11は、クロック・ソースを選択するためのデバイス1100の単純化された設計のみを示すことを理解されたい。実際のアプリケーションでは、クロック・ソースを選択するためのデバイスは、任意の数のインターフェース、プロセッサ、又はメモリを含んでもよい。追加的に、プロセッサは、中央処理ユニット(Central Processing Unit、CPU)であってもよいし、別の汎用プロセッサ、デジタル信号プロセッサ(digital signal processing、DSP)、特定用途向け集積回路(application-specific integrated circuit、ASIC)、フィールド・プログラマブル・ゲート・アレイ(field-programmable gate array、FPGA)、又は別のプログラマブル論理デバイス、個別ゲート若しくはトランジスタ論理デバイス、個別ハードウェア・コンポーネントなどであってもよい。汎用プロセッサは、マイクロプロセッサ、任意の従来のプロセッサなどであってもよい。プロセッサは、高度な縮小命令セット・コンピューティング・マシン(advanced RISC machines、ARM)アーキテクチャをサポートするプロセッサであってもよいことに留意されたい。
【0228】
さらに、任意選択の実施形態では、メモリは、読み出し専用メモリ及びランダム・アクセス・メモリを含み、命令及びデータをプロセッサに提供することができる。メモリは、さらに、不揮発性ランダム・アクセス・メモリを含んでもよい。例えば、メモリは、デバイス・タイプの情報をさらに記憶してもよい。
【0229】
メモリは、揮発性メモリ又は不揮発性メモリであってもよいし、揮発性メモリ及び不揮発性メモリの両方を含んでもよい。不揮発性メモリは、読み出し専用メモリ(read-only memory、ROM)、プログラマブル読み出し専用メモリ(programmable ROM、PROM)、消去可能なプログラマブル読み出し専用メモリ(erasable PROM、EPROM)、電気的に消去可能なプログラマブル読み出し専用メモリ(electrically EPROM、EEPROM)、又はフラッシュメモリであってもよい。揮発性メモリは、ランダム・アクセス・メモリ(v、RAM)であってもよく、外部キャッシュとして使用される。例えば、限定ではないが、多くの形式のRAMが利用可能であり、例えば、スタティック・ランダム・アクセス・メモリ(static RAM、SRAM)、ダイナミック・ランダム・アクセス・メモリ(dynamic random access memory、DRAM)、同期ダイナミック・ランダム・アクセス・メモリ(synchronous DRAM、SDRAM)、ダブル・データ・レート同期ダイナミック・ランダム・アクセス・メモリ(double data rate SDRAM、DDR SDRAM)、拡張同期ダイナミック・ランダム・アクセス・メモリ(enhanced SDRAM、ESDRAM)、同期ダイナミック・ランダム・アクセス・メモリ(synchlink DRAM、SLDRAM)、及びダイレクト・ランバス・ランダム・アクセス・メモリ((direct rambus RAM、DR RAM)である。
【0230】
コンピュータ可読記憶媒体がさらに提供される。記憶媒体は、少なくとも1つの命令を記憶し、命令は、プロセッサによってロードされ、実行されて、クロック・ソースを選択するための前述の方法のいずれか1つを実装する。
【0231】
この出願は、コンピュータ・プログラムを提供する。コンピュータ・プログラムがコンピュータによって実行されるときに、プロセッサ又はコンピュータは、前述の方法の実施形態において対応する動作及び/又は手順を実行することが可能になる。
【0232】
前述の実施形態の全部又は一部は、前述の実施形態では、ソフトウェア、ハードウェア、ファームウェア、又はそれらの任意の組み合わせを使用して実装されてもよい。実施形態がソフトウェアを使用して実施されるときに、実施形態の全部又は一部は、コンピュータ・プログラム製品の形式で実装されてもよい。コンピュータ・プログラム製品は、1つ以上のコンピュータ命令を含む。コンピュータ・プログラム命令がロードされ、コンピュータ上で実行されるときに、この出願による手順又は機能の全部又は一部が生成される。コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータ・ネットワーク、又は他のプログラム可能なデバイスであってもよい。コンピュータ命令は、コンピュータ可読記憶媒体に記憶されてもよいし、1つのコンピュータ可読記憶媒体から別のコンピュータ可読記憶媒体に送信されてもよい。例えば、コンピュータ命令は、ウェブサイト、コンピュータ、サーバ、又はデータ・センタから、有線(例えば、同軸ケーブル、光ファイバ、又はデジタル加入者線)又は無線(例えば、赤外線、ラジオ、又はマイクロ波)において別のウェブサイト、コンピュータ、サーバ、又はデータ・センタに送信されてもよい。コンピュータ可読記憶媒体は、コンピュータによってアクセス可能な任意の使用可能な媒体、又は1つ以上の使用可能な媒体を一体化するサーバ若しくはデータ・センタなどのデータ記憶デバイスであってもよい。使用可能な媒体は、磁気媒体(例えば、フロッピー・ディスク、ハード・ディスク、又は磁気テープ)、光媒体(例えば、DVD)、又は半導体媒体(例えば、ソリッド・ステート・ドライブSolid State Disk)などである。
【0233】
前述の説明は、この出願の実施形態に過ぎず、この出願を限定することを意図していない。この出願の精神及び原理から逸脱することなくなされるいかなる修正、同等の交換、改善などは、この出願の保護範囲に含まれるべきである。
【手続補正2】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
クロック・ソースを選択するための方法であって、
第1のノードによって、前記第1のノードの第1のポートで、第2のノードによって送信された第1のパケットを受信することと、
前記第1のパケットが第1のフラグを搬送するときに、前記第1のノードによって、
前記第1のノードのクロック・ソースを選択するときに、前記第1のポートに対応するクロック・ソースを選択しないことと、を含み、前記第1のフラグは、前記第2のノードの時間同期が不確定であることを示すために使用される、方法。
【請求項2】
前記第1のノードによって、
前記第1のノードのクロック・ソースを選択するときに、前記第1のポートに対応するクロック・ソースを選択しないことは、前記第1のノードによって、
前記第1のノードのクロック・ソースを選択するときに
、前記第1のポートで受信されたクロック・ソース・データを使用しないことを含む、請求項1に記載の方法。
【請求項3】
前記第1のノードによって、
前記第1のノードのクロック・ソースを選択するときに
、前記第1のポートで受信されたクロック・ソース・データを使用しないことは、
前記第1のポートに対応するクロック・ソース・データセットを、前記第1のフラグに基づいて空のセットにセットすることと、
前記第1のノードのポートに対応するクロック・ソース・データセットに基づいて
前記第1のノードの前記クロック・ソースを選択すること、又は前記第1のノードのポートに対応するクロック・ソース・データセットにおける空ではないクロック・ソース・データセット
のみに基づいて
前記第1のノードのクロック・ソースを選択することと、を含む、請求項2に記載の方法。
【請求項4】
前記第1のポートに対応するクロック・ソース・データセットを、前記第1のフラグに基づいて空のセットにセットすることは、
前記第1のポートの信号失敗属性の値を、前記第1のフラグに基づいて第1の値にセットすることであって、前記第1の値は、信号失敗が前記第1のポートで発生したことを示すために使用される、セットすることと、
前記信号失敗属性の前記第1の値に基づいて、前記第1のポートに対応する前記クロック・ソース・データセットを空のセットにセットすることと、含む、請求項3に記載の方法。
【請求項5】
前記第1のポートの前記信号失敗属性は
、portDS.SFであり、前記portDS.SFの前記第1の値は
、TRUEである、請求項4に記載の方法。
【請求項6】
前記第1のポートの信号失敗属性の値を、前記第1のフラグに基づいて第1の値にセットすることは、
前記第1のフラグに基づいて、パケット・タイミング信号失敗PTSFイベントが前記第1のポートで発生することを判定することと、
前記第1のポートの前記portDS.SFの値を、前記PTSFイベントに基づいて前記第1の値にセットすることと、を含む、請求項5に記載の方法。
【請求項7】
前記PTSFイベントは、
PTSF損失同期
(PTSF-lossSync
)イベント
、PTSF-unusableイベント、又は拡張PTSFイベントである、請求項6に記載の方法。
【請求項8】
前記第1のパケットは
、Announceパケットである、請求項1~7のいずれか一項に記載の方法。
【請求項9】
前記Announceパケット内
のsynchronizationUncertainフラグは、前記第1のフラグを搬送するために使用され、前記synchronizationUncertainフラグの値がTRUEであるときに、前記第1のフラグは、前記第2のノードの時間同期が不確定であることを示すために使用される、請求項8に記載の方法。
【請求項10】
前記第2のノードの時間同期が不確定であることは、
第2のAnnounceパケットを受信するための前記第2のノードの一部が、UNCALIBRATED状態にあるか、又は
前記第2のノードの時間と前記第2のノードのクロック・ソースとの間の時間差が、閾値以上である、請求項1~9のいずれか一項に記載の方法。
【請求項11】
クロック・ソースを選択するための方法であって、
第2のノードによって、第1のフラグを含む第1のAnnounceパケットを生成することであって、前記第1のフラグは、前記第2のノードの時間同期が不確定であることを示すために使用される、生成することと、
前記第2のノードによって、前記第1のAnnounceパケットを第1のノードに送信することであって、前記第1のフラグは、前記第1のノードに、前記第1の第1のポートに対応するクロック・ソースを選択させないようにし、前記第1のポートは、前記第1の第1のAnnounceパケットを受信するポートである、送信することと、を含む、方法。
【請求項12】
第2のAnnounceパケットを受信するための前記第2のノードのポートが、UNCALIBRATED状態にあるときに、前記第1のフラグが、TRUEにセットされるか、又は
前記第2のノードの時間と前記第2のノードのクロック・ソースの時間との間の時間差が、しきい値より大きいときに、前記第1のフラグが、TRUEにセットされる、請求項11に記載の方法。
【請求項13】
クロック・ソースを選択するための
第1のノードであって
、
前記第1のノードの第1のポートで、第2のノードによって送信された第1のパケットを受信するように構成されている受信モジュールと、
前記第1のパケットが第1のフラグを搬送するときに、前記第1のノードが
前記第1のノードのクロック・ソースを選択するときに、前記第1のポートに対応するクロック・ソースを選択しないことであって、前記第1のフラグは、前記第2のノードの時間同期が不確定であることを示すために使用される、選択しないことを行うように構成されている選択モジュールと、を含む、
第1のノード。
【請求項14】
前記選択モジュールは、
前記第1のノードの前記クロック・ソースを選択するときに
、選択するために前記第1のポートで受信されたクロック・ソース・データを使用しないように構成されている、請求項
13に記載の
第1のノード。
【請求項15】
前記選択モジュールは、前記第1のフラグに基づいて、前記第1のポートに対応するクロック・ソース・データセットを空のセットにセットし、前記第1のノードのポートに対応するクロック・ソース・データセットに基づいて
前記第1のノードの前記クロック・ソースを選択するか、又は前記第1のノードのポートに対応するクロック・ソース・データセットにおける空ではないクロック・ソース・データセット
のみに基づいて
前記第1のノードの前記クロック・ソースを選択するように構成されている、請求項
14に記載の
第1のノード。
【請求項16】
前記選択モジュールは、前記第1のポートの信号失敗属性の値を、前記第1のフラグに基づいて第1の値にセットすることであって、前記第1の値は、信号失敗が前記第1のポートで発生したことを示すために使用される、セットすることと、前記信号失敗属性の前記第1の値に基づいて、前記第1のポートに対応する前記クロック・ソース・データセットを空のセットにセットすることと、を行うように構成されている、請求項
15に記載の
第1のノード。
【請求項17】
前記第1のポートの前記信号失敗属性は
、portDS.SFであり、前記portDS.SFの前記第1の値は
、TRUEである、請求項
16に記載の
第1のノード。
【請求項18】
前記選択モジュールは、前記第1のフラグに基づいて、パケット・タイミング信号失敗
(PTSF
)イベントが前記第1のポートで発生したことを判定し、前記第1のポートの前記portDS.SFの値を、前記PTSFイベントに基づいて前記第1の値にセットするように構成されている、請求項
17に記載の
第1のノード。
【請求項19】
前記PTSFイベントは、
PTSF損失同期
(PTSF-lossSync
)イベント、PTSF-unusableイベント、又は拡張PTSFイベントである、請求項
18に記載の
第1のノード。
【請求項20】
前記第1のパケットは、アナウンスannounceパケットである、請求項
13~19のいずれか一項に記載の
第1のノード。
【請求項21】
前記Announceパケット内
のsynchronizationUncertainフラグは、前記第1のフラグを搬送するために使用され、前記synchronizationUncertainフラグの値がTRUEであるときに、前記第1のフラグは、前記第2のノードの時間同期が不確定であることを示すために使用される、請求項
20に記載の
第1のノード。
【請求項22】
クロック・ソースを選択するための第2のノードであって、
第1のフラグを含む第1のAnnounceパケットを生成することであって、前記第1のフラグは、前記第2のノードの時間同期が不確定であることを示すために使用される、生成することを行うように構成されている生成モジュールと、
前記第1のAnnounceパケットを第1のノードに送信することであって、前記第1のフラグは、前記第1のノードに、前記第1の第1のポートに対応するクロック・ソースを選択させないようにし、前記第1のポートは、前記第1の第1のAnnounceパケットを受信するポートである、送信することを行うように構成されている送信モジュールと、を含む、第2のノード
【請求項23】
第2のAnnounceパケットを受信するための前記第2のノードのポートが、UNCALIBRATED状態にあるときに、前記第1のフラグが、TRUEにセットされるか、又は
前記第2のノードの時間と前記第2のノードのクロック・ソースの時間との間の時間差が、しきい値より大きいときに、前記第1のフラグが、TRUEにセットされる、請求項22に記載の第2のノード。
【請求項24】
プロセッサ及びメモリを含み、前記メモリが命令を記憶するように構成されており、前記プロセッサは、前記命令を実行して、前記第1のノードに、請求項1~10のいずれか一項に記載の方法を実行させるように構成されている、第1のノード。
【請求項25】
プロセッサ及びメモリを含み、前記メモリが命令を記憶するように構成されており、前記プロセッサは、前記命令を実行して、前記第2のノードに、請求項1~10のいずれか一項に記載の方法を実行させるように構成されている、第2のノード。
【請求項26】
クロック・ソースを選択するためのシステムであって、前記システムは、第1のノード及び第2のノードを含み、
前記第1のノードは、請求項1~10のいずれか一項に記載の方法を実行するように構成されており、前記第2のノードは、請求項11又は12に記載の方法を実行するように構成されている、システム。
【請求項27】
コンピュータ可読記憶媒体であって、前記記憶媒体は、少なくとも1つの命令を記憶し、前記命令は、請求項1~
12のいずれか一項に記載のクロック・ソースを選択するための前記方法を実装するように、ロードされ、プロセッサによって実行される、コンピュータ可読記憶媒体。
【国際調査報告】