Hello Stuart, xl2tpd could not correctly handle fragmented ppp frame while read it from pty if one of consequent read operation return an error. That's happening because xl2tpd too often cleans the buffer and assumes that each read frame operation is performed for new frame, since xl2tpd uses single buffer for pty and for socket read operations.
The attached patch moves all pty related buffers into _call_ context and corrects calculation of buffer position, what fixes issue with handling of fragmented frames. Now we can use MTU > 1000. I tested these changes with load (L2TP tunnel without IPSec) and all seems work normally. No more "Protocol-Reject" frames. I attach two patches: xl2tpd-1.3.1-fix-ppp-fragmentation.patch - against xl2tpd-1.3.1 sources, implements fix ports-net-xl2tpd-fix-ppp-fragmentation.patch - integrates patch to ports tree and also corrects README: enlarge MTU/MRU values in example config and remove note about fragmented frames issues. Anyway, even with this change and MTU ~ 1400, overall performance is nasty: only 2 mbps of upload rate on my 3GHz Intel CPU. -- Sergey
xl2tpd-1.3.1-fix-ppp-fragmentation.patch
Description: Binary data
ports-net-xl2tpd-fix-ppp-fragmentation.patch
Description: Binary data