mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 19:51:31 -04:00
6lowpan: add private neighbour data
This patch will introduce a 6lowpan neighbour private data. Like the interface private data we handle private data for generic 6lowpan and for link-layer specific 6lowpan. The current first use case if to save the short address for a 802.15.4 6lowpan neighbour. Cc: David S. Miller <[email protected]> Reviewed-by: Stefan Schmidt <[email protected]> Acked-by: YOSHIFUJI Hideaki <[email protected]> Signed-off-by: Alexander Aring <[email protected]> Signed-off-by: David S. Miller <[email protected]>
This commit is contained in:
parent
6010097806
commit
8626a0c83b
3 changed files with 23 additions and 2 deletions
|
|
@ -81,11 +81,21 @@ static int lowpan_stop(struct net_device *dev)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int lowpan_neigh_construct(struct neighbour *n)
|
||||
{
|
||||
struct lowpan_802154_neigh *neigh = lowpan_802154_neigh(neighbour_priv(n));
|
||||
|
||||
/* default no short_addr is available for a neighbour */
|
||||
neigh->short_addr = cpu_to_le16(IEEE802154_ADDR_SHORT_UNSPEC);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct net_device_ops lowpan_netdev_ops = {
|
||||
.ndo_init = lowpan_dev_init,
|
||||
.ndo_start_xmit = lowpan_xmit,
|
||||
.ndo_open = lowpan_open,
|
||||
.ndo_stop = lowpan_stop,
|
||||
.ndo_neigh_construct = lowpan_neigh_construct,
|
||||
};
|
||||
|
||||
static void lowpan_setup(struct net_device *ldev)
|
||||
|
|
@ -150,6 +160,8 @@ static int lowpan_newlink(struct net *src_net, struct net_device *ldev,
|
|||
wdev->needed_headroom;
|
||||
ldev->needed_tailroom = wdev->needed_tailroom;
|
||||
|
||||
ldev->neigh_priv_len = sizeof(struct lowpan_802154_neigh);
|
||||
|
||||
ret = lowpan_register_netdevice(ldev, LOWPAN_LLTYPE_IEEE802154);
|
||||
if (ret < 0) {
|
||||
dev_put(wdev);
|
||||
|
|
|
|||
Loading…
Reference in a new issue