* [PATCH bluetooth-next 00/11] 6lowpan: prepare for 6lowpan ndisc implementation
@ 2016-04-11 9:04 Alexander Aring
2016-04-11 9:04 ` [PATCH bluetooth-next 01/11] ieee802154: cleanups for ieee802154.h Alexander Aring
` (12 more replies)
0 siblings, 13 replies; 18+ messages in thread
From: Alexander Aring @ 2016-04-11 9:04 UTC (permalink / raw)
To: linux-wpan; +Cc: kernel, jukka.rissanen, Alexander Aring
Hi,
this patch series are taken from the pending RFCv2 about
"6lowpan: l2 neighbour data and short address" which are 802.15.4/6lowpan
subsystem related.
If these patches are fine and are mainline on bluetooth-next, I will try to
bring the rest of patches mainline.
- Alex
Alexander Aring (11):
ieee802154: cleanups for ieee802154.h
ieee802154: add short address helpers
nl802154: avoid address change while running lowpan
ieee802154: 6lowpan: fix short addr hash
6lowpan: change naming for lowpan private data
6lowpan: move lowpan_802154_dev to 6lowpan
6lowpan: iphc: rename add lowpan prefix
6lowpan: iphc: remove unnecessary zero data
6lowpan: move eui64 uncompress function
6lowpan: add lowpan_is_ll function
6lowpan: move mac802154 header
include/linux/ieee802154.h | 35 +++++++++++-
include/net/6lowpan.h | 37 ++++++++++++-
include/net/mac802154.h | 10 ++++
net/6lowpan/6lowpan_i.h | 9 +++
net/6lowpan/core.c | 8 +--
net/6lowpan/debugfs.c | 22 ++++----
net/6lowpan/iphc.c | 111 ++++++++++++++++---------------------
net/6lowpan/nhc_udp.c | 2 +-
net/bluetooth/6lowpan.c | 82 ++++++++++++++-------------
net/ieee802154/6lowpan/6lowpan_i.h | 14 +----
net/ieee802154/6lowpan/core.c | 6 +-
net/ieee802154/6lowpan/tx.c | 14 ++---
net/ieee802154/nl802154.c | 10 ++++
13 files changed, 214 insertions(+), 146 deletions(-)
--
2.8.0
^ permalink raw reply [flat|nested] 18+ messages in thread* [PATCH bluetooth-next 01/11] ieee802154: cleanups for ieee802154.h 2016-04-11 9:04 [PATCH bluetooth-next 00/11] 6lowpan: prepare for 6lowpan ndisc implementation Alexander Aring @ 2016-04-11 9:04 ` Alexander Aring 2016-04-11 9:04 ` [PATCH bluetooth-next 02/11] ieee802154: add short address helpers Alexander Aring ` (11 subsequent siblings) 12 siblings, 0 replies; 18+ messages in thread From: Alexander Aring @ 2016-04-11 9:04 UTC (permalink / raw) To: linux-wpan; +Cc: kernel, jukka.rissanen, Alexander Aring This patch removes some const from non-pointer types and fixes the function name for the ieee802154_is_valid_extended_unicast_addr comment. Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com> Signed-off-by: Alexander Aring <aar@pengutronix.de> --- include/linux/ieee802154.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/include/linux/ieee802154.h b/include/linux/ieee802154.h index d3e4156..303f446 100644 --- a/include/linux/ieee802154.h +++ b/include/linux/ieee802154.h @@ -260,17 +260,17 @@ static inline bool ieee802154_is_intra_pan(__le16 fc) * * @len: psdu len with (MHR + payload + MFR) */ -static inline bool ieee802154_is_valid_psdu_len(const u8 len) +static inline bool ieee802154_is_valid_psdu_len(u8 len) { return (len == IEEE802154_ACK_PSDU_LEN || (len >= IEEE802154_MIN_PSDU_LEN && len <= IEEE802154_MTU)); } /** - * ieee802154_is_valid_psdu_len - check if extended addr is valid + * ieee802154_is_valid_extended_unicast_addr - check if extended addr is valid * @addr: extended addr to check */ -static inline bool ieee802154_is_valid_extended_unicast_addr(const __le64 addr) +static inline bool ieee802154_is_valid_extended_unicast_addr(__le64 addr) { /* Bail out if the address is all zero, or if the group * address bit is set. -- 2.8.0 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH bluetooth-next 02/11] ieee802154: add short address helpers 2016-04-11 9:04 [PATCH bluetooth-next 00/11] 6lowpan: prepare for 6lowpan ndisc implementation Alexander Aring 2016-04-11 9:04 ` [PATCH bluetooth-next 01/11] ieee802154: cleanups for ieee802154.h Alexander Aring @ 2016-04-11 9:04 ` Alexander Aring 2016-04-11 9:04 ` [PATCH bluetooth-next 03/11] nl802154: avoid address change while running lowpan Alexander Aring ` (10 subsequent siblings) 12 siblings, 0 replies; 18+ messages in thread From: Alexander Aring @ 2016-04-11 9:04 UTC (permalink / raw) To: linux-wpan; +Cc: kernel, jukka.rissanen, Alexander Aring This patch introduce some short address handling functionality into ieee802154 headers. Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com> Signed-off-by: Alexander Aring <aar@pengutronix.de> --- include/linux/ieee802154.h | 29 +++++++++++++++++++++++++++++ include/net/mac802154.h | 10 ++++++++++ 2 files changed, 39 insertions(+) diff --git a/include/linux/ieee802154.h b/include/linux/ieee802154.h index 303f446..864fdda 100644 --- a/include/linux/ieee802154.h +++ b/include/linux/ieee802154.h @@ -47,6 +47,7 @@ #define IEEE802154_ADDR_SHORT_UNSPEC 0xfffe #define IEEE802154_EXTENDED_ADDR_LEN 8 +#define IEEE802154_SHORT_ADDR_LEN 2 #define IEEE802154_LIFS_PERIOD 40 #define IEEE802154_SIFS_PERIOD 12 @@ -280,6 +281,34 @@ static inline bool ieee802154_is_valid_extended_unicast_addr(__le64 addr) } /** + * ieee802154_is_broadcast_short_addr - check if short addr is broadcast + * @addr: short addr to check + */ +static inline bool ieee802154_is_broadcast_short_addr(__le16 addr) +{ + return (addr == cpu_to_le16(IEEE802154_ADDR_SHORT_BROADCAST)); +} + +/** + * ieee802154_is_unspec_short_addr - check if short addr is unspecified + * @addr: short addr to check + */ +static inline bool ieee802154_is_unspec_short_addr(__le16 addr) +{ + return (addr == cpu_to_le16(IEEE802154_ADDR_SHORT_UNSPEC)); +} + +/** + * ieee802154_is_valid_src_short_addr - check if source short address is valid + * @addr: short addr to check + */ +static inline bool ieee802154_is_valid_src_short_addr(__le16 addr) +{ + return !(ieee802154_is_broadcast_short_addr(addr) || + ieee802154_is_unspec_short_addr(addr)); +} + +/** * ieee802154_random_extended_addr - generates a random extended address * @addr: extended addr pointer to place the random address */ diff --git a/include/net/mac802154.h b/include/net/mac802154.h index 6cd7a70..e465c85 100644 --- a/include/net/mac802154.h +++ b/include/net/mac802154.h @@ -288,6 +288,16 @@ static inline void ieee802154_le16_to_be16(void *be16_dst, const void *le16_src) } /** + * ieee802154_be16_to_le16 - copies and convert be16 to le16 + * @le16_dst: le16 destination pointer + * @be16_src: be16 source pointer + */ +static inline void ieee802154_be16_to_le16(void *le16_dst, const void *be16_src) +{ + put_unaligned_le16(get_unaligned_be16(be16_src), le16_dst); +} + +/** * ieee802154_alloc_hw - Allocate a new hardware device * * This must be called once for each hardware device. The returned pointer -- 2.8.0 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH bluetooth-next 03/11] nl802154: avoid address change while running lowpan 2016-04-11 9:04 [PATCH bluetooth-next 00/11] 6lowpan: prepare for 6lowpan ndisc implementation Alexander Aring 2016-04-11 9:04 ` [PATCH bluetooth-next 01/11] ieee802154: cleanups for ieee802154.h Alexander Aring 2016-04-11 9:04 ` [PATCH bluetooth-next 02/11] ieee802154: add short address helpers Alexander Aring @ 2016-04-11 9:04 ` Alexander Aring 2016-04-11 9:04 ` [PATCH bluetooth-next 04/11] ieee802154: 6lowpan: fix short addr hash Alexander Aring ` (9 subsequent siblings) 12 siblings, 0 replies; 18+ messages in thread From: Alexander Aring @ 2016-04-11 9:04 UTC (permalink / raw) To: linux-wpan; +Cc: kernel, jukka.rissanen, Alexander Aring The generation of autoconfigured IPv6 link-local addresses starts with a notification on interface up. To handle autoconfiguration according to RFC 4944 requires pan id and short address to generate an autoconfigured link-local address. This patch will avoid changing of these link-layer address configuration while lowpan interface is up. Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com> Signed-off-by: Alexander Aring <aar@pengutronix.de> --- net/ieee802154/nl802154.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/net/ieee802154/nl802154.c b/net/ieee802154/nl802154.c index 16ef0d9..5f1dc4b 100644 --- a/net/ieee802154/nl802154.c +++ b/net/ieee802154/nl802154.c @@ -1074,6 +1074,11 @@ static int nl802154_set_pan_id(struct sk_buff *skb, struct genl_info *info) if (netif_running(dev)) return -EBUSY; + if (wpan_dev->lowpan_dev) { + if (netif_running(wpan_dev->lowpan_dev)) + return -EBUSY; + } + /* don't change address fields on monitor */ if (wpan_dev->iftype == NL802154_IFTYPE_MONITOR || !info->attrs[NL802154_ATTR_PAN_ID]) @@ -1105,6 +1110,11 @@ static int nl802154_set_short_addr(struct sk_buff *skb, struct genl_info *info) if (netif_running(dev)) return -EBUSY; + if (wpan_dev->lowpan_dev) { + if (netif_running(wpan_dev->lowpan_dev)) + return -EBUSY; + } + /* don't change address fields on monitor */ if (wpan_dev->iftype == NL802154_IFTYPE_MONITOR || !info->attrs[NL802154_ATTR_SHORT_ADDR]) -- 2.8.0 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH bluetooth-next 04/11] ieee802154: 6lowpan: fix short addr hash 2016-04-11 9:04 [PATCH bluetooth-next 00/11] 6lowpan: prepare for 6lowpan ndisc implementation Alexander Aring ` (2 preceding siblings ...) 2016-04-11 9:04 ` [PATCH bluetooth-next 03/11] nl802154: avoid address change while running lowpan Alexander Aring @ 2016-04-11 9:04 ` Alexander Aring 2016-04-11 9:04 ` [PATCH bluetooth-next 05/11] 6lowpan: change naming for lowpan private data Alexander Aring ` (8 subsequent siblings) 12 siblings, 0 replies; 18+ messages in thread From: Alexander Aring @ 2016-04-11 9:04 UTC (permalink / raw) To: linux-wpan; +Cc: kernel, jukka.rissanen, Alexander Aring The short address is unique in combination with the panid. This patch will add the panid for generating an ieee802154 address hash. Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com> Signed-off-by: Alexander Aring <aar@pengutronix.de> --- net/ieee802154/6lowpan/6lowpan_i.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/ieee802154/6lowpan/6lowpan_i.h b/net/ieee802154/6lowpan/6lowpan_i.h index b4e17a7..b4092a9 100644 --- a/net/ieee802154/6lowpan/6lowpan_i.h +++ b/net/ieee802154/6lowpan/6lowpan_i.h @@ -41,7 +41,7 @@ static inline u32 ieee802154_addr_hash(const struct ieee802154_addr *a) return (((__force u64)a->extended_addr) >> 32) ^ (((__force u64)a->extended_addr) & 0xffffffff); case IEEE802154_ADDR_SHORT: - return (__force u32)(a->short_addr); + return (__force u32)(a->short_addr + (a->pan_id << 16)); default: return 0; } -- 2.8.0 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH bluetooth-next 05/11] 6lowpan: change naming for lowpan private data 2016-04-11 9:04 [PATCH bluetooth-next 00/11] 6lowpan: prepare for 6lowpan ndisc implementation Alexander Aring ` (3 preceding siblings ...) 2016-04-11 9:04 ` [PATCH bluetooth-next 04/11] ieee802154: 6lowpan: fix short addr hash Alexander Aring @ 2016-04-11 9:04 ` Alexander Aring 2016-04-11 16:54 ` Stefan Schmidt 2016-04-11 9:04 ` [PATCH bluetooth-next 06/11] 6lowpan: move lowpan_802154_dev to 6lowpan Alexander Aring ` (7 subsequent siblings) 12 siblings, 1 reply; 18+ messages in thread From: Alexander Aring @ 2016-04-11 9:04 UTC (permalink / raw) To: linux-wpan; +Cc: kernel, jukka.rissanen, Alexander Aring This patch changes the naming for interface private data for lowpan intefaces. The current private data scheme is: ------------------------------------------------- | 6LoWPAN Generic | LinkLayer 6LoWPAN | ------------------------------------------------- the current naming schemes are: - 6LoWPAN Generic: - lowpan_priv - LinkLayer 6LoWPAN: - BTLE - lowpan_dev - 802.15.4: - lowpan_dev_info the new naming scheme with this patch will be: - 6LoWPAN Generic: - lowpan_dev - LinkLayer 6LoWPAN: - BTLE - lowpan_btle_dev - 802.15.4: - lowpan_802154_dev Signed-off-by: Alexander Aring <aar@pengutronix.de> --- include/net/6lowpan.h | 6 +-- net/6lowpan/core.c | 8 ++-- net/6lowpan/debugfs.c | 22 +++++----- net/6lowpan/iphc.c | 38 +++++++++--------- net/6lowpan/nhc_udp.c | 2 +- net/bluetooth/6lowpan.c | 82 ++++++++++++++++++++------------------ net/ieee802154/6lowpan/6lowpan_i.h | 6 +-- net/ieee802154/6lowpan/core.c | 6 +-- net/ieee802154/6lowpan/tx.c | 14 +++---- 9 files changed, 94 insertions(+), 90 deletions(-) diff --git a/include/net/6lowpan.h b/include/net/6lowpan.h index da3a77d..f204664 100644 --- a/include/net/6lowpan.h +++ b/include/net/6lowpan.h @@ -93,7 +93,7 @@ static inline bool lowpan_is_iphc(u8 dispatch) } #define LOWPAN_PRIV_SIZE(llpriv_size) \ - (sizeof(struct lowpan_priv) + llpriv_size) + (sizeof(struct lowpan_dev) + llpriv_size) enum lowpan_lltypes { LOWPAN_LLTYPE_BTLE, @@ -129,7 +129,7 @@ lowpan_iphc_ctx_is_compression(const struct lowpan_iphc_ctx *ctx) return test_bit(LOWPAN_IPHC_CTX_FLAG_COMPRESSION, &ctx->flags); } -struct lowpan_priv { +struct lowpan_dev { enum lowpan_lltypes lltype; struct dentry *iface_debugfs; struct lowpan_iphc_ctx_table ctx; @@ -139,7 +139,7 @@ struct lowpan_priv { }; static inline -struct lowpan_priv *lowpan_priv(const struct net_device *dev) +struct lowpan_dev *lowpan_dev(const struct net_device *dev) { return netdev_priv(dev); } diff --git a/net/6lowpan/core.c b/net/6lowpan/core.c index 34e44c0..7a240b3 100644 --- a/net/6lowpan/core.c +++ b/net/6lowpan/core.c @@ -27,11 +27,11 @@ int lowpan_register_netdevice(struct net_device *dev, dev->mtu = IPV6_MIN_MTU; dev->priv_flags |= IFF_NO_QUEUE; - lowpan_priv(dev)->lltype = lltype; + lowpan_dev(dev)->lltype = lltype; - spin_lock_init(&lowpan_priv(dev)->ctx.lock); + spin_lock_init(&lowpan_dev(dev)->ctx.lock); for (i = 0; i < LOWPAN_IPHC_CTX_TABLE_SIZE; i++) - lowpan_priv(dev)->ctx.table[i].id = i; + lowpan_dev(dev)->ctx.table[i].id = i; ret = register_netdevice(dev); if (ret < 0) @@ -85,7 +85,7 @@ static int lowpan_event(struct notifier_block *unused, case NETDEV_DOWN: for (i = 0; i < LOWPAN_IPHC_CTX_TABLE_SIZE; i++) clear_bit(LOWPAN_IPHC_CTX_FLAG_ACTIVE, - &lowpan_priv(dev)->ctx.table[i].flags); + &lowpan_dev(dev)->ctx.table[i].flags); break; default: return NOTIFY_DONE; diff --git a/net/6lowpan/debugfs.c b/net/6lowpan/debugfs.c index 0793a81..acbaa3d 100644 --- a/net/6lowpan/debugfs.c +++ b/net/6lowpan/debugfs.c @@ -172,7 +172,7 @@ static const struct file_operations lowpan_ctx_pfx_fops = { static int lowpan_dev_debugfs_ctx_init(struct net_device *dev, struct dentry *ctx, u8 id) { - struct lowpan_priv *lpriv = lowpan_priv(dev); + struct lowpan_dev *ldev = lowpan_dev(dev); struct dentry *dentry, *root; char buf[32]; @@ -185,25 +185,25 @@ static int lowpan_dev_debugfs_ctx_init(struct net_device *dev, return -EINVAL; dentry = debugfs_create_file("active", 0644, root, - &lpriv->ctx.table[id], + &ldev->ctx.table[id], &lowpan_ctx_flag_active_fops); if (!dentry) return -EINVAL; dentry = debugfs_create_file("compression", 0644, root, - &lpriv->ctx.table[id], + &ldev->ctx.table[id], &lowpan_ctx_flag_c_fops); if (!dentry) return -EINVAL; dentry = debugfs_create_file("prefix", 0644, root, - &lpriv->ctx.table[id], + &ldev->ctx.table[id], &lowpan_ctx_pfx_fops); if (!dentry) return -EINVAL; dentry = debugfs_create_file("prefix_len", 0644, root, - &lpriv->ctx.table[id], + &ldev->ctx.table[id], &lowpan_ctx_plen_fops); if (!dentry) return -EINVAL; @@ -247,21 +247,21 @@ static const struct file_operations lowpan_context_fops = { int lowpan_dev_debugfs_init(struct net_device *dev) { - struct lowpan_priv *lpriv = lowpan_priv(dev); + struct lowpan_dev *ldev = lowpan_dev(dev); struct dentry *contexts, *dentry; int ret, i; /* creating the root */ - lpriv->iface_debugfs = debugfs_create_dir(dev->name, lowpan_debugfs); - if (!lpriv->iface_debugfs) + ldev->iface_debugfs = debugfs_create_dir(dev->name, lowpan_debugfs); + if (!ldev->iface_debugfs) goto fail; - contexts = debugfs_create_dir("contexts", lpriv->iface_debugfs); + contexts = debugfs_create_dir("contexts", ldev->iface_debugfs); if (!contexts) goto remove_root; dentry = debugfs_create_file("show", 0644, contexts, - &lowpan_priv(dev)->ctx, + &lowpan_dev(dev)->ctx, &lowpan_context_fops); if (!dentry) goto remove_root; @@ -282,7 +282,7 @@ fail: void lowpan_dev_debugfs_exit(struct net_device *dev) { - debugfs_remove_recursive(lowpan_priv(dev)->iface_debugfs); + debugfs_remove_recursive(lowpan_dev(dev)->iface_debugfs); } int __init lowpan_debugfs_init(void) diff --git a/net/6lowpan/iphc.c b/net/6lowpan/iphc.c index 68c80f3..5fb764e 100644 --- a/net/6lowpan/iphc.c +++ b/net/6lowpan/iphc.c @@ -207,7 +207,7 @@ static inline void iphc_uncompress_802154_lladdr(struct in6_addr *ipaddr, static struct lowpan_iphc_ctx * lowpan_iphc_ctx_get_by_id(const struct net_device *dev, u8 id) { - struct lowpan_iphc_ctx *ret = &lowpan_priv(dev)->ctx.table[id]; + struct lowpan_iphc_ctx *ret = &lowpan_dev(dev)->ctx.table[id]; if (!lowpan_iphc_ctx_is_active(ret)) return NULL; @@ -219,7 +219,7 @@ static struct lowpan_iphc_ctx * lowpan_iphc_ctx_get_by_addr(const struct net_device *dev, const struct in6_addr *addr) { - struct lowpan_iphc_ctx *table = lowpan_priv(dev)->ctx.table; + struct lowpan_iphc_ctx *table = lowpan_dev(dev)->ctx.table; struct lowpan_iphc_ctx *ret = NULL; struct in6_addr addr_pfx; u8 addr_plen; @@ -263,7 +263,7 @@ static struct lowpan_iphc_ctx * lowpan_iphc_ctx_get_by_mcast_addr(const struct net_device *dev, const struct in6_addr *addr) { - struct lowpan_iphc_ctx *table = lowpan_priv(dev)->ctx.table; + struct lowpan_iphc_ctx *table = lowpan_dev(dev)->ctx.table; struct lowpan_iphc_ctx *ret = NULL; struct in6_addr addr_mcast, network_pfx = {}; int i; @@ -332,7 +332,7 @@ static int uncompress_addr(struct sk_buff *skb, const struct net_device *dev, case LOWPAN_IPHC_SAM_11: case LOWPAN_IPHC_DAM_11: fail = false; - switch (lowpan_priv(dev)->lltype) { + switch (lowpan_dev(dev)->lltype) { case LOWPAN_LLTYPE_IEEE802154: iphc_uncompress_802154_lladdr(ipaddr, lladdr); break; @@ -393,7 +393,7 @@ static int uncompress_ctx_addr(struct sk_buff *skb, case LOWPAN_IPHC_SAM_11: case LOWPAN_IPHC_DAM_11: fail = false; - switch (lowpan_priv(dev)->lltype) { + switch (lowpan_dev(dev)->lltype) { case LOWPAN_LLTYPE_IEEE802154: iphc_uncompress_802154_lladdr(ipaddr, lladdr); break; @@ -657,17 +657,17 @@ int lowpan_header_decompress(struct sk_buff *skb, const struct net_device *dev, } if (iphc1 & LOWPAN_IPHC_SAC) { - spin_lock_bh(&lowpan_priv(dev)->ctx.lock); + spin_lock_bh(&lowpan_dev(dev)->ctx.lock); ci = lowpan_iphc_ctx_get_by_id(dev, LOWPAN_IPHC_CID_SCI(cid)); if (!ci) { - spin_unlock_bh(&lowpan_priv(dev)->ctx.lock); + spin_unlock_bh(&lowpan_dev(dev)->ctx.lock); return -EINVAL; } pr_debug("SAC bit is set. Handle context based source address.\n"); err = uncompress_ctx_addr(skb, dev, ci, &hdr.saddr, iphc1 & LOWPAN_IPHC_SAM_MASK, saddr); - spin_unlock_bh(&lowpan_priv(dev)->ctx.lock); + spin_unlock_bh(&lowpan_dev(dev)->ctx.lock); } else { /* Source address uncompression */ pr_debug("source address stateless compression\n"); @@ -681,10 +681,10 @@ int lowpan_header_decompress(struct sk_buff *skb, const struct net_device *dev, switch (iphc1 & (LOWPAN_IPHC_M | LOWPAN_IPHC_DAC)) { case LOWPAN_IPHC_M | LOWPAN_IPHC_DAC: - spin_lock_bh(&lowpan_priv(dev)->ctx.lock); + spin_lock_bh(&lowpan_dev(dev)->ctx.lock); ci = lowpan_iphc_ctx_get_by_id(dev, LOWPAN_IPHC_CID_DCI(cid)); if (!ci) { - spin_unlock_bh(&lowpan_priv(dev)->ctx.lock); + spin_unlock_bh(&lowpan_dev(dev)->ctx.lock); return -EINVAL; } @@ -693,7 +693,7 @@ int lowpan_header_decompress(struct sk_buff *skb, const struct net_device *dev, err = lowpan_uncompress_multicast_ctx_daddr(skb, ci, &hdr.daddr, iphc1 & LOWPAN_IPHC_DAM_MASK); - spin_unlock_bh(&lowpan_priv(dev)->ctx.lock); + spin_unlock_bh(&lowpan_dev(dev)->ctx.lock); break; case LOWPAN_IPHC_M: /* multicast */ @@ -701,10 +701,10 @@ int lowpan_header_decompress(struct sk_buff *skb, const struct net_device *dev, iphc1 & LOWPAN_IPHC_DAM_MASK); break; case LOWPAN_IPHC_DAC: - spin_lock_bh(&lowpan_priv(dev)->ctx.lock); + spin_lock_bh(&lowpan_dev(dev)->ctx.lock); ci = lowpan_iphc_ctx_get_by_id(dev, LOWPAN_IPHC_CID_DCI(cid)); if (!ci) { - spin_unlock_bh(&lowpan_priv(dev)->ctx.lock); + spin_unlock_bh(&lowpan_dev(dev)->ctx.lock); return -EINVAL; } @@ -712,7 +712,7 @@ int lowpan_header_decompress(struct sk_buff *skb, const struct net_device *dev, pr_debug("DAC bit is set. Handle context based destination address.\n"); err = uncompress_ctx_addr(skb, dev, ci, &hdr.daddr, iphc1 & LOWPAN_IPHC_DAM_MASK, daddr); - spin_unlock_bh(&lowpan_priv(dev)->ctx.lock); + spin_unlock_bh(&lowpan_dev(dev)->ctx.lock); break; default: err = uncompress_addr(skb, dev, &hdr.daddr, @@ -736,7 +736,7 @@ int lowpan_header_decompress(struct sk_buff *skb, const struct net_device *dev, return err; } - switch (lowpan_priv(dev)->lltype) { + switch (lowpan_dev(dev)->lltype) { case LOWPAN_LLTYPE_IEEE802154: if (lowpan_802154_cb(skb)->d_size) hdr.payload_len = htons(lowpan_802154_cb(skb)->d_size - @@ -1033,7 +1033,7 @@ int lowpan_header_compress(struct sk_buff *skb, const struct net_device *dev, skb->data, skb->len); ipv6_daddr_type = ipv6_addr_type(&hdr->daddr); - spin_lock_bh(&lowpan_priv(dev)->ctx.lock); + spin_lock_bh(&lowpan_dev(dev)->ctx.lock); if (ipv6_daddr_type & IPV6_ADDR_MULTICAST) dci = lowpan_iphc_ctx_get_by_mcast_addr(dev, &hdr->daddr); else @@ -1042,15 +1042,15 @@ int lowpan_header_compress(struct sk_buff *skb, const struct net_device *dev, memcpy(&dci_entry, dci, sizeof(*dci)); cid |= dci->id; } - spin_unlock_bh(&lowpan_priv(dev)->ctx.lock); + spin_unlock_bh(&lowpan_dev(dev)->ctx.lock); - spin_lock_bh(&lowpan_priv(dev)->ctx.lock); + spin_lock_bh(&lowpan_dev(dev)->ctx.lock); sci = lowpan_iphc_ctx_get_by_addr(dev, &hdr->saddr); if (sci) { memcpy(&sci_entry, sci, sizeof(*sci)); cid |= (sci->id << 4); } - spin_unlock_bh(&lowpan_priv(dev)->ctx.lock); + spin_unlock_bh(&lowpan_dev(dev)->ctx.lock); /* if cid is zero it will be compressed */ if (cid) { diff --git a/net/6lowpan/nhc_udp.c b/net/6lowpan/nhc_udp.c index 69537a2..225d919 100644 --- a/net/6lowpan/nhc_udp.c +++ b/net/6lowpan/nhc_udp.c @@ -91,7 +91,7 @@ static int udp_uncompress(struct sk_buff *skb, size_t needed) * here, we obtain the hint from the remaining size of the * frame */ - switch (lowpan_priv(skb->dev)->lltype) { + switch (lowpan_dev(skb->dev)->lltype) { case LOWPAN_LLTYPE_IEEE802154: if (lowpan_802154_cb(skb)->d_size) uh.len = htons(lowpan_802154_cb(skb)->d_size - diff --git a/net/bluetooth/6lowpan.c b/net/bluetooth/6lowpan.c index 8a4cc2f..38e82dd 100644 --- a/net/bluetooth/6lowpan.c +++ b/net/bluetooth/6lowpan.c @@ -68,7 +68,7 @@ struct lowpan_peer { struct in6_addr peer_addr; }; -struct lowpan_dev { +struct lowpan_btle_dev { struct list_head list; struct hci_dev *hdev; @@ -80,18 +80,21 @@ struct lowpan_dev { struct delayed_work notify_peers; }; -static inline struct lowpan_dev *lowpan_dev(const struct net_device *netdev) +static inline struct lowpan_btle_dev * +lowpan_btle_dev(const struct net_device *netdev) { - return (struct lowpan_dev *)lowpan_priv(netdev)->priv; + return (struct lowpan_btle_dev *)lowpan_dev(netdev)->priv; } -static inline void peer_add(struct lowpan_dev *dev, struct lowpan_peer *peer) +static inline void peer_add(struct lowpan_btle_dev *dev, + struct lowpan_peer *peer) { list_add_rcu(&peer->list, &dev->peers); atomic_inc(&dev->peer_count); } -static inline bool peer_del(struct lowpan_dev *dev, struct lowpan_peer *peer) +static inline bool peer_del(struct lowpan_btle_dev *dev, + struct lowpan_peer *peer) { list_del_rcu(&peer->list); kfree_rcu(peer, rcu); @@ -106,7 +109,7 @@ static inline bool peer_del(struct lowpan_dev *dev, struct lowpan_peer *peer) return false; } -static inline struct lowpan_peer *peer_lookup_ba(struct lowpan_dev *dev, +static inline struct lowpan_peer *peer_lookup_ba(struct lowpan_btle_dev *dev, bdaddr_t *ba, __u8 type) { struct lowpan_peer *peer; @@ -134,8 +137,8 @@ static inline struct lowpan_peer *peer_lookup_ba(struct lowpan_dev *dev, return NULL; } -static inline struct lowpan_peer *__peer_lookup_chan(struct lowpan_dev *dev, - struct l2cap_chan *chan) +static inline struct lowpan_peer * +__peer_lookup_chan(struct lowpan_btle_dev *dev, struct l2cap_chan *chan) { struct lowpan_peer *peer; @@ -147,8 +150,8 @@ static inline struct lowpan_peer *__peer_lookup_chan(struct lowpan_dev *dev, return NULL; } -static inline struct lowpan_peer *__peer_lookup_conn(struct lowpan_dev *dev, - struct l2cap_conn *conn) +static inline struct lowpan_peer * +__peer_lookup_conn(struct lowpan_btle_dev *dev, struct l2cap_conn *conn) { struct lowpan_peer *peer; @@ -160,7 +163,7 @@ static inline struct lowpan_peer *__peer_lookup_conn(struct lowpan_dev *dev, return NULL; } -static inline struct lowpan_peer *peer_lookup_dst(struct lowpan_dev *dev, +static inline struct lowpan_peer *peer_lookup_dst(struct lowpan_btle_dev *dev, struct in6_addr *daddr, struct sk_buff *skb) { @@ -220,7 +223,7 @@ static inline struct lowpan_peer *peer_lookup_dst(struct lowpan_dev *dev, static struct lowpan_peer *lookup_peer(struct l2cap_conn *conn) { - struct lowpan_dev *entry; + struct lowpan_btle_dev *entry; struct lowpan_peer *peer = NULL; rcu_read_lock(); @@ -236,10 +239,10 @@ static struct lowpan_peer *lookup_peer(struct l2cap_conn *conn) return peer; } -static struct lowpan_dev *lookup_dev(struct l2cap_conn *conn) +static struct lowpan_btle_dev *lookup_dev(struct l2cap_conn *conn) { - struct lowpan_dev *entry; - struct lowpan_dev *dev = NULL; + struct lowpan_btle_dev *entry; + struct lowpan_btle_dev *dev = NULL; rcu_read_lock(); @@ -270,10 +273,10 @@ static int iphc_decompress(struct sk_buff *skb, struct net_device *netdev, struct l2cap_chan *chan) { const u8 *saddr, *daddr; - struct lowpan_dev *dev; + struct lowpan_btle_dev *dev; struct lowpan_peer *peer; - dev = lowpan_dev(netdev); + dev = lowpan_btle_dev(netdev); rcu_read_lock(); peer = __peer_lookup_chan(dev, chan); @@ -375,7 +378,7 @@ drop: /* Packet from BT LE device */ static int chan_recv_cb(struct l2cap_chan *chan, struct sk_buff *skb) { - struct lowpan_dev *dev; + struct lowpan_btle_dev *dev; struct lowpan_peer *peer; int err; @@ -431,13 +434,13 @@ static int setup_header(struct sk_buff *skb, struct net_device *netdev, bdaddr_t *peer_addr, u8 *peer_addr_type) { struct in6_addr ipv6_daddr; - struct lowpan_dev *dev; + struct lowpan_btle_dev *dev; struct lowpan_peer *peer; bdaddr_t addr, *any = BDADDR_ANY; u8 *daddr = any->b; int err, status = 0; - dev = lowpan_dev(netdev); + dev = lowpan_btle_dev(netdev); memcpy(&ipv6_daddr, &lowpan_cb(skb)->addr, sizeof(ipv6_daddr)); @@ -543,19 +546,19 @@ static int send_pkt(struct l2cap_chan *chan, struct sk_buff *skb, static int send_mcast_pkt(struct sk_buff *skb, struct net_device *netdev) { struct sk_buff *local_skb; - struct lowpan_dev *entry; + struct lowpan_btle_dev *entry; int err = 0; rcu_read_lock(); list_for_each_entry_rcu(entry, &bt_6lowpan_devices, list) { struct lowpan_peer *pentry; - struct lowpan_dev *dev; + struct lowpan_btle_dev *dev; if (entry->netdev != netdev) continue; - dev = lowpan_dev(entry->netdev); + dev = lowpan_btle_dev(entry->netdev); list_for_each_entry_rcu(pentry, &dev->peers, list) { int ret; @@ -723,8 +726,8 @@ static void ifdown(struct net_device *netdev) static void do_notify_peers(struct work_struct *work) { - struct lowpan_dev *dev = container_of(work, struct lowpan_dev, - notify_peers.work); + struct lowpan_btle_dev *dev = container_of(work, struct lowpan_btle_dev, + notify_peers.work); netdev_notify_peers(dev->netdev); /* send neighbour adv at startup */ } @@ -766,7 +769,7 @@ static void set_ip_addr_bits(u8 addr_type, u8 *addr) } static struct l2cap_chan *add_peer_chan(struct l2cap_chan *chan, - struct lowpan_dev *dev) + struct lowpan_btle_dev *dev) { struct lowpan_peer *peer; @@ -803,12 +806,12 @@ static struct l2cap_chan *add_peer_chan(struct l2cap_chan *chan, return peer->chan; } -static int setup_netdev(struct l2cap_chan *chan, struct lowpan_dev **dev) +static int setup_netdev(struct l2cap_chan *chan, struct lowpan_btle_dev **dev) { struct net_device *netdev; int err = 0; - netdev = alloc_netdev(LOWPAN_PRIV_SIZE(sizeof(struct lowpan_dev)), + netdev = alloc_netdev(LOWPAN_PRIV_SIZE(sizeof(struct lowpan_btle_dev)), IFACE_NAME_TEMPLATE, NET_NAME_UNKNOWN, netdev_setup); if (!netdev) @@ -820,7 +823,7 @@ static int setup_netdev(struct l2cap_chan *chan, struct lowpan_dev **dev) SET_NETDEV_DEV(netdev, &chan->conn->hcon->hdev->dev); SET_NETDEV_DEVTYPE(netdev, &bt_type); - *dev = lowpan_dev(netdev); + *dev = lowpan_btle_dev(netdev); (*dev)->netdev = netdev; (*dev)->hdev = chan->conn->hcon->hdev; INIT_LIST_HEAD(&(*dev)->peers); @@ -853,7 +856,7 @@ out: static inline void chan_ready_cb(struct l2cap_chan *chan) { - struct lowpan_dev *dev; + struct lowpan_btle_dev *dev; dev = lookup_dev(chan->conn); @@ -890,8 +893,9 @@ static inline struct l2cap_chan *chan_new_conn_cb(struct l2cap_chan *pchan) static void delete_netdev(struct work_struct *work) { - struct lowpan_dev *entry = container_of(work, struct lowpan_dev, - delete_netdev); + struct lowpan_btle_dev *entry = container_of(work, + struct lowpan_btle_dev, + delete_netdev); lowpan_unregister_netdev(entry->netdev); @@ -900,8 +904,8 @@ static void delete_netdev(struct work_struct *work) static void chan_close_cb(struct l2cap_chan *chan) { - struct lowpan_dev *entry; - struct lowpan_dev *dev = NULL; + struct lowpan_btle_dev *entry; + struct lowpan_btle_dev *dev = NULL; struct lowpan_peer *peer; int err = -ENOENT; bool last = false, remove = true; @@ -921,7 +925,7 @@ static void chan_close_cb(struct l2cap_chan *chan) spin_lock(&devices_lock); list_for_each_entry_rcu(entry, &bt_6lowpan_devices, list) { - dev = lowpan_dev(entry->netdev); + dev = lowpan_btle_dev(entry->netdev); peer = __peer_lookup_chan(dev, chan); if (peer) { last = peer_del(dev, peer); @@ -1131,7 +1135,7 @@ static int get_l2cap_conn(char *buf, bdaddr_t *addr, u8 *addr_type, static void disconnect_all_peers(void) { - struct lowpan_dev *entry; + struct lowpan_btle_dev *entry; struct lowpan_peer *peer, *tmp_peer, *new_peer; struct list_head peers; @@ -1291,7 +1295,7 @@ static ssize_t lowpan_control_write(struct file *fp, static int lowpan_control_show(struct seq_file *f, void *ptr) { - struct lowpan_dev *entry; + struct lowpan_btle_dev *entry; struct lowpan_peer *peer; spin_lock(&devices_lock); @@ -1322,7 +1326,7 @@ static const struct file_operations lowpan_control_fops = { static void disconnect_devices(void) { - struct lowpan_dev *entry, *tmp, *new_dev; + struct lowpan_btle_dev *entry, *tmp, *new_dev; struct list_head devices; INIT_LIST_HEAD(&devices); @@ -1360,7 +1364,7 @@ static int device_event(struct notifier_block *unused, unsigned long event, void *ptr) { struct net_device *netdev = netdev_notifier_info_to_dev(ptr); - struct lowpan_dev *entry; + struct lowpan_btle_dev *entry; if (netdev->type != ARPHRD_6LOWPAN) return NOTIFY_DONE; diff --git a/net/ieee802154/6lowpan/6lowpan_i.h b/net/ieee802154/6lowpan/6lowpan_i.h index b4092a9..b02b74d 100644 --- a/net/ieee802154/6lowpan/6lowpan_i.h +++ b/net/ieee802154/6lowpan/6lowpan_i.h @@ -48,15 +48,15 @@ static inline u32 ieee802154_addr_hash(const struct ieee802154_addr *a) } /* private device info */ -struct lowpan_dev_info { +struct lowpan_802154_dev { struct net_device *wdev; /* wpan device ptr */ u16 fragment_tag; }; static inline struct -lowpan_dev_info *lowpan_dev_info(const struct net_device *dev) +lowpan_802154_dev *lowpan_802154_dev(const struct net_device *dev) { - return (struct lowpan_dev_info *)lowpan_priv(dev)->priv; + return (struct lowpan_802154_dev *)lowpan_dev(dev)->priv; } int lowpan_frag_rcv(struct sk_buff *skb, const u8 frag_type); diff --git a/net/ieee802154/6lowpan/core.c b/net/ieee802154/6lowpan/core.c index 0023c90..dd085db 100644 --- a/net/ieee802154/6lowpan/core.c +++ b/net/ieee802154/6lowpan/core.c @@ -148,7 +148,7 @@ static int lowpan_newlink(struct net *src_net, struct net_device *ldev, return -EBUSY; } - lowpan_dev_info(ldev)->wdev = wdev; + lowpan_802154_dev(ldev)->wdev = wdev; /* Set the lowpan hardware address to the wpan hardware address. */ memcpy(ldev->dev_addr, wdev->dev_addr, IEEE802154_ADDR_LEN); /* We need headroom for possible wpan_dev_hard_header call and tailroom @@ -173,7 +173,7 @@ static int lowpan_newlink(struct net *src_net, struct net_device *ldev, static void lowpan_dellink(struct net_device *ldev, struct list_head *head) { - struct net_device *wdev = lowpan_dev_info(ldev)->wdev; + struct net_device *wdev = lowpan_802154_dev(ldev)->wdev; ASSERT_RTNL(); @@ -184,7 +184,7 @@ static void lowpan_dellink(struct net_device *ldev, struct list_head *head) static struct rtnl_link_ops lowpan_link_ops __read_mostly = { .kind = "lowpan", - .priv_size = LOWPAN_PRIV_SIZE(sizeof(struct lowpan_dev_info)), + .priv_size = LOWPAN_PRIV_SIZE(sizeof(struct lowpan_802154_dev)), .setup = lowpan_setup, .newlink = lowpan_newlink, .dellink = lowpan_dellink, diff --git a/net/ieee802154/6lowpan/tx.c b/net/ieee802154/6lowpan/tx.c index d4353fa..e459afd 100644 --- a/net/ieee802154/6lowpan/tx.c +++ b/net/ieee802154/6lowpan/tx.c @@ -84,7 +84,7 @@ static struct sk_buff* lowpan_alloc_frag(struct sk_buff *skb, int size, const struct ieee802154_hdr *master_hdr, bool frag1) { - struct net_device *wdev = lowpan_dev_info(skb->dev)->wdev; + struct net_device *wdev = lowpan_802154_dev(skb->dev)->wdev; struct sk_buff *frag; int rc; @@ -148,8 +148,8 @@ lowpan_xmit_fragmented(struct sk_buff *skb, struct net_device *ldev, int frag_cap, frag_len, payload_cap, rc; int skb_unprocessed, skb_offset; - frag_tag = htons(lowpan_dev_info(ldev)->fragment_tag); - lowpan_dev_info(ldev)->fragment_tag++; + frag_tag = htons(lowpan_802154_dev(ldev)->fragment_tag); + lowpan_802154_dev(ldev)->fragment_tag++; frag_hdr[0] = LOWPAN_DISPATCH_FRAG1 | ((dgram_size >> 8) & 0x07); frag_hdr[1] = dgram_size & 0xff; @@ -208,7 +208,7 @@ err: static int lowpan_header(struct sk_buff *skb, struct net_device *ldev, u16 *dgram_size, u16 *dgram_offset) { - struct wpan_dev *wpan_dev = lowpan_dev_info(ldev)->wdev->ieee802154_ptr; + struct wpan_dev *wpan_dev = lowpan_802154_dev(ldev)->wdev->ieee802154_ptr; struct ieee802154_addr sa, da; struct ieee802154_mac_cb *cb = mac_cb_init(skb); struct lowpan_addr_info info; @@ -248,8 +248,8 @@ static int lowpan_header(struct sk_buff *skb, struct net_device *ldev, cb->ackreq = wpan_dev->ackreq; } - return wpan_dev_hard_header(skb, lowpan_dev_info(ldev)->wdev, &da, &sa, - 0); + return wpan_dev_hard_header(skb, lowpan_802154_dev(ldev)->wdev, &da, + &sa, 0); } netdev_tx_t lowpan_xmit(struct sk_buff *skb, struct net_device *ldev) @@ -283,7 +283,7 @@ netdev_tx_t lowpan_xmit(struct sk_buff *skb, struct net_device *ldev) max_single = ieee802154_max_payload(&wpan_hdr); if (skb_tail_pointer(skb) - skb_network_header(skb) <= max_single) { - skb->dev = lowpan_dev_info(ldev)->wdev; + skb->dev = lowpan_802154_dev(ldev)->wdev; ldev->stats.tx_packets++; ldev->stats.tx_bytes += dgram_size; return dev_queue_xmit(skb); -- 2.8.0 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [PATCH bluetooth-next 05/11] 6lowpan: change naming for lowpan private data 2016-04-11 9:04 ` [PATCH bluetooth-next 05/11] 6lowpan: change naming for lowpan private data Alexander Aring @ 2016-04-11 16:54 ` Stefan Schmidt 0 siblings, 0 replies; 18+ messages in thread From: Stefan Schmidt @ 2016-04-11 16:54 UTC (permalink / raw) To: Alexander Aring, linux-wpan; +Cc: kernel, jukka.rissanen Hello. On 11/04/16 11:04, Alexander Aring wrote: > This patch changes the naming for interface private data for lowpan > intefaces. The current private data scheme is: > > ------------------------------------------------- > | 6LoWPAN Generic | LinkLayer 6LoWPAN | > ------------------------------------------------- > > the current naming schemes are: > > - 6LoWPAN Generic: > - lowpan_priv > - LinkLayer 6LoWPAN: > - BTLE > - lowpan_dev > - 802.15.4: > - lowpan_dev_info > > the new naming scheme with this patch will be: > > - 6LoWPAN Generic: > - lowpan_dev > - LinkLayer 6LoWPAN: > - BTLE > - lowpan_btle_dev > - 802.15.4: > - lowpan_802154_dev Good to get this fixed. Was pretty confusing sometimes. :) > Signed-off-by: Alexander Aring<aar@pengutronix.de> > --- > include/net/6lowpan.h | 6 +-- > net/6lowpan/core.c | 8 ++-- > net/6lowpan/debugfs.c | 22 +++++----- > net/6lowpan/iphc.c | 38 +++++++++--------- > net/6lowpan/nhc_udp.c | 2 +- > net/bluetooth/6lowpan.c | 82 ++++++++++++++++++++------------------ > net/ieee802154/6lowpan/6lowpan_i.h | 6 +-- > net/ieee802154/6lowpan/core.c | 6 +-- > net/ieee802154/6lowpan/tx.c | 14 +++---- > 9 files changed, 94 insertions(+), 90 deletions(-) > > diff --git a/include/net/6lowpan.h b/include/net/6lowpan.h > index da3a77d..f204664 100644 > --- a/include/net/6lowpan.h > +++ b/include/net/6lowpan.h > @@ -93,7 +93,7 @@ static inline bool lowpan_is_iphc(u8 dispatch) > } > > #define LOWPAN_PRIV_SIZE(llpriv_size) \ > - (sizeof(struct lowpan_priv) + llpriv_size) > + (sizeof(struct lowpan_dev) + llpriv_size) > > enum lowpan_lltypes { > LOWPAN_LLTYPE_BTLE, > @@ -129,7 +129,7 @@ lowpan_iphc_ctx_is_compression(const struct lowpan_iphc_ctx *ctx) > return test_bit(LOWPAN_IPHC_CTX_FLAG_COMPRESSION, &ctx->flags); > } > > -struct lowpan_priv { > +struct lowpan_dev { > enum lowpan_lltypes lltype; > struct dentry *iface_debugfs; > struct lowpan_iphc_ctx_table ctx; > @@ -139,7 +139,7 @@ struct lowpan_priv { > }; > > static inline > -struct lowpan_priv *lowpan_priv(const struct net_device *dev) > +struct lowpan_dev *lowpan_dev(const struct net_device *dev) > { > return netdev_priv(dev); > } > diff --git a/net/6lowpan/core.c b/net/6lowpan/core.c > index 34e44c0..7a240b3 100644 > --- a/net/6lowpan/core.c > +++ b/net/6lowpan/core.c > @@ -27,11 +27,11 @@ int lowpan_register_netdevice(struct net_device *dev, > dev->mtu = IPV6_MIN_MTU; > dev->priv_flags |= IFF_NO_QUEUE; > > - lowpan_priv(dev)->lltype = lltype; > + lowpan_dev(dev)->lltype = lltype; > > - spin_lock_init(&lowpan_priv(dev)->ctx.lock); > + spin_lock_init(&lowpan_dev(dev)->ctx.lock); > for (i = 0; i < LOWPAN_IPHC_CTX_TABLE_SIZE; i++) > - lowpan_priv(dev)->ctx.table[i].id = i; > + lowpan_dev(dev)->ctx.table[i].id = i; > > ret = register_netdevice(dev); > if (ret < 0) > @@ -85,7 +85,7 @@ static int lowpan_event(struct notifier_block *unused, > case NETDEV_DOWN: > for (i = 0; i < LOWPAN_IPHC_CTX_TABLE_SIZE; i++) > clear_bit(LOWPAN_IPHC_CTX_FLAG_ACTIVE, > - &lowpan_priv(dev)->ctx.table[i].flags); > + &lowpan_dev(dev)->ctx.table[i].flags); > break; > default: > return NOTIFY_DONE; > diff --git a/net/6lowpan/debugfs.c b/net/6lowpan/debugfs.c > index 0793a81..acbaa3d 100644 > --- a/net/6lowpan/debugfs.c > +++ b/net/6lowpan/debugfs.c > @@ -172,7 +172,7 @@ static const struct file_operations lowpan_ctx_pfx_fops = { > static int lowpan_dev_debugfs_ctx_init(struct net_device *dev, > struct dentry *ctx, u8 id) > { > - struct lowpan_priv *lpriv = lowpan_priv(dev); > + struct lowpan_dev *ldev = lowpan_dev(dev); > struct dentry *dentry, *root; > char buf[32]; > > @@ -185,25 +185,25 @@ static int lowpan_dev_debugfs_ctx_init(struct net_device *dev, > return -EINVAL; > > dentry = debugfs_create_file("active", 0644, root, > - &lpriv->ctx.table[id], > + &ldev->ctx.table[id], > &lowpan_ctx_flag_active_fops); > if (!dentry) > return -EINVAL; > > dentry = debugfs_create_file("compression", 0644, root, > - &lpriv->ctx.table[id], > + &ldev->ctx.table[id], > &lowpan_ctx_flag_c_fops); > if (!dentry) > return -EINVAL; > > dentry = debugfs_create_file("prefix", 0644, root, > - &lpriv->ctx.table[id], > + &ldev->ctx.table[id], > &lowpan_ctx_pfx_fops); > if (!dentry) > return -EINVAL; > > dentry = debugfs_create_file("prefix_len", 0644, root, > - &lpriv->ctx.table[id], > + &ldev->ctx.table[id], > &lowpan_ctx_plen_fops); > if (!dentry) > return -EINVAL; > @@ -247,21 +247,21 @@ static const struct file_operations lowpan_context_fops = { > > int lowpan_dev_debugfs_init(struct net_device *dev) > { > - struct lowpan_priv *lpriv = lowpan_priv(dev); > + struct lowpan_dev *ldev = lowpan_dev(dev); > struct dentry *contexts, *dentry; > int ret, i; > > /* creating the root */ > - lpriv->iface_debugfs = debugfs_create_dir(dev->name, lowpan_debugfs); > - if (!lpriv->iface_debugfs) > + ldev->iface_debugfs = debugfs_create_dir(dev->name, lowpan_debugfs); > + if (!ldev->iface_debugfs) > goto fail; > > - contexts = debugfs_create_dir("contexts", lpriv->iface_debugfs); > + contexts = debugfs_create_dir("contexts", ldev->iface_debugfs); > if (!contexts) > goto remove_root; > > dentry = debugfs_create_file("show", 0644, contexts, > - &lowpan_priv(dev)->ctx, > + &lowpan_dev(dev)->ctx, > &lowpan_context_fops); > if (!dentry) > goto remove_root; > @@ -282,7 +282,7 @@ fail: > > void lowpan_dev_debugfs_exit(struct net_device *dev) > { > - debugfs_remove_recursive(lowpan_priv(dev)->iface_debugfs); > + debugfs_remove_recursive(lowpan_dev(dev)->iface_debugfs); > } > > int __init lowpan_debugfs_init(void) > diff --git a/net/6lowpan/iphc.c b/net/6lowpan/iphc.c > index 68c80f3..5fb764e 100644 > --- a/net/6lowpan/iphc.c > +++ b/net/6lowpan/iphc.c > @@ -207,7 +207,7 @@ static inline void iphc_uncompress_802154_lladdr(struct in6_addr *ipaddr, > static struct lowpan_iphc_ctx * > lowpan_iphc_ctx_get_by_id(const struct net_device *dev, u8 id) > { > - struct lowpan_iphc_ctx *ret = &lowpan_priv(dev)->ctx.table[id]; > + struct lowpan_iphc_ctx *ret = &lowpan_dev(dev)->ctx.table[id]; > > if (!lowpan_iphc_ctx_is_active(ret)) > return NULL; > @@ -219,7 +219,7 @@ static struct lowpan_iphc_ctx * > lowpan_iphc_ctx_get_by_addr(const struct net_device *dev, > const struct in6_addr *addr) > { > - struct lowpan_iphc_ctx *table = lowpan_priv(dev)->ctx.table; > + struct lowpan_iphc_ctx *table = lowpan_dev(dev)->ctx.table; > struct lowpan_iphc_ctx *ret = NULL; > struct in6_addr addr_pfx; > u8 addr_plen; > @@ -263,7 +263,7 @@ static struct lowpan_iphc_ctx * > lowpan_iphc_ctx_get_by_mcast_addr(const struct net_device *dev, > const struct in6_addr *addr) > { > - struct lowpan_iphc_ctx *table = lowpan_priv(dev)->ctx.table; > + struct lowpan_iphc_ctx *table = lowpan_dev(dev)->ctx.table; > struct lowpan_iphc_ctx *ret = NULL; > struct in6_addr addr_mcast, network_pfx = {}; > int i; > @@ -332,7 +332,7 @@ static int uncompress_addr(struct sk_buff *skb, const struct net_device *dev, > case LOWPAN_IPHC_SAM_11: > case LOWPAN_IPHC_DAM_11: > fail = false; > - switch (lowpan_priv(dev)->lltype) { > + switch (lowpan_dev(dev)->lltype) { > case LOWPAN_LLTYPE_IEEE802154: > iphc_uncompress_802154_lladdr(ipaddr, lladdr); > break; > @@ -393,7 +393,7 @@ static int uncompress_ctx_addr(struct sk_buff *skb, > case LOWPAN_IPHC_SAM_11: > case LOWPAN_IPHC_DAM_11: > fail = false; > - switch (lowpan_priv(dev)->lltype) { > + switch (lowpan_dev(dev)->lltype) { > case LOWPAN_LLTYPE_IEEE802154: > iphc_uncompress_802154_lladdr(ipaddr, lladdr); > break; > @@ -657,17 +657,17 @@ int lowpan_header_decompress(struct sk_buff *skb, const struct net_device *dev, > } > > if (iphc1 & LOWPAN_IPHC_SAC) { > - spin_lock_bh(&lowpan_priv(dev)->ctx.lock); > + spin_lock_bh(&lowpan_dev(dev)->ctx.lock); > ci = lowpan_iphc_ctx_get_by_id(dev, LOWPAN_IPHC_CID_SCI(cid)); > if (!ci) { > - spin_unlock_bh(&lowpan_priv(dev)->ctx.lock); > + spin_unlock_bh(&lowpan_dev(dev)->ctx.lock); > return -EINVAL; > } > > pr_debug("SAC bit is set. Handle context based source address.\n"); > err = uncompress_ctx_addr(skb, dev, ci, &hdr.saddr, > iphc1 & LOWPAN_IPHC_SAM_MASK, saddr); > - spin_unlock_bh(&lowpan_priv(dev)->ctx.lock); > + spin_unlock_bh(&lowpan_dev(dev)->ctx.lock); > } else { > /* Source address uncompression */ > pr_debug("source address stateless compression\n"); > @@ -681,10 +681,10 @@ int lowpan_header_decompress(struct sk_buff *skb, const struct net_device *dev, > > switch (iphc1 & (LOWPAN_IPHC_M | LOWPAN_IPHC_DAC)) { > case LOWPAN_IPHC_M | LOWPAN_IPHC_DAC: > - spin_lock_bh(&lowpan_priv(dev)->ctx.lock); > + spin_lock_bh(&lowpan_dev(dev)->ctx.lock); > ci = lowpan_iphc_ctx_get_by_id(dev, LOWPAN_IPHC_CID_DCI(cid)); > if (!ci) { > - spin_unlock_bh(&lowpan_priv(dev)->ctx.lock); > + spin_unlock_bh(&lowpan_dev(dev)->ctx.lock); > return -EINVAL; > } > > @@ -693,7 +693,7 @@ int lowpan_header_decompress(struct sk_buff *skb, const struct net_device *dev, > err = lowpan_uncompress_multicast_ctx_daddr(skb, ci, > &hdr.daddr, > iphc1 & LOWPAN_IPHC_DAM_MASK); > - spin_unlock_bh(&lowpan_priv(dev)->ctx.lock); > + spin_unlock_bh(&lowpan_dev(dev)->ctx.lock); > break; > case LOWPAN_IPHC_M: > /* multicast */ > @@ -701,10 +701,10 @@ int lowpan_header_decompress(struct sk_buff *skb, const struct net_device *dev, > iphc1 & LOWPAN_IPHC_DAM_MASK); > break; > case LOWPAN_IPHC_DAC: > - spin_lock_bh(&lowpan_priv(dev)->ctx.lock); > + spin_lock_bh(&lowpan_dev(dev)->ctx.lock); > ci = lowpan_iphc_ctx_get_by_id(dev, LOWPAN_IPHC_CID_DCI(cid)); > if (!ci) { > - spin_unlock_bh(&lowpan_priv(dev)->ctx.lock); > + spin_unlock_bh(&lowpan_dev(dev)->ctx.lock); > return -EINVAL; > } > > @@ -712,7 +712,7 @@ int lowpan_header_decompress(struct sk_buff *skb, const struct net_device *dev, > pr_debug("DAC bit is set. Handle context based destination address.\n"); > err = uncompress_ctx_addr(skb, dev, ci, &hdr.daddr, > iphc1 & LOWPAN_IPHC_DAM_MASK, daddr); > - spin_unlock_bh(&lowpan_priv(dev)->ctx.lock); > + spin_unlock_bh(&lowpan_dev(dev)->ctx.lock); > break; > default: > err = uncompress_addr(skb, dev, &hdr.daddr, > @@ -736,7 +736,7 @@ int lowpan_header_decompress(struct sk_buff *skb, const struct net_device *dev, > return err; > } > > - switch (lowpan_priv(dev)->lltype) { > + switch (lowpan_dev(dev)->lltype) { > case LOWPAN_LLTYPE_IEEE802154: > if (lowpan_802154_cb(skb)->d_size) > hdr.payload_len = htons(lowpan_802154_cb(skb)->d_size - > @@ -1033,7 +1033,7 @@ int lowpan_header_compress(struct sk_buff *skb, const struct net_device *dev, > skb->data, skb->len); > > ipv6_daddr_type = ipv6_addr_type(&hdr->daddr); > - spin_lock_bh(&lowpan_priv(dev)->ctx.lock); > + spin_lock_bh(&lowpan_dev(dev)->ctx.lock); > if (ipv6_daddr_type & IPV6_ADDR_MULTICAST) > dci = lowpan_iphc_ctx_get_by_mcast_addr(dev, &hdr->daddr); > else > @@ -1042,15 +1042,15 @@ int lowpan_header_compress(struct sk_buff *skb, const struct net_device *dev, > memcpy(&dci_entry, dci, sizeof(*dci)); > cid |= dci->id; > } > - spin_unlock_bh(&lowpan_priv(dev)->ctx.lock); > + spin_unlock_bh(&lowpan_dev(dev)->ctx.lock); > > - spin_lock_bh(&lowpan_priv(dev)->ctx.lock); > + spin_lock_bh(&lowpan_dev(dev)->ctx.lock); > sci = lowpan_iphc_ctx_get_by_addr(dev, &hdr->saddr); > if (sci) { > memcpy(&sci_entry, sci, sizeof(*sci)); > cid |= (sci->id << 4); > } > - spin_unlock_bh(&lowpan_priv(dev)->ctx.lock); > + spin_unlock_bh(&lowpan_dev(dev)->ctx.lock); > > /* if cid is zero it will be compressed */ > if (cid) { > diff --git a/net/6lowpan/nhc_udp.c b/net/6lowpan/nhc_udp.c > index 69537a2..225d919 100644 > --- a/net/6lowpan/nhc_udp.c > +++ b/net/6lowpan/nhc_udp.c > @@ -91,7 +91,7 @@ static int udp_uncompress(struct sk_buff *skb, size_t needed) > * here, we obtain the hint from the remaining size of the > * frame > */ > - switch (lowpan_priv(skb->dev)->lltype) { > + switch (lowpan_dev(skb->dev)->lltype) { > case LOWPAN_LLTYPE_IEEE802154: > if (lowpan_802154_cb(skb)->d_size) > uh.len = htons(lowpan_802154_cb(skb)->d_size - > diff --git a/net/bluetooth/6lowpan.c b/net/bluetooth/6lowpan.c > index 8a4cc2f..38e82dd 100644 > --- a/net/bluetooth/6lowpan.c > +++ b/net/bluetooth/6lowpan.c > @@ -68,7 +68,7 @@ struct lowpan_peer { > struct in6_addr peer_addr; > }; > > -struct lowpan_dev { > +struct lowpan_btle_dev { > struct list_head list; > > struct hci_dev *hdev; > @@ -80,18 +80,21 @@ struct lowpan_dev { > struct delayed_work notify_peers; > }; > > -static inline struct lowpan_dev *lowpan_dev(const struct net_device *netdev) > +static inline struct lowpan_btle_dev * > +lowpan_btle_dev(const struct net_device *netdev) > { > - return (struct lowpan_dev *)lowpan_priv(netdev)->priv; > + return (struct lowpan_btle_dev *)lowpan_dev(netdev)->priv; > } > > -static inline void peer_add(struct lowpan_dev *dev, struct lowpan_peer *peer) > +static inline void peer_add(struct lowpan_btle_dev *dev, > + struct lowpan_peer *peer) > { > list_add_rcu(&peer->list, &dev->peers); > atomic_inc(&dev->peer_count); > } > > -static inline bool peer_del(struct lowpan_dev *dev, struct lowpan_peer *peer) > +static inline bool peer_del(struct lowpan_btle_dev *dev, > + struct lowpan_peer *peer) > { > list_del_rcu(&peer->list); > kfree_rcu(peer, rcu); > @@ -106,7 +109,7 @@ static inline bool peer_del(struct lowpan_dev *dev, struct lowpan_peer *peer) > return false; > } > > -static inline struct lowpan_peer *peer_lookup_ba(struct lowpan_dev *dev, > +static inline struct lowpan_peer *peer_lookup_ba(struct lowpan_btle_dev *dev, > bdaddr_t *ba, __u8 type) > { > struct lowpan_peer *peer; > @@ -134,8 +137,8 @@ static inline struct lowpan_peer *peer_lookup_ba(struct lowpan_dev *dev, > return NULL; > } > > -static inline struct lowpan_peer *__peer_lookup_chan(struct lowpan_dev *dev, > - struct l2cap_chan *chan) > +static inline struct lowpan_peer * > +__peer_lookup_chan(struct lowpan_btle_dev *dev, struct l2cap_chan *chan) > { > struct lowpan_peer *peer; > > @@ -147,8 +150,8 @@ static inline struct lowpan_peer *__peer_lookup_chan(struct lowpan_dev *dev, > return NULL; > } > > -static inline struct lowpan_peer *__peer_lookup_conn(struct lowpan_dev *dev, > - struct l2cap_conn *conn) > +static inline struct lowpan_peer * > +__peer_lookup_conn(struct lowpan_btle_dev *dev, struct l2cap_conn *conn) > { > struct lowpan_peer *peer; > > @@ -160,7 +163,7 @@ static inline struct lowpan_peer *__peer_lookup_conn(struct lowpan_dev *dev, > return NULL; > } > > -static inline struct lowpan_peer *peer_lookup_dst(struct lowpan_dev *dev, > +static inline struct lowpan_peer *peer_lookup_dst(struct lowpan_btle_dev *dev, > struct in6_addr *daddr, > struct sk_buff *skb) > { > @@ -220,7 +223,7 @@ static inline struct lowpan_peer *peer_lookup_dst(struct lowpan_dev *dev, > > static struct lowpan_peer *lookup_peer(struct l2cap_conn *conn) > { > - struct lowpan_dev *entry; > + struct lowpan_btle_dev *entry; > struct lowpan_peer *peer = NULL; > > rcu_read_lock(); > @@ -236,10 +239,10 @@ static struct lowpan_peer *lookup_peer(struct l2cap_conn *conn) > return peer; > } > > -static struct lowpan_dev *lookup_dev(struct l2cap_conn *conn) > +static struct lowpan_btle_dev *lookup_dev(struct l2cap_conn *conn) > { > - struct lowpan_dev *entry; > - struct lowpan_dev *dev = NULL; > + struct lowpan_btle_dev *entry; > + struct lowpan_btle_dev *dev = NULL; > > rcu_read_lock(); > > @@ -270,10 +273,10 @@ static int iphc_decompress(struct sk_buff *skb, struct net_device *netdev, > struct l2cap_chan *chan) > { > const u8 *saddr, *daddr; > - struct lowpan_dev *dev; > + struct lowpan_btle_dev *dev; > struct lowpan_peer *peer; > > - dev = lowpan_dev(netdev); > + dev = lowpan_btle_dev(netdev); > > rcu_read_lock(); > peer = __peer_lookup_chan(dev, chan); > @@ -375,7 +378,7 @@ drop: > /* Packet from BT LE device */ > static int chan_recv_cb(struct l2cap_chan *chan, struct sk_buff *skb) > { > - struct lowpan_dev *dev; > + struct lowpan_btle_dev *dev; > struct lowpan_peer *peer; > int err; > > @@ -431,13 +434,13 @@ static int setup_header(struct sk_buff *skb, struct net_device *netdev, > bdaddr_t *peer_addr, u8 *peer_addr_type) > { > struct in6_addr ipv6_daddr; > - struct lowpan_dev *dev; > + struct lowpan_btle_dev *dev; > struct lowpan_peer *peer; > bdaddr_t addr, *any = BDADDR_ANY; > u8 *daddr = any->b; > int err, status = 0; > > - dev = lowpan_dev(netdev); > + dev = lowpan_btle_dev(netdev); > > memcpy(&ipv6_daddr, &lowpan_cb(skb)->addr, sizeof(ipv6_daddr)); > > @@ -543,19 +546,19 @@ static int send_pkt(struct l2cap_chan *chan, struct sk_buff *skb, > static int send_mcast_pkt(struct sk_buff *skb, struct net_device *netdev) > { > struct sk_buff *local_skb; > - struct lowpan_dev *entry; > + struct lowpan_btle_dev *entry; > int err = 0; > > rcu_read_lock(); > > list_for_each_entry_rcu(entry, &bt_6lowpan_devices, list) { > struct lowpan_peer *pentry; > - struct lowpan_dev *dev; > + struct lowpan_btle_dev *dev; > > if (entry->netdev != netdev) > continue; > > - dev = lowpan_dev(entry->netdev); > + dev = lowpan_btle_dev(entry->netdev); > > list_for_each_entry_rcu(pentry, &dev->peers, list) { > int ret; > @@ -723,8 +726,8 @@ static void ifdown(struct net_device *netdev) > > static void do_notify_peers(struct work_struct *work) > { > - struct lowpan_dev *dev = container_of(work, struct lowpan_dev, > - notify_peers.work); > + struct lowpan_btle_dev *dev = container_of(work, struct lowpan_btle_dev, > + notify_peers.work); > > netdev_notify_peers(dev->netdev); /* send neighbour adv at startup */ > } > @@ -766,7 +769,7 @@ static void set_ip_addr_bits(u8 addr_type, u8 *addr) > } > > static struct l2cap_chan *add_peer_chan(struct l2cap_chan *chan, > - struct lowpan_dev *dev) > + struct lowpan_btle_dev *dev) > { > struct lowpan_peer *peer; > > @@ -803,12 +806,12 @@ static struct l2cap_chan *add_peer_chan(struct l2cap_chan *chan, > return peer->chan; > } > > -static int setup_netdev(struct l2cap_chan *chan, struct lowpan_dev **dev) > +static int setup_netdev(struct l2cap_chan *chan, struct lowpan_btle_dev **dev) > { > struct net_device *netdev; > int err = 0; > > - netdev = alloc_netdev(LOWPAN_PRIV_SIZE(sizeof(struct lowpan_dev)), > + netdev = alloc_netdev(LOWPAN_PRIV_SIZE(sizeof(struct lowpan_btle_dev)), > IFACE_NAME_TEMPLATE, NET_NAME_UNKNOWN, > netdev_setup); > if (!netdev) > @@ -820,7 +823,7 @@ static int setup_netdev(struct l2cap_chan *chan, struct lowpan_dev **dev) > SET_NETDEV_DEV(netdev, &chan->conn->hcon->hdev->dev); > SET_NETDEV_DEVTYPE(netdev, &bt_type); > > - *dev = lowpan_dev(netdev); > + *dev = lowpan_btle_dev(netdev); > (*dev)->netdev = netdev; > (*dev)->hdev = chan->conn->hcon->hdev; > INIT_LIST_HEAD(&(*dev)->peers); > @@ -853,7 +856,7 @@ out: > > static inline void chan_ready_cb(struct l2cap_chan *chan) > { > - struct lowpan_dev *dev; > + struct lowpan_btle_dev *dev; > > dev = lookup_dev(chan->conn); > > @@ -890,8 +893,9 @@ static inline struct l2cap_chan *chan_new_conn_cb(struct l2cap_chan *pchan) > > static void delete_netdev(struct work_struct *work) > { > - struct lowpan_dev *entry = container_of(work, struct lowpan_dev, > - delete_netdev); > + struct lowpan_btle_dev *entry = container_of(work, > + struct lowpan_btle_dev, > + delete_netdev); > > lowpan_unregister_netdev(entry->netdev); > > @@ -900,8 +904,8 @@ static void delete_netdev(struct work_struct *work) > > static void chan_close_cb(struct l2cap_chan *chan) > { > - struct lowpan_dev *entry; > - struct lowpan_dev *dev = NULL; > + struct lowpan_btle_dev *entry; > + struct lowpan_btle_dev *dev = NULL; > struct lowpan_peer *peer; > int err = -ENOENT; > bool last = false, remove = true; > @@ -921,7 +925,7 @@ static void chan_close_cb(struct l2cap_chan *chan) > spin_lock(&devices_lock); > > list_for_each_entry_rcu(entry, &bt_6lowpan_devices, list) { > - dev = lowpan_dev(entry->netdev); > + dev = lowpan_btle_dev(entry->netdev); > peer = __peer_lookup_chan(dev, chan); > if (peer) { > last = peer_del(dev, peer); > @@ -1131,7 +1135,7 @@ static int get_l2cap_conn(char *buf, bdaddr_t *addr, u8 *addr_type, > > static void disconnect_all_peers(void) > { > - struct lowpan_dev *entry; > + struct lowpan_btle_dev *entry; > struct lowpan_peer *peer, *tmp_peer, *new_peer; > struct list_head peers; > > @@ -1291,7 +1295,7 @@ static ssize_t lowpan_control_write(struct file *fp, > > static int lowpan_control_show(struct seq_file *f, void *ptr) > { > - struct lowpan_dev *entry; > + struct lowpan_btle_dev *entry; > struct lowpan_peer *peer; > > spin_lock(&devices_lock); > @@ -1322,7 +1326,7 @@ static const struct file_operations lowpan_control_fops = { > > static void disconnect_devices(void) > { > - struct lowpan_dev *entry, *tmp, *new_dev; > + struct lowpan_btle_dev *entry, *tmp, *new_dev; > struct list_head devices; > > INIT_LIST_HEAD(&devices); > @@ -1360,7 +1364,7 @@ static int device_event(struct notifier_block *unused, > unsigned long event, void *ptr) > { > struct net_device *netdev = netdev_notifier_info_to_dev(ptr); > - struct lowpan_dev *entry; > + struct lowpan_btle_dev *entry; > > if (netdev->type != ARPHRD_6LOWPAN) > return NOTIFY_DONE; > diff --git a/net/ieee802154/6lowpan/6lowpan_i.h b/net/ieee802154/6lowpan/6lowpan_i.h > index b4092a9..b02b74d 100644 > --- a/net/ieee802154/6lowpan/6lowpan_i.h > +++ b/net/ieee802154/6lowpan/6lowpan_i.h > @@ -48,15 +48,15 @@ static inline u32 ieee802154_addr_hash(const struct ieee802154_addr *a) > } > > /* private device info */ > -struct lowpan_dev_info { > +struct lowpan_802154_dev { > struct net_device *wdev; /* wpan device ptr */ > u16 fragment_tag; > }; > > static inline struct > -lowpan_dev_info *lowpan_dev_info(const struct net_device *dev) > +lowpan_802154_dev *lowpan_802154_dev(const struct net_device *dev) > { > - return (struct lowpan_dev_info *)lowpan_priv(dev)->priv; > + return (struct lowpan_802154_dev *)lowpan_dev(dev)->priv; > } > > int lowpan_frag_rcv(struct sk_buff *skb, const u8 frag_type); > diff --git a/net/ieee802154/6lowpan/core.c b/net/ieee802154/6lowpan/core.c > index 0023c90..dd085db 100644 > --- a/net/ieee802154/6lowpan/core.c > +++ b/net/ieee802154/6lowpan/core.c > @@ -148,7 +148,7 @@ static int lowpan_newlink(struct net *src_net, struct net_device *ldev, > return -EBUSY; > } > > - lowpan_dev_info(ldev)->wdev = wdev; > + lowpan_802154_dev(ldev)->wdev = wdev; > /* Set the lowpan hardware address to the wpan hardware address. */ > memcpy(ldev->dev_addr, wdev->dev_addr, IEEE802154_ADDR_LEN); > /* We need headroom for possible wpan_dev_hard_header call and tailroom > @@ -173,7 +173,7 @@ static int lowpan_newlink(struct net *src_net, struct net_device *ldev, > > static void lowpan_dellink(struct net_device *ldev, struct list_head *head) > { > - struct net_device *wdev = lowpan_dev_info(ldev)->wdev; > + struct net_device *wdev = lowpan_802154_dev(ldev)->wdev; > > ASSERT_RTNL(); > > @@ -184,7 +184,7 @@ static void lowpan_dellink(struct net_device *ldev, struct list_head *head) > > static struct rtnl_link_ops lowpan_link_ops __read_mostly = { > .kind = "lowpan", > - .priv_size = LOWPAN_PRIV_SIZE(sizeof(struct lowpan_dev_info)), > + .priv_size = LOWPAN_PRIV_SIZE(sizeof(struct lowpan_802154_dev)), > .setup = lowpan_setup, > .newlink = lowpan_newlink, > .dellink = lowpan_dellink, > diff --git a/net/ieee802154/6lowpan/tx.c b/net/ieee802154/6lowpan/tx.c > index d4353fa..e459afd 100644 > --- a/net/ieee802154/6lowpan/tx.c > +++ b/net/ieee802154/6lowpan/tx.c > @@ -84,7 +84,7 @@ static struct sk_buff* > lowpan_alloc_frag(struct sk_buff *skb, int size, > const struct ieee802154_hdr *master_hdr, bool frag1) > { > - struct net_device *wdev = lowpan_dev_info(skb->dev)->wdev; > + struct net_device *wdev = lowpan_802154_dev(skb->dev)->wdev; > struct sk_buff *frag; > int rc; > > @@ -148,8 +148,8 @@ lowpan_xmit_fragmented(struct sk_buff *skb, struct net_device *ldev, > int frag_cap, frag_len, payload_cap, rc; > int skb_unprocessed, skb_offset; > > - frag_tag = htons(lowpan_dev_info(ldev)->fragment_tag); > - lowpan_dev_info(ldev)->fragment_tag++; > + frag_tag = htons(lowpan_802154_dev(ldev)->fragment_tag); > + lowpan_802154_dev(ldev)->fragment_tag++; > > frag_hdr[0] = LOWPAN_DISPATCH_FRAG1 | ((dgram_size >> 8) & 0x07); > frag_hdr[1] = dgram_size & 0xff; > @@ -208,7 +208,7 @@ err: > static int lowpan_header(struct sk_buff *skb, struct net_device *ldev, > u16 *dgram_size, u16 *dgram_offset) > { > - struct wpan_dev *wpan_dev = lowpan_dev_info(ldev)->wdev->ieee802154_ptr; > + struct wpan_dev *wpan_dev = lowpan_802154_dev(ldev)->wdev->ieee802154_ptr; > struct ieee802154_addr sa, da; > struct ieee802154_mac_cb *cb = mac_cb_init(skb); > struct lowpan_addr_info info; > @@ -248,8 +248,8 @@ static int lowpan_header(struct sk_buff *skb, struct net_device *ldev, > cb->ackreq = wpan_dev->ackreq; > } > > - return wpan_dev_hard_header(skb, lowpan_dev_info(ldev)->wdev, &da, &sa, > - 0); > + return wpan_dev_hard_header(skb, lowpan_802154_dev(ldev)->wdev, &da, > + &sa, 0); > } > > netdev_tx_t lowpan_xmit(struct sk_buff *skb, struct net_device *ldev) > @@ -283,7 +283,7 @@ netdev_tx_t lowpan_xmit(struct sk_buff *skb, struct net_device *ldev) > max_single = ieee802154_max_payload(&wpan_hdr); > > if (skb_tail_pointer(skb) - skb_network_header(skb) <= max_single) { > - skb->dev = lowpan_dev_info(ldev)->wdev; > + skb->dev = lowpan_802154_dev(ldev)->wdev; > ldev->stats.tx_packets++; > ldev->stats.tx_bytes += dgram_size; > return dev_queue_xmit(skb); Reviewed-by: Stefan Schmidt<stefan@osg.samsung.com> regards Stefan Schmidt ^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH bluetooth-next 06/11] 6lowpan: move lowpan_802154_dev to 6lowpan 2016-04-11 9:04 [PATCH bluetooth-next 00/11] 6lowpan: prepare for 6lowpan ndisc implementation Alexander Aring ` (4 preceding siblings ...) 2016-04-11 9:04 ` [PATCH bluetooth-next 05/11] 6lowpan: change naming for lowpan private data Alexander Aring @ 2016-04-11 9:04 ` Alexander Aring 2016-04-11 9:04 ` [PATCH bluetooth-next 07/11] 6lowpan: iphc: rename add lowpan prefix Alexander Aring ` (6 subsequent siblings) 12 siblings, 0 replies; 18+ messages in thread From: Alexander Aring @ 2016-04-11 9:04 UTC (permalink / raw) To: linux-wpan; +Cc: kernel, jukka.rissanen, Alexander Aring This patch moves the 802.15.4 link layer specific structures to generic 6lowpan. This is necessary for special 802.15.4 6lowpan handling in 6lowpan generic layer. Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com> Signed-off-by: Alexander Aring <aar@pengutronix.de> --- include/net/6lowpan.h | 12 ++++++++++++ net/ieee802154/6lowpan/6lowpan_i.h | 12 ------------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/include/net/6lowpan.h b/include/net/6lowpan.h index f204664..a0c01f5 100644 --- a/include/net/6lowpan.h +++ b/include/net/6lowpan.h @@ -144,6 +144,18 @@ struct lowpan_dev *lowpan_dev(const struct net_device *dev) return netdev_priv(dev); } +/* private device info */ +struct lowpan_802154_dev { + struct net_device *wdev; /* wpan device ptr */ + u16 fragment_tag; +}; + +static inline struct +lowpan_802154_dev *lowpan_802154_dev(const struct net_device *dev) +{ + return (struct lowpan_802154_dev *)lowpan_dev(dev)->priv; +} + struct lowpan_802154_cb { u16 d_tag; unsigned int d_size; diff --git a/net/ieee802154/6lowpan/6lowpan_i.h b/net/ieee802154/6lowpan/6lowpan_i.h index b02b74d..5ac7789 100644 --- a/net/ieee802154/6lowpan/6lowpan_i.h +++ b/net/ieee802154/6lowpan/6lowpan_i.h @@ -47,18 +47,6 @@ static inline u32 ieee802154_addr_hash(const struct ieee802154_addr *a) } } -/* private device info */ -struct lowpan_802154_dev { - struct net_device *wdev; /* wpan device ptr */ - u16 fragment_tag; -}; - -static inline struct -lowpan_802154_dev *lowpan_802154_dev(const struct net_device *dev) -{ - return (struct lowpan_802154_dev *)lowpan_dev(dev)->priv; -} - int lowpan_frag_rcv(struct sk_buff *skb, const u8 frag_type); void lowpan_net_frag_exit(void); int lowpan_net_frag_init(void); -- 2.8.0 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH bluetooth-next 07/11] 6lowpan: iphc: rename add lowpan prefix 2016-04-11 9:04 [PATCH bluetooth-next 00/11] 6lowpan: prepare for 6lowpan ndisc implementation Alexander Aring ` (5 preceding siblings ...) 2016-04-11 9:04 ` [PATCH bluetooth-next 06/11] 6lowpan: move lowpan_802154_dev to 6lowpan Alexander Aring @ 2016-04-11 9:04 ` Alexander Aring 2016-04-11 9:04 ` [PATCH bluetooth-next 08/11] 6lowpan: iphc: remove unnecessary zero data Alexander Aring ` (5 subsequent siblings) 12 siblings, 0 replies; 18+ messages in thread From: Alexander Aring @ 2016-04-11 9:04 UTC (permalink / raw) To: linux-wpan; +Cc: kernel, jukka.rissanen, Alexander Aring This patch adds a lowpan prefix to each functions which doesn't have such prefix currently. Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com> Signed-off-by: Alexander Aring <aar@pengutronix.de> --- net/6lowpan/iphc.c | 56 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 31 insertions(+), 25 deletions(-) diff --git a/net/6lowpan/iphc.c b/net/6lowpan/iphc.c index 5fb764e..66b4139 100644 --- a/net/6lowpan/iphc.c +++ b/net/6lowpan/iphc.c @@ -156,8 +156,8 @@ #define LOWPAN_IPHC_CID_DCI(cid) (cid & 0x0f) #define LOWPAN_IPHC_CID_SCI(cid) ((cid & 0xf0) >> 4) -static inline void iphc_uncompress_eui64_lladdr(struct in6_addr *ipaddr, - const void *lladdr) +static inline void lowpan_iphc_uncompress_eui64_lladdr(struct in6_addr *ipaddr, + const void *lladdr) { /* fe:80::XXXX:XXXX:XXXX:XXXX * \_________________/ @@ -172,8 +172,9 @@ static inline void iphc_uncompress_eui64_lladdr(struct in6_addr *ipaddr, ipaddr->s6_addr[8] ^= 0x02; } -static inline void iphc_uncompress_802154_lladdr(struct in6_addr *ipaddr, - const void *lladdr) +static inline void +lowpan_iphc_uncompress_802154_lladdr(struct in6_addr *ipaddr, + const void *lladdr) { const struct ieee802154_addr *addr = lladdr; u8 eui64[EUI64_ADDR_LEN] = { }; @@ -181,7 +182,7 @@ static inline void iphc_uncompress_802154_lladdr(struct in6_addr *ipaddr, switch (addr->mode) { case IEEE802154_ADDR_LONG: ieee802154_le64_to_be64(eui64, &addr->extended_addr); - iphc_uncompress_eui64_lladdr(ipaddr, eui64); + lowpan_iphc_uncompress_eui64_lladdr(ipaddr, eui64); break; case IEEE802154_ADDR_SHORT: /* fe:80::ff:fe00:XXXX @@ -301,9 +302,10 @@ lowpan_iphc_ctx_get_by_mcast_addr(const struct net_device *dev, * * address_mode is the masked value for sam or dam value */ -static int uncompress_addr(struct sk_buff *skb, const struct net_device *dev, - struct in6_addr *ipaddr, u8 address_mode, - const void *lladdr) +static int lowpan_iphc_uncompress_addr(struct sk_buff *skb, + const struct net_device *dev, + struct in6_addr *ipaddr, + u8 address_mode, const void *lladdr) { bool fail; @@ -334,10 +336,10 @@ static int uncompress_addr(struct sk_buff *skb, const struct net_device *dev, fail = false; switch (lowpan_dev(dev)->lltype) { case LOWPAN_LLTYPE_IEEE802154: - iphc_uncompress_802154_lladdr(ipaddr, lladdr); + lowpan_iphc_uncompress_802154_lladdr(ipaddr, lladdr); break; default: - iphc_uncompress_eui64_lladdr(ipaddr, lladdr); + lowpan_iphc_uncompress_eui64_lladdr(ipaddr, lladdr); break; } break; @@ -360,11 +362,11 @@ static int uncompress_addr(struct sk_buff *skb, const struct net_device *dev, /* Uncompress address function for source context * based address(non-multicast). */ -static int uncompress_ctx_addr(struct sk_buff *skb, - const struct net_device *dev, - const struct lowpan_iphc_ctx *ctx, - struct in6_addr *ipaddr, u8 address_mode, - const void *lladdr) +static int lowpan_iphc_uncompress_ctx_addr(struct sk_buff *skb, + const struct net_device *dev, + const struct lowpan_iphc_ctx *ctx, + struct in6_addr *ipaddr, + u8 address_mode, const void *lladdr) { bool fail; @@ -395,10 +397,10 @@ static int uncompress_ctx_addr(struct sk_buff *skb, fail = false; switch (lowpan_dev(dev)->lltype) { case LOWPAN_LLTYPE_IEEE802154: - iphc_uncompress_802154_lladdr(ipaddr, lladdr); + lowpan_iphc_uncompress_802154_lladdr(ipaddr, lladdr); break; default: - iphc_uncompress_eui64_lladdr(ipaddr, lladdr); + lowpan_iphc_uncompress_eui64_lladdr(ipaddr, lladdr); break; } ipv6_addr_prefix_copy(ipaddr, &ctx->pfx, ctx->plen); @@ -665,14 +667,16 @@ int lowpan_header_decompress(struct sk_buff *skb, const struct net_device *dev, } pr_debug("SAC bit is set. Handle context based source address.\n"); - err = uncompress_ctx_addr(skb, dev, ci, &hdr.saddr, - iphc1 & LOWPAN_IPHC_SAM_MASK, saddr); + err = lowpan_iphc_uncompress_ctx_addr(skb, dev, ci, &hdr.saddr, + iphc1 & LOWPAN_IPHC_SAM_MASK, + saddr); spin_unlock_bh(&lowpan_dev(dev)->ctx.lock); } else { /* Source address uncompression */ pr_debug("source address stateless compression\n"); - err = uncompress_addr(skb, dev, &hdr.saddr, - iphc1 & LOWPAN_IPHC_SAM_MASK, saddr); + err = lowpan_iphc_uncompress_addr(skb, dev, &hdr.saddr, + iphc1 & LOWPAN_IPHC_SAM_MASK, + saddr); } /* Check on error of previous branch */ @@ -710,13 +714,15 @@ int lowpan_header_decompress(struct sk_buff *skb, const struct net_device *dev, /* Destination address context based uncompression */ pr_debug("DAC bit is set. Handle context based destination address.\n"); - err = uncompress_ctx_addr(skb, dev, ci, &hdr.daddr, - iphc1 & LOWPAN_IPHC_DAM_MASK, daddr); + err = lowpan_iphc_uncompress_ctx_addr(skb, dev, ci, &hdr.daddr, + iphc1 & LOWPAN_IPHC_DAM_MASK, + daddr); spin_unlock_bh(&lowpan_dev(dev)->ctx.lock); break; default: - err = uncompress_addr(skb, dev, &hdr.daddr, - iphc1 & LOWPAN_IPHC_DAM_MASK, daddr); + err = lowpan_iphc_uncompress_addr(skb, dev, &hdr.daddr, + iphc1 & LOWPAN_IPHC_DAM_MASK, + daddr); pr_debug("dest: stateless compression mode %d dest %pI6c\n", iphc1 & LOWPAN_IPHC_DAM_MASK, &hdr.daddr); break; -- 2.8.0 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH bluetooth-next 08/11] 6lowpan: iphc: remove unnecessary zero data 2016-04-11 9:04 [PATCH bluetooth-next 00/11] 6lowpan: prepare for 6lowpan ndisc implementation Alexander Aring ` (6 preceding siblings ...) 2016-04-11 9:04 ` [PATCH bluetooth-next 07/11] 6lowpan: iphc: rename add lowpan prefix Alexander Aring @ 2016-04-11 9:04 ` Alexander Aring 2016-04-11 9:04 ` [PATCH bluetooth-next 09/11] 6lowpan: move eui64 uncompress function Alexander Aring ` (4 subsequent siblings) 12 siblings, 0 replies; 18+ messages in thread From: Alexander Aring @ 2016-04-11 9:04 UTC (permalink / raw) To: linux-wpan; +Cc: kernel, jukka.rissanen, Alexander Aring This patch removes unnecessary zero data for a stack variable. Signed-off-by: Alexander Aring <aar@pengutronix.de> --- net/6lowpan/iphc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/6lowpan/iphc.c b/net/6lowpan/iphc.c index 66b4139..2999240 100644 --- a/net/6lowpan/iphc.c +++ b/net/6lowpan/iphc.c @@ -177,7 +177,7 @@ lowpan_iphc_uncompress_802154_lladdr(struct in6_addr *ipaddr, const void *lladdr) { const struct ieee802154_addr *addr = lladdr; - u8 eui64[EUI64_ADDR_LEN] = { }; + u8 eui64[EUI64_ADDR_LEN]; switch (addr->mode) { case IEEE802154_ADDR_LONG: -- 2.8.0 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH bluetooth-next 09/11] 6lowpan: move eui64 uncompress function 2016-04-11 9:04 [PATCH bluetooth-next 00/11] 6lowpan: prepare for 6lowpan ndisc implementation Alexander Aring ` (7 preceding siblings ...) 2016-04-11 9:04 ` [PATCH bluetooth-next 08/11] 6lowpan: iphc: remove unnecessary zero data Alexander Aring @ 2016-04-11 9:04 ` Alexander Aring 2016-04-11 16:54 ` Stefan Schmidt 2016-04-11 9:04 ` [PATCH bluetooth-next 10/11] 6lowpan: add lowpan_is_ll function Alexander Aring ` (3 subsequent siblings) 12 siblings, 1 reply; 18+ messages in thread From: Alexander Aring @ 2016-04-11 9:04 UTC (permalink / raw) To: linux-wpan; +Cc: kernel, jukka.rissanen, Alexander Aring This function will be use in later functionality in other branches than generic 6lowpan, so we move it to the global 6lowpan header. Signed-off-by: Alexander Aring <aar@pengutronix.de> --- include/net/6lowpan.h | 16 ++++++++++++++++ net/6lowpan/iphc.c | 16 ---------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/include/net/6lowpan.h b/include/net/6lowpan.h index a0c01f5..04b877c 100644 --- a/include/net/6lowpan.h +++ b/include/net/6lowpan.h @@ -169,6 +169,22 @@ struct lowpan_802154_cb *lowpan_802154_cb(const struct sk_buff *skb) return (struct lowpan_802154_cb *)skb->cb; } +static inline void lowpan_iphc_uncompress_eui64_lladdr(struct in6_addr *ipaddr, + const void *lladdr) +{ + /* fe:80::XXXX:XXXX:XXXX:XXXX + * \_________________/ + * hwaddr + */ + ipaddr->s6_addr[0] = 0xFE; + ipaddr->s6_addr[1] = 0x80; + memcpy(&ipaddr->s6_addr[8], lladdr, EUI64_ADDR_LEN); + /* second bit-flip (Universe/Local) + * is done according RFC2464 + */ + ipaddr->s6_addr[8] ^= 0x02; +} + #ifdef DEBUG /* print data in line */ static inline void raw_dump_inline(const char *caller, char *msg, diff --git a/net/6lowpan/iphc.c b/net/6lowpan/iphc.c index 2999240..dff1591 100644 --- a/net/6lowpan/iphc.c +++ b/net/6lowpan/iphc.c @@ -156,22 +156,6 @@ #define LOWPAN_IPHC_CID_DCI(cid) (cid & 0x0f) #define LOWPAN_IPHC_CID_SCI(cid) ((cid & 0xf0) >> 4) -static inline void lowpan_iphc_uncompress_eui64_lladdr(struct in6_addr *ipaddr, - const void *lladdr) -{ - /* fe:80::XXXX:XXXX:XXXX:XXXX - * \_________________/ - * hwaddr - */ - ipaddr->s6_addr[0] = 0xFE; - ipaddr->s6_addr[1] = 0x80; - memcpy(&ipaddr->s6_addr[8], lladdr, EUI64_ADDR_LEN); - /* second bit-flip (Universe/Local) - * is done according RFC2464 - */ - ipaddr->s6_addr[8] ^= 0x02; -} - static inline void lowpan_iphc_uncompress_802154_lladdr(struct in6_addr *ipaddr, const void *lladdr) -- 2.8.0 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [PATCH bluetooth-next 09/11] 6lowpan: move eui64 uncompress function 2016-04-11 9:04 ` [PATCH bluetooth-next 09/11] 6lowpan: move eui64 uncompress function Alexander Aring @ 2016-04-11 16:54 ` Stefan Schmidt 0 siblings, 0 replies; 18+ messages in thread From: Stefan Schmidt @ 2016-04-11 16:54 UTC (permalink / raw) To: Alexander Aring, linux-wpan; +Cc: kernel, jukka.rissanen Hello. On 11/04/16 11:04, Alexander Aring wrote: > This function will be use in later functionality in other branches than > generic 6lowpan, so we move it to the global 6lowpan header. > > Signed-off-by: Alexander Aring<aar@pengutronix.de> > --- > include/net/6lowpan.h | 16 ++++++++++++++++ > net/6lowpan/iphc.c | 16 ---------------- > 2 files changed, 16 insertions(+), 16 deletions(-) > > diff --git a/include/net/6lowpan.h b/include/net/6lowpan.h > index a0c01f5..04b877c 100644 > --- a/include/net/6lowpan.h > +++ b/include/net/6lowpan.h > @@ -169,6 +169,22 @@ struct lowpan_802154_cb *lowpan_802154_cb(const struct sk_buff *skb) > return (struct lowpan_802154_cb *)skb->cb; > } > > +static inline void lowpan_iphc_uncompress_eui64_lladdr(struct in6_addr *ipaddr, > + const void *lladdr) > +{ > + /* fe:80::XXXX:XXXX:XXXX:XXXX > + * \_________________/ > + * hwaddr > + */ > + ipaddr->s6_addr[0] = 0xFE; > + ipaddr->s6_addr[1] = 0x80; > + memcpy(&ipaddr->s6_addr[8], lladdr, EUI64_ADDR_LEN); > + /* second bit-flip (Universe/Local) > + * is done according RFC2464 > + */ > + ipaddr->s6_addr[8] ^= 0x02; > +} > + > #ifdef DEBUG > /* print data in line */ > static inline void raw_dump_inline(const char *caller, char *msg, > diff --git a/net/6lowpan/iphc.c b/net/6lowpan/iphc.c > index 2999240..dff1591 100644 > --- a/net/6lowpan/iphc.c > +++ b/net/6lowpan/iphc.c > @@ -156,22 +156,6 @@ > #define LOWPAN_IPHC_CID_DCI(cid) (cid & 0x0f) > #define LOWPAN_IPHC_CID_SCI(cid) ((cid & 0xf0) >> 4) > > -static inline void lowpan_iphc_uncompress_eui64_lladdr(struct in6_addr *ipaddr, > - const void *lladdr) > -{ > - /* fe:80::XXXX:XXXX:XXXX:XXXX > - * \_________________/ > - * hwaddr > - */ > - ipaddr->s6_addr[0] = 0xFE; > - ipaddr->s6_addr[1] = 0x80; > - memcpy(&ipaddr->s6_addr[8], lladdr, EUI64_ADDR_LEN); > - /* second bit-flip (Universe/Local) > - * is done according RFC2464 > - */ > - ipaddr->s6_addr[8] ^= 0x02; > -} > - > static inline void > lowpan_iphc_uncompress_802154_lladdr(struct in6_addr *ipaddr, > const void *lladdr) Reviewed-by: Stefan Schmidt<stefan@osg.samsung.com> regards Stefan Schmidt ^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH bluetooth-next 10/11] 6lowpan: add lowpan_is_ll function 2016-04-11 9:04 [PATCH bluetooth-next 00/11] 6lowpan: prepare for 6lowpan ndisc implementation Alexander Aring ` (8 preceding siblings ...) 2016-04-11 9:04 ` [PATCH bluetooth-next 09/11] 6lowpan: move eui64 uncompress function Alexander Aring @ 2016-04-11 9:04 ` Alexander Aring 2016-04-11 16:55 ` Stefan Schmidt 2016-04-11 9:04 ` [PATCH bluetooth-next 11/11] 6lowpan: move mac802154 header Alexander Aring ` (2 subsequent siblings) 12 siblings, 1 reply; 18+ messages in thread From: Alexander Aring @ 2016-04-11 9:04 UTC (permalink / raw) To: linux-wpan; +Cc: kernel, jukka.rissanen, Alexander Aring This patch adds the lowpan_is_ll function, which can be used to make a special 6lowpan linklayer handling for a specific 6lowpan linklayer type. Signed-off-by: Alexander Aring <aar@pengutronix.de> --- net/6lowpan/6lowpan_i.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/net/6lowpan/6lowpan_i.h b/net/6lowpan/6lowpan_i.h index d16bb4b..97ecc27 100644 --- a/net/6lowpan/6lowpan_i.h +++ b/net/6lowpan/6lowpan_i.h @@ -3,6 +3,15 @@ #include <linux/netdevice.h> +#include <net/6lowpan.h> + +/* caller need to be sure it's dev->type is ARPHRD_6LOWPAN */ +static inline bool lowpan_is_ll(const struct net_device *dev, + enum lowpan_lltypes lltype) +{ + return lowpan_dev(dev)->lltype == lltype; +} + #ifdef CONFIG_6LOWPAN_DEBUGFS int lowpan_dev_debugfs_init(struct net_device *dev); void lowpan_dev_debugfs_exit(struct net_device *dev); -- 2.8.0 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [PATCH bluetooth-next 10/11] 6lowpan: add lowpan_is_ll function 2016-04-11 9:04 ` [PATCH bluetooth-next 10/11] 6lowpan: add lowpan_is_ll function Alexander Aring @ 2016-04-11 16:55 ` Stefan Schmidt 0 siblings, 0 replies; 18+ messages in thread From: Stefan Schmidt @ 2016-04-11 16:55 UTC (permalink / raw) To: Alexander Aring, linux-wpan; +Cc: kernel, jukka.rissanen Hello. On 11/04/16 11:04, Alexander Aring wrote: > This patch adds the lowpan_is_ll function, which can be used to make a > special 6lowpan linklayer handling for a specific 6lowpan linklayer > type. > > Signed-off-by: Alexander Aring<aar@pengutronix.de> > --- > net/6lowpan/6lowpan_i.h | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/net/6lowpan/6lowpan_i.h b/net/6lowpan/6lowpan_i.h > index d16bb4b..97ecc27 100644 > --- a/net/6lowpan/6lowpan_i.h > +++ b/net/6lowpan/6lowpan_i.h > @@ -3,6 +3,15 @@ > > #include <linux/netdevice.h> > > +#include <net/6lowpan.h> > + > +/* caller need to be sure it's dev->type is ARPHRD_6LOWPAN */ > +static inline bool lowpan_is_ll(const struct net_device *dev, > + enum lowpan_lltypes lltype) > +{ > + return lowpan_dev(dev)->lltype == lltype; > +} > + > #ifdef CONFIG_6LOWPAN_DEBUGFS > int lowpan_dev_debugfs_init(struct net_device *dev); > void lowpan_dev_debugfs_exit(struct net_device *dev); Reviewed-by: Stefan Schmidt<stefan@osg.samsung.com> regards Stefan Schmidt ^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH bluetooth-next 11/11] 6lowpan: move mac802154 header 2016-04-11 9:04 [PATCH bluetooth-next 00/11] 6lowpan: prepare for 6lowpan ndisc implementation Alexander Aring ` (9 preceding siblings ...) 2016-04-11 9:04 ` [PATCH bluetooth-next 10/11] 6lowpan: add lowpan_is_ll function Alexander Aring @ 2016-04-11 9:04 ` Alexander Aring 2016-04-11 16:55 ` Stefan Schmidt 2016-04-12 11:16 ` [PATCH bluetooth-next 00/11] 6lowpan: prepare for 6lowpan ndisc implementation Jukka Rissanen 2016-04-13 8:42 ` Marcel Holtmann 12 siblings, 1 reply; 18+ messages in thread From: Alexander Aring @ 2016-04-11 9:04 UTC (permalink / raw) To: linux-wpan; +Cc: kernel, jukka.rissanen, Alexander Aring In case of link-layer specific handling for 802.15.4 we need to cast to 802.15.4 sepcific structures. Simple add this header when include the 6lowpan header. Signed-off-by: Alexander Aring <aar@pengutronix.de> --- include/net/6lowpan.h | 3 +++ net/6lowpan/iphc.c | 3 --- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/include/net/6lowpan.h b/include/net/6lowpan.h index 04b877c..da84cf9 100644 --- a/include/net/6lowpan.h +++ b/include/net/6lowpan.h @@ -58,6 +58,9 @@ #include <net/ipv6.h> #include <net/net_namespace.h> +/* special link-layer handling */ +#include <net/mac802154.h> + #define EUI64_ADDR_LEN 8 #define LOWPAN_NHC_MAX_ID_LEN 1 diff --git a/net/6lowpan/iphc.c b/net/6lowpan/iphc.c index dff1591..8501dd5 100644 --- a/net/6lowpan/iphc.c +++ b/net/6lowpan/iphc.c @@ -53,9 +53,6 @@ #include <net/6lowpan.h> #include <net/ipv6.h> -/* special link-layer handling */ -#include <net/mac802154.h> - #include "6lowpan_i.h" #include "nhc.h" -- 2.8.0 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [PATCH bluetooth-next 11/11] 6lowpan: move mac802154 header 2016-04-11 9:04 ` [PATCH bluetooth-next 11/11] 6lowpan: move mac802154 header Alexander Aring @ 2016-04-11 16:55 ` Stefan Schmidt 0 siblings, 0 replies; 18+ messages in thread From: Stefan Schmidt @ 2016-04-11 16:55 UTC (permalink / raw) To: Alexander Aring, linux-wpan; +Cc: kernel, jukka.rissanen Hello. On 11/04/16 11:04, Alexander Aring wrote: > In case of link-layer specific handling for 802.15.4 we need to cast to > 802.15.4 sepcific structures. Simple add this header when include the > 6lowpan header. > > Signed-off-by: Alexander Aring<aar@pengutronix.de> > --- > include/net/6lowpan.h | 3 +++ > net/6lowpan/iphc.c | 3 --- > 2 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/include/net/6lowpan.h b/include/net/6lowpan.h > index 04b877c..da84cf9 100644 > --- a/include/net/6lowpan.h > +++ b/include/net/6lowpan.h > @@ -58,6 +58,9 @@ > #include <net/ipv6.h> > #include <net/net_namespace.h> > > +/* special link-layer handling */ > +#include <net/mac802154.h> > + > #define EUI64_ADDR_LEN 8 > > #define LOWPAN_NHC_MAX_ID_LEN 1 > diff --git a/net/6lowpan/iphc.c b/net/6lowpan/iphc.c > index dff1591..8501dd5 100644 > --- a/net/6lowpan/iphc.c > +++ b/net/6lowpan/iphc.c > @@ -53,9 +53,6 @@ > #include <net/6lowpan.h> > #include <net/ipv6.h> > > -/* special link-layer handling */ > -#include <net/mac802154.h> > - > #include "6lowpan_i.h" > #include "nhc.h" > Reviewed-by: Stefan Schmidt<stefan@osg.samsung.com> regards Stefan Schmidt ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH bluetooth-next 00/11] 6lowpan: prepare for 6lowpan ndisc implementation 2016-04-11 9:04 [PATCH bluetooth-next 00/11] 6lowpan: prepare for 6lowpan ndisc implementation Alexander Aring ` (10 preceding siblings ...) 2016-04-11 9:04 ` [PATCH bluetooth-next 11/11] 6lowpan: move mac802154 header Alexander Aring @ 2016-04-12 11:16 ` Jukka Rissanen 2016-04-13 8:42 ` Marcel Holtmann 12 siblings, 0 replies; 18+ messages in thread From: Jukka Rissanen @ 2016-04-12 11:16 UTC (permalink / raw) To: Alexander Aring, linux-wpan; +Cc: kernel Hi Alex, On Mon, 2016-04-11 at 11:04 +0200, Alexander Aring wrote: > Hi, > > this patch series are taken from the pending RFCv2 about > "6lowpan: l2 neighbour data and short address" which are > 802.15.4/6lowpan > subsystem related. > > If these patches are fine and are mainline on bluetooth-next, I will > try to > bring the rest of patches mainline. > > - Alex patches look good. Acked-by: Jukka Rissanen <jukka.rissanen@linux.intel.com> Cheers, Jukka ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH bluetooth-next 00/11] 6lowpan: prepare for 6lowpan ndisc implementation 2016-04-11 9:04 [PATCH bluetooth-next 00/11] 6lowpan: prepare for 6lowpan ndisc implementation Alexander Aring ` (11 preceding siblings ...) 2016-04-12 11:16 ` [PATCH bluetooth-next 00/11] 6lowpan: prepare for 6lowpan ndisc implementation Jukka Rissanen @ 2016-04-13 8:42 ` Marcel Holtmann 12 siblings, 0 replies; 18+ messages in thread From: Marcel Holtmann @ 2016-04-13 8:42 UTC (permalink / raw) To: Alexander Aring; +Cc: linux-wpan, kernel, jukka.rissanen Hi Alex, > this patch series are taken from the pending RFCv2 about > "6lowpan: l2 neighbour data and short address" which are 802.15.4/6lowpan > subsystem related. > > If these patches are fine and are mainline on bluetooth-next, I will try to > bring the rest of patches mainline. > > - Alex > > Alexander Aring (11): > ieee802154: cleanups for ieee802154.h > ieee802154: add short address helpers > nl802154: avoid address change while running lowpan > ieee802154: 6lowpan: fix short addr hash > 6lowpan: change naming for lowpan private data > 6lowpan: move lowpan_802154_dev to 6lowpan > 6lowpan: iphc: rename add lowpan prefix > 6lowpan: iphc: remove unnecessary zero data > 6lowpan: move eui64 uncompress function > 6lowpan: add lowpan_is_ll function > 6lowpan: move mac802154 header > > include/linux/ieee802154.h | 35 +++++++++++- > include/net/6lowpan.h | 37 ++++++++++++- > include/net/mac802154.h | 10 ++++ > net/6lowpan/6lowpan_i.h | 9 +++ > net/6lowpan/core.c | 8 +-- > net/6lowpan/debugfs.c | 22 ++++---- > net/6lowpan/iphc.c | 111 ++++++++++++++++--------------------- > net/6lowpan/nhc_udp.c | 2 +- > net/bluetooth/6lowpan.c | 82 ++++++++++++++------------- > net/ieee802154/6lowpan/6lowpan_i.h | 14 +---- > net/ieee802154/6lowpan/core.c | 6 +- > net/ieee802154/6lowpan/tx.c | 14 ++--- > net/ieee802154/nl802154.c | 10 ++++ > 13 files changed, 214 insertions(+), 146 deletions(-) all 11 patches have been applied to bluetooth-next tree. Regards Marcel ^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2016-04-13 8:42 UTC | newest] Thread overview: 18+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-04-11 9:04 [PATCH bluetooth-next 00/11] 6lowpan: prepare for 6lowpan ndisc implementation Alexander Aring 2016-04-11 9:04 ` [PATCH bluetooth-next 01/11] ieee802154: cleanups for ieee802154.h Alexander Aring 2016-04-11 9:04 ` [PATCH bluetooth-next 02/11] ieee802154: add short address helpers Alexander Aring 2016-04-11 9:04 ` [PATCH bluetooth-next 03/11] nl802154: avoid address change while running lowpan Alexander Aring 2016-04-11 9:04 ` [PATCH bluetooth-next 04/11] ieee802154: 6lowpan: fix short addr hash Alexander Aring 2016-04-11 9:04 ` [PATCH bluetooth-next 05/11] 6lowpan: change naming for lowpan private data Alexander Aring 2016-04-11 16:54 ` Stefan Schmidt 2016-04-11 9:04 ` [PATCH bluetooth-next 06/11] 6lowpan: move lowpan_802154_dev to 6lowpan Alexander Aring 2016-04-11 9:04 ` [PATCH bluetooth-next 07/11] 6lowpan: iphc: rename add lowpan prefix Alexander Aring 2016-04-11 9:04 ` [PATCH bluetooth-next 08/11] 6lowpan: iphc: remove unnecessary zero data Alexander Aring 2016-04-11 9:04 ` [PATCH bluetooth-next 09/11] 6lowpan: move eui64 uncompress function Alexander Aring 2016-04-11 16:54 ` Stefan Schmidt 2016-04-11 9:04 ` [PATCH bluetooth-next 10/11] 6lowpan: add lowpan_is_ll function Alexander Aring 2016-04-11 16:55 ` Stefan Schmidt 2016-04-11 9:04 ` [PATCH bluetooth-next 11/11] 6lowpan: move mac802154 header Alexander Aring 2016-04-11 16:55 ` Stefan Schmidt 2016-04-12 11:16 ` [PATCH bluetooth-next 00/11] 6lowpan: prepare for 6lowpan ndisc implementation Jukka Rissanen 2016-04-13 8:42 ` Marcel Holtmann
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.