P4 (زبان برنامه‌نویسی)

مرور کلی زبان و ملاحظات طراحی

به عنوان زبان که به‌طور خاص هدف آن در کاربرد انتقال بسته است، فهرست الزامات مورد نیاز یا گزینه‌های طراحی نیز تا حدودی منحصر به همان موارد استفاده می‌باشد . این زبان برای دستیابی به اهداف زیر طراحی شده‌است:

هدف ایجاد

P4 برنامه‌های طراحی شده به اجرای مستقل ازمعنی آن‌ها را می‌توان وارد شده در برابر بسیاری از انواع مختلف از اجرای ماشین آلات مانند منظوره پردازنده FPGAs سیستم(ع)-بر-تراشه پردازنده‌های شبکه و ASICs. این انواع مختلف از ماشین آلات شناخته شده به عنوان P4 اهدافو هر هدف باید همراه با ارائه یک کامپایلر که نقشه P4 کد منبع به یک هدف تغییر مدل. به عنوان بسیاری از اهداف اولیه برای P4 برنامه‌ها استفاده شد برای ساده سوئیچینگ بسته این بسیار معمول است برای شنیدن اصطلاح "P4 سوئیچ" استفاده می‌شود حتی اگر "P4 هدف" است و بیشتر به‌طور رسمی درست است.

پروتکل استقلال

P4 طراحی شده‌است که پروتکل مستقلبه این معنی که زبان هیچ پشتیبانی بومی و حتی به صورت مشترک از پروتکل‌های مانند IP اترنت TCP VxLAN یا MPLS هستند. در عوض P4 برنامه‌نویس توصیف سربرگ فرمت و نام فیلد از پروتکل‌های مورد نیاز در این برنامه که به نوبه خود تفسیر و پردازش وارد برنامه و دستگاه مورد نظر.

Reconfigurability

پروتکل استقلال و انتزاعی زبان مدل اجازه می‌دهد برای reconfigurability – P4 اهداف باید قادر به تغییر راه آن‌ها فرایند بسته (شاید چندین بار) و پس از آن‌ها مستقر هستند. این قابلیت به‌طور سنتی مرتبط با حمل و نقل هواپیماهای ساخته شده در general-purpose پردازنده یا پردازنده های شبکه به جای ثابت تابع ASICs. اگر چه در زبان وجود دارد هیچ چیز برای جلوگیری از داده هدف از بهینه سازی در اطراف مجموعه ای از پروتکل‌های این بهینه سازی در حال نامرئی به زبان نویسنده است و ممکن است در نهایت کاهش سیستم انعطاف‌پذیری و reconfigurability اهداف است.

بازی-اکشن پردازش

اساسی به P4 است مفهوم بازی اکشن خطوط لولهاست. مفهومی حمل و نقل بسته‌های شبکه یا فریم را می‌توان به یک سری از متغیر جدول مربوطه و هدر دستکاری. در P4 این دستکاری شناخته شده به عنوان "اقدامات" و به‌طور کلی شامل چیزهایی مانند کپی بایت زمینه از یک مکان به مکان دیگر بر اساس گرین کارت آمریکا نتایج آموخته حمل و نقل دولت است. P4 آدرس تنها اطلاعات هواپیما از یک بسته حمل و نقل دستگاه‌های آن را مشخص می‌کند که کنترل هواپیما و نه هر گونه دقیق پروتکل برای برقراری ارتباط بین دولت روی داده و کنترل هواپیما. به جای P4 با استفاده از مفهوم جداول به نمایندگی حمل و نقل هواپیما دولت است. یک رابط بین کنترل هواپیما و مختلف P4 جداول ارائه شده باید اجازه می‌دهد تا کنترل هواپیما برای تزریق/تغییر دولت در برنامه است. این رابط کاربری به‌طور کلی به عنوان "برنامه API".

عناوین

هدر تعاریف توصیف بسته فرمت و ارائه اسامی این زمینه در داخل بسته. زبان اجازه می‌دهد تا سفارشی سربرگ با نام و زمینه‌های دلخواه ظهر اگر چه بسیاری از هدر تعاریف استفاده از به‌طور گسترده ای شناخته شده پروتکل نام و زمینه عرض است. برای مثال یک 802.3 Ethernet header تعریف ممکن است به نام "اترنت" و شامل 48-bit زمینه به نام "مقصد" و پس از 48-bit "src" درست پس از 16 بیت "نوع" درست است. نام در هدر تعریف استفاده می‌شود بعد در P4 برنامه برای مرجع در این زمینه.

تجزیه کننده

این P4 تجزیه کننده محدود است دولت ماشین که پیاده‌روی در ورودی بایت-جریان و عصاره عناوین بر اساس برنامه‌ریزی تجزیه و تحلیل نمودار. یک مثال ساده می‌تواند یک تجزیه‌کننده است که عصاره اترنت منبع و مقصد و نوع رشته و سپس انجام یک بیشتر استخراج بر اساس ارزش در زمینه نوع (ارزش‌های مشترک ممکن است ipv4, ipv6 یا MPLS).

جداول

P4 جداول شامل دولت استفاده می‌شود به جلو بسته. جداول تشکیل شده مراجعه و کلید مربوطه مجموعه ای از اقدامات و پارامترهای خود را. بی اهمیت به عنوان مثال ممکن است برای ذخیره مجموعه ای از مقصد مک آدرس به مراجعه به کلیدهای مربوطه اقدام می‌تواند مجموعه ای از پورت خروجی دستگاه و/یا افزایش یک شمارنده است. جداول مرتبط و اقدامات تقریباً همیشه زنجیر با هم در دنباله به درک کامل بسته حمل و نقل منطق اگر چه در انتزاعی آن است که ممکن است برای ساخت یک جدول که شامل تمام گرین کارت آمریکا اطلاعات کلیدی و کامل خروجی اکشن مجموعه.

اقدامات

اقدامات در P4 توصیف بسته میشه و ابرداده دستکاری. در P4 زمینه‌های ابرداده است اطلاعات در مورد یک بسته است که به‌طور مستقیم به دست آمده از تجزیه‌کننده مانند رابط ورودی که قاب وارد شدند. شرح یک مثال عمل ممکن است "کاهش IPv4 TTL زمینه توسط یک" یا "کپی کردن آدرس MAC از پورت خروجی جدول به خروجی بسته هدر است."  P4 تعریف استاندارد ابرداده ای است که باید توسط تمام اهداف به عنوان به خوبی به عنوان هدف خاص ابرداده است که ارائه شده توسط نویسنده از اهداف خاص.

کنترل جریان

کنترل جریان در P4 تعیین نسبی دنباله ای از جداول بوده و اجازه می‌دهد تا  اجزایی به صورت شرطی از جداول بر اساس if/then/else ساخت.