TCP profile: bug on ARM plateform
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
rohc |
Fix Released
|
Medium
|
Didier Barvaux |
Bug Description
Last branch witch TCP support (rohc-tcp) have problems with ARM plateforms running non-regression tests.
Little/big endian, aligment, ...
For examples:
ipv4_icmp_
-------
--------- reference ---------- ----------- new --------------
[0x45] [0x00] #0x00# #0x54# [0x45] [0x00] #0x54# #0x00#
[0x00] #0x00# #0x40# [0x00] [0x00] #0x40# #0x00# [0x00]
[0x40] #0x01# #0x93# #0x52# [0x40] #0xc4# #0x21# #0x00#
[0xc0] [0xa8] [0x13] [0x01] [0xc0] [0xa8] [0x13] [0x01]
[0xc0] [0xa8] [0x13] [0x05] [0xc0] [0xa8] [0x13] [0x05]
[0x08] [0x00] [0xe9] [0xc2] [0x08] [0x00] [0xe9] [0xc2]
[0x9b] [0x42] [0x00] [0x01] [0x9b] [0x42] [0x00] [0x01]
[0x66] [0x15] [0xa6] [0x45] [0x66] [0x15] [0xa6] [0x45]
[0x77] [0x9b] [0x04] [0x00] [0x77] [0x9b] [0x04] [0x00]
[0x08] [0x09] [0x0a] [0x0b] [0x08] [0x09] [0x0a] [0x0b]
[0x0c] [0x0d] [0x0e] [0x0f] [0x0c] [0x0d] [0x0e] [0x0f]
[0x10] [0x11] [0x12] [0x13] [0x10] [0x11] [0x12] [0x13]
[0x14] [0x15] [0x16] [0x17] [0x14] [0x15] [0x16] [0x17]
[0x18] [0x19] [0x1a] [0x1b] [0x18] [0x19] [0x1a] [0x1b]
[0x1c] [0x1d] [0x1e] [0x1f] [0x1c] [0x1d] [0x1e] [0x1f]
[0x20] [0x21] [0x22] [0x23] [0x20] [0x21] [0x22] [0x23]
[0x24] [0x25] [0x26] [0x27] [0x24] [0x25] [0x26] [0x27]
[0x28] [0x29] [0x2a] [0x2b] [0x28] [0x29] [0x2a] [0x2b]
[0x2c] [0x2d] [0x2e] [0x2f] [0x2c] [0x2d] [0x2e] [0x2f]
[0x30] [0x31] [0x32] [0x33] [0x30] [0x31] [0x32] [0x33]
[0x34] [0x35] [0x36] [0x37] [0x34] [0x35] [0x36] [0x37]
-------
ipv6_esp_
-------
--------- reference ---------- ----------- new --------------
#0x60# [0x00] [0x00] [0x00] #0x00# [0x00] [0x00] [0x00]
#0x00# #0x64# [0x32] [0x40] #0x64# #0x00# [0x32] [0x40]
[0x3f] [0xfe] [0x00] [0x00] [0x3f] [0xfe] [0x00] [0x00]
[0x00] [0x00] [0x00] [0x00] [0x00] [0x00] [0x00] [0x00]
[0x00] [0x00] [0x00] [0x00] [0x00] [0x00] [0x00] [0x00]
[0x00] [0x00] [0x00] [0x01] [0x00] [0x00] [0x00] [0x01]
[0x3f] [0xfe] [0x00] [0x00] [0x3f] [0xfe] [0x00] [0x00]
[0x00] [0x00] [0x00] [0x00] [0x00] [0x00] [0x00] [0x00]
[0x00] [0x00] [0x00] [0x00] [0x00] [0x00] [0x00] [0x00]
[0x00] [0x00] [0x00] [0x02] [0x00] [0x00] [0x00] [0x02]
[0x00] [0x00] [0x00] [0x0a] [0x00] [0x00] [0x00] [0x0a]
[0x00] [0x00] [0x00] [0x04] [0x00] [0x00] [0x00] [0x04]
[0x2f] [0x94] [0x5c] [0x4a] [0x2f] [0x94] [0x5c] [0x4a]
[0x5c] [0x64] [0x46] [0xff] [0x5c] [0x64] [0x46] [0xff]
[0x50] [0xdc] [0x32] [0x25] [0x50] [0xdc] [0x32] [0x25]
[0x7d] [0xde] [0x6a] [0xcd] [0x7d] [0xde] [0x6a] [0xcd]
[0x70] [0xde] [0x3f] [0xc8] [0x70] [0xde] [0x3f] [0xc8]
[0xa0] [0xcd] [0xea] [0xe7] [0xa0] [0xcd] [0xea] [0xe7]
[0x2f] [0x93] [0xac] [0xe3] [0x2f] [0x93] [0xac] [0xe3]
[0xef] [0xbd] [0xb3] [0x7d] [0xef] [0xbd] [0xb3] [0x7d]
[0x21] [0x05] [0x81] [0x25] [0x21] [0x05] [0x81] [0x25]
[0x3f] [0xcf] [0x9d] [0x70] [0x3f] [0xcf] [0x9d] [0x70]
[0xa2] [0xc3] [0x45] [0xbc] [0xa2] [0xc3] [0x45] [0xbc]
[0x8b] [0x43] [0x61] [0xf6] [0x8b] [0x43] [0x61] [0xf6]
[0x34] [0xb3] [0xd9] [0x2e] [0x34] [0xb3] [0xd9] [0x2e]
[0x5f] [0xc0] [0x2e] [0x65] [0x5f] [0xc0] [0x2e] [0x65]
[0xe6] [0x65] [0x03] [0x9f] [0xe6] [0x65] [0x03] [0x9f]
[0x94] [0x32] [0x52] [0x85] [0x94] [0x32] [0x52] [0x85]
[0x13] [0xb5] [0xf8] [0x7a] [0x13] [0xb5] [0xf8] [0x7a]
[0x6b] [0x0d] [0x9d] [0x1f] [0x6b] [0x0d] [0x9d] [0x1f]
[0xcd] [0xbc] [0x01] [0xca] [0xcd] [0xbc] [0x01] [0xca]
[0x02] [0x65] [0xff] [0x18] [0x02] [0x65] [0xff] [0x18]
[0xa3] [0x5c] [0xba] [0xaf] [0xa3] [0x5c] [0xba] [0xaf]
[0xc7] [0xdd] [0x61] [0x8a] [0xc7] [0xdd] [0x61] [0x8a]
[0x91] [0x6c] [0xb8] [0x20] [0x91] [0x6c] [0xb8] [0x20]
-------
summary: |
- Bug on ARM plateform + TCP profile: bug on ARM plateform |
Changed in rohc: | |
status: | Fix Committed → Fix Released |
Adding some "__attribute_ _((packed) )" solves at of problem.
But it is not sufficient: there is a problem in the procedure ip_fast_csum() called in file decomp/d_generic.c
Using procedure my_ip_fast_csum() in file decomp/d_tcp.c solves the problem!