Merge branch 'ieee802154'
This commit is contained in:
commit
1774ae812c
@ -1906,7 +1906,7 @@
|
|||||||
Kivilinna (2017-04-03).
|
Kivilinna (2017-04-03).
|
||||||
* NSH: Fix some warnings about integer/pointer casts of different sizes
|
* NSH: Fix some warnings about integer/pointer casts of different sizes
|
||||||
(probably only effects 64-bit simulation) (2017-04-03).
|
(probably only effects 64-bit simulation) (2017-04-03).
|
||||||
* examples/nettest: Trying to adapt to use for testing 6loWPAN
|
* examples/nettest: Trying to adapt to use for testing 6LoWPAN
|
||||||
(2017-04-03).
|
(2017-04-03).
|
||||||
* examples/nettest: If doing loopback, but not using the official
|
* examples/nettest: If doing loopback, but not using the official
|
||||||
loopback device, then use the server should use the configured client
|
loopback device, then use the server should use the configured client
|
||||||
@ -1925,10 +1925,10 @@
|
|||||||
default is +x. No printing of a trace of script commands as they are
|
default is +x. No printing of a trace of script commands as they are
|
||||||
executed. From David Sidrane (2017-04-05).
|
executed. From David Sidrane (2017-04-05).
|
||||||
* Print expanded variables if -x. From David Sidrane (2017-04-05).
|
* Print expanded variables if -x. From David Sidrane (2017-04-05).
|
||||||
* examples/udpblaster: Several fixes to work with 6loWPAN (2017-04-06).
|
* examples/udpblaster: Several fixes to work with 6LoWPAN (2017-04-06).
|
||||||
* examples/udpblaster: Add logic to bind the local UDP socket to a
|
* examples/udpblaster: Add logic to bind the local UDP socket to a
|
||||||
well-known address (2017-04-06).
|
well-known address (2017-04-06).
|
||||||
* 6loWPAN: Add network IOCTL support to set the node address
|
* 6LoWPAN: Add network IOCTL support to set the node address
|
||||||
(2017-04-06).
|
(2017-04-06).
|
||||||
* examples/ostest: Add tests for pthread_rwlock. Adding tests to be
|
* examples/ostest: Add tests for pthread_rwlock. Adding tests to be
|
||||||
used to verify the pthread_rwlock lock works. From Mark Schulte
|
used to verify the pthread_rwlock lock works. From Mark Schulte
|
||||||
@ -1937,9 +1937,9 @@
|
|||||||
unconditionally (2017-04-07).
|
unconditionally (2017-04-07).
|
||||||
* examples/ostest: pthread rwlock additional tests and bugfixes. From
|
* examples/ostest: pthread rwlock additional tests and bugfixes. From
|
||||||
Mark Schulte (2017-04-07).
|
Mark Schulte (2017-04-07).
|
||||||
* netutils: Add a helper function to convert a string to a 6loWPAN node
|
* netutils: Add a helper function to convert a string to a 6LoWPAN node
|
||||||
address (2017-04-08).
|
address (2017-04-08).
|
||||||
* NSH library: Extend ifconfig to support 6loWPAN. Adapt to some
|
* NSH library: Extend ifconfig to support 6LoWPAN. Adapt to some
|
||||||
changes in configuration variable usage (2017-04-08).
|
changes in configuration variable usage (2017-04-08).
|
||||||
* NSH set command: Eliminate useless argc check of SCRIPTS are enabled
|
* NSH set command: Eliminate useless argc check of SCRIPTS are enabled
|
||||||
but ENVIRONMENT is disabled (2017-04-09).
|
but ENVIRONMENT is disabled (2017-04-09).
|
||||||
@ -1995,7 +1995,7 @@
|
|||||||
eth0 for network device name (2017-05-02).
|
eth0 for network device name (2017-05-02).
|
||||||
* wireless/wext: Add drivers_wext from the WPA supplicant; Integrate
|
* wireless/wext: Add drivers_wext from the WPA supplicant; Integrate
|
||||||
into NSH. From Simon Piriou (2017-05-02).
|
into NSH. From Simon Piriou (2017-05-02).
|
||||||
* 6loWPAN: Replace some Rime address naming with more consistent
|
* 6LoWPAN: Replace some Rime address naming with more consistent
|
||||||
short/exended address terminology (2017-05-04).
|
short/exended address terminology (2017-05-04).
|
||||||
* wireless/ieee802154: Removes libradio to coincide with removal of
|
* wireless/ieee802154: Removes libradio to coincide with removal of
|
||||||
ioctl with radio. Moves all functionality from libradio to libmac.
|
ioctl with radio. Moves all functionality from libradio to libmac.
|
||||||
|
@ -118,7 +118,7 @@ int netlib_getmacaddr(FAR const char *ifname, FAR uint8_t *macaddr);
|
|||||||
/* Set IEEE 802.15.4 extended address. */
|
/* Set IEEE 802.15.4 extended address. */
|
||||||
|
|
||||||
int netlib_seteaddr(FAR const char *ifname, FAR const uint8_t *eaddr);
|
int netlib_seteaddr(FAR const char *ifname, FAR const uint8_t *eaddr);
|
||||||
int netlib_getpanid(FAR const char *ifname, FAR uint16_t *panid);
|
int netlib_getpanid(FAR const char *ifname, FAR uint8_t *panid);
|
||||||
bool netlib_eaddrconv(FAR const char *hwstr, FAR uint8_t *hw);
|
bool netlib_eaddrconv(FAR const char *hwstr, FAR uint8_t *hw);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -2,7 +2,10 @@
|
|||||||
* apps/include/wireless/ieee802154.h
|
* apps/include/wireless/ieee802154.h
|
||||||
*
|
*
|
||||||
* Copyright(C) 2015 Sebastien Lorquet. All rights reserved.
|
* Copyright(C) 2015 Sebastien Lorquet. All rights reserved.
|
||||||
|
* Copyright(C) 2017 Verge Inc. All rights reserved.
|
||||||
|
*
|
||||||
* Author: Sebastien Lorquet <sebastien@lorquet.fr>
|
* Author: Sebastien Lorquet <sebastien@lorquet.fr>
|
||||||
|
* Author: Anthony Merlino <anthony@vergeaero.com>
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
* modification, are permitted provided that the following conditions
|
* modification, are permitted provided that the following conditions
|
||||||
@ -86,11 +89,11 @@ int ieee802154_calibrate_req(int fd,
|
|||||||
int ieee802154_setchan(int fd, uint8_t chan);
|
int ieee802154_setchan(int fd, uint8_t chan);
|
||||||
int ieee802154_getchan(int fd, FAR uint8_t *chan);
|
int ieee802154_getchan(int fd, FAR uint8_t *chan);
|
||||||
|
|
||||||
int ieee802154_setpanid(int fd, uint16_t panid);
|
int ieee802154_setpanid(int fd, FAR const uint8_t *panid);
|
||||||
int ieee802154_getpanid(int fd, FAR uint16_t *panid);
|
int ieee802154_getpanid(int fd, FAR uint8_t *panid);
|
||||||
|
|
||||||
int ieee802154_setsaddr(int fd, uint16_t saddr);
|
int ieee802154_setsaddr(int fd, FAR const uint8_t *saddr);
|
||||||
int ieee802154_getsaddr(int fd, FAR uint16_t *saddr);
|
int ieee802154_getsaddr(int fd, FAR uint8_t *saddr);
|
||||||
|
|
||||||
int ieee802154_seteaddr(int fd, FAR const uint8_t *eaddr);
|
int ieee802154_seteaddr(int fd, FAR const uint8_t *eaddr);
|
||||||
int ieee802154_geteaddr(int fd, FAR uint8_t *eaddr);
|
int ieee802154_geteaddr(int fd, FAR uint8_t *eaddr);
|
||||||
@ -154,13 +157,15 @@ int sixlowpan_calibrate_req(int sock, FAR const char *ifname,
|
|||||||
int sixlowpan_setchan(int sock, FAR const char *ifname, uint8_t chan);
|
int sixlowpan_setchan(int sock, FAR const char *ifname, uint8_t chan);
|
||||||
int sixlowpan_getchan(int sock, FAR const char *ifname, FAR uint8_t *chan);
|
int sixlowpan_getchan(int sock, FAR const char *ifname, FAR uint8_t *chan);
|
||||||
|
|
||||||
int sixlowpan_setpanid(int sock, FAR const char *ifname, uint16_t panid);
|
int sixlowpan_setpanid(int sock, FAR const char *ifname,
|
||||||
|
FAR const uint8_t *panid);
|
||||||
int sixlowpan_getpanid(int sock, FAR const char *ifname,
|
int sixlowpan_getpanid(int sock, FAR const char *ifname,
|
||||||
FAR uint16_t *panid);
|
FAR uint8_t *panid);
|
||||||
|
|
||||||
int sixlowpan_setsaddr(int sock, FAR const char *ifname, uint16_t saddr);
|
int sixlowpan_setsaddr(int sock, FAR const char *ifname,
|
||||||
|
FAR const uint8_t *saddr);
|
||||||
int sixlowpan_getsaddr(int sock, FAR const char *ifname,
|
int sixlowpan_getsaddr(int sock, FAR const char *ifname,
|
||||||
FAR uint16_t *saddr);
|
FAR uint8_t *saddr);
|
||||||
|
|
||||||
int sixlowpan_seteaddr(int sock, FAR const char *ifname,
|
int sixlowpan_seteaddr(int sock, FAR const char *ifname,
|
||||||
FAR const uint8_t *eaddr);
|
FAR const uint8_t *eaddr);
|
||||||
|
@ -80,7 +80,7 @@ ifeq ($(CONFIG_NETDEV_WIRELESS_IOCTL),y)
|
|||||||
CSRCS += netlib_getessid.c netlib_setessid.c
|
CSRCS += netlib_getessid.c netlib_setessid.c
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# MAC address support(Ethernet and 6loWPAN only)
|
# MAC address support(Ethernet and 6LoWPAN only)
|
||||||
|
|
||||||
ifeq ($(CONFIG_NET_ETHERNET),y)
|
ifeq ($(CONFIG_NET_ETHERNET),y)
|
||||||
CSRCS += netlib_setmacaddr.c netlib_getmacaddr.c
|
CSRCS += netlib_setmacaddr.c netlib_getmacaddr.c
|
||||||
|
@ -70,7 +70,7 @@
|
|||||||
*
|
*
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
int netlib_getpanid(FAR const char *ifname, FAR uint16_t *panid)
|
int netlib_getpanid(FAR const char *ifname, FAR uint8_t *panid)
|
||||||
{
|
{
|
||||||
int ret = ERROR;
|
int ret = ERROR;
|
||||||
|
|
||||||
|
@ -123,7 +123,7 @@
|
|||||||
# undef CONFIG_NET_LOOPBACK
|
# undef CONFIG_NET_LOOPBACK
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Only Ethernet and 6loWPAN have MAC layer addresses */
|
/* Only Ethernet and 6LoWPAN have MAC layer addresses */
|
||||||
|
|
||||||
#undef HAVE_MAC
|
#undef HAVE_MAC
|
||||||
#if defined(CONFIG_NET_ETHERNET) || defined(CONFIG_NET_6LOWPAN)
|
#if defined(CONFIG_NET_ETHERNET) || defined(CONFIG_NET_6LOWPAN)
|
||||||
@ -310,7 +310,7 @@ static void nsh_set_macaddr(void)
|
|||||||
eaddr[6] = (CONFIG_NSH_MACADDR >> (8 * 1)) & 0xff;
|
eaddr[6] = (CONFIG_NSH_MACADDR >> (8 * 1)) & 0xff;
|
||||||
eaddr[7] = (CONFIG_NSH_MACADDR >> (8 * 0)) & 0xff;
|
eaddr[7] = (CONFIG_NSH_MACADDR >> (8 * 0)) & 0xff;
|
||||||
|
|
||||||
/* Set the 6loWPAN extended address */
|
/* Set the 6LoWPAN extended address */
|
||||||
|
|
||||||
(void)netlib_seteaddr(NET_DEVNAME, eaddr);
|
(void)netlib_seteaddr(NET_DEVNAME, eaddr);
|
||||||
|
|
||||||
@ -326,7 +326,7 @@ static void nsh_set_macaddr(void)
|
|||||||
* Description:
|
* Description:
|
||||||
* Setup IP addresses.
|
* Setup IP addresses.
|
||||||
*
|
*
|
||||||
* For 6loWPAN, the IP address derives from the MAC address. Setting it
|
* For 6LoWPAN, the IP address derives from the MAC address. Setting it
|
||||||
* to any user provided value is asking for trouble.
|
* to any user provided value is asking for trouble.
|
||||||
*
|
*
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
@ -99,6 +99,8 @@
|
|||||||
/* /dev/ is 5 characters */
|
/* /dev/ is 5 characters */
|
||||||
#define I8SAK_DAEMONNAME_FMTLEN (6 + (I8SAK_MAX_DEVNAME-5) + 1)
|
#define I8SAK_DAEMONNAME_FMTLEN (6 + (I8SAK_MAX_DEVNAME-5) + 1)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Public Types
|
* Public Types
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
@ -148,7 +150,7 @@ struct i8sak_s
|
|||||||
uint8_t chpage;
|
uint8_t chpage;
|
||||||
struct ieee802154_addr_s addr;
|
struct ieee802154_addr_s addr;
|
||||||
struct ieee802154_addr_s ep;
|
struct ieee802154_addr_s ep;
|
||||||
uint16_t next_saddr;
|
uint8_t next_saddr[IEEE802154_SADDRSIZE];
|
||||||
uint8_t payload[IEEE802154_MAX_MAC_PAYLOAD_SIZE];
|
uint8_t payload[IEEE802154_MAX_MAC_PAYLOAD_SIZE];
|
||||||
uint16_t payload_len;
|
uint16_t payload_len;
|
||||||
int blasterperiod;
|
int blasterperiod;
|
||||||
@ -166,6 +168,8 @@ uint8_t i8sak_char2nibble(char ch);
|
|||||||
|
|
||||||
int i8sak_str2payload(FAR const char *str, FAR uint8_t *buf);
|
int i8sak_str2payload(FAR const char *str, FAR uint8_t *buf);
|
||||||
void i8sak_str2eaddr(FAR const char *str, FAR uint8_t *eaddr);
|
void i8sak_str2eaddr(FAR const char *str, FAR uint8_t *eaddr);
|
||||||
|
void i8sak_str2saddr(FAR const char *str, FAR uint8_t *saddr);
|
||||||
|
void i8sak_str2panid(FAR const char *str, FAR uint8_t *panid);
|
||||||
bool i8sak_str2bool(FAR const char *str);
|
bool i8sak_str2bool(FAR const char *str);
|
||||||
|
|
||||||
void i8sak_startpan_cmd (FAR struct i8sak_s *i8sak, int argc, FAR char *argv[]);
|
void i8sak_startpan_cmd (FAR struct i8sak_s *i8sak, int argc, FAR char *argv[]);
|
||||||
|
@ -137,37 +137,25 @@ static void acceptassoc_eventcb(FAR struct ieee802154_notif_s *notif, FAR void *
|
|||||||
|
|
||||||
printf("i8sak: a device is trying to associate\n");
|
printf("i8sak: a device is trying to associate\n");
|
||||||
|
|
||||||
|
/* Send a ASSOC.resp primtive to the MAC. Copy the association
|
||||||
|
* indication address into the association response primitive
|
||||||
|
*/
|
||||||
|
|
||||||
|
IEEE802154_EADDRCOPY(assocresp.devaddr, notif->u.assocind.devaddr);
|
||||||
|
|
||||||
/* If the address matches our device, accept the association.
|
/* If the address matches our device, accept the association.
|
||||||
* Otherwise, reject the assocation.
|
* Otherwise, reject the assocation.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (memcmp(¬if->u.assocind.devaddr[0], &i8sak->ep.eaddr[0],
|
if (IEEE802154_EADDRCMP(notif->u.assocind.devaddr, i8sak->ep.eaddr))
|
||||||
IEEE802154_EADDR_LEN) == 0)
|
|
||||||
{
|
{
|
||||||
/* Send a ASSOC.resp primtive to the MAC. Copy the association
|
IEEE802154_SADDRCOPY(assocresp.assocsaddr, i8sak->next_saddr);
|
||||||
* indication address into the association response primitive
|
|
||||||
*/
|
|
||||||
|
|
||||||
memcpy(&assocresp.devaddr[0], ¬if->u.assocind.devaddr[0],
|
|
||||||
IEEE802154_EADDR_LEN);
|
|
||||||
|
|
||||||
assocresp.assocsaddr = i8sak->next_saddr;
|
|
||||||
|
|
||||||
assocresp.status = IEEE802154_STATUS_SUCCESS;
|
assocresp.status = IEEE802154_STATUS_SUCCESS;
|
||||||
|
|
||||||
printf("i8sak: accepting association request\n");
|
printf("i8sak: accepting association request\n");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* Send a ASSOC.resp primtive to the MAC. Copy the association
|
|
||||||
* indication address into the association response primitive
|
|
||||||
*/
|
|
||||||
|
|
||||||
memcpy(&assocresp.devaddr[0], ¬if->u.assocind.devaddr[0],
|
|
||||||
IEEE802154_EADDR_LEN);
|
|
||||||
|
|
||||||
assocresp.status = IEEE802154_STATUS_DENIED;
|
assocresp.status = IEEE802154_STATUS_DENIED;
|
||||||
|
|
||||||
printf("i8sak: rejecting association request\n");
|
printf("i8sak: rejecting association request\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -115,14 +115,14 @@ void i8sak_assoc_cmd(FAR struct i8sak_s *i8sak, int argc, FAR char *argv[])
|
|||||||
case 's':
|
case 's':
|
||||||
/* Parse extended address and put it into the i8sak instance */
|
/* Parse extended address and put it into the i8sak instance */
|
||||||
|
|
||||||
i8sak->ep.saddr = i8sak_str2luint16(optarg);
|
i8sak_str2saddr(optarg, i8sak->ep.saddr);
|
||||||
i8sak->ep.mode= IEEE802154_ADDRMODE_SHORT;
|
i8sak->ep.mode= IEEE802154_ADDRMODE_SHORT;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'e':
|
case 'e':
|
||||||
/* Parse extended address and put it into the i8sak instance */
|
/* Parse extended address and put it into the i8sak instance */
|
||||||
|
|
||||||
i8sak_str2eaddr(optarg, &i8sak->ep.eaddr[0]);
|
i8sak_str2eaddr(optarg, i8sak->ep.eaddr);
|
||||||
i8sak->ep.mode = IEEE802154_ADDRMODE_EXTENDED;
|
i8sak->ep.mode = IEEE802154_ADDRMODE_EXTENDED;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -148,7 +148,7 @@ void i8sak_assoc_cmd(FAR struct i8sak_s *i8sak, int argc, FAR char *argv[])
|
|||||||
|
|
||||||
if (optcnt && argc == 2)
|
if (optcnt && argc == 2)
|
||||||
{
|
{
|
||||||
i8sak->ep.panid = i8sak_str2luint16(argv[1]);
|
i8sak_str2panid(argv[1], i8sak->ep.panid);
|
||||||
}
|
}
|
||||||
|
|
||||||
fd = open(i8sak->devname, O_RDWR);
|
fd = open(i8sak->devname, O_RDWR);
|
||||||
|
@ -353,7 +353,7 @@ uint8_t i8sak_char2nibble(char ch)
|
|||||||
* Name: i8sak_str2eaddr
|
* Name: i8sak_str2eaddr
|
||||||
*
|
*
|
||||||
* Description:
|
* Description:
|
||||||
* Convert a string 8-byte EADAR array.
|
* Convert a string 8-byte EADDR array.
|
||||||
*
|
*
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
@ -387,6 +387,82 @@ void i8sak_str2eaddr(FAR const char *str, FAR uint8_t *eaddr)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Name: i8sak_str2saddr
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Convert a string 2-byte SADDR array.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
void i8sak_str2saddr(FAR const char *str, FAR uint8_t *saddr)
|
||||||
|
{
|
||||||
|
FAR const char *src = str;
|
||||||
|
uint8_t bvalue;
|
||||||
|
char ch;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
for (i = 0; i < 2; i++)
|
||||||
|
{
|
||||||
|
ch = (char)*src++;
|
||||||
|
bvalue = i8sak_char2nibble(ch) << 4;
|
||||||
|
|
||||||
|
ch = (char)*src++;
|
||||||
|
bvalue |= i8sak_char2nibble(ch);
|
||||||
|
|
||||||
|
*saddr++ = bvalue;
|
||||||
|
|
||||||
|
if (i < 1)
|
||||||
|
{
|
||||||
|
ch = (char)*src++;
|
||||||
|
if (ch != ':')
|
||||||
|
{
|
||||||
|
fprintf(stderr, "ERROR: Missing colon separator: %s\n", str);
|
||||||
|
fprintf(stderr, " Expected xx:xx\n");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Name: i8sak_str2panid
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Convert a string 2-byte PAN ID array.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
void i8sak_str2panid(FAR const char *str, FAR uint8_t *panid)
|
||||||
|
{
|
||||||
|
FAR const char *src = str;
|
||||||
|
uint8_t bvalue;
|
||||||
|
char ch;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
for (i = 0; i < 2; i++)
|
||||||
|
{
|
||||||
|
ch = (char)*src++;
|
||||||
|
bvalue = i8sak_char2nibble(ch) << 4;
|
||||||
|
|
||||||
|
ch = (char)*src++;
|
||||||
|
bvalue |= i8sak_char2nibble(ch);
|
||||||
|
|
||||||
|
*panid++ = bvalue;
|
||||||
|
|
||||||
|
if (i < 1)
|
||||||
|
{
|
||||||
|
ch = (char)*src++;
|
||||||
|
if (ch != ':')
|
||||||
|
{
|
||||||
|
fprintf(stderr, "ERROR: Missing colon separator: %s\n", str);
|
||||||
|
fprintf(stderr, " Expected xx:xx\n");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Name: i8sak_str2bool
|
* Name: i8sak_str2bool
|
||||||
*
|
*
|
||||||
@ -496,23 +572,38 @@ static int i8sak_setup(FAR struct i8sak_s *i8sak, FAR const char *devname)
|
|||||||
|
|
||||||
/* Initialze default extended address */
|
/* Initialze default extended address */
|
||||||
|
|
||||||
for (i = 0; i < IEEE802154_EADDR_LEN; i++)
|
for (i = 0; i < IEEE802154_EADDRSIZE; i++)
|
||||||
{
|
{
|
||||||
i8sak->addr.eaddr[i] = (uint8_t)((CONFIG_IEEE802154_I8SAK_DEV_EADDR >> (i*8)) & 0xFF);
|
i8sak->addr.eaddr[i] = (uint8_t)((CONFIG_IEEE802154_I8SAK_DEV_EADDR >> (i*8)) & 0xFF);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Initialize the default remote endpoint address */
|
/* Initialize the default remote endpoint address */
|
||||||
|
|
||||||
for (i = 0; i < IEEE802154_EADDR_LEN; i++)
|
i8sak->ep.mode = IEEE802154_ADDRMODE_SHORT;
|
||||||
|
|
||||||
|
for (i = 0; i < IEEE802154_EADDRSIZE; i++)
|
||||||
{
|
{
|
||||||
i8sak->ep.eaddr[i] = (uint8_t)((CONFIG_IEEE802154_I8SAK_PANCOORD_EADDR >> (i*8)) & 0xFF);
|
i8sak->ep.eaddr[i] = (uint8_t)((CONFIG_IEEE802154_I8SAK_PANCOORD_EADDR >> (i*8)) & 0xFF);
|
||||||
}
|
}
|
||||||
|
|
||||||
i8sak->ep.mode = IEEE802154_ADDRMODE_SHORT;
|
for (i = 0; i < IEEE802154_SADDRSIZE; i++)
|
||||||
i8sak->ep.saddr = CONFIG_IEEE802154_I8SAK_PANCOORD_SADDR;
|
{
|
||||||
i8sak->ep.panid = CONFIG_IEEE802154_I8SAK_PANID;
|
i8sak->ep.saddr[i] = (uint8_t)((CONFIG_IEEE802154_I8SAK_PANCOORD_SADDR >> (i*8)) & 0xFF);
|
||||||
|
}
|
||||||
|
|
||||||
i8sak->next_saddr = CONFIG_IEEE802154_I8SAK_DEV_SADDR;
|
for (i = 0; i < IEEE802154_PANIDSIZE; i++)
|
||||||
|
{
|
||||||
|
i8sak->ep.panid[i] = (uint8_t)((CONFIG_IEEE802154_I8SAK_PANID >> (i*8)) & 0xFF);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Set the next association device to the default device address, so that
|
||||||
|
* the first device to request association gets that address.
|
||||||
|
*/
|
||||||
|
|
||||||
|
for (i = 0; i < IEEE802154_SADDRSIZE; i++)
|
||||||
|
{
|
||||||
|
i8sak->next_saddr[i] = (uint8_t)((CONFIG_IEEE802154_I8SAK_DEV_SADDR >> (i*8)) & 0xFF);
|
||||||
|
}
|
||||||
|
|
||||||
fd = open(i8sak->devname, O_RDWR);
|
fd = open(i8sak->devname, O_RDWR);
|
||||||
if (fd < 0)
|
if (fd < 0)
|
||||||
@ -521,7 +612,7 @@ static int i8sak_setup(FAR struct i8sak_s *i8sak, FAR const char *devname)
|
|||||||
i8sak_cmd_error(i8sak);
|
i8sak_cmd_error(i8sak);
|
||||||
}
|
}
|
||||||
|
|
||||||
ieee802154_seteaddr(fd, &i8sak->addr.eaddr[0]);
|
ieee802154_seteaddr(fd, i8sak->addr.eaddr);
|
||||||
|
|
||||||
close(fd);
|
close(fd);
|
||||||
|
|
||||||
|
@ -63,7 +63,6 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
static void poll_eventcb(FAR struct ieee802154_notif_s *notif, FAR void *arg);
|
static void poll_eventcb(FAR struct ieee802154_notif_s *notif, FAR void *arg);
|
||||||
static void poll_receiver(FAR struct mac802154dev_rxframe_s *frame, FAR void *arg);
|
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Public Functions
|
* Public Functions
|
||||||
@ -133,13 +132,13 @@ void i8sak_poll_cmd(FAR struct i8sak_s *i8sak, int argc, FAR char *argv[])
|
|||||||
wpanlistener_add_eventreceiver(&i8sak->wpanlistener, poll_eventcb,
|
wpanlistener_add_eventreceiver(&i8sak->wpanlistener, poll_eventcb,
|
||||||
&eventfilter, (FAR void *)i8sak, true);
|
&eventfilter, (FAR void *)i8sak, true);
|
||||||
|
|
||||||
printf("i8sak: Polling coordinator. PAN ID: 0x%04X SADDR: 0x%04X\n",
|
printf("i8sak: Polling coordinator. PAN ID: %02X:%02X SADDR: %02X:%02X\n",
|
||||||
i8sak->ep.panid,
|
i8sak->ep.panid[0], i8sak->ep.panid[1],
|
||||||
i8sak->ep.saddr);
|
i8sak->ep.saddr[0], i8sak->ep.saddr[1]);
|
||||||
|
|
||||||
pollreq.coordaddr.mode = IEEE802154_ADDRMODE_SHORT;
|
pollreq.coordaddr.mode = IEEE802154_ADDRMODE_SHORT;
|
||||||
pollreq.coordaddr.saddr = i8sak->ep.saddr;
|
IEEE802154_SADDRCOPY(pollreq.coordaddr.saddr, i8sak->ep.saddr);
|
||||||
pollreq.coordaddr.panid = i8sak->ep.panid;
|
IEEE802154_PANIDCOPY(pollreq.coordaddr.panid, i8sak->ep.panid);
|
||||||
|
|
||||||
ieee802154_poll_req(fd, &pollreq);
|
ieee802154_poll_req(fd, &pollreq);
|
||||||
|
|
||||||
|
@ -129,37 +129,61 @@ void i8sak_startpan_cmd(FAR struct i8sak_s *i8sak, int argc, FAR char *argv[])
|
|||||||
|
|
||||||
if (!i8sak->addrset)
|
if (!i8sak->addrset)
|
||||||
{
|
{
|
||||||
for (i = 0; i < IEEE802154_EADDR_LEN; i++)
|
/* Set our address to the default PAN Coordinator configuration */
|
||||||
|
|
||||||
|
i8sak->addr.mode = IEEE802154_ADDRMODE_SHORT;
|
||||||
|
|
||||||
|
for (i = 0; i < IEEE802154_EADDRSIZE; i++)
|
||||||
{
|
{
|
||||||
i8sak->addr.eaddr[i] =
|
i8sak->addr.eaddr[i] =
|
||||||
(uint8_t)((CONFIG_IEEE802154_I8SAK_PANCOORD_EADDR >> (i*8)) & 0xFF);
|
(uint8_t)((CONFIG_IEEE802154_I8SAK_PANCOORD_EADDR >> (i*8)) & 0xFF);
|
||||||
}
|
}
|
||||||
|
|
||||||
i8sak->addr.mode = IEEE802154_ADDRMODE_SHORT;
|
for (i = 0; i < IEEE802154_SADDRSIZE; i++)
|
||||||
i8sak->addr.saddr = CONFIG_IEEE802154_I8SAK_PANCOORD_SADDR;
|
{
|
||||||
i8sak->addr.panid = CONFIG_IEEE802154_I8SAK_PANID;
|
i8sak->addr.saddr[i] =
|
||||||
|
(uint8_t)((CONFIG_IEEE802154_I8SAK_PANCOORD_SADDR >> (i*8)) & 0xFF);
|
||||||
|
}
|
||||||
|
|
||||||
for (i = 0; i < IEEE802154_EADDR_LEN; i++)
|
for (i = 0; i < IEEE802154_PANIDSIZE; i++)
|
||||||
|
{
|
||||||
|
i8sak->addr.panid[i] =
|
||||||
|
(uint8_t)((CONFIG_IEEE802154_I8SAK_PANID >> (i*8)) & 0xFF);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Set the endpoint address to the default endpoint device */
|
||||||
|
|
||||||
|
i8sak->ep.mode = IEEE802154_ADDRMODE_SHORT;
|
||||||
|
|
||||||
|
for (i = 0; i < IEEE802154_EADDRSIZE; i++)
|
||||||
{
|
{
|
||||||
i8sak->ep.eaddr[i] =
|
i8sak->ep.eaddr[i] =
|
||||||
(uint8_t)((CONFIG_IEEE802154_I8SAK_DEV_EADDR >> (i*8)) & 0xFF);
|
(uint8_t)((CONFIG_IEEE802154_I8SAK_DEV_EADDR >> (i*8)) & 0xFF);
|
||||||
}
|
}
|
||||||
|
|
||||||
i8sak->ep.mode = IEEE802154_ADDRMODE_SHORT;
|
for (i = 0; i < IEEE802154_SADDRSIZE; i++)
|
||||||
i8sak->ep.saddr = CONFIG_IEEE802154_I8SAK_DEV_SADDR;
|
{
|
||||||
i8sak->ep.panid = CONFIG_IEEE802154_I8SAK_PANID;
|
i8sak->ep.saddr[i] =
|
||||||
|
(uint8_t)((CONFIG_IEEE802154_I8SAK_DEV_SADDR >> (i*8)) & 0xFF);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < IEEE802154_PANIDSIZE; i++)
|
||||||
|
{
|
||||||
|
i8sak->ep.panid[i] =
|
||||||
|
(uint8_t)((CONFIG_IEEE802154_I8SAK_PANID >> (i*8)) & 0xFF);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Set EADDR and SADDR */
|
/* Set EADDR and SADDR */
|
||||||
|
|
||||||
ieee802154_seteaddr(fd, &i8sak->addr.eaddr[0]);
|
ieee802154_seteaddr(fd, i8sak->addr.eaddr);
|
||||||
ieee802154_setsaddr(fd, i8sak->addr.saddr);
|
ieee802154_setsaddr(fd, i8sak->addr.saddr);
|
||||||
|
|
||||||
/* Tell the MAC to start acting as a coordinator */
|
/* Tell the MAC to start acting as a coordinator */
|
||||||
|
|
||||||
printf("i8sak: starting PAN\n");
|
printf("i8sak: starting PAN\n");
|
||||||
|
|
||||||
startreq.panid = i8sak->addr.panid;
|
IEEE802154_PANIDCOPY(startreq.panid, i8sak->addr.panid);
|
||||||
startreq.chnum = i8sak->chnum;
|
startreq.chnum = i8sak->chnum;
|
||||||
startreq.chpage = i8sak->chpage;
|
startreq.chpage = i8sak->chpage;
|
||||||
startreq.beaconorder = 15;
|
startreq.beaconorder = 15;
|
||||||
|
@ -61,7 +61,7 @@ int ieee802154_geteaddr(int fd, FAR uint8_t *eaddr)
|
|||||||
req.attr = IEEE802154_ATTR_MAC_EXTENDED_ADDR;
|
req.attr = IEEE802154_ATTR_MAC_EXTENDED_ADDR;
|
||||||
ret = ieee802154_get_req(fd, &req);
|
ret = ieee802154_get_req(fd, &req);
|
||||||
|
|
||||||
memcpy(eaddr, &req.attrval.mac.eaddr[0], 8);
|
IEEE802154_EADDRCOPY(eaddr, req.attrval.mac.eaddr);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -52,7 +52,7 @@
|
|||||||
* Public Functions
|
* Public Functions
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
int ieee802154_getpanid(int fd, FAR uint16_t *panid)
|
int ieee802154_getpanid(int fd, FAR uint8_t *panid)
|
||||||
{
|
{
|
||||||
struct ieee802154_get_req_s req;
|
struct ieee802154_get_req_s req;
|
||||||
int ret;
|
int ret;
|
||||||
@ -60,7 +60,7 @@ int ieee802154_getpanid(int fd, FAR uint16_t *panid)
|
|||||||
req.attr = IEEE802154_ATTR_MAC_PANID;
|
req.attr = IEEE802154_ATTR_MAC_PANID;
|
||||||
ret = ieee802154_get_req(fd, &req);
|
ret = ieee802154_get_req(fd, &req);
|
||||||
|
|
||||||
*panid = req.attrval.mac.panid;
|
IEEE802154_PANIDCOPY(panid, req.attrval.mac.panid);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -52,7 +52,7 @@
|
|||||||
* Public Functions
|
* Public Functions
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
int ieee802154_getsaddr(int fd, FAR uint16_t *saddr)
|
int ieee802154_getsaddr(int fd, FAR uint8_t *saddr)
|
||||||
{
|
{
|
||||||
struct ieee802154_get_req_s req;
|
struct ieee802154_get_req_s req;
|
||||||
int ret;
|
int ret;
|
||||||
@ -60,7 +60,7 @@ int ieee802154_getsaddr(int fd, FAR uint16_t *saddr)
|
|||||||
req.attr = IEEE802154_ATTR_MAC_SHORT_ADDRESS;
|
req.attr = IEEE802154_ATTR_MAC_SHORT_ADDRESS;
|
||||||
ret = ieee802154_get_req(fd, &req);
|
ret = ieee802154_get_req(fd, &req);
|
||||||
|
|
||||||
*saddr = req.attrval.mac.saddr;
|
IEEE802154_SADDRCOPY(saddr, req.attrval.mac.saddr);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -59,7 +59,7 @@ int ieee802154_seteaddr(int fd, FAR const uint8_t *eaddr)
|
|||||||
struct ieee802154_set_req_s req;
|
struct ieee802154_set_req_s req;
|
||||||
|
|
||||||
req.attr = IEEE802154_ATTR_MAC_EXTENDED_ADDR;
|
req.attr = IEEE802154_ATTR_MAC_EXTENDED_ADDR;
|
||||||
memcpy(&req.attrval.mac.eaddr[0], eaddr, 8);
|
IEEE802154_EADDRCOPY(req.attrval.mac.eaddr, eaddr);
|
||||||
|
|
||||||
return ieee802154_set_req(fd, &req);
|
return ieee802154_set_req(fd, &req);
|
||||||
}
|
}
|
||||||
|
@ -53,12 +53,12 @@
|
|||||||
* Public Functions
|
* Public Functions
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
int ieee802154_setpanid(int fd, uint16_t panid)
|
int ieee802154_setpanid(int fd, FAR const uint8_t *panid)
|
||||||
{
|
{
|
||||||
struct ieee802154_set_req_s req;
|
struct ieee802154_set_req_s req;
|
||||||
|
|
||||||
req.attr = IEEE802154_ATTR_MAC_PANID;
|
req.attr = IEEE802154_ATTR_MAC_PANID;
|
||||||
req.attrval.mac.panid = panid;
|
IEEE802154_PANIDCOPY(req.attrval.mac.panid, panid);
|
||||||
|
|
||||||
return ieee802154_set_req(fd, &req);
|
return ieee802154_set_req(fd, &req);
|
||||||
}
|
}
|
||||||
|
@ -53,12 +53,12 @@
|
|||||||
* Public Functions
|
* Public Functions
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
int ieee802154_setsaddr(int fd, uint16_t saddr)
|
int ieee802154_setsaddr(int fd, FAR const uint8_t *saddr)
|
||||||
{
|
{
|
||||||
struct ieee802154_set_req_s req;
|
struct ieee802154_set_req_s req;
|
||||||
|
|
||||||
req.attr = IEEE802154_ATTR_MAC_SHORT_ADDRESS;
|
req.attr = IEEE802154_ATTR_MAC_SHORT_ADDRESS;
|
||||||
req.attrval.mac.saddr = saddr;
|
IEEE802154_SADDRCOPY(req.attrval.mac.saddr, saddr);
|
||||||
|
|
||||||
return ieee802154_set_req(fd, &req);
|
return ieee802154_set_req(fd, &req);
|
||||||
}
|
}
|
||||||
|
@ -61,7 +61,7 @@ int sixlowpan_geteaddr(int sock, FAR const char *ifname, FAR uint8_t *eaddr)
|
|||||||
req.attr = IEEE802154_ATTR_MAC_EXTENDED_ADDR;
|
req.attr = IEEE802154_ATTR_MAC_EXTENDED_ADDR;
|
||||||
ret = sixlowpan_get_req(sock, ifname, &req);
|
ret = sixlowpan_get_req(sock, ifname, &req);
|
||||||
|
|
||||||
memcpy(eaddr, &req.attrval.mac.eaddr[0], 8);
|
IEEE802154_EADDRCOPY(eaddr, req.attrval.mac.eaddr);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -53,7 +53,7 @@
|
|||||||
* Public Functions
|
* Public Functions
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
int sixlowpan_getpanid(int sock, FAR const char *ifname, FAR uint16_t *panid)
|
int sixlowpan_getpanid(int sock, FAR const char *ifname, FAR uint8_t *panid)
|
||||||
{
|
{
|
||||||
struct ieee802154_get_req_s req;
|
struct ieee802154_get_req_s req;
|
||||||
int ret;
|
int ret;
|
||||||
@ -61,7 +61,7 @@ int sixlowpan_getpanid(int sock, FAR const char *ifname, FAR uint16_t *panid)
|
|||||||
req.attr = IEEE802154_ATTR_MAC_PANID;
|
req.attr = IEEE802154_ATTR_MAC_PANID;
|
||||||
ret = sixlowpan_get_req(sock, ifname, &req);
|
ret = sixlowpan_get_req(sock, ifname, &req);
|
||||||
|
|
||||||
*panid = req.attrval.mac.panid;
|
IEEE802154_PANIDCOPY(panid, req.attrval.mac.panid);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -53,7 +53,7 @@
|
|||||||
* Public Functions
|
* Public Functions
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
int sixlowpan_getsaddr(int sock, FAR const char *ifname, FAR uint16_t *saddr)
|
int sixlowpan_getsaddr(int sock, FAR const char *ifname, FAR uint8_t *saddr)
|
||||||
{
|
{
|
||||||
struct ieee802154_get_req_s req;
|
struct ieee802154_get_req_s req;
|
||||||
int ret;
|
int ret;
|
||||||
@ -61,7 +61,7 @@ int sixlowpan_getsaddr(int sock, FAR const char *ifname, FAR uint16_t *saddr)
|
|||||||
req.attr = IEEE802154_ATTR_MAC_SHORT_ADDRESS;
|
req.attr = IEEE802154_ATTR_MAC_SHORT_ADDRESS;
|
||||||
ret = sixlowpan_get_req(sock, ifname, &req);
|
ret = sixlowpan_get_req(sock, ifname, &req);
|
||||||
|
|
||||||
*saddr = req.attrval.mac.saddr;
|
IEEE802154_SADDRCOPY(saddr, req.attrval.mac.saddr);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -58,7 +58,7 @@ int sixlowpan_seteaddr(int sock, FAR const char *ifname, FAR const uint8_t *eadd
|
|||||||
struct ieee802154_set_req_s req;
|
struct ieee802154_set_req_s req;
|
||||||
|
|
||||||
req.attr = IEEE802154_ATTR_MAC_EXTENDED_ADDR;
|
req.attr = IEEE802154_ATTR_MAC_EXTENDED_ADDR;
|
||||||
memcpy(&req.attrval.mac.eaddr[0], eaddr, 8);
|
IEEE802154_EADDRCOPY(req.attrval.mac.eaddr, eaddr);
|
||||||
|
|
||||||
return sixlowpan_set_req(sock, ifname, &req);
|
return sixlowpan_set_req(sock, ifname, &req);
|
||||||
}
|
}
|
||||||
|
@ -53,12 +53,12 @@
|
|||||||
* Public Functions
|
* Public Functions
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
int sixlowpan_setpanid(int sock, FAR const char *ifname, uint16_t panid)
|
int sixlowpan_setpanid(int sock, FAR const char *ifname, FAR const uint8_t *panid)
|
||||||
{
|
{
|
||||||
struct ieee802154_set_req_s req;
|
struct ieee802154_set_req_s req;
|
||||||
|
|
||||||
req.attr = IEEE802154_ATTR_MAC_PANID;
|
req.attr = IEEE802154_ATTR_MAC_PANID;
|
||||||
req.attrval.mac.panid = panid;
|
IEEE802154_PANIDCOPY(req.attrval.mac.panid, panid);
|
||||||
|
|
||||||
return sixlowpan_set_req(sock, ifname, &req);
|
return sixlowpan_set_req(sock, ifname, &req);
|
||||||
}
|
}
|
||||||
|
@ -53,12 +53,12 @@
|
|||||||
* Public Functions
|
* Public Functions
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
int sixlowpan_setsaddr(int sock, FAR const char *ifname, uint16_t saddr)
|
int sixlowpan_setsaddr(int sock, FAR const char *ifname, FAR const uint8_t *saddr)
|
||||||
{
|
{
|
||||||
struct ieee802154_set_req_s req;
|
struct ieee802154_set_req_s req;
|
||||||
|
|
||||||
req.attr = IEEE802154_ATTR_MAC_SHORT_ADDRESS;
|
req.attr = IEEE802154_ATTR_MAC_SHORT_ADDRESS;
|
||||||
req.attrval.mac.saddr = saddr;
|
IEEE802154_SADDRCOPY(req.attrval.mac.saddr, saddr);
|
||||||
|
|
||||||
return sixlowpan_set_req(sock, ifname, &req);
|
return sixlowpan_set_req(sock, ifname, &req);
|
||||||
}
|
}
|
||||||
|
@ -48,9 +48,11 @@
|
|||||||
* Public Functions
|
* Public Functions
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
int ieee802154_addrtostr(FAR char *buf, int len,
|
int ieee802154_addrtostr(FAR char *buf, int len,
|
||||||
FAR struct ieee802154_addr_s *addr)
|
FAR struct ieee802154_addr_s *addr)
|
||||||
{
|
{
|
||||||
|
#if 0
|
||||||
#ifndef CONFIG_BIG_ENDIAN
|
#ifndef CONFIG_BIG_ENDIAN
|
||||||
uint16_t panid = ((addr->panid & 0xff) << 8) | ((addr->panid >> 8) & 0xff);
|
uint16_t panid = ((addr->panid & 0xff) << 8) | ((addr->panid >> 8) & 0xff);
|
||||||
#else
|
#else
|
||||||
@ -87,5 +89,7 @@ int ieee802154_addrtostr(FAR char *buf, int len,
|
|||||||
return snprintf(buf,len,"<INVAL>");
|
return snprintf(buf,len,"<INVAL>");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
#endif
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -315,7 +315,7 @@ static bool iwpan_str2bool(FAR const char *str)
|
|||||||
|
|
||||||
static void iwpan_show_cmd(int sock, FAR const char *ifname)
|
static void iwpan_show_cmd(int sock, FAR const char *ifname)
|
||||||
{
|
{
|
||||||
uint8_t eaddr[IEEE802154_EADDR_LEN] =
|
uint8_t eaddr[IEEE802154_EADDRSIZE] =
|
||||||
{
|
{
|
||||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
|
||||||
};
|
};
|
||||||
@ -506,7 +506,7 @@ static void iwpan_devmode_cmd(int sock, FAR const char *ifname,
|
|||||||
static void iwpan_eaddr_cmd(int sock, FAR const char *ifname,
|
static void iwpan_eaddr_cmd(int sock, FAR const char *ifname,
|
||||||
FAR const char *addrstr)
|
FAR const char *addrstr)
|
||||||
{
|
{
|
||||||
uint8_t eaddr[IEEE802154_EADDR_LEN];
|
uint8_t eaddr[IEEE802154_EADDRSIZE];
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
/* Convert input strings to values */
|
/* Convert input strings to values */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user