Multiple routing protocols can be used in ad-hoc wireless mesh networks
(wikipedia).
Some are described in the
Wireless Networking in the Developing World (WNDW)
book (HTML version).
OLSR
OLSR, Optimized Link State Routing protocol
(RFC 3626,
INRIA HYPERCOM project,
wikipedia),
is a routing protocol for wireless ad-hoc networks.
OLSR is proactive, it runs a distributed election to choose
Multipoint Distribution Relays (MPRs), which flood peridiocally the network
topology (Mesh Networking with OLSR, in WNDW).
A popular implementation is the olsr.org OLSR daemon, with a link-quality extension
(README)
using an ETX (Expected Transmission Count) metric, making it a Radio-Aware OLSR implementation (RA-OLSR).
The Open Mesh project is developping an alternative to OLSR,
called B.A.T.M.A.N. (overview).
AODV
AODV, Ad hoc On-Demand Distance Vector
(RFC 3561),
is another routing protocol for wireless mesh networks.
It is reactive, it creates routing traffic only when needed.
802.11s
The OLPC laptop project plans to use the upcoming
802.11s standard (wikipedia),
see the mesh network details.
It uses a new routing protocol as default: HWMP, Hybrid Wireless Mesh
Protocol. It is based on AODV for layer 3 routing and uses a modified
Rapid Spanning Tree protocol for layer 2.
RA-OLSR was initially included as an optional routing protocol for the
802.11s draft, but it has been dropped because of extra complexity for
the standard, with no added value. Though, it can still be used as a
routing protocol, since the 802.11s specification allows optional
routing protocols (without defining them).