Re: [Douglas Geiger BBN 802.11b] Porting code on USRP2 problems


#1

Hi all,

I succeeded to make the simple_mac.py working. now it’s pinging
correctly but with a huge loss ratio. At first I disabled the carrier
sense functions but after I reactivated them but I’m not sure these
functions are working. I attached the 80211_mac folder so any suggestion
or amelioration is welcome. I used this command line to run the python
file: ./simple_mac.py -S 8 -v

I also hard_coded my mac adress so you need to change it before use.

you can see here the results that I have obtained by ping:

[root@wlab28 ~]# ping 10.0.0.1
PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data.
From 10.0.0.2 icmp_seq=2 Destination Host Unreachable
From 10.0.0.2 icmp_seq=3 Destination Host Unreachable
From 10.0.0.2 icmp_seq=4 Destination Host Unreachable
From 10.0.0.2 icmp_seq=5 Destination Host Unreachable
From 10.0.0.2 icmp_seq=6 Destination Host Unreachable
From 10.0.0.2 icmp_seq=7 Destination Host Unreachable
64 bytes from 10.0.0.1: icmp_seq=17 ttl=64 time=7.66 ms
64 bytes from 10.0.0.1: icmp_seq=24 ttl=64 time=15.3 ms
64 bytes from 10.0.0.1: icmp_seq=29 ttl=64 time=7.57 ms
64 bytes from 10.0.0.1: icmp_seq=33 ttl=64 time=8.12 ms
64 bytes from 10.0.0.1: icmp_seq=42 ttl=64 time=7.63 ms
64 bytes from 10.0.0.1: icmp_seq=49 ttl=64 time=8.13 ms
64 bytes from 10.0.0.1: icmp_seq=55 ttl=64 time=7.67 ms
64 bytes from 10.0.0.1: icmp_seq=56 ttl=64 time=7.74 ms
64 bytes from 10.0.0.1: icmp_seq=57 ttl=64 time=7.61 ms
64 bytes from 10.0.0.1: icmp_seq=69 ttl=64 time=8.10 ms
64 bytes from 10.0.0.1: icmp_seq=70 ttl=64 time=8.11 ms
64 bytes from 10.0.0.1: icmp_seq=76 ttl=64 time=8.06 ms
64 bytes from 10.0.0.1: icmp_seq=77 ttl=64 time=8.14 ms
64 bytes from 10.0.0.1: icmp_seq=80 ttl=64 time=7.56 ms
64 bytes from 10.0.0.1: icmp_seq=87 ttl=64 time=7.55 ms
64 bytes from 10.0.0.1: icmp_seq=90 ttl=64 time=7.50 ms
64 bytes from 10.0.0.1: icmp_seq=96 ttl=64 time=7.64 ms
64 bytes from 10.0.0.1: icmp_seq=97 ttl=64 time=7.99 ms
64 bytes from 10.0.0.1: icmp_seq=100 ttl=64 time=8.20 ms
64 bytes from 10.0.0.1: icmp_seq=101 ttl=64 time=8.13 ms
64 bytes from 10.0.0.1: icmp_seq=102 ttl=64 time=7.96 ms
64 bytes from 10.0.0.1: icmp_seq=104 ttl=64 time=8.03 ms
64 bytes from 10.0.0.1: icmp_seq=111 ttl=64 time=7.63 ms
64 bytes from 10.0.0.1: icmp_seq=124 ttl=64 time=8.14 ms
64 bytes from 10.0.0.1: icmp_seq=126 ttl=64 time=7.61 ms
64 bytes from 10.0.0.1: icmp_seq=130 ttl=64 time=7.69 ms
64 bytes from 10.0.0.1: icmp_seq=131 ttl=64 time=7.67 ms
64 bytes from 10.0.0.1: icmp_seq=132 ttl=64 time=7.61 ms
64 bytes from 10.0.0.1: icmp_seq=139 ttl=64 time=7.87 ms
64 bytes from 10.0.0.1: icmp_seq=140 ttl=64 time=7.86 ms
64 bytes from 10.0.0.1: icmp_seq=142 ttl=64 time=7.59 ms
64 bytes from 10.0.0.1: icmp_seq=146 ttl=64 time=8.17 ms
64 bytes from 10.0.0.1: icmp_seq=150 ttl=64 time=7.85 ms
64 bytes from 10.0.0.1: icmp_seq=151 ttl=64 time=7.68 ms
64 bytes from 10.0.0.1: icmp_seq=157 ttl=64 time=7.95 ms
64 bytes from 10.0.0.1: icmp_seq=161 ttl=64 time=7.76 ms
64 bytes from 10.0.0.1: icmp_seq=169 ttl=64 time=8.22 ms
64 bytes from 10.0.0.1: icmp_seq=171 ttl=64 time=8.07 ms
64 bytes from 10.0.0.1: icmp_seq=176 ttl=64 time=8.13 ms
64 bytes from 10.0.0.1: icmp_seq=180 ttl=64 time=8.19 ms
64 bytes from 10.0.0.1: icmp_seq=181 ttl=64 time=7.73 ms
64 bytes from 10.0.0.1: icmp_seq=182 ttl=64 time=8.04 ms
64 bytes from 10.0.0.1: icmp_seq=183 ttl=64 time=8.09 ms
64 bytes from 10.0.0.1: icmp_seq=187 ttl=64 time=8.18 ms
64 bytes from 10.0.0.1: icmp_seq=190 ttl=64 time=7.94 ms
64 bytes from 10.0.0.1: icmp_seq=210 ttl=64 time=8.03 ms
64 bytes from 10.0.0.1: icmp_seq=211 ttl=64 time=7.84 ms
64 bytes from 10.0.0.1: icmp_seq=213 ttl=64 time=7.61 ms
64 bytes from 10.0.0.1: icmp_seq=216 ttl=64 time=7.86 ms
64 bytes from 10.0.0.1: icmp_seq=221 ttl=64 time=7.96 ms
64 bytes from 10.0.0.1: icmp_seq=224 ttl=64 time=7.82 ms
64 bytes from 10.0.0.1: icmp_seq=225 ttl=64 time=7.74 ms
64 bytes from 10.0.0.1: icmp_seq=229 ttl=64 time=7.78 ms
64 bytes from 10.0.0.1: icmp_seq=236 ttl=64 time=8.00 ms
64 bytes from 10.0.0.1: icmp_seq=238 ttl=64 time=7.98 ms
64 bytes from 10.0.0.1: icmp_seq=246 ttl=64 time=16.4 ms
64 bytes from 10.0.0.1: icmp_seq=253 ttl=64 time=7.53 ms
64 bytes from 10.0.0.1: icmp_seq=270 ttl=64 time=8.42 ms
64 bytes from 10.0.0.1: icmp_seq=275 ttl=64 time=8.22 ms
64 bytes from 10.0.0.1: icmp_seq=276 ttl=64 time=8.14 ms
64 bytes from 10.0.0.1: icmp_seq=284 ttl=64 time=8.03 ms
64 bytes from 10.0.0.1: icmp_seq=296 ttl=64 time=7.65 ms
64 bytes from 10.0.0.1: icmp_seq=302 ttl=64 time=8.00 ms
64 bytes from 10.0.0.1: icmp_seq=306 ttl=64 time=7.66 ms
64 bytes from 10.0.0.1: icmp_seq=311 ttl=64 time=7.59 ms
64 bytes from 10.0.0.1: icmp_seq=322 ttl=64 time=8.06 ms
64 bytes from 10.0.0.1: icmp_seq=327 ttl=64 time=8.01 ms
64 bytes from 10.0.0.1: icmp_seq=331 ttl=64 time=8.02 ms
64 bytes from 10.0.0.1: icmp_seq=332 ttl=64 time=7.75 ms
64 bytes from 10.0.0.1: icmp_seq=341 ttl=64 time=8.28 ms
64 bytes from 10.0.0.1: icmp_seq=349 ttl=64 time=8.23 ms
64 bytes from 10.0.0.1: icmp_seq=350 ttl=64 time=8.27 ms
64 bytes from 10.0.0.1: icmp_seq=351 ttl=64 time=7.87 ms
64 bytes from 10.0.0.1: icmp_seq=352 ttl=64 time=7.90 ms
64 bytes from 10.0.0.1: icmp_seq=359 ttl=64 time=7.92 ms
64 bytes from 10.0.0.1: icmp_seq=360 ttl=64 time=7.95 ms
64 bytes from 10.0.0.1: icmp_seq=368 ttl=64 time=7.86 ms
64 bytes from 10.0.0.1: icmp_seq=371 ttl=64 time=14.7 ms
64 bytes from 10.0.0.1: icmp_seq=372 ttl=64 time=7.61 ms
64 bytes from 10.0.0.1: icmp_seq=376 ttl=64 time=7.95 ms
64 bytes from 10.0.0.1: icmp_seq=387 ttl=64 time=8.14 ms
64 bytes from 10.0.0.1: icmp_seq=391 ttl=64 time=8.14 ms
64 bytes from 10.0.0.1: icmp_seq=392 ttl=64 time=8.27 ms
64 bytes from 10.0.0.1: icmp_seq=393 ttl=64 time=7.88 ms
64 bytes from 10.0.0.1: icmp_seq=407 ttl=64 time=8.18 ms
64 bytes from 10.0.0.1: icmp_seq=410 ttl=64 time=7.68 ms
64 bytes from 10.0.0.1: icmp_seq=418 ttl=64 time=8.19 ms
64 bytes from 10.0.0.1: icmp_seq=439 ttl=64 time=7.60 ms
64 bytes from 10.0.0.1: icmp_seq=450 ttl=64 time=7.59 ms
64 bytes from 10.0.0.1: icmp_seq=465 ttl=64 time=7.54 ms
64 bytes from 10.0.0.1: icmp_seq=470 ttl=64 time=7.58 ms
64 bytes from 10.0.0.1: icmp_seq=479 ttl=64 time=8.08 ms
64 bytes from 10.0.0.1: icmp_seq=482 ttl=64 time=7.96 ms
64 bytes from 10.0.0.1: icmp_seq=498 ttl=64 time=8.15 ms
64 bytes from 10.0.0.1: icmp_seq=499 ttl=64 time=8.14 ms
64 bytes from 10.0.0.1: icmp_seq=514 ttl=64 time=8.06 ms
64 bytes from 10.0.0.1: icmp_seq=522 ttl=64 time=7.57 ms
64 bytes from 10.0.0.1: icmp_seq=527 ttl=64 time=7.95 ms
64 bytes from 10.0.0.1: icmp_seq=531 ttl=64 time=8.08 ms
64 bytes from 10.0.0.1: icmp_seq=540 ttl=64 time=7.60 ms
^C
— 10.0.0.1 ping statistics —
546 packets transmitted, 100 received, +6 errors, 81% packet loss, time
546190ms
rtt min/avg/max/mdev = 7.505/8.136/16.441/1.325 ms, pipe 3

Ben Yahmed


#2

Hi all,
I modified the gain in the bbn_80211_rx.py file from 46 to 27 and the
loss ratio has fallen down to 15-20%. Do you have any idea about the
best value to put?
this is the ping capture:

ping 10.0.0.1

PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data.
64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=51.9 ms
64 bytes from 10.0.0.1: icmp_seq=2 ttl=64 time=52.0 ms
64 bytes from 10.0.0.1: icmp_seq=3 ttl=64 time=52.0 ms
64 bytes from 10.0.0.1: icmp_seq=4 ttl=64 time=49.2 ms
64 bytes from 10.0.0.1: icmp_seq=5 ttl=64 time=49.4 ms
64 bytes from 10.0.0.1: icmp_seq=6 ttl=64 time=46.3 ms
64 bytes from 10.0.0.1: icmp_seq=7 ttl=64 time=45.7 ms
64 bytes from 10.0.0.1: icmp_seq=10 ttl=64 time=35.2 ms
64 bytes from 10.0.0.1: icmp_seq=12 ttl=64 time=35.1 ms
64 bytes from 10.0.0.1: icmp_seq=13 ttl=64 time=34.3 ms
64 bytes from 10.0.0.1: icmp_seq=15 ttl=64 time=32.5 ms
64 bytes from 10.0.0.1: icmp_seq=16 ttl=64 time=33.0 ms
64 bytes from 10.0.0.1: icmp_seq=17 ttl=64 time=29.7 ms
64 bytes from 10.0.0.1: icmp_seq=18 ttl=64 time=29.8 ms
64 bytes from 10.0.0.1: icmp_seq=19 ttl=64 time=28.7 ms
64 bytes from 10.0.0.1: icmp_seq=20 ttl=64 time=28.1 ms
64 bytes from 10.0.0.1: icmp_seq=21 ttl=64 time=27.2 ms
64 bytes from 10.0.0.1: icmp_seq=22 ttl=64 time=25.8 ms
64 bytes from 10.0.0.1: icmp_seq=23 ttl=64 time=24.2 ms
64 bytes from 10.0.0.1: icmp_seq=24 ttl=64 time=23.6 ms
64 bytes from 10.0.0.1: icmp_seq=25 ttl=64 time=22.4 ms
64 bytes from 10.0.0.1: icmp_seq=26 ttl=64 time=20.4 ms
64 bytes from 10.0.0.1: icmp_seq=27 ttl=64 time=21.5 ms
64 bytes from 10.0.0.1: icmp_seq=28 ttl=64 time=11.1 ms
64 bytes from 10.0.0.1: icmp_seq=29 ttl=64 time=10.9 ms
64 bytes from 10.0.0.1: icmp_seq=30 ttl=64 time=10.2 ms
64 bytes from 10.0.0.1: icmp_seq=31 ttl=64 time=11.3 ms
64 bytes from 10.0.0.1: icmp_seq=32 ttl=64 time=11.2 ms
64 bytes from 10.0.0.1: icmp_seq=33 ttl=64 time=10.7 ms
64 bytes from 10.0.0.1: icmp_seq=34 ttl=64 time=11.2 ms
64 bytes from 10.0.0.1: icmp_seq=36 ttl=64 time=9.74 ms
64 bytes from 10.0.0.1: icmp_seq=38 ttl=64 time=11.2 ms
64 bytes from 10.0.0.1: icmp_seq=39 ttl=64 time=10.7 ms
64 bytes from 10.0.0.1: icmp_seq=40 ttl=64 time=11.2 ms
64 bytes from 10.0.0.1: icmp_seq=41 ttl=64 time=10.8 ms
64 bytes from 10.0.0.1: icmp_seq=44 ttl=64 time=9.83 ms
64 bytes from 10.0.0.1: icmp_seq=45 ttl=64 time=10.4 ms
64 bytes from 10.0.0.1: icmp_seq=47 ttl=64 time=9.91 ms
64 bytes from 10.0.0.1: icmp_seq=48 ttl=64 time=10.1 ms
64 bytes from 10.0.0.1: icmp_seq=49 ttl=64 time=11.1 ms
64 bytes from 10.0.0.1: icmp_seq=50 ttl=64 time=10.4 ms
64 bytes from 10.0.0.1: icmp_seq=51 ttl=64 time=10.4 ms
64 bytes from 10.0.0.1: icmp_seq=52 ttl=64 time=10.7 ms
64 bytes from 10.0.0.1: icmp_seq=53 ttl=64 time=10.0 ms
64 bytes from 10.0.0.1: icmp_seq=54 ttl=64 time=16.3 ms
64 bytes from 10.0.0.1: icmp_seq=55 ttl=64 time=10.1 ms
64 bytes from 10.0.0.1: icmp_seq=56 ttl=64 time=10.6 ms
64 bytes from 10.0.0.1: icmp_seq=58 ttl=64 time=9.69 ms
64 bytes from 10.0.0.1: icmp_seq=60 ttl=64 time=10.2 ms
64 bytes from 10.0.0.1: icmp_seq=62 ttl=64 time=9.91 ms
64 bytes from 10.0.0.1: icmp_seq=63 ttl=64 time=10.3 ms
64 bytes from 10.0.0.1: icmp_seq=65 ttl=64 time=11.0 ms
64 bytes from 10.0.0.1: icmp_seq=67 ttl=64 time=10.1 ms
64 bytes from 10.0.0.1: icmp_seq=68 ttl=64 time=11.0 ms
64 bytes from 10.0.0.1: icmp_seq=69 ttl=64 time=15.5 ms
^C
— 10.0.0.1 ping statistics —
69 packets transmitted, 55 received, 20% packet loss, time 68792ms
rtt min/avg/max/mdev = 9.695/20.881/52.076/13.669 ms


#3

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Ben Yahmed wrote:

Hi all,
I modified the gain in the bbn_80211_rx.py file from 46 to 27 and the
loss ratio has fallen down to 15-20%. Do you have any idea about the
best value to put?
this is the ping capture:

ping 10.0.0.1 PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data.

I have a vague recollection that the BBN folks had a similar
experience/instruction to manually tweak the gains (depending on the
enviornment, tx/rx separation, etc.), and that there was no
one-size-fits-all. An AGC would be really nice, but not sure what the
best way to do that would be.
Doug


Doug G.
Research Assistant
Communications and Signal Processing Lab
Oklahoma State University
http://cspl.okstate.edu
removed_email_address@domain.invalid
removed_email_address@domain.invalid
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFKAeGwgfOzzR5bXIgRAhGYAKCYKijBqNRyk/NJtfJgaGwp2YCimACfRlcY
8nl86VfeVBFpe0HzOTj9YKY=
=Pg+K
-----END PGP SIGNATURE-----


#4

Hello Ben,

When I try to run the version of simple_mac that you posted, I get an
error.
It seems like an infinite loop that prints to stdout:

2nstreams:

It happens at the call to fg.rxpath.start() .

Do you have the same problem?

Thanks,
Miklos Christine

On Wed, May 6, 2009 at 10:46 AM, Ben Yahmed <


#5

Hi,

I do not encounter this problem, the simple_mac run in a correct way for
me. Do you use the latest versions of the firmware and fpga?

Ben Yahmed


#6

Hi Everyone,

I think I understand the problem with the DBPSK/DQPSK. Currently, the
modulate function modulates the entire packet as 2Mbps. However, the
PLCP
decode function expects the packet to be DBPSK for the header and then
DQPSK
for rest of the payload.

The solution I have devised is to rewrite the C++ processing blocks used
by
the modulator to handle the bit rate change.

If anyone else has a better idea to handle the switch, it would be
greatly
appricated.

–Colby

On Mon, May 11, 2009 at 1:45 AM, Ben Yahmed <


#7

Hello,

The USRP2 has a high data rate and it needs a lot of resources, I don’t
think that it is a good idea to run both USRP2’s on one machine.

Ben Yahmed


#8

Hello,

I don’t encounter this problem anymore. Someone else was trying to debug
the
code.

I tried to run both USRP2’s on one machine with 2 gigabit ethernet
ports. It
did not seem to work.
Does anyone know if it is possible to run both USRP2’s on one machine?

Thanks,
Miklos Christine

On Mon, May 11, 2009 at 1:45 AM, Ben Yahmed <