| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
implementation of RFC 3484 for this purpose for a long time and "prefer_source"
was never implemented actually. ND6_IFF_PREFER_SOURCE macro is left intact.
Notes:
svn path=/head/; revision=238273
|
|
|
|
|
|
|
|
|
|
| |
draft-gont-6man-ipv6-atomic-fragments to mitigate one class of
possible fragmentation-based attacks.
MFC after: 5 days
Notes:
svn path=/head/; revision=238248
|
|
|
|
|
|
|
|
|
|
| |
patch of mine) also check if the 2nd in6_setscope() failed and return
the error in that case.
MFC after: 5 days
Notes:
svn path=/head/; revision=238222
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
it skips FLOWTABLE lookup. However, the non-NULL ro has dual meaning
here: it may be supplied to provide route, and it may be supplied to
store and return to caller the route that ip_output()/ip6_output()
finds. In the latter case skipping FLOWTABLE lookup is pessimisation.
The difference between struct route filled by FLOWTABLE and filled
by rtalloc() family is that the former doesn't hold a reference on
its rtentry. Reference is hold by flow entry, and it is about to
be released in future. Thus, route filled by FLOWTABLE shouldn't
be passed to RTFREE() macro.
- Introduce new flag for struct route/route_in6, that marks route
not holding a reference on rtentry.
- Introduce new macro RO_RTFREE() that cleans up a struct route
depending on its kind.
- All callers to ip_output()/ip6_output() that do supply non-NULL
but empty route should use RO_RTFREE() to free results of
lookup.
- ip_output()/ip6_output() now do FLOWTABLE lookup always when
ro->ro_rt == NULL.
Tested by: tuexen (SCTP part)
Notes:
svn path=/head/; revision=238092
|
|
|
|
|
|
|
|
|
|
| |
reason to do that, and also, cached route never got unreferenced,
which meant a reference leak.
Reviewed by: bms
Notes:
svn path=/head/; revision=238016
|
|
|
|
|
|
|
| |
MFC after: 3 days
Notes:
svn path=/head/; revision=238003
|
|
|
|
|
|
|
|
|
|
| |
be triggered.
Submitted by: rpaulo@
MFC after: 3 days
Notes:
svn path=/head/; revision=237736
|
|
|
|
|
|
|
|
| |
Submitted by: rpaulo@
MFC after: 3 days
Notes:
svn path=/head/; revision=237735
|
|
|
|
|
|
|
|
|
|
| |
on query origins.
Submitted by: Gu Yong
MFC after: 3 days
Notes:
svn path=/head/; revision=237734
|
|
|
|
|
|
|
| |
MFC after: 3 days
Notes:
svn path=/head/; revision=237715
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Possibly do some entra work in case we would not get into the
ifa0 != NULL paths later as we already do for the mltaddr before.
XXX We should possibly error in case in6_setscope fails.
Reference: http://lists.freebsd.org/pipermail/freebsd-net/2011-September/029829.html
Submitted by: bz
MFC after: 1 week
Notes:
svn path=/head/; revision=237571
|
|
|
|
|
|
|
| |
MFC after: 3 days
Notes:
svn path=/head/; revision=237569
|
|
|
|
|
|
|
| |
MFC after: 3 days
Notes:
svn path=/head/; revision=237565
|
|
|
|
|
|
|
| |
MFC after: 3 days
Notes:
svn path=/head/; revision=237542
|
|
|
|
|
|
|
| |
MFC after: 3 days
Notes:
svn path=/head/; revision=237540
|
|
|
|
|
|
|
| |
again next time. The condition of the 2nd if() is very unlikely ever met.
Notes:
svn path=/head/; revision=237459
|
|
|
|
|
|
|
|
|
|
| |
the mbuf chain at different places.
While there: Fix several bugs related to VRFs.
MFC after: 3 days
Notes:
svn path=/head/; revision=237049
|
|
|
|
|
|
|
|
|
|
| |
requested) on IPV6 sockets, which have been marked to be not IPV6_V6ONLY,
for each received IPV4 packet.
MFC after: 3 days
Notes:
svn path=/head/; revision=236958
|
|
|
|
|
|
|
|
|
|
|
| |
in the ioctl path.
Reported by: rpaulo
Reviewed by: emax
MFC after: 3 days
Notes:
svn path=/head/; revision=236615
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Interface routes are refcounted as packets move through the stack,
and there's garbage collection tied to it so that route changes can
safely propagate while traffic is flowing. In our setup, we weren't
changing or deleting any routes, but the refcounting logic in
ip6_input() was wrong and caused a reference leak on every inbound
V6 packet. This eventually caused a 32bit overflow, and the resulting
0 value caused the garbage collection to run on the active route.
That then snowballed into the panic.
Reviewed by: scottl
MFC after: 3 days
Notes:
svn path=/head/; revision=236501
|
|
|
|
|
|
|
|
|
|
| |
While there: remove some trainling whitespaces.
MFC after: 3 days
X-MFC with: 236170
Notes:
svn path=/head/; revision=236332
|
|
|
|
|
|
|
|
| |
Reviewed by: bz, scottl
MFC after: 3 days
Notes:
svn path=/head/; revision=236327
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
headers for TSO but also for generic checksum offloading. Ideally we
would only have one common function shared amongst all drivers, and
perhaps when updating them for IPv6 we should introduce that.
Eventually we should provide the meta information along with mbufs to
avoid (re-)parsing entirely.
To not break IPv6 (checksums and offload) and to be able to MFC the
changes without risking to hurt 3rd party drivers, duplicate the v4
framework, as other OSes have done as well.
Introduce interface capability flags for TX/RX checksum offload with
IPv6, to allow independent toggling (where possible). Add CSUM_*_IPV6
flags for UDP/TCP over IPv6, and reserve further for SCTP, and IPv6
fragmentation. Define CSUM_DELAY_DATA_IPV6 as we do for legacy IP and
add an alias for CSUM_DATA_VALID_IPV6.
This pretty much brings IPv6 handling in line with IPv4.
TSO is still handled in a different way and not via if_hwassist.
Update ifconfig to allow (un)setting of the new capability flags.
Update loopback to announce the new capabilities and if_hwassist flags.
Individual driver updates will have to follow, as will SCTP.
Reported by: gallatin, dim, ..
Reviewed by: gallatin (glanced at?)
MFC after: 3 days
X-MFC with: r235961,235959,235958
Notes:
svn path=/head/; revision=236170
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
already plan to support >64k payload here, the IPv6 header payload
length obviously is only 16 bit and the calculations need to be right.
Reported by: dim
Tested by: dim
MFC after: 1 day
X-MFC: with r235958
Notes:
svn path=/head/; revision=236130
|
|
|
|
|
|
|
|
| |
Just just offloading.
MFC after: 3 days
Notes:
svn path=/head/; revision=236087
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use M_ZERO with malloc rather than calling bzero() ourselves.
Change if () panic() checks to KASSERT()s as they are only
catching invariants in code flow but not dependent on network
input/output.
Move initial assigments indirecting pointers after the lock
has been aquired.
Passing layer boundries, reset M_PROTOFLAGS.
Remove a NULL assignment before free.
Sponsored by: The FreeBSD Foundation
Sponsored by: iXsystems
Reviewed by: gnn (as part of the whole)
MFC After: 3 days
Notes:
svn path=/head/; revision=235986
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Factor out Hop-By-Hop option processing. It's still not heavily used,
it reduces the footprint of ip6_input() and makes ip6_input() more
readable.
Sponsored by: The FreeBSD Foundation
Sponsored by: iXsystems
Reviewed by: gnn (as part of the whole)
MFC After: 3 days
Notes:
svn path=/head/; revision=235962
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Defer checksum calulations on UDP6 output and respect the mbuf
flags set by NICs having done checksum validation for us already,
thus saving the computing time in the input path as well.
Sponsored by: The FreeBSD Foundation
Sponsored by: iXsystems
Reviewed by: gnn (as part of the whole)
MFC After: 3 days
Notes:
svn path=/head/; revision=235959
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add support for delayed checksum calculations in the IPv6
output path. We currently cannot offload to the card if we
add extension headers (which incl. fragmentation).
Fix two SCTP offload support copy&paste bugs: calculate
checksums if fragmenting and no need to flag IPv4 header
checksums in the IPv6 forwarding path.
Sponsored by: The FreeBSD Foundation
Sponsored by: iXsystems
Reviewed by: gnn (as part of the whole)
MFC After: 3 days
Notes:
svn path=/head/; revision=235958
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Hide the ip6aux functions. The only one referenced outside ip6_input.c
is not compiled in yet (__notyet__) in route6.c (r235954). We do have
accessor functions that should be used.
Sponsored by: The FreeBSD Foundation
Sponsored by: iXsystems
Reviewed by: gnn (as part of the whole)
MFC After: 3 days
X-MFC: KPI?
Notes:
svn path=/head/; revision=235956
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Simplify the code removing a return from an earlier else case,
not differing from the default function return called now.
Sponsored by: The FreeBSD Foundation
Sponsored by: iXsystems
Reviewed by: gnn (as part of the whole)
MFC After: 3 days
Notes:
svn path=/head/; revision=235955
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We currently nowhere set IP6A_SWAP making the entire check useless
with the current code. Keep around but do not compile in.
Sponsored by: The FreeBSD Foundation
Sponsored by: iXsystems
Reviewed by: gnn (as part of the whole)
MFC After: 3 days
Notes:
svn path=/head/; revision=235954
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
No need to hold the (expensive) rt lock over (expensive) logging.
Sponsored by: The FreeBSD Foundation
Sponsored by: iXsystems
Reviewed by: gnn (as part of the whole)
MFC After: 3 days
Notes:
svn path=/head/; revision=235953
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Introduce a (for now copied stripped down) in6_cksum_pseudo()
function. We should be able to use this from in6_cksum() but
we should also ponder possible MD specific improvements.
It takes an extra csum argument to allow for easy checks as
will be done by the upper layer protocol input paths.
Sponsored by: The FreeBSD Foundation
Sponsored by: iXsystems
Reviewed by: gnn (as part of the whole)
MFC After: 3 days
Notes:
svn path=/head/; revision=235924
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Optimize in6_cksum(), re-ordering work and limiting variable
initialization, removing a bzero() for mostly re-initialized
struct values, making use of the newly introduced in6_getscope(),
as well as converting an if/panic to a KASSERT().
Sponsored by: The FreeBSD Foundation
Sponsored by: iXsystems
Reviewed by: gnn (as part of the whole)
MFC After: 3 days
Notes:
svn path=/head/; revision=235921
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Introduce in6_getscope() to allow more effective checksum
computations without the need to copy the address to clear the
scope.
Sponsored by: The FreeBSD Foundation
Sponsored by: iXsystems
Reviewed by: gnn (as part of the whole)
MFC After: 3 days
Notes:
svn path=/head/; revision=235916
|
|
|
|
|
|
|
| |
MFC after: 3 days
Notes:
svn path=/head/; revision=235828
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
casted to structs by getting rid of these buffers entirely. In r169832, it
was tried to paper over this issue by 32-bit aligning the buffers. Depending
on compiler optimizations that still was insufficient for 64-bit architectures
with strong alignment requirements though.
While at it, add comments regarding the total lack of locking in this area.
Tested by: bz
Reviewed by: bz (slightly earlier version), yongari (earlier version)
MFC after: 1 week
Notes:
svn path=/head/; revision=235681
|
|
|
|
|
|
|
| |
MFC after: 3 days
Notes:
svn path=/head/; revision=235415
|
|
|
|
|
|
|
| |
MFC after: 3 days
Notes:
svn path=/head/; revision=235403
|
|
|
|
|
|
|
|
|
| |
if case of SCTP_COMM_LOST or SCTP_CANT_STR_ASSOC as required by RFC 6458.
MFC after: 3 days
Notes:
svn path=/head/; revision=235360
|
|
|
|
|
|
|
|
|
|
|
|
| |
inp_socket. To avoid panic, do not dereference inp_socket,
but obtain reuse port option from inp_flags2, like this
is done after next call to in_pcblookup_local() a few lines
down below.
Submitted by: rwatson
Notes:
svn path=/head/; revision=233272
|
|
|
|
|
|
|
| |
MFC after: 3 days.
Notes:
svn path=/head/; revision=233005
|
|
|
|
|
|
|
|
|
|
|
| |
them if nd6_debug is enabled as unknown. Leave a comment about the RFC4191
option as I am undecided so far.
Discussed with: hrs
MFC after: 3 days
Notes:
svn path=/head/; revision=232514
|
|
|
|
|
|
|
|
| |
as well because they have to be configured before interface initialization for
AF_INET6.
Notes:
svn path=/head/; revision=232379
|
|
|
|
| |
Notes:
svn path=/head/; revision=232378
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
call in an #if 0 section.
In in6_selecthlim() optimize a case where in6p cannot be NULL due to an
earlier check.
More consistently use u_int instead of int for fibnum function arguments.
Sponsored by: Cisco Systems, Inc.
MFC after: 3 days
Notes:
svn path=/head/; revision=232127
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
associated
at which the lle_tbl pointer points to freed memory and the llt_free pointer is no longer
valid.
Move the free pointer in to the llentry itself and update the initalization sites.
MFC after: 2 weeks
Notes:
svn path=/head/; revision=232054
|
|
|
|
|
|
|
| |
MFC after: 1 month.
Notes:
svn path=/head/; revision=231895
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
return ifnet double pointer.
Pass that hint down to in6_selectif() to be used when i) the default FIB
is queried and ii) route lookup fails because the network is not present
(i.e. someone deleted the connected subnet).
This hint should not be generally used from anywhere outside the neighbor
discovery code. We just make use of it from nd6_ns_output().
Extend the nd6_na_output() interface by a nd6_na_output_fib() version
and pass the FIB number from the NS mbuf on to NA to allow the new mbuf
to inherit the FIB tag and a later lookup from ip6_output() to succeed
in the aformentioned example case.
Provide a wrapper function for the old public interface also used from
CARP but mark it with BURN_BRIDGES to cleanup in HEAD after MFC.
Sponsored by: Cisco Systems, Inc.
Notes:
svn path=/projects/multi-fibv6/head/; revision=231671
|