PUMA is a declarative constraint solving platform for policy-based routing and channel selection in multi-radio wireless mesh networks. We have developed a prototype of the PUMA system using the RapidNet declarative networking system deployed on the ORBIT testbed. PUMA consists of the following two building blocks:

  • Policy-based adaptive routing. Using the declarative networking framework, network protocols and adaptation policies are concisely specified in the declarative language to build hybrid protocols, where the policies dictate the dynamic selection of different protocol components based on network conditions.

  • Extensible dynamic channel selection. Users formulate channel selection policies as optimization goals and constraints that are concisely declared using the PawLog declarative language. To efficiently execute PawLog programs in a distributed setting, PUMA integrates the high performance Gecode constraint solver with the RapidNet declarative networking engine. PUMA further enables distributed protocols that cross optimize across channel selection and routing.

  • Components of a PUMA node. The components in dotted lines indicate PawLog inputs.

    The above figure shows an overview of PUMA from the perspective of a single PUMA node. The role of the channel manager is to assign available channels to wireless links to optimize a performance goal (e.g. minimize network interference, minimize the number of unique channels) while subjected to constraints (e.g. regional policies on spectrum usage, yield to primary users who own exclusive rights to certain spectrums in white space networks). In PUMA, we use the PawLog language for declaratively expressing goals and constraints as a constraint optimization problem (COP).

    At the network layer, the RapidNet declarative networking engine is deployed within the control plane to implement a variety of neighbor discovery and routing protocols also expressed in PawLog. The channel abstraction layer interacts with multiple radios and presents upper layers with a multi-channel communication interface. In order for packets to be routed to neighbors using appropriate interface/channel. The output of the channel manager is then used to initialize the channel assignment table at the channel abstraction layer. Finally, the output of declarative routing is a forwarding table (next-hop for each destination) used by the forwarding agent.