Message ID | 20160329083732.GA1114@omega (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Hi Alexander Aring, I have watched your presentation on [1] and I saw that you had the "Link encap: UNSPEC" as well. Thank you for your explanation. I hope I can get some directions or hints about the problem I face on running "wpan-ping --daemon" and the socket for 802.15.4. [1] https://archive.fosdem.org/2015/schedule/event/deviot09/ On 3/29/16, Alexander Aring <alex.aring@gmail.com> wrote: > Hi, > > On Mon, Mar 28, 2016 at 10:46:04PM +0700, Adika Bintang Sulaeman wrote: >> Dear all linux-wpan developers and users, >> >> This is my first time exploring 6LoWPAN and I would like to ask you >> some questions. Before getting into questions, these are the devices >> and set up that I use: >> -Raspberry Pi Model B Rev 2 >> -Raspbian OS >> -kernel from bluetooth-next ver 4.5.0-rc5+ >> -MRF24J40MA Transceiver >> >> After setting up and installing the wpan-tools, I got my interface >> work by prompting "ip link show" and there is something like: >> >> 3: wpan0 <BROADCAST,NOARP> mtu 123 qdisc noop state DOWN mode DEFAULT >> group default qlen 1000 >> link/ieee802.15.4 ee:3b:07:84:64:8c:2a:71 brd >> ff:ff:ff:ff:ff:ff:ff >> >> The first thing I notice strange is why after the command "sudo ip >> link add link wpan0 name lowpan0 type lowpan" the output in "ip link >> show" is a bit different, especially in link/[825]: >> >> 7: lowpan0 <BROADCAST,MULTICAST> mtu 1280 qdisc noop state DOWN mode >> DEFAULT group default qlen 1 >> link/[825] ee:3b:07:84:64:8c:2a:71 brd ff:ff:ff:ff:ff:ff:ff >> >> So this is the FIRST QUESTION: >> 1. Is that normal/ok to have link/[825] instead of link/ieee802.15.4? >> > > It's okay. lowpan0 != wpan0 these are different interfaces. It should be > link/6lowpan, but this interface type is just too new and iproute2 > doesn't know it. That's why it shows the identifier of such type. > > We need a patch for iproute2: > > diff --git a/lib/ll_types.c b/lib/ll_types.c > index 2c5bf8b..6c71c8b 100644 > --- a/lib/ll_types.c > +++ b/lib/ll_types.c > @@ -35,6 +35,7 @@ static const struct { > const char *name; > } arphrd_names[] = { > { 0, "generic" }, > +__PF(6LOWPAN,6lowpan) > __PF(ETHER,ether) > __PF(EETHER,eether) > __PF(AX25,ax25) > > Feel free somebody to submit such patch! I cc jukkar here, because this > issue is related to btle 6lowpan also. btw: I didn't test it, just > compile. > > The 6lowpan interface is the same type for 802.15.4 6LoWPAN and BTLE > 6loWPAN, see slides [0]. > >> The second thing I notice strange is after "sudo ip link set wpan0 up" >> for both wpan0 and lowpan0, the "ifconfig" command shows that these >> network interfaces have "Link encap:UNSPEC". If I'm not mistaken, Link >> encap shows the hardware family of the interface, right? >> >> So the SECOND QUESTION is: >> 2. Is that normal/ok to have Link encap:UNSPEC? Because this thing >> makes me suspicious about the next problem that I face. >> > > I think this requires a similar fix like above for "ifconfig". It's just > eyecandy. Remember: ip > ifconfig, because ifconfig is deprecated. > >> I tried to run wpan-ping daemon from /wpan-tools/wpan-ping by >> prompting "wpan-ping --daemon" but the output is "bind: No such >> device". I tried to make my own code to make a server program which >> listen to this socket interface. But when binding with bind(), I got >> the same error status "No device found". >> >> This leads to my THIRD QUESTION: >> 3. Why "no device found" appears? The transceiver is attached, the >> hardware address exists, the interface is up, and I am able to ping >> between two devices using ping6. I am suspicious that the problems >> that I ask you before have caused this problem. >> >> Do you know what's wrong here? >> > > Don't know, I never tried the socket interface for 802.15.4. Stefan > Schmidt did some stuff there, maybe he can help here. > > btw: the socket interface need a complete rework/cleanup. [1] > > What I test is the raw socket interface over AF_PACKET for 802.15.4 > interfaces. > > - Alex > > [0] > http://www.netdevconf.org/1.1/proceedings/slides/aring-generic-6lowpan-branch.pdf > [1] https://github.com/linux-wpan/linux-wpan/issues/20 > -- To unsubscribe from this list: send the line "unsubscribe linux-wpan" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Hello. On 30/03/16 03:43, Adika Bintang Sulaeman wrote: > Hi Alexander Aring, > > I have watched your presentation on [1] and I saw that you had the > "Link encap: UNSPEC" as well. Thank you for your explanation. I hope I > can get some directions or hints about the problem I face on running > "wpan-ping --daemon" and the socket for 802.15.4. Are you actually sure you have the socket code for ieee802154 enabled in your kernel build? CONFIG_IEEE802154_SOCKET If it is not build into the kernel, are you sure the module is loaded? regards Stefan Schmidt -- To unsubscribe from this list: send the line "unsubscribe linux-wpan" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
> On 3/30/16, Stefan Schmidt <stefan@osg.samsung.com> wrote: > Are you actually sure you have the socket code for ieee802154 enabled in > your kernel build? > CONFIG_IEEE802154_SOCKET > > If it is not build into the kernel, are you sure the module is loaded? > > regards > Stefan Schmidt > Hi Stefan, Fortunately I got 802.15.4 socket work by modifying wpan-ping code. By the way, does the function generate_packet(unsigned char *buf, struct config *conf, unsigned int seq_num) try to generate a packet which is not 6LoWPAN? The code set 0x00 for the dispatch header. Now I need an example of using 6LoWPAN socket API instead of creating packet manually. Would anyone mind sharing the code if you have implement it? -- To unsubscribe from this list: send the line "unsubscribe linux-wpan" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Hello. On 30/03/16 21:21, Adika Bintang Sulaeman wrote: >> On 3/30/16, Stefan Schmidt <stefan@osg.samsung.com> wrote: >> Are you actually sure you have the socket code for ieee802154 enabled in >> your kernel build? >> CONFIG_IEEE802154_SOCKET >> >> If it is not build into the kernel, are you sure the module is loaded? >> >> regards >> Stefan Schmidt >> > Hi Stefan, > > Fortunately I got 802.15.4 socket work by modifying wpan-ping code. I still don't see why you would need to do this. What did you change? > By > the way, does the function generate_packet(unsigned char *buf, struct > config *conf, unsigned int seq_num) try to generate a packet which is > not 6LoWPAN? The code set 0x00 for the dispatch header. Yes, it is a 802.15.4 ping utility not using 6lowpan at all. Thus the dispatch header is set to not a 6lowpan frame to avoid problems. > Now I need an > example of using 6LoWPAN socket API instead of creating packet > manually. Would anyone mind sharing the code if you have implement it? Its the normal IPv6 socket API of linux. regards Stefan Schmidt -- To unsubscribe from this list: send the line "unsubscribe linux-wpan" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
> I still don't see why you would need to do this. What did you change? Sorry, I think I didn't explain clearly. I forgot to set pan_id and short address. Now the wpan-ping works fine. I tried to create a server program which is based on 802.15.4 and 6LoWPAN, and I imitate the code from wpan-ping. I didn't mean that I literally changed the wpan-ping. > Its the normal IPv6 socket API of linux. Thank you for your explanation, Stefan Schmidt. Regards -- To unsubscribe from this list: send the line "unsubscribe linux-wpan" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Hello. On 30/03/16 22:49, Adika Bintang Sulaeman wrote: >> I still don't see why you would need to do this. What did you change? > Sorry, I think I didn't explain clearly. I forgot to set pan_id and > short address. Now the wpan-ping works fine. I tried to create a > server program which is based on 802.15.4 and 6LoWPAN, and I imitate > the code from wpan-ping. I didn't mean that I literally changed the > wpan-ping. OK, that makes more sense now. Without the address being setup this would fail. >> Its the normal IPv6 socket API of linux. > Thank you for your explanation, Stefan Schmidt. If you have no specific requirements for the 6LoWPAN part normal client/server code written for the Linux IPv6 socket API should work over the lowpan0 interface. regards Stefan Schmidt -- To unsubscribe from this list: send the line "unsubscribe linux-wpan" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
> If you have no specific requirements for the 6LoWPAN part normal > client/server code written for the Linux IPv6 socket API should work > over the lowpan0 interface. Hi Stefan, I'm sorry if my question would be too stupid or shallow, I just want to make sure because I'm really new to this. I have run an example from [1] on client-server model using UDP and IPv6. To run this example, on the client side I run the command: "listener <IPv6 of another machine for lowpan interface>%lowpan0 the-payload-is-here" According to [2], <IPv6 address>%<interface's name> notation means the machine will try to communicate to <IPv6 address> machine through the <interface's name> interface. Hence, I basically have run client/server program with Linux IPv6 over the lowpan0 interface. Alexander Aring gave me a good presentation slide [3] and on page 12 it is clearly written that Linux still uses AF_INET6 for 6LoWPAN. I just want to make sure whether my approach on making client-server model over 6LoWPAN is right. I am not sure because I don't know whether the IPv6 header is compressed using 6LoWPAN adaptation layer. [1] http://beej.us/guide/bgnet/output/html/singlepage/bgnet.html#datagram [2] http://veithen.github.io/2013/12/30/how-to-correctly-parse-ipv6-addresses.html [3] http://www.netdevconf.org/1.1/proceedings/slides/aring-generic-6lowpan-branch.pdf Best regards -- To unsubscribe from this list: send the line "unsubscribe linux-wpan" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/lib/ll_types.c b/lib/ll_types.c index 2c5bf8b..6c71c8b 100644 --- a/lib/ll_types.c +++ b/lib/ll_types.c @@ -35,6 +35,7 @@ static const struct { const char *name; } arphrd_names[] = { { 0, "generic" }, +__PF(6LOWPAN,6lowpan) __PF(ETHER,ether) __PF(EETHER,eether) __PF(AX25,ax25)