lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Fri, 17 Jun 2022 21:32:49 +0200 From: Miquel Raynal <miquel.raynal@...tlin.com> To: Alexander Aring <alex.aring@...il.com>, Stefan Schmidt <stefan@...enfreihafen.org>, linux-wpan@...r.kernel.org Cc: "David S. Miller" <davem@...emloft.net>, Jakub Kicinski <kuba@...nel.org>, Paolo Abeni <pabeni@...hat.com>, Eric Dumazet <edumazet@...gle.com>, netdev@...r.kernel.org, David Girault <david.girault@...vo.com>, Romuald Despres <romuald.despres@...vo.com>, Frederic Blain <frederic.blain@...vo.com>, Nicolas Schodet <nico@...fr.eu.org>, Thomas Petazzoni <thomas.petazzoni@...tlin.com>, Miquel Raynal <miquel.raynal@...tlin.com> Subject: [PATCH wpan-next v2 1/6] net: ieee802154: Create a device type 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@...tlin.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
Powered by blists - more mailing lists