mac802154: make csma/cca parameters per-wpan

Commit 9b2777d608 (ieee802154: add TX power control to wpan_phy)
and following erroneously added CSMA and CCA parameters for 802.15.4
devices as PHY parameters, while they are actually MAC parameters and
can differ for any two WPAN instances. Since it is now sensible to have
multiple WPAN devices with differing CSMA/CCA parameters, make these
parameters MAC parameters instead.

Signed-off-by: Phoebe Buckheister <phoebe.buckheister@itwm.fraunhofer.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Phoebe Buckheister
2014-03-31 21:37:46 +02:00
committed by David S. Miller
parent 336908f6d7
commit e462ded699
11 changed files with 252 additions and 236 deletions

View File

@@ -132,7 +132,7 @@ enum {
IEEE802154_ADD_IFACE,
IEEE802154_DEL_IFACE,
IEEE802154_SET_PHYPARAMS,
IEEE802154_SET_MACPARAMS,
__IEEE802154_CMD_MAX,
};

View File

@@ -229,6 +229,18 @@ static inline int mac_cb_type(struct sk_buff *skb)
#define IEEE802154_MAC_SCAN_PASSIVE 2
#define IEEE802154_MAC_SCAN_ORPHAN 3
struct ieee802154_mac_params {
s8 transmit_power;
u8 min_be;
u8 max_be;
u8 csma_retries;
s8 frame_retries;
bool lbt;
u8 cca_mode;
s32 cca_ed_level;
};
struct wpan_phy;
/*
* This should be located at net_device->ml_priv
@@ -255,6 +267,11 @@ struct ieee802154_mlme_ops {
int (*scan_req)(struct net_device *dev,
u8 type, u32 channels, u8 page, u8 duration);
int (*set_mac_params)(struct net_device *dev,
const struct ieee802154_mac_params *params);
void (*get_mac_params)(struct net_device *dev,
struct ieee802154_mac_params *params);
/* The fields below are required. */
struct wpan_phy *(*get_phy)(const struct net_device *dev);