FD.io VPP  v16.09
Vector Packet Processing
control.c File Reference
+ Include dependency graph for control.c:

Go to the source code of this file.

Data Structures

struct  map_request_args_t
 
struct  lisp_cp_lookup_trace_t
 
struct  lisp_cp_input_trace_t
 

Macros

#define foreach_lisp_cp_lookup_error
 
#define send_encapsulated_map_request(lcm, seid, deid, smr)   _send_encapsulated_map_request(lcm, seid, deid, smr, 0)
 
#define resend_encapsulated_map_request(lcm, seid, deid, smr)   _send_encapsulated_map_request(lcm, seid, deid, smr, 1)
 
#define foreach_lisp_cp_input_error
 

Enumerations

enum  lisp_cp_lookup_error_t { LISP_CP_LOOKUP_N_ERROR }
 
enum  lisp_cp_lookup_next_t { LISP_CP_LOOKUP_NEXT_DROP, LISP_CP_LOOKUP_NEXT_IP4_LOOKUP, LISP_CP_LOOKUP_NEXT_IP6_LOOKUP, LISP_CP_LOOKUP_N_NEXT }
 
enum  lisp_cp_input_error_t { LISP_CP_INPUT_N_ERROR }
 
enum  lisp_cp_input_next_t { LISP_CP_INPUT_NEXT_DROP, LISP_CP_INPUT_N_NEXT }
 

Functions

static int queue_map_request (gid_address_t *seid, gid_address_t *deid, u8 smr_invoked, u8 is_resend)
 
ip_interface_address_tip_interface_get_first_interface_address (ip_lookup_main_t *lm, u32 sw_if_index, u8 loop)
 
void * ip_interface_get_first_address (ip_lookup_main_t *lm, u32 sw_if_index, u8 version)
 
int ip_interface_get_first_ip_address (lisp_cp_main_t *lcm, u32 sw_if_index, u8 version, ip_address_t *result)
 
static u32 ip_fib_lookup_with_table (lisp_cp_main_t *lcm, u32 fib_index, ip_address_t *dst)
 
u32 ip_fib_get_egress_iface_for_dst_with_lm (lisp_cp_main_t *lcm, ip_address_t *dst, ip_lookup_main_t *lm)
 
u32 ip_fib_get_egress_iface_for_dst (lisp_cp_main_t *lcm, ip_address_t *dst)
 Find the sw_if_index of the interface that would be used to egress towards dst. More...
 
int ip_fib_get_first_egress_ip_for_dst (lisp_cp_main_t *lcm, ip_address_t *dst, ip_address_t *result)
 Find first IP of the interface that would be used to egress towards dst. More...
 
static int dp_add_del_iface (lisp_cp_main_t *lcm, u32 vni, u8 is_l2, u8 is_add)
 
static void dp_del_fwd_entry (lisp_cp_main_t *lcm, u32 src_map_index, u32 dst_map_index)
 
static u32 get_locator_pairs (lisp_cp_main_t *lcm, mapping_t *lcl_map, mapping_t *rmt_map, locator_pair_t **locator_pairs)
 Finds first remote locator with best (lowest) priority that has a local peer locator with an underlying route to it. More...
 
static void dp_add_fwd_entry (lisp_cp_main_t *lcm, u32 src_map_index, u32 dst_map_index)
 
int vnet_lisp_map_cache_add_del (vnet_lisp_add_del_mapping_args_t *a, u32 *map_index_result)
 Add/remove mapping to/from map-cache. More...
 
int vnet_lisp_add_del_local_mapping (vnet_lisp_add_del_mapping_args_t *a, u32 *map_index_result)
 Add/update/delete mapping to/in/from map-cache. More...
 
static clib_error_tlisp_add_del_local_eid_command_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
int vnet_lisp_eid_table_map (u32 vni, u32 dp_id, u8 is_l2, u8 is_add)
 
static clib_error_tlisp_eid_table_map_command_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
static u8 compare_locators (lisp_cp_main_t *lcm, u32 *old_ls_indexes, locator_t *new_locators)
 
int vnet_lisp_add_del_mapping (gid_address_t *eid, locator_t *rlocs, u8 action, u8 authoritative, u32 ttl, u8 is_add, u8 is_static, u32 *res_map_index)
 Adds/removes/updates mapping. More...
 
int vnet_lisp_clear_all_remote_adjacencies (void)
 
int lisp_add_del_adjacency (lisp_cp_main_t *lcm, gid_address_t *local_eid, gid_address_t *remote_eid, u8 is_add)
 Adds adjacency or removes forwarding entry associated to remote mapping. More...
 
int vnet_lisp_add_del_adjacency (vnet_lisp_add_del_adjacency_args_t *a)
 
static clib_error_tlisp_add_del_remote_mapping_command_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 Handler for add/del remote mapping CLI. More...
 
static clib_error_tlisp_add_del_adjacency_command_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 Handler for add/del adjacency CLI. More...
 
static clib_error_tlisp_show_map_resolvers_command_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
int vnet_lisp_pitr_set_locator_set (u8 *locator_set_name, u8 is_add)
 
static clib_error_tlisp_pitr_set_locator_set_command_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
static clib_error_tlisp_show_pitr_command_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
static u8format_eid_entry (u8 *s, va_list *args)
 
static clib_error_tlisp_show_eid_table_command_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
static void clean_locator_to_locator_set (lisp_cp_main_t *lcm, u32 lsi)
 
static uwordget_locator_set_index (vnet_lisp_add_del_locator_set_args_t *a, uword *p)
 
static int is_locator_in_locator_set (lisp_cp_main_t *lcm, locator_set_t *ls, locator_t *loc)
 
static void remove_locator_from_locator_set (locator_set_t *ls, u32 *locit, u32 ls_index, u32 loc_id)
 
int vnet_lisp_add_del_locator (vnet_lisp_add_del_locator_set_args_t *a, locator_set_t *ls, u32 *ls_result)
 
int vnet_lisp_add_del_locator_set (vnet_lisp_add_del_locator_set_args_t *a, u32 *ls_result)
 
clib_error_tvnet_lisp_enable_disable (u8 is_enable)
 
static clib_error_tlisp_enable_disable_command_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
u8 vnet_lisp_enable_disable_status (void)
 
static u8format_lisp_status (u8 *s, va_list *args)
 
static clib_error_tlisp_show_status_command_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
static clib_error_tlisp_show_eid_table_map_command_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
static clib_error_tlisp_add_del_locator_set_command_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
static clib_error_tlisp_add_del_locator_in_set_command_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
static clib_error_tlisp_cp_show_locator_sets_command_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
static map_resolver_tget_map_resolver (ip_address_t *a)
 
int vnet_lisp_add_del_map_resolver (vnet_lisp_add_del_map_resolver_args_t *a)
 
static clib_error_tlisp_add_del_map_resolver_command_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
int vnet_lisp_add_del_mreq_itr_rlocs (vnet_lisp_add_del_mreq_itr_rloc_args_t *a)
 
static clib_error_tlisp_add_del_mreq_itr_rlocs_command_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
static clib_error_tlisp_show_mreq_itr_rlocs_command_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
u8format_lisp_cp_lookup_trace (u8 *s, va_list *args)
 
int get_mr_and_local_iface_ip (lisp_cp_main_t *lcm, ip_address_t *mr_ip, ip_address_t *sloc)
 
static gid_address_tbuild_itr_rloc_list (lisp_cp_main_t *lcm, locator_set_t *loc_set)
 
static vlib_buffer_tbuild_encapsulated_map_request (lisp_cp_main_t *lcm, gid_address_t *seid, gid_address_t *deid, locator_set_t *loc_set, ip_address_t *mr_ip, ip_address_t *sloc, u8 is_smr_invoked, u64 *nonce_res, u32 *bi_res)
 
static void reset_pending_mr_counters (pending_map_request_t *r)
 
static int elect_map_resolver (lisp_cp_main_t *lcm)
 
static void get_src_and_dst_ip (void *hdr, ip_address_t *src, ip_address_t *dst)
 
static u32 lisp_get_vni_from_buffer_ip (lisp_cp_main_t *lcm, vlib_buffer_t *b, u8 version)
 
static u32 lisp_get_vni_from_buffer_eth (lisp_cp_main_t *lcm, vlib_buffer_t *b)
 
static void get_src_and_dst_eids_from_buffer (lisp_cp_main_t *lcm, vlib_buffer_t *b, gid_address_t *src, gid_address_t *dst)
 
static uword lisp_cp_lookup (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame)
 
u8format_lisp_cp_input_trace (u8 *s, va_list *args)
 
void * process_map_reply (void *arg)
 
void process_map_request (vlib_main_t *vm, lisp_cp_main_t *lcm, vlib_buffer_t *b)
 
static void queue_map_reply (vlib_buffer_t *b)
 
static uword lisp_cp_input (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame)
 
clib_error_tlisp_cp_init (vlib_main_t *vm)
 
static void * send_map_request_thread_fn (void *arg)
 
static void update_pending_request (pending_map_request_t *r, f64 dt)
 Take an action with a pending map request depending on expiration time and re-try counters. More...
 
static void remove_dead_pending_map_requests (lisp_cp_main_t *lcm)
 
static uword send_map_resolver_service (vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
 

Variables

vlib_cli_command_t lisp_add_del_local_eid_command
 (constructor) VLIB_CLI_COMMAND (lisp_add_del_local_eid_command) More...
 
vlib_cli_command_t lisp_eid_table_map_command
 (constructor) VLIB_CLI_COMMAND (lisp_eid_table_map_command) More...
 
vlib_cli_command_t lisp_add_del_remote_mapping_command
 (constructor) VLIB_CLI_COMMAND (lisp_add_del_remote_mapping_command) More...
 
vlib_cli_command_t lisp_add_del_adjacency_command
 (constructor) VLIB_CLI_COMMAND (lisp_add_del_adjacency_command) More...
 
vlib_cli_command_t lisp_show_map_resolvers_command
 (constructor) VLIB_CLI_COMMAND (lisp_show_map_resolvers_command) More...
 
vlib_cli_command_t lisp_pitr_set_locator_set_command
 (constructor) VLIB_CLI_COMMAND (lisp_pitr_set_locator_set_command) More...
 
vlib_cli_command_t lisp_show_pitr_command
 (constructor) VLIB_CLI_COMMAND (lisp_show_pitr_command) More...
 
vlib_cli_command_t lisp_cp_show_eid_table_command
 (constructor) VLIB_CLI_COMMAND (lisp_cp_show_eid_table_command) More...
 
vlib_cli_command_t lisp_cp_enable_disable_command
 (constructor) VLIB_CLI_COMMAND (lisp_cp_enable_disable_command) More...
 
vlib_cli_command_t lisp_show_status_command
 (constructor) VLIB_CLI_COMMAND (lisp_show_status_command) More...
 
vlib_cli_command_t lisp_show_eid_table_map_command
 (constructor) VLIB_CLI_COMMAND (lisp_show_eid_table_map_command) More...
 
vlib_cli_command_t lisp_cp_add_del_locator_set_command
 (constructor) VLIB_CLI_COMMAND (lisp_cp_add_del_locator_set_command) More...
 
vlib_cli_command_t lisp_cp_add_del_locator_in_set_command
 (constructor) VLIB_CLI_COMMAND (lisp_cp_add_del_locator_in_set_command) More...
 
vlib_cli_command_t lisp_cp_show_locator_sets_command
 (constructor) VLIB_CLI_COMMAND (lisp_cp_show_locator_sets_command) More...
 
vlib_cli_command_t lisp_add_del_map_resolver_command
 (constructor) VLIB_CLI_COMMAND (lisp_add_del_map_resolver_command) More...
 
vlib_cli_command_t lisp_add_del_map_request_command
 (constructor) VLIB_CLI_COMMAND (lisp_add_del_map_request_command) More...
 
vlib_cli_command_t lisp_show_map_request_command
 (constructor) VLIB_CLI_COMMAND (lisp_show_map_request_command) More...
 
static char * lisp_cp_lookup_error_strings []
 
vlib_node_registration_t lisp_cp_lookup_node
 (constructor) VLIB_REGISTER_NODE (lisp_cp_lookup_node) More...
 
static char * lisp_cp_input_error_strings []
 
vlib_node_registration_t lisp_cp_input_node
 (constructor) VLIB_REGISTER_NODE (lisp_cp_input_node) More...
 
static vlib_node_registration_t lisp_retry_service_node
 (constructor) VLIB_REGISTER_NODE (lisp_retry_service_node) More...
 

Macro Definition Documentation

#define foreach_lisp_cp_input_error
Value:
_(DROP, "drop") \
_(MAP_REPLIES_RECEIVED, "map-replies received")
DROP
Definition: error.def:41

Definition at line 3059 of file control.c.

#define foreach_lisp_cp_lookup_error
Value:
_(DROP, "drop") \
_(MAP_REQUESTS_SENT, "map-request sent")
DROP
Definition: error.def:41

Definition at line 2470 of file control.c.

#define resend_encapsulated_map_request (   lcm,
  seid,
  deid,
  smr 
)    _send_encapsulated_map_request(lcm, seid, deid, smr, 1)

Definition at line 2664 of file control.c.

#define send_encapsulated_map_request (   lcm,
  seid,
  deid,
  smr 
)    _send_encapsulated_map_request(lcm, seid, deid, smr, 0)

Definition at line 2661 of file control.c.

Enumeration Type Documentation

Enumerator
LISP_CP_INPUT_N_ERROR 

Definition at line 3069 of file control.c.

Enumerator
LISP_CP_INPUT_NEXT_DROP 
LISP_CP_INPUT_N_NEXT 

Definition at line 3077 of file control.c.

Enumerator
LISP_CP_LOOKUP_N_ERROR 

Definition at line 2480 of file control.c.

Enumerator
LISP_CP_LOOKUP_NEXT_DROP 
LISP_CP_LOOKUP_NEXT_IP4_LOOKUP 
LISP_CP_LOOKUP_NEXT_IP6_LOOKUP 
LISP_CP_LOOKUP_N_NEXT 

Definition at line 2488 of file control.c.

Function Documentation

static vlib_buffer_t* build_encapsulated_map_request ( lisp_cp_main_t lcm,
gid_address_t seid,
gid_address_t deid,
locator_set_t loc_set,
ip_address_t *  mr_ip,
ip_address_t *  sloc,
u8  is_smr_invoked,
u64 nonce_res,
u32 bi_res 
)
static

Definition at line 2596 of file control.c.

+ Here is the call graph for this function:

static gid_address_t* build_itr_rloc_list ( lisp_cp_main_t lcm,
locator_set_t loc_set 
)
static

Definition at line 2547 of file control.c.

+ Here is the caller graph for this function:

static void clean_locator_to_locator_set ( lisp_cp_main_t lcm,
u32  lsi 
)
static

Definition at line 1554 of file control.c.

+ Here is the caller graph for this function:

static u8 compare_locators ( lisp_cp_main_t lcm,
u32 old_ls_indexes,
locator_t new_locators 
)
static

Definition at line 740 of file control.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int dp_add_del_iface ( lisp_cp_main_t lcm,
u32  vni,
u8  is_l2,
u8  is_add 
)
static

Definition at line 158 of file control.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void dp_add_fwd_entry ( lisp_cp_main_t lcm,
u32  src_map_index,
u32  dst_map_index 
)
static

Definition at line 347 of file control.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void dp_del_fwd_entry ( lisp_cp_main_t lcm,
u32  src_map_index,
u32  dst_map_index 
)
static

Definition at line 221 of file control.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int elect_map_resolver ( lisp_cp_main_t lcm)
static

Definition at line 2645 of file control.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u8* format_eid_entry ( u8 s,
va_list *  args 
)
static

Definition at line 1422 of file control.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u8* format_lisp_cp_input_trace ( u8 s,
va_list *  args 
)

Definition at line 3090 of file control.c.

+ Here is the call graph for this function:

u8* format_lisp_cp_lookup_trace ( u8 s,
va_list *  args 
)

Definition at line 2503 of file control.c.

+ Here is the call graph for this function:

static u8* format_lisp_status ( u8 s,
va_list *  args 
)
static

Definition at line 1976 of file control.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u32 get_locator_pairs ( lisp_cp_main_t lcm,
mapping_t lcl_map,
mapping_t rmt_map,
locator_pair_t **  locator_pairs 
)
static

Finds first remote locator with best (lowest) priority that has a local peer locator with an underlying route to it.

Definition at line 255 of file control.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static uword* get_locator_set_index ( vnet_lisp_add_del_locator_set_args_t a,
uword p 
)
inlinestatic

Definition at line 1593 of file control.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static map_resolver_t* get_map_resolver ( ip_address_t *  a)
static

Definition at line 2234 of file control.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int get_mr_and_local_iface_ip ( lisp_cp_main_t lcm,
ip_address_t *  mr_ip,
ip_address_t *  sloc 
)

Definition at line 2516 of file control.c.

+ Here is the call graph for this function:

static void get_src_and_dst_eids_from_buffer ( lisp_cp_main_t lcm,
vlib_buffer_t b,
gid_address_t src,
gid_address_t dst 
)
inlinestatic

Definition at line 2896 of file control.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void get_src_and_dst_ip ( void *  hdr,
ip_address_t *  src,
ip_address_t *  dst 
)
static

Definition at line 2815 of file control.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u32 ip_fib_get_egress_iface_for_dst ( lisp_cp_main_t lcm,
ip_address_t *  dst 
)

Find the sw_if_index of the interface that would be used to egress towards dst.

Definition at line 115 of file control.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u32 ip_fib_get_egress_iface_for_dst_with_lm ( lisp_cp_main_t lcm,
ip_address_t *  dst,
ip_lookup_main_t lm 
)

Definition at line 89 of file control.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int ip_fib_get_first_egress_ip_for_dst ( lisp_cp_main_t lcm,
ip_address_t *  dst,
ip_address_t *  result 
)

Find first IP of the interface that would be used to egress towards dst.

Returns 1 if the address is found 0 otherwise.

Definition at line 130 of file control.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u32 ip_fib_lookup_with_table ( lisp_cp_main_t lcm,
u32  fib_index,
ip_address_t *  dst 
)
static

Definition at line 78 of file control.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void* ip_interface_get_first_address ( ip_lookup_main_t lm,
u32  sw_if_index,
u8  version 
)

Definition at line 50 of file control.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ip_interface_address_t* ip_interface_get_first_interface_address ( ip_lookup_main_t lm,
u32  sw_if_index,
u8  loop 
)

Definition at line 35 of file control.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int ip_interface_get_first_ip_address ( lisp_cp_main_t lcm,
u32  sw_if_index,
u8  version,
ip_address_t *  result 
)

Definition at line 62 of file control.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int is_locator_in_locator_set ( lisp_cp_main_t lcm,
locator_set_t ls,
locator_t loc 
)
inlinestatic

Definition at line 1614 of file control.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int lisp_add_del_adjacency ( lisp_cp_main_t lcm,
gid_address_t local_eid,
gid_address_t remote_eid,
u8  is_add 
)

Adds adjacency or removes forwarding entry associated to remote mapping.

Note that adjacencies are not stored, they only result in forwarding entries being created.

Definition at line 940 of file control.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static clib_error_t* lisp_add_del_adjacency_command_fn ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd 
)
static

Handler for add/del adjacency CLI.

Definition at line 1125 of file control.c.

+ Here is the call graph for this function:

static clib_error_t* lisp_add_del_local_eid_command_fn ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd 
)
static

Definition at line 555 of file control.c.

+ Here is the call graph for this function:

static clib_error_t* lisp_add_del_locator_in_set_command_fn ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd 
)
static

Definition at line 2103 of file control.c.

+ Here is the call graph for this function:

static clib_error_t* lisp_add_del_locator_set_command_fn ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd 
)
static

Definition at line 2031 of file control.c.

+ Here is the call graph for this function:

static clib_error_t* lisp_add_del_map_resolver_command_fn ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd 
)
static

Definition at line 2298 of file control.c.

+ Here is the call graph for this function:

static clib_error_t* lisp_add_del_mreq_itr_rlocs_command_fn ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd 
)
static

Definition at line 2387 of file control.c.

+ Here is the call graph for this function:

static clib_error_t* lisp_add_del_remote_mapping_command_fn ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd 
)
static

Handler for add/del remote mapping CLI.

Parameters
vmvlib context
inputinput from user
cmdcmd
Returns
pointer to clib error structure

Definition at line 1004 of file control.c.

+ Here is the call graph for this function:

clib_error_t* lisp_cp_init ( vlib_main_t vm)

Definition at line 3327 of file control.c.

+ Here is the call graph for this function:

static uword lisp_cp_input ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t from_frame 
)
static

Definition at line 3248 of file control.c.

+ Here is the call graph for this function:

static uword lisp_cp_lookup ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t from_frame 
)
static

Definition at line 2946 of file control.c.

+ Here is the call graph for this function:

static clib_error_t* lisp_cp_show_locator_sets_command_fn ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd 
)
static

Definition at line 2177 of file control.c.

+ Here is the call graph for this function:

static clib_error_t* lisp_eid_table_map_command_fn ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd 
)
static

Definition at line 699 of file control.c.

+ Here is the call graph for this function:

static clib_error_t* lisp_enable_disable_command_fn ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd 
)
static

Definition at line 1927 of file control.c.

+ Here is the call graph for this function:

static u32 lisp_get_vni_from_buffer_eth ( lisp_cp_main_t lcm,
vlib_buffer_t b 
)
inlinestatic

Definition at line 2871 of file control.c.

+ Here is the caller graph for this function:

static u32 lisp_get_vni_from_buffer_ip ( lisp_cp_main_t lcm,
vlib_buffer_t b,
u8  version 
)
static

Definition at line 2834 of file control.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static clib_error_t* lisp_pitr_set_locator_set_command_fn ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd 
)
static

Definition at line 1317 of file control.c.

+ Here is the call graph for this function:

static clib_error_t* lisp_show_eid_table_command_fn ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd 
)
static

Definition at line 1469 of file control.c.

+ Here is the call graph for this function:

static clib_error_t* lisp_show_eid_table_map_command_fn ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd 
)
static

Definition at line 2003 of file control.c.

+ Here is the call graph for this function:

static clib_error_t* lisp_show_map_resolvers_command_fn ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd 
)
static

Definition at line 1251 of file control.c.

+ Here is the call graph for this function:

static clib_error_t* lisp_show_mreq_itr_rlocs_command_fn ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd 
)
static

Definition at line 2440 of file control.c.

+ Here is the call graph for this function:

static clib_error_t* lisp_show_pitr_command_fn ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd 
)
static

Definition at line 1369 of file control.c.

+ Here is the call graph for this function:

static clib_error_t* lisp_show_status_command_fn ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd 
)
static

Definition at line 1983 of file control.c.

+ Here is the call graph for this function:

void* process_map_reply ( void *  arg)

Definition at line 3102 of file control.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void process_map_request ( vlib_main_t vm,
lisp_cp_main_t lcm,
vlib_buffer_t b 
)

Definition at line 3180 of file control.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void queue_map_reply ( vlib_buffer_t b)
static

Definition at line 3234 of file control.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int queue_map_request ( gid_address_t seid,
gid_address_t deid,
u8  smr_invoked,
u8  is_resend 
)
static

Definition at line 3381 of file control.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void remove_dead_pending_map_requests ( lisp_cp_main_t lcm)
static

Definition at line 3451 of file control.c.

+ Here is the caller graph for this function:

static void remove_locator_from_locator_set ( locator_set_t ls,
u32 locit,
u32  ls_index,
u32  loc_id 
)
inlinestatic

Definition at line 1638 of file control.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void reset_pending_mr_counters ( pending_map_request_t r)
static

Definition at line 2638 of file control.c.

+ Here is the caller graph for this function:

static void* send_map_request_thread_fn ( void *  arg)
static

Definition at line 3363 of file control.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static uword send_map_resolver_service ( vlib_main_t vm,
vlib_node_runtime_t rt,
vlib_frame_t f 
)
static

Definition at line 3480 of file control.c.

+ Here is the call graph for this function:

static void update_pending_request ( pending_map_request_t r,
f64  dt 
)
static

Take an action with a pending map request depending on expiration time and re-try counters.

Definition at line 3401 of file control.c.

+ Here is the call graph for this function:

int vnet_lisp_add_del_adjacency ( vnet_lisp_add_del_adjacency_args_t a)

Definition at line 989 of file control.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int vnet_lisp_add_del_local_mapping ( vnet_lisp_add_del_mapping_args_t a,
u32 map_index_result 
)

Add/update/delete mapping to/in/from map-cache.

Definition at line 521 of file control.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int vnet_lisp_add_del_locator ( vnet_lisp_add_del_locator_set_args_t a,
locator_set_t ls,
u32 ls_result 
)

Definition at line 1654 of file control.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int vnet_lisp_add_del_locator_set ( vnet_lisp_add_del_locator_set_args_t a,
u32 ls_result 
)

Definition at line 1744 of file control.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int vnet_lisp_add_del_map_resolver ( vnet_lisp_add_del_map_resolver_args_t a)

Definition at line 2250 of file control.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int vnet_lisp_add_del_mapping ( gid_address_t eid,
locator_t rlocs,
u8  action,
u8  authoritative,
u32  ttl,
u8  is_add,
u8  is_static,
u32 res_map_index 
)

Adds/removes/updates mapping.

Does not program forwarding.

Parameters
eidend-host identifier
rlocsvector of remote locators
actionaction for negative map-reply
is_addadd mapping if non-zero, delete otherwise
res_map_indexthe map-index that was created/updated/removed. It is set to ~0 if no action is taken.
is_staticused for distinguishing between statically learned remote mappings and mappings obtained from MR
Returns
return code

Definition at line 776 of file control.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int vnet_lisp_add_del_mreq_itr_rlocs ( vnet_lisp_add_del_mreq_itr_rloc_args_t a)

Definition at line 2356 of file control.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int vnet_lisp_clear_all_remote_adjacencies ( void  )

Definition at line 889 of file control.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int vnet_lisp_eid_table_map ( u32  vni,
u32  dp_id,
u8  is_l2,
u8  is_add 
)

Definition at line 643 of file control.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

clib_error_t* vnet_lisp_enable_disable ( u8  is_enable)

Definition at line 1884 of file control.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u8 vnet_lisp_enable_disable_status ( void  )

Definition at line 1969 of file control.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int vnet_lisp_map_cache_add_del ( vnet_lisp_add_del_mapping_args_t a,
u32 map_index_result 
)

Add/remove mapping to/from map-cache.

Overwriting not allowed.

Definition at line 422 of file control.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int vnet_lisp_pitr_set_locator_set ( u8 locator_set_name,
u8  is_add 
)

Definition at line 1274 of file control.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Variable Documentation

vlib_cli_command_t lisp_add_del_adjacency_command
Initial value:
= {
.path = "lisp adjacency",
.short_help = "lisp adjacency add|del vni <vni>"
"deid <dest-eid> seid <src-eid> [action <no-action|natively-forward|"
"send-map-request|drop>] rloc <dst-locator> [rloc <dst-locator> ... ]",
}
static clib_error_t * lisp_add_del_adjacency_command_fn(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
Handler for add/del adjacency CLI.
Definition: control.c:1125

(constructor) VLIB_CLI_COMMAND (lisp_add_del_adjacency_command)

Definition at line 1241 of file control.c.

vlib_cli_command_t lisp_add_del_local_eid_command
Initial value:
= {
.path = "lisp eid-table",
.short_help = "lisp eid-table add/del [vni <vni>] eid <eid> "
"locator-set <locator-set>",
}
static clib_error_t * lisp_add_del_local_eid_command_fn(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
Definition: control.c:555

(constructor) VLIB_CLI_COMMAND (lisp_add_del_local_eid_command)

Definition at line 634 of file control.c.

vlib_cli_command_t lisp_add_del_map_request_command
Initial value:
= {
.path = "lisp map-request itr-rlocs",
.short_help = "lisp map-request itr-rlocs add/del <locator_set_name>",
}
static clib_error_t * lisp_add_del_mreq_itr_rlocs_command_fn(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
Definition: control.c:2387

(constructor) VLIB_CLI_COMMAND (lisp_add_del_map_request_command)

Definition at line 2432 of file control.c.

vlib_cli_command_t lisp_add_del_map_resolver_command
Initial value:
= {
.path = "lisp map-resolver",
.short_help = "lisp map-resolver add/del <ip_address>",
}
static clib_error_t * lisp_add_del_map_resolver_command_fn(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
Definition: control.c:2298

(constructor) VLIB_CLI_COMMAND (lisp_add_del_map_resolver_command)

Definition at line 2348 of file control.c.

vlib_cli_command_t lisp_add_del_remote_mapping_command
Initial value:
=
{
.path = "lisp remote-mapping",.short_help =
"lisp remote-mapping add|del [del-all] vni <vni> "
"eid <est-eid> [action <no-action|natively-forward|"
"send-map-request|drop>] rloc <dst-locator> p <prio> w <weight> "
"[rloc <dst-locator> ... ]",.function =
static clib_error_t * lisp_add_del_remote_mapping_command_fn(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
Handler for add/del remote mapping CLI.
Definition: control.c:1004

(constructor) VLIB_CLI_COMMAND (lisp_add_del_remote_mapping_command)

Definition at line 1112 of file control.c.

vlib_cli_command_t lisp_cp_add_del_locator_in_set_command
Initial value:
= {
.path = "lisp locator",
.short_help = "lisp locator add/del locator-set <name> iface <iface-name> "
"p <priority> w <weight>",
}
static clib_error_t * lisp_add_del_locator_in_set_command_fn(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
Definition: control.c:2103

(constructor) VLIB_CLI_COMMAND (lisp_cp_add_del_locator_in_set_command)

Definition at line 2168 of file control.c.

vlib_cli_command_t lisp_cp_add_del_locator_set_command
Initial value:
= {
.path = "lisp locator-set",
.short_help = "lisp locator-set add/del <name> [iface <iface-name> "
"p <priority> w <weight>]",
}
static clib_error_t * lisp_add_del_locator_set_command_fn(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
Definition: control.c:2031

(constructor) VLIB_CLI_COMMAND (lisp_cp_add_del_locator_set_command)

Definition at line 2094 of file control.c.

vlib_cli_command_t lisp_cp_enable_disable_command
Initial value:
= {
.path = "lisp",
.short_help = "lisp [enable|disable]",
}
static clib_error_t * lisp_enable_disable_command_fn(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
Definition: control.c:1927

(constructor) VLIB_CLI_COMMAND (lisp_cp_enable_disable_command)

Definition at line 1961 of file control.c.

char* lisp_cp_input_error_strings[]
static
Initial value:
= {
#define _(sym,string)
}
#define foreach_lisp_cp_input_error
Definition: control.c:3059

Definition at line 3063 of file control.c.

vlib_node_registration_t lisp_cp_input_node
Initial value:
= {
.function = lisp_cp_input,
.name = "lisp-cp-input",
.vector_size = sizeof (u32),
.format_trace = format_lisp_cp_input_trace,
.n_errors = LISP_CP_INPUT_N_ERROR,
.error_strings = lisp_cp_input_error_strings,
.n_next_nodes = LISP_CP_INPUT_N_NEXT,
.next_nodes = {
[LISP_CP_INPUT_NEXT_DROP] = "error-drop",
},
}
static uword lisp_cp_input(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame)
Definition: control.c:3248
bad routing header type(not 4)") sr_error (NO_MORE_SEGMENTS
static char * lisp_cp_input_error_strings[]
Definition: control.c:3063
u8 * format_lisp_cp_input_trace(u8 *s, va_list *args)
Definition: control.c:3090
unsigned int u32
Definition: types.h:88

(constructor) VLIB_REGISTER_NODE (lisp_cp_input_node)

Definition at line 3308 of file control.c.

char* lisp_cp_lookup_error_strings[]
static
Initial value:
= {
#define _(sym,string)
}
#define foreach_lisp_cp_lookup_error
Definition: control.c:2470

Definition at line 2474 of file control.c.

vlib_node_registration_t lisp_cp_lookup_node
Initial value:
= {
.function = lisp_cp_lookup,
.name = "lisp-cp-lookup",
.vector_size = sizeof (u32),
.format_trace = format_lisp_cp_lookup_trace,
.error_strings = lisp_cp_lookup_error_strings,
.n_next_nodes = LISP_CP_LOOKUP_N_NEXT,
.next_nodes = {
[LISP_CP_LOOKUP_NEXT_DROP] = "error-drop",
},
}
bad routing header type(not 4)") sr_error (NO_MORE_SEGMENTS
static uword lisp_cp_lookup(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame)
Definition: control.c:2946
unsigned int u32
Definition: types.h:88
static char * lisp_cp_lookup_error_strings[]
Definition: control.c:2474
u8 * format_lisp_cp_lookup_trace(u8 *s, va_list *args)
Definition: control.c:2503

(constructor) VLIB_REGISTER_NODE (lisp_cp_lookup_node)

Definition at line 3038 of file control.c.

vlib_cli_command_t lisp_cp_show_eid_table_command
Initial value:
= {
.path = "show lisp eid-table",
.short_help = "Shows EID table",
}
static clib_error_t * lisp_show_eid_table_command_fn(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
Definition: control.c:1469

(constructor) VLIB_CLI_COMMAND (lisp_cp_show_eid_table_command)

Definition at line 1544 of file control.c.

vlib_cli_command_t lisp_cp_show_locator_sets_command
Initial value:
= {
.path = "show lisp locator-set",
.short_help = "Shows locator-sets",
}
static clib_error_t * lisp_cp_show_locator_sets_command_fn(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
Definition: control.c:2177

(constructor) VLIB_CLI_COMMAND (lisp_cp_show_locator_sets_command)

Definition at line 2226 of file control.c.

vlib_cli_command_t lisp_eid_table_map_command
Initial value:
= {
.path = "lisp eid-table map",
.short_help = "lisp eid-table map [del] vni <vni> vrf <vrf> | bd <bdi>",
}
static clib_error_t * lisp_eid_table_map_command_fn(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
Definition: control.c:699

(constructor) VLIB_CLI_COMMAND (lisp_eid_table_map_command)

Definition at line 731 of file control.c.

vlib_cli_command_t lisp_pitr_set_locator_set_command
Initial value:
= {
.path = "lisp pitr",
.short_help = "lisp pitr [disable] ls <locator-set-name>",
}
static clib_error_t * lisp_pitr_set_locator_set_command_fn(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
Definition: control.c:1317

(constructor) VLIB_CLI_COMMAND (lisp_pitr_set_locator_set_command)

Definition at line 1361 of file control.c.

vlib_node_registration_t lisp_retry_service_node
static
Initial value:
= {
.name = "lisp-retry-service",
.process_log2_n_stack_bytes = 16,
}
static uword send_map_resolver_service(vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
Definition: control.c:3480

(constructor) VLIB_REGISTER_NODE (lisp_retry_service_node)

Definition at line 3514 of file control.c.

vlib_cli_command_t lisp_show_eid_table_map_command
Initial value:
= {
.path = "show lisp eid-table map",
.short_help = "show lisp eid-table vni to vrf mappings",
}
static clib_error_t * lisp_show_eid_table_map_command_fn(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
Definition: control.c:2003

(constructor) VLIB_CLI_COMMAND (lisp_show_eid_table_map_command)

Definition at line 2023 of file control.c.

vlib_cli_command_t lisp_show_map_request_command
Initial value:
= {
.path = "show lisp map-request itr-rlocs",
.short_help = "Shows map-request itr-rlocs",
}
static clib_error_t * lisp_show_mreq_itr_rlocs_command_fn(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
Definition: control.c:2440

(constructor) VLIB_CLI_COMMAND (lisp_show_map_request_command)

Definition at line 2462 of file control.c.

vlib_cli_command_t lisp_show_map_resolvers_command
Initial value:
= {
.path = "show lisp map-resolvers",
.short_help = "show lisp map-resolvers",
}
static clib_error_t * lisp_show_map_resolvers_command_fn(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
Definition: control.c:1251

(constructor) VLIB_CLI_COMMAND (lisp_show_map_resolvers_command)

Definition at line 1266 of file control.c.

vlib_cli_command_t lisp_show_pitr_command
Initial value:
= {
.path = "show lisp pitr",
.short_help = "Show pitr",
}
static clib_error_t * lisp_show_pitr_command_fn(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
Definition: control.c:1369

(constructor) VLIB_CLI_COMMAND (lisp_show_pitr_command)

Definition at line 1414 of file control.c.

vlib_cli_command_t lisp_show_status_command
Initial value:
= {
.path = "show lisp status",
.short_help = "show lisp status",
}
static clib_error_t * lisp_show_status_command_fn(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
Definition: control.c:1983

(constructor) VLIB_CLI_COMMAND (lisp_show_status_command)

Definition at line 1995 of file control.c.