.\" Man page generated from reStructuredText .\" by the Docutils 0.23 manpage writer. . . .nr rst2man-indent-level 0 . .de1 rstReportMargin \\$1 \\n[an-margin] level \\n[rst2man-indent-level] level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] - \\n[rst2man-indent0] \\n[rst2man-indent1] \\n[rst2man-indent2] .. .de1 INDENT .\" .rstReportMargin pre: . RS \\$1 . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] . nr rst2man-indent-level +1 .\" .rstReportMargin post: .. .de UNINDENT . RE .\" indent \\n[an-margin] .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] .nr rst2man-indent-level -1 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .TH "bpftool-cgroup" "8" "" "" .SH "نام (NAME)" bpftool-cgroup \- ابزار بازرسی و دستکاری برنامه‌های bpf در cgroupها .SH "خلاصه دستور (SYNOPSIS)" .sp \fBbpftool\fP [\fIOPTIONS\fP] \fBcgroup\fP \fICOMMAND\fP .sp \fIOPTIONS\fP := { { \fB\-j\fP | \fB\-\-json\fP } [{ \fB\-p\fP | \fB\-\-pretty\fP }] | { \fB\-d\fP | \fB\-\-debug\fP } | { \fB\-f\fP | \fB\-\-bpffs\fP } } .sp \fICOMMANDS\fP := { \fBshow\fP | \fBlist\fP | \fBtree\fP | \fBattach\fP | \fBdetach\fP | \fBhelp\fP } .SH "دستورهای CGROUP (CGROUP COMMANDS)" .nf \fBbpftool\fP \fBcgroup\fP { \fBshow\fP | \fBlist\fP } \fICGROUP\fP [\fBeffective\fP] \fBbpftool\fP \fBcgroup tree\fP [\fICGROUP_ROOT\fP] [\fBeffective\fP] \fBbpftool\fP \fBcgroup attach\fP \fICGROUP\fP \fIATTACH_TYPE\fP \fIPROG\fP [\fIATTACH_FLAGS\fP] \fBbpftool\fP \fBcgroup detach\fP \fICGROUP\fP \fIATTACH_TYPE\fP \fIPROG\fP \fBbpftool\fP \fBcgroup help\fP \fIPROG\fP := { \fBid\fP \fIPROG_ID\fP | \fBpinned\fP \fIFILE\fP | \fBtag\fP \fIPROG_TAG\fP | \fBname\fP \fIPROG_NAME\fP } \fIATTACH_TYPE\fP := { \fBcgroup_inet_ingress\fP | \fBcgroup_inet_egress\fP | .in +2 \fBcgroup_inet_sock_create\fP | \fBcgroup_sock_ops\fP | \fBcgroup_device\fP | \fBcgroup_inet4_bind\fP | \fBcgroup_inet6_bind\fP | \fBcgroup_inet4_post_bind\fP | \fBcgroup_inet6_post_bind\fP | \fBcgroup_inet4_connect\fP | \fBcgroup_inet6_connect\fP | \fBcgroup_unix_connect\fP | \fBcgroup_inet4_getpeername\fP | \fBcgroup_inet6_getpeername\fP | \fBcgroup_unix_getpeername\fP | \fBcgroup_inet4_getsockname\fP | \fBcgroup_inet6_getsockname\fP | \fBcgroup_unix_getsockname\fP | \fBcgroup_udp4_sendmsg\fP | \fBcgroup_udp6_sendmsg\fP | \fBcgroup_unix_sendmsg\fP | \fBcgroup_udp4_recvmsg\fP | \fBcgroup_udp6_recvmsg\fP | \fBcgroup_unix_recvmsg\fP | \fBcgroup_sysctl\fP | \fBcgroup_getsockopt\fP | \fBcgroup_setsockopt\fP | \fBcgroup_inet_sock_release\fP } .in -2 \fIATTACH_FLAGS\fP := { \fBmulti\fP | \fBoverride\fP } .fi .sp .SH "توضیحات (DESCRIPTION)" .INDENT 0.0 .TP .B bpftool cgroup { show | list } \fICGROUP\fP [effective] فهرست کردن تمام برنامه‌های متصل‌شده به cgroup مشخص‌شده با \fICGROUP\fP\&. .sp خروجی با شناسه برنامه (program ID) آغاز شده و به دنبال آن نوع اتصال، فلگ‌های اتصال و نام برنامه می‌آید. .sp اگر \fBeffective\fP مشخص شده باشد، برنامه‌های موثر (effective) که برای رویدادهای درون یک cgroup اجرا می‌شوند دریافت می‌گردند. این شامل برنامه‌های ارث‌بری‌شده به همراه برنامه‌های متصل‌شده است. .TP .B bpftool cgroup tree [\fICGROUP_ROOT\fP] [effective] پیمایش روی تمام cgroupها در \fICGROUP_ROOT\fP و فهرست کردن تمام برنامه‌های متصل‌شده. اگر \fICGROUP_ROOT\fP مشخص نشده باشد، bpftool از نقطه اتصال (mountpoint) مربوط به cgroup v2 استفاده می‌کند. .sp خروجی مشابه دستورهای cgroup show/list است: با مسیر مطلق cgroup شروع می‌شود و به دنبال آن شناسه برنامه، نوع اتصال، فلگ‌های اتصال و نام برنامه می‌آید. .sp اگر \fBeffective\fP مشخص شده باشد، برنامه‌های موثر که برای رویدادهای درون یک cgroup اجرا می‌شوند دریافت می‌گردند. این شامل برنامه‌های ارث‌بری‌شده به همراه برنامه‌های متصل‌شده است. .TP .B bpftool cgroup attach \fICGROUP\fP \fIATTACH_TYPE\fP \fIPROG\fP [\fIATTACH_FLAGS\fP] اتصال برنامه \fIPROG\fP به cgroup مشخص‌شده با \fICGROUP\fP با نوع اتصال \fIATTACH_TYPE\fP و \fIATTACH_FLAGS\fP اختیاری. .sp مقدار \fIATTACH_FLAGS\fP می‌تواند یکی از این موارد باشد: \fBoverride\fP اگر یک زیر-cgroup برنامه‌ای از bpf نصب کند، برنامه موجود در این cgroup جای خود را به برنامه زیر-cgroup می‌دهد؛ \fBmulti\fP اگر یک زیر-cgroup برنامه‌ای از bpf نصب کند، برنامه آن cgroup علاوه بر برنامه این cgroup اجرا می‌شود. .sp فقط یک برنامه مجاز است به یک cgroup بدون فلگ‌های اتصال یا با فلگ \fBoverride\fP متصل شود. اتصال برنامه‌ای دیگر، برنامه قدیمی را آزاد کرده و برنامه جدید را متصل می‌کند. .sp اتصال چندین برنامه به یک cgroup با فلگ \fBmulti\fP مجاز است. برنامه‌ها به ترتیب ورود (FIFO) اجرا می‌شوند (برنامه‌هایی که اول متصل شده‌اند، اول اجرا می‌شوند). .sp فلگ‌های غیرپیش‌فرض \fIATTACH_FLAGS\fP از نسخه ۴.۱۴ هسته لینوکس به بعد پشتیبانی می‌شوند. .sp مقدار \fIATTACH_TYPE\fP می‌تواند یکی از موارد زیر باشد: .INDENT 7.0 .IP \(bu 2 \fBingress\fP مسیر ورودی سوکت inet (از ۴.۱۰) .IP \(bu 2 \fBegress\fP مسیر خروجی سوکت inet (از ۴.۱۰) .IP \(bu 2 \fBsock_create\fP باز کردن یک سوکت inet (از ۴.۱۰) .IP \(bu 2 \fBsock_ops\fP عملیات‌های گوناگون سوکت (از ۴.۱۲) .IP \(bu 2 \fBdevice\fP دسترسی دستگاه (از ۴.۱۵) .IP \(bu 2 \fBbind4\fP فراخوانی bind(2) برای یک سوکت inet4 (از ۴.۱۷) .IP \(bu 2 \fBbind6\fP فراخوانی bind(2) برای یک سوکت inet6 (از ۴.۱۷) .IP \(bu 2 \fBpost_bind4\fP بازگشت از bind(2) برای یک سوکت inet4 (از ۴.۱۷) .IP \(bu 2 \fBpost_bind6\fP بازگشت از bind(2) برای یک سوکت inet6 (از ۴.۱۷) .IP \(bu 2 \fBconnect4\fP فراخوانی connect(2) برای یک سوکت inet4 (از ۴.۱۷) .IP \(bu 2 \fBconnect6\fP فراخوانی connect(2) برای یک سوکت inet6 (از ۴.۱۷) .IP \(bu 2 \fBconnect_unix\fP فراخوانی connect(2) برای یک سوکت unix (از ۶.۷) .IP \(bu 2 \fBsendmsg4\fP فراخوانی sendto(2)، sendmsg(2)، sendmmsg(2) برای یک سوکت متصل‌نشده udp4 (از ۴.۱۸) .IP \(bu 2 \fBsendmsg6\fP فراخوانی sendto(2)، sendmsg(2)، sendmmsg(2) برای یک سوکت متصل‌نشده udp6 (از ۴.۱۸) .IP \(bu 2 \fBsendmsg_unix\fP فراخوانی sendto(2)، sendmsg(2)، sendmmsg(2) برای یک سوکت متصل‌نشده unix (از ۶.۷) .IP \(bu 2 \fBrecvmsg4\fP فراخوانی recvfrom(2)، recvmsg(2)، recvmmsg(2) برای یک سوکت متصل‌نشده udp4 (از ۵.۲) .IP \(bu 2 \fBrecvmsg6\fP فراخوانی recvfrom(2)، recvmsg(2)، recvmmsg(2) برای یک سوکت متصل‌نشده udp6 (از ۵.۲) .IP \(bu 2 \fBrecvmsg_unix\fP فراخوانی recvfrom(2)، recvmsg(2)، recvmmsg(2) برای یک سوکت متصل‌نشده unix (از ۶.۷) .IP \(bu 2 \fBsysctl\fP دسترسی sysctl (از ۵.۲) .IP \(bu 2 \fBgetsockopt\fP فراخوانی getsockopt (از ۵.۳) .IP \(bu 2 \fBsetsockopt\fP فراخوانی setsockopt (از ۵.۳) .IP \(bu 2 \fBgetpeername4\fP فراخوانی getpeername(2) برای یک سوکت inet4 (از ۵.۸) .IP \(bu 2 \fBgetpeername6\fP فراخوانی getpeername(2) برای یک سوکت inet6 (از ۵.۸) .IP \(bu 2 \fBgetpeername_unix\fP فراخوانی getpeername(2) برای یک سوکت unix (از ۶.۷) .IP \(bu 2 \fBgetsockname4\fP فراخوانی getsockname(2) برای یک سوکت inet4 (از ۵.۸) .IP \(bu 2 \fBgetsockname6\fP فراخوانی getsockname(2) برای یک سوکت inet6 (از ۵.۸) .IP \(bu 2 \fBgetsockname_unix\fP فراخوانی getsockname(2) برای یک سوکت unix (از ۶.۷) .IP \(bu 2 \fBsock_release\fP بستن یک سوکت inet در فضای کاربری (از ۵.۹) .UNINDENT .TP .B bpftool cgroup detach \fICGROUP\fP \fIATTACH_TYPE\fP \fIPROG\fP جدا کردن \fIPROG\fP از cgroup با مقدار \fICGROUP\fP و نوع اتصال \fIATTACH_TYPE\fP\&. .TP .B bpftool prog help چاپ پیام راهنمای کوتاه. .UNINDENT .SH "گزینه‌ها (OPTIONS)" .INDENT 0.0 .TP .B \-h\fP,\fB \-\-help چاپ پیام راهنمای کوتاه (مشابه \fBbpftool help\fP). .TP .B \-V\fP,\fB \-\-version چاپ شماره نسخه bpftool (مشابه \fBbpftool version\fP)، شماره نسخه libbpf در حال استفاده، و قابلیت‌های اختیاری که هنگام کامپایل bpftool گنجانده شده‌اند. قابلیت‌های اختیاری شامل پیوند با LLVM یا libbfd برای فراهم کردن دیس‌اسمبلر برای برنامه‌های کامپایل‌شده به روش JIT (\fBbpftool prog dump jited\fP) و استفاده از اسکلت‌های BPF (برخی ویژگی‌ها مانند \fBbpftool prog profile\fP یا نمایش pidهای مرتبط با اشیاء BPF ممکن است به آن متکی باشند). .TP .B \-j\fP,\fB \-\-json تولید خروجی در قالب JSON. برای دستورهایی که نمی‌توانند JSON تولید کنند، این گزینه هیچ تاثیری ندارد. .TP .B \-p\fP,\fB \-\-pretty تولید خروجی JSON خوانا برای انسان. متضمن \fB\-j\fP است. .TP .B \-d\fP,\fB \-\-debug چاپ تمام لاگ‌های موجود، حتی اطلاعات سطح اشکال‌زدایی (debug). این شامل لاگ‌های libbpf و همچنین بخش اعتبارسنج (verifier) هنگام تلاش برای بارگذاری برنامه‌ها می‌شود. .UNINDENT .INDENT 0.0 .TP .B \-f\fP,\fB \-\-bpffs نمایش نام فایل برنامه‌های سنجاق‌شده (pinned). .UNINDENT .SH "مثال‌ها (EXAMPLES)" .nf \fB# mount \-t bpf none /sys/fs/bpf/\fP \fB# mkdir /sys/fs/cgroup/test.slice\fP \fB# bpftool prog load ./device_cgroup.o /sys/fs/bpf/prog\fP \fB# bpftool cgroup attach /sys/fs/cgroup/test.slice/ device id 1 allow_multi\fP .fi .sp .sp \fB# bpftool cgroup list /sys/fs/cgroup/test.slice/\fP .INDENT 0.0 .INDENT 3.5 .sp .EX ID AttachType AttachFlags Name 1 device allow_multi bpf_prog1 .EE .UNINDENT .UNINDENT .nf \fB# bpftool cgroup detach /sys/fs/cgroup/test.slice/ device id 1\fP \fB# bpftool cgroup list /sys/fs/cgroup/test.slice/\fP .fi .sp .INDENT 0.0 .INDENT 3.5 .sp .EX ID AttachType AttachFlags Name .EE .UNINDENT .UNINDENT .SH "همچنین ببینید (SEE ALSO)" .sp \fBbpf\fP(2), \fBbpf\-helpers\fP(7), \fBbpftool\fP(8), \fBbpftool\-btf\fP(8), \fBbpftool\-feature\fP(8), \fBbpftool\-gen\fP(8), \fBbpftool\-iter\fP(8), \fBbpftool\-link\fP(8), \fBbpftool\-map\fP(8), \fBbpftool\-net\fP(8), \fBbpftool\-perf\fP(8), \fBbpftool\-prog\fP(8), \fBbpftool\-struct_ops\fP(8), \fBbpftool\-token\fP(8)