WARP Project Forums - Wireless Open-Access Research Platform

You are not logged in.

#1 2016-Mar-07 00:27:20

enu13
Member
Registered: 2016-Mar-07
Posts: 6

AP as Intermediate Node

Hi,
  I am trying to experiment a network with the following setup


STA2---------------AP-----------------STA1

Here STA2 and STA1 are outside of each other transmission range. Now I want if STA1 want to send packet to STA2 or vice versa AP will work as forwarding node. Can you please help me out how to enable this configuration. Do I need to change AP code. I already gone through AP code and I find that AP only process a packet if it is destined to it. Here if AP receive and enqueue a packet which is destined for STA1 (with source STA2) and destined for STA2 (with source STA1) will it work. How to do the same.Please help.

Thanks,
E

Last edited by enu13 (2016-Mar-07 00:29:01)

Offline

 

#2 2016-Mar-07 07:37:55

murphpo
Administrator
From: Mango Communications
Registered: 2006-Jul-03
Posts: 5159

Re: AP as Intermediate Node

The behavior you describe is already implemented in the reference AP code. This is normal 802.11 behavior for infrastructure (AP + STA) networks. STA nodes do not communicate with each other directly. All STA transmissions are received by the AP. If the destination address for a STA transmission is another STA on the same wireless network the AP re-addresses and re-transmits the packet. If you're using the wlan_exp experiments framework (you definitely should), you can verify this behavior with LTG flows:

Code:

#Assume n_ap, n_sta1 and n_sta2 have been initialized as wlan_exp nodes

ltg_1to2 = n_sta1.ltg_configure(ltg.FlowConfigCBR(dest_addr=n_sta2.wlan_mac_address, payload_length=1400, interval=0.1), auto_start=True)

ltg_2to1 = n_sta2.ltg_configure(ltg.FlowConfigCBR(dest_addr=n_sta1.wlan_mac_address, payload_length=1400, interval=0.1), auto_start=True)

This will start traffic flows from both STA nodes, each addressed to the other STA. The AP will receive, re-address, and re-transmit every packet in this case.

Offline

 

#3 2016-Mar-07 07:50:58

enu13
Member
Registered: 2016-Mar-07
Posts: 6

Re: AP as Intermediate Node

Thanks a lot for your reply.

Offline

 

#4 2016-Jun-11 09:39:59

enu13
Member
Registered: 2016-Mar-07
Posts: 6

Re: AP as Intermediate Node

Hi Murphpo,

STA2---------------AP-----------------STA1

  I understand the above behavior is already implementation in  node.py of wlan_exp experiments framework.  I have three node and in my experiment I want the following configuration,

AP-------------STA1----------------STA2

and I have following flow

AP--->STA1
AP--->STA2
STA1--->AP
STA2--->AP

basically I want to make the STA1 as relay node. To make STA1 as relay node it should have information about STA2 which is not possible in normal configuration. But if I made it hard coded then also ok with my project.  Can you please give some hints. Any help is appreciated.

Thanks,
Enu

Offline

 

#5 2016-Jun-13 10:20:41

chunter
Administrator
From: Mango Communications
Registered: 2006-Aug-24
Posts: 1212

Re: AP as Intermediate Node

The challenge here is that you want to be able to have the AP--->STA1 and the AP--->STA2 flows active at the same time. So, even though every frame transmitted by the AP should have an addr1 (RA) of the STA1 MAC address, something in the packet needs to indicate whether or not the packet terminates at the STA1 node or whether it should be passed along to STA2. It would be easier to build a fully hardcoded relay at STA1 that simply passes every packet on to STA2 without having to do any deeper inspection.

I believe the behaviors you are describing would be achievable in an implementation of the 802.11s mesh amendment. Building that full amendment is an enormous undertaking, however. If it were me, I would implement something non-standard to achieve the multihop relaying recognizing that each node in the experiment is a WARP node that is capable of the same non-standard behavior.

I'm not totally sure how this implementation would look, but here are some rough ideas that come to mind.

1) You'll want to formalize a kind of routing table at each node. You can skip the process having nodes learn this routing table or adapt it based on changes in network topology. In this table there needs to be a "next hop" address for each receiver address (RA).

At the AP, the table would contain:

Code:

|         RA        |      Next Hop      |
------------------------------------------
|   STA1 MAC Addr   |   STA1 MAC Addr    |
|   STA2 MAC Addr   |   STA1 MAC Addr    |

At STA1, the table would contain:

Code:

|         RA        |      Next Hop      |
------------------------------------------
|   AP   MAC Addr   |   AP   MAC Addr    |
|   STA2 MAC Addr   |   STA2 MAC Addr    |

And finally, at STA2, the table would contain:

Code:

|         RA        |      Next Hop      |
------------------------------------------
|   STA1 MAC Addr   |   STA1 MAC Addr    |
|   AP   MAC Addr   |   STA1 MAC Addr    |

2) The idea behind the implementation of the routing table should be that any time the standard design was about to produce a frame for an RA address, you would instead look into the table and replace that addr1/RA field with the "Next hop." However, you can't simply throw away the existing RA, as that is really where the packet needs to end up. Whoever is next in the hop still needs to know who the original RA was. The easiest way to do this is to probably customize the definition of the 802.11 MAC Header to include a 4th address. Notice that an "address_4" is already present in that definition but just commented out. You'll want to comment that back in and use it to store the original RA. We don't use a 4th address for any standard 802.11 behaviors in the Reference Design, but it is used for relaying in some standard contexts.

3) The STA code needs to be modified in at least two ways. First, the STA needs to be able to accept data frames from other STAs. Currently, a STA is only allowed to receive and process a frame if is_associated is 1, which only happens if the addr2/TA matches the AP. Your scenario will have STA2 receiving frames from STA1, so this isn't going to work. Second, you'll need to be able to teach the STA how to transmit wirelessly to another STA. Currently, a STA only ever transmits to a single AP. You'll want to look at the AP and IBSS code to figure out how they are able to transmit to more than one wireless device. Furthermore, the AP code should be used as reference to see how some wireless transmissions are created to forward wireless receptions. This is the scenario previously discussed where an AP can forward a packet to an associated STA on behalf of another associated STA.

Offline

 

#6 2016-Jun-15 10:52:36

enu13
Member
Registered: 2016-Mar-07
Posts: 6

Re: AP as Intermediate Node

Hi Chunter,
  Thank you for your assistance. I am working on this implementation. If I face any problem I will let you know.

Thanks,
Enu

Offline

 

Board footer