[dpdk-dev] [PATCH v4 12/12] examples/l3fwd: add option to parse ptype
Tan, Jianfeng
jianfeng.tan at intel.com
Fri Feb 26 15:21:05 CET 2016
Hi Konstantin,
On 2/26/2016 9:14 PM, Ananyev, Konstantin wrote:
> Hi Jianfeng,
>
>> +static int
...
>> + if (hdr_len == sizeof(struct ipv4_hdr) &&
>> + (hdr->next_proto_id == 6 ||
>> + hdr->next_proto_id == 17))
> Use IPPORTO_UDP, IPPORTO_TCP instead of hardcoded values.
Yes, will fix it.
>> + packet_type |= RTE_PTYPE_L3_IPV4;
>> + }
> Actually it is a good point:
> for EM case should l3fwd process only TCP/UDP packets?
> If yes, then it needs to check not only L3, but also L4 type too
> Which means that for EM and LPM check_packet_type_ok() should also be different.
> Or we can leave it as it is - in that case EM even for non UDP/TCP packet would still
> do route lookup using first 4B of L3 payload.
I'd like to follow the first approach, (if nobody strongly objects to
it), because it's EM's real intention to use 5 tuples.
> If you choose first approach, then there is another thing to consider -
> there are 2 patches in flight for l3fwd:
> http://dpdk.org/dev/patchwork/patch/10800/
> http://dpdk.org/dev/patchwork/patch/10782/
>
> Which makes LPM/EM choice for l3fwd a runtime decision.
> So APP_LOOKUP_METHOD macro would not be available after it.
> Probably need to take that into account for your changes.
> Might be exclude l3fwd from this patch series, then rebase it
> on these patches and submit as a separate one?
Thanks for reminding me of this. And that sounds a good idea to me. This
commit will be excluded and submitted as a separate one.
>> +#elif (APP_LOOKUP_METHOD == APP_LOOKUP_LPM)
>> + packet_type |= RTE_PTYPE_L3_IPV4_EXT_UNKNOWN;
>> +#endif
>> + break;
>> + case ETHER_TYPE_IPv6:
>> +#if (APP_LOOKUP_METHOD == APP_LOOKUP_EXACT_MATCH)
>> + {
>> + struct ipv6_hdr *hdr;
>> +
>> + hdr = (struct ipv6_hdr *)((uint8_t *)eth_hdr +
>> + sizeof(struct ether_hdr));
>> + if (hdr->proto == 6 || hdr->proto == 17)
>> + packet_type |= RTE_PTYPE_L3_IPV4;
> s/ RTE_PTYPE_L3_IPV4/RTE_PTYPE_L3_IPV6/
> ?
Oops, nice catch. Will fix it.
Thanks,
Jianfeng
> Apart from that the series looks good to me.
> Konstantin
>
More information about the dev
mailing list