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;
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 */
/* LISP PITR mode */
u8 lisp_pitr;
+ /* map request mode */
+ u8 map_request_mode;
+
/* commodity */
ip4_main_t *im4;
ip6_main_t *im6;
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 ();
u8 authoritative;
u8 local;
+ u8 is_static;
} vnet_lisp_add_del_mapping_args_t;
int
int
vnet_lisp_add_del_mapping (gid_address_t * deid, locator_t * dlocs, u8 action,
- u8 authoritative, u32 ttl, u8 is_add,
+ u8 authoritative, u32 ttl, u8 is_add, u8 is_static,
u32 * res_map_index);
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;
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)