X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fip%2Fip_packet.h;h=b0b5f41260cf6012e354e08335e09b6f2568cc93;hb=06111a837d77323d253ecfd26557775fa0b03ca8;hp=e67cec1512f1f06292573adcea12c0718a6a817e;hpb=3ec09e9243dceb78e7548725281b0da8eddf72b1;p=vpp.git diff --git a/src/vnet/ip/ip_packet.h b/src/vnet/ip/ip_packet.h index e67cec1512f..b0b5f41260c 100644 --- a/src/vnet/ip/ip_packet.h +++ b/src/vnet/ip/ip_packet.h @@ -42,6 +42,7 @@ #include #include +#include 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; } @@ -190,9 +192,8 @@ ip_csum (void *data, u16 n_left) #ifdef CLIB_ARCH_IS_LITTLE_ENDIAN 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,13 +205,13 @@ 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); sum4 = u32x8_extract_lo (sum8) + u32x8_extract_hi (sum8); - sum = sum4[0] + sum4[1]; + sum += sum4[0] + sum4[1]; #else /* scalar version */