lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Mon, 5 Feb 2007 19:07:53 +0100
From:	Ivo van Doorn <ivdoorn@...il.com>
To:	Michael Buesch <mb@...sch.de>
Cc:	Jiri Benc <jbenc@...e.cz>,
	"John Linville" <linville@...driver.com>, netdev@...r.kernel.org,
	Michael Buesch <mbuesch@...enet.de>,
	Johannes Berg <johannes@...solutions.net>
Subject: Re: [PATCH 1/2] d80211: Add software RTS support

Hi,

> > > > Not all hardware are capable of generating their own RTS frames.
> > > > This patch will add support for creating the RTS frame in software,
> > > > when the driver requests this through the flag
> > > > IEEE80211_HW_SOFTWARE_RTS
> > > 
> > > It seems this is not the ideal solution. Most of drivers needing
> > > software RTS would need to remember the RTS frame somewhere (as they
> > > need to pass it together with the actual frame).
> > 
> > Well in case of rt2x00 (I am not sure which other drivers also need software RTS)
> > the rts packet is just inserted inside the packet ring and is treated as a regular
> > packet/fragment that has just been inserted by the driver.
> > 
> > This patch just adds this additional packet just before the real packet, and in case
> > the real packet could not be send the rts packet is stored in the
> > ieee80211_tx_stored_packet structure to be send later.
> 
> Ok, I see. But this is not going to work with bcm43xx.
> 
> I also sent a fix for rt2x00 to work with my patchset.

Did you already send that patchset to the netdev list?
Because I haven't seen a patch series about rts for d80211 yet.

> > > A better solution would be either to pass a pointer to RTS frame data
> > > in tx_control or to create a function returning RTS frame.
> > 
> > In case of rt2x00 this would deliver more problems, especially since it will use
> > a ring entry to send the rts frame and in case of rt2500usb and rt73usb it will
> > need a sk_buff structure since it needs to pass it to the device (where the sk_buff
> > will have some free tx_header_room for the descriptor.)
> 
> I don't understand this.
> You need to put in into the ring either way.

The new rt2500usb and rt73usb packet ring handling no longer use a DMA buffer
but instead send the sk_buffer->data pointer to the USB layer.
The solution as suggested by Jiri could be handled by making sure the rts allocated
buffer will also have a tx header room as set in the tx_header_room field. But I am not
sure if that would be a better solution than putting the rts packet in a sk_buffer that is being
send out just before the real packet...

For the timing problem you mentioned, another solution could be implemented,
like already mentioned on the d80211 TODO list, the dscape stack should be able
to send a signal to the driver that the last fragment was handed over, this signal can
be used by the driver to start sending out the queued packets. This would at least work
for rt2x00 where especially for PCI devices _no_ packets are being send until the TX ring
has been kicked.

Ivo

-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ