diff options
author | Florin Coras <fcoras@cisco.com> | 2016-07-22 01:45:30 +0200 |
---|---|---|
committer | Florin Coras <fcoras@cisco.com> | 2016-07-31 15:52:42 +0200 |
commit | 1a1adc7121e698743a64141373966041efc5f2e7 (patch) | |
tree | 1ebc8b57943f706ae2ac3268e631e8c07d43b3f2 /vpp | |
parent | d038dbf4aa42781a3962326eb49235b04a95f416 (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.c | 9 | ||||
-rw-r--r-- | vpp/vpp-api/vpe.api | 7 |
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 |