| PTP4l(8) | System Manager's Manual | PTP4l(8) |
نام (NAME)
ptp4l - ساعت مرزی/معمولی/شفاف پروتکل PTP
خلاصه دستور (SYNOPSIS)
ptp4l [ -AEP246HSLmqsv ] [ -f config ] [ -p phc-device ] [ -l print-level ] [ -i interface ] [ long-options ] ...
توضیحات (DESCRIPTION)
دستور ptp4l یک پیادهسازی از «پروتکل زمان دقیق» (PTP) بر اساس استاندارد IEEE 1588 برای لینوکس است. این ابزار ساعت مرزی (Boundary Clock - BC)، ساعت معمولی (Ordinary Clock - OC) و ساعت شفاف (Transparent Clock - TC) را پیادهسازی میکند.
گزینهها (OPTIONS)
- -A
- سازوکار تأخیر را به صورت خودکار انتخاب میکند. با روش E2E شروع کرده و پس از دریافت یک درخواست تأخیر همتا (peer delay request)، به روش P2P تغییر حالت میدهد.
- -E
- سازوکار درخواست-پاسخ تأخیر (E2E) را انتخاب میکند. این سازوکار پیشفرض است. تمام ساعتها در یک مسیر ارتباطی منفرد PTP باید از سازوکار یکسانی استفاده کنند. در صورت دریافت درخواست تأخیر همتا روی پورتی که از سازوکار E2E استفاده میکند، یک هشدار نمایش داده میشود.
- -P
- سازوکار تأخیر همتا (P2P) را انتخاب میکند. در صورت دریافت درخواست تأخیر روی پورتی که از سازوکار P2P استفاده میکند، یک هشدار نمایش داده میشود.
- -2
- انتقال شبکه بر بستر IEEE 802.3 را انتخاب میکند.
- -4
- انتقال شبکه بر بستر UDP IPv4 را انتخاب میکند. این انتقال پیشفرض است.
- -6
- انتقال شبکه بر بستر UDP IPv6 را انتخاب میکند.
- -H
- برچسبگذاری زمانی سختافزاری را انتخاب میکند. تمام پورتهای مشخصشده با گزینه -i و در فایل پیکربندی باید به یک ساعت سختافزاری PTP (موسوم به PHC) یکسان متصل باشند. این روش برچسبگذاری زمانی پیشفرض است.
- -S
- برچسبگذاری زمانی نرمافزاری را انتخاب میکند.
- -L
- برچسبگذاری زمانی سختافزاری قدیمی (legacy) را انتخاب میکند.
- -f config
- پیکربندی را از فایل مشخصشده میخواند. بهطور پیشفرض هیچ فایل پیکربندی خوانده نمیشود.
- -i interface
- یک پورت PTP را مشخص میکند، این گزینه میتواند چندین بار استفاده شود. حداقل یک پورت باید از طریق این گزینه یا در فایل پیکربندی مشخص شود.
- -p phc-device
- (این گزینه منسوخ شده است.) پیش از نگارش 3.5 هسته لینوکس راهی برای شناسایی خودکار دستگاه PHC مرتبط با یک رابط شبکه وجود نداشت. این گزینه دستگاه PHC (مانند /dev/ptp0) مورد استفاده در هستههای قدیمی را مشخص میکند.
- -s
- حالت clientOnly را فعال میکند.
- -l print-level
- حداکثر سطح لاگ سیستمی (syslog) پیامهایی را که باید چاپ شده یا به ثبتکننده لاگ سیستم ارسال شوند تعیین میکند. پیشفرض 6 (LOG_INFO) است.
- -m
- پیامها را در خروجی استاندارد چاپ میکند.
- -q
- پیامها را به ثبتکننده لاگ سیستم ارسال نمیکند.
- -v
- نسخه نرمافزار را نمایش میدهد و خارج میشود.
- -h
- پیام راهنما را نمایش میدهد.
گزینههای بلند (LONG OPTIONS)
تکتک گزینههای فایل پیکربندی (زیر را ببینید) میتوانند به صورت آرگومان خط فرمان با سبک «بلند» (long) نیز ظاهر شوند. برای نمونه، گزینه clientOnly میتواند با هر یک از این دو قالب تنظیم شود:
مقادیر گزینههای ارائهشده در خط فرمان، مقادیر بخش سراسری (global) فایل پیکربندی را بازنویسی میکنند (override).
فایل پیکربندی (CONFIGURATION FILE)
فایل پیکربندی به بخشهای مختلفی تقسیم میشود. هر بخش با خطی شامل نام آن درون قلابها (کروشهها) آغاز شده و با تنظیمات دنبال میشود. هر تنظیم در یک خط جداگانه قرار میگیرد که شامل نام گزینه و مقدار آن است که با نویسههای فاصله از هم جدا شدهاند. خطوط خالی و خطوطی که با # آغاز میشوند نادیده گرفته خواهند شد.
سه نوع بخش مختلف وجود دارد:
- 1.
- بخش سراسری (که با [global] مشخص میشود) گزینههای برنامه، گزینههای ساعت و گزینههای پیشفرض پورت را تنظیم میکند. بخشهای دیگر به پورتهای خاص اختصاص دارند و گزینههای پیشفرض پورت را بازنویسی میکنند.
- 2.
- بخشهای پورت نام پورت پیکربندیشده را مشخص میکنند (برای نمونه [eth0]). پورتهای مشخصشده در فایل پیکربندی نیازی به تعیین مجدد با گزینه -i ندارند. یک بخش خالی پورت میتواند به جای گزینه خط فرمان استفاده شود.
- 3.
- جدولهای
مربوط به
پیکربندی
کشف
تکپخشی با
[unicast_master_table] آغاز
میشوند.
بخش «گزینههای کشف تکپخشی (UNICAST DISCOVERY OPTIONS)» در ادامه را ببینید.
گزینههای پورت (PORT OPTIONS)
- active_key_id
- همراه با دستورالعملهای spp و sa_file استفاده میشود تا مشخص کند کدام کلید از «ارتباط امنیتی» (Security Association) تعریفشده توسط spp باید برای محاسبات icv خروجی استفاده شود. تمام ارتباطهای امنیتی از فایل مشخصشده توسط sa_file خوانده میشوند. نیازمند دستورالعملهای spp و sa_file است. مقدار باید در محدوده 1 تا 1-2^32 (شامل هر دو) باشد. پیشفرض 0 (غیرفعال) است.
- allowedLostResponses
- تعداد پاسخهای از دسترفته تأخیر همتا (peer delay responses) پیش از بازنشانی متغیر asCapable. پیشفرض 3 است.
- announceReceiptTimeout
- تعداد پیامهای اعلان (Announce) دریافتنشده پیش از انقضای آخرین پیام اعلان. پیشفرض 3 است.
- boundary_clock_jbod
- هنگام اجرا به عنوان ساعت مرزی (یعنی زمانی که بیش از یک رابط شبکه پیکربندی شده باشد)، دستور ptp4l یک بررسی صحت انجام میدهد تا مطمئن شود تمام پورتها از یک دستگاه ساعت سختافزاری مشترک استفاده میکنند. این گزینه به ptp4l اجازه میدهد تا به عنوان ساعت مرزی با مجموعهای از دستگاهها ("just a bunch of devices") که با یکدیگر همگام نیستند کار کند. برای این حالت، مجموعه ساعتها باید توسط یک برنامه بیرونی، برای نمونه phc2sys(8) در حالت "automatic"، همگامسازی شوند. پیشفرض 0 (غیرفعال) است.
- cmlds.client_address
- آدرس مبدأ برای سوکت دامنه یونیکس (UNIX domain socket) را مشخص میکند که اندازهگیری تأخیر همتا را هنگام استفاده از سازوکار تأخیر "COMMON_P2P" دریافت مینماید. پیشفرض /var/run/cmlds_client است.
- cmlds.domainNumber
- فیلد پیام domainNumber را برای ارتباطات با «سرویس تأخیر پیوند میانگین مشترک» (Common Mean Link Delay Service) محلی، که با سازوکار تأخیر "COMMON_P2P" استفاده میشود، مشخص میکند. پیشفرض 0 است.
- cmlds.majorSdoId
- فیلد پیام transportSpecific را برای ارتباطات با «سرویس تأخیر پیوند میانگین مشترک» محلی، مورد استفاده در سازوکار تأخیر "COMMON_P2P"، مشخص میکند. پیشفرض 2 است.
- cmlds.port
- شماره پورت «سرویس تأخیر پیوند میانگین مشترک» محلی را که باید اندازهگیریهای تأخیر از آن پذیرفته شود، مشخص میکند. محدوده شماره پورتهای معتبر ۱ تا ۶۵۵۳۵ است، اما مقدار ویژه صفر، شماره پورت را همان پورتی که درخواست اندازهگیری داده پیکربندی میکند. پیشفرض 0 (به معنای شماره پورت درخواستکننده) است.
- cmlds.server_address
- آدرس سوکت دامنه یونیکس سرویس تأخیر پیوند میانگین مشترک محلی را برای استفاده با سازوکار تأخیر "COMMON_P2P" مشخص میکند. پیشفرض /var/run/cmlds_server است.
- delayAsymmetry
- اختلاف زمانی بر حسب نانوثانیه بین مسیرهای ارسال و دریافت. این مقدار زمانی که زمان انتشار از سرور به کلاینت طولانیتر باشد باید مثبت و زمانی که زمان کلاینت به سرور طولانیتر باشد باید منفی باشد. پیشفرض 0 نانوثانیه است.
- delay_filter
- الگوریتم مورد استفاده برای فیلتر کردن تأخیر اندازهگیریشده و تأخیر همتا را انتخاب میکند. مقادیر ممکن moving_average و moving_median هستند. پیشفرض moving_median است.
- delay_filter_length
- طول فیلتر تأخیر بر حسب تعداد نمونهها. پیشفرض 10 است.
- delay_mechanism
- سازوکار تأخیر را انتخاب میکند. مقادیر ممکن عبارتند از Auto ،COMMON_P2P ،E2E ،P2P و NONE. پیشفرض E2E است.
- delay_response_timeout
- تعداد پیامهای پاسخ تأخیر که ممکن است پیش از فعال شدن خطای همگامسازی مفقود شوند. تنظیم این گزینه روی صفر، مهلت زمانی پاسخ تأخیر را غیرفعال میکند. پیشفرض 0 یا غیرفعال است.
- egressLatency
- اختلاف بر حسب نانوثانیه بین زمان ارسال واقعی در صفحه مرجع و برچسب زمانی ارسال گزارششده را مشخص میکند. این مقدار به برچسبهای زمانی خروج (egress) به دست آمده از سختافزار اضافه میشود. پیشفرض 0 است.
- fault_badpeernet_interval
- مدت زمان بر حسب ثانیه بین تشخیص پیکربندی نادرست شبکه همتا و بازنشانی خطا. پورت در طول این مدت غیرفعال میشود. مقدار بر حسب ثانیه است و کلمه کلیدی ویژه ASAP اجازه میدهد خطا بلافاصله بازنشانی شود. پیشفرض 16 ثانیه است.
- fault_reset_interval
- مدت زمان بر حسب ثانیه بین تشخیص خطای یک پورت و بازنشانی آن خطا. این مقدار به صورت توانی از دو بیان میشود. تنظیم این مقدار روی 128- یا کلمه کلیدی ویژه "ASAP" اجازه میدهد خطا بلافاصله بازنشانی شود. پیشفرض 4 (16 ثانیه) است.
- follow_up_info
- در صورت فعال بودن، دادههای 802.1AS را در پیامهای Follow_Up درج میکند. پیشفرض 0 (غیرفعال) است.
- G.8275.portDS.localPriority
- پروفایلهای
مخابراتی (ITU-T
G.8275.1 و G.8275.2) یک
«الگوریتم
بهترین
ساعت مرجع»
(BMCA) جایگزین
را با
الگوریتم
مقایسه
مجموعه
دادههای
منحصربهفرد
مشخص
میکنند.
مقدار این
گزینه با
پیامهای Announce
که به یک
پورت خاص
میرسند
مرتبط است و
هر زمان که
clockClass ،clockAccuracy ،offsetScaledLogVariance و
priority2 برابر
باشند، به
عنوان
تعیینکننده
نهایی (tie breaker)
استفاده
میشود. این
گزینه تنها
زمانی
کاربرد
دارد که
"dataset_comparison" روی
"G.8275.x" تنظیم
شده باشد.
مقدار
پیشفرض 128
است.
هشدار: BMCA تنها در صورت استفاده از مقادیر پیشفرض G.8275.defaultDS.localPriority و G.8275.portDS.localPriority تضمین میکند که یک درخت پوشا (یعنی یک شبکه زمانبندی بدون حلقه) ایجاد شود. هنگام استفاده از مقادیر غیرپیشفرض، مهندسی دقیق شبکه ضروری است.
- hybrid_e2e
- سازوکار تأخیر «ترکیبی» (hybrid) برگرفته از پیشنویس Enterprise Profile را فعال میکند. در صورت فعال بودن، پورتها در وضعیت کلاینت، پیامهای درخواست تأخیر خود را به آدرس تکپخشی (unicast) برگرفته از پیام اعلان سرور ارسال میکنند. پورتها در وضعیت سرور به درخواستهای تأخیر تکپخشی با استفاده از پاسخهای تأخیر تکپخشی پاسخ خواهند داد. این گزینه در صورتی که delay_mechanism روی P2P تنظیم شده باشد، تأثیری ندارد. پیشفرض 0 (غیرفعال) است.
- ignore_transport_specific
- بهطور پیشفرض، پیامهای دریافتی در صورتی که فیلد transportSpecific آنها با مقدار پیکربندیشده مطابقت نداشته باشد، دور انداخته میشوند. با این حال، بسیاری از روشهای انتقال مشخصشده در استاندارد 1588، نادیده گرفتن این فیلد را الزامی میکنند. علاوه بر این، برخی از تجهیزات بیتهای رزروشده را مقداردهی میکنند. پیکربندی این گزینه روی 1 باعث میشود این فیلد هنگام دریافت کاملاً نادیده گرفته شود. پیشفرض 0 است.
- ingressLatency
- اختلاف بر حسب نانوثانیه بین برچسب زمانی دریافت گزارششده و زمان دریافت واقعی در صفحه مرجع را مشخص میکند. این مقدار از برچسبهای زمانی ورود (ingress) به دست آمده از سختافزار کسر خواهد شد. پیشفرض 0 است.
- inhibit_delay_req
- از ارسال هرگونه درخواست تأخیر جلوگیری میکند. این مورد مستلزم تنظیم گزینه پیکربندی asCapable روی 'true' است. این گزینه هنگام اجرا به عنوان یک سرور اختصاصی که نیازی به محاسبه آفست از کلاینت ندارد، مفید است. پیشفرض 0 (غیرفعال) است.
- inhibit_multicast_service
- برخی از پروفایلهای حالت تکپخشی تأکید دارند که هیچ پیام چندپخشی (multicast) هرگز نباید ارسال شود. تنظیم این گزینه مانع ارسال چندپخشی میشود. پیشفرض 0 (چندپخشی فعال) است.
- logAnnounceInterval
- میانگین فاصله زمانی بین پیامهای Announce. فاصله کوتاهتر باعث میشود ptp4l نسبت به تغییرات در سلسلهمراتب کلاینت/سرور سریعتر واکنش نشان دهد. این فاصله باید در کل دامنه یکسان باشد. این مقدار به صورت توانی از دو بر حسب ثانیه مشخص میشود. پیشفرض 1 (2 ثانیه) است.
- logMinDelayReqInterval
- حداقل میانگین فاصله زمانی مجاز بین پیامهای Delay_Req. فاصله کوتاهتر باعث میشود ptp4l نسبت به تغییرات در تأخیر مسیر سریعتر واکنش نشان دهد. این مقدار به صورت توانی از دو بر حسب ثانیه مشخص میشود. پیشفرض 0 (1 ثانیه) است.
- logMinPdelayReqInterval
- حداقل میانگین فاصله زمانی مجاز بین پیامهای Pdelay_Req. این مقدار به صورت توانی از دو بر حسب ثانیه مشخص میشود. پیشفرض 0 (1 ثانیه) است.
- logSyncInterval
- میانگین فاصله زمانی بین پیامهای Sync. فاصله کوتاهتر ممکن است دقت ساعت محلی را بهبود بخشد. این مقدار به صورت توانی از دو بر حسب ثانیه مشخص میشود. پیشفرض 0 (1 ثانیه) است.
- masterOnly
- این گزینه منسوخ شده و در نگارشهای آینده حذف خواهد شد. به جای آن از "serverOnly" استفاده کنید.
- min_neighbor_prop_delay
- حد پایین برای تأخیر همتا بر حسب نانوثانیه. اگر تأخیر همتای تخمینزدهشده کوچکتر از این مقدار باشد، پورت به عنوان فاقد قابلیت 802.1AS علامتگذاری میشود.
- neighborPropDelayThresh
- حد بالای تأخیر همتا بر حسب نانوثانیه. اگر تأخیر همتای تخمینزدهشده بزرگتر از این مقدار باشد، پورت به عنوان فاقد قابلیت 802.1AS علامتگذاری میشود.
- network_transport
- انتقال شبکه را انتخاب میکند. مقادیر ممکن عبارتند از UDPv4 ،UDPv6 و L2. پیشفرض UDPv4 است.
- net_sync_monitor
- پروتکل «پایش همگامسازی شبکه» (NetSync Monitor - NSM) را فعال میکند. پروتکل NSM به یک ایستگاه امکان میدهد بسنجد که یک گره دیگر تا چه اندازه خوب همگام شده است. مانیتور یک درخواست تأخیر تکپخشی به گره ارسال میکند و گره بدون قید و شرط با پاسخهای تأخیر تکپخشی، sync و پیامهای follow up پاسخ میدهد. اگر مانیتور با GM همگام شده باشد، میتواند از برچسبهای زمانی در پیام برای تخمین آفست گره استفاده کند. این گزینه مستلزم فعال بودن گزینه 'hybrid_e2e' نیز هست. پیشفرض 0 (غیرفعال) است.
- operLogPdelayReqInterval
- فاصله زمانی پیامهای درخواست Pdelay که پس از ورود ساعت به وضعیت SERVO_LOCKED_STABLE استفاده میشود. اگر گزینه 'msg_interval_request' تنظیم شده باشد، پورت کلاینت محلی این نرخ را هنگامی که ساعت محلی وارد وضعیت "locked stable" میشود، اتخاذ خواهد کرد. این گزینه به صورت توانی از دو بر حسب ثانیه مشخص میشود و مقدار پیشفرض آن 0 (1 ثانیه) است.
- operLogSyncInterval
- فاصله زمانی پیام Sync که پس از ورود ساعت به وضعیت SERVO_LOCKED_STABLE درخواست میشود. اگر گزینه 'msg_interval_request' تنظیم شده باشد، پورت کلاینت محلی از سرور راه دور درخواست میکند تا از طریق یک پیام سیگنالدهی حاوی TLV درخواست فاصله پیام، به نرخ پیام ارائهشده تغییر وضعیت دهد. این گزینه به صورت توانی از دو بر حسب ثانیه مشخص میشود و مقدار پیشفرض آن 0 (1 ثانیه) است.
- path_trace_enabled
- سازوکار مورد استفاده برای ردیابی مسیر پیامهای Announce را فعال میکند. پیشفرض 0 (غیرفعال) است.
- phc_index
- شاخص PHC مورد استفاده برای همگامسازی با برچسبگذاری زمانی سختافزاری را مشخص میکند. این گزینه با ساعتهای مجازی که روی یک ساعت فیزیکی در حال اجرا آزادانه (ایجاد شده با نوشتن در /sys/class/ptp/ptp*/n_vclocks) اجرا میشوند، کاربرد دارد. پیشفرض 1- است، به این معنی که شاخص روی PHC مرتبط با رابط، یا دستگاه مشخصشده با گزینه -p تنظیم خواهد شد.
- power_profile.2011.grandmasterTimeInaccuracy
- میزان عدم دقت زمانی GM را بر حسب نانوثانیه مشخص میکند. تنها زمانی کاربرد دارد که power_profile.version برابر 2011 باشد. این مقدار میتواند به صورت پویا با استفاده از پیام مدیریتی POWER_PROFILE_SETTINGS_NP تغییر داده شود. پیشفرض 1- به معنای عدم دقت ناشناخته است.
- power_profile.2011.networkTimeInaccuracy
- میزان عدم دقت زمانی شبکه را بر حسب نانوثانیه مشخص میکند. تنها زمانی کاربرد دارد که power_profile.version برابر 2011 باشد. این مقدار میتواند به صورت پویا با استفاده از پیام مدیریتی POWER_PROFILE_SETTINGS_NP تغییر کند. پیشفرض 1- به معنای عدم دقت ناشناخته است.
- power_profile.2017.totalTimeInaccuracy
- مجموع عدم دقتهای GM، شبکه و گره محلی را بر حسب نانوثانیه مشخص میکند. تنها زمانی کاربرد دارد که power_profile.version برابر 2017 باشد. این مقدار میتواند به صورت پویا با استفاده از پیام مدیریتی POWER_PROFILE_SETTINGS_NP تغییر یابد. پیشفرض 1- به معنای عدم دقت ناشناخته است.
- power_profile.grandmasterID
- یک کد شناسایی اختیاری و غیرصفر برای GM مشخص میکند. توجه داشته باشید که این کد یک عدد صحیح اختیاری و مختص پروفایل توان است و الزاماً هیچ ارتباطی با clockIdentity ندارد. این مقدار میتواند به صورت پویا با استفاده از پیام مدیریتی POWER_PROFILE_SETTINGS_NP تغییر یابد. پیشفرض 0 به معنای استفادهنشده است.
- power_profile.version
- نگارش پروفایل توان (power profile) مورد استفاده را مشخص میکند. مقادیر معتبر عبارتند از "none" ،"2011" یا "2017". این مقدار میتواند به صورت پویا با استفاده از پیام مدیریتی POWER_PROFILE_SETTINGS_NP تغییر داده شود. پیشفرض "none" است.
- ptp_dst_ipv4
- آدرس IPv4 که پیامهای PTP باید به آن ارسال شوند. تنها با انتقال UDPv4 کاربرد دارد. پیشفرض 224.0.1.129 است.
- p2p_dst_ipv4
- آدرس IPv4 که پیامهای تأخیر همتا باید به آن ارسال شوند. تنها با انتقال UDPv4 کاربرد دارد. پیشفرض 224.0.0.107 است.
- ptp_dst_ipv6
- آدرس IPv6 که پیامهای PTP باید به آن ارسال شوند. بایت دوم آدرس با udp6_scope جایگزین میشود. تنها با انتقال UDPv6 کاربرد دارد. پیشفرض FF0E:0:0:0:0:0:0:181 است.
- p2p_dst_ipv6
- آدرس IPv6 که پیامهای تأخیر همتا باید به آن ارسال شوند. تنها با انتقال UDPv6 کاربرد دارد. پیشفرض FF02:0:0:0:0:0:0:6B است.
- ptp_dst_mac
- آدرس MAC که پیامهای PTP باید به آن ارسال شوند. تنها با انتقال L2 کاربرد دارد. پیشفرض 01:1B:19:00:00:00 است.
- p2p_dst_mac
- آدرس MAC که پیامهای تأخیر همتا باید به آن ارسال شوند. تنها با انتقال L2 کاربرد دارد. پیشفرض 01:80:C2:00:00:0E است.
- serverOnly
- تنظیم این گزینه روی یک (1) مانع از ورود پورت به وضعیت کلاینت میشود. علاوه بر این، ساعت محلی پیامهای Announce دریافتشده روی این پورت را نادیده میگیرد. کاربرد مورد نظر این گزینه، پشتیبانی از پروفایلهای مخابراتی بر اساس استانداردهای ITU-T G.8265.1 ،G.8275.1 و G.8275.2 است. مقدار پیشفرض صفر یا false است.
- spp
- اشارهگر پارامترهای امنیتی (Security Parameters Pointer) مربوط به «ارتباط امنیتی» (Security Association) مورد نظر را برای پشتیبانی از Authentication TLV برای یک پورت خاص مشخص میکند. هر پورتی با spp اختصاصیافته، Authentication TLVها را به تمام پیامهای خروجی پیوست کرده و پیامهای ورودی را بر اساس ارتباط امنیتی مربوطه که از دستورالعمل sa_file تأمین میشود، برای وجود Authentication TLV بررسی میکند. Authentication TLVهای خروجی با استفاده از کلید مشخصشده توسط active_key_id تولید میشوند. با پورتهای تکمرحلهای (one step) یا نسخههای اعلانشده کمتر از PTPv2.1 سازگار نیست. به دستورالعملهای sa_file و active_key_id نیاز دارد. باید در محدوده 0 تا 255 (شامل هر دو) باشد. پیشفرض 1- (غیرفعال) است.
- syncReceiptTimeout
- تعداد پیامهای sync/follow up که ممکن است پیش از راهاندازی فرآیند انتخاب بهترین ساعت مرجع (BMCA) مفقود شوند. این گزینه برای اجرا در حالت gPTP طبق استاندارد 802.1AS-2011 استفاده میشود. تنظیم این گزینه روی صفر، مهلت زمانی پیام همگامسازی را غیرفعال میکند. پیشفرض 0 یا غیرفعال است.
- transportSpecific
- فیلد ویژه انتقال (transport specific). باید در محدوده 0 تا 255 باشد. پیشفرض 0 است.
- tsproc_mode
- حالت پردازش برچسب زمانی را برای محاسبه آفست و تأخیر انتخاب میکند. مقادیر ممکن عبارتند از filter ،raw ،filter_weight و raw_weight. حالتهای Raw زمانی که نرخ پیامهای sync (گزینه logSyncInterval) به نرخ پیامهای delay (گزینه logMinDelayReqInterval یا logMinPdelayReqInterval) نزدیک باشد، به خوبی عمل میکنند. وزندهی (weighting) با جیترهای شبکه بزرگتر (مانند برچسبگذاری زمانی نرمافزاری) کاربرد دارد. پیشفرض filter است.
- udp_ttl
- مقدار «طول عمر» (TTL) را برای پیامهای چندپخشی IPv4 و محدودیت تعداد پرش (hop limit) را برای پیامهای چندپخشی IPv6 مشخص میکند. این گزینه تنها با روشهای انتقال IPv4 و IPv6 UDP ارتباط دارد. مقدار پیشفرض 1 است تا پیامهای ارسالی توسط ptp4l را به همان زیرشبکه محدود کند.
- unicast_listen
- در صورت فعال بودن، این گزینه به پورت اجازه میدهد قراردادهای پیام تکپخشی را بپذیرد. به درخواستهای ورودی تنها تا سقف حافظه موجود پاسخ داده خواهد شد. پیشفرض 0 (غیرفعال) است.
- unicast_master_table
- هنگامی که روی یک عدد صحیح مثبت تنظیم شود، این گزینه شناسه جدول مورد استفاده برای کشف تکپخشی را مشخص میکند. هر جدول در بخش اختصاصی خود قرار دارد و دارای شناسه عددی مثبت و منحصربهفرد است. ورودیهای جدول یک جفت از نوع انتقال و آدرس پروتکل هستند. پیشفرض 0 (کشف تکپخشی غیرفعال) است.
- unicast_req_duration
- مدتزمان سرویس بر حسب ثانیه که باید در طول فرآیند کشف تکپخشی درخواست شود. توجه داشته باشید که گره راه دور مجاز است مدتزمان متفاوتی را ارائه دهد. پیشفرض 3600 ثانیه یا یک ساعت است.
گزینههای برنامه و ساعت (PROGRAM AND CLOCK OPTIONS)
- asCapable
- اگر روی 'true' تنظیم شود، تمام بررسیهایی که میتوانند متغیر asCapable را لغو کنند (همانطور که در بخش 10.2.4.1 از 802.1AS شرح داده شده) نادیده گرفته میشوند. اگر روی 'auto' تنظیم شود، asCapable با 'false' مقداردهی اولیه شده و پس از موفقیت در بررسیهای مربوطه، روی 'true' تنظیم خواهد شد. مقدار پیشفرض 'auto' است.
- assume_two_step
- در صورت فعال بودن، پاسخهای تکمرحلهای (one-step) را به عنوان دومرحلهای (two-step) در نظر میگیرد. این گزینه برای رفع اشکال سوئیچهای معیوب 802.1AS استفاده میشود. پیشفرض 0 (غیرفعال) است.
- BMCA
- این گزینه استفاده از نقشهای ایستا را برای دستگاههای سرور و کلاینت به جای اجرای «الگوریتم بهترین ساعت مرجع» (BMCA) شرح داده شده در پروفایل 1588 فعال میکند. این کار میتواند برای سرعت بخشیدن به زمان راهاندازی سرورها و کلاینتها هنگامی که نقش دستگاهها را از قبل میدانید استفاده شود. هنگامی که روی 'noop' تنظیم شود، الگوریتم سنتی BMCA مورد استفاده در 1588 نادیده گرفته میشود. گزینههای masterOnly و clientOnly برای تعیین نقش سرور یا کلاینت دستگاه استفاده خواهند شد. در یک پل (bridge)، گزینه clientOnly (که یک گزینه سراسری است) میتواند تنظیم شود تا تمام پورتها نقش کلاینت را بر عهده بگیرند. سپس میتوان از masterOnly (که یک گزینه پیکربندی به ازای هر پورت است) استفاده کرد تا پورتهای جداگانه نقش سرور را بر عهده بگیرند. مقدار پیشفرض 'ptp' است که ماشینهای حالت مرتبط با BMCA را اجرا میکند.
- check_fup_sync
- به دلیل تغییر ترتیب بستهها که ممکن است در شبکه، سختافزار یا پشته شبکه رخ دهد، ممکن است یک پیام follow up زودتر از پیام sync متناظر خود به برنامه برسد. از آنجا که این یک رویداد طبیعی است و فیلد پیام sequenceID تطابق مناسب را تضمین میکند، برنامه ptp4l بستههای خارج از ترتیب را میپذیرد. این گزینه یک بررسی اضافی را با استفاده از برچسبهای زمانی نرمافزاری پشته شبکه اضافه میکند تا تأیید کند که پیام sync واقعاً اول رسیده است. این گزینه تنها در صورتی مفید است که به شناسههای توالی (sequence IDs) تولیدشده توسط سرور اعتماد نداشته باشید. پیشفرض 0 (غیرفعال) است.
- clientOnly
- در صورت فعال بودن، ساعت محلی یک ساعت فقطکلاینت است. پیشفرض 0 (غیرفعال) است.
- clockAccuracy
- صفت clockAccuracy برای ساعت محلی. در الگوریتم انتخاب سرور PTP استفاده میشود. پیشفرض 0xFE است.
- clockClass
- صفت clockClass برای ساعت محلی. این گزینه بیانگر قابلیت ردیابی زمانی توزیعشده توسط ساعت مرجع اصلی (grandmaster clock) است. پیشفرض 248 است.
- clock_class_threshold
- حداکثر مقدار clock class از طرف ساعت مرجع (master) که برای ساعت پیرو (sub-ordinate) قابل قبول است و فراتر از آن از وضعیت قفل خارج میشود. مقدار پیشفرض 248 است.
- clockIdentity
- صفت clockIdentity برای ساعت محلی. صفت clockIdentity یک آرایه ۸ اوکتتی است و در این پیکربندی باید به صورت متنی نوشته شود، مقدار پیشفرض را ببینید. این مقدار باید منحصربهفرد باشد زیرا برای شناسایی ساعت مشخص استفاده میشود. اگر از مقدار پیشفرض استفاده شود یا اصلاً تنظیم نشود، clockIdentity به صورت خودکار تولید خواهد شد. پیشفرض "000000.0000.000000" است.
- clock_servo
- سروویی (servo) که برای همگامسازی ساعت محلی استفاده میشود. مقادیر معتبر عبارتند از "pi" برای یک کنترلکننده PI، مقدار "linreg" برای یک کنترلکننده تطبیقی با استفاده از رگرسیون خطی، "ntpshm" و "refclock_sock" به ترتیب برای ساعتهای مرجع NTP SHM و chrony SOCK جهت اجازه دادن به فرآیندی دیگر برای همگامسازی ساعت محلی، و "nullf" برای سروویی که همیشه آفست فرکانس صفر را اعمال میکند (برای استفاده در گرههای SyncE). پیشفرض "pi" است.
- clock_type
- نوع ساعت PTP را مشخص میکند. مقادیر معتبر عبارتند از "OC" برای ساعت معمولی، "BC" برای ساعت مرزی، "P2P_TC" برای ساعت شفاف همتا به همتا (peer to peer transparent clock)، و "E2E_TC" برای ساعت شفاف سرتاسری (end to end transparent clock). یک ساعت معمولی چندپورته به طور خودکار به عنوان ساعت مرزی پیکربندی میشود. پیشفرض "OC" است.
- dataset_comparison
- روشی را که هنگام مقایسه مجموعههای داده در الگوریتم بهترین ساعت مرجع استفاده میشود، مشخص میکند. مقادیر ممکن "ieee1588" و "G.8275.x" هستند. پیشفرض "ieee1588" است.
- domainNumber
- صفت دامنه برای ساعت محلی. پیشفرض 0 است.
- dscp_event
- کدپوینت خدمات متمایز (DSCP) را برای پیامهای رویداد PTP تعریف میکند. باید مقداری بین 0 تا 63 باشد. چندین استاندارد پخش رسانهای وجود دارند که مقادیر خاصی را برای این گزینه الزامی میکنند. برای نمونه 46 (EF PHB) در AES67 یا 48 (CS6 PHB) در RAVENNA. پیشفرض 0 است.
- dscp_general
- کدپوینت خدمات متمایز (DSCP) را برای پیامهای عمومی PTP تعریف میکند. باید مقداری بین 0 تا 63 باشد. چندین استاندارد پخش رسانهای وجود دارند که مقادیر خاصی را برای این گزینه توصیه میکنند. برای نمونه 34 (AF41 PHB) در AES67 یا 46 (EF PHB) در RAVENNA. پیشفرض 0 است.
- first_step_threshold
- حداکثر آفستی که سروو با تغییر فرکانس ساعت (تغییر فاز هنگام استفاده از سروو nullf) به جای پرش دادن ساعت اصلاح میکند. این مورد تنها در اولین بهروزرسانی اعمال میشود. این گزینه بر حسب ثانیه مشخص میشود. هنگامی که روی 0.0 تنظیم شود، سروو در زمان شروع پرش ساعت انجام نخواهد داد. پیشفرض 0.00002 (20 میکروثانیه) است. این گزینه در گذشته pi_f_offset_const نامیده میشد.
- free_running
- در صورت فعال بودن، ساعت محلی را تنظیم نمیکند. پیشفرض 0 (غیرفعال) است.
- freq_est_interval
- فاصله زمانی که در طول آن نسبت فرکانسهای ساعت محلی و همتا تخمین زده میشود. این مقدار به صورت توانی از دو بر حسب ثانیه مشخص میشود. پیشفرض 1 (2 ثانیه) است.
- G.8275.defaultDS.localPriority
- پروفایلهای
مخابراتی (ITU-T
G.8275.1 و G.8275.2) یک
«الگوریتم
بهترین
ساعت مرجع»
(BMCA) جایگزین
را با
الگوریتم
مقایسه
مجموعه
دادههای
منحصربهفرد
مشخص
میکنند.
مقدار این
گزینه با
ساعت محلی
مرتبط است و
هر زمان که
clockClass ،clockAccuracy ،offsetScaledLogVariance و
priority2 برابر
باشند، به
عنوان
تعیینکننده
نهایی (tie breaker)
استفاده
میشود. این
گزینه تنها
زمانی
کاربرد
دارد که
"dataset_comparison" روی
"G.8275.x" تنظیم
شده باشد.
مقدار
پیشفرض 128
است.
هشدار: BMCA تنها در صورت استفاده از مقادیر پیشفرض G.8275.defaultDS.localPriority و G.8275.portDS.localPriority تضمین میکند که یک درخت پوشا (یعنی یک شبکه زمانبندی بدون حلقه) ایجاد شود. هنگام استفاده از مقادیر غیرپیشفرض، مهندسی دقیق شبکه ضروری است.
- gmCapable
- اگر این گزینه فعال باشد، ساعت محلی قادر به تبدیل شدن به گرندمستر (grand master) خواهد بود. این مورد فقط برای استفاده با ساعتهای 802.1AS است و تأثیری بر ساعتهای 1588 ندارد. پیشفرض 1 (فعال) است.
- ignore_source_id
- بررسی شناسه پورت مبدأ را برای پیامهای Sync و Follow_Up غیرفعال میکند. این گزینه زمانی مفید است که پیامهای اعلان در سرور غیرفعال باشند و کلاینت راهی برای دانستن هویت سرور نداشته باشد. پیشفرض 0 (غیرفعال) است.
- inhibit_announce
- تایمر پیامهای اعلان (یعنی FD_MANNO_TIMER) و همچنین تایمر مهلت زمانی پیام اعلان (یعنی FD_ANNOUNCE_TIMER) را غیرفعال میکند. این گزینه توسط پروفایل خودرویی (Automotive profile) به عنوان بخشی از جابجایی به یک BMCA ایستا استفاده میشود. اگر این گزینه فعال باشد، ignore_source_id باید در کلاینت فعال شود زیرا راهی برای شناسایی سرور در پیامهای Sync و Follow_Up ندارد. پیشفرض 0 (غیرفعال) است.
- initial_delay
- تأخیر اولیه مسیر ساعت بر حسب نانوثانیه که برای همگامسازی ساعت پیش از اندازهگیری تأخیر با استفاده از سازوکار تأخیر E2E یا P2P استفاده میشود. اگر روی 0 تنظیم شود، ساعت تا زمان اندازهگیری تأخیر بهروزرسانی نخواهد شد. پیشفرض 0 است.
- interface_rate_tlv
- هنگامی که کلاینت و سرور با نرخهای رابط متفاوتی کار میکنند، عدم تقارن تأخیر ناشی از نرخهای متفاوت رابط باید جبران شود. سرور نرخ رابط خود را با استفاده از TLV نرخ رابط طبق ضمیمه D استاندارد G.8275.2 ارسال میکند. پیشفرض 0 است (از tlv نرخ رابط پشتیبانی نمیکند).
- hwts_filter
- حالت تنظیم فیلتر برچسب زمانی سختافزاری را انتخاب میکند. مقادیر ممکن عبارتند از normal ،check و full. حالت normal فیلترها را بر اساس نیاز تنظیم میکند. حالت check فقط بررسی میکند اما تنظیم نمیکند. حالت full فیلتر دریافت را تنظیم میکند تا تمام بستهها را با برچسب زمانی سختافزاری علامتگذاری کند، تا همه برنامهها بتوانند آنها را دریافت کنند. پیشفرض normal است.
- kernel_leap
- هنگامی که یک ثانیه کبیسه (leap second) اعلام میشود، به هسته اجازه میدهد تا با پرش دادن ساعت آن را اعمال کند، به جای اصلاح آفست یکثانیهای با سروو، که آفست یکثانیهای را به آرامی با تغییر فرکانس ساعت اصلاح میکند (مگر اینکه گزینه step_threshold برای اصلاح چنین آفستی از طریق پرش تنظیم شده باشد). تنها با برچسبگذاری زمانی نرمافزاری کاربرد دارد. پیشفرض 1 (فعال) است.
- logging_level
- حداکثر سطح لاگ پیامهایی که باید چاپ شوند. پیشفرض 6 (LOG_INFO) است.
- manufacturerIdentity
- شناسه سازنده که باید یک OUI متعلق به سازنده باشد. پیشفرض 00:00:00 است.
- max_frequency
- حداکثر تنظیم فرکانس مجاز ساعت بر حسب بخش در میلیارد (ppb). این یک محدودیت اضافی برای حداکثر مقدار مجاز توسط سختافزار است. هنگامی که روی 0 تنظیم شود، محدودیت سختافزاری استفاده خواهد شد. پیشفرض 900000000 (90%) است. این گزینه در گذشته pi_max_frequency نامیده میشد.
- maxStepsRemoved
- هنگام استفاده از این گزینه، اگر مقدار stepsRemoved یک پیام Announce بزرگتر یا مساوی مقدار maxStepsRemoved باشد، پیام Announce در عملکرد BMCA لحاظ نخواهد شد. مقدار پیشفرض 255 است.
- message_tag
- برچسبی که به تمام پیامهای چاپشده در خروجی استاندارد یا لاگ سیستم اضافه میشود. اگر برچسب حاوی رشته "{level}" باشد، با سطح لاگ پیام به صورت یک عدد جایگزین خواهد شد. پیشفرض یک رشته خالی است (که نمیتوان آن را در فایل پیکربندی تنظیم کرد زیرا این گزینه نیاز به آرگومان دارد).
- msg_interval_request
- این گزینه در صورت تنظیم، هنگامی که سرووی ساعت وارد وضعیت SERVO_LOCKED_STABLE میشود، فواصل زمانی پیامهای Sync و درخواست تأخیر همتا را تنظیم میکند. فاصله زمانی Sync از طریق سازوکار سیگنالدهی تنظیم میشود در حالی که فاصله درخواست pdelay به سادگی به صورت محلی تنظیم خواهد شد. مقادیری که باید برای فواصل زمانی جدید درخواست Sync و تأخیر همتا استفاده شوند، به ترتیب توسط گزینههای operLogSyncInterval و operLogPdelayReqInterval مشخص میشوند. مقدار پیشفرض msg_interval_request برابر 0 (غیرفعال) است.
- ntpshm_segment
- شماره قطعه حافظه اشتراکی (SHM) مورد استفاده توسط سرووی ntpshm. پیشفرض 0 است.
- offsetScaledLogVariance
- صفت offsetScaledLogVariance ساعت محلی. این صفت پایداری ساعت را مشخص میکند. پیشفرض 0xFFFF است.
- pi_integral_const
- ثابت
انتگرالگیر
کنترلکننده
PI. هنگامی که
روی 0.0 تنظیم
شود، ثابت
انتگرالگیر
بر اساس
فرمول زیر
از روی
فاصله
زمانی sync
فعلی تعیین
میشود:
پیشفرض 0.0
است.
ki = min(ki_scale * sync^ki_exponent, ki_norm_max / sync)
- pi_integral_exponent
- ثابت ki_exponent در فرمول مورد استفاده برای تعیین ثابت انتگرالگیر کنترلکننده PI از روی فاصله زمانی sync. پیشفرض 0.4 است.
- pi_integral_norm_max
- ثابت ki_norm_max در فرمول مورد استفاده برای تعیین ثابت انتگرالگیر کنترلکننده PI از روی فاصله زمانی sync. پیشفرض 0.3 است.
- pi_integral_scale
- ثابت ki_scale در فرمول مورد استفاده برای تعیین ثابت انتگرالگیر کنترلکننده PI از روی فاصله زمانی sync. هنگامی که روی 0.0 تنظیم شود، مقدار به ترتیب از بین 0.3 و 0.001 برای برچسبگذاری زمانی سختافزاری و نرمافزاری انتخاب خواهد شد. پیشفرض 0.0 است.
- pi_proportional_const
- ثابت
تناسبی
کنترلکننده
PI. هنگامی که
روی 0.0 تنظیم
شود، ثابت
تناسبی بر
اساس فرمول
زیر از روی
فاصله
زمانی sync
فعلی تعیین
میشود:
پیشفرض 0.0
است.
kp = min(kp_scale * sync^kp_exponent, kp_norm_max / sync)
- pi_proportional_exponent
- ثابت kp_exponent در فرمول مورد استفاده برای تعیین ثابت تناسبی کنترلکننده PI از روی فاصله زمانی sync. پیشفرض 0.3- است.
- pi_proportional_norm_max
- ثابت kp_norm_max در فرمول مورد استفاده برای تعیین ثابت تناسبی کنترلکننده PI از روی فاصله زمانی sync. پیشفرض 0.7 است.
- pi_proportional_scale
- ثابت kp_scale در فرمول مورد استفاده برای تعیین ثابت تناسبی کنترلکننده PI از روی فاصله زمانی sync. هنگامی که روی 0.0 تنظیم شود، مقدار به ترتیب از بین 0.7 و 0.1 برای برچسبگذاری زمانی سختافزاری و نرمافزاری انتخاب خواهد شد. پیشفرض 0.0 است.
- productDescription
- رشته توضیحات محصول. مقادیر مجاز باید به شکل manufacturerName;modelNumber;instanceIdentifier بوده و حداکثر شامل 64 نماد utf8 باشند. پیشفرض ";;" است.
- priority1
- صفت priority1 برای ساعت محلی. در الگوریتم انتخاب سرور PTP استفاده میشود و مقادیر کمتر اولویت دارند. باید در محدوده 0 تا 255 باشد. پیشفرض 128 است.
- priority2
- صفت priority2 برای ساعت محلی. در الگوریتم انتخاب سرور PTP استفاده میشود و مقادیر کمتر اولویت دارند. باید در محدوده 0 تا 255 باشد. پیشفرض 128 است.
- ptp_minor_version
- این گزینه مقدار minorVersionPTP را در هدر پیام مشترک PTP تنظیم میکند. پیشفرض 1 است.
- refclock_sock_address
- آدرس سوکت دامنه یونیکس که باید توسط سرووی refclock_sock استفاده شود. پیشفرض /var/run/refclock.ptp.sock است.
- revisionData
- رشته توضیحات نگارش که شامل نگارشهای سختافزار گره (HW)، سفتافزار (FW) و نرمافزار (SW) است. مقادیر مجاز باید به شکل HW;FW;SW بوده و حداکثر شامل 32 نماد utf8 باشند. پیشفرض ";;" است.
- sa_file
- محل فایل حاوی «ارتباطهای امنیتی» (Security Associations) را مشخص میکند که برای پردازش فوری امنیتی Authentication TLV در پشتیبانی از سازوکار امنیتی اختیاری تعریفشده در فصل 14.16 استاندارد ieee1588-2019 استفاده میشود. برای اطلاعات در مورد نحوه قالببندی این فایل، بخش گزینههای ارتباط امنیتی (SECURITY ASSOCIATION OPTIONS) را ببینید. گزینههای spp و active_key_id باید برای هر پورت مشخص شوند تا تعیین کنند کدام ارتباط امنیتی از sa_file باید استفاده شود. پیشفرض یک رشته خالی است.
- sanity_freq_limit
- حداکثر آفست فرکانسی مجاز بین ساعت اصلاحنشده و ساعت یکنواخت سیستم (monotonic) بر حسب بخش در میلیارد (ppb). این گزینه به عنوان بررسی صحت ساعت همگامشده استفاده میشود. هنگامی که آفست بزرگتری اندازهگیری شود، یک پیام هشدار چاپ شده و سروو بازنشانی خواهد شد. اگر اصلاح فرکانس تعیینشده توسط ptp4l به طور غیرمنتظرهای بین بهروزرسانیهای ساعت تغییر کند (برای نمونه به دلیل تلاش فرآیند دیگری برای کنترل ساعت)، یک پیام هشدار چاپ خواهد شد. هنگامی که روی 0 تنظیم شود، بررسی صحت غیرفعال میشود. پیشفرض 200000000 (20%) است.
- servo_num_offset_values
- تعداد مقادیر آفست در نظر گرفتهشده برای انتقال از وضعیت SERVO_LOCKED به وضعیت SERVO_LOCKED_STABLE. این انتقال زمانی رخ میدهد که تمام آخرین مقادیر آفست به تعداد 'servo_num_offset_values' زیر مقدار 'servo_offset_threshold' باشند. مقدار پیشفرض 10 است.
- servo_offset_threshold
- آستانه آفست مورد استفاده برای انتقال از وضعیت SERVO_LOCKED به وضعیت SERVO_LOCKED_STABLE. این انتقال زمانی رخ میدهد که تمام آخرین مقادیر آفست به تعداد 'servo_num_offset_values' زیر مقدار آستانه باشند. مقدار پیشفرض offset_threshold برابر 0 (غیرفعال) است.
- slave_event_monitor
- آدرس یک سوکت دامنه یونیکس را برای پایش رویدادها مشخص میکند. یک کلاینت پایش محلی متصل به این آدرس، TLVهای SLAVE_RX_SYNC_TIMING_DATA و SLAVE_DELAY_TIMING_DATA_NP را دریافت خواهد کرد. پیشفرض رشته خالی (غیرفعال) است.
- slaveOnly
- این گزینه منسوخ شده و در نگارشهای آینده حذف خواهد شد. به جای آن از "clientOnly" استفاده کنید.
- socket_priority
- پیکربندی SO_PRIORITY سوکتها. این برای مواردی است که کاربر میخواهد ترافیک ptp4l را با استفاده از qdiscهای لینوکس به منظور شکلدهی ترافیک (traffic shaping) هدایت کند. این گزینه فقط با انتقال IEEE 802.3 (گزینه -2) در دسترس است و هنگام استفاده از روشهای انتقال شبکه UDP IPv4/6 بدون هیچ پیامی نادیده گرفته میشود. باید در محدوده 0 تا 15 باشد. پیشفرض 0 است.
- step_threshold
- حداکثر آفستی که سروو با تغییر فرکانس ساعت (تغییر فاز هنگام استفاده از سروو nullf) به جای پرش دادن ساعت اصلاح خواهد کرد. هنگامی که روی 0.0 تنظیم شود، سروو هرگز ساعت را پرش نمیدهد مگر در زمان شروع. این مقدار بر حسب ثانیه مشخص میشود. پیشفرض 0.0 است. این گزینه در گذشته pi_offset_const نامیده میشد.
- step_window
- در صورت تنظیم، تعداد رویدادهای Sync پس از پرش ساعت را نشان میدهد که در طول آن ساعت هیچگونه تنظیم فرکانسی یا پرشی انجام نخواهد داد. این گزینه در شرایطی استفاده میشود که پرش ساعت نمیتواند به صورت آنی رخ دهد، بنابراین تأخیری وجود دارد تا برچسبهای زمانی بتوانند به درستی تثبیت شوند و پرش ساعت را منعکس کنند. پیشفرض 0 (غیرفعال) است.
- summary_interval
- فاصله زمانی که در آن خلاصه آماری ساعت چاپ میشود. این مقدار به صورت توانی از دو بر حسب ثانیه مشخص میشود. این آمار شامل مقدار جذر میانگین مربعات آفست (RMS)، حداکثر آفست مطلق، میانگین و انحراف معیار آفست فرکانس، و میانگین و انحراف معیار تأخیر مسیر است. واحدها نانوثانیه و بخش در میلیارد (ppb) هستند. اگر در طول این بازه تنها یک بهروزرسانی ساعت وجود داشته باشد، به جای آمار، نمونه چاپ خواهد شد. پیامها در سطح LOG_INFO چاپ میشوند. پیشفرض 0 (1 ثانیه) است.
- tc_spanning_tree
- هنگام اجرا به عنوان ساعت شفاف (Transparent Clock)، فیلد "stepsRemoved" پیامهای Announce را که از سوئیچ عبور میکنند افزایش میدهد. فعال کردن این گزینه تضمین میکند که حلقههای پیام PTP هرگز شکل نگیرند، مشروط بر اینکه تمام سوئیچها این گزینه را همراه با BMCA پیادهسازی کرده باشند.
- timeSource
- منبع زمان یک کد تکبایتی است که ایدهای از نوع ساعت محلی در حال استفاده را ارائه میدهد. مقدار آن صرفاً جنبه اطلاعرسانی دارد و هیچ تأثیری بر نتیجه الگوریتم بهترین ساعت مرجع ندارد و زمانی که ساعت به گرندمستر تبدیل شود اعلان خواهد شد.
- time_stamping
- روش برچسبگذاری زمانی مورد استفاده. مقادیر مجاز عبارتند از hardware ،software ،legacy ،onestep و p2p1step. پیشفرض hardware است.
- twoStepFlag
- حالت دومرحلهای (two-step) را برای پیامهای sync فعال میکند. حالت تکمرحلهای (one-step) تنها با برچسبگذاری زمانی سختافزاری قابل استفاده است. پیشفرض 1 (فعال) است.
- tx_timestamp_timeout
- تعداد میلیثانیهها برای بررسی دورهای (polling) جهت انتظار برای برچسب زمانی ارسال (tx) از طرف هسته، هنگامی که اخیراً پیامی ارسال شده است. پیشفرض 10 است.
- udp6_scope
- دامنه (scope) مورد نظر را برای پیامهای چندپخشی IPv6 مشخص میکند. این مقدار به عنوان بایت دوم آدرس اصلی استفاده خواهد شد. این گزینه تنها با انتقال IPv6 ارتباط دارد. استاندارد RFC 4291 را ببینید. پیشفرض 0x0E برای دامنه سراسری است.
- uds_address
- آدرس سوکت دامنه یونیکس را برای دریافت پیامهای مدیریتی محلی مشخص میکند. پیشفرض /var/run/ptp4l است.
- uds_file_mode
- حالت دسترسی فایل (file mode) مربوط به سوکت دامنه یونیکس مورد استفاده برای دریافت پیامهای مدیریتی محلی. این حالت باید به صورت یک عدد اکتال مشخص شود، یعنی باید با نویسه 0 شروع شود. حالت پیشفرض 0660 است.
- uds_ro_address
- آدرس دومین سوکت دامنه یونیکس را برای دریافت پیامهای مدیریتی محلی مشخص میکند که محدود به عملیات GET است و پیامها را به پورتهای دیگر فوروارد نمیکند. دسترسی به این سوکت را میتوان برای مقاصد پایش در اختیار برنامههای غیرقابل اعتماد قرار داد. پیشفرض /var/run/ptp4lro است.
- uds_ro_file_mode
- حالت دسترسی فایل دومین سوکت دامنه یونیکس (فقطخواندنی) مورد استفاده برای دریافت پیامهای مدیریتی محلی. این حالت باید به صورت یک عدد اکتال مشخص شود، یعنی باید با نویسه 0 شروع شود. حالت پیشفرض 0666 است.
- use_syslog
- در صورت فعال بودن، پیامها را در لاگ سیستم چاپ میکند. پیشفرض 1 (فعال) است.
- userDescription
- رشته توضیحات کاربر. مقادیر مجاز به فرم name;location بوده و حداکثر شامل 128 نماد utf8 هستند. پیشفرض یک رشته خالی است.
- utc_offset
- آفست فعلی بین TAI و UTC. پیشفرض 37 است.
- verbose
- در صورت فعال بودن، پیامها را در خروجی استاندارد چاپ میکند. پیشفرض 0 (غیرفعال) است.
- write_phase_mode
- این گزینه استفاده از قابلیت "write phase" در ساعت سختافزاری PTP را فعال میکند. در صورت پشتیبانی توسط دستگاه، این حالت به جای کنترل آفست فرکانس، از کنترل آفست فاز داخلی سختافزار استفاده مینماید. مقدار پیشفرض 0 (غیرفعال) است.
گزینههای کشف تکپخشی (UNICAST DISCOVERY OPTIONS)
- L2|UDPv4|UDPv6
- هر ورودی جدول، نوع انتقال و آدرس شبکه یک سرور بالقوه راه دور را مشخص میکند. اگر چندین سرور مشخص شده باشد، مذاکره تکپخشی (unicast negotiation) با تکتک آنها انجام خواهد شد.
- logQueryInterval
- این گزینه زمان انتظار بین تلاشهای مذاکره تکپخشی را پیکربندی میکند. این مقدار به صورت توانی از دو بر حسب ثانیه مشخص میشود. پیشفرض 0 (1 ثانیه) است.
- peer_address
- این گزینه آدرس تکپخشی همتا را برای استفاده با سازوکار تأخیر همتا به همتا (peer to peer) مشخص میکند. در صورت مشخص شدن، پورتی که مالک جدول است، پاسخهای تأخیر همتای تکپخشی را از ماشین با آدرس راه دور ارائهشده مذاکره میکند، در غیر این صورت پورت درخواستهای تأخیر همتای چندپخشی (multicast) ارسال خواهد کرد.
- table_id
- هر جدول باید با یک شناسه جدول عددی مثبت و منحصربهفرد آغاز شود. پورتی که مدعی یک جدول معین است، این کار را با درج شناسه به عنوان مقدار گزینه 'unicast_master_table' خود انجام میدهد.
گزینههای ارتباط امنیتی (SECURITY ASSOCIATION OPTIONS)
- spp
- هر ارتباط امنیتی باید با یک spp منحصربهفرد آغاز شود. پورتی که مدعی یک ارتباط امنیتی معین است، این کار را با درج spp به عنوان مقدار گزینه 'spp' خود انجام میدهد. باید در محدوده 0 تا 255 (شامل هر دو) باشد.
- seqid_window
- این گزینه تعیین میکند که شناسه توالی (sequence id) یک پیام ورودی sync/follow_up تا چه اندازه میتواند نسبت به آخرین پیام sync/follow_up پردازششده با موفقیت جلوتر باشد، پیش از آنکه به عنوان یک پیام بازپخششده (replayed message) تلقی شود. ردیابی seqid پیامهای Sync/follow_up با تغییر وضعیت پورت بازنشانی شده و پس از پردازش موفقیتآمیز بهروزرسانی میشود. هنگامی که روی صفر تنظیم شود، هیچ بررسی شناسه توالی انجام نخواهد شد. باید در محدوده 0 تا 32767 (0x7FFF) شامل هر دو باشد. مقدار پیشفرض 3 است.
- allow_mutable
- در صورتی که پشتیبانی از authentication tlv در طول مسیر امکانپذیر نباشد، این گزینه اجازه استفاده از فیلدهای اصلاح تغییرپذیر (mutable correction fields) را میدهد. استفاده از این گزینه توصیه نمیشود زیرا فیلد اصلاح را بدون محافظت رها میکند. مقدار پیشفرض 0 (غیرفعال) است.
- key (format: id type length value)
- هر ارتباط امنیتی باید حداقل یک ورودی کلید داشته باشد. این ورودیها باید از قالب 'id type length value' استفاده کنند:
- شناسه کلید (Key id): باید در محدوده 1 تا 1-2^32 (شامل هر دو) باشد.
- نوع کلید (Key type): مقادیر مجاز عبارتند از SHA256-128 ،SHA256 ،AES128 و AES256.
- طول کلید (Key length): طول اختیاری کلید اعتبارسنجی بر حسب اوکتت (بایت). برای تأیید اینکه مقدار کلید دارای طول مشخصشده است استفاده میشود.
- مقدار کلید (Key value): میتواند به صورت نویسههای ASCII با پیشوند "ASCII:"، به صورت عدد هگزادسیمال با پیشوند "HEX:"، یا به صورت رشته کدگذاریشده Base64 با پیشوند "B64:" خوانده شود. اگر هیچ پیشوندی گنجانده نشود، ASCII فرض میشود. مقادیر کلید در صورت امکان باید به صورت تصادفی تولید شوند. رمزهای قالبی (AES) نیازمند مطابقت طول کلید با طول الگوریتم رمزنگاری هستند (برای نمونه AES-128 نیازمند کلید 128 بیتی یا 16 بایتی است).
- مثال
- در ادامه
نمونهای
از یک فایل
ارتباطهای
امنیتی
آورده شده
است:
[security_association] spp 0 allow_mutable 1 1 SHA256-128 HEX:F8ADC6B8B8E9AA709106BA42481EC9E29607334DE2C3C737A11A12931DB27F8C 2 SHA256 32 HEX:EE91D469B3A8ADC6AC8EB28E21794C706E08FDE48863828A7B0281AFCA81B17D [security_association] spp 1 seqid_window 20 1 AES128 HEX:FAF48EBA01E7C5966A76CB787AED4E7B 2 AES256 B64:PKTF9VQz94qPaoAzW4eE3JtFoQ8Ov1OTQSojalWyMbs= 3 SHA256 26 abcdefghijklmnopqrstuvwxyz
کاربرد مقیاس زمانی (TIME SCALE USAGE)
هنگامی که ptp4l به عنوان سرور دامنه عمل میکند، بسته به حالت برچسبگذاری زمانی از مقیاس زمانی PTP یا UTC استفاده میکند. در حالتهای برچسبگذاری زمانی نرمافزاری و قدیمی، حالت مقیاس زمانی اختیاری (Arbitrary) را اعلان میکند که در اینجا عملاً همان UTC است. در حالت برچسبگذاری زمانی سختافزاری، استفاده از مقیاس زمانی PTP را اعلان مینماید.
هنگامی که ptp4l سرور دامنه با استفاده از برچسبگذاری زمانی سختافزاری است، وظیفه حفظ آفست صحیح بین زمانهای UTC و PTP بر عهده phc2sys است. برای جزئیات بیشتر به صفحه راهنمای phc2sys(8) مراجعه کنید.
اولویت رشته هسته (KTHREAD PRIORITY)
در صورت مشاهده لاگ زیر:
یکی از دلایل احتمالی این است که kworker مسئول پردازش برچسبهای زمانی دچار کمبود منابع (starved) شده است. مدیر سیستم میتواند اولویت kworker را به صورت دستی افزایش دهد.
بسیاری از درایورهای دستگاه از رشتههای kworker ایجادشده توسط پشته PTP استفاده میکنند. این kworkerها به این صورت نامگذاری میشوند:
مدیر سیستم میتواند با استفاده از دستور chrt اولویت فرآیند kworker را به صورت دستی افزایش دهد.
مثال:
درایور Intel ice ممکن است چندین kworker برای یک کارت شبکه (NIC) فیزیکی ایجاد کند و آن فرآیندها را با نامهای متفاوتی نامگذاری نماید.
مثال برای کارت Intel E810:
اختصاص اولویت نیازمند بررسی دقیق است زیرا اختصاص اولویت بیش از حد بالا به هر تسکی ممکن است سیستم را ناپایدار کند.
همچنین ببینید (SEE ALSO)
| March 2024 | linuxptp |