Initial L2 LISP support
authorFlorin Coras <[email protected]>
Thu, 21 Jul 2016 23:45:30 +0000 (01:45 +0200)
committerFlorin Coras <[email protected]>
Sun, 31 Jul 2016 13:52:42 +0000 (15:52 +0200)
commit1a1adc7121e698743a64141373966041efc5f2e7
tree1ebc8b57943f706ae2ac3268e631e8c07d43b3f2
parentd038dbf4aa42781a3962326eb49235b04a95f416
Initial L2 LISP support

This introduces support for layer 2 overlays with LISP. Similarly to L3,
all tenant packets to be encapsulated are captured by an interface, but
the mapping (layer binding) instead of being between an L3 VRF and a
LISP VNI, it is between and an L2 bridge domain and a VNI. At a high
level, this results in two important properties:
1) the source and destinations of all packets flooded in the
   bridge-domain are mapped via the LISP control plane and the replies are
   converted into data-plane tunnels tracked via a LISP specific
   source/dest L2 FIB
2) All packets reaching the interface and matching a source/dest L2 LISP
   FIB entry are L3 (IP4/6) encapsulated.

This is solely a unicast feature, therefore at this time ARPs are not
handled in any special way.

Change-Id: I0b7badcd7c6d5166db07d4acd2cc4ae7fba3e18e
Signed-off-by: Florin Coras <[email protected]>
18 files changed:
vnet/vnet/buffer.h
vnet/vnet/l2/l2_input.h
vnet/vnet/lisp-cp/control.c
vnet/vnet/lisp-cp/control.h
vnet/vnet/lisp-cp/gid_dictionary.c
vnet/vnet/lisp-cp/lisp_cp_messages.h
vnet/vnet/lisp-cp/lisp_msg_serdes.c
vnet/vnet/lisp-cp/lisp_types.c
vnet/vnet/lisp-cp/lisp_types.h
vnet/vnet/lisp-cp/packets.h
vnet/vnet/lisp-gpe/decap.c
vnet/vnet/lisp-gpe/interface.c
vnet/vnet/lisp-gpe/ip_forward.c
vnet/vnet/lisp-gpe/lisp_gpe.c
vnet/vnet/lisp-gpe/lisp_gpe.h
vpp-api-test/vat/api_format.c
vpp/vpp-api/api.c
vpp/vpp-api/vpe.api