c91208d819
This patch introduce a new mib entry which isn't part of 802.15.4 but useful as default behaviour to set the ack request bit or not if we don't know if the ack request bit should set. This is currently used for stacks like IEEE 802.15.4 6LoWPAN. Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com> Signed-off-by: Alexander Aring <alex.aring@gmail.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
212 lines
5.6 KiB
C
212 lines
5.6 KiB
C
#ifndef __CFG802154_RDEV_OPS
|
|
#define __CFG802154_RDEV_OPS
|
|
|
|
#include <net/cfg802154.h>
|
|
|
|
#include "core.h"
|
|
#include "trace.h"
|
|
|
|
static inline struct net_device *
|
|
rdev_add_virtual_intf_deprecated(struct cfg802154_registered_device *rdev,
|
|
const char *name,
|
|
unsigned char name_assign_type,
|
|
int type)
|
|
{
|
|
return rdev->ops->add_virtual_intf_deprecated(&rdev->wpan_phy, name,
|
|
name_assign_type, type);
|
|
}
|
|
|
|
static inline void
|
|
rdev_del_virtual_intf_deprecated(struct cfg802154_registered_device *rdev,
|
|
struct net_device *dev)
|
|
{
|
|
rdev->ops->del_virtual_intf_deprecated(&rdev->wpan_phy, dev);
|
|
}
|
|
|
|
static inline int
|
|
rdev_suspend(struct cfg802154_registered_device *rdev)
|
|
{
|
|
int ret;
|
|
trace_802154_rdev_suspend(&rdev->wpan_phy);
|
|
ret = rdev->ops->suspend(&rdev->wpan_phy);
|
|
trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
|
|
return ret;
|
|
}
|
|
|
|
static inline int
|
|
rdev_resume(struct cfg802154_registered_device *rdev)
|
|
{
|
|
int ret;
|
|
trace_802154_rdev_resume(&rdev->wpan_phy);
|
|
ret = rdev->ops->resume(&rdev->wpan_phy);
|
|
trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
|
|
return ret;
|
|
}
|
|
|
|
static inline int
|
|
rdev_add_virtual_intf(struct cfg802154_registered_device *rdev, char *name,
|
|
unsigned char name_assign_type,
|
|
enum nl802154_iftype type, __le64 extended_addr)
|
|
{
|
|
int ret;
|
|
|
|
trace_802154_rdev_add_virtual_intf(&rdev->wpan_phy, name, type,
|
|
extended_addr);
|
|
ret = rdev->ops->add_virtual_intf(&rdev->wpan_phy, name,
|
|
name_assign_type, type,
|
|
extended_addr);
|
|
trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
|
|
return ret;
|
|
}
|
|
|
|
static inline int
|
|
rdev_del_virtual_intf(struct cfg802154_registered_device *rdev,
|
|
struct wpan_dev *wpan_dev)
|
|
{
|
|
int ret;
|
|
|
|
trace_802154_rdev_del_virtual_intf(&rdev->wpan_phy, wpan_dev);
|
|
ret = rdev->ops->del_virtual_intf(&rdev->wpan_phy, wpan_dev);
|
|
trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
|
|
return ret;
|
|
}
|
|
|
|
static inline int
|
|
rdev_set_channel(struct cfg802154_registered_device *rdev, u8 page, u8 channel)
|
|
{
|
|
int ret;
|
|
|
|
trace_802154_rdev_set_channel(&rdev->wpan_phy, page, channel);
|
|
ret = rdev->ops->set_channel(&rdev->wpan_phy, page, channel);
|
|
trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
|
|
return ret;
|
|
}
|
|
|
|
static inline int
|
|
rdev_set_cca_mode(struct cfg802154_registered_device *rdev,
|
|
const struct wpan_phy_cca *cca)
|
|
{
|
|
int ret;
|
|
|
|
trace_802154_rdev_set_cca_mode(&rdev->wpan_phy, cca);
|
|
ret = rdev->ops->set_cca_mode(&rdev->wpan_phy, cca);
|
|
trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
|
|
return ret;
|
|
}
|
|
|
|
static inline int
|
|
rdev_set_cca_ed_level(struct cfg802154_registered_device *rdev, s32 ed_level)
|
|
{
|
|
int ret;
|
|
|
|
trace_802154_rdev_set_cca_ed_level(&rdev->wpan_phy, ed_level);
|
|
ret = rdev->ops->set_cca_ed_level(&rdev->wpan_phy, ed_level);
|
|
trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
|
|
return ret;
|
|
}
|
|
|
|
static inline int
|
|
rdev_set_tx_power(struct cfg802154_registered_device *rdev,
|
|
s32 power)
|
|
{
|
|
int ret;
|
|
|
|
trace_802154_rdev_set_tx_power(&rdev->wpan_phy, power);
|
|
ret = rdev->ops->set_tx_power(&rdev->wpan_phy, power);
|
|
trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
|
|
return ret;
|
|
}
|
|
|
|
static inline int
|
|
rdev_set_pan_id(struct cfg802154_registered_device *rdev,
|
|
struct wpan_dev *wpan_dev, __le16 pan_id)
|
|
{
|
|
int ret;
|
|
|
|
trace_802154_rdev_set_pan_id(&rdev->wpan_phy, wpan_dev, pan_id);
|
|
ret = rdev->ops->set_pan_id(&rdev->wpan_phy, wpan_dev, pan_id);
|
|
trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
|
|
return ret;
|
|
}
|
|
|
|
static inline int
|
|
rdev_set_short_addr(struct cfg802154_registered_device *rdev,
|
|
struct wpan_dev *wpan_dev, __le16 short_addr)
|
|
{
|
|
int ret;
|
|
|
|
trace_802154_rdev_set_short_addr(&rdev->wpan_phy, wpan_dev, short_addr);
|
|
ret = rdev->ops->set_short_addr(&rdev->wpan_phy, wpan_dev, short_addr);
|
|
trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
|
|
return ret;
|
|
}
|
|
|
|
static inline int
|
|
rdev_set_backoff_exponent(struct cfg802154_registered_device *rdev,
|
|
struct wpan_dev *wpan_dev, u8 min_be, u8 max_be)
|
|
{
|
|
int ret;
|
|
|
|
trace_802154_rdev_set_backoff_exponent(&rdev->wpan_phy, wpan_dev,
|
|
min_be, max_be);
|
|
ret = rdev->ops->set_backoff_exponent(&rdev->wpan_phy, wpan_dev,
|
|
min_be, max_be);
|
|
trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
|
|
return ret;
|
|
}
|
|
|
|
static inline int
|
|
rdev_set_max_csma_backoffs(struct cfg802154_registered_device *rdev,
|
|
struct wpan_dev *wpan_dev, u8 max_csma_backoffs)
|
|
{
|
|
int ret;
|
|
|
|
trace_802154_rdev_set_csma_backoffs(&rdev->wpan_phy, wpan_dev,
|
|
max_csma_backoffs);
|
|
ret = rdev->ops->set_max_csma_backoffs(&rdev->wpan_phy, wpan_dev,
|
|
max_csma_backoffs);
|
|
trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
|
|
return ret;
|
|
}
|
|
|
|
static inline int
|
|
rdev_set_max_frame_retries(struct cfg802154_registered_device *rdev,
|
|
struct wpan_dev *wpan_dev, s8 max_frame_retries)
|
|
{
|
|
int ret;
|
|
|
|
trace_802154_rdev_set_max_frame_retries(&rdev->wpan_phy, wpan_dev,
|
|
max_frame_retries);
|
|
ret = rdev->ops->set_max_frame_retries(&rdev->wpan_phy, wpan_dev,
|
|
max_frame_retries);
|
|
trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
|
|
return ret;
|
|
}
|
|
|
|
static inline int
|
|
rdev_set_lbt_mode(struct cfg802154_registered_device *rdev,
|
|
struct wpan_dev *wpan_dev, bool mode)
|
|
{
|
|
int ret;
|
|
|
|
trace_802154_rdev_set_lbt_mode(&rdev->wpan_phy, wpan_dev, mode);
|
|
ret = rdev->ops->set_lbt_mode(&rdev->wpan_phy, wpan_dev, mode);
|
|
trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
|
|
return ret;
|
|
}
|
|
|
|
static inline int
|
|
rdev_set_ackreq_default(struct cfg802154_registered_device *rdev,
|
|
struct wpan_dev *wpan_dev, bool ackreq)
|
|
{
|
|
int ret;
|
|
|
|
trace_802154_rdev_set_ackreq_default(&rdev->wpan_phy, wpan_dev,
|
|
ackreq);
|
|
ret = rdev->ops->set_ackreq_default(&rdev->wpan_phy, wpan_dev, ackreq);
|
|
trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
|
|
return ret;
|
|
}
|
|
|
|
#endif /* __CFG802154_RDEV_OPS */
|