You are not logged in.
Pages: 1 2
I need to use w3_OFDM_ReferenceDesign_v18p1 within WARPNet framework.
I have connected two radios (W3) via Gig Ethernet switch and successfully tested WARPLab.
I am using SD cards to boot the radios and which bit files are needed to be copied while using WARPnet. In bit file directory there are download-warpnet.bit, download-csmamac.bit and download-nomac.bit. In the long run I plan to use WARPNet framework for my work and would appreciate if you can provide some example runs.
Thanks
Offline
What is your goal for this project? While the OFDM reference design is useful, you might find the 802.11 Reference Design and the WARPnet 2.0 Experiment Framework a better fit for your application.
To answer your questions about the OFDM reference design, the three bit files refer to the different applications within the OFDM Reference Design documentation. As you can see from the descriptions, the Bridge application uses the noMAC bitstream. The CSMA application uses the csmaMAC bitstream. The WARPnet application uses the warpnet bitstream. To find more information on how to set up WARPnet 1.0, see the installation instructions and system requirements.
Offline
Many thanks for your reply.
The reason for this project is to understand control and design of different MAC implementations in WARPnet python framework. Nodes are connected by coax cable with 60dB attenuation. Both nodes are connected to a single laptop (with IP 10.0.0.250) using a Gbit Ethernet switch.
After following instructions in the link http://warpproject.org/trac/wiki/WARPnet1/Installation and copying download-warpnet.bit to SD cards (each node displays 0 and 1 at the start) , once tried with TxPower_vs_PER.py and TxPower_vs_BER.py cannot see any Tx and Rx packets recorded in twoNode_PER_Test_v0.m (this confirmed with running WireShark as well).
Would like to have your feedback on this issue.
Thanks
The server, client and ber_processor show the following:
===========================================================
warpnet_server:sudo python warpnet_server.py eth0 10101 dc:0e:a1:30:6b:10
Started WARPnet Server. Listening on port 10101.
Connected to 1
Unhandled Error
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/twisted/python/log.py", line 88, in callWithLogger
return callWithContext({"system": lp}, func, *args, **kw)
File "/usr/local/lib/python2.7/dist-packages/twisted/python/log.py", line 73, in callWithContext
return context.call({ILogContext: newCtx}, func, *args, **kw)
File "/usr/local/lib/python2.7/dist-packages/twisted/python/context.py", line 118, in callWithContext
return self.currentContext().callWithContext(ctx, func, *args, **kw)
File "/usr/local/lib/python2.7/dist-packages/twisted/python/context.py", line 81, in callWithContext
return func(*args,**kw)
--- <exception caught here> ---
File "/usr/local/lib/python2.7/dist-packages/twisted/internet/posixbase.py", line 614, in _doReadOrWrite
why = selectable.doRead()
File "/usr/local/lib/python2.7/dist-packages/twisted/internet/tcp.py", line 214, in doRead
return self._dataReceived(data)
File "/usr/local/lib/python2.7/dist-packages/twisted/internet/tcp.py", line 220, in _dataReceived
rval = self.protocol.dataReceived(data)
File "/usr/local/lib/python2.7/dist-packages/twisted/protocols/basic.py", line 180, in dataReceived
self._consumeData()
File "/usr/local/lib/python2.7/dist-packages/twisted/protocols/basic.py", line 225, in _consumeData
self._consumePayload()
File "/usr/local/lib/python2.7/dist-packages/twisted/protocols/basic.py", line 352, in _consumePayload
self._processPayload()
File "/usr/local/lib/python2.7/dist-packages/twisted/protocols/basic.py", line 398, in _processPayload
self.stringReceived(self._payload.getvalue()[:-1])
File "warpnet_server.py", line 478, in stringReceived
self.factory.processor.controllerMsg(self.id, dataDict)
File "warpnet_server.py", line 303, in controllerMsg
self.procFunc[data['pktType']](controllerID, data)
File "warpnet_server.py", line 433, in pc_data
self.factory.nodeManager.sendToNode(controllerID, group, structID, node, dataToSend, availability, ETH_HEADER)
File "warpnet_server.py", line 565, in sendToNode
self.existingConnections[nodeID][2].sendStruct(cID, cGrp, structID, nodeID, data, access, ethernetType)
File "warpnet_server.py", line 636, in sendStruct
self.connection.sendData(structPacket, ethernetType)
File "warpnet_server.py", line 733, in sendData
ethPkt.set_ether_type(ethernetType)
File "/usr/local/lib/python2.7/dist-packages/impacket/ImpactPacket.py", line 565, in set_ether_type
self.set_word(12 + 4*self.tag_cnt, aValue)
exceptions.AttributeError: WARPnetEthernetHeader instance has no attribute 'tag_cnt'
Lost connection to 1
=================================================
ber_processor: sudo ./ber_processor
Starting WARPnet BER Processor
Attaching to device eth0
Applied filter 'ether proto 0x9494'
=======================================================
warpnet_client:python TxPower_vs_PER.py
Successfully connected to WARPnet Server
Registered Group ID 0
Connected to nodes
resending after timeout data 13
resending after timeout data 13
resending after timeout data 13
resending after timeout data 13
resending after timeout data 13
resending after timeout data 13
....
Request timed out
resending after timeout data 27
resending after timeout data 27
resending after timeout data 27
resending after timeout data 27
resending after timeout data 27
resending after timeout data 27
resending after timeout data 27
resending after timeout data 27
resending after timeout data 27
resending after timeout data 27
Request timed out
############################################
############# Experiment Done! #############
############################################
Offline
Those errors look like they are happening in the Twisted package, which WARPnet 1.0 used for over-the-wire communication with the boards. I think the board isn't responding to the python script. Are you using WARP v3? If so, are you using Eth A for the connection back to the PC? I don't believe that we used Eth B for anything in the OFDM Reference Design.
Going back to a point that welsh was making earlier, unless you have made significant customizations to the OFDM Reference Design, there is really very little reason to stick with that design if you have WARP v3 hardware. The new 802.11 Reference Design + WARPnet 2.0 experiments framework is, frankly, superior in nearly every way. The basic idea is the same -- you can still control PHY and MAC parameters from Python using the new WARPnet 2.0 experiments framework. Also, it is *much* easier to use and get set up.
Here is the Getting Started guide for the new experiments framework
Here are some examples to try once you get everything set up
Offline
Many thanks for your reply. I took your advice and switched to 802.11 Reference Design.
I have tested WARPnet 2.0 successfully on Windows 7 platform for following examples.
http://warpproject.org/trac/wiki/802.11 … ingStarted
http://warpproject.org/trac/wiki/802.11 … p/examples
I need to move the implementation and testing to a Ubuntu platform.
Once I tried python blink_node_leds.py it gives the Permission Denied socket error in Ubuntu platform.
In both (Windows and Ubuntu) I am using the version Mango_802_11_RefDes_v0.93_beta.
Thanks
============================================
$ python blink_node_leds.py
Traceback (most recent call last):
File "blink_node_leds.py", line 30, in <module>
wn_util.wn_identify_all_nodes(HOST_INTERFACES)
File "/home/cognitive/WARP/RefDes_802_11_93/Python_Reference/wlan_exp/warpnet/util.py", line 143, in wn_identify_all_nodes
host_config = wn_config.HostConfiguration(host_interfaces=my_host_interfaces)
File "/home/cognitive/WARP/RefDes_802_11_93/Python_Reference/wlan_exp/warpnet/config.py", line 125, in __init__
inf = wn_util._check_host_interface(interface, my_bcast_port)
File "/home/cognitive/WARP/RefDes_802_11_93/Python_Reference/wlan_exp/warpnet/util.py", line 726, in _check_host_interface
s.connect((test_ip_addr, bcast_port))
File "/home/cognitive/anaconda/lib/python2.7/socket.py", line 224, in meth
return getattr(self._sock,name)(*args)
socket.error: [Errno 13] Permission denied
Offline
We had updated how we check the host IP address in order to make it more robust and unfortunately the code that works on Windows did not work on Mac and Ubuntu (originally I thought this was only a Mac issue but it looks like it applies to ubuntu as well).
There is a one line fix that you can find here.
Basically you cannot do a socket connect with a second argument of zero on a non-Windows OS (it has to be non-zero). However, a value of zero works just fine on Windows (which is why we had not caught it until recently). Please update the warpnet/util.py file with the appropriate fix. I apologize for the inconvenience and this will be fixed in the next release.
Offline
Many thanks for the reply. This is the only matching code in warpnet/util.py in the version Mango_802_11_RefDes_v0.93_beta (line 724 to 727) , which is different to the suggested link.
Thanks
-----------------------------------------------------------------------------------------------------------
# Create a temporary UDP socket to get the hostname
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect((test_ip_addr, bcast_port))
socket_name = s.getsockname()[0]
Offline
I didn't read the error message fully and thought you had run in to the issue we have seen in the 0.95 reference design. I just ran the v0.93 blink_node_leds.py script in a Ubuntu 12_04 virtual machine and it did not have any issues.
There might be some issues with your network configuration on your Ubuntu machine. If you are using the default host interface (ie HOST_INTERFACES = ['10.0.0.250']), then you need to have a valid network interface with an IP address of 10.0.0.250 and a mask of 255.255.255.0. You can run 'ifconfig' to see your networking information.
As a standalone test so you don't have any WARPNet code in the mix, you can open a python interpreter (ie type python on the command line) and then run the following commands:
import socket s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.connect(('10.0.0.255', 1)) s.getsockname()[0]
This code is trying to test that you have a valid network interface to use with WARPNet.
Offline
Seems to get the same error:
================================
cognitive@tvws-client-1:~$ python
Python 2.7.5+ (default, Feb 27 2014, 19:37:08)
[GCC 4.8.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import socket
>>> s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
>>> s.connect(('10.0.0.255', 1))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/socket.py", line 224, in meth
return getattr(self._sock,name)(*args)
socket.error: [Errno 13] Permission denied
>>> s.getsockname()[0]
'0.0.0.0'
>>>
Offline
What version of ubuntu are you running and what is your network configuration?
Offline
Ubuntu version
--------------------------------------------
Distributor ID: Ubuntu
Description: Ubuntu 13.10
Release: 13.10
Codename: saucy
cognitive@tvws-client-1:~$
Network configuration as in WARPnet 2.0 single Ubuntu machine (eth0 10.0.0.250) is connected to two WARP nodes (ETH B) via Gbit Ethernet switch.
Thanks
Offline
We'll see if we can get an Ubuntu 13.10 machine to reproduce this. In the meantime try disabling the _check_host_interface code (just add "return" at the top of the _check_host_interface def). It would be helpful to know whether the rest of the warpnet flow works on your system even if the _check_host_interface method fails.
Offline
Managed to solve using ‘setsockopt’ for sending to a broadcast address. Let me know of any issues of using this in WARPnet framework.