roamguide

git clone git://archive.git.mtrnord.blog/MTRNord/roamguide.git
Log | Files | Refs | README

README (2712B)


      1 ROAM-Guide
      2 ----------
      3 
      4 Helps your clients to search for a better AP and to have a nice roaming experience.
      5 
      6 The roaming guide runs as a cronjob every minute on your ap and verifies that clients
      7 have an acceptable TQ towards the AP. If that isn't the case it will deauth the client
      8 by stating that the AP is full, enabling the client to look for an alternative AP.
      9 
     10 This is happening in three definable stages depending on the TQ of the client.
     11 When a client has decided to come back after the ban-time it will not be bothered
     12 again unless it depletes to the next TQ level or it has been kicked $stage times.
     13 For every stage the client is guided, the ban time will be increased. So by default
     14 the first stage has a bantime of 500ms, the second 2775ms and the third 10000ms.
     15 
     16 When a client is away for some definable time or is below the first stages TQ,
     17 it will be forgotten, and the guiding will be re-enable.
     18 
     19 Configuration
     20 -------------
     21 
     22 In '/etc/config/roamguide' the following default configuration is available,
     23 to activate it you need to set enabled to '1'.
     24 
     25     config roamguide
     26        option device "client0"        # wireless AP device we like to guide
     27        list signal '-60'              # first penality level, in dBm
     28        list signal '-77'              # second penality level, in dBm
     29        list signal '-85'              # final penality level. in dBm
     30        option bantime_base '500'      # on the first level ban for 500ms
     31        option bantime_factor '2375'   # on the second one for 2775ms,
     32                                       # and in the final 10000ms
     33        option forget_time '600'       # Forget about a client after 10s
     34        option enabled '0'             # set to '1' to enable this profile
     35 
     36 This module creates a cronjob calling /usr/bin/roamguide once a minute.
     37 If you want to make roamguide more reactive (but also stress your device) you can add some more cron jobs with sleep timers in /usr/lib/micron.d/root:
     38 
     39     * * * * * sleep 20 & /usr/bin/roamguide
     40     * * * * * sleep 40 & /usr/bin/roamguide
     41 
     42 If you want to disable this with one shell call you can use:
     43 
     44      ssh <router ip> 'uci set roamguide.@roamguide[0].enabled="0"; uci commit roamguide && echo done'
     45 
     46 If you want to make roamguide more reactive:
     47 
     48      ssh <router> 'grep -q "sleep 20" /usr/lib/micron.d/root || echo "* * * * * sleep 20 & /usr/bin/roamguide" >> /usr/lib/micron.d/root'
     49      ssh <router> 'grep -q "sleep 40" /usr/lib/micron.d/root || echo "* * * * * sleep 40 & /usr/bin/roamguide" >> /usr/lib/micron.d/root'
     50 
     51 ### Testing tools
     52 
     53 This will show you the stats, where you are connected to on your client:
     54 
     55     watch -d -n0,5 iw dev $(ip -o -4 route show to default | awk '{print $5}') station dump
     56