diff --git a/drivers/include/net/netdev/ieee802154.h b/drivers/include/net/netdev/ieee802154.h index 5a7726bb0d37b14f0395383df63a11a0165ff66f..c98abbd8657dc8babb94aba03f300e60ffe3ccad 100644 --- a/drivers/include/net/netdev/ieee802154.h +++ b/drivers/include/net/netdev/ieee802154.h @@ -53,6 +53,11 @@ extern "C" { * @brief request ACK from receiver */ #define NETDEV_IEEE802154_ACK_REQ (IEEE802154_FCF_ACK_REQ) + +/** + * @brief set frame pending bit + */ +#define NETDEV_IEEE802154_FRAME_PEND (IEEE802154_FCF_FRAME_PEND) /** * @} */ diff --git a/sys/include/net/netopt.h b/sys/include/net/netopt.h index 2f084a0c8cc8b83cc240af3c7f5a2d7768664d54..65d283e13ed736e58af019892f78d36f5a0e2787 100644 --- a/sys/include/net/netopt.h +++ b/sys/include/net/netopt.h @@ -147,6 +147,12 @@ typedef enum { * the current state */ NETOPT_AUTOACK, /**< en/disable link layer auto ACKs or read * the current state */ + NETOPT_ACK_PENDING, /**< en/disable the frame pending bit of ACKs. + * This bit is copied into the frame pending + * subfield of the ACK if it is the response + * to a data request MAC command frame, which + * lets the data request sender know if the ACK + * sender has pending data or not. */ NETOPT_ACK_REQ, /**< en/disable acknowledgement requests or * read the current state */ NETOPT_RETRANS, /**< get/set the maximum number of diff --git a/sys/net/crosslayer/netopt/netopt.c b/sys/net/crosslayer/netopt/netopt.c index 6df4bd1d14a2a5a79935c749f4b2c721011bdf57..227559f3cc1f78f530ba398627a29dc21025b827 100644 --- a/sys/net/crosslayer/netopt/netopt.c +++ b/sys/net/crosslayer/netopt/netopt.c @@ -45,6 +45,7 @@ static const char *_netopt_strmap[] = { [NETOPT_PRELOADING] = "NETOPT_PRELOADING", [NETOPT_PROMISCUOUSMODE] = "NETOPT_PROMISCUOUSMODE", [NETOPT_AUTOACK] = "NETOPT_AUTOACK", + [NETOPT_ACK_PENDING] = "NETOPT_ACK_PENDING", [NETOPT_ACK_REQ] = "NETOPT_ACK_REQ", [NETOPT_RETRANS] = "NETOPT_RETRANS", [NETOPT_PROTO] = "NETOPT_PROTO",