bpftool-iter(8) System Manager's Manual bpftool-iter(8)

bpftool-iter - ابزاری برای ایجاد تکرارکننده‌های BPF (پیمایش‌گرها)

bpftool [OPTIONS] iter COMMAND

OPTIONS := { { -j | --json } [{ -p | --pretty }] | { -d | --debug } }

COMMANDS := { pin | help }

bpftool iter pin OBJ PATH [map MAP]
bpftool iter help
OBJ := /a/file/of/bpf_iter_target.o
MAP := { id MAP_ID | pinned FILE }

یک تکرارکننده BPF، پیمایش در هسته روی داده‌های خاص هسته (مانند tasks، bpf_maps و غیره) را با یک برنامه bpf که برای هر شیء داده هسته فراخوانی می‌شود (مانند یک task، یک bpf_map و غیره) ترکیب می‌کند. فضای کاربری می‌تواند خروجی تکرارکننده هسته را از طریق فراخوانی سیستمی read() بخواند.

دستور pin یک تکرارکننده bpf از OBJ ایجاد کرده و آن را به PATH سنجاق (pin) می‌کند. مسیر PATH باید در نقطه اتصال bpffs قرار داشته باشد. این مسیر نباید شامل نویسه نقطه ('.') باشد، زیرا این نویسه برای توسعه‌های آینده bpffs رزرو شده است.

تکرارکننده bpf برای عناصر نگاشت به یک پارامتر اضافی MAP نیاز دارد تا برنامه bpf بتواند روی عناصر آن نگاشت پیمایش کند. کاربر می‌تواند یک برنامه bpf در هسته داشته باشد تا به ازای هر عنصر نگاشت اجرا شده و بررسی، پالایش (فیلتر کردن)، تجمیع و غیره را بدون نیاز به کپی کردن داده‌ها به فضای کاربری انجام دهد.

کاربر سپس می‌تواند با دستور cat PATH خروجی تکرارکننده bpf را مشاهده کند.

چاپ پیام راهنمای کوتاه.

چاپ پیام راهنمای کوتاه (مشابه bpftool help).
چاپ شماره نسخه bpftool (مشابه bpftool version)، شماره نسخه libbpf در حال استفاده، و ویژگی‌های اختیاری که هنگام کامپایل bpftool گنجانده شده‌اند. ویژگی‌های اختیاری شامل پیوند با LLVM یا libbfd برای ارائه دیزاسمبلر برای برنامه‌های JIT شده (bpftool prog dump jited) و استفاده از اسکلت‌های BPF (برخی ویژگی‌ها مانند bpftool prog profile یا نمایش pidهای مرتبط با شیءهای BPF ممکن است به آن متکی باشند) می‌شود.
تولید خروجی JSON. برای دستوراتی که نمی‌توانند JSON تولید کنند، این گزینه هیچ تأثیری ندارد.
تولید خروجی JSON خوانا برای انسان. مستلزم -j است.
چاپ تمام لاگ‌های موجود، حتی اطلاعات سطح اشکال‌زدایی (debug-level). این شامل لاگ‌های libbpf و همچنین وارسی‌کننده (verifier) هنگام تلاش برای بارگذاری برنامه‌ها می‌شود.

# bpftool iter pin bpf_iter_netlink.o /sys/fs/bpf/my_netlink

ایجاد یک تکرارکننده bpf مبتنی بر فایل از bpf_iter_netlink.o و سنجاق کردن (pin) آن
به /sys/fs/bpf/my_netlink

# bpftool iter pin bpf_iter_hashmap.o /sys/fs/bpf/my_hashmap map id 20

ایجاد یک تکرارکننده bpf مبتنی بر فایل از bpf_iter_hashmap.o و نگاشت با
شناسه 20، و سنجاق کردن (pin) آن به /sys/fs/bpf/my_hashmap

bpf(2), bpf-helpers(7), bpftool(8), bpftool-btf(8), bpftool-cgroup(8), bpftool-feature(8), bpftool-gen(8), bpftool-link(8), bpftool-map(8), bpftool-net(8), bpftool-perf(8), bpftool-prog(8), bpftool-struct_ops(8), bpftool-token(8)