.\" -*- nroff -*- .\" -*- nroff -*- .\" ovs.tmac .\" .\" Open vSwitch troff macro library . . .\" Continuation line for .IP. .de IQ . br . ns . IP "\\$1" .. . .\" Introduces a sub-subsection .de ST . PP . RS -0.15in . I "\\$1" . RE .. . .\" The content between the lines below is from an-ext.tmac in groff .\" 1.21, with some modifications. .\" ---------------------------------------------------------------------- .\" an-ext.tmac .\" .\" Written by Eric S. Raymond .\" Werner Lemberg .\" .\" Version 2007-Feb-02 .\" .\" Copyright (C) 2007, 2009, 2011 Free Software Foundation, Inc. .\" You may freely use, modify and/or distribute this file. .\" .\" .\" The code below provides extension macros for the `man' macro package. .\" Care has been taken to make the code portable; groff extensions are .\" properly hidden so that all troff implementations can use it without .\" changes. .\" .\" With groff, this file is sourced by the `man' macro package itself. .\" Man page authors who are concerned about portability might add the .\" used macros directly to the prologue of the man page(s). . . .\" Convention: Auxiliary macros and registers start with `m' followed .\" by an uppercase letter or digit. . . .\" Declare start of command synopsis. Sets up hanging indentation. .de SY . ie !\\n(mS \{\ . nh . nr mS 1 . nr mA \\n(.j . ad l . nr mI \\n(.i . \} . el \{\ . br . ns . \} . . HP \w'\fB\\$1\fP\ 'u . B "\\$1" .. . . .\" End of command synopsis. Restores adjustment. .de YS . in \\n(mIu . ad \\n(mA . hy \\n(HY . nr mS 0 .. . . .\" Declare optional option. .de OP . ie \\n(.$-1 \ . RI "[\fB\\$1\fP" "\ \\$2" "]" . el \ . RB "[" "\\$1" "]" .. . . .\" Start URL. .de UR . ds m1 \\$1\" . nh . if \\n(mH \{\ . \" Start diversion in a new environment. . do ev URL-div . do di URL-div . \} .. . . .\" End URL. .de UE . ie \\n(mH \{\ . br . di . ev . . \" Has there been one or more input lines for the link text? . ie \\n(dn \{\ . do HTML-NS "" . \" Yes, strip off final newline of diversion and emit it. . do chop URL-div . do URL-div \c . do HTML-NS . \} . el \ . do HTML-NS "\\*(m1" \&\\$*\" . \} . el \ \\*(la\\*(m1\\*(ra\\$*\" . . hy \\n(HY .. . . .\" Start email address. .de MT . ds m1 \\$1\" . nh . if \\n(mH \{\ . \" Start diversion in a new environment. . do ev URL-div . do di URL-div . \} .. . . .\" End email address. .de ME . ie \\n(mH \{\ . br . di . ev . . \" Has there been one or more input lines for the link text? . ie \\n(dn \{\ . do HTML-NS "" . \" Yes, strip off final newline of diversion and emit it. . do chop URL-div . do URL-div \c . do HTML-NS . \} . el \ . do HTML-NS "\\*(m1" \&\\$*\" . \} . el \ \\*(la\\*(m1\\*(ra\\$*\" . . hy \\n(HY .. . . .\" Continuation line for .TP header. .de TQ . br . ns . TP \\$1\" no doublequotes around argument! .. . . .\" Start example. .de EX . nr mE \\n(.f . nf . nh . ft CR .. . . .\" End example. .de EE . ft \\n(mE . fi . hy \\n(HY .. . .\" EOF .\" ---------------------------------------------------------------------- .TH ovs\-vswitchd 8 "4.0.0" "Open vSwitch" "راهنمای Open vSwitch" .\" This program's name: .ds PN ovs\-vswitchd . .SH "نام (NAME)" ovs\-vswitchd \- دیمن Open vSwitch . .SH "خلاصه دستور (SYNOPSIS)" \fBovs\-vswitchd \fR[\fIdatabase\fR] . .SH "توضیحات (DESCRIPTION)" دیمنی که هر تعداد سوئیچ Open vSwitch را بر روی سیستم محلی مدیریت و کنترل می‌کند. .PP آرگومان \fIdatabase\fR چگونگی اتصال \fBovs\-vswitchd\fR به \fBovsdb\-server\fR را مشخص می‌کند. \fIdatabase\fR ممکن است یک روش اتصال فعال (active) یا غیرفعال (passive) در OVSDB باشد، همان‌طور که در \fBovsdb\fR(7) شرح داده شده است. مقدار پیش‌فرض برابر \fBunix:/run/openvswitch/db.sock\fR است. .PP دیمن \fBovs\-vswitchd\fR پیکربندی خود را هنگام راه‌اندازی از \fIdatabase\fR دریافت می‌کند. این برنامه مسیرهای داده (datapaths) مربوط به Open vSwitch را برپا کرده و سپس عملیات سوئیچینگ را روی هر پل توصیف‌شده در فایل‌های پیکربندی اجرا می‌کند. همگام با تغییر پایگاه‌داده، \fBovs\-vswitchd\fR به طور خودکار پیکربندی خود را به‌روزرسانی می‌کند تا منطبق باقی بماند. .PP سوئیچ‌های \fBovs\-vswitchd\fR می‌توانند با هر یک از ویژگی‌های زیر پیکربندی شوند: . .IP \(bu سوئیچینگ لایه L2 همراه با یادگیری آدرس MAC. . .IP \(bu پیوند کارت‌های شبکه (NIC bonding) همراه با تغییر مسیر خودکار هنگام خرابی (fail-over) و متعادل‌سازی بار ارسال ترافیک (TX) بر اساس آدرس MAC مبدأ ("SLB"). . .IP \(bu پشتیبانی از 802.1Q VLAN. . .IP \(bu آینه‌سازی درگاه (Port mirroring)، همراه با برچسب‌گذاری اختیاری VLAN. . .IP \(bu ثبت وقایع جریان با NetFlow v5. . .IP \(bu پایش ترافیک با sFlow(R). . .IP \(bu قابلیت اتصال به کنترل‌کننده خارجی OpenFlow، مانند NOX. . .PP در هر زمان تنها اجرای یک نمونه از \fBovs\-vswitchd\fR در نظر گرفته شده است. یک نمونه از \fBovs\-vswitchd\fR می‌تواند هر تعداد نمونه سوئیچ را، تا حداکثر تعداد مجاز مسیرهای داده پشتیبانی‌شده در Open vSwitch، مدیریت نماید. .PP برنامه \fBovs\-vswitchd\fR تمام مدیریت‌های لازم بر مسیرهای داده Open vSwitch را خودش انجام می‌دهد. بنابراین، \fBovs\-dpctl\fR(8) (و معادل‌های مسیر داده در فضای کاربری آن که از طریق \fBovs\-appctl dpctl/\fIcommand\fR در دسترس هستند) در کنار \fBovs\-vswitchd\fR مورد نیاز نبوده و نباید استفاده شوند، زیرا می‌توانند در عملکرد آن تداخل ایجاد کنند. با این وجود، این ابزارها همچنان برای عیب‌یابی کاربرد دارند. .PP برای اینکه \fBovs\-vswitchd\fR کارایی داشته باشد، ماژول هسته مسیر داده Open vSwitch باید بارگذاری شده باشد. جهت مشاهده دستورالعمل‌های ساخت و بارگذاری ماژول هسته Open vSwitch، به مستندات آن مراجعه فرمایید. .PP .SH "گزینه‌ها (OPTIONS)" .IP "\fB\-\-mlockall\fR" باعث می‌شود \fBovs\-vswitchd\fR تابع \fBmlockall()\fR را فراخوانی کند تا تلاش نماید تمام حافظه فرآیند خود را هنگام وقوع نقص صفحه (page fault) در رم فیزیکی قفل کند (هنگام تخصیص حافظه در هسته لینوکس 4.4 یا قدیمی‌تر)، که مانع از انتقال حافظه توسط هسته به دیسک (paging) می‌شود. این کار به جلوگیری از وقفه در شبکه ناشی از فشار روی حافظه سیستم کمک می‌کند. .IP برخی سیستم‌ها اصلاً از \fBmlockall()\fR پشتیبانی نمی‌کنند، و برخی سیستم‌های دیگر تنها به کاربران ممتاز مانند مدیر ارشد (superuser) اجازه استفاده از آن را می‌دهند. در صورت در دسترس نبودن یا ناموفق بودن \fBmlockall()\fR، برنامه \fBovs\-vswitchd\fR یک پیام لاگ صادر می‌کند. . .SS "گزینه‌های DPDK (DPDK Options)" برای جزئیات مربوط به مقداردهی اولیه \fBovs\-vswitchd\fR جهت استفاده از درگاه‌های DPDK، به مستندات یا \fBovs\-vswitchd.conf.db\fR(5) مراجعه کنید. .SS "گزینه‌های دسترسی سخت‌افزاری DPDK (DPDK HW Access Options)" .IP "\fB\-\-hw\-rawio\-access\fR" به \fBovs\-vswitchd\fR می‌گوید که قابلیت \fBCAP_SYS_RAWIO\fR را حفظ کند تا به درایورهای فضای کاربری اجازه دسترسی مستقیم به حافظه سخت‌افزاری را بدهد. این کار همچنین به دیمن \fBovs\-vswitchd\fR اجازه می‌دهد تا توابع \fBiopl()\fR و \fBioperm()\fR را فراخوانی کرده و به دستگاه‌های حافظه برای تنظیم دسترسی درگاه دست یابد. این یک قابلیت \fBبسیار\fR قدرتمند است، بنابراین عموماً فقط بر حسب نیاز برای سخت‌افزارهای خاص (به عنوان مثال mlx5 با بارگذاری کامل سخت‌افزاری از طریق rte_flow) فعال شود. .SS "گزینه‌های دیمن (Daemon Options)" .ds DD \ \fBovs\-vswitchd\fR تنها پس از اتصال به پایگاه‌داده، دریافت پیکربندی اولیه و اعمال آن پیکربندی در پس‌زمینه قرار می‌گیرد. .PP گزینه‌های زیر روی پلتفرم‌های مبتنی بر POSIX معتبر هستند. .TP \fB\-\-pidfile\fR[\fB=\fIpidfile\fR] باعث می‌شود فایلی (به طور پیش‌فرض \fB\*(PN.pid\fR) ایجاد شود که نشان‌دهنده PID فرآیند در حال اجرا است. اگر آرگومان \fIpidfile\fR مشخص نشده باشد، یا اگر با \fB/\fR آغاز نشود، در مسیر \fB/run/openvswitch\fR ایجاد می‌شود. .IP اگر \fB\-\-pidfile\fR مشخص نشود، هیچ فایل پی‌آی‌دی ایجاد نمی‌شود. . .TP \fB\-\-overwrite\-pidfile\fR به طور پیش‌فرض، هنگامی که \fB\-\-pidfile\fR مشخص شده باشد و فایل pidfile مشخص‌شده از قبل وجود داشته و توسط یک فرآیند در حال اجرا قفل شده باشد، \fB\*(PN\fR از شروع به کار خودداری می‌کند. مشخص کردن \fB\-\-overwrite\-pidfile\fR باعث می‌شود تا به جای آن روی pidfile بازنویسی شود. .IP هنگامی که \fB\-\-pidfile\fR مشخص نشده باشد، این گزینه هیچ اثری ندارد. . .IP \fB\-\-detach\fR برنامه \fB\*(PN\fR را به عنوان یک فرآیند پس‌زمینه اجرا می‌کند. فرآیند فورک می‌شود، و در فرآیند فرزند یک نشست جدید آغاز می‌کند، توصیف‌کننده‌های استاندارد فایل را می‌بندد (که اثر جانبی آن غیرفعال شدن ثبت وقایع در کنسول است)، و دایرکتوری کاری جاری خود را به دایرکتوری ریشه تغییر می‌دهد (مگر اینکه \fB\-\-no\-chdir\fR مشخص شده باشد). پس از اینکه فرآیند فرزند مقداردهی اولیه خود را به پایان رساند، فرآیند والد خارج می‌شود. \*(DD . .TP \fB\-\-monitor\fR یک فرآیند اضافی برای نظارت بر دیمن \fB\*(PN\fR ایجاد می‌کند. اگر دیمن به دلیل سیگنالی که نشان‌دهنده خطای برنامه‌نویسی است (\fBSIGABRT\fR، \fBSIGALRM\fR، \fBSIGBUS\fR، \fBSIGFPE\fR، \fBSIGILL\fR، \fBSIGPIPE\fR، \fBSIGSEGV\fR، \fBSIGXCPU\fR یا \fBSIGXFSZ\fR) متوقف شود، آنگاه فرآیند ناظر نسخه جدیدی از آن را راه‌اندازی می‌کند. اگر دیمن از بین برود یا به دلیل دیگری خارج شود، فرآیند ناظر نیز پایان می‌یابد. .IP این گزینه معمولاً همراه با \fB\-\-detach\fR استفاده می‌شود، اما بدون آن نیز کار می‌کند. . .TP \fB\-\-no\-chdir\fR به طور پیش‌فرض، هنگامی که \fB\-\-detach\fR مشخص شده باشد، \fB\*(PN\fR پس از جدا شدن، دایرکتوری کاری جاری خود را به دایرکتوری ریشه تغییر می‌دهد. در غیر این صورت، فراخوانی \fB\*(PN\fR از یک دایرکتوری که با بی‌دقتی انتخاب شده باشد مانع از این می‌شود که مدیر سیستم بتواند سیستم‌فایلی را که آن دایرکتوری را در بر دارد جدا (unmount) کند. .IP مشخص کردن \fB\-\-no\-chdir\fR این رفتار را متوقف کرده و مانع تغییر دایرکتوری کاری جاری توسط \fB\*(PN\fR می‌شود. این ویژگی ممکن است برای جمع‌آوری فایل‌های core مفید باشد، زیرا رفتار معمول این است که رونوشت‌های حافظه (core dumps) در دایرکتوری کاری جاری نوشته شوند و دایرکتوری ریشه گزینه مناسبی برای این منظور نیست. .IP این گزینه هنگامی که \fB\-\-detach\fR مشخص نشده باشد هیچ اثری ندارد. . .TP \fB\-\-no\-self\-confinement\fR به طور پیش‌فرض، دیمن تلاش می‌کند تا خود را برای کار با فایل‌های زیر دایرکتوری‌های شناخته‌شده‌ای که در زمان ساخت تعیین شده‌اند محدود سازد. بهتر است به این رفتار پیش‌فرض پایبند باشید و از این پرچم استفاده نکنید مگر اینکه سیستم کنترل دسترسی دیگری برای محدودسازی دیمن به کار گرفته شده باشد. توجه داشته باشید که برخلاف سایر پیاده‌سازی‌های کنترل دسترسی که معمولاً از فضای هسته اعمال می‌شوند (مانند DAC یا MAC)، خود‌محدودسازی از سمت خود دیمن در فضای کاربری اعمال می‌شود و بنابراین نباید به عنوان یک راهبرد مهار کامل نگریسته شود، بلکه باید به عنوان یک لایه امنیتی افزوده در نظر گرفته شود. . .TP \fB\-\-user\fR باعث می‌شود \fB\*(PN\fR به عنوان کاربر متفاوتی که در قالب "user:group" تعیین شده اجرا شود، و در نتیجه بیشتر امتیازات ریشه را کنار بگذارد. فرم‌های کوتاه "user" و ":group" نیز مجاز هستند که به ترتیب برای کاربر یا گروه جاری لحاظ می‌شوند. تنها دیمن‌هایی که توسط کاربر ریشه راه‌اندازی شده باشند این آرگومان را می‌پذیرند. .IP در لینوکس، پیش از واگذاری امتیازات ریشه، قابلیت‌های CAP_IPC_LOCK و CAP_NET_BIND_SERVICES به دیمن‌ها اعطا خواهد شد. دیمن‌هایی که با یک مسیر داده تعامل دارند، مانند \fBovs\-vswitchd\fR، سه قابلیت دیگر یعنی CAP_NET_ADMIN، CAP_NET_BROADCAST و CAP_NET_RAW را نیز دریافت می‌کنند. تغییر قابلیت‌ها حتی در صورتی که کاربر جدید ریشه باشد اعمال خواهد شد. .SS "گزینه‌های زیرساخت کلید عمومی (Public Key Infrastructure Options)" .IP "\fB\-p\fR \fIprivkey.pem\fR" .IQ "\fB\-\-private\-key=\fIprivkey.pem\fR" یک فایل PEM حاوی کلید خصوصی مورد استفاده به عنوان هویت \fB\*(PN\fR برای اتصالات خروجی SSL/TLS را مشخص می‌کند. . .IP "\fB\-c\fR \fIcert.pem\fR" .IQ "\fB\-\-certificate=\fIcert.pem\fR" یک فایل PEM حاوی گواهی را مشخص می‌کند که معتبر بودن کلید خصوصی مشخص‌شده در \fB\-p\fR یا \fB\-\-private\-key\fR را تأیید می‌کند. گواهی باید توسط مرجع صدور گواهی (CA) امضا شده باشد که طرف مقابل در اتصالات SSL/TLS برای تأیید آن استفاده خواهد کرد. . .IP "\fB\-C\fR \fIcacert.pem\fR" .IQ "\fB\-\-ca\-cert=\fIcacert.pem\fR" یک فایل PEM حاوی گواهی CA را مشخص می‌کند که \fB\*(PN\fR باید برای اعتبارسنجی گواهی‌های ارائه‌شده توسط همتایان SSL/TLS استفاده کند. (این ممکن است همان گواهی باشد که همتایان SSL/TLS برای اعتبارسنجی گواهی تعیین‌شده در \fB\-c\fR یا \fB\-\-certificate\fR به کار می‌برند، یا بسته به طرح PKI مورد استفاده ممکن است گواهی دیگری باشد.) . .IP "\fB\-C none\fR" .IQ "\fB\-\-ca\-cert=none\fR" اعتبارسنجی گواهی‌های ارائه‌شده توسط همتایان SSL/TLS را غیرفعال می‌کند. این کار یک ریسک امنیتی ایجاد می‌کند، زیرا موجب می‌شود نتوان گواهی‌ها را به عنوان میزبان‌های معتبر و شناخته‌شده تأیید کرد. . .IP "\fB\-\-ssl\-server\-name=\fIservername\fR" نام سرور را برای استفاده در نشانگر نام سرور TLS (SNI) تعیین می‌کند. به طور پیش‌فرض، نام میزبان برگرفته از رشته اتصال برای SNI استفاده می‌شود. این گزینه اجازه بازنویسی نام میزبان SNI را می‌دهد، که هنگام اتصال از طریق پروکسی‌ها یا سرویس‌مش‌هایی که نقطه اتصال با نام سرور مورد نظر متفاوت است مفید خواهد بود. .IP "\fB\-\-bootstrap\-ca\-cert=\fIcacert.pem\fR" هنگامی که \fIcacert.pem\fR وجود داشته باشد، این گزینه همانند \fB\-C\fR یا \fB\-\-ca\-cert\fR عمل می‌کند. اگر وجود نداشته باشد، آنگاه \fB\*(PN\fR تلاش خواهد کرد گواهی CA را در نخستین اتصال SSL/TLS خود از طرف مقابل دریافت کرده و در فایل PEM نام‌برده ذخیره کند. اگر موفقیت‌آمیز باشد، بلافاصله اتصال را قطع کرده و مجدداً متصل می‌شود، و از آن پس تمامی اتصالات SSL/TLS باید توسط گواهی امضاشده توسط گواهی CA به‌دست‌آمده احراز هویت شوند. .IP \fBاین گزینه اتصال SSL/TLS را در معرض حمله مرد میانی (man-in-the-middle) جهت تصاحب گواهی CA اولیه قرار می‌دهد\fR، اما برای راه‌اندازی اولیه (bootstrapping) می‌تواند مفید باشد. .IP این گزینه تنها در صورتی مفید است که طرف مقابل SSL/TLS گواهی CA خود را به عنوان بخشی از زنجیره گواهی SSL/TLS ارسال کند. پروتکل‌های SSL/TLS سرور را ملزم به ارسال گواهی CA نمی‌کنند. .IP این گزینه با \fB\-C\fR و \fB\-\-ca\-cert\fR ناسازگار و مانعة‌الجمع است. .IP "\fB\-\-peer\-ca\-cert=\fIpeer-cacert.pem\fR" یک فایل PEM حاوی یک یا چند گواهی تکمیلی برای ارسال به طرف‌های مقابل در SSL/TLS را مشخص می‌کند. فایل \fIpeer-cacert.pem\fR باید همان گواهی CA باشد که برای امضای گواهی اختصاصی \fB\*(PN\fR استفاده شده است، یعنی همان گواهی تعیین‌شده در \fB\-c\fR یا \fB\-\-certificate\fR. اگر گواهی \fB\*(PN\fR خودامضا (self-signed) باشد، آنگاه \fB\-\-certificate\fR و \fB\-\-peer\-ca\-cert\fR باید فایل یکسانی را مشخص کنند. .IP این گزینه در عملکرد عادی کاربردی ندارد، زیرا همتای SSL/TLS باید از قبل گواهی CA را داشته باشد تا به هویت \fB\*(PN\fR اعتماد کند. با این حال، این ویژگی روشی برای یک نصب جدید فراهم می‌سازد تا در نخستین اتصال SSL/TLS خود گواهی CA را راه‌اندازی کند. .SS "گزینه‌های ثبت وقایع (Logging Options)" .IP "\fB\-v\fR[\fIspec\fR] .IQ "\fB\-\-verbose=\fR[\fIspec\fR] . سطوح ثبت وقایع را مشخص می‌کند. بدون هیچ \fIspec\fR، سطح ثبت وقایع را برای تمام ماژول‌ها و مقصدها بر روی \fBdbg\fR تنظیم می‌کند. در غیر این صورت، \fIspec\fR فهرستی از کلمات است که با فاصله، کاما یا دونقطه از هم جدا شده‌اند، و حداکثر شامل یک مورد از هر یک از دسته‌های زیر خواهد بود: . .RS .IP \(bu یک نام ماژول معتبر، همان‌طور که توسط دستور \fBvlog/list\fR در \fBovs\-appctl\fR(8) نمایش داده می‌شود، تغییر سطح ثبت وقایع را به ماژول تعیین‌شده محدود می‌کند. . .IP \(bu عبارت‌های \fBsyslog\fR، \fBconsole\fR یا \fBfile\fR، برای محدود کردن تغییر سطح ثبت وقایع صرفاً به لاگ سیستم، کنسول یا یک فایل. (اگر \fB\-\-detach\fR مشخص شده باشد، \fB\*(PN\fR توصیف‌کننده‌های استاندارد فایل خود را می‌بندد، بنابراین لاگ‌گیری در کنسول اثری نخواهد داشت.) . .IP \(bu عبارت‌های \fBoff\fR، \fBemer\fR، \fBerr\fR، \fBwarn\fR، \fBinfo\fR یا \fBdbg\fR، برای کنترل سطح پیام‌ها. پیام‌های با سطح اهمیت تعیین‌شده یا بالاتر ثبت خواهند شد، و پیام‌های با اهمیت کمتر فیلتر می‌شوند. مقدار \fBoff\fR تمام پیام‌ها را فیلتر می‌کند. برای مشاهده تعاریف مربوط به هر سطح لاگ به \fBovs\-appctl\fR(8) مراجعه فرمایید. .RE . .IP بزرگی و کوچکی حروف در \fIspec\fR نادیده گرفته می‌شود. .IP صرف‌نظر از سطوح تعیین‌شده برای \fBfile\fR، ثبت وقایع در فایل صورت نخواهد گرفت مگر آنکه گزینه \fB\-\-log\-file\fR نیز مشخص شده باشد (پایین را ببینید). .IP جهت سازگاری با نسخه‌های قدیمی‌تر OVS، عبارت \fBany\fR به عنوان یک کلمه پذیرفته می‌شود ولی تأثیری ندارد. . .IP "\fB\-v\fR" .IQ "\fB\-\-verbose\fR" بیشترین سطح پرگویی لاگ را اعمال می‌کند که معادل \fB\-\-verbose=dbg\fR است. . .IP "\fB\-vPATTERN:\fIdestination\fB:\fIpattern\fR" .IQ "\fB\-\-verbose=PATTERN:\fIdestination\fB:\fIpattern\fR" الگوی قالب‌بندی لاگ را برای \fIdestination\fR بر روی \fIpattern\fR تنظیم می‌کند. برای آگاهی از ساختار معتبر \fIpattern\fR به \fBovs\-appctl\fR(8) مراجعه نمایید. . .IP "\fB\-vFACILITY:\fIfacility\fR" .IQ "\fB\-\-verbose=FACILITY:\fIfacility\fR" شناسه facility استاندارد RFC5424 پیام لاگ را تنظیم می‌کند. آرگومان \fIfacility\fR می‌تواند یکی از موارد \fBkern\fR، \fBuser\fR، \fBmail\fR، \fBdaemon\fR، \fBauth\fR، \fBsyslog\fR، \fBlpr\fR، \fBnews\fR، \fBuucp\fR، \fBclock\fR، \fBftp\fR، \fBntp\fR، \fBaudit\fR، \fBalert\fR، \fBclock2\fR، \fBlocal0\fR، \fBlocal1\fR، \fBlocal2\fR، \fBlocal3\fR، \fBlocal4\fR، \fBlocal5\fR، \fBlocal6\fR یا \fBlocal7\fR باشد. اگر این گزینه مشخص نشود، مقدار \fBdaemon\fR به عنوان پیش‌فرض برای syslog سیستم محلی استفاده شده و مقدار \fBlocal0\fR برای ارسال پیام به هدف تعیین‌شده از طریق گزینه \fB\-\-syslog\-target\fR به کار می‌رود. . .TP \fB\-\-log\-file\fR[\fB=\fIfile\fR] ثبت وقایع در فایل را فعال می‌کند. اگر \fIfile\fR مشخص شده باشد، به عنوان نام دقیق فایل لاگ به کار می‌رود. نام پیش‌فرض فایل لاگ در صورت عدم ذکر \fIfile\fR برابر با \fB/var/log/openvswitch/\*(PN.log\fR است. . .IP "\fB\-\-syslog\-target=\fIhost\fB:\fIport\fR" پیام‌های syslog را علاوه بر syslog سیستم، به پورت UDP شماره \fIport\fR در میزبان \fIhost\fR ارسال می‌کند. مقدار \fIhost\fR باید یک نشانی عددی IP باشد و نه نام میزبان. . .IP "\fB\-\-syslog\-method=\fImethod\fR" روش ارسال پیام‌های syslog به دیمن syslog را با \fImethod\fR مشخص می‌کند. حالت‌های زیر پشتیبانی می‌شوند: .RS .IP \(bu روش \fBlibc\fR، استفاده از تابع \fBsyslog()\fR موجود در کتابخانه libc. نقص این روش این است که libc پیش از ارسال واقعی پیام به دیمن syslog از طریق سوکت دامنه یونیکس \fB/dev/log\fR، یک پیشوند ثابت به تمام پیام‌ها می‌افزاید. .IP \(bu روش \fBunix:\fIfile\fR\fR، استفاده مستقیم از سوکت دامنه یونیکس. با این گزینه می‌توان قالب دلخواه برای پیام مشخص کرد. با این وجود، \fBrsyslogd 8.9\fR و نگارش‌های قدیمی‌تر در هر حال از تابع تجزیه‌کننده ثابت استفاده می‌کنند که استفاده از سوکت دامنه یونیکس را محدود می‌کند. اگر می‌خواهید با نگارش‌های قدیمی‌تر \fBrsyslogd\fR از قالب دلخواه برای پیام بهره بگیرید، از سوکت UDP به نشانی IP محلی استفاده نمایید. .IP \(bu روش \fBudp:\fIip\fR:\fIport\fR\fR، استفاده از سوکت UDP. با این روش تعیین قالب دلخواه حتی در نگارش‌های قدیمی‌تر \fBrsyslogd\fR نیز میسر است. هنگام ارسال پیام‌های syslog روی سوکت UDP باید احتیاط‌های لازم را در نظر گرفت؛ برای مثال دیمن syslog باید برای شنود روی درگاه UDP تعیین‌شده پیکربندی شده باشد، قوانین تصادفی iptables ممکن است در ترافیک محلی syslog تداخل ایجاد کنند، و ملاحظات امنیتی ویژه‌ای وجود دارند که برای سوکت‌های UDP صدق می‌کنند اما شامل سوکت‌های دامنه یونیکس نمی‌شوند. .IP \(bu روش \fBnull\fR، تمامی پیام‌های ارسال‌شده به syslog را دور می‌ریزد. .RE .IP مقدار پیش‌فرض از متغیر محیطی \fBOVS_SYSLOG_METHOD\fR خوانده می‌شود؛ اگر این متغیر مقدار نداشته باشد، پیش‌فرض \fBlibc\fR است. .SS "سایر گزینه‌ها (Other Options)" .IP "\fB\-\-unixctl=\fIsocket\fR" نام سوکت کنترلی را تنظیم می‌کند که \fB\*(PN\fR روی آن به دستورات مدیریتی زمان اجرا گوش فرا می‌دهد (بخش \fBدستورات مدیریت زمان اجرا (RUNTIME MANAGEMENT COMMANDS)\fR را در ادامه ببینید). اگر \fIsocket\fR با \fB/\fR آغاز نشود، به صورت نسبی با \fB/run/openvswitch\fR سنجیده می‌شود. اگر از گزینه \fB\-\-unixctl\fR اصلاً استفاده نشود، سوکت پیش‌فرض \fB/run/openvswitch/\*(PN.\fIpid\fB.ctl\fR خواهد بود که در آن \fIpid\fR شناسه فرآیند \fB\*(PN\fR است. .IP تعیین \fBnone\fR برای \fIsocket\fR قابلیت سوکت کنترلی را غیرفعال می‌کند. .IP "\fB\-h\fR" .IQ "\fB\-\-help\fR" یک پیام راهنمای مختصر را در کنسول چاپ می‌کند. . .IP "\fB\-V\fR" .IQ "\fB\-\-version\fR" اطلاعات نسخه برنامه را در کنسول چاپ می‌کند. . .SH "دستورات مدیریت زمان اجرا (RUNTIME MANAGEMENT COMMANDS)" دستور \fBovs\-appctl\fR(8) می‌تواند دستوراتی را به یک فرآیند در حال اجرای \fBovs\-vswitchd\fR ارسال نماید. دستورات پشتیبانی‌شده در زیر شرح داده شده‌اند. توضیحات این دستورات نیازمند آشنایی با نحوه پیکربندی Open vSwitch است. .SS "دستورات عمومی (GENERAL COMMANDS)" .IP "\fBexit\fR \fI--cleanup\fR" موجب خروج باوقار (graceful) دیمن \fBovs\-vswitchd\fR می‌شود. اگر \fI--cleanup\fR مشخص شده باشد، جریان‌ها را از مسیرهای داده پاک کرده و سایر منابع مسیر داده پیکربندی‌شده توسط \fBovs\-vswitchd\fR را آزاد می‌کند. در غیر این صورت، جریان‌های مسیر داده و سایر منابع حذف‌نشده باقی می‌مانند. منابع مربوط به مسیرهای داده‌ای که به طور مستقیم در \fBovs\-vswitchd\fR تعبیه شده‌اند (مانند مسیر داده با نوع \fBnetdev\fR) همواره بدون در نظر گرفتن \fI--cleanup\fR آزاد می‌شوند، به جز درگاه‌هایی که دارای نوع \fBinternal\fR هستند. برای آزادسازی درگاه‌های نوع \fBinternal\fR نیز از گزینه \fI--cleanup\fR استفاده نمایید. . .IP "\fBqos/show-types\fR \fIinterface\fR" رابط مورد نظر را برای دریافت فهرستی از انواع کیفیت خدمات (QoS) که از طریق Open vSwitch برای \fIinterface\fR مشخص‌شده قابل پیکربندی هستند پرس‌وجو می‌کند. .IP "\fBqos/show\fR \fIinterface\fR" هسته سیستم‌عامل را برای اطلاعات پیکربندی و آمار کیفیت خدمات مرتبط با \fIinterface\fR داده‌شده بررسی می‌کند. .IP "\fBbfd/show\fR [\fIinterface\fR]" اطلاعات تفصیلی درباره سازوکار تشخیص ارسال دوطرفه (BFD) پیکربندی‌شده روی \fIinterface\fR را نمایش می‌دهد. اگر \fIinterface\fR مشخص نشده باشد، اطلاعات تفصیلی درباره تمامی رابط‌هایی که BFD روی آن‌ها فعال است نشان داده می‌شود. .IP "\fBbfd/set-forwarding\fR [\fIinterface\fR] \fIstatus\fR" وضعیت خرابی ماژول BFD را در \fIinterface\fR (یا تمامی رابط‌ها اگر موردی مشخص نشود) به مقدار \fIstatus\fR تحمیل می‌کند. مقدار \fIstatus\fR می‌تواند "true"، "false" یا "normal" باشد که حالت اخیر رفتار عادی سیستم را بازیابی می‌کند. .IP "\fBcfm/show\fR [\fIinterface\fR]" اطلاعات تفصیلی مربوط به مدیریت خطای پیوستگی (CFM) پیکربندی‌شده بر روی \fIinterface\fR را نمایش می‌دهد. اگر \fIinterface\fR مشخص نشده باشد، اطلاعات تمامی رابط‌های دارای CFM نمایش داده می‌شود. .IP "\fBcfm/set-fault\fR [\fIinterface\fR] \fIstatus\fR" وضعیت خرابی ماژول CFM را روی \fIinterface\fR (یا تمامی رابط‌ها در صورت عدم تعیین) به مقدار \fIstatus\fR تحمیل می‌کند. پارامتر \fIstatus\fR می‌تواند مقادیر "true"، "false" یا "normal" را بپذیرد که گزینه normal رفتار پیش‌فرض را برمی‌گرداند. .IP "\fBstp/tcn\fR [\fIbridge\fR]" در صورتی که پل \fIbridge\fR پروتکل STP را اجرا کند، رخداد تغییر همبندی (topology change) را به آن تحمیل می‌کند. این امر ممکن است موجب شود پل اعلان‌های تغییر همبندی (TCN) را برای همتایان خود بفرستد و جدول MAC خود را پاک کند. اگر پلی مشخص نشود، رخداد تغییر همبندی بر تمامی پل‌ها اعمال می‌شود. .IP "\fBstp/show\fR [\fIbridge\fR]" اطلاعات تفصیلی درباره درخت پوشا (spanning tree) را روی \fIbridge\fR نمایش می‌دهد. اگر \fIbridge\fR ذکر نشود، اطلاعات تمامی پل‌های دارای STP فعال به تصویر کشیده می‌شود. .IP "\fBrstp/tcn\fR [\fIbridge\fR]" در صورتی که پل پروتکل RSTP را اجرا کند، رخداد تغییر همبندی را بر \fIbridge\fR تحمیل می‌نماید. این کار ممکن است باعث ارسال اعلان‌های تغییر همبندی به همتایان و تخلیه جدول آدرس‌های MAC آن شود. اگر پلی ذکر نشود، رخداد بر همه پل‌ها تحمیل می‌گردد. .IP "\fBrstp/show\fR [\fIbridge\fR]" اطلاعات تفصیلی پروتکل درخت پوشای سریع (rapid spanning tree) را در \fIbridge\fR نشان می‌دهد. اگر \fIbridge\fR مشخص نشود، اطلاعات تمام پل‌های دارای RSTP فعال نشان داده خواهد شد. .SS "دستورات پل (BRIDGE COMMANDS)" این دستورات پل‌ها را مدیریت می‌کنند. .IP "\fBfdb/add\fR \fIbridge\fR \fIport\fR \fIvlan\fR \fImac\fR" آدرس \fImac\fR را به یک درگاه \fIport\fR و شناسه \fIvlan\fR در پل \fIbridge\fR می‌افزاید. از این ابزار می‌توان برای مقداردهی اولیه جدول fdb بدون اتکا به یادگیری پویای MAC بهره گرفت. .IP "\fBfdb/del\fR \fIbridge\fR \fIvlan\fR \fImac\fR" آدرس \fImac\fR را از درگاه و \fIvlan\fR در پل \fIbridge\fR حذف می‌کند. .IP "\fBfdb/flush\fR [\fIbridge\fR]" جدول یادگیری آدرس MAC در پل \fIbridge\fR، یا تمام جدول‌های یادگیری در صورت عدم ذکر \fIbridge\fR را پاک می‌کند. .IP "\fBfdb/show\fR [\fIbridge\fR...]" هر یک از جفت‌های آدرس MAC و VLAN یادگرفته‌شده توسط پل تعیین‌شده \fIbridge\fR را به همراه درگاهی که روی آن یاد گرفته شده و طول عمر مدخل (age بر حسب ثانیه) فهرست می‌کند. می‌توان نام چند پل را جهت پرس‌وجو از آن‌ها در یک دستور مشخص کرد، و اگر نام پلی ذکر نشود جداول تمامی پل‌ها نمایش داده می‌شوند. هنگامی که بیش از یک پل نمایش داده شود، خروجی متنی یک ستون ابتدایی به نام "Bridge" خواهد داشت که ورودی‌های هر پل را دسته‌بندی نموده و نام پل را تنها در سطر نخست آن درج می‌کند؛ پلی که هیچ مدخلی نداشته باشد به صورت سطری با تنها نام پل نشان داده می‌شود. خروجی JSON شیئی است که کلیدهای آن نام پل‌ها بوده و مقادیر آن آرایه‌ای از ورودی‌های آن پل هستند. .IP "\fBfdb/stats-clear\fR [\fIbridge\fR]" آمار جدول یادگیری آدرس MAC را در پل \fIbridge\fR، یا در صورت عدم ذکر \fIbridge\fR تمامی آمارها را پاک می‌کند. .IP "\fBfdb/stats-show\fR \fIbridge\fR" آمارهای جدول یادگیری آدرس MAC را برای پل مشخص‌شده \fIbridge\fR نمایش می‌دهد. .IP "\fBmdb/flush\fR [\fIbridge\fR]" جدول ردیابی چندبخشی (multicast snooping table) در پل \fIbridge\fR، یا تمامی جداول در صورت عدم تعیین \fIbridge\fR را پاک می‌کند. .IP "\fBmdb/show\fR \fIbridge\fR" هر یک از جفت‌های گروه چندبخشی و VLAN فراگرفته‌شده توسط پل مشخص‌شده \fIbridge\fR را همراه با درگاهی که از طریق آن یاد گرفته شده و سن مدخل به ثانیه فهرست می‌کند. .IP "\fBbridge/reconnect\fR [\fIbridge\fR]" باعث می‌شود پل \fIbridge\fR تمامی اتصالات کنترل‌کننده OpenFlow خود را قطع کرده و مجدداً متصل شود. اگر \fIbridge\fR تعیین نشود، تمام پل‌ها ارتباط کنترل‌کننده خود را قطع و دوباره متصل می‌کنند. .IP این دستور ممکن است برای اشکال‌زدایی مشکلات کنترل‌کننده OpenFlow مفید باشد. . .IP "\fBbridge/dump\-flows\fR [\fB\-\-offload-stats\fR] \fIbridge\fR" تمام جریان‌های موجود در \fIbridge\fR را فهرست می‌کند، از جمله جریان‌هایی که معمولاً در برابر دستوراتی چون \fBovs\-ofctl dump\-flows\fR پنهان هستند. جریان‌هایی که توسط سازوکارهایی مانند کنترل درون‌باندی (in-band) و fail-open ایجاد می‌شوند، از دید کنترل‌کننده پنهان هستند زیرا کنترل‌کننده مجاز به تغییر یا لغو آن‌ها نیست. اگر \fB\-\-offload-stats\fR مشخص شود، آمار بسته‌ها و بایت‌های تخلیه‌شده روی سخت‌افزار (offloaded) که زیرمجموعه‌ای از کل بسته‌ها و بایت‌ها هستند نیز نمایش داده می‌شود. .SS "دستورات پیوند (BOND COMMANDS)" این دستورات درگاه‌های پیوندخورده (bonded) روی پل‌های Open vSwitch را مدیریت می‌کنند. برای درک برخی از این دستورات، درک جزئیاتی از پیاده‌سازی پیوند موسوم به «متعادل‌سازی بار مبدأ» (SLB) ضروری است. پیاده‌سازی پیوند به جای تخصیص مستقیم آدرس‌های اترنت مبدأ به اعضا، تابعی را محاسبه می‌کند که آدرس‌های 48 بیتی اترنت مبدأ را به مقداری 8 بیتی (مقدار هش MAC) می‌نگارد. سپس تمام آدرس‌های اترنت که به یک مقدار 8 بیتی یکسان نگاشته شوند به یک عضو واحد تخصیص می‌یابند. .IP "\fBbond/list\fR" تمام پیوندها و اعضای آن‌ها را در هر پل فهرست می‌کند. . .IP "\fBbond/show\fR [\fIport\fR]" تمام اطلاعات مربوط به پیوند (تاخیر فعال‌سازی updelay، تاخیر غیرفعال‌سازی downdelay و زمان باقی‌مانده تا توازن مجدد بعدی) در مورد درگاه پیوندخورده \fIport\fR، یا همه درگاه‌های پیوندخورده در صورت عدم تعیین \fIport\fR را فهرست می‌کند. همچنین اطلاعات هر عضو را نشان می‌دهد: وضعیت فعال یا غیرفعال بودن، زمان باقی‌مانده تا تکمیل یک updelay یا downdelay در صورت جریان داشتن، عضو فعال بودن، و مقادیر هشی که به آن عضو اختصاص یافته‌اند. هرگونه اطلاعات LACP مرتبط با این پیوند را می‌توان با استفاده از دستور \fBlacp/show\fR به دست آورد. . .IP "\fBbond/migrate\fR \fIport\fR \fIhash\fR \fImember\fR" تنها برای پیوندهای نوع SLB معتبر است. یک هش MAC تعیین‌شده را به یک عضو جدید منتقل می‌کند. مقدار \fIport\fR درگاه پیوند، پارامتر \fIhash\fR هش MAC برای انتقال (به عنوان عددی ده‌دهی بین 0 تا 255)، و پارامتر \fImember\fR عضو جدید تخصیص‌یافته را مشخص می‌سازد. .IP این تخصیص مجدد دائمی نیست: متعادل‌سازی بار یا رخداد fail-over باعث می‌شود که هش MAC طبق روال عادی به یک عضو جدید جابجا شود. .IP هش MAC را نمی‌توان به عضوی که غیرفعال است انتقال داد. .IP "\fBbond/set\-active\-member\fR \fIport\fR \fImember\fR" عضو \fImember\fR را به عنوان عضو فعال روی \fIport\fR تعیین می‌کند. عضو \fImember\fR باید در وضعیت فعال باشد. .IP این تنظیم دائمی نیست: در صورتی که عضو \fImember\fR غیرفعال شود، عضو فعال جدیدی انتخاب خواهد شد. .IP "\fBbond/enable\-member\fR \fIport\fR \fImember\fR" .IQ "\fBbond/disable\-member\fR \fIport\fR \fImember\fR" عضو \fImember\fR را در درگاه پیوند \fIport\fR فعال (یا غیرفعال) می‌کند، و هرگونه updelay (یا downdelay) را نادیده می‌گیرد. .IP این تنظیم دائمی نیست: تنها تا زمانی پایدار می‌ماند که وضعیت حامل فیزیکی (carrier) عضو \fImember\fR تغییر یابد. .IP "\fBbond/hash\fR \fImac\fR [\fIvlan\fR] [\fIbasis\fR]" مقدار هشی را برمی‌گرداند که برای آدرس \fImac\fR همراه با \fIvlan\fR و \fIbasis\fR (در صورت تعیین) مورد استفاده قرار می‌گیرد. . .IP "\fBlacp/show\fR [\fIport\fR]" تمام اطلاعات مربوط به پروتکل LACP در درگاه \fIport\fR داده‌شده را فهرست می‌کند: فعال یا غیرفعال، کلید تجمیع، شناسه سیستم و اولویت سیستم. همچنین اطلاعات هر عضو را نشان می‌دهد: وضعیت فعال یا غیرفعال، متصل یا منفصل، شناسه و اولویت درگاه، اطلاعات actor و partner. اگر \fIport\fR مشخص نشود، اطلاعات تفصیلی برای همه رابط‌های دارای CFM فعال نمایش داده می‌شود. . .IP "\fBlacp/stats-show\fR [\fIport\fR]" آمارهای مختلفی پیرامون واحدهای داده پروتکل LACP (تعداد PDUهای ارسالی و دریافتی، بسته‌های PDU خراب دریافت شده) و وضعیت عضو (تعداد دفعات منقضی شدن/پیش‌فرض شدن وضعیت و تغییرات حامل) را برای درگاه داده‌شده \fIport\fR فهرست می‌کند. اگر \fIport\fR مشخص نشود، آمارهای تمامی رابط‌های دارای LACP فعال نمایش داده می‌شود. .SS "دستورات اشکال‌زدایی مسیر داده DPCTL (DPCTL DATAPATH DEBUGGING COMMANDS)" روش اصلی برای پیکربندی \fBovs\-vswitchd\fR از طریق پایگاه‌داده Open vSwitch است، مثلاً با استفاده از \fBovs\-vsctl\fR(8). این دستورات یک واسط اشکال‌زدایی برای مدیریت مسیرهای داده فراهم می‌کنند. آن‌ها همان ویژگی‌ها (و ساختار نحوی) دستور \fBovs\-dpctl\fR(8) را پیاده‌سازی می‌کنند. بر خلاف \fBovs\-dpctl\fR(8)، این دستورات با مسیرهای داده‌ای که مستقیماً در \fBovs\-vswitchd\fR تعبیه شده‌اند (مانند مسیر داده با نوع \fBnetdev\fR) نیز کار می‌کنند. .PP . .ds DX \fBdpctl/\fR .de DO \\$2 \\$1 \\$3 .. در صورتی که \fBovs\-vswitchd\fR در حال اجراست، از دستورات برای افزودن، حذف یا تغییر مسیرهای داده استفاده نکنید، زیرا با مدیریت مسیر داده اختصاصی \fBovs\-vswitchd\fR تداخل خواهد داشت. .TP \*(DX\fBadd\-dp \fIdp\fR [\fInetdev\fR[\fB,\fIoption\fR]...] مسیر داده \fIdp\fR را ایجاد می‌کند، همراه با یک درگاه محلی که آن هم \fIdp\fR نام دارد. اگر یک دستگاه شبکه به نام \fIdp\fR از قبل وجود داشته باشد این عملیات با شکست مواجه می‌شود. .IP اگر \fInetdev\fRها مشخص شده باشند، برنامه \fB\*(PN\fR آن‌ها را به مسیر داده جدید اضافه می‌کند، درست همان‌طور که گویی دستور \fBadd\-if\fR فراخوانی شده است. . .TP \*(DX\fBdel\-dp \fIdp\fR مسیر داده \fIdp\fR را حذف می‌کند. اگر \fIdp\fR با دستگاه‌های شبکه‌ای مرتبط باشد، آن‌ها نیز به طور خودکار برداشته می‌شوند. . .TP \*(DX\fBadd\-if \fIdp netdev\fR[\fB,\fIoption\fR]... هر \fInetdev\fR را به مجموعه دستگاه‌های شبکه‌ای که توسط مسیر داده \fIdp\fR نظارت می‌شوند می‌افزاید، که در آن \fIdp\fR نام یک مسیر داده موجود و \fInetdev\fR نام یکی از دستگاه‌های شبکه میزبان است، مانند \fBeth0\fR. به محض افزوده شدن دستگاه شبکه به مسیر داده، مسیر داده مالکیت کامل ترافیک آن را در دست می‌گیرد و دستگاه در برابر سایر اجزای سیستم خاموش و بدون فعالیت به نظر خواهد رسید. .IP دستگاه \fInetdev\fR می‌تواند با فهرستی از گزینه‌ها همراه شود که با کاما از هم تفکیک شده‌اند. گزینه‌های زیر در حال حاضر پشتیبانی می‌شوند: . .RS .IP "\fBtype=\fItype\fR" نوع درگاه مورد نظر را تعیین می‌کند. نوع پیش‌فرض \fBsystem\fR است. .IP "\fBport_no=\fIport\fR" شماره درگاه خاصی در داخل مسیر داده را درخواست می‌کند. اگر این گزینه تعیین نشود به طور خودکار مقداری به آن اختصاص خواهد یافت. .IP "\fIkey\fB=\fIvalue\fR" یک گزینه دلخواه به صورت جفت کلید-مقدار را به پیکربندی درگاه اضافه می‌کند. .RE .IP سند \fBovs\-vswitchd.conf.db\fR(5) انواع درگاه‌های موجود و گزینه‌های آن‌ها را مستند کرده است. . .IP "\*(DX\fBset\-if \fIdp port\fR[\fB,\fIoption\fR]..." هر درگاه \fIport\fR در \fIdp\fR را مطابق مشخصات بازپیکربندی می‌کند. گزینه‌ای به فرم \fIkey\fB=\fIvalue\fR گزینه کلید-مقدار داده‌شده را به درگاه اضافه می‌کند یا مقدار یک کلید موجود را بازنویسی می‌نماید. گزینه‌ای به شکل \fIkey\fB=\fR، یعنی بدون مقدار، گزینه مشخص‌شده به نام \fIkey\fR را حذف می‌کند. نوع و شماره درگاه قابل تغییر نیستند، بنابراین \fBtype\fR و \fBport_no\fR تنها در صورتی مجاز هستند که با پیکربندی موجود مطابقت داشته باشند. .TP \*(DX\fBdel\-if \fIdp netdev\fR... هر \fInetdev\fR را از لیست دستگاه‌های شبکه تحت نظارت مسیر داده \fIdp\fR حذف می‌کند. . .TP \*(DX\fBdump\-dps\fR نام هر مسیر داده پیکربندی‌شده را در سطری مجزا چاپ می‌کند. . .TP .DO "[\fB\-s\fR | \fB\-\-statistics\fR]" "\*(DX\fBshow" "\fR[\fIdp\fR...]" خلاصه‌ای از مسیرهای داده پیکربندی‌شده را، شامل شماره‌های مسیر داده و فهرستی از درگاه‌های متصل به هر مسیر داده، چاپ می‌کند. (درگاه محلی به عنوان درگاه شماره 0 شناخته می‌شود.) اگر \fB\-s\fR یا \fB\-\-statistics\fR مشخص شود، شمارنده‌های بسته و بایت برای هر درگاه نیز چاپ می‌شوند. .IP شماره‌های مسیر داده از آمارهای جریان و آمارهای ماسک مگا‌جریان (mega flow mask) تشکیل شده‌اند. .IP ردیف "lookups" سه آمار مرتبط با جستجوی جریان را که بر اثر پردازش بسته‌های ورودی در مسیر داده رخ می‌دهند نمایش می‌دهد. مقدار "hit" تعداد بسته‌های منطبق بر جریان‌های موجود را نشان می‌دهد. مقدار "missed" بیانگر تعداد بسته‌هایی است که با هیچ جریانی مطابقت نیافته و نیازمند پردازش در فضای کاربری هستند. مقدار "lost" تعداد بسته‌هایی است که برای پردازش در فضای کاربری ارسال شده اما پیش از رسیدن به آن دور ریخته شده‌اند. مجموع مقادیر "hit" و "miss" برابر است با کل بسته‌های پردازش‌شده در مسیر داده. .IP ردیف "flows" تعداد جریان‌ها در مسیر داده را نشان می‌دهد. .IP ردیف "masks" آمار ماسک‌های مگا‌جریان را نمایش می‌دهد. این ردیف برای مسیرهای داده‌ای که مگا‌جریان را پیاده‌سازی نمی‌کنند نمایش داده نمی‌شود. پارامتر "hit" تعداد کل ماسک‌های بررسی‌شده برای تطبیق بسته‌های ورودی را نشان می‌دهد. پارامتر "total" تعداد ماسک‌های موجود در مسیر داده را نشان می‌دهد. مقدار "hit/pkt" میانگین ماسک‌های بررسی‌شده به ازای هر بسته را نشان می‌دهد؛ یعنی نسبت بین "hit" و مجموع بسته‌های پردازش‌شده توسط مسیر داده. .IP اگر یک یا چند مسیر داده مشخص شده باشد، اطلاعات تنها برای آن مسیرها نمایش می‌یابد. در غیر این صورت، \fB\*(PN\fR اطلاعات مربوط به تمامی مسیرهای داده پیکربندی‌شده را نمایش می‌دهد. .SS "دستورات اشکال‌زدایی جدول جریان مسیر داده (DATAPATH FLOW TABLE DEBUGGING COMMANDS)" دستورات زیر اصولاً برای اشکال‌زدایی Open vSwitch مفید هستند. ورودی‌های جدول جریان (هم مطابقت‌ها و هم عملیات‌ها) که این دستورات با آن‌ها کار می‌کنند، ورودی‌های جریان OpenFlow نیستند. در عوض، آن‌ها جریان‌هایی متفاوت و به مراتب ساده‌تر هستند که توسط ماژول هسته Open vSwitch نگهداری می‌شوند. اگر \fBovs\-vswitchd\fR در حال اجراست، از دستورات برای افزودن، حذف یا تغییر جریان‌های مسیر داده استفاده نکنید زیرا در مدیریت جریان اختصاصی مسیر داده \fBovs\-vswitchd\fR تداخل ایجاد خواهد کرد. به جای آن، برای کار با ورودی‌های جریان OpenFlow از \fBovs\-ofctl\fR(8) استفاده کنید. . .PP هنگامی که دقیقاً یک مسیر داده وجود داشته باشد، آرگومان \fIdp\fR در هر یک از این دستورات اختیاری است و مسیر پیش‌فرض در نظر گرفته می‌شود. هنگامی که چندین مسیر داده وجود دارد، ذکر نام مسیر داده الزامی خواهد بود. . .TP .DO "[\fB\-m \fR| \fB\-\-more\fR] [\fB\-\-names \fR| \fB\-\-no\-names\fR]" \*(DX\fBdump\-flows\fR "[\fIdp\fR] [\fBfilter=\fIfilter\fR] [\fBtype=\fItype\fR] [\fBpmd=\fIpmd\fR]" تمام ورودی‌های جریان را در جدول جریان مسیر داده \fIdp\fR در کنسول چاپ می‌کند. بدون گزینه \fB\-m\fR یا \fB\-\-more\fR، خروجی از فیلدهایی که یک جریان آن‌ها را کاملاً به صورت عام (wildcard) در نظر گرفته صرف‌نظر می‌کند؛ با گزینه \fB\-m\fR یا \fB\-\-more\fR، خروجی شامل تمام فیلدهای عام نیز خواهد بود. .IP اگر \fBfilter=\fIfilter\fR مشخص شده باشد، تنها جریان‌هایی را نمایش می‌دهد که با \fIfilter\fR مطابقت داشته باشند. پارامتر \fIfilter\fR جریانی به فرم مشابه قالب پذیرفته‌شده توسط دستور \fBadd\-flow\fR در \fBovs\-ofctl\fR(8) است. (این یک جریان OpenFlow نیست: گذشته از تفاوت‌های دیگر، هرگز حاوی کاراکترهای عام نیست.) گزینه \fIfilter\fR همچنین برای تطبیق فیلدهای عام در جریان مسیر داده مفید است. به عنوان مثال، مقدار \fBfilter='tcp,tp_src=100'\fR جریانی را تطبیق می‌دهد که حاوی '\fBtcp(src=80/0xff00,dst=8080/0xff)\fR' باشد. .IP اگر \fBpmd=\fIpmd\fR مشخص شده باشد، فقط جریان‌های مربوط به پردازنده pmd تعیین‌شده را نمایش می‌دهد. استفاده از \fBpmd=\fI-1\fR تخلیه اطلاعات را به جریان‌های ریسه اصلی (main thread) محدود می‌کند. این گزینه فقط توسط \fBمسیر داده فضای کاربری (userspace datapath)\fR پشتیبانی می‌شود. .IP اگر \fBtype=\fItype\fR مشخص شده باشد، فقط جریان‌های مربوط به انواع مشخص‌شده را نمایش می‌دهد. این گزینه تنها برای \fBovs\-appctl dpctl/dump\-flows\fR پشتیبانی می‌شود. مقدار \fItype\fR فهرستی است که با کاما تفکیک شده و می‌تواند حاوی هر یک از موارد زیر باشد: . \fBovs\fR - جریان‌های مدیریت‌شده در مسیر داده ovs را نمایش می‌دهد \fBtc\fR - جریان‌های مدیریت‌شده در مسیر داده tc را نمایش می‌دهد \fBdpdk\fR - جریان‌های تخلیه‌شده کامل روی dpdk را نمایش می‌دهد \fBoffloaded\fR - جریان‌های تخلیه‌شده روی سخت‌افزار (HW) را نمایش می‌دهد \fBnon-offloaded\fR - جریان‌های تخلیه‌نشده روی سخت‌افزار را نمایش می‌دهد \fBpartially-offloaded\fR - جریان‌هایی که بخشی از پردازش آن‌ها در سخت‌افزار انجام می‌شود را نشان می‌دهد \fBall\fR - همه انواع جریان‌ها را نمایش می‌دهد .IP به طور پیش‌فرض تمام انواع جریان‌ها نمایش داده می‌شوند. برنامه \fBovs\-dpctl\fR همواره طوری رفتار می‌کند که گویی \fBtype\fR برابر \fIovs\fR بوده است. . .IP "\*(DX\fBadd\-flow\fR [\fIdp\fR] \fIflow actions\fR" .TP .DO "[\fB\-\-clear\fR] [\fB\-\-may-create\fR] [\fB\-s\fR | \fB\-\-statistics\fR]" "\*(DX\fBmod\-flow\fR" "[\fIdp\fR] \fIflow actions\fR" جریانی را در جدول جریان \fIdp\fR اضافه یا تغییر می‌دهد که هنگام ورود بسته‌ای منطبق بر \fIflow\fR، عملیات‌های \fIactions\fR اجرا گردند. .IP دستور \fBadd\-flow\fR تنها در صورتی موفق می‌شود که \fIflow\fR از قبل در \fIdp\fR وجود نداشته باشد. در مقابل، دستور \fBmod\-flow\fR بدون گزینه \fB\-\-may\-create\fR فقط اقدامات یک جریان موجود را اصلاح می‌کند. با گزینه \fB\-\-may\-create\fR، دستور \fBmod\-flow\fR جریانی جدید اضافه کرده یا جریانی موجود را ویرایش می‌نماید. .IP اگر \fB\-s\fR یا \fB\-\-statistics\fR مشخص شود، آنگاه \fBmod\-flow\fR آمارهای جریان ویرایش‌شده را چاپ می‌کند. آمارهای جریان شامل تعداد بسته‌ها و بایت‌هایی است که از جریان گذشته‌اند، زمان سپری‌شده از آخرین باری که جریان بسته‌ای را پردازش کرده است، و (برای جریان‌های TCP) اجتماع پرچم‌های TCP پردازش‌شده در جریان. .IP با گزینه \fB\-\-clear\fR، دستور \fBmod\-flow\fR آمارهای جریان را صفر می‌کند. آمارهای چاپ‌شده در صورت همراهی با \fB\-s\fR یا \fB\-\-statistics\fR مقادیری خواهند بود که دقیقاً پیش از صفر کردن آمار ثبت شده‌اند. .IP یادداشت: ساختار \fIflow\fR و \fIactions\fR با ساختار نحوی مورد استفاده در دستور \fBadd\-flow\fR متعلق به \fBovs\-ofctl\fR(8) یکسان نیست. . .IP \fBمثال‌های استفاده\fR . .RS .PP هدایت بسته‌های ARP میان درگاه‌های 1 و 2 در مسیر داده myDP: .IP ovs-dpctl add-flow myDP \ . "in_port(1),eth(),eth_type(0x0806),arp()" 2 . .IP ovs-dpctl add-flow myDP \ . "in_port(2),eth(),eth_type(0x0806),arp()" 1 . .PP هدایت تمام ترافیک IPv4 میان دو نشانی روی درگاه‌های 1 و 2: . .IP ovs-dpctl add-flow myDP \ . "in_port(1),eth(),eth_type(0x800),\ ipv4(src=172.31.110.4,dst=172.31.110.5)" 2 . .IP ovs-dpctl add-flow myDP \ . "in_port(2),eth(),eth_type(0x800),\ ipv4(src=172.31.110.5,dst=172.31.110.4)" 1 . .RE .TP \*(DX\fBadd\-flows\fR [\fIdp\fR] \fIfile\fR .TQ \*(DX\fBmod\-flows\fR [\fIdp\fR] \fIfile\fR .TQ \*(DX\fBdel\-flows\fR [\fIdp\fR] \fIfile\fR ورودی‌های جریان را از \fIfile\fR (یا در صورت تعیین \fB\-\fR برای \fIfile\fR از \fBstdin\fR) خوانده و هر ورودی را به مسیر داده اضافه کرده، تغییر داده یا حذف می‌کند. . هر مشخصه جریان (مثلاً هر خط در \fIfile\fR) می‌تواند با یکی از کلمات کلیدی \fBadd\fR، \fBmodify\fR یا \fBdelete\fR آغاز شود تا نشان دهد جریان باید افزوده، ویرایش یا حذف شود. مشخصه جریانی که فاقد این کلمات کلیدی باشد بر اساس دستوری که فراخوانی شده است مدیریت می‌شود. تمامی ویرایش‌های جریان به صورت تراکنش‌های مجزا و با همان ترتیب تعیین‌شده اجرا می‌گردند. . .TP .DO "[\fB\-s\fR | \fB\-\-statistics\fR]" "\*(DX\fBdel\-flow\fR" "[\fIdp\fR] \fIflow\fR" جریانی را که با \fIflow\fR تطبیق می‌یابد از جدول جریان \fIdp\fR حذف می‌کند. اگر \fB\-s\fR یا \fB\-\-statistics\fR تعیین شده باشد، آنگاه \fBdel\-flow\fR آمارهای جریان حذف‌شده را چاپ می‌نماید. . .TP .DO "[\fB\-m \fR| \fB\-\-more\fR] [\fB\-\-names \fR| \fB\-\-no\-names\fR]" "\*(DX\fBget\-flow\fR [\fIdp\fR] ufid:\fIufid\fR" جریان با شناسه منحصر‌به‌فرد \fIufid\fR را از جدول جریان \fIdp\fR واکشی می‌کند. پارامتر \fIufid\fR باید به صورت یک رشته با 32 نویسه هگزادسیمال مشخص شود. . .IP "\*(DX\fBdel\-flows\fR [\fIdp\fR]" تمام ورودی‌های جریان را از جدول جریان مسیر داده \fIdp\fR حذف می‌کند. .SS "دستورات حافظه موقت جریان مسیر داده (DATAPATH FLOW CACHE COMMANDS)" دستورات زیر برای عیب‌یابی و پیکربندی تنظیمات حافظه پنهان جریان مسیر داده مفید هستند. . .TP \*(DX\fBcache\-get\-size\fR [\fIdp\fR] اندازه‌های فعلی حافظه پنهان را در کنسول چاپ می‌کند. . .TP \*(DX\fBcache\-set\-size\fR \fIdp\fR \fIcache\fR \fIsize\fR حافظه پنهان \fIcache\fR مشخص در \fIdp\fR را روی اندازه \fIsize\fR تنظیم می‌کند. نام کش را می‌توان با استفاده از دستور \fBcache\-get\-size\fR پیدا کرد. . .SS "دستورات جدول ردیابی اتصال (CONNECTION TRACKING TABLE COMMANDS)" دستورات زیر برای عیب‌یابی و پیکربندی جدول ردیابی اتصال (connection tracking) در مسیر داده مفید هستند. . .PP هنگامی که دقیقاً یک مسیر داده موجود باشد، آرگومان \fIdp\fR برای هر یک از این دستورات اختیاری است و مسیر پیش‌فرض اعمال می‌شود. وقتی مسیرهای داده متعددی وجود داشته باشد، تعیین نام مسیر داده الزامی خواهد بود. . .PP \fBیادداشت مهم\fR (ویژه لینوکس): مسیرهای داده \fIsystem\fR (یعنی مسیرهای داده Open vSwitch ماژول هسته لینوکس) یک جدول ردیابی اتصال مشترک دارند (که توسط سایر زیرسیستم‌های هسته نیز مورد استفاده است، مانند iptables، nftables و پشته معمولی شبکه میزبان). بنابراین، دستورات زیر به طور اختصاصی روی یک مسیر داده اعمال نمی‌شوند. . .TP \*(DX\fBipf\-set\-enabled\fR [\fIdp\fR] \fBv4\fR|\fBv6\fR .TQ \*(DX\fBipf\-set\-disabled\fR [\fIdp\fR] \fBv4\fR|\fBv6\fR مدیریت قطعه‌بندی IP (fragmentation) را برای ردیاب اتصال فضای کاربری فعال یا غیرفعال می‌کند. باید یکی از موارد \fBv4\fR یا \fBv6\fR مشخص شود. سرهم‌بندی مجدد قطعات IPv4 و IPv6 به طور پیش‌فرض فعال است. این گزینه فقط برای مسیر داده فضای کاربری پشتیبانی می‌شود. . .TP \*(DX\fBipf\-set\-min\-frag\fR [\fIdp\fR] \fBv4\fR|\fBv6\fR \fIminfrag\fR حداقل اندازه قطعه (هدر L3 به اضافه داده‌ها) را برای قطعات غیرپایانی روی \fIminfrag\fR تنظیم می‌کند. باید \fBv4\fR یا \fBv6\fR مشخص گردد. برای افزایش امنیت در برابر حملات محروم‌سازی از سرویس (DOS)، معمولاً می‌توان از مقادیر بالاتری برای حداقل اندازه قطعه استفاده کرد. مقدار پیش‌فرض IPv4 برابر 1200 و حداقل مقدار مجاز آن 400 است. مقدار پیش‌فرض IPv6 برابر 1280، با حداقل مجاز 400 برای انعطاف‌پذیری در آزمون‌ها است. حداکثر اندازه قطعه محدودیتی ندارد، با این حال تنظیم این مقدار روی عدد خیلی بزرگ ممکن است موجب دور ریخته شدن قطعات معتبر شود. فقط برای مسیر داده در فضای کاربری پشتیبانی می‌شود. . .TP \*(DX\fBipf\-set\-max\-nfrags\fR [\fIdp\fR] \fImaxfrags\fR حداکثر تعداد قطعاتی را که توسط ردیاب اتصال مسیر داده فضای کاربری ردیابی می‌شوند روی \fImaxfrags\fR قرار می‌دهد. مقدار پیش‌فرض 1000 و حداکثر مقدار مجاز آن 5000 است. توجه داشته باشید تا زمانی که قطعات ناقص هستند بافرهای بسته می‌توانند توسط ماژول قطعه‌بندی نگه داشته شوند، اما پس از 15 ثانیه منقضی (timeout) خواهند شد. اندازه مخزن حافظه (memory pool) در زمان فعال بودن قطعه‌بندی باید به تناسب تنظیم شود. فقط برای مسیر داده فضای کاربری پشتیبانی می‌شود. . .TP .DO "[\fB\-m\fR | \fB\-\-more\fR]" "\*(DX\fBipf\-get\-status\fR [\fIdp\fR]" تنظیمات پیکربندی و شمارنده‌های قطعه مرتبط با پردازش قطعه‌بندی در ردیاب اتصال مسیر داده فضای کاربری را دریافت می‌کند. با گزینه \fB\-m\fR یا \fB\-\-more\fR، فهرست قطعات IP را نیز نمایش می‌دهد. فقط برای مسیر داده فضای کاربری پشتیبانی می‌شود. . .TP .DO "[\fB\-m\fR | \fB\-\-more\fR] [\fB\-s\fR | \fB\-\-statistics\fR]" "\*(DX\fBdump\-conntrack\fR" "[\fIdp\fR] [\fBzone=\fIzone\fR]" تمام ورودی‌های اتصال در ردیاب مورد استفاده توسط \fIdp\fR را در کنسول چاپ می‌کند. اگر \fBzone=\fIzone\fR مشخص شود، تنها اتصالات موجود در \fIzone\fR را نشان می‌دهد. با \fB\-\-more\fR، برخی جزئیات وابسته به پیاده‌سازی نیز گنجانده می‌شوند. با گزینه \fB\-\-statistics\fR زمان‌های انقضا و برچسب‌های زمانی به خروجی افزوده می‌گردند. . .TP \*(DX\fBdump\-conntrack\-exp\fR [\fIdp\fR] [\fBzone=\fIzone\fR] تمام ورودی‌های انتظار (expectation) را در ردیاب اتصال مورد استفاده \fIdp\fR در کنسول چاپ می‌کند. اگر \fBzone=\fIzone\fR مشخص شود، فقط انتظارات مربوط به منطقه \fIzone\fR را نمایش می‌دهد. فقط برای مسیر داده فضای کاربری پشتیبانی می‌شود. . .TP \*(DX\fBflush\-conntrack\fR [\fIdp\fR] [\fBzone=\fIzone\fR] [\fIct-origin-tuple\fR [\fIct-reply-tuple\fR]] ورودی‌های اتصال در ردیاب مورد استفاده توسط \fIdp\fR را بر پایه \fIzone\fR و تاپل ردیابی اتصال \fIct-origin-tuple\fR پاکسازی می‌کند. اگر تاپل ردیابی مشخص نشود، تمامی ورودی‌های اتصال پاک خواهند شد. اگر \fBzone\fR=\fIzone\fR تعیین گردد، فقط اتصالات درون ناحیه \fIzone\fR تخلیه می‌شوند. .IP اگر \fIct-[orig|reply]-tuple\fR ارائه شود، ورودی اتصالی را که توسط این تاپل در ناحیه \fIzone\fR مشخص شده است پاک می‌کند. منطقه در صورت عدم تعیین، پیش‌فرض 0 خواهد بود. ردیاب اتصال فضای کاربری نیازمند پاکسازی با تاپل اصلی پیش از اعمال NAT است و در غیر این صورت پیام هشداری صادر خواهد شد. تاپل می‌تواند به صورت جزئی ارائه شود و تمامی اتصالاتی را که با فیلدهای تعیین‌شده مطابقت دارند حذف خواهد کرد. جهت تعیین تنها \fIct-reply-tuple\fR، مقدار \fIct-origin-tuple\fR را رشته خالی در نظر بگیرید. .IP توجه: در حال حاضر محدودیتی در تطبیق روی ICMP وجود دارد؛ برای تطبیق جزئی پارامترهای ICMP، تاپل \fIct-[orig|reply]-tuple\fR باید شامل IP مبدأ یا مقصد باشد. .IP یک مثال از تاپل IPv4 ICMP: .IP "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" .IP یک مثال از تاپل IPv6 TCP: .IP "ct_ipv6_src=fc00::1,ct_ipv6_dst=fc00::2,ct_nw_proto=6,ct_tp_src=1,ct_tp_dst=2" . .TP .DO "[\fB\-m\fR | \fB\-\-more\fR]" "\*(DX\fBct\-stats\-show\fR [\fIdp\fR] [\fBzone=\fIzone\fR]" تعداد اتصالات را که بر اساس پروتکل مورد استفاده در \fIdp\fR گروه‌بندی شده‌اند نمایش می‌دهد. اگر \fBzone=\fIzone\fR مشخص شود، اعداد به اتصالات موجود در آن منطقه اشاره خواهند داشت. با گزینه \fB\-\-more\fR، اتصالات بر اساس وضعیت اتصال به ازای هر پروتکل گروه‌بندی می‌شوند. . .TP \*(DX\fBct\-bkts\fR [\fIdp\fR] [\fBgt=\fIthreshold\fR] برای هر باکت conntrack، تعداد اتصالات مورد استفاده توسط \fIdp\fR را نمایش می‌دهد. اگر \fBgt=\fIthreshold\fR مشخص شود، شماره باکت‌ها هنگامی نمایش داده می‌شوند که تعداد اتصالات در یک باکت بیشتر از \fIthreshold\fR باشد. . .TP \*(DX\fBct\-set\-maxconns\fR [\fIdp\fR] \fImaxconns\fR حداکثر سقف مجاز برای ورودی‌های ردیاب اتصال را روی \fIdp\fR برابر با \fImaxconns\fR قرار می‌دهد. این دستور می‌تواند برای کاهش بار پردازشی سیستم ناشی از ردیابی اتصال، یا صرفاً برای محدودسازی تعداد اتصالات به کار رود. اگر تعداد اتصالات در حال حاضر فراتر از سقف جدید درخواست‌شده باشد، سقف جدید زمانی اعمال و تثبیت می‌شود که تعداد اتصالات بر اثر انقضا کاهش یابد. فقط برای مسیر داده فضای کاربری پشتیبانی می‌شود. . .TP \*(DX\fBct\-get\-maxconns\fR [\fIdp\fR] حداکثر سقف مجاز ورودی‌های ردیاب اتصال را روی \fIdp\fR چاپ می‌کند. فقط برای مسیر داده فضای کاربری پشتیبانی می‌شود. . .TP \*(DX\fBct\-get\-nconns\fR [\fIdp\fR] تعداد فعلی ورودی‌های ردیاب اتصال در \fIdp\fR را چاپ می‌کند. فقط برای مسیر داده فضای کاربری پشتیبانی می‌شود. . .TP \*(DX\fBct\-enable\-tcp\-seq\-chk\fR [\fIdp\fR] .TQ \*(DX\fBct\-disable\-tcp\-seq\-chk\fR [\fIdp\fR] بررسی شماره توالی TCP را فعال یا غیرفعال می‌کند. وقتی غیرفعال باشد، تمامی فرآیندهای راستی‌آزمایی شماره توالی خاموش می‌شوند، از جمله برای ریست‌های TCP. این عملکرد شبیه به حالت 'be_liberal' در Netfilter است، هرچند دقیقاً با آن یکسان نیست. غیرفعال کردن اعتبارسنجی شماره توالی به خودی خود یک بهینه‌سازی محسوب نمی‌شود، اما برای برخی قابلیت‌های بارگذاری سخت‌افزاری که ممکن است مزیت کارایی داشته باشند لازم است. بررسی شماره توالی به طور پیش‌فرض به منظور اعمال امنیت بهتر فعال است و تنها در صورت نیاز جهت پشتیبانی از تخلیه بار روی سخت‌افزار باید غیرفعال گردد. این دستور فقط برای مسیر داده فضای کاربری پشتیبانی می‌شود. . .TP \*(DX\fBct\-get\-tcp\-seq\-chk\fR [\fIdp\fR] چاپ می‌کند که آیا بررسی توالی TCP روی \fIdp\fR فعال است یا غیرفعال. فقط برای مسیر داده فضای کاربری پشتیبانی می‌شود. . .TP \*(DX\fBct\-set\-sweep\-interval\fR [\fIdp\fR] \fIms\fR فاصله زمانی جاروب و پاکسازی (sweep interval) را تنظیم می‌کند. فقط برای مسیر داده فضای کاربری پشتیبانی می‌شود. . .TP \*(DX\fBct\-get\-sweep\-interval\fR [\fIdp\fR] فاصله زمانی جاروب فعلی را بر حسب میلی‌ثانیه چاپ می‌کند. فقط برای مسیر داده فضای کاربری پشتیبانی می‌شود. . .TP \*(DX\fBct\-set\-limits\fR [\fIdp\fR] [\fBdefault=\fIdefault_limit\fR] [\fBzone=\fIzone\fR,\fBlimit=\fIlimit\fR]... حداکثر تعداد مجاز اتصالات را در یک منطقه ردیابی اتصال تنظیم می‌کند. یک \fIzone\fR خاص می‌تواند روی حد \fIlimit\fR تنظیم شود، و مناطق متعدد را می‌توان با فهرستی تفکیک‌شده با کاما تعیین نمود. اگر حد مجاز برای منطقه‌ای خاص در مسیر داده تعیین نشود، مقدار پیش‌فرض هر منطقه بر آن حاکم خواهد شد. یک منطقه پیش‌فرض می‌تواند با آرگومان \fBdefault=\fIdefault_limit\fR مشخص گردد. در ابتدا، حد پیش‌فرض هر منطقه نامحدود است. تعداد ورودی نامحدود را می‌توان با حد \fB0\fR تنظیم نمود. . .TP \*(DX\fBct\-del\-limits\fR [\fIdp\fR] \fBzone=\fIzone[,zone]\fR... حد ردیابی اتصال را برای \fIzone\fR حذف می‌کند. مناطق متعدد را می‌توان با فهرستی تفکیک‌شده با کاما مشخص کرد. . .TP \*(DX\fBct\-get\-limits\fR [\fIdp\fR] [\fBzone=\fIzone\fR[\fB,\fIzone\fR]...] حداکثر تعداد مجاز اتصالات و شمارش‌های فعلی را به ازای هر منطقه بازیابی می‌کند. اگر \fIzone\fR تعیین شود، تنها منطقه(های) مشخص‌شده چاپ می‌شوند. اگر منطقه‌ای مشخص نگردد، تمامی حدود و شمارش‌های مناطق ارائه می‌شوند. این دستور همواره حد مجاز منطقه پیش‌فرض را نمایش می‌دهد. . .SS "دستورات DPDK (DPDK COMMANDS)" این دستورات اجزای DPDK را مدیریت می‌کنند. .IP "\fBdpdk/lcore-list\fR" هسته‌های پردازشی منطقی (lcores) در DPDK و وابستگی پردازنده‌ای (cpu affinity) آن‌ها را فهرست می‌کند. هنگامی که هسته‌های منطقی به تعداد RTE_MAX_LCORE ثبت شده باشند، برخی ریسه‌های OVS PMD ظاهر نخواهند شد. .IP "\fBdpdk/log-list\fR" تمام اجزای DPDK را که گزارش لاگ تولید می‌کنند همراه با سطوح ثبت وقایع آن‌ها فهرست می‌کند. .IP "\fBdpdk/log-set\fR [\fIspec\fR]" سطح ثبت وقایع اجزای DPDK را تنظیم می‌کند. بدون هیچ \fIspec\fR، سطح ثبت وقایع برای تمام اجزای DPDK روی \fBdebug\fR قرار می‌گیرد. در غیر این صورت، \fIspec\fR فهرستی از کلمات تفکیک‌شده با فاصله است: یک کلمه می‌تواند یک سطح لاگ باشد (\fBemergency\fR، \fBalert\fR، \fBcritical\fR، \fBerror\fR، \fBwarning\fR، \fBnotice\fR، \fBinfo\fR یا \fBdebug\fR)، یا یک الگوی \fBpattern\fR منطبق بر اجزای DPDK (دستور \fBdpdk/log-list\fR را در \fBovs\-appctl\fR(8) ببینید) که با یک علامت دونقطه از سطح لاگ مورد نظر برای اعمال تفکیک شده است. .IP "\fBdpdk/get-malloc-stats\fR" اطلاعات و آمارهای فضای هیپ (heap) مربوط به malloc در DPDK را چاپ می‌کند. .IP "\fBdpdk/get-memzone-stats\fR" نواحی حافظه رزرو‌شده (memzones) را از DPDK چاپ می‌کند. .RE . .SS "دستورات DPIF-NETDEV (DPIF-NETDEV COMMANDS)" از این دستورات برای آشکارسازی اطلاعات داخلی (عمدتاً آمارها) درباره مسیر داده فضای کاربری "dpif-netdev" استفاده می‌شود. اگر تنها یک مسیر داده وجود داشته باشد (که اغلب بدین صورت است، مگر اینکه از دستورات \fBdpctl/\fR استفاده شده باشد)، آرگومان \fIdp\fR را می‌توان نادیده گرفت. به طور پیش‌فرض، این دستورات اطلاعات را برای تمامی ریسه‌های pmd در مسیر داده ارائه می‌دهند. با تعیین گزینه "-pmd Core" می‌توان خروجی را برای یک پردازنده pmd خاص در مسیر داده فیلتر کرد. . .IP "\fBdpif-netdev/pmd-stats-clear\fR [\fIdp\fR]" اعداد کارایی به ازای هر ریسه pmd را که توسط دستور \fBdpif-netdev/pmd-perf-show\fR نشان داده می‌شوند صفر می‌کند. این دستور آمارهای مسیر داده یا پل را ریست \fBنمی‌کند\fR، و فقط مقادیر نمایش‌داده‌شده توسط دستور فوق را پاک می‌سازد. . .IP "\fBdpif-netdev/pmd-perf-show\fR [\fB-nh\fR] [\fB-it\fR \fIiter_len\fR] \ [\fB-ms\fR \fIms_len\fR] [\fB-pmd\fR \fIcore\fR] [\fIdp\fR]" سنجه‌های عملکردی تفصیلی را برای یک یا تمام ریسه‌های pmd در مسیر داده فضای کاربری نشان می‌دهد. ریسه ویژه "main" مجموع آمارهای تمام ریسه‌های غیر pmd را جمع‌بندی می‌کند. جمع‌آوری آمارهای تفصیلی اضافه می‌تواند توسط یک پارامتر پیکربندی به نام \fBother-config:pmd-perf-metrics\fR کنترل شود. این قابلیت به طور پیش‌فرض غیرفعال است. سربار زمان اجرا در هنگام فعال بودن در حدود 1 درصد خواهد بود. آمارهای گردآوری‌شده عبارتند از: .RS .IP .PD .4v .IP \(em سیکل‌های پردازشی استفاده‌شده (used cycles) .IP \(em بسته‌های هدایت‌شده (forwarded packets) .IP \(em تعداد دسته‌های دریافتی (rx batches) .IP \(em بسته‌ها به ازای هر دسته دریافتی (packets/rx batch) .IP \(em حداکثر سطح پر بودن صف vhostuser .IP \(em تعداد فراخوانی‌های رو به بالا (upcalls) .IP \(em سیکل‌های سپری‌شده در upcallها .PD .RE .IP این داده‌های خام ثبت‌شده در سه بخش استفاده می‌شوند: .RS .IP .PD .4v .IP 1. در بافت‌نگارها (هیستوگرام‌ها) برای هر یک از سنجه‌های زیر: .RS .IP \(em سیکل‌ها بر تکرار (لگاریتمی) .IP \(em بسته‌ها بر تکرار (لگاریتمی) .IP \(em سیکل‌ها بر بسته .IP \(em بسته‌ها بر دسته .IP \(em حداکثر طول صف vhostuser (لگاریتمی) .IP \(em فراخوانی‌های رو به بالا (upcalls) .IP \(em سیکل‌ها بر فراخوانی رو به بالا (لگاریتمی) خانه‌های هیستوگرام به صورت خطی یا لگاریتمی تقسیم‌بندی شده‌اند. .RE .IP 2. تاریخچه دوره‌ای سنجه‌های بالا برای 1024 تکرار. .IP 3. تاریخچه دوره‌ای مقادیر تجمعی/میانگین به ازای هر میلی‌ثانیه ساعت واقعی برای 1024 میلی‌ثانیه گذشته: .RS .IP \(em تعداد تکرارها .IP \(em میانگین سیکل‌ها بر تکرار .IP \(em بسته‌ها (بر حسب کیلو بسته بر ثانیه - Kpps) .IP \(em میانگین بسته‌ها بر دسته .IP \(em میانگین حداکثر طول صف vhost .IP \(em فراخوانی‌های رو به بالا (upcalls) .IP \(em میانگین سیکل‌ها بر upcall .RE .PD .RE .IP . گزینه‌های دستور عبارتند از: .RS .IP "\fB-nh\fR" عدم نمایش بافت‌نگارها (هیستوگرام‌ها) .IP "\fB-it\fR \fIiter_len\fR" نمایش آمارهای مربوط به \fIiter_len\fR تکرار اخیر .IP "\fB-ms\fR \fIms_len\fR" نمایش آمار میلی‌ثانیه‌ای برای \fIms_len\fR میلی‌ثانیه اخیر .RE .IP خروجی همواره شامل آمارهای کلی PMD به شرح زیر است: .RS .IP .EX Time: 15:24:55.270 Measurement duration: 1.008 s pmd thread numa_id 0 core_id 1: Iterations: 572817 (1.76 us/it) - Used TSC cycles: 2419034712 ( 99.9 % of total cycles) - idle iterations: 486808 ( 15.9 % of used cycles) - busy iterations: 86009 ( 84.1 % of used cycles) Rx packets: 2399607 (2381 Kpps, 848 cycles/pkt) Datapath passes: 3599415 (1.50 passes/pkt) - PHWOL hits: 0 ( 0.0 %) - Simple Match hits: 0 ( 0.0 %) - EMC hits: 336472 ( 9.3 %) - SMC hits: 0 ( 0.0 %) - Megaflow hits: 3262943 ( 90.7 %, 1.00 subtbl lookups/hit) - Upcalls: 0 ( 0.0 %, 0.0 us/upcall) - Lost upcalls: 0 ( 0.0 %) Tx packets: 2399607 (2381 Kpps) Tx batches: 171400 (14.00 pkts/batch) .EE .RE .IP در اینجا "Rx packets" در واقع نشان‌دهنده تعداد بسته‌های هدایت‌شده توسط مسیر داده است. مجموع مقادیر "PHWOL hits"، "Simple Match hits"، "EMC hits"، "SMC hits"، "Megaflow hits" و "Upcalls" بیانگر تعداد جستجوهای بسته انجام‌شده توسط مسیر داده است و به عنوان "Datapath passes" گزارش می‌شود. توجه داشته باشید که یک بسته بازچرخانی‌شده (recirculated) در هر بار بازچرخانی یک جستجوی اضافه را تجربه می‌کند، بنابراین ممکن است تعداد جستجوها از تعداد بسته‌های هدایت‌شده در مسیر داده بیشتر باشد. عبارت "MFEX Opt hits" تعداد بسته‌هایی را نشان می‌دهد که توسط پیاده‌سازی‌های بهینه‌شده استخراج مینی‌جریان (miniflow extract) پردازش شده‌اند. شمارش چرخه‌ها با استفاده از TSC یا امکانات مشابه سخت‌افزاری (در صورت در دسترس بودن روی پلتفرم) انجام می‌شود. مدت زمان یک چرخه به بستر پردازشی وابسته است. آمارهای مبتنی بر چرخه برای ریسه "main" گزارش نمی‌شوند، زیرا محاسبه دقیق چرخه‌های پردازنده در این حالت مقدور نیست. عبارت "idle iterations" به تکرارهای PMD اشاره دارد که منجر به پردازش هیچ بسته‌ای نشده‌اند. عبارت "busy iterations" نشان‌دهنده تکرارهای PMD است که پردازش حداقل یک بسته را در بر داشته‌اند. چرخه‌های مصرفی TSC گزارش‌شده شامل هزینه پولینگ (polling)، پردازش و ارسال بسته‌های یادشده است. جهت بازنشانی شمارنده‌ها و شروع یک اندازه‌گیری تازه از دستور \fBdpif-netdev/pmd-stats-clear\fR استفاده نمایید. . .IP "\fBdpif-netdev/pmd-perf-log-set\fR \fBon\fR|\fBoff\fR \ [\fB-b\fR \fIbefore\fR] [\fB-a\fR \fIafter\fR] [\fB-e\fR|\fB-ne\fR] \ [\fB-us\fR \fIusec\fR] [\fB-q\fR \fIqlen\fR]" . مسیر داده "netdev" در فضای کاربری قادر است سنجه‌های عملکردی PMD را نظارت کرده و تکرارهای دارای آمارهای مشکوک را بر اساس معیارهای زیر شناسایی کند: .RS .IP \(em تکرار بیش از \fIusec\fR میکروثانیه به درازا بکشد (پیش‌فرض 250). از این ویژگی می‌توان برای ثبت رخدادهایی استفاده کرد که یک PMD برای چنان بازه زمانی مسدود یا متوقف شده است که خطر دور ریخته شدن بسته‌ها روی هر یک از صف‌های دریافت (Rx) آن وجود دارد. .IP \(em حداکثر طول صف vhost از آستانه \fIqlen\fR فراتر رود (پیش‌فرض 128). از این طریق می‌توان سرریز صف‌های virtio و دور ریز بسته‌ها در داخل یک ماشین مجازی را استنباط کرد، که در غیر این صورت در OVS قابل رویت نیستند. .RE .IP چنین تکرارهای مشکوکی را می‌توان همراه با آمارهای تکرار آن‌ها در فایل \fBovs-vswitchd.log\fR ثبت کرد تا بتوان آن‌ها را به افت بسته‌ها یا سایر رویدادهای خارج از OVS ربط داد. دستور فوق نظارت و ثبت وقایع را در زمان اجرا فعال (\fBon\fR) یا غیرفعال (\fBoff\fR) می‌کند و می‌تواند برای تنظیم آستانه‌های فوق جهت تشخیص تکرارهای مشکوک به کار رود. نظارت و ثبت وقایع به طور پیش‌فرض غیرفعال است. گزینه‌های دستور عبارتند از: .RS .IP "\fB-b\fR \fIbefore\fR" تعداد تکرارهای پیش از تکرار مشکوک که باید ثبت شوند (پیش‌فرض 5). .IP "\fB-a\fR \fIafter\fR" تعداد تکرارهای پس از تکرار مشکوک که باید ثبت شوند (پیش‌فرض 5). .IP "\fB-e\fR" در صورتی که تکرار مشکوک دیگری پیش از وقوع ثبت وقایع شناسایی شود، بازه ثبت را تمدید می‌کند. .IP "\fB-ne\fR" در صورت شناسایی تکرار مشکوک دیگر پیش از انجام ثبت، بازه ثبت وقایع را تمدید نمی‌کند (پیش‌فرض). .IP "\fB-q\fR \fIqlen\fR" آستانه پر شدن صف مشکوک vhost. اگر Qemu از طول صف 1024 پشتیبانی می‌کند، این عدد را به 512 افزایش دهید (پیش‌فرض 128). .IP "\fB-us\fR \fIusec\fR" تغییر آستانه مدت‌زمان برای یک تکرار مشکوک (پیش‌فرض 250 میکروثانیه). .RE نکته: ثبت لاگ تکرارهای مشکوک به خودی خود بخش قابل توجهی از چرخه‌های پردازشی یک PMD را مصرف می‌کند که ممکن است در تاریخچه تکرارها نمود پیدا کند. در بدترین حالت، این امر می‌تواند باعث شود OVS تکرار مشکوک دیگری را به دلیل خود عملیات ثبت لاگ شناسایی کند. اگر بیش از 100 تکرار در حوالی یک تکرار مشکوک ثبت شده باشد، OVS به مقادیر ایمن پیش‌فرض بازمی‌گردد (-b 5 -a 5 -ne) تا مانع از آن شود که ثبت وقایع به طور مداوم تکرارهای مشکوک بعدی را تولید کند. . .IP "\fBdpif-netdev/pmd-rxq-show\fR [\fB-pmd\fR \fIcore\fR] [\fIdp\fR]" برای یک یا تمامی ریسه‌های pmd در مسیر داده \fIdp\fR، فهرست شناسه‌های صف همراه با نام درگاه‌هایی را که این ریسه آن‌ها را پایش (poll) می‌کند نشان می‌دهد. . .IP "\fBdpif-netdev/pmd-rxq-rebalance\fR [\fIdp\fR]" صف‌های دریافت (rxqs) را بر اساس میزان مصرف فعلی آن‌ها مجدداً به pmdها در مسیر داده \fIdp\fR اختصاص می‌دهد. . .IP "\fBdpif-netdev/bond-show\fR [\fIdp\fR]" هنگامی که گزینه "other_config:lb-output-action" روی "true" تنظیم شود، مسیر داده فضای کاربری متعادل‌سازی بار پیوندها را مستقیماً انجام می‌دهد به جای اینکه به بازچرخانی جریان متکی باشد (تنها در حالت balance-tcp). هنگامی که چنین باشد، دستور فوق اطلاعات متعادل‌سازی بار پیوندهای پیکربندی‌شده در مسیر داده \fIdp\fR را چاپ می‌کند و رابط متناظر با هر باکت (هش) را نشان می‌دهد. .SS "دستورات DPIF-NETLINK (DPIF-NETLINK COMMANDS)" از این دستورات برای دسترسی به اطلاعات درونی مسیر داده "dpif-netlink" در فضای هسته استفاده می‌شود. . .IP "\fBdpif-netlink/dispatch-mode\fR" حالت توزیع ("dispatch-mode") را برای تمام مسیرهای داده نمایش می‌دهد. .SS "دستورات NETDEV-DPDK (NETDEV-DPDK COMMANDS)" این دستورات درگاه‌های مربوط به DPDK را مدیریت می‌کنند (\fBtype=\fR\fIdpdk*\fR). .IP "\fBnetdev-dpdk/set-admin-state\fR [\fIinterface\fR] \fBup\fR | \fBdown\fR" وضعیت مدیریتی رابط DPDK را به \fBup\fR یا \fBdown\fR تغییر می‌دهد. اگر \fIinterface\fR مشخص نشود، بر تمامی درگاه‌های DPDK اعمال خواهد شد. .IP "\fBnetdev-dpdk/detach\fR \fIpci-address\fR" دستگاه متناظر با شناسه \fIpci-address\fR را از DPDK جدا می‌سازد. از این دستور می‌توان در حالتی استفاده کرد که دستگاه پس از حذف درگاه به صورت خودکار جدا نشده باشد. برای جزئیات به مستندات برنامه رجوع نمایید. .IP "\fBnetdev-dpdk/get-mempool-info\fR [\fIinterface\fR]" اطلاعات اشکال‌زدایی مخزن حافظه مورد استفاده رابط DPDK را چاپ می‌کند. اگر بدون آرگومان فراخوانی شود، اطلاعات تمام مخازن حافظه موجود چاپ خواهد شد. برای آمارهای تکمیلی مخزن حافظه، هنگام ساخت DPDK گزینه \fBCONFIG_RTE_LIBRTE_MEMPOOL_DEBUG\fR را فعال نمایید. .SS "دستورات اشکال‌زدایی مسیر داده (DATAPATH DEBUGGING COMMANDS)" این دستورات مسیرهای داده را بررسی و ویرایش می‌کنند. این دستورات مشابه دستورات \fBovs\-dpctl\fR(8) هستند. دستور \fBdpif/show\fR دارای قابلیت اضافه‌ای نسبت به \fBdpctl/show\fR برای چاپ شماره درگاه‌های OpenFlow است. سایر دستورات افزونه و تکراری بوده و در نگارش‌های آینده حذف خواهند شد. . .IP "\fBdpif/dump\-dps\fR" نام هر یک از مسیرهای داده پیکربندی‌شده را در خطی جداگانه چاپ می‌کند. . .IP "\fBdpif/show\fR" خلاصه‌ای از مسیرهای داده پیکربندی‌شده شامل آمارها و فهرستی از درگاه‌های متصل را نمایش می‌دهد. اطلاعات درگاه شامل شماره درگاه OpenFlow، شماره درگاه مسیر داده، و نوع آن است. (درگاه محلی به عنوان درگاه OpenFlow شماره 65534 شناخته می‌شود.) . .IP "\fBdpif/dump\-flows\fR [\fB\-m\fR] \fIdp\fR" تمامی ورودی‌های جریان موجود در جدول جریان مسیر داده \fIdp\fR را در کنسول چاپ می‌کند. بدون گزینه \fB\-m\fR، خروجی فیلدهایی را که یک جریان به طور کامل عام (wildcard) در نظر گرفته است نادیده می‌گیرد؛ با گزینه \fB\-m\fR تمام فیلدهای عام نیز نمایش داده می‌شوند. .IP این دستور در درجه نخست برای اشکال‌زدایی Open vSwitch مفید است. ورودی‌های جدول جریان که در اینجا نشان داده می‌شوند، ورودی‌های جریان OpenFlow نیستند، بلکه جریان‌های ساده‌تر و متفاوتی هستند که توسط ماژول مسیر داده نگهداری می‌شوند. اگر مایل به مشاهده جریان‌های OpenFlow هستید، از دستور \fBovs\-ofctl dump\-flows\fR استفاده نمایید. . .IP "\fBdpif/del\-flows \fIdp\fR" تمامی ورودی‌های جریان را از جدول جریان مسیر داده \fIdp\fR و پیاده‌سازی زیربنایی مسیر داده (مانند ماژول مسیر داده در هسته) حذف می‌کند. .IP این دستور اصولاً برای اشکال‌زدایی Open vSwitch به کار می‌رود. همان‌طور که در توضیحات \fBdpif/dump\-flows\fR ذکر شد، این ورودی‌ها جریان‌های OpenFlow محسوب نمی‌شوند. .SS "دستورات OFPROTO (OFPROTO COMMANDS)" این دستورات پیاده‌سازی هسته سوئیچ OpenFlow (موسوم به \fBofproto\fR) را مدیریت می‌کنند. . .IP "\fBofproto/list\fR" نام نمونه‌های در حال اجرای ofproto را فهرست می‌کند. این‌ها نام‌هایی هستند که می‌توانند در دستور \fBofproto/trace\fR به کار روند. . .IP "\fBofproto/trace\fR [\fIoptions\fR] [\fIdpname\fR] \fIodp_flow\fR [\fIpacket\fR]" .IQ "\fBofproto/trace\fR [\fIoptions\fR] \fIbridge\fR \fIbr_flow\fR [\fIpacket\fR]" .IQ "\fBofproto/trace\-packet\-out\fR [\fIoptions\fR] [\fIdpname\fR] \fIodp_flow\fR [\fIpacket\fR] \fIactions\fR" .IQ "\fBofproto/trace\-packet\-out\fR [\fIoptions\fR] \fIbridge\fR \fIbr_flow\fR [\fIpacket\fR] \fIactions\fR" مسیر عبور یک بسته فرضی را در داخل \fIswitch\fR ردیابی کرده و مسیر طی‌شده توسط آن را گزارش می‌دهد. پردازش اولیه بسته بر اساس دستور انتخابی متفاوت است: . .RS .IP \(bu دستور \fBofproto/trace\fR بسته را در جدول جریان OpenFlow جستجو می‌کند، دقیقاً مانند اینکه بسته روی یک درگاه OpenFlow وارد شده باشد. . .IP \(bu دستور \fBofproto/trace\-packet\-out\fR عملیات‌های OpenFlow تعیین‌شده در \fIactions\fR را اعمال می‌کند، درست همان‌گونه که اگر بسته، جریان و عملیات‌ها در یک درخواست ``packet-out'' پروتکل OpenFlow مشخص شده بودند. .RE . .IP سرفصل‌ها یا هدرهای بسته (مانند مبدأ و مقصد) و فراداده آن (مانند درگاه ورودی)، که در مجموع «جریان» یا flow آن نامیده می‌شوند، معمولاً تنها مواردی هستند که به منظور ردگیری بسته اهمیت دارند. جریان را می‌توان به روش‌های زیر تعیین نمود: . .RS .IP "\fIdpname\fR \fIodp_flow\fR" مقدار \fIodp_flow\fR جریانی به قالبی است که توسط دستور \fBdump\-flows\fR از ابزار \fBovs\-dpctl\fR(8) چاپ می‌شود. اگر همه پل‌های شما دارای نوع یکسانی باشند (که حالت متداول است)، می‌توانید از ذکر \fIdpname\fR صرف‌نظر کنید، اما اگر پل‌هایی از انواع گوناگون دارید (برای نمونه هم \fBovs-netdev\fR و هم \fBovs-system\fR)، برای رفع ابهام نیاز به تعیین \fIdpname\fR خواهید داشت. . .IP "\fIbridge\fR \fIbr_flow\fR" مقدار \fIbr_flow\fR جریانی به فرمی مشابه با ورودی پذیرفته‌شده توسط دستور \fBadd\-flow\fR در \fBovs\-ofctl\fR(8) است. (این یک جریان OpenFlow نیست: گذشته از تفاوت‌های دیگر، هرگز حاوی عام‌ساز یا wildcard نیست.) مقدار \fIbridge\fR نام پلی است که \fIbr_flow\fR باید درون آن ردگیری شود. .RE . .IP .RS این دستورات از گزینه‌های زیر پشتیبانی می‌کنند: .IP \fB\-\-generate\fR از روی جریان یک بسته تولید می‌کند (برای اطلاعات بیشتر به توضیحات زیر مراجعه نمایید). . .IP "\fB\-\-l7 \fIpayload\fR" .IQ "\fB\-\-l7\-len \fIlength\fR" تنها همراه با گزینه \fB\-\-generate\fR پذیرفته می‌شود. . .IP \fB\-\-consistent\fR تنها توسط دستور \fBofproto\-trace\-packet\-out\fR پذیرفته می‌شود. با این گزینه، دستور اقداماتی (\fIactions\fR) را که با بسته مشخص‌شده ناسازگار هستند رد می‌کند. (نمونه‌ای از ناسازگاری، تلاش برای حذف برچسب VLAN از بسته‌ای است که برچسب VLAN ندارد.) برنامه Open vSwitch از بیشتر انواع ناسازگاری‌ها در OpenFlow 1.0 چشم‌پوشی می‌کند و ناسازگاری‌ها را در نگارش‌های بعدی OpenFlow رد می‌نماید. این گزینه لازم است زیرا دستور به طور معمول ویرایش خاصی از OpenFlow را تحمیل نمی‌کند. یک استثنا این است که وقتی \fIactions\fR شامل عملیاتی باشد که تنها در OpenFlow 1.1 و نسخه‌های بعدی پشتیبانی می‌شود (مانند \fBpush_vlan\fR)، گزینه \fB\-\-consistent\fR به طور خودکار فعال می‌گردد. . .IP "\fB\-\-ct-next\fR \fIflags\fR" هنگامی که جریان ردیابی‌شده موجب راه‌اندازی اقدامات conntrack شود، دستور \fBofproto/trace\fR به طور خودکار خط‌لوله پردازش بسته منشعب‌شده را با وضعیت ct_state تعیین‌شده از سوی کاربر ردگیری می‌کند. این گزینه پرچم‌های ct_state را که ماژول conntrack گزارش خواهد کرد تعیین می‌نماید. پارامتر \fIflags\fR باید فهرستی از پرچم‌های ردیابی اتصال زیر باشد که با کاما یا فاصله از هم تفکیک شده‌اند: . .RS .IP \(bu \fBtrk\fR: برای نشان دادن اینکه ردیابی اتصال صورت گرفته است. . .IP \(bu \fBnew\fR: برای نشان دادن یک جریان جدید. . .IP \(bu \fBest\fR: برای نشان دادن یک جریان برقرارشده و تثبیت‌شده. . .IP \(bu \fBrel\fR: برای نشان دادن یک جریان مرتبط. . .IP \(bu \fBrpl\fR: برای نشان دادن یک جریان پاسخی (reply flow). . .IP \(bu \fBinv\fR: برای نشان دادن مدخل اتصال در یک وضعیت نامعتبر. . .IP \(bu \fBdnat\fR: برای نشان دادن بسته‌ای که نشانی IP مقصد آن تغییر یافته است. . .IP \(bu \fBsnat\fR: برای نشان دادن بسته‌ای که نشانی IP مبدأ آن تغییر یافته است. . .RE . .IP هنگامی که \fB\-\-ct-next\fR مشخص نشده باشد، یا تعداد گزینه‌های \fB\-\-ct-next\fR از اقدامات ct کمتر باشد، پرچم‌ها به طور پیش‌فرض روی \fBtrk,new\fR قرار می‌گیرند. . .RE . .IP در اکثر موارد، کاربر تنها یک جریان را با استفاده از یکی از حالت‌های فوق مشخص می‌کند، اما گاهی ممکن است به جای تنها یک جریان، نیاز به مشخص کردن یک بسته واقعی باشد: . .RS .IP "اثرات جانبی (Side effects)." برخی اقدامات دارای اثرات جانبی هستند. برای نمونه، اقدام \fBnormal\fR می‌تواند جدول یادگیری MAC را به‌روزرسانی کند، و اقدام \fBlearn\fR می‌تواند جداول OpenFlow را تغییر دهد. دستورات trace تنها زمانی اثرات جانبی را اعمال می‌کنند که بسته‌ای واقعی مشخص شده باشد. اگر مایلید اثرات جانبی اعمال شوند، باید یک بسته فراهم کنید. . .IP (اقدامات خروجی مسلماً جزء اثرات جانبی هستند، اما دستورات trace حتی در زمان تعیین بسته واقعی نیز هرگز آن‌ها را اجرا نمی‌کنند.) . .IP "اطلاعات ناقص (Incomplete information)." بیشتر اوقات، Open vSwitch می‌تواند همه ابعاد مسیر یک بسته را تنها با استفاده از جریان درک کند، اما در برخی شرایط خاص نیاز است بخش‌هایی از بسته بررسی شوند که در جریان گنجانده نشده‌اند. هنگامی که چنین وضعیتی رخ دهد و شما بسته‌ای ارائه نکرده باشید، دستور trace به شما اطلاع می‌دهد که نیازمند یک بسته است. .RE . .IP اگر می‌خواهید یک بسته را به عنوان بخشی از عملیات trace بگنجانید، دو روش برای این کار وجود دارد: . .RS .IP \fB\-\-generate\fR این گزینه، که به یکی از روش‌های تعیین جریان افزوده می‌شود، باعث می‌شود Open vSwitch به طور درونی بسته‌ای بر مبنای جریان توصیف‌شده ایجاد کرده و سپس از آن استفاده کند. اگر هدف شما اجرای اثرات جانبی باشد، گزینه \fB\-\-generate\fR ساده‌ترین راه برای انجام آن است، اما راهکار مناسبی برای پر کردن اطلاعات ناقص نیست، زیرا بسته را فقط بر پایه اطلاعات جریان تولید می‌کند و بسته هیچ اطلاعات اضافه‌تری نسبت به خود جریان نخواهد داشت. .IP به طور پیش‌فرض، برای پروتکل‌هایی که محموله L7 دلخواه را مجاز می‌شمارند، بسته تولیدشده دارای 64 بایت محموله است. از \fB\-\-l7\-len\fR برای تغییر طول محموله یا از \fB\-\-l7\fR برای مشخص کردن محتوای دقیق بار داده استفاده کنید. . .IP \fIpacket\fR این روش یک بسته صریح \fIpacket\fR را به صورت توالی‌ای از ارقام هگزادسیمال ارائه می‌دهد. یک فریم اترنت حداقل 14 بایت طول دارد، بنابراین باید حداقل 28 رقم هگزادسیمال وجود داشته باشد. بدیهی است که تایپ کردن ارقام هگزادسیمال با دست دشوار است، بنابراین ابزارهای \fBovs\-pcap\fR(1) و \fBovs\-tcpundump\fR(1) روش‌های ساده‌تری برای این کار فراهم می‌سازند. .IP در این حالت، هدرهای بسته مستقیماً از \fIpacket\fR استخراج می‌شوند، بنابراین \fIodp_flow\fR یا \fIbr_flow\fR باید فقط حاوی فراداده (metadata) باشند. این فراداده می‌تواند شامل موارد زیر باشد: .RS .IP \fIskb_priority\fR اولویت کیفیت خدمات (QoS) بسته. .IP \fIpkt_mark\fR علامت یا مارک بسته. .IP \fIct_state\fR وضعیت اتصال بسته. .IP \fIct_zone\fR منطقه ردیابی اتصال برای بسته. .IP \fIct_mark\fR مارک ردیابی اتصال بسته. .IP \fIct_label\fR برچسب ردیابی اتصال بسته. .IP \fItun_id\fR شناسه تونلی که بسته از آن وارد شده است. .IP \fIin_port\fR درگاهی که بسته از آن دریافت شده است. .RE .RE . .IP مقدار in_port برای قالب نخست نشان‌دهنده شماره درگاه مسیر داده در هسته، و برای قالب دوم شماره درگاه OpenFlow است. شماره‌گذاری این دو نوع درگاه معمولاً با یکدیگر متفاوت بوده و ارتباطی میان آن‌ها وجود ندارد. . . .IP "مثال‌های استفاده:" .RS 4 .PP \fBردیابی یک درخواست اکوی ICMP تک‌بخشی (unicast) روی درگاه ورودی 1 به مقصد آدرس مک 00:00:5E:00:53:01\fR .RS 4 .nf ofproto/trace br in_port=1,icmp,icmp_type=8,\ dl_dst=00:00:5E:00:53:01 .RE .fi .PP \fBردیابی یک پاسخ اکوی ICMP تک‌بخشی روی درگاه ورودی 1 به مقصد آدرس مک 00:00:5E:00:53:01\fR .RS 4 .nf ofproto/trace br in_port=1,icmp,icmp_type=0,\ dl_dst=00:00:5E:00:53:01 .fi .RE .PP \fBردیابی یک درخواست ARP روی درگاه ورودی 1\fR .RS 4 .nf ofproto/trace br in_port=1,arp,arp_op=1 .fi .RE .PP \fBردیابی یک پاسخ ARP روی درگاه ورودی 1\fR .RS 4 .nf ofproto/trace br in_port=1,arp,arp_op=2 .fi .RE .RE .SS "دستورات VLOG (VLOG COMMANDS)" این دستورات تنظیمات ثبت وقایع در \fB\*(PN\fR را مدیریت می‌کنند. .IP "\fBvlog/set\fR [\fIspec\fR]" سطوح ثبت وقایع را تنظیم می‌کند. بدون هیچ پارامتر \fIspec\fR، سطح لاگ را برای تمامی ماژول‌ها و مقصدها روی \fBdbg\fR قرار می‌دهد. در غیر این صورت، \fIspec\fR فهرستی از واژگان است که با فاصله، کاما یا دونقطه از هم جدا شده‌اند، و حداکثر از هر یک از دسته‌های زیر یک مورد را در بر می‌گیرد: . .RS .IP \(bu یک نام ماژول معتبر، همان‌طور که توسط دستور \fBvlog/list\fR در \fBovs\-appctl\fR(8) نمایش داده می‌شود، تغییر سطح لاگ را به ماژول مشخص‌شده محدود می‌کند. . .IP \(bu عبارت‌های \fBsyslog\fR، \fBconsole\fR یا \fBfile\fR، جهت محدودسازی تغییر سطح ثبت وقایع صرفاً به گزارش سیستم، کنسول یا یک فایل. . .IP \(bu عبارت‌های \fBoff\fR، \fBemer\fR، \fBerr\fR، \fBwarn\fR، \fBinfo\fR یا \fBdbg\fR، برای کنترل سطح لاگ. پیام‌های دارای درجه اهمیت مشخص‌شده یا بالاتر ثبت می‌گردند، و پیام‌های با اهمیت کمتر فیلتر خواهند شد. مقدار \fBoff\fR تمام پیام‌ها را فیلتر می‌کند. برای مشاهده تعاریف مربوط به هر سطح لاگ به \fBovs\-appctl\fR(8) رجوع فرمایید. .RE . .IP بزرگی یا کوچکی حروف در \fIspec\fR تأثیری ندارد. .IP صرف‌نظر از سطوح لاگ تنظیم‌شده برای \fBfile\fR، ثبت وقایع در فایل صورت نخواهد گرفت مگر آنکه \fB\*(PN\fR با گزینه \fB\-\-log\-file\fR فراخوانی شده باشد. .IP به منظور حفظ سازگاری با نسخه‌های پیشین OVS، عبارت \fBany\fR به عنوان یک واژه پذیرفته می‌شود اما هیچ تأثیری در عملکرد ندارد. .RE .IP "\fBvlog/set PATTERN:\fIdestination\fB:\fIpattern\fR" الگوی ثبت لاگ را برای \fIdestination\fR روی \fIpattern\fR قرار می‌دهد. برای شرح قواعد نحوی معتبر \fIpattern\fR به \fBovs\-appctl\fR(8) مراجعه کنید. . .IP "\fBvlog/list\fR" ماژول‌های لاگ‌گیری پشتیبانی‌شده و سطوح کنونی آن‌ها را فهرست می‌کند. . .IP "\fBvlog/list-pattern\fR" الگوهای لاگ‌گیری مورد استفاده برای هر مقصد را فهرست می‌نماید. . .IP "\fBvlog/close\fR" باعث می‌شود \fB\*(PN\fR فایل لاگ خود را، در صورت باز بودن، ببندد. (برای بازگشایی مجدد آن بعداً از \fBvlog/reopen\fR استفاده کنید.) . .IP "\fBvlog/reopen\fR" موجب می‌شود \fB\*(PN\fR در صورت باز بودن فایل لاگ آن را ببندد و دوباره باز کند. (این دستور پس از چرخش دوره‌ای فایل‌های لاگ مفید است تا از فایل لاگ جدیدی استفاده شود.) .IP این دستور هیچ تأثیری ندارد مگر آنکه \fB\*(PN\fR همراه با گزینه \fB\-\-log\-file\fR اجرا شده باشد. . .IP "\fBvlog/disable\-rate\-limit \fR[\fImodule\fR]..." .IQ "\fBvlog/enable\-rate\-limit \fR[\fImodule\fR]..." به طور پیش‌فرض، \fB\*(PN\fR نرخی را که طبق آن پیام‌های خاصی ثبت می‌شوند محدود می‌سازد. هنگامی که پیامی با بسامدی فراتر از حد مجاز ظاهر شود، ثبت آن متوقف می‌گردد. این امر موجب صرفه‌جویی در فضای دیسک، خوانایی بهتر گزارش‌ها و افزایش سرعت اجرا می‌شود، اما در برخی مواقع عیب‌یابی نیازمند جزئیات بیشتری است. از این رو، دستور \fBvlog/disable\-rate\-limit\fR اجازه می‌دهد محدودیت نرخ ثبت در سطح هر ماژول مجزا غیرفعال گردد. یک یا چند نام ماژول را، همان‌گونه که توسط دستور \fBvlog/list\fR فهرست شده‌اند، مشخص نمایید. عدم تعیین هیچ نام ماژول یا استفاده از کلمه کلیدی \fBany\fR محدودیت نرخ را برای تمامی ماژول‌های لاگ غیرفعال می‌سازد. . .IP دستور \fBvlog/enable\-rate\-limit\fR، که ساختاری همانند \fBvlog/disable\-rate\-limit\fR دارد، می‌تواند جهت فعال‌سازی دوباره محدودیت نرخی که قبلاً خاموش شده بود به کار رود. .SS "دستورات حافظه (MEMORY COMMANDS)" این دستورات میزان مصرف حافظه را گزارش می‌دهند. . .IP "\fBmemory/show\fR" برخی آمارهای پایه‌ای درباره مصرف حافظه \fB\*(PN\fR را نمایش می‌دهد. برنامه \fB\*(PN\fR همچنین این اطلاعات را اندکی پس از راه‌اندازی و به صورت دوره‌ای با افزایش مصرف حافظه ثبت می‌کند. .SS "دستورات پوشش (COVERAGE COMMANDS)" این دستورات «شمارنده‌های پوشش» (coverage counters) برنامه \fB\*(PN\fR را مدیریت می‌کنند که تعداد دفعات وقوع رخدادهای مشخص در طول مدت زمان اجرای دیمن را می‌شمارند. افزون بر این دستورات، زمانی که \fB\*(PN\fR متوجه شود حلقه اصلی دیمن به طور غیرمعمولی زمان زیادی برای اجرا می‌برد، به طور خودکار مقادیر شمارنده پوشش را در سطح \fBINFO\fR ثبت می‌کند. .PP شمارنده‌های پوشش در درجه اول برای بررسی کارایی و عیب‌یابی کاربرد دارند. .IP "\fBcoverage/show\fR" میانگین نرخ‌ها بر حسب ثانیه را برای چند ثانیه اخیر، دقیقه گذشته و یک ساعت اخیر، به همراه مجموع شمارش تمامی شمارنده‌های پوشش نمایش می‌دهد. .IP "\fBcoverage/read-counter\fR \fIcounter\fR" تعداد کل شمارش را برای شمارنده پوشش تعیین‌شده \fIcounter\fR نمایش می‌دهد. .SS "دستورات تونل‌زنی OPENVSWITCH (OPENVSWITCH TUNNELING COMMANDS)" این دستورات اجزای تونل OVS را بررسی و ویرایش می‌کنند. . .IP "\fBovs/route/add\fR \fIip\fR/\fIplen\fR \fIoutput_bridge\fR \ [\fIgw\fR] [\fBpkt_mark\fR=\fImark\fR] [\fBsrc\fR=\fIsrc_ip\fR] \ [\fBtable\fR=\fIid\fR]" مسیر \fIip\fR/\fIplen\fR را به جدول مسیریابی vswitchd می‌افزاید. پارامتر \fIoutput_bridge\fR باید نام پل OVS باشد. این دستور در صورتی مفید است که مسیرهای کش‌شده OVS نادرست به نظر برسند. می‌توان شناسه جدول غیراستانداردی را تعیین کرد، که در این صورت مسیر به آن جدول مسیریابی اضافه می‌شود. در صورت عدم وجود جدول، ساخته خواهد شد. . .IP "\fBovs/route/show\fR [\fBtable\fR=\fBall\fR|\fIid\fR]" مسیرهای موجود در جدول مسیریابی OVS را چاپ می‌کند. این شامل مسیرهای کش‌شده از جدول مسیریابی سیستم و مسیرهای پیکربندی‌شده توسط کاربر است. به طور پیش‌فرض، محتویات تمامی جداول پیش‌فرض (local، main، default) نمایش داده می‌شود، مگر اینکه از طریق پارامتر \fItable\fR درخواست دیگری شده باشد. در این حالت محتویات شناسه جدول مشخص یا تمام جداول مسیریابی چاپ خواهد شد. . .IP "\fBovs/route/del\fR \fIip\fR/\fIplen\fR [\fBpkt_mark\fR=\fImark\fR] \ [\fBtable\fR=\fIid\fR]" مسیر ip/plen را از جدول مسیریابی OVS حذف می‌کند. به طور پیش‌فرض جدول مسیریابی استاندارد به کار گرفته می‌شود، یا در صورت ارائه شناسه از طریق پارامتر \fItable\fR، یک جدول سفارشی خاص استفاده خواهد شد. . .IP "\fBovs/route/lookup\fR \fIip_addr\fR [\fBpkt_mark\fR=\fImark\fR] \ [\fBsrc\fR=\fIsrc_ip\fR]" عملیات جستجوی مسیر را برای آدرس IP مقصد مشخص‌شده در جداول مسیریابی OVS انجام می‌دهد و اطلاعات مسیر منطبق را چاپ می‌کند. جستجو می‌تواند با استفاده از پارامترهای اضافی دقیق‌تر شود: \fIpkt_mark\fR و \fIsrc\fR. . .IP "\fBovs/route/rule/show\fR [\fB-6\fR]" قواعد مسیریابی در OVS را چاپ می‌کند. این شامل قواعد مسیریابی ذخیره‌شده از پایگاه‌داده خط‌مشی مسیریابی سیستم و قواعد مسیریابی پیکربندی‌شده توسط کاربر است. به طور پیش‌فرض فقط قواعد IPv4 نمایش داده می‌شوند. برای نمایش قواعد IPv6 گزینه \fB-6\fR الزامی است. . .IP "\fBovs/route/rule/add\fR [\fB-6\fR] [\fBnot\fR] \ \fBfrom\fR=\fBall\fR|\fIip/plen\fR [\fBprio\fR=\fInum\fR] \ \fBtable\fR=\fBlocal\fR|\fBmain\fR|\fBdefault\fR|\fIid\fR" قاعده مسیریابی پیکربندی‌شده توسط کاربر را به vswitchd اضافه می‌کند. این دستور می‌تواند برای ارجاع به جداول مسیریابی غیراستاندارد جهت پیکربندی خط‌مشی‌های پیشرفته مسیریابی، برای نمونه تطبیق بر روی آدرس IP مبدأ، سودمند باشد. اگر اولویت تعیین نشود، کمترین اولویت استفاده‌نشده به صورت خودکار انتخاب خواهد شد. چند قاعده با اولویت یکسان می‌توانند وجود داشته باشند. قواعد پیکربندی‌شده توسط کاربر و قواعد کش‌شده سیستم در کنار یکدیگر همزیستی دارند. . .IP "\fBovs/route/rule/del\fR [\fB-6\fR] [\fBnot\fR] \ \fBfrom\fR=\fBall\fR|\fIip/plen\fR [\fBprio\fR=\fInum\fR] \ \fBtable\fR=\fBlocal\fR|\fBmain\fR|\fBdefault\fR|\fIid\fR" قاعده مسیریابی پیکربندی‌شده توسط کاربر را از vswitchd حذف می‌کند. اگر اولویت مشخص نشود، نخستین قاعده منطبق برای حذف انتخاب خواهد شد. . .IP "\fBtnl/neigh/show\fR" .IP "\fBtnl/arp/show\fR" سامانه OVS حافظه پنهان ARP را با شنود پیام‌ها می‌سازد. این دستور جدول کش ARP را نمایش می‌دهد. . .IP "\fBtnl/neigh/set\fR \fIbridge\fR \fIip\fR \fImac\fR" .IP "\fBtnl/arp/set\fR \fIbridge\fR \fIip\fR \fImac\fR" یک ورودی حافظه پنهان ARP را در پل \fIbridge\fR اضافه یا ویرایش می‌کند، که \fIip\fR را به \fImac\fR می‌نگارد. . .IP "\fBtnl/neigh/flush\fR" .IP "\fBtnl/arp/flush\fR" تخلیه جدول ARP. . .IP "\fBtnl/neigh/aging\fR [\fIseconds\fR]" .IP "\fBtnl/arp/aging\fR [\fIseconds\fR]" زمان انقضا و کهنگی (aging) را تغییر می‌دهد. مقادیر پذیرفته‌شده برای \fIseconds\fR بین 1 تا 3600 هستند. ورودی‌های جدید مقدار مشخص‌شده در \fIseconds\fR را دریافت می‌کنند. برای ورودی‌های موجود، زمان کهنگی تنها در صورتی به‌روزرسانی می‌شود که انقضای فعلی بزرگ‌تر از \fIseconds\fR باشد. .IP اگر بدون آرگومان استفاده شود، مقدار کهنگی فعلی را چاپ می‌کند. . .IP "\fBtnl/egress_port_range\fR [\fInum1\fR] [\fInum2\fR]" محدوده پورت مبدأ UDP را که برای تونل‌های مبتنی بر UDP استفاده می‌شود تعیین می‌کند؛ مانند VxLAN. در صورت فراخوانی بدون آرگومان، این دستور محدوده جاری مورد استفاده را چاپ می‌نماید. . .SH "پیاده‌سازی OPENFLOW (OPENFLOW IMPLEMENTATION)" . .PP این بخش جنبه‌هایی از OpenFlow را مستند می‌کند که مشخصات فنی OpenFlow مستندسازی آن‌ها را الزامی کرده است. . .SS "بافربندی بسته‌ها (Packet buffering)" مشخصات فنی OpenFlow، نگارش 1.2، بیان می‌کند: . .IP از سوئیچ‌هایی که بافربندی را پیاده‌سازی می‌کنند انتظار می‌رود از طریق مستندات، هم میزان بافربندی موجود و هم مدت زمان پیش از امکان استفاده مجدد از بافرها را شفاف سازند. . .PP سامانه Open vSwitch هیچ‌گونه بافر بسته‌ای را نگهداری نمی‌کند. . .SS "طول عمر بسته تغییرات (Bundle lifetime)" مشخصات فنی OpenFlow، نگارش 1.4، بیان می‌کند: . .IP اگر سوئیچ در یک بازه زمانی تعریف‌شده بیش از 1 ثانیه هیچ پیام OFPT_BUNDLE_CONTROL یا OFPT_BUNDLE_ADD_MESSAGE برای یک شناسه بازشده bundle_id دریافت نکند، می‌تواند یک پیام ofp_error_msg با نوع OFPET_BUNDLE_FAILED و کد OFPBFC_TIMEOUT ارسال نماید. اگر سوئیچ به جز درخواست و پاسخ‌های echo در بازه زمانی تعیین‌شده فراتر از 1 ثانیه هیچ پیام جدیدی در یک بسته تغییرات دریافت نکند، می‌تواند یک پیام ofp_error_msg با نوع OFPET_BUNDLE_FAILED و کد OFPBFC_TIMEOUT صادر کند. . .PP سامانه Open vSwitch طول عمر پیش‌فرض بیکاری بسته تغییرات را 10 ثانیه در نظر می‌گیرد. (این مقدار از طریق \fBother-config:bundle-idle-timeout\fR در جدول \fBOpen_vSwitch\fR قابل پیکربندی است. جهت جزئیات به \fBovs-vswitchd.conf.db\fR(5) مراجعه کنید.) . .SH "محدودیت‌ها (LIMITS)" . .PP بر این باوریم که این محدودیت‌ها در زمان نگارش این متن دقیق هستند. این محدودیت‌ها بهره‌گیری از مسیر داده ماژول هسته لینوکس را مفروض می‌دانند. . .IP \(bu برنامه \fBovs\-vswitchd\fR که از طریق \fBovs\-ctl\fR(8) راه‌اندازی شده باشد، محدودیت 65535 توصیف‌کننده فایل را فراهم می‌آورد. محدودیت در تعداد پل‌ها و درگاه‌ها بر اساس میزان در دسترس بودن توصیف‌کننده‌های فایل تعیین می‌شود. با مسیر داده هسته لینوکس، ایجاد یک پل منفرد سه توصیف‌کننده فایل مصرف می‌کند و هر درگاه یک توصیف‌کننده فایل اضافی مصرف می‌نماید. سایر سیستم‌عامل‌ها و بسترها ممکن است محدودیت‌های متفاوتی داشته باشند. . .IP \(bu تعداد 8192 ورودی یادگیری MAC به ازای هر پل، به صورت پیش‌فرض. (این مقدار از طریق \fBother\-config:mac\-table\-size\fR در جدول \fBBridge\fR قابل تنظیم است. برای جزئیات به \fBovs\-vswitchd.conf.db\fR(5) مراجعه نمایید.) . .IP \(bu جریان‌های هسته تنها توسط حافظه در دسترس هسته سیستم‌عامل محدود می‌شوند. کارایی سیستم فراتر از 1,048,576 جریان هسته به ازای هر پل در یک هسته 32 بیتی، و فراتر از 262,144 جریان در یک هسته 64 بیتی افت خواهد کرد. (\fBovs\-vswitchd\fR هرگز نباید مقداری حتی نزدیک به این تعداد جریان را نصب کند.) . .IP \(bu جریان‌های OpenFlow تنها توسط حافظه در دسترس محدود می‌گردند. کارایی سیستم به طور خطی با تعداد الگوهای عام (wildcard) یکتا تغییر می‌کند. بدین معنا که یک جدول OpenFlow که شامل جریان‌های فراوانی است که همگی بر فیلدهای یکسان و با الگوی مشابه تطبیق می‌یابند زمان جستجوی ثابتی (constant-time) دارد، اما جدولی که حاوی جریان‌های متعدد منطبق بر فیلدهای متفاوت باشد، نیازمند زمان جستجوی متناسب و خطی با تعداد جریان‌ها خواهد بود. . .IP \(bu حداکثر 255 درگاه به ازای هر پل در پروتکل درخت پوشا 802.1D شرکت می‌کنند. . .IP \(bu تعداد 32 آینه (mirror) به ازای هر پل. . .IP \(bu تعداد 15 بایت برای نام یک درگاه، برای درگاه‌هایی که در هسته لینوکس پیاده‌سازی شده‌اند. درگاه‌های پیاده‌سازی‌شده در فضای کاربری، مانند درگاه‌های پچ (patch ports)، این محدودیت طول اختیاری را ندارند. پروتکل OpenFlow نیز نام درگاه‌ها را به 15 بایت محدود می‌کند. . .SH "همچنین ببینید (SEE ALSO)" .BR ovs\-appctl (8)، .BR ovsdb\-server (1).