The program can be found at this github. branch all_fixes.
https://github.com/smee204/unstrung/tree/all_fixes
The socket is created in iface.cpp network_interface::setup()
The receive problem is in iface.cpp network_interface::receive(const
time_t now)
Thanks
Simon
On 02/09/14 15:43, Alexander Aring wrote:
Hi Simon,
On Tue, Sep 02, 2014 at 03:21:56PM +0100, Simon Vincent wrote:
I am having problems with raw sockets on a 6lowpan 802.15.4 interface. The
code works correctly on an ethernet ipv6 interface but not on a 6lowpan
interface. In the 6lowpan interface I receive packets but I find the src and
dest addresses are incorrect.
I open the socket like this:
socket(AF_INET6, SOCK_RAW, IPPROTO_ICMPV6);
Add options for IPV6_RECVPKTINFO, IPV6_CHECKSUM, IPV6_RECVHOPLIMIT.
I then receive a packet using recvmsg and attempt to get the source address.
The source address is rubbish. Also trying to get the destination address
from IPV6_PKTINFO using CMSG_FIRSTHDR results in rubbish.
Can anyone explain why? Is there something different I have to do when using
802.15.4 and 6lowpan?
Can you please send a test programm for this as example? Then I/We will
look at why this happen.
I think this would be the best to find why you have this issue. Doesn't
need to be the full program only a small example.
What I can say actually is:
To send ICMPv6 packets from userspace you need RAW-Sockets. This is how
ping6 do it and ping6 works on my side. Maybe there is a issue because
some of your sockopts.
- Alex
--
To unsubscribe from this list: send the line "unsubscribe linux-wpan" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html