Hi misc@,

I'm trying to understand how pfctl re-loads rules and tables. On my
soekris board, 64MB RAM, I have a large table with more than 200K
entries. It's used to perform some egress filtering (yes maybe it's
too large but it's really effective). I raised up table-entries limit
to 250K and I get the following scenario:

when I first load the rules everything works fine;
when I reload the rules with pfctl -f pf.conf,  pfctl segfaults or
exits returning "Cannot allocate memory" as if table-entries limit
were not high enough.
If I first flush the large table and then reload the rules everything
works fine again.

I once read on misc@ Henning Brauer saying pfctl -f performs
operations "atomically": should I assume pfctl creates another copy of
<large_table> in this process? How does it work? It's really just a
curiosity about pfctl internals.

Thanks,
f.

Reply via email to