From: Felix Varghese <felixvarg...@gmail.com> Adds structure definitions and function prototypes for implementing PIB get and set primitives
Signed-off-by: Felix Varghese <felixvarg...@gmail.com> Signed-off-by: Prajosh Premdas <premdas.praj...@gmail.com> --- include/net/mac802154.h | 10 +++++++ net/mac802154/mac802154.h | 58 ++++++++++++++++++++++++++++++++++----------- 2 files changed, 54 insertions(+), 14 deletions(-) diff --git a/include/net/mac802154.h b/include/net/mac802154.h index 5eaba60..e274414 100644 --- a/include/net/mac802154.h +++ b/include/net/mac802154.h @@ -142,6 +142,16 @@ struct ieee802154_ops { unsigned long changed); int (*ieee_addr)(struct ieee802154_dev *dev, u8 addr[IEEE802154_ADDR_LEN]); + + /* PLME-SAP */ + int (*set_trx_state)(struct ieee802154_dev *dev, + int trx_state); + int (*get)(struct ieee802154_dev *dev, + u8 attribute_id, + u8 *attribute_val); + int (*set)(struct ieee802154_dev *dev, + u8 attribute_id, + u8 *attribute_val); }; struct ieee802154_dev * diff --git a/net/mac802154/mac802154.h b/net/mac802154/mac802154.h index f0a0c08..0079a96 100644 --- a/net/mac802154/mac802154.h +++ b/net/mac802154/mac802154.h @@ -23,6 +23,8 @@ #ifndef MAC802154_H #define MAC802154_H +#include <net/ieee802154.h> + struct mac802154_priv { struct ieee802154_dev hw; struct ieee802154_ops *ops; @@ -54,6 +56,37 @@ struct mac802154_priv { unsigned running:1; }; +/* Section 7.4.2 MAC PIB attributes */ +struct mac_pib_t { + u8 AssociatedPANCoord; + u8 AssociationPermit; + u8 AutoRequest; + u8 BattLifeExt; + u8 BattLifeExtPeriods; + u8 BeaconPayload[aMaxBeaconPayloadLength]; + u8 BeaconPayloadLength; + u8 BeaconOrder; + u32 BeaconTxTime; + u8 BSN; + u64 CoordExtendedAddress; + u16 CoordShortAddress; + u8 DSN; + u8 GTSPermit; + u8 MaxBE; + u8 MaxCSMABackoffs; + u16 MaxFrameTotalWaitTime; + u8 MaxFrameRetries; + u8 MinBE; + u16 PANId; + u8 PromiscuousMode; + u16 ResponseWaitTime; + u8 RxOnWhenIdle; + u8 SecurityEnabled; + u16 ShortAddress; + u8 SuperFrameOrder; + u16 TransactionPersistenceTime; +}; + enum { MAC802154_DEVICE_STOPPED, MAC802154_DEVICE_RUN, @@ -70,18 +103,8 @@ struct mac802154_sub_if_data { int type; - spinlock_t mib_lock; - - __le16 pan_id; - __le16 short_addr; - - u8 chan; - u8 page; - - /* MAC BSN field */ - u8 bsn; - /* MAC DSN field */ - u8 dsn; + struct mutex macPIB_lock; + struct mac_pib_t macPIB; }; #define mac802154_to_priv(_hw) container_of(_hw, struct mac802154_priv, hw) @@ -101,7 +124,14 @@ void mac802154_monitor_setup(struct net_device *dev); netdev_tx_t mac802154_tx(struct mac802154_priv *priv, struct sk_buff *skb, u8 page, u8 chan); -/* MIB callbacks */ -void mac802154_dev_set_ieee_addr(struct net_device *dev); +/* MLME_GET request and confirm function definitions */ +extern int mlme_get_req(struct net_device *dev, u8 PIBattr); +extern int internal_get_mac_pib(struct net_device *dev, + u8 PIBattr, void *PIBval); + +/* MLME_SET request and confirm function definitions */ +extern int mlme_set_req(struct net_device *dev, u8 PIBattr, void *PIBval); +extern int internal_set_mac_pib(struct net_device *dev, + u8 PIBattr, void *PIBval); #endif /* MAC802154_H */ -- 1.7.4.1 ------------------------------------------------------------------------------ Virtualization & Cloud Management Using Capacity Planning Cloud computing makes use of virtualization - but cloud computing also focuses on allowing computing to be delivered as a service. http://www.accelacomm.com/jaw/sfnl/114/51521223/ _______________________________________________ Linux-zigbee-devel mailing list Linux-zigbee-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-zigbee-devel