Bill Fischofer(Bill-Fischofer-Linaro) replied on github web page: include/odp/api/spec/ipsec.h @@ -1293,6 +1297,10 @@ int odp_ipsec_in(const odp_packet_t pkt_in[], int num_in, * with IPSEC, etc headers constructed according to the standards. The amount * and content of packet data before the IP header is undefined. * + * Additional TFC padding might be present after packet payload for ESP-tunnel + * mode. It will be included into encrypted packet. Receiver side will skip + * this padding automatically. + *
Comment: @JannePeltonen I think @lumag's latest wording is concise. Any application using TFC should be familiar with it's requirements and we shouldn't have to repeat the RFC here. > Bill Fischofer(Bill-Fischofer-Linaro) wrote: > OK. Agree with this approach for Tiger Moth. >> JannePeltonen wrote >> > I see no harm in keeping it >> >> I understand you refer to the tfc_padding_truncate capability. Note that the >> proposal to get rid of it and discussion on that (with comments from Petri >> too) are located elsewhere in this tool. >> >> That said, the harm of keeping the capability (in addition to growing the >> API) is that the capability makes a promise that may (depending on what >> value zero means) unnecessarily restrict implementations where the fate of >> the padding is not the same globally in the whole system and at all times >> (e.g. NIC based IPsec offload where padding is removed or not depending no >> through which NIC the packet came in, or a system where removal of the >> padding depends somehow on the packet). >> >> If the capability is kept, its meaning needs to be documented better, >> including specifying what kinds of TFC padding it applies to (see other >> comments regarding that). >>> Bill Fischofer(Bill-Fischofer-Linaro) wrote: >>> @bala-manoharan @NikhilA-Linaro Please provide input here. >>>> Bill Fischofer(Bill-Fischofer-Linaro) wrote: >>>> This is useful information for the application to know about how the >>>> implementation will behave. Applications are free to ignore this if they >>>> wish, but I see no harm in keeping it. >>>>> Dmitry Eremin-Solenikov(lumag) wrote: >>>>> @psavol Yes, but it requires to call `odp_ipsec_result()` (which can be >>>>> quite heavyweight). Currently it is possible to forward packets right >>>>> after calling `odp_packet_has_error()` and `odp_packet_has_ipv4()`, which >>>>> can be inlined to just bit checks. >>>>> >>>>> Anyway, this is now a question to @bala-manoharan and @NikhilA-Linaro if >>>>> it would be easy to add next_header field to `odp_ipsec_packet_result_t` >>>>>> Petri Savolainen(psavol) wrote: >>>>>> Application needs to anyway check if >>>>>> * packet/ipsec operation result has errors >>>>>> * IP version of packet (== what's in the tunnel) >>>>>> >>>>>> If we add result.next_header field, application can use that for both >>>>>> checking IP version and NONH in one switch case. There's no extra check >>>>>> for NONH. >>>>>> >>>>>> if (result.status != 0) >>>>>> goto error; >>>>>> >>>>>> switch (result.next_header) { >>>>>> case IPV4: >>>>>> .... >>>>>> case IPV6: >>>>>> .... >>>>>> case NONH: >>>>>> odp_packet_free(pkt); >>>>>> break; >>>>>> default: >>>>>> goto error; >>>>>> >>>>>>> Dmitry Eremin-Solenikov(lumag) wrote: >>>>>>> @psavol I agree with your arguments. However I'm worried about >>>>>>> fast-forwarding use case. Do you think it will make sense to make >>>>>>> tfc-packet warning (or even just flag) but still require that >>>>>>> `odp_packet_has_error()` returns true for such packets? >>>>>>>> Petri Savolainen(psavol) wrote: >>>>>>>> From IPSEC operation point of view a successfully decrypted dummy >>>>>>>> packet is a successful operation (SA matched, hash was OK, decrypt was >>>>>>>> OK, protocol headers were OK, no replay issues, etc). Just the payload >>>>>>>> format is different than usual. If TFC is really used to hide traffic >>>>>>>> pattern, all spare capacity of the connection could be filled by dummy >>>>>>>> packets. So, it would be more common for application to receive these >>>>>>>> vs. the normal packet (as long as HW is not dropping dummies). >>>>>>>> >>>>>>>> So, I'd like to reserve error/warning bits for the cases when there's >>>>>>>> really a problem (SA configuration miss-match, attack, broken sender >>>>>>>> implementation, etc). >>>>>>>>> Dmitry Eremin-Solenikov(lumag) wrote: >>>>>>>>> We might add next_proto field to packet_result. @NikhilA-Linaro how >>>>>>>>> hard would it be to get this field on your platform? >>>>>>>>> >>>>>>>>> I'm against using warning bit for dummy packets. From ODP packet flow >>>>>>>>> point of view, dummy packet is clearly an errorneous packet. >>>>>>>>>> Balasubramanian Manoharan(bala-manoharan) wrote: >>>>>>>>>> Hmm... I misread the specification so LOOKUP_DSTADDR_SPI only uses >>>>>>>>>> ip addr and proto field for lookup and does not validate the src/dst >>>>>>>>>> ip address or proto filed after decryption. I believe this >>>>>>>>>> validation of IP addr and version can be done by the HW and could be >>>>>>>>>> something to add as an enhancement to the spec in the future. >>>>>>>>>> >>>>>>>>>> Yes, we could add this SA to packet result but since the RFC >>>>>>>>>> specifies in the implementation note to discard the dummy packet >>>>>>>>>> after the reception I was inclined towards not updating these >>>>>>>>>> structures for dummy packets. >>>>>>>>>> >>>>>>>>>> What is your opinion on updating the next protocol field in >>>>>>>>>> odp_packet_result vs adding a warning bit for dummy packet? >>>>>>>>>>> JannePeltonen wrote >>>>>>>>>>> ODP_IPSEC_LOOKUP_DSTADDR_SPI means that for an SA to match a >>>>>>>>>>> received packet, both the SPI and the destination IP address of the >>>>>>>>>>> received ESP/AH packet must match those configured in the SA. This >>>>>>>>>>> lookup must happen before IPsec processing (decryption), i.e. >>>>>>>>>>> before it is even possible to know that the packet is actually a >>>>>>>>>>> dummy TFC packet. You have to find the correct SA and perform >>>>>>>>>>> decryption before you can tell whether a received packet is a >>>>>>>>>>> genuine data packet or a dummy TFC packet. >>>>>>>>>>> >>>>>>>>>>> An application expects the used SA to be set in the packet result >>>>>>>>>>> and, IMHO, dummy packets should not be any different since they got >>>>>>>>>>> processed using the SA. >>>>>>>>>>>> Balasubramanian Manoharan(bala-manoharan) wrote: >>>>>>>>>>>> I was referring to ODP_IPSEC_LOOKUP_DSTADDR_SPI. This cannot be >>>>>>>>>>>> matched in case of NH = 59. Actually, this raises another >>>>>>>>>>>> question. Do you really need the SA from which this Dummy packet >>>>>>>>>>>> was received in the application? Like do we have to fill the SA >>>>>>>>>>>> value in the odp_ipsec_packet_result_t field? >>>>>>>>>>>>> JannePeltonen wrote >>>>>>>>>>>>> What selector checks are you referring to? Traffic selectors are >>>>>>>>>>>>> handled fully in the application side. The ODP implementation >>>>>>>>>>>>> does not know the traffic selectors and cannot do any checks >>>>>>>>>>>>> anyway. >>>>>>>>>>>>>> Balasubramanian Manoharan(bala-manoharan) wrote: >>>>>>>>>>>>>> We added this capability mainly coz NXP were removing the >>>>>>>>>>>>>> padding and Cavium was not removing the padding. If from the >>>>>>>>>>>>>> application point of view you are fine with the wording you have >>>>>>>>>>>>>> suggested above then this capability can be removed. >>>>>>>>>>>>>>> Balasubramanian Manoharan(bala-manoharan) wrote: >>>>>>>>>>>>>>> In case if we update the warning bit when the dummy packet is >>>>>>>>>>>>>>> found then there will not be much impact on the application >>>>>>>>>>>>>>> side since odp_ipsec_status_t consists both error and warning >>>>>>>>>>>>>>> bits. Updating next proto field in ipsec_op_packet_result_t >>>>>>>>>>>>>>> requires implementation to process and update this field for >>>>>>>>>>>>>>> every packet. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> The only API change required is to specify clearly that in-case >>>>>>>>>>>>>>> of a dummy packet the implementation will not do any selector >>>>>>>>>>>>>>> checks on the received packets. >>>>>>>>>>>>>>>> JannePeltonen wrote >>>>>>>>>>>>>>>> I was just pointing out that from functional completeness >>>>>>>>>>>>>>>> perspective API changes are not strictly needed. But as was >>>>>>>>>>>>>>>> discussed in the Wednesday meeting, having the next header >>>>>>>>>>>>>>>> field in the packet result could be useful and convenient >>>>>>>>>>>>>>>> anyway. >>>>>>>>>>>>>>>>> Dmitry Eremin-Solenikov(lumag) wrote: >>>>>>>>>>>>>>>>> The issue with transport mode ESP and NONH is that we should >>>>>>>>>>>>>>>>> never forward NOHN packets even in transport mode. So both >>>>>>>>>>>>>>>>> transport and tunnel NONH packets should raise same >>>>>>>>>>>>>>>>> exceptions. >>>>>>>>>>>>>>>>>> JannePeltonen wrote >>>>>>>>>>>>>>>>>> I do not think it is necessary. The next header field can be >>>>>>>>>>>>>>>>>> anything (like TCP) in transport mode, but in transport mode >>>>>>>>>>>>>>>>>> this API delivers the application and IP packet and inserts >>>>>>>>>>>>>>>>>> the protocol value from the next header field in the >>>>>>>>>>>>>>>>>> protocol field of the IP header. For tunnel mode SAs other >>>>>>>>>>>>>>>>>> next header values than those for IPv4, IPv6 and dummy >>>>>>>>>>>>>>>>>> packets should not appear. >>>>>>>>>>>>>>>>>>> Petri Savolainen(psavol) wrote: >>>>>>>>>>>>>>>>>>> Maybe a generic solution would be to add the IPSEC next >>>>>>>>>>>>>>>>>>> header field value into odp_ipsec_packet_result_t. I guess >>>>>>>>>>>>>>>>>>> all implementations should be able to return that after >>>>>>>>>>>>>>>>>>> decrypt as RFCs mention also TCP as one possible value. So, >>>>>>>>>>>>>>>>>>> payload could be at least IPv4, IPv6, TCP or NONH. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> " The value of this >>>>>>>>>>>>>>>>>>> field is chosen from the set of IP Protocol Numbers >>>>>>>>>>>>>>>>>>> defined on the >>>>>>>>>>>>>>>>>>> web page of Internet Assigned Numbers Authority (IANA). >>>>>>>>>>>>>>>>>>> For example, >>>>>>>>>>>>>>>>>>> a value of 4 indicates IPv4, a value of 41 indicates >>>>>>>>>>>>>>>>>>> IPv6, and a >>>>>>>>>>>>>>>>>>> value of 6 indicates TCP." >>>>>>>>>>>>>>>>>>>> JannePeltonen wrote >>>>>>>>>>>>>>>>>>>> Currently the API promises to give the original packet >>>>>>>>>>>>>>>>>>>> back to the application in case of any error. This would >>>>>>>>>>>>>>>>>>>> apply to dummy packets too. Maybe the API should be so >>>>>>>>>>>>>>>>>>>> that such preservation of the original packet is not >>>>>>>>>>>>>>>>>>>> required in the case of dummy packets to reduce the >>>>>>>>>>>>>>>>>>>> overhead of handling dummy packets. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Reporting dummy packet through an error is a bit >>>>>>>>>>>>>>>>>>>> misleading since no error happened. An application cannot >>>>>>>>>>>>>>>>>>>> e.g. have a global IPsec error counter without first >>>>>>>>>>>>>>>>>>>> filtering out dummy packets. >>>>>>>>>>>>>>>>>>>>> JannePeltonen wrote >>>>>>>>>>>>>>>>>>>>> A dummy packet in transport mode could be delivered to an >>>>>>>>>>>>>>>>>>>>> application in the normal way. The result packet would be >>>>>>>>>>>>>>>>>>>>> an IP packet with protocol 59. But it is true that in >>>>>>>>>>>>>>>>>>>>> tunnel mode there is no way to deliver the packet to the >>>>>>>>>>>>>>>>>>>>> application in the current API. In my interpretation of >>>>>>>>>>>>>>>>>>>>> the current API a tunnel mode dummy packet would result >>>>>>>>>>>>>>>>>>>>> in a proto error (since the decapsulated packet is >>>>>>>>>>>>>>>>>>>>> neither IPv4 nor IPv6). >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> So some warning/error/flag bit is indeed needed if one >>>>>>>>>>>>>>>>>>>>> does not want to confuse dummy packets with protocol >>>>>>>>>>>>>>>>>>>>> errors. >>>>>>>>>>>>>>>>>>>>>> JannePeltonen wrote >>>>>>>>>>>>>>>>>>>>>> This is in conflict with this existing statement a >>>>>>>>>>>>>>>>>>>>>> little earlier: >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> "Additionally, input IP packet length (odp_packet_len() >>>>>>>>>>>>>>>>>>>>>> minus odp_packet_l3_offset()) must match values in >>>>>>>>>>>>>>>>>>>>>> protocol headers. Otherwise esults are undefined." >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> It could be reworded like this: >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> "Additionally, input L3 packet length (odp_packet_len() >>>>>>>>>>>>>>>>>>>>>> minus odp_packet_l3_offset()) must not be smaller than >>>>>>>>>>>>>>>>>>>>>> the IP packet lenght indicated by the IP header. >>>>>>>>>>>>>>>>>>>>>> Otherwise results are undefined. If the input L3 packet >>>>>>>>>>>>>>>>>>>>>> length is bigger than the IP packet length, the >>>>>>>>>>>>>>>>>>>>>> additional packet data is used as TFC padding." >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> And I think that would be sufficient about TFC here. >>>>>>>>>>>>>>>>>>>>>>> JannePeltonen wrote >>>>>>>>>>>>>>>>>>>>>>> I suggest rewording like this (after dropping >>>>>>>>>>>>>>>>>>>>>>> tfc_padding_truncate capa): >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> An inbound ESP packet may contain TFC padding. >>>>>>>>>>>>>>>>>>>>>>> odp_ipsec_in() might or might not remove the padding. >>>>>>>>>>>>>>>>>>>>>>> When TFC padding is not removed, the resulting ODP >>>>>>>>>>>>>>>>>>>>>>> packet will extend beyond the end of the IP packet it >>>>>>>>>>>>>>>>>>>>>>> contains or the resulting IP packet will extend beyond >>>>>>>>>>>>>>>>>>>>>>> the end of the IP payload protocol. An ODP application >>>>>>>>>>>>>>>>>>>>>>> can detect and remove such padding by inspecting the >>>>>>>>>>>>>>>>>>>>>>> length fields of the relevant protocol headers in the >>>>>>>>>>>>>>>>>>>>>>> result packet. >>>>>>>>>>>>>>>>>>>>>>>> Dmitry Eremin-Solenikov(lumag) wrote: >>>>>>>>>>>>>>>>>>>>>>>> I prefer to have this bit as an error to keep very >>>>>>>>>>>>>>>>>>>>>>>> simple constraint. No error => app may forward packet >>>>>>>>>>>>>>>>>>>>>>>> (if it is not interested in details). Error => packet >>>>>>>>>>>>>>>>>>>>>>>> must be threated separately and must not be forwarded. >>>>>>>>>>>>>>>>>>>>>>>>> Dmitry Eremin-Solenikov(lumag) wrote: >>>>>>>>>>>>>>>>>>>>>>>>> True. >>>>>>>>>>>>>>>>>>>>>>>>>> Dmitry Eremin-Solenikov(lumag) wrote: >>>>>>>>>>>>>>>>>>>>>>>>>> Fine, I'll drop this and add a phrase that an >>>>>>>>>>>>>>>>>>>>>>>>>> implementation might have removed the padding. >>>>>>>>>>>>>>>>>>>>>>>>>>> Dmitry Eremin-Solenikov(lumag) wrote: >>>>>>>>>>>>>>>>>>>>>>>>>>> They can not come as "normal" packets. An >>>>>>>>>>>>>>>>>>>>>>>>>>> application will have no way to determine that the >>>>>>>>>>>>>>>>>>>>>>>>>>> package was dummy after receiving it. NH field will >>>>>>>>>>>>>>>>>>>>>>>>>>> be gone in case of tunnel packets. >>>>>>>>>>>>>>>>>>>>>>>>>>>> Petri Savolainen(psavol) wrote: >>>>>>>>>>>>>>>>>>>>>>>>>>>> I suggest that when implementation does not drop >>>>>>>>>>>>>>>>>>>>>>>>>>>> "no next header" packets, those come through as >>>>>>>>>>>>>>>>>>>>>>>>>>>> any other successfully transformed packets: no >>>>>>>>>>>>>>>>>>>>>>>>>>>> error/warning bits set. However, when HW has >>>>>>>>>>>>>>>>>>>>>>>>>>>> dropped a no NH packet it generates a dummy packet >>>>>>>>>>>>>>>>>>>>>>>>>>>> (length zero, etc) with a warning or operation >>>>>>>>>>>>>>>>>>>>>>>>>>>> flag bit on telling that this is not a normal >>>>>>>>>>>>>>>>>>>>>>>>>>>> packet, but an indication that a no NH packet was >>>>>>>>>>>>>>>>>>>>>>>>>>>> dropped. >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> Errors/warnings indicate a failure and may require >>>>>>>>>>>>>>>>>>>>>>>>>>>> some specific action (SA negotiation). This >>>>>>>>>>>>>>>>>>>>>>>>>>>> instead could be could be just a >>>>>>>>>>>>>>>>>>>>>>>>>>>> odp_ipsec_op_flag_t bit, as the operation was >>>>>>>>>>>>>>>>>>>>>>>>>>>> successful and does not need specific action >>>>>>>>>>>>>>>>>>>>>>>>>>>> (other than drop packet after finding out that it >>>>>>>>>>>>>>>>>>>>>>>>>>>> does not contain any data). So, application could >>>>>>>>>>>>>>>>>>>>>>>>>>>> ignore the bit and drop packet as part of normal >>>>>>>>>>>>>>>>>>>>>>>>>>>> processing of too short packets. >>>>>>>>>>>>>>>>>>>>>>>>>>>>> Petri Savolainen(psavol) wrote: >>>>>>>>>>>>>>>>>>>>>>>>>>>>> Also this capa is not strictly needed. A portable >>>>>>>>>>>>>>>>>>>>>>>>>>>>> application will need to handle also the case >>>>>>>>>>>>>>>>>>>>>>>>>>>>> where inline input does not drop NH packets. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Petri Savolainen(psavol) wrote: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> I still vote for minimal TFC specific API >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> changes at this point. This capa is not strictly >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> needed. A portable application would need to >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> implement the length checks anyway. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Dmitry Eremin-Solenikov(lumag) wrote: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> I have to think about it. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Dmitry Eremin-Solenikov(lumag) wrote: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> This will allow fast-path forwarding for some >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> applications. If this flag is set, an >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> application can skip header checks/lookups and >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> forward ready packet. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Dmitry Eremin-Solenikov(lumag) wrote: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> I will update wording to match RFC. Noted >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that ODP does not touch TFC padding in >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> transport mode. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> JannePeltonen wrote >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> So you are saying that my interpretation was >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> not the intended one. I think it is >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> important to make it clear whether we mean >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that there might of might not be padding in >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the received packet in the first place or >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> whether the implementation might or might >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> not strip said padding when present. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> I was thinking it would be good to not make >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> any promises on whether the padding is >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> removed or not, i.e. specify that there may >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> or may not be padding left in the result >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> packet that the application gets. This would >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> work with any implementation, even those >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that do not always do the same thing for >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> every packet (e.g. depending on the input >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> port). >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Not promising anything about the padding >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> would be similar to how the API currently >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> leaves it up to the implementation whether >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> there is any L2 or other bytes in front of >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the IP header in the ODP packet data. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Anyway, I will not attempt better wording >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> before it is clear what the intended >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> semantics are. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Dmitry Eremin-Solenikov(lumag) wrote: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> @psavol @JannePeltonen for async the major >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> issue is the packet metadata/user pointer >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> here. I think we might need to give some >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> thought to this area anyway because of >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> fragmentation handling. We might need >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> additional copy_udata/free_udata function >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> pointers to sa config. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> JannePeltonen wrote >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Yes, but is it needed? With this, an >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> application could check if the capability >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> was set instead of checking if packet >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> length is bigger than the header indicates >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> for deciding whether to trim padding. I >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> just wonder if that is beneficial enough >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> to justify yet another capability flag. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Dmitry Eremin-Solenikov(lumag) wrote: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Well. RX side has no way to know in >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> advance if there will TFC padding or not >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> in the packet. That is why I used "might" >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> here. Could you please suggest better >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wording? >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Dmitry Eremin-Solenikov(lumag) wrote: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> @JannePeltonen >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Basically it is there to describe >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> hardware behaviour. NXP SEC truncates >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> packets according to L4 length, our >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> hardware does not. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Dmitry Eremin-Solenikov(lumag) wrote: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Updating to specifically mention >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "inline" mode. We can add drop/etc. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> settings to sync/async modes later. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> JannePeltonen wrote >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ... my point being, the description >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> should be improved to make it more >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> accurate and unambiguous. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> JannePeltonen wrote >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> The term "TFC padding" in this API >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> proposal seems to differ from that in >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the RFC. It appears that here TFC >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> padding refers only to padding after >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> IP payload in tunnel mode. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> TFC padding, as defined in the RFC, >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> is not restricted to tunnel mode. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Transport mode which carries e.g. UDP >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> or IP or other suitable protocol can >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> have TFC padding but that can not be >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> recognized by ODP in the general case >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> (e.g. with proprietary IP protocols). >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> JannePeltonen wrote >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> I interpret the "might be present" >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> so that if there was TFC padding in >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> a received packet, it might or might >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> not be present after ODP IPsec >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> processing. Is that the intended >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> interpretation and does it need to >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> be made clearer? >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> JannePeltonen wrote >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Is the tfc_padding_truncate >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> capability even needed? It is an >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> optimization for applications that >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> would benefit from knowing in >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> advance that the padding is always >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> truncated, but is there a good use >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> case for that? >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> JannePeltonen wrote >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> The documentation of >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> odp_ipsec_in() says: "Outputted >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> packets with error status have not >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> been transformed but the original >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> packet is returned." >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Maybe it is too much promised for >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> TFC packets (and the application >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> should not need the original >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> packet in that case anyway). It >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> would anyway be good to clarify in >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the comments how exactly >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> odp_ipsec_in() behaves with TFC >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> packets. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> JannePeltonen wrote >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> I understood that we wanted the >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> automatic dropping only in inline >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> processing mode and not in other >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> modes. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Petri Savolainen(psavol) wrote: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> We should minimize the number of >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> configuration options at this >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> time. I think it's not important >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> for application to control dummy >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> packet dropping. So, it can be >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> implementation defined in >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> inline. For sync/async we must >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> defined how many packets can be >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> expected back from each IPSEC >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> operation. The simplest would be >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that each input packet produces >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> an output packet, and it's >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> implementation specific what the >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> output packet contains (NONH >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> packet or just a warning flag >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> telling that the packet was >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> dropped since it was NONH). >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Application would not need to >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> control dropping but notice if >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that happened. Async interface >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> would be problematic for >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> application if it's possible >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that nothing comes back from an >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> operation (all packets silently >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> dropped). >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Dmitry Eremin-Solenikov(lumag) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Hmm. What about >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> `tfc_dummy_packet_drop_sync/async/inline_configurable` >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> capabilities and three flags >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> `tfc_dummy_packet_drop_sync/async/inline`? >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> NikhilA-Linaro wrote >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> This configuration option is a >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> bit confusing. We need to >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> specifically mention inline >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> and look aside cases. It may >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> not be configurable in many >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> hardwares. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Bill >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Fischofer(Bill-Fischofer-Linaro) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Some implementations may be >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> able to configure this >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> behavior in >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> `odp_ipsec_config()`, in >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> which case `odp_support_t` >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> would be useful. We can make >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that change later, but it >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> just looks more consistent >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> here. Not a big deal, however. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Dmitry >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Eremin-Solenikov(lumag) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ok, updated. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Dmitry >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Eremin-Solenikov(lumag) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Because it's not a >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> declaration of supporting a >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> feature but rather a >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> statement how >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> implementation handles this >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> case. It is not possible to >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> switch it. So I preferred >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> to have odp_bool_t here. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Bill >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Fischofer(Bill-Fischofer-Linaro) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> `tfc_dummy_packets_drop` >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> would be clearer. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Bill >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Fischofer(Bill-Fischofer-Linaro) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Since you're referencing >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> `tfc_padding_truncate`, >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the TFC prefix would seem >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> consistent here. So >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> `tfc_dummy_packets_drop` >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> and comments should >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> similarly reference TFC. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Bill >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Fischofer(Bill-Fischofer-Linaro) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Why not `odp_support_t` >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> same as other >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> capabilities here? >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Bill >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Fischofer(Bill-Fischofer-Linaro) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> OK, then I would make >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> it clear that these are >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> supplied by the >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> application. For >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> example: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ``` >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> The application may >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> choose to insert >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> additional padding >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> bytes after the packet >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> payload (bytes in the >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> packet beyond IP >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> length). These will be >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> included in the >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> encrypted output >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> packet, to be skipped >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> by the receiver. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ``` >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> I wouldn't make >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> representations about >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> automatic skipping >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> since there's no >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> assurance that the >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> receiver is an ODP >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> application so we can't >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> say what some other >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> recipient will do. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Dmitry >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Eremin-Solenikov(lumag) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Nothing controls >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> number of padding >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> bytes. It is up to an >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> application to decide. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Dmitry >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Eremin-Solenikov(lumag) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Because there might >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> be no packet >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> associated with such >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> event. Just >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> information that >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> there was TFC packet >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Bill >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Fischofer(Bill-Fischofer-Linaro) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> What controls the >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> number of such >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> padding bytes? This >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> should be documented. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Bill >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Fischofer(Bill-Fischofer-Linaro) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> If this were an >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> `odp_ipsec_packet_result_t` >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> bit rather than a >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> status event all >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> input packets >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> (synchronous, >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> asynchronous, and >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> inline) cases could >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> be handled the same >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> without the TBD. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Why use status >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> events for these >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> packets? https://github.com/Linaro/odp/pull/329#discussion_r161906484 updated_at 2018-01-16 22:41:16