ovs-dpctl(8) Open vSwitch Manual ovs-dpctl(8)

ovs-dpctl - مدیریت مسیرهای داده Open vSwitch

ovs-dpctl [گزینه‌ها] دستور [سوئیچ] [آرگومان‌ها...]

برنامه ovs-dpctl می‌تواند مسیرهای داده (datapath) متعلق به Open vSwitch را ایجاد، ویرایش و حذف کند. یک ماشین واحد می‌تواند میزبان هر تعداد مسیر داده باشد.

این برنامه تنها با مسیرهای داده‌ای کار می‌کند که خارج از خود ovs-vswitchd پیاده‌سازی شده‌اند، مانند مسیر داده هسته لینوکس. برای مدیریت مسیرهای داده‌ای که با ovs-vswitchd یکپارچه شده‌اند، مانند مسیر داده فضای کاربری (netdev)، از ovs-appctl(8) برای فراخوانی دستورات dpctl/* استفاده کنید که در ovs-vswitchd(8) مستند شده‌اند.

یک مسیر داده تازه‌ساخته‌شده تنها با یک دستگاه شبکه مرتبط است؛ یک دستگاه شبکه مجازی که گاهی «درگاه محلی» (local port) مسیر داده نامیده می‌شود. با این حال، یک مسیر داده تازه‌ساخته‌شده با هیچ‌یک از دیگر دستگاه‌های شبکه میزبان مرتبط نیست. برای رهگیری و پردازش ترافیک در یک دستگاه شبکه معین، از دستور add-if استفاده کنید تا آن دستگاه شبکه را به‌صراحت به مسیر داده اضافه نمایید.

اگر ovs-vswitchd(8) در حال استفاده است، به‌جای ovs-dpctl از ovs-vsctl(8) استفاده کنید.

بیشتر دستورات ovs-dpctl که با مسیرهای داده کار می‌کنند، آرگومانی می‌گیرند که نام مسیر داده را مشخص می‌کند. نام‌های مسیر داده به شکل [type@]name هستند که در آن name دستگاه شبکه مرتبط با درگاه محلی مسیر داده است. اگر type مشخص شده باشد، ارائه‌دهنده مسیر داده name را تعیین می‌کند؛ در غیر این صورت، ارائه‌دهنده پیش‌فرض system در نظر گرفته می‌شود.

دستورات زیر مسیرهای داده را مدیریت می‌کنند. اگر ovs-vswitchd در حال اجراست، از دستورات افزودن، حذف یا تغییر مسیرهای داده استفاده نکنید؛ زیرا این کار با مدیریت اختصاصی مسیر داده توسط ovs-vswitchd تداخل پیدا می‌کند.

مسیر داده dp را ایجاد می‌کند، همراه با یک درگاه محلی که آن نیز dp نامیده می‌شود. اگر دستگاه شبکه‌ای با نام dp از قبل وجود داشته باشد، این دستور با شکست مواجه می‌شود.
اگر netdev ها مشخص شده باشند، ovs-dpctl آن‌ها را به مسیر داده جدید اضافه می‌کند، درست مانند اینکه add-if مشخص شده باشد.
مسیر داده dp را حذف می‌کند. اگر dp با هر دستگاه شبکه‌ای مرتبط باشد، آن‌ها به‌طور خودکار حذف می‌شوند.
هر netdev را به مجموعه دستگاه‌های شبکه‌ای که مسیر داده dp نظارت می‌کند اضافه می‌نماید، که در آن dp نام یک مسیر داده موجود، و netdev نام یکی از دستگاه‌های شبکه میزبان (مانند eth0) است. پس از افزودن دستگاه شبکه به مسیر داده، مسیر داده مالکیت کامل ترافیک آن دستگاه شبکه را در دست می‌گیرد و دستگاه شبکه برای سایر بخش‌های سیستم خاموش و بدون ترافیک به نظر می‌رسد.
یک netdev می‌تواند با فهرستی از گزینه‌ها که با کاما از هم جدا شده‌اند دنبال شود. گزینه‌های زیر در حال حاضر پشتیبانی می‌شوند:
نوع درگاه برای افزودن را مشخص می‌کند. نوع پیش‌فرض system است.
یک شماره درگاه خاص در مسیر داده را درخواست می‌کند. اگر این گزینه مشخص نشود، شماره‌ای به‌طور خودکار اختصاص می‌یابد.
یک گزینه کلید-مقدار دلخواه به پیکربندی درگاه اضافه می‌کند.
صفحه راهنمای ovs-vswitchd.conf.db(5) انواع درگاه‌ها و گزینه‌های موجود را مستند کرده است.
هر port در dp را طبق موارد مشخص‌شده مجدداً پیکربندی می‌کند. گزینه‌ای به فرم key=value گزینه کلید-مقدار مشخص‌شده را به درگاه اضافه کرده یا مقدار کلید موجود را بازنویسی می‌کند. گزینه‌ای به فرم key= (یعنی بدون مقدار)، کلید-مقدار با نام key را حذف می‌کند. نوع و شماره یک درگاه قابل تغییر نیستند، بنابراین type و port_no تنها در صورتی مجاز هستند که با پیکربندی موجود مطابقت داشته باشند.
هر netdev را از فهرست دستگاه‌های شبکه‌ای که مسیر داده dp نظارت می‌کند حذف می‌نماید.
نام هر مسیر داده پیکربندی‌شده را در یک خط جداگانه چاپ می‌کند.
[-s | --statistics] show [dp...]
خلاصه‌ای از مسیرهای داده پیکربندی‌شده، شامل شماره‌های مسیر داده آن‌ها و فهرستی از درگاه‌های متصل به هر مسیر داده را چاپ می‌کند (درگاه محلی با شماره ۰ مشخص می‌شود). اگر -s یا --statistics مشخص شده باشد، شمارنده‌های بسته و بایت نیز برای هر درگاه چاپ می‌شوند.
شماره‌های مسیر داده شامل آمار جریان و آمار ماسک مگاجریان است.
سطر "lookups" سه آمار مرتبط با جستجوی جریان را که بر اثر پردازش بسته‌های ورودی در مسیر داده ایجاد می‌شود نمایش می‌دهد. "hit" تعداد بسته‌های منطبق با جریان‌های موجود را نمایش می‌دهد. "missed" تعداد بسته‌هایی را نمایش می‌دهد که با هیچ جریان موجودی تطبیق نداشته و نیازمند پردازش در فضای کاربری هستند. "lost" تعداد بسته‌های مقصد پردازش در فضای کاربری را نشان می‌دهد که پس از آن پیش از رسیدن به فضای کاربری دور ریخته (drop) شده‌اند. مجموع "hit" و "miss" برابر با کل تعداد بسته‌های پردازش‌شده توسط مسیر داده است.
سطر "flows" تعداد جریان‌های موجود در مسیر داده را نمایش می‌دهد.
سطر "masks" آمار ماسک مگاجریان را نمایش می‌دهد. این سطر برای مسیرهای داده‌ای که مگاجریان را پیاده‌سازی نکرده‌اند حذف می‌شود. "hit" تعداد کل ماسک‌های بررسی‌شده برای تطبیق با بسته‌های ورودی را نشان می‌دهد. "total" تعداد ماسک‌های موجود در مسیر داده را نشان می‌دهد. "hit/pkt" میانگین تعداد ماسک‌های بررسی‌شده به ازای هر بسته را نشان می‌دهد؛ یعنی نسبت میان "hit" و کل تعداد بسته‌های پردازش‌شده توسط مسیر داده.
اگر یک یا چند مسیر داده مشخص شده باشند، اطلاعات تنها مربوط به همان مسیرهای داده نمایش داده می‌شود. در غیر این صورت، ovs-dpctl اطلاعات مربوط به تمام مسیرهای داده پیکربندی‌شده را نمایش می‌دهد.

دستورات زیر در درجه اول برای اشکال‌زدایی Open vSwitch مفید هستند. مدخل‌های جدول جریان (هم تطبیق‌ها و هم کنش‌ها) که این دستورات با آن‌ها کار می‌کنند، مدخل‌های جریان OpenFlow نیستند. در عوض، آن‌ها جریان‌هایی متفاوت و به‌مراتب ساده‌تر هستند که توسط ماژول هسته Open vSwitch نگهداری می‌شوند. اگر ovs-vswitchd در حال اجرا است، از دستورات افزودن، حذف یا ویرایش جریان‌های مسیر داده استفاده نکنید، زیرا این کار با مدیریت اختصاصی جریان مسیر داده در ovs-vswitchd تداخل پیدا می‌کند. در عوض، برای کار با مدخل‌های جریان OpenFlow از ovs-ofctl(8) استفاده کنید.

آرگومان dp برای هر یک از این دستورات در صورتی که دقیقاً یک مسیر داده وجود داشته باشد اختیاری است؛ در این صورت آن مسیر داده پیش‌فرض خواهد بود. هنگامی که چندین مسیر داده وجود داشته باشند، ذکر نام مسیر داده الزامی است.

[-m | --more] [--names | --no-names] dump-flows [dp] [filter=filter] [type=type] [pmd=pmd]
تمام مدخل‌های جریان در جدول جریان مسیر داده dp را در کنسول چاپ می‌کند. بدون -m یا --more، خروجی فیلدهای تطبیقی را که یک جریان به‌طور کامل با نویسه عام (wildcard) مطابقت می‌دهد حذف می‌کند؛ همراه با -m یا --more، خروجی شامل تمام فیلدهای دارای نویسه عام می‌شود.
اگر filter=filter مشخص شده باشد، تنها جریان‌هایی را نمایش می‌دهد که با filter مطابقت دارند. filter جریانی به فرم مشابه قالب پذیرفته‌شده توسط دستور add-flow در ovs-ofctl(8) است (این یک جریان OpenFlow نیست: علاوه بر سایر تفاوت‌ها، هرگز حاوی نویسه‌های عام نیست). filter همچنین برای تطبیق با فیلدهای عام در جریان مسیر داده مفید است. به عنوان مثال، filter='tcp,tp_src=100' با جریان مسیر داده شامل مطابقت خواهد داشت.
اگر pmd=pmd مشخص شده باشد، تنها جریان‌های مربوط به pmd مشخص‌شده را نمایش می‌دهد. استفاده از pmd=-1 خروجی را به جریان‌های رشته (thread) اصلی محدود می‌کند. این گزینه تنها توسط مسیر داده فضای کاربری (userspace datapath) پشتیبانی می‌شود.
اگر type=type مشخص شده باشد، تنها جریان‌هایی از انواع مشخص‌شده را نمایش می‌دهد. این گزینه تنها برای ovs-appctl dpctl/dump-flows پشتیبانی می‌شود. type فهرستی جداشده با کاما است که می‌تواند شامل هر یک از موارد زیر باشد:
ovs - جریان‌های مدیریت‌شده در مسیر داده ovs را نمایش می‌دهد
tc - جریان‌های مدیریت‌شده در مسیر داده tc را نمایش می‌دهد
dpdk - جریان‌هایی را که کاملاً توسط dpdk باربرداری شده‌اند نمایش می‌دهد
offloaded - جریان‌های باربرداری‌شده به سخت‌افزار را نمایش می‌دهد
non-offloaded - جریان‌هایی را که به سخت‌افزار باربرداری نشده‌اند نمایش می‌دهد
partially-offloaded - جریان‌هایی را که تنها بخشی از پردازش آن‌ها در سخت‌افزار انجام می‌شود نمایش می‌دهد
all - تمام انواع جریان‌ها را نمایش می‌دهد
به‌طور پیش‌فرض تمام انواع جریان‌ها نمایش داده می‌شوند. ovs-dpctl همواره طوری عمل می‌کند که گویی type برابر با ovs بوده است.
[--clear] [--may-create] [-s | --statistics] mod-flow [dp] flow actions
جریانی را به جدول جریان dp اضافه کرده یا تغییر می‌دهد به‌طوری که هنگام رسیدن بسته‌ای منطبق با flow، کنش‌های actions اجرا شوند.
دستور add-flow تنها در صورتی موفق می‌شود که flow از قبل در dp وجود نداشته باشد. در مقابل، mod-flow بدون --may-create تنها کنش‌های یک جریان موجود را تغییر می‌دهد. با --may-create، دستور mod-flow جریان جدیدی اضافه می‌کند یا جریان موجود را تغییر می‌دهد.
اگر -s یا --statistics مشخص شده باشد، mod-flow آمار جریان تغییریافته را چاپ می‌کند. آمار یک جریان شامل تعداد بسته‌ها و بایت‌هایی است که از جریان عبور کرده‌اند، زمان سپری‌شده از آخرین باری که جریان بسته‌ای را پردازش کرده است (در صورت وجود)، و (برای جریان‌های TCP) اجتماع پرچم‌های TCP پردازش‌شده از طریق آن جریان.
همراه با --clear، دستور mod-flow آمار جریان را صفر می‌کند. آماری که در صورت مشخص بودن -s یا --statistics چاپ می‌شود، آماری است که دقیقاً پیش از پاک کردن آمار ثبت شده است.
یادداشت: flow و actions با قواعد نگارشی مورداستفاده در دستور add-flow متعلق به ovs-ofctl(8) تطبیق ندارند.
مثال‌های کاربردی (Usage Examples)

هدایت ARP بین درگاه‌های ۱ و ۲ در مسیر داده myDP:

ovs-dpctl add-flow myDP \
"in_port(1),eth(),eth_type(0x0806),arp()" 2
ovs-dpctl add-flow myDP \
"in_port(2),eth(),eth_type(0x0806),arp()" 1

هدایت تمام ترافیک IPv4 بین دو نشانی در درگاه‌های ۱ و ۲:

ovs-dpctl add-flow myDP \
"in_port(1),eth(),eth_type(0x800),\
ipv4(src=172.31.110.4,dst=172.31.110.5)" 2
ovs-dpctl add-flow myDP \
"in_port(2),eth(),eth_type(0x800),\
ipv4(src=172.31.110.5,dst=172.31.110.4)" 1
مدخل‌های جریان را از file (یا stdin اگر file برابر با - باشد) می‌خواند و هر مدخل را به مسیر داده اضافه کرده، تغییر داده یا حذف می‌کند. هر مشخصه جریان (برای مثال هر خط در file) می‌تواند با کلمه کلیدی add، modify یا delete آغاز شود تا مشخص کند آیا یک جریان باید اضافه، ویرایش یا حذف گردد. مشخصه جریانی بدون یکی از این کلمات کلیدی، بر اساس دستور مورداستفاده پردازش می‌شود. تمام تغییرات جریان به‌صورت تراکنش‌های مجزا و به ترتیب مشخص‌شده اجرا می‌شوند.
[-s | --statistics] del-flow [dp] flow
جریانی را از جدول جریان dp که با flow مطابقت دارد حذف می‌کند. اگر -s یا --statistics مشخص شده باشد، del-flow آمار جریان حذف‌شده را چاپ می‌کند.
[-m | --more] [--names | --no-names] get-flow [dp] ufid:ufid
جریان با شناسه یکتای ufid را از جدول جریان dp واکشی می‌کند. ufid باید به‌صورت رشته‌ای از ۳۲ نویسه هگزادسیمال مشخص شود.
تمام مدخل‌های جریان را از جدول جریان مسیر داده dp حذف می‌کند.

دستورات زیر برای اشکال‌زدایی و پیکربندی تنظیمات حافظه پنهان (کَش) جریان مسیر داده مفید هستند.

اندازه‌های فعلی حافظه پنهان را در کنسول چاپ می‌کند.
حافظه پنهان cache مشخص‌شده در dp را روی اندازه داده‌شده size تنظیم می‌کند. نام حافظه پنهان را می‌توان با استفاده از دستور cache-get-size یافت.

دستورات زیر برای اشکال‌زدایی و پیکربندی جدول ردیابی اتصال (connection tracking) در مسیر داده مفید هستند.

آرگومان dp برای هر یک از این دستورات در صورتی که دقیقاً یک مسیر داده وجود داشته باشد اختیاری است؛ در این صورت همان مسیر داده پیش‌فرض خواهد بود. هنگامی که چندین مسیر داده وجود دارند، ذکر نام مسیر داده الزامی است.

توجه (مختص لینوکس): مسیرهای داده system (یعنی مسیرهای داده ماژول هسته لینوکس Open vSwitch) در یک جدول ردیابی اتصال واحد مشترک هستند (که توسط دیگر زیرسیستم‌های هسته، مانند iptables، nftables و پشته عادی میزبان نیز استفاده می‌شود). بنابراین، دستورات زیر به‌طور خاص برای یک مسیر داده اعمال نمی‌شوند.

مدیریت قطعه‌بندی IP را برای ردیاب اتصال فضای کاربری فعال یا غیرفعال می‌کند. باید یکی از گزینه‌های v4 یا v6 مشخص شود. بازترکیب قطعات هر دو نسخه IPv4 و IPv6 به‌طور پیش‌فرض فعال است. تنها برای مسیر داده فضای کاربری پشتیبانی می‌شود.
حداقل اندازه قطعه (سرایند L3 و داده) را برای قطعات غیرنهایی روی minfrag تنظیم می‌کند. باید یکی از گزینه‌های v4 یا v6 مشخص شود. برای امنیت بیشتر در برابر حملات DoS، معمولاً می‌توان از حداقل اندازه‌های قطعه بزرگ‌تر استفاده کرد. مقدار پیش‌فرض IPv4 برابر با ۱۲۰۰ و حداقل مقیدشده آن ۴۰۰ است. مقدار پیش‌فرض IPv6 برابر با ۱۲۸۰، با حداقل مقیدشده ۴۰۰ برای انعطاف‌پذیری در آزمایش است. حداکثر اندازه قطعه مقید نشده است، اما تنظیم بیش از حد بالای این مقدار ممکن است به دور ریخته شدن قطعات معتبر بیانجامد. تنها برای مسیر داده فضای کاربری پشتیبانی می‌شود.
حداکثر تعداد قطعات ردیابی‌شده توسط ردیاب اتصال مسیر داده در فضای کاربری را روی maxfrags تنظیم می‌کند. مقدار پیش‌فرض ۱۰۰۰ و حداکثر مقیدشده ۵۰۰۰ است. توجه داشته باشید که بافرهای بسته می‌توانند تا زمانی که قطعات ناقص هستند توسط ماژول قطعه‌بندی نگه‌داشته شوند، اما پس از ۱۵ ثانیه مهلت زمانی آن‌ها تمام می‌شود. هنگام فعال بودن قطعه‌بندی، اندازه مخزن حافظه باید متناسب با آن تنظیم گردد. تنها برای مسیر داده فضای کاربری پشتیبانی می‌شود.
[-m | --more] ipf-get-status [dp]
تنظیمات پیکربندی و شمارنده‌های قطعه مرتبط با مدیریت قطعه‌بندی ردیاب اتصال مسیر داده در فضای کاربری را دریافت می‌کند. همراه با -m یا --more، فهرست‌های قطعات IP را نیز تخلیه می‌کند. تنها برای مسیر داده فضای کاربری پشتیبانی می‌شود.
[-m | --more] [-s | --statistics] dump-conntrack [dp] [zone=zone]
تمام مدخل‌های اتصال را در ردیاب مورداستفاده توسط dp در کنسول چاپ می‌کند. اگر zone=zone مشخص شده باشد، تنها اتصالات موجود در zone را نشان می‌دهد. همراه با --more، برخی جزئیات مختص پیاده‌سازی نیز گنجانده می‌شوند. با --statistics، مهلت‌های زمانی و برچسب‌های زمانی به خروجی افزوده می‌شوند.
تمام مدخل‌های انتظار را در ردیاب مورداستفاده توسط dp در کنسول چاپ می‌کند. اگر zone=zone مشخص شده باشد، تنها انتظارات موجود در zone را نمایش می‌دهد. تنها برای مسیر داده فضای کاربری پشتیبانی می‌شود.
مدخل‌های اتصال را در ردیاب مورداستفاده توسط dp بر اساس zone و تاپل ردیابی اتصال ct-origin-tuple پاکسازی می‌کند. اگر ct-tuple ارائه نشود، تمام مدخل‌های اتصال را پاکسازی می‌کند. اگر zone=zone مشخص شده باشد، تنها اتصالات موجود در zone را پاک می‌کند.
اگر ct-[orig|reply]-tuple ارائه شده باشد، مدخل اتصال مشخص‌شده توسط ct-[orig|reply]-tuple را در zone پاکسازی می‌کند. ناحیه در صورت مشخص نشدن به‌طور پیش‌فرض ۰ در نظر گرفته می‌شود. ردیاب اتصال در فضای کاربری نیازمند پاکسازی با تاپل اصلی پیش از اعمال NAT است و در غیر این صورت یک پیام هشدار در گزارش‌ها ثبت خواهد شد. تاپل می‌تواند جزئی باشد و تمام اتصالاتی را که با فیلدهای مشخص‌شده تطبیق دارند حذف می‌کند. به منظور مشخص کردن تنها ct-reply-tuple، یک رشته خالی به عنوان ct-origin-tuple ارائه دهید.
نکته: در حال حاضر برای تطبیق روی ICMP محدودیتی وجود دارد؛ برای تطبیق جزئی روی پارامترهای ICMP، تاپل ct-[orig|reply]-tuple باید شامل IP مبدأ یا مقصد باشد.
مثالی از یک تاپل ct-[orig|reply]-tuple مربوط به IPv4 ICMP:
"ct_nw_src=10.1.1.1,ct_nw_dst=10.1.1.2,ct_nw_proto=1,icmp_type=8,icmp_code=0,icmp_id=10"
مثالی از یک تاپل ct-[orig|reply]-tuple مربوط به IPv6 TCP:
"ct_ipv6_src=fc00::1,ct_ipv6_dst=fc00::2,ct_nw_proto=6,ct_tp_src=1,ct_tp_dst=2"
[-m | --more] ct-stats-show [dp] [zone=zone]
تعداد اتصالات گروه‌بندی‌شده بر اساس پروتکل مورداستفاده توسط dp را نمایش می‌دهد. اگر zone=zone مشخص شده باشد، اعداد به اتصالات موجود در zone اشاره دارند. همراه با --more، بر اساس وضعیت اتصال برای هر پروتکل گروه‌بندی انجام می‌دهد.
به ازای هر سطل conntrack، تعداد اتصالات مورداستفاده توسط dp را نمایش می‌دهد. اگر gt=threshold مشخص شده باشد، شماره سطل‌ها زمانی نمایش داده می‌شوند که تعداد اتصالات در یک سطل بیشتر از threshold باشد.
سقف حداکثر مدخل‌های ردیاب اتصال را روی dp برابر با maxconns تنظیم می‌کند. این دستور می‌تواند برای کاهش بار پردازشی ناشی از ردیابی اتصال روی سیستم یا صرفاً محدود کردن ردیابی اتصال استفاده شود. اگر تعداد اتصالات در حال حاضر بیش از سقف حداکثر جدید درخواستی باشد، سقف جدید زمانی اعمال خواهد شد که تعداد اتصالات به آن سقف کاهش یابد (که معمولاً به دلیل انقضای اتصالات رخ می‌دهد). تنها برای مسیر داده فضای کاربری پشتیبانی می‌شود.
سقف حداکثر مدخل‌های ردیاب اتصال را در dp چاپ می‌کند. تنها برای مسیر داده فضای کاربری پشتیبانی می‌شود.
تعداد فعلی مدخل‌های ردیاب اتصال را در dp چاپ می‌کند. تنها برای مسیر داده فضای کاربری پشتیبانی می‌شود.
بررسی شماره توالی TCP را فعال یا غیرفعال می‌کند. هنگامی که روی غیرفعال تنظیم شود، تمام اعتبارسنجی‌های شماره توالی، از جمله برای بازنشانی‌های TCP، غیرفعال می‌گردد. این حالت مشابه با حالت 'be_liberal' در Netfilter است، اما دقیقاً یکسان نیست. غیرفعال کردن اعتبارسنجی شماره توالی فی‌نفسه یک بهینه‌سازی نیست، اما برای پشتیبانی از برخی قابلیت‌های باربرداری سخت‌افزاری که ممکن است مزایای عملکردی ارائه دهند لازم است. بررسی شماره توالی به‌طور پیش‌فرض برای برقراری امنیت بهتر فعال است و تنها در صورتی باید غیرفعال شود که برای پشتیبانی از باربرداری سخت‌افزاری مورد نیاز باشد. این دستور تنها برای مسیر داده فضای کاربری پشتیبانی می‌شود.
فعال یا غیرفعال بودن بررسی شماره توالی TCP را در dp چاپ می‌کند. تنها برای مسیر داده فضای کاربری پشتیبانی می‌شود.
بازه زمانی پاکسازی (sweep interval) را تنظیم می‌کند. تنها برای مسیر داده فضای کاربری پشتیبانی می‌شود.
بازه زمانی پاکسازی فعلی را بر حسب میلی‌ثانیه چاپ می‌کند. تنها برای مسیر داده فضای کاربری پشتیبانی می‌شود.
حداکثر تعداد مجاز اتصالات را در یک ناحیه ردیابی اتصال تعیین می‌کند. یک zone خاص می‌تواند روی limit تنظیم شود، و چند ناحیه می‌توانند با فهرستی جداشده با کاما مشخص گردند. اگر سقف هر ناحیه برای یک ناحیه خاص در مسیر داده مشخص نشده باشد، سقف پیش‌فرض به ازای هر ناحیه در نظر گرفته می‌شود. یک ناحیه پیش‌فرض را می‌توان با آرگومان default=default_limit مشخص کرد. در ابتدا، سقف پیش‌فرض به ازای هر ناحیه نامحدود است. تعداد نامحدودی از مدخل‌ها را می‌توان با سقف 0 تنظیم نمود.
سقف ردیابی اتصال را برای zone حذف می‌کند. چندین ناحیه را می‌توان با فهرستی جداشده با کاما مشخص کرد.
حداکثر تعداد مجاز اتصالات و تعداد فعلی را به ازای هر ناحیه دریافت می‌کند. اگر zone داده شود، تنها ناحیه(های) مشخص‌شده چاپ می‌شوند. اگر هیچ ناحیه‌ای مشخص نشود، تمام سقف‌ها و شمارش‌های نواحی ارائه می‌گردند. این دستور همواره سقف ناحیه پیش‌فرض را نمایش می‌دهد.


زمان اجرای ovs-dpctl را به تقریباً secs ثانیه محدود می‌کند. اگر مهلت زمانی منقضی شود، ovs-dpctl با سیگنال SIGALRM خارج می‌شود.

سطوح گزارش‌گیری (logging) را تنظیم می‌کند. بدون هیچ spec، سطح گزارش‌گیری برای هر ماژول و مقصد روی dbg تنظیم می‌شود. در غیر این صورت، spec فهرستی از کلمات جداشده با فاصله، کاما یا دونقطه است که حداکثر یک مورد از هر یک از دسته‌بندی‌های زیر را شامل می‌شود:
  • یک نام ماژول معتبر، همان‌طور که توسط دستور vlog/list در ovs-appctl(8) نمایش داده می‌شود، تغییر سطح گزارش‌گیری را به ماژول مشخص‌شده محدود می‌کند.
  • یکی از موارد syslog، console یا file، به ترتیب برای محدود کردن تغییر سطح گزارش‌گیری تنها به گزارش سیستم، کنسول یا یک فایل. (اگر --detach مشخص شده باشد، ovs-dpctl توصیف‌کننده‌های فایل استاندارد خود را می‌بندد، بنابراین ثبت گزارش در کنسول بی‌اثر خواهد بود).
  • یکی از موارد off، emer، err، warn، info یا dbg، برای کنترل سطح گزارش‌گیری. پیام‌های با سطح اهمیت مشخص‌شده یا بالاتر ثبت خواهند شد و پیام‌های با اهمیت کمتر فیلتر می‌شوند. off تمام پیام‌ها را فیلتر می‌کند. برای تعریف هر سطح گزارش‌گیری به ovs-appctl(8) مراجعه کنید.
بزرگی و کوچکی حروف در spec اهمیتی ندارد.
صرف‌نظر از سطوح گزارش‌گیری تنظیم‌شده برای file، ثبت گزارش در یک فایل انجام نخواهد شد مگر اینکه --log-file نیز مشخص شده باشد (به بخش زیر مراجعه کنید).
برای سازگاری با نسخه‌های قدیمی‌تر OVS، عبارت any به عنوان یک کلمه پذیرفته می‌شود اما هیچ اثری ندارد.

حداکثر سطح پرحرفی (verbosity) گزارش‌گیری را تنظیم می‌کند که معادل --verbose=dbg است.

الگوی گزارش را برای destination روی pattern تنظیم می‌کند. برای توضیحات ساختار نحوی معتبر برای pattern به ovs-appctl(8) مراجعه فرمایید.

تسهیلات (facility) طبق RFC5424 پیام گزارش را تعیین می‌کند. facility می‌تواند یکی از موارد kern، user، mail، daemon، auth، syslog، lpr، news، uucp، clock، ftp، ntp، audit، alert، clock2، local0، local1، local2، local3، local4، local5، local6 یا local7 باشد. اگر این گزینه مشخص نشود، daemon به‌عنوان پیش‌فرض برای syslog سیستم محلی استفاده می‌شود و local0 هنگام ارسال پیام به مقصدی که از طریق گزینه --syslog-target ارائه شده به کار می‌رود.
ثبت گزارش در یک فایل را فعال می‌کند. اگر file مشخص شود، به عنوان نام دقیق فایل گزارش استفاده می‌شود. نام پیش‌فرض فایل گزارش در صورت حذف file برابر با /var/log/openvswitch/ovs-dpctl.log است.
پیام‌های syslog را علاوه بر syslog سیستم، به port پروتکل UDP در host ارسال می‌کند. host باید یک نشانی IP عددی باشد، نه یک نام میزبان.
تعیین می‌کند که پیام‌های syslog چگونه باید با method به دیمن syslog ارسال شوند. اشکال زیر پشتیبانی می‌شوند:
  • libc، استفاده از تابع syslog() در libc. نکته منفی استفاده از این گزینه این است که libc پیش از ارسال واقعی پیام به دیمن syslog از طریق سوکت دامنه یونیکس /dev/log، یک پیشوند ثابت به هر پیام اضافه می‌کند.
  • unix:file، استفاده مستقیم از سوکت دامنه یونیکس. با این گزینه امکان مشخص کردن قالب پیام دلخواه وجود دارد. با این حال، rsyslogd 8.9 و نسخه‌های قدیمی‌تر در هر صورت از یک تابع تجزیه‌کننده سخت‌کدشده استفاده می‌کنند که استفاده از سوکت دامنه یونیکس را محدود می‌کند. اگر مایل به استفاده از قالب پیام دلخواه با نسخه‌های قدیمی‌تر rsyslogd هستید، در عوض از سوکت UDP به نشانی IP لوکال‌هاست استفاده کنید.
  • udp:ip:port، استفاده از سوکت UDP. با این روش می‌توان قالب پیام دلخواه را با نسخه‌های قدیمی‌تر rsyslogd نیز به کار برد. هنگام ارسال پیام‌های syslog از طریق سوکت UDP باید احتیاط‌های بیشتری در نظر گرفته شود؛ برای مثال، دیمن syslog باید طوری پیکربندی شود که به درگاه UDP مشخص‌شده گوش دهد، قوانین تصادفی iptables ممکن است با ترافیک محلی syslog تداخل داشته باشند و برخی ملاحظات امنیتی وجود دارند که در مورد سوکت‌های UDP صدق می‌کنند اما در مورد سوکت‌های دامنه یونیکس اعمال نمی‌شوند.
  • null، تمام پیام‌های ثبت‌شده در syslog را دور می‌ریزد.
مقدار پیش‌فرض از متغیر محیطی OVS_SYSLOG_METHOD گرفته می‌شود؛ اگر این متغیر تنظیم نشده باشد، مقدار پیش‌فرض libc است.

یک پیام راهنمای مختصر را در کنسول چاپ می‌کند.

اطلاعات نسخه را در کنسول چاپ می‌کند.

ovs-appctl(8), ovs-vswitchd(8)

4.0.0 Open vSwitch