lwip-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lwip-users] PPP bug related to VJ


From: Jan Ulvesten
Subject: [lwip-users] PPP bug related to VJ
Date: Fri, 23 Dec 2005 18:51:55 +0100

Hi

 

It appears to be a problem related to VJ header compression in PPP?

 

The TCP unsent/unacked queue is assumed to be uncompressed at the transport layer, but vj_compress_tcp()  called from pppifOutput() works directly on the TCP payload which includes the segments tcp-header (seg->tcp_hdr).  This isn’t a problem as long as the segment isn’t retransmitted.

 

A TCP retransmission causes undefined behavior, in my test setup I observed that absolutely all TCP flags were set in a transmitted frame. The connection was off course closed. In other tests I’ve seen that the TCP checksum have been modified.

 

Another issue that I’ve seen is that the VJ compression does not implement the alignment rules. The payload pointer of pb may be odd after the call to vj_compress_tcp()

 

Since VJ reduces the header size from 40 bytes (IP+TCP) to around 8 bytes I would really like to use VJ, especially when using PPP on low bitrates.

 

I’m not sure how to solve this. For now I just make a copy of the first pbuf in the chain (assuming that this pbuf contains both TCP and IP header) and then restores the original pbuf after the compressed buffer has been used.

 

Anyone who has the same experience?

 

Jan Ulvesten

 

Senior Software Engineer
SICOM  AS


reply via email to

[Prev in Thread] Current Thread [Next in Thread]