hostap mode and wpa-psk with ral(4) problem
Dominique Goncalves
dominique.goncalves at gmail.com
Mon Mar 6 21:42:12 UTC 2006
Hi,
On 3/6/06, Sam Leffler <sam at errno.com> wrote:
> Jacco Braat wrote:
> > Hi,
> >
> > more people have problem with ral driver in hostap mode. the maintainer
> > knows about it and promised to look into it before 6.1 release
> > http://damien.bergamini.free.fr/ral/forum/read.php?f=1&i=225&t=163#reply_225
> >
> > authentication is succesfull, but there is a problem with arp and dhcp.
> >
> > in sys/net80211/ieee80211_input.c (ieee80211_deliver_data) there is some
> > code to bridge incomming packets to other connected stations. It looks
> > like the driver does not handle these packets correctly.
> >
> > ifconfig wifi0 -apbridge
> >
> > disables this feature, then you should be able to connect normally
>
> I just tested both ath and ral in hostap w/ wpa-psk and both worked fine
> for me (powerbook as sta/supplicant, tkip for ptk+gtk). I did notice
> one bogon in ieee80211_deliver_data that might be causing the problem.
> When apbridge is enabled multicast frames are duplicated with
> m_copypacket which does a shallow copy and not a deep copy of the frame.
> If the data resides in a cluster (as is typical) then when the frame
> is turned around for retransmit over the wireless interface the output
> path may alter the mbuf contents. If this happens before the original
> packet gets passed through the bridge and out the wired interface then I
> can imagine problems of the sort reported. Not sure why this never
> surfaced before but if I'm right the attached change should fix the
> problem (the patch is against stable but should be usable on head).
>
> Sam
>
>
> Index: ieee80211_input.c
> ===================================================================
> RCS file: /usr/ncvs/src/sys/net80211/ieee80211_input.c,v
> retrieving revision 1.62.2.9
> diff -u -r1.62.2.9 ieee80211_input.c
> --- ieee80211_input.c 16 Feb 2006 16:57:24 -0000 1.62.2.9
> +++ ieee80211_input.c 6 Mar 2006 20:25:29 -0000
> @@ -674,7 +674,7 @@
> struct mbuf *m1 = NULL;
>
> if (ETHER_IS_MULTICAST(eh->ether_dhost)) {
> - m1 = m_copypacket(m, M_DONTWAIT);
> + m1 = m_dup(m, M_DONTWAIT);
> if (m1 == NULL)
> ifp->if_oerrors++;
> else
Your patch fix the problem, tested on RELENG_6
$ uname -a
FreeBSD djdomics.sceen.net 6.1-PRERELEASE FreeBSD 6.1-PRERELEASE #3:
Mon Mar 6 22:11:14 CET 2006
root at djdomics.sceen.net:/usr/obj/usr/src/sys/DJDOMICS i386
Thank you, your work is much appreciated.
> _______________________________________________
> freebsd-current at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe at freebsd.org"
>
>
--
There's this old saying: "Give a man a fish, feed him for a day. Teach
a man to fish, feed him for life."
More information about the freebsd-current
mailing list