Age | Commit message (Collapse) | Author |
|
ok mpi@
|
|
ip_output() currently needs the NET_LOCK() which is not held when an
interface is added to a pf(4) queue.
Fix an issue reported by Jason Tubnor, ok dlg@
|
|
memory shortage. As it is invoked from a system call, it should
not fail and wait instead.
OK visa@ mpi@
|
|
pr_input handlers without KERNEL_LOCK().
ok visa@
|
|
vxlan(4) like it is done by other tunnelling pseudo-interfaces.
While here sync the comment between multiple interfaces.
Bug report and original diff from Pierre LALET.
|
|
Tested by Hrvoje Popovski, ok bluhm@
|
|
vxlan interface into accepting packets for the wrong destination (if
the sockaddr_in6 checks somehow match on sockaddr_in addresses).
Coverity CID 1452902; Severity: Moderate
OK mikeb@
|
|
inline function instead of casting it to sockaddr. While there,
use inline instead of __inline for all these conversions. Some
struct sockaddr casts can be avoided completely.
OK dhill@ mpi@
|
|
constants.
The consensus is that if both operands are constant, we don't need
mallocarray. Reminded by tedu@
ok deraadt@
|
|
ok deraadt@
|
|
this means packets are consistently counted in one place, unlike the
many and various ways that drivers thought they should do it.
ok mpi@ deraadt@
|
|
While here, remove unnecessary splnet's.
ok mpi
|
|
the multicast interface - simply clear the VXLAN configuration when
the associated multicast interface disappears. This fixes some
locking and recursion problems.
OK mpi@ mikeb@
|
|
an earlier version of this diff was ok mpi@
|
|
Move the corresponding code in in6_pcbselsrc(). This reduces
differences with IPv4 and will help us to get rid of 'struct route*'.
ok vgross@
|
|
hardmtu, pick a value of 65435 that leaves space for some
encapsulation and almost a complete max-IP packet. After some
discussion we picked this arbitrary value.
OK dlg@
|
|
OK mikeb@
|
|
Since ether_input expects the m_data to point directly at the Ethernet
header and most upper layer protocols immediately following Ethernet
expect their headers to be aligned to the 4 byte boundary, we need to
ensure that the decapsulated VXLAN packet payload satisfies these
requirements.
prompted by a diff by vgross@, with input from dlg@, ok yasuoka
|
|
entire ethernet header on first mbuf and align 32bit at the payload.
Also fix the vxlan_output() not to cause an alignment fault. Use a
new mbuf for VXLAN header instead of M_PREPEND to make sure that the
mbuf is aligned 32bit. This is required to align 32 bit at the outer
IP header.
input vgross mikeb
ok dlg
|
|
ok reyk
|
|
confusion about the tunnel endpoints when responding to the peer.
OK yasuoka@
|
|
Use the dst of the bridge_tunneltag for src on vxlan output and vice
versa.
ok reyk
|
|
ok reyk
|
|
UDP src port - the VXLAN RFC clearly says that packet should be send
to the configured VXLAN port (4789).
OK mpi@
|
|
mode, vxlan(4) must be configured to accept any virtual network
identifier with "vnetid any" and added to a bridge(4) or switch(4).
This way the driver will dynamically learn the tunnel endpoints and
their vnetids for the responses and can be used to dynamically bridge
between VXLANs. It is also being used in combination with switch(4)
and the OpenFlow tunnel classifiers.
With input from yasuoka@ goda@
OK deraadt@ dlg@
|
|
|
|
No functional change.
|
|
unicast mode, multicast is not yet supported.
ifconfig vxlan0 tunnel fd00::1 fd00::2
Roughly based on an earlier diff by goda@
OK yasuoka@
|
|
MCAST flags have to be cleared from the mbuf after decapsulating
packets. This fixes tunneled broadcast packets, eg. ARP. It used to
work before the input path was changed the flags got cleared later in
the stack.
OK yasuoka@
|
|
|
|
ok reyk@ yasuoka@
|
|
From David Hill, ok dlg@
|
|
|
|
<net/if_vxlan.h> is included.
|
|
|
|
the abstract vnetid is promoted to a uin32_t, and adds a SIOCDVNETID
ioctl so it can be cleared.
this is all because i set an assignment on implementing a virtual
network interface and the students got confused when vnetid 0 didnt
show up in ifconfig output.
the vnetid in the vxlan(4) protocol is optional, but the current
code confuses 0 with no vnetid being set. this makes it clear.
ok reyk@ who also simplified my diff
|
|
checked already at beginning of the loop.
ok reyk
|
|
ok mikeb@ mpi@
|
|
interface whose tunnel destination corresponded to the incoming packets'
source address.
ok reyk
|
|
ok mpi@ claudio@
|
|
if_input() has been designed to be able to safely handle a batch of
packets from physical drivers to the network stack. Most of these
drivers have an interrupt routine executed at IPL_NET and the check
made sense during the conversion. However we also want to re-enqueue
packets with if_input() from the network stack currently running at
IPL_SOFTNET.
ok claudio@
|
|
ok reyk@ mpi@
|
|
Note that pseudo-drivers not using if_input() are not affected by this
conversion.
ok mikeb@, kettenis@, claudio@, dlg@
|
|
if_input().
Needed for the upcoming pseudo-driver integration work.
ok dlg@
|
|
might be overwritten by pseudo-drivers.
ok dlg@, henning@
|
|
have any direct symbols used. Tested for indirect use by compiling
amd64/i386/sparc64 kernels.
ok tedu@ deraadt@
|
|
before <net/pfvar.h> or <net/if_pflog.h>. The kernel files can be
cleaned up next. Some sockaddr_union steps make it into here as well.
ok naddy
|
|
long live the one true internet.
ok henning mikeb
|
|
Prodded by claudio@ and mikeb@
|
|
Output interface (port) selection for multicast traffic is not done via
route lookups. Instead the output ifp is registred when setsockopt(2)
is called with the IP{V6,}_MULTICAST_IF option. But since there is no
mechanism to invalidate such pointer stored in a pcb when an interface
is destroyed/removed, it might lead your kernel to fault.
Prevent a fault upon resume reported by frantisek holop, thanks!
ok mikeb@, claudio@
|