DEVLINK-RATE(8) Linux DEVLINK-RATE(8)

devlink-rate - مدیریت نرخ ارسال پورتها و گروههای devlink


devlink [ OPTIONS ] port function rate { COMMAND | help }

OPTIONS := { -j[son] | -p[retty] | -i[ec] }

devlink port function rate show [ { DEV/PORT_INDEX | DEV/NODE_NAME } ]

devlink port function rate set { DEV/PORT_INDEX | DEV/NODE_NAME } [ tx_share VALUE ] [ tx_max VALUE ] [ tx_priority N ] [ tx_weight N ] [ tc-bw INDEX:N ] [ { parent NODE_NAME | noparent } ]

devlink port function rate add DEV/NODE_NAME [ tx_share VALUE ] [ tx_max VALUE ] [ tx_priority N ] [ tx_weight N ] [ tc-bw INDEX:N ] [ { parent NODE_NAME | noparent } ]

devlink port function rate del DEV/NODE_NAME

devlink port function rate help

شیء نرخ مشخص‌شده یا در صورت عدم تعیین، تمام اشیاء نرخ را نمایش می‌دهد. شیء نرخ می‌تواند یکی از این دو نوع باشد:

نمایانگر یک پورت منفرد devlink است؛ توسط درایور ایجاد/حذف می‌شود و به پورت devlink متصل می‌گردد. به عنوان مثال، برخی درایورها ممکن است برای هر پورت devlink مرتبط با یک VF، یک شیء نرخ از نوع برگ (leaf) ایجاد کنند. از آنجا که برگ‌ها دارای نگاشت یک‌به‌یک به پورت devlink خود هستند، در فضای کاربری با شناسه پورت متناظر devlink به صورت DEV/PORT_INDEX مورد ارجاع قرار می‌گیرند؛
نمایانگر گروهی از اشیاء نرخ است؛ توسط کاربر ایجاد/حذف می‌شود (دستور زیر را ببینید) و به جای پورت devlink، به دستگاه devlink متصل می‌گردد. در فضای کاربری به آن با عنوان DEV/NODE_NAME ارجاع داده می‌شود، که در آن نام گره می‌تواند هر مقداری به جز عدد ده‌دهی باشد تا از تداخل با برگ‌ها جلوگیری شود.

خروجی دستور، شناسه شیء نرخ، نوع آن و مقادیر نرخ را به همراه نام گره والد نمایش می‌دهد. مقادیر نرخ در واحدهای SI چاپ می‌شوند که برای نمایش یک مقدار مشخص مناسب‌تر هستند. برای چاپ مقادیر در واحدهای IEC از سوییچ -i استفاده می‌شود. خروجی JSON (-j) همواره مقادیر نرخ را بر حسب بایت بر ثانیه چاپ می‌کند. مقادیر نرخ صفر به معنی نرخ «نامحدود» است و مانند نام گره والد در خروجی حذف (نمایش داده نمی‌شود) می‌گردد.

امکان تنظیم پارامترهای شیء نرخ را فراهم می‌کند. در صورتی که هر پارامتری چندین بار مشخص شود، آخرین مقدار استفاده خواهد شد.

DEV/PORT_INDEX - شیء نرخ برگ (leaf) مربوط به devlink را مشخص می‌کند.
DEV/NODE_NAME - شیء نرخ گره (node) مربوط به devlink را مشخص می‌کند.

tx_share VALUE - حداقل مقدار نرخ ارسال (tx) به اشتراک گذاشته‌شده میان تمام اشیاء نرخ را مشخص می‌کند. اگر شیء نرخ بخشی از یک گروه نرخ باشد، این مقدار میان اشیاء نرخ آن گروه به اشتراک گذاشته می‌شود.

tx_max VALUE - حداکثر مقدار نرخ ارسال (tx) را مشخص می‌کند.

tx_priority N - امکان استفاده از داوری با اولویت اکید (strict priority arbiter) میان گره‌های همتا (siblings) را فراهم می‌کند. این طرح داوری تلاش می‌کند گره‌ها را تا زمانی که در محدوده پهنای باند مجاز خود باشند بر اساس اولویت زمان‌بندی کند. هر چه اولویت بالاتر باشد، احتمال انتخاب گره برای زمان‌بندی بیشتر خواهد بود.

tx_weight N - امکان استفاده از طرح داوری صف‌بندی منصفانه وزن‌دار (Weighted Fair Queuing) را میان گره‌های همتا فراهم می‌کند. این طرح داوری می‌تواند به طور هم‌زمان با اولویت اکید استفاده شود. هر چه یک گره با نرخ بالاتری پیکربندی شود، نسبت به همتاهای خود پهنای باند بیشتری دریافت می‌کند. مقادیر نسبی هستند (مانند درصدی از سهم) و اساساً تعیین می‌کنند که گره چه مقدار پهنای باند در مقایسه با همتاهای خود باید دریافت کند.

tc-bw INDEX:N - به کاربر امکان می‌دهد سهم‌های پهنای باند نسبی را به کلاس‌های ترافیکی مشخص با استفاده از استاندارد IEEE 802.1Qaz اختصاص دهد. این مقادیر تعیین می‌کنند که پهنای باند چگونه به نسبت یکدیگر بین کلاس‌های ترافیکی توزیع شود. در صورت عدم تعیین، تخصیص پیش‌فرض پهنای باند اعمال می‌گردد.

این پارامترها یک عدد ممیز شناور را می‌پذیرند که می‌تواند به دنبال آن یک واحد مشخص شود (از هر دو واحد SI و IEC پشتیبانی می‌شود).
بیت بر ثانیه
کیلوبیت بر ثانیه
مگابیت بر ثانیه
گیگابیت بر ثانیه
ترابیت بر ثانیه
بایت بر ثانیه
کیلوبایت بر ثانیه
مگابایت بر ثانیه
گیگابایت بر ثانیه
ترابایت بر ثانیه

برای تعیین در واحدهای IEC، پیشوندهای SI یعنی (k-، m-، g-، t-) را به ترتیب با پیشوندهای IEC یعنی (ki-، mi-، gi- و ti-) جایگزین کنید. ورودی به بزرگی و کوچکی حروف حساس نیست.

این پارامترها نشان‌دهنده نمایه (index) کلاس ترافیک در گزینه tc-bw هستند. کلاس ترافیک به صورت یک عدد صحیح از 0 تا 7 مشخص می‌شود که با کلاس‌های ترافیک تعریف‌شده تحت استاندارد IEEE 802.1Qaz نگاشت می‌گردد.
این پارامترها یک عدد صحیح را می‌پذیرند که بیانگر وزن یا اولویت یک گره است.

parent NODE_NAME | noparent - گره والد شیء نرخ را روی گره موجود با نام NODE_NAME تنظیم می‌کند یا والد را لغو (unset) می‌نماید. محدودیت‌های نرخ گره والد بر تمامی فرزندان آن اعمال می‌شود. رفتار واقعی وابسته به جزئیات پیاده‌سازی درایور است. تنظیم والد روی نام خالی ("") بر اساس منطق هسته به عنوان لغو والد در نظر گرفته می‌شود.

یک شیء نرخ از نوع گره (node) ایجاد کرده و پارامترها را تنظیم می‌کند. پارامترها مشابه دستور "set" هستند.

DEV/NODE_NAME - شیء نرخ گره devlink را برای ایجاد مشخص می‌کند.

شیء نرخ گره devlink مشخص‌شده را حذف می‌کند. در صورتی که گره دارای فرزند باشد حذف نمی‌شود؛ کاربر باید صراحتاً والد فرزندان را لغو کند.

DEV/NODE_NAME - شیء نرخ گره devlink را برای حذف مشخص می‌کند.

اطلاعات نحوه استفاده از دستورات نرخ devlink را نمایش می‌دهد.

* نمایش تمام اشیاء نرخ:

# devlink port function rate show
pci/0000:03:00.0/1 type leaf parent some_group
pci/0000:03:00.0/2 type leaf tx_share 12Mbit
pci/0000:03:00.0/some_group type node tx_share 1Gbps tx_max 5Gbps

* نمایش شیء نرخ برگ متصل به اولین پورت devlink دستگاه pci/0000:03:00.0:

# devlink port function rate show pci/0000:03:00.0/1
pci/0000:03:00.0/1 type leaf

* نمایش مقادیر نرخ شیء برگ با استفاده از واحدهای IEC:

# devlink -i port function rate show pci/0000:03:00.0/2
pci/0000:03:00.0/2 type leaf 11718Kibit

* نمایش شیء نرخ گره با نام some_group در دستگاه pci/0000:03:00.0:

# devlink port function rate show pci/0000:03:00.0/some_group
pci/0000:03:00.0/some_group type node

* نمایش شیء نرخ برگ pci/0000:03:00.0/2 در قالب خروجی زیباسازی‌شده JSON:

# devlink -jp port function rate show pci/0000:03:00.0/2
{
"rate": {
"pci/0000:03:00.0/2": {
"type": "leaf",
"tx_share": 1500000
}
}
}

* ایجاد شیء نرخ گره با نام "1st_group" در دستگاه pci/0000:03:00.0:

# devlink port function rate add pci/0000:03:00.0/1st_group

* ایجاد شیء نرخ گره با پارامترهای مشخص‌شده:

# devlink port function rate add pci/0000:03:00.0/2nd_group .br tx_share 10Mbit tx_max 30Mbit parent 1st_group

* تنظیم پارامترها برای شیء نرخ برگ مشخص‌شده:

# devlink port function rate set pci/0000:03:00.0/1 .br tx_share 2Mbit tx_max 10Mbit

* تنظیم والد شیء برگ به "1st_group":

# devlink port function rate set pci/0000:03:00.0/1 parent 1st_group

* لغو والد شیء برگ:

# devlink port function rate set pci/0000:03:00.0/1 noparent

* حذف شیء نرخ گره:

# devlink port function rate del pci/0000:03:00.0/2nd_group

devlink(8), devlink-port(8)

Dmytro Linkin <dlinkin@nvidia.com>

12 Mar 2021 iproute2