History log of /dragonfly/sys/net/pf/pf_ioctl.c (Results 1 – 25 of 54)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# b272101a 30-Oct-2023 Aaron LI <aly@aaronly.me>

Various minor whitespace cleanups

Accumulated along the way.


# 6823c302 15-Nov-2023 Aaron LI <aly@aaronly.me>

net/radix: Update rn_inithead() parameter type to avoid boring casts

Change to use the proper 'struct radix_node_head **' instead of an
opaque 'void **'.


# 0d7b85c8 15-Nov-2023 Aaron LI <aly@aaronly.me>

kernel: Use rn_flush()/rn_freehead() to flush/delete radix trees


# d3afab17 18-Jun-2023 Aaron LI <aly@aaronly.me>

net/radix: Rename Free() to R_Free() to better align with R_Malloc()

Also reduces the chances of conflicting with other macros.


# 8a93af2a 08-Jul-2023 Matthew Dillon <dillon@apollo.backplane.com>

network - Remove host-order translations of ipv4 ip_off and ip_len

* Do not translate ip_off and ip_len to host order and then back again
in the network stack. The fields are now left in network

network - Remove host-order translations of ipv4 ip_off and ip_len

* Do not translate ip_off and ip_len to host order and then back again
in the network stack. The fields are now left in network order.

show more ...


Revision tags: v6.4.0, v6.4.0rc1, v6.5.0, v6.2.2, 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
# d147c943 28-Mar-2020 Sascha Wildner <saw@online.de>

kernel: Remove <sys/mutex.h> from all files that don't need it (2/2).

98% of these were remains from porting from FreeBSD which could have
been removed after converting to lockmgr(), etc.

Due to an

kernel: Remove <sys/mutex.h> from all files that don't need it (2/2).

98% of these were remains from porting from FreeBSD which could have
been removed after converting to lockmgr(), etc.

Due to an issue in my checking earlier, not everything was cleaned up
correctly.

show more ...


Revision tags: 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
# f7c73ea6 29-Apr-2019 Matthew Dillon <dillon@apollo.backplane.com>

pf - Improve SMP counter performance, static array MAXCPU -> kmalloc

* Change the global counters to pcpu counters. Counters are now
incremented in a cache-friendly state and will be aggregated

pf - Improve SMP counter performance, static array MAXCPU -> kmalloc

* Change the global counters to pcpu counters. Counters are now
incremented in a cache-friendly state and will be aggregated
in the status ioctl.

* Change all static declarations of MAXCPU arrays into kmalloc()d
arrays to reduce kernel bss size.

show more ...


Revision tags: v5.4.2, v5.4.1, v5.4.0, v5.5.0, v5.4.0rc1
# d15093b9 09-Aug-2018 Aaron LI <aly@aaronly.me>

Revert "pf: Allow disappearing or not yet existing interfaces for ALTQ"

This reverts commit 0a887f91f9633448c99b9a5b7c6116a0a22d25d6.

1. It's incorrect to change the ifnet_unlock(). The original p

Revert "pf: Allow disappearing or not yet existing interfaces for ALTQ"

This reverts commit 0a887f91f9633448c99b9a5b7c6116a0a22d25d6.

1. It's incorrect to change the ifnet_unlock(). The original protection
range is used to make sure that the ifp does not get ripped out behind
our back.

2. We don't suffer from the issue that that commit was intended to fix.

Thanks-to: sephe

show more ...


# 2949c680 21-Jun-2018 Aaron LI <aly@aaronly.me>

net: Tweak some styles and comments


# 0a887f91 16-Jun-2018 Aaron LI <aly@aaronly.me>

pf: Allow disappearing or not yet existing interfaces for ALTQ

Make ALTQ cope with disappearing interfaces (particularly common with
net/mpd4 and netgraph in general). This also allows to add queue

pf: Allow disappearing or not yet existing interfaces for ALTQ

Make ALTQ cope with disappearing interfaces (particularly common with
net/mpd4 and netgraph in general). This also allows to add queues for
an interface that is not yet existing, however, you have to provide
the bandwidth for the interface.

Meanwhile, simplify the ifnet_unlock() calls for ifunit() use.

Taken-from: FreeBSD (r177700)

show more ...


# c686757e 16-Jun-2018 Aaron LI <aly@aaronly.me>

pf: Fix and improve interface group support

The old PF code has broken partial support of the interface group.
Without this patch, loading the 'pf.ko' module will panic the system.

* Add event hand

pf: Fix and improve interface group support

The old PF code has broken partial support of the interface group.
Without this patch, loading the 'pf.ko' module will panic the system.

* Add event handlers of pfi_{attach,detach,change}_group_event()
to support the interface groups. Meanwhile, add event handler
of pfi_ifaddr_event() that is called when an address is set up
on an interface, and update pfi_{attach,detach}_event() handlers.
(Based on FreeBSD)

* Remove function pfi_kifaddr_update() as it is merged into
pfi_ifaddr_event() handler.

* Update pfi_initialize() and pfi_cleanup() functions (Based on
FreeBSD).

* Split function pfi_kif_find() out of pfi_kif_get().
(Based on OpenBSD)

* The PF module will be properly initialized on module load, so remove
extra pfi_initialize() calls.

* Rename malloc type 'PFI_MTYPE' to 'M_PFI', and merge with malloc type
'M_PFIADDRPL'.

* Staticize internal functions and variables.

* Some cleanups and style updates.

Thanks to sephe for the guidance.

show more ...


Revision tags: v5.2.2, v5.2.1, 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
# e6186595 29-Jul-2017 Sascha Wildner <saw@online.de>

kernel: Remove some variables that are only set but never used.

Reported-by: dcb
Dragonfly-bug: <https://bugs.dragonflybsd.org/issues/3019>


Revision tags: v4.8.0, v4.6.2, v4.9.0, v4.8.0rc
# 48e93b2f 08-Jan-2017 Matthew Dillon <dillon@apollo.backplane.com>

kernel - Cleanup PFIL_MPSAFE

* All pfil use cases are MPSAFE, so remove the PFIL_MPSAFE flag entirely
and remove the old mplock wrappers that tested it.


Revision tags: v4.6.1, v4.6.0, v4.6.0rc2, v4.6.0rc, v4.7.0, 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, v4.0.6, v4.3.0, v4.2.0rc, v4.0.5, v4.0.4
# b4051e25 22-Jan-2015 Sepherosa Ziehau <sephe@dragonflybsd.org>

ifnet: Make ifnet and ifindex2ifnet MPSAFE

- Accessing to these two global variables from non-netisr threads uses
ifnet lock. This kind of accessing is from
- Accessing to ifindex2ifnet from neti

ifnet: Make ifnet and ifindex2ifnet MPSAFE

- Accessing to these two global variables from non-netisr threads uses
ifnet lock. This kind of accessing is from
- Accessing to ifindex2ifnet from netisrs are lockless MPSAFE.
- Netisrs no longer access ifnet, instead they access ifnet array as of
this commit, which is lockless MPSAFE.

Rules for accessing ifnet and ifindex2ifnet is commented near the
declaration of the related global variables/functions in net/if_var.h.

show more ...


Revision tags: v4.0.3, v4.0.2, v4.0.1, v4.0.0, v4.0.0rc3, v4.0.0rc2, v4.0.0rc, v4.1.0, v3.8.2
# 32772c96 29-Jun-2014 Matthew Dillon <dillon@apollo.backplane.com>

kernel - Fix pf-based NAT

* NAT may not always be able to select a translated addr/port that is
compatible with the source addr/port. In this situation return packets
from the translated target

kernel - Fix pf-based NAT

* NAT may not always be able to select a translated addr/port that is
compatible with the source addr/port. In this situation return packets
from the translated target won't be able to find the state structure.

This occurs if static-port is used or if the port range is insufficent
for PF to be able to find a hash-compatible addr/port.

This also occurs for UDP because the toeplitz hash does not appear to
include a port (so there's nothing PF NAT can do to make it
hash-compatible).

* In situations where PF believes a translation is not hash-compatible,
the pf_state_key will be placed on a global RBTREE instead of the
cpu-localized RBTREE. This tree is checked and modified with a separate
lock (shared when doing lookups, exclusive when doing adjustments).

The nominal pf_find_state*() code will now check the global RBTREE if the
state cannot be found in the localized tree.

* Modifications to the pf_state structure are now exclusively locked to
handle the case where a state structure might be used by multiple cpu's
at the same time. This can only occur for translations such as NAT.

* The TCP code is not allowed to destroy state on connection reuse unless
the state is cpu-local. If it is not cpu-local the TCP code will mark
the state for an immediate purge (within the next second).

* Add a TSO flag check to pf_route(), which is called via NAT. Locally
originated packets may have been built with TSO. For PF NAT, we can
only assume that the target interface will be compatible and allow the
packet through (not try to fragment it, which won't work well anyway for
TCP packets).

show more ...


# 32e6d213 28-Jun-2014 Matthew Dillon <dillon@apollo.backplane.com>

kernel - Fix pf-based NAT

* Concurrency work on PF broke NAT. Fix NAT for IPV4 TCP.

* This is not a complete fix, the NAT must be able to select from a range
of local ports to replace sport to p

kernel - Fix pf-based NAT

* Concurrency work on PF broke NAT. Fix NAT for IPV4 TCP.

* This is not a complete fix, the NAT must be able to select from a range
of local ports to replace sport to properly map the NAT onto the same
cpu that the originating packet was forwarded to.

* Not fixed for UDP yet.

show more ...


# 3a0038bf 27-Jun-2014 Matthew Dillon <dillon@apollo.backplane.com>

pf - make the bulk of PF concurrent under normal operation

* state and ip fragment tables are now per-cpu.

* packet paths acquire pf_token shared instead of exclusive. Packet
processing runs con

pf - make the bulk of PF concurrent under normal operation

* state and ip fragment tables are now per-cpu.

* packet paths acquire pf_token shared instead of exclusive. Packet
processing runs concurrently.

* Any dynamic rules updates will run synchronously for now.

* State expiration from the pfpurge thread runs synchronously for now.
More work can be done here.

* ioctl (and also pfsync) paths acquire pf_token exclusively. That is,
primarily pfctl commands. This includes rules updates and state scans.
More work can be done here.

show more ...


Revision tags: v3.8.1, v3.6.3, v3.8.0, v3.8.0rc2, v3.9.0, v3.8.0rc, v3.6.2, v3.6.1, v3.6.0, v3.7.1, v3.6.0rc, v3.7.0, v3.4.3
# 0ab80df8 07-Jul-2013 Sascha Wildner <saw@online.de>

kernel/net*: Remove some #include duplicates.


Revision tags: v3.4.2, v3.4.0, v3.4.1, v3.4.0rc, v3.5.0, v3.2.2, v3.2.1, v3.2.0, v3.3.0, v3.0.3
# 04db30e5 08-Apr-2012 Sascha Wildner <saw@online.de>

kernel: Remove NULL checks after kmalloc() with M_WAITOK.


Revision tags: v3.0.2, v3.0.1
# cc16352a 17-Feb-2012 Sascha Wildner <saw@online.de>

kernel/pf: In the ioctl code, make sure NPFLOG is actually defined.

The inclusion of if_pflog.h was conditionalized on NPFLOG but it is
if_pflog.h itself that actually defines NPFLOG (because it inc

kernel/pf: In the ioctl code, make sure NPFLOG is actually defined.

The inclusion of if_pflog.h was conditionalized on NPFLOG but it is
if_pflog.h itself that actually defines NPFLOG (because it includes
use_pflog.h).

So if_pflog.h was never included and some initialization code in
the ioctls for adding and changing rules was not executed.

show more ...


Revision tags: v3.1.0, v3.0.0
# b6c57ceb 05-Dec-2011 Sascha Wildner <saw@online.de>

kernel: Remove some unneeded NULL checks after kmalloc() with M_WAITOK.


# f0f64d59 02-Dec-2011 Venkatesh Srinivas <me@endeavour.zapto.org>

pf -- Remove unused pf_mod_lck.

pf_mod_lck was not used, except in a lksleep on module unload.

Reported-by: tuxillo


# 86d7f5d3 26-Nov-2011 John Marino <draco@marino.st>

Initial import of binutils 2.22 on the new vendor branch

Future versions of binutils will also reside on this branch rather
than continuing to create new binutils branches for each new version.


# 56515ebf 01-Nov-2011 Jan Lentfer <Jan.Lentfer@web.de>

pf/pf_ioctl.c: Fix whitespace error


# d2540711 01-Nov-2011 Sascha Wildner <saw@online.de>

Unbreak LINT.


123