VXLAN over IPv6. 74/874/10
authorChris Luke <chrisy@flirble.org>
Tue, 26 Apr 2016 14:49:53 +0000 (10:49 -0400)
committerChris Luke <chrisy@flirble.org>
Thu, 28 Apr 2016 19:13:01 +0000 (15:13 -0400)
commit99cb335ac1209d5bb7ede754f59d7df898ae0e81
tree406b1741f6cbd1750ded32e6f047645080e74313
parent1589576c57e4bfb2b81dc5237e0af74130cb908f
VXLAN over IPv6.

Refactors the VXLAN node to work with both IPv4 and IPv6 transports.

There is a discussion thread for this change at
https://lists.fd.io/pipermail/vpp-dev/2016-March/000279.html

Note that this changes the binary configuration API to support both
address families; each address uses the same memory for either address
type and a flag to indicate which is in use. This also includes changes
to the Java API to support both address families.

The CLI and VAT syntax remains unchanged; the code detects whether an
IPv4 or an IPv6 address was given.

Configuration examples:

IPv4 CLI: create vxlan tunnel src 192.168.1.1 dst 192.168.1.2
                vni 10 encap-vrf-id 0 decap-next l2
IPv6 CLI: create vxlan tunnel src 2620:124:9000::1 dst 2620:124:9000::2
                vni 16 encap-vrf-id 0 decap-next l2

IPv4 VAT: vxlan_add_del_tunnel src 192.168.1.1 dst 192.168.1.2
                vni 10 encap-vrf-id 0 decap-next l2
IPv6 VAT: vxlan_add_del_tunnel src 2620:124:9000::1 dst 2620:124:9000::2
                vni 16 encap-vrf-id 0 decap-next l2

TODO: The encap path is not as optimal as it could be.

Change-Id: I87be8bf0501e0c9cd7e401be4542bb599f1b6e47
Signed-off-by: Chris Luke <chrisy@flirble.org>
13 files changed:
vnet/vnet/api_errno.h
vnet/vnet/ip/udp.h
vnet/vnet/vxlan/decap.c
vnet/vnet/vxlan/encap.c
vnet/vnet/vxlan/vxlan.c
vnet/vnet/vxlan/vxlan.h
vpp-api-test/vat/api_format.c
vpp-api/java/japi/org/openvpp/vppjapi/vppVxlanTunnelDetails.java
vpp-api/java/japi/vppjni.c
vpp-api/java/japi/vppjni.h
vpp/api/api.c
vpp/api/custom_dump.c
vpp/api/vpe.api