| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Notes:
svn path=/head/; revision=158843
|
|
|
|
|
|
|
|
|
| |
goto out so that locks will be dropped.
Reviewed by: rwatson, gnn
Notes:
svn path=/head/; revision=158765
|
|
|
|
|
|
|
| |
contrast to ip6fw - is properly lockes, it is time to retire ip6fw.
Notes:
svn path=/head/; revision=158500
|
|
|
|
|
|
|
|
|
|
|
| |
functions not yet asserting it but working on global ip6_forward_rt
route cache which is not locked and perhaps should go away in the
future though cache hit/miss ration wasn't bad.
It's #if 0ed in frag6 because the code working on ip6_forward_rt is.
Notes:
svn path=/head/; revision=158295
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
into its own function, udp6_append(). This mirrors a similar structure
in udp_input() and udp_append(), and makes the whole thing a lot more
readable.
While here, add missing inpcb locking in UDP6 input path.
Reviewed by: bz
MFC after: 3 months
Notes:
svn path=/head/; revision=158237
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
even if we're going to return an argument-based error.
Assert pcbinfo lock in in6_pcblookup_local(), in6_pcblookup_hash(), since
they walk pcbinfo inpcb lists.
Assert inpcb and pcbinfo locks in in6_pcbsetport(), since
port reservations are changing.
MFC after: 3 months
Notes:
svn path=/head/; revision=158011
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
list head structure; this improves congruence to IPv4, and also allows
in6_pcbpurgeif0() to lock the pcbinfo. Modify in6_pcbpurgeif0() to lock
the pcbinfo before iterating the pcb list, use queue(9)'s LIST_FOREACH()
for the iteration, and to lock individual inpcb's while manipulating
them.
MFC after: 3 months
Notes:
svn path=/head/; revision=157978
|
|
|
|
|
|
|
|
| |
An eventhandler is used to update all the various zones that depend
on these values.
Notes:
svn path=/head/; revision=157927
|
|
|
|
|
|
|
|
|
|
| |
acquire inpcb lock when reading inpcb port+address in order to prevent
races with other threads that may be changing them.
MFC after: 3 months
Notes:
svn path=/head/; revision=157767
|
|
|
|
|
|
|
|
|
| |
fields.
MFC after: 3 months
Notes:
svn path=/head/; revision=157679
|
|
|
|
|
|
|
|
|
|
|
|
| |
UDPv6 delivery.
Lock the inpcb of the UDP connection being delivered to before
processing IPSEC policy and other delivery activities.
MFC after: 3 months
Notes:
svn path=/head/; revision=157678
|
|
|
|
|
|
|
|
|
| |
lists during UDPv6 receipt.
MFC after: 3 months
Notes:
svn path=/head/; revision=157677
|
|
|
|
|
|
|
|
|
| |
all necessary synchronization appears present.
MFC after: 3 months
Notes:
svn path=/head/; revision=157676
|
|
|
|
|
|
|
|
|
| |
this code appears properly locked.
MFC after: 3 months
Notes:
svn path=/head/; revision=157675
|
|
|
|
|
|
|
| |
MFC after: 3 months
Notes:
svn path=/head/; revision=157674
|
|
|
|
|
|
|
|
|
|
| |
In various inpcb methods for IPv6 sockets, don't check of so_pcb is NULL,
assert it isn't.
MFC after: 3 months
Notes:
svn path=/head/; revision=157673
|
|
|
|
|
|
|
|
|
|
| |
promiscuous mode
Obtained from: KAME
MFC after: 2 days
Notes:
svn path=/head/; revision=157633
|
|
|
|
|
|
|
|
| |
Submitted by: pjd
MFC after: 3 months
Notes:
svn path=/head/; revision=157607
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
pru_abort(), pru_detach(), and in_pcbdetach():
- Universally support and enforce the invariant that so_pcb is
never NULL, converting dozens of unnecessary NULL checks into
assertions, and eliminating dozens of unnecessary error handling
cases in protocol code.
- In some cases, eliminate unnecessary pcbinfo locking, as it is no
longer required to ensure so_pcb != NULL. For example, in protocol
shutdown methods, and in raw IP send.
- Abort and detach protocol switch methods no longer return failures,
nor attempt to free sockets, as the socket layer does this.
- Invoke in_pcbfree() after in_pcbdetach() in order to free the
detached in_pcb structure for a socket.
MFC after: 3 months
Notes:
svn path=/head/; revision=157374
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- in_pcbdetach(), which removes the link between an inpcb and its
socket.
- in_pcbfree(), which frees a detached pcb.
Unlike the previous in_pcbdetach(), neither of these functions will
attempt to conditionally free the socket, as they are responsible only
for managing in_pcb memory. Mirror these changes into in6_pcbdetach()
by breaking it into in6_pcbdetach() and in6_pcbfree().
While here, eliminate undesired checks for NULL inpcb pointers in
sockets, as we will now have as an invariant that sockets will always
have valid so_pcb pointers.
MFC after: 3 months
Notes:
svn path=/head/; revision=157373
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
rather than an error. Detaches do not "fail", they other occur or
the protocol flags SS_PROTOREF to take ownership of the socket.
soclose() no longer looks at so_pcb to see if it's NULL, relying
entirely on the protocol to decide whether it's time to free the
socket or not using SS_PROTOREF. so_pcb is now entirely owned and
managed by the protocol code. Likewise, no longer test so_pcb in
other socket functions, such as soreceive(), which have no business
digging into protocol internals.
Protocol detach routines no longer try to free the socket on detach,
this is performed in the socket code if the protocol permits it.
In rts_detach(), no longer test for rp != NULL in detach, and
likewise in other protocols that don't permit a NULL so_pcb, reduce
the incidence of testing for it during detach.
netinet and netinet6 are not fully updated to this change, which
will be in an upcoming commit. In their current state they may leak
memory or panic.
MFC after: 3 months
Notes:
svn path=/head/; revision=157370
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
than an int, as an error here is not meaningful. Modify soabort() to
unconditionally free the socket on the return of pru_abort(), and
modify most protocols to no longer conditionally free the socket,
since the caller will do this.
This commit likely leaves parts of netinet and netinet6 in a situation
where they may panic or leak memory, as they have not are not fully
updated by this commit. This will be corrected shortly in followup
commits to these components.
MFC after: 3 months
Notes:
svn path=/head/; revision=157366
|
|
|
|
|
|
|
|
|
|
|
| |
probably never fully applied to IPv6. Over time it has become more
stale, so replace it with something more up to date.
Reviewed by: ume
MFC after: 1 month
Notes:
svn path=/head/; revision=157209
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ipsec_copypkt(), as this is already handled by the call to M_MOVE_PKTHDR(),
which also knows how to correctly handle MAC m_tags. This corrects a panic
when running with MAC and KAME IPSEC.
PR: kern/94599
Submitted by: zhouyi zhou <zhouyi04 at ios dot cn>
Reviewed by: bz
MFC after: 3 days
Notes:
svn path=/head/; revision=157207
|
|
|
|
|
|
|
|
| |
Obtained from: KAME
MFC after: 3 days
Notes:
svn path=/head/; revision=157097
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
net.inet.ip.portrange.reservedlow apply to IPv6 aswell as IPv4.
We could have made new sysctls for IPv6, but that potentially makes
things complicated for mapped addresses. This seems like the least
confusing option and least likely to cause obscure problems in the
future.
This change makes the mac_portacl module useful with IPv6 apps.
Reviewed by: ume
MFC after: 1 month
Notes:
svn path=/head/; revision=156877
|
|
|
|
|
|
|
|
| |
Obtained from: KAME
MFC after: 1 day
Notes:
svn path=/head/; revision=156871
|
|
|
|
|
|
|
|
| |
Reviewed by: KAME
MFC after: 2 days
Notes:
svn path=/head/; revision=156865
|
|
|
|
|
|
|
|
|
|
|
| |
query is received.
PR: kern/93526
Obtained from: KAME
MFC after: 1 day
Notes:
svn path=/head/; revision=156274
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
invalid in nd6_timer().
PR: kern/93170
Reported by: kris
Submitted by: JINMEI Tatuya <jinmei__at__isl.rdc.toshiba.co.jp>
Confirmed by: kris
Obtained from: KAME
MFC after: 2 days
Notes:
svn path=/head/; revision=155575
|
|
|
|
|
|
|
|
|
|
|
| |
the wrong structure member but setting the correct one.
Submitted by: James dot Juran at baesystems dot com
Reviewed by: gnn
MFC after: 1 week
Notes:
svn path=/head/; revision=155454
|
|
|
|
| |
Notes:
svn path=/head/; revision=155333
|
|
|
|
|
|
|
|
|
| |
PR: ports/92620
Reported by: Kurt Miller <kurt__at__intricatesoftware.com>
MFC after: 1 week
Notes:
svn path=/head/; revision=155217
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
filtering mechanisms to use the new rwlock(9) locking API:
- Drop the variables stored in the phil_head structure which were specific to
conditions and the home rolled read/write locking mechanism.
- Drop some includes which were used for condition variables
- Drop the inline functions, and convert them to macros. Also, move these
macros into pfil.h
- Move pfil list locking macros intp phil.h as well
- Rename ph_busy_count to ph_nhooks. This variable will represent the number
of IN/OUT hooks registered with the pfil head structure
- Define PFIL_HOOKED macro which evaluates to true if there are any
hooks to be ran by pfil_run_hooks
- In the IP/IP6 stacks, change the ph_busy_count comparison to use the new
PFIL_HOOKED macro.
- Drop optimization in pfil_run_hooks which checks to see if there are any
hooks to be ran, and returns if not. This check is already performed by the
IP stacks when they call:
if (!PFIL_HOOKED(ph))
goto skip_hooks;
- Drop in assertion which makes sure that the number of hooks never drops
below 0 for good measure. This in theory should never happen, and if it
does than there are problems somewhere
- Drop special logic around PFIL_WAITOK because rw_wlock(9) does not sleep
- Drop variables which support home rolled read/write locking mechanism from
the IPFW firewall chain structure.
- Swap out the read/write firewall chain lock internal to use the rwlock(9)
API instead of our home rolled version
- Convert the inlined functions to macros
Reviewed by: mlaier, andre, glebius
Thanks to: jhb for the new locking API
Notes:
svn path=/head/; revision=155201
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
however IPv4-in-IPv4 tunnels are now stable on SMP. Details:
- Add per-softc mutex.
- Hold the mutex on output.
The main problem was the rtentry, placed in softc. It could be
freed by ip_output(). Meanwhile, another thread being in
in_gif_output() can read and write this rtentry.
Reported by: many
Tested by: Alexander Shiryaev <aixp mail.ru>
Notes:
svn path=/head/; revision=155037
|
|
|
|
|
|
|
|
|
| |
Reported by: YAMAMOTO Takashi <yamt__at__mwd.biglobe.ne.jp>
Obtained from: NetBSD
MFC after: 1 week
Notes:
svn path=/head/; revision=154804
|
|
|
|
|
|
|
| |
MFC after: 1 week
Notes:
svn path=/head/; revision=154667
|
|
|
|
|
|
|
|
|
|
| |
the pointer to a pointer for NULL, not the pointer for NULL.
Noticed by: Coverity Prevent analysis tool
MFC after: 3 days
Notes:
svn path=/head/; revision=154324
|
|
|
|
|
|
|
|
|
|
|
| |
may be a stale pointer at this point, and we're interested in whether or
not m_pulldown() failed.
Noticed by: Coverity Prevent analysis tool
MFC after: 3 days
Notes:
svn path=/head/; revision=154322
|
|
|
|
|
|
|
|
| |
Obtained from: KAME
MFC After: 1 day
Notes:
svn path=/head/; revision=154131
|
|
|
|
|
|
|
|
|
|
|
| |
interfaces to bridges, which will then send and receive IP protocol 97 packets.
Packets are Ethernet frames with an EtherIP header prepended.
Obtained from: NetBSD
MFC after: 2 weeks
Notes:
svn path=/head/; revision=153621
|
|
|
|
|
|
|
| |
MFC after: 2 days
Notes:
svn path=/head/; revision=153257
|
|
|
|
|
|
|
|
|
|
| |
invalid destination address.
Submitted by: JINMEI Tatuya <jinmei__at__isl.rdc.toshiba.co.jp>
MFC after: 1 day
Notes:
svn path=/head/; revision=153227
|
|
|
|
|
|
|
|
|
|
|
| |
(ToDo: similar fix is necessary for other NDP-related callout-timers
in netinet6/nd6*.c)
PR: kern/88725
MFC after: 1 month
Notes:
svn path=/head/; revision=152524
|
|
|
|
|
|
|
| |
so they are easier to follow for the human being.
Notes:
svn path=/head/; revision=152242
|
|
|
|
|
|
|
|
|
| |
Obtained from: KAME
Reported in: freebsd-net@freebsd
MFC after: 1 day
Notes:
svn path=/head/; revision=151915
|
|
|
|
|
|
|
|
| |
Submitted by: max
MFC after: 2 month
Notes:
svn path=/head/; revision=151546
|
|
|
|
| |
Notes:
svn path=/head/; revision=151540
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- introduced fine-grain-timer to manage ND-caches and IPv6 Multicast-Listeners
- supports Router-Preference <draft-ietf-ipv6-router-selection-07.txt>
- better prefix lifetime management
- more spec-comformant DAD advertisement
- updated RFC/internet-draft revisions
Obtained from: KAME
Reviewed by: ume, gnn
MFC after: 2 month
Notes:
svn path=/head/; revision=151539
|
|
|
|
|
|
|
|
| |
Obtained from: KAME
MFC after: 1 week
Notes:
svn path=/head/; revision=151537
|