X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fplugins%2Fmap%2Fmap.h;h=0d4270d58065f729c993a44fe6d1fa3f33151f99;hb=fccd1b2b694146506e0efdeee6c23674550fc5d5;hp=6587a8a455bab61112f17168416730e88aef8cb0;hpb=0fb2cc65134d268d367678be32c50252ad4cd311;p=vpp.git diff --git a/src/plugins/map/map.h b/src/plugins/map/map.h index 6587a8a455b..0d4270d5806 100644 --- a/src/plugins/map/map.h +++ b/src/plugins/map/map.h @@ -247,8 +247,6 @@ typedef struct { bool sec_check_frag; /* Inbound security check for (subsequent) fragments */ bool icmp6_enabled; /* Send destination unreachable for security check failure */ - bool is_ce; /* If this MAP node is a Customer Edge router*/ - /* ICMPv6 -> ICMPv4 relay parameters */ ip4_address_t icmp4_src_address; vlib_simple_counter_main_t icmp_relayed; @@ -474,7 +472,7 @@ map_ip4_reass_get(u32 src, u32 dst, u16 fragment_id, void map_ip4_reass_free(map_ip4_reass_t *r, u32 **pi_to_drop); -#define map_ip4_reass_lock() while (__sync_lock_test_and_set(map_main.ip4_reass_lock, 1)) {} +#define map_ip4_reass_lock() while (clib_atomic_test_and_set (map_main.ip4_reass_lock)) {} #define map_ip4_reass_unlock() do {CLIB_MEMORY_BARRIER(); *map_main.ip4_reass_lock = 0;} while(0) static_always_inline void @@ -499,7 +497,7 @@ map_ip6_reass_get(ip6_address_t *src, ip6_address_t *dst, u32 fragment_id, void map_ip6_reass_free(map_ip6_reass_t *r, u32 **pi_to_drop); -#define map_ip6_reass_lock() while (__sync_lock_test_and_set(map_main.ip6_reass_lock, 1)) {} +#define map_ip6_reass_lock() while (clib_atomic_test_and_set (map_main.ip6_reass_lock)) {} #define map_ip6_reass_unlock() do {CLIB_MEMORY_BARRIER(); *map_main.ip6_reass_lock = 0;} while(0) int @@ -538,7 +536,7 @@ ip4_map_t_embedded_address (map_domain_t *d, u8 offset = d->ip6_src_len == 64 ? 9 : 12; ip6->as_u64[0] = d->ip6_src.as_u64[0]; ip6->as_u64[1] = d->ip6_src.as_u64[1]; - clib_memcpy(&ip6->as_u8[offset], ip4, 4); + clib_memcpy_fast(&ip6->as_u8[offset], ip4, 4); } static_always_inline u32 @@ -555,14 +553,14 @@ static inline void map_domain_counter_lock (map_main_t *mm) { if (mm->counter_lock) - while (__sync_lock_test_and_set(mm->counter_lock, 1)) + while (clib_atomic_test_and_set (mm->counter_lock)) /* zzzz */ ; } static inline void map_domain_counter_unlock (map_main_t *mm) { if (mm->counter_lock) - *mm->counter_lock = 0; + clib_atomic_release (mm->counter_lock); }