gnrc_ndp: add support for address-less link-layers#3628
gnrc_ndp: add support for address-less link-layers#3628OlegHahm merged 2 commits intoRIOT-OS:masterfrom
Conversation
|
For some reason I saw very strange behavior regarding state changes on native. When entering |
6bd6608 to
eb85239
Compare
|
Rebased to current master |
eb85239 to
fb37831
Compare
|
Rebased to current master |
1141706 to
37dac1e
Compare
|
Rebased to current master. |
37dac1e to
f7dfc25
Compare
Is this fixed, or do you still see this strange behavior? |
Neighbor is reachable and later stale, so it seems to be: |
|
Got some fixes over from #3049 that were supposed to be in here. |
b07af3f to
e38e156
Compare
|
Hm, no, only Linux isn't responding to RIOT's neighbor solicitation. Maybe this is because of the tun interface? |
|
Mh… can you maybe inject them with |
|
How could I add the ncache entry manually in RIOT? |
|
|
|
oh… the command can't handle address-less link-layers currently ^^ lemme fix that |
|
Gotta go now. However, in the worst case I'm willing to ACK this even if Linux-interaction over slip is not working for now. |
|
Just thinking about it: isn't it quite pointless to send out neighbor solicitations on an addressless link-layer anyway? |
|
Why, for NUD it is still required. |
|
Well, neighbor solicitations are also used to verify if a neighbor is reachable or not. |
|
Adapted |
|
How do you know if a neighbor is reachable if you cannot address it? |
|
You send a neighbor solicitation (either to the IPv6 address of the node if you already know the host [from previous communiction] or to the solicited-nodes multicast address of the IPv6 address if you don't know it) with the IPv6 address of the node in it's target field. If you get a neighbor advertisement with the solicited flag set and the target address being set to the IPv6 address you tested the reachability for, you know the neighbor is reachable. |
|
Hm, okay, but still the Linux side doesn't seem convinced that answering a neighbor solicitation for a tun interface. What about using a tap interface on the Linux side? Wouldn't this make things easier and remove the need for any exception case on the RIOT side? |
|
a) a TAP interface is an Ethernet interface and SLIP is an other link-layer. So I don't see how you would use a TAP, at least not with some effort in |
|
Ok, we don't have the time right now to debug this problem. The rest seems working (though I'm not happy with the rather big changes to "normal" ND), so let's move on. Please squash. |
121a379 to
8e0e26c
Compare
|
Squashed |
8e0e26c to
6e0a447
Compare
|
Fixed error in shell and squashed immediately |
|
If I add the Linux host manually to the neighbor cache by calling something like |
|
Have you set a source address on the interface? |
|
lol - I did, but apparently rebooted afterwards. Now it's working. |
gnrc_ndp: add support for address-less link-layers
Allows NDP to handle link-layers without addresses. This is achieved by handling the updating of the neighbor cache outside the context of the SL2A handle function and giving that function a numerical return value that states the length of the link-layer address (or negative for an error)