Making WiFi work in multi-hop topologies: Automatic negotiation and allocation of airtime