aboutsummaryrefslogtreecommitdiffstats
path: root/vnet/vnet/lisp-cp/control.h
diff options
context:
space:
mode:
authorFlorin Coras <fcoras@cisco.com>2016-07-22 01:45:30 +0200
committerFlorin Coras <fcoras@cisco.com>2016-07-31 15:52:42 +0200
commit1a1adc7121e698743a64141373966041efc5f2e7 (patch)
tree1ebc8b57943f706ae2ac3268e631e8c07d43b3f2 /vnet/vnet/lisp-cp/control.h
parentd038dbf4aa42781a3962326eb49235b04a95f416 (diff)
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 <fcoras@cisco.com>
Diffstat (limited to 'vnet/vnet/lisp-cp/control.h')
-rw-r--r--vnet/vnet/lisp-cp/control.h13
1 files changed, 8 insertions, 5 deletions
diff --git a/vnet/vnet/lisp-cp/control.h b/vnet/vnet/lisp-cp/control.h
index 4d5006e530e..74ade39cc58 100644
--- a/vnet/vnet/lisp-cp/control.h
+++ b/vnet/vnet/lisp-cp/control.h
@@ -96,14 +96,17 @@ typedef struct
/* map-request locator set index */
u32 mreq_itr_rlocs;
- /* Lookup vrf by vni */
+ /* vni to vrf hash tables */
uword * table_id_by_vni;
-
- /* Lookup vni by vrf */
uword * vni_by_table_id;
- /* Number of src prefixes in a vni that use an interface */
+ /* vni to bd-index hash tables */
+ uword * bd_id_by_vni;
+ uword * vni_by_bd_id;
+
+ /* track l2 and l3 interfaces that have been created for vni */
uword * dp_intf_by_vni;
+ uword * l2_dp_intf_by_vni;
/* Proxy ETR map index */
u32 pitr_map_index;
@@ -216,6 +219,6 @@ int
vnet_lisp_clear_all_remote_adjacencies (void);
int
-vnet_lisp_eid_table_map (u32 vni, u32 vrf, u8 is_add);
+vnet_lisp_eid_table_map (u32 vni, u32 vrf, u8 is_l2, u8 is_add);
#endif /* VNET_CONTROL_H_ */