All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.