[CUWiN-Dev] CUWiN 1.0 wishlist?
Sascha Meinrath
sascha at ucimc.org
Wed Aug 10 14:46:36 CDT 2005
Hi all,
> I expect for us to go clear through 0.6, 0.7, 0.8, and 0.9 before we get
> to 1.0. I don't expect for us to release 1.0 for a year or more. Before
> the system goes to 1.0, hslsd needs to become more feature-complete, the
> name service needs to be debugged and its feature-set needs to be more
> comprehensive, and the web UI needs to let us set up multiple interfaces,
> firewall and bandwidth-shaping, etc. We also need to improve the route
> visualization. I also think we need to support more applications "out
> of the box." Important optional features will include a SIP proxy and
> a captive portal. All of this will take at least a year.
Both our main funder and several potential partners (and future funders)
are extremely interested in seeing v1.0 rolled out. One suggestion I
would have is to stabilize the existing feature set and release v1.0
sooner so that we can then seek funding to implement these additional
features for a "new-and-improved" version 2.0. I think that releasing
v1.0, even if it has limited features, is a way to attract additional
interest/support/partners/funding in the project, and will help us to
get this development agenda completed -- which is our main goal anyway.
>>I want to make sure we're directing our energy here on those issues needed
>>to get to 1.0, and also to make sure we're testing/looking for the right
>>things on our testbed. Also, I know we've been getting a lot of interest
>>from different groups (community groups, potential strategic partners,
>>etc). It'd be helpful to have ballpark dates to provide them, and also to
>>help us plan for deployments, upgrades, etc.
>
> The really important thing to test is the routing. Virtually everything
> else rests on that. Here are some things to look for:
>
> * router bootstrap: it is important that a node joining the
> network gets a near-complete set of linkstates quickly.
> There is a procedure whereby a node downloads its neighbors'
> linkstates. I describe it in some document in doc/local/. [1]
>
> * flooding: every new/changed linkstate should reach most routers
> in the n-hop neighborhood within 2**(n+1) seconds.
>
> (Note: I hedge by saying "most" because linkstates *will*
> get lost on a wireless network. I expect the losses to be
> mitigated by repeat transmissions of the same LSU, esp. on
> networks of high nodal degree.)
>
> * global flooding: every new/changed linkstate should reach most routers
> in the *entire* network within 150 seconds
> (hsls_router.c:default_global_ival) or 4 * 2**(netradius+1)
> seconds, whichever is less.
>
> * linkstate purging: a router should purge from its database any
> linkstate that is not updated for 3 times the global flooding
> period---i.e., 3 * 150 seconds
>
> * database updates: a router should recompute its routing
> table with Shortest Paths First every tick (4 seconds) that
> follows the addition/change/deletion of a linkstate
>
> * routing table: after recomputation, the routing table should
> contain the least-metric routes to all destinations that are
> reachable by traversing directed links in the UP condition
>
> * RIB: following recomputation of the routing table,
> hslsd should add/change/delete the same destination-nexthop
> pairs in zebra as it adds/changes/deletes from its own
> routing table
>
> * FIB: zebra should load the routes from the RIB into the
> kernel forwarding table
>
> * default routes: if dhcpselect gets a DHCP lease from a gateway,
> it should re-write the hslsd configuration so that hslsd
> advertises a default route
I think the testing of the routing is the key to going to version 1.0 --
we need to really bang on the software to show that it's stable. If we
focused our efforts in testing the routing, I think Dave's points
provides a fairly good checklist for what we'd need to ensure for the
release.
--Sascha
> [1] I will describe the procedure briefly here. Basically, a node says
> "bootstrap me!" and its neighbors start unicasting their linkstate
> databases to it. A node "echoes" each received linkstate so that its
> neighbors know which ones have been successfully received. No neighbor
> should send a linkstate to the "bootstrappee" that it has already heard
> the bootstrappee echo. A neighbor tries up to three times to send
> a linkstate to the bootstrappee before it gives up. Neighbors send
> linkstates from distant routers before near routers (as measured by hop
> count), they do not send any hopcount-1 linkstates before all of the
> hopcount linkstates have been sent, and they do not send any linkstate to
> a bootstrappee that has been updated since the initial bootstrap request.
>
More information about the CU-Wireless-Dev
mailing list