DCB-ETS(8) Linux DCB-ETS(8)

dcb-ets - پیکربندی انتخاب ارسال پیشرفته (Enhanced Transmission Selection) در dcb


dcb [ OPTIONS ] ets { COMMAND | help }

dcb ets show dev DEV [ willing ] [ ets-cap ] [ cbs ] [ tc-tsa ] [ reco-tc-tsa ] [ pg-bw ] [ tc-bw ] [ reco-tc-bw ] [ prio-tc ] [ reco-prio-tc ]

dcb ets set dev DEV [ willing { on | off } ] [ { tc-tsa | reco-tc-tsa } TSA-MAP ] [ { pg-bw | tc-bw | reco-tc-bw } BW-MAP ] [ { prio-tc | reco-prio-tc } PRIO-MAP ]

TSA-MAP := [ TSA-MAP ] TSA-MAPPING

TSA-MAPPING := { TC | all }:{ strict | cbs | ets | vendor }

BW-MAP := [ BW-MAP ] BW-MAPPING

BW-MAPPING := { TC | all }:INTEGER

PRIO-MAP := [ PRIO-MAP ] PRIO-MAPPING

PRIO-MAPPING := { PRIO | all }:TC

TC := { 0 .. 7 }

PRIO := { 0 .. 7 }

دستور dcb ets برای پیکربندی ویژگی‌های انتخاب ارسال پیشرفته (ETS یا Enhanced Transmission Selection) از طریق رابط DCB (پل‌بندی مرکز داده یا Data Center Bridging) لینوکس استفاده می‌شود. سازوکار ETS امکان پیکربندی نگاشت اولویت‌ها به رده‌های ترافیکی (traffic classes)، الگوریتم انتخاب ترافیک مورد استفاده برای هر رده ترافیکی، تخصیص پهنای باند و غیره را فراهم می‌کند.

دو TLV در DCB با ویژگی ETS مرتبط هستند: مقادیر پیکربندی و مقادیر پیشنهادی (recommendation). مقادیر پیشنهادی با پیشوند reco- نام‌گذاری می‌شوند، در حالی که مقادیر پیکربندی دارای نام‌های معمولی و بدون پیشوند هستند.

برای پارامترهای خواندنی-نوشتنی، موارد زیر تنها جهت نوشتن را شرح می‌دهند، یعنی همان‌گونه که با دستور set استفاده می‌شوند. برای دستور show، نام پارامتر باید به عنوان یک کلیدواژه ساده بدون آرگومان‌های بیشتر استفاده شود. این کار به ابزار اعلام می‌کند که مقدار یک پارامتر داده‌شده را نمایش دهد. هنگامی که هیچ پارامتری داده نشود، ابزار پیکربندی کامل ETS را نمایش می‌دهد.

یک ویژگی فقط-خواندنی که تعداد رده‌های ترافیکی (traffic classes) پشتیبانی‌شده توسط ETS را نمایش می‌دهد.
یک ویژگی فقط-خواندنی که در صورت پشتیبانی درایور و سخت‌افزار از الگوریتم انتخاب ارسال CBS فعال است.
مشخص می‌کند که آیا میزبان محلی باید پیکربندی را از TLVهای همتا (peer) بپذیرد یا خیر.
پارامتر PRIO-MAP از نحو پارامتر آرایه‌ای استفاده می‌کند؛ برای جزئیات به dcb(8) مراجعه کنید. کلیدها اولویت‌ها هستند و مقادیر رده‌های ترافیکی می‌باشند. برای هر اولویت، رده ترافیکی (TC) را تعیین می‌کند که ترافیک با آن اولویت به آن هدایت می‌شود.
پارامتر TSA-MAP از نحو پارامتر آرایه‌ای استفاده می‌کند؛ برای جزئیات به dcb(8) مراجعه کنید. کلیدها رده‌های ترافیکی (TC) و مقادیر کلیدواژه‌های الگوریتم انتخاب ارسال (Transmission Selection Algorithm یا TSA) هستند که در زیر شرح داده شده‌اند. برای هر TC، الگوریتم مورد استفاده برای تصمیم‌گیری در مورد نحوه زمان‌بندی ترافیک صف‌کشیده در این TC جهت ارسال را مشخص می‌کند. الگوریتم‌های TSA پشتیبانی‌شده عبارتند از:

strict - برای اولویت اکید (strict priority)، که در آن ترافیک در رده‌های TC با شماره بالاتر همیشه بر ترافیک در رده‌های TC با شماره پایین‌تر برتری و اولویت دارد.
ets - برای انتخاب ارسال پیشرفته (Enhanced Traffic Selection)، که در آن پهنای باند موجود بین رده‌های TC فعال‌شده برای ETS بر اساس وزن‌های تعیین‌شده به ترتیب توسط tc-bw و reco-tc-bw، توزیع می‌شود.
cbs - برای شکل‌دهنده مبتنی بر اعتبار (Credit Based Shaper)، که در آن ترافیک به شیوه‌ای اکید تا سقف حد تعیین‌شده توسط یک شکل‌دهنده (shaper) زمان‌بندی می‌شود.
vendor - برای الگوریتم انتخاب ترافیک اختصاصی و وابسته به سازنده (vendor-specific).

پارامتر BW-MAP از نحو پارامتر آرایه‌ای استفاده می‌کند؛ برای جزئیات به dcb(8) مراجعه کنید. کلیدها رده‌های ترافیکی (TC) و مقادیر اعداد صحیحی هستند که درصد پهنای باند موجود اختصاص‌یافته به رده ترافیکی مورد نظر را نشان می‌دهند. مقدار برای رده‌های TC که TSA آن‌ها ets نیست باید 0 باشد، و مجموع تمام مقادیر باید برابر 100 شود. به عنوان یک استثنا بر عبارت استاندارد، پیکربندی بدون هیچ رده TC از نوع ets مجاز است در مجموع برابر 0 باشد.
معنای دقیق pg-bw استانداردسازی نشده است، اما به نظر می‌رسد فرض بر این است که همان فرآیند زمان‌بندی در سمت ارسال، در سمت دریافت نیز قابل اعمال است، و تخصیص پهنای باند دریافت را برای رده‌های ترافیکی ورودی (گروه‌های اولویت یا priority groups) از نوع ets پیکربندی می‌کند.

پیکربندی priomap مربوط به ETS به صورت یک‌به‌یک:

# dcb ets set dev eth0 prio-tc 0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7

تنظیم TSA و پیکربندی پهنای باند ارسال:

# dcb ets set dev eth0 tc-tsa all:strict 0:ets 1:ets 2:ets \
tc-bw all:0 0:33 1:33 2:34

نمایش موارد تنظیم‌شده:

# dcb ets show dev eth0 prio-tc tc-tsa tc-bw
prio-tc 0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7
tc-tsa 0:ets 1:ets 2:ets 3:strict 4:strict 5:strict 6:strict 7:strict
tc-bw 0:33 1:33 2:34 3:0 4:0 5:0 6:0 7:0

در صورت موفقیت‌آمیز بودن دستور، وضعیت خروج 0 و در صورت شکست یک عدد صحیح مثبت خواهد بود.

dcb(8)

هرگونه اشکال را به فهرست پستی توسعه‌دهندگان شبکه <netdev@vger.kernel.org> که توسعه و نگهداری عمدتاً در آنجا انجام می‌شود گزارش دهید. برای ارسال پیام به این فهرست پستی، نیازی به عضویت در آن ندارید.

Petr Machata <me@pmachata.org>

19 October 2020 iproute2