ipsec: Support MPLS over IPSec[46] interface
[vpp.git] / src / vnet / ip / ip_packet.h
index e67cec1..e1089ec 100644 (file)
@@ -42,6 +42,7 @@
 
 #include <vppinfra/byte_order.h>
 #include <vppinfra/error.h>
+#include <vppinfra/format.h>
 
 typedef enum ip_protocol
 {
@@ -119,6 +120,7 @@ typedef enum ip_dscp_t_
 } __clib_packed ip_dscp_t;
 
 extern u8 *format_ip_dscp (u8 * s, va_list * va);
+unformat_function_t unformat_ip_dscp;
 
 /**
  * IP DSCP bit shift
@@ -176,10 +178,10 @@ ip_csum (void *data, u16 n_left)
       v1 = u16x16_byte_swap (v1);
       v2 = u16x16_byte_swap (v2);
 #endif
-      sum8 += u16x8_extend_to_u32x8 (u16x16_extract_lo (v1));
-      sum8 += u16x8_extend_to_u32x8 (u16x16_extract_hi (v1));
-      sum8 += u16x8_extend_to_u32x8 (u16x16_extract_lo (v2));
-      sum8 += u16x8_extend_to_u32x8 (u16x16_extract_hi (v2));
+      sum8 += u32x8_from_u16x8 (u16x16_extract_lo (v1));
+      sum8 += u32x8_from_u16x8 (u16x16_extract_hi (v1));
+      sum8 += u32x8_from_u16x8 (u16x16_extract_lo (v2));
+      sum8 += u32x8_from_u16x8 (u16x16_extract_hi (v2));
       n_left -= 32;
       data += 64;
     }
@@ -191,8 +193,8 @@ ip_csum (void *data, u16 n_left)
       v1 = u16x16_byte_swap (v1);
 #endif
       v1 = u16x16_byte_swap (u16x16_load_unaligned (data));
-      sum8 += u16x8_extend_to_u32x8 (u16x16_extract_lo (v1));
-      sum8 += u16x8_extend_to_u32x8 (u16x16_extract_hi (v1));
+      sum8 += u32x8_from_u16x8 (u16x16_extract_lo (v1));
+      sum8 += u32x8_from_u16x8 (u16x16_extract_hi (v1));
       n_left -= 16;
       data += 32;
     }
@@ -204,8 +206,8 @@ ip_csum (void *data, u16 n_left)
       v1 = u16x16_byte_swap (v1);
 #endif
       v1 = u16x16_mask_last (v1, 16 - n_left);
-      sum8 += u16x8_extend_to_u32x8 (u16x16_extract_lo (v1));
-      sum8 += u16x8_extend_to_u32x8 (u16x16_extract_hi (v1));
+      sum8 += u32x8_from_u16x8 (u16x16_extract_lo (v1));
+      sum8 += u32x8_from_u16x8 (u16x16_extract_hi (v1));
     }
 
   sum8 = u32x8_hadd (sum8, zero);