VPP-450 Fix adding LISP adjacencies via CLI
[vpp.git] / vnet / vnet / lisp-cp / control.h
index 76590b2..d9dc81d 100644 (file)
@@ -37,8 +37,8 @@ typedef struct
 
 typedef struct
 {
-  gid_address_t seid;
-  gid_address_t deid;
+  gid_address_t leid;
+  gid_address_t reid;
   locator_pair_t *locator_pairs;
 } fwd_entry_t;
 
@@ -63,6 +63,13 @@ typedef struct
   miss_packet_type_t type;
 } miss_packet_t;
 
+typedef enum
+{
+  MR_MODE_DST_ONLY = 0,
+  MR_MODE_SRC_DST,
+  _MR_MODE_MAX
+} map_request_mode_t;
+
 typedef struct
 {
   /* LISP feature status */
@@ -138,6 +145,9 @@ typedef struct
   /* LISP PITR mode */
   u8 lisp_pitr;
 
+  /* map request mode */
+  u8 map_request_mode;
+
   /* commodity */
   ip4_main_t *im4;
   ip6_main_t *im6;
@@ -149,7 +159,8 @@ typedef struct
 lisp_cp_main_t lisp_control_main;
 
 extern vlib_node_registration_t lisp_cp_input_node;
-extern vlib_node_registration_t lisp_cp_lookup_node;
+extern vlib_node_registration_t lisp_cp_lookup_ip4_node;
+extern vlib_node_registration_t lisp_cp_lookup_ip6_node;
 
 clib_error_t *lisp_cp_init ();
 
@@ -206,8 +217,8 @@ vnet_lisp_add_del_mapping (gid_address_t * deid, locator_t * dlocs, u8 action,
 
 typedef struct
 {
-  gid_address_t deid;
-  gid_address_t seid;
+  gid_address_t reid;
+  gid_address_t leid;
   u8 is_add;
 } vnet_lisp_add_del_adjacency_args_t;
 
@@ -239,6 +250,8 @@ vnet_lisp_add_del_mreq_itr_rlocs (vnet_lisp_add_del_mreq_itr_rloc_args_t * a);
 int vnet_lisp_clear_all_remote_adjacencies (void);
 
 int vnet_lisp_eid_table_map (u32 vni, u32 vrf, u8 is_l2, u8 is_add);
+int vnet_lisp_set_map_request_mode (u8 mode);
+u8 vnet_lisp_get_map_request_mode (void);
 
 static inline void
 lisp_pending_map_request_lock (lisp_cp_main_t * lcm)