Пакетный фильтр Беркли (BPF или cBPF) изначально был введен для обеспечения необработанного интерфейса для уровней канала передачи данных независимым от протокола способом в системах BSD, а затем в Linux. Совсем недавно он был переработан в Linux, чтобы породить расширенный BPF или eBPF. Последний может использоваться для сетевой обработки на нескольких уровнях, а также для приложений безопасности или даже для отслеживания и мониторинга вариантов использования. Этот тег предназначен для всех вопросов о cBPF/eBPF.

Фильтр Berkeley Packet был первоначально введен, чтобы обеспечить сырец интерфейс для линии передачи данных слоев в протоколе независимым образом, первый в системах BSD в начале 90 - х годов, а затем на Linux через несколько лет. Все пакеты в сети, даже предназначенные для других хостов, будут доступны через этот механизм.

С 2013 года старая подсистема BPF (или cBPF, для классического BPF) привела к созданию расширенной версии BPF, или eBPF, в Linux. У eBPF другая архитектура. Он более эффективен, гибок, вводит новые функции (карты, хвостовые вызовы, вспомогательные функции из ядра и т. Д.). И программы могут быть присоединены к различным хукам в ядре для работы в сети (сокеты, как и раньше, но также и интерфейса TC (управление трафиком), XDP…), для безопасности (cgroups) или для отслеживания и мониторинга ядра (kprobes, точки трассировки, …).