Публикации по теме '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