X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Flisp-cp%2Fcontrol.h;h=eae8a184f768c6c4f5215e1e1937aa4cb80aac78;hb=054807960a92e477563321720cf8750909d72d7e;hp=aa76a4242649f3ee72b8dc814f7594ee51ee393c;hpb=f3dc11a9d71a30ac89e7ceb523abdb1ff13f0ac3;p=vpp.git diff --git a/src/vnet/lisp-cp/control.h b/src/vnet/lisp-cp/control.h index aa76a424264..eae8a184f76 100644 --- a/src/vnet/lisp-cp/control.h +++ b/src/vnet/lisp-cp/control.h @@ -94,8 +94,28 @@ typedef enum _MR_MODE_MAX } map_request_mode_t; +#define foreach_lisp_flag_bit \ + _(USE_PETR, "Use Proxy-ETR") \ + _(STATS_ENABLED, "Statistics enabled") + +typedef enum lisp_flag_bits +{ +#define _(sym, str) LISP_FLAG_BIT_##sym, + foreach_lisp_flag_bit +#undef _ +} lisp_flag_bits_e; + +typedef enum lisp_flags +{ +#define _(sym, str) LISP_FLAG_##sym = 1 << LISP_FLAG_BIT_##sym, + foreach_lisp_flag_bit +#undef _ +} lisp_flags_e; + typedef struct { + u32 flags; + /* LISP feature status */ u8 is_enabled; @@ -170,9 +190,12 @@ typedef struct /* track l2 and l3 interfaces that have been created for vni */ uword *l2_dp_intf_by_vni; - /* Proxy ETR map index */ + /* Proxy ITR map index */ u32 pitr_map_index; + /** Proxy ETR map index */ + u32 petr_map_index; + /* LISP PITR mode */ u8 lisp_pitr; @@ -210,6 +233,11 @@ vnet_lisp_cp_get_main () return &lisp_control_main; } +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); + typedef struct { u8 is_add; @@ -280,6 +308,7 @@ 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); +int vnet_lisp_use_petr (ip_address_t * ip, u8 is_add); typedef struct { @@ -303,6 +332,12 @@ int vnet_lisp_map_register_enable_disable (u8 is_enable); u8 vnet_lisp_map_register_state_get (void); u8 vnet_lisp_rloc_probe_state_get (void); +always_inline mapping_t * +lisp_get_petr_mapping (lisp_cp_main_t * lcm) +{ + return pool_elt_at_index (lcm->mapping_pool, lcm->petr_map_index); +} + #endif /* VNET_CONTROL_H_ */ /*