Merge pull request #14354 from miri64/drivers/cleanup/rm-NETOPT_IPV6_IID

netdev: remove NETOPT_IPV6_IID support for network devices
This commit is contained in:
Francisco 2020-06-25 15:53:33 +02:00 committed by GitHub
commit 903ad1e888
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 9 additions and 108 deletions

View File

@ -187,14 +187,6 @@ uint16_t nrfmin_get_addr(void)
return my_addr;
}
void nrfmin_get_iid(uint16_t *iid)
{
iid[0] = 0;
iid[1] = 0xff00;
iid[2] = 0x00fe;
iid[3] = my_addr;
}
uint16_t nrfmin_get_channel(void)
{
return (uint16_t)(NRF_RADIO->FREQUENCY >> 2);
@ -506,10 +498,6 @@ static int nrfmin_get(netdev_t *dev, netopt_t opt, void *val, size_t max_len)
assert(max_len >= sizeof(uint16_t));
*((uint16_t *)val) = NETDEV_TYPE_NRFMIN;
return sizeof(uint16_t);
case NETOPT_IPV6_IID:
assert(max_len >= sizeof(uint64_t));
nrfmin_get_iid((uint16_t *)val);
return sizeof(uint64_t);
default:
return -ENOTSUP;
}

View File

@ -505,26 +505,6 @@ static int cc110x_send(netdev_t *netdev, const iolist_t *iolist)
return (int)size;
}
/**
* @brief Generate an IPv6 interface identifier for a CC110X transceiver
*
* @param dev Transceiver to create the IPv6 interface identifier (IID)
* @param iid Store the generated IID here
*
* @return Returns the size of @ref eui64_t to confirm with the API
* in @ref netdev_driver_t::get
*/
static int cc110x_get_iid(cc110x_t *dev, eui64_t *iid)
{
static const eui64_t empty_iid = {
.uint8 = { 0x00, 0x00, 0x00, 0xff, 0xfe, 0x00, 0x00, 0x00 }
};
*iid = empty_iid;
iid->uint8[7] = dev->addr;
return sizeof(eui64_t);
}
/**
* @brief Checks if the CC110x's address filter is disabled
* @param dev Transceiver to check if in promiscuous mode
@ -551,6 +531,7 @@ static int cc110x_get(netdev_t *netdev, netopt_t opt,
{
cc110x_t *dev = (cc110x_t *)netdev;
(void)max_len; /* only used in assert() */
switch (opt) {
case NETOPT_DEVICE_TYPE:
assert(max_len == sizeof(uint16_t));
@ -574,11 +555,6 @@ static int cc110x_get(netdev_t *netdev, netopt_t opt,
assert(max_len >= CC1XXX_ADDR_SIZE);
*((uint8_t *)val) = dev->addr;
return CC1XXX_ADDR_SIZE;
case NETOPT_IPV6_IID:
if (max_len < sizeof(eui64_t)) {
return -EOVERFLOW;
}
return cc110x_get_iid(dev, val);
case NETOPT_CHANNEL:
assert(max_len == sizeof(uint16_t));
*((uint16_t *)val) = dev->channel;

View File

@ -29,23 +29,14 @@
#define ENABLE_DEBUG (0)
#include "debug.h"
static int _get_iid(netdev_t *netdev, eui64_t *value, size_t max_len)
{
if (max_len < sizeof(eui64_t)) {
return -EOVERFLOW;
}
eui48_t mac;
netdev->driver->get(netdev, NETOPT_ADDRESS, mac.uint8, sizeof(eui48_t));
eui48_to_ipv6_iid(value, &mac);
return sizeof(eui64_t);
}
int netdev_eth_get(netdev_t *dev, netopt_t opt, void *value, size_t max_len)
{
int res = 0;
#ifndef MODULE_L2FILTER
(void)dev;
#endif
(void)max_len; /* only used in assert() */
switch (opt) {
case NETOPT_DEVICE_TYPE:
{
@ -76,10 +67,6 @@ int netdev_eth_get(netdev_t *dev, netopt_t opt, void *value, size_t max_len)
res = 1;
break;
}
case NETOPT_IPV6_IID:
{
return _get_iid(dev, value, max_len);
}
#ifdef MODULE_L2FILTER
case NETOPT_L2FILTER:
{

View File

@ -29,30 +29,6 @@
#define ENABLE_DEBUG (0)
#include "debug.h"
static int _get_iid(netdev_ieee802154_t *dev, eui64_t *value, size_t max_len)
{
(void)max_len;
uint8_t addr[IEEE802154_LONG_ADDRESS_LEN];
uint16_t addr_len;
assert(max_len >= sizeof(eui64_t));
dev->netdev.driver->get(&dev->netdev, NETOPT_SRC_LEN, &addr_len,
sizeof(addr_len));
if (addr_len == IEEE802154_LONG_ADDRESS_LEN) {
dev->netdev.driver->get(&dev->netdev, NETOPT_ADDRESS_LONG, addr,
addr_len);
}
else {
dev->netdev.driver->get(&dev->netdev, NETOPT_ADDRESS, addr,
addr_len);
}
ieee802154_get_iid(value, addr, addr_len);
return sizeof(eui64_t);
}
void netdev_ieee802154_reset(netdev_ieee802154_t *dev)
{
/* Only the least significant byte of the random value is used */
@ -106,6 +82,7 @@ int netdev_ieee802154_get(netdev_ieee802154_t *dev, netopt_t opt, void *value,
{
int res = -ENOTSUP;
(void)max_len; /* only used in assert() */
switch (opt) {
case NETOPT_ADDRESS:
assert(max_len >= sizeof(dev->short_addr));
@ -170,9 +147,6 @@ int netdev_ieee802154_get(netdev_ieee802154_t *dev, netopt_t opt, void *value,
*((uint16_t *)value) = NETDEV_TYPE_IEEE802154;
res = sizeof(uint16_t);
break;
case NETOPT_IPV6_IID:
res = _get_iid(dev, value, max_len);
break;
#ifdef MODULE_L2FILTER
case NETOPT_L2FILTER:
assert(max_len >= sizeof(l2filter_t **));

View File

@ -763,19 +763,6 @@ static int xbee_get(netdev_t *ndev, netopt_t opt, void *value, size_t max_len)
assert(max_len == sizeof(uint16_t));
*((uint16_t *)value) = NETDEV_TYPE_IEEE802154;
return sizeof(uint16_t);
case NETOPT_IPV6_IID:
if (max_len < sizeof(eui64_t)) {
return -EOVERFLOW;
}
if (dev->addr_flags & XBEE_ADDR_FLAGS_LONG) {
ieee802154_get_iid(value, dev->addr_long.uint8,
IEEE802154_LONG_ADDRESS_LEN);
}
else {
ieee802154_get_iid(value, dev->addr_short,
IEEE802154_SHORT_ADDRESS_LEN);
}
return sizeof(eui64_t);
case NETOPT_CHANNEL:
return _get_channel(dev, (uint8_t *)value, max_len);
case NETOPT_MAX_PDU_SIZE:

View File

@ -221,10 +221,6 @@ static int _netdev_get(netdev_t *netdev, netopt_t opt,
*((uint16_t *)value) = NETDEV_TYPE_BLE;
res = sizeof(uint16_t);
break;
case NETOPT_IPV6_IID:
eui48_to_ipv6_iid((eui64_t *)value, (eui48_t *)_ble_netif->l2addr);
res = sizeof(uint64_t);
break;
default:
break;
}

View File

@ -120,10 +120,9 @@ typedef enum {
* RFC 4291, section 2.5.1
* </a>
*
* @deprecated Do not implement this in a network device. Other APIs
* utilizing [netopt](@ref net_netopt) may still implement it.
* Existing support of drivers will be dropped after the
* 2019.07 release.
* @note Do not implement this in a network device driver. Other APIs
* utilizing [netopt](@ref net_netopt) such as @ref net_gnrc_netif
* or @ref net_netif may still implement it.
*
* The generation of the interface identifier is dependent on the link-layer.
* Please refer to the appropriate IPv6 over `<link>` specification for

View File

@ -1327,12 +1327,6 @@ int _mock_netif_get(gnrc_netapi_opt_t *opt)
*val = sizeof(_loc_l2);
return sizeof(uint16_t);
}
case NETOPT_IPV6_IID:
if (opt->data_len < sizeof(_loc_iid)) {
return -EOVERFLOW;
}
memcpy(opt->data, _loc_iid, sizeof(_loc_iid));
return sizeof(_loc_iid);
case NETOPT_IS_WIRED:
return 1;
case NETOPT_MAX_PDU_SIZE: {