X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=vnet%2Fvnet%2Flisp-cp%2Fcontrol.h;h=4832f4da479553e609266949bdaa58a4107ef64e;hb=5a49bb9ef543983b0aef758b30102e0d277923ad;hp=fad90e6ec68d4526831cd781a4667411618b4f03;hpb=46d4e36792e829ef96b43dbc6eec344700d54f13;p=vpp.git diff --git a/vnet/vnet/lisp-cp/control.h b/vnet/vnet/lisp-cp/control.h index fad90e6ec68..4832f4da479 100644 --- a/vnet/vnet/lisp-cp/control.h +++ b/vnet/vnet/lisp-cp/control.h @@ -24,7 +24,6 @@ typedef struct { gid_address_t src; gid_address_t dst; - u32 src_mapping_index; } pending_map_request_t; typedef struct @@ -94,11 +93,23 @@ typedef struct /* vector of map-resolver addresses */ ip_address_t * map_resolvers; + /* map-request locator set index */ + u32 mreq_itr_rlocs; + /* Lookup vrf by vni */ uword * table_id_by_vni; + /* Lookup vni by vrf */ + uword * vni_by_table_id; + /* Number of src prefixes in a vni that use an interface */ - uword * dp_if_refcount_by_vni; + uword * dp_intf_by_vni; + + /* Proxy ETR map index */ + u32 pitr_map_index; + + /* LISP PITR mode */ + u8 lisp_pitr; /* commodity */ ip4_main_t * im4; @@ -116,6 +127,11 @@ extern vlib_node_registration_t lisp_cp_lookup_node; clib_error_t * lisp_cp_init (); +always_inline lisp_cp_main_t * +vnet_lisp_cp_get_main() { + return &lisp_control_main; +} + typedef struct { u8 is_add; @@ -132,16 +148,13 @@ int vnet_lisp_add_del_locator_set (vnet_lisp_add_del_locator_set_args_t * a, u32 * ls_index); int -vnet_lisp_add_del_locator_set_name (vnet_lisp_add_del_locator_set_args_t * a, - u32 * ls_index); -int vnet_lisp_add_del_locator (vnet_lisp_add_del_locator_set_args_t * a, - u32 * ls_index); + locator_set_t * ls, u32 * ls_index); typedef struct { u8 is_add; - gid_address_t deid; + gid_address_t eid; u32 locator_set_index; u32 ttl; @@ -152,12 +165,31 @@ typedef struct } vnet_lisp_add_del_mapping_args_t; int -vnet_lisp_add_del_mapping (vnet_lisp_add_del_mapping_args_t *a, +vnet_lisp_map_cache_add_del (vnet_lisp_add_del_mapping_args_t *a, u32 * map_index); int vnet_lisp_add_del_local_mapping (vnet_lisp_add_del_mapping_args_t * a, u32 * map_index_result); +int +vnet_lisp_add_del_mapping (gid_address_t * deid, locator_t * dlocs, u8 action, + u8 authoritative, u32 ttl, u8 is_add, + u32 * res_map_index); + +typedef struct +{ + gid_address_t deid; + gid_address_t seid; + locator_t * locators; + u8 action; + u8 authoritative; + u32 ttl; + u8 is_add; +} vnet_lisp_add_del_adjacency_args_t; + +int +vnet_lisp_add_del_adjacency (vnet_lisp_add_del_adjacency_args_t * a); + typedef struct { u8 is_add; @@ -167,12 +199,27 @@ typedef struct int vnet_lisp_add_del_map_resolver (vnet_lisp_add_del_map_resolver_args_t * a); -always_inline lisp_cp_main_t * -vnet_lisp_cp_get_main() { - return &lisp_control_main; -} +clib_error_t * +vnet_lisp_enable_disable (u8 is_enabled); +u8 +vnet_lisp_enable_disable_status (void); + +int +vnet_lisp_pitr_set_locator_set (u8 * locator_set_name, u8 is_add); + +typedef struct +{ + u8 is_add; + u8 * locator_set_name; +} vnet_lisp_add_del_mreq_itr_rloc_args_t; -clib_error_t * vnet_lisp_enable_disable (u8 is_enabled); -u8 vnet_lisp_enable_disable_status (void); +int +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_add); #endif /* VNET_CONTROL_H_ */