Comment 1 for bug 1357078

Revision history for this message
Didier Barvaux (didier-barvaux) wrote :

The ROHCv1 TCP profile is not defined in RFC 3095, but in RFC 6846. The Aeroflex data is indeed one IR packet.

RFC 6846 defines one IR packet as follow in §7.1:
 * optional 1-byte add-CID octet
 * 1-byte IR type octet = 0xFD
 * optional 1-2-byte large CID
 * 1-byte profile ID = 0x06
 * 1-byte CRC
 * static chain
 * dynamic chain
 * payload

So, the Aeroflex data may be read as follow:
 * no Add-CID
 * 1-byte IR type octet = 0xFD
 * no large CID
 * 1-byte profile ID = 0x06
 * 1-byte CRC = 0xFC
 * 14-byte static chain:
       * 10-byte IPv4 static chain: 00 06 C0 A8 95 6A 0A 0A 02 02
       * 4-byte TCP static chain: 0B 00 20 FB
 * 24-byte dynamic chain:
       * 5-byte IPv4 dynamic chain: 04 00 80 53 6E
       * 19-byte TCP dynamic chain: 30 02 00 01 99 34 21 9C FF FF 26 35 06 A8 B8 8D 05 AC 01
 * no payload

RFC 6846 defines the IPv4 static chain as follow:
  COMPRESSED ipv4_static {
    version_flag =:= '0' [ 1 ];
    reserved =:= '0000000' [ 7 ];
    protocol =:= irregular(8) [ 8 ];
    src_addr =:= irregular(32) [ 32 ];
    dst_addr =:= irregular(32) [ 32 ];
  }

So, the Aeroflex 10-byte IPv4 static chain may be read as follow:
 * 1-bit version flag = 0
 * 7-bit reserved field = 0
 * 1-byte protocol = 0x06 (= TCP)
 * 4-byte source address = C0 A8 95 6A
 * 4-byte destination address = 0A 0A 02 02

In conclusion, the Aeroflex packet looks fine. So looks the library. In consequence, I'm going to mark the ticket as 'invalid'.