HWMP: interface selection in a multi channel environment

126 views
Skip to first unread message

Mark Anthoni

unread,
Apr 18, 2014, 11:48:00 PM4/18/14
to ns-3-...@googlegroups.com
Hi,

My network consists of multi-channel and multi interface environment. I have implement channel switching algorithm in one interface and other interface is connect with a fixed channel for all the mesh point. Ns-3 drops packet or flushed the queued data every time I switch to a different channel  than the current one . My hunch is,  eventually this phenomena tells the HWMP protocol that the interface (on which channel switching is implemented) is erroneous. Hence after some time my network stop using the interface index to transmit future data and use the other interface most of the time.

I tried to avoid flushing data after channel switching but unfortunately it creates some other issues/assert error. How can I stop  hwmp protocol to make decision based on packet drop/frame error rate? How actually HWMP make decision on interface and where is it implemented? I tried to find my answers till i post it, unfortunately did not have a good luck. please help me. 

Regards,
Mark

Tommaso Pecorella

unread,
Apr 19, 2014, 2:01:13 AM4/19/14
to ns-3-...@googlegroups.com
Hi,

I think you should not try to avoid flushing. Rather you should try to switch channel once the interface is "free" from pending packets.
The effect may be as well the sign that there's an issue on how you're trying to simulate the channel switching, and another one about what you should avoid in a real implementation.

Now the discussion goes technical...

A WiFi radio has internal buffers at MAC level. These are hardware buffers, mostly used to speedup transmission and perform frame aggregation. If you switch the interface channel, these will become invalid and will be flushed. This is because WiFi assumes that if you switch channel it's because you switched AP, and the queues in the AP and the STA are going to be messed up.

Since you're developing something non-standard, you have to take care of these elements. One way is to delay the switch 'til the interface buffers are empty. I.e.,
1) stop accepting packets / put the incoming ones in another buffer
2) wait until the buffers are clean
3) switch channel
4) accept new frames from the upper layer / put the buffered packets in the interface.

Design... it's a matter of design.

T.

Mark Anthoni

unread,
Apr 19, 2014, 2:47:06 AM4/19/14
to ns-3-...@googlegroups.com
Hi Tom,

Thanks for the reply.

Regards,

Mark Anthoni

unread,
Apr 21, 2014, 12:15:03 AM4/21/14
to ns-3-...@googlegroups.com
Hi Tom,

In my case, if I activate channel switching, more than 80% time mesh node uses interface two ( channel switching algo is implemented in interface one) and if I deactivate channel switching, almost all the time it uses interface one. I came to realize that if packet  is queueded and frame error rate is somehow related to make the decisions about interface index to use.

If it happens that you know how they are making decision and where it is implemented in ns3, it will be a great help.

Thanks.

Tommaso Pecorella

unread,
Apr 21, 2014, 2:57:28 AM4/21/14
to ns-3-...@googlegroups.com
Hi,

I don't get the question. You implemented channel switching, so you should have implemented the channel switching decision algorithm as well, isn't it ?

T

Mark Anthoni

unread,
Apr 21, 2014, 3:31:26 AM4/21/14
to ns-3-...@googlegroups.com
Sorry for Ambiguity. Routing protocol makes decision on which interface to use in a multi-radio network. I wanted to know, how routing protocol (e.x. HWMP) choose a radio (interface) in ns3 and the parameters which are considered. Ya, I have my channel switching decision algorithm but I want to control which interface to use.

M.

Tommaso Pecorella

unread,
Apr 21, 2014, 4:30:43 AM4/21/14
to ns-3-...@googlegroups.com
Hi,

I don't know the protocol well enough to say. The best thing I can suggest is: study the code and/or ask to the module's maintainer.

Cheers,

T.
Reply all
Reply to author
Forward
0 new messages