-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
IPHC/NHC broken #4462
Comments
Yep, exactly the same. Wireshark shows a garbled CoAP reply arriving in Linux. Disabling iphc makes it work. |
Can someone check with TFTP or simple netcat? Should be affected, too. But I saw it working while reviewing the NHC PR. On 10 December 2015 18:32:53 CET, Kaspar Schleiser notifications@github.com wrote:
Join the RIOT |
Was this problem apparent before #4189 got merged? |
Before this problem, NHC wouldn't work at all. Since IPHC (including NHC) is enabled per default on Linux, no UDP connection between RIOT and Linux did work. |
Isn't IPHC sixlowpan specific? |
Yes. |
Ah, ah, I see. I meant |
Ok, I got that right. In the setup above, linux <-> 6lr is using IPv6 over ethernet. Seems like 6lr doesn't unpack IPHC stuff correctly when handing it to plain IPv6. |
Since the issue is only with UDP traffic and this behavior wasn't appearent with our 2015.09 tests, I strongly suspect that NHC is the problem. |
@cgundogan Can you please comment |
I can confirm that Linux (netcat) -> N2 (posix udp server) works with iphc. N2 -> Linux doesn't work. This is however a completely different problem ( Nevertheless, CoAP ping/discovery is broken with iphc enabled and works when iphc is disabled. "Normal" udp traffic (induced with netcat) does seem to work with and without iphc enabled. |
UDP traffic (posix example - single hop) between two RIOT nodes seems to be broken when iphc is enabled. Disabling iphc on the sending node fixes the problem. (samr21-xpro) |
@jfischer-phytec-iot with |
Maybe related to #4397? |
Found another issue, that might cause this: Currently IPv6 assumes for forwarding, that nothing is between the IPv6 header and the payload for the pktsnip reversal (https://github.com/RIOT-OS/RIOT/blob/master/sys/net/gnrc/network_layer/ipv6/gnrc_ipv6.c#L824). This is not the case with NHC, since UDP will be between the two. Did not go into it in-depth and did not have a fix yet. |
not fixed |
Good catch, thanks |
Have wireshark running while testing #4485 (comment), as I see it, the Border Router does not perform NHC decoding. |
is it a linux br or a riot br? |
riot br (riot-6lo - (over tun) -> linux host) |
@authmillenon |
my setup is: linux (tunslip) <=> gnrc_boarder_example with gnrc_udp module <=> coap example |
also testing with samr21 |
and with #4485 merged |
Yes, but the border router doesn't need the UDP module, because it only forwards. It does need NHC however to decode properly for SLIP/Ethernet traffic. So the dependency between NHC module and the UDP module must not be. |
agree, but it exist
|
@cgundogan have the same test setup
|
I just did a clean setup and removed all my custom debug statements and merged #4485 again: the same hard fault |
BTW: I use the copper firefox plugin to do a CoAP ping. When issueing that CoAP ping, the 6lr crashes |
ok, I use libcoap and |
current status: with |
(on master + #4485) |
I have found an other bug in iphc_nhc_udp_encode... |
enlighten us please |
wip |
But #4485 fixed @kaspar030's and @cgundogan's issue? |
@jfischer-phytec-iot can you at least sketch out a bug description so we can assess the severity for the release? |
Nope, it didn't fix @kaspar030's and my issue. |
I need 20-40 Minutes for a PR, i hope ... There is also an possible overflow in gnrc_pktbuf_realloc_data, is it known? |
Afaik no. |
@cgundogan can you please test #4544 ? |
@cgundogan did you test #4544 ? |
Maybe #4935 will also help ;-). |
This issue is fixed. |
(with merging of #5232) |
Following setup:
Linux <->
gnrc_border_router
example (N1) <->microcoap_server
example (N2)I am able to ping N2 from linux, but I am not able to make CoAP requests.
If I disable iphc with
ifconfig x -iphc
on N1 and N2, then I can do CoAP requests (with Copper) from Linux <-> N2.I have no time to investigate further right now. Can anyone confirm this behavior? @kaspar030 didn't you state something similar on IRC yesterday?
The text was updated successfully, but these errors were encountered: