Публикации по теме 'bpf'


Загадка пакетов TCP и eBPF
В этом посте мы поговорим о структуре сетевых пакетов, в частности о пакете TCP, и о том, как и где мы можем его настроить. В дополнение к этому мы рассмотрим, как пользовательские данные затем могут быть декодированы на принимающей стороне и почему это может быть потенциально полезно для реального приложения. Мы начнем с базовой теории и перейдем к примерам кода, и, надеюсь, к концу этого поста вы вдохновитесь узнать еще больше. Сначала немного об основах TCP, но не о протоколе, а о..

Расширение Vector с помощью eBPF для проверки производительности хоста и контейнера
от Джейсона Коха , с Мартином Спайером , Бренданом Греггом , Эд Хантером Улучшение инструментов, доступных нашим инженерам, чтобы помочь им диагностировать, упорядочивать и решать проблемы производительности программного обеспечения в облаке, является ключевой целью группы инженеров по обеспечению производительности облака в Netflix. Сегодня мы рады сообщить широкому сообществу о тепловых картах задержки и улучшенной поддержке контейнеров для нашего решения для мониторинга на хосте..

Вопросы по теме 'bpf'

чтение файла pcap в С++
Я пытаюсь прочитать файл pcap на С++ (я использую VS 2008), и у меня возникают следующие ошибки: 1) ошибка C2011: «bpf_program»: переопределение типа «struct». 2) ошибка C2011: «bpf_insn»: переопределение типа «struct» Я предполагаю, что...
883 просмотров
schedule 19.11.2022

TCP-соединения фильтра BPF
Я пытаюсь захватить из файла pcap соединения, которые начинаются правильно (с 3-сторонним протоколом: syn, syn-ack, ack) и заканчиваются правильно. To capture connections that starts correctly I use the following filter: (tcp.flags.syn == 1) ||...
872 просмотров
schedule 08.08.2023

Когда свободное пространство памяти 15 используется в BPF (Berkeley Packet Filter) или tcpdump?
Мой вопрос касается команды tcpdump. Команда «tcpdump -i eth1 -d» перечисляет инструкции по сборке, участвующие в фильтре. Мне любопытно видеть, что ни одна инструкция не обращается к M [15] (слот памяти 15). Может кто-нибудь сообщить мне,...
136 просмотров
schedule 06.08.2023

Linux TC eBPF и параллелизм
Есть ли ограничение на количество экземпляров программ eBPF, которые ядро ​​​​может запускать одновременно на нескольких процессорах (аналогично проблеме с Python GIL) В частности, могут ли программы eBPF tc работать на нескольких процессорах...
520 просмотров
schedule 07.06.2023

не удалось создать карту: 22 Неверный аргумент
Я скомпилировал примеры программ bpf, представленные здесь — https://github.com/torvalds/linux/tree/master/samples/bpf , следуя инструкциям. Для большей части программы во время выполнения я получаю эту ошибку: sudo ./sockex1 failed to create...
1043 просмотров
schedule 22.05.2023

внешний заголовочный файл не найден во время компиляции
Я пытаюсь скомпилировать образцы bpf вне дерева. Вот моя папка: . ├── bpf_load.c ├── bpf_load.h ├── bpf_load.o ├── libbpf.h ├── Makefile ├── xdp1 ├── xdp1_kern.c ├── xdp1_kern.o ├── xdp1_user.c ├── xdp2_kern.c └── xdp2_user.c А это Makefile:...
790 просмотров
schedule 25.10.2022

Прикрепите байт-код eBPF к сокету SOCK_STREAM
Я использую https://elixir.bootlin.com/linux/v4.9.137/source/samples/bpf/sockex3_kern.c этот пример, но вместо сокета RAW я использую обычный AF_INET6/SOCK_STREAM и BPF_PROG_TYPE_SOCKET_FILTER. Я не могу понять, почему load_half используется для...
340 просмотров
schedule 13.07.2023

Как получить доступ к регистрам xmm в программе eBPF
Я пытаюсь использовать bcc-tools для отслеживания пользовательского процесса с помощью uprobe, но некоторые функции принимают аргументы с плавающей запятой. Согласно x86_64 ABI, эти значения обычно передаются в регистрах xmm. Функции eBPF в bcc...
191 просмотров
schedule 01.12.2022

Разрешены ли циклы в программах Linux BPF?
Я думаю о решении репликации пакетов в ядре и пересылке на 5 хостов (unicast). Планируется использовать для этого eBPF/XDP. Я пытаюсь зациклиться 5 раз, и внутри цикла я планирую клонировать пакет, изменить IP-адрес DST, обновить cksum и отправить...
1470 просмотров
schedule 07.02.2023

Основное отличие загрузчиков ebpf
Если я правильно понял, есть разные загрузчики ebpf: bpf_load.c в исходный код ядра libbpf бпфтул tc ... ‹-- другие? Каковы основные различия между ними? Всегда ли они взаимозаменяемы? Должен ли я всегда предпочитать libbpf?
206 просмотров
schedule 28.04.2023

Реализует ли BPF_PROG_RUN резервный интерпретатор ebpf?
https://github.com/torvalds/linux/blob/33920f1ec5bf47c5c0a1d2113989bdd9dfb3fae9/include/linux/filter.h#L556-L571 это реализация резервного интерпретатора ebpf?
106 просмотров
schedule 09.11.2022

Зонд EBPF для скомпилированной встроенной функции
Я хотел бы создать программу EBPF для Golang, которая записывает, когда функция вводится и возвращается. Некоторые проблемы у меня есть: A. Функции встроены. B. Замыкания анонимны. C. Чтение структур Golang. Вопросы: A. В моем...
85 просмотров
schedule 10.07.2022

AF_XDP не работает на ядре `4.18.0-25-generic`
В настоящее время я пытаюсь запустить AF_XDP-Tutorial отсюда: https://github.com/xdp-project/xdp-tutorial/tree/master/advanced03-AF_XDP Я смог его скомпилировать, но если я попытаюсь поместить xdp-код в ядро ​​​​через: sudo ./af_xdp_user...
199 просмотров
schedule 01.12.2022

Как включить /kernel/sched/* в программу BPF?
Я пытаюсь создать пользовательскую программу bpf с помощью bpftrace в Linux, согласно книге BPF Performance Tools. Я попытался включить некоторые файлы из пути linux/kernel/sched/sched.h. Как я могу включить их? (не только из папки /include, но и...
105 просмотров
schedule 21.03.2023

Ошибка ebpf bpf_get_socket_uid: неверный рело для insn[0].code 0x85
Я создаю демо-версию ebpf в исходном коде ядра. демо код такой: cgroup_kern.c #include <uapi/linux/bpf.h> #include <uapi/linux/if_ether.h> #include <uapi/linux/if_packet.h> #include <uapi/linux/ip.h> #include...
88 просмотров
schedule 30.12.2023

Как разделить карту ebpf между интерфейсами
Можно ли разделить карту ebpf между двумя сетевыми интерфейсами. Я хочу написать программу XDP и подключить ее к двум устройствам, а именно к eth0 и eth1. Реализация требует, чтобы они оба использовали одну и ту же карту. Можно ли загрузить одну и...
200 просмотров
schedule 04.05.2024

eBPF: печать полезной нагрузки UDP и исходного IP-адреса в шестнадцатеричном формате
Я новичок в eBPF и хочу научиться делать несколько основных вещей. Мой вопрос заключается в том, как написать код C для моего кода eBPF, чтобы напечатать ( bpf_trace_printk ) полезную нагрузку UPD полученного пакета в HEX. Я пробовал безуспешно....
258 просмотров
schedule 16.04.2023

Как вы вычисляете влияние на производительность зонда eBPF?
eBPF стал важным инструментом для простого и быстрого мониторинга процессов. Однако мне не удалось найти, как можно вычислить влияние самого зонда на производительность. Я уверен, что если я перехватываю каждый системный вызов и добавляю какую-то...
156 просмотров
schedule 28.05.2023

eBPF — невозможно прочитать argv и envp из точки трассировки sys_enter_execve
Я изучаю BPF для собственного удовольствия, и мне трудно понять, как читать argv и envp из контекста, переданного моей программе eBPF для sys_enter_execve. Здесь я покажу свою программу BPF, а затем более подробно объясню, чего я пытаюсь...
101 просмотров
schedule 08.04.2024

Проблема с отправкой данных из пользовательского пространства в программу bpf с картами
У меня проблема с моей программой bpf. Я получаю сообщение об ошибке при загрузке этой программы. моя программа bpf: #include <linux/skbuff.h> #include <linux/netdevice.h> #include <uapi/linux/bpf.h> #include...
60 просмотров
schedule 11.04.2023