* [RFC 2/3] mac80211: Make use of the new F_TX_NOACK and F_TX_NOSEQ Radiotap TX flags
@ 2008-12-12 22:32 Stefanik Gábor
2008-12-12 22:39 ` Johannes Berg
0 siblings, 1 reply; 9+ messages in thread
From: Stefanik Gábor @ 2008-12-12 22:32 UTC (permalink / raw)
To: John W. Linville; +Cc: Johannes Berg, linux-wireless
[-- Attachment #1: Type: text/plain, Size: 2551 bytes --]
Honor the 2 new flags in the "TX Flags" Radiotap field, introduced in
the previous commit.
Signed-off-by: Gábor Stefanik <netrolller.3d@gmail.com>
---
Patch also available as an attachment in case Gmail decides to damage it.
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
index 155a204..141099a 100644
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -143,6 +143,8 @@ typedef unsigned __bitwise__ ieee80211_tx_result;
#define IEEE80211_TX_FRAGMENTED BIT(0)
#define IEEE80211_TX_UNICAST BIT(1)
#define IEEE80211_TX_PS_BUFFERED BIT(2)
+#define IEEE80211_TX_MON_NO_SEQ BIT(3)
+#define IEEE80211_TX_MON_NO_ACK BIT(4)
struct ieee80211_tx_data {
struct sk_buff *skb;
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index 0855cac..d08a25e 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -614,14 +614,12 @@ ieee80211_tx_h_sequence(struct ieee80211_tx_data *tx)
* number, if we have no matching interface then we
* neither assign one ourselves nor ask the driver to.
*/
- if (unlikely(!info->control.vif))
+ if (unlikely(!info->control.vif ||
+ tx->flags & IEEE80211_TX_MON_NO_SEQ ||
+ ieee80211_is_ctl(hdr->frame_control)) ||
+ ieee80211_hdrlen(hdr->frame_control) < 24)
return TX_CONTINUE;
- if (unlikely(ieee80211_is_ctl(hdr->frame_control)))
- return TX_CONTINUE;
-
- if (ieee80211_hdrlen(hdr->frame_control) < 24)
- return TX_CONTINUE;
/*
* Anything but QoS data that has a sequence number field
@@ -913,13 +911,17 @@ __ieee80211_parse_tx_radiotap(struct
ieee80211_tx_data *tx,
if (*iterator.this_arg & IEEE80211_RADIOTAP_F_FRAG)
tx->flags |= IEEE80211_TX_FRAGMENTED;
break;
-
+ case IEEE80211_RADIOTAP_TX_FLAGS:
+ if (*iterator.this_arg & IEEE80211_RADIOTAP_F_TX_NOACK)
+ tx->flags |= IEEE80211_TX_MON_NO_ACK;
+ if (*iterator.this_arg & IEEE80211_RADIOTAP_F_TX_NOSEQ)
+ tx->flags |= IEEE80211_TX_MON_NO_SEQ;
+ break;
/*
* Please update the file
* Documentation/networking/mac80211-injection.txt
* when parsing new fields here.
*/
-
default:
break;
}
@@ -1000,6 +1002,9 @@ __ieee80211_tx_prepare(struct ieee80211_tx_data *tx,
info->flags &= ~IEEE80211_TX_CTL_NO_ACK;
}
+ if (tx->flags & IEEE80211_TX_MON_NO_ACK)
+ info->flags |= IEEE80211_TX_CTL_NO_ACK;
+
if (tx->flags & IEEE80211_TX_FRAGMENTED) {
if ((tx->flags & IEEE80211_TX_UNICAST) &&
skb->len + FCS_LEN > local->fragmentation_threshold &&
[-- Attachment #2: 0002-mac80211-make-use-of-the-new-no-ack-and-no-seq-renumbering-tx-flags.patch --]
[-- Type: application/octet-stream, Size: 2250 bytes --]
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
index 155a204..141099a 100644
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -143,6 +143,8 @@ typedef unsigned __bitwise__ ieee80211_tx_result;
#define IEEE80211_TX_FRAGMENTED BIT(0)
#define IEEE80211_TX_UNICAST BIT(1)
#define IEEE80211_TX_PS_BUFFERED BIT(2)
+#define IEEE80211_TX_MON_NO_SEQ BIT(3)
+#define IEEE80211_TX_MON_NO_ACK BIT(4)
struct ieee80211_tx_data {
struct sk_buff *skb;
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index 0855cac..d08a25e 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -614,14 +614,12 @@ ieee80211_tx_h_sequence(struct ieee80211_tx_data *tx)
* number, if we have no matching interface then we
* neither assign one ourselves nor ask the driver to.
*/
- if (unlikely(!info->control.vif))
+ if (unlikely(!info->control.vif ||
+ tx->flags & IEEE80211_TX_MON_NO_SEQ ||
+ ieee80211_is_ctl(hdr->frame_control)) ||
+ ieee80211_hdrlen(hdr->frame_control) < 24)
return TX_CONTINUE;
- if (unlikely(ieee80211_is_ctl(hdr->frame_control)))
- return TX_CONTINUE;
-
- if (ieee80211_hdrlen(hdr->frame_control) < 24)
- return TX_CONTINUE;
/*
* Anything but QoS data that has a sequence number field
@@ -913,13 +911,17 @@ __ieee80211_parse_tx_radiotap(struct ieee80211_tx_data *tx,
if (*iterator.this_arg & IEEE80211_RADIOTAP_F_FRAG)
tx->flags |= IEEE80211_TX_FRAGMENTED;
break;
-
+ case IEEE80211_RADIOTAP_TX_FLAGS:
+ if (*iterator.this_arg & IEEE80211_RADIOTAP_F_TX_NOACK)
+ tx->flags |= IEEE80211_TX_MON_NO_ACK;
+ if (*iterator.this_arg & IEEE80211_RADIOTAP_F_TX_NOSEQ)
+ tx->flags |= IEEE80211_TX_MON_NO_SEQ;
+ break;
/*
* Please update the file
* Documentation/networking/mac80211-injection.txt
* when parsing new fields here.
*/
-
default:
break;
}
@@ -1000,6 +1002,9 @@ __ieee80211_tx_prepare(struct ieee80211_tx_data *tx,
info->flags &= ~IEEE80211_TX_CTL_NO_ACK;
}
+ if (tx->flags & IEEE80211_TX_MON_NO_ACK)
+ info->flags |= IEEE80211_TX_CTL_NO_ACK;
+
if (tx->flags & IEEE80211_TX_FRAGMENTED) {
if ((tx->flags & IEEE80211_TX_UNICAST) &&
skb->len + FCS_LEN > local->fragmentation_threshold &&
^ permalink raw reply related [flat|nested] 9+ messages in thread* Re: [RFC 2/3] mac80211: Make use of the new F_TX_NOACK and F_TX_NOSEQ Radiotap TX flags
2008-12-12 22:32 [RFC 2/3] mac80211: Make use of the new F_TX_NOACK and F_TX_NOSEQ Radiotap TX flags Stefanik Gábor
@ 2008-12-12 22:39 ` Johannes Berg
2008-12-12 22:43 ` Stefanik Gábor
0 siblings, 1 reply; 9+ messages in thread
From: Johannes Berg @ 2008-12-12 22:39 UTC (permalink / raw)
To: Stefanik Gábor; +Cc: John W. Linville, linux-wireless
[-- Attachment #1: Type: text/plain, Size: 849 bytes --]
On Fri, 2008-12-12 at 23:32 +0100, Stefanik Gábor wrote:
> Honor the 2 new flags in the "TX Flags" Radiotap field, introduced in
> the previous commit.
>
> Signed-off-by: Gábor Stefanik <netrolller.3d@gmail.com>
>
> ---
>
> Patch also available as an attachment in case Gmail decides to damage it.
>
> diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
> index 155a204..141099a 100644
> --- a/net/mac80211/ieee80211_i.h
> +++ b/net/mac80211/ieee80211_i.h
> @@ -143,6 +143,8 @@ typedef unsigned __bitwise__ ieee80211_tx_result;
> #define IEEE80211_TX_FRAGMENTED BIT(0)
> #define IEEE80211_TX_UNICAST BIT(1)
> #define IEEE80211_TX_PS_BUFFERED BIT(2)
> +#define IEEE80211_TX_MON_NO_SEQ BIT(3)
> +#define IEEE80211_TX_MON_NO_ACK BIT(4)
You don't need that, you can directly modify info.
johannes
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [RFC 2/3] mac80211: Make use of the new F_TX_NOACK and F_TX_NOSEQ Radiotap TX flags
2008-12-12 22:39 ` Johannes Berg
@ 2008-12-12 22:43 ` Stefanik Gábor
2008-12-12 22:45 ` Johannes Berg
0 siblings, 1 reply; 9+ messages in thread
From: Stefanik Gábor @ 2008-12-12 22:43 UTC (permalink / raw)
To: Johannes Berg; +Cc: John W. Linville, linux-wireless
On Fri, Dec 12, 2008 at 11:39 PM, Johannes Berg
<johannes@sipsolutions.net> wrote:
> On Fri, 2008-12-12 at 23:32 +0100, Stefanik G=E1bor wrote:
>> Honor the 2 new flags in the "TX Flags" Radiotap field, introduced i=
n
>> the previous commit.
>>
>> Signed-off-by: G=E1bor Stefanik <netrolller.3d@gmail.com>
>>
>> ---
>>
>> Patch also available as an attachment in case Gmail decides to damag=
e it.
>>
>> diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
>> index 155a204..141099a 100644
>> --- a/net/mac80211/ieee80211_i.h
>> +++ b/net/mac80211/ieee80211_i.h
>> @@ -143,6 +143,8 @@ typedef unsigned __bitwise__ ieee80211_tx_result=
;
>> #define IEEE80211_TX_FRAGMENTED BIT(0)
>> #define IEEE80211_TX_UNICAST BIT(1)
>> #define IEEE80211_TX_PS_BUFFERED BIT(2)
>> +#define IEEE80211_TX_MON_NO_SEQ BIT(3)
>> +#define IEEE80211_TX_MON_NO_ACK BIT(4)
>
> You don't need that, you can directly modify info.
>
> johannes
>
I tried, but for some reason setting IEEE80211_TX_CTL_NO_ACK directly
in __ieee80211_parse_tx_radiotap resulted in an oops upon unloading
the driver module.
Note that IEEE80211_TX_MON_NO_ACK is not equivalent to
!(IEEE80211_TX_CTL_ASSIGN_SEQ), as it also disables mac80211's built
in sequence numbering.
--=20
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
--
To unsubscribe from this list: send the line "unsubscribe linux-wireles=
s" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [RFC 2/3] mac80211: Make use of the new F_TX_NOACK and F_TX_NOSEQ Radiotap TX flags
2008-12-12 22:43 ` Stefanik Gábor
@ 2008-12-12 22:45 ` Johannes Berg
2008-12-12 22:51 ` Stefanik Gábor
0 siblings, 1 reply; 9+ messages in thread
From: Johannes Berg @ 2008-12-12 22:45 UTC (permalink / raw)
To: Stefanik Gábor; +Cc: John W. Linville, linux-wireless
[-- Attachment #1: Type: text/plain, Size: 652 bytes --]
On Fri, 2008-12-12 at 23:43 +0100, Stefanik Gábor wrote:
> I tried, but for some reason setting IEEE80211_TX_CTL_NO_ACK directly
> in __ieee80211_parse_tx_radiotap resulted in an oops upon unloading
> the driver module.
Huh? That doesn't make sense. Do you have more information on that?
> Note that IEEE80211_TX_MON_NO_ACK is not equivalent to
> !(IEEE80211_TX_CTL_ASSIGN_SEQ), as it also disables mac80211's built
> in sequence numbering.
Ah. But there's precedence for just doing
if (unlikely(!(info->flags & ASSIGN_SEQ)))
return;
in the handler that assigns the seq, and I prefer that over adding a new
flag.
johannes
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [RFC 2/3] mac80211: Make use of the new F_TX_NOACK and F_TX_NOSEQ Radiotap TX flags
2008-12-12 22:45 ` Johannes Berg
@ 2008-12-12 22:51 ` Stefanik Gábor
2008-12-12 22:52 ` Johannes Berg
2008-12-12 22:56 ` Johannes Berg
0 siblings, 2 replies; 9+ messages in thread
From: Stefanik Gábor @ 2008-12-12 22:51 UTC (permalink / raw)
To: Johannes Berg; +Cc: John W. Linville, linux-wireless
On Fri, Dec 12, 2008 at 11:45 PM, Johannes Berg
<johannes@sipsolutions.net> wrote:
> On Fri, 2008-12-12 at 23:43 +0100, Stefanik G=E1bor wrote:
>
>> I tried, but for some reason setting IEEE80211_TX_CTL_NO_ACK directl=
y
>> in __ieee80211_parse_tx_radiotap resulted in an oops upon unloading
>> the driver module.
>
> Huh? That doesn't make sense. Do you have more information on that?
>
>> Note that IEEE80211_TX_MON_NO_ACK is not equivalent to
>> !(IEEE80211_TX_CTL_ASSIGN_SEQ), as it also disables mac80211's built
>> in sequence numbering.
>
> Ah. But there's precedence for just doing
>
> if (unlikely(!(info->flags & ASSIGN_SEQ)))
> return;
>
> in the handler that assigns the seq, and I prefer that over adding a =
new
> flag.
>
> johannes
>
But if we redefine !ASSIGN_SEQ to mean "use the sequence number
supplied by userspace", we will need a new flag to distinguish between
driver-level vs. stack-level sequence number assignments, which is
essentially the same as this patch. There is no way to switch between
3 states (control in driver, stack or userspace) using only one bit.
--=20
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
--
To unsubscribe from this list: send the line "unsubscribe linux-wireles=
s" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [RFC 2/3] mac80211: Make use of the new F_TX_NOACK and F_TX_NOSEQ Radiotap TX flags
2008-12-12 22:51 ` Stefanik Gábor
@ 2008-12-12 22:52 ` Johannes Berg
2008-12-12 23:00 ` Stefanik Gábor
2008-12-12 22:56 ` Johannes Berg
1 sibling, 1 reply; 9+ messages in thread
From: Johannes Berg @ 2008-12-12 22:52 UTC (permalink / raw)
To: Stefanik Gábor; +Cc: John W. Linville, linux-wireless
[-- Attachment #1: Type: text/plain, Size: 499 bytes --]
On Fri, 2008-12-12 at 23:51 +0100, Stefanik Gábor wrote:
> But if we redefine !ASSIGN_SEQ to mean "use the sequence number
> supplied by userspace", we will need a new flag to distinguish between
> driver-level vs. stack-level sequence number assignments, which is
> essentially the same as this patch. There is no way to switch between
> 3 states (control in driver, stack or userspace) using only one bit.
Good point, I forgot about that. But that isn't true for no-ack :)
johannes
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [RFC 2/3] mac80211: Make use of the new F_TX_NOACK and F_TX_NOSEQ Radiotap TX flags
2008-12-12 22:52 ` Johannes Berg
@ 2008-12-12 23:00 ` Stefanik Gábor
2008-12-12 23:01 ` Johannes Berg
0 siblings, 1 reply; 9+ messages in thread
From: Stefanik Gábor @ 2008-12-12 23:00 UTC (permalink / raw)
To: Johannes Berg; +Cc: John W. Linville, linux-wireless
On Fri, Dec 12, 2008 at 11:52 PM, Johannes Berg
<johannes@sipsolutions.net> wrote:
> On Fri, 2008-12-12 at 23:51 +0100, Stefanik G=E1bor wrote:
>
>> But if we redefine !ASSIGN_SEQ to mean "use the sequence number
>> supplied by userspace", we will need a new flag to distinguish betwe=
en
>> driver-level vs. stack-level sequence number assignments, which is
>> essentially the same as this patch. There is no way to switch betwee=
n
>> 3 states (control in driver, stack or userspace) using only one bit.
>
> Good point, I forgot about that. But that isn't true for no-ack :)
>
> johannes
>
By the way, here is a bit more about the oops:
It only seems to happen if I set TX_CTL_NO_ACK directly in
parse_tx_radiotap *and* add a printk to assign_seq that depends on
TX_CTL_NO_ACK. If I don't add the printk, no oops occurs, however it
seems that something unsets TX_CTL_NO_ACK after it is set in
parse_tx_radiotap.
And here is the log:
Dec 12 19:39:18 NR3DMain kernel: Oops: 0000 [#1] SMP
Dec 12 19:39:18 NR3DMain kernel: last sysfs file: /sys/module/rt73usb/s=
rcversion
Dec 12 19:39:18 NR3DMain kernel: Modules linked in: b43 zd1211rw
rtl8187(-) ath5k rt73usb rt2x00usb rt2x00lib mac80211 cfg80211
af_packet ocfs2_dlmfs ocfs2_dlm ocfs2_nodemanager configfs ipv6
snd_pcm_oss snd_mixer_oss snd_seq snd_seq_device rfkill_input bridge
stp bnep binfmt_misc microcode fuse ext3 jbd mbcache loop dm_mod
nvidiafb rfcomm input_polldev fb_ddc l2cap i2c_algo_bit crc_itu_t
vgastate arc4 snd_hda_intel snd_pcm ssb ecb snd_timer snd_page_alloc
pcmcia btusb rfkill nvidia(P) intel_agp snd_hwdep rtc_cmos i2c_i801
ohci1394 eeprom_93cx6 led_class agpgart r8169 rtc_core ahci iTCO_wdt
snd pcmcia_core ieee1394 sr_mod button i2c_core cdrom sky2 mii joydev
rtc_lib soundcore bluetooth iTCO_vendor_support sg sd_mod crc_t10dif
pata_acpi usbhid hid ata_generic ata_piix pata_jmicron ide_pci_generic
ide_core ehci_hcd uhci_hcd usbcore edd reiserfs fan pata_amd libata
scsi_mod thermal processor [last unloaded: cfg80211]
Dec 12 19:39:18 NR3DMain kernel:
Dec 12 19:39:18 NR3DMain kernel: Pid: 1874, comm: rmmod Tainted: P
(2.6.28-rc6-wl-wireless12 #2) P5K Premium
Dec 12 19:39:18 NR3DMain kernel: EIP: 0060:[<f994a069>] EFLAGS: 0021020=
2 CPU: 0
Dec 12 19:39:18 NR3DMain kernel: EIP is at reg_device_remove+0x9/0x30 [=
cfg80211]
Dec 12 19:39:18 NR3DMain kernel: EAX: f3530040 EBX: f353000c ECX:
00000000 EDX: f1c24640
Dec 12 19:39:18 NR3DMain kernel: ESI: f3530000 EDI: f3530040 EBP:
f3d61e70 ESP: f3d61e70
Dec 12 19:39:18 NR3DMain kernel: DS: 007b ES: 007b FS: 00d8 GS: 0033 S=
S: 0068
Dec 12 19:39:18 NR3DMain kernel: Process rmmod (pid: 1874, ti=3Df3d6000=
0
task=3Df0939900 task.ti=3Df3d60000)
Dec 12 19:39:18 NR3DMain kernel: Stack:
Dec 12 19:39:18 NR3DMain kernel: f3d61e84 f9949239 f35301c0 f6adba00
00000000 f3d61e98 f995917d 00000003
Dec 12 19:39:18 NR3DMain kernel: f3d61ea8 f35301c0 f3d61ea8 f8d57fb3
f6adba00 f6adba1c f3d61ec4 f99cce4b
Dec 12 19:39:18 NR3DMain kernel: f8d5a700 f7786c00 f6adba94 f6adba1c
f8d5a734 f3d61ed8 c02bcb64 f6adba1c
Dec 12 19:39:18 NR3DMain kernel: Call Trace:
Dec 12 19:39:18 NR3DMain kernel: [<f9949239>] ?
wiphy_unregister+0x39/0x80 [cfg80211]
Dec 12 19:39:18 NR3DMain kernel: [<f995917d>] ?
ieee80211_unregister_hw+0xad/0xd0 [mac80211]
Dec 12 19:39:18 NR3DMain kernel: [<f8d57fb3>] ?
rtl8187_disconnect+0x18/0x34 [rtl8187]
Dec 12 19:39:18 NR3DMain kernel: [<f99cce4b>] ?
usb_unbind_interface+0x4b/0xf0 [usbcore]
Dec 12 19:39:18 NR3DMain kernel: [<c02bcb64>] ?
__device_release_driver+0x74/0xb0
Dec 12 19:39:18 NR3DMain kernel: [<c02bcc3f>] ? driver_detach+0x9f/0xb=
0
Dec 12 19:39:18 NR3DMain kernel: [<c02bbd54>] ? bus_remove_driver+0x84=
/0xf0
Dec 12 19:39:18 NR3DMain kernel: [<c02bd2e1>] ? driver_unregister+0x31=
/0x40
Dec 12 19:39:18 NR3DMain kernel: [<f99ccc37>] ?
usb_deregister+0x97/0xb0 [usbcore]
Dec 12 19:39:18 NR3DMain kernel: [<f8d57f99>] ? rtl8187_exit+0xd/0xf [=
rtl8187]
Dec 12 19:39:18 NR3DMain kernel: [<c015ea93>] ? sys_delete_module+0x16=
3/0x250
Dec 12 19:39:18 NR3DMain kernel: [<c018ec03>] ? do_munmap+0x223/0x280
Dec 12 19:39:18 NR3DMain kernel: [<c0103f47>] ? sysenter_do_call+0x12/=
0x2f
Dec 12 19:39:18 NR3DMain kernel: Code: f7 e1 8b 45 d4 c1 ea 05 39 f2
0f 4e f2 89 70 14 e9 77 ff ff ff 8d b6 00 00 00 00 8d bc 27 00 00 00
00 8b 0d 08 29 95 f9 55 89 e5 <8b> 11 85 d2 74 04 39 c2 74 05 5d c3 8d
76 00 c7 01 00 00 00 00
Dec 12 19:39:18 NR3DMain kernel: EIP: [<f994a069>]
reg_device_remove+0x9/0x30 [cfg80211] SS:ESP 0068:f3d61e70
Dec 12 19:39:18 NR3DMain kernel: ---[ end trace 0a56f848902ec565 ]---
--
To unsubscribe from this list: send the line "unsubscribe linux-wireles=
s" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 9+ messages in thread* Re: [RFC 2/3] mac80211: Make use of the new F_TX_NOACK and F_TX_NOSEQ Radiotap TX flags
2008-12-12 23:00 ` Stefanik Gábor
@ 2008-12-12 23:01 ` Johannes Berg
0 siblings, 0 replies; 9+ messages in thread
From: Johannes Berg @ 2008-12-12 23:01 UTC (permalink / raw)
To: Stefanik Gábor; +Cc: John W. Linville, linux-wireless
[-- Attachment #1: Type: text/plain, Size: 823 bytes --]
On Sat, 2008-12-13 at 00:00 +0100, Stefanik Gábor wrote:
> On Fri, Dec 12, 2008 at 11:52 PM, Johannes Berg
> <johannes@sipsolutions.net> wrote:
> > On Fri, 2008-12-12 at 23:51 +0100, Stefanik Gábor wrote:
> >
> >> But if we redefine !ASSIGN_SEQ to mean "use the sequence number
> >> supplied by userspace", we will need a new flag to distinguish between
> >> driver-level vs. stack-level sequence number assignments, which is
> >> essentially the same as this patch. There is no way to switch between
> >> 3 states (control in driver, stack or userspace) using only one bit.
> >
> > Good point, I forgot about that. But that isn't true for no-ack :)
> >
> > johannes
> >
>
> By the way, here is a bit more about the oops:
For that to make any sense, you'd have to show me the code too :)
johannes
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [RFC 2/3] mac80211: Make use of the new F_TX_NOACK and F_TX_NOSEQ Radiotap TX flags
2008-12-12 22:51 ` Stefanik Gábor
2008-12-12 22:52 ` Johannes Berg
@ 2008-12-12 22:56 ` Johannes Berg
1 sibling, 0 replies; 9+ messages in thread
From: Johannes Berg @ 2008-12-12 22:56 UTC (permalink / raw)
To: Stefanik Gábor; +Cc: John W. Linville, linux-wireless
[-- Attachment #1: Type: text/plain, Size: 756 bytes --]
On Fri, 2008-12-12 at 23:51 +0100, Stefanik Gábor wrote:
> But if we redefine !ASSIGN_SEQ to mean "use the sequence number
> supplied by userspace", we will need a new flag to distinguish between
> driver-level vs. stack-level sequence number assignments, which is
> essentially the same as this patch. There is no way to switch between
> 3 states (control in driver, stack or userspace) using only one bit.
No, wait, that's not true. We just have to make the bit be set to 1 by
default, and let radiotap or the stack clear it. Then if it's clear
after radiotap, the stack won't assign a seqno, and if it's still set
then the stack checks and assigns seq and/or clears it.
Might be easier to use the other bit though instead.
johannes
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2008-12-12 23:01 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-12-12 22:32 [RFC 2/3] mac80211: Make use of the new F_TX_NOACK and F_TX_NOSEQ Radiotap TX flags Stefanik Gábor
2008-12-12 22:39 ` Johannes Berg
2008-12-12 22:43 ` Stefanik Gábor
2008-12-12 22:45 ` Johannes Berg
2008-12-12 22:51 ` Stefanik Gábor
2008-12-12 22:52 ` Johannes Berg
2008-12-12 23:00 ` Stefanik Gábor
2008-12-12 23:01 ` Johannes Berg
2008-12-12 22:56 ` Johannes Berg
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox