From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Alexander Aring <alex.aring@gmail.com>,
Stefan Schmidt <stefan@datenfreihafen.org>,
linux-wpan@vger.kernel.org
Cc: "David S. Miller" <davem@davemloft.net>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Eric Dumazet <edumazet@google.com>,
netdev@vger.kernel.org, David Girault <david.girault@qorvo.com>,
Romuald Despres <romuald.despres@qorvo.com>,
Frederic Blain <frederic.blain@qorvo.com>,
Nicolas Schodet <nico@ni.fr.eu.org>,
Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
Miquel Raynal <miquel.raynal@bootlin.com>
Subject: [PATCH wpan-next v2 1/6] net: ieee802154: Create a device type
Date: Fri, 17 Jun 2022 21:32:49 +0200 [thread overview]
Message-ID: <20220617193254.1275912-2-miquel.raynal@bootlin.com> (raw)
In-Reply-To: <20220617193254.1275912-1-miquel.raynal@bootlin.com>
A device can be either a fully functioning device or a kind of reduced
functioning device. Let's create a device type member. Drivers will be
in charge of setting this value if they handle non-FFD devices.
FFD are considered the default.
Provide this information in the interface get netlink command.
Create a helper just to check if a rdev is a FFD or not, which will
then be useful when bringing scan support.
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
---
include/net/nl802154.h | 9 +++++++++
net/ieee802154/core.h | 8 ++++++++
net/ieee802154/nl802154.c | 6 +++++-
3 files changed, 22 insertions(+), 1 deletion(-)
diff --git a/include/net/nl802154.h b/include/net/nl802154.h
index 145acb8f2509..5258785879e8 100644
--- a/include/net/nl802154.h
+++ b/include/net/nl802154.h
@@ -133,6 +133,8 @@ enum nl802154_attrs {
NL802154_ATTR_PID,
NL802154_ATTR_NETNS_FD,
+ NL802154_ATTR_DEV_TYPE,
+
/* add attributes here, update the policy in nl802154.c */
#ifdef CONFIG_IEEE802154_NL802154_EXPERIMENTAL
@@ -163,6 +165,13 @@ enum nl802154_iftype {
NL802154_IFTYPE_MAX = NUM_NL802154_IFTYPES - 1
};
+enum nl802154_dev_type {
+ NL802154_DEV_TYPE_FFD = 0,
+ NL802154_DEV_TYPE_RFD,
+ NL802154_DEV_TYPE_RFD_RX,
+ NL802154_DEV_TYPE_RFD_TX,
+};
+
/**
* enum nl802154_wpan_phy_capability_attr - wpan phy capability attributes
*
diff --git a/net/ieee802154/core.h b/net/ieee802154/core.h
index 1c19f575d574..d5a2f58b01cf 100644
--- a/net/ieee802154/core.h
+++ b/net/ieee802154/core.h
@@ -22,6 +22,8 @@ struct cfg802154_registered_device {
struct list_head wpan_dev_list;
int devlist_generation, wpan_dev_id;
+ enum nl802154_dev_type dev_type;
+
/* must be last because of the way we do wpan_phy_priv(),
* and it should at least be aligned to NETDEV_ALIGN
*/
@@ -47,4 +49,10 @@ struct cfg802154_registered_device *
cfg802154_rdev_by_wpan_phy_idx(int wpan_phy_idx);
struct wpan_phy *wpan_phy_idx_to_wpan_phy(int wpan_phy_idx);
+static inline bool
+cfg802154_is_ffd(struct cfg802154_registered_device *rdev)
+{
+ return rdev->dev_type == NL802154_DEV_TYPE_FFD;
+}
+
#endif /* __IEEE802154_CORE_H */
diff --git a/net/ieee802154/nl802154.c b/net/ieee802154/nl802154.c
index e0b072aecf0f..638bf544f102 100644
--- a/net/ieee802154/nl802154.c
+++ b/net/ieee802154/nl802154.c
@@ -216,6 +216,9 @@ static const struct nla_policy nl802154_policy[NL802154_ATTR_MAX+1] = {
[NL802154_ATTR_PID] = { .type = NLA_U32 },
[NL802154_ATTR_NETNS_FD] = { .type = NLA_U32 },
+
+ [NL802154_ATTR_DEV_TYPE] = { .type = NLA_U8 },
+
#ifdef CONFIG_IEEE802154_NL802154_EXPERIMENTAL
[NL802154_ATTR_SEC_ENABLED] = { .type = NLA_U8, },
[NL802154_ATTR_SEC_OUT_LEVEL] = { .type = NLA_U32, },
@@ -790,7 +793,8 @@ nl802154_send_iface(struct sk_buff *msg, u32 portid, u32 seq, int flags,
wpan_dev_id(wpan_dev), NL802154_ATTR_PAD) ||
nla_put_u32(msg, NL802154_ATTR_GENERATION,
rdev->devlist_generation ^
- (cfg802154_rdev_list_generation << 2)))
+ (cfg802154_rdev_list_generation << 2)) ||
+ nla_put_u8(msg, NL802154_ATTR_DEV_TYPE, rdev->dev_type))
goto nla_put_failure;
/* address settings */
--
2.34.1
next prev parent reply other threads:[~2022-06-17 19:33 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-17 19:32 [PATCH wpan-next v2 0/6] net: ieee802154: PAN management Miquel Raynal
2022-06-17 19:32 ` Miquel Raynal [this message]
2022-06-20 0:18 ` [PATCH wpan-next v2 1/6] net: ieee802154: Create a device type Alexander Aring
2022-06-20 9:26 ` Miquel Raynal
2022-06-21 2:00 ` Alexander Aring
2022-06-17 19:32 ` [PATCH wpan-next v2 2/6] net: ieee802154: Ensure only FFDs can become PAN coordinators Miquel Raynal
2022-06-20 0:24 ` Alexander Aring
2022-06-20 0:25 ` Alexander Aring
2022-06-20 9:28 ` Miquel Raynal
2022-06-21 2:03 ` Alexander Aring
2022-06-21 6:31 ` Miquel Raynal
2022-06-17 19:32 ` [PATCH wpan-next v2 3/6] net: mac802154: Allow the creation of PAN coordinator interfaces Miquel Raynal
2022-06-17 19:32 ` [PATCH wpan-next v2 4/6] net: ieee802154: Add support for inter PAN management Miquel Raynal
2022-06-17 19:32 ` [PATCH wpan-next v2 5/6] net: ieee802154: Give the user to the PAN information Miquel Raynal
2022-06-17 19:32 ` [PATCH wpan-next v2 6/6] net: ieee802154: Trace the registration of new PANs Miquel Raynal
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220617193254.1275912-2-miquel.raynal@bootlin.com \
--to=miquel.raynal@bootlin.com \
--cc=alex.aring@gmail.com \
--cc=davem@davemloft.net \
--cc=david.girault@qorvo.com \
--cc=edumazet@google.com \
--cc=frederic.blain@qorvo.com \
--cc=kuba@kernel.org \
--cc=linux-wpan@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=nico@ni.fr.eu.org \
--cc=pabeni@redhat.com \
--cc=romuald.despres@qorvo.com \
--cc=stefan@datenfreihafen.org \
--cc=thomas.petazzoni@bootlin.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.