Server:
*internet* -> NIC.device -> reassemble/decrypt(1) -> tun.device -> (routing)
tun.device -> encrypt/frag/mmsfix -> NIC.device -> *internet*
Yes, I was thinking something similar. One small correction, there are two interfaces.
*internet* -> NIC.device
1 -> reassemble/decrypt(1) -> tun.device -> (routing)
tun.device -> encrypt/frag/mmsfix -> NIC.device
2 -> *internet*
When I have enough time I will also test your suggestion, client-to-client, I guess througput will drop but it`s a guess, I have no good understanding of the packet flow and want to "mess around" first 🙂