* [PATCH bluetooth-next 0/3] ieee802154: correct sifs handling and new defines
@ 2015-03-03 22:27 Alexander Aring
2015-03-03 22:27 ` [PATCH bluetooth-next 1/3] mac802154: correct max sifs size handling Alexander Aring
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Alexander Aring @ 2015-03-03 22:27 UTC (permalink / raw)
To: linux-wpan; +Cc: kernel, Alexander Aring
Hi,
this series corrects the interframe spacing time when
IEEE802154_HW_TX_OMIT_CKSUM phy flag is set. This flag is set when the
transceiver sets the crc on his own.
Also I add some defines from 802.15.4 standard. There is still some magic
values for IEEE802154_FCS_LEN everywhere in mac802154 implementation. We
should replace these values with IEEE802154_FCS_LEN later.
- Alex
Alexander Aring (3):
mac802154: correct max sifs size handling
ieee802154: add IEEE802154_MAX_SIFS_FRAME_SIZE
ieee802154: add IEEE802154_FCS_LEN
include/linux/ieee802154.h | 2 ++
net/mac802154/util.c | 13 ++++++++++++-
2 files changed, 14 insertions(+), 1 deletion(-)
--
2.3.0
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH bluetooth-next 1/3] mac802154: correct max sifs size handling
2015-03-03 22:27 [PATCH bluetooth-next 0/3] ieee802154: correct sifs handling and new defines Alexander Aring
@ 2015-03-03 22:27 ` Alexander Aring
2015-03-03 22:27 ` [PATCH bluetooth-next 2/3] ieee802154: add IEEE802154_MAX_SIFS_FRAME_SIZE Alexander Aring
2015-03-03 22:27 ` [PATCH bluetooth-next 3/3] ieee802154: add IEEE802154_FCS_LEN Alexander Aring
2 siblings, 0 replies; 5+ messages in thread
From: Alexander Aring @ 2015-03-03 22:27 UTC (permalink / raw)
To: linux-wpan; +Cc: kernel, Alexander Aring
This patch fix the max sifs size correction when the
IEEE802154_HW_TX_OMIT_CKSUM flag is set. With this flag the sk_buff
doesn't contain the CRC, because the transceiver will add the CRC
while transmit.
Signed-off-by: Alexander Aring <alex.aring@gmail.com>
---
net/mac802154/util.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/net/mac802154/util.c b/net/mac802154/util.c
index 5fc9790..04e13d9 100644
--- a/net/mac802154/util.c
+++ b/net/mac802154/util.c
@@ -65,8 +65,18 @@ void ieee802154_xmit_complete(struct ieee802154_hw *hw, struct sk_buff *skb,
{
if (ifs_handling) {
struct ieee802154_local *local = hw_to_local(hw);
+ u8 max_sifs_size;
- if (skb->len > 18)
+ /* If transceiver sets CRC on his own we need to use lifs
+ * threshold len above 16 otherwise 18, because it's not
+ * part of skb->len.
+ */
+ if (hw->flags & IEEE802154_HW_TX_OMIT_CKSUM)
+ max_sifs_size = 16;
+ else
+ max_sifs_size = 18;
+
+ if (skb->len > max_sifs_size)
hrtimer_start(&local->ifs_timer,
ktime_set(0, hw->phy->lifs_period * NSEC_PER_USEC),
HRTIMER_MODE_REL);
--
2.3.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH bluetooth-next 2/3] ieee802154: add IEEE802154_MAX_SIFS_FRAME_SIZE
2015-03-03 22:27 [PATCH bluetooth-next 0/3] ieee802154: correct sifs handling and new defines Alexander Aring
2015-03-03 22:27 ` [PATCH bluetooth-next 1/3] mac802154: correct max sifs size handling Alexander Aring
@ 2015-03-03 22:27 ` Alexander Aring
2015-03-03 22:27 ` [PATCH bluetooth-next 3/3] ieee802154: add IEEE802154_FCS_LEN Alexander Aring
2 siblings, 0 replies; 5+ messages in thread
From: Alexander Aring @ 2015-03-03 22:27 UTC (permalink / raw)
To: linux-wpan; +Cc: kernel, Alexander Aring
This patch adds a define for the max sifs frame size value according
802.15.4.
Signed-off-by: Alexander Aring <alex.aring@gmail.com>
---
include/linux/ieee802154.h | 1 +
net/mac802154/util.c | 4 ++--
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/include/linux/ieee802154.h b/include/linux/ieee802154.h
index 40b0ab9..f26682e 100644
--- a/include/linux/ieee802154.h
+++ b/include/linux/ieee802154.h
@@ -39,6 +39,7 @@
#define IEEE802154_LIFS_PERIOD 40
#define IEEE802154_SIFS_PERIOD 12
+#define IEEE802154_MAX_SIFS_FRAME_SIZE 18
#define IEEE802154_MAX_CHANNEL 26
#define IEEE802154_MAX_PAGE 31
diff --git a/net/mac802154/util.c b/net/mac802154/util.c
index 04e13d9..dad966c 100644
--- a/net/mac802154/util.c
+++ b/net/mac802154/util.c
@@ -72,9 +72,9 @@ void ieee802154_xmit_complete(struct ieee802154_hw *hw, struct sk_buff *skb,
* part of skb->len.
*/
if (hw->flags & IEEE802154_HW_TX_OMIT_CKSUM)
- max_sifs_size = 16;
+ max_sifs_size = IEEE802154_MAX_SIFS_FRAME_SIZE - 2;
else
- max_sifs_size = 18;
+ max_sifs_size = IEEE802154_MAX_SIFS_FRAME_SIZE;
if (skb->len > max_sifs_size)
hrtimer_start(&local->ifs_timer,
--
2.3.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH bluetooth-next 3/3] ieee802154: add IEEE802154_FCS_LEN
2015-03-03 22:27 [PATCH bluetooth-next 0/3] ieee802154: correct sifs handling and new defines Alexander Aring
2015-03-03 22:27 ` [PATCH bluetooth-next 1/3] mac802154: correct max sifs size handling Alexander Aring
2015-03-03 22:27 ` [PATCH bluetooth-next 2/3] ieee802154: add IEEE802154_MAX_SIFS_FRAME_SIZE Alexander Aring
@ 2015-03-03 22:27 ` Alexander Aring
2015-03-03 22:31 ` Marc Kleine-Budde
2 siblings, 1 reply; 5+ messages in thread
From: Alexander Aring @ 2015-03-03 22:27 UTC (permalink / raw)
To: linux-wpan; +Cc: kernel, Alexander Aring
This patch adds a IEEE802154_FCS_LEN for the frame check sequence also
called CRC which is inside the MFR (MAC Footer).
Signed-off-by: Alexander Aring <alex.aring@gmail.com>
---
include/linux/ieee802154.h | 1 +
net/mac802154/util.c | 3 ++-
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/include/linux/ieee802154.h b/include/linux/ieee802154.h
index f26682e..8872ca1 100644
--- a/include/linux/ieee802154.h
+++ b/include/linux/ieee802154.h
@@ -30,6 +30,7 @@
#define IEEE802154_MTU 127
#define IEEE802154_ACK_PSDU_LEN 5
#define IEEE802154_MIN_PSDU_LEN 9
+#define IEEE802154_FCS_LEN 2
#define IEEE802154_PAN_ID_BROADCAST 0xffff
#define IEEE802154_ADDR_SHORT_BROADCAST 0xffff
diff --git a/net/mac802154/util.c b/net/mac802154/util.c
index dad966c..150bf80 100644
--- a/net/mac802154/util.c
+++ b/net/mac802154/util.c
@@ -72,7 +72,8 @@ void ieee802154_xmit_complete(struct ieee802154_hw *hw, struct sk_buff *skb,
* part of skb->len.
*/
if (hw->flags & IEEE802154_HW_TX_OMIT_CKSUM)
- max_sifs_size = IEEE802154_MAX_SIFS_FRAME_SIZE - 2;
+ max_sifs_size = IEEE802154_MAX_SIFS_FRAME_SIZE -
+ IEEE802154_FCS_LEN;
else
max_sifs_size = IEEE802154_MAX_SIFS_FRAME_SIZE;
--
2.3.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH bluetooth-next 3/3] ieee802154: add IEEE802154_FCS_LEN
2015-03-03 22:27 ` [PATCH bluetooth-next 3/3] ieee802154: add IEEE802154_FCS_LEN Alexander Aring
@ 2015-03-03 22:31 ` Marc Kleine-Budde
0 siblings, 0 replies; 5+ messages in thread
From: Marc Kleine-Budde @ 2015-03-03 22:31 UTC (permalink / raw)
To: Alexander Aring, linux-wpan; +Cc: kernel
[-- Attachment #1: Type: text/plain, Size: 501 bytes --]
On 03/03/2015 11:27 PM, Alexander Aring wrote:
> This patch adds a IEEE802154_FCS_LEN for the frame check sequence also
> called CRC which is inside the MFR (MAC Footer).
I think you can sqaush patch 3 into 2.
Marc
--
Pengutronix e.K. | Marc Kleine-Budde |
Industrial Linux Solutions | Phone: +49-231-2826-924 |
Vertretung West/Dortmund | Fax: +49-5121-206917-5555 |
Amtsgericht Hildesheim, HRA 2686 | http://www.pengutronix.de |
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2015-03-03 22:31 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-03-03 22:27 [PATCH bluetooth-next 0/3] ieee802154: correct sifs handling and new defines Alexander Aring
2015-03-03 22:27 ` [PATCH bluetooth-next 1/3] mac802154: correct max sifs size handling Alexander Aring
2015-03-03 22:27 ` [PATCH bluetooth-next 2/3] ieee802154: add IEEE802154_MAX_SIFS_FRAME_SIZE Alexander Aring
2015-03-03 22:27 ` [PATCH bluetooth-next 3/3] ieee802154: add IEEE802154_FCS_LEN Alexander Aring
2015-03-03 22:31 ` Marc Kleine-Budde
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.