You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge branch 'vxlan-cleanup-and-IPv6-link-local-support'
Matthias Schiffer says: ==================== vxlan: cleanup and IPv6 link-local support Running VXLANs over IPv6 link-local addresses allows to use them as a drop-in replacement for VLANs, avoiding to allocate additional outer IP addresses to run the VXLAN over. Since v1, I have added a lot more consistency checks to the address configuration, making sure address families and scopes match. To simplify the implementation, I also did some general refactoring of the configuration handling in the new first patch of the series. The second patch is more cleanup; is slightly touches OVS code, so that list is in CC this time, too. As in v1, the last two patches actually make VXLAN over IPv6 link-local work, and allow multiple VXLANs with the same VNI and port, as long as link-local addresses on different interfaces are used. As suggested, I now store in the flags field if the VXLAN uses link-local addresses or not. v3 removes log messages as suggested by Roopa Prabhu (as it is very unusual for errors in netlink requests to be printed to the kernel log.) The commit message of patch 5 has been extended to add a note about IPv4. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
+268
-178
File diff suppressed because it is too large
Load Diff
+2
-1
@@ -232,7 +232,6 @@ struct vxlan_dev {
|
||||
struct net_device *dev;
|
||||
struct net *net; /* netns for packet i/o */
|
||||
struct vxlan_rdst default_dst; /* default destination */
|
||||
u32 flags; /* VXLAN_F_* in vxlan.h */
|
||||
|
||||
struct timer_list age_timer;
|
||||
spinlock_t hash_lock;
|
||||
@@ -259,6 +258,7 @@ struct vxlan_dev {
|
||||
#define VXLAN_F_REMCSUM_NOPARTIAL 0x1000
|
||||
#define VXLAN_F_COLLECT_METADATA 0x2000
|
||||
#define VXLAN_F_GPE 0x4000
|
||||
#define VXLAN_F_IPV6_LINKLOCAL 0x8000
|
||||
|
||||
/* Flags that are used in the receive path. These flags must match in
|
||||
* order for a socket to be shareable
|
||||
@@ -273,6 +273,7 @@ struct vxlan_dev {
|
||||
/* Flags that can be set together with VXLAN_F_GPE. */
|
||||
#define VXLAN_F_ALLOWED_GPE (VXLAN_F_GPE | \
|
||||
VXLAN_F_IPV6 | \
|
||||
VXLAN_F_IPV6_LINKLOCAL | \
|
||||
VXLAN_F_UDP_ZERO_CSUM_TX | \
|
||||
VXLAN_F_UDP_ZERO_CSUM6_TX | \
|
||||
VXLAN_F_UDP_ZERO_CSUM6_RX | \
|
||||
|
||||
@@ -40,14 +40,14 @@ static int vxlan_get_options(const struct vport *vport, struct sk_buff *skb)
|
||||
if (nla_put_u16(skb, OVS_TUNNEL_ATTR_DST_PORT, ntohs(dst_port)))
|
||||
return -EMSGSIZE;
|
||||
|
||||
if (vxlan->flags & VXLAN_F_GBP) {
|
||||
if (vxlan->cfg.flags & VXLAN_F_GBP) {
|
||||
struct nlattr *exts;
|
||||
|
||||
exts = nla_nest_start(skb, OVS_TUNNEL_ATTR_EXTENSION);
|
||||
if (!exts)
|
||||
return -EMSGSIZE;
|
||||
|
||||
if (vxlan->flags & VXLAN_F_GBP &&
|
||||
if (vxlan->cfg.flags & VXLAN_F_GBP &&
|
||||
nla_put_flag(skb, OVS_VXLAN_EXT_GBP))
|
||||
return -EMSGSIZE;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user