Re: [lng-odp] [API-NEXT PATCH 1/4] linux-gen: packet: recognize ICMPv6 packets
Sure, I'll send rebased v2. -Matias > On 3 Apr 2017, at 22:38, Maxim Uvarovwrote: > > 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 >> >> On Wed, Mar 22, 2017 at 10:29 AM, Matias Elo wrote: >>> Signed-off-by: Matias Elo >>> --- >>> 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(, 1) % 0x; >>>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_ICMP0x01 /**< 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_FRAG0x2C /**< 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 >>>
Re: [lng-odp] [API-NEXT PATCH 1/4] linux-gen: packet: recognize ICMPv6 packets
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> > On Wed, Mar 22, 2017 at 10:29 AM, Matias Elo wrote: >> Signed-off-by: Matias Elo >> --- >> 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(, 1) % 0x; >> 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_ICMP0x01 /**< 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_FRAG0x2C /**< 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') >> * @{*/ >>
Re: [lng-odp] [API-NEXT PATCH 1/4] linux-gen: packet: recognize ICMPv6 packets
Ping. > On 22 Mar 2017, at 17:29, Matias Elowrote: > > Signed-off-by: Matias Elo > --- > 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(, 1) % 0x; > 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_ICMP0x01 /**< 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_FRAG0x2C /**< 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_ICMP0x01 /**< 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
[lng-odp] [API-NEXT PATCH 1/4] linux-gen: packet: recognize ICMPv6 packets
Signed-off-by: Matias Elo--- 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(, 1) % 0x; 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_ICMP0x01 /**< 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_FRAG0x2C /**< 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_ICMP0x01 /**< 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_FRAG0x2C /**< IPv6 Fragment (44) */ #define _ODP_IPPROTO_AH 0x33 /**< Authentication Header (51) */