I glanced the proposal, and I have doubts as to how well it works, and in 
particular, how well it would work in parallelized decryption.  As I understand 
it, the antireplay window the decryptor checks against is specified in the 
'Sender ID/Window ID' field.  If the decryptor can handle only one packet for a 
specific antireplay window, then the level of parallelism that the decryptor 
can use is entirely up to the encryptor, which might not take the decryptor's 
needs into consideration.  For example, if the encryptor decides to send every 
packet with the same Sender ID/Window ID, then the decryptor would be forced to 
use a single thread, which eliminates most of the advantage this proposal 
claimed to offer.

So, does this proposal include any way for the decryptor to suggest (either at 
SA negotiation time or dynamically) the behavior the encryptor is supposed to 
follow?

And, if the decryptor can handle a single antireplay window with multiple 
threads, then most of the parallelizability benefits aren't there (and 
parallelizing in the encrypt direction is fairly straight-forward; the only 
non-parallelizable step is assigning the sequence number to each packet, and 
that's comparatively straight-forward).

In addition, during the WG meeting, I groused in the chat about requiring the 
receiver to track a large (and not tightly bounded) number of independent 
sequence windows; I believe that is an issue as well.  On the IPsec dataplanes 
I've worked on, we tried to keep the data structures simple (and we could not 
dynamically allocate memory if we saw a sender id/window id that we hadn't seen 
before).  Now, it has since occurred to me that the data plane could have a 
number of antireplay windows, and if it saw a sender id/window id that it 
hadn't seen before, then (after validating the packet), it could send a message 
to the control plane (which would allocate/refresh the antireplay window, and 
possible retire a not-recently-used one).  However, that strikes me as adding 
significant complexity.

I believe that this was asked on the mailing list already, but I will repeat 
it: what advantage does this approach have over the 'having independent SAs 
with separate SPIs' approach?

As for the idea of moving the integrity check value before the encapsulated 
packet, well, that idea might help on your platform; however it strikes me that 
the advantage would likely be fairly platform dependent.  However, if you are 
getting rid of the trailer, how would this idea extend to transport mode?  
Where would you place the NH field (this is a question, not a criticism; moving 
the NH field up front is likely to be a benefit).

_______________________________________________
IPsec mailing list
IPsec@ietf.org
https://www.ietf.org/mailman/listinfo/ipsec

Reply via email to