ioam: ip6 hop by hop ext header and SR header co-existence
[vpp.git] / src / vnet / ip / ip6_packet.h
index 6eabeef..bb7d703 100644 (file)
@@ -79,6 +79,8 @@ typedef CLIB_PACKED (union {
 #define ip46_address_reset(ip46)       ((ip46)->as_u64[0] = (ip46)->as_u64[1] = 0)
 #define ip46_address_cmp(ip46_1, ip46_2) (memcmp(ip46_1, ip46_2, sizeof(*ip46_1)))
 #define ip46_address_is_zero(ip46)     (((ip46)->as_u64[0] == 0) && ((ip46)->as_u64[1] == 0))
+#define ip46_address_is_equal(a1, a2)  (((a1)->as_u64[0] == (a2)->as_u64[0]) \
+                                         && ((a1)->as_u64[1] == (a2)->as_u64[1]))
 
 always_inline void
 ip46_from_addr_buf (u32 is_ipv6, u8 * buf, ip46_address_t * ip)
@@ -482,7 +484,7 @@ else                                                    \
   {                                                     \
     (p) = ip6_ext_next_header((p));                     \
   }                                                     \
-  if ( ip6_ext_hdr((p)->next_hdr) == (t))               \
+  if ( ((p)->next_hdr) == (t))                          \
   {                                                     \
     (m) = (void *)(ip6_ext_next_header((p)));           \
   }                                                     \