vxlan: source compatiablity with IFLA_VXLAN_GROUP (v2)
authorstephen hemminger <stephen@networkplumber.org>
Sat, 27 Apr 2013 11:31:55 +0000 (11:31 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 29 Apr 2013 15:53:12 +0000 (11:53 -0400)
Source compatiability for build iproute2 was broken by:
  commit c7995c43facc6e5dea4de63fa9d283a337aabeb1
  Author: Atzm Watanabe <atzm@stratosphere.co.jp>
    vxlan: Allow setting destination to unicast address.

Since this commit has not made it upstream (still net-next),
and better to avoid gratitious changes to exported API's;
go back to original definition, and add a comment.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/vxlan.c
include/uapi/linux/if_link.h

index e6ac16cd9ba25398e32b36e734d782ae6fdf7787..d8de8a1303eba465fe734ba519d364a4ba69ed83 100644 (file)
@@ -1324,7 +1324,7 @@ static void vxlan_setup(struct net_device *dev)
 
 static const struct nla_policy vxlan_policy[IFLA_VXLAN_MAX + 1] = {
        [IFLA_VXLAN_ID]         = { .type = NLA_U32 },
-       [IFLA_VXLAN_REMOTE]     = { .len = FIELD_SIZEOF(struct iphdr, daddr) },
+       [IFLA_VXLAN_GROUP]      = { .len = FIELD_SIZEOF(struct iphdr, daddr) },
        [IFLA_VXLAN_LINK]       = { .type = NLA_U32 },
        [IFLA_VXLAN_LOCAL]      = { .len = FIELD_SIZEOF(struct iphdr, saddr) },
        [IFLA_VXLAN_TOS]        = { .type = NLA_U8 },
@@ -1406,8 +1406,8 @@ static int vxlan_newlink(struct net *net, struct net_device *dev,
        }
        dst->remote_vni = vni;
 
-       if (data[IFLA_VXLAN_REMOTE])
-               dst->remote_ip = nla_get_be32(data[IFLA_VXLAN_REMOTE]);
+       if (data[IFLA_VXLAN_GROUP])
+               dst->remote_ip = nla_get_be32(data[IFLA_VXLAN_GROUP]);
 
        if (data[IFLA_VXLAN_LOCAL])
                vxlan->saddr = nla_get_be32(data[IFLA_VXLAN_LOCAL]);
@@ -1488,7 +1488,7 @@ static size_t vxlan_get_size(const struct net_device *dev)
 {
 
        return nla_total_size(sizeof(__u32)) +  /* IFLA_VXLAN_ID */
-               nla_total_size(sizeof(__be32)) +/* IFLA_VXLAN_REMOTE */
+               nla_total_size(sizeof(__be32)) +/* IFLA_VXLAN_GROUP */
                nla_total_size(sizeof(__u32)) + /* IFLA_VXLAN_LINK */
                nla_total_size(sizeof(__be32))+ /* IFLA_VXLAN_LOCAL */
                nla_total_size(sizeof(__u8)) +  /* IFLA_VXLAN_TTL */
@@ -1516,7 +1516,7 @@ static int vxlan_fill_info(struct sk_buff *skb, const struct net_device *dev)
        if (nla_put_u32(skb, IFLA_VXLAN_ID, dst->remote_vni))
                goto nla_put_failure;
 
-       if (dst->remote_ip && nla_put_be32(skb, IFLA_VXLAN_REMOTE, dst->remote_ip))
+       if (dst->remote_ip && nla_put_be32(skb, IFLA_VXLAN_GROUP, dst->remote_ip))
                goto nla_put_failure;
 
        if (dst->remote_ifindex && nla_put_u32(skb, IFLA_VXLAN_LINK, dst->remote_ifindex))
index e3163544f3391be88ce4a98b1673a763d4e304c9..5346131524e437946431d31f66efbe5e5c93a7ce 100644 (file)
@@ -297,7 +297,7 @@ enum macvlan_mode {
 enum {
        IFLA_VXLAN_UNSPEC,
        IFLA_VXLAN_ID,
-       IFLA_VXLAN_REMOTE,
+       IFLA_VXLAN_GROUP,       /* group or remote address */
        IFLA_VXLAN_LINK,
        IFLA_VXLAN_LOCAL,
        IFLA_VXLAN_TTL,