Sorting out the status of lease serving - and client side

Martin Langhoff martin.langhoff at
Tue Nov 25 12:23:02 EST 2008

One of the high priorities for the next release cycles of the XS is to
get lease management sorted out. As much as possible, it must Just
Work in deployments (though the definition of what it means to Just
Work is a bit of a work in progress ;-) ).

As part of that, I need to understand a bit better all the different
modes in which a laptop can be, and how they attempt to get their
leases over wifi -- 802.11a/b/g ('abg' in the notes below) or via
802.11s ('mesh') .

If I understand things right, the possible interesting states are:

 - Never activated
 - Activated recently (so not looking for a renewal)
 - Activated looking for a renewal
 - Expired lease - passive kill
 - Found self in blacklist - active kill

What I understand those states can do, and implementation notes:

= Never activated =

When booted with the gamepad keys pressed, it will attempt to retrieve
a lease locally over mesh using a simplistic protocol over port 191.

* The XS serves the leases over mesh and abg.
* The XO can request it via mesh (but see #8976 affecting 8.2)
* The XO cannot request it via abg

This is implemented on the XO in the signed initrd so it's not trivial
to hack on.

= Activated  =

Will regularly make requests to following to check for
blacklisted status.

* The client will not attempt to reach a local address (so we need to
change this)
* This protocol is currently not supported by XS (needs implementation!)
* Can the local exchange signed with a delegated key?

In the protocol description there's discussion of the OATC only
requesting new keys if/when it's over half the life of the activation
lease. On the other hand, the protocol bundles blacklist checks and
lease renewal together. Blacklist checks doesn't have the same logic
as activation lease lifetime.

If the OATC implements the logic described in the wiki, machines are
deaf to the blacklist for long periods.

= Expired lease - passive kill =

I suspect that the codepath we hit here is the same as the 'never
activated' case.

= Found self in blacklist - active kill =

I suspect that the codepath we hit here is the same as the 'never
activated' case.

 - = - = - =

Do I have a reasonable understanding of where the XO situation is? I
am trying to map roughly what the work plan is...


 martin.langhoff at
 martin at -- School Server Architect
 - ask interesting questions
 - don't get distracted with shiny stuff  - working code first

More information about the Devel mailing list