ARM: SPEAr13xx: Fix static mapping table
[firefly-linux-kernel-4.4.55.git] / include / net / ieee802154_netdev.h
index 000c8552d5de093105c9ca3be39fbb45fea00be3..3b53c8e405e48143f667c20850db1666c402d8fa 100644 (file)
@@ -280,6 +280,7 @@ struct ieee802154_llsec_device_key {
 enum {
        IEEE802154_LLSEC_DEVKEY_IGNORE,
        IEEE802154_LLSEC_DEVKEY_RESTRICT,
+       IEEE802154_LLSEC_DEVKEY_RECORD,
 
        __IEEE802154_LLSEC_DEVKEY_MAX,
 };
@@ -358,6 +359,40 @@ enum {
        IEEE802154_LLSEC_PARAM_COORD_SHORTADDR = 1 << 8,
 };
 
+struct ieee802154_llsec_ops {
+       int (*get_params)(struct net_device *dev,
+                         struct ieee802154_llsec_params *params);
+       int (*set_params)(struct net_device *dev,
+                         const struct ieee802154_llsec_params *params,
+                         int changed);
+
+       int (*add_key)(struct net_device *dev,
+                      const struct ieee802154_llsec_key_id *id,
+                      const struct ieee802154_llsec_key *key);
+       int (*del_key)(struct net_device *dev,
+                      const struct ieee802154_llsec_key_id *id);
+
+       int (*add_dev)(struct net_device *dev,
+                      const struct ieee802154_llsec_device *llsec_dev);
+       int (*del_dev)(struct net_device *dev, __le64 dev_addr);
+
+       int (*add_devkey)(struct net_device *dev,
+                         __le64 device_addr,
+                         const struct ieee802154_llsec_device_key *key);
+       int (*del_devkey)(struct net_device *dev,
+                         __le64 device_addr,
+                         const struct ieee802154_llsec_device_key *key);
+
+       int (*add_seclevel)(struct net_device *dev,
+                           const struct ieee802154_llsec_seclevel *sl);
+       int (*del_seclevel)(struct net_device *dev,
+                           const struct ieee802154_llsec_seclevel *sl);
+
+       void (*lock_table)(struct net_device *dev);
+       void (*get_table)(struct net_device *dev,
+                         struct ieee802154_llsec_table **t);
+       void (*unlock_table)(struct net_device *dev);
+};
 /*
  * This should be located at net_device->ml_priv
  *
@@ -388,6 +423,8 @@ struct ieee802154_mlme_ops {
        void (*get_mac_params)(struct net_device *dev,
                               struct ieee802154_mac_params *params);
 
+       struct ieee802154_llsec_ops *llsec;
+
        /* The fields below are required. */
 
        struct wpan_phy *(*get_phy)(const struct net_device *dev);