From: Felix Varghese <felixvarg...@gmail.com>

Added function prototypes, structure definitions and netlink attributes for 
supporting PIB get/set functionality

Signed-off-by: Felix Varghese <felixvarg...@gmail.com>
Signed-off-by: Prajosh Premdas <premdas.praj...@gmail.com>
---
 include/linux/nl802154.h        |    3 +++
 include/net/ieee802154_netdev.h |   19 +++++++++++++++++++
 include/net/nl802154.h          |   23 +++++++++++++++++++++++
 3 files changed, 45 insertions(+), 0 deletions(-)

diff --git a/include/linux/nl802154.h b/include/linux/nl802154.h
index 69fe03a..94ec8af 100644
--- a/include/linux/nl802154.h
+++ b/include/linux/nl802154.h
@@ -71,6 +71,9 @@ enum {
        IEEE802154_ATTR_DEV_TYPE,
 
        IEEE802154_ATTR_SET_DEFAULT_PIB,
+       IEEE802154_ATTR_PIB_ATTRIBUTE,
+       IEEE802154_ATTR_PIB_VALUE,
+       IEEE802154_ATTR_PIB_SIZE,
 
        __IEEE802154_ATTR_MAX,
 };
diff --git a/include/net/ieee802154_netdev.h b/include/net/ieee802154_netdev.h
index 25cb045..183b384 100644
--- a/include/net/ieee802154_netdev.h
+++ b/include/net/ieee802154_netdev.h
@@ -27,6 +27,21 @@
 #define IEEE802154_NETDEVICE_H
 
 #include <net/af_ieee802154.h>
+#include <net/ieee802154.h>
+
+/* PIB attribute value type */
+union pib_value_t {
+    /* PIB attribute 8-bit */
+       u8 pib_value_8bit;
+       /* PIB attribute 16-bit */
+       u8 pib_value_16bit;
+       /* PIB attribute 32-bit */
+       u8 pib_value_32bit;
+       /* PIB attribute 64-bit */
+       u8 pib_value_64bit;
+       /* PIB attribute array */
+       u8 pib_array[aMaxBeaconPayloadLength];
+};
 
 /*
  * A control block of skb passed between the ARPHRD_IEEE802154 device
@@ -94,6 +109,10 @@ struct wpan_phy;
 struct ieee802154_mlme_ops {
        int (*reset_req)(struct net_device *dev,
                         u8 SetDefaultPIB);
+       int (*get_req)(struct net_device *dev,
+                      u8 PIBattr);
+       int (*set_req)(struct net_device *dev,
+                      u8 PIBattr, void *PIBval);
        int (*assoc_req)(struct net_device *dev,
                        struct ieee802154_addr *addr,
                        u8 channel, u8 page, u8 cap);
diff --git a/include/net/nl802154.h b/include/net/nl802154.h
index 23c2302..c3bec60 100644
--- a/include/net/nl802154.h
+++ b/include/net/nl802154.h
@@ -132,4 +132,27 @@ int ieee802154_nl_start_confirm(struct net_device *dev, u8 
status);
  */
 int ieee802154_reset_confirm(struct net_device *dev, u8 status);
 
+/**
+ * ieee802154_nl_get_confirm - Notify userland of completion of get confirm.
+ * @dev: The device which was instructed the get operation.
+ * @PIBattr:
+ * @PIBval:
+ * @size:
+ *
+ * Note: This is in section xxxxx of the IEEE 802.15.4 document.
+ */
+int ieee802154_nl_get_confirm(struct net_device *dev, u8 PIBattr,
+                               void *PIBval, int size);
+
+/**
+ * ieee802154_nl_set_confirm - Notify userland of completion of set confirm.
+ * @dev: The device which was instructed the set operation.
+ * @PIBattr:
+ * @status:
+ *
+ * Note: This is in section xxxxx of the IEEE 802.15.4 document.
+ */
+int ieee802154_nl_set_confirm(struct net_device *dev, u8 PIBattr,
+                               int status);
+
 #endif
-- 
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

Reply via email to