Age | Commit message (Collapse) | Author |
|
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@
|
|
ok mikeb@, krw@, bluhm@, tedu@
|
|
|
|
|
|
after discussions with beck deraadt kettenis.
|
|
ever used to pass on uint32 (for ipsec). stop that madness and just pass
the uint32, 0 in all cases but the two that pass the ipsec flowinfo.
ok deraadt reyk guenther
|
|
Avoid the confusion by using an appropriate name for the variable.
Note that since routing domain IDs are a subset of the set of routing
table IDs, the following idiom is correct:
rtableid = rdomain
But to get the routing domain ID corresponding to a given routing table
ID, you must call rtable_l2(9).
claudio@ likes it, ok mikeb@
|
|
`sc_rtableid' into `sc_rdomain'. No functional change.
ok reyk@
|
|
|
|
hook to track any changes of the parent multicast interface.
|
|
them ignore the SIOC{ADD,DEL}MULTI ioctls.
ok reyk@, claudio@
|
|
configuration steps. But vxlan(4) has to configure the link state and
address hooks of a parent interface that potentially need splnet().
So revert everything back to use splnet() for now.
Discussed with mpi@
|
|
and link state changes on the interface that is sending out the tunnel
traffic. Attach a link state and address hook in this case and reset the
multicast configuration. This also fixes a problem on VMware that looses
the multicast associations when the virtual link state of the NIC is
triggered.
|
|
a vxlan(4) interface and convert some splnet() to splsoftnet() when
appropriate.
ok reyk@
|