[riot-devel] MRF24J40 radio module driver

Peter Kietzmann peter.kietzmann at haw-hamburg.de
Mon Sep 5 23:45:42 CEST 2016


Hi Neo,

if I see it correctly, the procedure is as follows:

gnrc_networking uses the the gnrc_ipv6 module which automatically pulls 
in it's dependencies. This is, among others, gnrc_ipv6_netif.

https://github.com/RIOT-OS/RIOT/blob/master/Makefile.dep#L280

Once this was defined, auto_init will call the "init by netif device" 
function.

https://github.com/RIOT-OS/RIOT/blob/master/sys/auto_init/auto_init.c#L227

This function will set the net option "NETOPT_SRC_LEN" to 8 Byte, which 
is the length for long hardware addresses.

https://github.com/RIOT-OS/RIOT/blob/master/sys/net/gnrc/network_layer/ipv6/netif/gnrc_ipv6_netif.c#L833

The at86rf2xx driver does not implement this option itself and passes it 
to the netdev2_ieee802154 module.

https://github.com/RIOT-OS/RIOT/blob/master/drivers/at86rf2xx/at86rf2xx_netdev.c#L580

In case netopt is "NETOPT_SRC_LEN" and the value is 
"IEEE802154_LONG_ADDRESS_LEN" (which is defined as 8U), this module sets 
the "NETDEV2_IEEE802154_SRC_MODE_LONG" flag.

https://github.com/RIOT-OS/RIOT/blob/master/drivers/netdev2_ieee802154/netdev2_ieee802154.c#L173

Didn't check it until know. Hope it already helped.

Best
Peter

PS: Independent from upper layers and the flag field, the driver itself 
sets a short and a long hardware address on initialization.

https://github.com/RIOT-OS/RIOT/blob/master/drivers/at86rf2xx/at86rf2xx.c#L90


Am 04.09.2016 um 18:10 schrieb Neo:
> Hello alltogether,
> I'm using actually the AT86RF2XX driver as a template for the
> development of the MRF24J40 radio module driver.
>
> At the moment I'm comparing the netdev2 flags of the AT86RF2XX driver
> and the MRF24J40 when using the gnrc_networking example and I see a
> difference.
> If I take a look onto the AT86RF2XX setup the flags show me a value of
> 0x5164 whereas myone shows 0x5160.
> I can't find the any place where the missing flag 0x0004 is set in the
> AT86RF2XX driver. In the ../drivers/include/net/netdev2/ieee80154.h file
> the define for this flag is NETDEV2_IEEE802154_SRC_MODE_LONG meaning the
> usage of long source addresses.
>
> Can anyone tell me where the driver is set up to use long source addresses?
>
> Thanks a lot!
>
> Best regards,
> Neo
>
>
> _______________________________________________
> devel mailing list
> devel at riot-os.org
> https://lists.riot-os.org/mailman/listinfo/devel

-- 
Peter Kietzmann

Hamburg University of Applied Sciences
Dept. Informatik, Internet Technologies Group
Berliner Tor 7, 20099 Hamburg, Germany
Fon: +49-40-42875-8426
Web: http://www.haw-hamburg.de/inet


More information about the devel mailing list