16e45 Token Ring WIFI - The FreeBSD Forums
The FreeBSD Forums  

Go Back   The FreeBSD Forums > Development > FreeBSD Development

FreeBSD Development Kernel development, writing drivers, coding, and questions regarding FreeBSD internals.

Reply
 
Thread Tools Display Modes
  #1  
Old April 20th, 2010, 02:10
jorgealdobr jorgealdobr is offline
Junior Member
 
Join Date: Apr 2010
Posts: 5
Thanks: 0
Thanked 0 Times in 0 Posts
Default Token Ring WIFI

Hello !

My first post in this forum.

I was thinking about a new mode for WIFI : Token Ring.

While im no kernel hacker, i think such a project would raise interest and get help from more experienced programmers.

I dont know where to start...

My plan is to implement some kind of "ring passing" access method for wireless, in order to decrease collisions in higly congested outdoor networks.

Currently RTS/CTS tries to solve the "hidden node" problem, but, from field experience we see that this is not enough.

I have some schematics how a WIFI token ring would work.

If anyone is interested i can share my thoughts about how to acomplish that.

Thank you in advance,
J. Aldo.
Reply With Quote
  #2  
Old April 20th, 2010, 07:38
SirDice's Avatar
SirDice SirDice is offline
Moderator
 
Join Date: Nov 2008
Location: Rotterdam, Netherlands
Posts: 13,694
Thanks: 47
Thanked 2,020 Times in 1,859 Posts
Default

Quote:
Originally Posted by jorgealdobr View Post
My plan is to implement some kind of "ring passing" access method for wireless, in order to decrease collisions in higly congested outdoor networks.
And how are you going to do that? Remember that WiFi is a shared medium similar to the old coax networks. One client sends and all others listen. How are you going to define where the ring starts and where it ends? What if a client in the middle shuts down?
__________________
Senior UNIX Engineer at Unix Support Nederland
Experience is something you don't get until just after you need it.
Reply With Quote
  #3  
Old April 20th, 2010, 11:33
trasz@ trasz@ is offline
FreeBSD Developer
 
Join Date: Feb 2008
Location: Warszawa, Poland
Posts: 178
Thanks: 7
Thanked 37 Times in 29 Posts
Default

Disclaimer: I know absolutely nothing about WiFi.

"Lost token" problem was there in the Token Ring. IIRC the network devices just had a timer that was reset after receiving a token, an when the timer expired, it was assumed that the token has been lost.
Reply With Quote
  #4  
Old April 20th, 2010, 14:12
SirDice's Avatar
SirDice SirDice is offline
Moderator
 
Join Date: Nov 2008
Location: Rotterdam, Netherlands
Posts: 13,694
Thanks: 47
Thanked 2,020 Times in 1,859 Posts
Default

Yes, but token ring had an incoming and outgoing cable. A signal went in, processed, and send out. You can't do that with wireless. Wireless uses CSMA/CD, similar to ethernet.
__________________
Senior UNIX Engineer at Unix Support Nederland
Experience is something you don't get until just after you need it.
Reply With Quote
  #5  
Old April 20th, 2010, 21:00
jorgealdobr jorgealdobr is offline
Junior Member
 
Join Date: Apr 2010
Posts: 5
Thanks: 0
Thanked 0 Times in 0 Posts
Default

By "token ring" i just mean the ring passing.

The idea is the following :

1 - Theres an AP that coordinates ring passing.
2 - There are clients.

Using a combination of CTS packets, ACKs, etc (borrowed from CSMA/CA mode) you get a "token ring like" mode that shares the medium without collisions (only time where collisions are possible is the association time).

You can setup QoS by having the possibility of one client receiving the token N times during the iteration

something like :
client1 -> client2 -> client1 again -> client 3

client1 has 50% of transmission time, while client2 and client3 have only 25%

IF you pass the token using CTS packets, all stations will go to "inhibited transmission" mode automatically.

Something like

Code:
AP-> DATAPACKET TO xx:xx:xx:xx:xx:xx
AP-> CTS xx:xx:xx:xx:xx:xx <timeframe>

Now station xx:xx:xx:xx:xx:xx transmits a packet or NACK back to the AP

AP sends ACK saying that it understood the message and goes to the next client

after serving all clients it sends CTS to broadcast adress (inviting new stations) and stops, waiting for someone to try to associate. after 
some milliseconds, go back to the iteration thru clients.
... thats it, all done using standard 802.11 packets.

by using CTS packets, stations unaware of the ring passing will be inhibited continually...

Last edited by DutchDaemon; April 20th, 2010 at 21:41.
Reply With Quote
  #6  
Old April 21st, 2010, 07:31
SirDice's Avatar
SirDice SirDice is offline
Moderator
 
Join Date: Nov 2008
Location: Rotterdam, Netherlands
Posts: 13,694
Thanks: 47
Thanked 2,020 Times in 1,859 Posts
Default

Suppose client1 sends a token. All other clients receive this token. How do you decide which client is the next one to send the token?
__________________
Senior UNIX Engineer at Unix Support Nederland
Experience is something you don't get until just after you need it.
Reply With Quote
  #7  
Old April 21st, 2010, 08:57
robbak's Avatar
robbak robbak is offline
Junior Member
 
Join Date: Nov 2008
Posts: 57
Thanks: 0
Thanked 6 Times in 6 Posts
Default

client x is sent a token. client x happens to have briefly moved behind a copper pipe and doesn't get the token. The entire network stops dead until some timeout lapses. Rinse and repeat - constantly.
Add that the network fills up its allocated channel with useless token-passing, tying up unlicensed spectrum that is running really short these days.

Token passing on a wireless network sounds like the kind if idea that you only hear of on April the First.
Reply With Quote
  #8  
Old April 21st, 2010, 17:20
jorgealdobr jorgealdobr is offline
Junior Member
 
Join Date: Apr 2010
Posts: 5
Thanks: 0
Thanked 0 Times in 0 Posts
Default

"client x happens to have briefly moved behind a copper pipe and doesn't get the token."

Token has expiration time, and timer granularity on Atheros devices is in the microseconds.

You can use three messages handshake :

AP: CTS <client> <microseconds of token>
Client: Ack
Client: Data
AP: Ack

You must understand how an Wireless ISP works in order to make assumptions,

for one : We dont serve mobile clients, only fixed ones.

Clients dont move around.

Client stations use hermetic boxes with an AP inside, on top of a big metal tube rising above obstacles.

Well done instalations have near 0% packet loss.

But our (And i talk from direct experience here) major problem is CSMA/CD behaviour when a lot of stations are online.

RTS/CTS did not solve the hidden node problem either.

Well, to answer your unpolished remark :

Quote:
Token passing on a wireless network sounds like the kind if idea that you only hear of on April the First.
Please educate yourself here:

http://escholarship.org/uc/item/21f8k3vh
Reply With Quote
  #9  
Old April 21st, 2010, 17:37
SirDice's Avatar
SirDice SirDice is offline
Moderator
 
Join Date: Nov 2008
Location: Rotterdam, Netherlands
Posts: 13,694
Thanks: 47
Thanked 2,020 Times in 1,859 Posts
Default

Quote:
Originally Posted by jorgealdobr View Post
But our (And i talk from direct experience here) major problem is CSMA/CD behaviour when a lot of stations are online.
You can fix this in exactly the same manner as with ethernet. Make your broadcast domains smaller.
__________________
Senior UNIX Engineer at Unix Support Nederland
Experience is something you don't get until just after you need it.
Reply With Quote
  #10  
Old April 21st, 2010, 18:51
jorgealdobr jorgealdobr is offline
Junior Member
 
Join Date: Apr 2010
Posts: 5
Thanks: 0
Thanked 0 Times in 0 Posts
Default

Not economically feasible.

Ethernet over copper can do this easily with cheapo switchs.

I would have to install another TOWER + Four 90 degress Panels + PC or Routerboard with Four Wireless Cards

Total R$5000 or more.

Would be easier setting up TokenRing mode on a atheros card and upgrading software on the clients.

If i ask ring passing mode, thats because it IS usefull.

I have a tower with four panels and ~400 clients online... and nowhere nearby a place to setup yet another tower (with 2.4ghz frequency usage limitations - only four true channels in Brazil domain).

I know what i am talking about. CSMA/CA becomes ugly in this usage.
Reply With Quote
  #11  
Old April 21st, 2010, 19:48
SirDice's Avatar
SirDice SirDice is offline
Moderator
 
Join Date: Nov 2008
Location: Rotterdam, Netherlands
Posts: 13,694
Thanks: 47
Thanked 2,020 Times in 1,859 Posts
Default

I'm not saying it could never work. If a station can only send if it has the token and all the others are listening there will never be a collision. As long as you keep strict control over the order in which clients should respond it could work. But wireless is still somewhat unreliable and you don't want to end up with all stations thinking they have a token and can send.
__________________
Senior UNIX Engineer at Unix Support Nederland
Experience is something you don't get until just after you need it.
Reply With Quote
  #12  
Old April 22nd, 2010, 20:50
jorgealdobr jorgealdobr is offline
Junior Member
 
Join Date: Apr 2010
Posts: 5
Thanks: 0
Thanked 0 Times in 0 Posts
Default

is there a way to access wireless board directly, without OS intervention, from userland ?

a kind of socket or tun/tap like device ?
Reply With Quote
  #13  
Old April 23rd, 2010, 08:46
trasz@ trasz@ is offline
FreeBSD Developer
 
Join Date: Feb 2008
Location: Warszawa, Poland
Posts: 178
Thanks: 7
Thanked 37 Times in 29 Posts
Default

You can run tcpdump(8) on WiFi interfaces, so I guess bpf(4) works as usual for them.
Reply With Quote
  #14  
Old April 23rd, 2010, 09:02
trasz@ trasz@ is offline
FreeBSD Developer
 
Join Date: Feb 2008
Location: Warszawa, Poland
Posts: 178
Thanks: 7
Thanked 37 Times in 29 Posts
Default

Btw, there is a pluggable rate control framework (http://www.freebsd.org/news/status/r...1-2010-03.html, search for "net80211 rate control framework"); this looks related to what you're trying to do.
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Atheros WIFI summer System Hardware 3 October 13th, 2009 06:56
Wifi Support? cavibird Peripheral Hardware 3 September 18th, 2009 22:48
expected ')' before '*' token msurucu Installing & Upgrading 12 August 11th, 2009 12:43
[Solved] WiFi too slow Seeker Networking 4 July 23rd, 2009 01:24
Xorg intel driver ring error bluetick X.Org 4 January 8th, 2009 13:29


All times are GMT +1. The time now is 17:09.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2013, vBulletin Solutions, Inc.
The mark FreeBSD is a registered trademark of The FreeBSD Foundation and is used by The FreeBSD Project with the permission of The FreeBSD Foundation.
Web protection and acceleration provided by CloudFlare
0