Sure, I'll send rebased v2. -Matias
> On 3 Apr 2017, at 22:38, Maxim Uvarov <[email protected]> wrote: > > Matias can you please update patches and check them? > > Maxim. > > On 04/03/17 02:36, Bill Fischofer wrote: >> For this series: >> >> Reviewed-and-tested-by: Bill Fischofer <[email protected]> >> >> On Wed, Mar 22, 2017 at 10:29 AM, Matias Elo <[email protected]> wrote: >>> Signed-off-by: Matias Elo <[email protected]> >>> --- >>> example/generator/odp_generator.c | 4 ++-- >>> example/ipsec/odp_ipsec_stream.c | 6 +++--- >>> helper/include/odp/helper/ip.h | 3 ++- >>> platform/linux-generic/include/protocols/ip.h | 3 ++- >>> platform/linux-generic/odp_packet.c | 5 ++++- >>> 5 files changed, 13 insertions(+), 8 deletions(-) >>> >>> diff --git a/example/generator/odp_generator.c >>> b/example/generator/odp_generator.c >>> index 8062d87..1fd4899 100644 >>> --- a/example/generator/odp_generator.c >>> +++ b/example/generator/odp_generator.c >>> @@ -267,7 +267,7 @@ static odp_packet_t pack_icmp_pkt(odp_pool_t pool) >>> ip->ver_ihl = ODPH_IPV4 << 4 | ODPH_IPV4HDR_IHL_MIN; >>> ip->tot_len = odp_cpu_to_be_16(args->appl.payload + ODPH_ICMPHDR_LEN >>> + >>> ODPH_IPV4HDR_LEN); >>> - ip->proto = ODPH_IPPROTO_ICMP; >>> + ip->proto = ODPH_IPPROTO_ICMPv4; >>> seq = odp_atomic_fetch_add_u64(&counters.seq, 1) % 0xffff; >>> ip->id = odp_cpu_to_be_16(seq); >>> ip->chksum = 0; >>> @@ -483,7 +483,7 @@ static void print_pkts(int thr, odp_packet_t pkt_tbl[], >>> unsigned len) >>> } >>> >>> /* icmp */ >>> - if (ip->proto == ODPH_IPPROTO_ICMP) { >>> + if (ip->proto == ODPH_IPPROTO_ICMPv4) { >>> icmp = (odph_icmphdr_t *)(buf + offset); >>> /* echo reply */ >>> if (icmp->type == ICMP_ECHOREPLY) { >>> diff --git a/example/ipsec/odp_ipsec_stream.c >>> b/example/ipsec/odp_ipsec_stream.c >>> index 428ec04..b9576ae 100644 >>> --- a/example/ipsec/odp_ipsec_stream.c >>> +++ b/example/ipsec/odp_ipsec_stream.c >>> @@ -219,7 +219,7 @@ odp_packet_t create_ipv4_packet(stream_db_entry_t >>> *stream, >>> ip->src_addr = odp_cpu_to_be_32(entry->tun_src_ip); >>> ip->dst_addr = odp_cpu_to_be_32(entry->tun_dst_ip); >>> } else { >>> - ip->proto = ODPH_IPPROTO_ICMP; >>> + ip->proto = ODPH_IPPROTO_ICMPv4; >>> ip->src_addr = odp_cpu_to_be_32(stream->src_ip); >>> ip->dst_addr = odp_cpu_to_be_32(stream->dst_ip); >>> } >>> @@ -262,7 +262,7 @@ odp_packet_t create_ipv4_packet(stream_db_entry_t >>> *stream, >>> inner_ip = (odph_ipv4hdr_t *)data; >>> memset((char *)inner_ip, 0, sizeof(*inner_ip)); >>> inner_ip->ver_ihl = 0x45; >>> - inner_ip->proto = ODPH_IPPROTO_ICMP; >>> + inner_ip->proto = ODPH_IPPROTO_ICMPv4; >>> inner_ip->id = odp_cpu_to_be_16(stream->id); >>> inner_ip->ttl = 64; >>> inner_ip->tos = 0; >>> @@ -519,7 +519,7 @@ clear_packet: >>> icmp = (odph_icmphdr_t *)(inner_ip + 1); >>> data = (uint8_t *)icmp; >>> } else { >>> - if (ODPH_IPPROTO_ICMP != ip->proto) >>> + if (ODPH_IPPROTO_ICMPv4 != ip->proto) >>> return FALSE; >>> icmp = (odph_icmphdr_t *)data; >>> } >>> diff --git a/helper/include/odp/helper/ip.h b/helper/include/odp/helper/ip.h >>> index ba6e675..91776fa 100644 >>> --- a/helper/include/odp/helper/ip.h >>> +++ b/helper/include/odp/helper/ip.h >>> @@ -205,13 +205,14 @@ typedef struct ODP_PACKED { >>> * IP protocol values (IPv4:'proto' or IPv6:'next_hdr') >>> * @{*/ >>> #define ODPH_IPPROTO_HOPOPTS 0x00 /**< IPv6 hop-by-hop options */ >>> -#define ODPH_IPPROTO_ICMP 0x01 /**< Internet Control Message Protocol >>> (1) */ >>> +#define ODPH_IPPROTO_ICMPv4 0x01 /**< Internet Control Message Protocol >>> (1) */ >>> #define ODPH_IPPROTO_TCP 0x06 /**< Transmission Control Protocol (6) */ >>> #define ODPH_IPPROTO_UDP 0x11 /**< User Datagram Protocol (17) */ >>> #define ODPH_IPPROTO_ROUTE 0x2B /**< IPv6 Routing header (43) */ >>> #define ODPH_IPPROTO_FRAG 0x2C /**< IPv6 Fragment (44) */ >>> #define ODPH_IPPROTO_AH 0x33 /**< Authentication Header (51) */ >>> #define ODPH_IPPROTO_ESP 0x32 /**< Encapsulating Security Payload (50) >>> */ >>> +#define ODPH_IPPROTO_ICMPv6 0x3A /**< Internet Control Message Protocol >>> (58) */ >>> #define ODPH_IPPROTO_INVALID 0xFF /**< Reserved invalid by IANA */ >>> >>> /**@}*/ >>> diff --git a/platform/linux-generic/include/protocols/ip.h >>> b/platform/linux-generic/include/protocols/ip.h >>> index 20041f1..2b34a75 100644 >>> --- a/platform/linux-generic/include/protocols/ip.h >>> +++ b/platform/linux-generic/include/protocols/ip.h >>> @@ -157,13 +157,14 @@ typedef struct ODP_PACKED { >>> * IP protocol values (IPv4:'proto' or IPv6:'next_hdr') >>> * @{*/ >>> #define _ODP_IPPROTO_HOPOPTS 0x00 /**< IPv6 hop-by-hop options */ >>> -#define _ODP_IPPROTO_ICMP 0x01 /**< Internet Control Message Protocol >>> (1) */ >>> +#define _ODP_IPPROTO_ICMPv4 0x01 /**< Internet Control Message Protocol >>> (1) */ >>> #define _ODP_IPPROTO_TCP 0x06 /**< Transmission Control Protocol (6) */ >>> #define _ODP_IPPROTO_UDP 0x11 /**< User Datagram Protocol (17) */ >>> #define _ODP_IPPROTO_ROUTE 0x2B /**< IPv6 Routing header (43) */ >>> #define _ODP_IPPROTO_FRAG 0x2C /**< IPv6 Fragment (44) */ >>> #define _ODP_IPPROTO_AH 0x33 /**< Authentication Header (51) */ >>> #define _ODP_IPPROTO_ESP 0x32 /**< Encapsulating Security Payload (50) >>> */ >>> +#define _ODP_IPPROTO_ICMPv6 0x3A /**< Internet Control Message Protocol >>> (58) */ >>> #define _ODP_IPPROTO_SCTP 0x84 /**< Stream Control Transmission protocol >>> (132) */ >>> #define _ODP_IPPROTO_INVALID 0xFF /**< Reserved invalid by IANA */ >>> diff --git a/platform/linux-generic/odp_packet.c >>> b/platform/linux-generic/odp_packet.c >>> index 60eef3a..bfe89cb 100644 >>> --- a/platform/linux-generic/odp_packet.c >>> +++ b/platform/linux-generic/odp_packet.c >>> @@ -2066,7 +2066,10 @@ int packet_parse_common(packet_parser_t *prs, const >>> uint8_t *ptr, >>> >>> /* Parse Layer 4 headers */ >>> switch (prs->ip_proto) { >>> - case _ODP_IPPROTO_ICMP: >>> + case _ODP_IPPROTO_ICMPv4: >>> + /* Fall through */ >>> + >>> + case _ODP_IPPROTO_ICMPv6: >>> prs->input_flags.icmp = 1; >>> break; >>> >>> -- >>> 2.7.4 >>> >
