Hi Josh,<div><br></div><div>Thanks for detailed response. I had posted the initial query specifically about Commotion and multiple vAP's since I am looking for a platform to migrate ~50 ath5k-based radios off of the current psuedo-stable ROBIN r3xxx firmware.</div>
<div><br></div><div>Eliding over a long story: ROBIN works well present at present running OLSR 0.5.6-based  mesh on single-radio ath5k devices, but only on ath5k chipset and with the madwifi driver packaged into OpenWRT Kamikaze.  It also has a hard dependency on the ah-demo mode (as opposed to adhoc), and in particular on running ah-demo + 2 other vAPs in managed mode.</div>
<div><br></div><div>There is an unstable version of ROBIN v2 based on Backfire (and thus with ath9k support), but its developer community is tied up with other priorities.</div><div><br></div><div>I'm presently looking at a couple options for migrating away from ROBIN r3xxx:</div>
<div><br></div><div>1. Fix the broken stuff in ROBIN v2, so that it is suitable for production use</div><div>2. Add ROBIN-like features to Commotion</div><div><br></div><div>Ideally, a combination of #1 and #2 would yield mutual benefits for both user bases, especially since the current roadmap w/ ROBIN may end up abandoning a large fraction of its user base.</div>
<div><br></div><div>The "ROBIN-like" features would be:</div><div><br></div><div>1. Centralized config mgmt via mesh dashboards like Cloudtrax, robin-dash, wifi-mesh.</div><div>2. Related to #1, reporting of mesh health and live operational stats back to dashboard (i.e. uptime, RSSI, # connected clients)</div>
<div>3. Support for CoovaChilli v1.2 captive portals</div><div>4. Auto-configuration of newly flashed nodes</div><div><br></div><div>ROBIN v2 does support all four, but it has stability problems with the r28xxx generation Backfire it was last tested on in Sept. `11.</div>
<div><br><div class="gmail_quote">On Tue, Jan 3, 2012 at 8:27 AM, Josh King <span dir="ltr"><<a href="mailto:josh@chambana.net">josh@chambana.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi Ben,<br>
<br>
Actually most development on CommotionWRT has been done on quite the<br>
opposite (devices w/ one radio, but multiple VAPs). There is some<br>
configuration done w/ hardware interfaces, but those interface names are<br>
retrieved as much as possible from the OpenWRT config files, and each<br>
VAP when it's created has an actual interface name (like wlan0), so it's<br>
all VAPs that it's operating on. I'm typing from my phone right now, but<br>
as far as I recall boot-up order goes like this:<br>
<br>
* OpenWRT by default starts without an /etc/config/wireless file. On<br>
first boot, /etc/init.d/network checks for that file and if it doesn't<br>
find it, detects the wireless cards and creates a default config (using<br>
code in /lib/wifi/mac80211.sh), with the radios marked disabled. This is<br>
hijacked by the /etc/init.d/meshconfig script, which runs first and does<br>
the detection process to generate /etc/config/wireless. It then parses<br>
/etc/config/network, and makes sure that for each network interface,<br>
there's a VAP in /etc/config/wireless (it tries to distribute them<br>
somewhat intelligently; if there are multiple physical radios, it puts<br>
the ad-hoc mesh interface on the first one and then distributes the AP<br>
interfaces across the other radios).<br>
<br>
* Then the regular OpenWRT network initialization runs, which calls the<br>
coldplug_* functions for each Commotion interface. These functions<br>
configure the wireless VAPs created in the last step (setting SSIDs,<br>
etc). The wireless is then brought up.<br>
<br>
* Finally, the setup_interface_* functions are called, which configure<br>
the IPs, firewall, etc for each interface. They also make a series of<br>
hotplug calls, which run scripts in /etc/hotplug.d/ to configure various<br>
services, like OLSRd.<br>
<br>
There are definitely things that could be done better. For instance,<br>
there are default interface names in /etc/config/network. This is done<br>
to avoid complexity, as OpenWRT seems to assume that if you're building<br>
a hardware-specific image you at least know what the hardware looks like<br>
;-) However, this falls apart when building, say, an x86 iso. It's also<br>
a bit of a problem in that it seems that most drivers want to have the<br>
ad-hoc interface on the highest numbered interface (i.e., if you have an<br>
AP on wlan0, and an ad-hoc on wlan1, and then you add another AP, the<br>
ad-hoc becomes wlan2, and the second AP becomes wlan1, rather than just<br>
incrementing interfaces like you'd expect). There's also the fact that<br>
the whole IP address selection scheme from converting MAC addresses is<br>
rather naive, and we should support several replacements as well.<br>
Ideally, these would include hashing the MAC address to create the IP, a<br>
la the IPv4LL or whatever it's called standard that gets you 169.254.*<br>
addresses, along with the option of randomizing the MAC address, or<br>
using just IPv6 addresses, or generating this all from a UUID that's<br>
created at boot. I'm hoping to address all this for a forthcoming PR2.x<br>
point release, but not all of it is solidified so patches, commits, and<br>
suggestions welcome.<br>
<div><div class="h5"><br>
<br>
<br>
Ben West <<a href="mailto:me@benwest.name">me@benwest.name</a>> wrote:<br>
<br>
>I just cloned & compiled the most recent repo contents for Commotion,<br>
>and I<br>
>am wandering thru its default config files.<br>
><br>
>I notice the functions setup_interface_meshif() and<br>
>setup_interface_apif()<br>
>will operate on the hardware names of the mesh and AP interfaces,<br>
>respectively.<br>
><a href="https://tech.chambana.net/documents/1" target="_blank">https://tech.chambana.net/documents/1</a><br>
><br>
>Has all testing/operation for Commotion to date been done on devices<br>
>with<br>
>multiple physical radios (or just one radio and only the mesh<br>
>interface)?<br>
>Has anyone yet tried running mesh + AP on multiple virtual APs (VAPs)<br>
>with<br>
>either ath5k or ath9k?<br>
><br>
>--<br>
>Ben West<br>
><a href="mailto:me@benwest.name">me@benwest.name</a><br>
</div></div>>_______________________________________________<br>
>Commotion-dev mailing list<br>
><a href="mailto:Commotion-dev@lists.chambana.net">Commotion-dev@lists.chambana.net</a><br>
><a href="http://lists.chambana.net/mailman/listinfo/commotion-dev" target="_blank">http://lists.chambana.net/mailman/listinfo/commotion-dev</a><br>
<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div>Ben West</div><div><a href="mailto:me@benwest.name" target="_blank">me@benwest.name</a></div> 
</div>