Re: IP addressing + XO MPP connectivity

2009-07-07 Thread John Watlington

Daniel,
   If you are getting a self-assigned IP address, it is
because the laptop is not discovering the MPP.
This is probably due to a short cut in the MPP
discovery process.

The original process was:
- Discover the MPP by broadcasting an MPP discovery
   request using the MPP anycast MAC address.
- All MPPs which receive the MPP discovery request
   would respond with a single packet.
   (This require route discovery to happen).
- The firmware in the laptop's network interface only passes
the MPP response packet from the closest MPP
   (using a metric of number of hops and the rates)
   up to the operating system.
- The OS then addresses a DHCP request to the
   closest MPP's IP.
   (This requires route discovery to happen)
- The DHCP server responds.
- The laptop acknowledges the assignment.

This resulted in a discovery process which took quite
a bit of time.   Combining the MPP discovery and the
address assignment into a single step both sped up
the process and eliminated the need for a separate
mesh discovery daemon on the MPP.

So the newer process was:
- Discover a DHCP server (on a nearby MPP) by
  broadcasting a DHCP discovery using the anycast
  MAC address.
- All MPPs which receive the DHCP discovery respond
   with a DHCP response.
   (This requires route discovery to happen)
- The firmware in the laptop's network interface only
  passes the DHCP response from the closest MPP
  up to the OS.
- The OS then addresses a DHCP request to the closest MPP.
- The laptop acknowledges the assignment.

The XS server software should set up any mesh interfaces
to accept the anycast MAC address, but this might have
been lost in more recent builds.  Also, I believe there was
a hack to the DHCP client on the laptop to make it issue
the DHCP discovery request with the appropriate MAC
destination address (instead of the broadcast MAC address.)

Cheers,
wad

On Jul 6, 2009, at 12:41 PM, Daniel Drake wrote:

 Hi,

 When connecting to a MPP-based mesh, the XO ignores the IP address  
 from
 the MPP DHCP server and instead picks one using autoipd. Does anyone
 know the motivation behind this?

 http://cgit.freedesktop.org/NetworkManager/NetworkManager/tree/src/ 
 nm-device-802-11-mesh-olpc.c?h=nm-0-6-olpc

 I'm working on reimplementing mesh support in NetworkManager-0.7; MPP-
 or AA- based connectivity is still not supported but I'll reimplement
 the client-side support if it's not too much hassle. (and this
 particular bit may be hassle...)

 Daniel


 ___
 Devel mailing list
 Devel@lists.laptop.org
 http://lists.laptop.org/listinfo/devel

___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: IP addressing + XO MPP connectivity

2009-07-07 Thread Daniel Drake
Hi John,

On Tue, 2009-07-07 at 02:03 -0400, John Watlington wrote:
If you are getting a self-assigned IP address, it is
 because the laptop is not discovering the MPP.
 This is probably due to a short cut in the MPP
 discovery process.

The NM-0.6 code *definitely* ignores the IP address assigned from the
MPP DHCP server.

some snippets

case MESH_S3_XO_MPP:
/* Kill dhclient; we don't need it anymore after MPP discovery here
 * because we're ignoring the returned lease.
 */
  nm_dhcp_manager_cancel_transaction (dhcp_manager,
 nm_device_get_iface (NM_DEVICE (self)));

...

if (self-priv-step == MESH_S3_XO_MPP) {
/* Step 3 (XO_MPP) ignores the IP address provided in the DHCP 
response,
 * so we still have to do autoip.
 */
if (!aipd_exec (self)) {
nm_warning (Activation (%s/mesh): couldn't start 
avahi-autoipd.,

 The XS server software should set up any mesh interfaces
 to accept the anycast MAC address, but this might have
 been lost in more recent builds. 

The XS connectivity scenario is a totally different case, where the DHCP
lease is indeed received and applied. The code differentiates between
school mesh and mesh portal (and the anycast addresses are
different).

However I think you have indirectly explained why the MPP lease is
ignored... you are accounting for the case where there are multiple MPPs
all on 1 channel, therefore two MPPs could give the same IP address to 2
different XOs. autoipd presumably has some magic to avoid IP conflicts.

And this is a pain to implement so it will probably not happen this time
around... but I should be able to keep the school mesh case.

Daniel


___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel