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

include/odp/api/spec/ipsec.h
line 167
@@ -1226,12 +1226,23 @@ typedef struct odp_ipsec_status_t {
  * e.g. RFC 4302 and 4303). Resulting packets are well formed, reconstructed
  * original IP packets, with IPSEC headers removed and valid header field 
values
  * restored. The amount and content of packet data before the IP header is
- * undefined.
+ * undefined. Some amount of TFC padding may follow the IP packet payload,
+ * in which case packet length is larger than protocol headers indicate.
+ * TFC dummy packets have l3_type set to ODP_PROTO_L3_TYPE_NONE in tunnel mode


Comment:
It also should be NO_NEXT, shouldn't it?

> Dmitry Eremin-Solenikov(lumag) wrote:
> In fact I'm more biased towards 
> `odp_packet_get_l3_proto()`/`odp_packet_get_l4_proto()` functions.


>> Bill Fischofer(Bill-Fischofer-Linaro) wrote:
>> @lumag Would exposing he next header byte also be acceptable? That would 
>> similarly seem to be future-proof and would also avoid having to introduce 
>> an `odp_packet_has_dummy()` predicate function.


>>> Dmitry Eremin-Solenikov(lumag) wrote:
>>> It seems @bala-manoharan and me would still prefer separate is_dummy flag. 
>>> We don't even have to limit it to TFC dummy packets, but might use it later 
>>> for all kinds of dummy packets.


>>>> Balasubramanian Manoharan(bala-manoharan) wrote:
>>>> Yes. Just to be clear even if the implementation know that its a dummy 
>>>> packet in Transport mode the application/implementation will have to parse 
>>>> the IP header to know the dummy packet and drop the packet.


>>>>> JannePeltonen wrote
>>>>> Transport mode dummy packets _are_ IP packets. The protocol field of the 
>>>>> IP header (which is constructed based on the IP header of the ESP packet) 
>>>>> is 59.


>>>>>> Balasubramanian Manoharan(bala-manoharan) wrote:
>>>>>> In tunnel mode not setting ipv4/v6 flag for dummy packet should be fine. 
>>>>>> But how do Dummy packets get handled in transport mode? coz if the 
>>>>>> implementation does inner packet parsing then transport mode dummy 
>>>>>> packet will have the valid ipv4/v6 flag set.


>>>>>>> Dmitry Eremin-Solenikov(lumag) wrote:
>>>>>>> After discussion during the call: this needs to be rephrased to point 
>>>>>>> that TFC dummy packets can be truncated by an implementation. Maybe we 
>>>>>>> should not mention that "restructured data" is returned for TFC dummy 
>>>>>>> packet.


>>>>>>>> JannePeltonen wrote
>>>>>>>> On January 17 [email protected] wrote in the lng-odp list:
>>>>>>>> 
>>>>>>>> "However, for the EIP96 - EIP197PP range of solutions our HW /is/ 
>>>>>>>> capable of TFC padding insertion, we would just need to expose this 
>>>>>>>> through our driver and firmware. So API-wise you might want to support 
>>>>>>>> adding n bytes of TFC padding for outbound. "
>>>>>>>> 
>>>>>>>> So apparently such HW exists. And even with pure SW solution, I do not 
>>>>>>>> see why buffer space would need to be allocated from application 
>>>>>>>> specific pools for the padding data.


>>>>>>>>> Dmitry Eremin-Solenikov(lumag) wrote:
>>>>>>>>> I have mixed feelings towards this option. Allocating additional 
>>>>>>>>> buffer space from application-specific pools seems fragile to me. 
>>>>>>>>> Maybe we can leave this out for now till there is hardware which 
>>>>>>>>> actually supports generating additional TFC padding?


>>>>>>>>>> Dmitry Eremin-Solenikov(lumag) wrote:
>>>>>>>>>> Limiting this option to tunnel mode only seems logical but not that 
>>>>>>>>>> effective for an application. Maybe we can allow using this option 
>>>>>>>>>> together with L3 header override to create transport mode dummy 
>>>>>>>>>> packets. Then it would be just easier to inject dummy packets in 
>>>>>>>>>> transport case.


>>>>>>>>>>> Dmitry Eremin-Solenikov(lumag) wrote:
>>>>>>>>>>> @psavol I don't feel good about the 'if dummy flag is set, only 
>>>>>>>>>>> tfc_padding length defines the dummy packet length' proposal. Your 
>>>>>>>>>>> current phrase (`packet_len + tfc_padding` seems better to me).
>>>>>>>>>>> @bala-manoharan if we do not provide a packet, how will 
>>>>>>>>>>> implementation allocate a packet for SYNC/ASYNC modes?


>>>>>>>>>>>> Dmitry Eremin-Solenikov(lumag) wrote:
>>>>>>>>>>>> Also it should be documented that in INLINE mode hardware might 
>>>>>>>>>>>> drop dummy packets on its own, without reporting them to an 
>>>>>>>>>>>> application.


>>>>>>>>>>>>> Dmitry Eremin-Solenikov(lumag) wrote:
>>>>>>>>>>>>> I'm actually thinking about adding special `is_dummy` flag here. 
>>>>>>>>>>>>> Transport mode TFC packets should have `has_ipv4`/`has_ipv6` flag 
>>>>>>>>>>>>> according to their headers. However having special flag which can 
>>>>>>>>>>>>> be checked by an application will allow one to drop them without 
>>>>>>>>>>>>> going to L3 headers.


>>>>>>>>>>>>>> Dmitry Eremin-Solenikov(lumag) wrote:
>>>>>>>>>>>>>> This will cause troubles for NXP hardware, which does not output 
>>>>>>>>>>>>>> decrypted TFC packet, if I understand in right. @NikhilA-Linaro 
>>>>>>>>>>>>>> could you please comment?


>>>>>>>>>>>>>>> Balasubramanian Manoharan(bala-manoharan) wrote:
>>>>>>>>>>>>>>> We can also decide whether the application has to provide a 
>>>>>>>>>>>>>>> valid odp_packet_t handle when "tfc_dummy" flag is set.


>>>>>>>>>>>>>>>> Petri Savolainen(psavol) wrote:
>>>>>>>>>>>>>>>> done


>>>>>>>>>>>>>>>>> Petri Savolainen(psavol) wrote:
>>>>>>>>>>>>>>>>> About 2 vs. 3 level capability. Two levels should be enough 
>>>>>>>>>>>>>>>>> (no, yes). If there are 3 levels (no, yes in SW, yes in HW), 
>>>>>>>>>>>>>>>>> throughput would be optimized if application enables 
>>>>>>>>>>>>>>>>> checksumming only when it's done in HW. Application would not 
>>>>>>>>>>>>>>>>> request SW checksum for all packets, as it can filter out 
>>>>>>>>>>>>>>>>> those that actually need it (e.g. half of the packets) and 
>>>>>>>>>>>>>>>>> then do it in SW only for those.


>>>>>>>>>>>>>>>>>> Petri Savolainen(psavol) wrote:
>>>>>>>>>>>>>>>>>> I think the offset is already known (and possibly set into 
>>>>>>>>>>>>>>>>>> packet header) before implementation knows a packet is 
>>>>>>>>>>>>>>>>>> dummy, since that's part of decrypt operation (== start of 
>>>>>>>>>>>>>>>>>> cipher/clear text data). This spec allows L3 offset to be 
>>>>>>>>>>>>>>>>>> left at an implementation specific value, e.g. 0 if HW did 
>>>>>>>>>>>>>>>>>> drop the dummy content, e.g. 28 if HW does not recognize 
>>>>>>>>>>>>>>>>>> dummy packets (just another decrypted packet from HW point 
>>>>>>>>>>>>>>>>>> of view).
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> When dummy content is left there, application can see how 
>>>>>>>>>>>>>>>>>> much it is and the content. May be that helps in debugging 
>>>>>>>>>>>>>>>>>> dummy vs non-dummy packet, etc.
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> Result of an IPSEC decrypt transformation is always the 
>>>>>>>>>>>>>>>>>> original packet (== what the sender did send). L3 offset 
>>>>>>>>>>>>>>>>>> points to the first byte of the original data. If dummy data 
>>>>>>>>>>>>>>>>>> was dropped, then there's no data.


>>>>>>>>>>>>>>>>>>> Petri Savolainen(psavol) wrote:
>>>>>>>>>>>>>>>>>>> This should be clear for implementers already from RFC, but 
>>>>>>>>>>>>>>>>>>> it's also here since it's easy to forget that data cannot 
>>>>>>>>>>>>>>>>>>> be sent out from any random address (e.g. end of an 
>>>>>>>>>>>>>>>>>>> buffer). Implementation must be sure about the memory 
>>>>>>>>>>>>>>>>>>> content (zeros, rand, counter) before including that as 
>>>>>>>>>>>>>>>>>>> padding.


>>>>>>>>>>>>>>>>>>>> Petri Savolainen(psavol) wrote:
>>>>>>>>>>>>>>>>>>>> We can also decide to write the spec differently. I.e. if 
>>>>>>>>>>>>>>>>>>>> dummy flag is set, only tfc_padding length defines the 
>>>>>>>>>>>>>>>>>>>> dummy packet length. May be it's better spec and as easy 
>>>>>>>>>>>>>>>>>>>> to implement than the one above.


>>>>>>>>>>>>>>>>>>>>> Petri Savolainen(psavol) wrote:
>>>>>>>>>>>>>>>>>>>>> It has been specified that number of bytes to IPsec 
>>>>>>>>>>>>>>>>>>>>> encrypt is always: packet_len - l3_offset + tfc_padding. 
>>>>>>>>>>>>>>>>>>>>> In all other cases (than TFC dummy in tunnel mode), L3 
>>>>>>>>>>>>>>>>>>>>> offset point to first byte of IP header. With dummy, 
>>>>>>>>>>>>>>>>>>>>> application is not required to form an IP header and also 
>>>>>>>>>>>>>>>>>>>>> packet data content is ignored. So, application can e.g. 
>>>>>>>>>>>>>>>>>>>>> set L3 offset = 0, packet_len = 0 and tfc_padding = 512, 
>>>>>>>>>>>>>>>>>>>>> OR L3 offset = 64, packet_len = 320, tfc_padding = 256, 
>>>>>>>>>>>>>>>>>>>>> OR L3 offset = 0, packet_len = 512, tfc_padding= 0.
>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>> All those examples would end up implementation creating a 
>>>>>>>>>>>>>>>>>>>>> 512 byte dummy packet.


>>>>>>>>>>>>>>>>>>>>>> Bill Fischofer(Bill-Fischofer-Linaro) wrote:
>>>>>>>>>>>>>>>>>>>>>> The implementation simply needs to ensure that it 
>>>>>>>>>>>>>>>>>>>>>> doesn't reuse application buffers, as they may contain 
>>>>>>>>>>>>>>>>>>>>>> residual confidential information. This can be done by 
>>>>>>>>>>>>>>>>>>>>>> inserting zeros or random bytes as the implementation 
>>>>>>>>>>>>>>>>>>>>>> chooses. Given the importance of security, it's 
>>>>>>>>>>>>>>>>>>>>>> appropriate to put this caveat in the spec as a reminder 
>>>>>>>>>>>>>>>>>>>>>> to implementations.


>>>>>>>>>>>>>>>>>>>>>>> Bill Fischofer(Bill-Fischofer-Linaro) wrote:
>>>>>>>>>>>>>>>>>>>>>>> OK


>>>>>>>>>>>>>>>>>>>>>>>> Bill Fischofer(Bill-Fischofer-Linaro) wrote:
>>>>>>>>>>>>>>>>>>>>>>>> Please do. While padding is sometimes unavoidable, we 
>>>>>>>>>>>>>>>>>>>>>>>> should try not to introduce it in new structs.


>>>>>>>>>>>>>>>>>>>>>>>>> Bill Fischofer(Bill-Fischofer-Linaro) wrote:
>>>>>>>>>>>>>>>>>>>>>>>>> OK


>>>>>>>>>>>>>>>>>>>>>>>>>> Balasubramanian Manoharan(bala-manoharan) wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>> Does this mean the application will create a TFC 
>>>>>>>>>>>>>>>>>>>>>>>>>> dummy packet?
>>>>>>>>>>>>>>>>>>>>>>>>>> I thought we decided that the application will only 
>>>>>>>>>>>>>>>>>>>>>>>>>> provide the length and dummy packet flag and 
>>>>>>>>>>>>>>>>>>>>>>>>>> implementation will generate a dummy packet.
>>>>>>>>>>>>>>>>>>>>>>>>>> 


>>>>>>>>>>>>>>>>>>>>>>>>>>> Balasubramanian Manoharan(bala-manoharan) wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>> Does this mean we have to set L3 offset for Dummy 
>>>>>>>>>>>>>>>>>>>>>>>>>>> packets? Is there any use-case for this scenario.


>>>>>>>>>>>>>>>>>>>>>>>>>>>> Balasubramanian Manoharan(bala-manoharan) wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>> "Confidential information" How does the 
>>>>>>>>>>>>>>>>>>>>>>>>>>>> implementation guarantee this? Do we really need 
>>>>>>>>>>>>>>>>>>>>>>>>>>>> this in the spec?


>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Petri Savolainen(psavol) wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 3. Also regardless of TFC support. If inner 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> packet is IPv4, but outer is IPv6 and e.g. flabel 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> has been configured to be copied from inner to 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> outer - there's no flabel in inner packet to 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> copy. So, application is able to use this option 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> to pass per packet IPv6 parameters when inner is 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> IPv4, and vice versa. 


>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Petri Savolainen(psavol) wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Application needs to anyway check if packet is 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> v4 or v6. Today it's checking that from first 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> byte of the packet. With TFC tunnel mode, first 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> byte is garbage that cannot be used any more. 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> So, application uses these APIs instead in if - 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> else if - else fashion. There's no more guessing 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> than before.


>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Petri Savolainen(psavol) wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> yes it could. I try to remember that if v2 is 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> needed.


>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Petri Savolainen(psavol) wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Actually, today's pktio capa is too permissive 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> as all config options are automatically capas. 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> That should be changed to align this: pkt 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> input checksums have capas, output not. 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Application does not ask output checksum when 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> not needed. On input application does not have 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> a change to filter packet checksum checking 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> before it sees the packet, but on output it 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> can filter the checksum generation.


>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> JannePeltonen wrote
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> That is right, but there is no limitation in 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> this API.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> This bit is just for tunnel mode dummy 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> packets that cannot otherwise be sent. 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Transport mode dummy TFC packets are sent in 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the normal way: The input packet to an 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> oubound IPsec operation is a well formed IP 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> packet just like in the normal packet case, 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> but the application just sets the protocol 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> field of the IP header to 59. The ODP 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> implementation needs the IP header to be 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> there since that IP header is used (after 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> some adjustments) in the resulting ESP/AH 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> packet. This is different from tunnel mode 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> where the outer IP header is generated based 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> on the information in the SA.


>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> JannePeltonen wrote
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Two cases:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 1) Enabling TFC dummy packet generation for 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> tunnel-mode SAs that have been configured to 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> copy the fields from the inner header. This 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> way the input packet to the IPsec operation 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> does not have to contain valid IP header for 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the copying to work which would be difficult 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> to specify for dummy packets (e.g. how to 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> tell if the inner packet is IPv4 or IPv6). 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> The fields cannot just be left to some 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> default values in dummy packets because that 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> could allow one to distinguish the dummy 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> packets from normal packets in the wire, 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> rendering TFC dummy packets useless.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 2) Making the current API more complete 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> (regardless of TFC support). Currently it is 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> possible to set those fields only to the 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> same SA-specific value or copy from the 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> inner header, but not set the value 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> depending on the packet. I could imagine 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that for DSCP there could be real use cases 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> where the DSCP cannot just be copied (e.g. 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> since if the inner and outer packet belong 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> to different QoS domains with different DSCP 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> interpretation) but the DSCP cannot also be 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the same for all packets of an SA (although 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> It would be better to you separate SAs in 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that case).  


>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> JannePeltonen wrote
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Why? The rationale goes that if 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> checksumming is requested in the outbound 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> direction the implementation can always 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> calculate in in SW since that is what the 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> application would have to do otherwise. 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Inbound direction is different since the 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> need for L4 checksum checking (i.e. is the 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> packet destined to this system of just 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> forwarded) is not yet known at the time of 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> reception (so if an implementation sets the 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> inbound capability, it should mean that it 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> can do checksumming clearly more 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> efficiently than pure SW).


>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Dmitry Eremin-Solenikov(lumag) wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Hmm. I think RFC 4303 does not limit TFC 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> dummy packets to tunnel mode. One can 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> generate them in transport mode.


>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Dmitry Eremin-Solenikov(lumag) wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> What is the use case for these options?


>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Dmitry Eremin-Solenikov(lumag) wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> There is one indeed.


>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Bill Fischofer(Bill-Fischofer-Linaro) 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Is there no need for a corresponding 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> `chksums_out` capability?


>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Bill Fischofer(Bill-Fischofer-Linaro) 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> I assume  this is referring to the 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> `odp_packet_has_ipv4()` and 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> `odp_packet_has_ipv6()` accessor 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> functions? Since these bits are only 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> accessible via these functions, this 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> forces applications to play a guessing 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> game with them and their L4 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> counterparts. Might it be better to 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> consider having 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> `odp_packet_l3_proto()` and 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> `odp_packet_l4_proto()` functions?


>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Bill Fischofer(Bill-Fischofer-Linaro) 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Can `flabel` be placed after 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> `dst_addr`? This would avoid the pad 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> bytes that would otherwise be 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> inserted between `dspc` and `flabel`.


https://github.com/Linaro/odp/pull/403#discussion_r165119101
updated_at 2018-01-31 17:02:39

Reply via email to