From 5ac2c612367b0c2dba9eb2acd743cd4d7748101f Mon Sep 17 00:00:00 2001 From: Martine Lenders Date: Wed, 3 Jun 2015 17:08:48 +0200 Subject: [PATCH] xbee: add NETCONF_OPT_IPV6_IID handler --- drivers/xbee/xbee.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/drivers/xbee/xbee.c b/drivers/xbee/xbee.c index bd7f60339c..b9bd1cecbf 100644 --- a/drivers/xbee/xbee.c +++ b/drivers/xbee/xbee.c @@ -25,6 +25,8 @@ #include "xbee.h" #include "hwtimer.h" #include "msg.h" +#include "net/eui64.h" +#include "net/ng_ieee802154.h" #include "periph/cpuid.h" #define ENABLE_DEBUG (0) @@ -620,6 +622,18 @@ static int _get(ng_netdev_t *netdev, ng_netconf_opt_t opt, *((uint16_t *)value) = 2; } return sizeof(uint16_t); + case NETCONF_OPT_IPV6_IID: + if (max_len < sizeof(eui64_t)) { + return -EOVERFLOW; + } + if (dev->addr_flags & XBEE_ADDR_FLAGS_LONG) { + ng_ieee802154_get_iid(value, (uint8_t *)&dev->addr_long, 8); + } + else { + ng_ieee802154_get_iid(value, (uint8_t *)&dev->addr_short, 2); + } + + return sizeof(eui64_t); case NETCONF_OPT_CHANNEL: return _get_channel(dev, (uint8_t *)value, max_len); case NETCONF_OPT_MAX_PACKET_SIZE: