PMC(8) System Manager's Manual PMC(8)

pmc - کلاینت مدیریت PTP

pmc [ -f config-file ] [ -2 | -4 | -6 | -u ] [ -b boundary-hops ] [ -d domain-number ] [ -i interface ] [ -s uds-address ] [ -t transport-specific-field ] [ long-options ] [ -v ] [ -z ] [ command ] ...

برنامه pmc یک کلاینت مدیریت PTP را بر اساس استاندارد IEEE 1588 پیاده‌سازی می‌کند. این برنامه عملیات مشخص‌شده با نام و شناسه مدیریتی (management ID) را از ورودی استاندارد یا از خط فرمان می‌خواند، آن‌ها را از طریق بستر انتقال (transport) انتخاب‌شده ارسال کرده و پاسخ‌های دریافت‌شده را چاپ می‌کند. سه نوع عملیات پشتیبانی می‌شوند: GET اطلاعات مشخص‌شده را دریافت می‌کند، SET اطلاعات مشخص‌شده را به‌روزرسانی می‌کند و CMD (یا COMMAND) رویداد مشخص‌شده را آغاز می‌نماید.

به‌طور پیش‌فرض، دستورات مدیریتی به تمام درگاه‌ها (ports) ارسال می‌شوند. دستور TARGET می‌تواند برای انتخاب یک ساعت و درگاه مشخص جهت پیام‌های بعدی استفاده شود.

دستور help می‌تواند برای دریافت فهرستی از عملیات و شناسه‌های مدیریتی پشتیبانی‌شده به کار رود.

خواندن پیکربندی از پرونده مشخص‌شده. به‌طور پیش‌فرض هیچ پرونده پیکربندی خوانده نمی‌شود.
-2
انتخاب بستر انتقال شبکه بر پایه IEEE 802.3.
-4
انتخاب بستر انتقال شبکه بر پایه UDP IPv4. این بستر انتقال پیش‌فرض است.
-6
انتخاب بستر انتقال شبکه بر پایه UDP IPv6.
انتخاب بستر انتقال سوکت دامنه یونیکس (Unix Domain Socket).
مشخص کردن مقدار جهش‌های مرزی (boundary hops) در پیام‌های ارسالی. مقدار پیش‌فرض 1 است.
مشخص کردن شماره دامنه (domain number) در پیام‌های ارسالی. مقدار پیش‌فرض 0 است.
مشخص کردن رابط شبکه. مقدار پیش‌فرض برای انتقال سوکت دامنه یونیکس /var/run/pmc.$pid و برای سایر روش‌های انتقال eth0 است.
مشخص کردن نشانی سوکت دامنه یونیکس کارساز (سرور). مقدار پیش‌فرض /var/run/ptp4l است.
مشخص کردن فیلد ویژه انتقال (transport specific field) در پیام‌های ارسالی به صورت یک عدد هگزادسیمال (شانزده‌شانزدهی). مقدار پیش‌فرض 0x0 است.
نمایش یک پیام راهنما.
چاپ نسخه نرم‌افزار و خروج.
تفسیر رسمی استاندارد 1588 ارسال عملیات GET را همراه با مقادیر معتبر (اما بدون معنی) TLV الزامی می‌داند. بنابراین برنامه pmc معمولاً درخواست‌های GET را با مقادیر TLV با ساختار مناسب ارسال می‌کند. این گزینه، رفتار موروثی (legacy) ارسال مقادیر TLV با طول صفر را فعال می‌کند.

هر یک از گزینه‌های پرونده پیکربندی (به بخش‌های گزینه‌های برنامه (PROGRAM OPTIONS) و گزینه‌های درگاه (PORT OPTIONS) در زیر مراجعه کنید) می‌توانند به عنوان یک آرگومان خط فرمان با ساختار «بلند» (long) نیز ظاهر شوند. برای نمونه، گزینه transportSpecific می‌تواند با استفاده از هر یک از این دو قالب تنظیم شود:

--transportSpecific 1 --transportSpecific=1

مقادیر گزینه‌های ارائه‌شده در خط فرمان، مقادیر بخش سراسری (global) پرونده پیکربندی را بازنویسی (override) می‌کنند (که آن نیز به نوبه خود مقادیر پیش‌فرض را بازنویسی می‌کند).

پرونده پیکربندی به بخش‌های مختلفی تقسیم شده است. هر بخش با خطی شامل نام آن در میان براکت‌ها آغاز می‌شود و پس از آن تنظیمات قرار می‌گیرند. هر تنظیم در یک خط جداگانه قرار دارد و شامل نام گزینه و مقدار آن است که با نویسه‌های فاصله خالی (whitespace) از یکدیگر جدا شده‌اند. خطوط خالی و خطوطی که با # شروع می‌شوند نادیده گرفته می‌شوند.

بخش سراسری (که با [global] مشخص می‌شود) گزینه‌های سراسری برنامه و همچنین گزینه‌های پیش‌فرض ویژه هر درگاه را تنظیم می‌کند. سایر بخش‌ها مربوط به درگاه‌های خاص بوده و گزینه‌های پیش‌فرض درگاه را بازنویسی می‌کنند. نام بخش برابر با نام درگاه پیکربندی‌شده است (مانند [eth0] ).

ویژگی دامنه (domain attribute) مربوط به ساعت محلی. مقدار پیش‌فرض 0 است.
محل پرونده حاوی انجمن‌های امنیتی (Security Associations) را که برای پردازش امنیتی فوری Authentication TLV در پشتیبانی از سازوکار امنیتی اختیاری تعریف‌شده در استاندارد ieee1588-2019 فصل 14.16 استفاده می‌شود، مشخص می‌کند. برای اطلاعات بیشتر درباره نحوه قالب‌بندی این پرونده، به گزینه‌های انجمن امنیتی (SECURITY ASSOCIATION OPTIONS) مراجعه کنید. گزینه‌های spp و active_key_id باید برای هر درگاه مشخص شوند تا نشان دهند کدام انجمن امنیتی از sa_file باید استفاده شود. مقدار پیش‌فرض یک رشته خالی است.

در ترکیب با دستورالعمل‌های spp و sa_file برای مشخص کردن این که کدام کلید از انجمن امنیتی تعریف‌شده توسط spp باید برای محاسبات icv خروجی استفاده شود، به کار می‌رود. تمام انجمن‌های امنیتی از پرونده مشخص‌شده توسط sa_file خوانده می‌شوند. نیازمند دستورالعمل‌های spp و sa_file است. مقدار باید در محدوده 1 تا 2^32-1 (شامل هر دو) باشد. مقدار پیش‌فرض 0 (غیرفعال) است.
به pmc امکان می‌دهد در صورت فعال بودن احراز هویت و تنظیم بودن spp، active_key_id و sa_file، پیام‌های پاسخ مدیریتی و سیگنال‌دهی تاییدنشده (بدون احراز هویت) را بپذیرد. مقادیر ممکن عبارتند از:
0: دریافت عادی
1: پذیرش پاسخ‌های مدیریتی/سیگنال‌دهی بدون Authentication TLV
2: پذیرش پاسخ‌های مدیریتی/سیگنال‌دهی بدون Authentication TLV یا با Authentication TLV نادرست مقدار پیش‌فرض 0 (غیرفعال) است.
انتخاب بستر انتقال شبکه. مقادیر ممکن عبارتند از UDPv4، UDPv6 و L2. مقدار پیش‌فرض UDPv4 است.
نشانی MAC که پیام‌های مدیریتی PTP باید به آن ارسال شوند. تنها در بستر انتقال L2 کاربرد دارد. مقدار پیش‌فرض 01:1B:19:00:00:00 است.
اشاره‌گر پارامترهای امنیتی (Security Parameters Pointer) انجمن امنیتی مورد نظر را برای استفاده در پشتیبانی از Authentication TLV در یک درگاه مشخص تعیین می‌کند. هر درگاهی با یک spp اختصاص‌یافته، Authentication TLV را به تمام پیام‌های خروجی ضمیمه کرده و وجود Authentication TLV را در تمام پیام‌های ورودی مطابق با انجمن امنیتی مربوطه که از طریق دستورالعمل sa_file بارگذاری شده بررسی می‌کند. مقادیر Authentication TLV خروجی با استفاده از کلید مشخص‌شده توسط active_key_id تولید می‌شوند. با درگاه‌های یک‌مرحله‌ای (one step) یا نسخه‌های اعلام‌شده کمتر از PTPv2.1 سازگار نیست. به دستورالعمل‌های sa_file و active_key_id نیاز دارد. باید در محدوده 0 تا 255 (شامل هر دو) باشد. مقدار پیش‌فرض -1 (غیرفعال) است.
فیلد ویژه انتقال (transport specific). باید در محدوده 0 تا 255 باشد. مقدار پیش‌فرض 0 است.

هنگامی که از یک پرونده پیکربندی یکسان برای هر دو برنامه ptp4l و pmc استفاده می‌شود، احتیاط کنید. به یاد داشته باشید مقادیری که در پرونده پیکربندی مشخص می‌شوند نسبت به مقادیر پیش‌فرض خود اولویت دارند. اگر گزینه خاصی که بین ptp4l و pmc مشترک است در پرونده پیکربندی روی مقداری غیر از پیش‌فرض تنظیم شود (مثلاً برای ptp4l)، این مقدار غیر پیش‌فرض برای pmc نیز اعمال خواهد شد. این موضوع ممکن است با آنچه انتظار می‌رود متفاوت باشد.

جهت جلوگیری مطمئن از این رفتارهای غیرمنتظره، توصیه می‌شود پرونده‌های پیکربندی متفاوتی برای ptp4l و pmc استفاده شود.

ptp4l(8)

March 2024 linuxptp