Cooee is the service discovery protocol for the Serval Mesh network, and is described in the Cooee.md technical document.
A service's Cooee description is a set of NAME=VALUE
lines where NAME is one or more dot-separated ASCII identifiers and VALUE is any UTF-8 text not containing any newline or NUL characters. For example:
socks5.msp.port=67 socks5.msp.name.en=Internet access point socks5.msp.name.es=Punto de acceso al internet
A client uses Cooee by broadcasting a Mesh Datagram Protocol (MDP) request packet to port 11 of all reachable nodes, containing a glob-like pattern crafted to match the name(s) of the service(s) it wishes to discover.
A server process makes itself discoverable via Cooee by listening to port 11 on its local host using MDP port sharing, and responding directly to every client request packet whose pattern matches any of its own Cooee description.
Cooee was invented as part of the New America Foundation - Contractor Agreement #33-OTIUSAID2013 “NAF6” grant.