|
u8 * | format_lisp_cp_input_trace (u8 *s, va_list *args) |
|
static void * | send_map_request_thread_fn (void *arg) |
|
u8 | vnet_lisp_get_map_request_mode (void) |
|
static u16 | auth_data_len_by_key_id (lisp_key_type_t key_id) |
|
static int | queue_map_request (gid_address_t *seid, gid_address_t *deid, u8 smr_invoked, u8 is_resend) |
|
ip_interface_address_t * | ip_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) |
|
void | ip_address_to_fib_prefix (const ip_address_t *addr, fib_prefix_t *prefix) |
| convert from a LISP address to a FIB prefix More...
|
|
void | ip_prefix_to_fib_prefix (const ip_prefix_t *ip_prefix, fib_prefix_t *fib_prefix) |
| convert from a LISP to a FIB prefix More...
|
|
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, u8 with_default_route) |
|
static void | dp_del_fwd_entry (lisp_cp_main_t *lcm, 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 | gid_address_sd_to_flat (gid_address_t *dst, gid_address_t *src, fid_address_t *fid) |
|
u8 | vnet_lisp_map_register_state_get (void) |
|
u8 | vnet_lisp_rloc_probe_state_get (void) |
|
static void | dp_add_fwd_entry (lisp_cp_main_t *lcm, u32 src_map_index, u32 dst_map_index) |
|
static void * | dp_add_fwd_entry_thread_fn (void *arg) |
|
static int | dp_add_fwd_entry_from_mt (u32 si, u32 di) |
|
lisp_adjacency_t * | vnet_lisp_adjacencies_get_by_vni (u32 vni) |
| Returns vector of adjacencies. More...
|
|
static lisp_msmr_t * | get_map_server (ip_address_t *a) |
|
static lisp_msmr_t * | get_map_resolver (ip_address_t *a) |
|
int | vnet_lisp_add_del_map_server (ip_address_t *addr, u8 is_add) |
|
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 void | add_l2_arp_bd (BVT(clib_bihash_kv) *kvp, void *arg) |
|
u32 * | vnet_lisp_l2_arp_bds_get (void) |
|
static void | add_ndp_bd (BVT(clib_bihash_kv) *kvp, void *arg) |
|
u32 * | vnet_lisp_ndp_bds_get (void) |
|
static void | add_l2_arp_entry (BVT(clib_bihash_kv) *kvp, void *arg) |
|
lisp_api_l2_arp_entry_t * | vnet_lisp_l2_arp_entries_get_by_bd (u32 bd) |
|
static void | add_ndp_entry (BVT(clib_bihash_kv) *kvp, void *arg) |
|
lisp_api_ndp_entry_t * | vnet_lisp_ndp_entries_get_by_bd (u32 bd) |
|
int | vnet_lisp_add_del_l2_arp_ndp_entry (gid_address_t *key, u8 *mac, u8 is_add) |
|
int | vnet_lisp_eid_table_map (u32 vni, u32 dp_id, u8 is_l2, u8 is_add) |
|
static u8 | compare_locators (lisp_cp_main_t *lcm, u32 *old_ls_indexes, locator_t *new_locators) |
|
static void | remove_mapping_if_needed (u32 mi, void *arg) |
| Callback invoked when a sub-prefix is found. More...
|
|
static void | remove_overlapping_sub_prefixes (lisp_cp_main_t *lcm, gid_address_t *eid, u8 is_negative) |
| This function searches map cache and looks for IP prefixes that are subset of the provided one. More...
|
|
static void | mapping_delete_timer (lisp_cp_main_t *lcm, u32 mi) |
|
static int | is_local_ip (lisp_cp_main_t *lcm, ip_address_t *addr) |
|
int | vnet_lisp_add_mapping (vnet_lisp_add_del_mapping_args_t *a, locator_t *rlocs, u32 *res_map_index, u8 *is_updated) |
| Adds/updates mapping. More...
|
|
int | vnet_lisp_del_mapping (gid_address_t *eid, u32 *res_map_index) |
| Removes a mapping. More...
|
|
int | vnet_lisp_clear_all_remote_adjacencies (void) |
|
int | vnet_lisp_add_del_adjacency (vnet_lisp_add_del_adjacency_args_t *a) |
| Adds adjacency or removes forwarding entry associated to remote mapping. More...
|
|
int | vnet_lisp_set_map_request_mode (u8 mode) |
|
int | vnet_lisp_nsh_set_locator_set (u8 *locator_set_name, u8 is_add) |
|
int | vnet_lisp_pitr_set_locator_set (u8 *locator_set_name, u8 is_add) |
|
int | vnet_lisp_map_register_fallback_threshold_set (u32 value) |
|
u32 | vnet_lisp_map_register_fallback_threshold_get (void) |
|
int | vnet_lisp_use_petr (ip_address_t *ip, u8 is_add) |
| Configure Proxy-ETR. More...
|
|
static void | clean_locator_to_locator_set (lisp_cp_main_t *lcm, u32 lsi) |
|
static uword * | get_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 | update_adjacencies_by_map_index (lisp_cp_main_t *lcm, u32 mapping_index, u8 remove_only) |
|
static void | update_fwd_entries_by_locator_set (lisp_cp_main_t *lcm, u32 ls_index, u8 remove_only) |
|
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) |
|
int | vnet_lisp_rloc_probe_enable_disable (u8 is_enable) |
|
int | vnet_lisp_map_register_enable_disable (u8 is_enable) |
|
static void | lisp_cp_register_dst_port (vlib_main_t *vm) |
|
static void | lisp_cp_unregister_dst_port (vlib_main_t *vm) |
|
static void | lisp_cp_enable_l2_l3_ifaces (lisp_cp_main_t *lcm, u8 with_default_route) |
| lisp_cp_enable_l2_l3_ifaces More...
|
|
static void | lisp_cp_disable_l2_l3_ifaces (lisp_cp_main_t *lcm) |
|
clib_error_t * | vnet_lisp_enable_disable (u8 is_enable) |
|
u8 | vnet_lisp_enable_disable_status (void) |
|
int | vnet_lisp_add_del_map_resolver (vnet_lisp_add_del_map_resolver_args_t *a) |
|
int | vnet_lisp_map_register_set_ttl (u32 ttl) |
|
u32 | vnet_lisp_map_register_get_ttl (void) |
|
int | vnet_lisp_add_del_mreq_itr_rlocs (vnet_lisp_add_del_mreq_itr_rloc_args_t *a) |
|
u8 * | format_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_t * | build_itr_rloc_list (lisp_cp_main_t *lcm, locator_set_t *loc_set) |
|
static vlib_buffer_t * | build_map_request (lisp_cp_main_t *lcm, gid_address_t *deid, ip_address_t *sloc, ip_address_t *rloc, gid_address_t *itr_rlocs, u64 *nonce_res, u32 *bi_res) |
|
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 void | reset_pending_mr_counters (pending_map_request_t *r) |
|
static foreach_msmr void | free_map_register_records (mapping_t *maps) |
|
static void | add_locators (lisp_cp_main_t *lcm, mapping_t *m, u32 locator_set_index, ip_address_t *probed_loc) |
|
static mapping_t * | build_map_register_record_list (lisp_cp_main_t *lcm) |
|
static vnet_crypto_op_id_t | lisp_key_type_to_crypto_op (lisp_key_type_t key_id) |
|
static int | update_map_register_auth_data (map_register_hdr_t *map_reg_hdr, lisp_key_type_t key_id, u8 *key, u16 auth_data_len, u32 msg_len) |
|
static vlib_buffer_t * | build_map_register (lisp_cp_main_t *lcm, ip_address_t *sloc, ip_address_t *ms_ip, u64 *nonce_res, u8 want_map_notif, mapping_t *records, lisp_key_type_t key_id, u8 *key, u32 *bi_res) |
|
static uword | lisp_cp_output (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame) |
|
static int | send_rloc_probe (lisp_cp_main_t *lcm, gid_address_t *deid, u32 local_locator_set_index, ip_address_t *sloc, ip_address_t *rloc) |
|
static int | send_rloc_probes (lisp_cp_main_t *lcm) |
|
static int | send_map_register (lisp_cp_main_t *lcm, u8 want_map_notif) |
|
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_bd_from_buffer_eth (vlib_buffer_t *b) |
|
static u32 | lisp_get_vni_from_buffer_eth (lisp_cp_main_t *lcm, vlib_buffer_t *b) |
|
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, u16 type) |
|
static uword | lisp_cp_lookup_inline (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame, int overlay) |
|
static uword | lisp_cp_lookup_ip4 (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame) |
|
static uword | lisp_cp_lookup_ip6 (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame) |
|
static uword | lisp_cp_lookup_l2 (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame) |
|
static uword | lisp_cp_lookup_nsh (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame) |
|
static void | remove_expired_mapping (lisp_cp_main_t *lcm, u32 mi) |
|
static void | mapping_start_expiration_timer (lisp_cp_main_t *lcm, u32 mi, f64 expiration_time) |
|
static void | process_expired_mapping (lisp_cp_main_t *lcm, u32 mi) |
|
static void | map_records_arg_free (map_records_arg_t *a) |
|
void * | process_map_reply (map_records_arg_t *a) |
|
static int | is_auth_data_valid (map_notify_hdr_t *h, u32 msg_len, lisp_key_type_t key_id, u8 *key) |
|
static void | process_map_notify (map_records_arg_t *a) |
|
static mapping_t * | get_mapping (lisp_cp_main_t *lcm, gid_address_t *e) |
|
static int | map_record_integrity_check (lisp_cp_main_t *lcm, mapping_t *maps, u32 key_id, u8 **key_out) |
| When map-notify is received it is necessary that all EIDs in the record list share common key. More...
|
|
static int | parse_map_records (vlib_buffer_t *b, map_records_arg_t *a, u8 count) |
|
static map_records_arg_t * | map_record_args_get () |
|
static map_records_arg_t * | parse_map_notify (vlib_buffer_t *b) |
|
static vlib_buffer_t * | build_map_reply (lisp_cp_main_t *lcm, ip_address_t *sloc, ip_address_t *dst, u64 nonce, u8 probe_bit, mapping_t *records, u16 dst_port, u32 *bi_res) |
|
static int | send_map_reply (lisp_cp_main_t *lcm, u32 mi, ip_address_t *dst, u8 probe_bit, u64 nonce, u16 dst_port, ip_address_t *probed_loc) |
|
static void | find_ip_header (vlib_buffer_t *b, u8 **ip_hdr) |
|
void | process_map_request (vlib_main_t *vm, vlib_node_runtime_t *node, lisp_cp_main_t *lcm, vlib_buffer_t *b) |
|
map_records_arg_t * | parse_map_reply (vlib_buffer_t *b) |
|
static void | queue_map_reply_for_processing (map_records_arg_t *a) |
|
static void | queue_map_notify_for_processing (map_records_arg_t *a) |
|
static uword | lisp_cp_input (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame) |
|
clib_error_t * | lisp_cp_init (vlib_main_t *vm) |
|
static int | lisp_stats_api_fill (lisp_cp_main_t *lcm, lisp_gpe_main_t *lgm, lisp_api_stats_t *stat, lisp_stats_key_t *key, u32 stats_index) |
|
lisp_api_stats_t * | vnet_lisp_get_stats (void) |
|
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 void | update_rloc_probing (lisp_cp_main_t *lcm, f64 dt) |
|
static int | update_pending_map_register (pending_map_register_t *r, f64 dt, u8 *del_all) |
|
static void | update_map_register (lisp_cp_main_t *lcm, f64 dt) |
|
static uword | send_map_resolver_service (vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f) |
|
vnet_api_error_t | vnet_lisp_stats_enable_disable (u8 enable) |
|
u8 | vnet_lisp_stats_enable_disable_state (void) |
|
u32 | vnet_lisp_set_transport_protocol (u8 protocol) |
|
lisp_transport_protocol_t | vnet_lisp_get_transport_protocol (void) |
|
int | vnet_lisp_enable_disable_xtr_mode (u8 is_enabled) |
|
int | vnet_lisp_enable_disable_pitr_mode (u8 is_enabled) |
|
int | vnet_lisp_enable_disable_petr_mode (u8 is_enabled) |
|
u8 | vnet_lisp_get_xtr_mode (void) |
|
u8 | vnet_lisp_get_pitr_mode (void) |
|
u8 | vnet_lisp_get_petr_mode (void) |
|