Skip to content

Releases: facebook/bpfilter

v0.6.0

27 Sep 17:12

Choose a tag to compare

Features

  • Allow users to name set and use the same set in multiple rules (#314)
  • User-defined set keys by combining compatible matchers (#313)
  • Handle required and incompatible options in bfcli (#312)
  • Add the rule ID to the logged data #309
  • Allow counter and log keywords to be used in any order (#335)
  • tcp.(d|s)port, udp.(d|s)port can be used as a set key (#329)
  • Add support for marking packets (#336)
  • Add new matcher to matcher on packet mark (#336)
  • Ensure the daemon recovers when an error occurs when processing a request (#333)
  • libbpfilter headers can be included in sources building without compiler extensions (#325)

Fixes

  • Fix wrongful BPF link pin on program update (#327)
  • iptables: properly generate ip4.(s|d)net and ip4.(s|d)addr matchers (#341)
  • iptables: fix memory leak when replacing the ruleset (#327)
  • iptables: fix the BPF link being discard when a BPF Netfilter program is updated (#327)
  • iptables: fix missing hook options when replacing the ruleset (#327)

Developers

  • Add a "Contributing" documentation page with all the current @todos (#326)
  • Copy the packet size from the program's argument instead of computing it (#310)
  • Mark git as optional build dependency (#319)
  • Fix error in quick start doc (#317)
  • Fix command to rename xxd symbols (#308)
  • Do not use xxd -n on EPEL9 (#307)
  • Store L3 proto in logs using the host byteorder (#337)
  • Build libbpfilter as a shared library #332

Contributors

Full Changelog: v0.5.0...v0.6.0

v0.5.0

21 Jul 12:14

Choose a tag to compare

Changes

  • Add a new log keyword to log packets matched by a rule by @qdeslandes in #305
  • Support IPv6 packets with extension headers by @qdeslandes in #294
  • Pretty print matchers payload in bfcli (ruleset|chain) get by @qdeslandes in #299
  • Speed up parsing for large ruleset (dynamically compute YY_READ_BUF_SIZE) by @SkohTV in #277
  • Print the daemon version during initialization by @qdeslandes in #300

Matchers

Fixes

  • Fix the quick start command available in README.md by @qdeslandes in #263
  • Use a lock file to prevent the daemon from starting twice, or fail to start due to leftover socket file by @qdeslandes in #270
  • Fix unset rule index by @qdeslandes in #272
  • Do not print counters for rules with counters disabled by @qdeslandes in #301
  • Fix out-of-bounds write when parsing tcp.flags by @qdeslandes in #302

New Contributors

Full Changelog: v0.4.0...v0.5.0

v0.4.0

12 May 10:19

Choose a tag to compare

Changes

Fixes

New Contributors

Full Changelog: v0.3.0...v0.4.0

v0.3.0

20 Mar 17:11

Choose a tag to compare

Changes

Fixes

New Contributors

Full Changelog: v0.2.1...v0.3.0

v0.2.0

26 Feb 17:51

Choose a tag to compare

Features

  • Attach Netfilter programs to both IPv4 and IPv6 hooks to filter on both at the same time.
  • BPF objects are now pinned under /sys/fs/bpf/bpfilter/bf_$HOOK_$ID directory. $HOOK being a shortcut to the hook's name (see
    _bf_program_genid()), and $ID being a unique ID for the program derived from the chain's properties.
  • /sys/fs/bpf/bpfilter will be created when pinning a program and removed if empty when the daemon stops.
  • Benchmark results are automatically published to qdeslandes/bpfilter-benchmark-results when the CI runs on main.

Bugs

  • Fix typo in meta.l3_proto ICMPv6 protocol keyword: icmpv6 should be used instead of icmp6, as stated by the documentation.
  • Fix segfault when using bpfilter with iptables.
  • Fix support for BF_HOOK_NF_PRE_ROUTING and BF_HOOK_NF_POST_ROUTING.
  • Fix out-of-bound access when copying a BPF map name.

Full changelog: v0.1.0...v0.2.0

v0.1.0

05 Feb 14:43

Choose a tag to compare

What's Changed

Read more