aboutsummaryrefslogtreecommitdiffstats
path: root/vpp
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 /vpp
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 'vpp')
-rw-r--r--vpp/vpp-api/api.c9
-rw-r--r--vpp/vpp-api/vpe.api7
2 files changed, 9 insertions, 7 deletions
diff --git a/vpp/vpp-api/api.c b/vpp/vpp-api/api.c
index 6796b575..dcaedac3 100644
--- a/vpp/vpp-api/api.c
+++ b/vpp/vpp-api/api.c
@@ -4949,7 +4949,8 @@ vl_api_lisp_eid_table_add_del_map_t_handler(
vl_api_lisp_eid_table_add_del_map_reply_t *rmp;
int rv = 0;
rv = vnet_lisp_eid_table_map (clib_net_to_host_u32 (mp->vni),
- clib_net_to_host_u32 (mp->vrf), mp->is_add);
+ clib_net_to_host_u32 (mp->dp_table),
+ mp->is_l2, mp->is_add);
REPLY_MACRO(VL_API_LISP_EID_TABLE_ADD_DEL_MAP_REPLY)
}
@@ -5010,9 +5011,9 @@ vl_api_lisp_gpe_add_del_fwd_entry_t_handler(
memset (&a, 0, sizeof(a));
a.is_add = mp->is_add;
- a.deid = eid;
- a.slocator = slocator;
- a.dlocator = dlocator;
+ a.rmt_eid = eid;
+ a.lcl_loc = slocator;
+ a.rmt_loc = dlocator;
rv = vnet_lisp_gpe_add_del_fwd_entry (&a, 0);
REPLY_MACRO(VL_API_LISP_GPE_ADD_DEL_FWD_ENTRY_REPLY);
diff --git a/vpp/vpp-api/vpe.api b/vpp/vpp-api/vpe.api
index 2019f3ae..ebadda85 100644
--- a/vpp/vpp-api/vpe.api
+++ b/vpp/vpp-api/vpe.api
@@ -2495,11 +2495,11 @@ define lisp_add_del_map_request_itr_rlocs_reply {
i32 retval;
};
-/** \brief map/unmap vni to vrf
+/** \brief map/unmap vni/bd_index to vrf
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
@param is_add - add or delete mapping
- @param vni - virtual network id
+ @param dp_table - virtual network id/bridge domain index
@param vrf - vrf
*/
define lisp_eid_table_add_del_map {
@@ -2507,7 +2507,8 @@ define lisp_eid_table_add_del_map {
u32 context;
u8 is_add;
u32 vni;
- u32 vrf;
+ u32 dp_table;
+ u8 is_l2;
};
/** \brief Reply for lisp_eid_table_add_del_map