Dmitry Eremin-Solenikov(lumag) replied on github web page:

include/odp/api/spec/packet.h
line 14
@@ -71,6 +71,51 @@ extern "C" {
   * Packet is red
   */
 
+/**
+ * Protocol
+ */
+typedef enum odp_proto_t {
+       /** No protocol defined */
+       ODP_PROTO_NONE = 0,
+
+       /** Ethernet (including VLAN) */
+       ODP_PROTO_ETH,
+
+       /** IP (including IPv4 and IPv6) */


Comment:
Maybe it would be better to split this into separate IPv4 and IPv6 packets. It 
would be an error to pass IPv6 packet with ethtype (or IP tunnel type) being 
set to IPv4. 

> Petri Savolainen(psavol) wrote:
> A vector of packets is CPU vector instructions friendly.


>> Petri Savolainen(psavol) wrote:
>> The use case is mentioned in log message: parse after decrypt/IP reassembly. 
>> Application has recreated an inner packet and needs to parse it before 
>> continue. This is inherently SW parse which may be accelerated with CPU 
>> vector instructions, etc.


>>> Bill Fischofer(Bill-Fischofer-Linaro) wrote:
>>> What's the use case for a multi() form of this API? Might VPP use it? 
>>> Perhaps Sachin can comment?


>>>> Bill Fischofer(Bill-Fischofer-Linaro) wrote:
>>>> We had considered an `odp_packet_parse()` function some time back but it 
>>>> was rejected as something that would not fit well with hardware parsers. 
>>>> What's changed?


https://github.com/Linaro/odp/pull/273#discussion_r149388508
updated_at 2017-11-07 14:54:26

Reply via email to