Re: [RFC Patch net-next] vxlan: add ipv6 support
From: Cong Wang <hidden>
Date: 2013-03-01 03:31:41
On Thu, 2013-02-28 at 16:07 -0500, Vlad Yasevich wrote:
On 02/28/2013 05:33 AM, Thomas Graf wrote:quoted
On 02/28/13 at 02:01pm, Cong Wang wrote:quoted
WARNING: This is just an RFC patch, it only compiles!! This patch adds IPv6 support to vxlan device, as the new version RFC already mentioned it: http://tools.ietf.org/html/draft-mahalingam-dutt-dcops-vxlan-03 I am not sure if the following trick will work: + if (nla_len(nla) == sizeof(__be32)) { + ip->ip4 = nla_get_be32(nla); + ip->proto = htons(ETH_P_IP); + } +#if IS_ENABLED(CONFIG_IPV6) + else if (nla_len(nla) == sizeof(struct in6_addr)) { + nla_memcpy(&ip->ip6, nla, sizeof(struct in6_addr)); + ip->proto = htons(ETH_P_IPV6); + } +#endif otherwise we have to introduce some new netlink attributes for IPv6 addresses? Any comments?How about setting ndm_family to AF_INET6 and parse NDA_DST based on that?Not sure if you can do that without registering your own fdb netlink handler. rtnl_fdb_add is registered for PF_BRIDGE family.
Yeah...
You could do that, or use NDA_DST similar to how neighbor table uses it. There the data inside of NDA_DST holds an address family and other data.
The data inside NDA_DST in neighbor table is the IP address used as a
key:
if (nla_put(skb, NDA_DST, neigh->tbl->key_len,
neigh->primary_key))
goto nla_put_failure;
there is not address family inside it.
Thanks.