Hi. I'm taking a board that's using WL1271 with DM3730 running rowboat ics 4.03 through wifi certification. We're currently failing a multicast test 5.2.14. In debugging this, I found the following:
a) working case using same board with ethernet
root@localhost:/# iperf -s -u -B 226.94.1.1 -i 1
------------------------------------------------------------
Server listening on UDP port 5001
Binding to local address 226.94.1.1
Joining multicast group 226.94.1.1
Receiving 1470 byte datagrams
UDP buffer size: 108 KByte (default)
------------------------------------------------------------
[ 3] local 226.94.1.1 port 5001 connected with 192.168.100.208 port 55340
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 3] 0.0- 1.0 sec 128 KBytes 1.05 Mbits/sec 0.039 ms 0/ 89 (0%)
[ 3] 1.0- 2.0 sec 128 KBytes 1.05 Mbits/sec 0.105 ms 0/ 89 (0%)
[ 3] 2.0- 3.0 sec 128 KBytes 1.05 Mbits/sec 0.048 ms 0/ 89 (0%)
[ 3] 0.0- 3.0 sec 386 KBytes 1.05 Mbits/sec 0.045 ms 0/ 269 (0%)
PC then does:
iperf -c 226.94.1.1 -u -T 32 -t 3 -i 1
As can be seen above, there's no lost packets.
b) Now repeat same test but running on wifi (wl12xx driver with wl1271) instead of ethernet.
root@localhost:/# iperf -s -u -B 226.94.1.1 -i 1
------------------------------------------------------------
Server listening on UDP port 5001
Binding to local address 226.94.1.1
Joining multicast group 226.94.1.1
Receiving 1470 byte datagrams
UDP buffer size: 108 KByte (default)
------------------------------------------------------------
[ 3] local 226.94.1.1 port 5001 connected with 192.168.100.208 port 60448
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 3] 0.0- 1.0 sec 122 KBytes 1000 Kbits/sec 5.177 ms 168/ 253 (66%)
[ 3] 0.0- 1.1 sec 145 KBytes 1.04 Mbits/sec 5.354 ms 168/ 269 (62%)
As can be seen above, the percentage of lost packets is very high, about 70%. This is even though the link quality with the AP is good. I've tried different APs and the behavior is still the same. High levels of loss. Sometimes as high as 90%.
The system is running 2.6.37 from rowboat ics 4.03:
root@localhost:/# iwconfig wlan0
wlan0 IEEE 802.11abg ESSID:"blahblahssidname"
Mode:Managed Frequency:2.457 GHz Access Point: ...
Bit Rate=1 Mb/s Tx-Power=20 dBm
Retry long limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:on
Link Quality=65/70 Signal level=-45 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
wl12xx: driver version: ol_R5.00.21
wl12xx: firmware booted (Rev 6.3.9.0.117)
If I switch from using multicast to unicast, ie:
root@localhost:/# iperf -s -u -i 1
------------------------------------------------------------
Server listening on UDP port 5001
Receiving 1470 byte datagrams
UDP buffer size: 108 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.100.172 port 5001 connected with 192.168.100.208 port 47679
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 3] 0.0- 1.0 sec 136 KBytes 1.12 Mbits/sec 2.045 ms 0/ 95 (0%)
[ 3] 1.0- 2.0 sec 129 KBytes 1.06 Mbits/sec 6.276 ms 0/ 90 (0%)
[ 3] 0.0- 2.9 sec 383 KBytes 1.07 Mbits/sec 3.341 ms 2/ 269 (0.74%)
So with unicast, the performance is consistently good which suggests it is something specific about wl12xx or wl1271's handling of multicast that is related to the problem.
I would welcome any suggestions/advice.
Thanks,
jayakumar