2. Set a commonly supported ROHC MTU for the tunnel and use ROHC
segmentation to handle the packets that gets expanded beyond PMTUD.
[...] Not
certain that the ROHC segmentation mechanism can work over reordering
transports.
As Carl pointed out, ROHC segmentation is efficient only for non-
reordering links.
It is similar to AAL5, but does not use a length field.
Assuming the CRC is effective, it responds to undetected reordering
with dropping the (reassembled) packet(s) affected with a likelihood
of p ≈ 1-2**-32 (and delivering a bad one with q ≈ 2**-32).
I'm not happy about the security implications if it is not.
However, the IPsec sequence number might be good enough to reliably
detect reordering or even to resequence before ROHC reassembly. I
think that might be the right thing to do, as ROHC segmentation is
much better than IP fragmentation on a non-reordering link.
So there *was* something specific that ROHC could bring to the table...
The remaining problem is that the compressor needs to know the tunnel
MTU.
On ROHC, I wrote:
So what would you want the compressor to do?
Run PLPMTUD (probes can be done by occasionally compressing badly*) on
the tunnel and reject (ICMP unreachable/Frag needed) all DF/IPv6
packets that would not fit with worst-case expansion?
Probably safe, but somewhat expensive.
[...]
*) Yes, this needs way more text.
You would need to compress badly whenever compressing a packet that,
badly compressed, would not fit the currently established safe
PMTU. That unfortunately tends to shrink while compressing well,
which ROHC tends to do :-)
So let's replace that with:
Run PLPMTUD (probes can be done by occasionally compressing badly*) on
the tunnel and ROHC-segment all DF/IPv6 packets that would not fit
with worst-case expansion.
*) This can be done by sending the packet on a separate CID with an
IR, with some impact on compression efficiency on the original CID.
Does that work?
Gruesse, Carsten