mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-30 08:02:30 +00:00
vxlan: add ipv6 support
This patch adds IPv6 support to vxlan device, as the new version RFC already mentions it: http://tools.ietf.org/html/draft-mahalingam-dutt-dcops-vxlan-03 Cc: David Stevens <dlstevens@us.ibm.com> Cc: Stephen Hemminger <stephen@networkplumber.org> Cc: David S. Miller <davem@davemloft.net> Signed-off-by: Cong Wang <amwang@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
caf92bc400
commit
e4c7ed4153
4 changed files with 628 additions and 154 deletions
File diff suppressed because it is too large
Load diff
|
@ -25,7 +25,7 @@ struct vxlan_sock {
|
||||||
|
|
||||||
struct vxlan_sock *vxlan_sock_add(struct net *net, __be16 port,
|
struct vxlan_sock *vxlan_sock_add(struct net *net, __be16 port,
|
||||||
vxlan_rcv_t *rcv, void *data,
|
vxlan_rcv_t *rcv, void *data,
|
||||||
bool no_share);
|
bool no_share, bool ipv6);
|
||||||
|
|
||||||
void vxlan_sock_release(struct vxlan_sock *vs);
|
void vxlan_sock_release(struct vxlan_sock *vs);
|
||||||
|
|
||||||
|
|
|
@ -314,6 +314,8 @@ enum {
|
||||||
IFLA_VXLAN_L2MISS,
|
IFLA_VXLAN_L2MISS,
|
||||||
IFLA_VXLAN_L3MISS,
|
IFLA_VXLAN_L3MISS,
|
||||||
IFLA_VXLAN_PORT, /* destination port */
|
IFLA_VXLAN_PORT, /* destination port */
|
||||||
|
IFLA_VXLAN_GROUP6,
|
||||||
|
IFLA_VXLAN_LOCAL6,
|
||||||
__IFLA_VXLAN_MAX
|
__IFLA_VXLAN_MAX
|
||||||
};
|
};
|
||||||
#define IFLA_VXLAN_MAX (__IFLA_VXLAN_MAX - 1)
|
#define IFLA_VXLAN_MAX (__IFLA_VXLAN_MAX - 1)
|
||||||
|
|
|
@ -123,7 +123,7 @@ static struct vport *vxlan_tnl_create(const struct vport_parms *parms)
|
||||||
vxlan_port = vxlan_vport(vport);
|
vxlan_port = vxlan_vport(vport);
|
||||||
strncpy(vxlan_port->name, parms->name, IFNAMSIZ);
|
strncpy(vxlan_port->name, parms->name, IFNAMSIZ);
|
||||||
|
|
||||||
vs = vxlan_sock_add(net, htons(dst_port), vxlan_rcv, vport, true);
|
vs = vxlan_sock_add(net, htons(dst_port), vxlan_rcv, vport, true, false);
|
||||||
if (IS_ERR(vs)) {
|
if (IS_ERR(vs)) {
|
||||||
ovs_vport_free(vport);
|
ovs_vport_free(vport);
|
||||||
return (void *)vs;
|
return (void *)vs;
|
||||||
|
|
Loading…
Reference in a new issue