Age | Commit message (Collapse) | Author |
|
|
|
route entry in ART.
rt_plen() now represents the prefix length of a route entry and should
be used instead.
For now use a "struct sockaddr_in6" to represent the mask when needed,
this should be then replaced by the prefix length and RTA_NETMASK only
used for compatibility with userland.
ok claudio@
|
|
(follow up on my earlier commit)
OK bluhm@
|
|
this avoids current recursion to pf_test() function. the change also
switches icmp_error()/icmp6_error() to use ip_send()/ip6_send() so
they are safe for PF.
The idea comes from Markus Friedl. bluhm, mikeb and mpi helped me
a lot to get it into shape.
OK bluhm@, mpi@
|
|
ok deraadt@
|
|
element. Otherwise the kernel paniced with "ipintr no HDR" if the
data passed to pppxwrite() had a certain length.
Bug reported and fix tested by Sevan / Venture37.
Debugged with and OK mikeb@
|
|
native language support was deleted a month ago at u2k15.
OK semarie@ deraadt@
|
|
fallback to a SLIST.
ok dlg@, jasper@
|
|
|
|
ok deaadt@
|
|
|
|
|
|
required.
ok bluhm@ mpi@.
|
|
it has been split out into new struct fields. The athn(4) driver was still
assuming the old size and wrote beyond the ic_sup_mcs array. Make the driver
write to the new ic_tx_mcs_set field instead.
found by daniel@ with gcc 4.9
ok sthen@ kettenis@
|
|
no change in .o file checksum
ok claudio@
|
|
This reduces the size of the structure by 8 bytes on amd64 now that
we are using an index instead of a pointer for reaching interfaces.
|
|
These indexes are unique and should be used with if_get() to get a
pointer to the corresponding ``ifp''. Such pointer is guaranteed to
be valid in a MP environment until if_put() is called.
ok claudio@, sthen@
|
|
pf_inp_...() lookup, link and unlink functions as an interface.
Locking can be added to them later. Remove the first linking at
the beginning of tcp_input() and udp_input() as it is not necessary.
It will be done later anyway. That code was a relict, from the
time before I had added the second linking.
Input from mikeb@ and sashan@; OK sashan@
|
|
|
|
|
|
|
|
|
|
as per the stack commit, the driver changes are:
1. setting ifp->if_xflags = IFXF_MPSAFE
2. only calling if_start() instead of its own start routine
3. clearing IFF_RUNNING before calling if_start_barrier() on its way down
4. only using IFQ_DEQUEUE (not ifq_deq_begin/commit/rollback)
|
|
This commit is not removing the existing EtherIP part of gif(4) and
it keeps EtherIP of gif(4) working.
ok jbg@ sthen@ mpi@ reyk@ yasuoka@
|
|
|
|
existing start routines will still be called under the kernel lock
and at IPL_NET.
mpsafe start routines will be serialised so only one instance of
each interfaces function will be running in the kernel at any point
in time. this guarantees packets will be dequeued in order, and the
start routines dont have to lock against themselves because if_start
does it for them.
the code to do that is based on the scsi runqueue code.
this also provides an if_start_barrier() function that should wait
until any currently running instances of if_start have finished.
a driver can opt in to the mpsafe if_start call by doing the following:
1. setting ifp->if_xflags = IFXF_MPSAFE
2. only calling if_start() instead of its own start routine
3. clearing IFF_RUNNING before calling if_start_barrier() on its way down
4. only using IFQ_DEQUEUE (not ifq_deq_begin/commit/rollback)
to simplify the implementation the tx mitigation code has been removed.
tested by several
ok mpi@ jmatthew@
|
|
|
|
ok henning@ claudio@
|
|
the packet if encap fails, use m_defrag if the mbuf is too fragmented,
adjust sc_tx_cnt using atomic operations, hold the kernel lock while calling
cas_init and cas_start from the interrupt handler, use an interrupt barrier
in cas_stop, and finally mark the interupt handler mpsafe.
encouragement from dlg@ and kettenis@
|
|
collide with the statekey to inp unlinking.
OK sashan@ mpi@
|
|
could not be sent either because the dma mapping failed or because
m_defrag failed. Those errors are accounted as oerrors. dlg@ agrees.
|
|
ok sthen@
|
|
required to do the if_get/if_put dance around the log() calls. These
were the last users of rt_ifp.
OK mpi@ bluhm@
|
|
arp packet was recieved on the interface we expected. This is because
multicast and broadcast packets are sometimes forwarded on multiple
local interfaces. So simplify the checks and make them more generic
at the same time (in the SIN_PROXY case). For SIN_PROXY only the
interface holding the proxy arp route will answer to the requests.
OK mpi@
|
|
|
|
be the same as ifp or something is very broken. So remove this including
one more rt_ifp. OK mpi@
|
|
OK mpi@
|
|
are not used anymore. This has to be done before any interface
fields become invalid.
As the route delete request cannot call if_get() anymore, pass down
the interface. Split rtrequest_delete() into a separate function
that may take an existing inteface.
OK mpi@
|
|
OK mpi@, bluhm@
|
|
enough bits for addressing the region.
|
|
Diff by miod@ during c2k15
Tested by jbg@, jasper@, pirofti@
OK jasper@, pirofti@
|
|
|
|
for failed route lookups. This is something that was maybe useful in the
90is but in this modern times it is just annoying and nothing expect it
anyway. OK mpi@, sthen@
|
|
|
|
|
|
start_amd64.S.
|
|
|
|
ok claudio@, mpi@
|
|
ok tedu@
|
|
ok mpi
|