Revision tags: v6.2.1, v6.2.0, v6.3.0, v6.0.1, v6.0.0, v6.0.0rc1, v6.1.0, v5.8.3, v5.8.2, v5.8.1, v5.8.0, v5.9.0, v5.8.0rc1, v5.6.3, v5.6.2, v5.6.1, v5.6.0, v5.6.0rc1, v5.7.0, v5.4.3, v5.4.2, v5.4.1, v5.4.0, v5.5.0, v5.4.0rc1, v5.2.2, v5.2.1 |
|
#
4408d548 |
| 12-May-2018 |
Bill Yuan <bycn82@dragonflybsd.org> |
ipfw3_nat: highspeed lockless in-kernel NAT
RB-Tree to stored the state for the outgoing packets, and multidimentional array of pointers to keep the state for the incoming packets.
|
Revision tags: v5.2.0, v5.3.0, v5.2.0rc, v5.0.2, v5.0.1, v5.0.0, v5.0.0rc2, v5.1.0, v5.0.0rc1, v4.8.1, v4.8.0, v4.6.2, v4.9.0, v4.8.0rc, v4.6.1, v4.6.0, v4.6.0rc2, v4.6.0rc, v4.7.0 |
|
#
9187b359 |
| 21-Jun-2016 |
Bill Yuan <bycn82@dragonflybsd.org> |
ipfw3: lockless in-kernel NAT
The libalias is used in kernel space for in-kernel NAT, and its alias_link entries are stored with LIST. so all the packets which need to be NAT will scan against the L
ipfw3: lockless in-kernel NAT
The libalias is used in kernel space for in-kernel NAT, and its alias_link entries are stored with LIST. so all the packets which need to be NAT will scan against the LIST and trying to find the matched alias_link. by seperating the libalias into context of different CPUs, the lock can be removed. and due to the nature of NAT, the outgoing and incoming packets are possible to be handled by different CPUs, to ensure the returning packet can be translated properly, the newly created alias_link is required to be duplicated and inserted into contexts of both CPUs.
e.g. ipfw3 nat 1 config if em0 ipfw3 nat 1 all via em0 ipfw3 nat 1 show state
show more ...
|
Revision tags: v4.4.3, v4.4.2, v4.4.1, v4.4.0, v4.5.0, v4.4.0rc, v4.2.4, v4.3.1, v4.2.3, v4.2.1, v4.2.0 |
|
#
e895e94d |
| 17-Jun-2015 |
Bill Yuan <bycn82@leaf.dragonflybsd.org> |
ipfw3: support bpf filter in layer4 module
syntax: bpf "<bpf string>" e.g. ipfw3 add allow all bpf "icmp and src 8.8.8.8"
bpf can be used to filter the packet payload.
pcap_compile_nocap was used
ipfw3: support bpf filter in layer4 module
syntax: bpf "<bpf string>" e.g. ipfw3 add allow all bpf "icmp and src 8.8.8.8"
bpf can be used to filter the packet payload.
pcap_compile_nocap was used to compile the bpf string and bpf_filter for the filtering.
show more ...
|
#
dee12dda |
| 16-Jun-2015 |
Bill Yuan <bycn82@leaf.dragonflybsd.org> |
ipfw3: filter 'established' in layer4 module
matches TCP packets that has the RST or ACK bits set.
|
Revision tags: v4.0.6, v4.3.0, v4.2.0rc, v4.0.5 |
|
#
6a03354e |
| 12-Mar-2015 |
Matthew Dillon <dillon@apollo.backplane.com> |
ipfw2 - Rename FreeBSD ipfw port to ipfw3
* Rename all elements of the port to ipfw3 to reduce confusion.
|